{"version":3,"file":"i18n-BezaZWum.js","sources":["../../../node_modules/trix/dist/trix.esm.min.js","../../../node_modules/@uppy/utils/lib/Translator.js","../../../node_modules/namespace-emitter/index.js","../../../node_modules/nanoid/non-secure/index.js","../../../node_modules/lodash/isObject.js","../../../node_modules/lodash/_freeGlobal.js","../../../node_modules/lodash/_root.js","../../../node_modules/lodash/now.js","../../../node_modules/lodash/_trimmedEndIndex.js","../../../node_modules/lodash/_baseTrim.js","../../../node_modules/lodash/_Symbol.js","../../../node_modules/lodash/_getRawTag.js","../../../node_modules/lodash/_objectToString.js","../../../node_modules/lodash/_baseGetTag.js","../../../node_modules/lodash/isObjectLike.js","../../../node_modules/lodash/isSymbol.js","../../../node_modules/lodash/toNumber.js","../../../node_modules/lodash/debounce.js","../../../node_modules/lodash/throttle.js","../../../node_modules/@uppy/store-default/lib/index.js","../../../node_modules/@uppy/utils/lib/getFileNameAndExtension.js","../../../node_modules/@uppy/utils/lib/mimeTypes.js","../../../node_modules/@uppy/utils/lib/getFileType.js","../../../node_modules/@uppy/utils/lib/generateFileID.js","../../../node_modules/@uppy/core/lib/supportsUploadProgress.js","../../../node_modules/@uppy/core/lib/getFileName.js","../../../node_modules/@uppy/utils/lib/getTimeStamp.js","../../../node_modules/@uppy/core/lib/loggers.js","../../../node_modules/@transloadit/prettier-bytes/dist/prettierBytes.js","../../../node_modules/wildcard/index.js","../../../node_modules/mime-match/index.js","../../../node_modules/@uppy/core/lib/Restricter.js","../../../node_modules/@uppy/core/lib/locale.js","../../../node_modules/@uppy/core/lib/Uppy.js","../../../node_modules/preact/dist/preact.module.js","../../../node_modules/@uppy/utils/lib/isDOMElement.js","../../../node_modules/@uppy/utils/lib/findDOMElement.js","../../../node_modules/@uppy/utils/lib/getTextDirection.js","../../../node_modules/@uppy/core/lib/BasePlugin.js","../../../node_modules/@uppy/core/lib/UIPlugin.js","../../../node_modules/@uppy/utils/lib/emaFilter.js","../../../node_modules/@uppy/status-bar/lib/StatusBarStates.js","../../../node_modules/classnames/index.js","../../../node_modules/@uppy/status-bar/lib/calculateProcessingProgress.js","../../../node_modules/@uppy/utils/lib/secondsToTime.js","../../../node_modules/@uppy/utils/lib/prettyETA.js","../../../node_modules/@uppy/status-bar/lib/Components.js","../../../node_modules/@uppy/status-bar/lib/StatusBarUI.js","../../../node_modules/@uppy/status-bar/lib/locale.js","../../../node_modules/@uppy/status-bar/lib/StatusBar.js","../../../node_modules/@uppy/informer/lib/FadeIn.js","../../../node_modules/@uppy/informer/lib/TransitionGroup.js","../../../node_modules/@uppy/informer/lib/Informer.js","../../../node_modules/@uppy/utils/lib/dataURItoBlob.js","../../../node_modules/@uppy/utils/lib/isObjectURL.js","../../../node_modules/@uppy/utils/lib/isPreviewSupported.js","../../../node_modules/exifr/dist/mini.esm.mjs","../../../node_modules/@uppy/thumbnail-generator/lib/locale.js","../../../node_modules/@uppy/thumbnail-generator/lib/index.js","../../../node_modules/@uppy/utils/lib/findAllDOMElements.js","../../../node_modules/@uppy/utils/lib/toArray.js","../../../node_modules/@uppy/utils/lib/getDroppedFiles/utils/webkitGetAsEntryApi/getFilesAndDirectoriesFromDirectory.js","../../../node_modules/@uppy/utils/lib/getDroppedFiles/utils/webkitGetAsEntryApi/index.js","../../../node_modules/@uppy/utils/lib/getDroppedFiles/utils/fallbackApi.js","../../../node_modules/@uppy/utils/lib/getDroppedFiles/index.js","../../../node_modules/preact/hooks/dist/hooks.module.js","../../../node_modules/@uppy/utils/lib/VirtualList.js","../../../node_modules/@uppy/provider-views/lib/ProviderView/ProviderView.js","../../../node_modules/memoize-one/dist/memoize-one.esm.js","../../../node_modules/@uppy/utils/lib/FOCUSABLE_ELEMENTS.js","../../../node_modules/@uppy/dashboard/lib/utils/getActiveOverlayEl.js","../../../node_modules/@uppy/dashboard/lib/utils/trapFocus.js","../../../node_modules/@uppy/dashboard/lib/utils/createSuperFocus.js","../../../node_modules/@uppy/utils/lib/isDragDropSupported.js","../../../node_modules/shallow-equal/dist/index.modern.mjs","../../../node_modules/@uppy/dashboard/lib/utils/getFileTypeIcon.js","../../../node_modules/@uppy/dashboard/lib/components/FilePreview.js","../../../node_modules/@uppy/dashboard/lib/components/FileItem/MetaErrorMessage.js","../../../node_modules/@uppy/dashboard/lib/components/FileItem/FilePreviewAndLink/index.js","../../../node_modules/@uppy/dashboard/lib/components/FileItem/FileProgress/index.js","../../../node_modules/@uppy/utils/lib/truncateString.js","../../../node_modules/@uppy/dashboard/lib/components/FileItem/FileInfo/index.js","../../../node_modules/@uppy/dashboard/lib/utils/copyToClipboard.js","../../../node_modules/@uppy/dashboard/lib/components/FileItem/Buttons/index.js","../../../node_modules/@uppy/dashboard/lib/components/FileItem/index.js","../../../node_modules/@uppy/dashboard/lib/components/FileList.js","../../../node_modules/@uppy/dashboard/lib/components/AddFiles.js","../../../node_modules/@uppy/dashboard/lib/components/AddFilesPanel.js","../../../node_modules/@uppy/dashboard/lib/utils/ignoreEvent.js","../../../node_modules/@uppy/dashboard/lib/components/PickerPanelContent.js","../../../node_modules/@uppy/dashboard/lib/components/EditorPanel.js","../../../node_modules/@uppy/dashboard/lib/components/PickerPanelTopBar.js","../../../node_modules/@uppy/dashboard/lib/components/FileCard/RenderMetaFields.js","../../../node_modules/@uppy/dashboard/lib/components/FileCard/index.js","../../../node_modules/@uppy/dashboard/lib/components/Slide.js","../../../node_modules/@uppy/dashboard/lib/components/Dashboard.js","../../../node_modules/@uppy/dashboard/lib/locale.js","../../../node_modules/@uppy/dashboard/lib/Dashboard.js","../../../node_modules/cropperjs/dist/cropper.esm.js","../../../node_modules/@uppy/image-editor/lib/utils/getCanvasDataThatFitsPerfectlyIntoContainer.js","../../../node_modules/@uppy/image-editor/lib/utils/getScaleFactorThatRemovesDarkCorners.js","../../../node_modules/@uppy/image-editor/lib/utils/limitCropboxMovementOnMove.js","../../../node_modules/@uppy/image-editor/lib/utils/limitCropboxMovementOnResize.js","../../../node_modules/@uppy/image-editor/lib/Editor.js","../../../node_modules/@uppy/image-editor/lib/locale.js","../../../node_modules/@uppy/image-editor/lib/ImageEditor.js","../../../node_modules/@uppy/utils/lib/RateLimitedQueue.js","../../../node_modules/compressorjs/dist/compressor.esm.js","../../../node_modules/@uppy/compressor/lib/locale.js","../../../node_modules/@uppy/compressor/lib/index.js","../../../node_modules/@uppy/utils/lib/fileFilters.js","../../../node_modules/@uppy/utils/lib/EventManager.js","../../../node_modules/@uppy/utils/lib/ProgressTimeout.js","../../../node_modules/@rails/activestorage/app/assets/javascripts/activestorage.esm.js","../../../app/javascript/utils/uppy_active_storage.js","../../../node_modules/@uppy/locales/lib/es_ES.js","../../../node_modules/@uppy/locales/lib/en_US.js","../../../app/javascript/utils/trix_uploader.js","../../../app/javascript/utils/trix.js","../../../node_modules/lodash/isArray.js","../../../node_modules/lodash/_isKey.js","../../../node_modules/lodash/isFunction.js","../../../node_modules/lodash/_coreJsData.js","../../../node_modules/lodash/_isMasked.js","../../../node_modules/lodash/_toSource.js","../../../node_modules/lodash/_baseIsNative.js","../../../node_modules/lodash/_getValue.js","../../../node_modules/lodash/_getNative.js","../../../node_modules/lodash/_nativeCreate.js","../../../node_modules/lodash/_hashClear.js","../../../node_modules/lodash/_hashDelete.js","../../../node_modules/lodash/_hashGet.js","../../../node_modules/lodash/_hashHas.js","../../../node_modules/lodash/_hashSet.js","../../../node_modules/lodash/_Hash.js","../../../node_modules/lodash/_listCacheClear.js","../../../node_modules/lodash/eq.js","../../../node_modules/lodash/_assocIndexOf.js","../../../node_modules/lodash/_listCacheDelete.js","../../../node_modules/lodash/_listCacheGet.js","../../../node_modules/lodash/_listCacheHas.js","../../../node_modules/lodash/_listCacheSet.js","../../../node_modules/lodash/_ListCache.js","../../../node_modules/lodash/_Map.js","../../../node_modules/lodash/_mapCacheClear.js","../../../node_modules/lodash/_isKeyable.js","../../../node_modules/lodash/_getMapData.js","../../../node_modules/lodash/_mapCacheDelete.js","../../../node_modules/lodash/_mapCacheGet.js","../../../node_modules/lodash/_mapCacheHas.js","../../../node_modules/lodash/_mapCacheSet.js","../../../node_modules/lodash/_MapCache.js","../../../node_modules/lodash/memoize.js","../../../node_modules/lodash/_memoizeCapped.js","../../../node_modules/lodash/_stringToPath.js","../../../node_modules/lodash/_arrayMap.js","../../../node_modules/lodash/_baseToString.js","../../../node_modules/lodash/toString.js","../../../node_modules/lodash/_castPath.js","../../../node_modules/lodash/_toKey.js","../../../node_modules/lodash/_baseGet.js","../../../node_modules/lodash/get.js","../../../node_modules/lodash/_baseHas.js","../../../node_modules/lodash/_baseIsArguments.js","../../../node_modules/lodash/isArguments.js","../../../node_modules/lodash/_isIndex.js","../../../node_modules/lodash/isLength.js","../../../node_modules/lodash/_hasPath.js","../../../node_modules/lodash/has.js","../../../node_modules/lodash/_stackClear.js","../../../node_modules/lodash/_stackDelete.js","../../../node_modules/lodash/_stackGet.js","../../../node_modules/lodash/_stackHas.js","../../../node_modules/lodash/_stackSet.js","../../../node_modules/lodash/_Stack.js","../../../node_modules/lodash/_defineProperty.js","../../../node_modules/lodash/_baseAssignValue.js","../../../node_modules/lodash/_assignMergeValue.js","../../../node_modules/lodash/_createBaseFor.js","../../../node_modules/lodash/_baseFor.js","../../../node_modules/lodash/_cloneBuffer.js","../../../node_modules/lodash/_Uint8Array.js","../../../node_modules/lodash/_cloneArrayBuffer.js","../../../node_modules/lodash/_cloneTypedArray.js","../../../node_modules/lodash/_copyArray.js","../../../node_modules/lodash/_baseCreate.js","../../../node_modules/lodash/_overArg.js","../../../node_modules/lodash/_getPrototype.js","../../../node_modules/lodash/_isPrototype.js","../../../node_modules/lodash/_initCloneObject.js","../../../node_modules/lodash/isArrayLike.js","../../../node_modules/lodash/isArrayLikeObject.js","../../../node_modules/lodash/stubFalse.js","../../../node_modules/lodash/isBuffer.js","../../../node_modules/lodash/isPlainObject.js","../../../node_modules/lodash/_baseIsTypedArray.js","../../../node_modules/lodash/_baseUnary.js","../../../node_modules/lodash/_nodeUtil.js","../../../node_modules/lodash/isTypedArray.js","../../../node_modules/lodash/_safeGet.js","../../../node_modules/lodash/_assignValue.js","../../../node_modules/lodash/_copyObject.js","../../../node_modules/lodash/_baseTimes.js","../../../node_modules/lodash/_arrayLikeKeys.js","../../../node_modules/lodash/_nativeKeysIn.js","../../../node_modules/lodash/_baseKeysIn.js","../../../node_modules/lodash/keysIn.js","../../../node_modules/lodash/toPlainObject.js","../../../node_modules/lodash/_baseMergeDeep.js","../../../node_modules/lodash/_baseMerge.js","../../../node_modules/lodash/identity.js","../../../node_modules/lodash/_apply.js","../../../node_modules/lodash/_overRest.js","../../../node_modules/lodash/constant.js","../../../node_modules/lodash/_baseSetToString.js","../../../node_modules/lodash/_shortOut.js","../../../node_modules/lodash/_setToString.js","../../../node_modules/lodash/_baseRest.js","../../../node_modules/lodash/_isIterateeCall.js","../../../node_modules/lodash/_createAssigner.js","../../../node_modules/lodash/merge.js","../../../node_modules/lodash/_setCacheAdd.js","../../../node_modules/lodash/_setCacheHas.js","../../../node_modules/lodash/_SetCache.js","../../../node_modules/lodash/_baseFindIndex.js","../../../node_modules/lodash/_baseIsNaN.js","../../../node_modules/lodash/_strictIndexOf.js","../../../node_modules/lodash/_baseIndexOf.js","../../../node_modules/lodash/_arrayIncludes.js","../../../node_modules/lodash/_arrayIncludesWith.js","../../../node_modules/lodash/_cacheHas.js","../../../node_modules/lodash/_Set.js","../../../node_modules/lodash/noop.js","../../../node_modules/lodash/_setToArray.js","../../../node_modules/lodash/_createSet.js","../../../node_modules/lodash/_baseUniq.js","../../../node_modules/lodash/uniq.js","../../../node_modules/i18n-js/dist/import/Locales.js","../../../node_modules/make-plural/plurals.mjs","../../../node_modules/i18n-js/dist/import/Pluralization.js","../../../node_modules/lodash/_baseSlice.js","../../../node_modules/lodash/_castSlice.js","../../../node_modules/lodash/_hasUnicode.js","../../../node_modules/lodash/_asciiToArray.js","../../../node_modules/lodash/_unicodeToArray.js","../../../node_modules/lodash/_stringToArray.js","../../../node_modules/lodash/_createCaseFirst.js","../../../node_modules/lodash/upperFirst.js","../../../node_modules/lodash/capitalize.js","../../../node_modules/lodash/_arrayReduce.js","../../../node_modules/lodash/_basePropertyOf.js","../../../node_modules/lodash/_deburrLetter.js","../../../node_modules/lodash/deburr.js","../../../node_modules/lodash/_asciiWords.js","../../../node_modules/lodash/_hasUnicodeWord.js","../../../node_modules/lodash/_unicodeWords.js","../../../node_modules/lodash/words.js","../../../node_modules/lodash/_createCompounder.js","../../../node_modules/lodash/camelCase.js","../../../node_modules/i18n-js/dist/import/helpers/camelCaseKeys.js","../../../node_modules/i18n-js/dist/import/helpers/isSet.js","../../../node_modules/i18n-js/dist/import/helpers/createTranslationOptions.js","../../../node_modules/bignumber.js/bignumber.mjs","../../../node_modules/i18n-js/dist/import/helpers/expandRoundMode.js","../../../node_modules/lodash/_baseRepeat.js","../../../node_modules/lodash/toFinite.js","../../../node_modules/lodash/toInteger.js","../../../node_modules/lodash/repeat.js","../../../node_modules/i18n-js/dist/import/helpers/roundNumber.js","../../../node_modules/i18n-js/dist/import/helpers/formatNumber.js","../../../node_modules/i18n-js/dist/import/helpers/getFullScope.js","../../../node_modules/i18n-js/dist/import/helpers/inferType.js","../../../node_modules/i18n-js/dist/import/helpers/interpolate.js","../../../node_modules/i18n-js/dist/import/helpers/lookup.js","../../../node_modules/i18n-js/dist/import/helpers/numberToDelimited.js","../../../node_modules/lodash/_arrayPush.js","../../../node_modules/lodash/_isFlattenable.js","../../../node_modules/lodash/_baseFlatten.js","../../../node_modules/lodash/_arraySome.js","../../../node_modules/lodash/_equalArrays.js","../../../node_modules/lodash/_mapToArray.js","../../../node_modules/lodash/_equalByTag.js","../../../node_modules/lodash/_baseGetAllKeys.js","../../../node_modules/lodash/_arrayFilter.js","../../../node_modules/lodash/stubArray.js","../../../node_modules/lodash/_getSymbols.js","../../../node_modules/lodash/_nativeKeys.js","../../../node_modules/lodash/_baseKeys.js","../../../node_modules/lodash/keys.js","../../../node_modules/lodash/_getAllKeys.js","../../../node_modules/lodash/_equalObjects.js","../../../node_modules/lodash/_DataView.js","../../../node_modules/lodash/_Promise.js","../../../node_modules/lodash/_WeakMap.js","../../../node_modules/lodash/_getTag.js","../../../node_modules/lodash/_baseIsEqualDeep.js","../../../node_modules/lodash/_baseIsEqual.js","../../../node_modules/lodash/_baseIsMatch.js","../../../node_modules/lodash/_isStrictComparable.js","../../../node_modules/lodash/_getMatchData.js","../../../node_modules/lodash/_matchesStrictComparable.js","../../../node_modules/lodash/_baseMatches.js","../../../node_modules/lodash/_baseHasIn.js","../../../node_modules/lodash/hasIn.js","../../../node_modules/lodash/_baseMatchesProperty.js","../../../node_modules/lodash/_baseProperty.js","../../../node_modules/lodash/_basePropertyDeep.js","../../../node_modules/lodash/property.js","../../../node_modules/lodash/_baseIteratee.js","../../../node_modules/lodash/_baseForOwn.js","../../../node_modules/lodash/_createBaseEach.js","../../../node_modules/lodash/_baseEach.js","../../../node_modules/lodash/_baseMap.js","../../../node_modules/lodash/_baseSortBy.js","../../../node_modules/lodash/_compareAscending.js","../../../node_modules/lodash/_compareMultiple.js","../../../node_modules/lodash/_baseOrderBy.js","../../../node_modules/lodash/sortBy.js","../../../node_modules/lodash/_baseZipObject.js","../../../node_modules/lodash/zipObject.js","../../../node_modules/i18n-js/dist/import/helpers/numberToHuman.js","../../../node_modules/i18n-js/dist/import/helpers/numberToHumanSize.js","../../../node_modules/i18n-js/dist/import/helpers/parseDate.js","../../../node_modules/i18n-js/dist/import/helpers/pluralize.js","../../../node_modules/i18n-js/dist/import/helpers/strftime.js","../../../node_modules/lodash/_baseRange.js","../../../node_modules/lodash/_createRange.js","../../../node_modules/lodash/range.js","../../../node_modules/i18n-js/dist/import/helpers/timeAgoInWords.js","../../../node_modules/i18n-js/dist/import/MissingTranslation.js","../../../node_modules/i18n-js/dist/import/I18n.js","../../../app/javascript/utils/i18n.js"],"sourcesContent":["/*\nTrix 2.1.13\nCopyright © 2025 37signals, LLC\n */\nvar t=\"2.1.13\";const e=\"[data-trix-attachment]\",i={preview:{presentation:\"gallery\",caption:{name:!0,size:!0}},file:{caption:{size:!0}}},n={default:{tagName:\"div\",parse:!1},quote:{tagName:\"blockquote\",nestable:!0},heading1:{tagName:\"h1\",terminal:!0,breakOnReturn:!0,group:!1},code:{tagName:\"pre\",terminal:!0,htmlAttributes:[\"language\"],text:{plaintext:!0}},bulletList:{tagName:\"ul\",parse:!1},bullet:{tagName:\"li\",listAttribute:\"bulletList\",group:!1,nestable:!0,test(t){return r(t.parentNode)===n[this.listAttribute].tagName}},numberList:{tagName:\"ol\",parse:!1},number:{tagName:\"li\",listAttribute:\"numberList\",group:!1,nestable:!0,test(t){return r(t.parentNode)===n[this.listAttribute].tagName}},attachmentGallery:{tagName:\"div\",exclusive:!0,terminal:!0,parse:!1,group:!1}},r=t=>{var e;return null==t||null===(e=t.tagName)||void 0===e?void 0:e.toLowerCase()},o=navigator.userAgent.match(/android\\s([0-9]+.*Chrome)/i),s=o&&parseInt(o[1]);var a={composesExistingText:/Android.*Chrome/.test(navigator.userAgent),recentAndroid:s&&s>12,samsungAndroid:s&&navigator.userAgent.match(/Android.*SM-/),forcesObjectResizing:/Trident.*rv:11/.test(navigator.userAgent),supportsInputEvents:\"undefined\"!=typeof InputEvent&&[\"data\",\"getTargetRanges\",\"inputType\"].every((t=>t in InputEvent.prototype))},l={ADD_ATTR:[\"language\"],SAFE_FOR_XML:!1,RETURN_DOM:!0},c={attachFiles:\"Attach Files\",bold:\"Bold\",bullets:\"Bullets\",byte:\"Byte\",bytes:\"Bytes\",captionPlaceholder:\"Add a caption…\",code:\"Code\",heading1:\"Heading\",indent:\"Increase Level\",italic:\"Italic\",link:\"Link\",numbers:\"Numbers\",outdent:\"Decrease Level\",quote:\"Quote\",redo:\"Redo\",remove:\"Remove\",strike:\"Strikethrough\",undo:\"Undo\",unlink:\"Unlink\",url:\"URL\",urlPlaceholder:\"Enter a URL…\",GB:\"GB\",KB:\"KB\",MB:\"MB\",PB:\"PB\",TB:\"TB\"};const u=[c.bytes,c.KB,c.MB,c.GB,c.TB,c.PB];var h={prefix:\"IEC\",precision:2,formatter(t){switch(t){case 0:return\"0 \".concat(c.bytes);case 1:return\"1 \".concat(c.byte);default:let e;\"SI\"===this.prefix?e=1e3:\"IEC\"===this.prefix&&(e=1024);const i=Math.floor(Math.log(t)/Math.log(e)),n=(t/Math.pow(e,i)).toFixed(this.precision).replace(/0*$/,\"\").replace(/\\.$/,\"\");return\"\".concat(n,\" \").concat(u[i])}}};const d=\"\\ufeff\",g=\" \",m=function(t){for(const e in t){const i=t[e];this[e]=i}return this},p=document.documentElement,f=p.matches,b=function(t){let{onElement:e,matchingSelector:i,withCallback:n,inPhase:r,preventDefault:o,times:s}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const a=e||p,l=i,c=\"capturing\"===r,u=function(t){null!=s&&0==--s&&u.destroy();const e=y(t.target,{matchingSelector:l});null!=e&&(null==n||n.call(e,t,e),o&&t.preventDefault())};return u.destroy=()=>a.removeEventListener(t,u,c),a.addEventListener(t,u,c),u},v=function(t){let{onElement:e,bubbles:i,cancelable:n,attributes:r}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const o=null!=e?e:p;i=!1!==i,n=!1!==n;const s=document.createEvent(\"Events\");return s.initEvent(t,i,n),null!=r&&m.call(s,r),o.dispatchEvent(s)},A=function(t,e){if(1===(null==t?void 0:t.nodeType))return f.call(t,e)},y=function(t){let{matchingSelector:e,untilNode:i}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};for(;t&&t.nodeType!==Node.ELEMENT_NODE;)t=t.parentNode;if(null!=t){if(null==e)return t;if(t.closest&&null==i)return t.closest(e);for(;t&&t!==i;){if(A(t,e))return t;t=t.parentNode}}},x=t=>document.activeElement!==t&&C(t,document.activeElement),C=function(t,e){if(t&&e)for(;e;){if(e===t)return!0;e=e.parentNode}},E=function(t){var e;if(null===(e=t)||void 0===e||!e.parentNode)return;let i=0;for(t=t.previousSibling;t;)i++,t=t.previousSibling;return i},S=t=>{var e;return null==t||null===(e=t.parentNode)||void 0===e?void 0:e.removeChild(t)},R=function(t){let{onlyNodesOfType:e,usingFilter:i,expandEntityReferences:n}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r=(()=>{switch(e){case\"element\":return NodeFilter.SHOW_ELEMENT;case\"text\":return NodeFilter.SHOW_TEXT;case\"comment\":return NodeFilter.SHOW_COMMENT;default:return NodeFilter.SHOW_ALL}})();return document.createTreeWalker(t,r,null!=i?i:null,!0===n)},k=t=>{var e;return null==t||null===(e=t.tagName)||void 0===e?void 0:e.toLowerCase()},T=function(t){let e,i,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};\"object\"==typeof t?(n=t,t=n.tagName):n={attributes:n};const r=document.createElement(t);if(null!=n.editable&&(null==n.attributes&&(n.attributes={}),n.attributes.contenteditable=n.editable),n.attributes)for(e in n.attributes)i=n.attributes[e],r.setAttribute(e,i);if(n.style)for(e in n.style)i=n.style[e],r.style[e]=i;if(n.data)for(e in n.data)i=n.data[e],r.dataset[e]=i;return n.className&&n.className.split(\" \").forEach((t=>{r.classList.add(t)})),n.textContent&&(r.textContent=n.textContent),n.childNodes&&[].concat(n.childNodes).forEach((t=>{r.appendChild(t)})),r};let w;const L=function(){if(null!=w)return w;w=[];for(const t in n){const e=n[t];e.tagName&&w.push(e.tagName)}return w},D=t=>I(null==t?void 0:t.firstChild),N=function(t){let{strict:e}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{strict:!0};return e?I(t):I(t)||!I(t.firstChild)&&function(t){return L().includes(k(t))&&!L().includes(k(t.firstChild))}(t)},I=t=>O(t)&&\"block\"===(null==t?void 0:t.data),O=t=>(null==t?void 0:t.nodeType)===Node.COMMENT_NODE,F=function(t){let{name:e}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(t)return B(t)?t.data===d?!e||t.parentNode.dataset.trixCursorTarget===e:void 0:F(t.firstChild)},P=t=>A(t,e),M=t=>B(t)&&\"\"===(null==t?void 0:t.data),B=t=>(null==t?void 0:t.nodeType)===Node.TEXT_NODE,_={level2Enabled:!0,getLevel(){return this.level2Enabled&&a.supportsInputEvents?2:0},pickFiles(t){const e=T(\"input\",{type:\"file\",multiple:!0,hidden:!0,id:this.fileInputId});e.addEventListener(\"change\",(()=>{t(e.files),S(e)})),S(document.getElementById(this.fileInputId)),document.body.appendChild(e),e.click()}};var j={removeBlankTableCells:!1,tableCellSeparator:\" | \",tableRowSeparator:\"\\n\"},W={bold:{tagName:\"strong\",inheritable:!0,parser(t){const e=window.getComputedStyle(t);return\"bold\"===e.fontWeight||e.fontWeight>=600}},italic:{tagName:\"em\",inheritable:!0,parser:t=>\"italic\"===window.getComputedStyle(t).fontStyle},href:{groupTagName:\"a\",parser(t){const i=\"a:not(\".concat(e,\")\"),n=t.closest(i);if(n)return n.getAttribute(\"href\")}},strike:{tagName:\"del\",inheritable:!0},frozen:{style:{backgroundColor:\"highlight\"}}},U={getDefaultHTML:()=>'<div class=\"trix-button-row\">\\n      <span class=\"trix-button-group trix-button-group--text-tools\" data-trix-button-group=\"text-tools\">\\n        <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-bold\" data-trix-attribute=\"bold\" data-trix-key=\"b\" title=\"'.concat(c.bold,'\" tabindex=\"-1\">').concat(c.bold,'</button>\\n        <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-italic\" data-trix-attribute=\"italic\" data-trix-key=\"i\" title=\"').concat(c.italic,'\" tabindex=\"-1\">').concat(c.italic,'</button>\\n        <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-strike\" data-trix-attribute=\"strike\" title=\"').concat(c.strike,'\" tabindex=\"-1\">').concat(c.strike,'</button>\\n        <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-link\" data-trix-attribute=\"href\" data-trix-action=\"link\" data-trix-key=\"k\" title=\"').concat(c.link,'\" tabindex=\"-1\">').concat(c.link,'</button>\\n      </span>\\n\\n      <span class=\"trix-button-group trix-button-group--block-tools\" data-trix-button-group=\"block-tools\">\\n        <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-heading-1\" data-trix-attribute=\"heading1\" title=\"').concat(c.heading1,'\" tabindex=\"-1\">').concat(c.heading1,'</button>\\n        <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-quote\" data-trix-attribute=\"quote\" title=\"').concat(c.quote,'\" tabindex=\"-1\">').concat(c.quote,'</button>\\n        <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-code\" data-trix-attribute=\"code\" title=\"').concat(c.code,'\" tabindex=\"-1\">').concat(c.code,'</button>\\n        <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-bullet-list\" data-trix-attribute=\"bullet\" title=\"').concat(c.bullets,'\" tabindex=\"-1\">').concat(c.bullets,'</button>\\n        <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-number-list\" data-trix-attribute=\"number\" title=\"').concat(c.numbers,'\" tabindex=\"-1\">').concat(c.numbers,'</button>\\n        <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-decrease-nesting-level\" data-trix-action=\"decreaseNestingLevel\" title=\"').concat(c.outdent,'\" tabindex=\"-1\">').concat(c.outdent,'</button>\\n        <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-increase-nesting-level\" data-trix-action=\"increaseNestingLevel\" title=\"').concat(c.indent,'\" tabindex=\"-1\">').concat(c.indent,'</button>\\n      </span>\\n\\n      <span class=\"trix-button-group trix-button-group--file-tools\" data-trix-button-group=\"file-tools\">\\n        <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-attach\" data-trix-action=\"attachFiles\" title=\"').concat(c.attachFiles,'\" tabindex=\"-1\">').concat(c.attachFiles,'</button>\\n      </span>\\n\\n      <span class=\"trix-button-group-spacer\"></span>\\n\\n      <span class=\"trix-button-group trix-button-group--history-tools\" data-trix-button-group=\"history-tools\">\\n        <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-undo\" data-trix-action=\"undo\" data-trix-key=\"z\" title=\"').concat(c.undo,'\" tabindex=\"-1\">').concat(c.undo,'</button>\\n        <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-redo\" data-trix-action=\"redo\" data-trix-key=\"shift+z\" title=\"').concat(c.redo,'\" tabindex=\"-1\">').concat(c.redo,'</button>\\n      </span>\\n    </div>\\n\\n    <div class=\"trix-dialogs\" data-trix-dialogs>\\n      <div class=\"trix-dialog trix-dialog--link\" data-trix-dialog=\"href\" data-trix-dialog-attribute=\"href\">\\n        <div class=\"trix-dialog__link-fields\">\\n          <input type=\"url\" name=\"href\" class=\"trix-input trix-input--dialog\" placeholder=\"').concat(c.urlPlaceholder,'\" aria-label=\"').concat(c.url,'\" data-trix-validate-href required data-trix-input>\\n          <div class=\"trix-button-group\">\\n            <input type=\"button\" class=\"trix-button trix-button--dialog\" value=\"').concat(c.link,'\" data-trix-method=\"setAttribute\">\\n            <input type=\"button\" class=\"trix-button trix-button--dialog\" value=\"').concat(c.unlink,'\" data-trix-method=\"removeAttribute\">\\n          </div>\\n        </div>\\n      </div>\\n    </div>')};const V={interval:5e3};var z=Object.freeze({__proto__:null,attachments:i,blockAttributes:n,browser:a,css:{attachment:\"attachment\",attachmentCaption:\"attachment__caption\",attachmentCaptionEditor:\"attachment__caption-editor\",attachmentMetadata:\"attachment__metadata\",attachmentMetadataContainer:\"attachment__metadata-container\",attachmentName:\"attachment__name\",attachmentProgress:\"attachment__progress\",attachmentSize:\"attachment__size\",attachmentToolbar:\"attachment__toolbar\",attachmentGallery:\"attachment-gallery\"},dompurify:l,fileSize:h,input:_,keyNames:{8:\"backspace\",9:\"tab\",13:\"return\",27:\"escape\",37:\"left\",39:\"right\",46:\"delete\",68:\"d\",72:\"h\",79:\"o\"},lang:c,parser:j,textAttributes:W,toolbar:U,undo:V});class q{static proxyMethod(t){const{name:e,toMethod:i,toProperty:n,optional:r}=H(t);this.prototype[e]=function(){let t,o;var s,a;i?o=r?null===(s=this[i])||void 0===s?void 0:s.call(this):this[i]():n&&(o=this[n]);return r?(t=null===(a=o)||void 0===a?void 0:a[e],t?J.call(t,o,arguments):void 0):(t=o[e],J.call(t,o,arguments))}}}const H=function(t){const e=t.match(K);if(!e)throw new Error(\"can't parse @proxyMethod expression: \".concat(t));const i={name:e[4]};return null!=e[2]?i.toMethod=e[1]:i.toProperty=e[1],null!=e[3]&&(i.optional=!0),i},{apply:J}=Function.prototype,K=new RegExp(\"^(.+?)(\\\\(\\\\))?(\\\\?)?\\\\.(.+?)$\");var G,Y,$;class X extends q{static box(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"\";return t instanceof this?t:this.fromUCS2String(null==t?void 0:t.toString())}static fromUCS2String(t){return new this(t,et(t))}static fromCodepoints(t){return new this(it(t),t)}constructor(t,e){super(...arguments),this.ucs2String=t,this.codepoints=e,this.length=this.codepoints.length,this.ucs2Length=this.ucs2String.length}offsetToUCS2Offset(t){return it(this.codepoints.slice(0,Math.max(0,t))).length}offsetFromUCS2Offset(t){return et(this.ucs2String.slice(0,Math.max(0,t))).length}slice(){return this.constructor.fromCodepoints(this.codepoints.slice(...arguments))}charAt(t){return this.slice(t,t+1)}isEqualTo(t){return this.constructor.box(t).ucs2String===this.ucs2String}toJSON(){return this.ucs2String}getCacheKey(){return this.ucs2String}toString(){return this.ucs2String}}const Z=1===(null===(G=Array.from)||void 0===G?void 0:G.call(Array,\"👼\").length),Q=null!=(null===(Y=\" \".codePointAt)||void 0===Y?void 0:Y.call(\" \",0)),tt=\" 👼\"===(null===($=String.fromCodePoint)||void 0===$?void 0:$.call(String,32,128124));let et,it;et=Z&&Q?t=>Array.from(t).map((t=>t.codePointAt(0))):function(t){const e=[];let i=0;const{length:n}=t;for(;i<n;){let r=t.charCodeAt(i++);if(55296<=r&&r<=56319&&i<n){const e=t.charCodeAt(i++);56320==(64512&e)?r=((1023&r)<<10)+(1023&e)+65536:i--}e.push(r)}return e},it=tt?t=>String.fromCodePoint(...Array.from(t||[])):function(t){return(()=>{const e=[];return Array.from(t).forEach((t=>{let i=\"\";t>65535&&(t-=65536,i+=String.fromCharCode(t>>>10&1023|55296),t=56320|1023&t),e.push(i+String.fromCharCode(t))})),e})().join(\"\")};let nt=0;class rt extends q{static fromJSONString(t){return this.fromJSON(JSON.parse(t))}constructor(){super(...arguments),this.id=++nt}hasSameConstructorAs(t){return this.constructor===(null==t?void 0:t.constructor)}isEqualTo(t){return this===t}inspect(){const t=[],e=this.contentsForInspection()||{};for(const i in e){const n=e[i];t.push(\"\".concat(i,\"=\").concat(n))}return\"#<\".concat(this.constructor.name,\":\").concat(this.id).concat(t.length?\" \".concat(t.join(\", \")):\"\",\">\")}contentsForInspection(){}toJSONString(){return JSON.stringify(this)}toUTF16String(){return X.box(this)}getCacheKey(){return this.id.toString()}}const ot=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];if(t.length!==e.length)return!1;for(let i=0;i<t.length;i++){if(t[i]!==e[i])return!1}return!0},st=function(t){const e=t.slice(0);for(var i=arguments.length,n=new Array(i>1?i-1:0),r=1;r<i;r++)n[r-1]=arguments[r];return e.splice(...n),e},at=/[\\u05BE\\u05C0\\u05C3\\u05D0-\\u05EA\\u05F0-\\u05F4\\u061B\\u061F\\u0621-\\u063A\\u0640-\\u064A\\u066D\\u0671-\\u06B7\\u06BA-\\u06BE\\u06C0-\\u06CE\\u06D0-\\u06D5\\u06E5\\u06E6\\u200F\\u202B\\u202E\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE72\\uFE74\\uFE76-\\uFEFC]/,lt=function(){const t=T(\"input\",{dir:\"auto\",name:\"x\",dirName:\"x.dir\"}),e=T(\"textarea\",{dir:\"auto\",name:\"y\",dirName:\"y.dir\"}),i=T(\"form\");i.appendChild(t),i.appendChild(e);const n=function(){try{return new FormData(i).has(e.dirName)}catch(t){return!1}}(),r=function(){try{return t.matches(\":dir(ltr),:dir(rtl)\")}catch(t){return!1}}();return n?function(t){return e.value=t,new FormData(i).get(e.dirName)}:r?function(e){return t.value=e,t.matches(\":dir(rtl)\")?\"rtl\":\"ltr\"}:function(t){const e=t.trim().charAt(0);return at.test(e)?\"rtl\":\"ltr\"}}();let ct=null,ut=null,ht=null,dt=null;const gt=()=>(ct||(ct=bt().concat(pt())),ct),mt=t=>n[t],pt=()=>(ut||(ut=Object.keys(n)),ut),ft=t=>W[t],bt=()=>(ht||(ht=Object.keys(W)),ht),vt=function(t,e){At(t).textContent=e.replace(/%t/g,t)},At=function(t){const e=document.createElement(\"style\");e.setAttribute(\"type\",\"text/css\"),e.setAttribute(\"data-tag-name\",t.toLowerCase());const i=yt();return i&&e.setAttribute(\"nonce\",i),document.head.insertBefore(e,document.head.firstChild),e},yt=function(){const t=xt(\"trix-csp-nonce\")||xt(\"csp-nonce\");if(t){const{nonce:e,content:i}=t;return\"\"==e?i:e}},xt=t=>document.head.querySelector(\"meta[name=\".concat(t,\"]\")),Ct={\"application/x-trix-feature-detection\":\"test\"},Et=function(t){const e=t.getData(\"text/plain\"),i=t.getData(\"text/html\");if(!e||!i)return null==e?void 0:e.length;{const{body:t}=(new DOMParser).parseFromString(i,\"text/html\");if(t.textContent===e)return!t.querySelector(\"*\")}},St=/Mac|^iP/.test(navigator.platform)?t=>t.metaKey:t=>t.ctrlKey;const Rt=t=>setTimeout(t,1),kt=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const e={};for(const i in t){const n=t[i];e[i]=n}return e},Tt=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(Object.keys(t).length!==Object.keys(e).length)return!1;for(const i in t){if(t[i]!==e[i])return!1}return!0},wt=function(t){if(null!=t)return Array.isArray(t)||(t=[t,t]),[Nt(t[0]),Nt(null!=t[1]?t[1]:t[0])]},Lt=function(t){if(null==t)return;const[e,i]=wt(t);return It(e,i)},Dt=function(t,e){if(null==t||null==e)return;const[i,n]=wt(t),[r,o]=wt(e);return It(i,r)&&It(n,o)},Nt=function(t){return\"number\"==typeof t?t:kt(t)},It=function(t,e){return\"number\"==typeof t?t===e:Tt(t,e)};class Ot extends q{constructor(){super(...arguments),this.update=this.update.bind(this),this.selectionManagers=[]}start(){this.started||(this.started=!0,document.addEventListener(\"selectionchange\",this.update,!0))}stop(){if(this.started)return this.started=!1,document.removeEventListener(\"selectionchange\",this.update,!0)}registerSelectionManager(t){if(!this.selectionManagers.includes(t))return this.selectionManagers.push(t),this.start()}unregisterSelectionManager(t){if(this.selectionManagers=this.selectionManagers.filter((e=>e!==t)),0===this.selectionManagers.length)return this.stop()}notifySelectionManagersOfSelectionChange(){return this.selectionManagers.map((t=>t.selectionDidChange()))}update(){this.notifySelectionManagersOfSelectionChange()}reset(){this.update()}}const Ft=new Ot,Pt=function(){const t=window.getSelection();if(t.rangeCount>0)return t},Mt=function(){var t;const e=null===(t=Pt())||void 0===t?void 0:t.getRangeAt(0);if(e&&!_t(e))return e},Bt=function(t){const e=window.getSelection();return e.removeAllRanges(),e.addRange(t),Ft.update()},_t=t=>jt(t.startContainer)||jt(t.endContainer),jt=t=>!Object.getPrototypeOf(t),Wt=t=>t.replace(new RegExp(\"\".concat(d),\"g\"),\"\").replace(new RegExp(\"\".concat(g),\"g\"),\" \"),Ut=new RegExp(\"[^\\\\S\".concat(g,\"]\")),Vt=t=>t.replace(new RegExp(\"\".concat(Ut.source),\"g\"),\" \").replace(/\\ {2,}/g,\" \"),zt=function(t,e){if(t.isEqualTo(e))return[\"\",\"\"];const i=qt(t,e),{length:n}=i.utf16String;let r;if(n){const{offset:o}=i,s=t.codepoints.slice(0,o).concat(t.codepoints.slice(o+n));r=qt(e,X.fromCodepoints(s))}else r=qt(e,t);return[i.utf16String.toString(),r.utf16String.toString()]},qt=function(t,e){let i=0,n=t.length,r=e.length;for(;i<n&&t.charAt(i).isEqualTo(e.charAt(i));)i++;for(;n>i+1&&t.charAt(n-1).isEqualTo(e.charAt(r-1));)n--,r--;return{utf16String:t.slice(i,n),offset:i}};class Ht extends rt{static fromCommonAttributesOfObjects(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];if(!t.length)return new this;let e=Yt(t[0]),i=e.getKeys();return t.slice(1).forEach((t=>{i=e.getKeysCommonToHash(Yt(t)),e=e.slice(i)})),e}static box(t){return Yt(t)}constructor(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};super(...arguments),this.values=Gt(t)}add(t,e){return this.merge(Jt(t,e))}remove(t){return new Ht(Gt(this.values,t))}get(t){return this.values[t]}has(t){return t in this.values}merge(t){return new Ht(Kt(this.values,$t(t)))}slice(t){const e={};return Array.from(t).forEach((t=>{this.has(t)&&(e[t]=this.values[t])})),new Ht(e)}getKeys(){return Object.keys(this.values)}getKeysCommonToHash(t){return t=Yt(t),this.getKeys().filter((e=>this.values[e]===t.values[e]))}isEqualTo(t){return ot(this.toArray(),Yt(t).toArray())}isEmpty(){return 0===this.getKeys().length}toArray(){if(!this.array){const t=[];for(const e in this.values){const i=this.values[e];t.push(t.push(e,i))}this.array=t.slice(0)}return this.array}toObject(){return Gt(this.values)}toJSON(){return this.toObject()}contentsForInspection(){return{values:JSON.stringify(this.values)}}}const Jt=function(t,e){const i={};return i[t]=e,i},Kt=function(t,e){const i=Gt(t);for(const t in e){const n=e[t];i[t]=n}return i},Gt=function(t,e){const i={};return Object.keys(t).sort().forEach((n=>{n!==e&&(i[n]=t[n])})),i},Yt=function(t){return t instanceof Ht?t:new Ht(t)},$t=function(t){return t instanceof Ht?t.values:t};class Xt{static groupObjects(){let t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],{depth:i,asTree:n}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};n&&null==i&&(i=0);const r=[];return Array.from(e).forEach((e=>{var o;if(t){var s,a,l;if(null!==(s=e.canBeGrouped)&&void 0!==s&&s.call(e,i)&&null!==(a=(l=t[t.length-1]).canBeGroupedWith)&&void 0!==a&&a.call(l,e,i))return void t.push(e);r.push(new this(t,{depth:i,asTree:n})),t=null}null!==(o=e.canBeGrouped)&&void 0!==o&&o.call(e,i)?t=[e]:r.push(e)})),t&&r.push(new this(t,{depth:i,asTree:n})),r}constructor(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],{depth:e,asTree:i}=arguments.length>1?arguments[1]:void 0;this.objects=t,i&&(this.depth=e,this.objects=this.constructor.groupObjects(this.objects,{asTree:i,depth:this.depth+1}))}getObjects(){return this.objects}getDepth(){return this.depth}getCacheKey(){const t=[\"objectGroup\"];return Array.from(this.getObjects()).forEach((e=>{t.push(e.getCacheKey())})),t.join(\"/\")}}class Zt extends q{constructor(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];super(...arguments),this.objects={},Array.from(t).forEach((t=>{const e=JSON.stringify(t);null==this.objects[e]&&(this.objects[e]=t)}))}find(t){const e=JSON.stringify(t);return this.objects[e]}}class Qt{constructor(t){this.reset(t)}add(t){const e=te(t);this.elements[e]=t}remove(t){const e=te(t),i=this.elements[e];if(i)return delete this.elements[e],i}reset(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return this.elements={},Array.from(t).forEach((t=>{this.add(t)})),t}}const te=t=>t.dataset.trixStoreKey;class ee extends q{isPerforming(){return!0===this.performing}hasPerformed(){return!0===this.performed}hasSucceeded(){return this.performed&&this.succeeded}hasFailed(){return this.performed&&!this.succeeded}getPromise(){return this.promise||(this.promise=new Promise(((t,e)=>(this.performing=!0,this.perform(((i,n)=>{this.succeeded=i,this.performing=!1,this.performed=!0,this.succeeded?t(n):e(n)})))))),this.promise}perform(t){return t(!1)}release(){var t,e;null===(t=this.promise)||void 0===t||null===(e=t.cancel)||void 0===e||e.call(t),this.promise=null,this.performing=null,this.performed=null,this.succeeded=null}}ee.proxyMethod(\"getPromise().then\"),ee.proxyMethod(\"getPromise().catch\");class ie extends q{constructor(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};super(...arguments),this.object=t,this.options=e,this.childViews=[],this.rootView=this}getNodes(){return this.nodes||(this.nodes=this.createNodes()),this.nodes.map((t=>t.cloneNode(!0)))}invalidate(){var t;return this.nodes=null,this.childViews=[],null===(t=this.parentView)||void 0===t?void 0:t.invalidate()}invalidateViewForObject(t){var e;return null===(e=this.findViewForObject(t))||void 0===e?void 0:e.invalidate()}findOrCreateCachedChildView(t,e,i){let n=this.getCachedViewForObject(e);return n?this.recordChildView(n):(n=this.createChildView(...arguments),this.cacheViewForObject(n,e)),n}createChildView(t,e){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};e instanceof Xt&&(i.viewClass=t,t=ne);const n=new t(e,i);return this.recordChildView(n)}recordChildView(t){return t.parentView=this,t.rootView=this.rootView,this.childViews.push(t),t}getAllChildViews(){let t=[];return this.childViews.forEach((e=>{t.push(e),t=t.concat(e.getAllChildViews())})),t}findElement(){return this.findElementForObject(this.object)}findElementForObject(t){const e=null==t?void 0:t.id;if(e)return this.rootView.element.querySelector(\"[data-trix-id='\".concat(e,\"']\"))}findViewForObject(t){for(const e of this.getAllChildViews())if(e.object===t)return e}getViewCache(){return this.rootView!==this?this.rootView.getViewCache():this.isViewCachingEnabled()?(this.viewCache||(this.viewCache={}),this.viewCache):void 0}isViewCachingEnabled(){return!1!==this.shouldCacheViews}enableViewCaching(){this.shouldCacheViews=!0}disableViewCaching(){this.shouldCacheViews=!1}getCachedViewForObject(t){var e;return null===(e=this.getViewCache())||void 0===e?void 0:e[t.getCacheKey()]}cacheViewForObject(t,e){const i=this.getViewCache();i&&(i[e.getCacheKey()]=t)}garbageCollectCachedViews(){const t=this.getViewCache();if(t){const e=this.getAllChildViews().concat(this).map((t=>t.object.getCacheKey()));for(const i in t)e.includes(i)||delete t[i]}}}class ne extends ie{constructor(){super(...arguments),this.objectGroup=this.object,this.viewClass=this.options.viewClass,delete this.options.viewClass}getChildViews(){return this.childViews.length||Array.from(this.objectGroup.getObjects()).forEach((t=>{this.findOrCreateCachedChildView(this.viewClass,t,this.options)})),this.childViews}createNodes(){const t=this.createContainerElement();return this.getChildViews().forEach((e=>{Array.from(e.getNodes()).forEach((e=>{t.appendChild(e)}))})),[t]}createContainerElement(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.objectGroup.getDepth();return this.getChildViews()[0].createContainerElement(t)}}\n/*! @license DOMPurify 3.2.3 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.2.3/LICENSE */const{entries:re,setPrototypeOf:oe,isFrozen:se,getPrototypeOf:ae,getOwnPropertyDescriptor:le}=Object;let{freeze:ce,seal:ue,create:he}=Object,{apply:de,construct:ge}=\"undefined\"!=typeof Reflect&&Reflect;ce||(ce=function(t){return t}),ue||(ue=function(t){return t}),de||(de=function(t,e,i){return t.apply(e,i)}),ge||(ge=function(t,e){return new t(...e)});const me=Te(Array.prototype.forEach),pe=Te(Array.prototype.pop),fe=Te(Array.prototype.push),be=Te(String.prototype.toLowerCase),ve=Te(String.prototype.toString),Ae=Te(String.prototype.match),ye=Te(String.prototype.replace),xe=Te(String.prototype.indexOf),Ce=Te(String.prototype.trim),Ee=Te(Object.prototype.hasOwnProperty),Se=Te(RegExp.prototype.test),Re=(ke=TypeError,function(){for(var t=arguments.length,e=new Array(t),i=0;i<t;i++)e[i]=arguments[i];return ge(ke,e)});var ke;function Te(t){return function(e){for(var i=arguments.length,n=new Array(i>1?i-1:0),r=1;r<i;r++)n[r-1]=arguments[r];return de(t,e,n)}}function we(t,e){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:be;oe&&oe(t,null);let n=e.length;for(;n--;){let r=e[n];if(\"string\"==typeof r){const t=i(r);t!==r&&(se(e)||(e[n]=t),r=t)}t[r]=!0}return t}function Le(t){for(let e=0;e<t.length;e++){Ee(t,e)||(t[e]=null)}return t}function De(t){const e=he(null);for(const[i,n]of re(t)){Ee(t,i)&&(Array.isArray(n)?e[i]=Le(n):n&&\"object\"==typeof n&&n.constructor===Object?e[i]=De(n):e[i]=n)}return e}function Ne(t,e){for(;null!==t;){const i=le(t,e);if(i){if(i.get)return Te(i.get);if(\"function\"==typeof i.value)return Te(i.value)}t=ae(t)}return function(){return null}}const Ie=ce([\"a\",\"abbr\",\"acronym\",\"address\",\"area\",\"article\",\"aside\",\"audio\",\"b\",\"bdi\",\"bdo\",\"big\",\"blink\",\"blockquote\",\"body\",\"br\",\"button\",\"canvas\",\"caption\",\"center\",\"cite\",\"code\",\"col\",\"colgroup\",\"content\",\"data\",\"datalist\",\"dd\",\"decorator\",\"del\",\"details\",\"dfn\",\"dialog\",\"dir\",\"div\",\"dl\",\"dt\",\"element\",\"em\",\"fieldset\",\"figcaption\",\"figure\",\"font\",\"footer\",\"form\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"head\",\"header\",\"hgroup\",\"hr\",\"html\",\"i\",\"img\",\"input\",\"ins\",\"kbd\",\"label\",\"legend\",\"li\",\"main\",\"map\",\"mark\",\"marquee\",\"menu\",\"menuitem\",\"meter\",\"nav\",\"nobr\",\"ol\",\"optgroup\",\"option\",\"output\",\"p\",\"picture\",\"pre\",\"progress\",\"q\",\"rp\",\"rt\",\"ruby\",\"s\",\"samp\",\"section\",\"select\",\"shadow\",\"small\",\"source\",\"spacer\",\"span\",\"strike\",\"strong\",\"style\",\"sub\",\"summary\",\"sup\",\"table\",\"tbody\",\"td\",\"template\",\"textarea\",\"tfoot\",\"th\",\"thead\",\"time\",\"tr\",\"track\",\"tt\",\"u\",\"ul\",\"var\",\"video\",\"wbr\"]),Oe=ce([\"svg\",\"a\",\"altglyph\",\"altglyphdef\",\"altglyphitem\",\"animatecolor\",\"animatemotion\",\"animatetransform\",\"circle\",\"clippath\",\"defs\",\"desc\",\"ellipse\",\"filter\",\"font\",\"g\",\"glyph\",\"glyphref\",\"hkern\",\"image\",\"line\",\"lineargradient\",\"marker\",\"mask\",\"metadata\",\"mpath\",\"path\",\"pattern\",\"polygon\",\"polyline\",\"radialgradient\",\"rect\",\"stop\",\"style\",\"switch\",\"symbol\",\"text\",\"textpath\",\"title\",\"tref\",\"tspan\",\"view\",\"vkern\"]),Fe=ce([\"feBlend\",\"feColorMatrix\",\"feComponentTransfer\",\"feComposite\",\"feConvolveMatrix\",\"feDiffuseLighting\",\"feDisplacementMap\",\"feDistantLight\",\"feDropShadow\",\"feFlood\",\"feFuncA\",\"feFuncB\",\"feFuncG\",\"feFuncR\",\"feGaussianBlur\",\"feImage\",\"feMerge\",\"feMergeNode\",\"feMorphology\",\"feOffset\",\"fePointLight\",\"feSpecularLighting\",\"feSpotLight\",\"feTile\",\"feTurbulence\"]),Pe=ce([\"animate\",\"color-profile\",\"cursor\",\"discard\",\"font-face\",\"font-face-format\",\"font-face-name\",\"font-face-src\",\"font-face-uri\",\"foreignobject\",\"hatch\",\"hatchpath\",\"mesh\",\"meshgradient\",\"meshpatch\",\"meshrow\",\"missing-glyph\",\"script\",\"set\",\"solidcolor\",\"unknown\",\"use\"]),Me=ce([\"math\",\"menclose\",\"merror\",\"mfenced\",\"mfrac\",\"mglyph\",\"mi\",\"mlabeledtr\",\"mmultiscripts\",\"mn\",\"mo\",\"mover\",\"mpadded\",\"mphantom\",\"mroot\",\"mrow\",\"ms\",\"mspace\",\"msqrt\",\"mstyle\",\"msub\",\"msup\",\"msubsup\",\"mtable\",\"mtd\",\"mtext\",\"mtr\",\"munder\",\"munderover\",\"mprescripts\"]),Be=ce([\"maction\",\"maligngroup\",\"malignmark\",\"mlongdiv\",\"mscarries\",\"mscarry\",\"msgroup\",\"mstack\",\"msline\",\"msrow\",\"semantics\",\"annotation\",\"annotation-xml\",\"mprescripts\",\"none\"]),_e=ce([\"#text\"]),je=ce([\"accept\",\"action\",\"align\",\"alt\",\"autocapitalize\",\"autocomplete\",\"autopictureinpicture\",\"autoplay\",\"background\",\"bgcolor\",\"border\",\"capture\",\"cellpadding\",\"cellspacing\",\"checked\",\"cite\",\"class\",\"clear\",\"color\",\"cols\",\"colspan\",\"controls\",\"controlslist\",\"coords\",\"crossorigin\",\"datetime\",\"decoding\",\"default\",\"dir\",\"disabled\",\"disablepictureinpicture\",\"disableremoteplayback\",\"download\",\"draggable\",\"enctype\",\"enterkeyhint\",\"face\",\"for\",\"headers\",\"height\",\"hidden\",\"high\",\"href\",\"hreflang\",\"id\",\"inputmode\",\"integrity\",\"ismap\",\"kind\",\"label\",\"lang\",\"list\",\"loading\",\"loop\",\"low\",\"max\",\"maxlength\",\"media\",\"method\",\"min\",\"minlength\",\"multiple\",\"muted\",\"name\",\"nonce\",\"noshade\",\"novalidate\",\"nowrap\",\"open\",\"optimum\",\"pattern\",\"placeholder\",\"playsinline\",\"popover\",\"popovertarget\",\"popovertargetaction\",\"poster\",\"preload\",\"pubdate\",\"radiogroup\",\"readonly\",\"rel\",\"required\",\"rev\",\"reversed\",\"role\",\"rows\",\"rowspan\",\"spellcheck\",\"scope\",\"selected\",\"shape\",\"size\",\"sizes\",\"span\",\"srclang\",\"start\",\"src\",\"srcset\",\"step\",\"style\",\"summary\",\"tabindex\",\"title\",\"translate\",\"type\",\"usemap\",\"valign\",\"value\",\"width\",\"wrap\",\"xmlns\",\"slot\"]),We=ce([\"accent-height\",\"accumulate\",\"additive\",\"alignment-baseline\",\"amplitude\",\"ascent\",\"attributename\",\"attributetype\",\"azimuth\",\"basefrequency\",\"baseline-shift\",\"begin\",\"bias\",\"by\",\"class\",\"clip\",\"clippathunits\",\"clip-path\",\"clip-rule\",\"color\",\"color-interpolation\",\"color-interpolation-filters\",\"color-profile\",\"color-rendering\",\"cx\",\"cy\",\"d\",\"dx\",\"dy\",\"diffuseconstant\",\"direction\",\"display\",\"divisor\",\"dur\",\"edgemode\",\"elevation\",\"end\",\"exponent\",\"fill\",\"fill-opacity\",\"fill-rule\",\"filter\",\"filterunits\",\"flood-color\",\"flood-opacity\",\"font-family\",\"font-size\",\"font-size-adjust\",\"font-stretch\",\"font-style\",\"font-variant\",\"font-weight\",\"fx\",\"fy\",\"g1\",\"g2\",\"glyph-name\",\"glyphref\",\"gradientunits\",\"gradienttransform\",\"height\",\"href\",\"id\",\"image-rendering\",\"in\",\"in2\",\"intercept\",\"k\",\"k1\",\"k2\",\"k3\",\"k4\",\"kerning\",\"keypoints\",\"keysplines\",\"keytimes\",\"lang\",\"lengthadjust\",\"letter-spacing\",\"kernelmatrix\",\"kernelunitlength\",\"lighting-color\",\"local\",\"marker-end\",\"marker-mid\",\"marker-start\",\"markerheight\",\"markerunits\",\"markerwidth\",\"maskcontentunits\",\"maskunits\",\"max\",\"mask\",\"media\",\"method\",\"mode\",\"min\",\"name\",\"numoctaves\",\"offset\",\"operator\",\"opacity\",\"order\",\"orient\",\"orientation\",\"origin\",\"overflow\",\"paint-order\",\"path\",\"pathlength\",\"patterncontentunits\",\"patterntransform\",\"patternunits\",\"points\",\"preservealpha\",\"preserveaspectratio\",\"primitiveunits\",\"r\",\"rx\",\"ry\",\"radius\",\"refx\",\"refy\",\"repeatcount\",\"repeatdur\",\"restart\",\"result\",\"rotate\",\"scale\",\"seed\",\"shape-rendering\",\"slope\",\"specularconstant\",\"specularexponent\",\"spreadmethod\",\"startoffset\",\"stddeviation\",\"stitchtiles\",\"stop-color\",\"stop-opacity\",\"stroke-dasharray\",\"stroke-dashoffset\",\"stroke-linecap\",\"stroke-linejoin\",\"stroke-miterlimit\",\"stroke-opacity\",\"stroke\",\"stroke-width\",\"style\",\"surfacescale\",\"systemlanguage\",\"tabindex\",\"tablevalues\",\"targetx\",\"targety\",\"transform\",\"transform-origin\",\"text-anchor\",\"text-decoration\",\"text-rendering\",\"textlength\",\"type\",\"u1\",\"u2\",\"unicode\",\"values\",\"viewbox\",\"visibility\",\"version\",\"vert-adv-y\",\"vert-origin-x\",\"vert-origin-y\",\"width\",\"word-spacing\",\"wrap\",\"writing-mode\",\"xchannelselector\",\"ychannelselector\",\"x\",\"x1\",\"x2\",\"xmlns\",\"y\",\"y1\",\"y2\",\"z\",\"zoomandpan\"]),Ue=ce([\"accent\",\"accentunder\",\"align\",\"bevelled\",\"close\",\"columnsalign\",\"columnlines\",\"columnspan\",\"denomalign\",\"depth\",\"dir\",\"display\",\"displaystyle\",\"encoding\",\"fence\",\"frame\",\"height\",\"href\",\"id\",\"largeop\",\"length\",\"linethickness\",\"lspace\",\"lquote\",\"mathbackground\",\"mathcolor\",\"mathsize\",\"mathvariant\",\"maxsize\",\"minsize\",\"movablelimits\",\"notation\",\"numalign\",\"open\",\"rowalign\",\"rowlines\",\"rowspacing\",\"rowspan\",\"rspace\",\"rquote\",\"scriptlevel\",\"scriptminsize\",\"scriptsizemultiplier\",\"selection\",\"separator\",\"separators\",\"stretchy\",\"subscriptshift\",\"supscriptshift\",\"symmetric\",\"voffset\",\"width\",\"xmlns\"]),Ve=ce([\"xlink:href\",\"xml:id\",\"xlink:title\",\"xml:space\",\"xmlns:xlink\"]),ze=ue(/\\{\\{[\\w\\W]*|[\\w\\W]*\\}\\}/gm),qe=ue(/<%[\\w\\W]*|[\\w\\W]*%>/gm),He=ue(/\\$\\{[\\w\\W]*}/gm),Je=ue(/^data-[\\-\\w.\\u00B7-\\uFFFF]+$/),Ke=ue(/^aria-[\\-\\w]+$/),Ge=ue(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i),Ye=ue(/^(?:\\w+script|data):/i),$e=ue(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g),Xe=ue(/^html$/i),Ze=ue(/^[a-z][.\\w]*(-[.\\w]+)+$/i);var Qe=Object.freeze({__proto__:null,ARIA_ATTR:Ke,ATTR_WHITESPACE:$e,CUSTOM_ELEMENT:Ze,DATA_ATTR:Je,DOCTYPE_NAME:Xe,ERB_EXPR:qe,IS_ALLOWED_URI:Ge,IS_SCRIPT_OR_DATA:Ye,MUSTACHE_EXPR:ze,TMPLIT_EXPR:He});const ti=1,ei=3,ii=7,ni=8,ri=9,oi=function(){return\"undefined\"==typeof window?null:window};var si=function t(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:oi();const i=e=>t(e);if(i.version=\"3.2.3\",i.removed=[],!e||!e.document||e.document.nodeType!==ri)return i.isSupported=!1,i;let{document:n}=e;const r=n,o=r.currentScript,{DocumentFragment:s,HTMLTemplateElement:a,Node:l,Element:c,NodeFilter:u,NamedNodeMap:h=e.NamedNodeMap||e.MozNamedAttrMap,HTMLFormElement:d,DOMParser:g,trustedTypes:m}=e,p=c.prototype,f=Ne(p,\"cloneNode\"),b=Ne(p,\"remove\"),v=Ne(p,\"nextSibling\"),A=Ne(p,\"childNodes\"),y=Ne(p,\"parentNode\");if(\"function\"==typeof a){const t=n.createElement(\"template\");t.content&&t.content.ownerDocument&&(n=t.content.ownerDocument)}let x,C=\"\";const{implementation:E,createNodeIterator:S,createDocumentFragment:R,getElementsByTagName:k}=n,{importNode:T}=r;let w={afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]};i.isSupported=\"function\"==typeof re&&\"function\"==typeof y&&E&&void 0!==E.createHTMLDocument;const{MUSTACHE_EXPR:L,ERB_EXPR:D,TMPLIT_EXPR:N,DATA_ATTR:I,ARIA_ATTR:O,IS_SCRIPT_OR_DATA:F,ATTR_WHITESPACE:P,CUSTOM_ELEMENT:M}=Qe;let{IS_ALLOWED_URI:B}=Qe,_=null;const j=we({},[...Ie,...Oe,...Fe,...Me,..._e]);let W=null;const U=we({},[...je,...We,...Ue,...Ve]);let V=Object.seal(he(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),z=null,q=null,H=!0,J=!0,K=!1,G=!0,Y=!1,$=!0,X=!1,Z=!1,Q=!1,tt=!1,et=!1,it=!1,nt=!0,rt=!1,ot=!0,st=!1,at={},lt=null;const ct=we({},[\"annotation-xml\",\"audio\",\"colgroup\",\"desc\",\"foreignobject\",\"head\",\"iframe\",\"math\",\"mi\",\"mn\",\"mo\",\"ms\",\"mtext\",\"noembed\",\"noframes\",\"noscript\",\"plaintext\",\"script\",\"style\",\"svg\",\"template\",\"thead\",\"title\",\"video\",\"xmp\"]);let ut=null;const ht=we({},[\"audio\",\"video\",\"img\",\"source\",\"image\",\"track\"]);let dt=null;const gt=we({},[\"alt\",\"class\",\"for\",\"id\",\"label\",\"name\",\"pattern\",\"placeholder\",\"role\",\"summary\",\"title\",\"value\",\"style\",\"xmlns\"]),mt=\"http://www.w3.org/1998/Math/MathML\",pt=\"http://www.w3.org/2000/svg\",ft=\"http://www.w3.org/1999/xhtml\";let bt=ft,vt=!1,At=null;const yt=we({},[mt,pt,ft],ve);let xt=we({},[\"mi\",\"mo\",\"mn\",\"ms\",\"mtext\"]),Ct=we({},[\"annotation-xml\"]);const Et=we({},[\"title\",\"style\",\"font\",\"a\",\"script\"]);let St=null;const Rt=[\"application/xhtml+xml\",\"text/html\"];let kt=null,Tt=null;const wt=n.createElement(\"form\"),Lt=function(t){return t instanceof RegExp||t instanceof Function},Dt=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!Tt||Tt!==t){if(t&&\"object\"==typeof t||(t={}),t=De(t),St=-1===Rt.indexOf(t.PARSER_MEDIA_TYPE)?\"text/html\":t.PARSER_MEDIA_TYPE,kt=\"application/xhtml+xml\"===St?ve:be,_=Ee(t,\"ALLOWED_TAGS\")?we({},t.ALLOWED_TAGS,kt):j,W=Ee(t,\"ALLOWED_ATTR\")?we({},t.ALLOWED_ATTR,kt):U,At=Ee(t,\"ALLOWED_NAMESPACES\")?we({},t.ALLOWED_NAMESPACES,ve):yt,dt=Ee(t,\"ADD_URI_SAFE_ATTR\")?we(De(gt),t.ADD_URI_SAFE_ATTR,kt):gt,ut=Ee(t,\"ADD_DATA_URI_TAGS\")?we(De(ht),t.ADD_DATA_URI_TAGS,kt):ht,lt=Ee(t,\"FORBID_CONTENTS\")?we({},t.FORBID_CONTENTS,kt):ct,z=Ee(t,\"FORBID_TAGS\")?we({},t.FORBID_TAGS,kt):{},q=Ee(t,\"FORBID_ATTR\")?we({},t.FORBID_ATTR,kt):{},at=!!Ee(t,\"USE_PROFILES\")&&t.USE_PROFILES,H=!1!==t.ALLOW_ARIA_ATTR,J=!1!==t.ALLOW_DATA_ATTR,K=t.ALLOW_UNKNOWN_PROTOCOLS||!1,G=!1!==t.ALLOW_SELF_CLOSE_IN_ATTR,Y=t.SAFE_FOR_TEMPLATES||!1,$=!1!==t.SAFE_FOR_XML,X=t.WHOLE_DOCUMENT||!1,tt=t.RETURN_DOM||!1,et=t.RETURN_DOM_FRAGMENT||!1,it=t.RETURN_TRUSTED_TYPE||!1,Q=t.FORCE_BODY||!1,nt=!1!==t.SANITIZE_DOM,rt=t.SANITIZE_NAMED_PROPS||!1,ot=!1!==t.KEEP_CONTENT,st=t.IN_PLACE||!1,B=t.ALLOWED_URI_REGEXP||Ge,bt=t.NAMESPACE||ft,xt=t.MATHML_TEXT_INTEGRATION_POINTS||xt,Ct=t.HTML_INTEGRATION_POINTS||Ct,V=t.CUSTOM_ELEMENT_HANDLING||{},t.CUSTOM_ELEMENT_HANDLING&&Lt(t.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(V.tagNameCheck=t.CUSTOM_ELEMENT_HANDLING.tagNameCheck),t.CUSTOM_ELEMENT_HANDLING&&Lt(t.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(V.attributeNameCheck=t.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),t.CUSTOM_ELEMENT_HANDLING&&\"boolean\"==typeof t.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements&&(V.allowCustomizedBuiltInElements=t.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),Y&&(J=!1),et&&(tt=!0),at&&(_=we({},_e),W=[],!0===at.html&&(we(_,Ie),we(W,je)),!0===at.svg&&(we(_,Oe),we(W,We),we(W,Ve)),!0===at.svgFilters&&(we(_,Fe),we(W,We),we(W,Ve)),!0===at.mathMl&&(we(_,Me),we(W,Ue),we(W,Ve))),t.ADD_TAGS&&(_===j&&(_=De(_)),we(_,t.ADD_TAGS,kt)),t.ADD_ATTR&&(W===U&&(W=De(W)),we(W,t.ADD_ATTR,kt)),t.ADD_URI_SAFE_ATTR&&we(dt,t.ADD_URI_SAFE_ATTR,kt),t.FORBID_CONTENTS&&(lt===ct&&(lt=De(lt)),we(lt,t.FORBID_CONTENTS,kt)),ot&&(_[\"#text\"]=!0),X&&we(_,[\"html\",\"head\",\"body\"]),_.table&&(we(_,[\"tbody\"]),delete z.tbody),t.TRUSTED_TYPES_POLICY){if(\"function\"!=typeof t.TRUSTED_TYPES_POLICY.createHTML)throw Re('TRUSTED_TYPES_POLICY configuration option must provide a \"createHTML\" hook.');if(\"function\"!=typeof t.TRUSTED_TYPES_POLICY.createScriptURL)throw Re('TRUSTED_TYPES_POLICY configuration option must provide a \"createScriptURL\" hook.');x=t.TRUSTED_TYPES_POLICY,C=x.createHTML(\"\")}else void 0===x&&(x=function(t,e){if(\"object\"!=typeof t||\"function\"!=typeof t.createPolicy)return null;let i=null;const n=\"data-tt-policy-suffix\";e&&e.hasAttribute(n)&&(i=e.getAttribute(n));const r=\"dompurify\"+(i?\"#\"+i:\"\");try{return t.createPolicy(r,{createHTML:t=>t,createScriptURL:t=>t})}catch(t){return console.warn(\"TrustedTypes policy \"+r+\" could not be created.\"),null}}(m,o)),null!==x&&\"string\"==typeof C&&(C=x.createHTML(\"\"));ce&&ce(t),Tt=t}},Nt=we({},[...Oe,...Fe,...Pe]),It=we({},[...Me,...Be]),Ot=function(t){fe(i.removed,{element:t});try{y(t).removeChild(t)}catch(e){b(t)}},Ft=function(t,e){try{fe(i.removed,{attribute:e.getAttributeNode(t),from:e})}catch(t){fe(i.removed,{attribute:null,from:e})}if(e.removeAttribute(t),\"is\"===t)if(tt||et)try{Ot(e)}catch(t){}else try{e.setAttribute(t,\"\")}catch(t){}},Pt=function(t){let e=null,i=null;if(Q)t=\"<remove></remove>\"+t;else{const e=Ae(t,/^[\\r\\n\\t ]+/);i=e&&e[0]}\"application/xhtml+xml\"===St&&bt===ft&&(t='<html xmlns=\"http://www.w3.org/1999/xhtml\"><head></head><body>'+t+\"</body></html>\");const r=x?x.createHTML(t):t;if(bt===ft)try{e=(new g).parseFromString(r,St)}catch(t){}if(!e||!e.documentElement){e=E.createDocument(bt,\"template\",null);try{e.documentElement.innerHTML=vt?C:r}catch(t){}}const o=e.body||e.documentElement;return t&&i&&o.insertBefore(n.createTextNode(i),o.childNodes[0]||null),bt===ft?k.call(e,X?\"html\":\"body\")[0]:X?e.documentElement:o},Mt=function(t){return S.call(t.ownerDocument||t,t,u.SHOW_ELEMENT|u.SHOW_COMMENT|u.SHOW_TEXT|u.SHOW_PROCESSING_INSTRUCTION|u.SHOW_CDATA_SECTION,null)},Bt=function(t){return t instanceof d&&(\"string\"!=typeof t.nodeName||\"string\"!=typeof t.textContent||\"function\"!=typeof t.removeChild||!(t.attributes instanceof h)||\"function\"!=typeof t.removeAttribute||\"function\"!=typeof t.setAttribute||\"string\"!=typeof t.namespaceURI||\"function\"!=typeof t.insertBefore||\"function\"!=typeof t.hasChildNodes)},_t=function(t){return\"function\"==typeof l&&t instanceof l};function jt(t,e,n){me(t,(t=>{t.call(i,e,n,Tt)}))}const Wt=function(t){let e=null;if(jt(w.beforeSanitizeElements,t,null),Bt(t))return Ot(t),!0;const n=kt(t.nodeName);if(jt(w.uponSanitizeElement,t,{tagName:n,allowedTags:_}),t.hasChildNodes()&&!_t(t.firstElementChild)&&Se(/<[/\\w]/g,t.innerHTML)&&Se(/<[/\\w]/g,t.textContent))return Ot(t),!0;if(t.nodeType===ii)return Ot(t),!0;if($&&t.nodeType===ni&&Se(/<[/\\w]/g,t.data))return Ot(t),!0;if(!_[n]||z[n]){if(!z[n]&&Vt(n)){if(V.tagNameCheck instanceof RegExp&&Se(V.tagNameCheck,n))return!1;if(V.tagNameCheck instanceof Function&&V.tagNameCheck(n))return!1}if(ot&&!lt[n]){const e=y(t)||t.parentNode,i=A(t)||t.childNodes;if(i&&e){for(let n=i.length-1;n>=0;--n){const r=f(i[n],!0);r.__removalCount=(t.__removalCount||0)+1,e.insertBefore(r,v(t))}}}return Ot(t),!0}return t instanceof c&&!function(t){let e=y(t);e&&e.tagName||(e={namespaceURI:bt,tagName:\"template\"});const i=be(t.tagName),n=be(e.tagName);return!!At[t.namespaceURI]&&(t.namespaceURI===pt?e.namespaceURI===ft?\"svg\"===i:e.namespaceURI===mt?\"svg\"===i&&(\"annotation-xml\"===n||xt[n]):Boolean(Nt[i]):t.namespaceURI===mt?e.namespaceURI===ft?\"math\"===i:e.namespaceURI===pt?\"math\"===i&&Ct[n]:Boolean(It[i]):t.namespaceURI===ft?!(e.namespaceURI===pt&&!Ct[n])&&!(e.namespaceURI===mt&&!xt[n])&&!It[i]&&(Et[i]||!Nt[i]):!(\"application/xhtml+xml\"!==St||!At[t.namespaceURI]))}(t)?(Ot(t),!0):\"noscript\"!==n&&\"noembed\"!==n&&\"noframes\"!==n||!Se(/<\\/no(script|embed|frames)/i,t.innerHTML)?(Y&&t.nodeType===ei&&(e=t.textContent,me([L,D,N],(t=>{e=ye(e,t,\" \")})),t.textContent!==e&&(fe(i.removed,{element:t.cloneNode()}),t.textContent=e)),jt(w.afterSanitizeElements,t,null),!1):(Ot(t),!0)},Ut=function(t,e,i){if(nt&&(\"id\"===e||\"name\"===e)&&(i in n||i in wt))return!1;if(J&&!q[e]&&Se(I,e));else if(H&&Se(O,e));else if(!W[e]||q[e]){if(!(Vt(t)&&(V.tagNameCheck instanceof RegExp&&Se(V.tagNameCheck,t)||V.tagNameCheck instanceof Function&&V.tagNameCheck(t))&&(V.attributeNameCheck instanceof RegExp&&Se(V.attributeNameCheck,e)||V.attributeNameCheck instanceof Function&&V.attributeNameCheck(e))||\"is\"===e&&V.allowCustomizedBuiltInElements&&(V.tagNameCheck instanceof RegExp&&Se(V.tagNameCheck,i)||V.tagNameCheck instanceof Function&&V.tagNameCheck(i))))return!1}else if(dt[e]);else if(Se(B,ye(i,P,\"\")));else if(\"src\"!==e&&\"xlink:href\"!==e&&\"href\"!==e||\"script\"===t||0!==xe(i,\"data:\")||!ut[t]){if(K&&!Se(F,ye(i,P,\"\")));else if(i)return!1}else;return!0},Vt=function(t){return\"annotation-xml\"!==t&&Ae(t,M)},zt=function(t){jt(w.beforeSanitizeAttributes,t,null);const{attributes:e}=t;if(!e||Bt(t))return;const n={attrName:\"\",attrValue:\"\",keepAttr:!0,allowedAttributes:W,forceKeepAttr:void 0};let r=e.length;for(;r--;){const o=e[r],{name:s,namespaceURI:a,value:l}=o,c=kt(s);let u=\"value\"===s?l:Ce(l);if(n.attrName=c,n.attrValue=u,n.keepAttr=!0,n.forceKeepAttr=void 0,jt(w.uponSanitizeAttribute,t,n),u=n.attrValue,!rt||\"id\"!==c&&\"name\"!==c||(Ft(s,t),u=\"user-content-\"+u),$&&Se(/((--!?|])>)|<\\/(style|title)/i,u)){Ft(s,t);continue}if(n.forceKeepAttr)continue;if(Ft(s,t),!n.keepAttr)continue;if(!G&&Se(/\\/>/i,u)){Ft(s,t);continue}Y&&me([L,D,N],(t=>{u=ye(u,t,\" \")}));const h=kt(t.nodeName);if(Ut(h,c,u)){if(x&&\"object\"==typeof m&&\"function\"==typeof m.getAttributeType)if(a);else switch(m.getAttributeType(h,c)){case\"TrustedHTML\":u=x.createHTML(u);break;case\"TrustedScriptURL\":u=x.createScriptURL(u)}try{a?t.setAttributeNS(a,s,u):t.setAttribute(s,u),Bt(t)?Ot(t):pe(i.removed)}catch(t){}}}jt(w.afterSanitizeAttributes,t,null)},qt=function t(e){let i=null;const n=Mt(e);for(jt(w.beforeSanitizeShadowDOM,e,null);i=n.nextNode();)jt(w.uponSanitizeShadowNode,i,null),Wt(i),zt(i),i.content instanceof s&&t(i.content);jt(w.afterSanitizeShadowDOM,e,null)};return i.sanitize=function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=null,o=null,a=null,c=null;if(vt=!t,vt&&(t=\"\\x3c!--\\x3e\"),\"string\"!=typeof t&&!_t(t)){if(\"function\"!=typeof t.toString)throw Re(\"toString is not a function\");if(\"string\"!=typeof(t=t.toString()))throw Re(\"dirty is not a string, aborting\")}if(!i.isSupported)return t;if(Z||Dt(e),i.removed=[],\"string\"==typeof t&&(st=!1),st){if(t.nodeName){const e=kt(t.nodeName);if(!_[e]||z[e])throw Re(\"root node is forbidden and cannot be sanitized in-place\")}}else if(t instanceof l)n=Pt(\"\\x3c!----\\x3e\"),o=n.ownerDocument.importNode(t,!0),o.nodeType===ti&&\"BODY\"===o.nodeName||\"HTML\"===o.nodeName?n=o:n.appendChild(o);else{if(!tt&&!Y&&!X&&-1===t.indexOf(\"<\"))return x&&it?x.createHTML(t):t;if(n=Pt(t),!n)return tt?null:it?C:\"\"}n&&Q&&Ot(n.firstChild);const u=Mt(st?t:n);for(;a=u.nextNode();)Wt(a),zt(a),a.content instanceof s&&qt(a.content);if(st)return t;if(tt){if(et)for(c=R.call(n.ownerDocument);n.firstChild;)c.appendChild(n.firstChild);else c=n;return(W.shadowroot||W.shadowrootmode)&&(c=T.call(r,c,!0)),c}let h=X?n.outerHTML:n.innerHTML;return X&&_[\"!doctype\"]&&n.ownerDocument&&n.ownerDocument.doctype&&n.ownerDocument.doctype.name&&Se(Xe,n.ownerDocument.doctype.name)&&(h=\"<!DOCTYPE \"+n.ownerDocument.doctype.name+\">\\n\"+h),Y&&me([L,D,N],(t=>{h=ye(h,t,\" \")})),x&&it?x.createHTML(h):h},i.setConfig=function(){Dt(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}),Z=!0},i.clearConfig=function(){Tt=null,Z=!1},i.isValidAttribute=function(t,e,i){Tt||Dt({});const n=kt(t),r=kt(e);return Ut(n,r,i)},i.addHook=function(t,e){\"function\"==typeof e&&fe(w[t],e)},i.removeHook=function(t){return pe(w[t])},i.removeHooks=function(t){w[t]=[]},i.removeAllHooks=function(){w={afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},i}();si.addHook(\"uponSanitizeAttribute\",(function(t,e){/^data-trix-/.test(e.attrName)&&(e.forceKeepAttr=!0)}));const ai=\"style href src width height language class\".split(\" \"),li=\"javascript:\".split(\" \"),ci=\"script iframe form noscript\".split(\" \");class ui extends q{static setHTML(t,e){const i=new this(e).sanitize(),n=i.getHTML?i.getHTML():i.outerHTML;t.innerHTML=n}static sanitize(t,e){const i=new this(t,e);return i.sanitize(),i}constructor(t){let{allowedAttributes:e,forbiddenProtocols:i,forbiddenElements:n}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};super(...arguments),this.allowedAttributes=e||ai,this.forbiddenProtocols=i||li,this.forbiddenElements=n||ci,this.body=hi(t)}sanitize(){return this.sanitizeElements(),this.normalizeListElementNesting(),si.setConfig(l),this.body=si.sanitize(this.body),this.body}getHTML(){return this.body.innerHTML}getBody(){return this.body}sanitizeElements(){const t=R(this.body),e=[];for(;t.nextNode();){const i=t.currentNode;switch(i.nodeType){case Node.ELEMENT_NODE:this.elementIsRemovable(i)?e.push(i):this.sanitizeElement(i);break;case Node.COMMENT_NODE:e.push(i)}}return e.forEach((t=>S(t))),this.body}sanitizeElement(t){return t.hasAttribute(\"href\")&&this.forbiddenProtocols.includes(t.protocol)&&t.removeAttribute(\"href\"),Array.from(t.attributes).forEach((e=>{let{name:i}=e;this.allowedAttributes.includes(i)||0===i.indexOf(\"data-trix\")||t.removeAttribute(i)})),t}normalizeListElementNesting(){return Array.from(this.body.querySelectorAll(\"ul,ol\")).forEach((t=>{const e=t.previousElementSibling;e&&\"li\"===k(e)&&e.appendChild(t)})),this.body}elementIsRemovable(t){if((null==t?void 0:t.nodeType)===Node.ELEMENT_NODE)return this.elementIsForbidden(t)||this.elementIsntSerializable(t)}elementIsForbidden(t){return this.forbiddenElements.includes(k(t))}elementIsntSerializable(t){return\"false\"===t.getAttribute(\"data-trix-serialize\")&&!P(t)}}const hi=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"\";t=t.replace(/<\\/html[^>]*>[^]*$/i,\"</html>\");const e=document.implementation.createHTMLDocument(\"\");return e.documentElement.innerHTML=t,Array.from(e.head.querySelectorAll(\"style\")).forEach((t=>{e.body.appendChild(t)})),e.body},{css:di}=z;class gi extends ie{constructor(){super(...arguments),this.attachment=this.object,this.attachment.uploadProgressDelegate=this,this.attachmentPiece=this.options.piece}createContentNodes(){return[]}createNodes(){let t;const e=t=T({tagName:\"figure\",className:this.getClassName(),data:this.getData(),editable:!1}),i=this.getHref();return i&&(t=T({tagName:\"a\",editable:!1,attributes:{href:i,tabindex:-1}}),e.appendChild(t)),this.attachment.hasContent()?ui.setHTML(t,this.attachment.getContent()):this.createContentNodes().forEach((e=>{t.appendChild(e)})),t.appendChild(this.createCaptionElement()),this.attachment.isPending()&&(this.progressElement=T({tagName:\"progress\",attributes:{class:di.attachmentProgress,value:this.attachment.getUploadProgress(),max:100},data:{trixMutable:!0,trixStoreKey:[\"progressElement\",this.attachment.id].join(\"/\")}}),e.appendChild(this.progressElement)),[mi(\"left\"),e,mi(\"right\")]}createCaptionElement(){const t=T({tagName:\"figcaption\",className:di.attachmentCaption}),e=this.attachmentPiece.getCaption();if(e)t.classList.add(\"\".concat(di.attachmentCaption,\"--edited\")),t.textContent=e;else{let e,i;const n=this.getCaptionConfig();if(n.name&&(e=this.attachment.getFilename()),n.size&&(i=this.attachment.getFormattedFilesize()),e){const i=T({tagName:\"span\",className:di.attachmentName,textContent:e});t.appendChild(i)}if(i){e&&t.appendChild(document.createTextNode(\" \"));const n=T({tagName:\"span\",className:di.attachmentSize,textContent:i});t.appendChild(n)}}return t}getClassName(){const t=[di.attachment,\"\".concat(di.attachment,\"--\").concat(this.attachment.getType())],e=this.attachment.getExtension();return e&&t.push(\"\".concat(di.attachment,\"--\").concat(e)),t.join(\" \")}getData(){const t={trixAttachment:JSON.stringify(this.attachment),trixContentType:this.attachment.getContentType(),trixId:this.attachment.id},{attributes:e}=this.attachmentPiece;return e.isEmpty()||(t.trixAttributes=JSON.stringify(e)),this.attachment.isPending()&&(t.trixSerialize=!1),t}getHref(){if(!pi(this.attachment.getContent(),\"a\"))return this.attachment.getHref()}getCaptionConfig(){var t;const e=this.attachment.getType(),n=kt(null===(t=i[e])||void 0===t?void 0:t.caption);return\"file\"===e&&(n.name=!0),n}findProgressElement(){var t;return null===(t=this.findElement())||void 0===t?void 0:t.querySelector(\"progress\")}attachmentDidChangeUploadProgress(){const t=this.attachment.getUploadProgress(),e=this.findProgressElement();e&&(e.value=t)}}const mi=t=>T({tagName:\"span\",textContent:d,data:{trixCursorTarget:t,trixSerialize:!1}}),pi=function(t,e){const i=T(\"div\");return ui.setHTML(i,t||\"\"),i.querySelector(e)};class fi extends gi{constructor(){super(...arguments),this.attachment.previewDelegate=this}createContentNodes(){return this.image=T({tagName:\"img\",attributes:{src:\"\"},data:{trixMutable:!0}}),this.refresh(this.image),[this.image]}createCaptionElement(){const t=super.createCaptionElement(...arguments);return t.textContent||t.setAttribute(\"data-trix-placeholder\",c.captionPlaceholder),t}refresh(t){var e;t||(t=null===(e=this.findElement())||void 0===e?void 0:e.querySelector(\"img\"));if(t)return this.updateAttributesForImage(t)}updateAttributesForImage(t){const e=this.attachment.getURL(),i=this.attachment.getPreviewURL();if(t.src=i||e,i===e)t.removeAttribute(\"data-trix-serialized-attributes\");else{const i=JSON.stringify({src:e});t.setAttribute(\"data-trix-serialized-attributes\",i)}const n=this.attachment.getWidth(),r=this.attachment.getHeight();null!=n&&(t.width=n),null!=r&&(t.height=r);const o=[\"imageElement\",this.attachment.id,t.src,t.width,t.height].join(\"/\");t.dataset.trixStoreKey=o}attachmentDidChangeAttributes(){return this.refresh(this.image),this.refresh()}}class bi extends ie{constructor(){super(...arguments),this.piece=this.object,this.attributes=this.piece.getAttributes(),this.textConfig=this.options.textConfig,this.context=this.options.context,this.piece.attachment?this.attachment=this.piece.attachment:this.string=this.piece.toString()}createNodes(){let t=this.attachment?this.createAttachmentNodes():this.createStringNodes();const e=this.createElement();if(e){const i=function(t){for(;null!==(e=t)&&void 0!==e&&e.firstElementChild;){var e;t=t.firstElementChild}return t}(e);Array.from(t).forEach((t=>{i.appendChild(t)})),t=[e]}return t}createAttachmentNodes(){const t=this.attachment.isPreviewable()?fi:gi;return this.createChildView(t,this.piece.attachment,{piece:this.piece}).getNodes()}createStringNodes(){var t;if(null!==(t=this.textConfig)&&void 0!==t&&t.plaintext)return[document.createTextNode(this.string)];{const t=[],e=this.string.split(\"\\n\");for(let i=0;i<e.length;i++){const n=e[i];if(i>0){const e=T(\"br\");t.push(e)}if(n.length){const e=document.createTextNode(this.preserveSpaces(n));t.push(e)}}return t}}createElement(){let t,e,i;const n={};for(e in this.attributes){i=this.attributes[e];const o=ft(e);if(o){if(o.tagName){var r;const e=T(o.tagName);r?(r.appendChild(e),r=e):t=r=e}if(o.styleProperty&&(n[o.styleProperty]=i),o.style)for(e in o.style)i=o.style[e],n[e]=i}}if(Object.keys(n).length)for(e in t||(t=T(\"span\")),n)i=n[e],t.style[e]=i;return t}createContainerElement(){for(const t in this.attributes){const e=this.attributes[t],i=ft(t);if(i&&i.groupTagName){const n={};return n[t]=e,T(i.groupTagName,n)}}}preserveSpaces(t){return this.context.isLast&&(t=t.replace(/\\ $/,g)),t=t.replace(/(\\S)\\ {3}(\\S)/g,\"$1 \".concat(g,\" $2\")).replace(/\\ {2}/g,\"\".concat(g,\" \")).replace(/\\ {2}/g,\" \".concat(g)),(this.context.isFirst||this.context.followsWhitespace)&&(t=t.replace(/^\\ /,g)),t}}class vi extends ie{constructor(){super(...arguments),this.text=this.object,this.textConfig=this.options.textConfig}createNodes(){const t=[],e=Xt.groupObjects(this.getPieces()),i=e.length-1;for(let r=0;r<e.length;r++){const o=e[r],s={};0===r&&(s.isFirst=!0),r===i&&(s.isLast=!0),Ai(n)&&(s.followsWhitespace=!0);const a=this.findOrCreateCachedChildView(bi,o,{textConfig:this.textConfig,context:s});t.push(...Array.from(a.getNodes()||[]));var n=o}return t}getPieces(){return Array.from(this.text.getPieces()).filter((t=>!t.hasAttribute(\"blockBreak\")))}}const Ai=t=>/\\s$/.test(null==t?void 0:t.toString()),{css:yi}=z;class xi extends ie{constructor(){super(...arguments),this.block=this.object,this.attributes=this.block.getAttributes()}createNodes(){const t=[document.createComment(\"block\")];if(this.block.isEmpty())t.push(T(\"br\"));else{var e;const i=null===(e=mt(this.block.getLastAttribute()))||void 0===e?void 0:e.text,n=this.findOrCreateCachedChildView(vi,this.block.text,{textConfig:i});t.push(...Array.from(n.getNodes()||[])),this.shouldAddExtraNewlineElement()&&t.push(T(\"br\"))}if(this.attributes.length)return t;{let e;const{tagName:i}=n.default;this.block.isRTL()&&(e={dir:\"rtl\"});const r=T({tagName:i,attributes:e});return t.forEach((t=>r.appendChild(t))),[r]}}createContainerElement(t){const e={};let i;const n=this.attributes[t],{tagName:r,htmlAttributes:o=[]}=mt(n);if(0===t&&this.block.isRTL()&&Object.assign(e,{dir:\"rtl\"}),\"attachmentGallery\"===n){const t=this.block.getBlockBreakPosition();i=\"\".concat(yi.attachmentGallery,\" \").concat(yi.attachmentGallery,\"--\").concat(t)}return Object.entries(this.block.htmlAttributes).forEach((t=>{let[i,n]=t;o.includes(i)&&(e[i]=n)})),T({tagName:r,className:i,attributes:e})}shouldAddExtraNewlineElement(){return/\\n\\n$/.test(this.block.toString())}}class Ci extends ie{static render(t){const e=T(\"div\"),i=new this(t,{element:e});return i.render(),i.sync(),e}constructor(){super(...arguments),this.element=this.options.element,this.elementStore=new Qt,this.setDocument(this.object)}setDocument(t){t.isEqualTo(this.document)||(this.document=this.object=t)}render(){if(this.childViews=[],this.shadowElement=T(\"div\"),!this.document.isEmpty()){const t=Xt.groupObjects(this.document.getBlocks(),{asTree:!0});Array.from(t).forEach((t=>{const e=this.findOrCreateCachedChildView(xi,t);Array.from(e.getNodes()).map((t=>this.shadowElement.appendChild(t)))}))}}isSynced(){return Si(this.shadowElement,this.element)}sync(){const t=this.createDocumentFragmentForSync();for(;this.element.lastChild;)this.element.removeChild(this.element.lastChild);return this.element.appendChild(t),this.didSync()}didSync(){return this.elementStore.reset(Ei(this.element)),Rt((()=>this.garbageCollectCachedViews()))}createDocumentFragmentForSync(){const t=document.createDocumentFragment();return Array.from(this.shadowElement.childNodes).forEach((e=>{t.appendChild(e.cloneNode(!0))})),Array.from(Ei(t)).forEach((t=>{const e=this.elementStore.remove(t);e&&t.parentNode.replaceChild(e,t)})),t}}const Ei=t=>t.querySelectorAll(\"[data-trix-store-key]\"),Si=(t,e)=>Ri(t.innerHTML)===Ri(e.innerHTML),Ri=t=>t.replace(/&nbsp;/g,\" \");function ki(t){var e,i;function n(e,i){try{var o=t[e](i),s=o.value,a=s instanceof Ti;Promise.resolve(a?s.v:s).then((function(i){if(a){var l=\"return\"===e?\"return\":\"next\";if(!s.k||i.done)return n(l,i);i=t[l](i).value}r(o.done?\"return\":\"normal\",i)}),(function(t){n(\"throw\",t)}))}catch(t){r(\"throw\",t)}}function r(t,r){switch(t){case\"return\":e.resolve({value:r,done:!0});break;case\"throw\":e.reject(r);break;default:e.resolve({value:r,done:!1})}(e=e.next)?n(e.key,e.arg):i=null}this._invoke=function(t,r){return new Promise((function(o,s){var a={key:t,arg:r,resolve:o,reject:s,next:null};i?i=i.next=a:(e=i=a,n(t,r))}))},\"function\"!=typeof t.return&&(this.return=void 0)}function Ti(t,e){this.v=t,this.k=e}function wi(t,e,i){return(e=Li(e))in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}function Li(t){var e=function(t,e){if(\"object\"!=typeof t||null===t)return t;var i=t[Symbol.toPrimitive];if(void 0!==i){var n=i.call(t,e||\"default\");if(\"object\"!=typeof n)return n;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(\"string\"===e?String:Number)(t)}(t,\"string\");return\"symbol\"==typeof e?e:String(e)}ki.prototype[\"function\"==typeof Symbol&&Symbol.asyncIterator||\"@@asyncIterator\"]=function(){return this},ki.prototype.next=function(t){return this._invoke(\"next\",t)},ki.prototype.throw=function(t){return this._invoke(\"throw\",t)},ki.prototype.return=function(t){return this._invoke(\"return\",t)};function Di(t,e){return Oi(t,Ii(t,e,\"get\"))}function Ni(t,e,i){return Fi(t,Ii(t,e,\"set\"),i),i}function Ii(t,e,i){if(!e.has(t))throw new TypeError(\"attempted to \"+i+\" private field on non-instance\");return e.get(t)}function Oi(t,e){return e.get?e.get.call(t):e.value}function Fi(t,e,i){if(e.set)e.set.call(t,i);else{if(!e.writable)throw new TypeError(\"attempted to set read only private field\");e.value=i}}function Pi(t,e,i){if(!e.has(t))throw new TypeError(\"attempted to get private field on non-instance\");return i}function Mi(t,e){if(e.has(t))throw new TypeError(\"Cannot initialize the same private elements twice on an object\")}function Bi(t,e,i){Mi(t,e),e.set(t,i)}class _i extends rt{static registerType(t,e){e.type=t,this.types[t]=e}static fromJSON(t){const e=this.types[t.type];if(e)return e.fromJSON(t)}constructor(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};super(...arguments),this.attributes=Ht.box(e)}copyWithAttributes(t){return new this.constructor(this.getValue(),t)}copyWithAdditionalAttributes(t){return this.copyWithAttributes(this.attributes.merge(t))}copyWithoutAttribute(t){return this.copyWithAttributes(this.attributes.remove(t))}copy(){return this.copyWithAttributes(this.attributes)}getAttribute(t){return this.attributes.get(t)}getAttributesHash(){return this.attributes}getAttributes(){return this.attributes.toObject()}hasAttribute(t){return this.attributes.has(t)}hasSameStringValueAsPiece(t){return t&&this.toString()===t.toString()}hasSameAttributesAsPiece(t){return t&&(this.attributes===t.attributes||this.attributes.isEqualTo(t.attributes))}isBlockBreak(){return!1}isEqualTo(t){return super.isEqualTo(...arguments)||this.hasSameConstructorAs(t)&&this.hasSameStringValueAsPiece(t)&&this.hasSameAttributesAsPiece(t)}isEmpty(){return 0===this.length}isSerializable(){return!0}toJSON(){return{type:this.constructor.type,attributes:this.getAttributes()}}contentsForInspection(){return{type:this.constructor.type,attributes:this.attributes.inspect()}}canBeGrouped(){return this.hasAttribute(\"href\")}canBeGroupedWith(t){return this.getAttribute(\"href\")===t.getAttribute(\"href\")}getLength(){return this.length}canBeConsolidatedWith(t){return!1}}wi(_i,\"types\",{});class ji extends ee{constructor(t){super(...arguments),this.url=t}perform(t){const e=new Image;e.onload=()=>(e.width=this.width=e.naturalWidth,e.height=this.height=e.naturalHeight,t(!0,e)),e.onerror=()=>t(!1),e.src=this.url}}class Wi extends rt{static attachmentForFile(t){const e=new this(this.attributesForFile(t));return e.setFile(t),e}static attributesForFile(t){return new Ht({filename:t.name,filesize:t.size,contentType:t.type})}static fromJSON(t){return new this(t)}constructor(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};super(t),this.releaseFile=this.releaseFile.bind(this),this.attributes=Ht.box(t),this.didChangeAttributes()}getAttribute(t){return this.attributes.get(t)}hasAttribute(t){return this.attributes.has(t)}getAttributes(){return this.attributes.toObject()}setAttributes(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const e=this.attributes.merge(t);var i,n,r,o;if(!this.attributes.isEqualTo(e))return this.attributes=e,this.didChangeAttributes(),null===(i=this.previewDelegate)||void 0===i||null===(n=i.attachmentDidChangeAttributes)||void 0===n||n.call(i,this),null===(r=this.delegate)||void 0===r||null===(o=r.attachmentDidChangeAttributes)||void 0===o?void 0:o.call(r,this)}didChangeAttributes(){if(this.isPreviewable())return this.preloadURL()}isPending(){return null!=this.file&&!(this.getURL()||this.getHref())}isPreviewable(){return this.attributes.has(\"previewable\")?this.attributes.get(\"previewable\"):Wi.previewablePattern.test(this.getContentType())}getType(){return this.hasContent()?\"content\":this.isPreviewable()?\"preview\":\"file\"}getURL(){return this.attributes.get(\"url\")}getHref(){return this.attributes.get(\"href\")}getFilename(){return this.attributes.get(\"filename\")||\"\"}getFilesize(){return this.attributes.get(\"filesize\")}getFormattedFilesize(){const t=this.attributes.get(\"filesize\");return\"number\"==typeof t?h.formatter(t):\"\"}getExtension(){var t;return null===(t=this.getFilename().match(/\\.(\\w+)$/))||void 0===t?void 0:t[1].toLowerCase()}getContentType(){return this.attributes.get(\"contentType\")}hasContent(){return this.attributes.has(\"content\")}getContent(){return this.attributes.get(\"content\")}getWidth(){return this.attributes.get(\"width\")}getHeight(){return this.attributes.get(\"height\")}getFile(){return this.file}setFile(t){if(this.file=t,this.isPreviewable())return this.preloadFile()}releaseFile(){this.releasePreloadedFile(),this.file=null}getUploadProgress(){return null!=this.uploadProgress?this.uploadProgress:0}setUploadProgress(t){var e,i;if(this.uploadProgress!==t)return this.uploadProgress=t,null===(e=this.uploadProgressDelegate)||void 0===e||null===(i=e.attachmentDidChangeUploadProgress)||void 0===i?void 0:i.call(e,this)}toJSON(){return this.getAttributes()}getCacheKey(){return[super.getCacheKey(...arguments),this.attributes.getCacheKey(),this.getPreviewURL()].join(\"/\")}getPreviewURL(){return this.previewURL||this.preloadingURL}setPreviewURL(t){var e,i,n,r;if(t!==this.getPreviewURL())return this.previewURL=t,null===(e=this.previewDelegate)||void 0===e||null===(i=e.attachmentDidChangeAttributes)||void 0===i||i.call(e,this),null===(n=this.delegate)||void 0===n||null===(r=n.attachmentDidChangePreviewURL)||void 0===r?void 0:r.call(n,this)}preloadURL(){return this.preload(this.getURL(),this.releaseFile)}preloadFile(){if(this.file)return this.fileObjectURL=URL.createObjectURL(this.file),this.preload(this.fileObjectURL)}releasePreloadedFile(){this.fileObjectURL&&(URL.revokeObjectURL(this.fileObjectURL),this.fileObjectURL=null)}preload(t,e){if(t&&t!==this.getPreviewURL()){this.preloadingURL=t;return new ji(t).then((i=>{let{width:n,height:r}=i;return this.getWidth()&&this.getHeight()||this.setAttributes({width:n,height:r}),this.preloadingURL=null,this.setPreviewURL(t),null==e?void 0:e()})).catch((()=>(this.preloadingURL=null,null==e?void 0:e())))}}}wi(Wi,\"previewablePattern\",/^image(\\/(gif|png|webp|jpe?g)|$)/);class Ui extends _i{static fromJSON(t){return new this(Wi.fromJSON(t.attachment),t.attributes)}constructor(t){super(...arguments),this.attachment=t,this.length=1,this.ensureAttachmentExclusivelyHasAttribute(\"href\"),this.attachment.hasContent()||this.removeProhibitedAttributes()}ensureAttachmentExclusivelyHasAttribute(t){this.hasAttribute(t)&&(this.attachment.hasAttribute(t)||this.attachment.setAttributes(this.attributes.slice([t])),this.attributes=this.attributes.remove(t))}removeProhibitedAttributes(){const t=this.attributes.slice(Ui.permittedAttributes);t.isEqualTo(this.attributes)||(this.attributes=t)}getValue(){return this.attachment}isSerializable(){return!this.attachment.isPending()}getCaption(){return this.attributes.get(\"caption\")||\"\"}isEqualTo(t){var e;return super.isEqualTo(t)&&this.attachment.id===(null==t||null===(e=t.attachment)||void 0===e?void 0:e.id)}toString(){return\"\"}toJSON(){const t=super.toJSON(...arguments);return t.attachment=this.attachment,t}getCacheKey(){return[super.getCacheKey(...arguments),this.attachment.getCacheKey()].join(\"/\")}toConsole(){return JSON.stringify(this.toString())}}wi(Ui,\"permittedAttributes\",[\"caption\",\"presentation\"]),_i.registerType(\"attachment\",Ui);class Vi extends _i{static fromJSON(t){return new this(t.string,t.attributes)}constructor(t){super(...arguments),this.string=(t=>t.replace(/\\r\\n?/g,\"\\n\"))(t),this.length=this.string.length}getValue(){return this.string}toString(){return this.string.toString()}isBlockBreak(){return\"\\n\"===this.toString()&&!0===this.getAttribute(\"blockBreak\")}toJSON(){const t=super.toJSON(...arguments);return t.string=this.string,t}canBeConsolidatedWith(t){return t&&this.hasSameConstructorAs(t)&&this.hasSameAttributesAsPiece(t)}consolidateWith(t){return new this.constructor(this.toString()+t.toString(),this.attributes)}splitAtOffset(t){let e,i;return 0===t?(e=null,i=this):t===this.length?(e=this,i=null):(e=new this.constructor(this.string.slice(0,t),this.attributes),i=new this.constructor(this.string.slice(t),this.attributes)),[e,i]}toConsole(){let{string:t}=this;return t.length>15&&(t=t.slice(0,14)+\"…\"),JSON.stringify(t.toString())}}_i.registerType(\"string\",Vi);class zi extends rt{static box(t){return t instanceof this?t:new this(t)}constructor(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];super(...arguments),this.objects=t.slice(0),this.length=this.objects.length}indexOf(t){return this.objects.indexOf(t)}splice(){for(var t=arguments.length,e=new Array(t),i=0;i<t;i++)e[i]=arguments[i];return new this.constructor(st(this.objects,...e))}eachObject(t){return this.objects.map(((e,i)=>t(e,i)))}insertObjectAtIndex(t,e){return this.splice(e,0,t)}insertSplittableListAtIndex(t,e){return this.splice(e,0,...t.objects)}insertSplittableListAtPosition(t,e){const[i,n]=this.splitObjectAtPosition(e);return new this.constructor(i).insertSplittableListAtIndex(t,n)}editObjectAtIndex(t,e){return this.replaceObjectAtIndex(e(this.objects[t]),t)}replaceObjectAtIndex(t,e){return this.splice(e,1,t)}removeObjectAtIndex(t){return this.splice(t,1)}getObjectAtIndex(t){return this.objects[t]}getSplittableListInRange(t){const[e,i,n]=this.splitObjectsAtRange(t);return new this.constructor(e.slice(i,n+1))}selectSplittableList(t){const e=this.objects.filter((e=>t(e)));return new this.constructor(e)}removeObjectsInRange(t){const[e,i,n]=this.splitObjectsAtRange(t);return new this.constructor(e).splice(i,n-i+1)}transformObjectsInRange(t,e){const[i,n,r]=this.splitObjectsAtRange(t),o=i.map(((t,i)=>n<=i&&i<=r?e(t):t));return new this.constructor(o)}splitObjectsAtRange(t){let e,[i,n,r]=this.splitObjectAtPosition(Hi(t));return[i,e]=new this.constructor(i).splitObjectAtPosition(Ji(t)+r),[i,n,e-1]}getObjectAtPosition(t){const{index:e}=this.findIndexAndOffsetAtPosition(t);return this.objects[e]}splitObjectAtPosition(t){let e,i;const{index:n,offset:r}=this.findIndexAndOffsetAtPosition(t),o=this.objects.slice(0);if(null!=n)if(0===r)e=n,i=0;else{const t=this.getObjectAtIndex(n),[s,a]=t.splitAtOffset(r);o.splice(n,1,s,a),e=n+1,i=s.getLength()-r}else e=o.length,i=0;return[o,e,i]}consolidate(){const t=[];let e=this.objects[0];return this.objects.slice(1).forEach((i=>{var n,r;null!==(n=(r=e).canBeConsolidatedWith)&&void 0!==n&&n.call(r,i)?e=e.consolidateWith(i):(t.push(e),e=i)})),e&&t.push(e),new this.constructor(t)}consolidateFromIndexToIndex(t,e){const i=this.objects.slice(0).slice(t,e+1),n=new this.constructor(i).consolidate().toArray();return this.splice(t,i.length,...n)}findIndexAndOffsetAtPosition(t){let e,i=0;for(e=0;e<this.objects.length;e++){const n=i+this.objects[e].getLength();if(i<=t&&t<n)return{index:e,offset:t-i};i=n}return{index:null,offset:null}}findPositionAtIndexAndOffset(t,e){let i=0;for(let n=0;n<this.objects.length;n++){const r=this.objects[n];if(n<t)i+=r.getLength();else if(n===t){i+=e;break}}return i}getEndPosition(){return null==this.endPosition&&(this.endPosition=0,this.objects.forEach((t=>this.endPosition+=t.getLength()))),this.endPosition}toString(){return this.objects.join(\"\")}toArray(){return this.objects.slice(0)}toJSON(){return this.toArray()}isEqualTo(t){return super.isEqualTo(...arguments)||qi(this.objects,null==t?void 0:t.objects)}contentsForInspection(){return{objects:\"[\".concat(this.objects.map((t=>t.inspect())).join(\", \"),\"]\")}}}const qi=function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];if(t.length!==e.length)return!1;let i=!0;for(let n=0;n<t.length;n++){const r=t[n];i&&!r.isEqualTo(e[n])&&(i=!1)}return i},Hi=t=>t[0],Ji=t=>t[1];class Ki extends rt{static textForAttachmentWithAttributes(t,e){return new this([new Ui(t,e)])}static textForStringWithAttributes(t,e){return new this([new Vi(t,e)])}static fromJSON(t){return new this(Array.from(t).map((t=>_i.fromJSON(t))))}constructor(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];super(...arguments);const e=t.filter((t=>!t.isEmpty()));this.pieceList=new zi(e)}copy(){return this.copyWithPieceList(this.pieceList)}copyWithPieceList(t){return new this.constructor(t.consolidate().toArray())}copyUsingObjectMap(t){const e=this.getPieces().map((e=>t.find(e)||e));return new this.constructor(e)}appendText(t){return this.insertTextAtPosition(t,this.getLength())}insertTextAtPosition(t,e){return this.copyWithPieceList(this.pieceList.insertSplittableListAtPosition(t.pieceList,e))}removeTextAtRange(t){return this.copyWithPieceList(this.pieceList.removeObjectsInRange(t))}replaceTextAtRange(t,e){return this.removeTextAtRange(e).insertTextAtPosition(t,e[0])}moveTextFromRangeToPosition(t,e){if(t[0]<=e&&e<=t[1])return;const i=this.getTextAtRange(t),n=i.getLength();return t[0]<e&&(e-=n),this.removeTextAtRange(t).insertTextAtPosition(i,e)}addAttributeAtRange(t,e,i){const n={};return n[t]=e,this.addAttributesAtRange(n,i)}addAttributesAtRange(t,e){return this.copyWithPieceList(this.pieceList.transformObjectsInRange(e,(e=>e.copyWithAdditionalAttributes(t))))}removeAttributeAtRange(t,e){return this.copyWithPieceList(this.pieceList.transformObjectsInRange(e,(e=>e.copyWithoutAttribute(t))))}setAttributesAtRange(t,e){return this.copyWithPieceList(this.pieceList.transformObjectsInRange(e,(e=>e.copyWithAttributes(t))))}getAttributesAtPosition(t){var e;return(null===(e=this.pieceList.getObjectAtPosition(t))||void 0===e?void 0:e.getAttributes())||{}}getCommonAttributes(){const t=Array.from(this.pieceList.toArray()).map((t=>t.getAttributes()));return Ht.fromCommonAttributesOfObjects(t).toObject()}getCommonAttributesAtRange(t){return this.getTextAtRange(t).getCommonAttributes()||{}}getExpandedRangeForAttributeAtOffset(t,e){let i,n=i=e;const r=this.getLength();for(;n>0&&this.getCommonAttributesAtRange([n-1,i])[t];)n--;for(;i<r&&this.getCommonAttributesAtRange([e,i+1])[t];)i++;return[n,i]}getTextAtRange(t){return this.copyWithPieceList(this.pieceList.getSplittableListInRange(t))}getStringAtRange(t){return this.pieceList.getSplittableListInRange(t).toString()}getStringAtPosition(t){return this.getStringAtRange([t,t+1])}startsWithString(t){return this.getStringAtRange([0,t.length])===t}endsWithString(t){const e=this.getLength();return this.getStringAtRange([e-t.length,e])===t}getAttachmentPieces(){return this.pieceList.toArray().filter((t=>!!t.attachment))}getAttachments(){return this.getAttachmentPieces().map((t=>t.attachment))}getAttachmentAndPositionById(t){let e=0;for(const n of this.pieceList.toArray()){var i;if((null===(i=n.attachment)||void 0===i?void 0:i.id)===t)return{attachment:n.attachment,position:e};e+=n.length}return{attachment:null,position:null}}getAttachmentById(t){const{attachment:e}=this.getAttachmentAndPositionById(t);return e}getRangeOfAttachment(t){const e=this.getAttachmentAndPositionById(t.id),i=e.position;if(t=e.attachment)return[i,i+1]}updateAttributesForAttachment(t,e){const i=this.getRangeOfAttachment(e);return i?this.addAttributesAtRange(t,i):this}getLength(){return this.pieceList.getEndPosition()}isEmpty(){return 0===this.getLength()}isEqualTo(t){var e;return super.isEqualTo(t)||(null==t||null===(e=t.pieceList)||void 0===e?void 0:e.isEqualTo(this.pieceList))}isBlockBreak(){return 1===this.getLength()&&this.pieceList.getObjectAtIndex(0).isBlockBreak()}eachPiece(t){return this.pieceList.eachObject(t)}getPieces(){return this.pieceList.toArray()}getPieceAtPosition(t){return this.pieceList.getObjectAtPosition(t)}contentsForInspection(){return{pieceList:this.pieceList.inspect()}}toSerializableText(){const t=this.pieceList.selectSplittableList((t=>t.isSerializable()));return this.copyWithPieceList(t)}toString(){return this.pieceList.toString()}toJSON(){return this.pieceList.toJSON()}toConsole(){return JSON.stringify(this.pieceList.toArray().map((t=>JSON.parse(t.toConsole()))))}getDirection(){return lt(this.toString())}isRTL(){return\"rtl\"===this.getDirection()}}class Gi extends rt{static fromJSON(t){return new this(Ki.fromJSON(t.text),t.attributes,t.htmlAttributes)}constructor(t,e,i){super(...arguments),this.text=Yi(t||new Ki),this.attributes=e||[],this.htmlAttributes=i||{}}isEmpty(){return this.text.isBlockBreak()}isEqualTo(t){return!!super.isEqualTo(t)||this.text.isEqualTo(null==t?void 0:t.text)&&ot(this.attributes,null==t?void 0:t.attributes)&&Tt(this.htmlAttributes,null==t?void 0:t.htmlAttributes)}copyWithText(t){return new Gi(t,this.attributes,this.htmlAttributes)}copyWithoutText(){return this.copyWithText(null)}copyWithAttributes(t){return new Gi(this.text,t,this.htmlAttributes)}copyWithoutAttributes(){return this.copyWithAttributes(null)}copyUsingObjectMap(t){const e=t.find(this.text);return e?this.copyWithText(e):this.copyWithText(this.text.copyUsingObjectMap(t))}addAttribute(t){const e=this.attributes.concat(en(t));return this.copyWithAttributes(e)}addHTMLAttribute(t,e){const i=Object.assign({},this.htmlAttributes,{[t]:e});return new Gi(this.text,this.attributes,i)}removeAttribute(t){const{listAttribute:e}=mt(t),i=rn(rn(this.attributes,t),e);return this.copyWithAttributes(i)}removeLastAttribute(){return this.removeAttribute(this.getLastAttribute())}getLastAttribute(){return nn(this.attributes)}getAttributes(){return this.attributes.slice(0)}getAttributeLevel(){return this.attributes.length}getAttributeAtLevel(t){return this.attributes[t-1]}hasAttribute(t){return this.attributes.includes(t)}hasAttributes(){return this.getAttributeLevel()>0}getLastNestableAttribute(){return nn(this.getNestableAttributes())}getNestableAttributes(){return this.attributes.filter((t=>mt(t).nestable))}getNestingLevel(){return this.getNestableAttributes().length}decreaseNestingLevel(){const t=this.getLastNestableAttribute();return t?this.removeAttribute(t):this}increaseNestingLevel(){const t=this.getLastNestableAttribute();if(t){const e=this.attributes.lastIndexOf(t),i=st(this.attributes,e+1,0,...en(t));return this.copyWithAttributes(i)}return this}getListItemAttributes(){return this.attributes.filter((t=>mt(t).listAttribute))}isListItem(){var t;return null===(t=mt(this.getLastAttribute()))||void 0===t?void 0:t.listAttribute}isTerminalBlock(){var t;return null===(t=mt(this.getLastAttribute()))||void 0===t?void 0:t.terminal}breaksOnReturn(){var t;return null===(t=mt(this.getLastAttribute()))||void 0===t?void 0:t.breakOnReturn}findLineBreakInDirectionFromPosition(t,e){const i=this.toString();let n;switch(t){case\"forward\":n=i.indexOf(\"\\n\",e);break;case\"backward\":n=i.slice(0,e).lastIndexOf(\"\\n\")}if(-1!==n)return n}contentsForInspection(){return{text:this.text.inspect(),attributes:this.attributes}}toString(){return this.text.toString()}toJSON(){return{text:this.text,attributes:this.attributes,htmlAttributes:this.htmlAttributes}}getDirection(){return this.text.getDirection()}isRTL(){return this.text.isRTL()}getLength(){return this.text.getLength()}canBeConsolidatedWith(t){return!this.hasAttributes()&&!t.hasAttributes()&&this.getDirection()===t.getDirection()}consolidateWith(t){const e=Ki.textForStringWithAttributes(\"\\n\"),i=this.getTextWithoutBlockBreak().appendText(e);return this.copyWithText(i.appendText(t.text))}splitAtOffset(t){let e,i;return 0===t?(e=null,i=this):t===this.getLength()?(e=this,i=null):(e=this.copyWithText(this.text.getTextAtRange([0,t])),i=this.copyWithText(this.text.getTextAtRange([t,this.getLength()]))),[e,i]}getBlockBreakPosition(){return this.text.getLength()-1}getTextWithoutBlockBreak(){return Qi(this.text)?this.text.getTextAtRange([0,this.getBlockBreakPosition()]):this.text.copy()}canBeGrouped(t){return this.attributes[t]}canBeGroupedWith(t,e){const i=t.getAttributes(),r=i[e],o=this.attributes[e];return o===r&&!(!1===mt(o).group&&!(()=>{if(!dt){dt=[];for(const t in n){const{listAttribute:e}=n[t];null!=e&&dt.push(e)}}return dt})().includes(i[e+1]))&&(this.getDirection()===t.getDirection()||t.isEmpty())}}const Yi=function(t){return t=$i(t),t=Zi(t)},$i=function(t){let e=!1;const i=t.getPieces();let n=i.slice(0,i.length-1);const r=i[i.length-1];return r?(n=n.map((t=>t.isBlockBreak()?(e=!0,tn(t)):t)),e?new Ki([...n,r]):t):t},Xi=Ki.textForStringWithAttributes(\"\\n\",{blockBreak:!0}),Zi=function(t){return Qi(t)?t:t.appendText(Xi)},Qi=function(t){const e=t.getLength();if(0===e)return!1;return t.getTextAtRange([e-1,e]).isBlockBreak()},tn=t=>t.copyWithoutAttribute(\"blockBreak\"),en=function(t){const{listAttribute:e}=mt(t);return e?[e,t]:[t]},nn=t=>t.slice(-1)[0],rn=function(t,e){const i=t.lastIndexOf(e);return-1===i?t:st(t,i,1)};class on extends rt{static fromJSON(t){return new this(Array.from(t).map((t=>Gi.fromJSON(t))))}static fromString(t,e){const i=Ki.textForStringWithAttributes(t,e);return new this([new Gi(i)])}constructor(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];super(...arguments),0===t.length&&(t=[new Gi]),this.blockList=zi.box(t)}isEmpty(){const t=this.getBlockAtIndex(0);return 1===this.blockList.length&&t.isEmpty()&&!t.hasAttributes()}copy(){const t=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).consolidateBlocks?this.blockList.consolidate().toArray():this.blockList.toArray();return new this.constructor(t)}copyUsingObjectsFromDocument(t){const e=new Zt(t.getObjects());return this.copyUsingObjectMap(e)}copyUsingObjectMap(t){const e=this.getBlocks().map((e=>t.find(e)||e.copyUsingObjectMap(t)));return new this.constructor(e)}copyWithBaseBlockAttributes(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];const e=this.getBlocks().map((e=>{const i=t.concat(e.getAttributes());return e.copyWithAttributes(i)}));return new this.constructor(e)}replaceBlock(t,e){const i=this.blockList.indexOf(t);return-1===i?this:new this.constructor(this.blockList.replaceObjectAtIndex(e,i))}insertDocumentAtRange(t,e){const{blockList:i}=t;e=wt(e);let[n]=e;const{index:r,offset:o}=this.locationFromPosition(n);let s=this;const a=this.getBlockAtPosition(n);return Lt(e)&&a.isEmpty()&&!a.hasAttributes()?s=new this.constructor(s.blockList.removeObjectAtIndex(r)):a.getBlockBreakPosition()===o&&n++,s=s.removeTextAtRange(e),new this.constructor(s.blockList.insertSplittableListAtPosition(i,n))}mergeDocumentAtRange(t,e){let i,n;e=wt(e);const[r]=e,o=this.locationFromPosition(r),s=this.getBlockAtIndex(o.index).getAttributes(),a=t.getBaseBlockAttributes(),l=s.slice(-a.length);if(ot(a,l)){const e=s.slice(0,-a.length);i=t.copyWithBaseBlockAttributes(e)}else i=t.copy({consolidateBlocks:!0}).copyWithBaseBlockAttributes(s);const c=i.getBlockCount(),u=i.getBlockAtIndex(0);if(ot(s,u.getAttributes())){const t=u.getTextWithoutBlockBreak();if(n=this.insertTextAtRange(t,e),c>1){i=new this.constructor(i.getBlocks().slice(1));const e=r+t.getLength();n=n.insertDocumentAtRange(i,e)}}else n=this.insertDocumentAtRange(i,e);return n}insertTextAtRange(t,e){e=wt(e);const[i]=e,{index:n,offset:r}=this.locationFromPosition(i),o=this.removeTextAtRange(e);return new this.constructor(o.blockList.editObjectAtIndex(n,(e=>e.copyWithText(e.text.insertTextAtPosition(t,r)))))}removeTextAtRange(t){let e;t=wt(t);const[i,n]=t;if(Lt(t))return this;const[r,o]=Array.from(this.locationRangeFromRange(t)),s=r.index,a=r.offset,l=this.getBlockAtIndex(s),c=o.index,u=o.offset,h=this.getBlockAtIndex(c);if(n-i==1&&l.getBlockBreakPosition()===a&&h.getBlockBreakPosition()!==u&&\"\\n\"===h.text.getStringAtPosition(u))e=this.blockList.editObjectAtIndex(c,(t=>t.copyWithText(t.text.removeTextAtRange([u,u+1]))));else{let t;const i=l.text.getTextAtRange([0,a]),n=h.text.getTextAtRange([u,h.getLength()]),r=i.appendText(n);t=s!==c&&0===a&&l.getAttributeLevel()>=h.getAttributeLevel()?h.copyWithText(r):l.copyWithText(r);const o=c+1-s;e=this.blockList.splice(s,o,t)}return new this.constructor(e)}moveTextFromRangeToPosition(t,e){let i;t=wt(t);const[n,r]=t;if(n<=e&&e<=r)return this;let o=this.getDocumentAtRange(t),s=this.removeTextAtRange(t);const a=n<e;a&&(e-=o.getLength());const[l,...c]=o.getBlocks();return 0===c.length?(i=l.getTextWithoutBlockBreak(),a&&(e+=1)):i=l.text,s=s.insertTextAtRange(i,e),0===c.length?s:(o=new this.constructor(c),e+=i.getLength(),s.insertDocumentAtRange(o,e))}addAttributeAtRange(t,e,i){let{blockList:n}=this;return this.eachBlockAtRange(i,((i,r,o)=>n=n.editObjectAtIndex(o,(function(){return mt(t)?i.addAttribute(t,e):r[0]===r[1]?i:i.copyWithText(i.text.addAttributeAtRange(t,e,r))})))),new this.constructor(n)}addAttribute(t,e){let{blockList:i}=this;return this.eachBlock(((n,r)=>i=i.editObjectAtIndex(r,(()=>n.addAttribute(t,e))))),new this.constructor(i)}removeAttributeAtRange(t,e){let{blockList:i}=this;return this.eachBlockAtRange(e,(function(e,n,r){mt(t)?i=i.editObjectAtIndex(r,(()=>e.removeAttribute(t))):n[0]!==n[1]&&(i=i.editObjectAtIndex(r,(()=>e.copyWithText(e.text.removeAttributeAtRange(t,n)))))})),new this.constructor(i)}updateAttributesForAttachment(t,e){const i=this.getRangeOfAttachment(e),[n]=Array.from(i),{index:r}=this.locationFromPosition(n),o=this.getTextAtIndex(r);return new this.constructor(this.blockList.editObjectAtIndex(r,(i=>i.copyWithText(o.updateAttributesForAttachment(t,e)))))}removeAttributeForAttachment(t,e){const i=this.getRangeOfAttachment(e);return this.removeAttributeAtRange(t,i)}setHTMLAttributeAtPosition(t,e,i){const n=this.getBlockAtPosition(t),r=n.addHTMLAttribute(e,i);return this.replaceBlock(n,r)}insertBlockBreakAtRange(t){let e;t=wt(t);const[i]=t,{offset:n}=this.locationFromPosition(i),r=this.removeTextAtRange(t);return 0===n&&(e=[new Gi]),new this.constructor(r.blockList.insertSplittableListAtPosition(new zi(e),i))}applyBlockAttributeAtRange(t,e,i){const n=this.expandRangeToLineBreaksAndSplitBlocks(i);let r=n.document;i=n.range;const o=mt(t);if(o.listAttribute){r=r.removeLastListAttributeAtRange(i,{exceptAttributeName:t});const e=r.convertLineBreaksToBlockBreaksInRange(i);r=e.document,i=e.range}else r=o.exclusive?r.removeBlockAttributesAtRange(i):o.terminal?r.removeLastTerminalAttributeAtRange(i):r.consolidateBlocksAtRange(i);return r.addAttributeAtRange(t,e,i)}removeLastListAttributeAtRange(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{blockList:i}=this;return this.eachBlockAtRange(t,(function(t,n,r){const o=t.getLastAttribute();o&&mt(o).listAttribute&&o!==e.exceptAttributeName&&(i=i.editObjectAtIndex(r,(()=>t.removeAttribute(o))))})),new this.constructor(i)}removeLastTerminalAttributeAtRange(t){let{blockList:e}=this;return this.eachBlockAtRange(t,(function(t,i,n){const r=t.getLastAttribute();r&&mt(r).terminal&&(e=e.editObjectAtIndex(n,(()=>t.removeAttribute(r))))})),new this.constructor(e)}removeBlockAttributesAtRange(t){let{blockList:e}=this;return this.eachBlockAtRange(t,(function(t,i,n){t.hasAttributes()&&(e=e.editObjectAtIndex(n,(()=>t.copyWithoutAttributes())))})),new this.constructor(e)}expandRangeToLineBreaksAndSplitBlocks(t){let e;t=wt(t);let[i,n]=t;const r=this.locationFromPosition(i),o=this.locationFromPosition(n);let s=this;const a=s.getBlockAtIndex(r.index);if(r.offset=a.findLineBreakInDirectionFromPosition(\"backward\",r.offset),null!=r.offset&&(e=s.positionFromLocation(r),s=s.insertBlockBreakAtRange([e,e+1]),o.index+=1,o.offset-=s.getBlockAtIndex(r.index).getLength(),r.index+=1),r.offset=0,0===o.offset&&o.index>r.index)o.index-=1,o.offset=s.getBlockAtIndex(o.index).getBlockBreakPosition();else{const t=s.getBlockAtIndex(o.index);\"\\n\"===t.text.getStringAtRange([o.offset-1,o.offset])?o.offset-=1:o.offset=t.findLineBreakInDirectionFromPosition(\"forward\",o.offset),o.offset!==t.getBlockBreakPosition()&&(e=s.positionFromLocation(o),s=s.insertBlockBreakAtRange([e,e+1]))}return i=s.positionFromLocation(r),n=s.positionFromLocation(o),{document:s,range:t=wt([i,n])}}convertLineBreaksToBlockBreaksInRange(t){t=wt(t);let[e]=t;const i=this.getStringAtRange(t).slice(0,-1);let n=this;return i.replace(/.*?\\n/g,(function(t){e+=t.length,n=n.insertBlockBreakAtRange([e-1,e])})),{document:n,range:t}}consolidateBlocksAtRange(t){t=wt(t);const[e,i]=t,n=this.locationFromPosition(e).index,r=this.locationFromPosition(i).index;return new this.constructor(this.blockList.consolidateFromIndexToIndex(n,r))}getDocumentAtRange(t){t=wt(t);const e=this.blockList.getSplittableListInRange(t).toArray();return new this.constructor(e)}getStringAtRange(t){let e;const i=t=wt(t);return i[i.length-1]!==this.getLength()&&(e=-1),this.getDocumentAtRange(t).toString().slice(0,e)}getBlockAtIndex(t){return this.blockList.getObjectAtIndex(t)}getBlockAtPosition(t){const{index:e}=this.locationFromPosition(t);return this.getBlockAtIndex(e)}getTextAtIndex(t){var e;return null===(e=this.getBlockAtIndex(t))||void 0===e?void 0:e.text}getTextAtPosition(t){const{index:e}=this.locationFromPosition(t);return this.getTextAtIndex(e)}getPieceAtPosition(t){const{index:e,offset:i}=this.locationFromPosition(t);return this.getTextAtIndex(e).getPieceAtPosition(i)}getCharacterAtPosition(t){const{index:e,offset:i}=this.locationFromPosition(t);return this.getTextAtIndex(e).getStringAtRange([i,i+1])}getLength(){return this.blockList.getEndPosition()}getBlocks(){return this.blockList.toArray()}getBlockCount(){return this.blockList.length}getEditCount(){return this.editCount}eachBlock(t){return this.blockList.eachObject(t)}eachBlockAtRange(t,e){let i,n;t=wt(t);const[r,o]=t,s=this.locationFromPosition(r),a=this.locationFromPosition(o);if(s.index===a.index)return i=this.getBlockAtIndex(s.index),n=[s.offset,a.offset],e(i,n,s.index);for(let t=s.index;t<=a.index;t++)if(i=this.getBlockAtIndex(t),i){switch(t){case s.index:n=[s.offset,i.text.getLength()];break;case a.index:n=[0,a.offset];break;default:n=[0,i.text.getLength()]}e(i,n,t)}}getCommonAttributesAtRange(t){t=wt(t);const[e]=t;if(Lt(t))return this.getCommonAttributesAtPosition(e);{const e=[],i=[];return this.eachBlockAtRange(t,(function(t,n){if(n[0]!==n[1])return e.push(t.text.getCommonAttributesAtRange(n)),i.push(sn(t))})),Ht.fromCommonAttributesOfObjects(e).merge(Ht.fromCommonAttributesOfObjects(i)).toObject()}}getCommonAttributesAtPosition(t){let e,i;const{index:n,offset:r}=this.locationFromPosition(t),o=this.getBlockAtIndex(n);if(!o)return{};const s=sn(o),a=o.text.getAttributesAtPosition(r),l=o.text.getAttributesAtPosition(r-1),c=Object.keys(W).filter((t=>W[t].inheritable));for(e in l)i=l[e],(i===a[e]||c.includes(e))&&(s[e]=i);return s}getRangeOfCommonAttributeAtPosition(t,e){const{index:i,offset:n}=this.locationFromPosition(e),r=this.getTextAtIndex(i),[o,s]=Array.from(r.getExpandedRangeForAttributeAtOffset(t,n)),a=this.positionFromLocation({index:i,offset:o}),l=this.positionFromLocation({index:i,offset:s});return wt([a,l])}getBaseBlockAttributes(){let t=this.getBlockAtIndex(0).getAttributes();for(let e=1;e<this.getBlockCount();e++){const i=this.getBlockAtIndex(e).getAttributes(),n=Math.min(t.length,i.length);t=(()=>{const e=[];for(let r=0;r<n&&i[r]===t[r];r++)e.push(i[r]);return e})()}return t}getAttachmentById(t){for(const e of this.getAttachments())if(e.id===t)return e}getAttachmentPieces(){let t=[];return this.blockList.eachObject((e=>{let{text:i}=e;return t=t.concat(i.getAttachmentPieces())})),t}getAttachments(){return this.getAttachmentPieces().map((t=>t.attachment))}getRangeOfAttachment(t){let e=0;const i=this.blockList.toArray();for(let n=0;n<i.length;n++){const{text:r}=i[n],o=r.getRangeOfAttachment(t);if(o)return wt([e+o[0],e+o[1]]);e+=r.getLength()}}getLocationRangeOfAttachment(t){const e=this.getRangeOfAttachment(t);return this.locationRangeFromRange(e)}getAttachmentPieceForAttachment(t){for(const e of this.getAttachmentPieces())if(e.attachment===t)return e}findRangesForBlockAttribute(t){let e=0;const i=[];return this.getBlocks().forEach((n=>{const r=n.getLength();n.hasAttribute(t)&&i.push([e,e+r]),e+=r})),i}findRangesForTextAttribute(t){let{withValue:e}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=0,n=[];const r=[];return this.getPieces().forEach((o=>{const s=o.getLength();(function(i){return e?i.getAttribute(t)===e:i.hasAttribute(t)})(o)&&(n[1]===i?n[1]=i+s:r.push(n=[i,i+s])),i+=s})),r}locationFromPosition(t){const e=this.blockList.findIndexAndOffsetAtPosition(Math.max(0,t));if(null!=e.index)return e;{const t=this.getBlocks();return{index:t.length-1,offset:t[t.length-1].getLength()}}}positionFromLocation(t){return this.blockList.findPositionAtIndexAndOffset(t.index,t.offset)}locationRangeFromPosition(t){return wt(this.locationFromPosition(t))}locationRangeFromRange(t){if(!(t=wt(t)))return;const[e,i]=Array.from(t),n=this.locationFromPosition(e),r=this.locationFromPosition(i);return wt([n,r])}rangeFromLocationRange(t){let e;t=wt(t);const i=this.positionFromLocation(t[0]);return Lt(t)||(e=this.positionFromLocation(t[1])),wt([i,e])}isEqualTo(t){return this.blockList.isEqualTo(null==t?void 0:t.blockList)}getTexts(){return this.getBlocks().map((t=>t.text))}getPieces(){const t=[];return Array.from(this.getTexts()).forEach((e=>{t.push(...Array.from(e.getPieces()||[]))})),t}getObjects(){return this.getBlocks().concat(this.getTexts()).concat(this.getPieces())}toSerializableDocument(){const t=[];return this.blockList.eachObject((e=>t.push(e.copyWithText(e.text.toSerializableText())))),new this.constructor(t)}toString(){return this.blockList.toString()}toJSON(){return this.blockList.toJSON()}toConsole(){return JSON.stringify(this.blockList.toArray().map((t=>JSON.parse(t.text.toConsole()))))}}const sn=function(t){const e={},i=t.getLastAttribute();return i&&(e[i]=!0),e},an=function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return{string:t=Wt(t),attributes:e,type:\"string\"}},ln=(t,e)=>{try{return JSON.parse(t.getAttribute(\"data-trix-\".concat(e)))}catch(t){return{}}};class cn extends q{static parse(t,e){const i=new this(t,e);return i.parse(),i}constructor(t){let{referenceElement:e}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};super(...arguments),this.html=t,this.referenceElement=e,this.blocks=[],this.blockElements=[],this.processedElements=[]}getDocument(){return on.fromJSON(this.blocks)}parse(){try{this.createHiddenContainer(),ui.setHTML(this.containerElement,this.html);const t=R(this.containerElement,{usingFilter:gn});for(;t.nextNode();)this.processNode(t.currentNode);return this.translateBlockElementMarginsToNewlines()}finally{this.removeHiddenContainer()}}createHiddenContainer(){return this.referenceElement?(this.containerElement=this.referenceElement.cloneNode(!1),this.containerElement.removeAttribute(\"id\"),this.containerElement.setAttribute(\"data-trix-internal\",\"\"),this.containerElement.style.display=\"none\",this.referenceElement.parentNode.insertBefore(this.containerElement,this.referenceElement.nextSibling)):(this.containerElement=T({tagName:\"div\",style:{display:\"none\"}}),document.body.appendChild(this.containerElement))}removeHiddenContainer(){return S(this.containerElement)}processNode(t){switch(t.nodeType){case Node.TEXT_NODE:if(!this.isInsignificantTextNode(t))return this.appendBlockForTextNode(t),this.processTextNode(t);break;case Node.ELEMENT_NODE:return this.appendBlockForElement(t),this.processElement(t)}}appendBlockForTextNode(t){const e=t.parentNode;if(e===this.currentBlockElement&&this.isBlockElement(t.previousSibling))return this.appendStringWithAttributes(\"\\n\");if(e===this.containerElement||this.isBlockElement(e)){var i;const t=this.getBlockAttributes(e),n=this.getBlockHTMLAttributes(e);ot(t,null===(i=this.currentBlock)||void 0===i?void 0:i.attributes)||(this.currentBlock=this.appendBlockForAttributesWithElement(t,e,n),this.currentBlockElement=e)}}appendBlockForElement(t){const e=this.isBlockElement(t),i=C(this.currentBlockElement,t);if(e&&!this.isBlockElement(t.firstChild)){if(!this.isInsignificantTextNode(t.firstChild)||!this.isBlockElement(t.firstElementChild)){const e=this.getBlockAttributes(t),n=this.getBlockHTMLAttributes(t);if(t.firstChild){if(i&&ot(e,this.currentBlock.attributes))return this.appendStringWithAttributes(\"\\n\");this.currentBlock=this.appendBlockForAttributesWithElement(e,t,n),this.currentBlockElement=t}}}else if(this.currentBlockElement&&!i&&!e){const e=this.findParentBlockElement(t);if(e)return this.appendBlockForElement(e);this.currentBlock=this.appendEmptyBlock(),this.currentBlockElement=null}}findParentBlockElement(t){let{parentElement:e}=t;for(;e&&e!==this.containerElement;){if(this.isBlockElement(e)&&this.blockElements.includes(e))return e;e=e.parentElement}return null}processTextNode(t){let e=t.data;var i;un(t.parentNode)||(e=Vt(e),fn(null===(i=t.previousSibling)||void 0===i?void 0:i.textContent)&&(e=mn(e)));return this.appendStringWithAttributes(e,this.getTextAttributes(t.parentNode))}processElement(t){let e;if(P(t)){if(e=ln(t,\"attachment\"),Object.keys(e).length){const i=this.getTextAttributes(t);this.appendAttachmentWithAttributes(e,i),t.innerHTML=\"\"}return this.processedElements.push(t)}switch(k(t)){case\"br\":return this.isExtraBR(t)||this.isBlockElement(t.nextSibling)||this.appendStringWithAttributes(\"\\n\",this.getTextAttributes(t)),this.processedElements.push(t);case\"img\":e={url:t.getAttribute(\"src\"),contentType:\"image\"};const i=(t=>{const e=t.getAttribute(\"width\"),i=t.getAttribute(\"height\"),n={};return e&&(n.width=parseInt(e,10)),i&&(n.height=parseInt(i,10)),n})(t);for(const t in i){const n=i[t];e[t]=n}return this.appendAttachmentWithAttributes(e,this.getTextAttributes(t)),this.processedElements.push(t);case\"tr\":if(this.needsTableSeparator(t))return this.appendStringWithAttributes(j.tableRowSeparator);break;case\"td\":if(this.needsTableSeparator(t))return this.appendStringWithAttributes(j.tableCellSeparator)}}appendBlockForAttributesWithElement(t,e){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};this.blockElements.push(e);const n=function(){return{text:[],attributes:arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},htmlAttributes:arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}}}(t,i);return this.blocks.push(n),n}appendEmptyBlock(){return this.appendBlockForAttributesWithElement([],null)}appendStringWithAttributes(t,e){return this.appendPiece(an(t,e))}appendAttachmentWithAttributes(t,e){return this.appendPiece(function(t){return{attachment:t,attributes:arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},type:\"attachment\"}}(t,e))}appendPiece(t){return 0===this.blocks.length&&this.appendEmptyBlock(),this.blocks[this.blocks.length-1].text.push(t)}appendStringToTextAtIndex(t,e){const{text:i}=this.blocks[e],n=i[i.length-1];if(\"string\"!==(null==n?void 0:n.type))return i.push(an(t));n.string+=t}prependStringToTextAtIndex(t,e){const{text:i}=this.blocks[e],n=i[0];if(\"string\"!==(null==n?void 0:n.type))return i.unshift(an(t));n.string=t+n.string}getTextAttributes(t){let e;const i={};for(const n in W){const r=W[n];if(r.tagName&&y(t,{matchingSelector:r.tagName,untilNode:this.containerElement}))i[n]=!0;else if(r.parser){if(e=r.parser(t),e){let o=!1;for(const i of this.findBlockElementAncestors(t))if(r.parser(i)===e){o=!0;break}o||(i[n]=e)}}else r.styleProperty&&(e=t.style[r.styleProperty],e&&(i[n]=e))}if(P(t)){const n=ln(t,\"attributes\");for(const t in n)e=n[t],i[t]=e}return i}getBlockAttributes(t){const e=[];for(;t&&t!==this.containerElement;){for(const r in n){const o=n[r];var i;if(!1!==o.parse)if(k(t)===o.tagName)(null!==(i=o.test)&&void 0!==i&&i.call(o,t)||!o.test)&&(e.push(r),o.listAttribute&&e.push(o.listAttribute))}t=t.parentNode}return e.reverse()}getBlockHTMLAttributes(t){const e={},i=Object.values(n).find((e=>e.tagName===k(t)));return((null==i?void 0:i.htmlAttributes)||[]).forEach((i=>{t.hasAttribute(i)&&(e[i]=t.getAttribute(i))})),e}findBlockElementAncestors(t){const e=[];for(;t&&t!==this.containerElement;){const i=k(t);L().includes(i)&&e.push(t),t=t.parentNode}return e}isBlockElement(t){if((null==t?void 0:t.nodeType)===Node.ELEMENT_NODE&&!P(t)&&!y(t,{matchingSelector:\"td\",untilNode:this.containerElement}))return L().includes(k(t))||\"block\"===window.getComputedStyle(t).display}isInsignificantTextNode(t){if((null==t?void 0:t.nodeType)!==Node.TEXT_NODE)return;if(!pn(t.data))return;const{parentNode:e,previousSibling:i,nextSibling:n}=t;return hn(e.previousSibling)&&!this.isBlockElement(e.previousSibling)||un(e)?void 0:!i||this.isBlockElement(i)||!n||this.isBlockElement(n)}isExtraBR(t){return\"br\"===k(t)&&this.isBlockElement(t.parentNode)&&t.parentNode.lastChild===t}needsTableSeparator(t){if(j.removeBlankTableCells){var e;const i=null===(e=t.previousSibling)||void 0===e?void 0:e.textContent;return i&&/\\S/.test(i)}return t.previousSibling}translateBlockElementMarginsToNewlines(){const t=this.getMarginOfDefaultBlockElement();for(let e=0;e<this.blocks.length;e++){const i=this.getMarginOfBlockElementAtIndex(e);i&&(i.top>2*t.top&&this.prependStringToTextAtIndex(\"\\n\",e),i.bottom>2*t.bottom&&this.appendStringToTextAtIndex(\"\\n\",e))}}getMarginOfBlockElementAtIndex(t){const e=this.blockElements[t];if(e&&e.textContent&&!L().includes(k(e))&&!this.processedElements.includes(e))return dn(e)}getMarginOfDefaultBlockElement(){const t=T(n.default.tagName);return this.containerElement.appendChild(t),dn(t)}}const un=function(t){const{whiteSpace:e}=window.getComputedStyle(t);return[\"pre\",\"pre-wrap\",\"pre-line\"].includes(e)},hn=t=>t&&!fn(t.textContent),dn=function(t){const e=window.getComputedStyle(t);if(\"block\"===e.display)return{top:parseInt(e.marginTop),bottom:parseInt(e.marginBottom)}},gn=function(t){return\"style\"===k(t)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT},mn=t=>t.replace(new RegExp(\"^\".concat(Ut.source,\"+\")),\"\"),pn=t=>new RegExp(\"^\".concat(Ut.source,\"*$\")).test(t),fn=t=>/\\s$/.test(t),bn=[\"contenteditable\",\"data-trix-id\",\"data-trix-store-key\",\"data-trix-mutable\",\"data-trix-placeholder\",\"tabindex\"],vn=\"data-trix-serialized-attributes\",An=\"[\".concat(vn,\"]\"),yn=new RegExp(\"\\x3c!--block--\\x3e\",\"g\"),xn={\"application/json\":function(t){let e;if(t instanceof on)e=t;else{if(!(t instanceof HTMLElement))throw new Error(\"unserializable object\");e=cn.parse(t.innerHTML).getDocument()}return e.toSerializableDocument().toJSONString()},\"text/html\":function(t){let e;if(t instanceof on)e=Ci.render(t);else{if(!(t instanceof HTMLElement))throw new Error(\"unserializable object\");e=t.cloneNode(!0)}return Array.from(e.querySelectorAll(\"[data-trix-serialize=false]\")).forEach((t=>{S(t)})),bn.forEach((t=>{Array.from(e.querySelectorAll(\"[\".concat(t,\"]\"))).forEach((e=>{e.removeAttribute(t)}))})),Array.from(e.querySelectorAll(An)).forEach((t=>{try{const e=JSON.parse(t.getAttribute(vn));t.removeAttribute(vn);for(const i in e){const n=e[i];t.setAttribute(i,n)}}catch(t){}})),e.innerHTML.replace(yn,\"\")}};var Cn=Object.freeze({__proto__:null});class En extends q{constructor(t,e){super(...arguments),this.attachmentManager=t,this.attachment=e,this.id=this.attachment.id,this.file=this.attachment.file}remove(){return this.attachmentManager.requestRemovalOfAttachment(this.attachment)}}En.proxyMethod(\"attachment.getAttribute\"),En.proxyMethod(\"attachment.hasAttribute\"),En.proxyMethod(\"attachment.setAttribute\"),En.proxyMethod(\"attachment.getAttributes\"),En.proxyMethod(\"attachment.setAttributes\"),En.proxyMethod(\"attachment.isPending\"),En.proxyMethod(\"attachment.isPreviewable\"),En.proxyMethod(\"attachment.getURL\"),En.proxyMethod(\"attachment.getHref\"),En.proxyMethod(\"attachment.getFilename\"),En.proxyMethod(\"attachment.getFilesize\"),En.proxyMethod(\"attachment.getFormattedFilesize\"),En.proxyMethod(\"attachment.getExtension\"),En.proxyMethod(\"attachment.getContentType\"),En.proxyMethod(\"attachment.getFile\"),En.proxyMethod(\"attachment.setFile\"),En.proxyMethod(\"attachment.releaseFile\"),En.proxyMethod(\"attachment.getUploadProgress\"),En.proxyMethod(\"attachment.setUploadProgress\");class Sn extends q{constructor(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];super(...arguments),this.managedAttachments={},Array.from(t).forEach((t=>{this.manageAttachment(t)}))}getAttachments(){const t=[];for(const e in this.managedAttachments){const i=this.managedAttachments[e];t.push(i)}return t}manageAttachment(t){return this.managedAttachments[t.id]||(this.managedAttachments[t.id]=new En(this,t)),this.managedAttachments[t.id]}attachmentIsManaged(t){return t.id in this.managedAttachments}requestRemovalOfAttachment(t){var e,i;if(this.attachmentIsManaged(t))return null===(e=this.delegate)||void 0===e||null===(i=e.attachmentManagerDidRequestRemovalOfAttachment)||void 0===i?void 0:i.call(e,t)}unmanageAttachment(t){const e=this.managedAttachments[t.id];return delete this.managedAttachments[t.id],e}}class Rn{constructor(t){this.composition=t,this.document=this.composition.document;const e=this.composition.getSelectedRange();this.startPosition=e[0],this.endPosition=e[1],this.startLocation=this.document.locationFromPosition(this.startPosition),this.endLocation=this.document.locationFromPosition(this.endPosition),this.block=this.document.getBlockAtIndex(this.endLocation.index),this.breaksOnReturn=this.block.breaksOnReturn(),this.previousCharacter=this.block.text.getStringAtPosition(this.endLocation.offset-1),this.nextCharacter=this.block.text.getStringAtPosition(this.endLocation.offset)}shouldInsertBlockBreak(){return this.block.hasAttributes()&&this.block.isListItem()&&!this.block.isEmpty()?0!==this.startLocation.offset:this.breaksOnReturn&&\"\\n\"!==this.nextCharacter}shouldBreakFormattedBlock(){return this.block.hasAttributes()&&!this.block.isListItem()&&(this.breaksOnReturn&&\"\\n\"===this.nextCharacter||\"\\n\"===this.previousCharacter)}shouldDecreaseListLevel(){return this.block.hasAttributes()&&this.block.isListItem()&&this.block.isEmpty()}shouldPrependListItem(){return this.block.isListItem()&&0===this.startLocation.offset&&!this.block.isEmpty()}shouldRemoveLastBlockAttribute(){return this.block.hasAttributes()&&!this.block.isListItem()&&this.block.isEmpty()}}class kn extends q{constructor(){super(...arguments),this.document=new on,this.attachments=[],this.currentAttributes={},this.revision=0}setDocument(t){var e,i;if(!t.isEqualTo(this.document))return this.document=t,this.refreshAttachments(),this.revision++,null===(e=this.delegate)||void 0===e||null===(i=e.compositionDidChangeDocument)||void 0===i?void 0:i.call(e,t)}getSnapshot(){return{document:this.document,selectedRange:this.getSelectedRange()}}loadSnapshot(t){var e,i,n,r;let{document:o,selectedRange:s}=t;return null===(e=this.delegate)||void 0===e||null===(i=e.compositionWillLoadSnapshot)||void 0===i||i.call(e),this.setDocument(null!=o?o:new on),this.setSelection(null!=s?s:[0,0]),null===(n=this.delegate)||void 0===n||null===(r=n.compositionDidLoadSnapshot)||void 0===r?void 0:r.call(n)}insertText(t){let{updatePosition:e}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{updatePosition:!0};const i=this.getSelectedRange();this.setDocument(this.document.insertTextAtRange(t,i));const n=i[0],r=n+t.getLength();return e&&this.setSelection(r),this.notifyDelegateOfInsertionAtRange([n,r])}insertBlock(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new Gi;const e=new on([t]);return this.insertDocument(e)}insertDocument(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new on;const e=this.getSelectedRange();this.setDocument(this.document.insertDocumentAtRange(t,e));const i=e[0],n=i+t.getLength();return this.setSelection(n),this.notifyDelegateOfInsertionAtRange([i,n])}insertString(t,e){const i=this.getCurrentTextAttributes(),n=Ki.textForStringWithAttributes(t,i);return this.insertText(n,e)}insertBlockBreak(){const t=this.getSelectedRange();this.setDocument(this.document.insertBlockBreakAtRange(t));const e=t[0],i=e+1;return this.setSelection(i),this.notifyDelegateOfInsertionAtRange([e,i])}insertLineBreak(){const t=new Rn(this);if(t.shouldDecreaseListLevel())return this.decreaseListLevel(),this.setSelection(t.startPosition);if(t.shouldPrependListItem()){const e=new on([t.block.copyWithoutText()]);return this.insertDocument(e)}return t.shouldInsertBlockBreak()?this.insertBlockBreak():t.shouldRemoveLastBlockAttribute()?this.removeLastBlockAttribute():t.shouldBreakFormattedBlock()?this.breakFormattedBlock(t):this.insertString(\"\\n\")}insertHTML(t){const e=cn.parse(t).getDocument(),i=this.getSelectedRange();this.setDocument(this.document.mergeDocumentAtRange(e,i));const n=i[0],r=n+e.getLength()-1;return this.setSelection(r),this.notifyDelegateOfInsertionAtRange([n,r])}replaceHTML(t){const e=cn.parse(t).getDocument().copyUsingObjectsFromDocument(this.document),i=this.getLocationRange({strict:!1}),n=this.document.rangeFromLocationRange(i);return this.setDocument(e),this.setSelection(n)}insertFile(t){return this.insertFiles([t])}insertFiles(t){const e=[];return Array.from(t).forEach((t=>{var i;if(null!==(i=this.delegate)&&void 0!==i&&i.compositionShouldAcceptFile(t)){const i=Wi.attachmentForFile(t);e.push(i)}})),this.insertAttachments(e)}insertAttachment(t){return this.insertAttachments([t])}insertAttachments(t){let e=new Ki;return Array.from(t).forEach((t=>{var n;const r=t.getType(),o=null===(n=i[r])||void 0===n?void 0:n.presentation,s=this.getCurrentTextAttributes();o&&(s.presentation=o);const a=Ki.textForAttachmentWithAttributes(t,s);e=e.appendText(a)})),this.insertText(e)}shouldManageDeletingInDirection(t){const e=this.getLocationRange();if(Lt(e)){if(\"backward\"===t&&0===e[0].offset)return!0;if(this.shouldManageMovingCursorInDirection(t))return!0}else if(e[0].index!==e[1].index)return!0;return!1}deleteInDirection(t){let e,i,n,{length:r}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const o=this.getLocationRange();let s=this.getSelectedRange();const a=Lt(s);if(a?i=\"backward\"===t&&0===o[0].offset:n=o[0].index!==o[1].index,i&&this.canDecreaseBlockAttributeLevel()){const t=this.getBlock();if(t.isListItem()?this.decreaseListLevel():this.decreaseBlockAttributeLevel(),this.setSelection(s[0]),t.isEmpty())return!1}return a&&(s=this.getExpandedRangeInDirection(t,{length:r}),\"backward\"===t&&(e=this.getAttachmentAtRange(s))),e?(this.editAttachment(e),!1):(this.setDocument(this.document.removeTextAtRange(s)),this.setSelection(s[0]),!i&&!n&&void 0)}moveTextFromRange(t){const[e]=Array.from(this.getSelectedRange());return this.setDocument(this.document.moveTextFromRangeToPosition(t,e)),this.setSelection(e)}removeAttachment(t){const e=this.document.getRangeOfAttachment(t);if(e)return this.stopEditingAttachment(),this.setDocument(this.document.removeTextAtRange(e)),this.setSelection(e[0])}removeLastBlockAttribute(){const[t,e]=Array.from(this.getSelectedRange()),i=this.document.getBlockAtPosition(e);return this.removeCurrentAttribute(i.getLastAttribute()),this.setSelection(t)}insertPlaceholder(){return this.placeholderPosition=this.getPosition(),this.insertString(\" \")}selectPlaceholder(){if(null!=this.placeholderPosition)return this.setSelectedRange([this.placeholderPosition,this.placeholderPosition+1]),this.getSelectedRange()}forgetPlaceholder(){this.placeholderPosition=null}hasCurrentAttribute(t){const e=this.currentAttributes[t];return null!=e&&!1!==e}toggleCurrentAttribute(t){const e=!this.currentAttributes[t];return e?this.setCurrentAttribute(t,e):this.removeCurrentAttribute(t)}canSetCurrentAttribute(t){return mt(t)?this.canSetCurrentBlockAttribute(t):this.canSetCurrentTextAttribute(t)}canSetCurrentTextAttribute(t){const e=this.getSelectedDocument();if(e){for(const t of Array.from(e.getAttachments()))if(!t.hasContent())return!1;return!0}}canSetCurrentBlockAttribute(t){const e=this.getBlock();if(e)return!e.isTerminalBlock()}setCurrentAttribute(t,e){return mt(t)?this.setBlockAttribute(t,e):(this.setTextAttribute(t,e),this.currentAttributes[t]=e,this.notifyDelegateOfCurrentAttributesChange())}setHTMLAtributeAtPosition(t,e,i){var n;const r=this.document.getBlockAtPosition(t),o=null===(n=mt(r.getLastAttribute()))||void 0===n?void 0:n.htmlAttributes;if(r&&null!=o&&o.includes(e)){const n=this.document.setHTMLAttributeAtPosition(t,e,i);this.setDocument(n)}}setTextAttribute(t,e){const i=this.getSelectedRange();if(!i)return;const[n,r]=Array.from(i);if(n!==r)return this.setDocument(this.document.addAttributeAtRange(t,e,i));if(\"href\"===t){const t=Ki.textForStringWithAttributes(e,{href:e});return this.insertText(t)}}setBlockAttribute(t,e){const i=this.getSelectedRange();if(this.canSetCurrentAttribute(t))return this.setDocument(this.document.applyBlockAttributeAtRange(t,e,i)),this.setSelection(i)}removeCurrentAttribute(t){return mt(t)?(this.removeBlockAttribute(t),this.updateCurrentAttributes()):(this.removeTextAttribute(t),delete this.currentAttributes[t],this.notifyDelegateOfCurrentAttributesChange())}removeTextAttribute(t){const e=this.getSelectedRange();if(e)return this.setDocument(this.document.removeAttributeAtRange(t,e))}removeBlockAttribute(t){const e=this.getSelectedRange();if(e)return this.setDocument(this.document.removeAttributeAtRange(t,e))}canDecreaseNestingLevel(){var t;return(null===(t=this.getBlock())||void 0===t?void 0:t.getNestingLevel())>0}canIncreaseNestingLevel(){var t;const e=this.getBlock();if(e){if(null===(t=mt(e.getLastNestableAttribute()))||void 0===t||!t.listAttribute)return e.getNestingLevel()>0;{const t=this.getPreviousBlock();if(t)return function(){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return ot((arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]).slice(0,t.length),t)}(t.getListItemAttributes(),e.getListItemAttributes())}}}decreaseNestingLevel(){const t=this.getBlock();if(t)return this.setDocument(this.document.replaceBlock(t,t.decreaseNestingLevel()))}increaseNestingLevel(){const t=this.getBlock();if(t)return this.setDocument(this.document.replaceBlock(t,t.increaseNestingLevel()))}canDecreaseBlockAttributeLevel(){var t;return(null===(t=this.getBlock())||void 0===t?void 0:t.getAttributeLevel())>0}decreaseBlockAttributeLevel(){var t;const e=null===(t=this.getBlock())||void 0===t?void 0:t.getLastAttribute();if(e)return this.removeCurrentAttribute(e)}decreaseListLevel(){let[t]=Array.from(this.getSelectedRange());const{index:e}=this.document.locationFromPosition(t);let i=e;const n=this.getBlock().getAttributeLevel();let r=this.document.getBlockAtIndex(i+1);for(;r&&r.isListItem()&&!(r.getAttributeLevel()<=n);)i++,r=this.document.getBlockAtIndex(i+1);t=this.document.positionFromLocation({index:e,offset:0});const o=this.document.positionFromLocation({index:i,offset:0});return this.setDocument(this.document.removeLastListAttributeAtRange([t,o]))}updateCurrentAttributes(){const t=this.getSelectedRange({ignoreLock:!0});if(t){const e=this.document.getCommonAttributesAtRange(t);if(Array.from(gt()).forEach((t=>{e[t]||this.canSetCurrentAttribute(t)||(e[t]=!1)})),!Tt(e,this.currentAttributes))return this.currentAttributes=e,this.notifyDelegateOfCurrentAttributesChange()}}getCurrentAttributes(){return m.call({},this.currentAttributes)}getCurrentTextAttributes(){const t={};for(const e in this.currentAttributes){const i=this.currentAttributes[e];!1!==i&&ft(e)&&(t[e]=i)}return t}freezeSelection(){return this.setCurrentAttribute(\"frozen\",!0)}thawSelection(){return this.removeCurrentAttribute(\"frozen\")}hasFrozenSelection(){return this.hasCurrentAttribute(\"frozen\")}setSelection(t){var e;const i=this.document.locationRangeFromRange(t);return null===(e=this.delegate)||void 0===e?void 0:e.compositionDidRequestChangingSelectionToLocationRange(i)}getSelectedRange(){const t=this.getLocationRange();if(t)return this.document.rangeFromLocationRange(t)}setSelectedRange(t){const e=this.document.locationRangeFromRange(t);return this.getSelectionManager().setLocationRange(e)}getPosition(){const t=this.getLocationRange();if(t)return this.document.positionFromLocation(t[0])}getLocationRange(t){return this.targetLocationRange?this.targetLocationRange:this.getSelectionManager().getLocationRange(t)||wt({index:0,offset:0})}withTargetLocationRange(t,e){let i;this.targetLocationRange=t;try{i=e()}finally{this.targetLocationRange=null}return i}withTargetRange(t,e){const i=this.document.locationRangeFromRange(t);return this.withTargetLocationRange(i,e)}withTargetDOMRange(t,e){const i=this.createLocationRangeFromDOMRange(t,{strict:!1});return this.withTargetLocationRange(i,e)}getExpandedRangeInDirection(t){let{length:e}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},[i,n]=Array.from(this.getSelectedRange());return\"backward\"===t?e?i-=e:i=this.translateUTF16PositionFromOffset(i,-1):e?n+=e:n=this.translateUTF16PositionFromOffset(n,1),wt([i,n])}shouldManageMovingCursorInDirection(t){if(this.editingAttachment)return!0;const e=this.getExpandedRangeInDirection(t);return null!=this.getAttachmentAtRange(e)}moveCursorInDirection(t){let e,i;if(this.editingAttachment)i=this.document.getRangeOfAttachment(this.editingAttachment);else{const n=this.getSelectedRange();i=this.getExpandedRangeInDirection(t),e=!Dt(n,i)}if(\"backward\"===t?this.setSelectedRange(i[0]):this.setSelectedRange(i[1]),e){const t=this.getAttachmentAtRange(i);if(t)return this.editAttachment(t)}}expandSelectionInDirection(t){let{length:e}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const i=this.getExpandedRangeInDirection(t,{length:e});return this.setSelectedRange(i)}expandSelectionForEditing(){if(this.hasCurrentAttribute(\"href\"))return this.expandSelectionAroundCommonAttribute(\"href\")}expandSelectionAroundCommonAttribute(t){const e=this.getPosition(),i=this.document.getRangeOfCommonAttributeAtPosition(t,e);return this.setSelectedRange(i)}selectionContainsAttachments(){var t;return(null===(t=this.getSelectedAttachments())||void 0===t?void 0:t.length)>0}selectionIsInCursorTarget(){return this.editingAttachment||this.positionIsCursorTarget(this.getPosition())}positionIsCursorTarget(t){const e=this.document.locationFromPosition(t);if(e)return this.locationIsCursorTarget(e)}positionIsBlockBreak(t){var e;return null===(e=this.document.getPieceAtPosition(t))||void 0===e?void 0:e.isBlockBreak()}getSelectedDocument(){const t=this.getSelectedRange();if(t)return this.document.getDocumentAtRange(t)}getSelectedAttachments(){var t;return null===(t=this.getSelectedDocument())||void 0===t?void 0:t.getAttachments()}getAttachments(){return this.attachments.slice(0)}refreshAttachments(){const t=this.document.getAttachments(),{added:e,removed:i}=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];const i=[],n=[],r=new Set;t.forEach((t=>{r.add(t)}));const o=new Set;return e.forEach((t=>{o.add(t),r.has(t)||i.push(t)})),t.forEach((t=>{o.has(t)||n.push(t)})),{added:i,removed:n}}(this.attachments,t);return this.attachments=t,Array.from(i).forEach((t=>{var e,i;t.delegate=null,null===(e=this.delegate)||void 0===e||null===(i=e.compositionDidRemoveAttachment)||void 0===i||i.call(e,t)})),(()=>{const t=[];return Array.from(e).forEach((e=>{var i,n;e.delegate=this,t.push(null===(i=this.delegate)||void 0===i||null===(n=i.compositionDidAddAttachment)||void 0===n?void 0:n.call(i,e))})),t})()}attachmentDidChangeAttributes(t){var e,i;return this.revision++,null===(e=this.delegate)||void 0===e||null===(i=e.compositionDidEditAttachment)||void 0===i?void 0:i.call(e,t)}attachmentDidChangePreviewURL(t){var e,i;return this.revision++,null===(e=this.delegate)||void 0===e||null===(i=e.compositionDidChangeAttachmentPreviewURL)||void 0===i?void 0:i.call(e,t)}editAttachment(t,e){var i,n;if(t!==this.editingAttachment)return this.stopEditingAttachment(),this.editingAttachment=t,null===(i=this.delegate)||void 0===i||null===(n=i.compositionDidStartEditingAttachment)||void 0===n?void 0:n.call(i,this.editingAttachment,e)}stopEditingAttachment(){var t,e;this.editingAttachment&&(null===(t=this.delegate)||void 0===t||null===(e=t.compositionDidStopEditingAttachment)||void 0===e||e.call(t,this.editingAttachment),this.editingAttachment=null)}updateAttributesForAttachment(t,e){return this.setDocument(this.document.updateAttributesForAttachment(t,e))}removeAttributeForAttachment(t,e){return this.setDocument(this.document.removeAttributeForAttachment(t,e))}breakFormattedBlock(t){let{document:e}=t;const{block:i}=t;let n=t.startPosition,r=[n-1,n];i.getBlockBreakPosition()===t.startLocation.offset?(i.breaksOnReturn()&&\"\\n\"===t.nextCharacter?n+=1:e=e.removeTextAtRange(r),r=[n,n]):\"\\n\"===t.nextCharacter?\"\\n\"===t.previousCharacter?r=[n-1,n+1]:(r=[n,n+1],n+=1):t.startLocation.offset-1!=0&&(n+=1);const o=new on([i.removeLastAttribute().copyWithoutText()]);return this.setDocument(e.insertDocumentAtRange(o,r)),this.setSelection(n)}getPreviousBlock(){const t=this.getLocationRange();if(t){const{index:e}=t[0];if(e>0)return this.document.getBlockAtIndex(e-1)}}getBlock(){const t=this.getLocationRange();if(t)return this.document.getBlockAtIndex(t[0].index)}getAttachmentAtRange(t){const e=this.document.getDocumentAtRange(t);if(e.toString()===\"\".concat(\"\",\"\\n\"))return e.getAttachments()[0]}notifyDelegateOfCurrentAttributesChange(){var t,e;return null===(t=this.delegate)||void 0===t||null===(e=t.compositionDidChangeCurrentAttributes)||void 0===e?void 0:e.call(t,this.currentAttributes)}notifyDelegateOfInsertionAtRange(t){var e,i;return null===(e=this.delegate)||void 0===e||null===(i=e.compositionDidPerformInsertionAtRange)||void 0===i?void 0:i.call(e,t)}translateUTF16PositionFromOffset(t,e){const i=this.document.toUTF16String(),n=i.offsetFromUCS2Offset(t);return i.offsetToUCS2Offset(n+e)}}kn.proxyMethod(\"getSelectionManager().getPointRange\"),kn.proxyMethod(\"getSelectionManager().setLocationRangeFromPointRange\"),kn.proxyMethod(\"getSelectionManager().createLocationRangeFromDOMRange\"),kn.proxyMethod(\"getSelectionManager().locationIsCursorTarget\"),kn.proxyMethod(\"getSelectionManager().selectionIsExpanded\"),kn.proxyMethod(\"delegate?.getSelectionManager\");class Tn extends q{constructor(t){super(...arguments),this.composition=t,this.undoEntries=[],this.redoEntries=[]}recordUndoEntry(t){let{context:e,consolidatable:i}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n=this.undoEntries.slice(-1)[0];if(!i||!wn(n,t,e)){const i=this.createEntry({description:t,context:e});this.undoEntries.push(i),this.redoEntries=[]}}undo(){const t=this.undoEntries.pop();if(t){const e=this.createEntry(t);return this.redoEntries.push(e),this.composition.loadSnapshot(t.snapshot)}}redo(){const t=this.redoEntries.pop();if(t){const e=this.createEntry(t);return this.undoEntries.push(e),this.composition.loadSnapshot(t.snapshot)}}canUndo(){return this.undoEntries.length>0}canRedo(){return this.redoEntries.length>0}createEntry(){let{description:t,context:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{description:null==t?void 0:t.toString(),context:JSON.stringify(e),snapshot:this.composition.getSnapshot()}}}const wn=(t,e,i)=>(null==t?void 0:t.description)===(null==e?void 0:e.toString())&&(null==t?void 0:t.context)===JSON.stringify(i),Ln=\"attachmentGallery\";class Dn{constructor(t){this.document=t.document,this.selectedRange=t.selectedRange}perform(){return this.removeBlockAttribute(),this.applyBlockAttribute()}getSnapshot(){return{document:this.document,selectedRange:this.selectedRange}}removeBlockAttribute(){return this.findRangesOfBlocks().map((t=>this.document=this.document.removeAttributeAtRange(Ln,t)))}applyBlockAttribute(){let t=0;this.findRangesOfPieces().forEach((e=>{e[1]-e[0]>1&&(e[0]+=t,e[1]+=t,\"\\n\"!==this.document.getCharacterAtPosition(e[1])&&(this.document=this.document.insertBlockBreakAtRange(e[1]),e[1]<this.selectedRange[1]&&this.moveSelectedRangeForward(),e[1]++,t++),0!==e[0]&&\"\\n\"!==this.document.getCharacterAtPosition(e[0]-1)&&(this.document=this.document.insertBlockBreakAtRange(e[0]),e[0]<this.selectedRange[0]&&this.moveSelectedRangeForward(),e[0]++,t++),this.document=this.document.applyBlockAttributeAtRange(Ln,!0,e))}))}findRangesOfBlocks(){return this.document.findRangesForBlockAttribute(Ln)}findRangesOfPieces(){return this.document.findRangesForTextAttribute(\"presentation\",{withValue:\"gallery\"})}moveSelectedRangeForward(){this.selectedRange[0]+=1,this.selectedRange[1]+=1}}const Nn=function(t){const e=new Dn(t);return e.perform(),e.getSnapshot()},In=[Nn];class On{constructor(t,e,i){this.insertFiles=this.insertFiles.bind(this),this.composition=t,this.selectionManager=e,this.element=i,this.undoManager=new Tn(this.composition),this.filters=In.slice(0)}loadDocument(t){return this.loadSnapshot({document:t,selectedRange:[0,0]})}loadHTML(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"\";const e=cn.parse(t,{referenceElement:this.element}).getDocument();return this.loadDocument(e)}loadJSON(t){let{document:e,selectedRange:i}=t;return e=on.fromJSON(e),this.loadSnapshot({document:e,selectedRange:i})}loadSnapshot(t){return this.undoManager=new Tn(this.composition),this.composition.loadSnapshot(t)}getDocument(){return this.composition.document}getSelectedDocument(){return this.composition.getSelectedDocument()}getSnapshot(){return this.composition.getSnapshot()}toJSON(){return this.getSnapshot()}deleteInDirection(t){return this.composition.deleteInDirection(t)}insertAttachment(t){return this.composition.insertAttachment(t)}insertAttachments(t){return this.composition.insertAttachments(t)}insertDocument(t){return this.composition.insertDocument(t)}insertFile(t){return this.composition.insertFile(t)}insertFiles(t){return this.composition.insertFiles(t)}insertHTML(t){return this.composition.insertHTML(t)}insertString(t){return this.composition.insertString(t)}insertText(t){return this.composition.insertText(t)}insertLineBreak(){return this.composition.insertLineBreak()}getSelectedRange(){return this.composition.getSelectedRange()}getPosition(){return this.composition.getPosition()}getClientRectAtPosition(t){const e=this.getDocument().locationRangeFromRange([t,t+1]);return this.selectionManager.getClientRectAtLocationRange(e)}expandSelectionInDirection(t){return this.composition.expandSelectionInDirection(t)}moveCursorInDirection(t){return this.composition.moveCursorInDirection(t)}setSelectedRange(t){return this.composition.setSelectedRange(t)}activateAttribute(t){let e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return this.composition.setCurrentAttribute(t,e)}attributeIsActive(t){return this.composition.hasCurrentAttribute(t)}canActivateAttribute(t){return this.composition.canSetCurrentAttribute(t)}deactivateAttribute(t){return this.composition.removeCurrentAttribute(t)}setHTMLAtributeAtPosition(t,e,i){this.composition.setHTMLAtributeAtPosition(t,e,i)}canDecreaseNestingLevel(){return this.composition.canDecreaseNestingLevel()}canIncreaseNestingLevel(){return this.composition.canIncreaseNestingLevel()}decreaseNestingLevel(){if(this.canDecreaseNestingLevel())return this.composition.decreaseNestingLevel()}increaseNestingLevel(){if(this.canIncreaseNestingLevel())return this.composition.increaseNestingLevel()}canRedo(){return this.undoManager.canRedo()}canUndo(){return this.undoManager.canUndo()}recordUndoEntry(t){let{context:e,consolidatable:i}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.undoManager.recordUndoEntry(t,{context:e,consolidatable:i})}redo(){if(this.canRedo())return this.undoManager.redo()}undo(){if(this.canUndo())return this.undoManager.undo()}}class Fn{constructor(t){this.element=t}findLocationFromContainerAndOffset(t,e){let{strict:i}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{strict:!0},n=0,r=!1;const o={index:0,offset:0},s=this.findAttachmentElementParentForNode(t);s&&(t=s.parentNode,e=E(s));const a=R(this.element,{usingFilter:_n});for(;a.nextNode();){const s=a.currentNode;if(s===t&&B(t)){F(s)||(o.offset+=e);break}if(s.parentNode===t){if(n++===e)break}else if(!C(t,s)&&n>0)break;N(s,{strict:i})?(r&&o.index++,o.offset=0,r=!0):o.offset+=Pn(s)}return o}findContainerAndOffsetFromLocation(t){let e,i;if(0===t.index&&0===t.offset){for(e=this.element,i=0;e.firstChild;)if(e=e.firstChild,D(e)){i=1;break}return[e,i]}let[n,r]=this.findNodeAndOffsetFromLocation(t);if(n){if(B(n))0===Pn(n)?(e=n.parentNode.parentNode,i=E(n.parentNode),F(n,{name:\"right\"})&&i++):(e=n,i=t.offset-r);else{if(e=n.parentNode,!N(n.previousSibling)&&!D(e))for(;n===e.lastChild&&(n=e,e=e.parentNode,!D(e)););i=E(n),0!==t.offset&&i++}return[e,i]}}findNodeAndOffsetFromLocation(t){let e,i,n=0;for(const r of this.getSignificantNodesForIndex(t.index)){const o=Pn(r);if(t.offset<=n+o)if(B(r)){if(e=r,i=n,t.offset===i&&F(e))break}else e||(e=r,i=n);if(n+=o,n>t.offset)break}return[e,i]}findAttachmentElementParentForNode(t){for(;t&&t!==this.element;){if(P(t))return t;t=t.parentNode}}getSignificantNodesForIndex(t){const e=[],i=R(this.element,{usingFilter:Mn});let n=!1;for(;i.nextNode();){const o=i.currentNode;var r;if(I(o)){if(null!=r?r++:r=0,r===t)n=!0;else if(n)break}else n&&e.push(o)}return e}}const Pn=function(t){if(t.nodeType===Node.TEXT_NODE){if(F(t))return 0;return t.textContent.length}return\"br\"===k(t)||P(t)?1:0},Mn=function(t){return Bn(t)===NodeFilter.FILTER_ACCEPT?_n(t):NodeFilter.FILTER_REJECT},Bn=function(t){return M(t)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT},_n=function(t){return P(t.parentNode)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT};class jn{createDOMRangeFromPoint(t){let e,{x:i,y:n}=t;if(document.caretPositionFromPoint){const{offsetNode:t,offset:r}=document.caretPositionFromPoint(i,n);return e=document.createRange(),e.setStart(t,r),e}if(document.caretRangeFromPoint)return document.caretRangeFromPoint(i,n);if(document.body.createTextRange){const t=Mt();try{const t=document.body.createTextRange();t.moveToPoint(i,n),t.select()}catch(t){}return e=Mt(),Bt(t),e}}getClientRectsForDOMRange(t){const e=Array.from(t.getClientRects());return[e[0],e[e.length-1]]}}class Wn extends q{constructor(t){super(...arguments),this.didMouseDown=this.didMouseDown.bind(this),this.selectionDidChange=this.selectionDidChange.bind(this),this.element=t,this.locationMapper=new Fn(this.element),this.pointMapper=new jn,this.lockCount=0,b(\"mousedown\",{onElement:this.element,withCallback:this.didMouseDown})}getLocationRange(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return!1===t.strict?this.createLocationRangeFromDOMRange(Mt()):t.ignoreLock?this.currentLocationRange:this.lockedLocationRange?this.lockedLocationRange:this.currentLocationRange}setLocationRange(t){if(this.lockedLocationRange)return;t=wt(t);const e=this.createDOMRangeFromLocationRange(t);e&&(Bt(e),this.updateCurrentLocationRange(t))}setLocationRangeFromPointRange(t){t=wt(t);const e=this.getLocationAtPoint(t[0]),i=this.getLocationAtPoint(t[1]);this.setLocationRange([e,i])}getClientRectAtLocationRange(t){const e=this.createDOMRangeFromLocationRange(t);if(e)return this.getClientRectsForDOMRange(e)[1]}locationIsCursorTarget(t){const e=Array.from(this.findNodeAndOffsetFromLocation(t))[0];return F(e)}lock(){0==this.lockCount++&&(this.updateCurrentLocationRange(),this.lockedLocationRange=this.getLocationRange())}unlock(){if(0==--this.lockCount){const{lockedLocationRange:t}=this;if(this.lockedLocationRange=null,null!=t)return this.setLocationRange(t)}}clearSelection(){var t;return null===(t=Pt())||void 0===t?void 0:t.removeAllRanges()}selectionIsCollapsed(){var t;return!0===(null===(t=Mt())||void 0===t?void 0:t.collapsed)}selectionIsExpanded(){return!this.selectionIsCollapsed()}createLocationRangeFromDOMRange(t,e){if(null==t||!this.domRangeWithinElement(t))return;const i=this.findLocationFromContainerAndOffset(t.startContainer,t.startOffset,e);if(!i)return;const n=t.collapsed?void 0:this.findLocationFromContainerAndOffset(t.endContainer,t.endOffset,e);return wt([i,n])}didMouseDown(){return this.pauseTemporarily()}pauseTemporarily(){let t;this.paused=!0;const e=()=>{if(this.paused=!1,clearTimeout(i),Array.from(t).forEach((t=>{t.destroy()})),C(document,this.element))return this.selectionDidChange()},i=setTimeout(e,200);t=[\"mousemove\",\"keydown\"].map((t=>b(t,{onElement:document,withCallback:e})))}selectionDidChange(){if(!this.paused&&!x(this.element))return this.updateCurrentLocationRange()}updateCurrentLocationRange(t){var e,i;if((null!=t?t:t=this.createLocationRangeFromDOMRange(Mt()))&&!Dt(t,this.currentLocationRange))return this.currentLocationRange=t,null===(e=this.delegate)||void 0===e||null===(i=e.locationRangeDidChange)||void 0===i?void 0:i.call(e,this.currentLocationRange.slice(0))}createDOMRangeFromLocationRange(t){const e=this.findContainerAndOffsetFromLocation(t[0]),i=Lt(t)?e:this.findContainerAndOffsetFromLocation(t[1])||e;if(null!=e&&null!=i){const t=document.createRange();return t.setStart(...Array.from(e||[])),t.setEnd(...Array.from(i||[])),t}}getLocationAtPoint(t){const e=this.createDOMRangeFromPoint(t);var i;if(e)return null===(i=this.createLocationRangeFromDOMRange(e))||void 0===i?void 0:i[0]}domRangeWithinElement(t){return t.collapsed?C(this.element,t.startContainer):C(this.element,t.startContainer)&&C(this.element,t.endContainer)}}Wn.proxyMethod(\"locationMapper.findLocationFromContainerAndOffset\"),Wn.proxyMethod(\"locationMapper.findContainerAndOffsetFromLocation\"),Wn.proxyMethod(\"locationMapper.findNodeAndOffsetFromLocation\"),Wn.proxyMethod(\"pointMapper.createDOMRangeFromPoint\"),Wn.proxyMethod(\"pointMapper.getClientRectsForDOMRange\");var Un=Object.freeze({__proto__:null,Attachment:Wi,AttachmentManager:Sn,AttachmentPiece:Ui,Block:Gi,Composition:kn,Document:on,Editor:On,HTMLParser:cn,HTMLSanitizer:ui,LineBreakInsertion:Rn,LocationMapper:Fn,ManagedAttachment:En,Piece:_i,PointMapper:jn,SelectionManager:Wn,SplittableList:zi,StringPiece:Vi,Text:Ki,UndoManager:Tn}),Vn=Object.freeze({__proto__:null,ObjectView:ie,AttachmentView:gi,BlockView:xi,DocumentView:Ci,PieceView:bi,PreviewableAttachmentView:fi,TextView:vi});const{lang:zn,css:qn,keyNames:Hn}=z,Jn=function(t){return function(){const e=t.apply(this,arguments);e.do(),this.undos||(this.undos=[]),this.undos.push(e.undo)}};class Kn extends q{constructor(t,e,i){let n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};super(...arguments),wi(this,\"makeElementMutable\",Jn((()=>({do:()=>{this.element.dataset.trixMutable=!0},undo:()=>delete this.element.dataset.trixMutable})))),wi(this,\"addToolbar\",Jn((()=>{const t=T({tagName:\"div\",className:qn.attachmentToolbar,data:{trixMutable:!0},childNodes:T({tagName:\"div\",className:\"trix-button-row\",childNodes:T({tagName:\"span\",className:\"trix-button-group trix-button-group--actions\",childNodes:T({tagName:\"button\",className:\"trix-button trix-button--remove\",textContent:zn.remove,attributes:{title:zn.remove},data:{trixAction:\"remove\"}})})})});return this.attachment.isPreviewable()&&t.appendChild(T({tagName:\"div\",className:qn.attachmentMetadataContainer,childNodes:T({tagName:\"span\",className:qn.attachmentMetadata,childNodes:[T({tagName:\"span\",className:qn.attachmentName,textContent:this.attachment.getFilename(),attributes:{title:this.attachment.getFilename()}}),T({tagName:\"span\",className:qn.attachmentSize,textContent:this.attachment.getFormattedFilesize()})]})})),b(\"click\",{onElement:t,withCallback:this.didClickToolbar}),b(\"click\",{onElement:t,matchingSelector:\"[data-trix-action]\",withCallback:this.didClickActionButton}),v(\"trix-attachment-before-toolbar\",{onElement:this.element,attributes:{toolbar:t,attachment:this.attachment}}),{do:()=>this.element.appendChild(t),undo:()=>S(t)}}))),wi(this,\"installCaptionEditor\",Jn((()=>{const t=T({tagName:\"textarea\",className:qn.attachmentCaptionEditor,attributes:{placeholder:zn.captionPlaceholder},data:{trixMutable:!0}});t.value=this.attachmentPiece.getCaption();const e=t.cloneNode();e.classList.add(\"trix-autoresize-clone\"),e.tabIndex=-1;const i=function(){e.value=t.value,t.style.height=e.scrollHeight+\"px\"};b(\"input\",{onElement:t,withCallback:i}),b(\"input\",{onElement:t,withCallback:this.didInputCaption}),b(\"keydown\",{onElement:t,withCallback:this.didKeyDownCaption}),b(\"change\",{onElement:t,withCallback:this.didChangeCaption}),b(\"blur\",{onElement:t,withCallback:this.didBlurCaption});const n=this.element.querySelector(\"figcaption\"),r=n.cloneNode();return{do:()=>{if(n.style.display=\"none\",r.appendChild(t),r.appendChild(e),r.classList.add(\"\".concat(qn.attachmentCaption,\"--editing\")),n.parentElement.insertBefore(r,n),i(),this.options.editCaption)return Rt((()=>t.focus()))},undo(){S(r),n.style.display=null}}}))),this.didClickToolbar=this.didClickToolbar.bind(this),this.didClickActionButton=this.didClickActionButton.bind(this),this.didKeyDownCaption=this.didKeyDownCaption.bind(this),this.didInputCaption=this.didInputCaption.bind(this),this.didChangeCaption=this.didChangeCaption.bind(this),this.didBlurCaption=this.didBlurCaption.bind(this),this.attachmentPiece=t,this.element=e,this.container=i,this.options=n,this.attachment=this.attachmentPiece.attachment,\"a\"===k(this.element)&&(this.element=this.element.firstChild),this.install()}install(){this.makeElementMutable(),this.addToolbar(),this.attachment.isPreviewable()&&this.installCaptionEditor()}uninstall(){var t;let e=this.undos.pop();for(this.savePendingCaption();e;)e(),e=this.undos.pop();null===(t=this.delegate)||void 0===t||t.didUninstallAttachmentEditor(this)}savePendingCaption(){if(null!=this.pendingCaption){const r=this.pendingCaption;var t,e,i,n;if(this.pendingCaption=null,r)null===(t=this.delegate)||void 0===t||null===(e=t.attachmentEditorDidRequestUpdatingAttributesForAttachment)||void 0===e||e.call(t,{caption:r},this.attachment);else null===(i=this.delegate)||void 0===i||null===(n=i.attachmentEditorDidRequestRemovingAttributeForAttachment)||void 0===n||n.call(i,\"caption\",this.attachment)}}didClickToolbar(t){return t.preventDefault(),t.stopPropagation()}didClickActionButton(t){var e;if(\"remove\"===t.target.getAttribute(\"data-trix-action\"))return null===(e=this.delegate)||void 0===e?void 0:e.attachmentEditorDidRequestRemovalOfAttachment(this.attachment)}didKeyDownCaption(t){var e,i;if(\"return\"===Hn[t.keyCode])return t.preventDefault(),this.savePendingCaption(),null===(e=this.delegate)||void 0===e||null===(i=e.attachmentEditorDidRequestDeselectingAttachment)||void 0===i?void 0:i.call(e,this.attachment)}didInputCaption(t){this.pendingCaption=t.target.value.replace(/\\s/g,\" \").trim()}didChangeCaption(t){return this.savePendingCaption()}didBlurCaption(t){return this.savePendingCaption()}}class Gn extends q{constructor(t,i){super(...arguments),this.didFocus=this.didFocus.bind(this),this.didBlur=this.didBlur.bind(this),this.didClickAttachment=this.didClickAttachment.bind(this),this.element=t,this.composition=i,this.documentView=new Ci(this.composition.document,{element:this.element}),b(\"focus\",{onElement:this.element,withCallback:this.didFocus}),b(\"blur\",{onElement:this.element,withCallback:this.didBlur}),b(\"click\",{onElement:this.element,matchingSelector:\"a[contenteditable=false]\",preventDefault:!0}),b(\"mousedown\",{onElement:this.element,matchingSelector:e,withCallback:this.didClickAttachment}),b(\"click\",{onElement:this.element,matchingSelector:\"a\".concat(e),preventDefault:!0})}didFocus(t){var e;const i=()=>{var t,e;if(!this.focused)return this.focused=!0,null===(t=this.delegate)||void 0===t||null===(e=t.compositionControllerDidFocus)||void 0===e?void 0:e.call(t)};return(null===(e=this.blurPromise)||void 0===e?void 0:e.then(i))||i()}didBlur(t){this.blurPromise=new Promise((t=>Rt((()=>{var e,i;x(this.element)||(this.focused=null,null===(e=this.delegate)||void 0===e||null===(i=e.compositionControllerDidBlur)||void 0===i||i.call(e));return this.blurPromise=null,t()}))))}didClickAttachment(t,e){var i,n;const r=this.findAttachmentForElement(e),o=!!y(t.target,{matchingSelector:\"figcaption\"});return null===(i=this.delegate)||void 0===i||null===(n=i.compositionControllerDidSelectAttachment)||void 0===n?void 0:n.call(i,r,{editCaption:o})}getSerializableElement(){return this.isEditingAttachment()?this.documentView.shadowElement:this.element}render(){var t,e,i,n,r,o;(this.revision!==this.composition.revision&&(this.documentView.setDocument(this.composition.document),this.documentView.render(),this.revision=this.composition.revision),this.canSyncDocumentView()&&!this.documentView.isSynced())&&(null===(i=this.delegate)||void 0===i||null===(n=i.compositionControllerWillSyncDocumentView)||void 0===n||n.call(i),this.documentView.sync(),null===(r=this.delegate)||void 0===r||null===(o=r.compositionControllerDidSyncDocumentView)||void 0===o||o.call(r));return null===(t=this.delegate)||void 0===t||null===(e=t.compositionControllerDidRender)||void 0===e?void 0:e.call(t)}rerenderViewForObject(t){return this.invalidateViewForObject(t),this.render()}invalidateViewForObject(t){return this.documentView.invalidateViewForObject(t)}isViewCachingEnabled(){return this.documentView.isViewCachingEnabled()}enableViewCaching(){return this.documentView.enableViewCaching()}disableViewCaching(){return this.documentView.disableViewCaching()}refreshViewCache(){return this.documentView.garbageCollectCachedViews()}isEditingAttachment(){return!!this.attachmentEditor}installAttachmentEditorForAttachment(t,e){var i;if((null===(i=this.attachmentEditor)||void 0===i?void 0:i.attachment)===t)return;const n=this.documentView.findElementForObject(t);if(!n)return;this.uninstallAttachmentEditor();const r=this.composition.document.getAttachmentPieceForAttachment(t);this.attachmentEditor=new Kn(r,n,this.element,e),this.attachmentEditor.delegate=this}uninstallAttachmentEditor(){var t;return null===(t=this.attachmentEditor)||void 0===t?void 0:t.uninstall()}didUninstallAttachmentEditor(){return this.attachmentEditor=null,this.render()}attachmentEditorDidRequestUpdatingAttributesForAttachment(t,e){var i,n;return null===(i=this.delegate)||void 0===i||null===(n=i.compositionControllerWillUpdateAttachment)||void 0===n||n.call(i,e),this.composition.updateAttributesForAttachment(t,e)}attachmentEditorDidRequestRemovingAttributeForAttachment(t,e){var i,n;return null===(i=this.delegate)||void 0===i||null===(n=i.compositionControllerWillUpdateAttachment)||void 0===n||n.call(i,e),this.composition.removeAttributeForAttachment(t,e)}attachmentEditorDidRequestRemovalOfAttachment(t){var e,i;return null===(e=this.delegate)||void 0===e||null===(i=e.compositionControllerDidRequestRemovalOfAttachment)||void 0===i?void 0:i.call(e,t)}attachmentEditorDidRequestDeselectingAttachment(t){var e,i;return null===(e=this.delegate)||void 0===e||null===(i=e.compositionControllerDidRequestDeselectingAttachment)||void 0===i?void 0:i.call(e,t)}canSyncDocumentView(){return!this.isEditingAttachment()}findAttachmentForElement(t){return this.composition.document.getAttachmentById(parseInt(t.dataset.trixId,10))}}class Yn extends q{}const $n=\"data-trix-mutable\",Xn=\"[\".concat($n,\"]\"),Zn={attributes:!0,childList:!0,characterData:!0,characterDataOldValue:!0,subtree:!0};class Qn extends q{constructor(t){super(t),this.didMutate=this.didMutate.bind(this),this.element=t,this.observer=new window.MutationObserver(this.didMutate),this.start()}start(){return this.reset(),this.observer.observe(this.element,Zn)}stop(){return this.observer.disconnect()}didMutate(t){var e,i;if(this.mutations.push(...Array.from(this.findSignificantMutations(t)||[])),this.mutations.length)return null===(e=this.delegate)||void 0===e||null===(i=e.elementDidMutate)||void 0===i||i.call(e,this.getMutationSummary()),this.reset()}reset(){this.mutations=[]}findSignificantMutations(t){return t.filter((t=>this.mutationIsSignificant(t)))}mutationIsSignificant(t){if(this.nodeIsMutable(t.target))return!1;for(const e of Array.from(this.nodesModifiedByMutation(t)))if(this.nodeIsSignificant(e))return!0;return!1}nodeIsSignificant(t){return t!==this.element&&!this.nodeIsMutable(t)&&!M(t)}nodeIsMutable(t){return y(t,{matchingSelector:Xn})}nodesModifiedByMutation(t){const e=[];switch(t.type){case\"attributes\":t.attributeName!==$n&&e.push(t.target);break;case\"characterData\":e.push(t.target.parentNode),e.push(t.target);break;case\"childList\":e.push(...Array.from(t.addedNodes||[])),e.push(...Array.from(t.removedNodes||[]))}return e}getMutationSummary(){return this.getTextMutationSummary()}getTextMutationSummary(){const{additions:t,deletions:e}=this.getTextChangesFromCharacterData(),i=this.getTextChangesFromChildList();Array.from(i.additions).forEach((e=>{Array.from(t).includes(e)||t.push(e)})),e.push(...Array.from(i.deletions||[]));const n={},r=t.join(\"\");r&&(n.textAdded=r);const o=e.join(\"\");return o&&(n.textDeleted=o),n}getMutationsByType(t){return Array.from(this.mutations).filter((e=>e.type===t))}getTextChangesFromChildList(){let t,e;const i=[],n=[];Array.from(this.getMutationsByType(\"childList\")).forEach((t=>{i.push(...Array.from(t.addedNodes||[])),n.push(...Array.from(t.removedNodes||[]))}));0===i.length&&1===n.length&&I(n[0])?(t=[],e=[\"\\n\"]):(t=tr(i),e=tr(n));const r=t.filter(((t,i)=>t!==e[i])).map(Wt),o=e.filter(((e,i)=>e!==t[i])).map(Wt);return{additions:r,deletions:o}}getTextChangesFromCharacterData(){let t,e;const i=this.getMutationsByType(\"characterData\");if(i.length){const n=i[0],r=i[i.length-1],o=function(t,e){let i,n;return t=X.box(t),(e=X.box(e)).length<t.length?[n,i]=zt(t,e):[i,n]=zt(e,t),{added:i,removed:n}}(Wt(n.oldValue),Wt(r.target.data));t=o.added,e=o.removed}return{additions:t?[t]:[],deletions:e?[e]:[]}}}const tr=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];const e=[];for(const i of Array.from(t))switch(i.nodeType){case Node.TEXT_NODE:e.push(i.data);break;case Node.ELEMENT_NODE:\"br\"===k(i)?e.push(\"\\n\"):e.push(...Array.from(tr(i.childNodes)||[]))}return e};class er extends ee{constructor(t){super(...arguments),this.file=t}perform(t){const e=new FileReader;return e.onerror=()=>t(!1),e.onload=()=>{e.onerror=null;try{e.abort()}catch(t){}return t(!0,this.file)},e.readAsArrayBuffer(this.file)}}class ir{constructor(t){this.element=t}shouldIgnore(t){return!!a.samsungAndroid&&(this.previousEvent=this.event,this.event=t,this.checkSamsungKeyboardBuggyModeStart(),this.checkSamsungKeyboardBuggyModeEnd(),this.buggyMode)}checkSamsungKeyboardBuggyModeStart(){this.insertingLongTextAfterUnidentifiedChar()&&nr(this.element.innerText,this.event.data)&&(this.buggyMode=!0,this.event.preventDefault())}checkSamsungKeyboardBuggyModeEnd(){this.buggyMode&&\"insertText\"!==this.event.inputType&&(this.buggyMode=!1)}insertingLongTextAfterUnidentifiedChar(){var t;return this.isBeforeInputInsertText()&&this.previousEventWasUnidentifiedKeydown()&&(null===(t=this.event.data)||void 0===t?void 0:t.length)>50}isBeforeInputInsertText(){return\"beforeinput\"===this.event.type&&\"insertText\"===this.event.inputType}previousEventWasUnidentifiedKeydown(){var t,e;return\"keydown\"===(null===(t=this.previousEvent)||void 0===t?void 0:t.type)&&\"Unidentified\"===(null===(e=this.previousEvent)||void 0===e?void 0:e.key)}}const nr=(t,e)=>or(t)===or(e),rr=new RegExp(\"(\".concat(\"\",\"|\").concat(d,\"|\").concat(g,\"|\\\\s)+\"),\"g\"),or=t=>t.replace(rr,\" \").trim();class sr extends q{constructor(t){super(...arguments),this.element=t,this.mutationObserver=new Qn(this.element),this.mutationObserver.delegate=this,this.flakyKeyboardDetector=new ir(this.element);for(const t in this.constructor.events)b(t,{onElement:this.element,withCallback:this.handlerFor(t)})}elementDidMutate(t){}editorWillSyncDocumentView(){return this.mutationObserver.stop()}editorDidSyncDocumentView(){return this.mutationObserver.start()}requestRender(){var t,e;return null===(t=this.delegate)||void 0===t||null===(e=t.inputControllerDidRequestRender)||void 0===e?void 0:e.call(t)}requestReparse(){var t,e;return null===(t=this.delegate)||void 0===t||null===(e=t.inputControllerDidRequestReparse)||void 0===e||e.call(t),this.requestRender()}attachFiles(t){const e=Array.from(t).map((t=>new er(t)));return Promise.all(e).then((t=>{this.handleInput((function(){var e,i;return null===(e=this.delegate)||void 0===e||e.inputControllerWillAttachFiles(),null===(i=this.responder)||void 0===i||i.insertFiles(t),this.requestRender()}))}))}handlerFor(t){return e=>{e.defaultPrevented||this.handleInput((()=>{if(!x(this.element)){if(this.flakyKeyboardDetector.shouldIgnore(e))return;this.eventName=t,this.constructor.events[t].call(this,e)}}))}}handleInput(t){try{var e;null===(e=this.delegate)||void 0===e||e.inputControllerWillHandleInput(),t.call(this)}finally{var i;null===(i=this.delegate)||void 0===i||i.inputControllerDidHandleInput()}}createLinkHTML(t,e){const i=document.createElement(\"a\");return i.href=t,i.textContent=e||t,i.outerHTML}}var ar;wi(sr,\"events\",{});const{browser:lr,keyNames:cr}=z;let ur=0;class hr extends sr{constructor(){super(...arguments),this.resetInputSummary()}setInputSummary(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.inputSummary.eventName=this.eventName;for(const e in t){const i=t[e];this.inputSummary[e]=i}return this.inputSummary}resetInputSummary(){this.inputSummary={}}reset(){return this.resetInputSummary(),Ft.reset()}elementDidMutate(t){var e,i;return this.isComposing()?null===(e=this.delegate)||void 0===e||null===(i=e.inputControllerDidAllowUnhandledInput)||void 0===i?void 0:i.call(e):this.handleInput((function(){return this.mutationIsSignificant(t)&&(this.mutationIsExpected(t)?this.requestRender():this.requestReparse()),this.reset()}))}mutationIsExpected(t){let{textAdded:e,textDeleted:i}=t;if(this.inputSummary.preferDocument)return!0;const n=null!=e?e===this.inputSummary.textAdded:!this.inputSummary.textAdded,r=null!=i?this.inputSummary.didDelete:!this.inputSummary.didDelete,o=[\"\\n\",\" \\n\"].includes(e)&&!n,s=\"\\n\"===i&&!r;if(o&&!s||s&&!o){const t=this.getSelectedRange();if(t){var a;const i=o?e.replace(/\\n$/,\"\").length||-1:(null==e?void 0:e.length)||1;if(null!==(a=this.responder)&&void 0!==a&&a.positionIsBlockBreak(t[1]+i))return!0}}return n&&r}mutationIsSignificant(t){var e;const i=Object.keys(t).length>0,n=\"\"===(null===(e=this.compositionInput)||void 0===e?void 0:e.getEndData());return i||!n}getCompositionInput(){if(this.isComposing())return this.compositionInput;this.compositionInput=new fr(this)}isComposing(){return this.compositionInput&&!this.compositionInput.isEnded()}deleteInDirection(t,e){var i;return!1!==(null===(i=this.responder)||void 0===i?void 0:i.deleteInDirection(t))?this.setInputSummary({didDelete:!0}):e?(e.preventDefault(),this.requestRender()):void 0}serializeSelectionToDataTransfer(t){var e;if(!function(t){if(null==t||!t.setData)return!1;for(const e in Ct){const i=Ct[e];try{if(t.setData(e,i),!t.getData(e)===i)return!1}catch(t){return!1}}return!0}(t))return;const i=null===(e=this.responder)||void 0===e?void 0:e.getSelectedDocument().toSerializableDocument();return t.setData(\"application/x-trix-document\",JSON.stringify(i)),t.setData(\"text/html\",Ci.render(i).innerHTML),t.setData(\"text/plain\",i.toString().replace(/\\n$/,\"\")),!0}canAcceptDataTransfer(t){const e={};return Array.from((null==t?void 0:t.types)||[]).forEach((t=>{e[t]=!0})),e.Files||e[\"application/x-trix-document\"]||e[\"text/html\"]||e[\"text/plain\"]}getPastedHTMLUsingHiddenElement(t){const e=this.getSelectedRange(),i={position:\"absolute\",left:\"\".concat(window.pageXOffset,\"px\"),top:\"\".concat(window.pageYOffset,\"px\"),opacity:0},n=T({style:i,tagName:\"div\",editable:!0});return document.body.appendChild(n),n.focus(),requestAnimationFrame((()=>{const i=n.innerHTML;return S(n),this.setSelectedRange(e),t(i)}))}}wi(hr,\"events\",{keydown(t){this.isComposing()||this.resetInputSummary(),this.inputSummary.didInput=!0;const e=cr[t.keyCode];if(e){var i;let n=this.keys;[\"ctrl\",\"alt\",\"shift\",\"meta\"].forEach((e=>{var i;t[\"\".concat(e,\"Key\")]&&(\"ctrl\"===e&&(e=\"control\"),n=null===(i=n)||void 0===i?void 0:i[e])})),null!=(null===(i=n)||void 0===i?void 0:i[e])&&(this.setInputSummary({keyName:e}),Ft.reset(),n[e].call(this,t))}if(St(t)){const e=String.fromCharCode(t.keyCode).toLowerCase();if(e){var n;const i=[\"alt\",\"shift\"].map((e=>{if(t[\"\".concat(e,\"Key\")])return e})).filter((t=>t));i.push(e),null!==(n=this.delegate)&&void 0!==n&&n.inputControllerDidReceiveKeyboardCommand(i)&&t.preventDefault()}}},keypress(t){if(null!=this.inputSummary.eventName)return;if(t.metaKey)return;if(t.ctrlKey&&!t.altKey)return;const e=mr(t);var i,n;return e?(null===(i=this.delegate)||void 0===i||i.inputControllerWillPerformTyping(),null===(n=this.responder)||void 0===n||n.insertString(e),this.setInputSummary({textAdded:e,didDelete:this.selectionIsExpanded()})):void 0},textInput(t){const{data:e}=t,{textAdded:i}=this.inputSummary;if(i&&i!==e&&i.toUpperCase()===e){var n;const t=this.getSelectedRange();return this.setSelectedRange([t[0],t[1]+i.length]),null===(n=this.responder)||void 0===n||n.insertString(e),this.setInputSummary({textAdded:e}),this.setSelectedRange(t)}},dragenter(t){t.preventDefault()},dragstart(t){var e,i;return this.serializeSelectionToDataTransfer(t.dataTransfer),this.draggedRange=this.getSelectedRange(),null===(e=this.delegate)||void 0===e||null===(i=e.inputControllerDidStartDrag)||void 0===i?void 0:i.call(e)},dragover(t){if(this.draggedRange||this.canAcceptDataTransfer(t.dataTransfer)){t.preventDefault();const n={x:t.clientX,y:t.clientY};var e,i;if(!Tt(n,this.draggingPoint))return this.draggingPoint=n,null===(e=this.delegate)||void 0===e||null===(i=e.inputControllerDidReceiveDragOverPoint)||void 0===i?void 0:i.call(e,this.draggingPoint)}},dragend(t){var e,i;null===(e=this.delegate)||void 0===e||null===(i=e.inputControllerDidCancelDrag)||void 0===i||i.call(e),this.draggedRange=null,this.draggingPoint=null},drop(t){var e,i;t.preventDefault();const n=null===(e=t.dataTransfer)||void 0===e?void 0:e.files,r=t.dataTransfer.getData(\"application/x-trix-document\"),o={x:t.clientX,y:t.clientY};if(null===(i=this.responder)||void 0===i||i.setLocationRangeFromPointRange(o),null!=n&&n.length)this.attachFiles(n);else if(this.draggedRange){var s,a;null===(s=this.delegate)||void 0===s||s.inputControllerWillMoveText(),null===(a=this.responder)||void 0===a||a.moveTextFromRange(this.draggedRange),this.draggedRange=null,this.requestRender()}else if(r){var l;const t=on.fromJSONString(r);null===(l=this.responder)||void 0===l||l.insertDocument(t),this.requestRender()}this.draggedRange=null,this.draggingPoint=null},cut(t){var e,i;if(null!==(e=this.responder)&&void 0!==e&&e.selectionIsExpanded()&&(this.serializeSelectionToDataTransfer(t.clipboardData)&&t.preventDefault(),null===(i=this.delegate)||void 0===i||i.inputControllerWillCutText(),this.deleteInDirection(\"backward\"),t.defaultPrevented))return this.requestRender()},copy(t){var e;null!==(e=this.responder)&&void 0!==e&&e.selectionIsExpanded()&&this.serializeSelectionToDataTransfer(t.clipboardData)&&t.preventDefault()},paste(t){const e=t.clipboardData||t.testClipboardData,i={clipboard:e};if(!e||pr(t))return void this.getPastedHTMLUsingHiddenElement((t=>{var e,n,r;return i.type=\"text/html\",i.html=t,null===(e=this.delegate)||void 0===e||e.inputControllerWillPaste(i),null===(n=this.responder)||void 0===n||n.insertHTML(i.html),this.requestRender(),null===(r=this.delegate)||void 0===r?void 0:r.inputControllerDidPaste(i)}));const n=e.getData(\"URL\"),r=e.getData(\"text/html\"),o=e.getData(\"public.url-name\");if(n){var s,a,l;let t;i.type=\"text/html\",t=o?Vt(o).trim():n,i.html=this.createLinkHTML(n,t),null===(s=this.delegate)||void 0===s||s.inputControllerWillPaste(i),this.setInputSummary({textAdded:t,didDelete:this.selectionIsExpanded()}),null===(a=this.responder)||void 0===a||a.insertHTML(i.html),this.requestRender(),null===(l=this.delegate)||void 0===l||l.inputControllerDidPaste(i)}else if(Et(e)){var c,u,h;i.type=\"text/plain\",i.string=e.getData(\"text/plain\"),null===(c=this.delegate)||void 0===c||c.inputControllerWillPaste(i),this.setInputSummary({textAdded:i.string,didDelete:this.selectionIsExpanded()}),null===(u=this.responder)||void 0===u||u.insertString(i.string),this.requestRender(),null===(h=this.delegate)||void 0===h||h.inputControllerDidPaste(i)}else if(r){var d,g,m;i.type=\"text/html\",i.html=r,null===(d=this.delegate)||void 0===d||d.inputControllerWillPaste(i),null===(g=this.responder)||void 0===g||g.insertHTML(i.html),this.requestRender(),null===(m=this.delegate)||void 0===m||m.inputControllerDidPaste(i)}else if(Array.from(e.types).includes(\"Files\")){var p,f;const t=null===(p=e.items)||void 0===p||null===(p=p[0])||void 0===p||null===(f=p.getAsFile)||void 0===f?void 0:f.call(p);if(t){var b,v,A;const e=dr(t);!t.name&&e&&(t.name=\"pasted-file-\".concat(++ur,\".\").concat(e)),i.type=\"File\",i.file=t,null===(b=this.delegate)||void 0===b||b.inputControllerWillAttachFiles(),null===(v=this.responder)||void 0===v||v.insertFile(i.file),this.requestRender(),null===(A=this.delegate)||void 0===A||A.inputControllerDidPaste(i)}}t.preventDefault()},compositionstart(t){return this.getCompositionInput().start(t.data)},compositionupdate(t){return this.getCompositionInput().update(t.data)},compositionend(t){return this.getCompositionInput().end(t.data)},beforeinput(t){this.inputSummary.didInput=!0},input(t){return this.inputSummary.didInput=!0,t.stopPropagation()}}),wi(hr,\"keys\",{backspace(t){var e;return null===(e=this.delegate)||void 0===e||e.inputControllerWillPerformTyping(),this.deleteInDirection(\"backward\",t)},delete(t){var e;return null===(e=this.delegate)||void 0===e||e.inputControllerWillPerformTyping(),this.deleteInDirection(\"forward\",t)},return(t){var e,i;return this.setInputSummary({preferDocument:!0}),null===(e=this.delegate)||void 0===e||e.inputControllerWillPerformTyping(),null===(i=this.responder)||void 0===i?void 0:i.insertLineBreak()},tab(t){var e,i;null!==(e=this.responder)&&void 0!==e&&e.canIncreaseNestingLevel()&&(null===(i=this.responder)||void 0===i||i.increaseNestingLevel(),this.requestRender(),t.preventDefault())},left(t){var e;if(this.selectionIsInCursorTarget())return t.preventDefault(),null===(e=this.responder)||void 0===e?void 0:e.moveCursorInDirection(\"backward\")},right(t){var e;if(this.selectionIsInCursorTarget())return t.preventDefault(),null===(e=this.responder)||void 0===e?void 0:e.moveCursorInDirection(\"forward\")},control:{d(t){var e;return null===(e=this.delegate)||void 0===e||e.inputControllerWillPerformTyping(),this.deleteInDirection(\"forward\",t)},h(t){var e;return null===(e=this.delegate)||void 0===e||e.inputControllerWillPerformTyping(),this.deleteInDirection(\"backward\",t)},o(t){var e,i;return t.preventDefault(),null===(e=this.delegate)||void 0===e||e.inputControllerWillPerformTyping(),null===(i=this.responder)||void 0===i||i.insertString(\"\\n\",{updatePosition:!1}),this.requestRender()}},shift:{return(t){var e,i;null===(e=this.delegate)||void 0===e||e.inputControllerWillPerformTyping(),null===(i=this.responder)||void 0===i||i.insertString(\"\\n\"),this.requestRender(),t.preventDefault()},tab(t){var e,i;null!==(e=this.responder)&&void 0!==e&&e.canDecreaseNestingLevel()&&(null===(i=this.responder)||void 0===i||i.decreaseNestingLevel(),this.requestRender(),t.preventDefault())},left(t){if(this.selectionIsInCursorTarget())return t.preventDefault(),this.expandSelectionInDirection(\"backward\")},right(t){if(this.selectionIsInCursorTarget())return t.preventDefault(),this.expandSelectionInDirection(\"forward\")}},alt:{backspace(t){var e;return this.setInputSummary({preferDocument:!1}),null===(e=this.delegate)||void 0===e?void 0:e.inputControllerWillPerformTyping()}},meta:{backspace(t){var e;return this.setInputSummary({preferDocument:!1}),null===(e=this.delegate)||void 0===e?void 0:e.inputControllerWillPerformTyping()}}}),hr.proxyMethod(\"responder?.getSelectedRange\"),hr.proxyMethod(\"responder?.setSelectedRange\"),hr.proxyMethod(\"responder?.expandSelectionInDirection\"),hr.proxyMethod(\"responder?.selectionIsInCursorTarget\"),hr.proxyMethod(\"responder?.selectionIsExpanded\");const dr=t=>{var e;return null===(e=t.type)||void 0===e||null===(e=e.match(/\\/(\\w+)$/))||void 0===e?void 0:e[1]},gr=!(null===(ar=\" \".codePointAt)||void 0===ar||!ar.call(\" \",0)),mr=function(t){if(t.key&&gr&&t.key.codePointAt(0)===t.keyCode)return t.key;{let e;if(null===t.which?e=t.keyCode:0!==t.which&&0!==t.charCode&&(e=t.charCode),null!=e&&\"escape\"!==cr[e])return X.fromCodepoints([e]).toString()}},pr=function(t){const e=t.clipboardData;if(e){if(e.types.includes(\"text/html\")){for(const t of e.types){const i=/^CorePasteboardFlavorType/.test(t),n=/^dyn\\./.test(t)&&e.getData(t);if(i||n)return!0}return!1}{const t=e.types.includes(\"com.apple.webarchive\"),i=e.types.includes(\"com.apple.flat-rtfd\");return t||i}}};class fr extends q{constructor(t){super(...arguments),this.inputController=t,this.responder=this.inputController.responder,this.delegate=this.inputController.delegate,this.inputSummary=this.inputController.inputSummary,this.data={}}start(t){if(this.data.start=t,this.isSignificant()){var e,i;if(\"keypress\"===this.inputSummary.eventName&&this.inputSummary.textAdded)null===(i=this.responder)||void 0===i||i.deleteInDirection(\"left\");this.selectionIsExpanded()||(this.insertPlaceholder(),this.requestRender()),this.range=null===(e=this.responder)||void 0===e?void 0:e.getSelectedRange()}}update(t){if(this.data.update=t,this.isSignificant()){const t=this.selectPlaceholder();t&&(this.forgetPlaceholder(),this.range=t)}}end(t){return this.data.end=t,this.isSignificant()?(this.forgetPlaceholder(),this.canApplyToDocument()?(this.setInputSummary({preferDocument:!0,didInput:!1}),null===(e=this.delegate)||void 0===e||e.inputControllerWillPerformTyping(),null===(i=this.responder)||void 0===i||i.setSelectedRange(this.range),null===(n=this.responder)||void 0===n||n.insertString(this.data.end),null===(r=this.responder)||void 0===r?void 0:r.setSelectedRange(this.range[0]+this.data.end.length)):null!=this.data.start||null!=this.data.update?(this.requestReparse(),this.inputController.reset()):void 0):this.inputController.reset();var e,i,n,r}getEndData(){return this.data.end}isEnded(){return null!=this.getEndData()}isSignificant(){return!lr.composesExistingText||this.inputSummary.didInput}canApplyToDocument(){var t,e;return 0===(null===(t=this.data.start)||void 0===t?void 0:t.length)&&(null===(e=this.data.end)||void 0===e?void 0:e.length)>0&&this.range}}fr.proxyMethod(\"inputController.setInputSummary\"),fr.proxyMethod(\"inputController.requestRender\"),fr.proxyMethod(\"inputController.requestReparse\"),fr.proxyMethod(\"responder?.selectionIsExpanded\"),fr.proxyMethod(\"responder?.insertPlaceholder\"),fr.proxyMethod(\"responder?.selectPlaceholder\"),fr.proxyMethod(\"responder?.forgetPlaceholder\");class br extends sr{constructor(){super(...arguments),this.render=this.render.bind(this)}elementDidMutate(){return this.scheduledRender?this.composing?null===(t=this.delegate)||void 0===t||null===(e=t.inputControllerDidAllowUnhandledInput)||void 0===e?void 0:e.call(t):void 0:this.reparse();var t,e}scheduleRender(){return this.scheduledRender?this.scheduledRender:this.scheduledRender=requestAnimationFrame(this.render)}render(){var t,e;(cancelAnimationFrame(this.scheduledRender),this.scheduledRender=null,this.composing)||(null===(e=this.delegate)||void 0===e||e.render());null===(t=this.afterRender)||void 0===t||t.call(this),this.afterRender=null}reparse(){var t;return null===(t=this.delegate)||void 0===t?void 0:t.reparse()}insertString(){var t;let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"\",i=arguments.length>1?arguments[1]:void 0;return null===(t=this.delegate)||void 0===t||t.inputControllerWillPerformTyping(),this.withTargetDOMRange((function(){var t;return null===(t=this.responder)||void 0===t?void 0:t.insertString(e,i)}))}toggleAttributeIfSupported(t){var e;if(gt().includes(t))return null===(e=this.delegate)||void 0===e||e.inputControllerWillPerformFormatting(t),this.withTargetDOMRange((function(){var e;return null===(e=this.responder)||void 0===e?void 0:e.toggleCurrentAttribute(t)}))}activateAttributeIfSupported(t,e){var i;if(gt().includes(t))return null===(i=this.delegate)||void 0===i||i.inputControllerWillPerformFormatting(t),this.withTargetDOMRange((function(){var i;return null===(i=this.responder)||void 0===i?void 0:i.setCurrentAttribute(t,e)}))}deleteInDirection(t){let{recordUndoEntry:e}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{recordUndoEntry:!0};var i;e&&(null===(i=this.delegate)||void 0===i||i.inputControllerWillPerformTyping());const n=()=>{var e;return null===(e=this.responder)||void 0===e?void 0:e.deleteInDirection(t)},r=this.getTargetDOMRange({minLength:this.composing?1:2});return r?this.withTargetDOMRange(r,n):n()}withTargetDOMRange(t,e){var i;return\"function\"==typeof t&&(e=t,t=this.getTargetDOMRange()),t?null===(i=this.responder)||void 0===i?void 0:i.withTargetDOMRange(t,e.bind(this)):(Ft.reset(),e.call(this))}getTargetDOMRange(){var t,e;let{minLength:i}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{minLength:0};const n=null===(t=(e=this.event).getTargetRanges)||void 0===t?void 0:t.call(e);if(n&&n.length){const t=vr(n[0]);if(0===i||t.toString().length>=i)return t}}withEvent(t,e){let i;this.event=t;try{i=e.call(this)}finally{this.event=null}return i}}wi(br,\"events\",{keydown(t){if(St(t)){var e;const i=Er(t);null!==(e=this.delegate)&&void 0!==e&&e.inputControllerDidReceiveKeyboardCommand(i)&&t.preventDefault()}else{let e=t.key;t.altKey&&(e+=\"+Alt\"),t.shiftKey&&(e+=\"+Shift\");const i=this.constructor.keys[e];if(i)return this.withEvent(t,i)}},paste(t){var e;let i;const n=null===(e=t.clipboardData)||void 0===e?void 0:e.getData(\"URL\");return xr(t)?(t.preventDefault(),this.attachFiles(t.clipboardData.files)):Cr(t)?(t.preventDefault(),i={type:\"text/plain\",string:t.clipboardData.getData(\"text/plain\")},null===(r=this.delegate)||void 0===r||r.inputControllerWillPaste(i),null===(o=this.responder)||void 0===o||o.insertString(i.string),this.render(),null===(s=this.delegate)||void 0===s?void 0:s.inputControllerDidPaste(i)):n?(t.preventDefault(),i={type:\"text/html\",html:this.createLinkHTML(n)},null===(a=this.delegate)||void 0===a||a.inputControllerWillPaste(i),null===(l=this.responder)||void 0===l||l.insertHTML(i.html),this.render(),null===(c=this.delegate)||void 0===c?void 0:c.inputControllerDidPaste(i)):void 0;var r,o,s,a,l,c},beforeinput(t){const e=this.constructor.inputTypes[t.inputType],i=(n=t,!(!/iPhone|iPad/.test(navigator.userAgent)||n.inputType&&\"insertParagraph\"!==n.inputType));var n;e&&(this.withEvent(t,e),i||this.scheduleRender()),i&&this.render()},input(t){Ft.reset()},dragstart(t){var e,i;null!==(e=this.responder)&&void 0!==e&&e.selectionContainsAttachments()&&(t.dataTransfer.setData(\"application/x-trix-dragging\",!0),this.dragging={range:null===(i=this.responder)||void 0===i?void 0:i.getSelectedRange(),point:Sr(t)})},dragenter(t){Ar(t)&&t.preventDefault()},dragover(t){if(this.dragging){t.preventDefault();const i=Sr(t);var e;if(!Tt(i,this.dragging.point))return this.dragging.point=i,null===(e=this.responder)||void 0===e?void 0:e.setLocationRangeFromPointRange(i)}else Ar(t)&&t.preventDefault()},drop(t){var e,i;if(this.dragging)return t.preventDefault(),null===(e=this.delegate)||void 0===e||e.inputControllerWillMoveText(),null===(i=this.responder)||void 0===i||i.moveTextFromRange(this.dragging.range),this.dragging=null,this.scheduleRender();if(Ar(t)){var n;t.preventDefault();const e=Sr(t);return null===(n=this.responder)||void 0===n||n.setLocationRangeFromPointRange(e),this.attachFiles(t.dataTransfer.files)}},dragend(){var t;this.dragging&&(null===(t=this.responder)||void 0===t||t.setSelectedRange(this.dragging.range),this.dragging=null)},compositionend(t){this.composing&&(this.composing=!1,a.recentAndroid||this.scheduleRender())}}),wi(br,\"keys\",{ArrowLeft(){var t,e;if(null!==(t=this.responder)&&void 0!==t&&t.shouldManageMovingCursorInDirection(\"backward\"))return this.event.preventDefault(),null===(e=this.responder)||void 0===e?void 0:e.moveCursorInDirection(\"backward\")},ArrowRight(){var t,e;if(null!==(t=this.responder)&&void 0!==t&&t.shouldManageMovingCursorInDirection(\"forward\"))return this.event.preventDefault(),null===(e=this.responder)||void 0===e?void 0:e.moveCursorInDirection(\"forward\")},Backspace(){var t,e,i;if(null!==(t=this.responder)&&void 0!==t&&t.shouldManageDeletingInDirection(\"backward\"))return this.event.preventDefault(),null===(e=this.delegate)||void 0===e||e.inputControllerWillPerformTyping(),null===(i=this.responder)||void 0===i||i.deleteInDirection(\"backward\"),this.render()},Tab(){var t,e;if(null!==(t=this.responder)&&void 0!==t&&t.canIncreaseNestingLevel())return this.event.preventDefault(),null===(e=this.responder)||void 0===e||e.increaseNestingLevel(),this.render()},\"Tab+Shift\"(){var t,e;if(null!==(t=this.responder)&&void 0!==t&&t.canDecreaseNestingLevel())return this.event.preventDefault(),null===(e=this.responder)||void 0===e||e.decreaseNestingLevel(),this.render()}}),wi(br,\"inputTypes\",{deleteByComposition(){return this.deleteInDirection(\"backward\",{recordUndoEntry:!1})},deleteByCut(){return this.deleteInDirection(\"backward\")},deleteByDrag(){return this.event.preventDefault(),this.withTargetDOMRange((function(){var t;this.deleteByDragRange=null===(t=this.responder)||void 0===t?void 0:t.getSelectedRange()}))},deleteCompositionText(){return this.deleteInDirection(\"backward\",{recordUndoEntry:!1})},deleteContent(){return this.deleteInDirection(\"backward\")},deleteContentBackward(){return this.deleteInDirection(\"backward\")},deleteContentForward(){return this.deleteInDirection(\"forward\")},deleteEntireSoftLine(){return this.deleteInDirection(\"forward\")},deleteHardLineBackward(){return this.deleteInDirection(\"backward\")},deleteHardLineForward(){return this.deleteInDirection(\"forward\")},deleteSoftLineBackward(){return this.deleteInDirection(\"backward\")},deleteSoftLineForward(){return this.deleteInDirection(\"forward\")},deleteWordBackward(){return this.deleteInDirection(\"backward\")},deleteWordForward(){return this.deleteInDirection(\"forward\")},formatBackColor(){return this.activateAttributeIfSupported(\"backgroundColor\",this.event.data)},formatBold(){return this.toggleAttributeIfSupported(\"bold\")},formatFontColor(){return this.activateAttributeIfSupported(\"color\",this.event.data)},formatFontName(){return this.activateAttributeIfSupported(\"font\",this.event.data)},formatIndent(){var t;if(null!==(t=this.responder)&&void 0!==t&&t.canIncreaseNestingLevel())return this.withTargetDOMRange((function(){var t;return null===(t=this.responder)||void 0===t?void 0:t.increaseNestingLevel()}))},formatItalic(){return this.toggleAttributeIfSupported(\"italic\")},formatJustifyCenter(){return this.toggleAttributeIfSupported(\"justifyCenter\")},formatJustifyFull(){return this.toggleAttributeIfSupported(\"justifyFull\")},formatJustifyLeft(){return this.toggleAttributeIfSupported(\"justifyLeft\")},formatJustifyRight(){return this.toggleAttributeIfSupported(\"justifyRight\")},formatOutdent(){var t;if(null!==(t=this.responder)&&void 0!==t&&t.canDecreaseNestingLevel())return this.withTargetDOMRange((function(){var t;return null===(t=this.responder)||void 0===t?void 0:t.decreaseNestingLevel()}))},formatRemove(){this.withTargetDOMRange((function(){for(const i in null===(t=this.responder)||void 0===t?void 0:t.getCurrentAttributes()){var t,e;null===(e=this.responder)||void 0===e||e.removeCurrentAttribute(i)}}))},formatSetBlockTextDirection(){return this.activateAttributeIfSupported(\"blockDir\",this.event.data)},formatSetInlineTextDirection(){return this.activateAttributeIfSupported(\"textDir\",this.event.data)},formatStrikeThrough(){return this.toggleAttributeIfSupported(\"strike\")},formatSubscript(){return this.toggleAttributeIfSupported(\"sub\")},formatSuperscript(){return this.toggleAttributeIfSupported(\"sup\")},formatUnderline(){return this.toggleAttributeIfSupported(\"underline\")},historyRedo(){var t;return null===(t=this.delegate)||void 0===t?void 0:t.inputControllerWillPerformRedo()},historyUndo(){var t;return null===(t=this.delegate)||void 0===t?void 0:t.inputControllerWillPerformUndo()},insertCompositionText(){return this.composing=!0,this.insertString(this.event.data)},insertFromComposition(){return this.composing=!1,this.insertString(this.event.data)},insertFromDrop(){const t=this.deleteByDragRange;var e;if(t)return this.deleteByDragRange=null,null===(e=this.delegate)||void 0===e||e.inputControllerWillMoveText(),this.withTargetDOMRange((function(){var e;return null===(e=this.responder)||void 0===e?void 0:e.moveTextFromRange(t)}))},insertFromPaste(){const{dataTransfer:t}=this.event,e={dataTransfer:t},i=t.getData(\"URL\"),n=t.getData(\"text/html\");if(i){var r;let n;this.event.preventDefault(),e.type=\"text/html\";const o=t.getData(\"public.url-name\");n=o?Vt(o).trim():i,e.html=this.createLinkHTML(i,n),null===(r=this.delegate)||void 0===r||r.inputControllerWillPaste(e),this.withTargetDOMRange((function(){var t;return null===(t=this.responder)||void 0===t?void 0:t.insertHTML(e.html)})),this.afterRender=()=>{var t;return null===(t=this.delegate)||void 0===t?void 0:t.inputControllerDidPaste(e)}}else if(Et(t)){var o;e.type=\"text/plain\",e.string=t.getData(\"text/plain\"),null===(o=this.delegate)||void 0===o||o.inputControllerWillPaste(e),this.withTargetDOMRange((function(){var t;return null===(t=this.responder)||void 0===t?void 0:t.insertString(e.string)})),this.afterRender=()=>{var t;return null===(t=this.delegate)||void 0===t?void 0:t.inputControllerDidPaste(e)}}else if(yr(this.event)){var s;e.type=\"File\",e.file=t.files[0],null===(s=this.delegate)||void 0===s||s.inputControllerWillPaste(e),this.withTargetDOMRange((function(){var t;return null===(t=this.responder)||void 0===t?void 0:t.insertFile(e.file)})),this.afterRender=()=>{var t;return null===(t=this.delegate)||void 0===t?void 0:t.inputControllerDidPaste(e)}}else if(n){var a;this.event.preventDefault(),e.type=\"text/html\",e.html=n,null===(a=this.delegate)||void 0===a||a.inputControllerWillPaste(e),this.withTargetDOMRange((function(){var t;return null===(t=this.responder)||void 0===t?void 0:t.insertHTML(e.html)})),this.afterRender=()=>{var t;return null===(t=this.delegate)||void 0===t?void 0:t.inputControllerDidPaste(e)}}},insertFromYank(){return this.insertString(this.event.data)},insertLineBreak(){return this.insertString(\"\\n\")},insertLink(){return this.activateAttributeIfSupported(\"href\",this.event.data)},insertOrderedList(){return this.toggleAttributeIfSupported(\"number\")},insertParagraph(){var t;return null===(t=this.delegate)||void 0===t||t.inputControllerWillPerformTyping(),this.withTargetDOMRange((function(){var t;return null===(t=this.responder)||void 0===t?void 0:t.insertLineBreak()}))},insertReplacementText(){const t=this.event.dataTransfer.getData(\"text/plain\"),e=this.event.getTargetRanges()[0];this.withTargetDOMRange(e,(()=>{this.insertString(t,{updatePosition:!1})}))},insertText(){var t;return this.insertString(this.event.data||(null===(t=this.event.dataTransfer)||void 0===t?void 0:t.getData(\"text/plain\")))},insertTranspose(){return this.insertString(this.event.data)},insertUnorderedList(){return this.toggleAttributeIfSupported(\"bullet\")}});const vr=function(t){const e=document.createRange();return e.setStart(t.startContainer,t.startOffset),e.setEnd(t.endContainer,t.endOffset),e},Ar=t=>{var e;return Array.from((null===(e=t.dataTransfer)||void 0===e?void 0:e.types)||[]).includes(\"Files\")},yr=t=>{var e;return(null===(e=t.dataTransfer.files)||void 0===e?void 0:e[0])&&!xr(t)&&!(t=>{let{dataTransfer:e}=t;return e.types.includes(\"Files\")&&e.types.includes(\"text/html\")&&e.getData(\"text/html\").includes(\"urn:schemas-microsoft-com:office:office\")})(t)},xr=function(t){const e=t.clipboardData;if(e){return Array.from(e.types).filter((t=>t.match(/file/i))).length===e.types.length&&e.files.length>=1}},Cr=function(t){const e=t.clipboardData;if(e)return e.types.includes(\"text/plain\")&&1===e.types.length},Er=function(t){const e=[];return t.altKey&&e.push(\"alt\"),t.shiftKey&&e.push(\"shift\"),e.push(t.key),e},Sr=t=>({x:t.clientX,y:t.clientY}),Rr=\"[data-trix-attribute]\",kr=\"[data-trix-action]\",Tr=\"\".concat(Rr,\", \").concat(kr),wr=\"[data-trix-dialog]\",Lr=\"\".concat(wr,\"[data-trix-active]\"),Dr=\"\".concat(wr,\" [data-trix-method]\"),Nr=\"\".concat(wr,\" [data-trix-input]\"),Ir=(t,e)=>(e||(e=Fr(t)),t.querySelector(\"[data-trix-input][name='\".concat(e,\"']\"))),Or=t=>t.getAttribute(\"data-trix-action\"),Fr=t=>t.getAttribute(\"data-trix-attribute\")||t.getAttribute(\"data-trix-dialog-attribute\");class Pr extends q{constructor(t){super(t),this.didClickActionButton=this.didClickActionButton.bind(this),this.didClickAttributeButton=this.didClickAttributeButton.bind(this),this.didClickDialogButton=this.didClickDialogButton.bind(this),this.didKeyDownDialogInput=this.didKeyDownDialogInput.bind(this),this.element=t,this.attributes={},this.actions={},this.resetDialogInputs(),b(\"mousedown\",{onElement:this.element,matchingSelector:kr,withCallback:this.didClickActionButton}),b(\"mousedown\",{onElement:this.element,matchingSelector:Rr,withCallback:this.didClickAttributeButton}),b(\"click\",{onElement:this.element,matchingSelector:Tr,preventDefault:!0}),b(\"click\",{onElement:this.element,matchingSelector:Dr,withCallback:this.didClickDialogButton}),b(\"keydown\",{onElement:this.element,matchingSelector:Nr,withCallback:this.didKeyDownDialogInput})}didClickActionButton(t,e){var i;null===(i=this.delegate)||void 0===i||i.toolbarDidClickButton(),t.preventDefault();const n=Or(e);return this.getDialog(n)?this.toggleDialog(n):null===(r=this.delegate)||void 0===r?void 0:r.toolbarDidInvokeAction(n,e);var r}didClickAttributeButton(t,e){var i;null===(i=this.delegate)||void 0===i||i.toolbarDidClickButton(),t.preventDefault();const n=Fr(e);var r;this.getDialog(n)?this.toggleDialog(n):null===(r=this.delegate)||void 0===r||r.toolbarDidToggleAttribute(n);return this.refreshAttributeButtons()}didClickDialogButton(t,e){const i=y(e,{matchingSelector:wr});return this[e.getAttribute(\"data-trix-method\")].call(this,i)}didKeyDownDialogInput(t,e){if(13===t.keyCode){t.preventDefault();const i=e.getAttribute(\"name\"),n=this.getDialog(i);this.setAttribute(n)}if(27===t.keyCode)return t.preventDefault(),this.hideDialog()}updateActions(t){return this.actions=t,this.refreshActionButtons()}refreshActionButtons(){return this.eachActionButton(((t,e)=>{t.disabled=!1===this.actions[e]}))}eachActionButton(t){return Array.from(this.element.querySelectorAll(kr)).map((e=>t(e,Or(e))))}updateAttributes(t){return this.attributes=t,this.refreshAttributeButtons()}refreshAttributeButtons(){return this.eachAttributeButton(((t,e)=>(t.disabled=!1===this.attributes[e],this.attributes[e]||this.dialogIsVisible(e)?(t.setAttribute(\"data-trix-active\",\"\"),t.classList.add(\"trix-active\")):(t.removeAttribute(\"data-trix-active\"),t.classList.remove(\"trix-active\")))))}eachAttributeButton(t){return Array.from(this.element.querySelectorAll(Rr)).map((e=>t(e,Fr(e))))}applyKeyboardCommand(t){const e=JSON.stringify(t.sort());for(const t of Array.from(this.element.querySelectorAll(\"[data-trix-key]\"))){const i=t.getAttribute(\"data-trix-key\").split(\"+\");if(JSON.stringify(i.sort())===e)return v(\"mousedown\",{onElement:t}),!0}return!1}dialogIsVisible(t){const e=this.getDialog(t);if(e)return e.hasAttribute(\"data-trix-active\")}toggleDialog(t){return this.dialogIsVisible(t)?this.hideDialog():this.showDialog(t)}showDialog(t){var e,i;this.hideDialog(),null===(e=this.delegate)||void 0===e||e.toolbarWillShowDialog();const n=this.getDialog(t);n.setAttribute(\"data-trix-active\",\"\"),n.classList.add(\"trix-active\"),Array.from(n.querySelectorAll(\"input[disabled]\")).forEach((t=>{t.removeAttribute(\"disabled\")}));const r=Fr(n);if(r){const e=Ir(n,t);e&&(e.value=this.attributes[r]||\"\",e.select())}return null===(i=this.delegate)||void 0===i?void 0:i.toolbarDidShowDialog(t)}setAttribute(t){var e;const i=Fr(t),n=Ir(t,i);return!n.willValidate||(n.setCustomValidity(\"\"),n.checkValidity()&&this.isSafeAttribute(n))?(null===(e=this.delegate)||void 0===e||e.toolbarDidUpdateAttribute(i,n.value),this.hideDialog()):(n.setCustomValidity(\"Invalid value\"),n.setAttribute(\"data-trix-validate\",\"\"),n.classList.add(\"trix-validate\"),n.focus())}isSafeAttribute(t){return!t.hasAttribute(\"data-trix-validate-href\")||si.isValidAttribute(\"a\",\"href\",t.value)}removeAttribute(t){var e;const i=Fr(t);return null===(e=this.delegate)||void 0===e||e.toolbarDidRemoveAttribute(i),this.hideDialog()}hideDialog(){const t=this.element.querySelector(Lr);var e;if(t)return t.removeAttribute(\"data-trix-active\"),t.classList.remove(\"trix-active\"),this.resetDialogInputs(),null===(e=this.delegate)||void 0===e?void 0:e.toolbarDidHideDialog((t=>t.getAttribute(\"data-trix-dialog\"))(t))}resetDialogInputs(){Array.from(this.element.querySelectorAll(Nr)).forEach((t=>{t.setAttribute(\"disabled\",\"disabled\"),t.removeAttribute(\"data-trix-validate\"),t.classList.remove(\"trix-validate\")}))}getDialog(t){return this.element.querySelector(\"[data-trix-dialog=\".concat(t,\"]\"))}}class Mr extends Yn{constructor(t){let{editorElement:e,document:i,html:n}=t;super(...arguments),this.editorElement=e,this.selectionManager=new Wn(this.editorElement),this.selectionManager.delegate=this,this.composition=new kn,this.composition.delegate=this,this.attachmentManager=new Sn(this.composition.getAttachments()),this.attachmentManager.delegate=this,this.inputController=2===_.getLevel()?new br(this.editorElement):new hr(this.editorElement),this.inputController.delegate=this,this.inputController.responder=this.composition,this.compositionController=new Gn(this.editorElement,this.composition),this.compositionController.delegate=this,this.toolbarController=new Pr(this.editorElement.toolbarElement),this.toolbarController.delegate=this,this.editor=new On(this.composition,this.selectionManager,this.editorElement),i?this.editor.loadDocument(i):this.editor.loadHTML(n)}registerSelectionManager(){return Ft.registerSelectionManager(this.selectionManager)}unregisterSelectionManager(){return Ft.unregisterSelectionManager(this.selectionManager)}render(){return this.compositionController.render()}reparse(){return this.composition.replaceHTML(this.editorElement.innerHTML)}compositionDidChangeDocument(t){if(this.notifyEditorElement(\"document-change\"),!this.handlingInput)return this.render()}compositionDidChangeCurrentAttributes(t){return this.currentAttributes=t,this.toolbarController.updateAttributes(this.currentAttributes),this.updateCurrentActions(),this.notifyEditorElement(\"attributes-change\",{attributes:this.currentAttributes})}compositionDidPerformInsertionAtRange(t){this.pasting&&(this.pastedRange=t)}compositionShouldAcceptFile(t){return this.notifyEditorElement(\"file-accept\",{file:t})}compositionDidAddAttachment(t){const e=this.attachmentManager.manageAttachment(t);return this.notifyEditorElement(\"attachment-add\",{attachment:e})}compositionDidEditAttachment(t){this.compositionController.rerenderViewForObject(t);const e=this.attachmentManager.manageAttachment(t);return this.notifyEditorElement(\"attachment-edit\",{attachment:e}),this.notifyEditorElement(\"change\")}compositionDidChangeAttachmentPreviewURL(t){return this.compositionController.invalidateViewForObject(t),this.notifyEditorElement(\"change\")}compositionDidRemoveAttachment(t){const e=this.attachmentManager.unmanageAttachment(t);return this.notifyEditorElement(\"attachment-remove\",{attachment:e})}compositionDidStartEditingAttachment(t,e){return this.attachmentLocationRange=this.composition.document.getLocationRangeOfAttachment(t),this.compositionController.installAttachmentEditorForAttachment(t,e),this.selectionManager.setLocationRange(this.attachmentLocationRange)}compositionDidStopEditingAttachment(t){this.compositionController.uninstallAttachmentEditor(),this.attachmentLocationRange=null}compositionDidRequestChangingSelectionToLocationRange(t){if(!this.loadingSnapshot||this.isFocused())return this.requestedLocationRange=t,this.compositionRevisionWhenLocationRangeRequested=this.composition.revision,this.handlingInput?void 0:this.render()}compositionWillLoadSnapshot(){this.loadingSnapshot=!0}compositionDidLoadSnapshot(){this.compositionController.refreshViewCache(),this.render(),this.loadingSnapshot=!1}getSelectionManager(){return this.selectionManager}attachmentManagerDidRequestRemovalOfAttachment(t){return this.removeAttachment(t)}compositionControllerWillSyncDocumentView(){return this.inputController.editorWillSyncDocumentView(),this.selectionManager.lock(),this.selectionManager.clearSelection()}compositionControllerDidSyncDocumentView(){return this.inputController.editorDidSyncDocumentView(),this.selectionManager.unlock(),this.updateCurrentActions(),this.notifyEditorElement(\"sync\")}compositionControllerDidRender(){this.requestedLocationRange&&(this.compositionRevisionWhenLocationRangeRequested===this.composition.revision&&this.selectionManager.setLocationRange(this.requestedLocationRange),this.requestedLocationRange=null,this.compositionRevisionWhenLocationRangeRequested=null),this.renderedCompositionRevision!==this.composition.revision&&(this.runEditorFilters(),this.composition.updateCurrentAttributes(),this.notifyEditorElement(\"render\")),this.renderedCompositionRevision=this.composition.revision}compositionControllerDidFocus(){return this.isFocusedInvisibly()&&this.setLocationRange({index:0,offset:0}),this.toolbarController.hideDialog(),this.notifyEditorElement(\"focus\")}compositionControllerDidBlur(){return this.notifyEditorElement(\"blur\")}compositionControllerDidSelectAttachment(t,e){return this.toolbarController.hideDialog(),this.composition.editAttachment(t,e)}compositionControllerDidRequestDeselectingAttachment(t){const e=this.attachmentLocationRange||this.composition.document.getLocationRangeOfAttachment(t);return this.selectionManager.setLocationRange(e[1])}compositionControllerWillUpdateAttachment(t){return this.editor.recordUndoEntry(\"Edit Attachment\",{context:t.id,consolidatable:!0})}compositionControllerDidRequestRemovalOfAttachment(t){return this.removeAttachment(t)}inputControllerWillHandleInput(){this.handlingInput=!0,this.requestedRender=!1}inputControllerDidRequestRender(){this.requestedRender=!0}inputControllerDidHandleInput(){if(this.handlingInput=!1,this.requestedRender)return this.requestedRender=!1,this.render()}inputControllerDidAllowUnhandledInput(){return this.notifyEditorElement(\"change\")}inputControllerDidRequestReparse(){return this.reparse()}inputControllerWillPerformTyping(){return this.recordTypingUndoEntry()}inputControllerWillPerformFormatting(t){return this.recordFormattingUndoEntry(t)}inputControllerWillCutText(){return this.editor.recordUndoEntry(\"Cut\")}inputControllerWillPaste(t){return this.editor.recordUndoEntry(\"Paste\"),this.pasting=!0,this.notifyEditorElement(\"before-paste\",{paste:t})}inputControllerDidPaste(t){return t.range=this.pastedRange,this.pastedRange=null,this.pasting=null,this.notifyEditorElement(\"paste\",{paste:t})}inputControllerWillMoveText(){return this.editor.recordUndoEntry(\"Move\")}inputControllerWillAttachFiles(){return this.editor.recordUndoEntry(\"Drop Files\")}inputControllerWillPerformUndo(){return this.editor.undo()}inputControllerWillPerformRedo(){return this.editor.redo()}inputControllerDidReceiveKeyboardCommand(t){return this.toolbarController.applyKeyboardCommand(t)}inputControllerDidStartDrag(){this.locationRangeBeforeDrag=this.selectionManager.getLocationRange()}inputControllerDidReceiveDragOverPoint(t){return this.selectionManager.setLocationRangeFromPointRange(t)}inputControllerDidCancelDrag(){this.selectionManager.setLocationRange(this.locationRangeBeforeDrag),this.locationRangeBeforeDrag=null}locationRangeDidChange(t){return this.composition.updateCurrentAttributes(),this.updateCurrentActions(),this.attachmentLocationRange&&!Dt(this.attachmentLocationRange,t)&&this.composition.stopEditingAttachment(),this.notifyEditorElement(\"selection-change\")}toolbarDidClickButton(){if(!this.getLocationRange())return this.setLocationRange({index:0,offset:0})}toolbarDidInvokeAction(t,e){return this.invokeAction(t,e)}toolbarDidToggleAttribute(t){if(this.recordFormattingUndoEntry(t),this.composition.toggleCurrentAttribute(t),this.render(),!this.selectionFrozen)return this.editorElement.focus()}toolbarDidUpdateAttribute(t,e){if(this.recordFormattingUndoEntry(t),this.composition.setCurrentAttribute(t,e),this.render(),!this.selectionFrozen)return this.editorElement.focus()}toolbarDidRemoveAttribute(t){if(this.recordFormattingUndoEntry(t),this.composition.removeCurrentAttribute(t),this.render(),!this.selectionFrozen)return this.editorElement.focus()}toolbarWillShowDialog(t){return this.composition.expandSelectionForEditing(),this.freezeSelection()}toolbarDidShowDialog(t){return this.notifyEditorElement(\"toolbar-dialog-show\",{dialogName:t})}toolbarDidHideDialog(t){return this.thawSelection(),this.editorElement.focus(),this.notifyEditorElement(\"toolbar-dialog-hide\",{dialogName:t})}freezeSelection(){if(!this.selectionFrozen)return this.selectionManager.lock(),this.composition.freezeSelection(),this.selectionFrozen=!0,this.render()}thawSelection(){if(this.selectionFrozen)return this.composition.thawSelection(),this.selectionManager.unlock(),this.selectionFrozen=!1,this.render()}canInvokeAction(t){return!!this.actionIsExternal(t)||!(null===(e=this.actions[t])||void 0===e||null===(e=e.test)||void 0===e||!e.call(this));var e}invokeAction(t,e){return this.actionIsExternal(t)?this.notifyEditorElement(\"action-invoke\",{actionName:t,invokingElement:e}):null===(i=this.actions[t])||void 0===i||null===(i=i.perform)||void 0===i?void 0:i.call(this);var i}actionIsExternal(t){return/^x-./.test(t)}getCurrentActions(){const t={};for(const e in this.actions)t[e]=this.canInvokeAction(e);return t}updateCurrentActions(){const t=this.getCurrentActions();if(!Tt(t,this.currentActions))return this.currentActions=t,this.toolbarController.updateActions(this.currentActions),this.notifyEditorElement(\"actions-change\",{actions:this.currentActions})}runEditorFilters(){let t=this.composition.getSnapshot();if(Array.from(this.editor.filters).forEach((e=>{const{document:i,selectedRange:n}=t;t=e.call(this.editor,t)||{},t.document||(t.document=i),t.selectedRange||(t.selectedRange=n)})),e=t,i=this.composition.getSnapshot(),!Dt(e.selectedRange,i.selectedRange)||!e.document.isEqualTo(i.document))return this.composition.loadSnapshot(t);var e,i}updateInputElement(){const t=function(t,e){const i=xn[e];if(i)return i(t);throw new Error(\"unknown content type: \".concat(e))}(this.compositionController.getSerializableElement(),\"text/html\");return this.editorElement.setFormValue(t)}notifyEditorElement(t,e){switch(t){case\"document-change\":this.documentChangedSinceLastRender=!0;break;case\"render\":this.documentChangedSinceLastRender&&(this.documentChangedSinceLastRender=!1,this.notifyEditorElement(\"change\"));break;case\"change\":case\"attachment-add\":case\"attachment-edit\":case\"attachment-remove\":this.updateInputElement()}return this.editorElement.notify(t,e)}removeAttachment(t){return this.editor.recordUndoEntry(\"Delete Attachment\"),this.composition.removeAttachment(t),this.render()}recordFormattingUndoEntry(t){const e=mt(t),i=this.selectionManager.getLocationRange();if(e||!Lt(i))return this.editor.recordUndoEntry(\"Formatting\",{context:this.getUndoContext(),consolidatable:!0})}recordTypingUndoEntry(){return this.editor.recordUndoEntry(\"Typing\",{context:this.getUndoContext(this.currentAttributes),consolidatable:!0})}getUndoContext(){for(var t=arguments.length,e=new Array(t),i=0;i<t;i++)e[i]=arguments[i];return[this.getLocationContext(),this.getTimeContext(),...Array.from(e)]}getLocationContext(){const t=this.selectionManager.getLocationRange();return Lt(t)?t[0].index:t}getTimeContext(){return V.interval>0?Math.floor((new Date).getTime()/V.interval):0}isFocused(){var t;return this.editorElement===(null===(t=this.editorElement.ownerDocument)||void 0===t?void 0:t.activeElement)}isFocusedInvisibly(){return this.isFocused()&&!this.getLocationRange()}get actions(){return this.constructor.actions}}wi(Mr,\"actions\",{undo:{test(){return this.editor.canUndo()},perform(){return this.editor.undo()}},redo:{test(){return this.editor.canRedo()},perform(){return this.editor.redo()}},link:{test(){return this.editor.canActivateAttribute(\"href\")}},increaseNestingLevel:{test(){return this.editor.canIncreaseNestingLevel()},perform(){return this.editor.increaseNestingLevel()&&this.render()}},decreaseNestingLevel:{test(){return this.editor.canDecreaseNestingLevel()},perform(){return this.editor.decreaseNestingLevel()&&this.render()}},attachFiles:{test:()=>!0,perform(){return _.pickFiles(this.editor.insertFiles)}}}),Mr.proxyMethod(\"getSelectionManager().setLocationRange\"),Mr.proxyMethod(\"getSelectionManager().getLocationRange\");var Br=Object.freeze({__proto__:null,AttachmentEditorController:Kn,CompositionController:Gn,Controller:Yn,EditorController:Mr,InputController:sr,Level0InputController:hr,Level2InputController:br,ToolbarController:Pr}),_r=Object.freeze({__proto__:null,MutationObserver:Qn,SelectionChangeObserver:Ot}),jr=Object.freeze({__proto__:null,FileVerificationOperation:er,ImagePreloadOperation:ji});vt(\"trix-toolbar\",\"%t {\\n  display: block;\\n}\\n\\n%t {\\n  white-space: nowrap;\\n}\\n\\n%t [data-trix-dialog] {\\n  display: none;\\n}\\n\\n%t [data-trix-dialog][data-trix-active] {\\n  display: block;\\n}\\n\\n%t [data-trix-dialog] [data-trix-validate]:invalid {\\n  background-color: #ffdddd;\\n}\");class Wr extends HTMLElement{connectedCallback(){\"\"===this.innerHTML&&(this.innerHTML=U.getDefaultHTML())}}let Ur=0;const Vr=function(t){if(!t.hasAttribute(\"contenteditable\"))return t.setAttribute(\"contenteditable\",\"\"),function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.times=1,b(t,e)}(\"focus\",{onElement:t,withCallback:()=>zr(t)})},zr=function(t){return qr(t),Hr(t)},qr=function(t){var e,i;if(null!==(e=(i=document).queryCommandSupported)&&void 0!==e&&e.call(i,\"enableObjectResizing\"))return document.execCommand(\"enableObjectResizing\",!1,!1),b(\"mscontrolselect\",{onElement:t,preventDefault:!0})},Hr=function(t){var e,i;if(null!==(e=(i=document).queryCommandSupported)&&void 0!==e&&e.call(i,\"DefaultParagraphSeparator\")){const{tagName:t}=n.default;if([\"div\",\"p\"].includes(t))return document.execCommand(\"DefaultParagraphSeparator\",!1,t)}},Jr=a.forcesObjectResizing?{display:\"inline\",width:\"auto\"}:{display:\"inline-block\",width:\"1px\"};vt(\"trix-editor\",\"%t {\\n    display: block;\\n}\\n\\n%t:empty::before {\\n    content: attr(placeholder);\\n    color: graytext;\\n    cursor: text;\\n    pointer-events: none;\\n    white-space: pre-line;\\n}\\n\\n%t a[contenteditable=false] {\\n    cursor: text;\\n}\\n\\n%t img {\\n    max-width: 100%;\\n    height: auto;\\n}\\n\\n%t \".concat(e,\" figcaption textarea {\\n    resize: none;\\n}\\n\\n%t \").concat(e,\" figcaption textarea.trix-autoresize-clone {\\n    position: absolute;\\n    left: -9999px;\\n    max-height: 0px;\\n}\\n\\n%t \").concat(e,\" figcaption[data-trix-placeholder]:empty::before {\\n    content: attr(data-trix-placeholder);\\n    color: graytext;\\n}\\n\\n%t [data-trix-cursor-target] {\\n    display: \").concat(Jr.display,\" !important;\\n    width: \").concat(Jr.width,\" !important;\\n    padding: 0 !important;\\n    margin: 0 !important;\\n    border: none !important;\\n}\\n\\n%t [data-trix-cursor-target=left] {\\n    vertical-align: top !important;\\n    margin-left: -1px !important;\\n}\\n\\n%t [data-trix-cursor-target=right] {\\n    vertical-align: bottom !important;\\n    margin-right: -1px !important;\\n}\"));var Kr=new WeakMap,Gr=new WeakSet;class Yr{constructor(t){var e,i;Mi(e=this,i=Gr),i.add(e),Bi(this,Kr,{writable:!0,value:void 0}),this.element=t,Ni(this,Kr,t.attachInternals())}connectedCallback(){Pi(this,Gr,$r).call(this)}disconnectedCallback(){}get labels(){return Di(this,Kr).labels}get disabled(){var t;return null===(t=this.element.inputElement)||void 0===t?void 0:t.disabled}set disabled(t){this.element.toggleAttribute(\"disabled\",t)}get required(){return this.element.hasAttribute(\"required\")}set required(t){this.element.toggleAttribute(\"required\",t),Pi(this,Gr,$r).call(this)}get validity(){return Di(this,Kr).validity}get validationMessage(){return Di(this,Kr).validationMessage}get willValidate(){return Di(this,Kr).willValidate}setFormValue(t){Pi(this,Gr,$r).call(this)}checkValidity(){return Di(this,Kr).checkValidity()}reportValidity(){return Di(this,Kr).reportValidity()}setCustomValidity(t){Pi(this,Gr,$r).call(this,t)}}function $r(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"\";const{required:e,value:i}=this.element,n=e&&!i,r=!!t,o=T(\"input\",{required:e}),s=t||o.validationMessage;Di(this,Kr).setValidity({valueMissing:n,customError:r},s)}var Xr=new WeakMap,Zr=new WeakMap,Qr=new WeakMap;class to{constructor(t){Bi(this,Xr,{writable:!0,value:void 0}),Bi(this,Zr,{writable:!0,value:t=>{t.defaultPrevented||t.target===this.element.form&&this.element.reset()}}),Bi(this,Qr,{writable:!0,value:t=>{if(t.defaultPrevented)return;if(this.element.contains(t.target))return;const e=y(t.target,{matchingSelector:\"label\"});e&&Array.from(this.labels).includes(e)&&this.element.focus()}}),this.element=t}connectedCallback(){Ni(this,Xr,function(t){if(t.hasAttribute(\"aria-label\")||t.hasAttribute(\"aria-labelledby\"))return;const e=function(){const e=Array.from(t.labels).map((e=>{if(!e.contains(t))return e.textContent})).filter((t=>t)),i=e.join(\" \");return i?t.setAttribute(\"aria-label\",i):t.removeAttribute(\"aria-label\")};return e(),b(\"focus\",{onElement:t,withCallback:e})}(this.element)),window.addEventListener(\"reset\",Di(this,Zr),!1),window.addEventListener(\"click\",Di(this,Qr),!1)}disconnectedCallback(){var t;null===(t=Di(this,Xr))||void 0===t||t.destroy(),window.removeEventListener(\"reset\",Di(this,Zr),!1),window.removeEventListener(\"click\",Di(this,Qr),!1)}get labels(){const t=[];this.element.id&&this.element.ownerDocument&&t.push(...Array.from(this.element.ownerDocument.querySelectorAll(\"label[for='\".concat(this.element.id,\"']\"))||[]));const e=y(this.element,{matchingSelector:\"label\"});return e&&[this.element,null].includes(e.control)&&t.push(e),t}get disabled(){return console.warn(\"This browser does not support the [disabled] attribute for trix-editor elements.\"),!1}set disabled(t){console.warn(\"This browser does not support the [disabled] attribute for trix-editor elements.\")}get required(){return console.warn(\"This browser does not support the [required] attribute for trix-editor elements.\"),!1}set required(t){console.warn(\"This browser does not support the [required] attribute for trix-editor elements.\")}get validity(){return console.warn(\"This browser does not support the validity property for trix-editor elements.\"),null}get validationMessage(){return console.warn(\"This browser does not support the validationMessage property for trix-editor elements.\"),\"\"}get willValidate(){return console.warn(\"This browser does not support the willValidate property for trix-editor elements.\"),!1}setFormValue(t){}checkValidity(){return console.warn(\"This browser does not support checkValidity() for trix-editor elements.\"),!0}reportValidity(){return console.warn(\"This browser does not support reportValidity() for trix-editor elements.\"),!0}setCustomValidity(t){console.warn(\"This browser does not support setCustomValidity(validationMessage) for trix-editor elements.\")}}var eo=new WeakMap;class io extends HTMLElement{constructor(){super(),Bi(this,eo,{writable:!0,value:void 0}),Ni(this,eo,this.constructor.formAssociated?new Yr(this):new to(this))}get trixId(){return this.hasAttribute(\"trix-id\")?this.getAttribute(\"trix-id\"):(this.setAttribute(\"trix-id\",++Ur),this.trixId)}get labels(){return Di(this,eo).labels}get disabled(){return Di(this,eo).disabled}set disabled(t){Di(this,eo).disabled=t}get required(){return Di(this,eo).required}set required(t){Di(this,eo).required=t}get validity(){return Di(this,eo).validity}get validationMessage(){return Di(this,eo).validationMessage}get willValidate(){return Di(this,eo).willValidate}get type(){return this.localName}get toolbarElement(){var t;if(this.hasAttribute(\"toolbar\"))return null===(t=this.ownerDocument)||void 0===t?void 0:t.getElementById(this.getAttribute(\"toolbar\"));if(this.parentNode){const t=\"trix-toolbar-\".concat(this.trixId);return this.setAttribute(\"toolbar\",t),this.internalToolbar=T(\"trix-toolbar\",{id:t}),this.parentNode.insertBefore(this.internalToolbar,this),this.internalToolbar}}get form(){var t;return null===(t=this.inputElement)||void 0===t?void 0:t.form}get inputElement(){var t;if(this.hasAttribute(\"input\"))return null===(t=this.ownerDocument)||void 0===t?void 0:t.getElementById(this.getAttribute(\"input\"));if(this.parentNode){const t=\"trix-input-\".concat(this.trixId);this.setAttribute(\"input\",t);const e=T(\"input\",{type:\"hidden\",id:t});return this.parentNode.insertBefore(e,this.nextElementSibling),e}}get editor(){var t;return null===(t=this.editorController)||void 0===t?void 0:t.editor}get name(){var t;return null===(t=this.inputElement)||void 0===t?void 0:t.name}get value(){var t;return null===(t=this.inputElement)||void 0===t?void 0:t.value}set value(t){var e;this.defaultValue=t,null===(e=this.editor)||void 0===e||e.loadHTML(this.defaultValue)}attributeChangedCallback(t,e,i){\"connected\"===t&&this.isConnected&&null!=e&&e!==i&&requestAnimationFrame((()=>this.reconnect()))}notify(t,e){if(this.editorController)return v(\"trix-\".concat(t),{onElement:this,attributes:e})}setFormValue(t){this.inputElement&&(this.inputElement.value=t,Di(this,eo).setFormValue(t))}connectedCallback(){this.hasAttribute(\"data-trix-internal\")||(Vr(this),function(t){if(!t.hasAttribute(\"role\"))t.setAttribute(\"role\",\"textbox\")}(this),this.editorController||(v(\"trix-before-initialize\",{onElement:this}),this.editorController=new Mr({editorElement:this,html:this.defaultValue=this.value}),requestAnimationFrame((()=>v(\"trix-initialize\",{onElement:this})))),this.editorController.registerSelectionManager(),Di(this,eo).connectedCallback(),this.toggleAttribute(\"connected\",!0),function(t){if(!document.querySelector(\":focus\")&&t.hasAttribute(\"autofocus\")&&document.querySelector(\"[autofocus]\")===t)t.focus()}(this))}disconnectedCallback(){var t;null===(t=this.editorController)||void 0===t||t.unregisterSelectionManager(),Di(this,eo).disconnectedCallback(),this.toggleAttribute(\"connected\",!1)}reconnect(){this.removeInternalToolbar(),this.disconnectedCallback(),this.connectedCallback()}removeInternalToolbar(){var t;null===(t=this.internalToolbar)||void 0===t||t.remove(),this.internalToolbar=null}checkValidity(){return Di(this,eo).checkValidity()}reportValidity(){return Di(this,eo).reportValidity()}setCustomValidity(t){Di(this,eo).setCustomValidity(t)}formDisabledCallback(t){this.inputElement&&(this.inputElement.disabled=t),this.toggleAttribute(\"contenteditable\",!t)}formResetCallback(){this.reset()}reset(){this.value=this.defaultValue}}wi(io,\"formAssociated\",\"ElementInternals\"in window),wi(io,\"observedAttributes\",[\"connected\"]);const no={VERSION:t,config:z,core:Cn,models:Un,views:Vn,controllers:Br,observers:_r,operations:jr,elements:Object.freeze({__proto__:null,TrixEditorElement:io,TrixToolbarElement:Wr}),filters:Object.freeze({__proto__:null,Filter:Dn,attachmentGalleryFilter:Nn})};Object.assign(no,Un),window.Trix=no,setTimeout((function(){customElements.get(\"trix-toolbar\")||customElements.define(\"trix-toolbar\",Wr),customElements.get(\"trix-editor\")||customElements.define(\"trix-editor\",io)}),0);export{no as default};\n//# sourceMappingURL=trix.esm.min.js.map\n","function _classPrivateFieldLooseBase(e, t) { if (!{}.hasOwnProperty.call(e, t)) throw new TypeError(\"attempted to use private field on non-instance\"); return e; }\nvar id = 0;\nfunction _classPrivateFieldLooseKey(e) { return \"__private_\" + id++ + \"_\" + e; }\n// We're using a generic because languages have different plural rules.\n\n// eslint-disable-next-line no-use-before-define\n\nfunction insertReplacement(source, rx, replacement) {\n  const newParts = [];\n  source.forEach(chunk => {\n    // When the source contains multiple placeholders for interpolation,\n    // we should ignore chunks that are not strings, because those\n    // can be JSX objects and will be otherwise incorrectly turned into strings.\n    // Without this condition we’d get this: [object Object] hello [object Object] my <button>\n    if (typeof chunk !== 'string') {\n      return newParts.push(chunk);\n    }\n    return rx[Symbol.split](chunk).forEach((raw, i, list) => {\n      if (raw !== '') {\n        newParts.push(raw);\n      }\n\n      // Interlace with the `replacement` value\n      if (i < list.length - 1) {\n        newParts.push(replacement);\n      }\n    });\n  });\n  return newParts;\n}\n\n/**\n * Takes a string with placeholder variables like `%{smart_count} file selected`\n * and replaces it with values from options `{smart_count: 5}`\n *\n * @license https://github.com/airbnb/polyglot.js/blob/master/LICENSE\n * taken from https://github.com/airbnb/polyglot.js/blob/master/lib/polyglot.js#L299\n *\n * @param phrase that needs interpolation, with placeholders\n * @param options with values that will be used to replace placeholders\n */\nfunction interpolate(phrase, options) {\n  const dollarRegex = /\\$/g;\n  const dollarBillsYall = '$$$$';\n  let interpolated = [phrase];\n  if (options == null) return interpolated;\n  for (const arg of Object.keys(options)) {\n    if (arg !== '_') {\n      // Ensure replacement value is escaped to prevent special $-prefixed\n      // regex replace tokens. the \"$$$$\" is needed because each \"$\" needs to\n      // be escaped with \"$\" itself, and we need two in the resulting output.\n      let replacement = options[arg];\n      if (typeof replacement === 'string') {\n        replacement = dollarRegex[Symbol.replace](replacement, dollarBillsYall);\n      }\n      // We create a new `RegExp` each time instead of using a more-efficient\n      // string replace so that the same argument can be replaced multiple times\n      // in the same phrase.\n      interpolated = insertReplacement(interpolated, new RegExp(`%\\\\{${arg}\\\\}`, 'g'), replacement);\n    }\n  }\n  return interpolated;\n}\nconst defaultOnMissingKey = key => {\n  throw new Error(`missing string: ${key}`);\n};\n\n/**\n * Translates strings with interpolation & pluralization support.\n * Extensible with custom dictionaries and pluralization functions.\n *\n * Borrows heavily from and inspired by Polyglot https://github.com/airbnb/polyglot.js,\n * basically a stripped-down version of it. Differences: pluralization functions are not hardcoded\n * and can be easily added among with dictionaries, nested objects are used for pluralization\n * as opposed to `||||` delimeter\n *\n * Usage example: `translator.translate('files_chosen', {smart_count: 3})`\n */\nvar _onMissingKey = /*#__PURE__*/_classPrivateFieldLooseKey(\"onMissingKey\");\nvar _apply = /*#__PURE__*/_classPrivateFieldLooseKey(\"apply\");\nexport default class Translator {\n  constructor(locales, _temp) {\n    let {\n      onMissingKey = defaultOnMissingKey\n    } = _temp === void 0 ? {} : _temp;\n    Object.defineProperty(this, _apply, {\n      value: _apply2\n    });\n    Object.defineProperty(this, _onMissingKey, {\n      writable: true,\n      value: void 0\n    });\n    this.locale = {\n      strings: {},\n      pluralize(n) {\n        if (n === 1) {\n          return 0;\n        }\n        return 1;\n      }\n    };\n    if (Array.isArray(locales)) {\n      locales.forEach(_classPrivateFieldLooseBase(this, _apply)[_apply], this);\n    } else {\n      _classPrivateFieldLooseBase(this, _apply)[_apply](locales);\n    }\n    _classPrivateFieldLooseBase(this, _onMissingKey)[_onMissingKey] = onMissingKey;\n  }\n  /**\n   * Public translate method\n   *\n   * @param key\n   * @param options with values that will be used later to replace placeholders in string\n   * @returns string translated (and interpolated)\n   */\n  translate(key, options) {\n    return this.translateArray(key, options).join('');\n  }\n\n  /**\n   * Get a translation and return the translated and interpolated parts as an array.\n   *\n   * @returns The translated and interpolated parts, in order.\n   */\n  translateArray(key, options) {\n    let string = this.locale.strings[key];\n    if (string == null) {\n      _classPrivateFieldLooseBase(this, _onMissingKey)[_onMissingKey](key);\n      string = key;\n    }\n    const hasPluralForms = typeof string === 'object';\n    if (hasPluralForms) {\n      if (options && typeof options.smart_count !== 'undefined') {\n        const plural = this.locale.pluralize(options.smart_count);\n        return interpolate(string[plural], options);\n      }\n      throw new Error('Attempted to use a string with plural forms, but no value was given for %{smart_count}');\n    }\n    if (typeof string !== 'string') {\n      throw new Error(`string was not a string`);\n    }\n    return interpolate(string, options);\n  }\n}\nfunction _apply2(locale) {\n  if (!(locale != null && locale.strings)) {\n    return;\n  }\n  const prevLocale = this.locale;\n  Object.assign(this.locale, {\n    strings: {\n      ...prevLocale.strings,\n      ...locale.strings\n    },\n    pluralize: locale.pluralize || prevLocale.pluralize\n  });\n}","/**\n* Create an event emitter with namespaces\n* @name createNamespaceEmitter\n* @example\n* var emitter = require('./index')()\n*\n* emitter.on('*', function () {\n*   console.log('all events emitted', this.event)\n* })\n*\n* emitter.on('example', function () {\n*   console.log('example event emitted')\n* })\n*/\nmodule.exports = function createNamespaceEmitter () {\n  var emitter = {}\n  var _fns = emitter._fns = {}\n\n  /**\n  * Emit an event. Optionally namespace the event. Handlers are fired in the order in which they were added with exact matches taking precedence. Separate the namespace and event with a `:`\n  * @name emit\n  * @param {String} event – the name of the event, with optional namespace\n  * @param {...*} data – up to 6 arguments that are passed to the event listener\n  * @example\n  * emitter.emit('example')\n  * emitter.emit('demo:test')\n  * emitter.emit('data', { example: true}, 'a string', 1)\n  */\n  emitter.emit = function emit (event, arg1, arg2, arg3, arg4, arg5, arg6) {\n    var toEmit = getListeners(event)\n\n    if (toEmit.length) {\n      emitAll(event, toEmit, [arg1, arg2, arg3, arg4, arg5, arg6])\n    }\n  }\n\n  /**\n  * Create en event listener.\n  * @name on\n  * @param {String} event\n  * @param {Function} fn\n  * @example\n  * emitter.on('example', function () {})\n  * emitter.on('demo', function () {})\n  */\n  emitter.on = function on (event, fn) {\n    if (!_fns[event]) {\n      _fns[event] = []\n    }\n\n    _fns[event].push(fn)\n  }\n\n  /**\n  * Create en event listener that fires once.\n  * @name once\n  * @param {String} event\n  * @param {Function} fn\n  * @example\n  * emitter.once('example', function () {})\n  * emitter.once('demo', function () {})\n  */\n  emitter.once = function once (event, fn) {\n    function one () {\n      fn.apply(this, arguments)\n      emitter.off(event, one)\n    }\n    this.on(event, one)\n  }\n\n  /**\n  * Stop listening to an event. Stop all listeners on an event by only passing the event name. Stop a single listener by passing that event handler as a callback.\n  * You must be explicit about what will be unsubscribed: `emitter.off('demo')` will unsubscribe an `emitter.on('demo')` listener,\n  * `emitter.off('demo:example')` will unsubscribe an `emitter.on('demo:example')` listener\n  * @name off\n  * @param {String} event\n  * @param {Function} [fn] – the specific handler\n  * @example\n  * emitter.off('example')\n  * emitter.off('demo', function () {})\n  */\n  emitter.off = function off (event, fn) {\n    var keep = []\n\n    if (event && fn) {\n      var fns = this._fns[event]\n      var i = 0\n      var l = fns ? fns.length : 0\n\n      for (i; i < l; i++) {\n        if (fns[i] !== fn) {\n          keep.push(fns[i])\n        }\n      }\n    }\n\n    keep.length ? this._fns[event] = keep : delete this._fns[event]\n  }\n\n  function getListeners (e) {\n    var out = _fns[e] ? _fns[e] : []\n    var idx = e.indexOf(':')\n    var args = (idx === -1) ? [e] : [e.substring(0, idx), e.substring(idx + 1)]\n\n    var keys = Object.keys(_fns)\n    var i = 0\n    var l = keys.length\n\n    for (i; i < l; i++) {\n      var key = keys[i]\n      if (key === '*') {\n        out = out.concat(_fns[key])\n      }\n\n      if (args.length === 2 && args[0] === key) {\n        out = out.concat(_fns[key])\n        break\n      }\n    }\n\n    return out\n  }\n\n  function emitAll (e, fns, args) {\n    var i = 0\n    var l = fns.length\n\n    for (i; i < l; i++) {\n      if (!fns[i]) break\n      fns[i].event = e\n      fns[i].apply(fns[i], args)\n    }\n  }\n\n  return emitter\n}\n","/* @ts-self-types=\"./index.d.ts\" */\nlet urlAlphabet =\n  'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\nexport let customAlphabet = (alphabet, defaultSize = 21) => {\n  return (size = defaultSize) => {\n    let id = ''\n    let i = size | 0\n    while (i--) {\n      id += alphabet[(Math.random() * alphabet.length) | 0]\n    }\n    return id\n  }\n}\nexport let nanoid = (size = 21) => {\n  let id = ''\n  let i = size | 0\n  while (i--) {\n    id += urlAlphabet[(Math.random() * 64) | 0]\n  }\n  return id\n}\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n  var type = typeof value;\n  return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n *   console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n  return root.Date.now();\n};\n\nmodule.exports = now;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n  var index = string.length;\n\n  while (index-- && reWhitespace.test(string.charAt(index))) {}\n  return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n  return string\n    ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n    : string;\n}\n\nmodule.exports = baseTrim;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n  var isOwn = hasOwnProperty.call(value, symToStringTag),\n      tag = value[symToStringTag];\n\n  try {\n    value[symToStringTag] = undefined;\n    var unmasked = true;\n  } catch (e) {}\n\n  var result = nativeObjectToString.call(value);\n  if (unmasked) {\n    if (isOwn) {\n      value[symToStringTag] = tag;\n    } else {\n      delete value[symToStringTag];\n    }\n  }\n  return result;\n}\n\nmodule.exports = getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n  return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","var Symbol = require('./_Symbol'),\n    getRawTag = require('./_getRawTag'),\n    objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n    undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n  if (value == null) {\n    return value === undefined ? undefinedTag : nullTag;\n  }\n  return (symToStringTag && symToStringTag in Object(value))\n    ? getRawTag(value)\n    : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n  return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n    isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n  return typeof value == 'symbol' ||\n    (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var baseTrim = require('./_baseTrim'),\n    isObject = require('./isObject'),\n    isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n  if (typeof value == 'number') {\n    return value;\n  }\n  if (isSymbol(value)) {\n    return NAN;\n  }\n  if (isObject(value)) {\n    var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n    value = isObject(other) ? (other + '') : other;\n  }\n  if (typeof value != 'string') {\n    return value === 0 ? value : +value;\n  }\n  value = baseTrim(value);\n  var isBinary = reIsBinary.test(value);\n  return (isBinary || reIsOctal.test(value))\n    ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n    : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","var isObject = require('./isObject'),\n    now = require('./now'),\n    toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n    nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n *  Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n *  The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n *  Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n *   'leading': true,\n *   'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n  var lastArgs,\n      lastThis,\n      maxWait,\n      result,\n      timerId,\n      lastCallTime,\n      lastInvokeTime = 0,\n      leading = false,\n      maxing = false,\n      trailing = true;\n\n  if (typeof func != 'function') {\n    throw new TypeError(FUNC_ERROR_TEXT);\n  }\n  wait = toNumber(wait) || 0;\n  if (isObject(options)) {\n    leading = !!options.leading;\n    maxing = 'maxWait' in options;\n    maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n    trailing = 'trailing' in options ? !!options.trailing : trailing;\n  }\n\n  function invokeFunc(time) {\n    var args = lastArgs,\n        thisArg = lastThis;\n\n    lastArgs = lastThis = undefined;\n    lastInvokeTime = time;\n    result = func.apply(thisArg, args);\n    return result;\n  }\n\n  function leadingEdge(time) {\n    // Reset any `maxWait` timer.\n    lastInvokeTime = time;\n    // Start the timer for the trailing edge.\n    timerId = setTimeout(timerExpired, wait);\n    // Invoke the leading edge.\n    return leading ? invokeFunc(time) : result;\n  }\n\n  function remainingWait(time) {\n    var timeSinceLastCall = time - lastCallTime,\n        timeSinceLastInvoke = time - lastInvokeTime,\n        timeWaiting = wait - timeSinceLastCall;\n\n    return maxing\n      ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n      : timeWaiting;\n  }\n\n  function shouldInvoke(time) {\n    var timeSinceLastCall = time - lastCallTime,\n        timeSinceLastInvoke = time - lastInvokeTime;\n\n    // Either this is the first call, activity has stopped and we're at the\n    // trailing edge, the system time has gone backwards and we're treating\n    // it as the trailing edge, or we've hit the `maxWait` limit.\n    return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n      (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n  }\n\n  function timerExpired() {\n    var time = now();\n    if (shouldInvoke(time)) {\n      return trailingEdge(time);\n    }\n    // Restart the timer.\n    timerId = setTimeout(timerExpired, remainingWait(time));\n  }\n\n  function trailingEdge(time) {\n    timerId = undefined;\n\n    // Only invoke if we have `lastArgs` which means `func` has been\n    // debounced at least once.\n    if (trailing && lastArgs) {\n      return invokeFunc(time);\n    }\n    lastArgs = lastThis = undefined;\n    return result;\n  }\n\n  function cancel() {\n    if (timerId !== undefined) {\n      clearTimeout(timerId);\n    }\n    lastInvokeTime = 0;\n    lastArgs = lastCallTime = lastThis = timerId = undefined;\n  }\n\n  function flush() {\n    return timerId === undefined ? result : trailingEdge(now());\n  }\n\n  function debounced() {\n    var time = now(),\n        isInvoking = shouldInvoke(time);\n\n    lastArgs = arguments;\n    lastThis = this;\n    lastCallTime = time;\n\n    if (isInvoking) {\n      if (timerId === undefined) {\n        return leadingEdge(lastCallTime);\n      }\n      if (maxing) {\n        // Handle invocations in a tight loop.\n        clearTimeout(timerId);\n        timerId = setTimeout(timerExpired, wait);\n        return invokeFunc(lastCallTime);\n      }\n    }\n    if (timerId === undefined) {\n      timerId = setTimeout(timerExpired, wait);\n    }\n    return result;\n  }\n  debounced.cancel = cancel;\n  debounced.flush = flush;\n  return debounced;\n}\n\nmodule.exports = debounce;\n","var debounce = require('./debounce'),\n    isObject = require('./isObject');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n *  Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n *  Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n  var leading = true,\n      trailing = true;\n\n  if (typeof func != 'function') {\n    throw new TypeError(FUNC_ERROR_TEXT);\n  }\n  if (isObject(options)) {\n    leading = 'leading' in options ? !!options.leading : leading;\n    trailing = 'trailing' in options ? !!options.trailing : trailing;\n  }\n  return debounce(func, wait, {\n    'leading': leading,\n    'maxWait': wait,\n    'trailing': trailing\n  });\n}\n\nmodule.exports = throttle;\n","function _classPrivateFieldLooseBase(e, t) { if (!{}.hasOwnProperty.call(e, t)) throw new TypeError(\"attempted to use private field on non-instance\"); return e; }\nvar id = 0;\nfunction _classPrivateFieldLooseKey(e) { return \"__private_\" + id++ + \"_\" + e; }\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore We don't want TS to generate types for the package.json\nconst packageJson = {\n  \"version\": \"4.2.0\"\n};\nvar _callbacks = /*#__PURE__*/_classPrivateFieldLooseKey(\"callbacks\");\nvar _publish = /*#__PURE__*/_classPrivateFieldLooseKey(\"publish\");\n/**\n * Default store that keeps state in a simple object.\n */\nclass DefaultStore {\n  constructor() {\n    Object.defineProperty(this, _publish, {\n      value: _publish2\n    });\n    this.state = {};\n    Object.defineProperty(this, _callbacks, {\n      writable: true,\n      value: new Set()\n    });\n  }\n  getState() {\n    return this.state;\n  }\n  setState(patch) {\n    const prevState = {\n      ...this.state\n    };\n    const nextState = {\n      ...this.state,\n      ...patch\n    };\n    this.state = nextState;\n    _classPrivateFieldLooseBase(this, _publish)[_publish](prevState, nextState, patch);\n  }\n  subscribe(listener) {\n    _classPrivateFieldLooseBase(this, _callbacks)[_callbacks].add(listener);\n    return () => {\n      _classPrivateFieldLooseBase(this, _callbacks)[_callbacks].delete(listener);\n    };\n  }\n}\nfunction _publish2() {\n  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n    args[_key] = arguments[_key];\n  }\n  _classPrivateFieldLooseBase(this, _callbacks)[_callbacks].forEach(listener => {\n    listener(...args);\n  });\n}\nDefaultStore.VERSION = packageJson.version;\nexport default DefaultStore;","/**\n * Takes a full filename string and returns an object {name, extension}\n */\nexport default function getFileNameAndExtension(fullFileName) {\n  const lastDot = fullFileName.lastIndexOf('.');\n  // these count as no extension: \"no-dot\", \"trailing-dot.\"\n  if (lastDot === -1 || lastDot === fullFileName.length - 1) {\n    return {\n      name: fullFileName,\n      extension: undefined\n    };\n  }\n  return {\n    name: fullFileName.slice(0, lastDot),\n    extension: fullFileName.slice(lastDot + 1)\n  };\n}","// ___Why not add the mime-types package?\n//    It's 19.7kB gzipped, and we only need mime types for well-known extensions (for file previews).\n// ___Where to take new extensions from?\n//    https://github.com/jshttp/mime-db/blob/master/db.json\n\nexport default {\n  __proto__: null,\n  md: 'text/markdown',\n  markdown: 'text/markdown',\n  mp4: 'video/mp4',\n  mp3: 'audio/mp3',\n  svg: 'image/svg+xml',\n  jpg: 'image/jpeg',\n  png: 'image/png',\n  webp: 'image/webp',\n  gif: 'image/gif',\n  heic: 'image/heic',\n  heif: 'image/heif',\n  yaml: 'text/yaml',\n  yml: 'text/yaml',\n  csv: 'text/csv',\n  tsv: 'text/tab-separated-values',\n  tab: 'text/tab-separated-values',\n  avi: 'video/x-msvideo',\n  mks: 'video/x-matroska',\n  mkv: 'video/x-matroska',\n  mov: 'video/quicktime',\n  dicom: 'application/dicom',\n  doc: 'application/msword',\n  docm: 'application/vnd.ms-word.document.macroenabled.12',\n  docx: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n  dot: 'application/msword',\n  dotm: 'application/vnd.ms-word.template.macroenabled.12',\n  dotx: 'application/vnd.openxmlformats-officedocument.wordprocessingml.template',\n  xla: 'application/vnd.ms-excel',\n  xlam: 'application/vnd.ms-excel.addin.macroenabled.12',\n  xlc: 'application/vnd.ms-excel',\n  xlf: 'application/x-xliff+xml',\n  xlm: 'application/vnd.ms-excel',\n  xls: 'application/vnd.ms-excel',\n  xlsb: 'application/vnd.ms-excel.sheet.binary.macroenabled.12',\n  xlsm: 'application/vnd.ms-excel.sheet.macroenabled.12',\n  xlsx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n  xlt: 'application/vnd.ms-excel',\n  xltm: 'application/vnd.ms-excel.template.macroenabled.12',\n  xltx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.template',\n  xlw: 'application/vnd.ms-excel',\n  txt: 'text/plain',\n  text: 'text/plain',\n  conf: 'text/plain',\n  log: 'text/plain',\n  pdf: 'application/pdf',\n  zip: 'application/zip',\n  '7z': 'application/x-7z-compressed',\n  rar: 'application/x-rar-compressed',\n  tar: 'application/x-tar',\n  gz: 'application/gzip',\n  dmg: 'application/x-apple-diskimage'\n};","import getFileNameAndExtension from './getFileNameAndExtension.js';\nimport mimeTypes from './mimeTypes.js';\nexport default function getFileType(file) {\n  var _getFileNameAndExtens;\n  if (file.type) return file.type;\n  const fileExtension = file.name ? (_getFileNameAndExtens = getFileNameAndExtension(file.name).extension) == null ? void 0 : _getFileNameAndExtens.toLowerCase() : null;\n  if (fileExtension && fileExtension in mimeTypes) {\n    // else, see if we can map extension to a mime type\n    return mimeTypes[fileExtension];\n  }\n  // if all fails, fall back to a generic byte stream type\n  return 'application/octet-stream';\n}","import getFileType from './getFileType.js';\nfunction encodeCharacter(character) {\n  return character.charCodeAt(0).toString(32);\n}\nfunction encodeFilename(name) {\n  let suffix = '';\n  return name.replace(/[^A-Z0-9]/gi, character => {\n    suffix += `-${encodeCharacter(character)}`;\n    return '/';\n  }) + suffix;\n}\n\n/**\n * Takes a file object and turns it into fileID, by converting file.name to lowercase,\n * removing extra characters and adding type, size and lastModified\n */\nexport default function generateFileID(file, instanceId) {\n  // It's tempting to do `[items].filter(Boolean).join('-')` here, but that\n  // is slower! simple string concatenation is fast\n\n  let id = instanceId || 'uppy';\n  if (typeof file.name === 'string') {\n    id += `-${encodeFilename(file.name.toLowerCase())}`;\n  }\n  if (file.type !== undefined) {\n    id += `-${file.type}`;\n  }\n  if (file.meta && typeof file.meta.relativePath === 'string') {\n    id += `-${encodeFilename(file.meta.relativePath.toLowerCase())}`;\n  }\n  if (file.data.size !== undefined) {\n    id += `-${file.data.size}`;\n  }\n  if (file.data.lastModified !== undefined) {\n    id += `-${file.data.lastModified}`;\n  }\n  return id;\n}\n\n// If the provider has a stable, unique ID, then we can use that to identify the file.\n// Then we don't have to generate our own ID, and we can add the same file many times if needed (different path)\nfunction hasFileStableId(file) {\n  if (!file.isRemote || !file.remote) return false;\n  // These are the providers that it seems like have stable IDs for their files. The other's I haven't checked yet.\n  const stableIdProviders = new Set(['box', 'dropbox', 'drive', 'facebook', 'unsplash']);\n  return stableIdProviders.has(file.remote.provider);\n}\nexport function getSafeFileId(file, instanceId) {\n  if (hasFileStableId(file)) return file.id;\n  const fileType = getFileType(file);\n  return generateFileID({\n    ...file,\n    type: fileType\n  }, instanceId);\n}","// Edge 15.x does not fire 'progress' events on uploads.\n// See https://github.com/transloadit/uppy/issues/945\n// And https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/12224510/\nexport default function supportsUploadProgress(userAgent) {\n  // Allow passing in userAgent for tests\n  if (userAgent == null && typeof navigator !== 'undefined') {\n    // eslint-disable-next-line no-param-reassign\n    userAgent = navigator.userAgent;\n  }\n  // Assume it works because basically everything supports progress events.\n  if (!userAgent) return true;\n  const m = /Edge\\/(\\d+\\.\\d+)/.exec(userAgent);\n  if (!m) return true;\n  const edgeVersion = m[1];\n  const version = edgeVersion.split('.', 2);\n  const major = parseInt(version[0], 10);\n  const minor = parseInt(version[1], 10);\n\n  // Worked before:\n  // Edge 40.15063.0.0\n  // Microsoft EdgeHTML 15.15063\n  if (major < 15 || major === 15 && minor < 15063) {\n    return true;\n  }\n\n  // Fixed in:\n  // Microsoft EdgeHTML 18.18218\n  if (major > 18 || major === 18 && minor >= 18218) {\n    return true;\n  }\n\n  // other versions don't work.\n  return false;\n}","export default function getFileName(fileType, fileDescriptor) {\n  if (fileDescriptor.name) {\n    return fileDescriptor.name;\n  }\n  if (fileType.split('/')[0] === 'image') {\n    return `${fileType.split('/')[0]}.${fileType.split('/')[1]}`;\n  }\n  return 'noname';\n}","/**\n * Adds zero to strings shorter than two characters.\n */\nfunction pad(number) {\n  return number < 10 ? `0${number}` : number.toString();\n}\n\n/**\n * Returns a timestamp in the format of `hours:minutes:seconds`\n */\nexport default function getTimeStamp() {\n  const date = new Date();\n  const hours = pad(date.getHours());\n  const minutes = pad(date.getMinutes());\n  const seconds = pad(date.getSeconds());\n  return `${hours}:${minutes}:${seconds}`;\n}","/* eslint-disable no-console */\nimport getTimeStamp from '@uppy/utils/lib/getTimeStamp';\n\n// Swallow all logs, except errors.\n// default if logger is not set or debug: false\nconst justErrorsLogger = {\n  debug: () => {},\n  warn: () => {},\n  error: function () {\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n    return console.error(`[Uppy] [${getTimeStamp()}]`, ...args);\n  }\n};\n\n// Print logs to console with namespace + timestamp,\n// set by logger: Uppy.debugLogger or debug: true\nconst debugLogger = {\n  debug: function () {\n    for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n      args[_key2] = arguments[_key2];\n    }\n    return console.debug(`[Uppy] [${getTimeStamp()}]`, ...args);\n  },\n  warn: function () {\n    for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n      args[_key3] = arguments[_key3];\n    }\n    return console.warn(`[Uppy] [${getTimeStamp()}]`, ...args);\n  },\n  error: function () {\n    for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n      args[_key4] = arguments[_key4];\n    }\n    return console.error(`[Uppy] [${getTimeStamp()}]`, ...args);\n  }\n};\nexport { justErrorsLogger, debugLogger };","\"use strict\";\nmodule.exports = function prettierBytes(input) {\n    if (typeof input !== 'number' || Number.isNaN(input)) {\n        throw new TypeError(`Expected a number, got ${typeof input}`);\n    }\n    const neg = input < 0;\n    let num = Math.abs(input);\n    if (neg) {\n        num = -num;\n    }\n    if (num === 0) {\n        return '0 B';\n    }\n    const units = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n    const exponent = Math.min(Math.floor(Math.log(num) / Math.log(1024)), units.length - 1);\n    const value = Number(num / 1024 ** exponent);\n    const unit = units[exponent];\n    return `${value >= 10 || value % 1 === 0 ? Math.round(value) : value.toFixed(1)} ${unit}`;\n};\n//# sourceMappingURL=prettierBytes.js.map","/* jshint node: true */\n'use strict';\n\n/**\n  # wildcard\n\n  Very simple wildcard matching, which is designed to provide the same\n  functionality that is found in the\n  [eve](https://github.com/adobe-webplatform/eve) eventing library.\n\n  ## Usage\n\n  It works with strings:\n\n  <<< examples/strings.js\n\n  Arrays:\n\n  <<< examples/arrays.js\n\n  Objects (matching against keys):\n\n  <<< examples/objects.js\n\n  While the library works in Node, if you are are looking for file-based\n  wildcard matching then you should have a look at:\n\n  <https://github.com/isaacs/node-glob>\n**/\n\nfunction WildcardMatcher(text, separator) {\n  this.text = text = text || '';\n  this.hasWild = ~text.indexOf('*');\n  this.separator = separator;\n  this.parts = text.split(separator);\n}\n\nWildcardMatcher.prototype.match = function(input) {\n  var matches = true;\n  var parts = this.parts;\n  var ii;\n  var partsCount = parts.length;\n  var testParts;\n\n  if (typeof input == 'string' || input instanceof String) {\n    if (!this.hasWild && this.text != input) {\n      matches = false;\n    } else {\n      testParts = (input || '').split(this.separator);\n      for (ii = 0; matches && ii < partsCount; ii++) {\n        if (parts[ii] === '*')  {\n          continue;\n        } else if (ii < testParts.length) {\n          matches = parts[ii] === testParts[ii];\n        } else {\n          matches = false;\n        }\n      }\n\n      // If matches, then return the component parts\n      matches = matches && testParts;\n    }\n  }\n  else if (typeof input.splice == 'function') {\n    matches = [];\n\n    for (ii = input.length; ii--; ) {\n      if (this.match(input[ii])) {\n        matches[matches.length] = input[ii];\n      }\n    }\n  }\n  else if (typeof input == 'object') {\n    matches = {};\n\n    for (var key in input) {\n      if (this.match(key)) {\n        matches[key] = input[key];\n      }\n    }\n  }\n\n  return matches;\n};\n\nmodule.exports = function(text, test, separator) {\n  var matcher = new WildcardMatcher(text, separator || /[\\/\\.]/);\n  if (typeof test != 'undefined') {\n    return matcher.match(test);\n  }\n\n  return matcher;\n};\n","var wildcard = require('wildcard');\nvar reMimePartSplit = /[\\/\\+\\.]/;\n\n/**\n  # mime-match\n\n  A simple function to checker whether a target mime type matches a mime-type\n  pattern (e.g. image/jpeg matches image/jpeg OR image/*).\n\n  ## Example Usage\n\n  <<< example.js\n\n**/\nmodule.exports = function(target, pattern) {\n  function test(pattern) {\n    var result = wildcard(pattern, target, reMimePartSplit);\n\n    // ensure that we have a valid mime type (should have two parts)\n    return result && result.length >= 2;\n  }\n\n  return pattern ? test(pattern.split(';')[0]) : test;\n};\n","/* eslint-disable @typescript-eslint/ban-ts-comment */\n/* eslint-disable max-classes-per-file, class-methods-use-this */\nimport prettierBytes from '@transloadit/prettier-bytes';\n// @ts-ignore untyped\nimport match from 'mime-match';\n\n/**\n * The minimal required properties to be present from UppyFile in order to validate it.\n */\n\nconst defaultOptions = {\n  maxFileSize: null,\n  minFileSize: null,\n  maxTotalFileSize: null,\n  maxNumberOfFiles: null,\n  minNumberOfFiles: null,\n  allowedFileTypes: null,\n  requiredMetaFields: []\n};\nclass RestrictionError extends Error {\n  constructor(message, opts) {\n    var _opts$isUserFacing;\n    super(message);\n    this.isRestriction = true;\n    this.isUserFacing = (_opts$isUserFacing = opts == null ? void 0 : opts.isUserFacing) != null ? _opts$isUserFacing : true;\n    if (opts != null && opts.file) {\n      this.file = opts.file; // only some restriction errors are related to a particular file\n    }\n  }\n}\nclass Restricter {\n  constructor(getOpts, getI18n) {\n    this.getI18n = getI18n;\n    this.getOpts = () => {\n      var _opts$restrictions;\n      const opts = getOpts();\n      if (((_opts$restrictions = opts.restrictions) == null ? void 0 : _opts$restrictions.allowedFileTypes) != null && !Array.isArray(opts.restrictions.allowedFileTypes)) {\n        throw new TypeError('`restrictions.allowedFileTypes` must be an array');\n      }\n      return opts;\n    };\n  }\n\n  // Because these operations are slow, we cannot run them for every file (if we are adding multiple files)\n  validateAggregateRestrictions(existingFiles, addingFiles) {\n    const {\n      maxTotalFileSize,\n      maxNumberOfFiles\n    } = this.getOpts().restrictions;\n    if (maxNumberOfFiles) {\n      const nonGhostFiles = existingFiles.filter(f => !f.isGhost);\n      if (nonGhostFiles.length + addingFiles.length > maxNumberOfFiles) {\n        throw new RestrictionError(`${this.getI18n()('youCanOnlyUploadX', {\n          smart_count: maxNumberOfFiles\n        })}`);\n      }\n    }\n    if (maxTotalFileSize) {\n      const totalFilesSize = [...existingFiles, ...addingFiles].reduce((total, f) => {\n        var _f$size;\n        return total + ((_f$size = f.size) != null ? _f$size : 0);\n      }, 0);\n      if (totalFilesSize > maxTotalFileSize) {\n        throw new RestrictionError(this.getI18n()('aggregateExceedsSize', {\n          sizeAllowed: prettierBytes(maxTotalFileSize),\n          size: prettierBytes(totalFilesSize)\n        }));\n      }\n    }\n  }\n  validateSingleFile(file) {\n    const {\n      maxFileSize,\n      minFileSize,\n      allowedFileTypes\n    } = this.getOpts().restrictions;\n    if (allowedFileTypes) {\n      const isCorrectFileType = allowedFileTypes.some(type => {\n        // check if this is a mime-type\n        if (type.includes('/')) {\n          if (!file.type) return false;\n          return match(file.type.replace(/;.*?$/, ''), type);\n        }\n\n        // otherwise this is likely an extension\n        if (type[0] === '.' && file.extension) {\n          return file.extension.toLowerCase() === type.slice(1).toLowerCase();\n        }\n        return false;\n      });\n      if (!isCorrectFileType) {\n        const allowedFileTypesString = allowedFileTypes.join(', ');\n        throw new RestrictionError(this.getI18n()('youCanOnlyUploadFileTypes', {\n          types: allowedFileTypesString\n        }), {\n          file\n        });\n      }\n    }\n\n    // We can't check maxFileSize if the size is unknown.\n    if (maxFileSize && file.size != null && file.size > maxFileSize) {\n      var _file$name;\n      throw new RestrictionError(this.getI18n()('exceedsSize', {\n        size: prettierBytes(maxFileSize),\n        file: (_file$name = file.name) != null ? _file$name : this.getI18n()('unnamed')\n      }), {\n        file\n      });\n    }\n\n    // We can't check minFileSize if the size is unknown.\n    if (minFileSize && file.size != null && file.size < minFileSize) {\n      throw new RestrictionError(this.getI18n()('inferiorSize', {\n        size: prettierBytes(minFileSize)\n      }), {\n        file\n      });\n    }\n  }\n  validate(existingFiles, addingFiles) {\n    addingFiles.forEach(addingFile => {\n      this.validateSingleFile(addingFile);\n    });\n    this.validateAggregateRestrictions(existingFiles, addingFiles);\n  }\n  validateMinNumberOfFiles(files) {\n    const {\n      minNumberOfFiles\n    } = this.getOpts().restrictions;\n    if (minNumberOfFiles && Object.keys(files).length < minNumberOfFiles) {\n      throw new RestrictionError(this.getI18n()('youHaveToAtLeastSelectX', {\n        smart_count: minNumberOfFiles\n      }));\n    }\n  }\n  getMissingRequiredMetaFields(file) {\n    var _file$name2;\n    const error = new RestrictionError(this.getI18n()('missingRequiredMetaFieldOnFile', {\n      fileName: (_file$name2 = file.name) != null ? _file$name2 : this.getI18n()('unnamed')\n    }));\n    const {\n      requiredMetaFields\n    } = this.getOpts().restrictions;\n    const missingFields = [];\n    for (const field of requiredMetaFields) {\n      if (!Object.hasOwn(file.meta, field) || file.meta[field] === '') {\n        missingFields.push(field);\n      }\n    }\n    return {\n      missingFields,\n      error\n    };\n  }\n}\nexport { Restricter, defaultOptions, RestrictionError };","export default {\n  strings: {\n    addBulkFilesFailed: {\n      0: 'Failed to add %{smart_count} file due to an internal error',\n      1: 'Failed to add %{smart_count} files due to internal errors'\n    },\n    youCanOnlyUploadX: {\n      0: 'You can only upload %{smart_count} file',\n      1: 'You can only upload %{smart_count} files'\n    },\n    youHaveToAtLeastSelectX: {\n      0: 'You have to select at least %{smart_count} file',\n      1: 'You have to select at least %{smart_count} files'\n    },\n    aggregateExceedsSize: 'You selected %{size} of files, but maximum allowed size is %{sizeAllowed}',\n    exceedsSize: '%{file} exceeds maximum allowed size of %{size}',\n    missingRequiredMetaField: 'Missing required meta fields',\n    missingRequiredMetaFieldOnFile: 'Missing required meta fields in %{fileName}',\n    inferiorSize: 'This file is smaller than the allowed size of %{size}',\n    youCanOnlyUploadFileTypes: 'You can only upload: %{types}',\n    noMoreFilesAllowed: 'Cannot add more files',\n    noDuplicates: \"Cannot add the duplicate file '%{fileName}', it already exists\",\n    companionError: 'Connection with Companion failed',\n    authAborted: 'Authentication aborted',\n    companionUnauthorizeHint: 'To unauthorize to your %{provider} account, please go to %{url}',\n    failedToUpload: 'Failed to upload %{file}',\n    noInternetConnection: 'No Internet connection',\n    connectedToInternet: 'Connected to the Internet',\n    // Strings for remote providers\n    noFilesFound: 'You have no files or folders here',\n    noSearchResults: 'Unfortunately, there are no results for this search',\n    selectX: {\n      0: 'Select %{smart_count}',\n      1: 'Select %{smart_count}'\n    },\n    allFilesFromFolderNamed: 'All files from folder %{name}',\n    openFolderNamed: 'Open folder %{name}',\n    cancel: 'Cancel',\n    logOut: 'Log out',\n    logIn: 'Log in',\n    pickFiles: 'Pick files',\n    pickPhotos: 'Pick photos',\n    filter: 'Filter',\n    resetFilter: 'Reset filter',\n    loading: 'Loading...',\n    loadedXFiles: 'Loaded %{numFiles} files',\n    authenticateWithTitle: 'Please authenticate with %{pluginName} to select files',\n    authenticateWith: 'Connect to %{pluginName}',\n    signInWithGoogle: 'Sign in with Google',\n    searchImages: 'Search for images',\n    enterTextToSearch: 'Enter text to search for images',\n    search: 'Search',\n    resetSearch: 'Reset search',\n    emptyFolderAdded: 'No files were added from empty folder',\n    addedNumFiles: 'Added %{numFiles} file(s)',\n    folderAlreadyAdded: 'The folder \"%{folder}\" was already added',\n    folderAdded: {\n      0: 'Added %{smart_count} file from %{folder}',\n      1: 'Added %{smart_count} files from %{folder}'\n    },\n    additionalRestrictionsFailed: '%{count} additional restrictions were not fulfilled',\n    unnamed: 'Unnamed',\n    pleaseWait: 'Please wait'\n  }\n};","function _classPrivateFieldLooseBase(e, t) { if (!{}.hasOwnProperty.call(e, t)) throw new TypeError(\"attempted to use private field on non-instance\"); return e; }\nvar id = 0;\nfunction _classPrivateFieldLooseKey(e) { return \"__private_\" + id++ + \"_\" + e; }\n/* eslint-disable max-classes-per-file */\n/* global AggregateError */\n\nimport Translator from '@uppy/utils/lib/Translator';\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore untyped\nimport ee from 'namespace-emitter';\nimport { nanoid } from 'nanoid/non-secure';\nimport throttle from 'lodash/throttle.js';\nimport DefaultStore from '@uppy/store-default';\nimport getFileType from '@uppy/utils/lib/getFileType';\nimport getFileNameAndExtension from '@uppy/utils/lib/getFileNameAndExtension';\nimport { getSafeFileId } from '@uppy/utils/lib/generateFileID';\nimport supportsUploadProgress from './supportsUploadProgress.js';\nimport getFileName from './getFileName.js';\nimport { justErrorsLogger, debugLogger } from './loggers.js';\nimport { Restricter, defaultOptions as defaultRestrictionOptions, RestrictionError } from './Restricter.js';\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore We don't want TS to generate types for the package.json\nconst packageJson = {\n  \"version\": \"4.4.3\"\n};\nimport locale from './locale.js';\n\n/**\n * ids are always `string`s, except the root folder's id can be `null`\n */\n\n/**\n * PartialTree has the following structure.\n *\n *           FolderRoot\n *         ┌─────┴─────┐\n *     FolderNode     File\n *   ┌─────┴────┐\n *  File      File\n *\n * Root folder is called `PartialTreeFolderRoot`,\n * all other folders are called `PartialTreeFolderNode`, because they are \"internal nodes\".\n *\n * It's possible for `PartialTreeFolderNode` to be a leaf node if it doesn't contain any files.\n */\n\n/**\n * This is a base for a provider that does not necessarily use the Companion-assisted OAuth2 flow\n */\n\n/*\n * UnknownProviderPlugin can be any Companion plugin (such as Google Drive)\n * that uses the Companion-assisted OAuth flow.\n * As the plugins are passed around throughout Uppy we need a generic type for this.\n * It may seems like duplication, but this type safe. Changing the type of `storage`\n * will error in the `Provider` class of @uppy/companion-client and vice versa.\n *\n * Note that this is the *plugin* class, not a version of the `Provider` class.\n * `Provider` does operate on Companion plugins with `uppy.getPlugin()`.\n */\n\n/*\n * UnknownSearchProviderPlugin can be any search Companion plugin (such as Unsplash).\n * As the plugins are passed around throughout Uppy we need a generic type for this.\n * It may seems like duplication, but this type safe. Changing the type of `title`\n * will error in the `SearchProvider` class of @uppy/companion-client and vice versa.\n *\n * Note that this is the *plugin* class, not a version of the `SearchProvider` class.\n * `SearchProvider` does operate on Companion plugins with `uppy.getPlugin()`.\n */\n\n// TODO: can we use namespaces in other plugins to populate this?\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\n\n// The user facing type for UppyOptions used in uppy.setOptions()\n\n/** `OmitFirstArg<typeof someArray>` is the type of the returned value of `someArray.slice(1)`. */\n\nconst defaultUploadState = {\n  totalProgress: 0,\n  allowNewUpload: true,\n  error: null,\n  recoveredState: null\n};\n\n/**\n * Uppy Core module.\n * Manages plugins, state updates, acts as an event bus,\n * adds/removes files and metadata.\n */\nvar _plugins = /*#__PURE__*/_classPrivateFieldLooseKey(\"plugins\");\nvar _restricter = /*#__PURE__*/_classPrivateFieldLooseKey(\"restricter\");\nvar _storeUnsubscribe = /*#__PURE__*/_classPrivateFieldLooseKey(\"storeUnsubscribe\");\nvar _emitter = /*#__PURE__*/_classPrivateFieldLooseKey(\"emitter\");\nvar _preProcessors = /*#__PURE__*/_classPrivateFieldLooseKey(\"preProcessors\");\nvar _uploaders = /*#__PURE__*/_classPrivateFieldLooseKey(\"uploaders\");\nvar _postProcessors = /*#__PURE__*/_classPrivateFieldLooseKey(\"postProcessors\");\nvar _informAndEmit = /*#__PURE__*/_classPrivateFieldLooseKey(\"informAndEmit\");\nvar _checkRequiredMetaFieldsOnFile = /*#__PURE__*/_classPrivateFieldLooseKey(\"checkRequiredMetaFieldsOnFile\");\nvar _checkRequiredMetaFields = /*#__PURE__*/_classPrivateFieldLooseKey(\"checkRequiredMetaFields\");\nvar _assertNewUploadAllowed = /*#__PURE__*/_classPrivateFieldLooseKey(\"assertNewUploadAllowed\");\nvar _transformFile = /*#__PURE__*/_classPrivateFieldLooseKey(\"transformFile\");\nvar _startIfAutoProceed = /*#__PURE__*/_classPrivateFieldLooseKey(\"startIfAutoProceed\");\nvar _checkAndUpdateFileState = /*#__PURE__*/_classPrivateFieldLooseKey(\"checkAndUpdateFileState\");\nvar _handleUploadProgress = /*#__PURE__*/_classPrivateFieldLooseKey(\"handleUploadProgress\");\nvar _updateTotalProgress = /*#__PURE__*/_classPrivateFieldLooseKey(\"updateTotalProgress\");\nvar _updateTotalProgressThrottled = /*#__PURE__*/_classPrivateFieldLooseKey(\"updateTotalProgressThrottled\");\nvar _calculateTotalProgress = /*#__PURE__*/_classPrivateFieldLooseKey(\"calculateTotalProgress\");\nvar _addListeners = /*#__PURE__*/_classPrivateFieldLooseKey(\"addListeners\");\nvar _updateOnlineStatus = /*#__PURE__*/_classPrivateFieldLooseKey(\"updateOnlineStatus\");\nvar _requestClientById = /*#__PURE__*/_classPrivateFieldLooseKey(\"requestClientById\");\nvar _createUpload = /*#__PURE__*/_classPrivateFieldLooseKey(\"createUpload\");\nvar _getUpload = /*#__PURE__*/_classPrivateFieldLooseKey(\"getUpload\");\nvar _removeUpload = /*#__PURE__*/_classPrivateFieldLooseKey(\"removeUpload\");\nvar _runUpload = /*#__PURE__*/_classPrivateFieldLooseKey(\"runUpload\");\nexport class Uppy {\n  /**\n   * Instantiate Uppy\n   */\n  constructor(_opts) {\n    /**\n     * Run an upload. This picks up where it left off in case the upload is being restored.\n     */\n    Object.defineProperty(this, _runUpload, {\n      value: _runUpload2\n    });\n    /**\n     * Remove an upload, eg. if it has been canceled or completed.\n     *\n     */\n    Object.defineProperty(this, _removeUpload, {\n      value: _removeUpload2\n    });\n    Object.defineProperty(this, _getUpload, {\n      value: _getUpload2\n    });\n    /**\n     * Create an upload for a bunch of files.\n     *\n     */\n    Object.defineProperty(this, _createUpload, {\n      value: _createUpload2\n    });\n    /**\n     * Registers listeners for all global actions, like:\n     * `error`, `file-removed`, `upload-progress`\n     */\n    Object.defineProperty(this, _addListeners, {\n      value: _addListeners2\n    });\n    Object.defineProperty(this, _calculateTotalProgress, {\n      value: _calculateTotalProgress2\n    });\n    Object.defineProperty(this, _updateTotalProgress, {\n      value: _updateTotalProgress2\n    });\n    Object.defineProperty(this, _checkAndUpdateFileState, {\n      value: _checkAndUpdateFileState2\n    });\n    // Schedule an upload if `autoProceed` is enabled.\n    Object.defineProperty(this, _startIfAutoProceed, {\n      value: _startIfAutoProceed2\n    });\n    /**\n     * Create a file state object based on user-provided `addFile()` options.\n     */\n    Object.defineProperty(this, _transformFile, {\n      value: _transformFile2\n    });\n    Object.defineProperty(this, _assertNewUploadAllowed, {\n      value: _assertNewUploadAllowed2\n    });\n    Object.defineProperty(this, _checkRequiredMetaFields, {\n      value: _checkRequiredMetaFields2\n    });\n    Object.defineProperty(this, _checkRequiredMetaFieldsOnFile, {\n      value: _checkRequiredMetaFieldsOnFile2\n    });\n    Object.defineProperty(this, _informAndEmit, {\n      value: _informAndEmit2\n    });\n    Object.defineProperty(this, _plugins, {\n      writable: true,\n      value: Object.create(null)\n    });\n    Object.defineProperty(this, _restricter, {\n      writable: true,\n      value: void 0\n    });\n    Object.defineProperty(this, _storeUnsubscribe, {\n      writable: true,\n      value: void 0\n    });\n    Object.defineProperty(this, _emitter, {\n      writable: true,\n      value: ee()\n    });\n    Object.defineProperty(this, _preProcessors, {\n      writable: true,\n      value: new Set()\n    });\n    Object.defineProperty(this, _uploaders, {\n      writable: true,\n      value: new Set()\n    });\n    Object.defineProperty(this, _postProcessors, {\n      writable: true,\n      value: new Set()\n    });\n    this.scheduledAutoProceed = null;\n    this.wasOffline = false;\n    Object.defineProperty(this, _handleUploadProgress, {\n      writable: true,\n      value: (file, progress) => {\n        const fileInState = file ? this.getFile(file.id) : undefined;\n        if (file == null || !fileInState) {\n          this.log(`Not setting progress for a file that has been removed: ${file == null ? void 0 : file.id}`);\n          return;\n        }\n        if (fileInState.progress.percentage === 100) {\n          this.log(`Not setting progress for a file that has been already uploaded: ${file.id}`);\n          return;\n        }\n        const newProgress = {\n          bytesTotal: progress.bytesTotal,\n          // bytesTotal may be null or zero; in that case we can't divide by it\n          percentage: progress.bytesTotal != null && Number.isFinite(progress.bytesTotal) && progress.bytesTotal > 0 ? Math.round(progress.bytesUploaded / progress.bytesTotal * 100) : undefined\n        };\n        if (fileInState.progress.uploadStarted != null) {\n          this.setFileState(file.id, {\n            progress: {\n              ...fileInState.progress,\n              ...newProgress,\n              bytesUploaded: progress.bytesUploaded\n            }\n          });\n        } else {\n          this.setFileState(file.id, {\n            progress: {\n              ...fileInState.progress,\n              ...newProgress\n            }\n          });\n        }\n        _classPrivateFieldLooseBase(this, _updateTotalProgressThrottled)[_updateTotalProgressThrottled]();\n      }\n    });\n    // ___Why throttle at 500ms?\n    //    - We must throttle at >250ms for superfocus in Dashboard to work well\n    //    (because animation takes 0.25s, and we want to wait for all animations to be over before refocusing).\n    //    [Practical Check]: if thottle is at 100ms, then if you are uploading a file,\n    //    and click 'ADD MORE FILES', - focus won't activate in Firefox.\n    //    - We must throttle at around >500ms to avoid performance lags.\n    //    [Practical Check] Firefox, try to upload a big file for a prolonged period of time. Laptop will start to heat up.\n    Object.defineProperty(this, _updateTotalProgressThrottled, {\n      writable: true,\n      value: throttle(() => _classPrivateFieldLooseBase(this, _updateTotalProgress)[_updateTotalProgress](), 500, {\n        leading: true,\n        trailing: true\n      })\n    });\n    Object.defineProperty(this, _updateOnlineStatus, {\n      writable: true,\n      value: this.updateOnlineStatus.bind(this)\n    });\n    // We need to store request clients by a unique ID, so we can share RequestClient instances across files\n    // this allows us to do rate limiting and synchronous operations like refreshing provider tokens\n    // example: refreshing tokens: if each file has their own requestclient,\n    // we don't have any way to synchronize all requests in order to\n    // - block all requests\n    // - refresh the token\n    // - unblock all requests and allow them to run with a the new access token\n    // back when we had a requestclient per file, once an access token expired,\n    // all 6 files would go ahead and refresh the token at the same time\n    // (calling /refresh-token up to 6 times), which will probably fail for some providers\n    Object.defineProperty(this, _requestClientById, {\n      writable: true,\n      value: new Map()\n    });\n    this.defaultLocale = locale;\n    const defaultOptions = {\n      id: 'uppy',\n      autoProceed: false,\n      allowMultipleUploadBatches: true,\n      debug: false,\n      restrictions: defaultRestrictionOptions,\n      meta: {},\n      onBeforeFileAdded: (file, files) => !Object.hasOwn(files, file.id),\n      onBeforeUpload: files => files,\n      store: new DefaultStore(),\n      logger: justErrorsLogger,\n      infoTimeout: 5000\n    };\n    const merged = {\n      ...defaultOptions,\n      ..._opts\n    };\n    // Merge default options with the ones set by user,\n    // making sure to merge restrictions too\n    this.opts = {\n      ...merged,\n      restrictions: {\n        ...defaultOptions.restrictions,\n        ...(_opts && _opts.restrictions)\n      }\n    };\n\n    // Support debug: true for backwards-compatability, unless logger is set in opts\n    // opts instead of this.opts to avoid comparing objects — we set logger: justErrorsLogger in defaultOptions\n    if (_opts && _opts.logger && _opts.debug) {\n      this.log('You are using a custom `logger`, but also set `debug: true`, which uses built-in logger to output logs to console. Ignoring `debug: true` and using your custom `logger`.', 'warning');\n    } else if (_opts && _opts.debug) {\n      this.opts.logger = debugLogger;\n    }\n    this.log(`Using Core v${Uppy.VERSION}`);\n    this.i18nInit();\n    this.store = this.opts.store;\n    this.setState({\n      ...defaultUploadState,\n      plugins: {},\n      files: {},\n      currentUploads: {},\n      capabilities: {\n        uploadProgress: supportsUploadProgress(),\n        individualCancellation: true,\n        resumableUploads: false\n      },\n      meta: {\n        ...this.opts.meta\n      },\n      info: []\n    });\n    _classPrivateFieldLooseBase(this, _restricter)[_restricter] = new Restricter(() => this.opts, () => this.i18n);\n    _classPrivateFieldLooseBase(this, _storeUnsubscribe)[_storeUnsubscribe] = this.store.subscribe((prevState, nextState, patch) => {\n      this.emit('state-update', prevState, nextState, patch);\n      this.updateAll(nextState);\n    });\n\n    // Exposing uppy object on window for debugging and testing\n    if (this.opts.debug && typeof window !== 'undefined') {\n      // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n      // @ts-ignore Mutating the global object for debug purposes\n      window[this.opts.id] = this;\n    }\n    _classPrivateFieldLooseBase(this, _addListeners)[_addListeners]();\n  }\n  emit(event) {\n    for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n      args[_key - 1] = arguments[_key];\n    }\n    _classPrivateFieldLooseBase(this, _emitter)[_emitter].emit(event, ...args);\n  }\n  on(event, callback) {\n    _classPrivateFieldLooseBase(this, _emitter)[_emitter].on(event, callback);\n    return this;\n  }\n  once(event, callback) {\n    _classPrivateFieldLooseBase(this, _emitter)[_emitter].once(event, callback);\n    return this;\n  }\n  off(event, callback) {\n    _classPrivateFieldLooseBase(this, _emitter)[_emitter].off(event, callback);\n    return this;\n  }\n\n  /**\n   * Iterate on all plugins and run `update` on them.\n   * Called each time state changes.\n   *\n   */\n  updateAll(state) {\n    this.iteratePlugins(plugin => {\n      plugin.update(state);\n    });\n  }\n\n  /**\n   * Updates state with a patch\n   */\n  setState(patch) {\n    this.store.setState(patch);\n  }\n\n  /**\n   * Returns current state.\n   */\n  getState() {\n    return this.store.getState();\n  }\n  patchFilesState(filesWithNewState) {\n    const existingFilesState = this.getState().files;\n    this.setState({\n      files: {\n        ...existingFilesState,\n        ...Object.fromEntries(Object.entries(filesWithNewState).map(_ref => {\n          let [fileID, newFileState] = _ref;\n          return [fileID, {\n            ...existingFilesState[fileID],\n            ...newFileState\n          }];\n        }))\n      }\n    });\n  }\n\n  /**\n   * Shorthand to set state for a specific file.\n   */\n  setFileState(fileID, state) {\n    if (!this.getState().files[fileID]) {\n      throw new Error(`Can’t set state for ${fileID} (the file could have been removed)`);\n    }\n    this.patchFilesState({\n      [fileID]: state\n    });\n  }\n  i18nInit() {\n    const onMissingKey = key => this.log(`Missing i18n string: ${key}`, 'error');\n    const translator = new Translator([this.defaultLocale, this.opts.locale], {\n      onMissingKey\n    });\n    this.i18n = translator.translate.bind(translator);\n    this.i18nArray = translator.translateArray.bind(translator);\n    this.locale = translator.locale;\n  }\n  setOptions(newOpts) {\n    this.opts = {\n      ...this.opts,\n      ...newOpts,\n      restrictions: {\n        ...this.opts.restrictions,\n        ...(newOpts == null ? void 0 : newOpts.restrictions)\n      }\n    };\n    if (newOpts.meta) {\n      this.setMeta(newOpts.meta);\n    }\n    this.i18nInit();\n    if (newOpts.locale) {\n      this.iteratePlugins(plugin => {\n        plugin.setOptions(newOpts);\n      });\n    }\n\n    // Note: this is not the preact `setState`, it's an internal function that has the same name.\n    this.setState(undefined); // so that UI re-renders with new options\n  }\n  resetProgress() {\n    const defaultProgress = {\n      percentage: 0,\n      bytesUploaded: false,\n      uploadComplete: false,\n      uploadStarted: null\n    };\n    const files = {\n      ...this.getState().files\n    };\n    const updatedFiles = Object.create(null);\n    Object.keys(files).forEach(fileID => {\n      updatedFiles[fileID] = {\n        ...files[fileID],\n        progress: {\n          ...files[fileID].progress,\n          ...defaultProgress\n        },\n        // @ts-expect-error these typed are inserted\n        // into the namespace in their respective packages\n        // but core isn't ware of those\n        tus: undefined,\n        transloadit: undefined\n      };\n    });\n    this.setState({\n      files: updatedFiles,\n      ...defaultUploadState\n    });\n  }\n  clear() {\n    const {\n      capabilities,\n      currentUploads\n    } = this.getState();\n    if (Object.keys(currentUploads).length > 0 && !capabilities.individualCancellation) {\n      throw new Error('The installed uploader plugin does not allow removing files during an upload.');\n    }\n    this.setState({\n      ...defaultUploadState,\n      files: {}\n    });\n  }\n  addPreProcessor(fn) {\n    _classPrivateFieldLooseBase(this, _preProcessors)[_preProcessors].add(fn);\n  }\n  removePreProcessor(fn) {\n    return _classPrivateFieldLooseBase(this, _preProcessors)[_preProcessors].delete(fn);\n  }\n  addPostProcessor(fn) {\n    _classPrivateFieldLooseBase(this, _postProcessors)[_postProcessors].add(fn);\n  }\n  removePostProcessor(fn) {\n    return _classPrivateFieldLooseBase(this, _postProcessors)[_postProcessors].delete(fn);\n  }\n  addUploader(fn) {\n    _classPrivateFieldLooseBase(this, _uploaders)[_uploaders].add(fn);\n  }\n  removeUploader(fn) {\n    return _classPrivateFieldLooseBase(this, _uploaders)[_uploaders].delete(fn);\n  }\n  setMeta(data) {\n    const updatedMeta = {\n      ...this.getState().meta,\n      ...data\n    };\n    const updatedFiles = {\n      ...this.getState().files\n    };\n    Object.keys(updatedFiles).forEach(fileID => {\n      updatedFiles[fileID] = {\n        ...updatedFiles[fileID],\n        meta: {\n          ...updatedFiles[fileID].meta,\n          ...data\n        }\n      };\n    });\n    this.log('Adding metadata:');\n    this.log(data);\n    this.setState({\n      meta: updatedMeta,\n      files: updatedFiles\n    });\n  }\n  setFileMeta(fileID, data) {\n    const updatedFiles = {\n      ...this.getState().files\n    };\n    if (!updatedFiles[fileID]) {\n      this.log(`Was trying to set metadata for a file that has been removed: ${fileID}`);\n      return;\n    }\n    const newMeta = {\n      ...updatedFiles[fileID].meta,\n      ...data\n    };\n    updatedFiles[fileID] = {\n      ...updatedFiles[fileID],\n      meta: newMeta\n    };\n    this.setState({\n      files: updatedFiles\n    });\n  }\n\n  /**\n   * Get a file object.\n   */\n  getFile(fileID) {\n    return this.getState().files[fileID];\n  }\n\n  /**\n   * Get all files in an array.\n   */\n  getFiles() {\n    const {\n      files\n    } = this.getState();\n    return Object.values(files);\n  }\n  getFilesByIds(ids) {\n    return ids.map(id => this.getFile(id));\n  }\n  getObjectOfFilesPerState() {\n    const {\n      files: filesObject,\n      totalProgress,\n      error\n    } = this.getState();\n    const files = Object.values(filesObject);\n    const inProgressFiles = [];\n    const newFiles = [];\n    const startedFiles = [];\n    const uploadStartedFiles = [];\n    const pausedFiles = [];\n    const completeFiles = [];\n    const erroredFiles = [];\n    const inProgressNotPausedFiles = [];\n    const processingFiles = [];\n    for (const file of files) {\n      const {\n        progress\n      } = file;\n      if (!progress.uploadComplete && progress.uploadStarted) {\n        inProgressFiles.push(file);\n        if (!file.isPaused) {\n          inProgressNotPausedFiles.push(file);\n        }\n      }\n      if (!progress.uploadStarted) {\n        newFiles.push(file);\n      }\n      if (progress.uploadStarted || progress.preprocess || progress.postprocess) {\n        startedFiles.push(file);\n      }\n      if (progress.uploadStarted) {\n        uploadStartedFiles.push(file);\n      }\n      if (file.isPaused) {\n        pausedFiles.push(file);\n      }\n      if (progress.uploadComplete) {\n        completeFiles.push(file);\n      }\n      if (file.error) {\n        erroredFiles.push(file);\n      }\n      if (progress.preprocess || progress.postprocess) {\n        processingFiles.push(file);\n      }\n    }\n    return {\n      newFiles,\n      startedFiles,\n      uploadStartedFiles,\n      pausedFiles,\n      completeFiles,\n      erroredFiles,\n      inProgressFiles,\n      inProgressNotPausedFiles,\n      processingFiles,\n      isUploadStarted: uploadStartedFiles.length > 0,\n      isAllComplete: totalProgress === 100 && completeFiles.length === files.length && processingFiles.length === 0,\n      isAllErrored: !!error && erroredFiles.length === files.length,\n      isAllPaused: inProgressFiles.length !== 0 && pausedFiles.length === inProgressFiles.length,\n      isUploadInProgress: inProgressFiles.length > 0,\n      isSomeGhost: files.some(file => file.isGhost)\n    };\n  }\n  validateRestrictions(file, files) {\n    if (files === void 0) {\n      files = this.getFiles();\n    }\n    try {\n      _classPrivateFieldLooseBase(this, _restricter)[_restricter].validate(files, [file]);\n    } catch (err) {\n      return err;\n    }\n    return null;\n  }\n  validateSingleFile(file) {\n    try {\n      _classPrivateFieldLooseBase(this, _restricter)[_restricter].validateSingleFile(file);\n    } catch (err) {\n      return err.message;\n    }\n    return null;\n  }\n  validateAggregateRestrictions(files) {\n    const existingFiles = this.getFiles();\n    try {\n      _classPrivateFieldLooseBase(this, _restricter)[_restricter].validateAggregateRestrictions(existingFiles, files);\n    } catch (err) {\n      return err.message;\n    }\n    return null;\n  }\n  checkIfFileAlreadyExists(fileID) {\n    const {\n      files\n    } = this.getState();\n    if (files[fileID] && !files[fileID].isGhost) {\n      return true;\n    }\n    return false;\n  }\n  /**\n   * Add a new file to `state.files`. This will run `onBeforeFileAdded`,\n   * try to guess file type in a clever way, check file against restrictions,\n   * and start an upload if `autoProceed === true`.\n   */\n  addFile(file) {\n    _classPrivateFieldLooseBase(this, _assertNewUploadAllowed)[_assertNewUploadAllowed](file);\n    const {\n      nextFilesState,\n      validFilesToAdd,\n      errors\n    } = _classPrivateFieldLooseBase(this, _checkAndUpdateFileState)[_checkAndUpdateFileState]([file]);\n    const restrictionErrors = errors.filter(error => error.isRestriction);\n    _classPrivateFieldLooseBase(this, _informAndEmit)[_informAndEmit](restrictionErrors);\n    if (errors.length > 0) throw errors[0];\n    this.setState({\n      files: nextFilesState\n    });\n    const [firstValidFileToAdd] = validFilesToAdd;\n    this.emit('file-added', firstValidFileToAdd);\n    this.emit('files-added', validFilesToAdd);\n    this.log(`Added file: ${firstValidFileToAdd.name}, ${firstValidFileToAdd.id}, mime type: ${firstValidFileToAdd.type}`);\n    _classPrivateFieldLooseBase(this, _startIfAutoProceed)[_startIfAutoProceed]();\n    return firstValidFileToAdd.id;\n  }\n\n  /**\n   * Add multiple files to `state.files`. See the `addFile()` documentation.\n   *\n   * If an error occurs while adding a file, it is logged and the user is notified.\n   * This is good for UI plugins, but not for programmatic use.\n   * Programmatic users should usually still use `addFile()` on individual files.\n   */\n  addFiles(fileDescriptors) {\n    _classPrivateFieldLooseBase(this, _assertNewUploadAllowed)[_assertNewUploadAllowed]();\n    const {\n      nextFilesState,\n      validFilesToAdd,\n      errors\n    } = _classPrivateFieldLooseBase(this, _checkAndUpdateFileState)[_checkAndUpdateFileState](fileDescriptors);\n    const restrictionErrors = errors.filter(error => error.isRestriction);\n    _classPrivateFieldLooseBase(this, _informAndEmit)[_informAndEmit](restrictionErrors);\n    const nonRestrictionErrors = errors.filter(error => !error.isRestriction);\n    if (nonRestrictionErrors.length > 0) {\n      let message = 'Multiple errors occurred while adding files:\\n';\n      nonRestrictionErrors.forEach(subError => {\n        message += `\\n * ${subError.message}`;\n      });\n      this.info({\n        message: this.i18n('addBulkFilesFailed', {\n          smart_count: nonRestrictionErrors.length\n        }),\n        details: message\n      }, 'error', this.opts.infoTimeout);\n      if (typeof AggregateError === 'function') {\n        throw new AggregateError(nonRestrictionErrors, message);\n      } else {\n        const err = new Error(message);\n        // @ts-expect-error fallback when AggregateError is not available\n        err.errors = nonRestrictionErrors;\n        throw err;\n      }\n    }\n\n    // OK, we haven't thrown an error, we can start updating state and emitting events now:\n\n    this.setState({\n      files: nextFilesState\n    });\n    validFilesToAdd.forEach(file => {\n      this.emit('file-added', file);\n    });\n    this.emit('files-added', validFilesToAdd);\n    if (validFilesToAdd.length > 5) {\n      this.log(`Added batch of ${validFilesToAdd.length} files`);\n    } else {\n      Object.values(validFilesToAdd).forEach(file => {\n        this.log(`Added file: ${file.name}\\n id: ${file.id}\\n type: ${file.type}`);\n      });\n    }\n    if (validFilesToAdd.length > 0) {\n      _classPrivateFieldLooseBase(this, _startIfAutoProceed)[_startIfAutoProceed]();\n    }\n  }\n  removeFiles(fileIDs) {\n    const {\n      files,\n      currentUploads\n    } = this.getState();\n    const updatedFiles = {\n      ...files\n    };\n    const updatedUploads = {\n      ...currentUploads\n    };\n    const removedFiles = Object.create(null);\n    fileIDs.forEach(fileID => {\n      if (files[fileID]) {\n        removedFiles[fileID] = files[fileID];\n        delete updatedFiles[fileID];\n      }\n    });\n\n    // Remove files from the `fileIDs` list in each upload.\n    function fileIsNotRemoved(uploadFileID) {\n      return removedFiles[uploadFileID] === undefined;\n    }\n    Object.keys(updatedUploads).forEach(uploadID => {\n      const newFileIDs = currentUploads[uploadID].fileIDs.filter(fileIsNotRemoved);\n\n      // Remove the upload if no files are associated with it anymore.\n      if (newFileIDs.length === 0) {\n        delete updatedUploads[uploadID];\n        return;\n      }\n      const {\n        capabilities\n      } = this.getState();\n      if (newFileIDs.length !== currentUploads[uploadID].fileIDs.length && !capabilities.individualCancellation) {\n        throw new Error('The installed uploader plugin does not allow removing files during an upload.');\n      }\n      updatedUploads[uploadID] = {\n        ...currentUploads[uploadID],\n        fileIDs: newFileIDs\n      };\n    });\n    const stateUpdate = {\n      currentUploads: updatedUploads,\n      files: updatedFiles\n    };\n\n    // If all files were removed - allow new uploads,\n    // and clear recoveredState\n    if (Object.keys(updatedFiles).length === 0) {\n      stateUpdate.allowNewUpload = true;\n      stateUpdate.error = null;\n      stateUpdate.recoveredState = null;\n    }\n    this.setState(stateUpdate);\n    _classPrivateFieldLooseBase(this, _updateTotalProgressThrottled)[_updateTotalProgressThrottled]();\n    const removedFileIDs = Object.keys(removedFiles);\n    removedFileIDs.forEach(fileID => {\n      this.emit('file-removed', removedFiles[fileID]);\n    });\n    if (removedFileIDs.length > 5) {\n      this.log(`Removed ${removedFileIDs.length} files`);\n    } else {\n      this.log(`Removed files: ${removedFileIDs.join(', ')}`);\n    }\n  }\n  removeFile(fileID) {\n    this.removeFiles([fileID]);\n  }\n  pauseResume(fileID) {\n    if (!this.getState().capabilities.resumableUploads || this.getFile(fileID).progress.uploadComplete) {\n      return undefined;\n    }\n    const file = this.getFile(fileID);\n    const wasPaused = file.isPaused || false;\n    const isPaused = !wasPaused;\n    this.setFileState(fileID, {\n      isPaused\n    });\n    this.emit('upload-pause', file, isPaused);\n    return isPaused;\n  }\n  pauseAll() {\n    const updatedFiles = {\n      ...this.getState().files\n    };\n    const inProgressUpdatedFiles = Object.keys(updatedFiles).filter(file => {\n      return !updatedFiles[file].progress.uploadComplete && updatedFiles[file].progress.uploadStarted;\n    });\n    inProgressUpdatedFiles.forEach(file => {\n      const updatedFile = {\n        ...updatedFiles[file],\n        isPaused: true\n      };\n      updatedFiles[file] = updatedFile;\n    });\n    this.setState({\n      files: updatedFiles\n    });\n    this.emit('pause-all');\n  }\n  resumeAll() {\n    const updatedFiles = {\n      ...this.getState().files\n    };\n    const inProgressUpdatedFiles = Object.keys(updatedFiles).filter(file => {\n      return !updatedFiles[file].progress.uploadComplete && updatedFiles[file].progress.uploadStarted;\n    });\n    inProgressUpdatedFiles.forEach(file => {\n      const updatedFile = {\n        ...updatedFiles[file],\n        isPaused: false,\n        error: null\n      };\n      updatedFiles[file] = updatedFile;\n    });\n    this.setState({\n      files: updatedFiles\n    });\n    this.emit('resume-all');\n  }\n  retryAll() {\n    const updatedFiles = {\n      ...this.getState().files\n    };\n    const filesToRetry = Object.keys(updatedFiles).filter(file => {\n      return updatedFiles[file].error;\n    });\n    filesToRetry.forEach(file => {\n      const updatedFile = {\n        ...updatedFiles[file],\n        isPaused: false,\n        error: null\n      };\n      updatedFiles[file] = updatedFile;\n    });\n    this.setState({\n      files: updatedFiles,\n      error: null\n    });\n    this.emit('retry-all', Object.values(updatedFiles));\n    if (filesToRetry.length === 0) {\n      return Promise.resolve({\n        successful: [],\n        failed: []\n      });\n    }\n    const uploadID = _classPrivateFieldLooseBase(this, _createUpload)[_createUpload](filesToRetry, {\n      forceAllowNewUpload: true // create new upload even if allowNewUpload: false\n    });\n    return _classPrivateFieldLooseBase(this, _runUpload)[_runUpload](uploadID);\n  }\n  cancelAll() {\n    this.emit('cancel-all');\n    const {\n      files\n    } = this.getState();\n    const fileIDs = Object.keys(files);\n    if (fileIDs.length) {\n      this.removeFiles(fileIDs);\n    }\n    this.setState(defaultUploadState);\n  }\n  retryUpload(fileID) {\n    this.setFileState(fileID, {\n      error: null,\n      isPaused: false\n    });\n    this.emit('upload-retry', this.getFile(fileID));\n    const uploadID = _classPrivateFieldLooseBase(this, _createUpload)[_createUpload]([fileID], {\n      forceAllowNewUpload: true // create new upload even if allowNewUpload: false\n    });\n    return _classPrivateFieldLooseBase(this, _runUpload)[_runUpload](uploadID);\n  }\n  logout() {\n    this.iteratePlugins(plugin => {\n      var _provider;\n      ;\n      (_provider = plugin.provider) == null || _provider.logout == null || _provider.logout();\n    });\n  }\n  // eslint-disable-next-line class-methods-use-this, @typescript-eslint/explicit-module-boundary-types\n  [Symbol.for('uppy test: updateTotalProgress')]() {\n    return _classPrivateFieldLooseBase(this, _updateTotalProgress)[_updateTotalProgress]();\n  }\n  updateOnlineStatus() {\n    var _window$navigator$onL;\n    const online = (_window$navigator$onL = window.navigator.onLine) != null ? _window$navigator$onL : true;\n    if (!online) {\n      this.emit('is-offline');\n      this.info(this.i18n('noInternetConnection'), 'error', 0);\n      this.wasOffline = true;\n    } else {\n      this.emit('is-online');\n      if (this.wasOffline) {\n        this.emit('back-online');\n        this.info(this.i18n('connectedToInternet'), 'success', 3000);\n        this.wasOffline = false;\n      }\n    }\n  }\n  getID() {\n    return this.opts.id;\n  }\n\n  /**\n   * Registers a plugin with Core.\n   */\n  use(Plugin) {\n    if (typeof Plugin !== 'function') {\n      const msg = `Expected a plugin class, but got ${Plugin === null ? 'null' : typeof Plugin}.` + ' Please verify that the plugin was imported and spelled correctly.';\n      throw new TypeError(msg);\n    }\n\n    // Instantiate\n    for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n      args[_key2 - 1] = arguments[_key2];\n    }\n    const plugin = new Plugin(this, ...args);\n    const pluginId = plugin.id;\n    if (!pluginId) {\n      throw new Error('Your plugin must have an id');\n    }\n    if (!plugin.type) {\n      throw new Error('Your plugin must have a type');\n    }\n    const existsPluginAlready = this.getPlugin(pluginId);\n    if (existsPluginAlready) {\n      const msg = `Already found a plugin named '${existsPluginAlready.id}'. ` + `Tried to use: '${pluginId}'.\\n` + 'Uppy plugins must have unique `id` options.';\n      throw new Error(msg);\n    }\n\n    // @ts-expect-error does exist\n    if (Plugin.VERSION) {\n      // @ts-expect-error does exist\n      this.log(`Using ${pluginId} v${Plugin.VERSION}`);\n    }\n    if (plugin.type in _classPrivateFieldLooseBase(this, _plugins)[_plugins]) {\n      _classPrivateFieldLooseBase(this, _plugins)[_plugins][plugin.type].push(plugin);\n    } else {\n      _classPrivateFieldLooseBase(this, _plugins)[_plugins][plugin.type] = [plugin];\n    }\n    plugin.install();\n    this.emit('plugin-added', plugin);\n    return this;\n  }\n\n  /**\n   * Find one Plugin by name.\n   */\n  getPlugin(id) {\n    for (const plugins of Object.values(_classPrivateFieldLooseBase(this, _plugins)[_plugins])) {\n      const foundPlugin = plugins.find(plugin => plugin.id === id);\n      if (foundPlugin != null) return foundPlugin;\n    }\n    return undefined;\n  }\n  [Symbol.for('uppy test: getPlugins')](type) {\n    return _classPrivateFieldLooseBase(this, _plugins)[_plugins][type];\n  }\n\n  /**\n   * Iterate through all `use`d plugins.\n   *\n   */\n  iteratePlugins(method) {\n    Object.values(_classPrivateFieldLooseBase(this, _plugins)[_plugins]).flat(1).forEach(method);\n  }\n\n  /**\n   * Uninstall and remove a plugin.\n   *\n   * @param {object} instance The plugin instance to remove.\n   */\n  removePlugin(instance) {\n    this.log(`Removing plugin ${instance.id}`);\n    this.emit('plugin-remove', instance);\n    if (instance.uninstall) {\n      instance.uninstall();\n    }\n    const list = _classPrivateFieldLooseBase(this, _plugins)[_plugins][instance.type];\n    // list.indexOf failed here, because Vue3 converted the plugin instance\n    // to a Proxy object, which failed the strict comparison test:\n    // obj !== objProxy\n    const index = list.findIndex(item => item.id === instance.id);\n    if (index !== -1) {\n      list.splice(index, 1);\n    }\n    const state = this.getState();\n    const updatedState = {\n      plugins: {\n        ...state.plugins,\n        [instance.id]: undefined\n      }\n    };\n    this.setState(updatedState);\n  }\n\n  /**\n   * Uninstall all plugins and close down this Uppy instance.\n   */\n  destroy() {\n    this.log(`Closing Uppy instance ${this.opts.id}: removing all files and uninstalling plugins`);\n    this.cancelAll();\n    _classPrivateFieldLooseBase(this, _storeUnsubscribe)[_storeUnsubscribe]();\n    this.iteratePlugins(plugin => {\n      this.removePlugin(plugin);\n    });\n    if (typeof window !== 'undefined' && window.removeEventListener) {\n      window.removeEventListener('online', _classPrivateFieldLooseBase(this, _updateOnlineStatus)[_updateOnlineStatus]);\n      window.removeEventListener('offline', _classPrivateFieldLooseBase(this, _updateOnlineStatus)[_updateOnlineStatus]);\n    }\n  }\n  hideInfo() {\n    const {\n      info\n    } = this.getState();\n    this.setState({\n      info: info.slice(1)\n    });\n    this.emit('info-hidden');\n  }\n\n  /**\n   * Set info message in `state.info`, so that UI plugins like `Informer`\n   * can display the message.\n   */\n  info(message, type, duration) {\n    if (type === void 0) {\n      type = 'info';\n    }\n    if (duration === void 0) {\n      duration = 3000;\n    }\n    const isComplexMessage = typeof message === 'object';\n    this.setState({\n      info: [...this.getState().info, {\n        type,\n        message: isComplexMessage ? message.message : message,\n        details: isComplexMessage ? message.details : null\n      }]\n    });\n    setTimeout(() => this.hideInfo(), duration);\n    this.emit('info-visible');\n  }\n\n  /**\n   * Passes messages to a function, provided in `opts.logger`.\n   * If `opts.logger: Uppy.debugLogger` or `opts.debug: true`, logs to the browser console.\n   */\n  log(message, type) {\n    const {\n      logger\n    } = this.opts;\n    switch (type) {\n      case 'error':\n        logger.error(message);\n        break;\n      case 'warning':\n        logger.warn(message);\n        break;\n      default:\n        logger.debug(message);\n        break;\n    }\n  }\n  registerRequestClient(id, client) {\n    _classPrivateFieldLooseBase(this, _requestClientById)[_requestClientById].set(id, client);\n  }\n\n  /** @protected */\n  getRequestClientForFile(file) {\n    if (!file.remote) throw new Error(`Tried to get RequestClient for a non-remote file ${file.id}`);\n    const requestClient = _classPrivateFieldLooseBase(this, _requestClientById)[_requestClientById].get(file.remote.requestClientId);\n    if (requestClient == null) throw new Error(`requestClientId \"${file.remote.requestClientId}\" not registered for file \"${file.id}\"`);\n    return requestClient;\n  }\n\n  /**\n   * Restore an upload by its ID.\n   */\n  restore(uploadID) {\n    this.log(`Core: attempting to restore upload \"${uploadID}\"`);\n    if (!this.getState().currentUploads[uploadID]) {\n      _classPrivateFieldLooseBase(this, _removeUpload)[_removeUpload](uploadID);\n      return Promise.reject(new Error('Nonexistent upload'));\n    }\n    return _classPrivateFieldLooseBase(this, _runUpload)[_runUpload](uploadID);\n  }\n  [Symbol.for('uppy test: createUpload')]() {\n    // @ts-expect-error https://github.com/microsoft/TypeScript/issues/47595\n    return _classPrivateFieldLooseBase(this, _createUpload)[_createUpload](...arguments);\n  }\n  /**\n   * Add data to an upload's result object.\n   */\n  addResultData(uploadID, data) {\n    if (!_classPrivateFieldLooseBase(this, _getUpload)[_getUpload](uploadID)) {\n      this.log(`Not setting result for an upload that has been removed: ${uploadID}`);\n      return;\n    }\n    const {\n      currentUploads\n    } = this.getState();\n    const currentUpload = {\n      ...currentUploads[uploadID],\n      result: {\n        ...currentUploads[uploadID].result,\n        ...data\n      }\n    };\n    this.setState({\n      currentUploads: {\n        ...currentUploads,\n        [uploadID]: currentUpload\n      }\n    });\n  }\n  /**\n   * Start an upload for all the files that are not currently being uploaded.\n   */\n  async upload() {\n    var _classPrivateFieldLoo;\n    if (!((_classPrivateFieldLoo = _classPrivateFieldLooseBase(this, _plugins)[_plugins]['uploader']) != null && _classPrivateFieldLoo.length)) {\n      this.log('No uploader type plugins are used', 'warning');\n    }\n    let {\n      files\n    } = this.getState();\n\n    // Check if we have files with errors (for retry behavior)\n    const filesToRetry = Object.keys(files).filter(fileID => files[fileID].error);\n    const hasFilesToRetry = filesToRetry.length > 0;\n\n    // If we have files to retry, behave like retryAll() and ignore any new files\n    if (hasFilesToRetry) {\n      const updatedFiles = {\n        ...files\n      };\n      filesToRetry.forEach(fileID => {\n        updatedFiles[fileID] = {\n          ...updatedFiles[fileID],\n          isPaused: false,\n          error: null\n        };\n      });\n      this.setState({\n        files: updatedFiles,\n        error: null\n      });\n      this.emit('retry-all', Object.values(updatedFiles));\n      const uploadID = _classPrivateFieldLooseBase(this, _createUpload)[_createUpload](filesToRetry, {\n        forceAllowNewUpload: true // create new upload even if allowNewUpload: false\n      });\n      const result = await _classPrivateFieldLooseBase(this, _runUpload)[_runUpload](uploadID);\n      const hasNewFiles = this.getFiles().filter(file => file.progress.uploadStarted == null);\n      if (!hasNewFiles) {\n        return result;\n      }\n      files = this.getState().files;\n    }\n\n    // If no files to retry, proceed with original upload() behavior for new files\n    const onBeforeUploadResult = this.opts.onBeforeUpload(files);\n    if (onBeforeUploadResult === false) {\n      return Promise.reject(new Error('Not starting the upload because onBeforeUpload returned false'));\n    }\n    if (onBeforeUploadResult && typeof onBeforeUploadResult === 'object') {\n      files = onBeforeUploadResult;\n      // Updating files in state, because uploader plugins receive file IDs,\n      // and then fetch the actual file object from state\n      this.setState({\n        files\n      });\n    }\n    return Promise.resolve().then(() => _classPrivateFieldLooseBase(this, _restricter)[_restricter].validateMinNumberOfFiles(files)).catch(err => {\n      _classPrivateFieldLooseBase(this, _informAndEmit)[_informAndEmit]([err]);\n      throw err;\n    }).then(() => {\n      if (!_classPrivateFieldLooseBase(this, _checkRequiredMetaFields)[_checkRequiredMetaFields](files)) {\n        throw new RestrictionError(this.i18n('missingRequiredMetaField'));\n      }\n    }).catch(err => {\n      // Doing this in a separate catch because we already emited and logged\n      // all the errors in `checkRequiredMetaFields` so we only throw a generic\n      // missing fields error here.\n      throw err;\n    }).then(() => {\n      const {\n        currentUploads\n      } = this.getState();\n      // get a list of files that are currently assigned to uploads\n      const currentlyUploadingFiles = Object.values(currentUploads).flatMap(curr => curr.fileIDs);\n      const waitingFileIDs = [];\n      Object.keys(files).forEach(fileID => {\n        const file = this.getFile(fileID);\n        // if the file hasn't started uploading and hasn't already been assigned to an upload..\n        if (!file.progress.uploadStarted && currentlyUploadingFiles.indexOf(fileID) === -1) {\n          waitingFileIDs.push(file.id);\n        }\n      });\n      const uploadID = _classPrivateFieldLooseBase(this, _createUpload)[_createUpload](waitingFileIDs);\n      return _classPrivateFieldLooseBase(this, _runUpload)[_runUpload](uploadID);\n    }).catch(err => {\n      this.emit('error', err);\n      this.log(err, 'error');\n      throw err;\n    });\n  }\n}\nfunction _informAndEmit2(errors) {\n  for (const error of errors) {\n    if (error.isRestriction) {\n      this.emit('restriction-failed', error.file, error);\n    } else {\n      this.emit('error', error, error.file);\n    }\n    this.log(error, 'warning');\n  }\n  const userFacingErrors = errors.filter(error => error.isUserFacing);\n\n  // don't flood the user: only show the first 4 toasts\n  const maxNumToShow = 4;\n  const firstErrors = userFacingErrors.slice(0, maxNumToShow);\n  const additionalErrors = userFacingErrors.slice(maxNumToShow);\n  firstErrors.forEach(_ref2 => {\n    let {\n      message,\n      details = ''\n    } = _ref2;\n    this.info({\n      message,\n      details\n    }, 'error', this.opts.infoTimeout);\n  });\n  if (additionalErrors.length > 0) {\n    this.info({\n      message: this.i18n('additionalRestrictionsFailed', {\n        count: additionalErrors.length\n      })\n    });\n  }\n}\nfunction _checkRequiredMetaFieldsOnFile2(file) {\n  const {\n    missingFields,\n    error\n  } = _classPrivateFieldLooseBase(this, _restricter)[_restricter].getMissingRequiredMetaFields(file);\n  if (missingFields.length > 0) {\n    this.setFileState(file.id, {\n      missingRequiredMetaFields: missingFields\n    });\n    this.log(error.message);\n    this.emit('restriction-failed', file, error);\n    return false;\n  }\n  return true;\n}\nfunction _checkRequiredMetaFields2(files) {\n  let success = true;\n  for (const file of Object.values(files)) {\n    if (!_classPrivateFieldLooseBase(this, _checkRequiredMetaFieldsOnFile)[_checkRequiredMetaFieldsOnFile](file)) {\n      success = false;\n    }\n  }\n  return success;\n}\nfunction _assertNewUploadAllowed2(file) {\n  const {\n    allowNewUpload\n  } = this.getState();\n  if (allowNewUpload === false) {\n    const error = new RestrictionError(this.i18n('noMoreFilesAllowed'), {\n      file\n    });\n    _classPrivateFieldLooseBase(this, _informAndEmit)[_informAndEmit]([error]);\n    throw error;\n  }\n}\nfunction _transformFile2(fileDescriptorOrFile) {\n  // Uppy expects files in { name, type, size, data } format.\n  // If the actual File object is passed from input[type=file] or drag-drop,\n  // we normalize it to match Uppy file object\n  const file = fileDescriptorOrFile instanceof File ? {\n    name: fileDescriptorOrFile.name,\n    type: fileDescriptorOrFile.type,\n    size: fileDescriptorOrFile.size,\n    data: fileDescriptorOrFile\n  } : fileDescriptorOrFile;\n  const fileType = getFileType(file);\n  const fileName = getFileName(fileType, file);\n  const fileExtension = getFileNameAndExtension(fileName).extension;\n  const id = getSafeFileId(file, this.getID());\n  const meta = file.meta || {};\n  meta.name = fileName;\n  meta.type = fileType;\n\n  // `null` means the size is unknown.\n  const size = Number.isFinite(file.data.size) ? file.data.size : null;\n  return {\n    source: file.source || '',\n    id,\n    name: fileName,\n    extension: fileExtension || '',\n    meta: {\n      ...this.getState().meta,\n      ...meta\n    },\n    type: fileType,\n    data: file.data,\n    progress: {\n      percentage: 0,\n      bytesUploaded: false,\n      bytesTotal: size,\n      uploadComplete: false,\n      uploadStarted: null\n    },\n    size,\n    isGhost: false,\n    isRemote: file.isRemote || false,\n    remote: file.remote,\n    preview: file.preview\n  };\n}\nfunction _startIfAutoProceed2() {\n  if (this.opts.autoProceed && !this.scheduledAutoProceed) {\n    this.scheduledAutoProceed = setTimeout(() => {\n      this.scheduledAutoProceed = null;\n      this.upload().catch(err => {\n        if (!err.isRestriction) {\n          this.log(err.stack || err.message || err);\n        }\n      });\n    }, 4);\n  }\n}\nfunction _checkAndUpdateFileState2(filesToAdd) {\n  const {\n    files: existingFiles\n  } = this.getState();\n\n  // create a copy of the files object only once\n  const nextFilesState = {\n    ...existingFiles\n  };\n  const validFilesToAdd = [];\n  const errors = [];\n  for (const fileToAdd of filesToAdd) {\n    try {\n      var _existingFiles$newFil;\n      let newFile = _classPrivateFieldLooseBase(this, _transformFile)[_transformFile](fileToAdd);\n\n      // If a file has been recovered (Golden Retriever), but we were unable to recover its data (probably too large),\n      // users are asked to re-select these half-recovered files and then this method will be called again.\n      // In order to keep the progress, meta and everything else, we keep the existing file,\n      // but we replace `data`, and we remove `isGhost`, because the file is no longer a ghost now\n      const isGhost = (_existingFiles$newFil = existingFiles[newFile.id]) == null ? void 0 : _existingFiles$newFil.isGhost;\n      if (isGhost) {\n        const existingFileState = existingFiles[newFile.id];\n        newFile = {\n          ...existingFileState,\n          isGhost: false,\n          data: fileToAdd.data\n        };\n        this.log(`Replaced the blob in the restored ghost file: ${newFile.name}, ${newFile.id}`);\n      }\n      const onBeforeFileAddedResult = this.opts.onBeforeFileAdded(newFile, nextFilesState);\n      if (!onBeforeFileAddedResult && this.checkIfFileAlreadyExists(newFile.id)) {\n        var _newFile$name;\n        throw new RestrictionError(this.i18n('noDuplicates', {\n          fileName: (_newFile$name = newFile.name) != null ? _newFile$name : this.i18n('unnamed')\n        }), {\n          file: fileToAdd\n        });\n      }\n\n      // Pass through reselected files from Golden Retriever\n      if (onBeforeFileAddedResult === false && !isGhost) {\n        // Don’t show UI info for this error, as it should be done by the developer\n        throw new RestrictionError('Cannot add the file because onBeforeFileAdded returned false.', {\n          isUserFacing: false,\n          file: fileToAdd\n        });\n      } else if (typeof onBeforeFileAddedResult === 'object' && onBeforeFileAddedResult !== null) {\n        newFile = onBeforeFileAddedResult;\n      }\n      _classPrivateFieldLooseBase(this, _restricter)[_restricter].validateSingleFile(newFile);\n\n      // need to add it to the new local state immediately, so we can use the state to validate the next files too\n      nextFilesState[newFile.id] = newFile;\n      validFilesToAdd.push(newFile);\n    } catch (err) {\n      errors.push(err);\n    }\n  }\n  try {\n    // need to run this separately because it's much more slow, so if we run it inside the for-loop it will be very slow\n    // when many files are added\n    _classPrivateFieldLooseBase(this, _restricter)[_restricter].validateAggregateRestrictions(Object.values(existingFiles), validFilesToAdd);\n  } catch (err) {\n    errors.push(err);\n\n    // If we have any aggregate error, don't allow adding this batch\n    return {\n      nextFilesState: existingFiles,\n      validFilesToAdd: [],\n      errors\n    };\n  }\n  return {\n    nextFilesState,\n    validFilesToAdd,\n    errors\n  };\n}\nfunction _updateTotalProgress2() {\n  var _totalProgressPercent, _totalProgressPercent2;\n  const totalProgress = _classPrivateFieldLooseBase(this, _calculateTotalProgress)[_calculateTotalProgress]();\n  let totalProgressPercent = null;\n  if (totalProgress != null) {\n    totalProgressPercent = Math.round(totalProgress * 100);\n    if (totalProgressPercent > 100) totalProgressPercent = 100;else if (totalProgressPercent < 0) totalProgressPercent = 0;\n  }\n  this.emit('progress', (_totalProgressPercent = totalProgressPercent) != null ? _totalProgressPercent : 0);\n  this.setState({\n    totalProgress: (_totalProgressPercent2 = totalProgressPercent) != null ? _totalProgressPercent2 : 0\n  });\n}\nfunction _calculateTotalProgress2() {\n  // calculate total progress, using the number of files currently uploading,\n  // between 0 and 1 and sum of individual progress of each file\n  const files = this.getFiles();\n\n  // note: also includes files that have completed uploading:\n  const filesInProgress = files.filter(file => {\n    return file.progress.uploadStarted || file.progress.preprocess || file.progress.postprocess;\n  });\n  if (filesInProgress.length === 0) {\n    return 0;\n  }\n  if (filesInProgress.every(file => file.progress.uploadComplete)) {\n    // If every uploading file is complete, and we're still getting progress, it probably means\n    // there's a bug somewhere in some progress reporting code (maybe not even our code)\n    // and we're still getting progress, so let's just assume it means a 100% progress\n    return 1;\n  }\n  const isSizedFile = file => file.progress.bytesTotal != null && file.progress.bytesTotal !== 0;\n  const sizedFilesInProgress = filesInProgress.filter(isSizedFile);\n  const unsizedFilesInProgress = filesInProgress.filter(file => !isSizedFile(file));\n  if (sizedFilesInProgress.every(file => file.progress.uploadComplete) && unsizedFilesInProgress.length > 0 && !unsizedFilesInProgress.every(file => file.progress.uploadComplete)) {\n    // we are done with uploading all files of known size, however\n    // there is at least one file with unknown size still uploading,\n    // and we cannot say anything about their progress\n    // In any case, return null because it doesn't make any sense to show a progress\n    return null;\n  }\n  const totalFilesSize = sizedFilesInProgress.reduce((acc, file) => {\n    var _file$progress$bytesT;\n    return acc + ((_file$progress$bytesT = file.progress.bytesTotal) != null ? _file$progress$bytesT : 0);\n  }, 0);\n  const totalUploadedSize = sizedFilesInProgress.reduce((acc, file) => acc + (file.progress.bytesUploaded || 0), 0);\n  return totalFilesSize === 0 ? 0 : totalUploadedSize / totalFilesSize;\n}\nfunction _addListeners2() {\n  // Type inference only works for inline functions so we have to type it again\n  const errorHandler = (error, file, response) => {\n    let errorMsg = error.message || 'Unknown error';\n    if (error.details) {\n      errorMsg += ` ${error.details}`;\n    }\n    this.setState({\n      error: errorMsg\n    });\n    if (file != null && file.id in this.getState().files) {\n      this.setFileState(file.id, {\n        error: errorMsg,\n        response\n      });\n    }\n  };\n  this.on('error', errorHandler);\n  this.on('upload-error', (file, error, response) => {\n    errorHandler(error, file, response);\n    if (typeof error === 'object' && error.message) {\n      var _file$name;\n      this.log(error.message, 'error');\n      const newError = new Error(this.i18n('failedToUpload', {\n        file: (_file$name = file == null ? void 0 : file.name) != null ? _file$name : ''\n      })); // we may want a new custom error here\n      newError.isUserFacing = true; // todo maybe don't do this with all errors?\n      newError.details = error.message;\n      if (error.details) {\n        newError.details += ` ${error.details}`;\n      }\n      _classPrivateFieldLooseBase(this, _informAndEmit)[_informAndEmit]([newError]);\n    } else {\n      _classPrivateFieldLooseBase(this, _informAndEmit)[_informAndEmit]([error]);\n    }\n  });\n  let uploadStalledWarningRecentlyEmitted = null;\n  this.on('upload-stalled', (error, files) => {\n    const {\n      message\n    } = error;\n    const details = files.map(file => file.meta.name).join(', ');\n    if (!uploadStalledWarningRecentlyEmitted) {\n      this.info({\n        message,\n        details\n      }, 'warning', this.opts.infoTimeout);\n      uploadStalledWarningRecentlyEmitted = setTimeout(() => {\n        uploadStalledWarningRecentlyEmitted = null;\n      }, this.opts.infoTimeout);\n    }\n    this.log(`${message} ${details}`.trim(), 'warning');\n  });\n  this.on('upload', () => {\n    this.setState({\n      error: null\n    });\n  });\n  const onUploadStarted = files => {\n    const filesFiltered = files.filter(file => {\n      const exists = file != null && this.getFile(file.id);\n      if (!exists) this.log(`Not setting progress for a file that has been removed: ${file == null ? void 0 : file.id}`);\n      return exists;\n    });\n    const filesState = Object.fromEntries(filesFiltered.map(file => [file.id, {\n      progress: {\n        uploadStarted: Date.now(),\n        uploadComplete: false,\n        bytesUploaded: 0,\n        bytesTotal: file.size\n      }\n    }]));\n    this.patchFilesState(filesState);\n  };\n  this.on('upload-start', onUploadStarted);\n  this.on('upload-progress', _classPrivateFieldLooseBase(this, _handleUploadProgress)[_handleUploadProgress]);\n  this.on('upload-success', (file, uploadResp) => {\n    if (file == null || !this.getFile(file.id)) {\n      this.log(`Not setting progress for a file that has been removed: ${file == null ? void 0 : file.id}`);\n      return;\n    }\n    const currentProgress = this.getFile(file.id).progress;\n    this.setFileState(file.id, {\n      progress: {\n        ...currentProgress,\n        postprocess: _classPrivateFieldLooseBase(this, _postProcessors)[_postProcessors].size > 0 ? {\n          mode: 'indeterminate'\n        } : undefined,\n        uploadComplete: true,\n        percentage: 100,\n        bytesUploaded: currentProgress.bytesTotal\n      },\n      response: uploadResp,\n      uploadURL: uploadResp.uploadURL,\n      isPaused: false\n    });\n\n    // Remote providers sometimes don't tell us the file size,\n    // but we can know how many bytes we uploaded once the upload is complete.\n    if (file.size == null) {\n      this.setFileState(file.id, {\n        size: uploadResp.bytesUploaded || currentProgress.bytesTotal\n      });\n    }\n    _classPrivateFieldLooseBase(this, _updateTotalProgressThrottled)[_updateTotalProgressThrottled]();\n  });\n  this.on('preprocess-progress', (file, progress) => {\n    if (file == null || !this.getFile(file.id)) {\n      this.log(`Not setting progress for a file that has been removed: ${file == null ? void 0 : file.id}`);\n      return;\n    }\n    this.setFileState(file.id, {\n      progress: {\n        ...this.getFile(file.id).progress,\n        preprocess: progress\n      }\n    });\n  });\n  this.on('preprocess-complete', file => {\n    if (file == null || !this.getFile(file.id)) {\n      this.log(`Not setting progress for a file that has been removed: ${file == null ? void 0 : file.id}`);\n      return;\n    }\n    const files = {\n      ...this.getState().files\n    };\n    files[file.id] = {\n      ...files[file.id],\n      progress: {\n        ...files[file.id].progress\n      }\n    };\n    delete files[file.id].progress.preprocess;\n    this.setState({\n      files\n    });\n  });\n  this.on('postprocess-progress', (file, progress) => {\n    if (file == null || !this.getFile(file.id)) {\n      this.log(`Not setting progress for a file that has been removed: ${file == null ? void 0 : file.id}`);\n      return;\n    }\n    this.setFileState(file.id, {\n      progress: {\n        ...this.getState().files[file.id].progress,\n        postprocess: progress\n      }\n    });\n  });\n  this.on('postprocess-complete', file => {\n    if (file == null || !this.getFile(file.id)) {\n      this.log(`Not setting progress for a file that has been removed: ${file == null ? void 0 : file.id}`);\n      return;\n    }\n    const files = {\n      ...this.getState().files\n    };\n    files[file.id] = {\n      ...files[file.id],\n      progress: {\n        ...files[file.id].progress\n      }\n    };\n    delete files[file.id].progress.postprocess;\n    this.setState({\n      files\n    });\n  });\n  this.on('restored', () => {\n    // Files may have changed--ensure progress is still accurate.\n    _classPrivateFieldLooseBase(this, _updateTotalProgressThrottled)[_updateTotalProgressThrottled]();\n  });\n\n  // @ts-expect-error should fix itself when dashboard it typed (also this doesn't belong here)\n  this.on('dashboard:file-edit-complete', file => {\n    if (file) {\n      _classPrivateFieldLooseBase(this, _checkRequiredMetaFieldsOnFile)[_checkRequiredMetaFieldsOnFile](file);\n    }\n  });\n\n  // show informer if offline\n  if (typeof window !== 'undefined' && window.addEventListener) {\n    window.addEventListener('online', _classPrivateFieldLooseBase(this, _updateOnlineStatus)[_updateOnlineStatus]);\n    window.addEventListener('offline', _classPrivateFieldLooseBase(this, _updateOnlineStatus)[_updateOnlineStatus]);\n    setTimeout(_classPrivateFieldLooseBase(this, _updateOnlineStatus)[_updateOnlineStatus], 3000);\n  }\n}\nfunction _createUpload2(fileIDs, opts) {\n  if (opts === void 0) {\n    opts = {};\n  }\n  // uppy.retryAll sets this to true — when retrying we want to ignore `allowNewUpload: false`\n  const {\n    forceAllowNewUpload = false\n  } = opts;\n  const {\n    allowNewUpload,\n    currentUploads\n  } = this.getState();\n  if (!allowNewUpload && !forceAllowNewUpload) {\n    throw new Error('Cannot create a new upload: already uploading.');\n  }\n  const uploadID = nanoid();\n  this.emit('upload', uploadID, this.getFilesByIds(fileIDs));\n  this.setState({\n    allowNewUpload: this.opts.allowMultipleUploadBatches !== false && this.opts.allowMultipleUploads !== false,\n    currentUploads: {\n      ...currentUploads,\n      [uploadID]: {\n        fileIDs,\n        step: 0,\n        result: {}\n      }\n    }\n  });\n  return uploadID;\n}\nfunction _getUpload2(uploadID) {\n  const {\n    currentUploads\n  } = this.getState();\n  return currentUploads[uploadID];\n}\nfunction _removeUpload2(uploadID) {\n  const currentUploads = {\n    ...this.getState().currentUploads\n  };\n  delete currentUploads[uploadID];\n  this.setState({\n    currentUploads\n  });\n}\nasync function _runUpload2(uploadID) {\n  const getCurrentUpload = () => {\n    const {\n      currentUploads\n    } = this.getState();\n    return currentUploads[uploadID];\n  };\n  let currentUpload = getCurrentUpload();\n  const steps = [..._classPrivateFieldLooseBase(this, _preProcessors)[_preProcessors], ..._classPrivateFieldLooseBase(this, _uploaders)[_uploaders], ..._classPrivateFieldLooseBase(this, _postProcessors)[_postProcessors]];\n  try {\n    for (let step = currentUpload.step || 0; step < steps.length; step++) {\n      if (!currentUpload) {\n        break;\n      }\n      const fn = steps[step];\n      this.setState({\n        currentUploads: {\n          ...this.getState().currentUploads,\n          [uploadID]: {\n            ...currentUpload,\n            step\n          }\n        }\n      });\n      const {\n        fileIDs\n      } = currentUpload;\n\n      // TODO give this the `updatedUpload` object as its only parameter maybe?\n      // Otherwise when more metadata may be added to the upload this would keep getting more parameters\n      await fn(fileIDs, uploadID);\n\n      // Update currentUpload value in case it was modified asynchronously.\n      currentUpload = getCurrentUpload();\n    }\n  } catch (err) {\n    _classPrivateFieldLooseBase(this, _removeUpload)[_removeUpload](uploadID);\n    throw err;\n  }\n\n  // Set result data.\n  if (currentUpload) {\n    // Mark postprocessing step as complete if necessary; this addresses a case where we might get\n    // stuck in the postprocessing UI while the upload is fully complete.\n    // If the postprocessing steps do not do any work, they may not emit postprocessing events at\n    // all, and never mark the postprocessing as complete. This is fine on its own but we\n    // introduced code in the @uppy/core upload-success handler to prepare postprocessing progress\n    // state if any postprocessors are registered. That is to avoid a \"flash of completed state\"\n    // before the postprocessing plugins can emit events.\n    //\n    // So, just in case an upload with postprocessing plugins *has* completed *without* emitting\n    // postprocessing completion, we do it instead.\n    currentUpload.fileIDs.forEach(fileID => {\n      const file = this.getFile(fileID);\n      if (file && file.progress.postprocess) {\n        this.emit('postprocess-complete', file);\n      }\n    });\n    const files = currentUpload.fileIDs.map(fileID => this.getFile(fileID));\n    const successful = files.filter(file => !file.error);\n    const failed = files.filter(file => file.error);\n    this.addResultData(uploadID, {\n      successful,\n      failed,\n      uploadID\n    });\n\n    // Update currentUpload value in case it was modified asynchronously.\n    currentUpload = getCurrentUpload();\n  }\n  // Emit completion events.\n  // This is in a separate function so that the `currentUploads` variable\n  // always refers to the latest state. In the handler right above it refers\n  // to an outdated object without the `.result` property.\n  let result;\n  if (currentUpload) {\n    result = currentUpload.result;\n    this.emit('complete', result);\n    _classPrivateFieldLooseBase(this, _removeUpload)[_removeUpload](uploadID);\n  }\n  if (result == null) {\n    this.log(`Not setting result for an upload that has been removed: ${uploadID}`);\n  }\n  return result;\n}\nUppy.VERSION = packageJson.version;\nexport default Uppy;","var n,l,t,u,i,r,o,e,f,c,s,a,h,p={},v=[],y=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,d=Array.isArray;function w(n,l){for(var t in l)n[t]=l[t];return n}function g(n){n&&n.parentNode&&n.parentNode.removeChild(n)}function _(l,t,u){var i,r,o,e={};for(o in t)\"key\"==o?i=t[o]:\"ref\"==o?r=t[o]:e[o]=t[o];if(arguments.length>2&&(e.children=arguments.length>3?n.call(arguments,2):u),\"function\"==typeof l&&null!=l.defaultProps)for(o in l.defaultProps)void 0===e[o]&&(e[o]=l.defaultProps[o]);return m(l,e,i,r,null)}function m(n,u,i,r,o){var e={type:n,props:u,key:i,ref:r,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:null==o?++t:o,__i:-1,__u:0};return null==o&&null!=l.vnode&&l.vnode(e),e}function b(){return{current:null}}function k(n){return n.children}function x(n,l){this.props=n,this.context=l}function S(n,l){if(null==l)return n.__?S(n.__,n.__i+1):null;for(var t;l<n.__k.length;l++)if(null!=(t=n.__k[l])&&null!=t.__e)return t.__e;return\"function\"==typeof n.type?S(n):null}function C(n){var l,t;if(null!=(n=n.__)&&null!=n.__c){for(n.__e=n.__c.base=null,l=0;l<n.__k.length;l++)if(null!=(t=n.__k[l])&&null!=t.__e){n.__e=n.__c.base=t.__e;break}return C(n)}}function M(n){(!n.__d&&(n.__d=!0)&&i.push(n)&&!$.__r++||r!==l.debounceRendering)&&((r=l.debounceRendering)||o)($)}function $(){for(var n,t,u,r,o,f,c,s=1;i.length;)i.length>s&&i.sort(e),n=i.shift(),s=i.length,n.__d&&(u=void 0,o=(r=(t=n).__v).__e,f=[],c=[],t.__P&&((u=w({},r)).__v=r.__v+1,l.vnode&&l.vnode(u),O(t.__P,u,r,t.__n,t.__P.namespaceURI,32&r.__u?[o]:null,f,null==o?S(r):o,!!(32&r.__u),c),u.__v=r.__v,u.__.__k[u.__i]=u,z(f,u,c),u.__e!=o&&C(u)));$.__r=0}function I(n,l,t,u,i,r,o,e,f,c,s){var a,h,y,d,w,g,_=u&&u.__k||v,m=l.length;for(f=P(t,l,_,f,m),a=0;a<m;a++)null!=(y=t.__k[a])&&(h=-1===y.__i?p:_[y.__i]||p,y.__i=a,g=O(n,y,h,i,r,o,e,f,c,s),d=y.__e,y.ref&&h.ref!=y.ref&&(h.ref&&q(h.ref,null,y),s.push(y.ref,y.__c||d,y)),null==w&&null!=d&&(w=d),4&y.__u||h.__k===y.__k?f=A(y,f,n):\"function\"==typeof y.type&&void 0!==g?f=g:d&&(f=d.nextSibling),y.__u&=-7);return t.__e=w,f}function P(n,l,t,u,i){var r,o,e,f,c,s=t.length,a=s,h=0;for(n.__k=new Array(i),r=0;r<i;r++)null!=(o=l[r])&&\"boolean\"!=typeof o&&\"function\"!=typeof o?(f=r+h,(o=n.__k[r]=\"string\"==typeof o||\"number\"==typeof o||\"bigint\"==typeof o||o.constructor==String?m(null,o,null,null,null):d(o)?m(k,{children:o},null,null,null):void 0===o.constructor&&o.__b>0?m(o.type,o.props,o.key,o.ref?o.ref:null,o.__v):o).__=n,o.__b=n.__b+1,e=null,-1!==(c=o.__i=L(o,t,f,a))&&(a--,(e=t[c])&&(e.__u|=2)),null==e||null===e.__v?(-1==c&&(i>s?h--:i<s&&h++),\"function\"!=typeof o.type&&(o.__u|=4)):c!=f&&(c==f-1?h--:c==f+1?h++:(c>f?h--:h++,o.__u|=4))):n.__k[r]=null;if(a)for(r=0;r<s;r++)null!=(e=t[r])&&0==(2&e.__u)&&(e.__e==u&&(u=S(e)),B(e,e));return u}function A(n,l,t){var u,i;if(\"function\"==typeof n.type){for(u=n.__k,i=0;u&&i<u.length;i++)u[i]&&(u[i].__=n,l=A(u[i],l,t));return l}n.__e!=l&&(l&&n.type&&!t.contains(l)&&(l=S(n)),t.insertBefore(n.__e,l||null),l=n.__e);do{l=l&&l.nextSibling}while(null!=l&&8==l.nodeType);return l}function H(n,l){return l=l||[],null==n||\"boolean\"==typeof n||(d(n)?n.some(function(n){H(n,l)}):l.push(n)),l}function L(n,l,t,u){var i,r,o=n.key,e=n.type,f=l[t];if(null===f&&null==n.key||f&&o==f.key&&e===f.type&&0==(2&f.__u))return t;if(u>(null!=f&&0==(2&f.__u)?1:0))for(i=t-1,r=t+1;i>=0||r<l.length;){if(i>=0){if((f=l[i])&&0==(2&f.__u)&&o==f.key&&e===f.type)return i;i--}if(r<l.length){if((f=l[r])&&0==(2&f.__u)&&o==f.key&&e===f.type)return r;r++}}return-1}function T(n,l,t){\"-\"==l[0]?n.setProperty(l,null==t?\"\":t):n[l]=null==t?\"\":\"number\"!=typeof t||y.test(l)?t:t+\"px\"}function j(n,l,t,u,i){var r;n:if(\"style\"==l)if(\"string\"==typeof t)n.style.cssText=t;else{if(\"string\"==typeof u&&(n.style.cssText=u=\"\"),u)for(l in u)t&&l in t||T(n.style,l,\"\");if(t)for(l in t)u&&t[l]===u[l]||T(n.style,l,t[l])}else if(\"o\"==l[0]&&\"n\"==l[1])r=l!=(l=l.replace(f,\"$1\")),l=l.toLowerCase()in n||\"onFocusOut\"==l||\"onFocusIn\"==l?l.toLowerCase().slice(2):l.slice(2),n.l||(n.l={}),n.l[l+r]=t,t?u?t.t=u.t:(t.t=c,n.addEventListener(l,r?a:s,r)):n.removeEventListener(l,r?a:s,r);else{if(\"http://www.w3.org/2000/svg\"==i)l=l.replace(/xlink(H|:h)/,\"h\").replace(/sName$/,\"s\");else if(\"width\"!=l&&\"height\"!=l&&\"href\"!=l&&\"list\"!=l&&\"form\"!=l&&\"tabIndex\"!=l&&\"download\"!=l&&\"rowSpan\"!=l&&\"colSpan\"!=l&&\"role\"!=l&&\"popover\"!=l&&l in n)try{n[l]=null==t?\"\":t;break n}catch(n){}\"function\"==typeof t||(null==t||!1===t&&\"-\"!=l[4]?n.removeAttribute(l):n.setAttribute(l,\"popover\"==l&&1==t?\"\":t))}}function F(n){return function(t){if(this.l){var u=this.l[t.type+n];if(null==t.u)t.u=c++;else if(t.u<u.t)return;return u(l.event?l.event(t):t)}}}function O(n,t,u,i,r,o,e,f,c,s){var a,h,p,v,y,_,m,b,S,C,M,$,P,A,H,L,T,j=t.type;if(void 0!==t.constructor)return null;128&u.__u&&(c=!!(32&u.__u),o=[f=t.__e=u.__e]),(a=l.__b)&&a(t);n:if(\"function\"==typeof j)try{if(b=t.props,S=\"prototype\"in j&&j.prototype.render,C=(a=j.contextType)&&i[a.__c],M=a?C?C.props.value:a.__:i,u.__c?m=(h=t.__c=u.__c).__=h.__E:(S?t.__c=h=new j(b,M):(t.__c=h=new x(b,M),h.constructor=j,h.render=D),C&&C.sub(h),h.props=b,h.state||(h.state={}),h.context=M,h.__n=i,p=h.__d=!0,h.__h=[],h._sb=[]),S&&null==h.__s&&(h.__s=h.state),S&&null!=j.getDerivedStateFromProps&&(h.__s==h.state&&(h.__s=w({},h.__s)),w(h.__s,j.getDerivedStateFromProps(b,h.__s))),v=h.props,y=h.state,h.__v=t,p)S&&null==j.getDerivedStateFromProps&&null!=h.componentWillMount&&h.componentWillMount(),S&&null!=h.componentDidMount&&h.__h.push(h.componentDidMount);else{if(S&&null==j.getDerivedStateFromProps&&b!==v&&null!=h.componentWillReceiveProps&&h.componentWillReceiveProps(b,M),!h.__e&&(null!=h.shouldComponentUpdate&&!1===h.shouldComponentUpdate(b,h.__s,M)||t.__v==u.__v)){for(t.__v!=u.__v&&(h.props=b,h.state=h.__s,h.__d=!1),t.__e=u.__e,t.__k=u.__k,t.__k.some(function(n){n&&(n.__=t)}),$=0;$<h._sb.length;$++)h.__h.push(h._sb[$]);h._sb=[],h.__h.length&&e.push(h);break n}null!=h.componentWillUpdate&&h.componentWillUpdate(b,h.__s,M),S&&null!=h.componentDidUpdate&&h.__h.push(function(){h.componentDidUpdate(v,y,_)})}if(h.context=M,h.props=b,h.__P=n,h.__e=!1,P=l.__r,A=0,S){for(h.state=h.__s,h.__d=!1,P&&P(t),a=h.render(h.props,h.state,h.context),H=0;H<h._sb.length;H++)h.__h.push(h._sb[H]);h._sb=[]}else do{h.__d=!1,P&&P(t),a=h.render(h.props,h.state,h.context),h.state=h.__s}while(h.__d&&++A<25);h.state=h.__s,null!=h.getChildContext&&(i=w(w({},i),h.getChildContext())),S&&!p&&null!=h.getSnapshotBeforeUpdate&&(_=h.getSnapshotBeforeUpdate(v,y)),L=a,null!=a&&a.type===k&&null==a.key&&(L=N(a.props.children)),f=I(n,d(L)?L:[L],t,u,i,r,o,e,f,c,s),h.base=t.__e,t.__u&=-161,h.__h.length&&e.push(h),m&&(h.__E=h.__=null)}catch(n){if(t.__v=null,c||null!=o)if(n.then){for(t.__u|=c?160:128;f&&8==f.nodeType&&f.nextSibling;)f=f.nextSibling;o[o.indexOf(f)]=null,t.__e=f}else for(T=o.length;T--;)g(o[T]);else t.__e=u.__e,t.__k=u.__k;l.__e(n,t,u)}else null==o&&t.__v==u.__v?(t.__k=u.__k,t.__e=u.__e):f=t.__e=V(u.__e,t,u,i,r,o,e,c,s);return(a=l.diffed)&&a(t),128&t.__u?void 0:f}function z(n,t,u){for(var i=0;i<u.length;i++)q(u[i],u[++i],u[++i]);l.__c&&l.__c(t,n),n.some(function(t){try{n=t.__h,t.__h=[],n.some(function(n){n.call(t)})}catch(n){l.__e(n,t.__v)}})}function N(n){return\"object\"!=typeof n||null==n?n:d(n)?n.map(N):w({},n)}function V(t,u,i,r,o,e,f,c,s){var a,h,v,y,w,_,m,b=i.props,k=u.props,x=u.type;if(\"svg\"==x?o=\"http://www.w3.org/2000/svg\":\"math\"==x?o=\"http://www.w3.org/1998/Math/MathML\":o||(o=\"http://www.w3.org/1999/xhtml\"),null!=e)for(a=0;a<e.length;a++)if((w=e[a])&&\"setAttribute\"in w==!!x&&(x?w.localName==x:3==w.nodeType)){t=w,e[a]=null;break}if(null==t){if(null==x)return document.createTextNode(k);t=document.createElementNS(o,x,k.is&&k),c&&(l.__m&&l.__m(u,e),c=!1),e=null}if(null===x)b===k||c&&t.data===k||(t.data=k);else{if(e=e&&n.call(t.childNodes),b=i.props||p,!c&&null!=e)for(b={},a=0;a<t.attributes.length;a++)b[(w=t.attributes[a]).name]=w.value;for(a in b)if(w=b[a],\"children\"==a);else if(\"dangerouslySetInnerHTML\"==a)v=w;else if(!(a in k)){if(\"value\"==a&&\"defaultValue\"in k||\"checked\"==a&&\"defaultChecked\"in k)continue;j(t,a,null,w,o)}for(a in k)w=k[a],\"children\"==a?y=w:\"dangerouslySetInnerHTML\"==a?h=w:\"value\"==a?_=w:\"checked\"==a?m=w:c&&\"function\"!=typeof w||b[a]===w||j(t,a,w,b[a],o);if(h)c||v&&(h.__html===v.__html||h.__html===t.innerHTML)||(t.innerHTML=h.__html),u.__k=[];else if(v&&(t.innerHTML=\"\"),I(\"template\"===u.type?t.content:t,d(y)?y:[y],u,i,r,\"foreignObject\"==x?\"http://www.w3.org/1999/xhtml\":o,e,f,e?e[0]:i.__k&&S(i,0),c,s),null!=e)for(a=e.length;a--;)g(e[a]);c||(a=\"value\",\"progress\"==x&&null==_?t.removeAttribute(\"value\"):void 0!==_&&(_!==t[a]||\"progress\"==x&&!_||\"option\"==x&&_!==b[a])&&j(t,a,_,b[a],o),a=\"checked\",void 0!==m&&m!==t[a]&&j(t,a,m,b[a],o))}return t}function q(n,t,u){try{if(\"function\"==typeof n){var i=\"function\"==typeof n.__u;i&&n.__u(),i&&null==t||(n.__u=n(t))}else n.current=t}catch(n){l.__e(n,u)}}function B(n,t,u){var i,r;if(l.unmount&&l.unmount(n),(i=n.ref)&&(i.current&&i.current!==n.__e||q(i,null,t)),null!=(i=n.__c)){if(i.componentWillUnmount)try{i.componentWillUnmount()}catch(n){l.__e(n,t)}i.base=i.__P=null}if(i=n.__k)for(r=0;r<i.length;r++)i[r]&&B(i[r],t,u||\"function\"!=typeof n.type);u||g(n.__e),n.__c=n.__=n.__e=void 0}function D(n,l,t){return this.constructor(n,t)}function E(t,u,i){var r,o,e,f;u==document&&(u=document.documentElement),l.__&&l.__(t,u),o=(r=\"function\"==typeof i)?null:i&&i.__k||u.__k,e=[],f=[],O(u,t=(!r&&i||u).__k=_(k,null,[t]),o||p,p,u.namespaceURI,!r&&i?[i]:o?null:u.firstChild?n.call(u.childNodes):null,e,!r&&i?i:o?o.__e:u.firstChild,r,f),z(e,t,f)}function G(n,l){E(n,l,G)}function J(l,t,u){var i,r,o,e,f=w({},l.props);for(o in l.type&&l.type.defaultProps&&(e=l.type.defaultProps),t)\"key\"==o?i=t[o]:\"ref\"==o?r=t[o]:f[o]=void 0===t[o]&&void 0!==e?e[o]:t[o];return arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):u),m(l.type,f,i||l.key,r||l.ref,null)}function K(n){function l(n){var t,u;return this.getChildContext||(t=new Set,(u={})[l.__c]=this,this.getChildContext=function(){return u},this.componentWillUnmount=function(){t=null},this.shouldComponentUpdate=function(n){this.props.value!==n.value&&t.forEach(function(n){n.__e=!0,M(n)})},this.sub=function(n){t.add(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){t&&t.delete(n),l&&l.call(n)}}),n.children}return l.__c=\"__cC\"+h++,l.__=n,l.Provider=l.__l=(l.Consumer=function(n,l){return n.children(l)}).contextType=l,l}n=v.slice,l={__e:function(n,l,t,u){for(var i,r,o;l=l.__;)if((i=l.__c)&&!i.__)try{if((r=i.constructor)&&null!=r.getDerivedStateFromError&&(i.setState(r.getDerivedStateFromError(n)),o=i.__d),null!=i.componentDidCatch&&(i.componentDidCatch(n,u||{}),o=i.__d),o)return i.__E=i}catch(l){n=l}throw n}},t=0,u=function(n){return null!=n&&null==n.constructor},x.prototype.setState=function(n,l){var t;t=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=w({},this.state),\"function\"==typeof n&&(n=n(w({},t),this.props)),n&&w(t,n),null!=n&&this.__v&&(l&&this._sb.push(l),M(this))},x.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),M(this))},x.prototype.render=k,i=[],o=\"function\"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,e=function(n,l){return n.__v.__b-l.__v.__b},$.__r=0,f=/(PointerCapture)$|Capture$/i,c=0,s=F(!1),a=F(!0),h=0;export{x as Component,k as Fragment,J as cloneElement,K as createContext,_ as createElement,b as createRef,_ as h,G as hydrate,u as isValidElement,l as options,E as render,H as toChildArray};\n//# sourceMappingURL=preact.module.js.map\n","/**\n * Check if an object is a DOM element. Duck-typing based on `nodeType`.\n */\nexport default function isDOMElement(obj) {\n  if (typeof obj !== 'object' || obj === null) return false;\n  if (!('nodeType' in obj)) return false;\n  return obj.nodeType === Node.ELEMENT_NODE;\n}","import isDOMElement from './isDOMElement.js';\nfunction findDOMElement(element, context) {\n  if (context === void 0) {\n    context = document;\n  }\n  if (typeof element === 'string') {\n    return context.querySelector(element);\n  }\n  if (isDOMElement(element)) {\n    return element;\n  }\n  return null;\n}\nexport default findDOMElement;","/**\n * Get the declared text direction for an element.\n */\n\nfunction getTextDirection(element) {\n  var _element;\n  // There is another way to determine text direction using getComputedStyle(), as done here:\n  // https://github.com/pencil-js/text-direction/blob/2a235ce95089b3185acec3b51313cbba921b3811/text-direction.js\n  //\n  // We do not use that approach because we are interested specifically in the _declared_ text direction.\n  // If no text direction is declared, we have to provide our own explicit text direction so our\n  // bidirectional CSS style sheets work.\n  while (element && !element.dir) {\n    // eslint-disable-next-line no-param-reassign\n    element = element.parentNode;\n  }\n  return (_element = element) == null ? void 0 : _element.dir;\n}\nexport default getTextDirection;","/* eslint-disable class-methods-use-this */\n\n/**\n * Core plugin logic that all plugins share.\n *\n * BasePlugin does not contain DOM rendering so it can be used for plugins\n * without a user interface.\n *\n * See `Plugin` for the extended version with Preact rendering for interfaces.\n */\n\nimport Translator from '@uppy/utils/lib/Translator';\n\n/**\n * DefinePluginOpts marks all of the passed AlwaysDefinedKeys as “required” or “always defined”.\n */\n\nexport default class BasePlugin {\n  constructor(uppy, opts) {\n    this.uppy = uppy;\n    this.opts = opts != null ? opts : {};\n  }\n  getPluginState() {\n    const {\n      plugins\n    } = this.uppy.getState();\n    return (plugins == null ? void 0 : plugins[this.id]) || {};\n  }\n  setPluginState(update) {\n    const {\n      plugins\n    } = this.uppy.getState();\n    this.uppy.setState({\n      plugins: {\n        ...plugins,\n        [this.id]: {\n          ...plugins[this.id],\n          ...update\n        }\n      }\n    });\n  }\n  setOptions(newOpts) {\n    this.opts = {\n      ...this.opts,\n      ...newOpts\n    };\n    this.setPluginState(undefined); // so that UI re-renders with new options\n    this.i18nInit();\n  }\n  i18nInit() {\n    const translator = new Translator([this.defaultLocale, this.uppy.locale, this.opts.locale]);\n    this.i18n = translator.translate.bind(translator);\n    this.i18nArray = translator.translateArray.bind(translator);\n    this.setPluginState(undefined); // so that UI re-renders and we see the updated locale\n  }\n\n  /**\n   * Extendable methods\n   * ==================\n   * These methods are here to serve as an overview of the extendable methods as well as\n   * making them not conditional in use, such as `if (this.afterUpdate)`.\n   */\n\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  addTarget(plugin) {\n    throw new Error(\"Extend the addTarget method to add your plugin to another plugin's target\");\n  }\n  install() {}\n  uninstall() {}\n\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  update(state) {}\n\n  // Called after every state update, after everything's mounted. Debounced.\n  afterUpdate() {}\n}","function _classPrivateFieldLooseBase(e, t) { if (!{}.hasOwnProperty.call(e, t)) throw new TypeError(\"attempted to use private field on non-instance\"); return e; }\nvar id = 0;\nfunction _classPrivateFieldLooseKey(e) { return \"__private_\" + id++ + \"_\" + e; }\n/* eslint-disable class-methods-use-this */\nimport { render } from 'preact';\nimport findDOMElement from '@uppy/utils/lib/findDOMElement';\nimport getTextDirection from '@uppy/utils/lib/getTextDirection';\nimport BasePlugin from './BasePlugin.js';\n/**\n * Defer a frequent call to the microtask queue.\n */\nfunction debounce(fn) {\n  let calling = null;\n  let latestArgs;\n  return function () {\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n    latestArgs = args;\n    if (!calling) {\n      calling = Promise.resolve().then(() => {\n        calling = null;\n        // At this point `args` may be different from the most\n        // recent state, if multiple calls happened since this task\n        // was queued. So we use the `latestArgs`, which definitely\n        // is the most recent call.\n        return fn(...latestArgs);\n      });\n    }\n    return calling;\n  };\n}\n\n/**\n * UIPlugin is the extended version of BasePlugin to incorporate rendering with Preact.\n * Use this for plugins that need a user interface.\n *\n * For plugins without an user interface, see BasePlugin.\n */\nvar _updateUI = /*#__PURE__*/_classPrivateFieldLooseKey(\"updateUI\");\nclass UIPlugin extends BasePlugin {\n  constructor() {\n    super(...arguments);\n    Object.defineProperty(this, _updateUI, {\n      writable: true,\n      value: void 0\n    });\n  }\n  getTargetPlugin(target // eslint-disable-line no-use-before-define\n  ) {\n    let targetPlugin;\n    if (typeof (target == null ? void 0 : target.addTarget) === 'function') {\n      // Targeting a plugin *instance*\n      targetPlugin = target;\n      if (!(targetPlugin instanceof UIPlugin)) {\n        // eslint-disable-next-line no-console\n        console.warn(new Error('The provided plugin is not an instance of UIPlugin. This is an indication of a bug with the way Uppy is bundled.', {\n          cause: {\n            targetPlugin,\n            UIPlugin\n          }\n        }));\n      }\n    } else if (typeof target === 'function') {\n      // Targeting a plugin type\n      const Target = target;\n      // Find the target plugin instance.\n      this.uppy.iteratePlugins(p => {\n        if (p instanceof Target) {\n          targetPlugin = p;\n        }\n      });\n    }\n    return targetPlugin;\n  }\n\n  /**\n   * Check if supplied `target` is a DOM element or an `object`.\n   * If it’s an object — target is a plugin, and we search `plugins`\n   * for a plugin with same name and return its target.\n   */\n  mount(target,\n  // eslint-disable-line no-use-before-define\n  plugin) {\n    const callerPluginName = plugin.id;\n    const targetElement = findDOMElement(target);\n    if (targetElement) {\n      this.isTargetDOMEl = true;\n      // When target is <body> with a single <div> element,\n      // Preact thinks it’s the Uppy root element in there when doing a diff,\n      // and destroys it. So we are creating a fragment (could be empty div)\n      const uppyRootElement = document.createElement('div');\n      uppyRootElement.classList.add('uppy-Root');\n\n      // API for plugins that require a synchronous rerender.\n      _classPrivateFieldLooseBase(this, _updateUI)[_updateUI] = debounce(state => {\n        // plugin could be removed, but this.rerender is debounced below,\n        // so it could still be called even after uppy.removePlugin or uppy.destroy\n        // hence the check\n        if (!this.uppy.getPlugin(this.id)) return;\n        render(this.render(state, uppyRootElement), uppyRootElement);\n        this.afterUpdate();\n      });\n      this.uppy.log(`Installing ${callerPluginName} to a DOM element '${target}'`);\n      if (this.opts.replaceTargetContent) {\n        // Doing render(h(null), targetElement), which should have been\n        // a better way, since because the component might need to do additional cleanup when it is removed,\n        // stopped working — Preact just adds null into target, not replacing\n        targetElement.innerHTML = '';\n      }\n      render(this.render(this.uppy.getState(), uppyRootElement), uppyRootElement);\n      this.el = uppyRootElement;\n      targetElement.appendChild(uppyRootElement);\n\n      // Set the text direction if the page has not defined one.\n      uppyRootElement.dir = this.opts.direction || getTextDirection(uppyRootElement) || 'ltr';\n      this.onMount();\n      return this.el;\n    }\n    const targetPlugin = this.getTargetPlugin(target);\n    if (targetPlugin) {\n      this.uppy.log(`Installing ${callerPluginName} to ${targetPlugin.id}`);\n      this.parent = targetPlugin;\n      this.el = targetPlugin.addTarget(plugin);\n      this.onMount();\n      return this.el;\n    }\n    this.uppy.log(`Not installing ${callerPluginName}`);\n    let message = `Invalid target option given to ${callerPluginName}.`;\n    if (typeof target === 'function') {\n      message += ' The given target is not a Plugin class. ' + \"Please check that you're not specifying a React Component instead of a plugin. \" + 'If you are using @uppy/* packages directly, make sure you have only 1 version of @uppy/core installed: ' + 'run `npm ls @uppy/core` on the command line and verify that all the versions match and are deduped correctly.';\n    } else {\n      message += 'If you meant to target an HTML element, please make sure that the element exists. ' + 'Check that the <script> tag initializing Uppy is right before the closing </body> tag at the end of the page. ' + '(see https://github.com/transloadit/uppy/issues/1042)\\n\\n' + 'If you meant to target a plugin, please confirm that your `import` statements or `require` calls are correct.';\n    }\n    throw new Error(message);\n  }\n\n  /**\n   * Called when plugin is mounted, whether in DOM or into another plugin.\n   * Needed because sometimes plugins are mounted separately/after `install`,\n   * so this.el and this.parent might not be available in `install`.\n   * This is the case with @uppy/react plugins, for example.\n   */\n  render(\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  state,\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  container) {\n    throw new Error('Extend the render method to add your plugin to a DOM element');\n  }\n  update(state) {\n    if (this.el != null) {\n      var _classPrivateFieldLoo, _classPrivateFieldLoo2;\n      (_classPrivateFieldLoo = (_classPrivateFieldLoo2 = _classPrivateFieldLooseBase(this, _updateUI))[_updateUI]) == null || _classPrivateFieldLoo.call(_classPrivateFieldLoo2, state);\n    }\n  }\n  unmount() {\n    if (this.isTargetDOMEl) {\n      var _this$el;\n      (_this$el = this.el) == null || _this$el.remove();\n    }\n    this.onUnmount();\n  }\n  onMount() {}\n  onUnmount() {}\n}\nexport default UIPlugin;","/**\n * Low-pass filter using Exponential Moving Averages (aka exponential smoothing)\n * Filters a sequence of values by updating the mixing the previous output value\n * with the new input using the exponential window function\n *\n * @param newValue the n-th value of the sequence\n * @param previousSmoothedValue the exponential average of the first n-1 values\n * @param halfLife value of `dt` to move the smoothed value halfway between `previousFilteredValue` and `newValue`\n * @param dt time elapsed between adding the (n-1)th and the n-th values\n * @returns the exponential average of the first n values\n */\nexport default function emaFilter(newValue, previousSmoothedValue, halfLife, dt) {\n  if (halfLife === 0 || newValue === previousSmoothedValue) return newValue;\n  if (dt === 0) return previousSmoothedValue;\n  return newValue + (previousSmoothedValue - newValue) * 2 ** (-dt / halfLife);\n}","export default {\n  STATE_ERROR: 'error',\n  STATE_WAITING: 'waiting',\n  STATE_PREPROCESSING: 'preprocessing',\n  STATE_UPLOADING: 'uploading',\n  STATE_POSTPROCESSING: 'postprocessing',\n  STATE_COMPLETE: 'complete'\n};","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","export default function calculateProcessingProgress(files) {\n  const values = [];\n  let mode = 'indeterminate';\n  let message;\n  for (const {\n    progress\n  } of Object.values(files)) {\n    const {\n      preprocess,\n      postprocess\n    } = progress;\n    // In the future we should probably do this differently. For now we'll take the\n    // mode and message from the first file…\n    if (message == null && (preprocess || postprocess)) {\n      ;\n      ({\n        mode,\n        message\n      } = preprocess || postprocess);\n    }\n    if ((preprocess == null ? void 0 : preprocess.mode) === 'determinate') values.push(preprocess.value);\n    if ((postprocess == null ? void 0 : postprocess.mode) === 'determinate') values.push(postprocess.value);\n  }\n  const value = values.reduce((total, progressValue) => {\n    return total + progressValue / values.length;\n  }, 0);\n  return {\n    mode,\n    message,\n    value\n  };\n}","export default function secondsToTime(rawSeconds) {\n  const hours = Math.floor(rawSeconds / 3600) % 24;\n  const minutes = Math.floor(rawSeconds / 60) % 60;\n  const seconds = Math.floor(rawSeconds % 60);\n  return {\n    hours,\n    minutes,\n    seconds\n  };\n}","import secondsToTime from './secondsToTime.js';\nexport default function prettyETA(seconds) {\n  const time = secondsToTime(seconds);\n\n  // Only display hours and minutes if they are greater than 0 but always\n  // display minutes if hours is being displayed\n  // Display a leading zero if the there is a preceding unit: 1m 05s, but 5s\n  const hoursStr = time.hours === 0 ? '' : `${time.hours}h`;\n  const minutesStr = time.minutes === 0 ? '' : `${time.hours === 0 ? time.minutes : ` ${time.minutes.toString(10).padStart(2, '0')}`}m`;\n  const secondsStr = time.hours !== 0 ? '' : `${time.minutes === 0 ? time.seconds : ` ${time.seconds.toString(10).padStart(2, '0')}`}s`;\n  return `${hoursStr}${minutesStr}${secondsStr}`;\n}","import { h } from 'preact';\nimport classNames from 'classnames';\nimport prettierBytes from '@transloadit/prettier-bytes';\nimport prettyETA from '@uppy/utils/lib/prettyETA';\nimport statusBarStates from './StatusBarStates.js';\nconst DOT = `\\u00B7`;\nconst renderDot = () => ` ${DOT} `;\nfunction UploadBtn(props) {\n  const {\n    newFiles,\n    isUploadStarted,\n    recoveredState,\n    i18n,\n    uploadState,\n    isSomeGhost,\n    startUpload\n  } = props;\n  const uploadBtnClassNames = classNames('uppy-u-reset', 'uppy-c-btn', 'uppy-StatusBar-actionBtn', 'uppy-StatusBar-actionBtn--upload', {\n    'uppy-c-btn-primary': uploadState === statusBarStates.STATE_WAITING\n  }, {\n    'uppy-StatusBar-actionBtn--disabled': isSomeGhost\n  });\n  const uploadBtnText = newFiles && isUploadStarted && !recoveredState ? i18n('uploadXNewFiles', {\n    smart_count: newFiles\n  }) : i18n('uploadXFiles', {\n    smart_count: newFiles\n  });\n  return h(\"button\", {\n    type: \"button\",\n    className: uploadBtnClassNames,\n    \"aria-label\": i18n('uploadXFiles', {\n      smart_count: newFiles\n    }),\n    onClick: startUpload,\n    disabled: isSomeGhost,\n    \"data-uppy-super-focusable\": true\n  }, uploadBtnText);\n}\nfunction RetryBtn(props) {\n  const {\n    i18n,\n    uppy\n  } = props;\n  return h(\"button\", {\n    type: \"button\",\n    className: \"uppy-u-reset uppy-c-btn uppy-StatusBar-actionBtn uppy-StatusBar-actionBtn--retry\",\n    \"aria-label\": i18n('retryUpload'),\n    onClick: () => uppy.retryAll().catch(() => {\n      /* Error reported and handled via an event */\n    }),\n    \"data-uppy-super-focusable\": true,\n    \"data-cy\": \"retry\"\n  }, h(\"svg\", {\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    className: \"uppy-c-icon\",\n    width: \"8\",\n    height: \"10\",\n    viewBox: \"0 0 8 10\"\n  }, h(\"path\", {\n    d: \"M4 2.408a2.75 2.75 0 1 0 2.75 2.75.626.626 0 0 1 1.25.018v.023a4 4 0 1 1-4-4.041V.25a.25.25 0 0 1 .389-.208l2.299 1.533a.25.25 0 0 1 0 .416l-2.3 1.533A.25.25 0 0 1 4 3.316v-.908z\"\n  })), i18n('retry'));\n}\nfunction CancelBtn(props) {\n  const {\n    i18n,\n    uppy\n  } = props;\n  return h(\"button\", {\n    type: \"button\",\n    className: \"uppy-u-reset uppy-StatusBar-actionCircleBtn\",\n    title: i18n('cancel'),\n    \"aria-label\": i18n('cancel'),\n    onClick: () => uppy.cancelAll(),\n    \"data-cy\": \"cancel\",\n    \"data-uppy-super-focusable\": true\n  }, h(\"svg\", {\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    className: \"uppy-c-icon\",\n    width: \"16\",\n    height: \"16\",\n    viewBox: \"0 0 16 16\"\n  }, h(\"g\", {\n    fill: \"none\",\n    fillRule: \"evenodd\"\n  }, h(\"circle\", {\n    fill: \"#888\",\n    cx: \"8\",\n    cy: \"8\",\n    r: \"8\"\n  }), h(\"path\", {\n    fill: \"#FFF\",\n    d: \"M9.283 8l2.567 2.567-1.283 1.283L8 9.283 5.433 11.85 4.15 10.567 6.717 8 4.15 5.433 5.433 4.15 8 6.717l2.567-2.567 1.283 1.283z\"\n  }))));\n}\nfunction PauseResumeButton(props) {\n  const {\n    isAllPaused,\n    i18n,\n    isAllComplete,\n    resumableUploads,\n    uppy\n  } = props;\n  const title = isAllPaused ? i18n('resume') : i18n('pause');\n  function togglePauseResume() {\n    if (isAllComplete) return;\n    if (!resumableUploads) {\n      uppy.cancelAll();\n      return;\n    }\n    if (isAllPaused) {\n      uppy.resumeAll();\n      return;\n    }\n    uppy.pauseAll();\n  }\n  return h(\"button\", {\n    title: title,\n    \"aria-label\": title,\n    className: \"uppy-u-reset uppy-StatusBar-actionCircleBtn\",\n    type: \"button\",\n    onClick: togglePauseResume,\n    \"data-cy\": \"togglePauseResume\",\n    \"data-uppy-super-focusable\": true\n  }, h(\"svg\", {\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    className: \"uppy-c-icon\",\n    width: \"16\",\n    height: \"16\",\n    viewBox: \"0 0 16 16\"\n  }, h(\"g\", {\n    fill: \"none\",\n    fillRule: \"evenodd\"\n  }, h(\"circle\", {\n    fill: \"#888\",\n    cx: \"8\",\n    cy: \"8\",\n    r: \"8\"\n  }), h(\"path\", {\n    fill: \"#FFF\",\n    d: isAllPaused ? 'M6 4.25L11.5 8 6 11.75z' : 'M5 4.5h2v7H5v-7zm4 0h2v7H9v-7z'\n  }))));\n}\nfunction DoneBtn(props) {\n  const {\n    i18n,\n    doneButtonHandler\n  } = props;\n  return h(\"button\", {\n    type: \"button\",\n    className: \"uppy-u-reset uppy-c-btn uppy-StatusBar-actionBtn uppy-StatusBar-actionBtn--done\",\n    onClick: doneButtonHandler,\n    \"data-uppy-super-focusable\": true\n  }, i18n('done'));\n}\nfunction LoadingSpinner() {\n  return h(\"svg\", {\n    className: \"uppy-StatusBar-spinner\",\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    width: \"14\",\n    height: \"14\"\n  }, h(\"path\", {\n    d: \"M13.983 6.547c-.12-2.509-1.64-4.893-3.939-5.936-2.48-1.127-5.488-.656-7.556 1.094C.524 3.367-.398 6.048.162 8.562c.556 2.495 2.46 4.52 4.94 5.183 2.932.784 5.61-.602 7.256-3.015-1.493 1.993-3.745 3.309-6.298 2.868-2.514-.434-4.578-2.349-5.153-4.84a6.226 6.226 0 0 1 2.98-6.778C6.34.586 9.74 1.1 11.373 3.493c.407.596.693 1.282.842 1.988.127.598.073 1.197.161 1.794.078.525.543 1.257 1.15.864.525-.341.49-1.05.456-1.592-.007-.15.02.3 0 0\",\n    fillRule: \"evenodd\"\n  }));\n}\nfunction ProgressBarProcessing(props) {\n  const {\n    progress\n  } = props;\n  const {\n    value,\n    mode,\n    message\n  } = progress;\n  const dot = `\\u00B7`;\n  return h(\"div\", {\n    className: \"uppy-StatusBar-content\"\n  }, h(LoadingSpinner, null), mode === 'determinate' ? `${Math.round(value * 100)}% ${dot} ` : '', message);\n}\nfunction ProgressDetails(props) {\n  const {\n    numUploads,\n    complete,\n    totalUploadedSize,\n    totalSize,\n    totalETA,\n    i18n\n  } = props;\n  const ifShowFilesUploadedOfTotal = numUploads > 1;\n  const totalUploadedSizeStr = prettierBytes(totalUploadedSize);\n  return h(\"div\", {\n    className: \"uppy-StatusBar-statusSecondary\"\n  }, ifShowFilesUploadedOfTotal && i18n('filesUploadedOfTotal', {\n    complete,\n    smart_count: numUploads\n  }), h(\"span\", {\n    className: \"uppy-StatusBar-additionalInfo\"\n  }, ifShowFilesUploadedOfTotal && renderDot(), totalSize != null ? i18n('dataUploadedOfTotal', {\n    complete: totalUploadedSizeStr,\n    total: prettierBytes(totalSize)\n  }) : i18n('dataUploadedOfUnknown', {\n    complete: totalUploadedSizeStr\n  }), renderDot(), totalETA != null && i18n('xTimeLeft', {\n    time: prettyETA(totalETA)\n  })));\n}\nfunction FileUploadCount(props) {\n  const {\n    i18n,\n    complete,\n    numUploads\n  } = props;\n  return h(\"div\", {\n    className: \"uppy-StatusBar-statusSecondary\"\n  }, i18n('filesUploadedOfTotal', {\n    complete,\n    smart_count: numUploads\n  }));\n}\nfunction UploadNewlyAddedFiles(props) {\n  const {\n    i18n,\n    newFiles,\n    startUpload\n  } = props;\n  const uploadBtnClassNames = classNames('uppy-u-reset', 'uppy-c-btn', 'uppy-StatusBar-actionBtn', 'uppy-StatusBar-actionBtn--uploadNewlyAdded');\n  return h(\"div\", {\n    className: \"uppy-StatusBar-statusSecondary\"\n  }, h(\"div\", {\n    className: \"uppy-StatusBar-statusSecondaryHint\"\n  }, i18n('xMoreFilesAdded', {\n    smart_count: newFiles\n  })), h(\"button\", {\n    type: \"button\",\n    className: uploadBtnClassNames,\n    \"aria-label\": i18n('uploadXFiles', {\n      smart_count: newFiles\n    }),\n    onClick: startUpload\n  }, i18n('upload')));\n}\nfunction ProgressBarUploading(props) {\n  const {\n    i18n,\n    supportsUploadProgress,\n    totalProgress,\n    showProgressDetails,\n    isUploadStarted,\n    isAllComplete,\n    isAllPaused,\n    newFiles,\n    numUploads,\n    complete,\n    totalUploadedSize,\n    totalSize,\n    totalETA,\n    startUpload\n  } = props;\n  const showUploadNewlyAddedFiles = newFiles && isUploadStarted;\n  if (!isUploadStarted || isAllComplete) {\n    return null;\n  }\n  const title = isAllPaused ? i18n('paused') : i18n('uploading');\n  function renderProgressDetails() {\n    if (!isAllPaused && !showUploadNewlyAddedFiles && showProgressDetails) {\n      if (supportsUploadProgress) {\n        return h(ProgressDetails, {\n          numUploads: numUploads,\n          complete: complete,\n          totalUploadedSize: totalUploadedSize,\n          totalSize: totalSize,\n          totalETA: totalETA,\n          i18n: i18n\n        });\n      }\n      return h(FileUploadCount, {\n        i18n: i18n,\n        complete: complete,\n        numUploads: numUploads\n      });\n    }\n    return null;\n  }\n  return h(\"div\", {\n    className: \"uppy-StatusBar-content\",\n    \"aria-label\": title,\n    title: title\n  }, !isAllPaused ? h(LoadingSpinner, null) : null, h(\"div\", {\n    className: \"uppy-StatusBar-status\"\n  }, h(\"div\", {\n    className: \"uppy-StatusBar-statusPrimary\"\n  }, supportsUploadProgress && totalProgress !== 0 ? `${title}: ${totalProgress}%` : title), renderProgressDetails(), showUploadNewlyAddedFiles ? h(UploadNewlyAddedFiles, {\n    i18n: i18n,\n    newFiles: newFiles,\n    startUpload: startUpload\n  }) : null));\n}\nfunction ProgressBarComplete(props) {\n  const {\n    i18n\n  } = props;\n  return h(\"div\", {\n    className: \"uppy-StatusBar-content\",\n    role: \"status\",\n    title: i18n('complete')\n  }, h(\"div\", {\n    className: \"uppy-StatusBar-status\"\n  }, h(\"div\", {\n    className: \"uppy-StatusBar-statusPrimary\"\n  }, h(\"svg\", {\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    className: \"uppy-StatusBar-statusIndicator uppy-c-icon\",\n    width: \"15\",\n    height: \"11\",\n    viewBox: \"0 0 15 11\"\n  }, h(\"path\", {\n    d: \"M.414 5.843L1.627 4.63l3.472 3.472L13.202 0l1.212 1.213L5.1 10.528z\"\n  })), i18n('complete'))));\n}\nfunction ProgressBarError(props) {\n  const {\n    error,\n    i18n,\n    complete,\n    numUploads\n  } = props;\n  function displayErrorAlert() {\n    const errorMessage = `${i18n('uploadFailed')} \\n\\n ${error}`;\n    // eslint-disable-next-line no-alert\n    alert(errorMessage); // TODO: move to custom alert implementation\n  }\n  return h(\"div\", {\n    className: \"uppy-StatusBar-content\",\n    title: i18n('uploadFailed')\n  }, h(\"svg\", {\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    className: \"uppy-StatusBar-statusIndicator uppy-c-icon\",\n    width: \"11\",\n    height: \"11\",\n    viewBox: \"0 0 11 11\"\n  }, h(\"path\", {\n    d: \"M4.278 5.5L0 1.222 1.222 0 5.5 4.278 9.778 0 11 1.222 6.722 5.5 11 9.778 9.778 11 5.5 6.722 1.222 11 0 9.778z\"\n  })), h(\"div\", {\n    className: \"uppy-StatusBar-status\"\n  }, h(\"div\", {\n    className: \"uppy-StatusBar-statusPrimary\"\n  }, i18n('uploadFailed'), h(\"button\", {\n    className: \"uppy-u-reset uppy-StatusBar-details\",\n    \"aria-label\": i18n('showErrorDetails'),\n    \"data-microtip-position\": \"top-right\",\n    \"data-microtip-size\": \"medium\",\n    onClick: displayErrorAlert,\n    type: \"button\"\n  }, \"?\")), h(FileUploadCount, {\n    i18n: i18n,\n    complete: complete,\n    numUploads: numUploads\n  })));\n}\nexport { UploadBtn, RetryBtn, CancelBtn, PauseResumeButton, DoneBtn, LoadingSpinner, ProgressDetails, ProgressBarProcessing, ProgressBarError, ProgressBarUploading, ProgressBarComplete };","import { h } from 'preact';\nimport classNames from 'classnames';\nimport statusBarStates from './StatusBarStates.js';\nimport calculateProcessingProgress from './calculateProcessingProgress.js';\nimport { UploadBtn, RetryBtn, CancelBtn, PauseResumeButton, DoneBtn, ProgressBarProcessing, ProgressBarError, ProgressBarUploading, ProgressBarComplete } from \"./Components.js\";\nconst {\n  STATE_ERROR,\n  STATE_WAITING,\n  STATE_PREPROCESSING,\n  STATE_UPLOADING,\n  STATE_POSTPROCESSING,\n  STATE_COMPLETE\n} = statusBarStates;\nexport default function StatusBarUI(_ref) {\n  let {\n    newFiles,\n    allowNewUpload,\n    isUploadInProgress,\n    isAllPaused,\n    resumableUploads,\n    error,\n    hideUploadButton = undefined,\n    hidePauseResumeButton = false,\n    hideCancelButton = false,\n    hideRetryButton = false,\n    recoveredState,\n    uploadState,\n    totalProgress,\n    files,\n    supportsUploadProgress,\n    hideAfterFinish = false,\n    isSomeGhost,\n    doneButtonHandler = undefined,\n    isUploadStarted,\n    i18n,\n    startUpload,\n    uppy,\n    isAllComplete,\n    showProgressDetails = undefined,\n    numUploads,\n    complete,\n    totalSize,\n    totalETA,\n    totalUploadedSize\n  } = _ref;\n  function getProgressValue() {\n    switch (uploadState) {\n      case STATE_POSTPROCESSING:\n      case STATE_PREPROCESSING:\n        {\n          const progress = calculateProcessingProgress(files);\n          if (progress.mode === 'determinate') {\n            return progress.value * 100;\n          }\n          return totalProgress;\n        }\n      case STATE_ERROR:\n        {\n          return null;\n        }\n      case STATE_UPLOADING:\n        {\n          if (!supportsUploadProgress) {\n            return null;\n          }\n          return totalProgress;\n        }\n      default:\n        return totalProgress;\n    }\n  }\n  function getIsIndeterminate() {\n    switch (uploadState) {\n      case STATE_POSTPROCESSING:\n      case STATE_PREPROCESSING:\n        {\n          const {\n            mode\n          } = calculateProcessingProgress(files);\n          return mode === 'indeterminate';\n        }\n      case STATE_UPLOADING:\n        {\n          if (!supportsUploadProgress) {\n            return true;\n          }\n          return false;\n        }\n      default:\n        return false;\n    }\n  }\n  const progressValue = getProgressValue();\n  const width = progressValue != null ? progressValue : 100;\n  const showUploadBtn = !error && newFiles && (!isUploadInProgress && !isAllPaused || recoveredState) && allowNewUpload && !hideUploadButton;\n  const showCancelBtn = !hideCancelButton && uploadState !== STATE_WAITING && uploadState !== STATE_COMPLETE;\n  const showPauseResumeBtn = resumableUploads && !hidePauseResumeButton && uploadState === STATE_UPLOADING;\n  const showRetryBtn = error && !isAllComplete && !hideRetryButton;\n  const showDoneBtn = doneButtonHandler && uploadState === STATE_COMPLETE;\n  const progressClassNames = classNames('uppy-StatusBar-progress', {\n    'is-indeterminate': getIsIndeterminate()\n  });\n  const statusBarClassNames = classNames('uppy-StatusBar', `is-${uploadState}`, {\n    'has-ghosts': isSomeGhost\n  });\n  const progressBarStateEl = (() => {\n    switch (uploadState) {\n      case STATE_PREPROCESSING:\n      case STATE_POSTPROCESSING:\n        return h(ProgressBarProcessing, {\n          progress: calculateProcessingProgress(files)\n        });\n      case STATE_COMPLETE:\n        return h(ProgressBarComplete, {\n          i18n: i18n\n        });\n      case STATE_ERROR:\n        return h(ProgressBarError, {\n          error: error,\n          i18n: i18n,\n          numUploads: numUploads,\n          complete: complete\n        });\n      case STATE_UPLOADING:\n        return h(ProgressBarUploading, {\n          i18n: i18n,\n          supportsUploadProgress: supportsUploadProgress,\n          totalProgress: totalProgress,\n          showProgressDetails: showProgressDetails,\n          isUploadStarted: isUploadStarted,\n          isAllComplete: isAllComplete,\n          isAllPaused: isAllPaused,\n          newFiles: newFiles,\n          numUploads: numUploads,\n          complete: complete,\n          totalUploadedSize: totalUploadedSize,\n          totalSize: totalSize,\n          totalETA: totalETA,\n          startUpload: startUpload\n        });\n      default:\n        return null;\n    }\n  })();\n  const atLeastOneAction = showUploadBtn || showRetryBtn || showPauseResumeBtn || showCancelBtn || showDoneBtn;\n  const thereIsNothingInside = !atLeastOneAction && !progressBarStateEl;\n  const isHidden = thereIsNothingInside || uploadState === STATE_COMPLETE && hideAfterFinish;\n  if (isHidden) {\n    return null;\n  }\n  return h(\"div\", {\n    className: statusBarClassNames\n  }, h(\"div\", {\n    className: progressClassNames,\n    style: {\n      width: `${width}%`\n    },\n    role: \"progressbar\",\n    \"aria-label\": `${width}%`,\n    \"aria-valuetext\": `${width}%`,\n    \"aria-valuemin\": 0,\n    \"aria-valuemax\": 100,\n    \"aria-valuenow\": progressValue\n  }), progressBarStateEl, h(\"div\", {\n    className: \"uppy-StatusBar-actions\"\n  }, showUploadBtn ? h(UploadBtn, {\n    newFiles: newFiles,\n    isUploadStarted: isUploadStarted,\n    recoveredState: recoveredState,\n    i18n: i18n,\n    isSomeGhost: isSomeGhost,\n    startUpload: startUpload,\n    uploadState: uploadState\n  }) : null, showRetryBtn ? h(RetryBtn, {\n    i18n: i18n,\n    uppy: uppy\n  }) : null, showPauseResumeBtn ? h(PauseResumeButton, {\n    isAllPaused: isAllPaused,\n    i18n: i18n,\n    isAllComplete: isAllComplete,\n    resumableUploads: resumableUploads,\n    uppy: uppy\n  }) : null, showCancelBtn ? h(CancelBtn, {\n    i18n: i18n,\n    uppy: uppy\n  }) : null, showDoneBtn ? h(DoneBtn, {\n    i18n: i18n,\n    doneButtonHandler: doneButtonHandler\n  }) : null));\n}","export default {\n  strings: {\n    // Shown in the status bar while files are being uploaded.\n    uploading: 'Uploading',\n    // Shown in the status bar once all files have been uploaded.\n    complete: 'Complete',\n    // Shown in the status bar if an upload failed.\n    uploadFailed: 'Upload failed',\n    // Shown in the status bar while the upload is paused.\n    paused: 'Paused',\n    // Used as the label for the button that retries an upload.\n    retry: 'Retry',\n    // Used as the label for the button that cancels an upload.\n    cancel: 'Cancel',\n    // Used as the label for the button that pauses an upload.\n    pause: 'Pause',\n    // Used as the label for the button that resumes an upload.\n    resume: 'Resume',\n    // Used as the label for the button that resets the upload state after an upload\n    done: 'Done',\n    // When `showProgressDetails` is set, shows the number of files that have been fully uploaded so far.\n    filesUploadedOfTotal: {\n      0: '%{complete} of %{smart_count} file uploaded',\n      1: '%{complete} of %{smart_count} files uploaded'\n    },\n    // When `showProgressDetails` is set, shows the amount of bytes that have been uploaded so far.\n    dataUploadedOfTotal: '%{complete} of %{total}',\n    dataUploadedOfUnknown: '%{complete} of unknown',\n    // When `showProgressDetails` is set, shows an estimation of how long the upload will take to complete.\n    xTimeLeft: '%{time} left',\n    // Used as the label for the button that starts an upload.\n    uploadXFiles: {\n      0: 'Upload %{smart_count} file',\n      1: 'Upload %{smart_count} files'\n    },\n    // Used as the label for the button that starts an upload, if another upload has been started in the past\n    // and new files were added later.\n    uploadXNewFiles: {\n      0: 'Upload +%{smart_count} file',\n      1: 'Upload +%{smart_count} files'\n    },\n    upload: 'Upload',\n    retryUpload: 'Retry upload',\n    xMoreFilesAdded: {\n      0: '%{smart_count} more file added',\n      1: '%{smart_count} more files added'\n    },\n    showErrorDetails: 'Show error details'\n  }\n};","function _classPrivateFieldLooseBase(e, t) { if (!{}.hasOwnProperty.call(e, t)) throw new TypeError(\"attempted to use private field on non-instance\"); return e; }\nvar id = 0;\nfunction _classPrivateFieldLooseKey(e) { return \"__private_\" + id++ + \"_\" + e; }\nimport { UIPlugin } from '@uppy/core';\nimport emaFilter from '@uppy/utils/lib/emaFilter';\nimport getTextDirection from '@uppy/utils/lib/getTextDirection';\nimport statusBarStates from './StatusBarStates.js';\nimport StatusBarUI from \"./StatusBarUI.js\";\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore We don't want TS to generate types for the package.json\nconst packageJson = {\n  \"version\": \"4.1.2\"\n};\nimport locale from './locale.js';\nconst speedFilterHalfLife = 2000;\nconst ETAFilterHalfLife = 2000;\nfunction getUploadingState(error, isAllComplete, recoveredState, files) {\n  if (error) {\n    return statusBarStates.STATE_ERROR;\n  }\n  if (isAllComplete) {\n    return statusBarStates.STATE_COMPLETE;\n  }\n  if (recoveredState) {\n    return statusBarStates.STATE_WAITING;\n  }\n  let state = statusBarStates.STATE_WAITING;\n  const fileIDs = Object.keys(files);\n  for (let i = 0; i < fileIDs.length; i++) {\n    const {\n      progress\n    } = files[fileIDs[i]];\n    // If ANY files are being uploaded right now, show the uploading state.\n    if (progress.uploadStarted && !progress.uploadComplete) {\n      return statusBarStates.STATE_UPLOADING;\n    }\n    // If files are being preprocessed AND postprocessed at this time, we show the\n    // preprocess state. If any files are being uploaded we show uploading.\n    if (progress.preprocess) {\n      state = statusBarStates.STATE_PREPROCESSING;\n    }\n    // If NO files are being preprocessed or uploaded right now, but some files are\n    // being postprocessed, show the postprocess state.\n    if (progress.postprocess && state !== statusBarStates.STATE_PREPROCESSING) {\n      state = statusBarStates.STATE_POSTPROCESSING;\n    }\n  }\n  return state;\n}\nconst defaultOptions = {\n  hideUploadButton: false,\n  hideRetryButton: false,\n  hidePauseResumeButton: false,\n  hideCancelButton: false,\n  showProgressDetails: false,\n  hideAfterFinish: true,\n  doneButtonHandler: null\n};\n\n/**\n * StatusBar: renders a status bar with upload/pause/resume/cancel/retry buttons,\n * progress percentage and time remaining.\n */\nvar _lastUpdateTime = /*#__PURE__*/_classPrivateFieldLooseKey(\"lastUpdateTime\");\nvar _previousUploadedBytes = /*#__PURE__*/_classPrivateFieldLooseKey(\"previousUploadedBytes\");\nvar _previousSpeed = /*#__PURE__*/_classPrivateFieldLooseKey(\"previousSpeed\");\nvar _previousETA = /*#__PURE__*/_classPrivateFieldLooseKey(\"previousETA\");\nvar _computeSmoothETA = /*#__PURE__*/_classPrivateFieldLooseKey(\"computeSmoothETA\");\nvar _onUploadStart = /*#__PURE__*/_classPrivateFieldLooseKey(\"onUploadStart\");\nexport default class StatusBar extends UIPlugin {\n  constructor(uppy, opts) {\n    super(uppy, {\n      ...defaultOptions,\n      ...opts\n    });\n    Object.defineProperty(this, _computeSmoothETA, {\n      value: _computeSmoothETA2\n    });\n    Object.defineProperty(this, _lastUpdateTime, {\n      writable: true,\n      value: void 0\n    });\n    Object.defineProperty(this, _previousUploadedBytes, {\n      writable: true,\n      value: void 0\n    });\n    Object.defineProperty(this, _previousSpeed, {\n      writable: true,\n      value: void 0\n    });\n    Object.defineProperty(this, _previousETA, {\n      writable: true,\n      value: void 0\n    });\n    this.startUpload = () => {\n      return this.uppy.upload().catch(() => {\n        // Error logged in Core\n      });\n    };\n    Object.defineProperty(this, _onUploadStart, {\n      writable: true,\n      value: () => {\n        const {\n          recoveredState\n        } = this.uppy.getState();\n        _classPrivateFieldLooseBase(this, _previousSpeed)[_previousSpeed] = null;\n        _classPrivateFieldLooseBase(this, _previousETA)[_previousETA] = null;\n        if (recoveredState) {\n          _classPrivateFieldLooseBase(this, _previousUploadedBytes)[_previousUploadedBytes] = Object.values(recoveredState.files).reduce((pv, _ref) => {\n            let {\n              progress\n            } = _ref;\n            return pv + progress.bytesUploaded;\n          }, 0);\n\n          // We don't set `#lastUpdateTime` at this point because the upload won't\n          // actually resume until the user asks for it.\n\n          this.uppy.emit('restore-confirmed');\n          return;\n        }\n        _classPrivateFieldLooseBase(this, _lastUpdateTime)[_lastUpdateTime] = performance.now();\n        _classPrivateFieldLooseBase(this, _previousUploadedBytes)[_previousUploadedBytes] = 0;\n      }\n    });\n    this.id = this.opts.id || 'StatusBar';\n    this.title = 'StatusBar';\n    this.type = 'progressindicator';\n    this.defaultLocale = locale;\n    this.i18nInit();\n    this.render = this.render.bind(this);\n    this.install = this.install.bind(this);\n  }\n  render(state) {\n    const {\n      capabilities,\n      files,\n      allowNewUpload,\n      totalProgress,\n      error,\n      recoveredState\n    } = state;\n    const {\n      newFiles,\n      startedFiles,\n      completeFiles,\n      isUploadStarted,\n      isAllComplete,\n      isAllPaused,\n      isUploadInProgress,\n      isSomeGhost\n    } = this.uppy.getObjectOfFilesPerState();\n\n    // If some state was recovered, we want to show Upload button/counter\n    // for all the files, because in this case it’s not an Upload button,\n    // but “Confirm Restore Button”\n    const newFilesOrRecovered = recoveredState ? Object.values(files) : newFiles;\n    const resumableUploads = !!capabilities.resumableUploads;\n    const supportsUploadProgress = capabilities.uploadProgress !== false;\n    let totalSize = null;\n    let totalUploadedSize = 0;\n\n    // Only if all files have a known size, does it make sense to display a total size\n    if (startedFiles.every(f => f.progress.bytesTotal != null && f.progress.bytesTotal !== 0)) {\n      totalSize = 0;\n      startedFiles.forEach(file => {\n        totalSize += file.progress.bytesTotal || 0;\n        totalUploadedSize += file.progress.bytesUploaded || 0;\n      });\n    } else {\n      // however uploaded size we will always have\n      startedFiles.forEach(file => {\n        totalUploadedSize += file.progress.bytesUploaded || 0;\n      });\n    }\n    const totalETA = _classPrivateFieldLooseBase(this, _computeSmoothETA)[_computeSmoothETA]({\n      uploaded: totalUploadedSize,\n      total: totalSize\n    });\n    return StatusBarUI({\n      error,\n      uploadState: getUploadingState(error, isAllComplete, recoveredState, state.files || {}),\n      allowNewUpload,\n      totalProgress,\n      totalSize,\n      totalUploadedSize,\n      isAllComplete: false,\n      isAllPaused,\n      isUploadStarted,\n      isUploadInProgress,\n      isSomeGhost,\n      recoveredState,\n      complete: completeFiles.length,\n      newFiles: newFilesOrRecovered.length,\n      numUploads: startedFiles.length,\n      totalETA,\n      files,\n      i18n: this.i18n,\n      uppy: this.uppy,\n      startUpload: this.startUpload,\n      doneButtonHandler: this.opts.doneButtonHandler,\n      resumableUploads,\n      supportsUploadProgress,\n      showProgressDetails: this.opts.showProgressDetails,\n      hideUploadButton: this.opts.hideUploadButton,\n      hideRetryButton: this.opts.hideRetryButton,\n      hidePauseResumeButton: this.opts.hidePauseResumeButton,\n      hideCancelButton: this.opts.hideCancelButton,\n      hideAfterFinish: this.opts.hideAfterFinish\n    });\n  }\n  onMount() {\n    // Set the text direction if the page has not defined one.\n    const element = this.el;\n    const direction = getTextDirection(element);\n    if (!direction) {\n      element.dir = 'ltr';\n    }\n  }\n  install() {\n    const {\n      target\n    } = this.opts;\n    if (target) {\n      this.mount(target, this);\n    }\n    this.uppy.on('upload', _classPrivateFieldLooseBase(this, _onUploadStart)[_onUploadStart]);\n\n    // To cover the use case where the status bar is installed while the upload\n    // has started, we set `lastUpdateTime` right away.\n    _classPrivateFieldLooseBase(this, _lastUpdateTime)[_lastUpdateTime] = performance.now();\n    _classPrivateFieldLooseBase(this, _previousUploadedBytes)[_previousUploadedBytes] = this.uppy.getFiles().reduce((pv, file) => pv + file.progress.bytesUploaded, 0);\n  }\n  uninstall() {\n    this.unmount();\n    this.uppy.off('upload', _classPrivateFieldLooseBase(this, _onUploadStart)[_onUploadStart]);\n  }\n}\nfunction _computeSmoothETA2(totalBytes) {\n  var _classPrivateFieldLoo, _classPrivateFieldLoo2;\n  if (totalBytes.total == null || totalBytes.total === 0) {\n    return null;\n  }\n  const remaining = totalBytes.total - totalBytes.uploaded;\n  if (remaining <= 0) {\n    return null;\n  }\n\n  // When state is restored, lastUpdateTime is still nullish at this point.\n  (_classPrivateFieldLoo2 = (_classPrivateFieldLoo = _classPrivateFieldLooseBase(this, _lastUpdateTime))[_lastUpdateTime]) != null ? _classPrivateFieldLoo2 : _classPrivateFieldLoo[_lastUpdateTime] = performance.now();\n  const dt = performance.now() - _classPrivateFieldLooseBase(this, _lastUpdateTime)[_lastUpdateTime];\n  if (dt === 0) {\n    var _classPrivateFieldLoo3;\n    return Math.round(((_classPrivateFieldLoo3 = _classPrivateFieldLooseBase(this, _previousETA)[_previousETA]) != null ? _classPrivateFieldLoo3 : 0) / 100) / 10;\n  }\n  const uploadedBytesSinceLastTick = totalBytes.uploaded - _classPrivateFieldLooseBase(this, _previousUploadedBytes)[_previousUploadedBytes];\n  _classPrivateFieldLooseBase(this, _previousUploadedBytes)[_previousUploadedBytes] = totalBytes.uploaded;\n\n  // uploadedBytesSinceLastTick can be negative in some cases (packet loss?)\n  // in which case, we wait for next tick to update ETA.\n  if (uploadedBytesSinceLastTick <= 0) {\n    var _classPrivateFieldLoo4;\n    return Math.round(((_classPrivateFieldLoo4 = _classPrivateFieldLooseBase(this, _previousETA)[_previousETA]) != null ? _classPrivateFieldLoo4 : 0) / 100) / 10;\n  }\n  const currentSpeed = uploadedBytesSinceLastTick / dt;\n  const filteredSpeed = _classPrivateFieldLooseBase(this, _previousSpeed)[_previousSpeed] == null ? currentSpeed : emaFilter(currentSpeed, _classPrivateFieldLooseBase(this, _previousSpeed)[_previousSpeed], speedFilterHalfLife, dt);\n  _classPrivateFieldLooseBase(this, _previousSpeed)[_previousSpeed] = filteredSpeed;\n  const instantETA = remaining / filteredSpeed;\n  const updatedPreviousETA = Math.max(_classPrivateFieldLooseBase(this, _previousETA)[_previousETA] - dt, 0);\n  const filteredETA = _classPrivateFieldLooseBase(this, _previousETA)[_previousETA] == null ? instantETA : emaFilter(instantETA, updatedPreviousETA, ETAFilterHalfLife, dt);\n  _classPrivateFieldLooseBase(this, _previousETA)[_previousETA] = filteredETA;\n  _classPrivateFieldLooseBase(this, _lastUpdateTime)[_lastUpdateTime] = performance.now();\n  return Math.round(filteredETA / 100) / 10;\n}\nStatusBar.VERSION = packageJson.version;","import { h, Component, createRef } from 'preact';\nconst TRANSITION_MS = 300;\nexport default class FadeIn extends Component {\n  constructor() {\n    super(...arguments);\n    this.ref = createRef();\n  }\n  componentWillEnter(callback) {\n    this.ref.current.style.opacity = '1';\n    this.ref.current.style.transform = 'none';\n    setTimeout(callback, TRANSITION_MS);\n  }\n  componentWillLeave(callback) {\n    this.ref.current.style.opacity = '0';\n    this.ref.current.style.transform = 'translateY(350%)';\n    setTimeout(callback, TRANSITION_MS);\n  }\n  render() {\n    const {\n      children\n    } = this.props;\n    return h(\"div\", {\n      className: \"uppy-Informer-animated\",\n      ref: this.ref\n    }, children);\n  }\n}","// INFO: not typing copy pasted libarary code\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-nocheck\n/* eslint-disable */\n/**\n * @source https://github.com/developit/preact-transition-group\n */\n\nimport { Component, cloneElement, h, toChildArray } from 'preact';\nfunction assign(obj, props) {\n  return Object.assign(obj, props);\n}\nfunction getKey(vnode, fallback) {\n  var _vnode$key;\n  return (_vnode$key = vnode == null ? void 0 : vnode.key) != null ? _vnode$key : fallback;\n}\nfunction linkRef(component, name) {\n  const cache = component._ptgLinkedRefs || (component._ptgLinkedRefs = {});\n  return cache[name] || (cache[name] = c => {\n    component.refs[name] = c;\n  });\n}\nfunction getChildMapping(children) {\n  const out = {};\n  for (let i = 0; i < children.length; i++) {\n    if (children[i] != null) {\n      const key = getKey(children[i], i.toString(36));\n      out[key] = children[i];\n    }\n  }\n  return out;\n}\nfunction mergeChildMappings(prev, next) {\n  prev = prev || {};\n  next = next || {};\n  const getValueForKey = key => next.hasOwnProperty(key) ? next[key] : prev[key];\n\n  // For each key of `next`, the list of keys to insert before that key in\n  // the combined list\n  const nextKeysPending = {};\n  let pendingKeys = [];\n  for (const prevKey in prev) {\n    if (next.hasOwnProperty(prevKey)) {\n      if (pendingKeys.length) {\n        nextKeysPending[prevKey] = pendingKeys;\n        pendingKeys = [];\n      }\n    } else {\n      pendingKeys.push(prevKey);\n    }\n  }\n  const childMapping = {};\n  for (const nextKey in next) {\n    if (nextKeysPending.hasOwnProperty(nextKey)) {\n      for (let i = 0; i < nextKeysPending[nextKey].length; i++) {\n        const pendingNextKey = nextKeysPending[nextKey][i];\n        childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);\n      }\n    }\n    childMapping[nextKey] = getValueForKey(nextKey);\n  }\n\n  // Finally, add the keys which didn't appear before any key in `next`\n  for (let i = 0; i < pendingKeys.length; i++) {\n    childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);\n  }\n  return childMapping;\n}\nconst identity = i => i;\nclass TransitionGroup extends Component {\n  constructor(props, context) {\n    super(props, context);\n    this.refs = {};\n    this.state = {\n      children: getChildMapping(toChildArray(toChildArray(this.props.children)) || [])\n    };\n    this.performAppear = this.performAppear.bind(this);\n    this.performEnter = this.performEnter.bind(this);\n    this.performLeave = this.performLeave.bind(this);\n  }\n  componentWillMount() {\n    this.currentlyTransitioningKeys = {};\n    this.keysToAbortLeave = [];\n    this.keysToEnter = [];\n    this.keysToLeave = [];\n  }\n  componentDidMount() {\n    const initialChildMapping = this.state.children;\n    for (const key in initialChildMapping) {\n      if (initialChildMapping[key]) {\n        // this.performAppear(getKey(initialChildMapping[key], key));\n        this.performAppear(key);\n      }\n    }\n  }\n  componentWillReceiveProps(nextProps) {\n    const nextChildMapping = getChildMapping(toChildArray(nextProps.children) || []);\n    const prevChildMapping = this.state.children;\n    this.setState(prevState => ({\n      children: mergeChildMappings(prevState.children, nextChildMapping)\n    }));\n    let key;\n    for (key in nextChildMapping) {\n      if (nextChildMapping.hasOwnProperty(key)) {\n        const hasPrev = prevChildMapping && prevChildMapping.hasOwnProperty(key);\n        // We should re-enter the component and abort its leave function\n        if (nextChildMapping[key] && hasPrev && this.currentlyTransitioningKeys[key]) {\n          this.keysToEnter.push(key);\n          this.keysToAbortLeave.push(key);\n        } else if (nextChildMapping[key] && !hasPrev && !this.currentlyTransitioningKeys[key]) {\n          this.keysToEnter.push(key);\n        }\n      }\n    }\n    for (key in prevChildMapping) {\n      if (prevChildMapping.hasOwnProperty(key)) {\n        const hasNext = nextChildMapping && nextChildMapping.hasOwnProperty(key);\n        if (prevChildMapping[key] && !hasNext && !this.currentlyTransitioningKeys[key]) {\n          this.keysToLeave.push(key);\n        }\n      }\n    }\n  }\n  componentDidUpdate() {\n    const {\n      keysToEnter\n    } = this;\n    this.keysToEnter = [];\n    keysToEnter.forEach(this.performEnter);\n    const {\n      keysToLeave\n    } = this;\n    this.keysToLeave = [];\n    keysToLeave.forEach(this.performLeave);\n  }\n  _finishAbort(key) {\n    const idx = this.keysToAbortLeave.indexOf(key);\n    if (idx !== -1) {\n      this.keysToAbortLeave.splice(idx, 1);\n    }\n  }\n  performAppear(key) {\n    this.currentlyTransitioningKeys[key] = true;\n    const component = this.refs[key];\n    if (component != null && component.componentWillAppear) {\n      component.componentWillAppear(this._handleDoneAppearing.bind(this, key));\n    } else {\n      this._handleDoneAppearing(key);\n    }\n  }\n  _handleDoneAppearing(key) {\n    const component = this.refs[key];\n    if (component != null && component.componentDidAppear) {\n      component.componentDidAppear();\n    }\n    delete this.currentlyTransitioningKeys[key];\n    this._finishAbort(key);\n    const currentChildMapping = getChildMapping(toChildArray(this.props.children) || []);\n    if (!currentChildMapping || !currentChildMapping.hasOwnProperty(key)) {\n      // This was removed before it had fully appeared. Remove it.\n      this.performLeave(key);\n    }\n  }\n  performEnter(key) {\n    this.currentlyTransitioningKeys[key] = true;\n    const component = this.refs[key];\n    if (component != null && component.componentWillEnter) {\n      component.componentWillEnter(this._handleDoneEntering.bind(this, key));\n    } else {\n      this._handleDoneEntering(key);\n    }\n  }\n  _handleDoneEntering(key) {\n    const component = this.refs[key];\n    if (component != null && component.componentDidEnter) {\n      component.componentDidEnter();\n    }\n    delete this.currentlyTransitioningKeys[key];\n    this._finishAbort(key);\n    const currentChildMapping = getChildMapping(toChildArray(this.props.children) || []);\n    if (!currentChildMapping || !currentChildMapping.hasOwnProperty(key)) {\n      // This was removed before it had fully entered. Remove it.\n      this.performLeave(key);\n    }\n  }\n  performLeave(key) {\n    // If we should immediately abort this leave function,\n    // don't run the leave transition at all.\n    const idx = this.keysToAbortLeave.indexOf(key);\n    if (idx !== -1) {\n      return;\n    }\n    this.currentlyTransitioningKeys[key] = true;\n    const component = this.refs[key];\n    if (component != null && component.componentWillLeave) {\n      component.componentWillLeave(this._handleDoneLeaving.bind(this, key));\n    } else {\n      // Note that this is somewhat dangerous b/c it calls setState()\n      // again, effectively mutating the component before all the work\n      // is done.\n      this._handleDoneLeaving(key);\n    }\n  }\n  _handleDoneLeaving(key) {\n    // If we should immediately abort the leave,\n    // then skip this altogether\n    const idx = this.keysToAbortLeave.indexOf(key);\n    if (idx !== -1) {\n      return;\n    }\n    const component = this.refs[key];\n    if (component != null && component.componentDidLeave) {\n      component.componentDidLeave();\n    }\n    delete this.currentlyTransitioningKeys[key];\n    const currentChildMapping = getChildMapping(toChildArray(this.props.children) || []);\n    if (currentChildMapping && currentChildMapping.hasOwnProperty(key)) {\n      // This entered again before it fully left. Add it again.\n      this.performEnter(key);\n    } else {\n      const children = assign({}, this.state.children);\n      delete children[key];\n      this.setState({\n        children\n      });\n    }\n  }\n  render(_ref, _ref2) {\n    let {\n      childFactory,\n      transitionLeave,\n      transitionName,\n      transitionAppear,\n      transitionEnter,\n      transitionLeaveTimeout,\n      transitionEnterTimeout,\n      transitionAppearTimeout,\n      component,\n      ...props\n    } = _ref;\n    let {\n      children\n    } = _ref2;\n    // TODO: we could get rid of the need for the wrapper node\n    // by cloning a single child\n    const childrenToRender = Object.entries(children).map(_ref3 => {\n      let [key, child] = _ref3;\n      if (!child) return undefined;\n      const ref = linkRef(this, key);\n      return cloneElement(childFactory(child), {\n        ref,\n        key\n      });\n    }).filter(Boolean);\n    return h(component, props, childrenToRender);\n  }\n}\nTransitionGroup.defaultProps = {\n  component: 'span',\n  childFactory: identity\n};\nexport default TransitionGroup;","/* eslint-disable jsx-a11y/no-noninteractive-element-interactions  */\n/* eslint-disable jsx-a11y/click-events-have-key-events */\nimport { h } from 'preact';\nimport { UIPlugin } from '@uppy/core';\nimport FadeIn from \"./FadeIn.js\";\nimport TransitionGroup from './TransitionGroup.js';\n\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore We don't want TS to generate types for the package.json\nconst packageJson = {\n  \"version\": \"4.2.1\"\n};\n/**\n * Informer\n * Shows rad message bubbles\n * used like this: `uppy.info('hello world', 'info', 5000)`\n * or for errors: `uppy.info('Error uploading img.jpg', 'error', 5000)`\n *\n */\nexport default class Informer extends UIPlugin {\n  constructor(uppy, opts) {\n    super(uppy, opts);\n    this.render = state => {\n      return h(\"div\", {\n        className: \"uppy uppy-Informer\"\n      }, h(TransitionGroup, null, state.info.map(info => h(FadeIn, {\n        key: info.message\n      }, h(\"p\", {\n        role: \"alert\"\n      }, info.message, ' ', info.details && h(\"span\", {\n        \"aria-label\": info.details,\n        \"data-microtip-position\": \"top-left\",\n        \"data-microtip-size\": \"medium\",\n        role: \"tooltip\",\n        onClick: () =>\n        // eslint-disable-next-line no-alert\n        alert(`${info.message} \\n\\n ${info.details}`)\n      }, \"?\"))))));\n    };\n    this.type = 'progressindicator';\n    this.id = this.opts.id || 'Informer';\n    this.title = 'Informer';\n  }\n  install() {\n    const {\n      target\n    } = this.opts;\n    if (target) {\n      this.mount(target, this);\n    }\n  }\n}\nInformer.VERSION = packageJson.version;","const DATA_URL_PATTERN = /^data:([^/]+\\/[^,;]+(?:[^,]*?))(;base64)?,([\\s\\S]*)$/;\nfunction dataURItoBlob(dataURI, opts, toFile) {\n  var _ref, _opts$mimeType;\n  // get the base64 data\n  const dataURIData = DATA_URL_PATTERN.exec(dataURI);\n\n  // user may provide mime type, if not get it from data URI\n  const mimeType = (_ref = (_opts$mimeType = opts.mimeType) != null ? _opts$mimeType : dataURIData == null ? void 0 : dataURIData[1]) != null ? _ref : 'plain/text';\n  let data; // We add `!` to tell TS we're OK with `data` being not defined when the dataURI is invalid.\n  if ((dataURIData == null ? void 0 : dataURIData[2]) != null) {\n    const binary = atob(decodeURIComponent(dataURIData[3]));\n    const bytes = new Uint8Array(binary.length);\n    for (let i = 0; i < binary.length; i++) {\n      bytes[i] = binary.charCodeAt(i);\n    }\n    data = [bytes];\n  } else if ((dataURIData == null ? void 0 : dataURIData[3]) != null) {\n    data = [decodeURIComponent(dataURIData[3])];\n  }\n\n  // Convert to a File?\n  if (toFile) {\n    return new File(data, opts.name || '', {\n      type: mimeType\n    });\n  }\n  return new Blob(data, {\n    type: mimeType\n  });\n}\nexport default dataURItoBlob;","/**\n * Check if a URL string is an object URL from `URL.createObjectURL`.\n */\nexport default function isObjectURL(url) {\n  return url.startsWith('blob:');\n}","export default function isPreviewSupported(fileType) {\n  if (!fileType) return false;\n  // list of images that browsers can preview\n  return /^[^/]+\\/(jpe?g|gif|png|svg|svg\\+xml|bmp|webp|avif)$/.test(fileType);\n}","function e(e,t,s){return t in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}var t=\"undefined\"!=typeof self?self:global;const s=\"undefined\"!=typeof navigator,i=s&&\"undefined\"==typeof HTMLImageElement,n=!(\"undefined\"==typeof global||\"undefined\"==typeof process||!process.versions||!process.versions.node),r=t.Buffer,a=!!r,h=e=>void 0!==e;function f(e){return void 0===e||(e instanceof Map?0===e.size:0===Object.values(e).filter(h).length)}function l(e){let t=new Error(e);throw delete t.stack,t}function o(e){let t=function(e){let t=0;return e.ifd0.enabled&&(t+=1024),e.exif.enabled&&(t+=2048),e.makerNote&&(t+=2048),e.userComment&&(t+=1024),e.gps.enabled&&(t+=512),e.interop.enabled&&(t+=100),e.ifd1.enabled&&(t+=1024),t+2048}(e);return e.jfif.enabled&&(t+=50),e.xmp.enabled&&(t+=2e4),e.iptc.enabled&&(t+=14e3),e.icc.enabled&&(t+=6e3),t}const u=e=>String.fromCharCode.apply(null,e),d=\"undefined\"!=typeof TextDecoder?new TextDecoder(\"utf-8\"):void 0;class c{static from(e,t){return e instanceof this&&e.le===t?e:new c(e,void 0,void 0,t)}constructor(e,t=0,s,i){if(\"boolean\"==typeof i&&(this.le=i),Array.isArray(e)&&(e=new Uint8Array(e)),0===e)this.byteOffset=0,this.byteLength=0;else if(e instanceof ArrayBuffer){void 0===s&&(s=e.byteLength-t);let i=new DataView(e,t,s);this._swapDataView(i)}else if(e instanceof Uint8Array||e instanceof DataView||e instanceof c){void 0===s&&(s=e.byteLength-t),(t+=e.byteOffset)+s>e.byteOffset+e.byteLength&&l(\"Creating view outside of available memory in ArrayBuffer\");let i=new DataView(e.buffer,t,s);this._swapDataView(i)}else if(\"number\"==typeof e){let t=new DataView(new ArrayBuffer(e));this._swapDataView(t)}else l(\"Invalid input argument for BufferView: \"+e)}_swapArrayBuffer(e){this._swapDataView(new DataView(e))}_swapBuffer(e){this._swapDataView(new DataView(e.buffer,e.byteOffset,e.byteLength))}_swapDataView(e){this.dataView=e,this.buffer=e.buffer,this.byteOffset=e.byteOffset,this.byteLength=e.byteLength}_lengthToEnd(e){return this.byteLength-e}set(e,t,s=c){return e instanceof DataView||e instanceof c?e=new Uint8Array(e.buffer,e.byteOffset,e.byteLength):e instanceof ArrayBuffer&&(e=new Uint8Array(e)),e instanceof Uint8Array||l(\"BufferView.set(): Invalid data argument.\"),this.toUint8().set(e,t),new s(this,t,e.byteLength)}subarray(e,t){return t=t||this._lengthToEnd(e),new c(this,e,t)}toUint8(){return new Uint8Array(this.buffer,this.byteOffset,this.byteLength)}getUint8Array(e,t){return new Uint8Array(this.buffer,this.byteOffset+e,t)}getString(e=0,t=this.byteLength){let s=this.getUint8Array(e,t);return i=s,d?d.decode(i):a?Buffer.from(i).toString(\"utf8\"):decodeURIComponent(escape(u(i)));var i}getLatin1String(e=0,t=this.byteLength){let s=this.getUint8Array(e,t);return u(s)}getUnicodeString(e=0,t=this.byteLength){const s=[];for(let i=0;i<t&&e+i<this.byteLength;i+=2)s.push(this.getUint16(e+i));return u(s)}getInt8(e){return this.dataView.getInt8(e)}getUint8(e){return this.dataView.getUint8(e)}getInt16(e,t=this.le){return this.dataView.getInt16(e,t)}getInt32(e,t=this.le){return this.dataView.getInt32(e,t)}getUint16(e,t=this.le){return this.dataView.getUint16(e,t)}getUint32(e,t=this.le){return this.dataView.getUint32(e,t)}getFloat32(e,t=this.le){return this.dataView.getFloat32(e,t)}getFloat64(e,t=this.le){return this.dataView.getFloat64(e,t)}getFloat(e,t=this.le){return this.dataView.getFloat32(e,t)}getDouble(e,t=this.le){return this.dataView.getFloat64(e,t)}getUintBytes(e,t,s){switch(t){case 1:return this.getUint8(e,s);case 2:return this.getUint16(e,s);case 4:return this.getUint32(e,s);case 8:return this.getUint64&&this.getUint64(e,s)}}getUint(e,t,s){switch(t){case 8:return this.getUint8(e,s);case 16:return this.getUint16(e,s);case 32:return this.getUint32(e,s);case 64:return this.getUint64&&this.getUint64(e,s)}}toString(e){return this.dataView.toString(e,this.constructor.name)}ensureChunk(){}}function p(e,t){l(`${e} '${t}' was not loaded, try using full build of exifr.`)}class g extends Map{constructor(e){super(),this.kind=e}get(e,t){return this.has(e)||p(this.kind,e),t&&(e in t||function(e,t){l(`Unknown ${e} '${t}'.`)}(this.kind,e),t[e].enabled||p(this.kind,e)),super.get(e)}keyList(){return Array.from(this.keys())}}var m=new g(\"file parser\"),y=new g(\"segment parser\"),b=new g(\"file reader\");let w=t.fetch;function k(e,t){return(i=e).startsWith(\"data:\")||i.length>1e4?v(e,t,\"base64\"):n&&e.includes(\"://\")?O(e,t,\"url\",S):n?v(e,t,\"fs\"):s?O(e,t,\"url\",S):void l(\"Invalid input argument\");var i}async function O(e,t,s,i){return b.has(s)?v(e,t,s):i?async function(e,t){let s=await t(e);return new c(s)}(e,i):void l(`Parser ${s} is not loaded`)}async function v(e,t,s){let i=new(b.get(s))(e,t);return await i.read(),i}const S=e=>w(e).then((e=>e.arrayBuffer())),A=e=>new Promise(((t,s)=>{let i=new FileReader;i.onloadend=()=>t(i.result||new ArrayBuffer),i.onerror=s,i.readAsArrayBuffer(e)}));class U extends Map{get tagKeys(){return this.allKeys||(this.allKeys=Array.from(this.keys())),this.allKeys}get tagValues(){return this.allValues||(this.allValues=Array.from(this.values())),this.allValues}}function x(e,t,s){let i=new U;for(let[e,t]of s)i.set(e,t);if(Array.isArray(t))for(let s of t)e.set(s,i);else e.set(t,i);return i}function C(e,t,s){let i,n=e.get(t);for(i of s)n.set(i[0],i[1])}const B=new Map,V=new Map,I=new Map,L=[\"chunked\",\"firstChunkSize\",\"firstChunkSizeNode\",\"firstChunkSizeBrowser\",\"chunkSize\",\"chunkLimit\"],T=[\"jfif\",\"xmp\",\"icc\",\"iptc\",\"ihdr\"],z=[\"tiff\",...T],P=[\"ifd0\",\"ifd1\",\"exif\",\"gps\",\"interop\"],F=[...z,...P],j=[\"makerNote\",\"userComment\"],E=[\"translateKeys\",\"translateValues\",\"reviveValues\",\"multiSegment\"],M=[...E,\"sanitize\",\"mergeOutput\",\"silentErrors\"];class _{get translate(){return this.translateKeys||this.translateValues||this.reviveValues}}class D extends _{get needed(){return this.enabled||this.deps.size>0}constructor(t,s,i,n){if(super(),e(this,\"enabled\",!1),e(this,\"skip\",new Set),e(this,\"pick\",new Set),e(this,\"deps\",new Set),e(this,\"translateKeys\",!1),e(this,\"translateValues\",!1),e(this,\"reviveValues\",!1),this.key=t,this.enabled=s,this.parse=this.enabled,this.applyInheritables(n),this.canBeFiltered=P.includes(t),this.canBeFiltered&&(this.dict=B.get(t)),void 0!==i)if(Array.isArray(i))this.parse=this.enabled=!0,this.canBeFiltered&&i.length>0&&this.translateTagSet(i,this.pick);else if(\"object\"==typeof i){if(this.enabled=!0,this.parse=!1!==i.parse,this.canBeFiltered){let{pick:e,skip:t}=i;e&&e.length>0&&this.translateTagSet(e,this.pick),t&&t.length>0&&this.translateTagSet(t,this.skip)}this.applyInheritables(i)}else!0===i||!1===i?this.parse=this.enabled=i:l(`Invalid options argument: ${i}`)}applyInheritables(e){let t,s;for(t of E)s=e[t],void 0!==s&&(this[t]=s)}translateTagSet(e,t){if(this.dict){let s,i,{tagKeys:n,tagValues:r}=this.dict;for(s of e)\"string\"==typeof s?(i=r.indexOf(s),-1===i&&(i=n.indexOf(Number(s))),-1!==i&&t.add(Number(n[i]))):t.add(s)}else for(let s of e)t.add(s)}finalizeFilters(){!this.enabled&&this.deps.size>0?(this.enabled=!0,X(this.pick,this.deps)):this.enabled&&this.pick.size>0&&X(this.pick,this.deps)}}var N={jfif:!1,tiff:!0,xmp:!1,icc:!1,iptc:!1,ifd0:!0,ifd1:!1,exif:!0,gps:!0,interop:!1,ihdr:void 0,makerNote:!1,userComment:!1,multiSegment:!1,skip:[],pick:[],translateKeys:!0,translateValues:!0,reviveValues:!0,sanitize:!0,mergeOutput:!0,silentErrors:!0,chunked:!0,firstChunkSize:void 0,firstChunkSizeNode:512,firstChunkSizeBrowser:65536,chunkSize:65536,chunkLimit:5},$=new Map;class R extends _{static useCached(e){let t=$.get(e);return void 0!==t||(t=new this(e),$.set(e,t)),t}constructor(e){super(),!0===e?this.setupFromTrue():void 0===e?this.setupFromUndefined():Array.isArray(e)?this.setupFromArray(e):\"object\"==typeof e?this.setupFromObject(e):l(`Invalid options argument ${e}`),void 0===this.firstChunkSize&&(this.firstChunkSize=s?this.firstChunkSizeBrowser:this.firstChunkSizeNode),this.mergeOutput&&(this.ifd1.enabled=!1),this.filterNestedSegmentTags(),this.traverseTiffDependencyTree(),this.checkLoadedPlugins()}setupFromUndefined(){let e;for(e of L)this[e]=N[e];for(e of M)this[e]=N[e];for(e of j)this[e]=N[e];for(e of F)this[e]=new D(e,N[e],void 0,this)}setupFromTrue(){let e;for(e of L)this[e]=N[e];for(e of M)this[e]=N[e];for(e of j)this[e]=!0;for(e of F)this[e]=new D(e,!0,void 0,this)}setupFromArray(e){let t;for(t of L)this[t]=N[t];for(t of M)this[t]=N[t];for(t of j)this[t]=N[t];for(t of F)this[t]=new D(t,!1,void 0,this);this.setupGlobalFilters(e,void 0,P)}setupFromObject(e){let t;for(t of(P.ifd0=P.ifd0||P.image,P.ifd1=P.ifd1||P.thumbnail,Object.assign(this,e),L))this[t]=W(e[t],N[t]);for(t of M)this[t]=W(e[t],N[t]);for(t of j)this[t]=W(e[t],N[t]);for(t of z)this[t]=new D(t,N[t],e[t],this);for(t of P)this[t]=new D(t,N[t],e[t],this.tiff);this.setupGlobalFilters(e.pick,e.skip,P,F),!0===e.tiff?this.batchEnableWithBool(P,!0):!1===e.tiff?this.batchEnableWithUserValue(P,e):Array.isArray(e.tiff)?this.setupGlobalFilters(e.tiff,void 0,P):\"object\"==typeof e.tiff&&this.setupGlobalFilters(e.tiff.pick,e.tiff.skip,P)}batchEnableWithBool(e,t){for(let s of e)this[s].enabled=t}batchEnableWithUserValue(e,t){for(let s of e){let e=t[s];this[s].enabled=!1!==e&&void 0!==e}}setupGlobalFilters(e,t,s,i=s){if(e&&e.length){for(let e of i)this[e].enabled=!1;let t=K(e,s);for(let[e,s]of t)X(this[e].pick,s),this[e].enabled=!0}else if(t&&t.length){let e=K(t,s);for(let[t,s]of e)X(this[t].skip,s)}}filterNestedSegmentTags(){let{ifd0:e,exif:t,xmp:s,iptc:i,icc:n}=this;this.makerNote?t.deps.add(37500):t.skip.add(37500),this.userComment?t.deps.add(37510):t.skip.add(37510),s.enabled||e.skip.add(700),i.enabled||e.skip.add(33723),n.enabled||e.skip.add(34675)}traverseTiffDependencyTree(){let{ifd0:e,exif:t,gps:s,interop:i}=this;i.needed&&(t.deps.add(40965),e.deps.add(40965)),t.needed&&e.deps.add(34665),s.needed&&e.deps.add(34853),this.tiff.enabled=P.some((e=>!0===this[e].enabled))||this.makerNote||this.userComment;for(let e of P)this[e].finalizeFilters()}get onlyTiff(){return!T.map((e=>this[e].enabled)).some((e=>!0===e))&&this.tiff.enabled}checkLoadedPlugins(){for(let e of z)this[e].enabled&&!y.has(e)&&p(\"segment parser\",e)}}function K(e,t){let s,i,n,r,a=[];for(n of t){for(r of(s=B.get(n),i=[],s))(e.includes(r[0])||e.includes(r[1]))&&i.push(r[0]);i.length&&a.push([n,i])}return a}function W(e,t){return void 0!==e?e:void 0!==t?t:void 0}function X(e,t){for(let s of t)e.add(s)}e(R,\"default\",N);class H{constructor(t){e(this,\"parsers\",{}),e(this,\"output\",{}),e(this,\"errors\",[]),e(this,\"pushToErrors\",(e=>this.errors.push(e))),this.options=R.useCached(t)}async read(e){this.file=await function(e,t){return\"string\"==typeof e?k(e,t):s&&!i&&e instanceof HTMLImageElement?k(e.src,t):e instanceof Uint8Array||e instanceof ArrayBuffer||e instanceof DataView?new c(e):s&&e instanceof Blob?O(e,t,\"blob\",A):void l(\"Invalid input argument\")}(e,this.options)}setup(){if(this.fileParser)return;let{file:e}=this,t=e.getUint16(0);for(let[s,i]of m)if(i.canHandle(e,t))return this.fileParser=new i(this.options,this.file,this.parsers),e[s]=!0;this.file.close&&this.file.close(),l(\"Unknown file format\")}async parse(){let{output:e,errors:t}=this;return this.setup(),this.options.silentErrors?(await this.executeParsers().catch(this.pushToErrors),t.push(...this.fileParser.errors)):await this.executeParsers(),this.file.close&&this.file.close(),this.options.silentErrors&&t.length>0&&(e.errors=t),f(s=e)?void 0:s;var s}async executeParsers(){let{output:e}=this;await this.fileParser.parse();let t=Object.values(this.parsers).map((async t=>{let s=await t.parse();t.assignToOutput(e,s)}));this.options.silentErrors&&(t=t.map((e=>e.catch(this.pushToErrors)))),await Promise.all(t)}async extractThumbnail(){this.setup();let{options:e,file:t}=this,s=y.get(\"tiff\",e);var i;if(t.tiff?i={start:0,type:\"tiff\"}:t.jpeg&&(i=await this.fileParser.getOrFindSegment(\"tiff\")),void 0===i)return;let n=await this.fileParser.ensureSegmentChunk(i),r=this.parsers.tiff=new s(n,e,t),a=await r.extractThumbnail();return t.close&&t.close(),a}}async function Y(e,t){let s=new H(t);return await s.read(e),s.parse()}var G=Object.freeze({__proto__:null,parse:Y,Exifr:H,fileParsers:m,segmentParsers:y,fileReaders:b,tagKeys:B,tagValues:V,tagRevivers:I,createDictionary:x,extendDictionary:C,fetchUrlAsArrayBuffer:S,readBlobAsArrayBuffer:A,chunkedProps:L,otherSegments:T,segments:z,tiffBlocks:P,segmentsAndBlocks:F,tiffExtractables:j,inheritables:E,allFormatters:M,Options:R});class J{static findPosition(e,t){let s=e.getUint16(t+2)+2,i=\"function\"==typeof this.headerLength?this.headerLength(e,t,s):this.headerLength,n=t+i,r=s-i;return{offset:t,length:s,headerLength:i,start:n,size:r,end:n+r}}static parse(e,t={}){return new this(e,new R({[this.type]:t}),e).parse()}normalizeInput(e){return e instanceof c?e:new c(e)}constructor(t,s={},i){e(this,\"errors\",[]),e(this,\"raw\",new Map),e(this,\"handleError\",(e=>{if(!this.options.silentErrors)throw e;this.errors.push(e.message)})),this.chunk=this.normalizeInput(t),this.file=i,this.type=this.constructor.type,this.globalOptions=this.options=s,this.localOptions=s[this.type],this.canTranslate=this.localOptions&&this.localOptions.translate}translate(){this.canTranslate&&(this.translated=this.translateBlock(this.raw,this.type))}get output(){return this.translated?this.translated:this.raw?Object.fromEntries(this.raw):void 0}translateBlock(e,t){let s=I.get(t),i=V.get(t),n=B.get(t),r=this.options[t],a=r.reviveValues&&!!s,h=r.translateValues&&!!i,f=r.translateKeys&&!!n,l={};for(let[t,r]of e)a&&s.has(t)?r=s.get(t)(r):h&&i.has(t)&&(r=this.translateValue(r,i.get(t))),f&&n.has(t)&&(t=n.get(t)||t),l[t]=r;return l}translateValue(e,t){return t[e]||t.DEFAULT||e}assignToOutput(e,t){this.assignObjectToOutput(e,this.constructor.type,t)}assignObjectToOutput(e,t,s){if(this.globalOptions.mergeOutput)return Object.assign(e,s);e[t]?Object.assign(e[t],s):e[t]=s}}e(J,\"headerLength\",4),e(J,\"type\",void 0),e(J,\"multiSegment\",!1),e(J,\"canHandle\",(()=>!1));function q(e){return 192===e||194===e||196===e||219===e||221===e||218===e||254===e}function Q(e){return e>=224&&e<=239}function Z(e,t,s){for(let[i,n]of y)if(n.canHandle(e,t,s))return i}class ee extends class{constructor(t,s,i){e(this,\"errors\",[]),e(this,\"ensureSegmentChunk\",(async e=>{let t=e.start,s=e.size||65536;if(this.file.chunked)if(this.file.available(t,s))e.chunk=this.file.subarray(t,s);else try{e.chunk=await this.file.readChunk(t,s)}catch(t){l(`Couldn't read segment: ${JSON.stringify(e)}. ${t.message}`)}else this.file.byteLength>t+s?e.chunk=this.file.subarray(t,s):void 0===e.size?e.chunk=this.file.subarray(t):l(\"Segment unreachable: \"+JSON.stringify(e));return e.chunk})),this.extendOptions&&this.extendOptions(t),this.options=t,this.file=s,this.parsers=i}injectSegment(e,t){this.options[e].enabled&&this.createParser(e,t)}createParser(e,t){let s=new(y.get(e))(t,this.options,this.file);return this.parsers[e]=s}createParsers(e){for(let t of e){let{type:e,chunk:s}=t,i=this.options[e];if(i&&i.enabled){let t=this.parsers[e];t&&t.append||t||this.createParser(e,s)}}}async readSegments(e){let t=e.map(this.ensureSegmentChunk);await Promise.all(t)}}{constructor(...t){super(...t),e(this,\"appSegments\",[]),e(this,\"jpegSegments\",[]),e(this,\"unknownSegments\",[])}static canHandle(e,t){return 65496===t}async parse(){await this.findAppSegments(),await this.readSegments(this.appSegments),this.mergeMultiSegments(),this.createParsers(this.mergedAppSegments||this.appSegments)}setupSegmentFinderArgs(e){!0===e?(this.findAll=!0,this.wanted=new Set(y.keyList())):(e=void 0===e?y.keyList().filter((e=>this.options[e].enabled)):e.filter((e=>this.options[e].enabled&&y.has(e))),this.findAll=!1,this.remaining=new Set(e),this.wanted=new Set(e)),this.unfinishedMultiSegment=!1}async findAppSegments(e=0,t){this.setupSegmentFinderArgs(t);let{file:s,findAll:i,wanted:n,remaining:r}=this;if(!i&&this.file.chunked&&(i=Array.from(n).some((e=>{let t=y.get(e),s=this.options[e];return t.multiSegment&&s.multiSegment})),i&&await this.file.readWhole()),e=this.findAppSegmentsInRange(e,s.byteLength),!this.options.onlyTiff&&s.chunked){let t=!1;for(;r.size>0&&!t&&(s.canReadNextChunk||this.unfinishedMultiSegment);){let{nextChunkOffset:i}=s,n=this.appSegments.some((e=>!this.file.available(e.offset||e.start,e.length||e.size)));if(t=e>i&&!n?!await s.readNextChunk(e):!await s.readNextChunk(i),void 0===(e=this.findAppSegmentsInRange(e,s.byteLength)))return}}}findAppSegmentsInRange(e,t){t-=2;let s,i,n,r,a,h,{file:f,findAll:l,wanted:o,remaining:u,options:d}=this;for(;e<t;e++)if(255===f.getUint8(e))if(s=f.getUint8(e+1),Q(s)){if(i=f.getUint16(e+2),n=Z(f,e,i),n&&o.has(n)&&(r=y.get(n),a=r.findPosition(f,e),h=d[n],a.type=n,this.appSegments.push(a),!l&&(r.multiSegment&&h.multiSegment?(this.unfinishedMultiSegment=a.chunkNumber<a.chunkCount,this.unfinishedMultiSegment||u.delete(n)):u.delete(n),0===u.size)))break;d.recordUnknownSegments&&(a=J.findPosition(f,e),a.marker=s,this.unknownSegments.push(a)),e+=i+1}else if(q(s)){if(i=f.getUint16(e+2),218===s&&!1!==d.stopAfterSos)return;d.recordJpegSegments&&this.jpegSegments.push({offset:e,length:i,marker:s}),e+=i+1}return e}mergeMultiSegments(){if(!this.appSegments.some((e=>e.multiSegment)))return;let e=function(e,t){let s,i,n,r=new Map;for(let a=0;a<e.length;a++)s=e[a],i=s[t],r.has(i)?n=r.get(i):r.set(i,n=[]),n.push(s);return Array.from(r)}(this.appSegments,\"type\");this.mergedAppSegments=e.map((([e,t])=>{let s=y.get(e,this.options);if(s.handleMultiSegments){return{type:e,chunk:s.handleMultiSegments(t)}}return t[0]}))}getSegment(e){return this.appSegments.find((t=>t.type===e))}async getOrFindSegment(e){let t=this.getSegment(e);return void 0===t&&(await this.findAppSegments(0,[e]),t=this.getSegment(e)),t}}e(ee,\"type\",\"jpeg\"),m.set(\"jpeg\",ee);const te=[void 0,1,1,2,4,8,1,1,2,4,8,4,8,4];class se extends J{parseHeader(){var e=this.chunk.getUint16();18761===e?this.le=!0:19789===e&&(this.le=!1),this.chunk.le=this.le,this.headerParsed=!0}parseTags(e,t,s=new Map){let{pick:i,skip:n}=this.options[t];i=new Set(i);let r=i.size>0,a=0===n.size,h=this.chunk.getUint16(e);e+=2;for(let f=0;f<h;f++){let h=this.chunk.getUint16(e);if(r){if(i.has(h)&&(s.set(h,this.parseTag(e,h,t)),i.delete(h),0===i.size))break}else!a&&n.has(h)||s.set(h,this.parseTag(e,h,t));e+=12}return s}parseTag(e,t,s){let{chunk:i}=this,n=i.getUint16(e+2),r=i.getUint32(e+4),a=te[n];if(a*r<=4?e+=8:e=i.getUint32(e+8),(n<1||n>13)&&l(`Invalid TIFF value type. block: ${s.toUpperCase()}, tag: ${t.toString(16)}, type: ${n}, offset ${e}`),e>i.byteLength&&l(`Invalid TIFF value offset. block: ${s.toUpperCase()}, tag: ${t.toString(16)}, type: ${n}, offset ${e} is outside of chunk size ${i.byteLength}`),1===n)return i.getUint8Array(e,r);if(2===n)return\"\"===(h=function(e){for(;e.endsWith(\"\\0\");)e=e.slice(0,-1);return e}(h=i.getString(e,r)).trim())?void 0:h;var h;if(7===n)return i.getUint8Array(e,r);if(1===r)return this.parseTagValue(n,e);{let t=new(function(e){switch(e){case 1:return Uint8Array;case 3:return Uint16Array;case 4:return Uint32Array;case 5:return Array;case 6:return Int8Array;case 8:return Int16Array;case 9:return Int32Array;case 10:return Array;case 11:return Float32Array;case 12:return Float64Array;default:return Array}}(n))(r),s=a;for(let i=0;i<r;i++)t[i]=this.parseTagValue(n,e),e+=s;return t}}parseTagValue(e,t){let{chunk:s}=this;switch(e){case 1:return s.getUint8(t);case 3:return s.getUint16(t);case 4:return s.getUint32(t);case 5:return s.getUint32(t)/s.getUint32(t+4);case 6:return s.getInt8(t);case 8:return s.getInt16(t);case 9:return s.getInt32(t);case 10:return s.getInt32(t)/s.getInt32(t+4);case 11:return s.getFloat(t);case 12:return s.getDouble(t);case 13:return s.getUint32(t);default:l(`Invalid tiff type ${e}`)}}}class ie extends se{static canHandle(e,t){return 225===e.getUint8(t+1)&&1165519206===e.getUint32(t+4)&&0===e.getUint16(t+8)}async parse(){this.parseHeader();let{options:e}=this;return e.ifd0.enabled&&await this.parseIfd0Block(),e.exif.enabled&&await this.safeParse(\"parseExifBlock\"),e.gps.enabled&&await this.safeParse(\"parseGpsBlock\"),e.interop.enabled&&await this.safeParse(\"parseInteropBlock\"),e.ifd1.enabled&&await this.safeParse(\"parseThumbnailBlock\"),this.createOutput()}safeParse(e){let t=this[e]();return void 0!==t.catch&&(t=t.catch(this.handleError)),t}findIfd0Offset(){void 0===this.ifd0Offset&&(this.ifd0Offset=this.chunk.getUint32(4))}findIfd1Offset(){if(void 0===this.ifd1Offset){this.findIfd0Offset();let e=this.chunk.getUint16(this.ifd0Offset),t=this.ifd0Offset+2+12*e;this.ifd1Offset=this.chunk.getUint32(t)}}parseBlock(e,t){let s=new Map;return this[t]=s,this.parseTags(e,t,s),s}async parseIfd0Block(){if(this.ifd0)return;let{file:e}=this;this.findIfd0Offset(),this.ifd0Offset<8&&l(\"Malformed EXIF data\"),!e.chunked&&this.ifd0Offset>e.byteLength&&l(`IFD0 offset points to outside of file.\\nthis.ifd0Offset: ${this.ifd0Offset}, file.byteLength: ${e.byteLength}`),e.tiff&&await e.ensureChunk(this.ifd0Offset,o(this.options));let t=this.parseBlock(this.ifd0Offset,\"ifd0\");return 0!==t.size?(this.exifOffset=t.get(34665),this.interopOffset=t.get(40965),this.gpsOffset=t.get(34853),this.xmp=t.get(700),this.iptc=t.get(33723),this.icc=t.get(34675),this.options.sanitize&&(t.delete(34665),t.delete(40965),t.delete(34853),t.delete(700),t.delete(33723),t.delete(34675)),t):void 0}async parseExifBlock(){if(this.exif)return;if(this.ifd0||await this.parseIfd0Block(),void 0===this.exifOffset)return;this.file.tiff&&await this.file.ensureChunk(this.exifOffset,o(this.options));let e=this.parseBlock(this.exifOffset,\"exif\");return this.interopOffset||(this.interopOffset=e.get(40965)),this.makerNote=e.get(37500),this.userComment=e.get(37510),this.options.sanitize&&(e.delete(40965),e.delete(37500),e.delete(37510)),this.unpack(e,41728),this.unpack(e,41729),e}unpack(e,t){let s=e.get(t);s&&1===s.length&&e.set(t,s[0])}async parseGpsBlock(){if(this.gps)return;if(this.ifd0||await this.parseIfd0Block(),void 0===this.gpsOffset)return;let e=this.parseBlock(this.gpsOffset,\"gps\");return e&&e.has(2)&&e.has(4)&&(e.set(\"latitude\",ne(...e.get(2),e.get(1))),e.set(\"longitude\",ne(...e.get(4),e.get(3)))),e}async parseInteropBlock(){if(!this.interop&&(this.ifd0||await this.parseIfd0Block(),void 0!==this.interopOffset||this.exif||await this.parseExifBlock(),void 0!==this.interopOffset))return this.parseBlock(this.interopOffset,\"interop\")}async parseThumbnailBlock(e=!1){if(!this.ifd1&&!this.ifd1Parsed&&(!this.options.mergeOutput||e))return this.findIfd1Offset(),this.ifd1Offset>0&&(this.parseBlock(this.ifd1Offset,\"ifd1\"),this.ifd1Parsed=!0),this.ifd1}async extractThumbnail(){if(this.headerParsed||this.parseHeader(),this.ifd1Parsed||await this.parseThumbnailBlock(!0),void 0===this.ifd1)return;let e=this.ifd1.get(513),t=this.ifd1.get(514);return this.chunk.getUint8Array(e,t)}get image(){return this.ifd0}get thumbnail(){return this.ifd1}createOutput(){let e,t,s,i={};for(t of P)if(e=this[t],!f(e))if(s=this.canTranslate?this.translateBlock(e,t):Object.fromEntries(e),this.options.mergeOutput){if(\"ifd1\"===t)continue;Object.assign(i,s)}else i[t]=s;return this.makerNote&&(i.makerNote=this.makerNote),this.userComment&&(i.userComment=this.userComment),i}assignToOutput(e,t){if(this.globalOptions.mergeOutput)Object.assign(e,t);else for(let[s,i]of Object.entries(t))this.assignObjectToOutput(e,s,i)}}function ne(e,t,s,i){var n=e+t/60+s/3600;return\"S\"!==i&&\"W\"!==i||(n*=-1),n}e(ie,\"type\",\"tiff\"),e(ie,\"headerLength\",10),y.set(\"tiff\",ie);var re=Object.freeze({__proto__:null,default:G,Exifr:H,fileParsers:m,segmentParsers:y,fileReaders:b,tagKeys:B,tagValues:V,tagRevivers:I,createDictionary:x,extendDictionary:C,fetchUrlAsArrayBuffer:S,readBlobAsArrayBuffer:A,chunkedProps:L,otherSegments:T,segments:z,tiffBlocks:P,segmentsAndBlocks:F,tiffExtractables:j,inheritables:E,allFormatters:M,Options:R,parse:Y});const ae={ifd0:!1,ifd1:!1,exif:!1,gps:!1,interop:!1,sanitize:!1,reviveValues:!0,translateKeys:!1,translateValues:!1,mergeOutput:!1},he=Object.assign({},ae,{firstChunkSize:4e4,gps:[1,2,3,4]});async function fe(e){let t=new H(he);await t.read(e);let s=await t.parse();if(s&&s.gps){let{latitude:e,longitude:t}=s.gps;return{latitude:e,longitude:t}}}const le=Object.assign({},ae,{tiff:!1,ifd1:!0,mergeOutput:!1});async function oe(e){let t=new H(le);await t.read(e);let s=await t.extractThumbnail();return s&&a?r.from(s):s}async function ue(e){let t=await this.thumbnail(e);if(void 0!==t){let e=new Blob([t]);return URL.createObjectURL(e)}}const de=Object.assign({},ae,{firstChunkSize:4e4,ifd0:[274]});async function ce(e){let t=new H(de);await t.read(e);let s=await t.parse();if(s&&s.ifd0)return s.ifd0[274]}const pe=Object.freeze({1:{dimensionSwapped:!1,scaleX:1,scaleY:1,deg:0,rad:0},2:{dimensionSwapped:!1,scaleX:-1,scaleY:1,deg:0,rad:0},3:{dimensionSwapped:!1,scaleX:1,scaleY:1,deg:180,rad:180*Math.PI/180},4:{dimensionSwapped:!1,scaleX:-1,scaleY:1,deg:180,rad:180*Math.PI/180},5:{dimensionSwapped:!0,scaleX:1,scaleY:-1,deg:90,rad:90*Math.PI/180},6:{dimensionSwapped:!0,scaleX:1,scaleY:1,deg:90,rad:90*Math.PI/180},7:{dimensionSwapped:!0,scaleX:1,scaleY:-1,deg:270,rad:270*Math.PI/180},8:{dimensionSwapped:!0,scaleX:1,scaleY:1,deg:270,rad:270*Math.PI/180}});let ge=!0,me=!0;if(\"object\"==typeof navigator){let e=navigator.userAgent;if(e.includes(\"iPad\")||e.includes(\"iPhone\")){let t=e.match(/OS (\\d+)_(\\d+)/);if(t){let[,e,s]=t,i=Number(e)+.1*Number(s);ge=i<13.4,me=!1}}else if(e.includes(\"OS X 10\")){let[,t]=e.match(/OS X 10[_.](\\d+)/);ge=me=Number(t)<15}if(e.includes(\"Chrome/\")){let[,t]=e.match(/Chrome\\/(\\d+)/);ge=me=Number(t)<81}else if(e.includes(\"Firefox/\")){let[,t]=e.match(/Firefox\\/(\\d+)/);ge=me=Number(t)<77}}async function ye(e){let t=await ce(e);return Object.assign({canvas:ge,css:me},pe[t])}class be extends c{constructor(...t){super(...t),e(this,\"ranges\",new we),0!==this.byteLength&&this.ranges.add(0,this.byteLength)}_tryExtend(e,t,s){if(0===e&&0===this.byteLength&&s){let e=new DataView(s.buffer||s,s.byteOffset,s.byteLength);this._swapDataView(e)}else{let s=e+t;if(s>this.byteLength){let{dataView:e}=this._extend(s);this._swapDataView(e)}}}_extend(e){let t;t=a?r.allocUnsafe(e):new Uint8Array(e);let s=new DataView(t.buffer,t.byteOffset,t.byteLength);return t.set(new Uint8Array(this.buffer,this.byteOffset,this.byteLength),0),{uintView:t,dataView:s}}subarray(e,t,s=!1){return t=t||this._lengthToEnd(e),s&&this._tryExtend(e,t),this.ranges.add(e,t),super.subarray(e,t)}set(e,t,s=!1){s&&this._tryExtend(t,e.byteLength,e);let i=super.set(e,t);return this.ranges.add(t,i.byteLength),i}async ensureChunk(e,t){this.chunked&&(this.ranges.available(e,t)||await this.readChunk(e,t))}available(e,t){return this.ranges.available(e,t)}}class we{constructor(){e(this,\"list\",[])}get length(){return this.list.length}add(e,t,s=0){let i=e+t,n=this.list.filter((t=>ke(e,t.offset,i)||ke(e,t.end,i)));if(n.length>0){e=Math.min(e,...n.map((e=>e.offset))),i=Math.max(i,...n.map((e=>e.end))),t=i-e;let s=n.shift();s.offset=e,s.length=t,s.end=i,this.list=this.list.filter((e=>!n.includes(e)))}else this.list.push({offset:e,length:t,end:i})}available(e,t){let s=e+t;return this.list.some((t=>t.offset<=e&&s<=t.end))}}function ke(e,t,s){return e<=t&&t<=s}class Oe extends be{constructor(t,s){super(0),e(this,\"chunksRead\",0),this.input=t,this.options=s}async readWhole(){this.chunked=!1,await this.readChunk(this.nextChunkOffset)}async readChunked(){this.chunked=!0,await this.readChunk(0,this.options.firstChunkSize)}async readNextChunk(e=this.nextChunkOffset){if(this.fullyRead)return this.chunksRead++,!1;let t=this.options.chunkSize,s=await this.readChunk(e,t);return!!s&&s.byteLength===t}async readChunk(e,t){if(this.chunksRead++,0!==(t=this.safeWrapAddress(e,t)))return this._readChunk(e,t)}safeWrapAddress(e,t){return void 0!==this.size&&e+t>this.size?Math.max(0,this.size-e):t}get nextChunkOffset(){if(0!==this.ranges.list.length)return this.ranges.list[0].length}get canReadNextChunk(){return this.chunksRead<this.options.chunkLimit}get fullyRead(){return void 0!==this.size&&this.nextChunkOffset===this.size}read(){return this.options.chunked?this.readChunked():this.readWhole()}close(){}}b.set(\"blob\",class extends Oe{async readWhole(){this.chunked=!1;let e=await A(this.input);this._swapArrayBuffer(e)}readChunked(){return this.chunked=!0,this.size=this.input.size,super.readChunked()}async _readChunk(e,t){let s=t?e+t:void 0,i=this.input.slice(e,s),n=await A(i);return this.set(n,e,!0)}});export default re;export{H as Exifr,R as Options,M as allFormatters,L as chunkedProps,x as createDictionary,C as extendDictionary,S as fetchUrlAsArrayBuffer,m as fileParsers,b as fileReaders,fe as gps,he as gpsOnlyOptions,E as inheritables,ce as orientation,de as orientationOnlyOptions,T as otherSegments,Y as parse,A as readBlobAsArrayBuffer,ge as rotateCanvas,me as rotateCss,ye as rotation,pe as rotations,y as segmentParsers,z as segments,F as segmentsAndBlocks,B as tagKeys,I as tagRevivers,V as tagValues,oe as thumbnail,le as thumbnailOnlyOptions,ue as thumbnailUrl,P as tiffBlocks,j as tiffExtractables};\n","export default {\n  strings: {\n    generatingThumbnails: 'Generating thumbnails...'\n  }\n};","import { UIPlugin } from '@uppy/core';\nimport dataURItoBlob from '@uppy/utils/lib/dataURItoBlob';\nimport isObjectURL from '@uppy/utils/lib/isObjectURL';\nimport isPreviewSupported from '@uppy/utils/lib/isPreviewSupported';\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore untyped\nimport { rotation } from 'exifr/dist/mini.esm.mjs';\nimport locale from './locale.js';\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore We don't want TS to generate types for the package.json\nconst packageJson = {\n  \"version\": \"4.1.1\"\n};\n/**\n * Save a <canvas> element's content to a Blob object.\n *\n */\nfunction canvasToBlob(canvas, type, quality) {\n  try {\n    canvas.getContext('2d').getImageData(0, 0, 1, 1);\n  } catch (err) {\n    if (err.code === 18) {\n      return Promise.reject(new Error('cannot read image, probably an svg with external resources'));\n    }\n  }\n  if (canvas.toBlob) {\n    return new Promise(resolve => {\n      canvas.toBlob(resolve, type, quality);\n    }).then(blob => {\n      if (blob === null) {\n        throw new Error('cannot read image, probably an svg with external resources');\n      }\n      return blob;\n    });\n  }\n  return Promise.resolve().then(() => {\n    return dataURItoBlob(canvas.toDataURL(type, quality), {});\n  }).then(blob => {\n    if (blob === null) {\n      throw new Error('could not extract blob, probably an old browser');\n    }\n    return blob;\n  });\n}\nfunction rotateImage(image, translate) {\n  let w = image.width;\n  let h = image.height;\n  if (translate.deg === 90 || translate.deg === 270) {\n    w = image.height;\n    h = image.width;\n  }\n  const canvas = document.createElement('canvas');\n  canvas.width = w;\n  canvas.height = h;\n  const context = canvas.getContext('2d');\n  context.translate(w / 2, h / 2);\n  if (translate.canvas) {\n    context.rotate(translate.rad);\n    context.scale(translate.scaleX, translate.scaleY);\n  }\n  context.drawImage(image, -image.width / 2, -image.height / 2, image.width, image.height);\n  return canvas;\n}\n\n/**\n * Make sure the image doesn’t exceed browser/device canvas limits.\n * For ios with 256 RAM and ie\n */\nfunction protect(image) {\n  // https://stackoverflow.com/questions/6081483/maximum-size-of-a-canvas-element\n\n  const ratio = image.width / image.height;\n  const maxSquare = 5000000; // ios max canvas square\n  const maxSize = 4096; // ie max canvas dimensions\n\n  let maxW = Math.floor(Math.sqrt(maxSquare * ratio));\n  let maxH = Math.floor(maxSquare / Math.sqrt(maxSquare * ratio));\n  if (maxW > maxSize) {\n    maxW = maxSize;\n    maxH = Math.round(maxW / ratio);\n  }\n  if (maxH > maxSize) {\n    maxH = maxSize;\n    maxW = Math.round(ratio * maxH);\n  }\n  if (image.width > maxW) {\n    const canvas = document.createElement('canvas');\n    canvas.width = maxW;\n    canvas.height = maxH;\n    canvas.getContext('2d').drawImage(image, 0, 0, maxW, maxH);\n    return canvas;\n  }\n  return image;\n}\nconst defaultOptions = {\n  thumbnailWidth: null,\n  thumbnailHeight: null,\n  thumbnailType: 'image/jpeg',\n  waitForThumbnailsBeforeUpload: false,\n  lazy: false\n};\n/**\n * The Thumbnail Generator plugin\n */\n\nexport default class ThumbnailGenerator extends UIPlugin {\n  constructor(uppy, opts) {\n    super(uppy, {\n      ...defaultOptions,\n      ...opts\n    });\n    this.onFileAdded = file => {\n      if (!file.preview && file.data && isPreviewSupported(file.type) && !file.isRemote) {\n        this.addToQueue(file.id);\n      }\n    };\n    /**\n     * Cancel a lazy request for a thumbnail if the thumbnail has not yet been generated.\n     */\n    this.onCancelRequest = file => {\n      const index = this.queue.indexOf(file.id);\n      if (index !== -1) {\n        this.queue.splice(index, 1);\n      }\n    };\n    /**\n     * Clean up the thumbnail for a file. Cancel lazy requests and free the thumbnail URL.\n     */\n    this.onFileRemoved = file => {\n      const index = this.queue.indexOf(file.id);\n      if (index !== -1) {\n        this.queue.splice(index, 1);\n      }\n\n      // Clean up object URLs.\n      if (file.preview && isObjectURL(file.preview)) {\n        URL.revokeObjectURL(file.preview);\n      }\n    };\n    this.onRestored = () => {\n      const restoredFiles = this.uppy.getFiles().filter(file => file.isRestored);\n      restoredFiles.forEach(file => {\n        // Only add blob URLs; they are likely invalid after being restored.\n        if (!file.preview || isObjectURL(file.preview)) {\n          this.addToQueue(file.id);\n        }\n      });\n    };\n    this.onAllFilesRemoved = () => {\n      this.queue = [];\n    };\n    this.waitUntilAllProcessed = fileIDs => {\n      fileIDs.forEach(fileID => {\n        const file = this.uppy.getFile(fileID);\n        this.uppy.emit('preprocess-progress', file, {\n          mode: 'indeterminate',\n          message: this.i18n('generatingThumbnails')\n        });\n      });\n      const emitPreprocessCompleteForAll = () => {\n        fileIDs.forEach(fileID => {\n          const file = this.uppy.getFile(fileID);\n          this.uppy.emit('preprocess-complete', file);\n        });\n      };\n      return new Promise(resolve => {\n        if (this.queueProcessing) {\n          this.uppy.once('thumbnail:all-generated', () => {\n            emitPreprocessCompleteForAll();\n            resolve();\n          });\n        } else {\n          emitPreprocessCompleteForAll();\n          resolve();\n        }\n      });\n    };\n    this.type = 'modifier';\n    this.id = this.opts.id || 'ThumbnailGenerator';\n    this.title = 'Thumbnail Generator';\n    this.queue = [];\n    this.queueProcessing = false;\n    this.defaultThumbnailDimension = 200;\n    this.thumbnailType = this.opts.thumbnailType;\n    this.defaultLocale = locale;\n    this.i18nInit();\n    if (this.opts.lazy && this.opts.waitForThumbnailsBeforeUpload) {\n      throw new Error('ThumbnailGenerator: The `lazy` and `waitForThumbnailsBeforeUpload` options are mutually exclusive. Please ensure at most one of them is set to `true`.');\n    }\n  }\n  createThumbnail(file, targetWidth, targetHeight) {\n    const originalUrl = URL.createObjectURL(file.data);\n    const onload = new Promise((resolve, reject) => {\n      const image = new Image();\n      image.src = originalUrl;\n      image.addEventListener('load', () => {\n        URL.revokeObjectURL(originalUrl);\n        resolve(image);\n      });\n      image.addEventListener('error', event => {\n        URL.revokeObjectURL(originalUrl);\n        reject(event.error || new Error('Could not create thumbnail'));\n      });\n    });\n    const orientationPromise = rotation(file.data).catch(() => 1);\n    return Promise.all([onload, orientationPromise]).then(_ref => {\n      let [image, orientation] = _ref;\n      const dimensions = this.getProportionalDimensions(image, targetWidth, targetHeight, orientation.deg);\n      const rotatedImage = rotateImage(image, orientation);\n      const resizedImage = this.resizeImage(rotatedImage, dimensions.width, dimensions.height);\n      return canvasToBlob(resizedImage, this.thumbnailType, 80);\n    }).then(blob => {\n      return URL.createObjectURL(blob);\n    });\n  }\n\n  /**\n   * Get the new calculated dimensions for the given image and a target width\n   * or height. If both width and height are given, only width is taken into\n   * account. If neither width nor height are given, the default dimension\n   * is used.\n   */\n  getProportionalDimensions(img, width, height, deg) {\n    // eslint-disable-line no-shadow\n    let aspect = img.width / img.height;\n    if (deg === 90 || deg === 270) {\n      aspect = img.height / img.width;\n    }\n    if (width != null) {\n      return {\n        width,\n        height: Math.round(width / aspect)\n      };\n    }\n    if (height != null) {\n      return {\n        width: Math.round(height * aspect),\n        height\n      };\n    }\n    return {\n      width: this.defaultThumbnailDimension,\n      height: Math.round(this.defaultThumbnailDimension / aspect)\n    };\n  }\n\n  /**\n   * Resize an image to the target `width` and `height`.\n   *\n   * Returns a Canvas with the resized image on it.\n   */\n  // eslint-disable-next-line class-methods-use-this\n  resizeImage(image, targetWidth, targetHeight) {\n    // Resizing in steps refactored to use a solution from\n    // https://blog.uploadcare.com/image-resize-in-browsers-is-broken-e38eed08df01\n\n    let img = protect(image);\n    let steps = Math.ceil(Math.log2(img.width / targetWidth));\n    if (steps < 1) {\n      steps = 1;\n    }\n    let sW = targetWidth * 2 ** (steps - 1);\n    let sH = targetHeight * 2 ** (steps - 1);\n    const x = 2;\n    while (steps--) {\n      const canvas = document.createElement('canvas');\n      canvas.width = sW;\n      canvas.height = sH;\n      canvas.getContext('2d').drawImage(img, 0, 0, sW, sH);\n      img = canvas;\n      sW = Math.round(sW / x);\n      sH = Math.round(sH / x);\n    }\n    return img;\n  }\n\n  /**\n   * Set the preview URL for a file.\n   */\n  setPreviewURL(fileID, preview) {\n    this.uppy.setFileState(fileID, {\n      preview\n    });\n  }\n  addToQueue(fileID) {\n    this.queue.push(fileID);\n    if (this.queueProcessing === false) {\n      this.processQueue();\n    }\n  }\n  processQueue() {\n    this.queueProcessing = true;\n    if (this.queue.length > 0) {\n      const current = this.uppy.getFile(this.queue.shift());\n      if (!current) {\n        this.uppy.log('[ThumbnailGenerator] file was removed before a thumbnail could be generated, but not removed from the queue. This is probably a bug', 'error');\n        return Promise.resolve();\n      }\n      return this.requestThumbnail(current).catch(() => {}) // eslint-disable-line node/handle-callback-err\n      .then(() => this.processQueue());\n    }\n    this.queueProcessing = false;\n    this.uppy.log('[ThumbnailGenerator] Emptied thumbnail queue');\n    this.uppy.emit('thumbnail:all-generated');\n    return Promise.resolve();\n  }\n  requestThumbnail(file) {\n    if (isPreviewSupported(file.type) && !file.isRemote) {\n      return this.createThumbnail(file, this.opts.thumbnailWidth, this.opts.thumbnailHeight).then(preview => {\n        this.setPreviewURL(file.id, preview);\n        this.uppy.log(`[ThumbnailGenerator] Generated thumbnail for ${file.id}`);\n        this.uppy.emit('thumbnail:generated', this.uppy.getFile(file.id), preview);\n      }).catch(err => {\n        this.uppy.log(`[ThumbnailGenerator] Failed thumbnail for ${file.id}:`, 'warning');\n        this.uppy.log(err, 'warning');\n        this.uppy.emit('thumbnail:error', this.uppy.getFile(file.id), err);\n      });\n    }\n    return Promise.resolve();\n  }\n  install() {\n    this.uppy.on('file-removed', this.onFileRemoved);\n    this.uppy.on('cancel-all', this.onAllFilesRemoved);\n    if (this.opts.lazy) {\n      this.uppy.on('thumbnail:request', this.onFileAdded);\n      this.uppy.on('thumbnail:cancel', this.onCancelRequest);\n    } else {\n      this.uppy.on('thumbnail:request', this.onFileAdded);\n      this.uppy.on('file-added', this.onFileAdded);\n      this.uppy.on('restored', this.onRestored);\n    }\n    if (this.opts.waitForThumbnailsBeforeUpload) {\n      this.uppy.addPreProcessor(this.waitUntilAllProcessed);\n    }\n  }\n  uninstall() {\n    this.uppy.off('file-removed', this.onFileRemoved);\n    this.uppy.off('cancel-all', this.onAllFilesRemoved);\n    if (this.opts.lazy) {\n      this.uppy.off('thumbnail:request', this.onFileAdded);\n      this.uppy.off('thumbnail:cancel', this.onCancelRequest);\n    } else {\n      this.uppy.off('thumbnail:request', this.onFileAdded);\n      this.uppy.off('file-added', this.onFileAdded);\n      this.uppy.off('restored', this.onRestored);\n    }\n    if (this.opts.waitForThumbnailsBeforeUpload) {\n      this.uppy.removePreProcessor(this.waitUntilAllProcessed);\n    }\n  }\n}\nThumbnailGenerator.VERSION = packageJson.version;","import isDOMElement from './isDOMElement.js';\n/**\n * Find one or more DOM elements.\n */\nfunction findAllDOMElements(element) {\n  if (typeof element === 'string') {\n    const elements = document.querySelectorAll(element);\n    return elements.length === 0 ? null : Array.from(elements);\n  }\n  if (typeof element === 'object' && isDOMElement(element)) {\n    return [element];\n  }\n  return null;\n}\nexport default findAllDOMElements;","/**\n * Converts list into array\n */\nexport default Array.from;","/**\n * Recursive function, calls the original callback() when the directory is entirely parsed.\n */\nexport default function getFilesAndDirectoriesFromDirectory(directoryReader, oldEntries, logDropError, _ref) {\n  let {\n    onSuccess\n  } = _ref;\n  directoryReader.readEntries(entries => {\n    const newEntries = [...oldEntries, ...entries];\n    // According to the FileSystem API spec, getFilesAndDirectoriesFromDirectory()\n    // must be called until it calls the onSuccess with an empty array.\n    if (entries.length) {\n      queueMicrotask(() => {\n        getFilesAndDirectoriesFromDirectory(directoryReader, newEntries, logDropError, {\n          onSuccess\n        });\n      });\n      // Done iterating this particular directory\n    } else {\n      onSuccess(newEntries);\n    }\n  },\n  // Make sure we resolve on error anyway, it's fine if only one directory couldn't be parsed!\n  error => {\n    logDropError(error);\n    onSuccess(oldEntries);\n  });\n}","import getFilesAndDirectoriesFromDirectory from './getFilesAndDirectoriesFromDirectory.js';\n/**\n * Polyfill for the new (experimental) getAsFileSystemHandle API (using the popular webkitGetAsEntry behind the scenes)\n * so that we can switch to the getAsFileSystemHandle API once it (hopefully) becomes standard\n */\nfunction getAsFileSystemHandleFromEntry(entry, logDropError) {\n  if (entry == null) return entry;\n  return {\n    kind:\n    // eslint-disable-next-line no-nested-ternary\n    entry.isFile ? 'file' : entry.isDirectory ? 'directory' : undefined,\n    name: entry.name,\n    getFile() {\n      return new Promise((resolve, reject) => entry.file(resolve, reject));\n    },\n    async *values() {\n      // If the file is a directory.\n      const directoryReader = entry.createReader();\n      const entries = await new Promise(resolve => {\n        getFilesAndDirectoriesFromDirectory(directoryReader, [], logDropError, {\n          onSuccess: dirEntries => resolve(dirEntries.map(file => getAsFileSystemHandleFromEntry(file, logDropError)))\n        });\n      });\n      yield* entries;\n    },\n    isSameEntry: undefined\n  };\n}\nfunction createPromiseToAddFileOrParseDirectory(entry, relativePath, lastResortFile) {\n  try {\n    if (lastResortFile === void 0) {\n      lastResortFile = undefined;\n    }\n    return async function* () {\n      const getNextRelativePath = () => `${relativePath}/${entry.name}`;\n\n      // For each dropped item, - make sure it's a file/directory, and start deepening in!\n      if (entry.kind === 'file') {\n        const file = await entry.getFile();\n        if (file != null) {\n          ;\n          file.relativePath = relativePath ? getNextRelativePath() : null;\n          yield file;\n        } else if (lastResortFile != null) yield lastResortFile;\n      } else if (entry.kind === 'directory') {\n        for await (const handle of entry.values()) {\n          // Recurse on the directory, appending the dir name to the relative path\n          yield* createPromiseToAddFileOrParseDirectory(handle, relativePath ? getNextRelativePath() : entry.name);\n        }\n      } else if (lastResortFile != null) yield lastResortFile;\n    }();\n  } catch (e) {\n    return Promise.reject(e);\n  }\n}\n\n/**\n * Load all files from data transfer, and recursively read any directories.\n * Note that IE is not supported for drag-drop, because IE doesn't support Data Transfers\n *\n * @param {DataTransfer} dataTransfer\n * @param {*} logDropError on error\n */\nexport default async function* getFilesFromDataTransfer(dataTransfer, logDropError) {\n  // Retrieving the dropped items must happen synchronously\n  // otherwise only the first item gets treated and the other ones are garbage collected.\n  // https://github.com/transloadit/uppy/pull/3998\n  const fileSystemHandles = await Promise.all(Array.from(dataTransfer.items, async item => {\n    var _fileSystemHandle;\n    let fileSystemHandle;\n\n    // TODO enable getAsFileSystemHandle API once we can get it working with subdirectories\n    // IMPORTANT: Need to check isSecureContext *before* calling getAsFileSystemHandle\n    // or else Chrome will crash when running in HTTP: https://github.com/transloadit/uppy/issues/4133\n    // if (window.isSecureContext && item.getAsFileSystemHandle != null)\n    // fileSystemHandle = await item.getAsFileSystemHandle()\n\n    // `webkitGetAsEntry` exists in all popular browsers (including non-WebKit browsers),\n    // however it may be renamed to getAsEntry() in the future, so you should code defensively, looking for both.\n    // from https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItem/webkitGetAsEntry\n    const getAsEntry = () => typeof item.getAsEntry === 'function' ? item.getAsEntry() : item.webkitGetAsEntry();\n    // eslint-disable-next-line prefer-const\n    (_fileSystemHandle = fileSystemHandle) != null ? _fileSystemHandle : fileSystemHandle = getAsFileSystemHandleFromEntry(getAsEntry(), logDropError);\n    return {\n      fileSystemHandle,\n      lastResortFile: item.getAsFile() // can be used as a fallback in case other methods fail\n    };\n  }));\n  for (const {\n    lastResortFile,\n    fileSystemHandle\n  } of fileSystemHandles) {\n    // fileSystemHandle and lastResortFile can be null when we drop an url.\n    if (fileSystemHandle != null) {\n      try {\n        yield* createPromiseToAddFileOrParseDirectory(fileSystemHandle, '', lastResortFile);\n      } catch (err) {\n        // Example: If dropping a symbolic link, Chromium will throw:\n        // \"DOMException: A requested file or directory could not be found at the time an operation was processed.\",\n        // So we will use lastResortFile instead. See https://github.com/transloadit/uppy/issues/3505.\n        if (lastResortFile != null) {\n          yield lastResortFile;\n        } else {\n          logDropError(err);\n        }\n      }\n    } else if (lastResortFile != null) yield lastResortFile;\n  }\n}","import toArray from '../../toArray.js';\n\n// .files fallback, should be implemented in any browser\nexport default function fallbackApi(dataTransfer) {\n  const files = toArray(dataTransfer.files);\n  return Promise.resolve(files);\n}","import webkitGetAsEntryApi from './utils/webkitGetAsEntryApi/index.js';\nimport fallbackApi from './utils/fallbackApi.js';\n\n/**\n * Returns a promise that resolves to the array of dropped files (if a folder is\n * dropped, and browser supports folder parsing - promise resolves to the flat\n * array of all files in all directories).\n * Each file has .relativePath prop appended to it (e.g. \"/docs/Prague/ticket_from_prague_to_ufa.pdf\")\n * if browser supports it. Otherwise it's undefined.\n *\n * @param dataTransfer\n * @param options\n * @param options.logDropError - a function that's called every time some\n * folder or some file error out (e.g. because of the folder name being too long\n * on Windows). Notice that resulting promise will always be resolved anyway.\n *\n * @returns {Promise} - Array<File>\n */\nexport default async function getDroppedFiles(dataTransfer, options) {\n  var _options$logDropError;\n  // Get all files from all subdirs. Works (at least) in Chrome, Mozilla, and Safari\n  const logDropError = (_options$logDropError = options == null ? void 0 : options.logDropError) != null ? _options$logDropError : Function.prototype;\n  try {\n    const accumulator = [];\n    for await (const file of webkitGetAsEntryApi(dataTransfer, logDropError)) {\n      accumulator.push(file);\n    }\n    return accumulator;\n    // Otherwise just return all first-order files\n  } catch {\n    return fallbackApi(dataTransfer);\n  }\n}","import{options as n}from\"preact\";var t,r,u,i,o=0,f=[],c=n,e=c.__b,a=c.__r,v=c.diffed,l=c.__c,m=c.unmount,s=c.__;function p(n,t){c.__h&&c.__h(r,n,o||t),o=0;var u=r.__H||(r.__H={__:[],__h:[]});return n>=u.__.length&&u.__.push({}),u.__[n]}function d(n){return o=1,h(D,n)}function h(n,u,i){var o=p(t++,2);if(o.t=n,!o.__c&&(o.__=[i?i(u):D(void 0,u),function(n){var t=o.__N?o.__N[0]:o.__[0],r=o.t(t,n);t!==r&&(o.__N=[r,o.__[1]],o.__c.setState({}))}],o.__c=r,!r.__f)){var f=function(n,t,r){if(!o.__c.__H)return!0;var u=o.__c.__H.__.filter(function(n){return!!n.__c});if(u.every(function(n){return!n.__N}))return!c||c.call(this,n,t,r);var i=o.__c.props!==n;return u.forEach(function(n){if(n.__N){var t=n.__[0];n.__=n.__N,n.__N=void 0,t!==n.__[0]&&(i=!0)}}),c&&c.call(this,n,t,r)||i};r.__f=!0;var c=r.shouldComponentUpdate,e=r.componentWillUpdate;r.componentWillUpdate=function(n,t,r){if(this.__e){var u=c;c=void 0,f(n,t,r),c=u}e&&e.call(this,n,t,r)},r.shouldComponentUpdate=f}return o.__N||o.__}function y(n,u){var i=p(t++,3);!c.__s&&C(i.__H,u)&&(i.__=n,i.u=u,r.__H.__h.push(i))}function _(n,u){var i=p(t++,4);!c.__s&&C(i.__H,u)&&(i.__=n,i.u=u,r.__h.push(i))}function A(n){return o=5,T(function(){return{current:n}},[])}function F(n,t,r){o=6,_(function(){if(\"function\"==typeof n){var r=n(t());return function(){n(null),r&&\"function\"==typeof r&&r()}}if(n)return n.current=t(),function(){return n.current=null}},null==r?r:r.concat(n))}function T(n,r){var u=p(t++,7);return C(u.__H,r)&&(u.__=n(),u.__H=r,u.__h=n),u.__}function q(n,t){return o=8,T(function(){return n},t)}function x(n){var u=r.context[n.__c],i=p(t++,9);return i.c=n,u?(null==i.__&&(i.__=!0,u.sub(r)),u.props.value):n.__}function P(n,t){c.useDebugValue&&c.useDebugValue(t?t(n):n)}function b(n){var u=p(t++,10),i=d();return u.__=n,r.componentDidCatch||(r.componentDidCatch=function(n,t){u.__&&u.__(n,t),i[1](n)}),[i[0],function(){i[1](void 0)}]}function g(){var n=p(t++,11);if(!n.__){for(var u=r.__v;null!==u&&!u.__m&&null!==u.__;)u=u.__;var i=u.__m||(u.__m=[0,0]);n.__=\"P\"+i[0]+\"-\"+i[1]++}return n.__}function j(){for(var n;n=f.shift();)if(n.__P&&n.__H)try{n.__H.__h.forEach(z),n.__H.__h.forEach(B),n.__H.__h=[]}catch(t){n.__H.__h=[],c.__e(t,n.__v)}}c.__b=function(n){r=null,e&&e(n)},c.__=function(n,t){n&&t.__k&&t.__k.__m&&(n.__m=t.__k.__m),s&&s(n,t)},c.__r=function(n){a&&a(n),t=0;var i=(r=n.__c).__H;i&&(u===r?(i.__h=[],r.__h=[],i.__.forEach(function(n){n.__N&&(n.__=n.__N),n.u=n.__N=void 0})):(i.__h.forEach(z),i.__h.forEach(B),i.__h=[],t=0)),u=r},c.diffed=function(n){v&&v(n);var t=n.__c;t&&t.__H&&(t.__H.__h.length&&(1!==f.push(t)&&i===c.requestAnimationFrame||((i=c.requestAnimationFrame)||w)(j)),t.__H.__.forEach(function(n){n.u&&(n.__H=n.u),n.u=void 0})),u=r=null},c.__c=function(n,t){t.some(function(n){try{n.__h.forEach(z),n.__h=n.__h.filter(function(n){return!n.__||B(n)})}catch(r){t.some(function(n){n.__h&&(n.__h=[])}),t=[],c.__e(r,n.__v)}}),l&&l(n,t)},c.unmount=function(n){m&&m(n);var t,r=n.__c;r&&r.__H&&(r.__H.__.forEach(function(n){try{z(n)}catch(n){t=n}}),r.__H=void 0,t&&c.__e(t,r.__v))};var k=\"function\"==typeof requestAnimationFrame;function w(n){var t,r=function(){clearTimeout(u),k&&cancelAnimationFrame(t),setTimeout(n)},u=setTimeout(r,100);k&&(t=requestAnimationFrame(r))}function z(n){var t=r,u=n.__c;\"function\"==typeof u&&(n.__c=void 0,u()),r=t}function B(n){var t=r;n.__c=n.__(),r=t}function C(n,t){return!n||n.length!==t.length||t.some(function(t,r){return t!==n[r]})}function D(n,t){return\"function\"==typeof t?t(n):t}export{q as useCallback,x as useContext,P as useDebugValue,y as useEffect,b as useErrorBoundary,g as useId,F as useImperativeHandle,_ as useLayoutEffect,T as useMemo,h as useReducer,A as useRef,d as useState};\n//# sourceMappingURL=hooks.module.js.map\n","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\n/**\n * Adapted from preact-virtual-list: https://github.com/developit/preact-virtual-list\n *\n * © 2016 Jason Miller\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n *\n * Adaptations:\n * - Added role=presentation to helper elements\n * - Tweaked styles for Uppy's Dashboard use case\n */\n\nimport { h, Component } from 'preact';\nconst STYLE_INNER = {\n  position: 'relative',\n  // Disabled for our use case: the wrapper elements around FileList already deal with overflow,\n  // and this additional property would hide things that we want to show.\n  //\n  // overflow: 'hidden',\n  width: '100%',\n  minHeight: '100%'\n};\nconst STYLE_CONTENT = {\n  position: 'absolute',\n  top: 0,\n  left: 0,\n  // Because the `top` value gets set to some offset, this `height` being 100% would make the scrollbar\n  // stretch far beyond the content. For our use case, the content div actually can get its height from\n  // the elements inside it, so we don't need to specify a `height` property at all.\n  //\n  // height: '100%',\n  width: '100%',\n  overflow: 'visible'\n};\nclass VirtualList extends Component {\n  constructor(props) {\n    super(props);\n\n    // The currently focused node, used to retain focus when the visible rows change.\n    // To avoid update loops, this should not cause state updates, so it's kept as a plain property.\n    this.handleScroll = () => {\n      this.setState({\n        offset: this.base.scrollTop\n      });\n    };\n    this.handleResize = () => {\n      this.resize();\n    };\n    this.focusElement = null;\n    this.state = {\n      offset: 0,\n      height: 0\n    };\n  }\n  componentDidMount() {\n    this.resize();\n    window.addEventListener('resize', this.handleResize);\n  }\n\n  // TODO: refactor to stable lifecycle method\n  // eslint-disable-next-line\n  componentWillUpdate() {\n    if (this.base.contains(document.activeElement)) {\n      this.focusElement = document.activeElement;\n    }\n  }\n  componentDidUpdate() {\n    // Maintain focus when rows are added and removed.\n    if (this.focusElement && this.focusElement.parentNode && document.activeElement !== this.focusElement) {\n      this.focusElement.focus();\n    }\n    this.focusElement = null;\n    this.resize();\n  }\n  componentWillUnmount() {\n    window.removeEventListener('resize', this.handleResize);\n  }\n  resize() {\n    const {\n      height\n    } = this.state;\n    if (height !== this.base.offsetHeight) {\n      this.setState({\n        height: this.base.offsetHeight\n      });\n    }\n  }\n  render(_ref) {\n    let {\n      data,\n      rowHeight,\n      renderRow,\n      overscanCount = 10,\n      ...props\n    } = _ref;\n    const {\n      offset,\n      height\n    } = this.state;\n    // first visible row index\n    let start = Math.floor(offset / rowHeight);\n\n    // actual number of visible rows (without overscan)\n    let visibleRowCount = Math.floor(height / rowHeight);\n\n    // Overscan: render blocks of rows modulo an overscan row count\n    // This dramatically reduces DOM writes during scrolling\n    if (overscanCount) {\n      start = Math.max(0, start - start % overscanCount);\n      visibleRowCount += overscanCount;\n    }\n\n    // last visible + overscan row index + padding to allow keyboard focus to travel past the visible area\n    const end = start + visibleRowCount + 4;\n\n    // data slice currently in viewport plus overscan items\n    const selection = data.slice(start, end);\n    const styleInner = {\n      ...STYLE_INNER,\n      height: data.length * rowHeight\n    };\n    const styleContent = {\n      ...STYLE_CONTENT,\n      top: start * rowHeight\n    };\n\n    // The `role=\"presentation\"` attributes ensure that these wrapper elements are not treated as list\n    // items by accessibility and outline tools.\n    return (\n      // eslint-disable-next-line react/jsx-props-no-spreading\n      h(\"div\", _extends({\n        onScroll: this.handleScroll\n      }, props), h(\"div\", {\n        role: \"presentation\",\n        style: styleInner\n      }, h(\"div\", {\n        role: \"presentation\",\n        style: styleContent\n      }, selection.map(renderRow))))\n    );\n  }\n}\nexport default VirtualList;","function _classPrivateFieldLooseBase(e, t) { if (!{}.hasOwnProperty.call(e, t)) throw new TypeError(\"attempted to use private field on non-instance\"); return e; }\nvar id = 0;\nfunction _classPrivateFieldLooseKey(e) { return \"__private_\" + id++ + \"_\" + e; }\nimport { h } from 'preact';\nimport classNames from 'classnames';\nimport remoteFileObjToLocal from '@uppy/utils/lib/remoteFileObjToLocal';\nimport AuthView from \"./AuthView.js\";\nimport Header from \"./Header.js\";\nimport Browser from \"../Browser.js\";\n\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore We don't want TS to generate types for the package.json\nconst packageJson = {\n  \"version\": \"4.4.2\"\n};\nimport PartialTreeUtils from '../utils/PartialTreeUtils/index.js';\nimport shouldHandleScroll from '../utils/shouldHandleScroll.js';\nimport handleError from '../utils/handleError.js';\nimport getClickedRange from '../utils/getClickedRange.js';\nimport SearchInput from \"../SearchInput.js\";\nimport FooterActions from \"../FooterActions.js\";\nimport addFiles from '../utils/addFiles.js';\nimport getCheckedFilesWithPaths from '../utils/PartialTreeUtils/getCheckedFilesWithPaths.js';\nimport getBreadcrumbs from '../utils/PartialTreeUtils/getBreadcrumbs.js';\nexport function defaultPickerIcon() {\n  return h(\"svg\", {\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    width: \"30\",\n    height: \"30\",\n    viewBox: \"0 0 30 30\"\n  }, h(\"path\", {\n    d: \"M15 30c8.284 0 15-6.716 15-15 0-8.284-6.716-15-15-15C6.716 0 0 6.716 0 15c0 8.284 6.716 15 15 15zm4.258-12.676v6.846h-8.426v-6.846H5.204l9.82-12.364 9.82 12.364H19.26z\"\n  }));\n}\nconst getDefaultState = rootFolderId => ({\n  authenticated: undefined,\n  // we don't know yet\n  partialTree: [{\n    type: 'root',\n    id: rootFolderId,\n    cached: false,\n    nextPagePath: null\n  }],\n  currentFolderId: rootFolderId,\n  searchString: '',\n  didFirstRender: false,\n  username: null,\n  loading: false\n});\nvar _abortController = /*#__PURE__*/_classPrivateFieldLooseKey(\"abortController\");\nvar _withAbort = /*#__PURE__*/_classPrivateFieldLooseKey(\"withAbort\");\n/**\n * Class to easily generate generic views for Provider plugins\n */\nexport default class ProviderView {\n  constructor(plugin, opts) {\n    Object.defineProperty(this, _withAbort, {\n      value: _withAbort2\n    });\n    this.isHandlingScroll = false;\n    this.lastCheckbox = null;\n    Object.defineProperty(this, _abortController, {\n      writable: true,\n      value: void 0\n    });\n    this.validateSingleFile = file => {\n      const companionFile = remoteFileObjToLocal(file);\n      const result = this.plugin.uppy.validateSingleFile(companionFile);\n      return result;\n    };\n    this.getDisplayedPartialTree = () => {\n      const {\n        partialTree,\n        currentFolderId,\n        searchString\n      } = this.plugin.getPluginState();\n      const inThisFolder = partialTree.filter(item => item.type !== 'root' && item.parentId === currentFolderId);\n      const filtered = searchString === '' ? inThisFolder : inThisFolder.filter(item => {\n        var _item$data$name;\n        return ((_item$data$name = item.data.name) != null ? _item$data$name : this.plugin.uppy.i18n('unnamed')).toLowerCase().indexOf(searchString.toLowerCase()) !== -1;\n      });\n      return filtered;\n    };\n    this.validateAggregateRestrictions = partialTree => {\n      const checkedFiles = partialTree.filter(item => item.type === 'file' && item.status === 'checked');\n      const uppyFiles = checkedFiles.map(file => file.data);\n      return this.plugin.uppy.validateAggregateRestrictions(uppyFiles);\n    };\n    this.plugin = plugin;\n    this.provider = opts.provider;\n    const defaultOptions = {\n      viewType: 'list',\n      showTitles: true,\n      showFilter: true,\n      showBreadcrumbs: true,\n      loadAllFiles: false,\n      virtualList: false\n    };\n    this.opts = {\n      ...defaultOptions,\n      ...opts\n    };\n    this.openFolder = this.openFolder.bind(this);\n    this.logout = this.logout.bind(this);\n    this.handleAuth = this.handleAuth.bind(this);\n    this.handleScroll = this.handleScroll.bind(this);\n    this.resetPluginState = this.resetPluginState.bind(this);\n    this.donePicking = this.donePicking.bind(this);\n    this.render = this.render.bind(this);\n    this.cancelSelection = this.cancelSelection.bind(this);\n    this.toggleCheckbox = this.toggleCheckbox.bind(this);\n\n    // Set default state for the plugin\n    this.resetPluginState();\n\n    // todo\n    // @ts-expect-error this should be typed in @uppy/dashboard.\n    this.plugin.uppy.on('dashboard:close-panel', this.resetPluginState);\n    this.plugin.uppy.registerRequestClient(this.provider.provider, this.provider);\n  }\n  resetPluginState() {\n    this.plugin.setPluginState(getDefaultState(this.plugin.rootFolderId));\n  }\n\n  // eslint-disable-next-line class-methods-use-this\n  tearDown() {\n    // Nothing.\n  }\n  setLoading(loading) {\n    this.plugin.setPluginState({\n      loading\n    });\n  }\n  cancelSelection() {\n    const {\n      partialTree\n    } = this.plugin.getPluginState();\n    const newPartialTree = partialTree.map(item => item.type === 'root' ? item : {\n      ...item,\n      status: 'unchecked'\n    });\n    this.plugin.setPluginState({\n      partialTree: newPartialTree\n    });\n  }\n  async openFolder(folderId) {\n    this.lastCheckbox = null;\n    // Returning cached folder\n    const {\n      partialTree\n    } = this.plugin.getPluginState();\n    const clickedFolder = partialTree.find(folder => folder.id === folderId);\n    if (clickedFolder.cached) {\n      this.plugin.setPluginState({\n        currentFolderId: folderId,\n        searchString: ''\n      });\n      return;\n    }\n    this.setLoading(true);\n    await _classPrivateFieldLooseBase(this, _withAbort)[_withAbort](async signal => {\n      let currentPagePath = folderId;\n      let currentItems = [];\n      do {\n        const {\n          username,\n          nextPagePath,\n          items\n        } = await this.provider.list(currentPagePath, {\n          signal\n        });\n        // It's important to set the username during one of our first fetches\n        this.plugin.setPluginState({\n          username\n        });\n        currentPagePath = nextPagePath;\n        currentItems = currentItems.concat(items);\n        this.setLoading(this.plugin.uppy.i18n('loadedXFiles', {\n          numFiles: currentItems.length\n        }));\n      } while (this.opts.loadAllFiles && currentPagePath);\n      const newPartialTree = PartialTreeUtils.afterOpenFolder(partialTree, currentItems, clickedFolder, currentPagePath, this.validateSingleFile);\n      this.plugin.setPluginState({\n        partialTree: newPartialTree,\n        currentFolderId: folderId,\n        searchString: ''\n      });\n    }).catch(handleError(this.plugin.uppy));\n    this.setLoading(false);\n  }\n\n  /**\n   * Removes session token on client side.\n   */\n  async logout() {\n    await _classPrivateFieldLooseBase(this, _withAbort)[_withAbort](async signal => {\n      const res = await this.provider.logout({\n        signal\n      });\n      // res.ok is from the JSON body, not to be confused with Response.ok\n      if (res.ok) {\n        if (!res.revoked) {\n          const message = this.plugin.uppy.i18n('companionUnauthorizeHint', {\n            provider: this.plugin.title,\n            url: res.manual_revoke_url\n          });\n          this.plugin.uppy.info(message, 'info', 7000);\n        }\n        this.plugin.setPluginState({\n          ...getDefaultState(this.plugin.rootFolderId),\n          authenticated: false\n        });\n      }\n    }).catch(handleError(this.plugin.uppy));\n  }\n  async handleAuth(authFormData) {\n    await _classPrivateFieldLooseBase(this, _withAbort)[_withAbort](async signal => {\n      this.setLoading(true);\n      await this.provider.login({\n        authFormData,\n        signal\n      });\n      this.plugin.setPluginState({\n        authenticated: true\n      });\n      await Promise.all([this.provider.fetchPreAuthToken(), this.openFolder(this.plugin.rootFolderId)]);\n    }).catch(handleError(this.plugin.uppy));\n    this.setLoading(false);\n  }\n  async handleScroll(event) {\n    const {\n      partialTree,\n      currentFolderId\n    } = this.plugin.getPluginState();\n    const currentFolder = partialTree.find(i => i.id === currentFolderId);\n    if (shouldHandleScroll(event) && !this.isHandlingScroll && currentFolder.nextPagePath) {\n      this.isHandlingScroll = true;\n      await _classPrivateFieldLooseBase(this, _withAbort)[_withAbort](async signal => {\n        const {\n          nextPagePath,\n          items\n        } = await this.provider.list(currentFolder.nextPagePath, {\n          signal\n        });\n        const newPartialTree = PartialTreeUtils.afterScrollFolder(partialTree, currentFolderId, items, nextPagePath, this.validateSingleFile);\n        this.plugin.setPluginState({\n          partialTree: newPartialTree\n        });\n      }).catch(handleError(this.plugin.uppy));\n      this.isHandlingScroll = false;\n    }\n  }\n  async donePicking() {\n    const {\n      partialTree\n    } = this.plugin.getPluginState();\n    this.setLoading(true);\n    await _classPrivateFieldLooseBase(this, _withAbort)[_withAbort](async signal => {\n      // 1. Enrich our partialTree by fetching all 'checked' but not-yet-fetched folders\n      const enrichedTree = await PartialTreeUtils.afterFill(partialTree, path => this.provider.list(path, {\n        signal\n      }), this.validateSingleFile, n => {\n        this.setLoading(this.plugin.uppy.i18n('addedNumFiles', {\n          numFiles: n\n        }));\n      });\n\n      // 2. Now that we know how many files there are - recheck aggregateRestrictions!\n      const aggregateRestrictionError = this.validateAggregateRestrictions(enrichedTree);\n      if (aggregateRestrictionError) {\n        this.plugin.setPluginState({\n          partialTree: enrichedTree\n        });\n        return;\n      }\n\n      // 3. Add files\n      const companionFiles = getCheckedFilesWithPaths(enrichedTree);\n      addFiles(companionFiles, this.plugin, this.provider);\n\n      // 4. Reset state\n      this.resetPluginState();\n    }).catch(handleError(this.plugin.uppy));\n    this.setLoading(false);\n  }\n  toggleCheckbox(ourItem, isShiftKeyPressed) {\n    const {\n      partialTree\n    } = this.plugin.getPluginState();\n    const clickedRange = getClickedRange(ourItem.id, this.getDisplayedPartialTree(), isShiftKeyPressed, this.lastCheckbox);\n    const newPartialTree = PartialTreeUtils.afterToggleCheckbox(partialTree, clickedRange);\n    this.plugin.setPluginState({\n      partialTree: newPartialTree\n    });\n    this.lastCheckbox = ourItem.id;\n  }\n  render(state, viewOptions) {\n    if (viewOptions === void 0) {\n      viewOptions = {};\n    }\n    const {\n      didFirstRender\n    } = this.plugin.getPluginState();\n    const {\n      i18n\n    } = this.plugin.uppy;\n    if (!didFirstRender) {\n      this.plugin.setPluginState({\n        didFirstRender: true\n      });\n      this.provider.fetchPreAuthToken();\n      this.openFolder(this.plugin.rootFolderId);\n    }\n    const opts = {\n      ...this.opts,\n      ...viewOptions\n    };\n    const {\n      authenticated,\n      loading\n    } = this.plugin.getPluginState();\n    const pluginIcon = this.plugin.icon || defaultPickerIcon;\n    if (authenticated === false) {\n      return h(AuthView, {\n        pluginName: this.plugin.title,\n        pluginIcon: pluginIcon,\n        handleAuth: this.handleAuth,\n        i18n: this.plugin.uppy.i18n,\n        renderForm: opts.renderAuthForm,\n        loading: loading\n      });\n    }\n    const {\n      partialTree,\n      currentFolderId,\n      username,\n      searchString\n    } = this.plugin.getPluginState();\n    const breadcrumbs = getBreadcrumbs(partialTree, currentFolderId);\n    return h(\"div\", {\n      className: classNames('uppy-ProviderBrowser', `uppy-ProviderBrowser-viewType--${opts.viewType}`)\n    }, h(Header, {\n      showBreadcrumbs: opts.showBreadcrumbs,\n      openFolder: this.openFolder,\n      breadcrumbs: breadcrumbs,\n      pluginIcon: pluginIcon,\n      title: this.plugin.title,\n      logout: this.logout,\n      username: username,\n      i18n: i18n\n    }), opts.showFilter && h(SearchInput, {\n      searchString: searchString,\n      setSearchString: s => {\n        this.plugin.setPluginState({\n          searchString: s\n        });\n      },\n      submitSearchString: () => {},\n      inputLabel: i18n('filter'),\n      clearSearchLabel: i18n('resetFilter'),\n      wrapperClassName: \"uppy-ProviderBrowser-searchFilter\",\n      inputClassName: \"uppy-ProviderBrowser-searchFilterInput\"\n    }), h(Browser, {\n      toggleCheckbox: this.toggleCheckbox,\n      displayedPartialTree: this.getDisplayedPartialTree(),\n      openFolder: this.openFolder,\n      virtualList: opts.virtualList,\n      noResultsLabel: i18n('noFilesFound'),\n      handleScroll: this.handleScroll,\n      viewType: opts.viewType,\n      showTitles: opts.showTitles,\n      i18n: this.plugin.uppy.i18n,\n      isLoading: loading,\n      utmSource: \"Companion\"\n    }), h(FooterActions, {\n      partialTree: partialTree,\n      donePicking: this.donePicking,\n      cancelSelection: this.cancelSelection,\n      i18n: i18n,\n      validateAggregateRestrictions: this.validateAggregateRestrictions\n    }));\n  }\n}\nasync function _withAbort2(op) {\n  var _classPrivateFieldLoo;\n  // prevent multiple requests in parallel from causing race conditions\n  (_classPrivateFieldLoo = _classPrivateFieldLooseBase(this, _abortController)[_abortController]) == null || _classPrivateFieldLoo.abort();\n  const abortController = new AbortController();\n  _classPrivateFieldLooseBase(this, _abortController)[_abortController] = abortController;\n  const cancelRequest = () => {\n    abortController.abort();\n  };\n  try {\n    // @ts-expect-error this should be typed in @uppy/dashboard.\n    // Even then I don't think we can make this work without adding dashboard\n    // as a dependency to provider-views.\n    this.plugin.uppy.on('dashboard:close-panel', cancelRequest);\n    this.plugin.uppy.on('cancel-all', cancelRequest);\n    await op(abortController.signal);\n  } finally {\n    // @ts-expect-error this should be typed in @uppy/dashboard.\n    // Even then I don't think we can make this work without adding dashboard\n    // as a dependency to provider-views.\n    this.plugin.uppy.off('dashboard:close-panel', cancelRequest);\n    this.plugin.uppy.off('cancel-all', cancelRequest);\n    _classPrivateFieldLooseBase(this, _abortController)[_abortController] = undefined;\n  }\n}\nProviderView.VERSION = packageJson.version;","var safeIsNaN = Number.isNaN ||\n    function ponyfill(value) {\n        return typeof value === 'number' && value !== value;\n    };\nfunction isEqual(first, second) {\n    if (first === second) {\n        return true;\n    }\n    if (safeIsNaN(first) && safeIsNaN(second)) {\n        return true;\n    }\n    return false;\n}\nfunction areInputsEqual(newInputs, lastInputs) {\n    if (newInputs.length !== lastInputs.length) {\n        return false;\n    }\n    for (var i = 0; i < newInputs.length; i++) {\n        if (!isEqual(newInputs[i], lastInputs[i])) {\n            return false;\n        }\n    }\n    return true;\n}\n\nfunction memoizeOne(resultFn, isEqual) {\n    if (isEqual === void 0) { isEqual = areInputsEqual; }\n    var cache = null;\n    function memoized() {\n        var newArgs = [];\n        for (var _i = 0; _i < arguments.length; _i++) {\n            newArgs[_i] = arguments[_i];\n        }\n        if (cache && cache.lastThis === this && isEqual(newArgs, cache.lastArgs)) {\n            return cache.lastResult;\n        }\n        var lastResult = resultFn.apply(this, newArgs);\n        cache = {\n            lastResult: lastResult,\n            lastArgs: newArgs,\n            lastThis: this,\n        };\n        return lastResult;\n    }\n    memoized.clear = function clear() {\n        cache = null;\n    };\n    return memoized;\n}\n\nexport { memoizeOne as default };\n","export default ['a[href]:not([tabindex^=\"-\"]):not([inert]):not([aria-hidden])', 'area[href]:not([tabindex^=\"-\"]):not([inert]):not([aria-hidden])', 'input:not([disabled]):not([inert]):not([aria-hidden])', 'select:not([disabled]):not([inert]):not([aria-hidden])', 'textarea:not([disabled]):not([inert]):not([aria-hidden])', 'button:not([disabled]):not([inert]):not([aria-hidden])', 'iframe:not([tabindex^=\"-\"]):not([inert]):not([aria-hidden])', 'object:not([tabindex^=\"-\"]):not([inert]):not([aria-hidden])', 'embed:not([tabindex^=\"-\"]):not([inert]):not([aria-hidden])', '[contenteditable]:not([tabindex^=\"-\"]):not([inert]):not([aria-hidden])', '[tabindex]:not([tabindex^=\"-\"]):not([inert]):not([aria-hidden])'];","/**\n * @returns {HTMLElement} - either dashboard element, or the overlay that's most on top\n */\nexport default function getActiveOverlayEl(dashboardEl, activeOverlayType) {\n  if (activeOverlayType) {\n    const overlayEl = dashboardEl.querySelector(`[data-uppy-paneltype=\"${activeOverlayType}\"]`);\n    // if an overlay is already mounted\n    if (overlayEl) return overlayEl;\n  }\n  return dashboardEl;\n}","import toArray from '@uppy/utils/lib/toArray';\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore untyped\nimport FOCUSABLE_ELEMENTS from '@uppy/utils/lib/FOCUSABLE_ELEMENTS';\nimport getActiveOverlayEl from './getActiveOverlayEl.js';\nfunction focusOnFirstNode(event, nodes) {\n  const node = nodes[0];\n  if (node) {\n    node.focus();\n    event.preventDefault();\n  }\n}\nfunction focusOnLastNode(event, nodes) {\n  const node = nodes[nodes.length - 1];\n  if (node) {\n    node.focus();\n    event.preventDefault();\n  }\n}\n\n// ___Why not just use (focusedItemIndex === -1)?\n//    Firefox thinks <ul> is focusable, but we don't have <ul>s in our FOCUSABLE_ELEMENTS. Which means that if we tab into\n//    the <ul>, code will think that we are not in the active overlay, and we should focusOnFirstNode() of the currently\n//    active overlay!\n//    [Practical check] if we use (focusedItemIndex === -1), instagram provider in firefox will never get focus on its pics\n//    in the <ul>.\nfunction isFocusInOverlay(activeOverlayEl) {\n  return activeOverlayEl.contains(document.activeElement);\n}\nfunction trapFocus(event, activeOverlayType, dashboardEl) {\n  const activeOverlayEl = getActiveOverlayEl(dashboardEl, activeOverlayType);\n  const focusableNodes = toArray(activeOverlayEl.querySelectorAll(FOCUSABLE_ELEMENTS));\n  const focusedItemIndex = focusableNodes.indexOf(document.activeElement);\n\n  // If we pressed tab, and focus is not yet within the current overlay - focus on\n  // the first element within the current overlay.\n  // This is a safety measure (for when user returns from another tab e.g.), most\n  // plugins will try to focus on some important element as it loads.\n  if (!isFocusInOverlay(activeOverlayEl)) {\n    focusOnFirstNode(event, focusableNodes);\n    // If we pressed shift + tab, and we're on the first element of a modal\n  } else if (event.shiftKey && focusedItemIndex === 0) {\n    focusOnLastNode(event, focusableNodes);\n    // If we pressed tab, and we're on the last element of the modal\n  } else if (!event.shiftKey && focusedItemIndex === focusableNodes.length - 1) {\n    focusOnFirstNode(event, focusableNodes);\n  }\n}\n\n// Traps focus inside of the currently open overlay (e.g. Dashboard, or e.g. Instagram),\n// never lets focus disappear from the modal.\nexport { trapFocus as forModal };\n\n// Traps focus inside of the currently open overlay, unless overlay is null - then let the user tab away.\nexport function forInline(event, activeOverlayType, dashboardEl) {\n  // ___When we're in the bare 'Drop files here, paste, browse or import from' screen\n  if (activeOverlayType === null) {\n    // Do nothing and let the browser handle it, user can tab away from Uppy to other elements on the page\n    // ___When there is some overlay with 'Done' button\n  } else {\n    // Trap the focus inside this overlay!\n    // User can close the overlay (click 'Done') if they want to travel away from Uppy.\n    trapFocus(event, activeOverlayType, dashboardEl);\n  }\n}","import debounce from 'lodash/debounce.js';\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore untyped\nimport FOCUSABLE_ELEMENTS from '@uppy/utils/lib/FOCUSABLE_ELEMENTS';\nimport getActiveOverlayEl from './getActiveOverlayEl.js';\n/*\n  Focuses on some element in the currently topmost overlay.\n\n  1. If there are some [data-uppy-super-focusable] elements rendered already - focuses\n     on the first superfocusable element, and leaves focus up to the control of\n     a user (until currently focused element disappears from the screen [which\n     can happen when overlay changes, or, e.g., when we click on a folder in googledrive]).\n  2. If there are no [data-uppy-super-focusable] elements yet (or ever) - focuses\n     on the first focusable element, but switches focus if superfocusable elements appear on next render.\n*/\nexport default function createSuperFocus() {\n  let lastFocusWasOnSuperFocusableEl = false;\n  const superFocus = (dashboardEl, activeOverlayType) => {\n    const overlayEl = getActiveOverlayEl(dashboardEl, activeOverlayType);\n    const isFocusInOverlay = overlayEl.contains(document.activeElement);\n    // If focus is already in the topmost overlay, AND on last update we focused on the superfocusable\n    // element - then leave focus up to the user.\n    // [Practical check] without this line, typing in the search input in googledrive overlay won't work.\n    if (isFocusInOverlay && lastFocusWasOnSuperFocusableEl) return;\n    const superFocusableEl = overlayEl.querySelector('[data-uppy-super-focusable]');\n    // If we are already in the topmost overlay, AND there are no super focusable elements yet, - leave focus up to the user.\n    // [Practical check] without this line, if you are in an empty folder in google drive, and something's uploading in the\n    // bg, - focus will be jumping to Done all the time.\n    if (isFocusInOverlay && !superFocusableEl) return;\n    if (superFocusableEl) {\n      superFocusableEl.focus({\n        preventScroll: true\n      });\n      lastFocusWasOnSuperFocusableEl = true;\n    } else {\n      const firstEl = overlayEl.querySelector(FOCUSABLE_ELEMENTS);\n      firstEl == null || firstEl.focus({\n        preventScroll: true\n      });\n      lastFocusWasOnSuperFocusableEl = false;\n    }\n  };\n\n  // ___Why do we need to debounce?\n  //    1. To deal with animations: overlay changes via animations, which results in the DOM updating AFTER plugin.update()\n  //       already executed.\n  //    [Practical check] without debounce, if we open the Url overlay, and click 'Done', Dashboard won't get focused again.\n  //    [Practical check] if we delay 250ms instead of 260ms - IE11 won't get focused in same situation.\n  //    2. Performance: there can be many state update()s in a second, and this function is called every time.\n  return debounce(superFocus, 260);\n}","/**\n * Checks if the browser supports Drag & Drop (not supported on mobile devices, for example).\n */\nexport default function isDragDropSupported() {\n  const div = document.body;\n  if (!('draggable' in div) || !('ondragstart' in div && 'ondrop' in div)) {\n    return false;\n  }\n  if (!('FormData' in window)) {\n    return false;\n  }\n  if (!('FileReader' in window)) {\n    return false;\n  }\n  return true;\n}","function shallowEqualArrays(arrA, arrB) {\n  if (arrA === arrB) {\n    return true;\n  }\n  if (!arrA || !arrB) {\n    return false;\n  }\n  const len = arrA.length;\n  if (arrB.length !== len) {\n    return false;\n  }\n  for (let i = 0; i < len; i++) {\n    if (arrA[i] !== arrB[i]) {\n      return false;\n    }\n  }\n  return true;\n}\n\nfunction shallowEqualObjects(objA, objB) {\n  if (objA === objB) {\n    return true;\n  }\n  if (!objA || !objB) {\n    return false;\n  }\n  const aKeys = Object.keys(objA);\n  const bKeys = Object.keys(objB);\n  const len = aKeys.length;\n  if (bKeys.length !== len) {\n    return false;\n  }\n  for (let i = 0; i < len; i++) {\n    const key = aKeys[i];\n    if (objA[key] !== objB[key] || !Object.prototype.hasOwnProperty.call(objB, key)) {\n      return false;\n    }\n  }\n  return true;\n}\n\nfunction shallowEqual(a, b) {\n  const aIsArr = Array.isArray(a);\n  const bIsArr = Array.isArray(b);\n  if (aIsArr !== bIsArr) {\n    return false;\n  }\n  if (aIsArr && bIsArr) {\n    return shallowEqualArrays(a, b);\n  }\n  return shallowEqualObjects(a, b);\n}\n\nexport { shallowEqual, shallowEqualArrays, shallowEqualObjects };\n//# sourceMappingURL=index.modern.mjs.map\n","import { h } from 'preact';\nfunction iconImage() {\n  return h(\"svg\", {\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    width: \"25\",\n    height: \"25\",\n    viewBox: \"0 0 25 25\"\n  }, h(\"g\", {\n    fill: \"#686DE0\",\n    fillRule: \"evenodd\"\n  }, h(\"path\", {\n    d: \"M5 7v10h15V7H5zm0-1h15a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1z\",\n    fillRule: \"nonzero\"\n  }), h(\"path\", {\n    d: \"M6.35 17.172l4.994-5.026a.5.5 0 0 1 .707 0l2.16 2.16 3.505-3.505a.5.5 0 0 1 .707 0l2.336 2.31-.707.72-1.983-1.97-3.505 3.505a.5.5 0 0 1-.707 0l-2.16-2.159-3.938 3.939-1.409.026z\",\n    fillRule: \"nonzero\"\n  }), h(\"circle\", {\n    cx: \"7.5\",\n    cy: \"9.5\",\n    r: \"1.5\"\n  })));\n}\nfunction iconAudio() {\n  return h(\"svg\", {\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    className: \"uppy-c-icon\",\n    width: \"25\",\n    height: \"25\",\n    viewBox: \"0 0 25 25\"\n  }, h(\"path\", {\n    d: \"M9.5 18.64c0 1.14-1.145 2-2.5 2s-2.5-.86-2.5-2c0-1.14 1.145-2 2.5-2 .557 0 1.079.145 1.5.396V7.25a.5.5 0 0 1 .379-.485l9-2.25A.5.5 0 0 1 18.5 5v11.64c0 1.14-1.145 2-2.5 2s-2.5-.86-2.5-2c0-1.14 1.145-2 2.5-2 .557 0 1.079.145 1.5.396V8.67l-8 2v7.97zm8-11v-2l-8 2v2l8-2zM7 19.64c.855 0 1.5-.484 1.5-1s-.645-1-1.5-1-1.5.484-1.5 1 .645 1 1.5 1zm9-2c.855 0 1.5-.484 1.5-1s-.645-1-1.5-1-1.5.484-1.5 1 .645 1 1.5 1z\",\n    fill: \"#049BCF\",\n    fillRule: \"nonzero\"\n  }));\n}\nfunction iconVideo() {\n  return h(\"svg\", {\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    className: \"uppy-c-icon\",\n    width: \"25\",\n    height: \"25\",\n    viewBox: \"0 0 25 25\"\n  }, h(\"path\", {\n    d: \"M16 11.834l4.486-2.691A1 1 0 0 1 22 10v6a1 1 0 0 1-1.514.857L16 14.167V17a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V9a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v2.834zM15 9H5v8h10V9zm1 4l5 3v-6l-5 3z\",\n    fill: \"#19AF67\",\n    fillRule: \"nonzero\"\n  }));\n}\nfunction iconPDF() {\n  return h(\"svg\", {\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    className: \"uppy-c-icon\",\n    width: \"25\",\n    height: \"25\",\n    viewBox: \"0 0 25 25\"\n  }, h(\"path\", {\n    d: \"M9.766 8.295c-.691-1.843-.539-3.401.747-3.726 1.643-.414 2.505.938 2.39 3.299-.039.79-.194 1.662-.537 3.148.324.49.66.967 1.055 1.51.17.231.382.488.629.757 1.866-.128 3.653.114 4.918.655 1.487.635 2.192 1.685 1.614 2.84-.566 1.133-1.839 1.084-3.416.249-1.141-.604-2.457-1.634-3.51-2.707a13.467 13.467 0 0 0-2.238.426c-1.392 4.051-4.534 6.453-5.707 4.572-.986-1.58 1.38-4.206 4.914-5.375.097-.322.185-.656.264-1.001.08-.353.306-1.31.407-1.737-.678-1.059-1.2-2.031-1.53-2.91zm2.098 4.87c-.033.144-.068.287-.104.427l.033-.01-.012.038a14.065 14.065 0 0 1 1.02-.197l-.032-.033.052-.004a7.902 7.902 0 0 1-.208-.271c-.197-.27-.38-.526-.555-.775l-.006.028-.002-.003c-.076.323-.148.632-.186.8zm5.77 2.978c1.143.605 1.832.632 2.054.187.26-.519-.087-1.034-1.113-1.473-.911-.39-2.175-.608-3.55-.608.845.766 1.787 1.459 2.609 1.894zM6.559 18.789c.14.223.693.16 1.425-.413.827-.648 1.61-1.747 2.208-3.206-2.563 1.064-4.102 2.867-3.633 3.62zm5.345-10.97c.088-1.793-.351-2.48-1.146-2.28-.473.119-.564 1.05-.056 2.405.213.566.52 1.188.908 1.859.18-.858.268-1.453.294-1.984z\",\n    fill: \"#E2514A\",\n    fillRule: \"nonzero\"\n  }));\n}\nfunction iconArchive() {\n  return h(\"svg\", {\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    width: \"25\",\n    height: \"25\",\n    viewBox: \"0 0 25 25\"\n  }, h(\"path\", {\n    d: \"M10.45 2.05h1.05a.5.5 0 0 1 .5.5v.024a.5.5 0 0 1-.5.5h-1.05a.5.5 0 0 1-.5-.5V2.55a.5.5 0 0 1 .5-.5zm2.05 1.024h1.05a.5.5 0 0 1 .5.5V3.6a.5.5 0 0 1-.5.5H12.5a.5.5 0 0 1-.5-.5v-.025a.5.5 0 0 1 .5-.5v-.001zM10.45 0h1.05a.5.5 0 0 1 .5.5v.025a.5.5 0 0 1-.5.5h-1.05a.5.5 0 0 1-.5-.5V.5a.5.5 0 0 1 .5-.5zm2.05 1.025h1.05a.5.5 0 0 1 .5.5v.024a.5.5 0 0 1-.5.5H12.5a.5.5 0 0 1-.5-.5v-.024a.5.5 0 0 1 .5-.5zm-2.05 3.074h1.05a.5.5 0 0 1 .5.5v.025a.5.5 0 0 1-.5.5h-1.05a.5.5 0 0 1-.5-.5v-.025a.5.5 0 0 1 .5-.5zm2.05 1.025h1.05a.5.5 0 0 1 .5.5v.024a.5.5 0 0 1-.5.5H12.5a.5.5 0 0 1-.5-.5v-.024a.5.5 0 0 1 .5-.5zm-2.05 1.024h1.05a.5.5 0 0 1 .5.5v.025a.5.5 0 0 1-.5.5h-1.05a.5.5 0 0 1-.5-.5v-.025a.5.5 0 0 1 .5-.5zm2.05 1.025h1.05a.5.5 0 0 1 .5.5v.025a.5.5 0 0 1-.5.5H12.5a.5.5 0 0 1-.5-.5v-.025a.5.5 0 0 1 .5-.5zm-2.05 1.025h1.05a.5.5 0 0 1 .5.5v.025a.5.5 0 0 1-.5.5h-1.05a.5.5 0 0 1-.5-.5v-.025a.5.5 0 0 1 .5-.5zm2.05 1.025h1.05a.5.5 0 0 1 .5.5v.024a.5.5 0 0 1-.5.5H12.5a.5.5 0 0 1-.5-.5v-.024a.5.5 0 0 1 .5-.5zm-1.656 3.074l-.82 5.946c.52.302 1.174.458 1.976.458.803 0 1.455-.156 1.975-.458l-.82-5.946h-2.311zm0-1.025h2.312c.512 0 .946.378 1.015.885l.82 5.946c.056.412-.142.817-.501 1.026-.686.398-1.515.597-2.49.597-.974 0-1.804-.199-2.49-.597a1.025 1.025 0 0 1-.5-1.026l.819-5.946c.07-.507.503-.885 1.015-.885zm.545 6.6a.5.5 0 0 1-.397-.561l.143-.999a.5.5 0 0 1 .495-.429h.74a.5.5 0 0 1 .495.43l.143.998a.5.5 0 0 1-.397.561c-.404.08-.819.08-1.222 0z\",\n    fill: \"#00C469\",\n    fillRule: \"nonzero\"\n  }));\n}\nfunction iconFile() {\n  return h(\"svg\", {\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    className: \"uppy-c-icon\",\n    width: \"25\",\n    height: \"25\",\n    viewBox: \"0 0 25 25\"\n  }, h(\"g\", {\n    fill: \"#A7AFB7\",\n    fillRule: \"nonzero\"\n  }, h(\"path\", {\n    d: \"M5.5 22a.5.5 0 0 1-.5-.5v-18a.5.5 0 0 1 .5-.5h10.719a.5.5 0 0 1 .367.16l3.281 3.556a.5.5 0 0 1 .133.339V21.5a.5.5 0 0 1-.5.5h-14zm.5-1h13V7.25L16 4H6v17z\"\n  }), h(\"path\", {\n    d: \"M15 4v3a1 1 0 0 0 1 1h3V7h-3V4h-1z\"\n  })));\n}\nfunction iconText() {\n  return h(\"svg\", {\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    className: \"uppy-c-icon\",\n    width: \"25\",\n    height: \"25\",\n    viewBox: \"0 0 25 25\"\n  }, h(\"path\", {\n    d: \"M4.5 7h13a.5.5 0 1 1 0 1h-13a.5.5 0 0 1 0-1zm0 3h15a.5.5 0 1 1 0 1h-15a.5.5 0 1 1 0-1zm0 3h15a.5.5 0 1 1 0 1h-15a.5.5 0 1 1 0-1zm0 3h10a.5.5 0 1 1 0 1h-10a.5.5 0 1 1 0-1z\",\n    fill: \"#5A5E69\",\n    fillRule: \"nonzero\"\n  }));\n}\nexport default function getIconByMime(fileType) {\n  const defaultChoice = {\n    color: '#838999',\n    icon: iconFile()\n  };\n  if (!fileType) return defaultChoice;\n  const fileTypeGeneral = fileType.split('/')[0];\n  const fileTypeSpecific = fileType.split('/')[1];\n\n  // Text\n  if (fileTypeGeneral === 'text') {\n    return {\n      color: '#5a5e69',\n      icon: iconText()\n    };\n  }\n\n  // Image\n  if (fileTypeGeneral === 'image') {\n    return {\n      color: '#686de0',\n      icon: iconImage()\n    };\n  }\n\n  // Audio\n  if (fileTypeGeneral === 'audio') {\n    return {\n      color: '#068dbb',\n      icon: iconAudio()\n    };\n  }\n\n  // Video\n  if (fileTypeGeneral === 'video') {\n    return {\n      color: '#19af67',\n      icon: iconVideo()\n    };\n  }\n\n  // PDF\n  if (fileTypeGeneral === 'application' && fileTypeSpecific === 'pdf') {\n    return {\n      color: '#e25149',\n      icon: iconPDF()\n    };\n  }\n\n  // Archive\n  const archiveTypes = ['zip', 'x-7z-compressed', 'x-zip-compressed', 'x-rar-compressed', 'x-tar', 'x-gzip', 'x-apple-diskimage'];\n  if (fileTypeGeneral === 'application' && archiveTypes.indexOf(fileTypeSpecific) !== -1) {\n    return {\n      color: '#00C469',\n      icon: iconArchive()\n    };\n  }\n  return defaultChoice;\n}","import { h } from 'preact';\nimport getFileTypeIcon from \"../utils/getFileTypeIcon.js\";\nexport default function FilePreview(props) {\n  const {\n    file\n  } = props;\n  if (file.preview) {\n    return h(\"img\", {\n      draggable: false,\n      className: \"uppy-Dashboard-Item-previewImg\",\n      alt: file.name,\n      src: file.preview\n    });\n  }\n  const {\n    color,\n    icon\n  } = getFileTypeIcon(file.type);\n  return h(\"div\", {\n    className: \"uppy-Dashboard-Item-previewIconWrap\"\n  }, h(\"span\", {\n    className: \"uppy-Dashboard-Item-previewIcon\",\n    style: {\n      color\n    }\n  }, icon), h(\"svg\", {\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    className: \"uppy-Dashboard-Item-previewIconBg\",\n    width: \"58\",\n    height: \"76\",\n    viewBox: \"0 0 58 76\"\n  }, h(\"rect\", {\n    fill: \"#FFF\",\n    width: \"58\",\n    height: \"76\",\n    rx: \"3\",\n    fillRule: \"evenodd\"\n  })));\n}","import { h } from 'preact';\nconst metaFieldIdToName = (metaFieldId, metaFields) => {\n  const fields = typeof metaFields === 'function' ? metaFields() : metaFields;\n  const field = fields.filter(f => f.id === metaFieldId);\n  return field[0].name;\n};\nexport default function MetaErrorMessage(props) {\n  const {\n    file,\n    toggleFileCard,\n    i18n,\n    metaFields\n  } = props;\n  const {\n    missingRequiredMetaFields\n  } = file;\n  if (!(missingRequiredMetaFields != null && missingRequiredMetaFields.length)) {\n    return null;\n  }\n  const metaFieldsString = missingRequiredMetaFields.map(missingMetaField => metaFieldIdToName(missingMetaField, metaFields)).join(', ');\n  return h(\"div\", {\n    className: \"uppy-Dashboard-Item-errorMessage\"\n  }, i18n('missingRequiredMetaFields', {\n    smart_count: missingRequiredMetaFields.length,\n    fields: metaFieldsString\n  }), ' ', h(\"button\", {\n    type: \"button\",\n    class: \"uppy-u-reset uppy-Dashboard-Item-errorMessageBtn\",\n    onClick: () => toggleFileCard(true, file.id)\n  }, i18n('editFile')));\n}","import { h } from 'preact';\nimport FilePreview from \"../../FilePreview.js\";\nimport MetaErrorMessage from \"../MetaErrorMessage.js\";\nimport getFileTypeIcon from \"../../../utils/getFileTypeIcon.js\";\nexport default function FilePreviewAndLink(props) {\n  const {\n    file,\n    i18n,\n    toggleFileCard,\n    metaFields,\n    showLinkToFileUploadResult\n  } = props;\n  const white = 'rgba(255, 255, 255, 0.5)';\n  const previewBackgroundColor = file.preview ? white : getFileTypeIcon(file.type).color;\n  return h(\"div\", {\n    className: \"uppy-Dashboard-Item-previewInnerWrap\",\n    style: {\n      backgroundColor: previewBackgroundColor\n    }\n  }, showLinkToFileUploadResult && file.uploadURL && h(\"a\", {\n    className: \"uppy-Dashboard-Item-previewLink\",\n    href: file.uploadURL,\n    rel: \"noreferrer noopener\",\n    target: \"_blank\",\n    \"aria-label\": file.meta.name\n  }, h(\"span\", {\n    hidden: true\n  }, file.meta.name)), h(FilePreview, {\n    file: file\n  }), h(MetaErrorMessage, {\n    file: file,\n    i18n: i18n,\n    toggleFileCard: toggleFileCard,\n    metaFields: metaFields\n  }));\n}","/* eslint-disable react/no-unused-prop-types */\n/* eslint-disable react/destructuring-assignment */\n\nimport { h } from 'preact';\nfunction onPauseResumeCancelRetry(props) {\n  if (props.isUploaded) return;\n  if (props.error && !props.hideRetryButton) {\n    props.uppy.retryUpload(props.file.id);\n    return;\n  }\n  if (props.resumableUploads && !props.hidePauseResumeButton) {\n    props.uppy.pauseResume(props.file.id);\n  } else if (props.individualCancellation && !props.hideCancelButton) {\n    props.uppy.removeFile(props.file.id);\n  }\n}\nfunction progressIndicatorTitle(props) {\n  if (props.isUploaded) {\n    return props.i18n('uploadComplete');\n  }\n  if (props.error) {\n    return props.i18n('retryUpload');\n  }\n  if (props.resumableUploads) {\n    if (props.file.isPaused) {\n      return props.i18n('resumeUpload');\n    }\n    return props.i18n('pauseUpload');\n  }\n  if (props.individualCancellation) {\n    return props.i18n('cancelUpload');\n  }\n  return '';\n}\nfunction ProgressIndicatorButton(props) {\n  return h(\"div\", {\n    className: \"uppy-Dashboard-Item-progress\"\n  }, h(\"button\", {\n    className: \"uppy-u-reset uppy-c-btn uppy-Dashboard-Item-progressIndicator\",\n    type: \"button\",\n    \"aria-label\": progressIndicatorTitle(props),\n    title: progressIndicatorTitle(props),\n    onClick: () => onPauseResumeCancelRetry(props)\n  }, props.children));\n}\nfunction ProgressCircleContainer(_ref) {\n  let {\n    children\n  } = _ref;\n  return h(\"svg\", {\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    width: \"70\",\n    height: \"70\",\n    viewBox: \"0 0 36 36\",\n    className: \"uppy-c-icon uppy-Dashboard-Item-progressIcon--circle\"\n  }, children);\n}\nfunction ProgressCircle(_ref2) {\n  let {\n    progress\n  } = _ref2;\n  // circle length equals 2 * PI * R\n  const circleLength = 2 * Math.PI * 15;\n  return h(\"g\", null, h(\"circle\", {\n    className: \"uppy-Dashboard-Item-progressIcon--bg\",\n    r: \"15\",\n    cx: \"18\",\n    cy: \"18\",\n    \"stroke-width\": \"2\",\n    fill: \"none\"\n  }), h(\"circle\", {\n    className: \"uppy-Dashboard-Item-progressIcon--progress\",\n    r: \"15\",\n    cx: \"18\",\n    cy: \"18\",\n    transform: \"rotate(-90, 18, 18)\",\n    fill: \"none\",\n    \"stroke-width\": \"2\",\n    \"stroke-dasharray\": circleLength,\n    \"stroke-dashoffset\": circleLength - circleLength / 100 * progress\n  }));\n}\nexport default function FileProgress(props) {\n  // Nothing if upload has not started\n  if (!props.file.progress.uploadStarted) {\n    return null;\n  }\n  if (props.file.progress.percentage === undefined) {\n    return null;\n  }\n\n  // Green checkmark when complete\n  if (props.isUploaded) {\n    return h(\"div\", {\n      className: \"uppy-Dashboard-Item-progress\"\n    }, h(\"div\", {\n      className: \"uppy-Dashboard-Item-progressIndicator\"\n    }, h(ProgressCircleContainer, null, h(\"circle\", {\n      r: \"15\",\n      cx: \"18\",\n      cy: \"18\",\n      fill: \"#1bb240\"\n    }), h(\"polygon\", {\n      className: \"uppy-Dashboard-Item-progressIcon--check\",\n      transform: \"translate(2, 3)\",\n      points: \"14 22.5 7 15.2457065 8.99985857 13.1732815 14 18.3547104 22.9729883 9 25 11.1005634\"\n    }))));\n  }\n  if (props.recoveredState) {\n    return null;\n  }\n\n  // Retry button for error\n  if (props.error && !props.hideRetryButton) {\n    return (\n      // eslint-disable-next-line react/jsx-props-no-spreading\n      h(ProgressIndicatorButton, props, h(\"svg\", {\n        \"aria-hidden\": \"true\",\n        focusable: \"false\",\n        className: \"uppy-c-icon uppy-Dashboard-Item-progressIcon--retry\",\n        width: \"28\",\n        height: \"31\",\n        viewBox: \"0 0 16 19\"\n      }, h(\"path\", {\n        d: \"M16 11a8 8 0 1 1-8-8v2a6 6 0 1 0 6 6h2z\"\n      }), h(\"path\", {\n        d: \"M7.9 3H10v2H7.9z\"\n      }), h(\"path\", {\n        d: \"M8.536.5l3.535 3.536-1.414 1.414L7.12 1.914z\"\n      }), h(\"path\", {\n        d: \"M10.657 2.621l1.414 1.415L8.536 7.57 7.12 6.157z\"\n      })))\n    );\n  }\n\n  // Pause/resume button for resumable uploads\n  if (props.resumableUploads && !props.hidePauseResumeButton) {\n    return (\n      // eslint-disable-next-line react/jsx-props-no-spreading\n      h(ProgressIndicatorButton, props, h(ProgressCircleContainer, null, h(ProgressCircle, {\n        progress: props.file.progress.percentage\n      }), props.file.isPaused ? h(\"polygon\", {\n        className: \"uppy-Dashboard-Item-progressIcon--play\",\n        transform: \"translate(3, 3)\",\n        points: \"12 20 12 10 20 15\"\n      }) : h(\"g\", {\n        className: \"uppy-Dashboard-Item-progressIcon--pause\",\n        transform: \"translate(14.5, 13)\"\n      }, h(\"rect\", {\n        x: \"0\",\n        y: \"0\",\n        width: \"2\",\n        height: \"10\",\n        rx: \"0\"\n      }), h(\"rect\", {\n        x: \"5\",\n        y: \"0\",\n        width: \"2\",\n        height: \"10\",\n        rx: \"0\"\n      }))))\n    );\n  }\n\n  // Cancel button for non-resumable uploads if individualCancellation is supported (not bundled)\n  if (!props.resumableUploads && props.individualCancellation && !props.hideCancelButton) {\n    return (\n      // eslint-disable-next-line react/jsx-props-no-spreading\n      h(ProgressIndicatorButton, props, h(ProgressCircleContainer, null, h(ProgressCircle, {\n        progress: props.file.progress.percentage\n      }), h(\"polygon\", {\n        className: \"cancel\",\n        transform: \"translate(2, 2)\",\n        points: \"19.8856516 11.0625 16 14.9481516 12.1019737 11.0625 11.0625 12.1143484 14.9481516 16 11.0625 19.8980263 12.1019737 20.9375 16 17.0518484 19.8856516 20.9375 20.9375 19.8980263 17.0518484 16 20.9375 12\"\n      })))\n    );\n  }\n\n  // Just progress when buttons are disabled\n  return h(\"div\", {\n    className: \"uppy-Dashboard-Item-progress\"\n  }, h(\"div\", {\n    className: \"uppy-Dashboard-Item-progressIndicator\"\n  }, h(ProgressCircleContainer, null, h(ProgressCircle, {\n    progress: props.file.progress.percentage\n  }))));\n}","/**\n * Truncates a string to the given number of chars (maxLength) by inserting '...' in the middle of that string.\n * Partially taken from https://stackoverflow.com/a/5723274/3192470.\n */\nconst separator = '...';\nexport default function truncateString(string, maxLength) {\n  // Return the empty string if maxLength is zero\n  if (maxLength === 0) return '';\n  // Return original string if it's already shorter than maxLength\n  if (string.length <= maxLength) return string;\n  // Return truncated substring appended of the ellipsis char if string can't be meaningfully truncated\n  if (maxLength <= separator.length + 1) return `${string.slice(0, maxLength - 1)}…`;\n  const charsToShow = maxLength - separator.length;\n  const frontChars = Math.ceil(charsToShow / 2);\n  const backChars = Math.floor(charsToShow / 2);\n  return string.slice(0, frontChars) + separator + string.slice(-backChars);\n}","/* eslint-disable react/destructuring-assignment */\nimport { h } from 'preact';\nimport prettierBytes from '@transloadit/prettier-bytes';\nimport truncateString from '@uppy/utils/lib/truncateString';\nimport MetaErrorMessage from \"../MetaErrorMessage.js\";\nconst renderFileName = props => {\n  const {\n    author,\n    name\n  } = props.file.meta;\n  function getMaxNameLength() {\n    if (props.isSingleFile && props.containerHeight >= 350) {\n      return 90;\n    }\n    if (props.containerWidth <= 352) {\n      return 35;\n    }\n    if (props.containerWidth <= 576) {\n      return 60;\n    }\n    // When `author` is present, we want to make sure\n    // the file name fits on one line so we can place\n    // the author on the second line.\n    return author ? 20 : 30;\n  }\n  return h(\"div\", {\n    className: \"uppy-Dashboard-Item-name\",\n    title: name\n  }, truncateString(name, getMaxNameLength()));\n};\nconst renderAuthor = props => {\n  var _props$file$remote;\n  const {\n    author\n  } = props.file.meta;\n  const providerName = (_props$file$remote = props.file.remote) == null ? void 0 : _props$file$remote.providerName;\n  const dot = `\\u00B7`;\n  if (!author) {\n    return null;\n  }\n  return h(\"div\", {\n    className: \"uppy-Dashboard-Item-author\"\n  }, h(\"a\", {\n    href: `${author.url}?utm_source=Companion&utm_medium=referral`,\n    target: \"_blank\",\n    rel: \"noopener noreferrer\"\n  }, truncateString(author.name, 13)), providerName ? h(Fragment, null, ` ${dot} `, providerName, ` ${dot} `) : null);\n};\nconst renderFileSize = props => props.file.size && h(\"div\", {\n  className: \"uppy-Dashboard-Item-statusSize\"\n}, prettierBytes(props.file.size));\nconst ReSelectButton = props => props.file.isGhost && h(\"span\", null, ' \\u2022 ', h(\"button\", {\n  className: \"uppy-u-reset uppy-c-btn uppy-Dashboard-Item-reSelect\",\n  type: \"button\",\n  onClick: () => props.toggleAddFilesPanel(true)\n}, props.i18n('reSelect')));\nconst ErrorButton = _ref => {\n  let {\n    file,\n    onClick\n  } = _ref;\n  if (file.error) {\n    return h(\"button\", {\n      className: \"uppy-u-reset uppy-c-btn uppy-Dashboard-Item-errorDetails\",\n      \"aria-label\": file.error,\n      \"data-microtip-position\": \"bottom\",\n      \"data-microtip-size\": \"medium\",\n      onClick: onClick,\n      type: \"button\"\n    }, \"?\");\n  }\n  return null;\n};\nexport default function FileInfo(props) {\n  const {\n    file,\n    i18n,\n    toggleFileCard,\n    metaFields,\n    toggleAddFilesPanel,\n    isSingleFile,\n    containerHeight,\n    containerWidth\n  } = props;\n  return h(\"div\", {\n    className: \"uppy-Dashboard-Item-fileInfo\",\n    \"data-uppy-file-source\": file.source\n  }, h(\"div\", {\n    className: \"uppy-Dashboard-Item-fileName\"\n  }, renderFileName({\n    file,\n    isSingleFile,\n    containerHeight,\n    containerWidth\n  }), h(ErrorButton, {\n    file: file,\n    onClick: () => alert(file.error)\n  })), h(\"div\", {\n    className: \"uppy-Dashboard-Item-status\"\n  }, renderAuthor({\n    file\n  }), renderFileSize({\n    file\n  }), ReSelectButton({\n    file,\n    toggleAddFilesPanel,\n    i18n\n  })), h(MetaErrorMessage, {\n    file: file,\n    i18n: i18n,\n    toggleFileCard: toggleFileCard,\n    metaFields: metaFields\n  }));\n}","/**\n * Copies text to clipboard by creating an almost invisible textarea,\n * adding text there, then running execCommand('copy').\n * Falls back to prompt() when the easy way fails (hello, Safari!)\n * From http://stackoverflow.com/a/30810322\n *\n * @param {string} textToCopy\n * @param {string} fallbackString\n * @returns {Promise}\n */\n\nexport default function copyToClipboard(textToCopy, fallbackString) {\n  if (fallbackString === void 0) {\n    fallbackString = 'Copy the URL below';\n  }\n  return new Promise(resolve => {\n    const textArea = document.createElement('textarea');\n    textArea.setAttribute('style', {\n      position: 'fixed',\n      top: 0,\n      left: 0,\n      width: '2em',\n      height: '2em',\n      padding: 0,\n      border: 'none',\n      outline: 'none',\n      boxShadow: 'none',\n      background: 'transparent'\n    });\n    textArea.value = textToCopy;\n    document.body.appendChild(textArea);\n    textArea.select();\n    const magicCopyFailed = () => {\n      document.body.removeChild(textArea);\n      // eslint-disable-next-line no-alert\n      window.prompt(fallbackString, textToCopy);\n      resolve();\n    };\n    try {\n      const successful = document.execCommand('copy');\n      if (!successful) {\n        return magicCopyFailed();\n      }\n      document.body.removeChild(textArea);\n      return resolve();\n    } catch (err) {\n      document.body.removeChild(textArea);\n      return magicCopyFailed();\n    }\n  });\n}","import { h } from 'preact';\nimport copyToClipboard from '../../../utils/copyToClipboard.js';\nfunction EditButton(_ref) {\n  let {\n    file,\n    uploadInProgressOrComplete,\n    metaFields,\n    canEditFile,\n    i18n,\n    onClick\n  } = _ref;\n  if (!uploadInProgressOrComplete && metaFields && metaFields.length > 0 || !uploadInProgressOrComplete && canEditFile(file)) {\n    return h(\"button\", {\n      className: \"uppy-u-reset uppy-c-btn uppy-Dashboard-Item-action uppy-Dashboard-Item-action--edit\",\n      type: \"button\",\n      \"aria-label\": i18n('editFileWithFilename', {\n        file: file.meta.name\n      }),\n      title: i18n('editFileWithFilename', {\n        file: file.meta.name\n      }),\n      onClick: () => onClick()\n    }, h(\"svg\", {\n      \"aria-hidden\": \"true\",\n      focusable: \"false\",\n      className: \"uppy-c-icon\",\n      width: \"14\",\n      height: \"14\",\n      viewBox: \"0 0 14 14\"\n    }, h(\"g\", {\n      fillRule: \"evenodd\"\n    }, h(\"path\", {\n      d: \"M1.5 10.793h2.793A1 1 0 0 0 5 10.5L11.5 4a1 1 0 0 0 0-1.414L9.707.793a1 1 0 0 0-1.414 0l-6.5 6.5A1 1 0 0 0 1.5 8v2.793zm1-1V8L9 1.5l1.793 1.793-6.5 6.5H2.5z\",\n      fillRule: \"nonzero\"\n    }), h(\"rect\", {\n      x: \"1\",\n      y: \"12.293\",\n      width: \"11\",\n      height: \"1\",\n      rx: \".5\"\n    }), h(\"path\", {\n      fillRule: \"nonzero\",\n      d: \"M6.793 2.5L9.5 5.207l.707-.707L7.5 1.793z\"\n    }))));\n  }\n  return null;\n}\nfunction RemoveButton(_ref2) {\n  let {\n    i18n,\n    onClick,\n    file\n  } = _ref2;\n  return h(\"button\", {\n    className: \"uppy-u-reset uppy-Dashboard-Item-action uppy-Dashboard-Item-action--remove\",\n    type: \"button\",\n    \"aria-label\": i18n('removeFile', {\n      file: file.meta.name\n    }),\n    title: i18n('removeFile', {\n      file: file.meta.name\n    }),\n    onClick: () => onClick()\n  }, h(\"svg\", {\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    className: \"uppy-c-icon\",\n    width: \"18\",\n    height: \"18\",\n    viewBox: \"0 0 18 18\"\n  }, h(\"path\", {\n    d: \"M9 0C4.034 0 0 4.034 0 9s4.034 9 9 9 9-4.034 9-9-4.034-9-9-9z\"\n  }), h(\"path\", {\n    fill: \"#FFF\",\n    d: \"M13 12.222l-.778.778L9 9.778 5.778 13 5 12.222 8.222 9 5 5.778 5.778 5 9 8.222 12.222 5l.778.778L9.778 9z\"\n  })));\n}\nfunction CopyLinkButton(_ref3) {\n  let {\n    file,\n    uppy,\n    i18n\n  } = _ref3;\n  const copyLinkToClipboard = event => {\n    copyToClipboard(file.uploadURL, i18n('copyLinkToClipboardFallback')).then(() => {\n      uppy.log('Link copied to clipboard.');\n      uppy.info(i18n('copyLinkToClipboardSuccess'), 'info', 3000);\n    }).catch(uppy.log)\n    // avoid losing focus\n    .then(() => event.target.focus({\n      preventScroll: true\n    }));\n  };\n  return h(\"button\", {\n    className: \"uppy-u-reset uppy-Dashboard-Item-action uppy-Dashboard-Item-action--copyLink\",\n    type: \"button\",\n    \"aria-label\": i18n('copyLink'),\n    title: i18n('copyLink'),\n    onClick: event => copyLinkToClipboard(event)\n  }, h(\"svg\", {\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    className: \"uppy-c-icon\",\n    width: \"14\",\n    height: \"14\",\n    viewBox: \"0 0 14 12\"\n  }, h(\"path\", {\n    d: \"M7.94 7.703a2.613 2.613 0 0 1-.626 2.681l-.852.851a2.597 2.597 0 0 1-1.849.766A2.616 2.616 0 0 1 2.764 7.54l.852-.852a2.596 2.596 0 0 1 2.69-.625L5.267 7.099a1.44 1.44 0 0 0-.833.407l-.852.851a1.458 1.458 0 0 0 1.03 2.486c.39 0 .755-.152 1.03-.426l.852-.852c.231-.231.363-.522.406-.824l1.04-1.038zm4.295-5.937A2.596 2.596 0 0 0 10.387 1c-.698 0-1.355.272-1.849.766l-.852.851a2.614 2.614 0 0 0-.624 2.688l1.036-1.036c.041-.304.173-.6.407-.833l.852-.852c.275-.275.64-.426 1.03-.426a1.458 1.458 0 0 1 1.03 2.486l-.852.851a1.442 1.442 0 0 1-.824.406l-1.04 1.04a2.596 2.596 0 0 0 2.683-.628l.851-.85a2.616 2.616 0 0 0 0-3.697zm-6.88 6.883a.577.577 0 0 0 .82 0l3.474-3.474a.579.579 0 1 0-.819-.82L5.355 7.83a.579.579 0 0 0 0 .819z\"\n  })));\n}\nexport default function Buttons(props) {\n  const {\n    uppy,\n    file,\n    uploadInProgressOrComplete,\n    canEditFile,\n    metaFields,\n    showLinkToFileUploadResult,\n    showRemoveButton,\n    i18n,\n    toggleFileCard,\n    openFileEditor\n  } = props;\n  const editAction = () => {\n    if (metaFields && metaFields.length > 0) {\n      toggleFileCard(true, file.id);\n    } else {\n      openFileEditor(file);\n    }\n  };\n  return h(\"div\", {\n    className: \"uppy-Dashboard-Item-actionWrapper\"\n  }, h(EditButton, {\n    i18n: i18n,\n    file: file,\n    uploadInProgressOrComplete: uploadInProgressOrComplete,\n    canEditFile: canEditFile,\n    metaFields: metaFields,\n    onClick: editAction\n  }), showLinkToFileUploadResult && file.uploadURL ? h(CopyLinkButton, {\n    file: file,\n    uppy: uppy,\n    i18n: i18n\n  }) : null, showRemoveButton ? h(RemoveButton, {\n    i18n: i18n,\n    file: file,\n    onClick: () => uppy.removeFile(file.id)\n  }) : null);\n}","/* eslint-disable react/destructuring-assignment */\nimport { h, Component } from 'preact';\nimport classNames from 'classnames';\nimport { shallowEqualObjects } from 'shallow-equal';\nimport FilePreviewAndLink from \"./FilePreviewAndLink/index.js\";\nimport FileProgress from \"./FileProgress/index.js\";\nimport FileInfo from \"./FileInfo/index.js\";\nimport Buttons from \"./Buttons/index.js\";\nexport default class FileItem extends Component {\n  componentDidMount() {\n    const {\n      file\n    } = this.props;\n    if (!file.preview) {\n      this.props.handleRequestThumbnail(file);\n    }\n  }\n  shouldComponentUpdate(nextProps) {\n    return !shallowEqualObjects(this.props, nextProps);\n  }\n\n  // VirtualList mounts FileItems again and they emit `thumbnail:request`\n  // Otherwise thumbnails are broken or missing after Golden Retriever restores files\n  componentDidUpdate() {\n    const {\n      file\n    } = this.props;\n    if (!file.preview) {\n      this.props.handleRequestThumbnail(file);\n    }\n  }\n  componentWillUnmount() {\n    const {\n      file\n    } = this.props;\n    if (!file.preview) {\n      this.props.handleCancelThumbnail(file);\n    }\n  }\n  render() {\n    const {\n      file\n    } = this.props;\n    const isProcessing = file.progress.preprocess || file.progress.postprocess;\n    const isUploaded = !!file.progress.uploadComplete && !isProcessing && !file.error;\n    const uploadInProgressOrComplete = !!file.progress.uploadStarted || !!isProcessing;\n    const uploadInProgress = file.progress.uploadStarted && !file.progress.uploadComplete || isProcessing;\n    const error = file.error || false;\n\n    // File that Golden Retriever was able to partly restore (only meta, not blob),\n    // users still need to re-add it, so it’s a ghost\n    const {\n      isGhost\n    } = file;\n    let showRemoveButton = this.props.individualCancellation ? !isUploaded : !uploadInProgress && !isUploaded;\n    if (isUploaded && this.props.showRemoveButtonAfterComplete) {\n      showRemoveButton = true;\n    }\n    const dashboardItemClass = classNames({\n      'uppy-Dashboard-Item': true,\n      'is-inprogress': uploadInProgress && !this.props.recoveredState,\n      'is-processing': isProcessing,\n      'is-complete': isUploaded,\n      'is-error': !!error,\n      'is-resumable': this.props.resumableUploads,\n      'is-noIndividualCancellation': !this.props.individualCancellation,\n      'is-ghost': isGhost\n    });\n    return h(\"div\", {\n      className: dashboardItemClass,\n      id: `uppy_${file.id}`,\n      role: this.props.role\n    }, h(\"div\", {\n      className: \"uppy-Dashboard-Item-preview\"\n    }, h(FilePreviewAndLink, {\n      file: file,\n      showLinkToFileUploadResult: this.props.showLinkToFileUploadResult,\n      i18n: this.props.i18n,\n      toggleFileCard: this.props.toggleFileCard,\n      metaFields: this.props.metaFields\n    }), h(FileProgress, {\n      uppy: this.props.uppy,\n      file: file,\n      error: error,\n      isUploaded: isUploaded,\n      hideRetryButton: this.props.hideRetryButton,\n      hideCancelButton: this.props.hideCancelButton,\n      hidePauseResumeButton: this.props.hidePauseResumeButton,\n      recoveredState: this.props.recoveredState,\n      resumableUploads: this.props.resumableUploads,\n      individualCancellation: this.props.individualCancellation,\n      i18n: this.props.i18n\n    })), h(\"div\", {\n      className: \"uppy-Dashboard-Item-fileInfoAndButtons\"\n    }, h(FileInfo, {\n      file: file,\n      containerWidth: this.props.containerWidth,\n      containerHeight: this.props.containerHeight,\n      i18n: this.props.i18n,\n      toggleAddFilesPanel: this.props.toggleAddFilesPanel,\n      toggleFileCard: this.props.toggleFileCard,\n      metaFields: this.props.metaFields,\n      isSingleFile: this.props.isSingleFile\n    }), h(Buttons, {\n      file: file,\n      metaFields: this.props.metaFields,\n      showLinkToFileUploadResult: this.props.showLinkToFileUploadResult,\n      showRemoveButton: showRemoveButton,\n      canEditFile: this.props.canEditFile,\n      uploadInProgressOrComplete: uploadInProgressOrComplete,\n      toggleFileCard: this.props.toggleFileCard,\n      openFileEditor: this.props.openFileEditor,\n      uppy: this.props.uppy,\n      i18n: this.props.i18n\n    })));\n  }\n}","import { h } from 'preact';\nimport { useMemo } from 'preact/hooks';\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore untyped\nimport VirtualList from '@uppy/utils/lib/VirtualList';\nimport FileItem from \"./FileItem/index.js\";\nfunction chunks(list, size) {\n  const chunked = [];\n  let currentChunk = [];\n  list.forEach(item => {\n    if (currentChunk.length < size) {\n      currentChunk.push(item);\n    } else {\n      chunked.push(currentChunk);\n      currentChunk = [item];\n    }\n  });\n  if (currentChunk.length) chunked.push(currentChunk);\n  return chunked;\n}\nexport default function FileList(_ref) {\n  let {\n    id,\n    i18n,\n    uppy,\n    files,\n    resumableUploads,\n    hideRetryButton,\n    hidePauseResumeButton,\n    hideCancelButton,\n    showLinkToFileUploadResult,\n    showRemoveButtonAfterComplete,\n    metaFields,\n    isSingleFile,\n    toggleFileCard,\n    handleRequestThumbnail,\n    handleCancelThumbnail,\n    recoveredState,\n    individualCancellation,\n    itemsPerRow,\n    openFileEditor,\n    canEditFile,\n    toggleAddFilesPanel,\n    containerWidth,\n    containerHeight\n  } = _ref;\n  // It's not great that this is hardcoded!\n  // It's ESPECIALLY not great that this is checking against `itemsPerRow`!\n  const rowHeight = itemsPerRow === 1 ?\n  // Mobile\n  71\n  // 190px height + 2 * 5px margin\n  : 200;\n\n  // Sort files by file.isGhost, ghost files first, only if recoveredState is present\n  const rows = useMemo(() => {\n    const sortByGhostComesFirst = (file1, file2) => Number(files[file2].isGhost) - Number(files[file1].isGhost);\n    const fileIds = Object.keys(files);\n    if (recoveredState) fileIds.sort(sortByGhostComesFirst);\n    return chunks(fileIds, itemsPerRow);\n  }, [files, itemsPerRow, recoveredState]);\n  const renderRow = row => h(\"div\", {\n    class: \"uppy-Dashboard-filesInner\"\n    // The `role=\"presentation` attribute ensures that the list items are properly\n    // associated with the `VirtualList` element.\n    ,\n    role: \"presentation\"\n    // We use the first file ID as the key — this should not change across scroll rerenders.\n    ,\n    key: row[0]\n  }, row.map(fileID => h(FileItem, {\n    key: fileID,\n    uppy: uppy\n    // FIXME This is confusing, it's actually the Dashboard's plugin ID\n    ,\n    id: id\n    // TODO move this to context\n    ,\n    i18n: i18n\n    // features\n    ,\n    resumableUploads: resumableUploads,\n    individualCancellation: individualCancellation\n    // visual options\n    ,\n    hideRetryButton: hideRetryButton,\n    hidePauseResumeButton: hidePauseResumeButton,\n    hideCancelButton: hideCancelButton,\n    showLinkToFileUploadResult: showLinkToFileUploadResult,\n    showRemoveButtonAfterComplete: showRemoveButtonAfterComplete,\n    metaFields: metaFields,\n    recoveredState: recoveredState,\n    isSingleFile: isSingleFile,\n    containerWidth: containerWidth,\n    containerHeight: containerHeight\n    // callbacks\n    ,\n    toggleFileCard: toggleFileCard,\n    handleRequestThumbnail: handleRequestThumbnail,\n    handleCancelThumbnail: handleCancelThumbnail,\n    role: \"listitem\",\n    openFileEditor: openFileEditor,\n    canEditFile: canEditFile,\n    toggleAddFilesPanel: toggleAddFilesPanel,\n    file: files[fileID]\n  })));\n  if (isSingleFile) {\n    return h(\"div\", {\n      class: \"uppy-Dashboard-files\"\n    }, renderRow(rows[0]));\n  }\n  return h(VirtualList, {\n    class: \"uppy-Dashboard-files\",\n    role: \"list\",\n    data: rows,\n    renderRow: renderRow,\n    rowHeight: rowHeight\n  });\n}","/* eslint-disable react/destructuring-assignment */\nimport { h, Component, Fragment } from 'preact';\nclass AddFiles extends Component {\n  constructor() {\n    super(...arguments);\n    this.fileInput = null;\n    this.folderInput = null;\n    this.mobilePhotoFileInput = null;\n    this.mobileVideoFileInput = null;\n    this.triggerFileInputClick = () => {\n      var _this$fileInput;\n      (_this$fileInput = this.fileInput) == null || _this$fileInput.click();\n    };\n    this.triggerFolderInputClick = () => {\n      var _this$folderInput;\n      (_this$folderInput = this.folderInput) == null || _this$folderInput.click();\n    };\n    this.triggerVideoCameraInputClick = () => {\n      var _this$mobileVideoFile;\n      (_this$mobileVideoFile = this.mobileVideoFileInput) == null || _this$mobileVideoFile.click();\n    };\n    this.triggerPhotoCameraInputClick = () => {\n      var _this$mobilePhotoFile;\n      (_this$mobilePhotoFile = this.mobilePhotoFileInput) == null || _this$mobilePhotoFile.click();\n    };\n    this.onFileInputChange = event => {\n      this.props.handleInputChange(event);\n\n      // Clear the input so that Chrome/Safari/etc. can detect file section when the same file is repeatedly selected\n      // (see https://github.com/transloadit/uppy/issues/768#issuecomment-2264902758)\n      // eslint-disable-next-line no-param-reassign\n      event.currentTarget.value = '';\n    };\n    this.renderHiddenInput = (isFolder, refCallback) => {\n      var _this$props$allowedFi;\n      return h(\"input\", {\n        className: \"uppy-Dashboard-input\",\n        hidden: true,\n        \"aria-hidden\": \"true\",\n        tabIndex: -1\n        // @ts-expect-error default types don't yet know about the `webkitdirectory` property\n        ,\n        webkitdirectory: isFolder,\n        type: \"file\",\n        name: \"files[]\",\n        multiple: this.props.maxNumberOfFiles !== 1,\n        onChange: this.onFileInputChange,\n        accept: (_this$props$allowedFi = this.props.allowedFileTypes) == null ? void 0 : _this$props$allowedFi.join(', '),\n        ref: refCallback\n      });\n    };\n    this.renderHiddenCameraInput = (type, nativeCameraFacingMode, refCallback) => {\n      const typeToAccept = {\n        photo: 'image/*',\n        video: 'video/*'\n      };\n      const accept = typeToAccept[type];\n      return h(\"input\", {\n        className: \"uppy-Dashboard-input\",\n        hidden: true,\n        \"aria-hidden\": \"true\",\n        tabIndex: -1,\n        type: \"file\",\n        name: `camera-${type}`,\n        onChange: this.onFileInputChange,\n        capture: nativeCameraFacingMode,\n        accept: accept,\n        ref: refCallback\n      });\n    };\n    this.renderMyDeviceAcquirer = () => {\n      return h(\"div\", {\n        className: \"uppy-DashboardTab\",\n        role: \"presentation\",\n        \"data-uppy-acquirer-id\": \"MyDevice\"\n      }, h(\"button\", {\n        type: \"button\",\n        className: \"uppy-u-reset uppy-c-btn uppy-DashboardTab-btn\",\n        role: \"tab\",\n        tabIndex: 0,\n        \"data-uppy-super-focusable\": true,\n        onClick: this.triggerFileInputClick\n      }, h(\"div\", {\n        className: \"uppy-DashboardTab-inner\"\n      }, h(\"svg\", {\n        className: \"uppy-DashboardTab-iconMyDevice\",\n        \"aria-hidden\": \"true\",\n        focusable: \"false\",\n        width: \"32\",\n        height: \"32\",\n        viewBox: \"0 0 32 32\"\n      }, h(\"path\", {\n        d: \"M8.45 22.087l-1.305-6.674h17.678l-1.572 6.674H8.45zm4.975-12.412l1.083 1.765a.823.823 0 00.715.386h7.951V13.5H8.587V9.675h4.838zM26.043 13.5h-1.195v-2.598c0-.463-.336-.75-.798-.75h-8.356l-1.082-1.766A.823.823 0 0013.897 8H7.728c-.462 0-.815.256-.815.718V13.5h-.956a.97.97 0 00-.746.37.972.972 0 00-.19.81l1.724 8.565c.095.44.484.755.933.755H24c.44 0 .824-.3.929-.727l2.043-8.568a.972.972 0 00-.176-.825.967.967 0 00-.753-.38z\",\n        fill: \"currentcolor\",\n        \"fill-rule\": \"evenodd\"\n      }))), h(\"div\", {\n        className: \"uppy-DashboardTab-name\"\n      }, this.props.i18n('myDevice'))));\n    };\n    this.renderPhotoCamera = () => {\n      return h(\"div\", {\n        className: \"uppy-DashboardTab\",\n        role: \"presentation\",\n        \"data-uppy-acquirer-id\": \"MobilePhotoCamera\"\n      }, h(\"button\", {\n        type: \"button\",\n        className: \"uppy-u-reset uppy-c-btn uppy-DashboardTab-btn\",\n        role: \"tab\",\n        tabIndex: 0,\n        \"data-uppy-super-focusable\": true,\n        onClick: this.triggerPhotoCameraInputClick\n      }, h(\"div\", {\n        className: \"uppy-DashboardTab-inner\"\n      }, h(\"svg\", {\n        \"aria-hidden\": \"true\",\n        focusable: \"false\",\n        width: \"32\",\n        height: \"32\",\n        viewBox: \"0 0 32 32\"\n      }, h(\"path\", {\n        d: \"M23.5 9.5c1.417 0 2.5 1.083 2.5 2.5v9.167c0 1.416-1.083 2.5-2.5 2.5h-15c-1.417 0-2.5-1.084-2.5-2.5V12c0-1.417 1.083-2.5 2.5-2.5h2.917l1.416-2.167C13 7.167 13.25 7 13.5 7h5c.25 0 .5.167.667.333L20.583 9.5H23.5zM16 11.417a4.706 4.706 0 00-4.75 4.75 4.704 4.704 0 004.75 4.75 4.703 4.703 0 004.75-4.75c0-2.663-2.09-4.75-4.75-4.75zm0 7.825c-1.744 0-3.076-1.332-3.076-3.074 0-1.745 1.333-3.077 3.076-3.077 1.744 0 3.074 1.333 3.074 3.076s-1.33 3.075-3.074 3.075z\",\n        fill: \"#02B383\",\n        \"fill-rule\": \"nonzero\"\n      }))), h(\"div\", {\n        className: \"uppy-DashboardTab-name\"\n      }, this.props.i18n('takePictureBtn'))));\n    };\n    this.renderVideoCamera = () => {\n      return h(\"div\", {\n        className: \"uppy-DashboardTab\",\n        role: \"presentation\",\n        \"data-uppy-acquirer-id\": \"MobileVideoCamera\"\n      }, h(\"button\", {\n        type: \"button\",\n        className: \"uppy-u-reset uppy-c-btn uppy-DashboardTab-btn\",\n        role: \"tab\",\n        tabIndex: 0,\n        \"data-uppy-super-focusable\": true,\n        onClick: this.triggerVideoCameraInputClick\n      }, h(\"div\", {\n        className: \"uppy-DashboardTab-inner\"\n      }, h(\"svg\", {\n        \"aria-hidden\": \"true\",\n        width: \"32\",\n        height: \"32\",\n        viewBox: \"0 0 32 32\"\n      }, h(\"path\", {\n        fill: \"#FF675E\",\n        fillRule: \"nonzero\",\n        d: \"m21.254 14.277 2.941-2.588c.797-.313 1.243.818 1.09 1.554-.01 2.094.02 4.189-.017 6.282-.126.915-1.145 1.08-1.58.34l-2.434-2.142c-.192.287-.504 1.305-.738.468-.104-1.293-.028-2.596-.05-3.894.047-.312.381.823.426 1.069.063-.384.206-.744.362-1.09zm-12.939-3.73c3.858.013 7.717-.025 11.574.02.912.129 1.492 1.237 1.351 2.217-.019 2.412.04 4.83-.03 7.239-.17 1.025-1.166 1.59-2.029 1.429-3.705-.012-7.41.025-11.114-.019-.913-.129-1.492-1.237-1.352-2.217.018-2.404-.036-4.813.029-7.214.136-.82.83-1.473 1.571-1.454z \"\n      }))), h(\"div\", {\n        className: \"uppy-DashboardTab-name\"\n      }, this.props.i18n('recordVideoBtn'))));\n    };\n    this.renderBrowseButton = (text, onClickFn) => {\n      const numberOfAcquirers = this.props.acquirers.length;\n      return h(\"button\", {\n        type: \"button\",\n        className: \"uppy-u-reset uppy-c-btn uppy-Dashboard-browse\",\n        onClick: onClickFn,\n        \"data-uppy-super-focusable\": numberOfAcquirers === 0\n      }, text);\n    };\n    this.renderDropPasteBrowseTagline = numberOfAcquirers => {\n      const browseFiles = this.renderBrowseButton(this.props.i18n('browseFiles'), this.triggerFileInputClick);\n      const browseFolders = this.renderBrowseButton(this.props.i18n('browseFolders'), this.triggerFolderInputClick);\n\n      // in order to keep the i18n CamelCase and options lower (as are defaults) we will want to transform a lower\n      // to Camel\n      const lowerFMSelectionType = this.props.fileManagerSelectionType;\n      const camelFMSelectionType = lowerFMSelectionType.charAt(0).toUpperCase() + lowerFMSelectionType.slice(1);\n      return h(\"div\", {\n        class: \"uppy-Dashboard-AddFiles-title\"\n      },\n      // eslint-disable-next-line no-nested-ternary\n      this.props.disableLocalFiles ? this.props.i18n('importFiles') : numberOfAcquirers > 0 ? this.props.i18nArray(`dropPasteImport${camelFMSelectionType}`, {\n        browseFiles,\n        browseFolders,\n        browse: browseFiles\n      }) : this.props.i18nArray(`dropPaste${camelFMSelectionType}`, {\n        browseFiles,\n        browseFolders,\n        browse: browseFiles\n      }));\n    };\n    this.renderAcquirer = acquirer => {\n      var _this$props$activePic;\n      return h(\"div\", {\n        className: \"uppy-DashboardTab\",\n        role: \"presentation\",\n        \"data-uppy-acquirer-id\": acquirer.id\n      }, h(\"button\", {\n        type: \"button\",\n        className: \"uppy-u-reset uppy-c-btn uppy-DashboardTab-btn\",\n        role: \"tab\",\n        tabIndex: 0,\n        \"data-cy\": acquirer.id,\n        \"aria-controls\": `uppy-DashboardContent-panel--${acquirer.id}`,\n        \"aria-selected\": ((_this$props$activePic = this.props.activePickerPanel) == null ? void 0 : _this$props$activePic.id) === acquirer.id,\n        \"data-uppy-super-focusable\": true,\n        onClick: () => this.props.showPanel(acquirer.id)\n      }, h(\"div\", {\n        className: \"uppy-DashboardTab-inner\"\n      }, acquirer.icon()), h(\"div\", {\n        className: \"uppy-DashboardTab-name\"\n      }, acquirer.name)));\n    };\n    this.renderAcquirers = acquirers => {\n      // Group last two buttons, so we don’t end up with\n      // just one button on a new line\n      const acquirersWithoutLastTwo = [...acquirers];\n      const lastTwoAcquirers = acquirersWithoutLastTwo.splice(acquirers.length - 2, acquirers.length);\n      return h(Fragment, null, acquirersWithoutLastTwo.map(acquirer => this.renderAcquirer(acquirer)), h(\"span\", {\n        role: \"presentation\",\n        style: {\n          'white-space': 'nowrap'\n        }\n      }, lastTwoAcquirers.map(acquirer => this.renderAcquirer(acquirer))));\n    };\n    this.renderSourcesList = (acquirers, disableLocalFiles) => {\n      const {\n        showNativePhotoCameraButton,\n        showNativeVideoCameraButton\n      } = this.props;\n      let list = [];\n      const myDeviceKey = 'myDevice';\n      if (!disableLocalFiles) list.push({\n        key: myDeviceKey,\n        elements: this.renderMyDeviceAcquirer()\n      });\n      if (showNativePhotoCameraButton) list.push({\n        key: 'nativePhotoCameraButton',\n        elements: this.renderPhotoCamera()\n      });\n      if (showNativeVideoCameraButton) list.push({\n        key: 'nativePhotoCameraButton',\n        elements: this.renderVideoCamera()\n      });\n      list.push(...acquirers.map(acquirer => ({\n        key: acquirer.id,\n        elements: this.renderAcquirer(acquirer)\n      })));\n\n      // doesn't make sense to show only a lonely \"My Device\"\n      const hasOnlyMyDevice = list.length === 1 && list[0].key === myDeviceKey;\n      if (hasOnlyMyDevice) list = [];\n\n      // Group last two buttons, so we don’t end up with\n      // just one button on a new line\n      const listWithoutLastTwo = [...list];\n      const lastTwo = listWithoutLastTwo.splice(list.length - 2, list.length);\n      return h(Fragment, null, this.renderDropPasteBrowseTagline(list.length), h(\"div\", {\n        className: \"uppy-Dashboard-AddFiles-list\",\n        role: \"tablist\"\n      }, listWithoutLastTwo.map(_ref => {\n        let {\n          key,\n          elements\n        } = _ref;\n        return h(Fragment, {\n          key: key\n        }, elements);\n      }), h(\"span\", {\n        role: \"presentation\",\n        style: {\n          'white-space': 'nowrap'\n        }\n      }, lastTwo.map(_ref2 => {\n        let {\n          key,\n          elements\n        } = _ref2;\n        return h(Fragment, {\n          key: key\n        }, elements);\n      }))));\n    };\n  }\n  [Symbol.for('uppy test: disable unused locale key warning')]() {\n    // Those are actually used in `renderDropPasteBrowseTagline` method.\n    this.props.i18nArray('dropPasteBoth');\n    this.props.i18nArray('dropPasteFiles');\n    this.props.i18nArray('dropPasteFolders');\n    this.props.i18nArray('dropPasteImportBoth');\n    this.props.i18nArray('dropPasteImportFiles');\n    this.props.i18nArray('dropPasteImportFolders');\n  }\n  renderPoweredByUppy() {\n    const {\n      i18nArray\n    } = this.props;\n    const uppyBranding = h(\"span\", null, h(\"svg\", {\n      \"aria-hidden\": \"true\",\n      focusable: \"false\",\n      className: \"uppy-c-icon uppy-Dashboard-poweredByIcon\",\n      width: \"11\",\n      height: \"11\",\n      viewBox: \"0 0 11 11\"\n    }, h(\"path\", {\n      d: \"M7.365 10.5l-.01-4.045h2.612L5.5.806l-4.467 5.65h2.604l.01 4.044h3.718z\",\n      fillRule: \"evenodd\"\n    })), h(\"span\", {\n      className: \"uppy-Dashboard-poweredByUppy\"\n    }, \"Uppy\"));\n    const linkText = i18nArray('poweredBy', {\n      uppy: uppyBranding\n    });\n    return h(\"a\", {\n      tabIndex: -1,\n      href: \"https://uppy.io\",\n      rel: \"noreferrer noopener\",\n      target: \"_blank\",\n      className: \"uppy-Dashboard-poweredBy\"\n    }, linkText);\n  }\n  render() {\n    const {\n      showNativePhotoCameraButton,\n      showNativeVideoCameraButton,\n      nativeCameraFacingMode\n    } = this.props;\n    return h(\"div\", {\n      className: \"uppy-Dashboard-AddFiles\"\n    }, this.renderHiddenInput(false, ref => {\n      this.fileInput = ref;\n    }), this.renderHiddenInput(true, ref => {\n      this.folderInput = ref;\n    }), showNativePhotoCameraButton && this.renderHiddenCameraInput('photo', nativeCameraFacingMode, ref => {\n      this.mobilePhotoFileInput = ref;\n    }), showNativeVideoCameraButton && this.renderHiddenCameraInput('video', nativeCameraFacingMode, ref => {\n      this.mobileVideoFileInput = ref;\n    }), this.renderSourcesList(this.props.acquirers, this.props.disableLocalFiles), h(\"div\", {\n      className: \"uppy-Dashboard-AddFiles-info\"\n    }, this.props.note && h(\"div\", {\n      className: \"uppy-Dashboard-note\"\n    }, this.props.note), this.props.proudlyDisplayPoweredByUppy && this.renderPoweredByUppy()));\n  }\n}\nexport default AddFiles;","/* eslint-disable react/destructuring-assignment */\nimport { h } from 'preact';\nimport classNames from 'classnames';\nimport AddFiles from \"./AddFiles.js\";\nconst AddFilesPanel = props => {\n  return h(\"div\", {\n    className: classNames('uppy-Dashboard-AddFilesPanel', props.className),\n    \"data-uppy-panelType\": \"AddFiles\",\n    \"aria-hidden\": !props.showAddFilesPanel\n  }, h(\"div\", {\n    className: \"uppy-DashboardContent-bar\"\n  }, h(\"div\", {\n    className: \"uppy-DashboardContent-title\",\n    role: \"heading\",\n    \"aria-level\": \"1\"\n  }, props.i18n('addingMoreFiles')), h(\"button\", {\n    className: \"uppy-DashboardContent-back\",\n    type: \"button\",\n    onClick: () => props.toggleAddFilesPanel(false)\n  }, props.i18n('back'))), h(AddFiles, props));\n};\nexport default AddFilesPanel;","// ignore drop/paste events if they are not in input or textarea —\n// otherwise when Url plugin adds drop/paste listeners to this.el,\n// draging UI elements or pasting anything into any field triggers those events —\n// Url treats them as URLs that need to be imported\n\nfunction ignoreEvent(ev) {\n  const {\n    tagName\n  } = ev.target;\n  if (tagName === 'INPUT' || tagName === 'TEXTAREA') {\n    ev.stopPropagation();\n    return;\n  }\n  ev.preventDefault();\n  ev.stopPropagation();\n}\nexport default ignoreEvent;","import { h } from 'preact';\nimport classNames from 'classnames';\nimport { useRef } from 'preact/hooks';\nimport ignoreEvent from '../utils/ignoreEvent.js';\nfunction PickerPanelContent(_ref) {\n  let {\n    activePickerPanel,\n    className,\n    hideAllPanels,\n    i18n,\n    state,\n    uppy\n  } = _ref;\n  const ref = useRef(null);\n  return h(\"div\", {\n    className: classNames('uppy-DashboardContent-panel', className),\n    role: \"tabpanel\",\n    \"data-uppy-panelType\": \"PickerPanel\",\n    id: `uppy-DashboardContent-panel--${activePickerPanel.id}`,\n    onDragOver: ignoreEvent,\n    onDragLeave: ignoreEvent,\n    onDrop: ignoreEvent,\n    onPaste: ignoreEvent\n  }, h(\"div\", {\n    className: \"uppy-DashboardContent-bar\"\n  }, h(\"div\", {\n    className: \"uppy-DashboardContent-title\",\n    role: \"heading\",\n    \"aria-level\": \"1\"\n  }, i18n('importFrom', {\n    name: activePickerPanel.name\n  })), h(\"button\", {\n    className: \"uppy-DashboardContent-back\",\n    type: \"button\",\n    onClick: hideAllPanels\n  }, i18n('cancel'))), h(\"div\", {\n    ref: ref,\n    className: \"uppy-DashboardContent-panelBody\"\n  }, uppy.getPlugin(activePickerPanel.id).render(state, ref.current)));\n}\nexport default PickerPanelContent;","/* eslint-disable react/destructuring-assignment */\nimport { h } from 'preact';\nimport classNames from 'classnames';\nfunction EditorPanel(props) {\n  const file = props.files[props.fileCardFor];\n  const handleCancel = () => {\n    props.uppy.emit('file-editor:cancel', file);\n    props.closeFileEditor();\n  };\n  return h(\"div\", {\n    className: classNames('uppy-DashboardContent-panel', props.className),\n    role: \"tabpanel\",\n    \"data-uppy-panelType\": \"FileEditor\",\n    id: \"uppy-DashboardContent-panel--editor\"\n  }, h(\"div\", {\n    className: \"uppy-DashboardContent-bar\"\n  }, h(\"div\", {\n    className: \"uppy-DashboardContent-title\",\n    role: \"heading\",\n    \"aria-level\": \"1\"\n  }, props.i18nArray('editing', {\n    file: h(\"span\", {\n      className: \"uppy-DashboardContent-titleFile\"\n    }, file.meta ? file.meta.name : file.name)\n  })), h(\"button\", {\n    className: \"uppy-DashboardContent-back\",\n    type: \"button\",\n    onClick: handleCancel\n  }, props.i18n('cancel')), h(\"button\", {\n    className: \"uppy-DashboardContent-save\",\n    type: \"button\",\n    onClick: props.saveFileEditor\n  }, props.i18n('save'))), h(\"div\", {\n    className: \"uppy-DashboardContent-panelBody\"\n  }, props.editors.map(target => {\n    return props.uppy.getPlugin(target.id).render(props.state);\n  })));\n}\nexport default EditorPanel;","import { h } from 'preact';\nconst uploadStates = {\n  STATE_ERROR: 'error',\n  STATE_WAITING: 'waiting',\n  STATE_PREPROCESSING: 'preprocessing',\n  STATE_UPLOADING: 'uploading',\n  STATE_POSTPROCESSING: 'postprocessing',\n  STATE_COMPLETE: 'complete',\n  STATE_PAUSED: 'paused'\n};\nfunction getUploadingState(isAllErrored, isAllComplete, isAllPaused, files) {\n  if (files === void 0) {\n    files = {};\n  }\n  if (isAllErrored) {\n    return uploadStates.STATE_ERROR;\n  }\n  if (isAllComplete) {\n    return uploadStates.STATE_COMPLETE;\n  }\n  if (isAllPaused) {\n    return uploadStates.STATE_PAUSED;\n  }\n  let state = uploadStates.STATE_WAITING;\n  const fileIDs = Object.keys(files);\n  for (let i = 0; i < fileIDs.length; i++) {\n    const {\n      progress\n    } = files[fileIDs[i]];\n    // If ANY files are being uploaded right now, show the uploading state.\n    if (progress.uploadStarted && !progress.uploadComplete) {\n      return uploadStates.STATE_UPLOADING;\n    }\n    // If files are being preprocessed AND postprocessed at this time, we show the\n    // preprocess state. If any files are being uploaded we show uploading.\n    if (progress.preprocess && state !== uploadStates.STATE_UPLOADING) {\n      state = uploadStates.STATE_PREPROCESSING;\n    }\n    // If NO files are being preprocessed or uploaded right now, but some files are\n    // being postprocessed, show the postprocess state.\n    if (progress.postprocess && state !== uploadStates.STATE_UPLOADING && state !== uploadStates.STATE_PREPROCESSING) {\n      state = uploadStates.STATE_POSTPROCESSING;\n    }\n  }\n  return state;\n}\nfunction UploadStatus(_ref) {\n  let {\n    files,\n    i18n,\n    isAllComplete,\n    isAllErrored,\n    isAllPaused,\n    inProgressNotPausedFiles,\n    newFiles,\n    processingFiles\n  } = _ref;\n  const uploadingState = getUploadingState(isAllErrored, isAllComplete, isAllPaused, files);\n  switch (uploadingState) {\n    case 'uploading':\n      return i18n('uploadingXFiles', {\n        smart_count: inProgressNotPausedFiles.length\n      });\n    case 'preprocessing':\n    case 'postprocessing':\n      return i18n('processingXFiles', {\n        smart_count: processingFiles.length\n      });\n    case 'paused':\n      return i18n('uploadPaused');\n    case 'waiting':\n      return i18n('xFilesSelected', {\n        smart_count: newFiles.length\n      });\n    case 'complete':\n      return i18n('uploadComplete');\n    case 'error':\n      return i18n('error');\n    default:\n  }\n}\nfunction PanelTopBar(props) {\n  const {\n    i18n,\n    isAllComplete,\n    hideCancelButton,\n    maxNumberOfFiles,\n    toggleAddFilesPanel,\n    uppy\n  } = props;\n  let {\n    allowNewUpload\n  } = props;\n  // TODO maybe this should be done in ../Dashboard.jsx, then just pass that down as `allowNewUpload`\n  if (allowNewUpload && maxNumberOfFiles) {\n    // eslint-disable-next-line react/destructuring-assignment\n    allowNewUpload = props.totalFileCount < props.maxNumberOfFiles;\n  }\n  return h(\"div\", {\n    className: \"uppy-DashboardContent-bar\"\n  }, !isAllComplete && !hideCancelButton ? h(\"button\", {\n    className: \"uppy-DashboardContent-back\",\n    type: \"button\",\n    onClick: () => uppy.cancelAll()\n  }, i18n('cancel')) : h(\"div\", null), h(\"div\", {\n    className: \"uppy-DashboardContent-title\",\n    role: \"heading\",\n    \"aria-level\": \"1\"\n  }, h(UploadStatus, props)), allowNewUpload ? h(\"button\", {\n    className: \"uppy-DashboardContent-addMore\",\n    type: \"button\",\n    \"aria-label\": i18n('addMoreFiles'),\n    title: i18n('addMoreFiles'),\n    onClick: () => toggleAddFilesPanel(true)\n  }, h(\"svg\", {\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    className: \"uppy-c-icon\",\n    width: \"15\",\n    height: \"15\",\n    viewBox: \"0 0 15 15\"\n  }, h(\"path\", {\n    d: \"M8 6.5h6a.5.5 0 0 1 .5.5v.5a.5.5 0 0 1-.5.5H8v6a.5.5 0 0 1-.5.5H7a.5.5 0 0 1-.5-.5V8h-6a.5.5 0 0 1-.5-.5V7a.5.5 0 0 1 .5-.5h6v-6A.5.5 0 0 1 7 0h.5a.5.5 0 0 1 .5.5v6z\"\n  })), h(\"span\", {\n    className: \"uppy-DashboardContent-addMoreCaption\"\n  }, i18n('addMore'))) : h(\"div\", null));\n}\nexport default PanelTopBar;","import { h } from 'preact';\nexport default function RenderMetaFields(props) {\n  const {\n    computedMetaFields,\n    requiredMetaFields,\n    updateMeta,\n    form,\n    formState\n  } = props;\n  const fieldCSSClasses = {\n    text: 'uppy-u-reset uppy-c-textInput uppy-Dashboard-FileCard-input'\n  };\n  return computedMetaFields.map(field => {\n    const id = `uppy-Dashboard-FileCard-input-${field.id}`;\n    const required = requiredMetaFields.includes(field.id);\n    return h(\"fieldset\", {\n      key: field.id,\n      className: \"uppy-Dashboard-FileCard-fieldset\"\n    }, h(\"label\", {\n      className: \"uppy-Dashboard-FileCard-label\",\n      htmlFor: id\n    }, field.name), field.render !== undefined ? field.render({\n      value: formState[field.id],\n      onChange: newVal => updateMeta(newVal, field.id),\n      fieldCSSClasses,\n      required,\n      form: form.id\n    }, h) : h(\"input\", {\n      className: fieldCSSClasses.text,\n      id: id,\n      form: form.id,\n      type: field.type || 'text',\n      required: required,\n      value: formState[field.id],\n      placeholder: field.placeholder,\n      onInput: ev => updateMeta(ev.target.value, field.id),\n      \"data-uppy-super-focusable\": true\n    }));\n  });\n}","import { h } from 'preact';\nimport { useEffect, useState, useCallback } from 'preact/hooks';\nimport classNames from 'classnames';\nimport { nanoid } from 'nanoid/non-secure';\nimport getFileTypeIcon from \"../../utils/getFileTypeIcon.js\";\nimport ignoreEvent from '../../utils/ignoreEvent.js';\nimport FilePreview from \"../FilePreview.js\";\nimport RenderMetaFields from \"./RenderMetaFields.js\";\nexport default function FileCard(props) {\n  var _getMetaFields;\n  const {\n    files,\n    fileCardFor,\n    toggleFileCard,\n    saveFileCard,\n    metaFields,\n    requiredMetaFields,\n    openFileEditor,\n    i18n,\n    i18nArray,\n    className,\n    canEditFile\n  } = props;\n  const getMetaFields = () => {\n    return typeof metaFields === 'function' ? metaFields(files[fileCardFor]) : metaFields;\n  };\n  const file = files[fileCardFor];\n  const computedMetaFields = (_getMetaFields = getMetaFields()) != null ? _getMetaFields : [];\n  const showEditButton = canEditFile(file);\n  const storedMetaData = {};\n  computedMetaFields.forEach(field => {\n    var _file$meta$field$id;\n    storedMetaData[field.id] = (_file$meta$field$id = file.meta[field.id]) != null ? _file$meta$field$id : '';\n  });\n  const [formState, setFormState] = useState(storedMetaData);\n  const handleSave = useCallback(ev => {\n    ev.preventDefault();\n    saveFileCard(formState, fileCardFor);\n  }, [saveFileCard, formState, fileCardFor]);\n  const updateMeta = (newVal, name) => {\n    setFormState({\n      ...formState,\n      [name]: newVal\n    });\n  };\n  const handleCancel = () => {\n    toggleFileCard(false);\n  };\n  const [form] = useState(() => {\n    const formEl = document.createElement('form');\n    formEl.setAttribute('tabindex', '-1');\n    formEl.id = nanoid();\n    return formEl;\n  });\n  useEffect(() => {\n    document.body.appendChild(form);\n    form.addEventListener('submit', handleSave);\n    return () => {\n      form.removeEventListener('submit', handleSave);\n      document.body.removeChild(form);\n    };\n  }, [form, handleSave]);\n  return h(\"div\", {\n    className: classNames('uppy-Dashboard-FileCard', className),\n    \"data-uppy-panelType\": \"FileCard\",\n    onDragOver: ignoreEvent,\n    onDragLeave: ignoreEvent,\n    onDrop: ignoreEvent,\n    onPaste: ignoreEvent\n  }, h(\"div\", {\n    className: \"uppy-DashboardContent-bar\"\n  }, h(\"div\", {\n    className: \"uppy-DashboardContent-title\",\n    role: \"heading\",\n    \"aria-level\": \"1\"\n  }, i18nArray('editing', {\n    file: h(\"span\", {\n      className: \"uppy-DashboardContent-titleFile\"\n    }, file.meta ? file.meta.name : file.name)\n  })), h(\"button\", {\n    className: \"uppy-DashboardContent-back\",\n    type: \"button\",\n    form: form.id,\n    title: i18n('finishEditingFile'),\n    onClick: handleCancel\n  }, i18n('cancel'))), h(\"div\", {\n    className: \"uppy-Dashboard-FileCard-inner\"\n  }, h(\"div\", {\n    className: \"uppy-Dashboard-FileCard-preview\",\n    style: {\n      backgroundColor: getFileTypeIcon(file.type).color\n    }\n  }, h(FilePreview, {\n    file: file\n  }), showEditButton && h(\"button\", {\n    type: \"button\",\n    className: \"uppy-u-reset uppy-c-btn uppy-Dashboard-FileCard-edit\",\n    onClick: event => {\n      // When opening the image editor we want to save any meta fields changes.\n      // Otherwise it's confusing for the user to click save in the editor,\n      // but the changes here are discarded. This bypasses validation,\n      // but we are okay with that.\n      handleSave(event);\n      openFileEditor(file);\n    }\n  }, i18n('editImage'))), h(\"div\", {\n    className: \"uppy-Dashboard-FileCard-info\"\n  }, h(RenderMetaFields, {\n    computedMetaFields: computedMetaFields,\n    requiredMetaFields: requiredMetaFields,\n    updateMeta: updateMeta,\n    form: form,\n    formState: formState\n  })), h(\"div\", {\n    className: \"uppy-Dashboard-FileCard-actions\"\n  }, h(\"button\", {\n    className: \"uppy-u-reset uppy-c-btn uppy-c-btn-primary uppy-Dashboard-FileCard-actionsBtn\"\n    // If `form` attribute is supported, we want a submit button to trigger the form validation.\n    // Otherwise, fallback to a classic button with a onClick event handler.\n    ,\n    type: \"submit\",\n    form: form.id\n  }, i18n('saveChanges')), h(\"button\", {\n    className: \"uppy-u-reset uppy-c-btn uppy-c-btn-link uppy-Dashboard-FileCard-actionsBtn\",\n    type: \"button\",\n    onClick: handleCancel,\n    form: form.id\n  }, i18n('cancel')))));\n}","import { cloneElement, toChildArray } from 'preact';\nimport { useEffect, useState, useRef } from 'preact/hooks';\nimport classNames from 'classnames';\nconst transitionName = 'uppy-transition-slideDownUp';\nconst duration = 250;\n\n/**\n * Vertical slide transition.\n *\n * This can take a _single_ child component, which _must_ accept a `className` prop.\n *\n * Currently this is specific to the `uppy-transition-slideDownUp` transition,\n * but it should be simple to extend this for any type of single-element\n * transition by setting the CSS name and duration as props.\n */\nfunction Slide(_ref) {\n  let {\n    children\n  } = _ref;\n  const [cachedChildren, setCachedChildren] = useState(null);\n  const [className, setClassName] = useState('');\n  const enterTimeoutRef = useRef();\n  const leaveTimeoutRef = useRef();\n  const animationFrameRef = useRef();\n  const handleEnterTransition = () => {\n    setClassName(`${transitionName}-enter`);\n    cancelAnimationFrame(animationFrameRef.current);\n    clearTimeout(leaveTimeoutRef.current);\n    leaveTimeoutRef.current = undefined;\n    animationFrameRef.current = requestAnimationFrame(() => {\n      setClassName(`${transitionName}-enter ${transitionName}-enter-active`);\n      enterTimeoutRef.current = setTimeout(() => {\n        setClassName('');\n      }, duration);\n    });\n  };\n  const handleLeaveTransition = () => {\n    setClassName(`${transitionName}-leave`);\n    cancelAnimationFrame(animationFrameRef.current);\n    clearTimeout(enterTimeoutRef.current);\n    enterTimeoutRef.current = undefined;\n    animationFrameRef.current = requestAnimationFrame(() => {\n      setClassName(`${transitionName}-leave ${transitionName}-leave-active`);\n      leaveTimeoutRef.current = setTimeout(() => {\n        setCachedChildren(null);\n        setClassName('');\n      }, duration);\n    });\n  };\n  useEffect(() => {\n    const child = toChildArray(children)[0];\n    if (cachedChildren === child) return;\n    if (child && !cachedChildren) {\n      handleEnterTransition();\n    } else if (cachedChildren && !child && !leaveTimeoutRef.current) {\n      handleLeaveTransition();\n    }\n    setCachedChildren(child);\n  }, [children, cachedChildren]); // Dependency array to trigger effect on children change\n\n  useEffect(() => {\n    return () => {\n      clearTimeout(enterTimeoutRef.current);\n      clearTimeout(leaveTimeoutRef.current);\n      cancelAnimationFrame(animationFrameRef.current);\n    };\n  }, []); // Cleanup useEffect\n\n  if (!cachedChildren) return null;\n  return cloneElement(cachedChildren, {\n    className: classNames(className, cachedChildren.props.className)\n  });\n}\nexport default Slide;","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\n/* eslint-disable react/destructuring-assignment, react/jsx-props-no-spreading */\nimport { h } from 'preact';\nimport classNames from 'classnames';\nimport isDragDropSupported from '@uppy/utils/lib/isDragDropSupported';\nimport FileList from \"./FileList.js\";\nimport AddFiles from \"./AddFiles.js\";\nimport AddFilesPanel from \"./AddFilesPanel.js\";\nimport PickerPanelContent from \"./PickerPanelContent.js\";\nimport EditorPanel from \"./EditorPanel.js\";\nimport PanelTopBar from \"./PickerPanelTopBar.js\";\nimport FileCard from \"./FileCard/index.js\";\nimport Slide from \"./Slide.js\";\n// http://dev.edenspiekermann.com/2016/02/11/introducing-accessible-modal-dialog\n// https://github.com/ghosh/micromodal\n\nconst WIDTH_XL = 900;\nconst WIDTH_LG = 700;\nconst WIDTH_MD = 576;\nconst HEIGHT_MD = 330;\n// We might want to enable this in the future\n// const HEIGHT_LG = 400\n// const HEIGHT_XL = 460\n\nexport default function Dashboard(props) {\n  const isNoFiles = props.totalFileCount === 0;\n  const isSingleFile = props.totalFileCount === 1;\n  const isSizeMD = props.containerWidth > WIDTH_MD;\n  const isSizeHeightMD = props.containerHeight > HEIGHT_MD;\n  const dashboardClassName = classNames({\n    'uppy-Dashboard': true,\n    'uppy-Dashboard--isDisabled': props.disabled,\n    'uppy-Dashboard--animateOpenClose': props.animateOpenClose,\n    'uppy-Dashboard--isClosing': props.isClosing,\n    'uppy-Dashboard--isDraggingOver': props.isDraggingOver,\n    'uppy-Dashboard--modal': !props.inline,\n    'uppy-size--md': props.containerWidth > WIDTH_MD,\n    'uppy-size--lg': props.containerWidth > WIDTH_LG,\n    'uppy-size--xl': props.containerWidth > WIDTH_XL,\n    'uppy-size--height-md': props.containerHeight > HEIGHT_MD,\n    // We might want to enable this in the future\n    // 'uppy-size--height-lg': props.containerHeight > HEIGHT_LG,\n    // 'uppy-size--height-xl': props.containerHeight > HEIGHT_XL,\n    'uppy-Dashboard--isAddFilesPanelVisible': props.showAddFilesPanel,\n    'uppy-Dashboard--isInnerWrapVisible': props.areInsidesReadyToBeVisible,\n    // Only enable “centered single file” mode when Dashboard is tall enough\n    'uppy-Dashboard--singleFile': props.singleFileFullScreen && isSingleFile && isSizeHeightMD\n  });\n\n  // Important: keep these in sync with the percent width values in `src/components/FileItem/index.scss`.\n  let itemsPerRow = 1; // mobile\n  if (props.containerWidth > WIDTH_XL) {\n    itemsPerRow = 5;\n  } else if (props.containerWidth > WIDTH_LG) {\n    itemsPerRow = 4;\n  } else if (props.containerWidth > WIDTH_MD) {\n    itemsPerRow = 3;\n  }\n  const showFileList = props.showSelectedFiles && !isNoFiles;\n  const numberOfFilesForRecovery = props.recoveredState ? Object.keys(props.recoveredState.files).length : null;\n  const numberOfGhosts = props.files ? Object.keys(props.files).filter(fileID => props.files[fileID].isGhost).length : 0;\n  const renderRestoredText = () => {\n    if (numberOfGhosts > 0) {\n      return props.i18n('recoveredXFiles', {\n        smart_count: numberOfGhosts\n      });\n    }\n    return props.i18n('recoveredAllFiles');\n  };\n  const dashboard = h(\"div\", {\n    className: dashboardClassName,\n    \"data-uppy-theme\": props.theme,\n    \"data-uppy-num-acquirers\": props.acquirers.length,\n    \"data-uppy-drag-drop-supported\": !props.disableLocalFiles && isDragDropSupported(),\n    \"aria-hidden\": props.inline ? 'false' : props.isHidden,\n    \"aria-disabled\": props.disabled,\n    \"aria-label\": !props.inline ? props.i18n('dashboardWindowTitle') : props.i18n('dashboardTitle'),\n    onPaste: props.handlePaste,\n    onDragOver: props.handleDragOver,\n    onDragLeave: props.handleDragLeave,\n    onDrop: props.handleDrop\n  }, h(\"div\", {\n    \"aria-hidden\": \"true\",\n    className: \"uppy-Dashboard-overlay\",\n    tabIndex: -1,\n    onClick: props.handleClickOutside\n  }), h(\"div\", {\n    className: \"uppy-Dashboard-inner\",\n    \"aria-modal\": !props.inline && 'true',\n    role: props.inline ? undefined : 'dialog',\n    style: {\n      width: props.inline && props.width ? props.width : '',\n      height: props.inline && props.height ? props.height : ''\n    }\n  }, !props.inline ? h(\"button\", {\n    className: \"uppy-u-reset uppy-Dashboard-close\",\n    type: \"button\",\n    \"aria-label\": props.i18n('closeModal'),\n    title: props.i18n('closeModal'),\n    onClick: props.closeModal\n  }, h(\"span\", {\n    \"aria-hidden\": \"true\"\n  }, \"\\xD7\")) : null, h(\"div\", {\n    className: \"uppy-Dashboard-innerWrap\"\n  }, h(\"div\", {\n    className: \"uppy-Dashboard-dropFilesHereHint\"\n  }, props.i18n('dropHint')), showFileList && h(PanelTopBar, props), numberOfFilesForRecovery && h(\"div\", {\n    className: \"uppy-Dashboard-serviceMsg\"\n  }, h(\"svg\", {\n    className: \"uppy-Dashboard-serviceMsg-icon\",\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    width: \"21\",\n    height: \"16\",\n    viewBox: \"0 0 24 19\"\n  }, h(\"g\", {\n    transform: \"translate(0 -1)\",\n    fill: \"none\",\n    fillRule: \"evenodd\"\n  }, h(\"path\", {\n    d: \"M12.857 1.43l10.234 17.056A1 1 0 0122.234 20H1.766a1 1 0 01-.857-1.514L11.143 1.429a1 1 0 011.714 0z\",\n    fill: \"#FFD300\"\n  }), h(\"path\", {\n    fill: \"#000\",\n    d: \"M11 6h2l-.3 8h-1.4z\"\n  }), h(\"circle\", {\n    fill: \"#000\",\n    cx: \"12\",\n    cy: \"17\",\n    r: \"1\"\n  }))), h(\"strong\", {\n    className: \"uppy-Dashboard-serviceMsg-title\"\n  }, props.i18n('sessionRestored')), h(\"div\", {\n    className: \"uppy-Dashboard-serviceMsg-text\"\n  }, renderRestoredText())), showFileList ? h(FileList, {\n    id: props.id,\n    i18n: props.i18n,\n    uppy: props.uppy,\n    files: props.files,\n    resumableUploads: props.resumableUploads,\n    hideRetryButton: props.hideRetryButton,\n    hidePauseResumeButton: props.hidePauseResumeButton,\n    hideCancelButton: props.hideCancelButton,\n    showLinkToFileUploadResult: props.showLinkToFileUploadResult,\n    showRemoveButtonAfterComplete: props.showRemoveButtonAfterComplete,\n    metaFields: props.metaFields,\n    toggleFileCard: props.toggleFileCard,\n    handleRequestThumbnail: props.handleRequestThumbnail,\n    handleCancelThumbnail: props.handleCancelThumbnail,\n    recoveredState: props.recoveredState,\n    individualCancellation: props.individualCancellation,\n    openFileEditor: props.openFileEditor,\n    canEditFile: props.canEditFile,\n    toggleAddFilesPanel: props.toggleAddFilesPanel,\n    isSingleFile: isSingleFile,\n    itemsPerRow: itemsPerRow,\n    containerWidth: props.containerWidth,\n    containerHeight: props.containerHeight\n  }) : h(AddFiles, {\n    i18n: props.i18n,\n    i18nArray: props.i18nArray,\n    acquirers: props.acquirers,\n    handleInputChange: props.handleInputChange,\n    maxNumberOfFiles: props.maxNumberOfFiles,\n    allowedFileTypes: props.allowedFileTypes,\n    showNativePhotoCameraButton: props.showNativePhotoCameraButton,\n    showNativeVideoCameraButton: props.showNativeVideoCameraButton,\n    nativeCameraFacingMode: props.nativeCameraFacingMode,\n    showPanel: props.showPanel,\n    activePickerPanel: props.activePickerPanel,\n    disableLocalFiles: props.disableLocalFiles,\n    fileManagerSelectionType: props.fileManagerSelectionType,\n    note: props.note,\n    proudlyDisplayPoweredByUppy: props.proudlyDisplayPoweredByUppy\n  }), h(Slide, null, props.showAddFilesPanel ? h(AddFilesPanel, _extends({\n    key: \"AddFiles\"\n  }, props, {\n    isSizeMD: isSizeMD\n  })) : null), h(Slide, null, props.fileCardFor ? h(FileCard, _extends({\n    key: \"FileCard\"\n  }, props)) : null), h(Slide, null, props.activePickerPanel ? h(PickerPanelContent, _extends({\n    key: \"Picker\"\n  }, props)) : null), h(Slide, null, props.showFileEditor ? h(EditorPanel, _extends({\n    key: \"Editor\"\n  }, props)) : null), h(\"div\", {\n    className: \"uppy-Dashboard-progressindicators\"\n  }, props.progressindicators.map(target => {\n    // TODO\n    // Here we're telling typescript all `this.type = 'progressindicator'` plugins inherit from `UIPlugin`\n    // This is factually true in Uppy right now, but maybe it doesn't have to be\n    return props.uppy.getPlugin(target.id).render(props.state);\n  })))));\n  return dashboard;\n}","export default {\n  strings: {\n    // When `inline: false`, used as the screen reader label for the button that closes the modal.\n    closeModal: 'Close Modal',\n    // Used as the screen reader label for the plus (+) button that shows the “Add more files” screen\n    addMoreFiles: 'Add more files',\n    addingMoreFiles: 'Adding more files',\n    // Used as the header for import panels, e.g., “Import from Google Drive”.\n    importFrom: 'Import from %{name}',\n    // When `inline: false`, used as the screen reader label for the dashboard modal.\n    dashboardWindowTitle: 'Uppy Dashboard Window (Press escape to close)',\n    // When `inline: true`, used as the screen reader label for the dashboard area.\n    dashboardTitle: 'Uppy Dashboard',\n    // Shown in the Informer when a link to a file was copied to the clipboard.\n    copyLinkToClipboardSuccess: 'Link copied to clipboard.',\n    // Used when a link cannot be copied automatically — the user has to select the text from the\n    // input element below this string.\n    copyLinkToClipboardFallback: 'Copy the URL below',\n    // Used as the hover title and screen reader label for buttons that copy a file link.\n    copyLink: 'Copy link',\n    back: 'Back',\n    // Used as the screen reader label for buttons that remove a file.\n    removeFile: 'Remove file',\n    // Used as the screen reader label for buttons that open the metadata editor panel for a file.\n    editFile: 'Edit file',\n    editImage: 'Edit image',\n    // Shown in the panel header for the metadata editor. Rendered as “Editing image.png”.\n    editing: 'Editing %{file}',\n    // Shown on the main upload screen when an upload error occurs\n    error: 'Error',\n    // Used as the screen reader label for the button that saves metadata edits and returns to the\n    // file list view.\n    finishEditingFile: 'Finish editing file',\n    saveChanges: 'Save changes',\n    // Used as the label for the tab button that opens the system file selection dialog.\n    myDevice: 'My Device',\n    dropHint: 'Drop your files here',\n    // Used as the hover text and screen reader label for file progress indicators when\n    // they have been fully uploaded.\n    uploadComplete: 'Upload complete',\n    uploadPaused: 'Upload paused',\n    // Used as the hover text and screen reader label for the buttons to resume paused uploads.\n    resumeUpload: 'Resume upload',\n    // Used as the hover text and screen reader label for the buttons to pause uploads.\n    pauseUpload: 'Pause upload',\n    // Used as the hover text and screen reader label for the buttons to retry failed uploads.\n    retryUpload: 'Retry upload',\n    // Used as the hover text and screen reader label for the buttons to cancel uploads.\n    cancelUpload: 'Cancel upload',\n    // Used in a title, how many files are currently selected\n    xFilesSelected: {\n      0: '%{smart_count} file selected',\n      1: '%{smart_count} files selected'\n    },\n    uploadingXFiles: {\n      0: 'Uploading %{smart_count} file',\n      1: 'Uploading %{smart_count} files'\n    },\n    processingXFiles: {\n      0: 'Processing %{smart_count} file',\n      1: 'Processing %{smart_count} files'\n    },\n    // The \"powered by Uppy\" link at the bottom of the Dashboard.\n    poweredBy: 'Powered by %{uppy}',\n    addMore: 'Add more',\n    editFileWithFilename: 'Edit file %{file}',\n    save: 'Save',\n    cancel: 'Cancel',\n    dropPasteFiles: 'Drop files here or %{browseFiles}',\n    dropPasteFolders: 'Drop files here or %{browseFolders}',\n    dropPasteBoth: 'Drop files here, %{browseFiles} or %{browseFolders}',\n    dropPasteImportFiles: 'Drop files here, %{browseFiles} or import from:',\n    dropPasteImportFolders: 'Drop files here, %{browseFolders} or import from:',\n    dropPasteImportBoth: 'Drop files here, %{browseFiles}, %{browseFolders} or import from:',\n    importFiles: 'Import files from:',\n    browseFiles: 'browse files',\n    browseFolders: 'browse folders',\n    recoveredXFiles: {\n      0: 'We could not fully recover 1 file. Please re-select it and resume the upload.',\n      1: 'We could not fully recover %{smart_count} files. Please re-select them and resume the upload.'\n    },\n    recoveredAllFiles: 'We restored all files. You can now resume the upload.',\n    sessionRestored: 'Session restored',\n    reSelect: 'Re-select',\n    missingRequiredMetaFields: {\n      0: 'Missing required meta field: %{fields}.',\n      1: 'Missing required meta fields: %{fields}.'\n    },\n    // Used for native device camera buttons on mobile\n    takePictureBtn: 'Take Picture',\n    recordVideoBtn: 'Record Video'\n  }\n};","function _classPrivateFieldLooseBase(e, t) { if (!{}.hasOwnProperty.call(e, t)) throw new TypeError(\"attempted to use private field on non-instance\"); return e; }\nvar id = 0;\nfunction _classPrivateFieldLooseKey(e) { return \"__private_\" + id++ + \"_\" + e; }\nimport { UIPlugin } from '@uppy/core';\nimport StatusBar from '@uppy/status-bar';\nimport Informer from '@uppy/informer';\nimport ThumbnailGenerator from '@uppy/thumbnail-generator';\nimport findAllDOMElements from '@uppy/utils/lib/findAllDOMElements';\nimport toArray from '@uppy/utils/lib/toArray';\nimport getDroppedFiles from '@uppy/utils/lib/getDroppedFiles';\nimport { defaultPickerIcon } from '@uppy/provider-views';\nimport { nanoid } from 'nanoid/non-secure';\nimport memoizeOne from 'memoize-one';\nimport * as trapFocus from './utils/trapFocus.js';\nimport createSuperFocus from './utils/createSuperFocus.js';\nimport DashboardUI from \"./components/Dashboard.js\";\n\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore We don't want TS to generate types for the package.json\nconst packageJson = {\n  \"version\": \"4.3.2\"\n};\nimport locale from './locale.js';\nconst memoize = memoizeOne.default || memoizeOne;\nconst TAB_KEY = 9;\nconst ESC_KEY = 27;\nfunction createPromise() {\n  const o = {};\n  o.promise = new Promise((resolve, reject) => {\n    o.resolve = resolve;\n    o.reject = reject;\n  });\n  return o;\n}\nconst defaultOptions = {\n  target: 'body',\n  metaFields: [],\n  thumbnailWidth: 280,\n  thumbnailType: 'image/jpeg',\n  waitForThumbnailsBeforeUpload: false,\n  defaultPickerIcon,\n  showLinkToFileUploadResult: false,\n  showProgressDetails: false,\n  hideUploadButton: false,\n  hideCancelButton: false,\n  hideRetryButton: false,\n  hidePauseResumeButton: false,\n  hideProgressAfterFinish: false,\n  note: null,\n  singleFileFullScreen: true,\n  disableStatusBar: false,\n  disableInformer: false,\n  disableThumbnailGenerator: false,\n  fileManagerSelectionType: 'files',\n  proudlyDisplayPoweredByUppy: true,\n  showSelectedFiles: true,\n  showRemoveButtonAfterComplete: false,\n  showNativePhotoCameraButton: false,\n  showNativeVideoCameraButton: false,\n  theme: 'light',\n  autoOpen: null,\n  disabled: false,\n  disableLocalFiles: false,\n  nativeCameraFacingMode: '',\n  onDragLeave: () => {},\n  onDragOver: () => {},\n  onDrop: () => {},\n  plugins: [],\n  // Dynamic default options, they have to be defined in the constructor (because\n  // they require access to the `this` keyword), but we still want them to\n  // appear in the default options so TS knows they'll be defined.\n  doneButtonHandler: undefined,\n  onRequestCloseModal: null,\n  // defaultModalOptions\n  inline: false,\n  animateOpenClose: true,\n  browserBackButtonClose: false,\n  closeAfterFinish: false,\n  closeModalOnClickOutside: false,\n  disablePageScrollWhenModalOpen: true,\n  trigger: null,\n  // defaultInlineOptions\n  width: 750,\n  height: 550\n};\n\n/**\n * Dashboard UI with previews, metadata editing, tabs for various services and more\n */\nvar _disabledNodes = /*#__PURE__*/_classPrivateFieldLooseKey(\"disabledNodes\");\nvar _generateLargeThumbnailIfSingleFile = /*#__PURE__*/_classPrivateFieldLooseKey(\"generateLargeThumbnailIfSingleFile\");\nvar _openFileEditorWhenFilesAdded = /*#__PURE__*/_classPrivateFieldLooseKey(\"openFileEditorWhenFilesAdded\");\nvar _attachRenderFunctionToTarget = /*#__PURE__*/_classPrivateFieldLooseKey(\"attachRenderFunctionToTarget\");\nvar _isTargetSupported = /*#__PURE__*/_classPrivateFieldLooseKey(\"isTargetSupported\");\nvar _getAcquirers = /*#__PURE__*/_classPrivateFieldLooseKey(\"getAcquirers\");\nvar _getProgressIndicators = /*#__PURE__*/_classPrivateFieldLooseKey(\"getProgressIndicators\");\nvar _getEditors = /*#__PURE__*/_classPrivateFieldLooseKey(\"getEditors\");\nvar _addSpecifiedPluginsFromOptions = /*#__PURE__*/_classPrivateFieldLooseKey(\"addSpecifiedPluginsFromOptions\");\nvar _autoDiscoverPlugins = /*#__PURE__*/_classPrivateFieldLooseKey(\"autoDiscoverPlugins\");\nvar _addSupportedPluginIfNoTarget = /*#__PURE__*/_classPrivateFieldLooseKey(\"addSupportedPluginIfNoTarget\");\nvar _getStatusBarOpts = /*#__PURE__*/_classPrivateFieldLooseKey(\"getStatusBarOpts\");\nvar _getThumbnailGeneratorOpts = /*#__PURE__*/_classPrivateFieldLooseKey(\"getThumbnailGeneratorOpts\");\nvar _getInformerOpts = /*#__PURE__*/_classPrivateFieldLooseKey(\"getInformerOpts\");\nvar _getStatusBarId = /*#__PURE__*/_classPrivateFieldLooseKey(\"getStatusBarId\");\nvar _getThumbnailGeneratorId = /*#__PURE__*/_classPrivateFieldLooseKey(\"getThumbnailGeneratorId\");\nvar _getInformerId = /*#__PURE__*/_classPrivateFieldLooseKey(\"getInformerId\");\nexport default class Dashboard extends UIPlugin {\n  // Timeouts\n\n  constructor(uppy, _opts) {\n    var _opts$autoOpen, _this$opts, _this$opts$onRequestC;\n    const autoOpen = (_opts$autoOpen = _opts == null ? void 0 : _opts.autoOpen) != null ? _opts$autoOpen : null;\n    super(uppy, {\n      ...defaultOptions,\n      ..._opts,\n      autoOpen\n    });\n    Object.defineProperty(this, _getInformerId, {\n      value: _getInformerId2\n    });\n    Object.defineProperty(this, _getThumbnailGeneratorId, {\n      value: _getThumbnailGeneratorId2\n    });\n    Object.defineProperty(this, _getStatusBarId, {\n      value: _getStatusBarId2\n    });\n    // eslint-disable-next-line class-methods-use-this\n    Object.defineProperty(this, _getInformerOpts, {\n      value: _getInformerOpts2\n    });\n    Object.defineProperty(this, _getThumbnailGeneratorOpts, {\n      value: _getThumbnailGeneratorOpts2\n    });\n    Object.defineProperty(this, _getStatusBarOpts, {\n      value: _getStatusBarOpts2\n    });\n    Object.defineProperty(this, _disabledNodes, {\n      writable: true,\n      value: void 0\n    });\n    this.modalName = `uppy-Dashboard-${nanoid()}`;\n    this.superFocus = createSuperFocus();\n    this.ifFocusedOnUppyRecently = false;\n    this.removeTarget = plugin => {\n      const pluginState = this.getPluginState();\n      // filter out the one we want to remove\n      const newTargets = pluginState.targets.filter(target => target.id !== plugin.id);\n      this.setPluginState({\n        targets: newTargets\n      });\n    };\n    this.addTarget = plugin => {\n      const callerPluginId = plugin.id || plugin.constructor.name;\n      const callerPluginName = plugin.title || callerPluginId;\n      const callerPluginType = plugin.type;\n      if (callerPluginType !== 'acquirer' && callerPluginType !== 'progressindicator' && callerPluginType !== 'editor') {\n        const msg = 'Dashboard: can only be targeted by plugins of types: acquirer, progressindicator, editor';\n        this.uppy.log(msg, 'error');\n        return null;\n      }\n      const target = {\n        id: callerPluginId,\n        name: callerPluginName,\n        type: callerPluginType\n      };\n      const state = this.getPluginState();\n      const newTargets = state.targets.slice();\n      newTargets.push(target);\n      this.setPluginState({\n        targets: newTargets\n      });\n      return this.el;\n    };\n    this.hideAllPanels = () => {\n      var _state$activePickerPa;\n      const state = this.getPluginState();\n      const update = {\n        activePickerPanel: undefined,\n        showAddFilesPanel: false,\n        activeOverlayType: null,\n        fileCardFor: null,\n        showFileEditor: false\n      };\n      if (state.activePickerPanel === update.activePickerPanel && state.showAddFilesPanel === update.showAddFilesPanel && state.showFileEditor === update.showFileEditor && state.activeOverlayType === update.activeOverlayType) {\n        // avoid doing a state update if nothing changed\n        return;\n      }\n      this.setPluginState(update);\n      this.uppy.emit('dashboard:close-panel', (_state$activePickerPa = state.activePickerPanel) == null ? void 0 : _state$activePickerPa.id);\n    };\n    this.showPanel = id => {\n      const {\n        targets\n      } = this.getPluginState();\n      const activePickerPanel = targets.find(target => {\n        return target.type === 'acquirer' && target.id === id;\n      });\n      this.setPluginState({\n        activePickerPanel,\n        activeOverlayType: 'PickerPanel'\n      });\n      this.uppy.emit('dashboard:show-panel', id);\n    };\n    this.canEditFile = file => {\n      const {\n        targets\n      } = this.getPluginState();\n      const editors = _classPrivateFieldLooseBase(this, _getEditors)[_getEditors](targets);\n      return editors.some(target => this.uppy.getPlugin(target.id).canEditFile(file));\n    };\n    this.openFileEditor = file => {\n      const {\n        targets\n      } = this.getPluginState();\n      const editors = _classPrivateFieldLooseBase(this, _getEditors)[_getEditors](targets);\n      this.setPluginState({\n        showFileEditor: true,\n        fileCardFor: file.id || null,\n        activeOverlayType: 'FileEditor'\n      });\n      editors.forEach(editor => {\n        ;\n        this.uppy.getPlugin(editor.id).selectFile(file);\n      });\n    };\n    this.closeFileEditor = () => {\n      const {\n        metaFields\n      } = this.getPluginState();\n      const isMetaEditorEnabled = metaFields && metaFields.length > 0;\n      if (isMetaEditorEnabled) {\n        this.setPluginState({\n          showFileEditor: false,\n          activeOverlayType: 'FileCard'\n        });\n      } else {\n        this.setPluginState({\n          showFileEditor: false,\n          fileCardFor: null,\n          activeOverlayType: 'AddFiles'\n        });\n      }\n    };\n    this.saveFileEditor = () => {\n      const {\n        targets\n      } = this.getPluginState();\n      const editors = _classPrivateFieldLooseBase(this, _getEditors)[_getEditors](targets);\n      editors.forEach(editor => {\n        ;\n        this.uppy.getPlugin(editor.id).save();\n      });\n      this.closeFileEditor();\n    };\n    this.openModal = () => {\n      const {\n        promise,\n        resolve\n      } = createPromise();\n      // save scroll position\n      this.savedScrollPosition = window.pageYOffset;\n      // save active element, so we can restore focus when modal is closed\n      this.savedActiveElement = document.activeElement;\n      if (this.opts.disablePageScrollWhenModalOpen) {\n        document.body.classList.add('uppy-Dashboard-isFixed');\n      }\n      if (this.opts.animateOpenClose && this.getPluginState().isClosing) {\n        const handler = () => {\n          this.setPluginState({\n            isHidden: false\n          });\n          this.el.removeEventListener('animationend', handler, false);\n          resolve();\n        };\n        this.el.addEventListener('animationend', handler, false);\n      } else {\n        this.setPluginState({\n          isHidden: false\n        });\n        resolve();\n      }\n      if (this.opts.browserBackButtonClose) {\n        this.updateBrowserHistory();\n      }\n\n      // handle ESC and TAB keys in modal dialog\n      document.addEventListener('keydown', this.handleKeyDownInModal);\n      this.uppy.emit('dashboard:modal-open');\n      return promise;\n    };\n    this.closeModal = opts => {\n      var _opts$manualClose;\n      // Whether the modal is being closed by the user (`true`) or by other means (e.g. browser back button)\n      const manualClose = (_opts$manualClose = opts == null ? void 0 : opts.manualClose) != null ? _opts$manualClose : true;\n      const {\n        isHidden,\n        isClosing\n      } = this.getPluginState();\n      if (isHidden || isClosing) {\n        // short-circuit if animation is ongoing\n        return undefined;\n      }\n      const {\n        promise,\n        resolve\n      } = createPromise();\n      if (this.opts.disablePageScrollWhenModalOpen) {\n        document.body.classList.remove('uppy-Dashboard-isFixed');\n      }\n      if (this.opts.animateOpenClose) {\n        this.setPluginState({\n          isClosing: true\n        });\n        const handler = () => {\n          this.setPluginState({\n            isHidden: true,\n            isClosing: false\n          });\n          this.superFocus.cancel();\n          this.savedActiveElement.focus();\n          this.el.removeEventListener('animationend', handler, false);\n          resolve();\n        };\n        this.el.addEventListener('animationend', handler, false);\n      } else {\n        this.setPluginState({\n          isHidden: true\n        });\n        this.superFocus.cancel();\n        this.savedActiveElement.focus();\n        resolve();\n      }\n\n      // handle ESC and TAB keys in modal dialog\n      document.removeEventListener('keydown', this.handleKeyDownInModal);\n      if (manualClose) {\n        if (this.opts.browserBackButtonClose) {\n          var _history$state;\n          // Make sure that the latest entry in the history state is our modal name\n          // eslint-disable-next-line no-restricted-globals\n          if ((_history$state = history.state) != null && _history$state[this.modalName]) {\n            // Go back in history to clear out the entry we created (ultimately closing the modal)\n            // eslint-disable-next-line no-restricted-globals\n            history.back();\n          }\n        }\n      }\n      this.uppy.emit('dashboard:modal-closed');\n      return promise;\n    };\n    this.isModalOpen = () => {\n      return !this.getPluginState().isHidden || false;\n    };\n    this.requestCloseModal = () => {\n      if (this.opts.onRequestCloseModal) {\n        return this.opts.onRequestCloseModal();\n      }\n      return this.closeModal();\n    };\n    this.setDarkModeCapability = isDarkModeOn => {\n      const {\n        capabilities\n      } = this.uppy.getState();\n      this.uppy.setState({\n        capabilities: {\n          ...capabilities,\n          darkMode: isDarkModeOn\n        }\n      });\n    };\n    this.handleSystemDarkModeChange = event => {\n      const isDarkModeOnNow = event.matches;\n      this.uppy.log(`[Dashboard] Dark mode is ${isDarkModeOnNow ? 'on' : 'off'}`);\n      this.setDarkModeCapability(isDarkModeOnNow);\n    };\n    this.toggleFileCard = (show, fileID) => {\n      const file = this.uppy.getFile(fileID);\n      if (show) {\n        this.uppy.emit('dashboard:file-edit-start', file);\n      } else {\n        this.uppy.emit('dashboard:file-edit-complete', file);\n      }\n      this.setPluginState({\n        fileCardFor: show ? fileID : null,\n        activeOverlayType: show ? 'FileCard' : null\n      });\n    };\n    this.toggleAddFilesPanel = show => {\n      this.setPluginState({\n        showAddFilesPanel: show,\n        activeOverlayType: show ? 'AddFiles' : null\n      });\n    };\n    this.addFiles = files => {\n      const descriptors = files.map(file => ({\n        source: this.id,\n        name: file.name,\n        type: file.type,\n        data: file,\n        meta: {\n          // path of the file relative to the ancestor directory the user selected.\n          // e.g. 'docs/Old Prague/airbnb.pdf'\n          relativePath: file.relativePath || file.webkitRelativePath || null\n        }\n      }));\n      try {\n        this.uppy.addFiles(descriptors);\n      } catch (err) {\n        this.uppy.log(err);\n      }\n    };\n    // ___Why make insides of Dashboard invisible until first ResizeObserver event is emitted?\n    //    ResizeOberserver doesn't emit the first resize event fast enough, users can see the jump from one .uppy-size-- to\n    //    another (e.g. in Safari)\n    // ___Why not apply visibility property to .uppy-Dashboard-inner?\n    //    Because ideally, acc to specs, ResizeObserver should see invisible elements as of width 0. So even though applying\n    //    invisibility to .uppy-Dashboard-inner works now, it may not work in the future.\n    this.startListeningToResize = () => {\n      // Watch for Dashboard container (`.uppy-Dashboard-inner`) resize\n      // and update containerWidth/containerHeight in plugin state accordingly.\n      // Emits first event on initialization.\n      this.resizeObserver = new ResizeObserver(entries => {\n        const uppyDashboardInnerEl = entries[0];\n        const {\n          width,\n          height\n        } = uppyDashboardInnerEl.contentRect;\n        this.setPluginState({\n          containerWidth: width,\n          containerHeight: height,\n          areInsidesReadyToBeVisible: true\n        });\n      });\n      this.resizeObserver.observe(this.el.querySelector('.uppy-Dashboard-inner'));\n\n      // If ResizeObserver fails to emit an event telling us what size to use - default to the mobile view\n      this.makeDashboardInsidesVisibleAnywayTimeout = setTimeout(() => {\n        const pluginState = this.getPluginState();\n        const isModalAndClosed = !this.opts.inline && pluginState.isHidden;\n        if (\n        // We might want to enable this in the future\n\n        // if ResizeObserver hasn't yet fired,\n        !pluginState.areInsidesReadyToBeVisible &&\n        // and it's not due to the modal being closed\n        !isModalAndClosed) {\n          this.uppy.log('[Dashboard] resize event didn’t fire on time: defaulted to mobile layout', 'warning');\n          this.setPluginState({\n            areInsidesReadyToBeVisible: true\n          });\n        }\n      }, 1000);\n    };\n    this.stopListeningToResize = () => {\n      this.resizeObserver.disconnect();\n      clearTimeout(this.makeDashboardInsidesVisibleAnywayTimeout);\n    };\n    // Records whether we have been interacting with uppy right now,\n    // which is then used to determine whether state updates should trigger a refocusing.\n    this.recordIfFocusedOnUppyRecently = event => {\n      if (this.el.contains(event.target)) {\n        this.ifFocusedOnUppyRecently = true;\n      } else {\n        this.ifFocusedOnUppyRecently = false;\n        // ___Why run this.superFocus.cancel here when it already runs in superFocusOnEachUpdate?\n        //    Because superFocus is debounced, when we move from Uppy to some other element on the page,\n        //    previously run superFocus sometimes hits and moves focus back to Uppy.\n        this.superFocus.cancel();\n      }\n    };\n    this.disableInteractiveElements = disable => {\n      var _classPrivateFieldLoo;\n      const NODES_TO_DISABLE = ['a[href]', 'input:not([disabled])', 'select:not([disabled])', 'textarea:not([disabled])', 'button:not([disabled])', '[role=\"button\"]:not([disabled])'];\n      const nodesToDisable = (_classPrivateFieldLoo = _classPrivateFieldLooseBase(this, _disabledNodes)[_disabledNodes]) != null ? _classPrivateFieldLoo : toArray(this.el.querySelectorAll(NODES_TO_DISABLE)).filter(node => !node.classList.contains('uppy-Dashboard-close'));\n      for (const node of nodesToDisable) {\n        // Links can’t have `disabled` attr, so we use `aria-disabled` for a11y\n        if (node.tagName === 'A') {\n          node.setAttribute('aria-disabled', disable);\n        } else {\n          node.disabled = disable;\n        }\n      }\n      if (disable) {\n        _classPrivateFieldLooseBase(this, _disabledNodes)[_disabledNodes] = nodesToDisable;\n      } else {\n        _classPrivateFieldLooseBase(this, _disabledNodes)[_disabledNodes] = null;\n      }\n      this.dashboardIsDisabled = disable;\n    };\n    this.updateBrowserHistory = () => {\n      var _history$state2;\n      // Ensure history state does not already contain our modal name to avoid double-pushing\n      // eslint-disable-next-line no-restricted-globals\n      if (!((_history$state2 = history.state) != null && _history$state2[this.modalName])) {\n        // Push to history so that the page is not lost on browser back button press\n        // eslint-disable-next-line no-restricted-globals\n        history.pushState({\n          // eslint-disable-next-line no-restricted-globals\n          ...history.state,\n          [this.modalName]: true\n        }, '');\n      }\n\n      // Listen for back button presses\n      window.addEventListener('popstate', this.handlePopState, false);\n    };\n    this.handlePopState = event => {\n      var _event$state;\n      // Close the modal if the history state no longer contains our modal name\n      if (this.isModalOpen() && (!event.state || !event.state[this.modalName])) {\n        this.closeModal({\n          manualClose: false\n        });\n      }\n\n      // When the browser back button is pressed and uppy is now the latest entry\n      // in the history but the modal is closed, fix the history by removing the\n      // uppy history entry.\n      // This occurs when another entry is added into the history state while the\n      // modal is open, and then the modal gets manually closed.\n      // Solves PR #575 (https://github.com/transloadit/uppy/pull/575)\n      if (!this.isModalOpen() && (_event$state = event.state) != null && _event$state[this.modalName]) {\n        // eslint-disable-next-line no-restricted-globals\n        history.back();\n      }\n    };\n    this.handleKeyDownInModal = event => {\n      // close modal on esc key press\n      if (event.keyCode === ESC_KEY) this.requestCloseModal();\n      // trap focus on tab key press\n      if (event.keyCode === TAB_KEY) trapFocus.forModal(event, this.getPluginState().activeOverlayType, this.el);\n    };\n    this.handleClickOutside = () => {\n      if (this.opts.closeModalOnClickOutside) this.requestCloseModal();\n    };\n    this.handlePaste = event => {\n      // Let any acquirer plugin (Url/Webcam/etc.) handle pastes to the root\n      this.uppy.iteratePlugins(plugin => {\n        if (plugin.type === 'acquirer') {\n          // Every Plugin with .type acquirer can define handleRootPaste(event)\n          ;\n          plugin.handleRootPaste == null || plugin.handleRootPaste(event);\n        }\n      });\n\n      // Add all dropped files\n      const files = toArray(event.clipboardData.files);\n      if (files.length > 0) {\n        this.uppy.log('[Dashboard] Files pasted');\n        this.addFiles(files);\n      }\n    };\n    this.handleInputChange = event => {\n      event.preventDefault();\n      const files = toArray(event.currentTarget.files || []);\n      if (files.length > 0) {\n        this.uppy.log('[Dashboard] Files selected through input');\n        this.addFiles(files);\n      }\n    };\n    this.handleDragOver = event => {\n      event.preventDefault();\n      event.stopPropagation();\n\n      // Check if some plugin can handle the datatransfer without files —\n      // for instance, the Url plugin can import a url\n      const canSomePluginHandleRootDrop = () => {\n        let somePluginCanHandleRootDrop = true;\n        this.uppy.iteratePlugins(plugin => {\n          if (plugin.canHandleRootDrop != null && plugin.canHandleRootDrop(event)) {\n            somePluginCanHandleRootDrop = true;\n          }\n        });\n        return somePluginCanHandleRootDrop;\n      };\n\n      // Check if the \"type\" of the datatransfer object includes files\n      const doesEventHaveFiles = () => {\n        const {\n          types\n        } = event.dataTransfer;\n        return types.some(type => type === 'Files');\n      };\n\n      // Deny drop, if no plugins can handle datatransfer, there are no files,\n      // or when opts.disabled is set, or new uploads are not allowed\n      const somePluginCanHandleRootDrop = canSomePluginHandleRootDrop();\n      const hasFiles = doesEventHaveFiles();\n      if (!somePluginCanHandleRootDrop && !hasFiles || this.opts.disabled ||\n      // opts.disableLocalFiles should only be taken into account if no plugins\n      // can handle the datatransfer\n      this.opts.disableLocalFiles && (hasFiles || !somePluginCanHandleRootDrop) || !this.uppy.getState().allowNewUpload) {\n        event.dataTransfer.dropEffect = 'none'; // eslint-disable-line no-param-reassign\n        return;\n      }\n\n      // Add a small (+) icon on drop\n      // (and prevent browsers from interpreting this as files being _moved_ into the\n      // browser, https://github.com/transloadit/uppy/issues/1978).\n      event.dataTransfer.dropEffect = 'copy'; // eslint-disable-line no-param-reassign\n\n      this.setPluginState({\n        isDraggingOver: true\n      });\n      this.opts.onDragOver(event);\n    };\n    this.handleDragLeave = event => {\n      event.preventDefault();\n      event.stopPropagation();\n      this.setPluginState({\n        isDraggingOver: false\n      });\n      this.opts.onDragLeave(event);\n    };\n    this.handleDrop = async event => {\n      event.preventDefault();\n      event.stopPropagation();\n      this.setPluginState({\n        isDraggingOver: false\n      });\n\n      // Let any acquirer plugin (Url/Webcam/etc.) handle drops to the root\n      this.uppy.iteratePlugins(plugin => {\n        if (plugin.type === 'acquirer') {\n          // Every Plugin with .type acquirer can define handleRootDrop(event)\n          ;\n          plugin.handleRootDrop == null || plugin.handleRootDrop(event);\n        }\n      });\n\n      // Add all dropped files\n      let executedDropErrorOnce = false;\n      const logDropError = error => {\n        this.uppy.log(error, 'error');\n\n        // In practice all drop errors are most likely the same,\n        // so let's just show one to avoid overwhelming the user\n        if (!executedDropErrorOnce) {\n          this.uppy.info(error.message, 'error');\n          executedDropErrorOnce = true;\n        }\n      };\n      this.uppy.log('[Dashboard] Processing dropped files');\n\n      // Add all dropped files\n      const files = await getDroppedFiles(event.dataTransfer, {\n        logDropError\n      });\n      if (files.length > 0) {\n        this.uppy.log('[Dashboard] Files dropped');\n        this.addFiles(files);\n      }\n      this.opts.onDrop(event);\n    };\n    this.handleRequestThumbnail = file => {\n      if (!this.opts.waitForThumbnailsBeforeUpload) {\n        this.uppy.emit('thumbnail:request', file);\n      }\n    };\n    /**\n     * We cancel thumbnail requests when a file item component unmounts to avoid\n     * clogging up the queue when the user scrolls past many elements.\n     */\n    this.handleCancelThumbnail = file => {\n      if (!this.opts.waitForThumbnailsBeforeUpload) {\n        this.uppy.emit('thumbnail:cancel', file);\n      }\n    };\n    this.handleKeyDownInInline = event => {\n      // Trap focus on tab key press.\n      if (event.keyCode === TAB_KEY) trapFocus.forInline(event, this.getPluginState().activeOverlayType, this.el);\n    };\n    // ___Why do we listen to the 'paste' event on a document instead of onPaste={props.handlePaste} prop,\n    //    or this.el.addEventListener('paste')?\n    //    Because (at least) Chrome doesn't handle paste if focus is on some button, e.g. 'My Device'.\n    //    => Therefore, the best option is to listen to all 'paste' events, and only react to them when we are focused on our\n    //       particular Uppy instance.\n    // ___Why do we still need onPaste={props.handlePaste} for the DashboardUi?\n    //    Because if we click on the 'Drop files here' caption e.g., `document.activeElement` will be 'body'. Which means our\n    //    standard determination of whether we're pasting into our Uppy instance won't work.\n    //    => Therefore, we need a traditional onPaste={props.handlePaste} handler too.\n    this.handlePasteOnBody = event => {\n      const isFocusInOverlay = this.el.contains(document.activeElement);\n      if (isFocusInOverlay) {\n        this.handlePaste(event);\n      }\n    };\n    this.handleComplete = _ref => {\n      let {\n        failed\n      } = _ref;\n      if (this.opts.closeAfterFinish && !(failed != null && failed.length)) {\n        // All uploads are done\n        this.requestCloseModal();\n      }\n    };\n    this.handleCancelRestore = () => {\n      this.uppy.emit('restore-canceled');\n    };\n    Object.defineProperty(this, _generateLargeThumbnailIfSingleFile, {\n      writable: true,\n      value: () => {\n        if (this.opts.disableThumbnailGenerator) {\n          return;\n        }\n        const LARGE_THUMBNAIL = 600;\n        const files = this.uppy.getFiles();\n        if (files.length === 1) {\n          const thumbnailGenerator = this.uppy.getPlugin(`${this.id}:ThumbnailGenerator`);\n          thumbnailGenerator == null || thumbnailGenerator.setOptions({\n            thumbnailWidth: LARGE_THUMBNAIL\n          });\n          const fileForThumbnail = {\n            ...files[0],\n            preview: undefined\n          };\n          thumbnailGenerator == null || thumbnailGenerator.requestThumbnail(fileForThumbnail).then(() => {\n            thumbnailGenerator == null || thumbnailGenerator.setOptions({\n              thumbnailWidth: this.opts.thumbnailWidth\n            });\n          });\n        }\n      }\n    });\n    Object.defineProperty(this, _openFileEditorWhenFilesAdded, {\n      writable: true,\n      value: files => {\n        const firstFile = files[0];\n        const {\n          metaFields\n        } = this.getPluginState();\n        const isMetaEditorEnabled = metaFields && metaFields.length > 0;\n        const isImageEditorEnabled = this.canEditFile(firstFile);\n        if (isMetaEditorEnabled && this.opts.autoOpen === 'metaEditor') {\n          this.toggleFileCard(true, firstFile.id);\n        } else if (isImageEditorEnabled && this.opts.autoOpen === 'imageEditor') {\n          this.openFileEditor(firstFile);\n        }\n      }\n    });\n    this.initEvents = () => {\n      // Modal open button\n      if (this.opts.trigger && !this.opts.inline) {\n        const showModalTrigger = findAllDOMElements(this.opts.trigger);\n        if (showModalTrigger) {\n          showModalTrigger.forEach(trigger => trigger.addEventListener('click', this.openModal));\n        } else {\n          this.uppy.log('Dashboard modal trigger not found. Make sure `trigger` is set in Dashboard options, unless you are planning to call `dashboard.openModal()` method yourself', 'warning');\n        }\n      }\n      this.startListeningToResize();\n      document.addEventListener('paste', this.handlePasteOnBody);\n      this.uppy.on('plugin-added', _classPrivateFieldLooseBase(this, _addSupportedPluginIfNoTarget)[_addSupportedPluginIfNoTarget]);\n      this.uppy.on('plugin-remove', this.removeTarget);\n      this.uppy.on('file-added', this.hideAllPanels);\n      this.uppy.on('dashboard:modal-closed', this.hideAllPanels);\n      this.uppy.on('complete', this.handleComplete);\n      this.uppy.on('files-added', _classPrivateFieldLooseBase(this, _generateLargeThumbnailIfSingleFile)[_generateLargeThumbnailIfSingleFile]);\n      this.uppy.on('file-removed', _classPrivateFieldLooseBase(this, _generateLargeThumbnailIfSingleFile)[_generateLargeThumbnailIfSingleFile]);\n\n      // ___Why fire on capture?\n      //    Because this.ifFocusedOnUppyRecently needs to change before onUpdate() fires.\n      document.addEventListener('focus', this.recordIfFocusedOnUppyRecently, true);\n      document.addEventListener('click', this.recordIfFocusedOnUppyRecently, true);\n      if (this.opts.inline) {\n        this.el.addEventListener('keydown', this.handleKeyDownInInline);\n      }\n      if (this.opts.autoOpen) {\n        this.uppy.on('files-added', _classPrivateFieldLooseBase(this, _openFileEditorWhenFilesAdded)[_openFileEditorWhenFilesAdded]);\n      }\n    };\n    this.removeEvents = () => {\n      const showModalTrigger = findAllDOMElements(this.opts.trigger);\n      if (!this.opts.inline && showModalTrigger) {\n        showModalTrigger.forEach(trigger => trigger.removeEventListener('click', this.openModal));\n      }\n      this.stopListeningToResize();\n      document.removeEventListener('paste', this.handlePasteOnBody);\n      window.removeEventListener('popstate', this.handlePopState, false);\n      this.uppy.off('plugin-added', _classPrivateFieldLooseBase(this, _addSupportedPluginIfNoTarget)[_addSupportedPluginIfNoTarget]);\n      this.uppy.off('plugin-remove', this.removeTarget);\n      this.uppy.off('file-added', this.hideAllPanels);\n      this.uppy.off('dashboard:modal-closed', this.hideAllPanels);\n      this.uppy.off('complete', this.handleComplete);\n      this.uppy.off('files-added', _classPrivateFieldLooseBase(this, _generateLargeThumbnailIfSingleFile)[_generateLargeThumbnailIfSingleFile]);\n      this.uppy.off('file-removed', _classPrivateFieldLooseBase(this, _generateLargeThumbnailIfSingleFile)[_generateLargeThumbnailIfSingleFile]);\n      document.removeEventListener('focus', this.recordIfFocusedOnUppyRecently);\n      document.removeEventListener('click', this.recordIfFocusedOnUppyRecently);\n      if (this.opts.inline) {\n        this.el.removeEventListener('keydown', this.handleKeyDownInInline);\n      }\n      if (this.opts.autoOpen) {\n        this.uppy.off('files-added', _classPrivateFieldLooseBase(this, _openFileEditorWhenFilesAdded)[_openFileEditorWhenFilesAdded]);\n      }\n    };\n    this.superFocusOnEachUpdate = () => {\n      const isFocusInUppy = this.el.contains(document.activeElement);\n      // When focus is lost on the page (== focus is on body for most browsers, or focus is null for IE11)\n      const isFocusNowhere = document.activeElement === document.body || document.activeElement === null;\n      const isInformerHidden = this.uppy.getState().info.length === 0;\n      const isModal = !this.opts.inline;\n      if (\n      // If update is connected to showing the Informer - let the screen reader calmly read it.\n      isInformerHidden && (\n      // If we are in a modal - always superfocus without concern for other elements\n      // on the page (user is unlikely to want to interact with the rest of the page)\n      isModal ||\n      // If we are already inside of Uppy, or\n      isFocusInUppy ||\n      // If we are not focused on anything BUT we have already, at least once, focused on uppy\n      //   1. We focus when isFocusNowhere, because when the element we were focused\n      //      on disappears (e.g. an overlay), - focus gets lost. If user is typing\n      //      something somewhere else on the page, - focus won't be 'nowhere'.\n      //   2. We only focus when focus is nowhere AND this.ifFocusedOnUppyRecently,\n      //      to avoid focus jumps if we do something else on the page.\n      //   [Practical check] Without '&& this.ifFocusedOnUppyRecently', in Safari, in inline mode,\n      //                     when file is uploading, - navigate via tab to the checkbox,\n      //                     try to press space multiple times. Focus will jump to Uppy.\n      isFocusNowhere && this.ifFocusedOnUppyRecently)) {\n        this.superFocus(this.el, this.getPluginState().activeOverlayType);\n      } else {\n        this.superFocus.cancel();\n      }\n    };\n    this.afterUpdate = () => {\n      if (this.opts.disabled && !this.dashboardIsDisabled) {\n        this.disableInteractiveElements(true);\n        return;\n      }\n      if (!this.opts.disabled && this.dashboardIsDisabled) {\n        this.disableInteractiveElements(false);\n      }\n      this.superFocusOnEachUpdate();\n    };\n    this.saveFileCard = (meta, fileID) => {\n      this.uppy.setFileMeta(fileID, meta);\n      this.toggleFileCard(false, fileID);\n    };\n    Object.defineProperty(this, _attachRenderFunctionToTarget, {\n      writable: true,\n      value: target => {\n        const plugin = this.uppy.getPlugin(target.id);\n        return {\n          ...target,\n          icon: plugin.icon || this.opts.defaultPickerIcon,\n          render: plugin.render\n        };\n      }\n    });\n    Object.defineProperty(this, _isTargetSupported, {\n      writable: true,\n      value: target => {\n        const plugin = this.uppy.getPlugin(target.id);\n        // If the plugin does not provide a `supported` check, assume the plugin works everywhere.\n        if (typeof plugin.isSupported !== 'function') {\n          return true;\n        }\n        return plugin.isSupported();\n      }\n    });\n    Object.defineProperty(this, _getAcquirers, {\n      writable: true,\n      value: memoize(targets => {\n        return targets.filter(target => target.type === 'acquirer' && _classPrivateFieldLooseBase(this, _isTargetSupported)[_isTargetSupported](target)).map(_classPrivateFieldLooseBase(this, _attachRenderFunctionToTarget)[_attachRenderFunctionToTarget]);\n      })\n    });\n    Object.defineProperty(this, _getProgressIndicators, {\n      writable: true,\n      value: memoize(targets => {\n        return targets.filter(target => target.type === 'progressindicator').map(_classPrivateFieldLooseBase(this, _attachRenderFunctionToTarget)[_attachRenderFunctionToTarget]);\n      })\n    });\n    Object.defineProperty(this, _getEditors, {\n      writable: true,\n      value: memoize(targets => {\n        return targets.filter(target => target.type === 'editor').map(_classPrivateFieldLooseBase(this, _attachRenderFunctionToTarget)[_attachRenderFunctionToTarget]);\n      })\n    });\n    this.render = state => {\n      const pluginState = this.getPluginState();\n      const {\n        files,\n        capabilities,\n        allowNewUpload\n      } = state;\n      const {\n        newFiles,\n        uploadStartedFiles,\n        completeFiles,\n        erroredFiles,\n        inProgressFiles,\n        inProgressNotPausedFiles,\n        processingFiles,\n        isUploadStarted,\n        isAllComplete,\n        isAllPaused\n      } = this.uppy.getObjectOfFilesPerState();\n      const acquirers = _classPrivateFieldLooseBase(this, _getAcquirers)[_getAcquirers](pluginState.targets);\n      const progressindicators = _classPrivateFieldLooseBase(this, _getProgressIndicators)[_getProgressIndicators](pluginState.targets);\n      const editors = _classPrivateFieldLooseBase(this, _getEditors)[_getEditors](pluginState.targets);\n      let theme;\n      if (this.opts.theme === 'auto') {\n        theme = capabilities.darkMode ? 'dark' : 'light';\n      } else {\n        theme = this.opts.theme;\n      }\n      if (['files', 'folders', 'both'].indexOf(this.opts.fileManagerSelectionType) < 0) {\n        this.opts.fileManagerSelectionType = 'files';\n        // eslint-disable-next-line no-console\n        console.warn(`Unsupported option for \"fileManagerSelectionType\". Using default of \"${this.opts.fileManagerSelectionType}\".`);\n      }\n      return DashboardUI({\n        state,\n        isHidden: pluginState.isHidden,\n        files,\n        newFiles,\n        uploadStartedFiles,\n        completeFiles,\n        erroredFiles,\n        inProgressFiles,\n        inProgressNotPausedFiles,\n        processingFiles,\n        isUploadStarted,\n        isAllComplete,\n        isAllPaused,\n        totalFileCount: Object.keys(files).length,\n        totalProgress: state.totalProgress,\n        allowNewUpload,\n        acquirers,\n        theme,\n        disabled: this.opts.disabled,\n        disableLocalFiles: this.opts.disableLocalFiles,\n        direction: this.opts.direction,\n        activePickerPanel: pluginState.activePickerPanel,\n        showFileEditor: pluginState.showFileEditor,\n        saveFileEditor: this.saveFileEditor,\n        closeFileEditor: this.closeFileEditor,\n        disableInteractiveElements: this.disableInteractiveElements,\n        animateOpenClose: this.opts.animateOpenClose,\n        isClosing: pluginState.isClosing,\n        progressindicators,\n        editors,\n        autoProceed: this.uppy.opts.autoProceed,\n        id: this.id,\n        closeModal: this.requestCloseModal,\n        handleClickOutside: this.handleClickOutside,\n        handleInputChange: this.handleInputChange,\n        handlePaste: this.handlePaste,\n        inline: this.opts.inline,\n        showPanel: this.showPanel,\n        hideAllPanels: this.hideAllPanels,\n        i18n: this.i18n,\n        i18nArray: this.i18nArray,\n        uppy: this.uppy,\n        note: this.opts.note,\n        recoveredState: state.recoveredState,\n        metaFields: pluginState.metaFields,\n        resumableUploads: capabilities.resumableUploads || false,\n        individualCancellation: capabilities.individualCancellation,\n        isMobileDevice: capabilities.isMobileDevice,\n        fileCardFor: pluginState.fileCardFor,\n        toggleFileCard: this.toggleFileCard,\n        toggleAddFilesPanel: this.toggleAddFilesPanel,\n        showAddFilesPanel: pluginState.showAddFilesPanel,\n        saveFileCard: this.saveFileCard,\n        openFileEditor: this.openFileEditor,\n        canEditFile: this.canEditFile,\n        width: this.opts.width,\n        height: this.opts.height,\n        showLinkToFileUploadResult: this.opts.showLinkToFileUploadResult,\n        fileManagerSelectionType: this.opts.fileManagerSelectionType,\n        proudlyDisplayPoweredByUppy: this.opts.proudlyDisplayPoweredByUppy,\n        hideCancelButton: this.opts.hideCancelButton,\n        hideRetryButton: this.opts.hideRetryButton,\n        hidePauseResumeButton: this.opts.hidePauseResumeButton,\n        showRemoveButtonAfterComplete: this.opts.showRemoveButtonAfterComplete,\n        containerWidth: pluginState.containerWidth,\n        containerHeight: pluginState.containerHeight,\n        areInsidesReadyToBeVisible: pluginState.areInsidesReadyToBeVisible,\n        parentElement: this.el,\n        allowedFileTypes: this.uppy.opts.restrictions.allowedFileTypes,\n        maxNumberOfFiles: this.uppy.opts.restrictions.maxNumberOfFiles,\n        requiredMetaFields: this.uppy.opts.restrictions.requiredMetaFields,\n        showSelectedFiles: this.opts.showSelectedFiles,\n        showNativePhotoCameraButton: this.opts.showNativePhotoCameraButton,\n        showNativeVideoCameraButton: this.opts.showNativeVideoCameraButton,\n        nativeCameraFacingMode: this.opts.nativeCameraFacingMode,\n        singleFileFullScreen: this.opts.singleFileFullScreen,\n        handleCancelRestore: this.handleCancelRestore,\n        handleRequestThumbnail: this.handleRequestThumbnail,\n        handleCancelThumbnail: this.handleCancelThumbnail,\n        // drag props\n        isDraggingOver: pluginState.isDraggingOver,\n        handleDragOver: this.handleDragOver,\n        handleDragLeave: this.handleDragLeave,\n        handleDrop: this.handleDrop\n      });\n    };\n    Object.defineProperty(this, _addSpecifiedPluginsFromOptions, {\n      writable: true,\n      value: () => {\n        const {\n          plugins\n        } = this.opts;\n        plugins.forEach(pluginID => {\n          const plugin = this.uppy.getPlugin(pluginID);\n          if (plugin) {\n            ;\n            plugin.mount(this, plugin);\n          } else {\n            this.uppy.log(`[Uppy] Dashboard could not find plugin '${pluginID}', make sure to uppy.use() the plugins you are specifying`, 'warning');\n          }\n        });\n      }\n    });\n    Object.defineProperty(this, _autoDiscoverPlugins, {\n      writable: true,\n      value: () => {\n        this.uppy.iteratePlugins(_classPrivateFieldLooseBase(this, _addSupportedPluginIfNoTarget)[_addSupportedPluginIfNoTarget]);\n      }\n    });\n    Object.defineProperty(this, _addSupportedPluginIfNoTarget, {\n      writable: true,\n      value: plugin => {\n        var _plugin$opts;\n        // Only these types belong on the Dashboard,\n        // we wouldn’t want to try and mount Compressor or Tus, for example.\n        const typesAllowed = ['acquirer', 'editor'];\n        if (plugin && !((_plugin$opts = plugin.opts) != null && _plugin$opts.target) && typesAllowed.includes(plugin.type)) {\n          const pluginAlreadyAdded = this.getPluginState().targets.some(installedPlugin => plugin.id === installedPlugin.id);\n          if (!pluginAlreadyAdded) {\n            ;\n            plugin.mount(this, plugin);\n          }\n        }\n      }\n    });\n    this.install = () => {\n      // Set default state for Dashboard\n      this.setPluginState({\n        isHidden: true,\n        fileCardFor: null,\n        activeOverlayType: null,\n        showAddFilesPanel: false,\n        activePickerPanel: undefined,\n        showFileEditor: false,\n        metaFields: this.opts.metaFields,\n        targets: [],\n        // We'll make them visible once .containerWidth is determined\n        areInsidesReadyToBeVisible: false,\n        isDraggingOver: false\n      });\n      const {\n        inline,\n        closeAfterFinish\n      } = this.opts;\n      if (inline && closeAfterFinish) {\n        throw new Error('[Dashboard] `closeAfterFinish: true` cannot be used on an inline Dashboard, because an inline Dashboard cannot be closed at all. Either set `inline: false`, or disable the `closeAfterFinish` option.');\n      }\n      const {\n        allowMultipleUploads,\n        allowMultipleUploadBatches\n      } = this.uppy.opts;\n      if ((allowMultipleUploads || allowMultipleUploadBatches) && closeAfterFinish) {\n        this.uppy.log('[Dashboard] When using `closeAfterFinish`, we recommended setting the `allowMultipleUploadBatches` option to `false` in the Uppy constructor. See https://uppy.io/docs/uppy/#allowMultipleUploads-true', 'warning');\n      }\n      const {\n        target\n      } = this.opts;\n      if (target) {\n        this.mount(target, this);\n      }\n      if (!this.opts.disableStatusBar) {\n        this.uppy.use(StatusBar, {\n          id: _classPrivateFieldLooseBase(this, _getStatusBarId)[_getStatusBarId](),\n          target: this,\n          ..._classPrivateFieldLooseBase(this, _getStatusBarOpts)[_getStatusBarOpts]()\n        });\n      }\n      if (!this.opts.disableInformer) {\n        this.uppy.use(Informer, {\n          id: _classPrivateFieldLooseBase(this, _getInformerId)[_getInformerId](),\n          target: this,\n          ..._classPrivateFieldLooseBase(this, _getInformerOpts)[_getInformerOpts]()\n        });\n      }\n      if (!this.opts.disableThumbnailGenerator) {\n        this.uppy.use(ThumbnailGenerator, {\n          id: _classPrivateFieldLooseBase(this, _getThumbnailGeneratorId)[_getThumbnailGeneratorId](),\n          ..._classPrivateFieldLooseBase(this, _getThumbnailGeneratorOpts)[_getThumbnailGeneratorOpts]()\n        });\n      }\n\n      // Dark Mode / theme\n      this.darkModeMediaQuery = typeof window !== 'undefined' && window.matchMedia ? window.matchMedia('(prefers-color-scheme: dark)') : null;\n      const isDarkModeOnFromTheStart = this.darkModeMediaQuery ? this.darkModeMediaQuery.matches : false;\n      this.uppy.log(`[Dashboard] Dark mode is ${isDarkModeOnFromTheStart ? 'on' : 'off'}`);\n      this.setDarkModeCapability(isDarkModeOnFromTheStart);\n      if (this.opts.theme === 'auto') {\n        var _this$darkModeMediaQu;\n        (_this$darkModeMediaQu = this.darkModeMediaQuery) == null || _this$darkModeMediaQu.addListener(this.handleSystemDarkModeChange);\n      }\n      _classPrivateFieldLooseBase(this, _addSpecifiedPluginsFromOptions)[_addSpecifiedPluginsFromOptions]();\n      _classPrivateFieldLooseBase(this, _autoDiscoverPlugins)[_autoDiscoverPlugins]();\n      this.initEvents();\n    };\n    this.uninstall = () => {\n      if (!this.opts.disableInformer) {\n        const informer = this.uppy.getPlugin(`${this.id}:Informer`);\n        // Checking if this plugin exists, in case it was removed by uppy-core\n        // before the Dashboard was.\n        if (informer) this.uppy.removePlugin(informer);\n      }\n      if (!this.opts.disableStatusBar) {\n        const statusBar = this.uppy.getPlugin(`${this.id}:StatusBar`);\n        if (statusBar) this.uppy.removePlugin(statusBar);\n      }\n      if (!this.opts.disableThumbnailGenerator) {\n        const thumbnail = this.uppy.getPlugin(`${this.id}:ThumbnailGenerator`);\n        if (thumbnail) this.uppy.removePlugin(thumbnail);\n      }\n      const {\n        plugins\n      } = this.opts;\n      plugins.forEach(pluginID => {\n        const plugin = this.uppy.getPlugin(pluginID);\n        if (plugin) plugin.unmount();\n      });\n      if (this.opts.theme === 'auto') {\n        var _this$darkModeMediaQu2;\n        (_this$darkModeMediaQu2 = this.darkModeMediaQuery) == null || _this$darkModeMediaQu2.removeListener(this.handleSystemDarkModeChange);\n      }\n      if (this.opts.disablePageScrollWhenModalOpen) {\n        document.body.classList.remove('uppy-Dashboard-isFixed');\n      }\n      this.unmount();\n      this.removeEvents();\n    };\n    this.id = this.opts.id || 'Dashboard';\n    this.title = 'Dashboard';\n    this.type = 'orchestrator';\n    this.defaultLocale = locale;\n\n    // Dynamic default options:\n    if (this.opts.doneButtonHandler === undefined) {\n      // `null` means \"do not display a Done button\", while `undefined` means\n      // \"I want the default behavior\". For this reason, we need to differentiate `null` and `undefined`.\n      this.opts.doneButtonHandler = () => {\n        this.uppy.clear();\n        this.requestCloseModal();\n      };\n    }\n    (_this$opts$onRequestC = (_this$opts = this.opts).onRequestCloseModal) != null ? _this$opts$onRequestC : _this$opts.onRequestCloseModal = () => this.closeModal();\n    this.i18nInit();\n  }\n  setOptions(opts) {\n    var _this$uppy$getPlugin, _this$uppy$getPlugin2;\n    super.setOptions(opts);\n    (_this$uppy$getPlugin = this.uppy.getPlugin(_classPrivateFieldLooseBase(this, _getStatusBarId)[_getStatusBarId]())) == null || _this$uppy$getPlugin.setOptions(_classPrivateFieldLooseBase(this, _getStatusBarOpts)[_getStatusBarOpts]());\n    (_this$uppy$getPlugin2 = this.uppy.getPlugin(_classPrivateFieldLooseBase(this, _getThumbnailGeneratorId)[_getThumbnailGeneratorId]())) == null || _this$uppy$getPlugin2.setOptions(_classPrivateFieldLooseBase(this, _getThumbnailGeneratorOpts)[_getThumbnailGeneratorOpts]());\n  }\n}\nfunction _getStatusBarOpts2() {\n  const {\n    hideUploadButton,\n    hideRetryButton,\n    hidePauseResumeButton,\n    hideCancelButton,\n    showProgressDetails,\n    hideProgressAfterFinish,\n    locale: l,\n    doneButtonHandler\n  } = this.opts;\n  return {\n    hideUploadButton,\n    hideRetryButton,\n    hidePauseResumeButton,\n    hideCancelButton,\n    showProgressDetails,\n    hideAfterFinish: hideProgressAfterFinish,\n    locale: l,\n    doneButtonHandler\n  };\n}\nfunction _getThumbnailGeneratorOpts2() {\n  const {\n    thumbnailWidth,\n    thumbnailHeight,\n    thumbnailType,\n    waitForThumbnailsBeforeUpload\n  } = this.opts;\n  return {\n    thumbnailWidth,\n    thumbnailHeight,\n    thumbnailType,\n    waitForThumbnailsBeforeUpload,\n    // If we don't block on thumbnails, we can lazily generate them\n    lazy: !waitForThumbnailsBeforeUpload\n  };\n}\nfunction _getInformerOpts2() {\n  return {\n    // currently no options\n  };\n}\nfunction _getStatusBarId2() {\n  return `${this.id}:StatusBar`;\n}\nfunction _getThumbnailGeneratorId2() {\n  return `${this.id}:ThumbnailGenerator`;\n}\nfunction _getInformerId2() {\n  return `${this.id}:Informer`;\n}\nDashboard.VERSION = packageJson.version;","/*!\n * Cropper.js v1.6.2\n * https://fengyuanchen.github.io/cropperjs\n *\n * Copyright 2015-present Chen Fengyuan\n * Released under the MIT license\n *\n * Date: 2024-04-21T07:43:05.335Z\n */\n\nfunction ownKeys(e, r) {\n  var t = Object.keys(e);\n  if (Object.getOwnPropertySymbols) {\n    var o = Object.getOwnPropertySymbols(e);\n    r && (o = o.filter(function (r) {\n      return Object.getOwnPropertyDescriptor(e, r).enumerable;\n    })), t.push.apply(t, o);\n  }\n  return t;\n}\nfunction _objectSpread2(e) {\n  for (var r = 1; r < arguments.length; r++) {\n    var t = null != arguments[r] ? arguments[r] : {};\n    r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n      _defineProperty(e, r, t[r]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n      Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n    });\n  }\n  return e;\n}\nfunction _toPrimitive(t, r) {\n  if (\"object\" != typeof t || !t) return t;\n  var e = t[Symbol.toPrimitive];\n  if (void 0 !== e) {\n    var i = e.call(t, r || \"default\");\n    if (\"object\" != typeof i) return i;\n    throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n  }\n  return (\"string\" === r ? String : Number)(t);\n}\nfunction _toPropertyKey(t) {\n  var i = _toPrimitive(t, \"string\");\n  return \"symbol\" == typeof i ? i : i + \"\";\n}\nfunction _typeof(o) {\n  \"@babel/helpers - typeof\";\n\n  return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n    return typeof o;\n  } : function (o) {\n    return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n  }, _typeof(o);\n}\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\nfunction _defineProperties(target, props) {\n  for (var i = 0; i < props.length; i++) {\n    var descriptor = props[i];\n    descriptor.enumerable = descriptor.enumerable || false;\n    descriptor.configurable = true;\n    if (\"value\" in descriptor) descriptor.writable = true;\n    Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);\n  }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n  if (staticProps) _defineProperties(Constructor, staticProps);\n  Object.defineProperty(Constructor, \"prototype\", {\n    writable: false\n  });\n  return Constructor;\n}\nfunction _defineProperty(obj, key, value) {\n  key = _toPropertyKey(key);\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n  return obj;\n}\nfunction _toConsumableArray(arr) {\n  return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\nfunction _arrayWithoutHoles(arr) {\n  if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\nfunction _iterableToArray(iter) {\n  if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n  if (!o) return;\n  if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n  var n = Object.prototype.toString.call(o).slice(8, -1);\n  if (n === \"Object\" && o.constructor) n = o.constructor.name;\n  if (n === \"Map\" || n === \"Set\") return Array.from(o);\n  if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n  if (len == null || len > arr.length) len = arr.length;\n  for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n  return arr2;\n}\nfunction _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nvar IS_BROWSER = typeof window !== 'undefined' && typeof window.document !== 'undefined';\nvar WINDOW = IS_BROWSER ? window : {};\nvar IS_TOUCH_DEVICE = IS_BROWSER && WINDOW.document.documentElement ? 'ontouchstart' in WINDOW.document.documentElement : false;\nvar HAS_POINTER_EVENT = IS_BROWSER ? 'PointerEvent' in WINDOW : false;\nvar NAMESPACE = 'cropper';\n\n// Actions\nvar ACTION_ALL = 'all';\nvar ACTION_CROP = 'crop';\nvar ACTION_MOVE = 'move';\nvar ACTION_ZOOM = 'zoom';\nvar ACTION_EAST = 'e';\nvar ACTION_WEST = 'w';\nvar ACTION_SOUTH = 's';\nvar ACTION_NORTH = 'n';\nvar ACTION_NORTH_EAST = 'ne';\nvar ACTION_NORTH_WEST = 'nw';\nvar ACTION_SOUTH_EAST = 'se';\nvar ACTION_SOUTH_WEST = 'sw';\n\n// Classes\nvar CLASS_CROP = \"\".concat(NAMESPACE, \"-crop\");\nvar CLASS_DISABLED = \"\".concat(NAMESPACE, \"-disabled\");\nvar CLASS_HIDDEN = \"\".concat(NAMESPACE, \"-hidden\");\nvar CLASS_HIDE = \"\".concat(NAMESPACE, \"-hide\");\nvar CLASS_INVISIBLE = \"\".concat(NAMESPACE, \"-invisible\");\nvar CLASS_MODAL = \"\".concat(NAMESPACE, \"-modal\");\nvar CLASS_MOVE = \"\".concat(NAMESPACE, \"-move\");\n\n// Data keys\nvar DATA_ACTION = \"\".concat(NAMESPACE, \"Action\");\nvar DATA_PREVIEW = \"\".concat(NAMESPACE, \"Preview\");\n\n// Drag modes\nvar DRAG_MODE_CROP = 'crop';\nvar DRAG_MODE_MOVE = 'move';\nvar DRAG_MODE_NONE = 'none';\n\n// Events\nvar EVENT_CROP = 'crop';\nvar EVENT_CROP_END = 'cropend';\nvar EVENT_CROP_MOVE = 'cropmove';\nvar EVENT_CROP_START = 'cropstart';\nvar EVENT_DBLCLICK = 'dblclick';\nvar EVENT_TOUCH_START = IS_TOUCH_DEVICE ? 'touchstart' : 'mousedown';\nvar EVENT_TOUCH_MOVE = IS_TOUCH_DEVICE ? 'touchmove' : 'mousemove';\nvar EVENT_TOUCH_END = IS_TOUCH_DEVICE ? 'touchend touchcancel' : 'mouseup';\nvar EVENT_POINTER_DOWN = HAS_POINTER_EVENT ? 'pointerdown' : EVENT_TOUCH_START;\nvar EVENT_POINTER_MOVE = HAS_POINTER_EVENT ? 'pointermove' : EVENT_TOUCH_MOVE;\nvar EVENT_POINTER_UP = HAS_POINTER_EVENT ? 'pointerup pointercancel' : EVENT_TOUCH_END;\nvar EVENT_READY = 'ready';\nvar EVENT_RESIZE = 'resize';\nvar EVENT_WHEEL = 'wheel';\nvar EVENT_ZOOM = 'zoom';\n\n// Mime types\nvar MIME_TYPE_JPEG = 'image/jpeg';\n\n// RegExps\nvar REGEXP_ACTIONS = /^e|w|s|n|se|sw|ne|nw|all|crop|move|zoom$/;\nvar REGEXP_DATA_URL = /^data:/;\nvar REGEXP_DATA_URL_JPEG = /^data:image\\/jpeg;base64,/;\nvar REGEXP_TAG_NAME = /^img|canvas$/i;\n\n// Misc\n// Inspired by the default width and height of a canvas element.\nvar MIN_CONTAINER_WIDTH = 200;\nvar MIN_CONTAINER_HEIGHT = 100;\n\nvar DEFAULTS = {\n  // Define the view mode of the cropper\n  viewMode: 0,\n  // 0, 1, 2, 3\n\n  // Define the dragging mode of the cropper\n  dragMode: DRAG_MODE_CROP,\n  // 'crop', 'move' or 'none'\n\n  // Define the initial aspect ratio of the crop box\n  initialAspectRatio: NaN,\n  // Define the aspect ratio of the crop box\n  aspectRatio: NaN,\n  // An object with the previous cropping result data\n  data: null,\n  // A selector for adding extra containers to preview\n  preview: '',\n  // Re-render the cropper when resize the window\n  responsive: true,\n  // Restore the cropped area after resize the window\n  restore: true,\n  // Check if the current image is a cross-origin image\n  checkCrossOrigin: true,\n  // Check the current image's Exif Orientation information\n  checkOrientation: true,\n  // Show the black modal\n  modal: true,\n  // Show the dashed lines for guiding\n  guides: true,\n  // Show the center indicator for guiding\n  center: true,\n  // Show the white modal to highlight the crop box\n  highlight: true,\n  // Show the grid background\n  background: true,\n  // Enable to crop the image automatically when initialize\n  autoCrop: true,\n  // Define the percentage of automatic cropping area when initializes\n  autoCropArea: 0.8,\n  // Enable to move the image\n  movable: true,\n  // Enable to rotate the image\n  rotatable: true,\n  // Enable to scale the image\n  scalable: true,\n  // Enable to zoom the image\n  zoomable: true,\n  // Enable to zoom the image by dragging touch\n  zoomOnTouch: true,\n  // Enable to zoom the image by wheeling mouse\n  zoomOnWheel: true,\n  // Define zoom ratio when zoom the image by wheeling mouse\n  wheelZoomRatio: 0.1,\n  // Enable to move the crop box\n  cropBoxMovable: true,\n  // Enable to resize the crop box\n  cropBoxResizable: true,\n  // Toggle drag mode between \"crop\" and \"move\" when click twice on the cropper\n  toggleDragModeOnDblclick: true,\n  // Size limitation\n  minCanvasWidth: 0,\n  minCanvasHeight: 0,\n  minCropBoxWidth: 0,\n  minCropBoxHeight: 0,\n  minContainerWidth: MIN_CONTAINER_WIDTH,\n  minContainerHeight: MIN_CONTAINER_HEIGHT,\n  // Shortcuts of events\n  ready: null,\n  cropstart: null,\n  cropmove: null,\n  cropend: null,\n  crop: null,\n  zoom: null\n};\n\nvar TEMPLATE = '<div class=\"cropper-container\" touch-action=\"none\">' + '<div class=\"cropper-wrap-box\">' + '<div class=\"cropper-canvas\"></div>' + '</div>' + '<div class=\"cropper-drag-box\"></div>' + '<div class=\"cropper-crop-box\">' + '<span class=\"cropper-view-box\"></span>' + '<span class=\"cropper-dashed dashed-h\"></span>' + '<span class=\"cropper-dashed dashed-v\"></span>' + '<span class=\"cropper-center\"></span>' + '<span class=\"cropper-face\"></span>' + '<span class=\"cropper-line line-e\" data-cropper-action=\"e\"></span>' + '<span class=\"cropper-line line-n\" data-cropper-action=\"n\"></span>' + '<span class=\"cropper-line line-w\" data-cropper-action=\"w\"></span>' + '<span class=\"cropper-line line-s\" data-cropper-action=\"s\"></span>' + '<span class=\"cropper-point point-e\" data-cropper-action=\"e\"></span>' + '<span class=\"cropper-point point-n\" data-cropper-action=\"n\"></span>' + '<span class=\"cropper-point point-w\" data-cropper-action=\"w\"></span>' + '<span class=\"cropper-point point-s\" data-cropper-action=\"s\"></span>' + '<span class=\"cropper-point point-ne\" data-cropper-action=\"ne\"></span>' + '<span class=\"cropper-point point-nw\" data-cropper-action=\"nw\"></span>' + '<span class=\"cropper-point point-sw\" data-cropper-action=\"sw\"></span>' + '<span class=\"cropper-point point-se\" data-cropper-action=\"se\"></span>' + '</div>' + '</div>';\n\n/**\n * Check if the given value is not a number.\n */\nvar isNaN = Number.isNaN || WINDOW.isNaN;\n\n/**\n * Check if the given value is a number.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given value is a number, else `false`.\n */\nfunction isNumber(value) {\n  return typeof value === 'number' && !isNaN(value);\n}\n\n/**\n * Check if the given value is a positive number.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given value is a positive number, else `false`.\n */\nvar isPositiveNumber = function isPositiveNumber(value) {\n  return value > 0 && value < Infinity;\n};\n\n/**\n * Check if the given value is undefined.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given value is undefined, else `false`.\n */\nfunction isUndefined(value) {\n  return typeof value === 'undefined';\n}\n\n/**\n * Check if the given value is an object.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given value is an object, else `false`.\n */\nfunction isObject(value) {\n  return _typeof(value) === 'object' && value !== null;\n}\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/**\n * Check if the given value is a plain object.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given value is a plain object, else `false`.\n */\nfunction isPlainObject(value) {\n  if (!isObject(value)) {\n    return false;\n  }\n  try {\n    var _constructor = value.constructor;\n    var prototype = _constructor.prototype;\n    return _constructor && prototype && hasOwnProperty.call(prototype, 'isPrototypeOf');\n  } catch (error) {\n    return false;\n  }\n}\n\n/**\n * Check if the given value is a function.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given value is a function, else `false`.\n */\nfunction isFunction(value) {\n  return typeof value === 'function';\n}\nvar slice = Array.prototype.slice;\n\n/**\n * Convert array-like or iterable object to an array.\n * @param {*} value - The value to convert.\n * @returns {Array} Returns a new array.\n */\nfunction toArray(value) {\n  return Array.from ? Array.from(value) : slice.call(value);\n}\n\n/**\n * Iterate the given data.\n * @param {*} data - The data to iterate.\n * @param {Function} callback - The process function for each element.\n * @returns {*} The original data.\n */\nfunction forEach(data, callback) {\n  if (data && isFunction(callback)) {\n    if (Array.isArray(data) || isNumber(data.length) /* array-like */) {\n      toArray(data).forEach(function (value, key) {\n        callback.call(data, value, key, data);\n      });\n    } else if (isObject(data)) {\n      Object.keys(data).forEach(function (key) {\n        callback.call(data, data[key], key, data);\n      });\n    }\n  }\n  return data;\n}\n\n/**\n * Extend the given object.\n * @param {*} target - The target object to extend.\n * @param {*} args - The rest objects for merging to the target object.\n * @returns {Object} The extended object.\n */\nvar assign = Object.assign || function assign(target) {\n  for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n    args[_key - 1] = arguments[_key];\n  }\n  if (isObject(target) && args.length > 0) {\n    args.forEach(function (arg) {\n      if (isObject(arg)) {\n        Object.keys(arg).forEach(function (key) {\n          target[key] = arg[key];\n        });\n      }\n    });\n  }\n  return target;\n};\nvar REGEXP_DECIMALS = /\\.\\d*(?:0|9){12}\\d*$/;\n\n/**\n * Normalize decimal number.\n * Check out {@link https://0.30000000000000004.com/}\n * @param {number} value - The value to normalize.\n * @param {number} [times=100000000000] - The times for normalizing.\n * @returns {number} Returns the normalized number.\n */\nfunction normalizeDecimalNumber(value) {\n  var times = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 100000000000;\n  return REGEXP_DECIMALS.test(value) ? Math.round(value * times) / times : value;\n}\nvar REGEXP_SUFFIX = /^width|height|left|top|marginLeft|marginTop$/;\n\n/**\n * Apply styles to the given element.\n * @param {Element} element - The target element.\n * @param {Object} styles - The styles for applying.\n */\nfunction setStyle(element, styles) {\n  var style = element.style;\n  forEach(styles, function (value, property) {\n    if (REGEXP_SUFFIX.test(property) && isNumber(value)) {\n      value = \"\".concat(value, \"px\");\n    }\n    style[property] = value;\n  });\n}\n\n/**\n * Check if the given element has a special class.\n * @param {Element} element - The element to check.\n * @param {string} value - The class to search.\n * @returns {boolean} Returns `true` if the special class was found.\n */\nfunction hasClass(element, value) {\n  return element.classList ? element.classList.contains(value) : element.className.indexOf(value) > -1;\n}\n\n/**\n * Add classes to the given element.\n * @param {Element} element - The target element.\n * @param {string} value - The classes to be added.\n */\nfunction addClass(element, value) {\n  if (!value) {\n    return;\n  }\n  if (isNumber(element.length)) {\n    forEach(element, function (elem) {\n      addClass(elem, value);\n    });\n    return;\n  }\n  if (element.classList) {\n    element.classList.add(value);\n    return;\n  }\n  var className = element.className.trim();\n  if (!className) {\n    element.className = value;\n  } else if (className.indexOf(value) < 0) {\n    element.className = \"\".concat(className, \" \").concat(value);\n  }\n}\n\n/**\n * Remove classes from the given element.\n * @param {Element} element - The target element.\n * @param {string} value - The classes to be removed.\n */\nfunction removeClass(element, value) {\n  if (!value) {\n    return;\n  }\n  if (isNumber(element.length)) {\n    forEach(element, function (elem) {\n      removeClass(elem, value);\n    });\n    return;\n  }\n  if (element.classList) {\n    element.classList.remove(value);\n    return;\n  }\n  if (element.className.indexOf(value) >= 0) {\n    element.className = element.className.replace(value, '');\n  }\n}\n\n/**\n * Add or remove classes from the given element.\n * @param {Element} element - The target element.\n * @param {string} value - The classes to be toggled.\n * @param {boolean} added - Add only.\n */\nfunction toggleClass(element, value, added) {\n  if (!value) {\n    return;\n  }\n  if (isNumber(element.length)) {\n    forEach(element, function (elem) {\n      toggleClass(elem, value, added);\n    });\n    return;\n  }\n\n  // IE10-11 doesn't support the second parameter of `classList.toggle`\n  if (added) {\n    addClass(element, value);\n  } else {\n    removeClass(element, value);\n  }\n}\nvar REGEXP_CAMEL_CASE = /([a-z\\d])([A-Z])/g;\n\n/**\n * Transform the given string from camelCase to kebab-case\n * @param {string} value - The value to transform.\n * @returns {string} The transformed value.\n */\nfunction toParamCase(value) {\n  return value.replace(REGEXP_CAMEL_CASE, '$1-$2').toLowerCase();\n}\n\n/**\n * Get data from the given element.\n * @param {Element} element - The target element.\n * @param {string} name - The data key to get.\n * @returns {string} The data value.\n */\nfunction getData(element, name) {\n  if (isObject(element[name])) {\n    return element[name];\n  }\n  if (element.dataset) {\n    return element.dataset[name];\n  }\n  return element.getAttribute(\"data-\".concat(toParamCase(name)));\n}\n\n/**\n * Set data to the given element.\n * @param {Element} element - The target element.\n * @param {string} name - The data key to set.\n * @param {string} data - The data value.\n */\nfunction setData(element, name, data) {\n  if (isObject(data)) {\n    element[name] = data;\n  } else if (element.dataset) {\n    element.dataset[name] = data;\n  } else {\n    element.setAttribute(\"data-\".concat(toParamCase(name)), data);\n  }\n}\n\n/**\n * Remove data from the given element.\n * @param {Element} element - The target element.\n * @param {string} name - The data key to remove.\n */\nfunction removeData(element, name) {\n  if (isObject(element[name])) {\n    try {\n      delete element[name];\n    } catch (error) {\n      element[name] = undefined;\n    }\n  } else if (element.dataset) {\n    // #128 Safari not allows to delete dataset property\n    try {\n      delete element.dataset[name];\n    } catch (error) {\n      element.dataset[name] = undefined;\n    }\n  } else {\n    element.removeAttribute(\"data-\".concat(toParamCase(name)));\n  }\n}\nvar REGEXP_SPACES = /\\s\\s*/;\nvar onceSupported = function () {\n  var supported = false;\n  if (IS_BROWSER) {\n    var once = false;\n    var listener = function listener() {};\n    var options = Object.defineProperty({}, 'once', {\n      get: function get() {\n        supported = true;\n        return once;\n      },\n      /**\n       * This setter can fix a `TypeError` in strict mode\n       * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Getter_only}\n       * @param {boolean} value - The value to set\n       */\n      set: function set(value) {\n        once = value;\n      }\n    });\n    WINDOW.addEventListener('test', listener, options);\n    WINDOW.removeEventListener('test', listener, options);\n  }\n  return supported;\n}();\n\n/**\n * Remove event listener from the target element.\n * @param {Element} element - The event target.\n * @param {string} type - The event type(s).\n * @param {Function} listener - The event listener.\n * @param {Object} options - The event options.\n */\nfunction removeListener(element, type, listener) {\n  var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n  var handler = listener;\n  type.trim().split(REGEXP_SPACES).forEach(function (event) {\n    if (!onceSupported) {\n      var listeners = element.listeners;\n      if (listeners && listeners[event] && listeners[event][listener]) {\n        handler = listeners[event][listener];\n        delete listeners[event][listener];\n        if (Object.keys(listeners[event]).length === 0) {\n          delete listeners[event];\n        }\n        if (Object.keys(listeners).length === 0) {\n          delete element.listeners;\n        }\n      }\n    }\n    element.removeEventListener(event, handler, options);\n  });\n}\n\n/**\n * Add event listener to the target element.\n * @param {Element} element - The event target.\n * @param {string} type - The event type(s).\n * @param {Function} listener - The event listener.\n * @param {Object} options - The event options.\n */\nfunction addListener(element, type, listener) {\n  var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n  var _handler = listener;\n  type.trim().split(REGEXP_SPACES).forEach(function (event) {\n    if (options.once && !onceSupported) {\n      var _element$listeners = element.listeners,\n        listeners = _element$listeners === void 0 ? {} : _element$listeners;\n      _handler = function handler() {\n        delete listeners[event][listener];\n        element.removeEventListener(event, _handler, options);\n        for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n          args[_key2] = arguments[_key2];\n        }\n        listener.apply(element, args);\n      };\n      if (!listeners[event]) {\n        listeners[event] = {};\n      }\n      if (listeners[event][listener]) {\n        element.removeEventListener(event, listeners[event][listener], options);\n      }\n      listeners[event][listener] = _handler;\n      element.listeners = listeners;\n    }\n    element.addEventListener(event, _handler, options);\n  });\n}\n\n/**\n * Dispatch event on the target element.\n * @param {Element} element - The event target.\n * @param {string} type - The event type(s).\n * @param {Object} data - The additional event data.\n * @returns {boolean} Indicate if the event is default prevented or not.\n */\nfunction dispatchEvent(element, type, data) {\n  var event;\n\n  // Event and CustomEvent on IE9-11 are global objects, not constructors\n  if (isFunction(Event) && isFunction(CustomEvent)) {\n    event = new CustomEvent(type, {\n      detail: data,\n      bubbles: true,\n      cancelable: true\n    });\n  } else {\n    event = document.createEvent('CustomEvent');\n    event.initCustomEvent(type, true, true, data);\n  }\n  return element.dispatchEvent(event);\n}\n\n/**\n * Get the offset base on the document.\n * @param {Element} element - The target element.\n * @returns {Object} The offset data.\n */\nfunction getOffset(element) {\n  var box = element.getBoundingClientRect();\n  return {\n    left: box.left + (window.pageXOffset - document.documentElement.clientLeft),\n    top: box.top + (window.pageYOffset - document.documentElement.clientTop)\n  };\n}\nvar location = WINDOW.location;\nvar REGEXP_ORIGINS = /^(\\w+:)\\/\\/([^:/?#]*):?(\\d*)/i;\n\n/**\n * Check if the given URL is a cross origin URL.\n * @param {string} url - The target URL.\n * @returns {boolean} Returns `true` if the given URL is a cross origin URL, else `false`.\n */\nfunction isCrossOriginURL(url) {\n  var parts = url.match(REGEXP_ORIGINS);\n  return parts !== null && (parts[1] !== location.protocol || parts[2] !== location.hostname || parts[3] !== location.port);\n}\n\n/**\n * Add timestamp to the given URL.\n * @param {string} url - The target URL.\n * @returns {string} The result URL.\n */\nfunction addTimestamp(url) {\n  var timestamp = \"timestamp=\".concat(new Date().getTime());\n  return url + (url.indexOf('?') === -1 ? '?' : '&') + timestamp;\n}\n\n/**\n * Get transforms base on the given object.\n * @param {Object} obj - The target object.\n * @returns {string} A string contains transform values.\n */\nfunction getTransforms(_ref) {\n  var rotate = _ref.rotate,\n    scaleX = _ref.scaleX,\n    scaleY = _ref.scaleY,\n    translateX = _ref.translateX,\n    translateY = _ref.translateY;\n  var values = [];\n  if (isNumber(translateX) && translateX !== 0) {\n    values.push(\"translateX(\".concat(translateX, \"px)\"));\n  }\n  if (isNumber(translateY) && translateY !== 0) {\n    values.push(\"translateY(\".concat(translateY, \"px)\"));\n  }\n\n  // Rotate should come first before scale to match orientation transform\n  if (isNumber(rotate) && rotate !== 0) {\n    values.push(\"rotate(\".concat(rotate, \"deg)\"));\n  }\n  if (isNumber(scaleX) && scaleX !== 1) {\n    values.push(\"scaleX(\".concat(scaleX, \")\"));\n  }\n  if (isNumber(scaleY) && scaleY !== 1) {\n    values.push(\"scaleY(\".concat(scaleY, \")\"));\n  }\n  var transform = values.length ? values.join(' ') : 'none';\n  return {\n    WebkitTransform: transform,\n    msTransform: transform,\n    transform: transform\n  };\n}\n\n/**\n * Get the max ratio of a group of pointers.\n * @param {string} pointers - The target pointers.\n * @returns {number} The result ratio.\n */\nfunction getMaxZoomRatio(pointers) {\n  var pointers2 = _objectSpread2({}, pointers);\n  var maxRatio = 0;\n  forEach(pointers, function (pointer, pointerId) {\n    delete pointers2[pointerId];\n    forEach(pointers2, function (pointer2) {\n      var x1 = Math.abs(pointer.startX - pointer2.startX);\n      var y1 = Math.abs(pointer.startY - pointer2.startY);\n      var x2 = Math.abs(pointer.endX - pointer2.endX);\n      var y2 = Math.abs(pointer.endY - pointer2.endY);\n      var z1 = Math.sqrt(x1 * x1 + y1 * y1);\n      var z2 = Math.sqrt(x2 * x2 + y2 * y2);\n      var ratio = (z2 - z1) / z1;\n      if (Math.abs(ratio) > Math.abs(maxRatio)) {\n        maxRatio = ratio;\n      }\n    });\n  });\n  return maxRatio;\n}\n\n/**\n * Get a pointer from an event object.\n * @param {Object} event - The target event object.\n * @param {boolean} endOnly - Indicates if only returns the end point coordinate or not.\n * @returns {Object} The result pointer contains start and/or end point coordinates.\n */\nfunction getPointer(_ref2, endOnly) {\n  var pageX = _ref2.pageX,\n    pageY = _ref2.pageY;\n  var end = {\n    endX: pageX,\n    endY: pageY\n  };\n  return endOnly ? end : _objectSpread2({\n    startX: pageX,\n    startY: pageY\n  }, end);\n}\n\n/**\n * Get the center point coordinate of a group of pointers.\n * @param {Object} pointers - The target pointers.\n * @returns {Object} The center point coordinate.\n */\nfunction getPointersCenter(pointers) {\n  var pageX = 0;\n  var pageY = 0;\n  var count = 0;\n  forEach(pointers, function (_ref3) {\n    var startX = _ref3.startX,\n      startY = _ref3.startY;\n    pageX += startX;\n    pageY += startY;\n    count += 1;\n  });\n  pageX /= count;\n  pageY /= count;\n  return {\n    pageX: pageX,\n    pageY: pageY\n  };\n}\n\n/**\n * Get the max sizes in a rectangle under the given aspect ratio.\n * @param {Object} data - The original sizes.\n * @param {string} [type='contain'] - The adjust type.\n * @returns {Object} The result sizes.\n */\nfunction getAdjustedSizes(_ref4) {\n  var aspectRatio = _ref4.aspectRatio,\n    height = _ref4.height,\n    width = _ref4.width;\n  var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'contain';\n  var isValidWidth = isPositiveNumber(width);\n  var isValidHeight = isPositiveNumber(height);\n  if (isValidWidth && isValidHeight) {\n    var adjustedWidth = height * aspectRatio;\n    if (type === 'contain' && adjustedWidth > width || type === 'cover' && adjustedWidth < width) {\n      height = width / aspectRatio;\n    } else {\n      width = height * aspectRatio;\n    }\n  } else if (isValidWidth) {\n    height = width / aspectRatio;\n  } else if (isValidHeight) {\n    width = height * aspectRatio;\n  }\n  return {\n    width: width,\n    height: height\n  };\n}\n\n/**\n * Get the new sizes of a rectangle after rotated.\n * @param {Object} data - The original sizes.\n * @returns {Object} The result sizes.\n */\nfunction getRotatedSizes(_ref5) {\n  var width = _ref5.width,\n    height = _ref5.height,\n    degree = _ref5.degree;\n  degree = Math.abs(degree) % 180;\n  if (degree === 90) {\n    return {\n      width: height,\n      height: width\n    };\n  }\n  var arc = degree % 90 * Math.PI / 180;\n  var sinArc = Math.sin(arc);\n  var cosArc = Math.cos(arc);\n  var newWidth = width * cosArc + height * sinArc;\n  var newHeight = width * sinArc + height * cosArc;\n  return degree > 90 ? {\n    width: newHeight,\n    height: newWidth\n  } : {\n    width: newWidth,\n    height: newHeight\n  };\n}\n\n/**\n * Get a canvas which drew the given image.\n * @param {HTMLImageElement} image - The image for drawing.\n * @param {Object} imageData - The image data.\n * @param {Object} canvasData - The canvas data.\n * @param {Object} options - The options.\n * @returns {HTMLCanvasElement} The result canvas.\n */\nfunction getSourceCanvas(image, _ref6, _ref7, _ref8) {\n  var imageAspectRatio = _ref6.aspectRatio,\n    imageNaturalWidth = _ref6.naturalWidth,\n    imageNaturalHeight = _ref6.naturalHeight,\n    _ref6$rotate = _ref6.rotate,\n    rotate = _ref6$rotate === void 0 ? 0 : _ref6$rotate,\n    _ref6$scaleX = _ref6.scaleX,\n    scaleX = _ref6$scaleX === void 0 ? 1 : _ref6$scaleX,\n    _ref6$scaleY = _ref6.scaleY,\n    scaleY = _ref6$scaleY === void 0 ? 1 : _ref6$scaleY;\n  var aspectRatio = _ref7.aspectRatio,\n    naturalWidth = _ref7.naturalWidth,\n    naturalHeight = _ref7.naturalHeight;\n  var _ref8$fillColor = _ref8.fillColor,\n    fillColor = _ref8$fillColor === void 0 ? 'transparent' : _ref8$fillColor,\n    _ref8$imageSmoothingE = _ref8.imageSmoothingEnabled,\n    imageSmoothingEnabled = _ref8$imageSmoothingE === void 0 ? true : _ref8$imageSmoothingE,\n    _ref8$imageSmoothingQ = _ref8.imageSmoothingQuality,\n    imageSmoothingQuality = _ref8$imageSmoothingQ === void 0 ? 'low' : _ref8$imageSmoothingQ,\n    _ref8$maxWidth = _ref8.maxWidth,\n    maxWidth = _ref8$maxWidth === void 0 ? Infinity : _ref8$maxWidth,\n    _ref8$maxHeight = _ref8.maxHeight,\n    maxHeight = _ref8$maxHeight === void 0 ? Infinity : _ref8$maxHeight,\n    _ref8$minWidth = _ref8.minWidth,\n    minWidth = _ref8$minWidth === void 0 ? 0 : _ref8$minWidth,\n    _ref8$minHeight = _ref8.minHeight,\n    minHeight = _ref8$minHeight === void 0 ? 0 : _ref8$minHeight;\n  var canvas = document.createElement('canvas');\n  var context = canvas.getContext('2d');\n  var maxSizes = getAdjustedSizes({\n    aspectRatio: aspectRatio,\n    width: maxWidth,\n    height: maxHeight\n  });\n  var minSizes = getAdjustedSizes({\n    aspectRatio: aspectRatio,\n    width: minWidth,\n    height: minHeight\n  }, 'cover');\n  var width = Math.min(maxSizes.width, Math.max(minSizes.width, naturalWidth));\n  var height = Math.min(maxSizes.height, Math.max(minSizes.height, naturalHeight));\n\n  // Note: should always use image's natural sizes for drawing as\n  // imageData.naturalWidth === canvasData.naturalHeight when rotate % 180 === 90\n  var destMaxSizes = getAdjustedSizes({\n    aspectRatio: imageAspectRatio,\n    width: maxWidth,\n    height: maxHeight\n  });\n  var destMinSizes = getAdjustedSizes({\n    aspectRatio: imageAspectRatio,\n    width: minWidth,\n    height: minHeight\n  }, 'cover');\n  var destWidth = Math.min(destMaxSizes.width, Math.max(destMinSizes.width, imageNaturalWidth));\n  var destHeight = Math.min(destMaxSizes.height, Math.max(destMinSizes.height, imageNaturalHeight));\n  var params = [-destWidth / 2, -destHeight / 2, destWidth, destHeight];\n  canvas.width = normalizeDecimalNumber(width);\n  canvas.height = normalizeDecimalNumber(height);\n  context.fillStyle = fillColor;\n  context.fillRect(0, 0, width, height);\n  context.save();\n  context.translate(width / 2, height / 2);\n  context.rotate(rotate * Math.PI / 180);\n  context.scale(scaleX, scaleY);\n  context.imageSmoothingEnabled = imageSmoothingEnabled;\n  context.imageSmoothingQuality = imageSmoothingQuality;\n  context.drawImage.apply(context, [image].concat(_toConsumableArray(params.map(function (param) {\n    return Math.floor(normalizeDecimalNumber(param));\n  }))));\n  context.restore();\n  return canvas;\n}\nvar fromCharCode = String.fromCharCode;\n\n/**\n * Get string from char code in data view.\n * @param {DataView} dataView - The data view for read.\n * @param {number} start - The start index.\n * @param {number} length - The read length.\n * @returns {string} The read result.\n */\nfunction getStringFromCharCode(dataView, start, length) {\n  var str = '';\n  length += start;\n  for (var i = start; i < length; i += 1) {\n    str += fromCharCode(dataView.getUint8(i));\n  }\n  return str;\n}\nvar REGEXP_DATA_URL_HEAD = /^data:.*,/;\n\n/**\n * Transform Data URL to array buffer.\n * @param {string} dataURL - The Data URL to transform.\n * @returns {ArrayBuffer} The result array buffer.\n */\nfunction dataURLToArrayBuffer(dataURL) {\n  var base64 = dataURL.replace(REGEXP_DATA_URL_HEAD, '');\n  var binary = atob(base64);\n  var arrayBuffer = new ArrayBuffer(binary.length);\n  var uint8 = new Uint8Array(arrayBuffer);\n  forEach(uint8, function (value, i) {\n    uint8[i] = binary.charCodeAt(i);\n  });\n  return arrayBuffer;\n}\n\n/**\n * Transform array buffer to Data URL.\n * @param {ArrayBuffer} arrayBuffer - The array buffer to transform.\n * @param {string} mimeType - The mime type of the Data URL.\n * @returns {string} The result Data URL.\n */\nfunction arrayBufferToDataURL(arrayBuffer, mimeType) {\n  var chunks = [];\n\n  // Chunk Typed Array for better performance (#435)\n  var chunkSize = 8192;\n  var uint8 = new Uint8Array(arrayBuffer);\n  while (uint8.length > 0) {\n    // XXX: Babel's `toConsumableArray` helper will throw error in IE or Safari 9\n    // eslint-disable-next-line prefer-spread\n    chunks.push(fromCharCode.apply(null, toArray(uint8.subarray(0, chunkSize))));\n    uint8 = uint8.subarray(chunkSize);\n  }\n  return \"data:\".concat(mimeType, \";base64,\").concat(btoa(chunks.join('')));\n}\n\n/**\n * Get orientation value from given array buffer.\n * @param {ArrayBuffer} arrayBuffer - The array buffer to read.\n * @returns {number} The read orientation value.\n */\nfunction resetAndGetOrientation(arrayBuffer) {\n  var dataView = new DataView(arrayBuffer);\n  var orientation;\n\n  // Ignores range error when the image does not have correct Exif information\n  try {\n    var littleEndian;\n    var app1Start;\n    var ifdStart;\n\n    // Only handle JPEG image (start by 0xFFD8)\n    if (dataView.getUint8(0) === 0xFF && dataView.getUint8(1) === 0xD8) {\n      var length = dataView.byteLength;\n      var offset = 2;\n      while (offset + 1 < length) {\n        if (dataView.getUint8(offset) === 0xFF && dataView.getUint8(offset + 1) === 0xE1) {\n          app1Start = offset;\n          break;\n        }\n        offset += 1;\n      }\n    }\n    if (app1Start) {\n      var exifIDCode = app1Start + 4;\n      var tiffOffset = app1Start + 10;\n      if (getStringFromCharCode(dataView, exifIDCode, 4) === 'Exif') {\n        var endianness = dataView.getUint16(tiffOffset);\n        littleEndian = endianness === 0x4949;\n        if (littleEndian || endianness === 0x4D4D /* bigEndian */) {\n          if (dataView.getUint16(tiffOffset + 2, littleEndian) === 0x002A) {\n            var firstIFDOffset = dataView.getUint32(tiffOffset + 4, littleEndian);\n            if (firstIFDOffset >= 0x00000008) {\n              ifdStart = tiffOffset + firstIFDOffset;\n            }\n          }\n        }\n      }\n    }\n    if (ifdStart) {\n      var _length = dataView.getUint16(ifdStart, littleEndian);\n      var _offset;\n      var i;\n      for (i = 0; i < _length; i += 1) {\n        _offset = ifdStart + i * 12 + 2;\n        if (dataView.getUint16(_offset, littleEndian) === 0x0112 /* Orientation */) {\n          // 8 is the offset of the current tag's value\n          _offset += 8;\n\n          // Get the original orientation value\n          orientation = dataView.getUint16(_offset, littleEndian);\n\n          // Override the orientation with its default value\n          dataView.setUint16(_offset, 1, littleEndian);\n          break;\n        }\n      }\n    }\n  } catch (error) {\n    orientation = 1;\n  }\n  return orientation;\n}\n\n/**\n * Parse Exif Orientation value.\n * @param {number} orientation - The orientation to parse.\n * @returns {Object} The parsed result.\n */\nfunction parseOrientation(orientation) {\n  var rotate = 0;\n  var scaleX = 1;\n  var scaleY = 1;\n  switch (orientation) {\n    // Flip horizontal\n    case 2:\n      scaleX = -1;\n      break;\n\n    // Rotate left 180°\n    case 3:\n      rotate = -180;\n      break;\n\n    // Flip vertical\n    case 4:\n      scaleY = -1;\n      break;\n\n    // Flip vertical and rotate right 90°\n    case 5:\n      rotate = 90;\n      scaleY = -1;\n      break;\n\n    // Rotate right 90°\n    case 6:\n      rotate = 90;\n      break;\n\n    // Flip horizontal and rotate right 90°\n    case 7:\n      rotate = 90;\n      scaleX = -1;\n      break;\n\n    // Rotate left 90°\n    case 8:\n      rotate = -90;\n      break;\n  }\n  return {\n    rotate: rotate,\n    scaleX: scaleX,\n    scaleY: scaleY\n  };\n}\n\nvar render = {\n  render: function render() {\n    this.initContainer();\n    this.initCanvas();\n    this.initCropBox();\n    this.renderCanvas();\n    if (this.cropped) {\n      this.renderCropBox();\n    }\n  },\n  initContainer: function initContainer() {\n    var element = this.element,\n      options = this.options,\n      container = this.container,\n      cropper = this.cropper;\n    var minWidth = Number(options.minContainerWidth);\n    var minHeight = Number(options.minContainerHeight);\n    addClass(cropper, CLASS_HIDDEN);\n    removeClass(element, CLASS_HIDDEN);\n    var containerData = {\n      width: Math.max(container.offsetWidth, minWidth >= 0 ? minWidth : MIN_CONTAINER_WIDTH),\n      height: Math.max(container.offsetHeight, minHeight >= 0 ? minHeight : MIN_CONTAINER_HEIGHT)\n    };\n    this.containerData = containerData;\n    setStyle(cropper, {\n      width: containerData.width,\n      height: containerData.height\n    });\n    addClass(element, CLASS_HIDDEN);\n    removeClass(cropper, CLASS_HIDDEN);\n  },\n  // Canvas (image wrapper)\n  initCanvas: function initCanvas() {\n    var containerData = this.containerData,\n      imageData = this.imageData;\n    var viewMode = this.options.viewMode;\n    var rotated = Math.abs(imageData.rotate) % 180 === 90;\n    var naturalWidth = rotated ? imageData.naturalHeight : imageData.naturalWidth;\n    var naturalHeight = rotated ? imageData.naturalWidth : imageData.naturalHeight;\n    var aspectRatio = naturalWidth / naturalHeight;\n    var canvasWidth = containerData.width;\n    var canvasHeight = containerData.height;\n    if (containerData.height * aspectRatio > containerData.width) {\n      if (viewMode === 3) {\n        canvasWidth = containerData.height * aspectRatio;\n      } else {\n        canvasHeight = containerData.width / aspectRatio;\n      }\n    } else if (viewMode === 3) {\n      canvasHeight = containerData.width / aspectRatio;\n    } else {\n      canvasWidth = containerData.height * aspectRatio;\n    }\n    var canvasData = {\n      aspectRatio: aspectRatio,\n      naturalWidth: naturalWidth,\n      naturalHeight: naturalHeight,\n      width: canvasWidth,\n      height: canvasHeight\n    };\n    this.canvasData = canvasData;\n    this.limited = viewMode === 1 || viewMode === 2;\n    this.limitCanvas(true, true);\n    canvasData.width = Math.min(Math.max(canvasData.width, canvasData.minWidth), canvasData.maxWidth);\n    canvasData.height = Math.min(Math.max(canvasData.height, canvasData.minHeight), canvasData.maxHeight);\n    canvasData.left = (containerData.width - canvasData.width) / 2;\n    canvasData.top = (containerData.height - canvasData.height) / 2;\n    canvasData.oldLeft = canvasData.left;\n    canvasData.oldTop = canvasData.top;\n    this.initialCanvasData = assign({}, canvasData);\n  },\n  limitCanvas: function limitCanvas(sizeLimited, positionLimited) {\n    var options = this.options,\n      containerData = this.containerData,\n      canvasData = this.canvasData,\n      cropBoxData = this.cropBoxData;\n    var viewMode = options.viewMode;\n    var aspectRatio = canvasData.aspectRatio;\n    var cropped = this.cropped && cropBoxData;\n    if (sizeLimited) {\n      var minCanvasWidth = Number(options.minCanvasWidth) || 0;\n      var minCanvasHeight = Number(options.minCanvasHeight) || 0;\n      if (viewMode > 1) {\n        minCanvasWidth = Math.max(minCanvasWidth, containerData.width);\n        minCanvasHeight = Math.max(minCanvasHeight, containerData.height);\n        if (viewMode === 3) {\n          if (minCanvasHeight * aspectRatio > minCanvasWidth) {\n            minCanvasWidth = minCanvasHeight * aspectRatio;\n          } else {\n            minCanvasHeight = minCanvasWidth / aspectRatio;\n          }\n        }\n      } else if (viewMode > 0) {\n        if (minCanvasWidth) {\n          minCanvasWidth = Math.max(minCanvasWidth, cropped ? cropBoxData.width : 0);\n        } else if (minCanvasHeight) {\n          minCanvasHeight = Math.max(minCanvasHeight, cropped ? cropBoxData.height : 0);\n        } else if (cropped) {\n          minCanvasWidth = cropBoxData.width;\n          minCanvasHeight = cropBoxData.height;\n          if (minCanvasHeight * aspectRatio > minCanvasWidth) {\n            minCanvasWidth = minCanvasHeight * aspectRatio;\n          } else {\n            minCanvasHeight = minCanvasWidth / aspectRatio;\n          }\n        }\n      }\n      var _getAdjustedSizes = getAdjustedSizes({\n        aspectRatio: aspectRatio,\n        width: minCanvasWidth,\n        height: minCanvasHeight\n      });\n      minCanvasWidth = _getAdjustedSizes.width;\n      minCanvasHeight = _getAdjustedSizes.height;\n      canvasData.minWidth = minCanvasWidth;\n      canvasData.minHeight = minCanvasHeight;\n      canvasData.maxWidth = Infinity;\n      canvasData.maxHeight = Infinity;\n    }\n    if (positionLimited) {\n      if (viewMode > (cropped ? 0 : 1)) {\n        var newCanvasLeft = containerData.width - canvasData.width;\n        var newCanvasTop = containerData.height - canvasData.height;\n        canvasData.minLeft = Math.min(0, newCanvasLeft);\n        canvasData.minTop = Math.min(0, newCanvasTop);\n        canvasData.maxLeft = Math.max(0, newCanvasLeft);\n        canvasData.maxTop = Math.max(0, newCanvasTop);\n        if (cropped && this.limited) {\n          canvasData.minLeft = Math.min(cropBoxData.left, cropBoxData.left + (cropBoxData.width - canvasData.width));\n          canvasData.minTop = Math.min(cropBoxData.top, cropBoxData.top + (cropBoxData.height - canvasData.height));\n          canvasData.maxLeft = cropBoxData.left;\n          canvasData.maxTop = cropBoxData.top;\n          if (viewMode === 2) {\n            if (canvasData.width >= containerData.width) {\n              canvasData.minLeft = Math.min(0, newCanvasLeft);\n              canvasData.maxLeft = Math.max(0, newCanvasLeft);\n            }\n            if (canvasData.height >= containerData.height) {\n              canvasData.minTop = Math.min(0, newCanvasTop);\n              canvasData.maxTop = Math.max(0, newCanvasTop);\n            }\n          }\n        }\n      } else {\n        canvasData.minLeft = -canvasData.width;\n        canvasData.minTop = -canvasData.height;\n        canvasData.maxLeft = containerData.width;\n        canvasData.maxTop = containerData.height;\n      }\n    }\n  },\n  renderCanvas: function renderCanvas(changed, transformed) {\n    var canvasData = this.canvasData,\n      imageData = this.imageData;\n    if (transformed) {\n      var _getRotatedSizes = getRotatedSizes({\n          width: imageData.naturalWidth * Math.abs(imageData.scaleX || 1),\n          height: imageData.naturalHeight * Math.abs(imageData.scaleY || 1),\n          degree: imageData.rotate || 0\n        }),\n        naturalWidth = _getRotatedSizes.width,\n        naturalHeight = _getRotatedSizes.height;\n      var width = canvasData.width * (naturalWidth / canvasData.naturalWidth);\n      var height = canvasData.height * (naturalHeight / canvasData.naturalHeight);\n      canvasData.left -= (width - canvasData.width) / 2;\n      canvasData.top -= (height - canvasData.height) / 2;\n      canvasData.width = width;\n      canvasData.height = height;\n      canvasData.aspectRatio = naturalWidth / naturalHeight;\n      canvasData.naturalWidth = naturalWidth;\n      canvasData.naturalHeight = naturalHeight;\n      this.limitCanvas(true, false);\n    }\n    if (canvasData.width > canvasData.maxWidth || canvasData.width < canvasData.minWidth) {\n      canvasData.left = canvasData.oldLeft;\n    }\n    if (canvasData.height > canvasData.maxHeight || canvasData.height < canvasData.minHeight) {\n      canvasData.top = canvasData.oldTop;\n    }\n    canvasData.width = Math.min(Math.max(canvasData.width, canvasData.minWidth), canvasData.maxWidth);\n    canvasData.height = Math.min(Math.max(canvasData.height, canvasData.minHeight), canvasData.maxHeight);\n    this.limitCanvas(false, true);\n    canvasData.left = Math.min(Math.max(canvasData.left, canvasData.minLeft), canvasData.maxLeft);\n    canvasData.top = Math.min(Math.max(canvasData.top, canvasData.minTop), canvasData.maxTop);\n    canvasData.oldLeft = canvasData.left;\n    canvasData.oldTop = canvasData.top;\n    setStyle(this.canvas, assign({\n      width: canvasData.width,\n      height: canvasData.height\n    }, getTransforms({\n      translateX: canvasData.left,\n      translateY: canvasData.top\n    })));\n    this.renderImage(changed);\n    if (this.cropped && this.limited) {\n      this.limitCropBox(true, true);\n    }\n  },\n  renderImage: function renderImage(changed) {\n    var canvasData = this.canvasData,\n      imageData = this.imageData;\n    var width = imageData.naturalWidth * (canvasData.width / canvasData.naturalWidth);\n    var height = imageData.naturalHeight * (canvasData.height / canvasData.naturalHeight);\n    assign(imageData, {\n      width: width,\n      height: height,\n      left: (canvasData.width - width) / 2,\n      top: (canvasData.height - height) / 2\n    });\n    setStyle(this.image, assign({\n      width: imageData.width,\n      height: imageData.height\n    }, getTransforms(assign({\n      translateX: imageData.left,\n      translateY: imageData.top\n    }, imageData))));\n    if (changed) {\n      this.output();\n    }\n  },\n  initCropBox: function initCropBox() {\n    var options = this.options,\n      canvasData = this.canvasData;\n    var aspectRatio = options.aspectRatio || options.initialAspectRatio;\n    var autoCropArea = Number(options.autoCropArea) || 0.8;\n    var cropBoxData = {\n      width: canvasData.width,\n      height: canvasData.height\n    };\n    if (aspectRatio) {\n      if (canvasData.height * aspectRatio > canvasData.width) {\n        cropBoxData.height = cropBoxData.width / aspectRatio;\n      } else {\n        cropBoxData.width = cropBoxData.height * aspectRatio;\n      }\n    }\n    this.cropBoxData = cropBoxData;\n    this.limitCropBox(true, true);\n\n    // Initialize auto crop area\n    cropBoxData.width = Math.min(Math.max(cropBoxData.width, cropBoxData.minWidth), cropBoxData.maxWidth);\n    cropBoxData.height = Math.min(Math.max(cropBoxData.height, cropBoxData.minHeight), cropBoxData.maxHeight);\n\n    // The width/height of auto crop area must large than \"minWidth/Height\"\n    cropBoxData.width = Math.max(cropBoxData.minWidth, cropBoxData.width * autoCropArea);\n    cropBoxData.height = Math.max(cropBoxData.minHeight, cropBoxData.height * autoCropArea);\n    cropBoxData.left = canvasData.left + (canvasData.width - cropBoxData.width) / 2;\n    cropBoxData.top = canvasData.top + (canvasData.height - cropBoxData.height) / 2;\n    cropBoxData.oldLeft = cropBoxData.left;\n    cropBoxData.oldTop = cropBoxData.top;\n    this.initialCropBoxData = assign({}, cropBoxData);\n  },\n  limitCropBox: function limitCropBox(sizeLimited, positionLimited) {\n    var options = this.options,\n      containerData = this.containerData,\n      canvasData = this.canvasData,\n      cropBoxData = this.cropBoxData,\n      limited = this.limited;\n    var aspectRatio = options.aspectRatio;\n    if (sizeLimited) {\n      var minCropBoxWidth = Number(options.minCropBoxWidth) || 0;\n      var minCropBoxHeight = Number(options.minCropBoxHeight) || 0;\n      var maxCropBoxWidth = limited ? Math.min(containerData.width, canvasData.width, canvasData.width + canvasData.left, containerData.width - canvasData.left) : containerData.width;\n      var maxCropBoxHeight = limited ? Math.min(containerData.height, canvasData.height, canvasData.height + canvasData.top, containerData.height - canvasData.top) : containerData.height;\n\n      // The min/maxCropBoxWidth/Height must be less than container's width/height\n      minCropBoxWidth = Math.min(minCropBoxWidth, containerData.width);\n      minCropBoxHeight = Math.min(minCropBoxHeight, containerData.height);\n      if (aspectRatio) {\n        if (minCropBoxWidth && minCropBoxHeight) {\n          if (minCropBoxHeight * aspectRatio > minCropBoxWidth) {\n            minCropBoxHeight = minCropBoxWidth / aspectRatio;\n          } else {\n            minCropBoxWidth = minCropBoxHeight * aspectRatio;\n          }\n        } else if (minCropBoxWidth) {\n          minCropBoxHeight = minCropBoxWidth / aspectRatio;\n        } else if (minCropBoxHeight) {\n          minCropBoxWidth = minCropBoxHeight * aspectRatio;\n        }\n        if (maxCropBoxHeight * aspectRatio > maxCropBoxWidth) {\n          maxCropBoxHeight = maxCropBoxWidth / aspectRatio;\n        } else {\n          maxCropBoxWidth = maxCropBoxHeight * aspectRatio;\n        }\n      }\n\n      // The minWidth/Height must be less than maxWidth/Height\n      cropBoxData.minWidth = Math.min(minCropBoxWidth, maxCropBoxWidth);\n      cropBoxData.minHeight = Math.min(minCropBoxHeight, maxCropBoxHeight);\n      cropBoxData.maxWidth = maxCropBoxWidth;\n      cropBoxData.maxHeight = maxCropBoxHeight;\n    }\n    if (positionLimited) {\n      if (limited) {\n        cropBoxData.minLeft = Math.max(0, canvasData.left);\n        cropBoxData.minTop = Math.max(0, canvasData.top);\n        cropBoxData.maxLeft = Math.min(containerData.width, canvasData.left + canvasData.width) - cropBoxData.width;\n        cropBoxData.maxTop = Math.min(containerData.height, canvasData.top + canvasData.height) - cropBoxData.height;\n      } else {\n        cropBoxData.minLeft = 0;\n        cropBoxData.minTop = 0;\n        cropBoxData.maxLeft = containerData.width - cropBoxData.width;\n        cropBoxData.maxTop = containerData.height - cropBoxData.height;\n      }\n    }\n  },\n  renderCropBox: function renderCropBox() {\n    var options = this.options,\n      containerData = this.containerData,\n      cropBoxData = this.cropBoxData;\n    if (cropBoxData.width > cropBoxData.maxWidth || cropBoxData.width < cropBoxData.minWidth) {\n      cropBoxData.left = cropBoxData.oldLeft;\n    }\n    if (cropBoxData.height > cropBoxData.maxHeight || cropBoxData.height < cropBoxData.minHeight) {\n      cropBoxData.top = cropBoxData.oldTop;\n    }\n    cropBoxData.width = Math.min(Math.max(cropBoxData.width, cropBoxData.minWidth), cropBoxData.maxWidth);\n    cropBoxData.height = Math.min(Math.max(cropBoxData.height, cropBoxData.minHeight), cropBoxData.maxHeight);\n    this.limitCropBox(false, true);\n    cropBoxData.left = Math.min(Math.max(cropBoxData.left, cropBoxData.minLeft), cropBoxData.maxLeft);\n    cropBoxData.top = Math.min(Math.max(cropBoxData.top, cropBoxData.minTop), cropBoxData.maxTop);\n    cropBoxData.oldLeft = cropBoxData.left;\n    cropBoxData.oldTop = cropBoxData.top;\n    if (options.movable && options.cropBoxMovable) {\n      // Turn to move the canvas when the crop box is equal to the container\n      setData(this.face, DATA_ACTION, cropBoxData.width >= containerData.width && cropBoxData.height >= containerData.height ? ACTION_MOVE : ACTION_ALL);\n    }\n    setStyle(this.cropBox, assign({\n      width: cropBoxData.width,\n      height: cropBoxData.height\n    }, getTransforms({\n      translateX: cropBoxData.left,\n      translateY: cropBoxData.top\n    })));\n    if (this.cropped && this.limited) {\n      this.limitCanvas(true, true);\n    }\n    if (!this.disabled) {\n      this.output();\n    }\n  },\n  output: function output() {\n    this.preview();\n    dispatchEvent(this.element, EVENT_CROP, this.getData());\n  }\n};\n\nvar preview = {\n  initPreview: function initPreview() {\n    var element = this.element,\n      crossOrigin = this.crossOrigin;\n    var preview = this.options.preview;\n    var url = crossOrigin ? this.crossOriginUrl : this.url;\n    var alt = element.alt || 'The image to preview';\n    var image = document.createElement('img');\n    if (crossOrigin) {\n      image.crossOrigin = crossOrigin;\n    }\n    image.src = url;\n    image.alt = alt;\n    this.viewBox.appendChild(image);\n    this.viewBoxImage = image;\n    if (!preview) {\n      return;\n    }\n    var previews = preview;\n    if (typeof preview === 'string') {\n      previews = element.ownerDocument.querySelectorAll(preview);\n    } else if (preview.querySelector) {\n      previews = [preview];\n    }\n    this.previews = previews;\n    forEach(previews, function (el) {\n      var img = document.createElement('img');\n\n      // Save the original size for recover\n      setData(el, DATA_PREVIEW, {\n        width: el.offsetWidth,\n        height: el.offsetHeight,\n        html: el.innerHTML\n      });\n      if (crossOrigin) {\n        img.crossOrigin = crossOrigin;\n      }\n      img.src = url;\n      img.alt = alt;\n\n      /**\n       * Override img element styles\n       * Add `display:block` to avoid margin top issue\n       * Add `height:auto` to override `height` attribute on IE8\n       * (Occur only when margin-top <= -height)\n       */\n      img.style.cssText = 'display:block;' + 'width:100%;' + 'height:auto;' + 'min-width:0!important;' + 'min-height:0!important;' + 'max-width:none!important;' + 'max-height:none!important;' + 'image-orientation:0deg!important;\"';\n      el.innerHTML = '';\n      el.appendChild(img);\n    });\n  },\n  resetPreview: function resetPreview() {\n    forEach(this.previews, function (element) {\n      var data = getData(element, DATA_PREVIEW);\n      setStyle(element, {\n        width: data.width,\n        height: data.height\n      });\n      element.innerHTML = data.html;\n      removeData(element, DATA_PREVIEW);\n    });\n  },\n  preview: function preview() {\n    var imageData = this.imageData,\n      canvasData = this.canvasData,\n      cropBoxData = this.cropBoxData;\n    var cropBoxWidth = cropBoxData.width,\n      cropBoxHeight = cropBoxData.height;\n    var width = imageData.width,\n      height = imageData.height;\n    var left = cropBoxData.left - canvasData.left - imageData.left;\n    var top = cropBoxData.top - canvasData.top - imageData.top;\n    if (!this.cropped || this.disabled) {\n      return;\n    }\n    setStyle(this.viewBoxImage, assign({\n      width: width,\n      height: height\n    }, getTransforms(assign({\n      translateX: -left,\n      translateY: -top\n    }, imageData))));\n    forEach(this.previews, function (element) {\n      var data = getData(element, DATA_PREVIEW);\n      var originalWidth = data.width;\n      var originalHeight = data.height;\n      var newWidth = originalWidth;\n      var newHeight = originalHeight;\n      var ratio = 1;\n      if (cropBoxWidth) {\n        ratio = originalWidth / cropBoxWidth;\n        newHeight = cropBoxHeight * ratio;\n      }\n      if (cropBoxHeight && newHeight > originalHeight) {\n        ratio = originalHeight / cropBoxHeight;\n        newWidth = cropBoxWidth * ratio;\n        newHeight = originalHeight;\n      }\n      setStyle(element, {\n        width: newWidth,\n        height: newHeight\n      });\n      setStyle(element.getElementsByTagName('img')[0], assign({\n        width: width * ratio,\n        height: height * ratio\n      }, getTransforms(assign({\n        translateX: -left * ratio,\n        translateY: -top * ratio\n      }, imageData))));\n    });\n  }\n};\n\nvar events = {\n  bind: function bind() {\n    var element = this.element,\n      options = this.options,\n      cropper = this.cropper;\n    if (isFunction(options.cropstart)) {\n      addListener(element, EVENT_CROP_START, options.cropstart);\n    }\n    if (isFunction(options.cropmove)) {\n      addListener(element, EVENT_CROP_MOVE, options.cropmove);\n    }\n    if (isFunction(options.cropend)) {\n      addListener(element, EVENT_CROP_END, options.cropend);\n    }\n    if (isFunction(options.crop)) {\n      addListener(element, EVENT_CROP, options.crop);\n    }\n    if (isFunction(options.zoom)) {\n      addListener(element, EVENT_ZOOM, options.zoom);\n    }\n    addListener(cropper, EVENT_POINTER_DOWN, this.onCropStart = this.cropStart.bind(this));\n    if (options.zoomable && options.zoomOnWheel) {\n      addListener(cropper, EVENT_WHEEL, this.onWheel = this.wheel.bind(this), {\n        passive: false,\n        capture: true\n      });\n    }\n    if (options.toggleDragModeOnDblclick) {\n      addListener(cropper, EVENT_DBLCLICK, this.onDblclick = this.dblclick.bind(this));\n    }\n    addListener(element.ownerDocument, EVENT_POINTER_MOVE, this.onCropMove = this.cropMove.bind(this));\n    addListener(element.ownerDocument, EVENT_POINTER_UP, this.onCropEnd = this.cropEnd.bind(this));\n    if (options.responsive) {\n      addListener(window, EVENT_RESIZE, this.onResize = this.resize.bind(this));\n    }\n  },\n  unbind: function unbind() {\n    var element = this.element,\n      options = this.options,\n      cropper = this.cropper;\n    if (isFunction(options.cropstart)) {\n      removeListener(element, EVENT_CROP_START, options.cropstart);\n    }\n    if (isFunction(options.cropmove)) {\n      removeListener(element, EVENT_CROP_MOVE, options.cropmove);\n    }\n    if (isFunction(options.cropend)) {\n      removeListener(element, EVENT_CROP_END, options.cropend);\n    }\n    if (isFunction(options.crop)) {\n      removeListener(element, EVENT_CROP, options.crop);\n    }\n    if (isFunction(options.zoom)) {\n      removeListener(element, EVENT_ZOOM, options.zoom);\n    }\n    removeListener(cropper, EVENT_POINTER_DOWN, this.onCropStart);\n    if (options.zoomable && options.zoomOnWheel) {\n      removeListener(cropper, EVENT_WHEEL, this.onWheel, {\n        passive: false,\n        capture: true\n      });\n    }\n    if (options.toggleDragModeOnDblclick) {\n      removeListener(cropper, EVENT_DBLCLICK, this.onDblclick);\n    }\n    removeListener(element.ownerDocument, EVENT_POINTER_MOVE, this.onCropMove);\n    removeListener(element.ownerDocument, EVENT_POINTER_UP, this.onCropEnd);\n    if (options.responsive) {\n      removeListener(window, EVENT_RESIZE, this.onResize);\n    }\n  }\n};\n\nvar handlers = {\n  resize: function resize() {\n    if (this.disabled) {\n      return;\n    }\n    var options = this.options,\n      container = this.container,\n      containerData = this.containerData;\n    var ratioX = container.offsetWidth / containerData.width;\n    var ratioY = container.offsetHeight / containerData.height;\n    var ratio = Math.abs(ratioX - 1) > Math.abs(ratioY - 1) ? ratioX : ratioY;\n\n    // Resize when width changed or height changed\n    if (ratio !== 1) {\n      var canvasData;\n      var cropBoxData;\n      if (options.restore) {\n        canvasData = this.getCanvasData();\n        cropBoxData = this.getCropBoxData();\n      }\n      this.render();\n      if (options.restore) {\n        this.setCanvasData(forEach(canvasData, function (n, i) {\n          canvasData[i] = n * ratio;\n        }));\n        this.setCropBoxData(forEach(cropBoxData, function (n, i) {\n          cropBoxData[i] = n * ratio;\n        }));\n      }\n    }\n  },\n  dblclick: function dblclick() {\n    if (this.disabled || this.options.dragMode === DRAG_MODE_NONE) {\n      return;\n    }\n    this.setDragMode(hasClass(this.dragBox, CLASS_CROP) ? DRAG_MODE_MOVE : DRAG_MODE_CROP);\n  },\n  wheel: function wheel(event) {\n    var _this = this;\n    var ratio = Number(this.options.wheelZoomRatio) || 0.1;\n    var delta = 1;\n    if (this.disabled) {\n      return;\n    }\n    event.preventDefault();\n\n    // Limit wheel speed to prevent zoom too fast (#21)\n    if (this.wheeling) {\n      return;\n    }\n    this.wheeling = true;\n    setTimeout(function () {\n      _this.wheeling = false;\n    }, 50);\n    if (event.deltaY) {\n      delta = event.deltaY > 0 ? 1 : -1;\n    } else if (event.wheelDelta) {\n      delta = -event.wheelDelta / 120;\n    } else if (event.detail) {\n      delta = event.detail > 0 ? 1 : -1;\n    }\n    this.zoom(-delta * ratio, event);\n  },\n  cropStart: function cropStart(event) {\n    var buttons = event.buttons,\n      button = event.button;\n    if (this.disabled\n\n    // Handle mouse event and pointer event and ignore touch event\n    || (event.type === 'mousedown' || event.type === 'pointerdown' && event.pointerType === 'mouse') && (\n    // No primary button (Usually the left button)\n    isNumber(buttons) && buttons !== 1 || isNumber(button) && button !== 0\n\n    // Open context menu\n    || event.ctrlKey)) {\n      return;\n    }\n    var options = this.options,\n      pointers = this.pointers;\n    var action;\n    if (event.changedTouches) {\n      // Handle touch event\n      forEach(event.changedTouches, function (touch) {\n        pointers[touch.identifier] = getPointer(touch);\n      });\n    } else {\n      // Handle mouse event and pointer event\n      pointers[event.pointerId || 0] = getPointer(event);\n    }\n    if (Object.keys(pointers).length > 1 && options.zoomable && options.zoomOnTouch) {\n      action = ACTION_ZOOM;\n    } else {\n      action = getData(event.target, DATA_ACTION);\n    }\n    if (!REGEXP_ACTIONS.test(action)) {\n      return;\n    }\n    if (dispatchEvent(this.element, EVENT_CROP_START, {\n      originalEvent: event,\n      action: action\n    }) === false) {\n      return;\n    }\n\n    // This line is required for preventing page zooming in iOS browsers\n    event.preventDefault();\n    this.action = action;\n    this.cropping = false;\n    if (action === ACTION_CROP) {\n      this.cropping = true;\n      addClass(this.dragBox, CLASS_MODAL);\n    }\n  },\n  cropMove: function cropMove(event) {\n    var action = this.action;\n    if (this.disabled || !action) {\n      return;\n    }\n    var pointers = this.pointers;\n    event.preventDefault();\n    if (dispatchEvent(this.element, EVENT_CROP_MOVE, {\n      originalEvent: event,\n      action: action\n    }) === false) {\n      return;\n    }\n    if (event.changedTouches) {\n      forEach(event.changedTouches, function (touch) {\n        // The first parameter should not be undefined (#432)\n        assign(pointers[touch.identifier] || {}, getPointer(touch, true));\n      });\n    } else {\n      assign(pointers[event.pointerId || 0] || {}, getPointer(event, true));\n    }\n    this.change(event);\n  },\n  cropEnd: function cropEnd(event) {\n    if (this.disabled) {\n      return;\n    }\n    var action = this.action,\n      pointers = this.pointers;\n    if (event.changedTouches) {\n      forEach(event.changedTouches, function (touch) {\n        delete pointers[touch.identifier];\n      });\n    } else {\n      delete pointers[event.pointerId || 0];\n    }\n    if (!action) {\n      return;\n    }\n    event.preventDefault();\n    if (!Object.keys(pointers).length) {\n      this.action = '';\n    }\n    if (this.cropping) {\n      this.cropping = false;\n      toggleClass(this.dragBox, CLASS_MODAL, this.cropped && this.options.modal);\n    }\n    dispatchEvent(this.element, EVENT_CROP_END, {\n      originalEvent: event,\n      action: action\n    });\n  }\n};\n\nvar change = {\n  change: function change(event) {\n    var options = this.options,\n      canvasData = this.canvasData,\n      containerData = this.containerData,\n      cropBoxData = this.cropBoxData,\n      pointers = this.pointers;\n    var action = this.action;\n    var aspectRatio = options.aspectRatio;\n    var left = cropBoxData.left,\n      top = cropBoxData.top,\n      width = cropBoxData.width,\n      height = cropBoxData.height;\n    var right = left + width;\n    var bottom = top + height;\n    var minLeft = 0;\n    var minTop = 0;\n    var maxWidth = containerData.width;\n    var maxHeight = containerData.height;\n    var renderable = true;\n    var offset;\n\n    // Locking aspect ratio in \"free mode\" by holding shift key\n    if (!aspectRatio && event.shiftKey) {\n      aspectRatio = width && height ? width / height : 1;\n    }\n    if (this.limited) {\n      minLeft = cropBoxData.minLeft;\n      minTop = cropBoxData.minTop;\n      maxWidth = minLeft + Math.min(containerData.width, canvasData.width, canvasData.left + canvasData.width);\n      maxHeight = minTop + Math.min(containerData.height, canvasData.height, canvasData.top + canvasData.height);\n    }\n    var pointer = pointers[Object.keys(pointers)[0]];\n    var range = {\n      x: pointer.endX - pointer.startX,\n      y: pointer.endY - pointer.startY\n    };\n    var check = function check(side) {\n      switch (side) {\n        case ACTION_EAST:\n          if (right + range.x > maxWidth) {\n            range.x = maxWidth - right;\n          }\n          break;\n        case ACTION_WEST:\n          if (left + range.x < minLeft) {\n            range.x = minLeft - left;\n          }\n          break;\n        case ACTION_NORTH:\n          if (top + range.y < minTop) {\n            range.y = minTop - top;\n          }\n          break;\n        case ACTION_SOUTH:\n          if (bottom + range.y > maxHeight) {\n            range.y = maxHeight - bottom;\n          }\n          break;\n      }\n    };\n    switch (action) {\n      // Move crop box\n      case ACTION_ALL:\n        left += range.x;\n        top += range.y;\n        break;\n\n      // Resize crop box\n      case ACTION_EAST:\n        if (range.x >= 0 && (right >= maxWidth || aspectRatio && (top <= minTop || bottom >= maxHeight))) {\n          renderable = false;\n          break;\n        }\n        check(ACTION_EAST);\n        width += range.x;\n        if (width < 0) {\n          action = ACTION_WEST;\n          width = -width;\n          left -= width;\n        }\n        if (aspectRatio) {\n          height = width / aspectRatio;\n          top += (cropBoxData.height - height) / 2;\n        }\n        break;\n      case ACTION_NORTH:\n        if (range.y <= 0 && (top <= minTop || aspectRatio && (left <= minLeft || right >= maxWidth))) {\n          renderable = false;\n          break;\n        }\n        check(ACTION_NORTH);\n        height -= range.y;\n        top += range.y;\n        if (height < 0) {\n          action = ACTION_SOUTH;\n          height = -height;\n          top -= height;\n        }\n        if (aspectRatio) {\n          width = height * aspectRatio;\n          left += (cropBoxData.width - width) / 2;\n        }\n        break;\n      case ACTION_WEST:\n        if (range.x <= 0 && (left <= minLeft || aspectRatio && (top <= minTop || bottom >= maxHeight))) {\n          renderable = false;\n          break;\n        }\n        check(ACTION_WEST);\n        width -= range.x;\n        left += range.x;\n        if (width < 0) {\n          action = ACTION_EAST;\n          width = -width;\n          left -= width;\n        }\n        if (aspectRatio) {\n          height = width / aspectRatio;\n          top += (cropBoxData.height - height) / 2;\n        }\n        break;\n      case ACTION_SOUTH:\n        if (range.y >= 0 && (bottom >= maxHeight || aspectRatio && (left <= minLeft || right >= maxWidth))) {\n          renderable = false;\n          break;\n        }\n        check(ACTION_SOUTH);\n        height += range.y;\n        if (height < 0) {\n          action = ACTION_NORTH;\n          height = -height;\n          top -= height;\n        }\n        if (aspectRatio) {\n          width = height * aspectRatio;\n          left += (cropBoxData.width - width) / 2;\n        }\n        break;\n      case ACTION_NORTH_EAST:\n        if (aspectRatio) {\n          if (range.y <= 0 && (top <= minTop || right >= maxWidth)) {\n            renderable = false;\n            break;\n          }\n          check(ACTION_NORTH);\n          height -= range.y;\n          top += range.y;\n          width = height * aspectRatio;\n        } else {\n          check(ACTION_NORTH);\n          check(ACTION_EAST);\n          if (range.x >= 0) {\n            if (right < maxWidth) {\n              width += range.x;\n            } else if (range.y <= 0 && top <= minTop) {\n              renderable = false;\n            }\n          } else {\n            width += range.x;\n          }\n          if (range.y <= 0) {\n            if (top > minTop) {\n              height -= range.y;\n              top += range.y;\n            }\n          } else {\n            height -= range.y;\n            top += range.y;\n          }\n        }\n        if (width < 0 && height < 0) {\n          action = ACTION_SOUTH_WEST;\n          height = -height;\n          width = -width;\n          top -= height;\n          left -= width;\n        } else if (width < 0) {\n          action = ACTION_NORTH_WEST;\n          width = -width;\n          left -= width;\n        } else if (height < 0) {\n          action = ACTION_SOUTH_EAST;\n          height = -height;\n          top -= height;\n        }\n        break;\n      case ACTION_NORTH_WEST:\n        if (aspectRatio) {\n          if (range.y <= 0 && (top <= minTop || left <= minLeft)) {\n            renderable = false;\n            break;\n          }\n          check(ACTION_NORTH);\n          height -= range.y;\n          top += range.y;\n          width = height * aspectRatio;\n          left += cropBoxData.width - width;\n        } else {\n          check(ACTION_NORTH);\n          check(ACTION_WEST);\n          if (range.x <= 0) {\n            if (left > minLeft) {\n              width -= range.x;\n              left += range.x;\n            } else if (range.y <= 0 && top <= minTop) {\n              renderable = false;\n            }\n          } else {\n            width -= range.x;\n            left += range.x;\n          }\n          if (range.y <= 0) {\n            if (top > minTop) {\n              height -= range.y;\n              top += range.y;\n            }\n          } else {\n            height -= range.y;\n            top += range.y;\n          }\n        }\n        if (width < 0 && height < 0) {\n          action = ACTION_SOUTH_EAST;\n          height = -height;\n          width = -width;\n          top -= height;\n          left -= width;\n        } else if (width < 0) {\n          action = ACTION_NORTH_EAST;\n          width = -width;\n          left -= width;\n        } else if (height < 0) {\n          action = ACTION_SOUTH_WEST;\n          height = -height;\n          top -= height;\n        }\n        break;\n      case ACTION_SOUTH_WEST:\n        if (aspectRatio) {\n          if (range.x <= 0 && (left <= minLeft || bottom >= maxHeight)) {\n            renderable = false;\n            break;\n          }\n          check(ACTION_WEST);\n          width -= range.x;\n          left += range.x;\n          height = width / aspectRatio;\n        } else {\n          check(ACTION_SOUTH);\n          check(ACTION_WEST);\n          if (range.x <= 0) {\n            if (left > minLeft) {\n              width -= range.x;\n              left += range.x;\n            } else if (range.y >= 0 && bottom >= maxHeight) {\n              renderable = false;\n            }\n          } else {\n            width -= range.x;\n            left += range.x;\n          }\n          if (range.y >= 0) {\n            if (bottom < maxHeight) {\n              height += range.y;\n            }\n          } else {\n            height += range.y;\n          }\n        }\n        if (width < 0 && height < 0) {\n          action = ACTION_NORTH_EAST;\n          height = -height;\n          width = -width;\n          top -= height;\n          left -= width;\n        } else if (width < 0) {\n          action = ACTION_SOUTH_EAST;\n          width = -width;\n          left -= width;\n        } else if (height < 0) {\n          action = ACTION_NORTH_WEST;\n          height = -height;\n          top -= height;\n        }\n        break;\n      case ACTION_SOUTH_EAST:\n        if (aspectRatio) {\n          if (range.x >= 0 && (right >= maxWidth || bottom >= maxHeight)) {\n            renderable = false;\n            break;\n          }\n          check(ACTION_EAST);\n          width += range.x;\n          height = width / aspectRatio;\n        } else {\n          check(ACTION_SOUTH);\n          check(ACTION_EAST);\n          if (range.x >= 0) {\n            if (right < maxWidth) {\n              width += range.x;\n            } else if (range.y >= 0 && bottom >= maxHeight) {\n              renderable = false;\n            }\n          } else {\n            width += range.x;\n          }\n          if (range.y >= 0) {\n            if (bottom < maxHeight) {\n              height += range.y;\n            }\n          } else {\n            height += range.y;\n          }\n        }\n        if (width < 0 && height < 0) {\n          action = ACTION_NORTH_WEST;\n          height = -height;\n          width = -width;\n          top -= height;\n          left -= width;\n        } else if (width < 0) {\n          action = ACTION_SOUTH_WEST;\n          width = -width;\n          left -= width;\n        } else if (height < 0) {\n          action = ACTION_NORTH_EAST;\n          height = -height;\n          top -= height;\n        }\n        break;\n\n      // Move canvas\n      case ACTION_MOVE:\n        this.move(range.x, range.y);\n        renderable = false;\n        break;\n\n      // Zoom canvas\n      case ACTION_ZOOM:\n        this.zoom(getMaxZoomRatio(pointers), event);\n        renderable = false;\n        break;\n\n      // Create crop box\n      case ACTION_CROP:\n        if (!range.x || !range.y) {\n          renderable = false;\n          break;\n        }\n        offset = getOffset(this.cropper);\n        left = pointer.startX - offset.left;\n        top = pointer.startY - offset.top;\n        width = cropBoxData.minWidth;\n        height = cropBoxData.minHeight;\n        if (range.x > 0) {\n          action = range.y > 0 ? ACTION_SOUTH_EAST : ACTION_NORTH_EAST;\n        } else if (range.x < 0) {\n          left -= width;\n          action = range.y > 0 ? ACTION_SOUTH_WEST : ACTION_NORTH_WEST;\n        }\n        if (range.y < 0) {\n          top -= height;\n        }\n\n        // Show the crop box if is hidden\n        if (!this.cropped) {\n          removeClass(this.cropBox, CLASS_HIDDEN);\n          this.cropped = true;\n          if (this.limited) {\n            this.limitCropBox(true, true);\n          }\n        }\n        break;\n    }\n    if (renderable) {\n      cropBoxData.width = width;\n      cropBoxData.height = height;\n      cropBoxData.left = left;\n      cropBoxData.top = top;\n      this.action = action;\n      this.renderCropBox();\n    }\n\n    // Override\n    forEach(pointers, function (p) {\n      p.startX = p.endX;\n      p.startY = p.endY;\n    });\n  }\n};\n\nvar methods = {\n  // Show the crop box manually\n  crop: function crop() {\n    if (this.ready && !this.cropped && !this.disabled) {\n      this.cropped = true;\n      this.limitCropBox(true, true);\n      if (this.options.modal) {\n        addClass(this.dragBox, CLASS_MODAL);\n      }\n      removeClass(this.cropBox, CLASS_HIDDEN);\n      this.setCropBoxData(this.initialCropBoxData);\n    }\n    return this;\n  },\n  // Reset the image and crop box to their initial states\n  reset: function reset() {\n    if (this.ready && !this.disabled) {\n      this.imageData = assign({}, this.initialImageData);\n      this.canvasData = assign({}, this.initialCanvasData);\n      this.cropBoxData = assign({}, this.initialCropBoxData);\n      this.renderCanvas();\n      if (this.cropped) {\n        this.renderCropBox();\n      }\n    }\n    return this;\n  },\n  // Clear the crop box\n  clear: function clear() {\n    if (this.cropped && !this.disabled) {\n      assign(this.cropBoxData, {\n        left: 0,\n        top: 0,\n        width: 0,\n        height: 0\n      });\n      this.cropped = false;\n      this.renderCropBox();\n      this.limitCanvas(true, true);\n\n      // Render canvas after crop box rendered\n      this.renderCanvas();\n      removeClass(this.dragBox, CLASS_MODAL);\n      addClass(this.cropBox, CLASS_HIDDEN);\n    }\n    return this;\n  },\n  /**\n   * Replace the image's src and rebuild the cropper\n   * @param {string} url - The new URL.\n   * @param {boolean} [hasSameSize] - Indicate if the new image has the same size as the old one.\n   * @returns {Cropper} this\n   */\n  replace: function replace(url) {\n    var hasSameSize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n    if (!this.disabled && url) {\n      if (this.isImg) {\n        this.element.src = url;\n      }\n      if (hasSameSize) {\n        this.url = url;\n        this.image.src = url;\n        if (this.ready) {\n          this.viewBoxImage.src = url;\n          forEach(this.previews, function (element) {\n            element.getElementsByTagName('img')[0].src = url;\n          });\n        }\n      } else {\n        if (this.isImg) {\n          this.replaced = true;\n        }\n        this.options.data = null;\n        this.uncreate();\n        this.load(url);\n      }\n    }\n    return this;\n  },\n  // Enable (unfreeze) the cropper\n  enable: function enable() {\n    if (this.ready && this.disabled) {\n      this.disabled = false;\n      removeClass(this.cropper, CLASS_DISABLED);\n    }\n    return this;\n  },\n  // Disable (freeze) the cropper\n  disable: function disable() {\n    if (this.ready && !this.disabled) {\n      this.disabled = true;\n      addClass(this.cropper, CLASS_DISABLED);\n    }\n    return this;\n  },\n  /**\n   * Destroy the cropper and remove the instance from the image\n   * @returns {Cropper} this\n   */\n  destroy: function destroy() {\n    var element = this.element;\n    if (!element[NAMESPACE]) {\n      return this;\n    }\n    element[NAMESPACE] = undefined;\n    if (this.isImg && this.replaced) {\n      element.src = this.originalUrl;\n    }\n    this.uncreate();\n    return this;\n  },\n  /**\n   * Move the canvas with relative offsets\n   * @param {number} offsetX - The relative offset distance on the x-axis.\n   * @param {number} [offsetY=offsetX] - The relative offset distance on the y-axis.\n   * @returns {Cropper} this\n   */\n  move: function move(offsetX) {\n    var offsetY = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : offsetX;\n    var _this$canvasData = this.canvasData,\n      left = _this$canvasData.left,\n      top = _this$canvasData.top;\n    return this.moveTo(isUndefined(offsetX) ? offsetX : left + Number(offsetX), isUndefined(offsetY) ? offsetY : top + Number(offsetY));\n  },\n  /**\n   * Move the canvas to an absolute point\n   * @param {number} x - The x-axis coordinate.\n   * @param {number} [y=x] - The y-axis coordinate.\n   * @returns {Cropper} this\n   */\n  moveTo: function moveTo(x) {\n    var y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : x;\n    var canvasData = this.canvasData;\n    var changed = false;\n    x = Number(x);\n    y = Number(y);\n    if (this.ready && !this.disabled && this.options.movable) {\n      if (isNumber(x)) {\n        canvasData.left = x;\n        changed = true;\n      }\n      if (isNumber(y)) {\n        canvasData.top = y;\n        changed = true;\n      }\n      if (changed) {\n        this.renderCanvas(true);\n      }\n    }\n    return this;\n  },\n  /**\n   * Zoom the canvas with a relative ratio\n   * @param {number} ratio - The target ratio.\n   * @param {Event} _originalEvent - The original event if any.\n   * @returns {Cropper} this\n   */\n  zoom: function zoom(ratio, _originalEvent) {\n    var canvasData = this.canvasData;\n    ratio = Number(ratio);\n    if (ratio < 0) {\n      ratio = 1 / (1 - ratio);\n    } else {\n      ratio = 1 + ratio;\n    }\n    return this.zoomTo(canvasData.width * ratio / canvasData.naturalWidth, null, _originalEvent);\n  },\n  /**\n   * Zoom the canvas to an absolute ratio\n   * @param {number} ratio - The target ratio.\n   * @param {Object} pivot - The zoom pivot point coordinate.\n   * @param {Event} _originalEvent - The original event if any.\n   * @returns {Cropper} this\n   */\n  zoomTo: function zoomTo(ratio, pivot, _originalEvent) {\n    var options = this.options,\n      canvasData = this.canvasData;\n    var width = canvasData.width,\n      height = canvasData.height,\n      naturalWidth = canvasData.naturalWidth,\n      naturalHeight = canvasData.naturalHeight;\n    ratio = Number(ratio);\n    if (ratio >= 0 && this.ready && !this.disabled && options.zoomable) {\n      var newWidth = naturalWidth * ratio;\n      var newHeight = naturalHeight * ratio;\n      if (dispatchEvent(this.element, EVENT_ZOOM, {\n        ratio: ratio,\n        oldRatio: width / naturalWidth,\n        originalEvent: _originalEvent\n      }) === false) {\n        return this;\n      }\n      if (_originalEvent) {\n        var pointers = this.pointers;\n        var offset = getOffset(this.cropper);\n        var center = pointers && Object.keys(pointers).length ? getPointersCenter(pointers) : {\n          pageX: _originalEvent.pageX,\n          pageY: _originalEvent.pageY\n        };\n\n        // Zoom from the triggering point of the event\n        canvasData.left -= (newWidth - width) * ((center.pageX - offset.left - canvasData.left) / width);\n        canvasData.top -= (newHeight - height) * ((center.pageY - offset.top - canvasData.top) / height);\n      } else if (isPlainObject(pivot) && isNumber(pivot.x) && isNumber(pivot.y)) {\n        canvasData.left -= (newWidth - width) * ((pivot.x - canvasData.left) / width);\n        canvasData.top -= (newHeight - height) * ((pivot.y - canvasData.top) / height);\n      } else {\n        // Zoom from the center of the canvas\n        canvasData.left -= (newWidth - width) / 2;\n        canvasData.top -= (newHeight - height) / 2;\n      }\n      canvasData.width = newWidth;\n      canvasData.height = newHeight;\n      this.renderCanvas(true);\n    }\n    return this;\n  },\n  /**\n   * Rotate the canvas with a relative degree\n   * @param {number} degree - The rotate degree.\n   * @returns {Cropper} this\n   */\n  rotate: function rotate(degree) {\n    return this.rotateTo((this.imageData.rotate || 0) + Number(degree));\n  },\n  /**\n   * Rotate the canvas to an absolute degree\n   * @param {number} degree - The rotate degree.\n   * @returns {Cropper} this\n   */\n  rotateTo: function rotateTo(degree) {\n    degree = Number(degree);\n    if (isNumber(degree) && this.ready && !this.disabled && this.options.rotatable) {\n      this.imageData.rotate = degree % 360;\n      this.renderCanvas(true, true);\n    }\n    return this;\n  },\n  /**\n   * Scale the image on the x-axis.\n   * @param {number} scaleX - The scale ratio on the x-axis.\n   * @returns {Cropper} this\n   */\n  scaleX: function scaleX(_scaleX) {\n    var scaleY = this.imageData.scaleY;\n    return this.scale(_scaleX, isNumber(scaleY) ? scaleY : 1);\n  },\n  /**\n   * Scale the image on the y-axis.\n   * @param {number} scaleY - The scale ratio on the y-axis.\n   * @returns {Cropper} this\n   */\n  scaleY: function scaleY(_scaleY) {\n    var scaleX = this.imageData.scaleX;\n    return this.scale(isNumber(scaleX) ? scaleX : 1, _scaleY);\n  },\n  /**\n   * Scale the image\n   * @param {number} scaleX - The scale ratio on the x-axis.\n   * @param {number} [scaleY=scaleX] - The scale ratio on the y-axis.\n   * @returns {Cropper} this\n   */\n  scale: function scale(scaleX) {\n    var scaleY = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : scaleX;\n    var imageData = this.imageData;\n    var transformed = false;\n    scaleX = Number(scaleX);\n    scaleY = Number(scaleY);\n    if (this.ready && !this.disabled && this.options.scalable) {\n      if (isNumber(scaleX)) {\n        imageData.scaleX = scaleX;\n        transformed = true;\n      }\n      if (isNumber(scaleY)) {\n        imageData.scaleY = scaleY;\n        transformed = true;\n      }\n      if (transformed) {\n        this.renderCanvas(true, true);\n      }\n    }\n    return this;\n  },\n  /**\n   * Get the cropped area position and size data (base on the original image)\n   * @param {boolean} [rounded=false] - Indicate if round the data values or not.\n   * @returns {Object} The result cropped data.\n   */\n  getData: function getData() {\n    var rounded = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n    var options = this.options,\n      imageData = this.imageData,\n      canvasData = this.canvasData,\n      cropBoxData = this.cropBoxData;\n    var data;\n    if (this.ready && this.cropped) {\n      data = {\n        x: cropBoxData.left - canvasData.left,\n        y: cropBoxData.top - canvasData.top,\n        width: cropBoxData.width,\n        height: cropBoxData.height\n      };\n      var ratio = imageData.width / imageData.naturalWidth;\n      forEach(data, function (n, i) {\n        data[i] = n / ratio;\n      });\n      if (rounded) {\n        // In case rounding off leads to extra 1px in right or bottom border\n        // we should round the top-left corner and the dimension (#343).\n        var bottom = Math.round(data.y + data.height);\n        var right = Math.round(data.x + data.width);\n        data.x = Math.round(data.x);\n        data.y = Math.round(data.y);\n        data.width = right - data.x;\n        data.height = bottom - data.y;\n      }\n    } else {\n      data = {\n        x: 0,\n        y: 0,\n        width: 0,\n        height: 0\n      };\n    }\n    if (options.rotatable) {\n      data.rotate = imageData.rotate || 0;\n    }\n    if (options.scalable) {\n      data.scaleX = imageData.scaleX || 1;\n      data.scaleY = imageData.scaleY || 1;\n    }\n    return data;\n  },\n  /**\n   * Set the cropped area position and size with new data\n   * @param {Object} data - The new data.\n   * @returns {Cropper} this\n   */\n  setData: function setData(data) {\n    var options = this.options,\n      imageData = this.imageData,\n      canvasData = this.canvasData;\n    var cropBoxData = {};\n    if (this.ready && !this.disabled && isPlainObject(data)) {\n      var transformed = false;\n      if (options.rotatable) {\n        if (isNumber(data.rotate) && data.rotate !== imageData.rotate) {\n          imageData.rotate = data.rotate;\n          transformed = true;\n        }\n      }\n      if (options.scalable) {\n        if (isNumber(data.scaleX) && data.scaleX !== imageData.scaleX) {\n          imageData.scaleX = data.scaleX;\n          transformed = true;\n        }\n        if (isNumber(data.scaleY) && data.scaleY !== imageData.scaleY) {\n          imageData.scaleY = data.scaleY;\n          transformed = true;\n        }\n      }\n      if (transformed) {\n        this.renderCanvas(true, true);\n      }\n      var ratio = imageData.width / imageData.naturalWidth;\n      if (isNumber(data.x)) {\n        cropBoxData.left = data.x * ratio + canvasData.left;\n      }\n      if (isNumber(data.y)) {\n        cropBoxData.top = data.y * ratio + canvasData.top;\n      }\n      if (isNumber(data.width)) {\n        cropBoxData.width = data.width * ratio;\n      }\n      if (isNumber(data.height)) {\n        cropBoxData.height = data.height * ratio;\n      }\n      this.setCropBoxData(cropBoxData);\n    }\n    return this;\n  },\n  /**\n   * Get the container size data.\n   * @returns {Object} The result container data.\n   */\n  getContainerData: function getContainerData() {\n    return this.ready ? assign({}, this.containerData) : {};\n  },\n  /**\n   * Get the image position and size data.\n   * @returns {Object} The result image data.\n   */\n  getImageData: function getImageData() {\n    return this.sized ? assign({}, this.imageData) : {};\n  },\n  /**\n   * Get the canvas position and size data.\n   * @returns {Object} The result canvas data.\n   */\n  getCanvasData: function getCanvasData() {\n    var canvasData = this.canvasData;\n    var data = {};\n    if (this.ready) {\n      forEach(['left', 'top', 'width', 'height', 'naturalWidth', 'naturalHeight'], function (n) {\n        data[n] = canvasData[n];\n      });\n    }\n    return data;\n  },\n  /**\n   * Set the canvas position and size with new data.\n   * @param {Object} data - The new canvas data.\n   * @returns {Cropper} this\n   */\n  setCanvasData: function setCanvasData(data) {\n    var canvasData = this.canvasData;\n    var aspectRatio = canvasData.aspectRatio;\n    if (this.ready && !this.disabled && isPlainObject(data)) {\n      if (isNumber(data.left)) {\n        canvasData.left = data.left;\n      }\n      if (isNumber(data.top)) {\n        canvasData.top = data.top;\n      }\n      if (isNumber(data.width)) {\n        canvasData.width = data.width;\n        canvasData.height = data.width / aspectRatio;\n      } else if (isNumber(data.height)) {\n        canvasData.height = data.height;\n        canvasData.width = data.height * aspectRatio;\n      }\n      this.renderCanvas(true);\n    }\n    return this;\n  },\n  /**\n   * Get the crop box position and size data.\n   * @returns {Object} The result crop box data.\n   */\n  getCropBoxData: function getCropBoxData() {\n    var cropBoxData = this.cropBoxData;\n    var data;\n    if (this.ready && this.cropped) {\n      data = {\n        left: cropBoxData.left,\n        top: cropBoxData.top,\n        width: cropBoxData.width,\n        height: cropBoxData.height\n      };\n    }\n    return data || {};\n  },\n  /**\n   * Set the crop box position and size with new data.\n   * @param {Object} data - The new crop box data.\n   * @returns {Cropper} this\n   */\n  setCropBoxData: function setCropBoxData(data) {\n    var cropBoxData = this.cropBoxData;\n    var aspectRatio = this.options.aspectRatio;\n    var widthChanged;\n    var heightChanged;\n    if (this.ready && this.cropped && !this.disabled && isPlainObject(data)) {\n      if (isNumber(data.left)) {\n        cropBoxData.left = data.left;\n      }\n      if (isNumber(data.top)) {\n        cropBoxData.top = data.top;\n      }\n      if (isNumber(data.width) && data.width !== cropBoxData.width) {\n        widthChanged = true;\n        cropBoxData.width = data.width;\n      }\n      if (isNumber(data.height) && data.height !== cropBoxData.height) {\n        heightChanged = true;\n        cropBoxData.height = data.height;\n      }\n      if (aspectRatio) {\n        if (widthChanged) {\n          cropBoxData.height = cropBoxData.width / aspectRatio;\n        } else if (heightChanged) {\n          cropBoxData.width = cropBoxData.height * aspectRatio;\n        }\n      }\n      this.renderCropBox();\n    }\n    return this;\n  },\n  /**\n   * Get a canvas drawn the cropped image.\n   * @param {Object} [options={}] - The config options.\n   * @returns {HTMLCanvasElement} - The result canvas.\n   */\n  getCroppedCanvas: function getCroppedCanvas() {\n    var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n    if (!this.ready || !window.HTMLCanvasElement) {\n      return null;\n    }\n    var canvasData = this.canvasData;\n    var source = getSourceCanvas(this.image, this.imageData, canvasData, options);\n\n    // Returns the source canvas if it is not cropped.\n    if (!this.cropped) {\n      return source;\n    }\n    var _this$getData = this.getData(options.rounded),\n      initialX = _this$getData.x,\n      initialY = _this$getData.y,\n      initialWidth = _this$getData.width,\n      initialHeight = _this$getData.height;\n    var ratio = source.width / Math.floor(canvasData.naturalWidth);\n    if (ratio !== 1) {\n      initialX *= ratio;\n      initialY *= ratio;\n      initialWidth *= ratio;\n      initialHeight *= ratio;\n    }\n    var aspectRatio = initialWidth / initialHeight;\n    var maxSizes = getAdjustedSizes({\n      aspectRatio: aspectRatio,\n      width: options.maxWidth || Infinity,\n      height: options.maxHeight || Infinity\n    });\n    var minSizes = getAdjustedSizes({\n      aspectRatio: aspectRatio,\n      width: options.minWidth || 0,\n      height: options.minHeight || 0\n    }, 'cover');\n    var _getAdjustedSizes = getAdjustedSizes({\n        aspectRatio: aspectRatio,\n        width: options.width || (ratio !== 1 ? source.width : initialWidth),\n        height: options.height || (ratio !== 1 ? source.height : initialHeight)\n      }),\n      width = _getAdjustedSizes.width,\n      height = _getAdjustedSizes.height;\n    width = Math.min(maxSizes.width, Math.max(minSizes.width, width));\n    height = Math.min(maxSizes.height, Math.max(minSizes.height, height));\n    var canvas = document.createElement('canvas');\n    var context = canvas.getContext('2d');\n    canvas.width = normalizeDecimalNumber(width);\n    canvas.height = normalizeDecimalNumber(height);\n    context.fillStyle = options.fillColor || 'transparent';\n    context.fillRect(0, 0, width, height);\n    var _options$imageSmoothi = options.imageSmoothingEnabled,\n      imageSmoothingEnabled = _options$imageSmoothi === void 0 ? true : _options$imageSmoothi,\n      imageSmoothingQuality = options.imageSmoothingQuality;\n    context.imageSmoothingEnabled = imageSmoothingEnabled;\n    if (imageSmoothingQuality) {\n      context.imageSmoothingQuality = imageSmoothingQuality;\n    }\n\n    // https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.drawImage\n    var sourceWidth = source.width;\n    var sourceHeight = source.height;\n\n    // Source canvas parameters\n    var srcX = initialX;\n    var srcY = initialY;\n    var srcWidth;\n    var srcHeight;\n\n    // Destination canvas parameters\n    var dstX;\n    var dstY;\n    var dstWidth;\n    var dstHeight;\n    if (srcX <= -initialWidth || srcX > sourceWidth) {\n      srcX = 0;\n      srcWidth = 0;\n      dstX = 0;\n      dstWidth = 0;\n    } else if (srcX <= 0) {\n      dstX = -srcX;\n      srcX = 0;\n      srcWidth = Math.min(sourceWidth, initialWidth + srcX);\n      dstWidth = srcWidth;\n    } else if (srcX <= sourceWidth) {\n      dstX = 0;\n      srcWidth = Math.min(initialWidth, sourceWidth - srcX);\n      dstWidth = srcWidth;\n    }\n    if (srcWidth <= 0 || srcY <= -initialHeight || srcY > sourceHeight) {\n      srcY = 0;\n      srcHeight = 0;\n      dstY = 0;\n      dstHeight = 0;\n    } else if (srcY <= 0) {\n      dstY = -srcY;\n      srcY = 0;\n      srcHeight = Math.min(sourceHeight, initialHeight + srcY);\n      dstHeight = srcHeight;\n    } else if (srcY <= sourceHeight) {\n      dstY = 0;\n      srcHeight = Math.min(initialHeight, sourceHeight - srcY);\n      dstHeight = srcHeight;\n    }\n    var params = [srcX, srcY, srcWidth, srcHeight];\n\n    // Avoid \"IndexSizeError\"\n    if (dstWidth > 0 && dstHeight > 0) {\n      var scale = width / initialWidth;\n      params.push(dstX * scale, dstY * scale, dstWidth * scale, dstHeight * scale);\n    }\n\n    // All the numerical parameters should be integer for `drawImage`\n    // https://github.com/fengyuanchen/cropper/issues/476\n    context.drawImage.apply(context, [source].concat(_toConsumableArray(params.map(function (param) {\n      return Math.floor(normalizeDecimalNumber(param));\n    }))));\n    return canvas;\n  },\n  /**\n   * Change the aspect ratio of the crop box.\n   * @param {number} aspectRatio - The new aspect ratio.\n   * @returns {Cropper} this\n   */\n  setAspectRatio: function setAspectRatio(aspectRatio) {\n    var options = this.options;\n    if (!this.disabled && !isUndefined(aspectRatio)) {\n      // 0 -> NaN\n      options.aspectRatio = Math.max(0, aspectRatio) || NaN;\n      if (this.ready) {\n        this.initCropBox();\n        if (this.cropped) {\n          this.renderCropBox();\n        }\n      }\n    }\n    return this;\n  },\n  /**\n   * Change the drag mode.\n   * @param {string} mode - The new drag mode.\n   * @returns {Cropper} this\n   */\n  setDragMode: function setDragMode(mode) {\n    var options = this.options,\n      dragBox = this.dragBox,\n      face = this.face;\n    if (this.ready && !this.disabled) {\n      var croppable = mode === DRAG_MODE_CROP;\n      var movable = options.movable && mode === DRAG_MODE_MOVE;\n      mode = croppable || movable ? mode : DRAG_MODE_NONE;\n      options.dragMode = mode;\n      setData(dragBox, DATA_ACTION, mode);\n      toggleClass(dragBox, CLASS_CROP, croppable);\n      toggleClass(dragBox, CLASS_MOVE, movable);\n      if (!options.cropBoxMovable) {\n        // Sync drag mode to crop box when it is not movable\n        setData(face, DATA_ACTION, mode);\n        toggleClass(face, CLASS_CROP, croppable);\n        toggleClass(face, CLASS_MOVE, movable);\n      }\n    }\n    return this;\n  }\n};\n\nvar AnotherCropper = WINDOW.Cropper;\nvar Cropper = /*#__PURE__*/function () {\n  /**\n   * Create a new Cropper.\n   * @param {Element} element - The target element for cropping.\n   * @param {Object} [options={}] - The configuration options.\n   */\n  function Cropper(element) {\n    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    _classCallCheck(this, Cropper);\n    if (!element || !REGEXP_TAG_NAME.test(element.tagName)) {\n      throw new Error('The first argument is required and must be an <img> or <canvas> element.');\n    }\n    this.element = element;\n    this.options = assign({}, DEFAULTS, isPlainObject(options) && options);\n    this.cropped = false;\n    this.disabled = false;\n    this.pointers = {};\n    this.ready = false;\n    this.reloading = false;\n    this.replaced = false;\n    this.sized = false;\n    this.sizing = false;\n    this.init();\n  }\n  return _createClass(Cropper, [{\n    key: \"init\",\n    value: function init() {\n      var element = this.element;\n      var tagName = element.tagName.toLowerCase();\n      var url;\n      if (element[NAMESPACE]) {\n        return;\n      }\n      element[NAMESPACE] = this;\n      if (tagName === 'img') {\n        this.isImg = true;\n\n        // e.g.: \"img/picture.jpg\"\n        url = element.getAttribute('src') || '';\n        this.originalUrl = url;\n\n        // Stop when it's a blank image\n        if (!url) {\n          return;\n        }\n\n        // e.g.: \"https://example.com/img/picture.jpg\"\n        url = element.src;\n      } else if (tagName === 'canvas' && window.HTMLCanvasElement) {\n        url = element.toDataURL();\n      }\n      this.load(url);\n    }\n  }, {\n    key: \"load\",\n    value: function load(url) {\n      var _this = this;\n      if (!url) {\n        return;\n      }\n      this.url = url;\n      this.imageData = {};\n      var element = this.element,\n        options = this.options;\n      if (!options.rotatable && !options.scalable) {\n        options.checkOrientation = false;\n      }\n\n      // Only IE10+ supports Typed Arrays\n      if (!options.checkOrientation || !window.ArrayBuffer) {\n        this.clone();\n        return;\n      }\n\n      // Detect the mime type of the image directly if it is a Data URL\n      if (REGEXP_DATA_URL.test(url)) {\n        // Read ArrayBuffer from Data URL of JPEG images directly for better performance\n        if (REGEXP_DATA_URL_JPEG.test(url)) {\n          this.read(dataURLToArrayBuffer(url));\n        } else {\n          // Only a JPEG image may contains Exif Orientation information,\n          // the rest types of Data URLs are not necessary to check orientation at all.\n          this.clone();\n        }\n        return;\n      }\n\n      // 1. Detect the mime type of the image by a XMLHttpRequest.\n      // 2. Load the image as ArrayBuffer for reading orientation if its a JPEG image.\n      var xhr = new XMLHttpRequest();\n      var clone = this.clone.bind(this);\n      this.reloading = true;\n      this.xhr = xhr;\n\n      // 1. Cross origin requests are only supported for protocol schemes:\n      // http, https, data, chrome, chrome-extension.\n      // 2. Access to XMLHttpRequest from a Data URL will be blocked by CORS policy\n      // in some browsers as IE11 and Safari.\n      xhr.onabort = clone;\n      xhr.onerror = clone;\n      xhr.ontimeout = clone;\n      xhr.onprogress = function () {\n        // Abort the request directly if it not a JPEG image for better performance\n        if (xhr.getResponseHeader('content-type') !== MIME_TYPE_JPEG) {\n          xhr.abort();\n        }\n      };\n      xhr.onload = function () {\n        _this.read(xhr.response);\n      };\n      xhr.onloadend = function () {\n        _this.reloading = false;\n        _this.xhr = null;\n      };\n\n      // Bust cache when there is a \"crossOrigin\" property to avoid browser cache error\n      if (options.checkCrossOrigin && isCrossOriginURL(url) && element.crossOrigin) {\n        url = addTimestamp(url);\n      }\n\n      // The third parameter is required for avoiding side-effect (#682)\n      xhr.open('GET', url, true);\n      xhr.responseType = 'arraybuffer';\n      xhr.withCredentials = element.crossOrigin === 'use-credentials';\n      xhr.send();\n    }\n  }, {\n    key: \"read\",\n    value: function read(arrayBuffer) {\n      var options = this.options,\n        imageData = this.imageData;\n\n      // Reset the orientation value to its default value 1\n      // as some iOS browsers will render image with its orientation\n      var orientation = resetAndGetOrientation(arrayBuffer);\n      var rotate = 0;\n      var scaleX = 1;\n      var scaleY = 1;\n      if (orientation > 1) {\n        // Generate a new URL which has the default orientation value\n        this.url = arrayBufferToDataURL(arrayBuffer, MIME_TYPE_JPEG);\n        var _parseOrientation = parseOrientation(orientation);\n        rotate = _parseOrientation.rotate;\n        scaleX = _parseOrientation.scaleX;\n        scaleY = _parseOrientation.scaleY;\n      }\n      if (options.rotatable) {\n        imageData.rotate = rotate;\n      }\n      if (options.scalable) {\n        imageData.scaleX = scaleX;\n        imageData.scaleY = scaleY;\n      }\n      this.clone();\n    }\n  }, {\n    key: \"clone\",\n    value: function clone() {\n      var element = this.element,\n        url = this.url;\n      var crossOrigin = element.crossOrigin;\n      var crossOriginUrl = url;\n      if (this.options.checkCrossOrigin && isCrossOriginURL(url)) {\n        if (!crossOrigin) {\n          crossOrigin = 'anonymous';\n        }\n\n        // Bust cache when there is not a \"crossOrigin\" property (#519)\n        crossOriginUrl = addTimestamp(url);\n      }\n      this.crossOrigin = crossOrigin;\n      this.crossOriginUrl = crossOriginUrl;\n      var image = document.createElement('img');\n      if (crossOrigin) {\n        image.crossOrigin = crossOrigin;\n      }\n      image.src = crossOriginUrl || url;\n      image.alt = element.alt || 'The image to crop';\n      this.image = image;\n      image.onload = this.start.bind(this);\n      image.onerror = this.stop.bind(this);\n      addClass(image, CLASS_HIDE);\n      element.parentNode.insertBefore(image, element.nextSibling);\n    }\n  }, {\n    key: \"start\",\n    value: function start() {\n      var _this2 = this;\n      var image = this.image;\n      image.onload = null;\n      image.onerror = null;\n      this.sizing = true;\n\n      // Match all browsers that use WebKit as the layout engine in iOS devices,\n      // such as Safari for iOS, Chrome for iOS, and in-app browsers.\n      var isIOSWebKit = WINDOW.navigator && /(?:iPad|iPhone|iPod).*?AppleWebKit/i.test(WINDOW.navigator.userAgent);\n      var done = function done(naturalWidth, naturalHeight) {\n        assign(_this2.imageData, {\n          naturalWidth: naturalWidth,\n          naturalHeight: naturalHeight,\n          aspectRatio: naturalWidth / naturalHeight\n        });\n        _this2.initialImageData = assign({}, _this2.imageData);\n        _this2.sizing = false;\n        _this2.sized = true;\n        _this2.build();\n      };\n\n      // Most modern browsers (excepts iOS WebKit)\n      if (image.naturalWidth && !isIOSWebKit) {\n        done(image.naturalWidth, image.naturalHeight);\n        return;\n      }\n      var sizingImage = document.createElement('img');\n      var body = document.body || document.documentElement;\n      this.sizingImage = sizingImage;\n      sizingImage.onload = function () {\n        done(sizingImage.width, sizingImage.height);\n        if (!isIOSWebKit) {\n          body.removeChild(sizingImage);\n        }\n      };\n      sizingImage.src = image.src;\n\n      // iOS WebKit will convert the image automatically\n      // with its orientation once append it into DOM (#279)\n      if (!isIOSWebKit) {\n        sizingImage.style.cssText = 'left:0;' + 'max-height:none!important;' + 'max-width:none!important;' + 'min-height:0!important;' + 'min-width:0!important;' + 'opacity:0;' + 'position:absolute;' + 'top:0;' + 'z-index:-1;';\n        body.appendChild(sizingImage);\n      }\n    }\n  }, {\n    key: \"stop\",\n    value: function stop() {\n      var image = this.image;\n      image.onload = null;\n      image.onerror = null;\n      image.parentNode.removeChild(image);\n      this.image = null;\n    }\n  }, {\n    key: \"build\",\n    value: function build() {\n      if (!this.sized || this.ready) {\n        return;\n      }\n      var element = this.element,\n        options = this.options,\n        image = this.image;\n\n      // Create cropper elements\n      var container = element.parentNode;\n      var template = document.createElement('div');\n      template.innerHTML = TEMPLATE;\n      var cropper = template.querySelector(\".\".concat(NAMESPACE, \"-container\"));\n      var canvas = cropper.querySelector(\".\".concat(NAMESPACE, \"-canvas\"));\n      var dragBox = cropper.querySelector(\".\".concat(NAMESPACE, \"-drag-box\"));\n      var cropBox = cropper.querySelector(\".\".concat(NAMESPACE, \"-crop-box\"));\n      var face = cropBox.querySelector(\".\".concat(NAMESPACE, \"-face\"));\n      this.container = container;\n      this.cropper = cropper;\n      this.canvas = canvas;\n      this.dragBox = dragBox;\n      this.cropBox = cropBox;\n      this.viewBox = cropper.querySelector(\".\".concat(NAMESPACE, \"-view-box\"));\n      this.face = face;\n      canvas.appendChild(image);\n\n      // Hide the original image\n      addClass(element, CLASS_HIDDEN);\n\n      // Inserts the cropper after to the current image\n      container.insertBefore(cropper, element.nextSibling);\n\n      // Show the hidden image\n      removeClass(image, CLASS_HIDE);\n      this.initPreview();\n      this.bind();\n      options.initialAspectRatio = Math.max(0, options.initialAspectRatio) || NaN;\n      options.aspectRatio = Math.max(0, options.aspectRatio) || NaN;\n      options.viewMode = Math.max(0, Math.min(3, Math.round(options.viewMode))) || 0;\n      addClass(cropBox, CLASS_HIDDEN);\n      if (!options.guides) {\n        addClass(cropBox.getElementsByClassName(\"\".concat(NAMESPACE, \"-dashed\")), CLASS_HIDDEN);\n      }\n      if (!options.center) {\n        addClass(cropBox.getElementsByClassName(\"\".concat(NAMESPACE, \"-center\")), CLASS_HIDDEN);\n      }\n      if (options.background) {\n        addClass(cropper, \"\".concat(NAMESPACE, \"-bg\"));\n      }\n      if (!options.highlight) {\n        addClass(face, CLASS_INVISIBLE);\n      }\n      if (options.cropBoxMovable) {\n        addClass(face, CLASS_MOVE);\n        setData(face, DATA_ACTION, ACTION_ALL);\n      }\n      if (!options.cropBoxResizable) {\n        addClass(cropBox.getElementsByClassName(\"\".concat(NAMESPACE, \"-line\")), CLASS_HIDDEN);\n        addClass(cropBox.getElementsByClassName(\"\".concat(NAMESPACE, \"-point\")), CLASS_HIDDEN);\n      }\n      this.render();\n      this.ready = true;\n      this.setDragMode(options.dragMode);\n      if (options.autoCrop) {\n        this.crop();\n      }\n      this.setData(options.data);\n      if (isFunction(options.ready)) {\n        addListener(element, EVENT_READY, options.ready, {\n          once: true\n        });\n      }\n      dispatchEvent(element, EVENT_READY);\n    }\n  }, {\n    key: \"unbuild\",\n    value: function unbuild() {\n      if (!this.ready) {\n        return;\n      }\n      this.ready = false;\n      this.unbind();\n      this.resetPreview();\n      var parentNode = this.cropper.parentNode;\n      if (parentNode) {\n        parentNode.removeChild(this.cropper);\n      }\n      removeClass(this.element, CLASS_HIDDEN);\n    }\n  }, {\n    key: \"uncreate\",\n    value: function uncreate() {\n      if (this.ready) {\n        this.unbuild();\n        this.ready = false;\n        this.cropped = false;\n      } else if (this.sizing) {\n        this.sizingImage.onload = null;\n        this.sizing = false;\n        this.sized = false;\n      } else if (this.reloading) {\n        this.xhr.onabort = null;\n        this.xhr.abort();\n      } else if (this.image) {\n        this.stop();\n      }\n    }\n\n    /**\n     * Get the no conflict cropper class.\n     * @returns {Cropper} The cropper class.\n     */\n  }], [{\n    key: \"noConflict\",\n    value: function noConflict() {\n      window.Cropper = AnotherCropper;\n      return Cropper;\n    }\n\n    /**\n     * Change the default options.\n     * @param {Object} options - The new default options.\n     */\n  }, {\n    key: \"setDefaults\",\n    value: function setDefaults(options) {\n      assign(DEFAULTS, isPlainObject(options) && options);\n    }\n  }]);\n}();\nassign(Cropper.prototype, render, preview, events, handlers, change, methods);\n\nexport { Cropper as default };\n","// See this cropperjs image to understand how container/image/canavas/cropbox relate to each other.\n// (https://github.com/fengyuanchen/cropperjs/blob/9b528a8baeaae876dc090085e37992a1683c6f34/docs/images/layers.jpg)\n//\nfunction getCanvasDataThatFitsPerfectlyIntoContainer(containerData, canvasData) {\n  // 1. Scale our canvas as much as possible\n  const widthRatio = containerData.width / canvasData.width;\n  const heightRatio = containerData.height / canvasData.height;\n  const scaleFactor = Math.min(widthRatio, heightRatio);\n  const newWidth = canvasData.width * scaleFactor;\n  const newHeight = canvasData.height * scaleFactor;\n\n  // 2. Center our canvas\n  const newLeft = (containerData.width - newWidth) / 2;\n  const newTop = (containerData.height - newHeight) / 2;\n  return {\n    width: newWidth,\n    height: newHeight,\n    left: newLeft,\n    top: newTop\n  };\n}\nexport default getCanvasDataThatFitsPerfectlyIntoContainer;","function toRadians(angle) {\n  return angle * (Math.PI / 180);\n}\nfunction getScaleFactorThatRemovesDarkCorners(w, h, granularAngle) {\n  const α = Math.abs(toRadians(granularAngle));\n  const scaleFactor = Math.max((Math.sin(α) * w + Math.cos(α) * h) / h, (Math.sin(α) * h + Math.cos(α) * w) / w);\n  return scaleFactor;\n}\nexport default getScaleFactorThatRemovesDarkCorners;","function limitCropboxMovementOnMove(canvas, cropbox, prevCropbox) {\n  // For the left boundary\n  if (cropbox.left < canvas.left) {\n    return {\n      left: canvas.left,\n      width: prevCropbox.width\n    };\n  }\n\n  // For the top boundary\n  if (cropbox.top < canvas.top) {\n    return {\n      top: canvas.top,\n      height: prevCropbox.height\n    };\n  }\n\n  // For the right boundary\n  if (cropbox.left + cropbox.width > canvas.left + canvas.width) {\n    return {\n      left: canvas.left + canvas.width - prevCropbox.width,\n      width: prevCropbox.width\n    };\n  }\n\n  // For the bottom boundary\n  if (cropbox.top + cropbox.height > canvas.top + canvas.height) {\n    return {\n      top: canvas.top + canvas.height - prevCropbox.height,\n      height: prevCropbox.height\n    };\n  }\n  return null;\n}\nexport default limitCropboxMovementOnMove;","function limitCropboxMovementOnResize(canvas, cropboxData, prevCropbox) {\n  // For the left boundary\n  if (cropboxData.left < canvas.left) {\n    return {\n      left: canvas.left,\n      width: prevCropbox.left + prevCropbox.width - canvas.left\n    };\n  }\n\n  // For the top boundary\n  if (cropboxData.top < canvas.top) {\n    return {\n      top: canvas.top,\n      height: prevCropbox.top + prevCropbox.height - canvas.top\n    };\n  }\n\n  // For the right boundary\n  if (cropboxData.left + cropboxData.width > canvas.left + canvas.width) {\n    return {\n      left: prevCropbox.left,\n      width: canvas.left + canvas.width - prevCropbox.left\n    };\n  }\n\n  // For the bottom boundary\n  if (cropboxData.top + cropboxData.height > canvas.top + canvas.height) {\n    return {\n      top: prevCropbox.top,\n      height: canvas.top + canvas.height - prevCropbox.top\n    };\n  }\n  return null;\n}\nexport default limitCropboxMovementOnResize;","/* eslint-disable jsx-a11y/label-has-associated-control */\nimport Cropper from 'cropperjs';\nimport { h, Component } from 'preact';\nimport getCanvasDataThatFitsPerfectlyIntoContainer from './utils/getCanvasDataThatFitsPerfectlyIntoContainer.js';\nimport getScaleFactorThatRemovesDarkCorners from './utils/getScaleFactorThatRemovesDarkCorners.js';\nimport limitCropboxMovementOnMove from './utils/limitCropboxMovementOnMove.js';\nimport limitCropboxMovementOnResize from './utils/limitCropboxMovementOnResize.js';\nexport default class Editor extends Component {\n  constructor(props) {\n    super(props);\n    this.onRotate90Deg = () => {\n      // 1. Set state\n      const {\n        angle90Deg\n      } = this.state;\n      const newAngle = angle90Deg - 90;\n      this.setState({\n        angle90Deg: newAngle,\n        angleGranular: 0\n      });\n\n      // 2. Rotate the image\n      // Important to reset scale here, or cropper will get confused on further rotations\n      this.cropper.scale(1);\n      this.cropper.rotateTo(newAngle);\n\n      // 3. Fit the rotated image into the view\n      const canvasData = this.cropper.getCanvasData();\n      const containerData = this.cropper.getContainerData();\n      const newCanvasData = getCanvasDataThatFitsPerfectlyIntoContainer(containerData, canvasData);\n      this.cropper.setCanvasData(newCanvasData);\n\n      // 4. Make cropbox fully wrap the image\n      this.cropper.setCropBoxData(newCanvasData);\n    };\n    this.onRotateGranular = ev => {\n      // 1. Set state\n      const newGranularAngle = Number(ev.target.value);\n      this.setState({\n        angleGranular: newGranularAngle\n      });\n\n      // 2. Rotate the image\n      const {\n        angle90Deg\n      } = this.state;\n      const newAngle = angle90Deg + newGranularAngle;\n      this.cropper.rotateTo(newAngle);\n\n      // 3. Scale the image so that it fits into the cropbox\n      const image = this.cropper.getImageData();\n      const scaleFactor = getScaleFactorThatRemovesDarkCorners(image.naturalWidth, image.naturalHeight, newGranularAngle);\n      // Preserve flip\n      const scaleFactorX = this.cropper.getImageData().scaleX < 0 ? -scaleFactor : scaleFactor;\n      this.cropper.scale(scaleFactorX, scaleFactor);\n    };\n    this.state = {\n      angle90Deg: 0,\n      angleGranular: 0,\n      prevCropboxData: null\n    };\n    this.storePrevCropboxData = this.storePrevCropboxData.bind(this);\n    this.limitCropboxMovement = this.limitCropboxMovement.bind(this);\n  }\n  componentDidMount() {\n    const {\n      opts,\n      storeCropperInstance\n    } = this.props;\n    this.cropper = new Cropper(this.imgElement, opts.cropperOptions);\n    this.imgElement.addEventListener('cropstart', this.storePrevCropboxData);\n    // @ts-expect-error custom cropper event but DOM API does not understand\n    this.imgElement.addEventListener('cropend', this.limitCropboxMovement);\n    storeCropperInstance(this.cropper);\n  }\n  componentWillUnmount() {\n    this.cropper.destroy();\n    this.imgElement.removeEventListener('cropstart', this.storePrevCropboxData);\n    // @ts-expect-error custom cropper event but DOM API does not understand\n    this.imgElement.removeEventListener('cropend', this.limitCropboxMovement);\n  }\n\n  // eslint-disable-next-line react/sort-comp\n  storePrevCropboxData() {\n    this.setState({\n      prevCropboxData: this.cropper.getCropBoxData()\n    });\n  }\n  limitCropboxMovement(event) {\n    const canvasData = this.cropper.getCanvasData();\n    const cropboxData = this.cropper.getCropBoxData();\n    const {\n      prevCropboxData\n    } = this.state;\n\n    // 1. When we grab the cropbox in the middle and move it\n    if (event.detail.action === 'all') {\n      const newCropboxData = limitCropboxMovementOnMove(canvasData, cropboxData, prevCropboxData);\n      if (newCropboxData) this.cropper.setCropBoxData(newCropboxData);\n      // 2. When we stretch the cropbox by one of its sides\n    } else {\n      const newCropboxData = limitCropboxMovementOnResize(canvasData, cropboxData, prevCropboxData);\n      if (newCropboxData) this.cropper.setCropBoxData(newCropboxData);\n    }\n  }\n  renderGranularRotate() {\n    const {\n      i18n\n    } = this.props;\n    const {\n      angleGranular\n    } = this.state;\n    return h(\"label\", {\n      role: \"tooltip\",\n      \"aria-label\": `${angleGranular}º`,\n      \"data-microtip-position\": \"top\",\n      className: \"uppy-ImageCropper-rangeWrapper\"\n    }, h(\"input\", {\n      className: \"uppy-ImageCropper-range uppy-u-reset\",\n      type: \"range\",\n      onInput: this.onRotateGranular,\n      onChange: this.onRotateGranular,\n      value: angleGranular,\n      min: \"-45\",\n      max: \"45\",\n      \"aria-label\": i18n('rotate')\n    }));\n  }\n  renderRevert() {\n    const {\n      i18n,\n      opts\n    } = this.props;\n    return h(\"button\", {\n      role: \"button tooltip\",\n      \"data-microtip-position\": \"top\",\n      type: \"button\",\n      className: \"uppy-u-reset uppy-c-btn\",\n      \"aria-label\": i18n('revert'),\n      onClick: () => {\n        this.cropper.reset();\n        this.cropper.setAspectRatio(opts.cropperOptions.initialAspectRatio);\n        this.setState({\n          angle90Deg: 0,\n          angleGranular: 0\n        });\n      }\n    }, h(\"svg\", {\n      \"aria-hidden\": \"true\",\n      className: \"uppy-c-icon\",\n      width: \"24\",\n      height: \"24\",\n      viewBox: \"0 0 24 24\"\n    }, h(\"path\", {\n      d: \"M0 0h24v24H0z\",\n      fill: \"none\"\n    }), h(\"path\", {\n      d: \"M13 3c-4.97 0-9 4.03-9 9H1l3.89 3.89.07.14L9 12H6c0-3.87 3.13-7 7-7s7 3.13 7 7-3.13 7-7 7c-1.93 0-3.68-.79-4.94-2.06l-1.42 1.42C8.27 19.99 10.51 21 13 21c4.97 0 9-4.03 9-9s-4.03-9-9-9zm-1 5v5l4.28 2.54.72-1.21-3.5-2.08V8H12z\"\n    })));\n  }\n  renderRotate() {\n    const {\n      i18n\n    } = this.props;\n    return h(\"button\", {\n      role: \"button tooltip\",\n      \"data-microtip-position\": \"top\",\n      type: \"button\",\n      className: \"uppy-u-reset uppy-c-btn\",\n      \"aria-label\": i18n('rotate'),\n      onClick: this.onRotate90Deg\n    }, h(\"svg\", {\n      \"aria-hidden\": \"true\",\n      className: \"uppy-c-icon\",\n      width: \"24\",\n      height: \"24\",\n      viewBox: \"0 0 24 24\"\n    }, h(\"path\", {\n      d: \"M0 0h24v24H0V0zm0 0h24v24H0V0z\",\n      fill: \"none\"\n    }), h(\"path\", {\n      d: \"M14 10a2 2 0 012 2v7a2 2 0 01-2 2H6a2 2 0 01-2-2v-7a2 2 0 012-2h8zm0 1.75H6a.25.25 0 00-.243.193L5.75 12v7a.25.25 0 00.193.243L6 19.25h8a.25.25 0 00.243-.193L14.25 19v-7a.25.25 0 00-.193-.243L14 11.75zM12 .76V4c2.3 0 4.61.88 6.36 2.64a8.95 8.95 0 012.634 6.025L21 13a1 1 0 01-1.993.117L19 13h-.003a6.979 6.979 0 00-2.047-4.95 6.97 6.97 0 00-4.652-2.044L12 6v3.24L7.76 5 12 .76z\"\n    })));\n  }\n  renderFlip() {\n    const {\n      i18n\n    } = this.props;\n    return h(\"button\", {\n      role: \"button tooltip\",\n      \"data-microtip-position\": \"top\",\n      type: \"button\",\n      className: \"uppy-u-reset uppy-c-btn\",\n      \"aria-label\": i18n('flipHorizontal'),\n      onClick: () => this.cropper.scaleX(-this.cropper.getData().scaleX || -1)\n    }, h(\"svg\", {\n      \"aria-hidden\": \"true\",\n      className: \"uppy-c-icon\",\n      width: \"24\",\n      height: \"24\",\n      viewBox: \"0 0 24 24\"\n    }, h(\"path\", {\n      d: \"M0 0h24v24H0z\",\n      fill: \"none\"\n    }), h(\"path\", {\n      d: \"M15 21h2v-2h-2v2zm4-12h2V7h-2v2zM3 5v14c0 1.1.9 2 2 2h4v-2H5V5h4V3H5c-1.1 0-2 .9-2 2zm16-2v2h2c0-1.1-.9-2-2-2zm-8 20h2V1h-2v22zm8-6h2v-2h-2v2zM15 5h2V3h-2v2zm4 8h2v-2h-2v2zm0 8c1.1 0 2-.9 2-2h-2v2z\"\n    })));\n  }\n  renderZoomIn() {\n    const {\n      i18n\n    } = this.props;\n    return h(\"button\", {\n      role: \"button tooltip\",\n      \"data-microtip-position\": \"top\",\n      type: \"button\",\n      className: \"uppy-u-reset uppy-c-btn\",\n      \"aria-label\": i18n('zoomIn'),\n      onClick: () => this.cropper.zoom(0.1)\n    }, h(\"svg\", {\n      \"aria-hidden\": \"true\",\n      className: \"uppy-c-icon\",\n      height: \"24\",\n      viewBox: \"0 0 24 24\",\n      width: \"24\"\n    }, h(\"path\", {\n      d: \"M0 0h24v24H0V0z\",\n      fill: \"none\"\n    }), h(\"path\", {\n      d: \"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z\"\n    }), h(\"path\", {\n      d: \"M12 10h-2v2H9v-2H7V9h2V7h1v2h2v1z\"\n    })));\n  }\n  renderZoomOut() {\n    const {\n      i18n\n    } = this.props;\n    return h(\"button\", {\n      role: \"button tooltip\",\n      \"data-microtip-position\": \"top\",\n      type: \"button\",\n      className: \"uppy-u-reset uppy-c-btn\",\n      \"aria-label\": i18n('zoomOut'),\n      onClick: () => this.cropper.zoom(-0.1)\n    }, h(\"svg\", {\n      \"aria-hidden\": \"true\",\n      className: \"uppy-c-icon\",\n      width: \"24\",\n      height: \"24\",\n      viewBox: \"0 0 24 24\"\n    }, h(\"path\", {\n      d: \"M0 0h24v24H0V0z\",\n      fill: \"none\"\n    }), h(\"path\", {\n      d: \"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14zM7 9h5v1H7z\"\n    })));\n  }\n  renderCropSquare() {\n    const {\n      i18n\n    } = this.props;\n    return h(\"button\", {\n      role: \"button tooltip\",\n      \"data-microtip-position\": \"top\",\n      type: \"button\",\n      className: \"uppy-u-reset uppy-c-btn\",\n      \"aria-label\": i18n('aspectRatioSquare'),\n      onClick: () => this.cropper.setAspectRatio(1)\n    }, h(\"svg\", {\n      \"aria-hidden\": \"true\",\n      className: \"uppy-c-icon\",\n      width: \"24\",\n      height: \"24\",\n      viewBox: \"0 0 24 24\"\n    }, h(\"path\", {\n      d: \"M0 0h24v24H0z\",\n      fill: \"none\"\n    }), h(\"path\", {\n      d: \"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z\"\n    })));\n  }\n  renderCropWidescreen() {\n    const {\n      i18n\n    } = this.props;\n    return h(\"button\", {\n      role: \"button tooltip\",\n      \"data-microtip-position\": \"top\",\n      type: \"button\",\n      className: \"uppy-u-reset uppy-c-btn\",\n      \"aria-label\": i18n('aspectRatioLandscape'),\n      onClick: () => this.cropper.setAspectRatio(16 / 9)\n    }, h(\"svg\", {\n      \"aria-hidden\": \"true\",\n      className: \"uppy-c-icon\",\n      width: \"24\",\n      height: \"24\",\n      viewBox: \"0 0 24 24\"\n    }, h(\"path\", {\n      d: \"M 19,4.9999992 V 17.000001 H 4.9999998 V 6.9999992 H 19 m 0,-2 H 4.9999998 c -1.0999999,0 -1.9999999,0.9000001 -1.9999999,2 V 17.000001 c 0,1.1 0.9,2 1.9999999,2 H 19 c 1.1,0 2,-0.9 2,-2 V 6.9999992 c 0,-1.0999999 -0.9,-2 -2,-2 z\"\n    }), h(\"path\", {\n      fill: \"none\",\n      d: \"M0 0h24v24H0z\"\n    })));\n  }\n  renderCropWidescreenVertical() {\n    const {\n      i18n\n    } = this.props;\n    return h(\"button\", {\n      role: \"button tooltip\",\n      \"data-microtip-position\": \"top\",\n      type: \"button\",\n      \"aria-label\": i18n('aspectRatioPortrait'),\n      className: \"uppy-u-reset uppy-c-btn\",\n      onClick: () => this.cropper.setAspectRatio(9 / 16)\n    }, h(\"svg\", {\n      \"aria-hidden\": \"true\",\n      className: \"uppy-c-icon\",\n      width: \"24\",\n      height: \"24\",\n      viewBox: \"0 0 24 24\"\n    }, h(\"path\", {\n      d: \"M 19.000001,19 H 6.999999 V 5 h 10.000002 v 14 m 2,0 V 5 c 0,-1.0999999 -0.9,-1.9999999 -2,-1.9999999 H 6.999999 c -1.1,0 -2,0.9 -2,1.9999999 v 14 c 0,1.1 0.9,2 2,2 h 10.000002 c 1.1,0 2,-0.9 2,-2 z\"\n    }), h(\"path\", {\n      d: \"M0 0h24v24H0z\",\n      fill: \"none\"\n    })));\n  }\n  render() {\n    const {\n      currentImage,\n      opts\n    } = this.props;\n    const {\n      actions\n    } = opts;\n    const imageURL = URL.createObjectURL(currentImage.data);\n    return h(\"div\", {\n      className: \"uppy-ImageCropper\"\n    }, h(\"div\", {\n      className: \"uppy-ImageCropper-container\"\n    }, h(\"img\", {\n      className: \"uppy-ImageCropper-image\",\n      alt: currentImage.name,\n      src: imageURL,\n      ref: ref => {\n        this.imgElement = ref;\n      }\n    })), h(\"div\", {\n      className: \"uppy-ImageCropper-controls\"\n    }, actions.revert && this.renderRevert(), actions.rotate && this.renderRotate(), actions.granularRotate && this.renderGranularRotate(), actions.flip && this.renderFlip(), actions.zoomIn && this.renderZoomIn(), actions.zoomOut && this.renderZoomOut(), actions.cropSquare && this.renderCropSquare(), actions.cropWidescreen && this.renderCropWidescreen(), actions.cropWidescreenVertical && this.renderCropWidescreenVertical()));\n  }\n}","export default {\n  strings: {\n    revert: 'Reset',\n    rotate: 'Rotate 90°',\n    zoomIn: 'Zoom in',\n    zoomOut: 'Zoom out',\n    flipHorizontal: 'Flip horizontally',\n    aspectRatioSquare: 'Crop square',\n    aspectRatioLandscape: 'Crop landscape (16:9)',\n    aspectRatioPortrait: 'Crop portrait (9:16)'\n  }\n};","import { UIPlugin } from '@uppy/core';\nimport { h } from 'preact';\nimport Editor from \"./Editor.js\";\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore We don't want TS to generate types for the package.json\nconst packageJson = {\n  \"version\": \"3.3.1\"\n};\nimport locale from './locale.js';\nconst defaultCropperOptions = {\n  viewMode: 0,\n  background: false,\n  autoCropArea: 1,\n  responsive: true,\n  minCropBoxWidth: 70,\n  minCropBoxHeight: 70,\n  croppedCanvasOptions: {},\n  initialAspectRatio: 0\n};\nconst defaultActions = {\n  revert: true,\n  rotate: true,\n  granularRotate: true,\n  flip: true,\n  zoomIn: true,\n  zoomOut: true,\n  cropSquare: true,\n  cropWidescreen: true,\n  cropWidescreenVertical: true\n};\nconst defaultOptions = {\n  // `quality: 1` increases the image size by orders of magnitude - 0.8 seems to be the sweet spot.\n  // see https://github.com/fengyuanchen/cropperjs/issues/538#issuecomment-1776279427\n  quality: 0.8,\n  actions: defaultActions,\n  cropperOptions: defaultCropperOptions\n};\nexport default class ImageEditor extends UIPlugin {\n  constructor(uppy, opts) {\n    super(uppy, {\n      ...defaultOptions,\n      ...opts,\n      actions: {\n        ...defaultActions,\n        ...(opts == null ? void 0 : opts.actions)\n      },\n      cropperOptions: {\n        ...defaultCropperOptions,\n        ...(opts == null ? void 0 : opts.cropperOptions)\n      }\n    });\n    this.save = () => {\n      const saveBlobCallback = blob => {\n        var _name;\n        const {\n          currentImage\n        } = this.getPluginState();\n        this.uppy.setFileState(currentImage.id, {\n          // Reinserting image's name and type, because .toBlob loses both.\n          data: new File([blob], (_name = currentImage.name) != null ? _name : this.i18n('unnamed'), {\n            type: blob.type\n          }),\n          size: blob.size,\n          preview: undefined\n        });\n        const updatedFile = this.uppy.getFile(currentImage.id);\n        this.uppy.emit('thumbnail:request', updatedFile);\n        this.setPluginState({\n          currentImage: updatedFile\n        });\n        this.uppy.emit('file-editor:complete', updatedFile);\n      };\n      const {\n        currentImage\n      } = this.getPluginState();\n\n      // Fixes black 1px lines on odd-width images.\n      // This should be removed when cropperjs fixes this issue.\n      // (See https://github.com/transloadit/uppy/issues/4305 and https://github.com/fengyuanchen/cropperjs/issues/551).\n      const croppedCanvas = this.cropper.getCroppedCanvas({});\n      if (croppedCanvas.width % 2 !== 0) {\n        this.cropper.setData({\n          width: croppedCanvas.width - 1\n        });\n      }\n      if (croppedCanvas.height % 2 !== 0) {\n        this.cropper.setData({\n          height: croppedCanvas.height - 1\n        });\n      }\n      this.cropper.getCroppedCanvas(this.opts.cropperOptions.croppedCanvasOptions).toBlob(saveBlobCallback, currentImage.type, this.opts.quality);\n    };\n    this.storeCropperInstance = cropper => {\n      this.cropper = cropper;\n    };\n    this.selectFile = file => {\n      this.uppy.emit('file-editor:start', file);\n      this.setPluginState({\n        currentImage: file\n      });\n    };\n    this.id = this.opts.id || 'ImageEditor';\n    this.title = 'Image Editor';\n    this.type = 'editor';\n    this.defaultLocale = locale;\n    this.i18nInit();\n  }\n\n  // eslint-disable-next-line class-methods-use-this\n  canEditFile(file) {\n    if (!file.type || file.isRemote) {\n      return false;\n    }\n    const fileTypeSpecific = file.type.split('/')[1];\n    if (/^(jpe?g|gif|png|bmp|webp)$/.test(fileTypeSpecific)) {\n      return true;\n    }\n    return false;\n  }\n  install() {\n    this.setPluginState({\n      currentImage: null\n    });\n    const {\n      target\n    } = this.opts;\n    if (target) {\n      this.mount(target, this);\n    }\n  }\n  uninstall() {\n    const {\n      currentImage\n    } = this.getPluginState();\n    if (currentImage) {\n      const file = this.uppy.getFile(currentImage.id);\n      this.uppy.emit('file-editor:cancel', file);\n    }\n    this.unmount();\n  }\n  render() {\n    const {\n      currentImage\n    } = this.getPluginState();\n    if (currentImage === null || currentImage.isRemote) {\n      return null;\n    }\n    return h(Editor, {\n      currentImage: currentImage,\n      storeCropperInstance: this.storeCropperInstance,\n      save: this.save,\n      opts: this.opts,\n      i18n: this.i18n\n    });\n  }\n}\nImageEditor.VERSION = packageJson.version;","function _classPrivateFieldLooseBase(e, t) { if (!{}.hasOwnProperty.call(e, t)) throw new TypeError(\"attempted to use private field on non-instance\"); return e; }\nvar id = 0;\nfunction _classPrivateFieldLooseKey(e) { return \"__private_\" + id++ + \"_\" + e; }\nfunction createCancelError(cause) {\n  return new Error('Cancelled', {\n    cause\n  });\n}\nfunction abortOn(signal) {\n  if (signal != null) {\n    var _this$then;\n    const abortPromise = () => this.abort(signal.reason);\n    signal.addEventListener('abort', abortPromise, {\n      once: true\n    });\n    const removeAbortListener = () => {\n      signal.removeEventListener('abort', abortPromise);\n    };\n    (_this$then = this.then) == null || _this$then.call(this, removeAbortListener, removeAbortListener);\n  }\n  return this;\n}\nvar _activeRequests = /*#__PURE__*/_classPrivateFieldLooseKey(\"activeRequests\");\nvar _queuedHandlers = /*#__PURE__*/_classPrivateFieldLooseKey(\"queuedHandlers\");\nvar _paused = /*#__PURE__*/_classPrivateFieldLooseKey(\"paused\");\nvar _pauseTimer = /*#__PURE__*/_classPrivateFieldLooseKey(\"pauseTimer\");\nvar _downLimit = /*#__PURE__*/_classPrivateFieldLooseKey(\"downLimit\");\nvar _upperLimit = /*#__PURE__*/_classPrivateFieldLooseKey(\"upperLimit\");\nvar _rateLimitingTimer = /*#__PURE__*/_classPrivateFieldLooseKey(\"rateLimitingTimer\");\nvar _call = /*#__PURE__*/_classPrivateFieldLooseKey(\"call\");\nvar _queueNext = /*#__PURE__*/_classPrivateFieldLooseKey(\"queueNext\");\nvar _next = /*#__PURE__*/_classPrivateFieldLooseKey(\"next\");\nvar _queue = /*#__PURE__*/_classPrivateFieldLooseKey(\"queue\");\nvar _dequeue = /*#__PURE__*/_classPrivateFieldLooseKey(\"dequeue\");\nvar _resume = /*#__PURE__*/_classPrivateFieldLooseKey(\"resume\");\nvar _increaseLimit = /*#__PURE__*/_classPrivateFieldLooseKey(\"increaseLimit\");\nexport class RateLimitedQueue {\n  constructor(limit) {\n    Object.defineProperty(this, _dequeue, {\n      value: _dequeue2\n    });\n    Object.defineProperty(this, _queue, {\n      value: _queue2\n    });\n    Object.defineProperty(this, _next, {\n      value: _next2\n    });\n    Object.defineProperty(this, _queueNext, {\n      value: _queueNext2\n    });\n    Object.defineProperty(this, _call, {\n      value: _call2\n    });\n    Object.defineProperty(this, _activeRequests, {\n      writable: true,\n      value: 0\n    });\n    Object.defineProperty(this, _queuedHandlers, {\n      writable: true,\n      value: []\n    });\n    Object.defineProperty(this, _paused, {\n      writable: true,\n      value: false\n    });\n    Object.defineProperty(this, _pauseTimer, {\n      writable: true,\n      value: void 0\n    });\n    Object.defineProperty(this, _downLimit, {\n      writable: true,\n      value: 1\n    });\n    Object.defineProperty(this, _upperLimit, {\n      writable: true,\n      value: void 0\n    });\n    Object.defineProperty(this, _rateLimitingTimer, {\n      writable: true,\n      value: void 0\n    });\n    Object.defineProperty(this, _resume, {\n      writable: true,\n      value: () => this.resume()\n    });\n    Object.defineProperty(this, _increaseLimit, {\n      writable: true,\n      value: () => {\n        if (_classPrivateFieldLooseBase(this, _paused)[_paused]) {\n          _classPrivateFieldLooseBase(this, _rateLimitingTimer)[_rateLimitingTimer] = setTimeout(_classPrivateFieldLooseBase(this, _increaseLimit)[_increaseLimit], 0);\n          return;\n        }\n        _classPrivateFieldLooseBase(this, _downLimit)[_downLimit] = this.limit;\n        this.limit = Math.ceil((_classPrivateFieldLooseBase(this, _upperLimit)[_upperLimit] + _classPrivateFieldLooseBase(this, _downLimit)[_downLimit]) / 2);\n        for (let i = _classPrivateFieldLooseBase(this, _downLimit)[_downLimit]; i <= this.limit; i++) {\n          _classPrivateFieldLooseBase(this, _queueNext)[_queueNext]();\n        }\n        if (_classPrivateFieldLooseBase(this, _upperLimit)[_upperLimit] - _classPrivateFieldLooseBase(this, _downLimit)[_downLimit] > 3) {\n          _classPrivateFieldLooseBase(this, _rateLimitingTimer)[_rateLimitingTimer] = setTimeout(_classPrivateFieldLooseBase(this, _increaseLimit)[_increaseLimit], 2000);\n        } else {\n          _classPrivateFieldLooseBase(this, _downLimit)[_downLimit] = Math.floor(_classPrivateFieldLooseBase(this, _downLimit)[_downLimit] / 2);\n        }\n      }\n    });\n    if (typeof limit !== 'number' || limit === 0) {\n      this.limit = Infinity;\n    } else {\n      this.limit = limit;\n    }\n  }\n  run(fn, queueOptions) {\n    if (!_classPrivateFieldLooseBase(this, _paused)[_paused] && _classPrivateFieldLooseBase(this, _activeRequests)[_activeRequests] < this.limit) {\n      return _classPrivateFieldLooseBase(this, _call)[_call](fn);\n    }\n    return _classPrivateFieldLooseBase(this, _queue)[_queue](fn, queueOptions);\n  }\n  wrapSyncFunction(fn, queueOptions) {\n    var _this = this;\n    return function () {\n      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n        args[_key] = arguments[_key];\n      }\n      const queuedRequest = _this.run(() => {\n        fn(...args);\n        queueMicrotask(() => queuedRequest.done());\n        return () => {};\n      }, queueOptions);\n      return {\n        abortOn,\n        abort() {\n          queuedRequest.abort();\n        }\n      };\n    };\n  }\n  wrapPromiseFunction(fn, queueOptions) {\n    var _this2 = this;\n    return function () {\n      for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n        args[_key2] = arguments[_key2];\n      }\n      let queuedRequest;\n      const outerPromise = new Promise((resolve, reject) => {\n        queuedRequest = _this2.run(() => {\n          let cancelError;\n          let innerPromise;\n          try {\n            innerPromise = Promise.resolve(fn(...args));\n          } catch (err) {\n            innerPromise = Promise.reject(err);\n          }\n          innerPromise.then(result => {\n            if (cancelError) {\n              reject(cancelError);\n            } else {\n              queuedRequest.done();\n              resolve(result);\n            }\n          }, err => {\n            if (cancelError) {\n              reject(cancelError);\n            } else {\n              queuedRequest.done();\n              reject(err);\n            }\n          });\n          return cause => {\n            cancelError = createCancelError(cause);\n          };\n        }, queueOptions);\n      });\n      outerPromise.abort = cause => {\n        queuedRequest.abort(cause);\n      };\n      outerPromise.abortOn = abortOn;\n      return outerPromise;\n    };\n  }\n  resume() {\n    _classPrivateFieldLooseBase(this, _paused)[_paused] = false;\n    clearTimeout(_classPrivateFieldLooseBase(this, _pauseTimer)[_pauseTimer]);\n    for (let i = 0; i < this.limit; i++) {\n      _classPrivateFieldLooseBase(this, _queueNext)[_queueNext]();\n    }\n  }\n  /**\n   * Freezes the queue for a while or indefinitely.\n   *\n   * @param {number | null } [duration] Duration for the pause to happen, in milliseconds.\n   *                                    If omitted, the queue won't resume automatically.\n   */\n  pause(duration) {\n    if (duration === void 0) {\n      duration = null;\n    }\n    _classPrivateFieldLooseBase(this, _paused)[_paused] = true;\n    clearTimeout(_classPrivateFieldLooseBase(this, _pauseTimer)[_pauseTimer]);\n    if (duration != null) {\n      _classPrivateFieldLooseBase(this, _pauseTimer)[_pauseTimer] = setTimeout(_classPrivateFieldLooseBase(this, _resume)[_resume], duration);\n    }\n  }\n\n  /**\n   * Pauses the queue for a duration, and lower the limit of concurrent requests\n   * when the queue resumes. When the queue resumes, it tries to progressively\n   * increase the limit in `this.#increaseLimit` until another call is made to\n   * `this.rateLimit`.\n   * Call this function when using the RateLimitedQueue for network requests and\n   * the remote server responds with 429 HTTP code.\n   *\n   * @param {number} duration in milliseconds.\n   */\n  rateLimit(duration) {\n    clearTimeout(_classPrivateFieldLooseBase(this, _rateLimitingTimer)[_rateLimitingTimer]);\n    this.pause(duration);\n    if (this.limit > 1 && Number.isFinite(this.limit)) {\n      _classPrivateFieldLooseBase(this, _upperLimit)[_upperLimit] = this.limit - 1;\n      this.limit = _classPrivateFieldLooseBase(this, _downLimit)[_downLimit];\n      _classPrivateFieldLooseBase(this, _rateLimitingTimer)[_rateLimitingTimer] = setTimeout(_classPrivateFieldLooseBase(this, _increaseLimit)[_increaseLimit], duration);\n    }\n  }\n  get isPaused() {\n    return _classPrivateFieldLooseBase(this, _paused)[_paused];\n  }\n}\nfunction _call2(fn) {\n  _classPrivateFieldLooseBase(this, _activeRequests)[_activeRequests] += 1;\n  let done = false;\n  let cancelActive;\n  try {\n    cancelActive = fn();\n  } catch (err) {\n    _classPrivateFieldLooseBase(this, _activeRequests)[_activeRequests] -= 1;\n    throw err;\n  }\n  return {\n    abort: cause => {\n      if (done) return;\n      done = true;\n      _classPrivateFieldLooseBase(this, _activeRequests)[_activeRequests] -= 1;\n      cancelActive == null || cancelActive(cause);\n      _classPrivateFieldLooseBase(this, _queueNext)[_queueNext]();\n    },\n    done: () => {\n      if (done) return;\n      done = true;\n      _classPrivateFieldLooseBase(this, _activeRequests)[_activeRequests] -= 1;\n      _classPrivateFieldLooseBase(this, _queueNext)[_queueNext]();\n    }\n  };\n}\nfunction _queueNext2() {\n  // Do it soon but not immediately, this allows clearing out the entire queue synchronously\n  // one by one without continuously _advancing_ it (and starting new tasks before immediately\n  // aborting them)\n  queueMicrotask(() => _classPrivateFieldLooseBase(this, _next)[_next]());\n}\nfunction _next2() {\n  if (_classPrivateFieldLooseBase(this, _paused)[_paused] || _classPrivateFieldLooseBase(this, _activeRequests)[_activeRequests] >= this.limit) {\n    return;\n  }\n  if (_classPrivateFieldLooseBase(this, _queuedHandlers)[_queuedHandlers].length === 0) {\n    return;\n  }\n\n  // Dispatch the next request, and update the abort/done handlers\n  // so that cancelling it does the Right Thing (and doesn't just try\n  // to dequeue an already-running request).\n  const next = _classPrivateFieldLooseBase(this, _queuedHandlers)[_queuedHandlers].shift();\n  if (next == null) {\n    throw new Error('Invariant violation: next is null');\n  }\n  const handler = _classPrivateFieldLooseBase(this, _call)[_call](next.fn);\n  next.abort = handler.abort;\n  next.done = handler.done;\n}\nfunction _queue2(fn, options) {\n  const handler = {\n    fn,\n    priority: (options == null ? void 0 : options.priority) || 0,\n    abort: () => {\n      _classPrivateFieldLooseBase(this, _dequeue)[_dequeue](handler);\n    },\n    done: () => {\n      throw new Error('Cannot mark a queued request as done: this indicates a bug');\n    }\n  };\n  const index = _classPrivateFieldLooseBase(this, _queuedHandlers)[_queuedHandlers].findIndex(other => {\n    return handler.priority > other.priority;\n  });\n  if (index === -1) {\n    _classPrivateFieldLooseBase(this, _queuedHandlers)[_queuedHandlers].push(handler);\n  } else {\n    _classPrivateFieldLooseBase(this, _queuedHandlers)[_queuedHandlers].splice(index, 0, handler);\n  }\n  return handler;\n}\nfunction _dequeue2(handler) {\n  const index = _classPrivateFieldLooseBase(this, _queuedHandlers)[_queuedHandlers].indexOf(handler);\n  if (index !== -1) {\n    _classPrivateFieldLooseBase(this, _queuedHandlers)[_queuedHandlers].splice(index, 1);\n  }\n}\nexport const internalRateLimitedQueue = Symbol('__queue');","/*!\n * Compressor.js v1.2.1\n * https://fengyuanchen.github.io/compressorjs\n *\n * Copyright 2018-present Chen Fengyuan\n * Released under the MIT license\n *\n * Date: 2023-02-28T14:09:41.732Z\n */\n\nfunction ownKeys(object, enumerableOnly) {\n  var keys = Object.keys(object);\n  if (Object.getOwnPropertySymbols) {\n    var symbols = Object.getOwnPropertySymbols(object);\n    enumerableOnly && (symbols = symbols.filter(function (sym) {\n      return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n    })), keys.push.apply(keys, symbols);\n  }\n  return keys;\n}\nfunction _objectSpread2(target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = null != arguments[i] ? arguments[i] : {};\n    i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n      _defineProperty(target, key, source[key]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n      Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n    });\n  }\n  return target;\n}\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\nfunction _defineProperties(target, props) {\n  for (var i = 0; i < props.length; i++) {\n    var descriptor = props[i];\n    descriptor.enumerable = descriptor.enumerable || false;\n    descriptor.configurable = true;\n    if (\"value\" in descriptor) descriptor.writable = true;\n    Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);\n  }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n  if (staticProps) _defineProperties(Constructor, staticProps);\n  Object.defineProperty(Constructor, \"prototype\", {\n    writable: false\n  });\n  return Constructor;\n}\nfunction _defineProperty(obj, key, value) {\n  key = _toPropertyKey(key);\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n  return obj;\n}\nfunction _extends() {\n  _extends = Object.assign ? Object.assign.bind() : function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n    return target;\n  };\n  return _extends.apply(this, arguments);\n}\nfunction _toPrimitive(input, hint) {\n  if (typeof input !== \"object\" || input === null) return input;\n  var prim = input[Symbol.toPrimitive];\n  if (prim !== undefined) {\n    var res = prim.call(input, hint || \"default\");\n    if (typeof res !== \"object\") return res;\n    throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n  }\n  return (hint === \"string\" ? String : Number)(input);\n}\nfunction _toPropertyKey(arg) {\n  var key = _toPrimitive(arg, \"string\");\n  return typeof key === \"symbol\" ? key : String(key);\n}\n\nvar canvasToBlob = {exports: {}};\n\n/*\n * JavaScript Canvas to Blob\n * https://github.com/blueimp/JavaScript-Canvas-to-Blob\n *\n * Copyright 2012, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n *\n * Based on stackoverflow user Stoive's code snippet:\n * http://stackoverflow.com/q/4998908\n */\n(function (module) {\n  if (typeof window === 'undefined') {\n    return;\n  }\n  (function (window) {\n\n    var CanvasPrototype = window.HTMLCanvasElement && window.HTMLCanvasElement.prototype;\n    var hasBlobConstructor = window.Blob && function () {\n      try {\n        return Boolean(new Blob());\n      } catch (e) {\n        return false;\n      }\n    }();\n    var hasArrayBufferViewSupport = hasBlobConstructor && window.Uint8Array && function () {\n      try {\n        return new Blob([new Uint8Array(100)]).size === 100;\n      } catch (e) {\n        return false;\n      }\n    }();\n    var BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder || window.MSBlobBuilder;\n    var dataURIPattern = /^data:((.*?)(;charset=.*?)?)(;base64)?,/;\n    var dataURLtoBlob = (hasBlobConstructor || BlobBuilder) && window.atob && window.ArrayBuffer && window.Uint8Array && function (dataURI) {\n      var matches, mediaType, isBase64, dataString, byteString, arrayBuffer, intArray, i, bb;\n      // Parse the dataURI components as per RFC 2397\n      matches = dataURI.match(dataURIPattern);\n      if (!matches) {\n        throw new Error('invalid data URI');\n      }\n      // Default to text/plain;charset=US-ASCII\n      mediaType = matches[2] ? matches[1] : 'text/plain' + (matches[3] || ';charset=US-ASCII');\n      isBase64 = !!matches[4];\n      dataString = dataURI.slice(matches[0].length);\n      if (isBase64) {\n        // Convert base64 to raw binary data held in a string:\n        byteString = atob(dataString);\n      } else {\n        // Convert base64/URLEncoded data component to raw binary:\n        byteString = decodeURIComponent(dataString);\n      }\n      // Write the bytes of the string to an ArrayBuffer:\n      arrayBuffer = new ArrayBuffer(byteString.length);\n      intArray = new Uint8Array(arrayBuffer);\n      for (i = 0; i < byteString.length; i += 1) {\n        intArray[i] = byteString.charCodeAt(i);\n      }\n      // Write the ArrayBuffer (or ArrayBufferView) to a blob:\n      if (hasBlobConstructor) {\n        return new Blob([hasArrayBufferViewSupport ? intArray : arrayBuffer], {\n          type: mediaType\n        });\n      }\n      bb = new BlobBuilder();\n      bb.append(arrayBuffer);\n      return bb.getBlob(mediaType);\n    };\n    if (window.HTMLCanvasElement && !CanvasPrototype.toBlob) {\n      if (CanvasPrototype.mozGetAsFile) {\n        CanvasPrototype.toBlob = function (callback, type, quality) {\n          var self = this;\n          setTimeout(function () {\n            if (quality && CanvasPrototype.toDataURL && dataURLtoBlob) {\n              callback(dataURLtoBlob(self.toDataURL(type, quality)));\n            } else {\n              callback(self.mozGetAsFile('blob', type));\n            }\n          });\n        };\n      } else if (CanvasPrototype.toDataURL && dataURLtoBlob) {\n        if (CanvasPrototype.msToBlob) {\n          CanvasPrototype.toBlob = function (callback, type, quality) {\n            var self = this;\n            setTimeout(function () {\n              if ((type && type !== 'image/png' || quality) && CanvasPrototype.toDataURL && dataURLtoBlob) {\n                callback(dataURLtoBlob(self.toDataURL(type, quality)));\n              } else {\n                callback(self.msToBlob(type));\n              }\n            });\n          };\n        } else {\n          CanvasPrototype.toBlob = function (callback, type, quality) {\n            var self = this;\n            setTimeout(function () {\n              callback(dataURLtoBlob(self.toDataURL(type, quality)));\n            });\n          };\n        }\n      }\n    }\n    if (module.exports) {\n      module.exports = dataURLtoBlob;\n    } else {\n      window.dataURLtoBlob = dataURLtoBlob;\n    }\n  })(window);\n})(canvasToBlob);\nvar toBlob = canvasToBlob.exports;\n\nvar isBlob = function isBlob(value) {\n  if (typeof Blob === 'undefined') {\n    return false;\n  }\n  return value instanceof Blob || Object.prototype.toString.call(value) === '[object Blob]';\n};\n\nvar DEFAULTS = {\n  /**\n   * Indicates if output the original image instead of the compressed one\n   * when the size of the compressed image is greater than the original one's\n   * @type {boolean}\n   */\n  strict: true,\n  /**\n   * Indicates if read the image's Exif Orientation information,\n   * and then rotate or flip the image automatically.\n   * @type {boolean}\n   */\n  checkOrientation: true,\n  /**\n   * Indicates if retain the image's Exif information after compressed.\n   * @type {boolean}\n  */\n  retainExif: false,\n  /**\n   * The max width of the output image.\n   * @type {number}\n   */\n  maxWidth: Infinity,\n  /**\n   * The max height of the output image.\n   * @type {number}\n   */\n  maxHeight: Infinity,\n  /**\n   * The min width of the output image.\n   * @type {number}\n   */\n  minWidth: 0,\n  /**\n   * The min height of the output image.\n   * @type {number}\n   */\n  minHeight: 0,\n  /**\n   * The width of the output image.\n   * If not specified, the natural width of the source image will be used.\n   * @type {number}\n   */\n  width: undefined,\n  /**\n   * The height of the output image.\n   * If not specified, the natural height of the source image will be used.\n   * @type {number}\n   */\n  height: undefined,\n  /**\n   * Sets how the size of the image should be resized to the container\n   * specified by the `width` and `height` options.\n   * @type {string}\n   */\n  resize: 'none',\n  /**\n   * The quality of the output image.\n   * It must be a number between `0` and `1`,\n   * and only available for `image/jpeg` and `image/webp` images.\n   * Check out {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/toBlob canvas.toBlob}.\n   * @type {number}\n   */\n  quality: 0.8,\n  /**\n   * The mime type of the output image.\n   * By default, the original mime type of the source image file will be used.\n   * @type {string}\n   */\n  mimeType: 'auto',\n  /**\n   * Files whose file type is included in this list,\n   * and whose file size exceeds the `convertSize` value will be converted to JPEGs.\n   * @type {string|Array}\n   */\n  convertTypes: ['image/png'],\n  /**\n   * PNG files over this size (5 MB by default) will be converted to JPEGs.\n   * To disable this, just set the value to `Infinity`.\n   * @type {number}\n   */\n  convertSize: 5000000,\n  /**\n   * The hook function to execute before draw the image into the canvas for compression.\n   * @type {Function}\n   * @param {CanvasRenderingContext2D} context - The 2d rendering context of the canvas.\n   * @param {HTMLCanvasElement} canvas - The canvas for compression.\n   * @example\n   * function (context, canvas) {\n   *   context.fillStyle = '#fff';\n   * }\n   */\n  beforeDraw: null,\n  /**\n   * The hook function to execute after drew the image into the canvas for compression.\n   * @type {Function}\n   * @param {CanvasRenderingContext2D} context - The 2d rendering context of the canvas.\n   * @param {HTMLCanvasElement} canvas - The canvas for compression.\n   * @example\n   * function (context, canvas) {\n   *   context.filter = 'grayscale(100%)';\n   * }\n   */\n  drew: null,\n  /**\n   * The hook function to execute when success to compress the image.\n   * @type {Function}\n   * @param {File} file - The compressed image File object.\n   * @example\n   * function (file) {\n   *   console.log(file);\n   * }\n   */\n  success: null,\n  /**\n   * The hook function to execute when fail to compress the image.\n   * @type {Function}\n   * @param {Error} err - An Error object.\n   * @example\n   * function (err) {\n   *   console.log(err.message);\n   * }\n   */\n  error: null\n};\n\nvar IS_BROWSER = typeof window !== 'undefined' && typeof window.document !== 'undefined';\nvar WINDOW = IS_BROWSER ? window : {};\n\n/**\n * Check if the given value is a positive number.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given value is a positive number, else `false`.\n */\nvar isPositiveNumber = function isPositiveNumber(value) {\n  return value > 0 && value < Infinity;\n};\nvar slice = Array.prototype.slice;\n\n/**\n * Convert array-like or iterable object to an array.\n * @param {*} value - The value to convert.\n * @returns {Array} Returns a new array.\n */\nfunction toArray(value) {\n  return Array.from ? Array.from(value) : slice.call(value);\n}\nvar REGEXP_IMAGE_TYPE = /^image\\/.+$/;\n\n/**\n * Check if the given value is a mime type of image.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given is a mime type of image, else `false`.\n */\nfunction isImageType(value) {\n  return REGEXP_IMAGE_TYPE.test(value);\n}\n\n/**\n * Convert image type to extension.\n * @param {string} value - The image type to convert.\n * @returns {boolean} Returns the image extension.\n */\nfunction imageTypeToExtension(value) {\n  var extension = isImageType(value) ? value.substr(6) : '';\n  if (extension === 'jpeg') {\n    extension = 'jpg';\n  }\n  return \".\".concat(extension);\n}\nvar fromCharCode = String.fromCharCode;\n\n/**\n * Get string from char code in data view.\n * @param {DataView} dataView - The data view for read.\n * @param {number} start - The start index.\n * @param {number} length - The read length.\n * @returns {string} The read result.\n */\nfunction getStringFromCharCode(dataView, start, length) {\n  var str = '';\n  var i;\n  length += start;\n  for (i = start; i < length; i += 1) {\n    str += fromCharCode(dataView.getUint8(i));\n  }\n  return str;\n}\nvar btoa = WINDOW.btoa;\n\n/**\n * Transform array buffer to Data URL.\n * @param {ArrayBuffer} arrayBuffer - The array buffer to transform.\n * @param {string} mimeType - The mime type of the Data URL.\n * @returns {string} The result Data URL.\n */\nfunction arrayBufferToDataURL(arrayBuffer, mimeType) {\n  var chunks = [];\n  var chunkSize = 8192;\n  var uint8 = new Uint8Array(arrayBuffer);\n  while (uint8.length > 0) {\n    // XXX: Babel's `toConsumableArray` helper will throw error in IE or Safari 9\n    // eslint-disable-next-line prefer-spread\n    chunks.push(fromCharCode.apply(null, toArray(uint8.subarray(0, chunkSize))));\n    uint8 = uint8.subarray(chunkSize);\n  }\n  return \"data:\".concat(mimeType, \";base64,\").concat(btoa(chunks.join('')));\n}\n\n/**\n * Get orientation value from given array buffer.\n * @param {ArrayBuffer} arrayBuffer - The array buffer to read.\n * @returns {number} The read orientation value.\n */\nfunction resetAndGetOrientation(arrayBuffer) {\n  var dataView = new DataView(arrayBuffer);\n  var orientation;\n\n  // Ignores range error when the image does not have correct Exif information\n  try {\n    var littleEndian;\n    var app1Start;\n    var ifdStart;\n\n    // Only handle JPEG image (start by 0xFFD8)\n    if (dataView.getUint8(0) === 0xFF && dataView.getUint8(1) === 0xD8) {\n      var length = dataView.byteLength;\n      var offset = 2;\n      while (offset + 1 < length) {\n        if (dataView.getUint8(offset) === 0xFF && dataView.getUint8(offset + 1) === 0xE1) {\n          app1Start = offset;\n          break;\n        }\n        offset += 1;\n      }\n    }\n    if (app1Start) {\n      var exifIDCode = app1Start + 4;\n      var tiffOffset = app1Start + 10;\n      if (getStringFromCharCode(dataView, exifIDCode, 4) === 'Exif') {\n        var endianness = dataView.getUint16(tiffOffset);\n        littleEndian = endianness === 0x4949;\n        if (littleEndian || endianness === 0x4D4D /* bigEndian */) {\n          if (dataView.getUint16(tiffOffset + 2, littleEndian) === 0x002A) {\n            var firstIFDOffset = dataView.getUint32(tiffOffset + 4, littleEndian);\n            if (firstIFDOffset >= 0x00000008) {\n              ifdStart = tiffOffset + firstIFDOffset;\n            }\n          }\n        }\n      }\n    }\n    if (ifdStart) {\n      var _length = dataView.getUint16(ifdStart, littleEndian);\n      var _offset;\n      var i;\n      for (i = 0; i < _length; i += 1) {\n        _offset = ifdStart + i * 12 + 2;\n        if (dataView.getUint16(_offset, littleEndian) === 0x0112 /* Orientation */) {\n          // 8 is the offset of the current tag's value\n          _offset += 8;\n\n          // Get the original orientation value\n          orientation = dataView.getUint16(_offset, littleEndian);\n\n          // Override the orientation with its default value\n          dataView.setUint16(_offset, 1, littleEndian);\n          break;\n        }\n      }\n    }\n  } catch (e) {\n    orientation = 1;\n  }\n  return orientation;\n}\n\n/**\n * Parse Exif Orientation value.\n * @param {number} orientation - The orientation to parse.\n * @returns {Object} The parsed result.\n */\nfunction parseOrientation(orientation) {\n  var rotate = 0;\n  var scaleX = 1;\n  var scaleY = 1;\n  switch (orientation) {\n    // Flip horizontal\n    case 2:\n      scaleX = -1;\n      break;\n\n    // Rotate left 180°\n    case 3:\n      rotate = -180;\n      break;\n\n    // Flip vertical\n    case 4:\n      scaleY = -1;\n      break;\n\n    // Flip vertical and rotate right 90°\n    case 5:\n      rotate = 90;\n      scaleY = -1;\n      break;\n\n    // Rotate right 90°\n    case 6:\n      rotate = 90;\n      break;\n\n    // Flip horizontal and rotate right 90°\n    case 7:\n      rotate = 90;\n      scaleX = -1;\n      break;\n\n    // Rotate left 90°\n    case 8:\n      rotate = -90;\n      break;\n  }\n  return {\n    rotate: rotate,\n    scaleX: scaleX,\n    scaleY: scaleY\n  };\n}\nvar REGEXP_DECIMALS = /\\.\\d*(?:0|9){12}\\d*$/;\n\n/**\n * Normalize decimal number.\n * Check out {@link https://0.30000000000000004.com/}\n * @param {number} value - The value to normalize.\n * @param {number} [times=100000000000] - The times for normalizing.\n * @returns {number} Returns the normalized number.\n */\nfunction normalizeDecimalNumber(value) {\n  var times = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 100000000000;\n  return REGEXP_DECIMALS.test(value) ? Math.round(value * times) / times : value;\n}\n\n/**\n * Get the max sizes in a rectangle under the given aspect ratio.\n * @param {Object} data - The original sizes.\n * @param {string} [type='contain'] - The adjust type.\n * @returns {Object} The result sizes.\n */\nfunction getAdjustedSizes(_ref) {\n  var aspectRatio = _ref.aspectRatio,\n    height = _ref.height,\n    width = _ref.width;\n  var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'none';\n  var isValidWidth = isPositiveNumber(width);\n  var isValidHeight = isPositiveNumber(height);\n  if (isValidWidth && isValidHeight) {\n    var adjustedWidth = height * aspectRatio;\n    if ((type === 'contain' || type === 'none') && adjustedWidth > width || type === 'cover' && adjustedWidth < width) {\n      height = width / aspectRatio;\n    } else {\n      width = height * aspectRatio;\n    }\n  } else if (isValidWidth) {\n    height = width / aspectRatio;\n  } else if (isValidHeight) {\n    width = height * aspectRatio;\n  }\n  return {\n    width: width,\n    height: height\n  };\n}\n\n/**\n * Get Exif information from the given array buffer.\n * @param {ArrayBuffer} arrayBuffer - The array buffer to read.\n * @returns {Array} The read Exif information.\n */\nfunction getExif(arrayBuffer) {\n  var array = toArray(new Uint8Array(arrayBuffer));\n  var length = array.length;\n  var segments = [];\n  var start = 0;\n  while (start + 3 < length) {\n    var value = array[start];\n    var next = array[start + 1];\n\n    // SOS (Start of Scan)\n    if (value === 0xFF && next === 0xDA) {\n      break;\n    }\n\n    // SOI (Start of Image)\n    if (value === 0xFF && next === 0xD8) {\n      start += 2;\n    } else {\n      var offset = array[start + 2] * 256 + array[start + 3];\n      var end = start + offset + 2;\n      var segment = array.slice(start, end);\n      segments.push(segment);\n      start = end;\n    }\n  }\n  return segments.reduce(function (exifArray, current) {\n    if (current[0] === 0xFF && current[1] === 0xE1) {\n      return exifArray.concat(current);\n    }\n    return exifArray;\n  }, []);\n}\n\n/**\n * Insert Exif information into the given array buffer.\n * @param {ArrayBuffer} arrayBuffer - The array buffer to transform.\n * @param {Array} exifArray - The Exif information to insert.\n * @returns {ArrayBuffer} The transformed array buffer.\n */\nfunction insertExif(arrayBuffer, exifArray) {\n  var array = toArray(new Uint8Array(arrayBuffer));\n  if (array[2] !== 0xFF || array[3] !== 0xE0) {\n    return arrayBuffer;\n  }\n  var app0Length = array[4] * 256 + array[5];\n  var newArrayBuffer = [0xFF, 0xD8].concat(exifArray, array.slice(4 + app0Length));\n  return new Uint8Array(newArrayBuffer);\n}\n\nvar ArrayBuffer$1 = WINDOW.ArrayBuffer,\n  FileReader = WINDOW.FileReader;\nvar URL = WINDOW.URL || WINDOW.webkitURL;\nvar REGEXP_EXTENSION = /\\.\\w+$/;\nvar AnotherCompressor = WINDOW.Compressor;\n\n/**\n * Creates a new image compressor.\n * @class\n */\nvar Compressor = /*#__PURE__*/function () {\n  /**\n   * The constructor of Compressor.\n   * @param {File|Blob} file - The target image file for compressing.\n   * @param {Object} [options] - The options for compressing.\n   */\n  function Compressor(file, options) {\n    _classCallCheck(this, Compressor);\n    this.file = file;\n    this.exif = [];\n    this.image = new Image();\n    this.options = _objectSpread2(_objectSpread2({}, DEFAULTS), options);\n    this.aborted = false;\n    this.result = null;\n    this.init();\n  }\n  _createClass(Compressor, [{\n    key: \"init\",\n    value: function init() {\n      var _this = this;\n      var file = this.file,\n        options = this.options;\n      if (!isBlob(file)) {\n        this.fail(new Error('The first argument must be a File or Blob object.'));\n        return;\n      }\n      var mimeType = file.type;\n      if (!isImageType(mimeType)) {\n        this.fail(new Error('The first argument must be an image File or Blob object.'));\n        return;\n      }\n      if (!URL || !FileReader) {\n        this.fail(new Error('The current browser does not support image compression.'));\n        return;\n      }\n      if (!ArrayBuffer$1) {\n        options.checkOrientation = false;\n        options.retainExif = false;\n      }\n      var isJPEGImage = mimeType === 'image/jpeg';\n      var checkOrientation = isJPEGImage && options.checkOrientation;\n      var retainExif = isJPEGImage && options.retainExif;\n      if (URL && !checkOrientation && !retainExif) {\n        this.load({\n          url: URL.createObjectURL(file)\n        });\n      } else {\n        var reader = new FileReader();\n        this.reader = reader;\n        reader.onload = function (_ref) {\n          var target = _ref.target;\n          var result = target.result;\n          var data = {};\n          var orientation = 1;\n          if (checkOrientation) {\n            // Reset the orientation value to its default value 1\n            // as some iOS browsers will render image with its orientation\n            orientation = resetAndGetOrientation(result);\n            if (orientation > 1) {\n              _extends(data, parseOrientation(orientation));\n            }\n          }\n          if (retainExif) {\n            _this.exif = getExif(result);\n          }\n          if (checkOrientation || retainExif) {\n            if (!URL\n\n            // Generate a new URL with the default orientation value 1.\n            || orientation > 1) {\n              data.url = arrayBufferToDataURL(result, mimeType);\n            } else {\n              data.url = URL.createObjectURL(file);\n            }\n          } else {\n            data.url = result;\n          }\n          _this.load(data);\n        };\n        reader.onabort = function () {\n          _this.fail(new Error('Aborted to read the image with FileReader.'));\n        };\n        reader.onerror = function () {\n          _this.fail(new Error('Failed to read the image with FileReader.'));\n        };\n        reader.onloadend = function () {\n          _this.reader = null;\n        };\n        if (checkOrientation || retainExif) {\n          reader.readAsArrayBuffer(file);\n        } else {\n          reader.readAsDataURL(file);\n        }\n      }\n    }\n  }, {\n    key: \"load\",\n    value: function load(data) {\n      var _this2 = this;\n      var file = this.file,\n        image = this.image;\n      image.onload = function () {\n        _this2.draw(_objectSpread2(_objectSpread2({}, data), {}, {\n          naturalWidth: image.naturalWidth,\n          naturalHeight: image.naturalHeight\n        }));\n      };\n      image.onabort = function () {\n        _this2.fail(new Error('Aborted to load the image.'));\n      };\n      image.onerror = function () {\n        _this2.fail(new Error('Failed to load the image.'));\n      };\n\n      // Match all browsers that use WebKit as the layout engine in iOS devices,\n      // such as Safari for iOS, Chrome for iOS, and in-app browsers.\n      if (WINDOW.navigator && /(?:iPad|iPhone|iPod).*?AppleWebKit/i.test(WINDOW.navigator.userAgent)) {\n        // Fix the `The operation is insecure` error (#57)\n        image.crossOrigin = 'anonymous';\n      }\n      image.alt = file.name;\n      image.src = data.url;\n    }\n  }, {\n    key: \"draw\",\n    value: function draw(_ref2) {\n      var _this3 = this;\n      var naturalWidth = _ref2.naturalWidth,\n        naturalHeight = _ref2.naturalHeight,\n        _ref2$rotate = _ref2.rotate,\n        rotate = _ref2$rotate === void 0 ? 0 : _ref2$rotate,\n        _ref2$scaleX = _ref2.scaleX,\n        scaleX = _ref2$scaleX === void 0 ? 1 : _ref2$scaleX,\n        _ref2$scaleY = _ref2.scaleY,\n        scaleY = _ref2$scaleY === void 0 ? 1 : _ref2$scaleY;\n      var file = this.file,\n        image = this.image,\n        options = this.options;\n      var canvas = document.createElement('canvas');\n      var context = canvas.getContext('2d');\n      var is90DegreesRotated = Math.abs(rotate) % 180 === 90;\n      var resizable = (options.resize === 'contain' || options.resize === 'cover') && isPositiveNumber(options.width) && isPositiveNumber(options.height);\n      var maxWidth = Math.max(options.maxWidth, 0) || Infinity;\n      var maxHeight = Math.max(options.maxHeight, 0) || Infinity;\n      var minWidth = Math.max(options.minWidth, 0) || 0;\n      var minHeight = Math.max(options.minHeight, 0) || 0;\n      var aspectRatio = naturalWidth / naturalHeight;\n      var width = options.width,\n        height = options.height;\n      if (is90DegreesRotated) {\n        var _ref3 = [maxHeight, maxWidth];\n        maxWidth = _ref3[0];\n        maxHeight = _ref3[1];\n        var _ref4 = [minHeight, minWidth];\n        minWidth = _ref4[0];\n        minHeight = _ref4[1];\n        var _ref5 = [height, width];\n        width = _ref5[0];\n        height = _ref5[1];\n      }\n      if (resizable) {\n        aspectRatio = width / height;\n      }\n      var _getAdjustedSizes = getAdjustedSizes({\n        aspectRatio: aspectRatio,\n        width: maxWidth,\n        height: maxHeight\n      }, 'contain');\n      maxWidth = _getAdjustedSizes.width;\n      maxHeight = _getAdjustedSizes.height;\n      var _getAdjustedSizes2 = getAdjustedSizes({\n        aspectRatio: aspectRatio,\n        width: minWidth,\n        height: minHeight\n      }, 'cover');\n      minWidth = _getAdjustedSizes2.width;\n      minHeight = _getAdjustedSizes2.height;\n      if (resizable) {\n        var _getAdjustedSizes3 = getAdjustedSizes({\n          aspectRatio: aspectRatio,\n          width: width,\n          height: height\n        }, options.resize);\n        width = _getAdjustedSizes3.width;\n        height = _getAdjustedSizes3.height;\n      } else {\n        var _getAdjustedSizes4 = getAdjustedSizes({\n          aspectRatio: aspectRatio,\n          width: width,\n          height: height\n        });\n        var _getAdjustedSizes4$wi = _getAdjustedSizes4.width;\n        width = _getAdjustedSizes4$wi === void 0 ? naturalWidth : _getAdjustedSizes4$wi;\n        var _getAdjustedSizes4$he = _getAdjustedSizes4.height;\n        height = _getAdjustedSizes4$he === void 0 ? naturalHeight : _getAdjustedSizes4$he;\n      }\n      width = Math.floor(normalizeDecimalNumber(Math.min(Math.max(width, minWidth), maxWidth)));\n      height = Math.floor(normalizeDecimalNumber(Math.min(Math.max(height, minHeight), maxHeight)));\n      var destX = -width / 2;\n      var destY = -height / 2;\n      var destWidth = width;\n      var destHeight = height;\n      var params = [];\n      if (resizable) {\n        var srcX = 0;\n        var srcY = 0;\n        var srcWidth = naturalWidth;\n        var srcHeight = naturalHeight;\n        var _getAdjustedSizes5 = getAdjustedSizes({\n          aspectRatio: aspectRatio,\n          width: naturalWidth,\n          height: naturalHeight\n        }, {\n          contain: 'cover',\n          cover: 'contain'\n        }[options.resize]);\n        srcWidth = _getAdjustedSizes5.width;\n        srcHeight = _getAdjustedSizes5.height;\n        srcX = (naturalWidth - srcWidth) / 2;\n        srcY = (naturalHeight - srcHeight) / 2;\n        params.push(srcX, srcY, srcWidth, srcHeight);\n      }\n      params.push(destX, destY, destWidth, destHeight);\n      if (is90DegreesRotated) {\n        var _ref6 = [height, width];\n        width = _ref6[0];\n        height = _ref6[1];\n      }\n      canvas.width = width;\n      canvas.height = height;\n      if (!isImageType(options.mimeType)) {\n        options.mimeType = file.type;\n      }\n      var fillStyle = 'transparent';\n\n      // Converts PNG files over the `convertSize` to JPEGs.\n      if (file.size > options.convertSize && options.convertTypes.indexOf(options.mimeType) >= 0) {\n        options.mimeType = 'image/jpeg';\n      }\n      var isJPEGImage = options.mimeType === 'image/jpeg';\n      if (isJPEGImage) {\n        fillStyle = '#fff';\n      }\n\n      // Override the default fill color (#000, black)\n      context.fillStyle = fillStyle;\n      context.fillRect(0, 0, width, height);\n      if (options.beforeDraw) {\n        options.beforeDraw.call(this, context, canvas);\n      }\n      if (this.aborted) {\n        return;\n      }\n      context.save();\n      context.translate(width / 2, height / 2);\n      context.rotate(rotate * Math.PI / 180);\n      context.scale(scaleX, scaleY);\n      context.drawImage.apply(context, [image].concat(params));\n      context.restore();\n      if (options.drew) {\n        options.drew.call(this, context, canvas);\n      }\n      if (this.aborted) {\n        return;\n      }\n      var callback = function callback(blob) {\n        if (!_this3.aborted) {\n          var done = function done(result) {\n            return _this3.done({\n              naturalWidth: naturalWidth,\n              naturalHeight: naturalHeight,\n              result: result\n            });\n          };\n          if (blob && isJPEGImage && options.retainExif && _this3.exif && _this3.exif.length > 0) {\n            var next = function next(arrayBuffer) {\n              return done(toBlob(arrayBufferToDataURL(insertExif(arrayBuffer, _this3.exif), options.mimeType)));\n            };\n            if (blob.arrayBuffer) {\n              blob.arrayBuffer().then(next).catch(function () {\n                _this3.fail(new Error('Failed to read the compressed image with Blob.arrayBuffer().'));\n              });\n            } else {\n              var reader = new FileReader();\n              _this3.reader = reader;\n              reader.onload = function (_ref7) {\n                var target = _ref7.target;\n                next(target.result);\n              };\n              reader.onabort = function () {\n                _this3.fail(new Error('Aborted to read the compressed image with FileReader.'));\n              };\n              reader.onerror = function () {\n                _this3.fail(new Error('Failed to read the compressed image with FileReader.'));\n              };\n              reader.onloadend = function () {\n                _this3.reader = null;\n              };\n              reader.readAsArrayBuffer(blob);\n            }\n          } else {\n            done(blob);\n          }\n        }\n      };\n      if (canvas.toBlob) {\n        canvas.toBlob(callback, options.mimeType, options.quality);\n      } else {\n        callback(toBlob(canvas.toDataURL(options.mimeType, options.quality)));\n      }\n    }\n  }, {\n    key: \"done\",\n    value: function done(_ref8) {\n      var naturalWidth = _ref8.naturalWidth,\n        naturalHeight = _ref8.naturalHeight,\n        result = _ref8.result;\n      var file = this.file,\n        image = this.image,\n        options = this.options;\n      if (URL && image.src.indexOf('blob:') === 0) {\n        URL.revokeObjectURL(image.src);\n      }\n      if (result) {\n        // Returns original file if the result is greater than it and without size related options\n        if (options.strict && !options.retainExif && result.size > file.size && options.mimeType === file.type && !(options.width > naturalWidth || options.height > naturalHeight || options.minWidth > naturalWidth || options.minHeight > naturalHeight || options.maxWidth < naturalWidth || options.maxHeight < naturalHeight)) {\n          result = file;\n        } else {\n          var date = new Date();\n          result.lastModified = date.getTime();\n          result.lastModifiedDate = date;\n          result.name = file.name;\n\n          // Convert the extension to match its type\n          if (result.name && result.type !== file.type) {\n            result.name = result.name.replace(REGEXP_EXTENSION, imageTypeToExtension(result.type));\n          }\n        }\n      } else {\n        // Returns original file if the result is null in some cases.\n        result = file;\n      }\n      this.result = result;\n      if (options.success) {\n        options.success.call(this, result);\n      }\n    }\n  }, {\n    key: \"fail\",\n    value: function fail(err) {\n      var options = this.options;\n      if (options.error) {\n        options.error.call(this, err);\n      } else {\n        throw err;\n      }\n    }\n  }, {\n    key: \"abort\",\n    value: function abort() {\n      if (!this.aborted) {\n        this.aborted = true;\n        if (this.reader) {\n          this.reader.abort();\n        } else if (!this.image.complete) {\n          this.image.onload = null;\n          this.image.onabort();\n        } else {\n          this.fail(new Error('The compression process has been aborted.'));\n        }\n      }\n    }\n\n    /**\n     * Get the no conflict compressor class.\n     * @returns {Compressor} The compressor class.\n     */\n  }], [{\n    key: \"noConflict\",\n    value: function noConflict() {\n      window.Compressor = AnotherCompressor;\n      return Compressor;\n    }\n\n    /**\n     * Change the default options.\n     * @param {Object} options - The new default options.\n     */\n  }, {\n    key: \"setDefaults\",\n    value: function setDefaults(options) {\n      _extends(DEFAULTS, options);\n    }\n  }]);\n  return Compressor;\n}();\n\nexport { Compressor as default };\n","export default {\n  strings: {\n    // Shown in the Status Bar\n    compressingImages: 'Compressing images...',\n    compressedX: 'Saved %{size} by compressing images'\n  }\n};","function _classPrivateFieldLooseBase(e, t) { if (!{}.hasOwnProperty.call(e, t)) throw new TypeError(\"attempted to use private field on non-instance\"); return e; }\nvar id = 0;\nfunction _classPrivateFieldLooseKey(e) { return \"__private_\" + id++ + \"_\" + e; }\nimport { BasePlugin } from '@uppy/core';\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport { RateLimitedQueue } from '@uppy/utils/lib/RateLimitedQueue';\nimport getFileNameAndExtension from '@uppy/utils/lib/getFileNameAndExtension';\nimport prettierBytes from '@transloadit/prettier-bytes';\nimport CompressorJS from 'compressorjs';\nimport locale from './locale.js';\nconst defaultOptions = {\n  quality: 0.6,\n  limit: 10\n};\nvar _RateLimitedQueue = /*#__PURE__*/_classPrivateFieldLooseKey(\"RateLimitedQueue\");\nexport default class Compressor extends BasePlugin {\n  constructor(uppy, opts) {\n    super(uppy, {\n      ...defaultOptions,\n      ...opts\n    });\n    Object.defineProperty(this, _RateLimitedQueue, {\n      writable: true,\n      value: void 0\n    });\n    this.id = this.opts.id || 'Compressor';\n    this.type = 'modifier';\n    this.defaultLocale = locale;\n    _classPrivateFieldLooseBase(this, _RateLimitedQueue)[_RateLimitedQueue] = new RateLimitedQueue(this.opts.limit);\n    this.i18nInit();\n    this.prepareUpload = this.prepareUpload.bind(this);\n    this.compress = this.compress.bind(this);\n  }\n  compress(blob) {\n    return new Promise((resolve, reject) => {\n      /* eslint-disable no-new */\n      new CompressorJS(blob, {\n        ...this.opts,\n        success: resolve,\n        error: reject\n      });\n    });\n  }\n  async prepareUpload(fileIDs) {\n    let totalCompressedSize = 0;\n    const compressedFiles = [];\n    const compressAndApplyResult = _classPrivateFieldLooseBase(this, _RateLimitedQueue)[_RateLimitedQueue].wrapPromiseFunction(async file => {\n      try {\n        const compressedBlob = await this.compress(file.data);\n        const compressedSavingsSize = file.data.size - compressedBlob.size;\n        this.uppy.log(`[Image Compressor] Image ${file.id} compressed by ${prettierBytes(compressedSavingsSize)}`);\n        totalCompressedSize += compressedSavingsSize;\n        const {\n          name,\n          type,\n          size\n        } = compressedBlob;\n        const compressedFileName = getFileNameAndExtension(name);\n        const metaFileName = getFileNameAndExtension(file.meta.name);\n\n        // Name (file.meta.name) might have been changed by user, so we update only the extension\n        const newMetaName = `${metaFileName.name}.${compressedFileName.extension}`;\n        this.uppy.setFileState(file.id, {\n          ...(name && {\n            name\n          }),\n          ...(compressedFileName.extension && {\n            extension: compressedFileName.extension\n          }),\n          ...(type && {\n            type\n          }),\n          ...(size && {\n            size\n          }),\n          data: compressedBlob,\n          meta: {\n            ...file.meta,\n            type,\n            name: newMetaName\n          }\n        });\n        compressedFiles.push(file);\n      } catch (err) {\n        this.uppy.log(`[Image Compressor] Failed to compress ${file.id}:`, 'warning');\n        this.uppy.log(err, 'warning');\n      }\n    });\n    const promises = fileIDs.map(fileID => {\n      var _file$type;\n      const file = this.uppy.getFile(fileID);\n      this.uppy.emit('preprocess-progress', file, {\n        mode: 'indeterminate',\n        message: this.i18n('compressingImages')\n      });\n      if (file.isRemote) {\n        return Promise.resolve();\n      }\n\n      // Some browsers (Firefox) add blobs with empty file type, when files are\n      // added from a folder. Uppy auto-detects type from extension, but leaves the original blob intact.\n      // However, Compressor.js failes when file has no type, so we set it here\n      if (!file.data.type) {\n        file.data = file.data.slice(0, file.data.size, file.type);\n      }\n      if (!((_file$type = file.type) != null && _file$type.startsWith('image/'))) {\n        return Promise.resolve();\n      }\n      return compressAndApplyResult(file);\n    });\n\n    // Why emit `preprocess-complete` for all files at once, instead of\n    // above when each is processed?\n    // Because it leads to StatusBar showing a weird “upload 6 files” button,\n    // while waiting for all the files to complete pre-processing.\n    await Promise.all(promises);\n    this.uppy.emit('compressor:complete', compressedFiles);\n\n    // Only show informer if Compressor mananged to save at least a kilobyte\n    if (totalCompressedSize > 1024) {\n      this.uppy.info(this.i18n('compressedX', {\n        size: prettierBytes(totalCompressedSize)\n      }), 'info');\n    }\n    for (const fileID of fileIDs) {\n      const file = this.uppy.getFile(fileID);\n      this.uppy.emit('preprocess-complete', file);\n    }\n  }\n  install() {\n    this.uppy.addPreProcessor(this.prepareUpload);\n  }\n  uninstall() {\n    this.uppy.removePreProcessor(this.prepareUpload);\n  }\n}","export function filterNonFailedFiles(files) {\n  const hasError = file => 'error' in file && !!file.error;\n  return files.filter(file => !hasError(file));\n}\n\n// Don't double-emit upload-started for Golden Retriever-restored files that were already started\nexport function filterFilesToEmitUploadStarted(files) {\n  return files.filter(file => {\n    var _file$progress;\n    return !((_file$progress = file.progress) != null && _file$progress.uploadStarted) || !file.isRestored;\n  });\n}","function _classPrivateFieldLooseBase(e, t) { if (!{}.hasOwnProperty.call(e, t)) throw new TypeError(\"attempted to use private field on non-instance\"); return e; }\nvar id = 0;\nfunction _classPrivateFieldLooseKey(e) { return \"__private_\" + id++ + \"_\" + e; }\nvar _uppy = /*#__PURE__*/_classPrivateFieldLooseKey(\"uppy\");\nvar _events = /*#__PURE__*/_classPrivateFieldLooseKey(\"events\");\n/**\n * Create a wrapper around an event emitter with a `remove` method to remove\n * all events that were added using the wrapped emitter.\n */\nexport default class EventManager {\n  constructor(uppy) {\n    Object.defineProperty(this, _uppy, {\n      writable: true,\n      value: void 0\n    });\n    Object.defineProperty(this, _events, {\n      writable: true,\n      value: []\n    });\n    _classPrivateFieldLooseBase(this, _uppy)[_uppy] = uppy;\n  }\n  on(event, fn) {\n    _classPrivateFieldLooseBase(this, _events)[_events].push([event, fn]);\n    return _classPrivateFieldLooseBase(this, _uppy)[_uppy].on(event, fn);\n  }\n  remove() {\n    for (const [event, fn] of _classPrivateFieldLooseBase(this, _events)[_events].splice(0)) {\n      _classPrivateFieldLooseBase(this, _uppy)[_uppy].off(event, fn);\n    }\n  }\n  onFilePause(fileID, cb) {\n    this.on('upload-pause', (targetFileID, isPaused) => {\n      if (fileID === targetFileID) {\n        cb(isPaused);\n      }\n    });\n  }\n  onFileRemove(fileID, cb) {\n    this.on('file-removed', file => {\n      if (fileID === file.id) cb(file.id);\n    });\n  }\n  onPause(fileID, cb) {\n    this.on('upload-pause', (targetFileID, isPaused) => {\n      if (fileID === targetFileID) {\n        // const isPaused = this.#uppy.pauseResume(fileID)\n        cb(isPaused);\n      }\n    });\n  }\n  onRetry(fileID, cb) {\n    this.on('upload-retry', targetFileID => {\n      if (fileID === targetFileID) {\n        cb();\n      }\n    });\n  }\n  onRetryAll(fileID, cb) {\n    this.on('retry-all', () => {\n      if (!_classPrivateFieldLooseBase(this, _uppy)[_uppy].getFile(fileID)) return;\n      cb();\n    });\n  }\n  onPauseAll(fileID, cb) {\n    this.on('pause-all', () => {\n      if (!_classPrivateFieldLooseBase(this, _uppy)[_uppy].getFile(fileID)) return;\n      cb();\n    });\n  }\n  onCancelAll(fileID, eventHandler) {\n    var _this = this;\n    this.on('cancel-all', function () {\n      if (!_classPrivateFieldLooseBase(_this, _uppy)[_uppy].getFile(fileID)) return;\n      eventHandler(...arguments);\n    });\n  }\n  onResumeAll(fileID, cb) {\n    this.on('resume-all', () => {\n      if (!_classPrivateFieldLooseBase(this, _uppy)[_uppy].getFile(fileID)) return;\n      cb();\n    });\n  }\n}","function _classPrivateFieldLooseBase(e, t) { if (!{}.hasOwnProperty.call(e, t)) throw new TypeError(\"attempted to use private field on non-instance\"); return e; }\nvar id = 0;\nfunction _classPrivateFieldLooseKey(e) { return \"__private_\" + id++ + \"_\" + e; }\nvar _aliveTimer = /*#__PURE__*/_classPrivateFieldLooseKey(\"aliveTimer\");\nvar _isDone = /*#__PURE__*/_classPrivateFieldLooseKey(\"isDone\");\nvar _onTimedOut = /*#__PURE__*/_classPrivateFieldLooseKey(\"onTimedOut\");\nvar _timeout = /*#__PURE__*/_classPrivateFieldLooseKey(\"timeout\");\n/**\n * Helper to abort upload requests if there has not been any progress for `timeout` ms.\n * Create an instance using `timer = new ProgressTimeout(10000, onTimeout)`\n * Call `timer.progress()` to signal that there has been progress of any kind.\n * Call `timer.done()` when the upload has completed.\n */\nclass ProgressTimeout {\n  constructor(timeout,\n  // eslint-disable-next-line no-shadow\n  timeoutHandler) {\n    Object.defineProperty(this, _aliveTimer, {\n      writable: true,\n      value: void 0\n    });\n    Object.defineProperty(this, _isDone, {\n      writable: true,\n      value: false\n    });\n    Object.defineProperty(this, _onTimedOut, {\n      writable: true,\n      value: void 0\n    });\n    Object.defineProperty(this, _timeout, {\n      writable: true,\n      value: void 0\n    });\n    _classPrivateFieldLooseBase(this, _timeout)[_timeout] = timeout;\n    _classPrivateFieldLooseBase(this, _onTimedOut)[_onTimedOut] = () => timeoutHandler(timeout);\n  }\n  progress() {\n    // Some browsers fire another progress event when the upload is\n    // cancelled, so we have to ignore progress after the timer was\n    // told to stop.\n    if (_classPrivateFieldLooseBase(this, _isDone)[_isDone]) return;\n    if (_classPrivateFieldLooseBase(this, _timeout)[_timeout] > 0) {\n      clearTimeout(_classPrivateFieldLooseBase(this, _aliveTimer)[_aliveTimer]);\n      _classPrivateFieldLooseBase(this, _aliveTimer)[_aliveTimer] = setTimeout(_classPrivateFieldLooseBase(this, _onTimedOut)[_onTimedOut], _classPrivateFieldLooseBase(this, _timeout)[_timeout]);\n    }\n  }\n  done() {\n    if (!_classPrivateFieldLooseBase(this, _isDone)[_isDone]) {\n      clearTimeout(_classPrivateFieldLooseBase(this, _aliveTimer)[_aliveTimer]);\n      _classPrivateFieldLooseBase(this, _aliveTimer)[_aliveTimer] = undefined;\n      _classPrivateFieldLooseBase(this, _isDone)[_isDone] = true;\n    }\n  }\n}\nexport default ProgressTimeout;","var sparkMd5 = {\n  exports: {}\n};\n\n(function(module, exports) {\n  (function(factory) {\n    {\n      module.exports = factory();\n    }\n  })((function(undefined$1) {\n    var hex_chr = [ \"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\" ];\n    function md5cycle(x, k) {\n      var a = x[0], b = x[1], c = x[2], d = x[3];\n      a += (b & c | ~b & d) + k[0] - 680876936 | 0;\n      a = (a << 7 | a >>> 25) + b | 0;\n      d += (a & b | ~a & c) + k[1] - 389564586 | 0;\n      d = (d << 12 | d >>> 20) + a | 0;\n      c += (d & a | ~d & b) + k[2] + 606105819 | 0;\n      c = (c << 17 | c >>> 15) + d | 0;\n      b += (c & d | ~c & a) + k[3] - 1044525330 | 0;\n      b = (b << 22 | b >>> 10) + c | 0;\n      a += (b & c | ~b & d) + k[4] - 176418897 | 0;\n      a = (a << 7 | a >>> 25) + b | 0;\n      d += (a & b | ~a & c) + k[5] + 1200080426 | 0;\n      d = (d << 12 | d >>> 20) + a | 0;\n      c += (d & a | ~d & b) + k[6] - 1473231341 | 0;\n      c = (c << 17 | c >>> 15) + d | 0;\n      b += (c & d | ~c & a) + k[7] - 45705983 | 0;\n      b = (b << 22 | b >>> 10) + c | 0;\n      a += (b & c | ~b & d) + k[8] + 1770035416 | 0;\n      a = (a << 7 | a >>> 25) + b | 0;\n      d += (a & b | ~a & c) + k[9] - 1958414417 | 0;\n      d = (d << 12 | d >>> 20) + a | 0;\n      c += (d & a | ~d & b) + k[10] - 42063 | 0;\n      c = (c << 17 | c >>> 15) + d | 0;\n      b += (c & d | ~c & a) + k[11] - 1990404162 | 0;\n      b = (b << 22 | b >>> 10) + c | 0;\n      a += (b & c | ~b & d) + k[12] + 1804603682 | 0;\n      a = (a << 7 | a >>> 25) + b | 0;\n      d += (a & b | ~a & c) + k[13] - 40341101 | 0;\n      d = (d << 12 | d >>> 20) + a | 0;\n      c += (d & a | ~d & b) + k[14] - 1502002290 | 0;\n      c = (c << 17 | c >>> 15) + d | 0;\n      b += (c & d | ~c & a) + k[15] + 1236535329 | 0;\n      b = (b << 22 | b >>> 10) + c | 0;\n      a += (b & d | c & ~d) + k[1] - 165796510 | 0;\n      a = (a << 5 | a >>> 27) + b | 0;\n      d += (a & c | b & ~c) + k[6] - 1069501632 | 0;\n      d = (d << 9 | d >>> 23) + a | 0;\n      c += (d & b | a & ~b) + k[11] + 643717713 | 0;\n      c = (c << 14 | c >>> 18) + d | 0;\n      b += (c & a | d & ~a) + k[0] - 373897302 | 0;\n      b = (b << 20 | b >>> 12) + c | 0;\n      a += (b & d | c & ~d) + k[5] - 701558691 | 0;\n      a = (a << 5 | a >>> 27) + b | 0;\n      d += (a & c | b & ~c) + k[10] + 38016083 | 0;\n      d = (d << 9 | d >>> 23) + a | 0;\n      c += (d & b | a & ~b) + k[15] - 660478335 | 0;\n      c = (c << 14 | c >>> 18) + d | 0;\n      b += (c & a | d & ~a) + k[4] - 405537848 | 0;\n      b = (b << 20 | b >>> 12) + c | 0;\n      a += (b & d | c & ~d) + k[9] + 568446438 | 0;\n      a = (a << 5 | a >>> 27) + b | 0;\n      d += (a & c | b & ~c) + k[14] - 1019803690 | 0;\n      d = (d << 9 | d >>> 23) + a | 0;\n      c += (d & b | a & ~b) + k[3] - 187363961 | 0;\n      c = (c << 14 | c >>> 18) + d | 0;\n      b += (c & a | d & ~a) + k[8] + 1163531501 | 0;\n      b = (b << 20 | b >>> 12) + c | 0;\n      a += (b & d | c & ~d) + k[13] - 1444681467 | 0;\n      a = (a << 5 | a >>> 27) + b | 0;\n      d += (a & c | b & ~c) + k[2] - 51403784 | 0;\n      d = (d << 9 | d >>> 23) + a | 0;\n      c += (d & b | a & ~b) + k[7] + 1735328473 | 0;\n      c = (c << 14 | c >>> 18) + d | 0;\n      b += (c & a | d & ~a) + k[12] - 1926607734 | 0;\n      b = (b << 20 | b >>> 12) + c | 0;\n      a += (b ^ c ^ d) + k[5] - 378558 | 0;\n      a = (a << 4 | a >>> 28) + b | 0;\n      d += (a ^ b ^ c) + k[8] - 2022574463 | 0;\n      d = (d << 11 | d >>> 21) + a | 0;\n      c += (d ^ a ^ b) + k[11] + 1839030562 | 0;\n      c = (c << 16 | c >>> 16) + d | 0;\n      b += (c ^ d ^ a) + k[14] - 35309556 | 0;\n      b = (b << 23 | b >>> 9) + c | 0;\n      a += (b ^ c ^ d) + k[1] - 1530992060 | 0;\n      a = (a << 4 | a >>> 28) + b | 0;\n      d += (a ^ b ^ c) + k[4] + 1272893353 | 0;\n      d = (d << 11 | d >>> 21) + a | 0;\n      c += (d ^ a ^ b) + k[7] - 155497632 | 0;\n      c = (c << 16 | c >>> 16) + d | 0;\n      b += (c ^ d ^ a) + k[10] - 1094730640 | 0;\n      b = (b << 23 | b >>> 9) + c | 0;\n      a += (b ^ c ^ d) + k[13] + 681279174 | 0;\n      a = (a << 4 | a >>> 28) + b | 0;\n      d += (a ^ b ^ c) + k[0] - 358537222 | 0;\n      d = (d << 11 | d >>> 21) + a | 0;\n      c += (d ^ a ^ b) + k[3] - 722521979 | 0;\n      c = (c << 16 | c >>> 16) + d | 0;\n      b += (c ^ d ^ a) + k[6] + 76029189 | 0;\n      b = (b << 23 | b >>> 9) + c | 0;\n      a += (b ^ c ^ d) + k[9] - 640364487 | 0;\n      a = (a << 4 | a >>> 28) + b | 0;\n      d += (a ^ b ^ c) + k[12] - 421815835 | 0;\n      d = (d << 11 | d >>> 21) + a | 0;\n      c += (d ^ a ^ b) + k[15] + 530742520 | 0;\n      c = (c << 16 | c >>> 16) + d | 0;\n      b += (c ^ d ^ a) + k[2] - 995338651 | 0;\n      b = (b << 23 | b >>> 9) + c | 0;\n      a += (c ^ (b | ~d)) + k[0] - 198630844 | 0;\n      a = (a << 6 | a >>> 26) + b | 0;\n      d += (b ^ (a | ~c)) + k[7] + 1126891415 | 0;\n      d = (d << 10 | d >>> 22) + a | 0;\n      c += (a ^ (d | ~b)) + k[14] - 1416354905 | 0;\n      c = (c << 15 | c >>> 17) + d | 0;\n      b += (d ^ (c | ~a)) + k[5] - 57434055 | 0;\n      b = (b << 21 | b >>> 11) + c | 0;\n      a += (c ^ (b | ~d)) + k[12] + 1700485571 | 0;\n      a = (a << 6 | a >>> 26) + b | 0;\n      d += (b ^ (a | ~c)) + k[3] - 1894986606 | 0;\n      d = (d << 10 | d >>> 22) + a | 0;\n      c += (a ^ (d | ~b)) + k[10] - 1051523 | 0;\n      c = (c << 15 | c >>> 17) + d | 0;\n      b += (d ^ (c | ~a)) + k[1] - 2054922799 | 0;\n      b = (b << 21 | b >>> 11) + c | 0;\n      a += (c ^ (b | ~d)) + k[8] + 1873313359 | 0;\n      a = (a << 6 | a >>> 26) + b | 0;\n      d += (b ^ (a | ~c)) + k[15] - 30611744 | 0;\n      d = (d << 10 | d >>> 22) + a | 0;\n      c += (a ^ (d | ~b)) + k[6] - 1560198380 | 0;\n      c = (c << 15 | c >>> 17) + d | 0;\n      b += (d ^ (c | ~a)) + k[13] + 1309151649 | 0;\n      b = (b << 21 | b >>> 11) + c | 0;\n      a += (c ^ (b | ~d)) + k[4] - 145523070 | 0;\n      a = (a << 6 | a >>> 26) + b | 0;\n      d += (b ^ (a | ~c)) + k[11] - 1120210379 | 0;\n      d = (d << 10 | d >>> 22) + a | 0;\n      c += (a ^ (d | ~b)) + k[2] + 718787259 | 0;\n      c = (c << 15 | c >>> 17) + d | 0;\n      b += (d ^ (c | ~a)) + k[9] - 343485551 | 0;\n      b = (b << 21 | b >>> 11) + c | 0;\n      x[0] = a + x[0] | 0;\n      x[1] = b + x[1] | 0;\n      x[2] = c + x[2] | 0;\n      x[3] = d + x[3] | 0;\n    }\n    function md5blk(s) {\n      var md5blks = [], i;\n      for (i = 0; i < 64; i += 4) {\n        md5blks[i >> 2] = s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) << 24);\n      }\n      return md5blks;\n    }\n    function md5blk_array(a) {\n      var md5blks = [], i;\n      for (i = 0; i < 64; i += 4) {\n        md5blks[i >> 2] = a[i] + (a[i + 1] << 8) + (a[i + 2] << 16) + (a[i + 3] << 24);\n      }\n      return md5blks;\n    }\n    function md51(s) {\n      var n = s.length, state = [ 1732584193, -271733879, -1732584194, 271733878 ], i, length, tail, tmp, lo, hi;\n      for (i = 64; i <= n; i += 64) {\n        md5cycle(state, md5blk(s.substring(i - 64, i)));\n      }\n      s = s.substring(i - 64);\n      length = s.length;\n      tail = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ];\n      for (i = 0; i < length; i += 1) {\n        tail[i >> 2] |= s.charCodeAt(i) << (i % 4 << 3);\n      }\n      tail[i >> 2] |= 128 << (i % 4 << 3);\n      if (i > 55) {\n        md5cycle(state, tail);\n        for (i = 0; i < 16; i += 1) {\n          tail[i] = 0;\n        }\n      }\n      tmp = n * 8;\n      tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n      lo = parseInt(tmp[2], 16);\n      hi = parseInt(tmp[1], 16) || 0;\n      tail[14] = lo;\n      tail[15] = hi;\n      md5cycle(state, tail);\n      return state;\n    }\n    function md51_array(a) {\n      var n = a.length, state = [ 1732584193, -271733879, -1732584194, 271733878 ], i, length, tail, tmp, lo, hi;\n      for (i = 64; i <= n; i += 64) {\n        md5cycle(state, md5blk_array(a.subarray(i - 64, i)));\n      }\n      a = i - 64 < n ? a.subarray(i - 64) : new Uint8Array(0);\n      length = a.length;\n      tail = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ];\n      for (i = 0; i < length; i += 1) {\n        tail[i >> 2] |= a[i] << (i % 4 << 3);\n      }\n      tail[i >> 2] |= 128 << (i % 4 << 3);\n      if (i > 55) {\n        md5cycle(state, tail);\n        for (i = 0; i < 16; i += 1) {\n          tail[i] = 0;\n        }\n      }\n      tmp = n * 8;\n      tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n      lo = parseInt(tmp[2], 16);\n      hi = parseInt(tmp[1], 16) || 0;\n      tail[14] = lo;\n      tail[15] = hi;\n      md5cycle(state, tail);\n      return state;\n    }\n    function rhex(n) {\n      var s = \"\", j;\n      for (j = 0; j < 4; j += 1) {\n        s += hex_chr[n >> j * 8 + 4 & 15] + hex_chr[n >> j * 8 & 15];\n      }\n      return s;\n    }\n    function hex(x) {\n      var i;\n      for (i = 0; i < x.length; i += 1) {\n        x[i] = rhex(x[i]);\n      }\n      return x.join(\"\");\n    }\n    if (hex(md51(\"hello\")) !== \"5d41402abc4b2a76b9719d911017c592\") ;\n    if (typeof ArrayBuffer !== \"undefined\" && !ArrayBuffer.prototype.slice) {\n      (function() {\n        function clamp(val, length) {\n          val = val | 0 || 0;\n          if (val < 0) {\n            return Math.max(val + length, 0);\n          }\n          return Math.min(val, length);\n        }\n        ArrayBuffer.prototype.slice = function(from, to) {\n          var length = this.byteLength, begin = clamp(from, length), end = length, num, target, targetArray, sourceArray;\n          if (to !== undefined$1) {\n            end = clamp(to, length);\n          }\n          if (begin > end) {\n            return new ArrayBuffer(0);\n          }\n          num = end - begin;\n          target = new ArrayBuffer(num);\n          targetArray = new Uint8Array(target);\n          sourceArray = new Uint8Array(this, begin, num);\n          targetArray.set(sourceArray);\n          return target;\n        };\n      })();\n    }\n    function toUtf8(str) {\n      if (/[\\u0080-\\uFFFF]/.test(str)) {\n        str = unescape(encodeURIComponent(str));\n      }\n      return str;\n    }\n    function utf8Str2ArrayBuffer(str, returnUInt8Array) {\n      var length = str.length, buff = new ArrayBuffer(length), arr = new Uint8Array(buff), i;\n      for (i = 0; i < length; i += 1) {\n        arr[i] = str.charCodeAt(i);\n      }\n      return returnUInt8Array ? arr : buff;\n    }\n    function arrayBuffer2Utf8Str(buff) {\n      return String.fromCharCode.apply(null, new Uint8Array(buff));\n    }\n    function concatenateArrayBuffers(first, second, returnUInt8Array) {\n      var result = new Uint8Array(first.byteLength + second.byteLength);\n      result.set(new Uint8Array(first));\n      result.set(new Uint8Array(second), first.byteLength);\n      return returnUInt8Array ? result : result.buffer;\n    }\n    function hexToBinaryString(hex) {\n      var bytes = [], length = hex.length, x;\n      for (x = 0; x < length - 1; x += 2) {\n        bytes.push(parseInt(hex.substr(x, 2), 16));\n      }\n      return String.fromCharCode.apply(String, bytes);\n    }\n    function SparkMD5() {\n      this.reset();\n    }\n    SparkMD5.prototype.append = function(str) {\n      this.appendBinary(toUtf8(str));\n      return this;\n    };\n    SparkMD5.prototype.appendBinary = function(contents) {\n      this._buff += contents;\n      this._length += contents.length;\n      var length = this._buff.length, i;\n      for (i = 64; i <= length; i += 64) {\n        md5cycle(this._hash, md5blk(this._buff.substring(i - 64, i)));\n      }\n      this._buff = this._buff.substring(i - 64);\n      return this;\n    };\n    SparkMD5.prototype.end = function(raw) {\n      var buff = this._buff, length = buff.length, i, tail = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], ret;\n      for (i = 0; i < length; i += 1) {\n        tail[i >> 2] |= buff.charCodeAt(i) << (i % 4 << 3);\n      }\n      this._finish(tail, length);\n      ret = hex(this._hash);\n      if (raw) {\n        ret = hexToBinaryString(ret);\n      }\n      this.reset();\n      return ret;\n    };\n    SparkMD5.prototype.reset = function() {\n      this._buff = \"\";\n      this._length = 0;\n      this._hash = [ 1732584193, -271733879, -1732584194, 271733878 ];\n      return this;\n    };\n    SparkMD5.prototype.getState = function() {\n      return {\n        buff: this._buff,\n        length: this._length,\n        hash: this._hash.slice()\n      };\n    };\n    SparkMD5.prototype.setState = function(state) {\n      this._buff = state.buff;\n      this._length = state.length;\n      this._hash = state.hash;\n      return this;\n    };\n    SparkMD5.prototype.destroy = function() {\n      delete this._hash;\n      delete this._buff;\n      delete this._length;\n    };\n    SparkMD5.prototype._finish = function(tail, length) {\n      var i = length, tmp, lo, hi;\n      tail[i >> 2] |= 128 << (i % 4 << 3);\n      if (i > 55) {\n        md5cycle(this._hash, tail);\n        for (i = 0; i < 16; i += 1) {\n          tail[i] = 0;\n        }\n      }\n      tmp = this._length * 8;\n      tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n      lo = parseInt(tmp[2], 16);\n      hi = parseInt(tmp[1], 16) || 0;\n      tail[14] = lo;\n      tail[15] = hi;\n      md5cycle(this._hash, tail);\n    };\n    SparkMD5.hash = function(str, raw) {\n      return SparkMD5.hashBinary(toUtf8(str), raw);\n    };\n    SparkMD5.hashBinary = function(content, raw) {\n      var hash = md51(content), ret = hex(hash);\n      return raw ? hexToBinaryString(ret) : ret;\n    };\n    SparkMD5.ArrayBuffer = function() {\n      this.reset();\n    };\n    SparkMD5.ArrayBuffer.prototype.append = function(arr) {\n      var buff = concatenateArrayBuffers(this._buff.buffer, arr, true), length = buff.length, i;\n      this._length += arr.byteLength;\n      for (i = 64; i <= length; i += 64) {\n        md5cycle(this._hash, md5blk_array(buff.subarray(i - 64, i)));\n      }\n      this._buff = i - 64 < length ? new Uint8Array(buff.buffer.slice(i - 64)) : new Uint8Array(0);\n      return this;\n    };\n    SparkMD5.ArrayBuffer.prototype.end = function(raw) {\n      var buff = this._buff, length = buff.length, tail = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], i, ret;\n      for (i = 0; i < length; i += 1) {\n        tail[i >> 2] |= buff[i] << (i % 4 << 3);\n      }\n      this._finish(tail, length);\n      ret = hex(this._hash);\n      if (raw) {\n        ret = hexToBinaryString(ret);\n      }\n      this.reset();\n      return ret;\n    };\n    SparkMD5.ArrayBuffer.prototype.reset = function() {\n      this._buff = new Uint8Array(0);\n      this._length = 0;\n      this._hash = [ 1732584193, -271733879, -1732584194, 271733878 ];\n      return this;\n    };\n    SparkMD5.ArrayBuffer.prototype.getState = function() {\n      var state = SparkMD5.prototype.getState.call(this);\n      state.buff = arrayBuffer2Utf8Str(state.buff);\n      return state;\n    };\n    SparkMD5.ArrayBuffer.prototype.setState = function(state) {\n      state.buff = utf8Str2ArrayBuffer(state.buff, true);\n      return SparkMD5.prototype.setState.call(this, state);\n    };\n    SparkMD5.ArrayBuffer.prototype.destroy = SparkMD5.prototype.destroy;\n    SparkMD5.ArrayBuffer.prototype._finish = SparkMD5.prototype._finish;\n    SparkMD5.ArrayBuffer.hash = function(arr, raw) {\n      var hash = md51_array(new Uint8Array(arr)), ret = hex(hash);\n      return raw ? hexToBinaryString(ret) : ret;\n    };\n    return SparkMD5;\n  }));\n})(sparkMd5);\n\nvar SparkMD5 = sparkMd5.exports;\n\nconst fileSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice;\n\nclass FileChecksum {\n  static create(file, callback) {\n    const instance = new FileChecksum(file);\n    instance.create(callback);\n  }\n  constructor(file) {\n    this.file = file;\n    this.chunkSize = 2097152;\n    this.chunkCount = Math.ceil(this.file.size / this.chunkSize);\n    this.chunkIndex = 0;\n  }\n  create(callback) {\n    this.callback = callback;\n    this.md5Buffer = new SparkMD5.ArrayBuffer;\n    this.fileReader = new FileReader;\n    this.fileReader.addEventListener(\"load\", (event => this.fileReaderDidLoad(event)));\n    this.fileReader.addEventListener(\"error\", (event => this.fileReaderDidError(event)));\n    this.readNextChunk();\n  }\n  fileReaderDidLoad(event) {\n    this.md5Buffer.append(event.target.result);\n    if (!this.readNextChunk()) {\n      const binaryDigest = this.md5Buffer.end(true);\n      const base64digest = btoa(binaryDigest);\n      this.callback(null, base64digest);\n    }\n  }\n  fileReaderDidError(event) {\n    this.callback(`Error reading ${this.file.name}`);\n  }\n  readNextChunk() {\n    if (this.chunkIndex < this.chunkCount || this.chunkIndex == 0 && this.chunkCount == 0) {\n      const start = this.chunkIndex * this.chunkSize;\n      const end = Math.min(start + this.chunkSize, this.file.size);\n      const bytes = fileSlice.call(this.file, start, end);\n      this.fileReader.readAsArrayBuffer(bytes);\n      this.chunkIndex++;\n      return true;\n    } else {\n      return false;\n    }\n  }\n}\n\nfunction getMetaValue(name) {\n  const element = findElement(document.head, `meta[name=\"${name}\"]`);\n  if (element) {\n    return element.getAttribute(\"content\");\n  }\n}\n\nfunction findElements(root, selector) {\n  if (typeof root == \"string\") {\n    selector = root;\n    root = document;\n  }\n  const elements = root.querySelectorAll(selector);\n  return toArray(elements);\n}\n\nfunction findElement(root, selector) {\n  if (typeof root == \"string\") {\n    selector = root;\n    root = document;\n  }\n  return root.querySelector(selector);\n}\n\nfunction dispatchEvent(element, type, eventInit = {}) {\n  const {disabled: disabled} = element;\n  const {bubbles: bubbles, cancelable: cancelable, detail: detail} = eventInit;\n  const event = document.createEvent(\"Event\");\n  event.initEvent(type, bubbles || true, cancelable || true);\n  event.detail = detail || {};\n  try {\n    element.disabled = false;\n    element.dispatchEvent(event);\n  } finally {\n    element.disabled = disabled;\n  }\n  return event;\n}\n\nfunction toArray(value) {\n  if (Array.isArray(value)) {\n    return value;\n  } else if (Array.from) {\n    return Array.from(value);\n  } else {\n    return [].slice.call(value);\n  }\n}\n\nclass BlobRecord {\n  constructor(file, checksum, url, customHeaders = {}) {\n    this.file = file;\n    this.attributes = {\n      filename: file.name,\n      content_type: file.type || \"application/octet-stream\",\n      byte_size: file.size,\n      checksum: checksum\n    };\n    this.xhr = new XMLHttpRequest;\n    this.xhr.open(\"POST\", url, true);\n    this.xhr.responseType = \"json\";\n    this.xhr.setRequestHeader(\"Content-Type\", \"application/json\");\n    this.xhr.setRequestHeader(\"Accept\", \"application/json\");\n    this.xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n    Object.keys(customHeaders).forEach((headerKey => {\n      this.xhr.setRequestHeader(headerKey, customHeaders[headerKey]);\n    }));\n    const csrfToken = getMetaValue(\"csrf-token\");\n    if (csrfToken != undefined) {\n      this.xhr.setRequestHeader(\"X-CSRF-Token\", csrfToken);\n    }\n    this.xhr.addEventListener(\"load\", (event => this.requestDidLoad(event)));\n    this.xhr.addEventListener(\"error\", (event => this.requestDidError(event)));\n  }\n  get status() {\n    return this.xhr.status;\n  }\n  get response() {\n    const {responseType: responseType, response: response} = this.xhr;\n    if (responseType == \"json\") {\n      return response;\n    } else {\n      return JSON.parse(response);\n    }\n  }\n  create(callback) {\n    this.callback = callback;\n    this.xhr.send(JSON.stringify({\n      blob: this.attributes\n    }));\n  }\n  requestDidLoad(event) {\n    if (this.status >= 200 && this.status < 300) {\n      const {response: response} = this;\n      const {direct_upload: direct_upload} = response;\n      delete response.direct_upload;\n      this.attributes = response;\n      this.directUploadData = direct_upload;\n      this.callback(null, this.toJSON());\n    } else {\n      this.requestDidError(event);\n    }\n  }\n  requestDidError(event) {\n    this.callback(`Error creating Blob for \"${this.file.name}\". Status: ${this.status}`);\n  }\n  toJSON() {\n    const result = {};\n    for (const key in this.attributes) {\n      result[key] = this.attributes[key];\n    }\n    return result;\n  }\n}\n\nclass BlobUpload {\n  constructor(blob) {\n    this.blob = blob;\n    this.file = blob.file;\n    const {url: url, headers: headers} = blob.directUploadData;\n    this.xhr = new XMLHttpRequest;\n    this.xhr.open(\"PUT\", url, true);\n    this.xhr.responseType = \"text\";\n    for (const key in headers) {\n      this.xhr.setRequestHeader(key, headers[key]);\n    }\n    this.xhr.addEventListener(\"load\", (event => this.requestDidLoad(event)));\n    this.xhr.addEventListener(\"error\", (event => this.requestDidError(event)));\n  }\n  create(callback) {\n    this.callback = callback;\n    this.xhr.send(this.file.slice());\n  }\n  requestDidLoad(event) {\n    const {status: status, response: response} = this.xhr;\n    if (status >= 200 && status < 300) {\n      this.callback(null, response);\n    } else {\n      this.requestDidError(event);\n    }\n  }\n  requestDidError(event) {\n    this.callback(`Error storing \"${this.file.name}\". Status: ${this.xhr.status}`);\n  }\n}\n\nlet id = 0;\n\nclass DirectUpload {\n  constructor(file, url, delegate, customHeaders = {}) {\n    this.id = ++id;\n    this.file = file;\n    this.url = url;\n    this.delegate = delegate;\n    this.customHeaders = customHeaders;\n  }\n  create(callback) {\n    FileChecksum.create(this.file, ((error, checksum) => {\n      if (error) {\n        callback(error);\n        return;\n      }\n      const blob = new BlobRecord(this.file, checksum, this.url, this.customHeaders);\n      notify(this.delegate, \"directUploadWillCreateBlobWithXHR\", blob.xhr);\n      blob.create((error => {\n        if (error) {\n          callback(error);\n        } else {\n          const upload = new BlobUpload(blob);\n          notify(this.delegate, \"directUploadWillStoreFileWithXHR\", upload.xhr);\n          upload.create((error => {\n            if (error) {\n              callback(error);\n            } else {\n              callback(null, blob.toJSON());\n            }\n          }));\n        }\n      }));\n    }));\n  }\n}\n\nfunction notify(object, methodName, ...messages) {\n  if (object && typeof object[methodName] == \"function\") {\n    return object[methodName](...messages);\n  }\n}\n\nclass DirectUploadController {\n  constructor(input, file) {\n    this.input = input;\n    this.file = file;\n    this.directUpload = new DirectUpload(this.file, this.url, this);\n    this.dispatch(\"initialize\");\n  }\n  start(callback) {\n    const hiddenInput = document.createElement(\"input\");\n    hiddenInput.type = \"hidden\";\n    hiddenInput.name = this.input.name;\n    this.input.insertAdjacentElement(\"beforebegin\", hiddenInput);\n    this.dispatch(\"start\");\n    this.directUpload.create(((error, attributes) => {\n      if (error) {\n        hiddenInput.parentNode.removeChild(hiddenInput);\n        this.dispatchError(error);\n      } else {\n        hiddenInput.value = attributes.signed_id;\n      }\n      this.dispatch(\"end\");\n      callback(error);\n    }));\n  }\n  uploadRequestDidProgress(event) {\n    const progress = event.loaded / event.total * 100;\n    if (progress) {\n      this.dispatch(\"progress\", {\n        progress: progress\n      });\n    }\n  }\n  get url() {\n    return this.input.getAttribute(\"data-direct-upload-url\");\n  }\n  dispatch(name, detail = {}) {\n    detail.file = this.file;\n    detail.id = this.directUpload.id;\n    return dispatchEvent(this.input, `direct-upload:${name}`, {\n      detail: detail\n    });\n  }\n  dispatchError(error) {\n    const event = this.dispatch(\"error\", {\n      error: error\n    });\n    if (!event.defaultPrevented) {\n      alert(error);\n    }\n  }\n  directUploadWillCreateBlobWithXHR(xhr) {\n    this.dispatch(\"before-blob-request\", {\n      xhr: xhr\n    });\n  }\n  directUploadWillStoreFileWithXHR(xhr) {\n    this.dispatch(\"before-storage-request\", {\n      xhr: xhr\n    });\n    xhr.upload.addEventListener(\"progress\", (event => this.uploadRequestDidProgress(event)));\n  }\n}\n\nconst inputSelector = \"input[type=file][data-direct-upload-url]:not([disabled])\";\n\nclass DirectUploadsController {\n  constructor(form) {\n    this.form = form;\n    this.inputs = findElements(form, inputSelector).filter((input => input.files.length));\n  }\n  start(callback) {\n    const controllers = this.createDirectUploadControllers();\n    const startNextController = () => {\n      const controller = controllers.shift();\n      if (controller) {\n        controller.start((error => {\n          if (error) {\n            callback(error);\n            this.dispatch(\"end\");\n          } else {\n            startNextController();\n          }\n        }));\n      } else {\n        callback();\n        this.dispatch(\"end\");\n      }\n    };\n    this.dispatch(\"start\");\n    startNextController();\n  }\n  createDirectUploadControllers() {\n    const controllers = [];\n    this.inputs.forEach((input => {\n      toArray(input.files).forEach((file => {\n        const controller = new DirectUploadController(input, file);\n        controllers.push(controller);\n      }));\n    }));\n    return controllers;\n  }\n  dispatch(name, detail = {}) {\n    return dispatchEvent(this.form, `direct-uploads:${name}`, {\n      detail: detail\n    });\n  }\n}\n\nconst processingAttribute = \"data-direct-uploads-processing\";\n\nconst submitButtonsByForm = new WeakMap;\n\nlet started = false;\n\nfunction start() {\n  if (!started) {\n    started = true;\n    document.addEventListener(\"click\", didClick, true);\n    document.addEventListener(\"submit\", didSubmitForm, true);\n    document.addEventListener(\"ajax:before\", didSubmitRemoteElement);\n  }\n}\n\nfunction didClick(event) {\n  const button = event.target.closest(\"button, input\");\n  if (button && button.type === \"submit\" && button.form) {\n    submitButtonsByForm.set(button.form, button);\n  }\n}\n\nfunction didSubmitForm(event) {\n  handleFormSubmissionEvent(event);\n}\n\nfunction didSubmitRemoteElement(event) {\n  if (event.target.tagName == \"FORM\") {\n    handleFormSubmissionEvent(event);\n  }\n}\n\nfunction handleFormSubmissionEvent(event) {\n  const form = event.target;\n  if (form.hasAttribute(processingAttribute)) {\n    event.preventDefault();\n    return;\n  }\n  const controller = new DirectUploadsController(form);\n  const {inputs: inputs} = controller;\n  if (inputs.length) {\n    event.preventDefault();\n    form.setAttribute(processingAttribute, \"\");\n    inputs.forEach(disable);\n    controller.start((error => {\n      form.removeAttribute(processingAttribute);\n      if (error) {\n        inputs.forEach(enable);\n      } else {\n        submitForm(form);\n      }\n    }));\n  }\n}\n\nfunction submitForm(form) {\n  let button = submitButtonsByForm.get(form) || findElement(form, \"input[type=submit], button[type=submit]\");\n  if (button) {\n    const {disabled: disabled} = button;\n    button.disabled = false;\n    button.focus();\n    button.click();\n    button.disabled = disabled;\n  } else {\n    button = document.createElement(\"input\");\n    button.type = \"submit\";\n    button.style.display = \"none\";\n    form.appendChild(button);\n    button.click();\n    form.removeChild(button);\n  }\n  submitButtonsByForm.delete(form);\n}\n\nfunction disable(input) {\n  input.disabled = true;\n}\n\nfunction enable(input) {\n  input.disabled = false;\n}\n\nfunction autostart() {\n  if (window.ActiveStorage) {\n    start();\n  }\n}\n\nsetTimeout(autostart, 1);\n\nexport { DirectUpload, DirectUploadController, DirectUploadsController, start };\n","// https://github.com/excid3/uppy-activestorage-upload\n\nimport { BasePlugin } from '@uppy/core';\nimport { filterNonFailedFiles, filterFilesToEmitUploadStarted } from '@uppy/utils/lib/fileFilters'\nimport { RateLimitedQueue, internalRateLimitedQueue } from '@uppy/utils/lib/RateLimitedQueue'\nimport EventTracker from '@uppy/utils/lib/EventTracker'\nimport ProgressTimeout from '@uppy/utils/lib/ProgressTimeout'\nimport { DirectUpload } from '@rails/activestorage';\n\nlet idCounter = 0;\n\nexport default class ActiveStorageUpload extends BasePlugin {\n  constructor(uppy, opts) {\n    super(uppy, opts);\n\n    this.id = opts.id || 'ActiveStorageUpload';\n    this.title = opts.title || 'ActiveStorageUpload';\n    this.type = 'uploader';\n    this.token = opts.token || '';\n    this.attachmentName = opts.attachmentName || ''\n\n    const defaultOptions = {\n      limit: 5,\n      timeout: 30 * 1000,\n      directUploadUrl: null,\n    };\n\n    this.opts = { ...defaultOptions, ...opts }\n\n    // Simultaneous upload limiting is shared across all uploads with this plugin.\n    if (internalRateLimitedQueue in this.opts) {\n      this.requests = this.opts[internalRateLimitedQueue]\n    } else {\n      this.requests = new RateLimitedQueue(this.opts.limit)\n    }\n\n    this.uploaderEvents = Object.create(null)\n  }\n\n  getOptions(_file) {\n    const opts = {\n      ...this.opts\n    }\n\n    return opts;\n  }\n\n  async #upload(file, current, total) {\n    const opts = this.getOptions(file);\n\n    this.uppy.log(`uploading ${current} of ${total}`);\n    return new Promise((resolve, reject) => {\n      const id = ++idCounter;\n      const data = file.data;\n\n      const directUpload = new DirectUpload(data, this.opts.directUploadUrl, {\n        directUploadWillCreateBlobWithXHR: (_xhr) => {\n          this.uppy.log(`[ActiveStorage] ${id} started`)\n        },\n        directUploadWillStoreFileWithXHR: (xhr) => {\n          xhr.upload.addEventListener('progress', (ev) => {\n            this.uppy.log(`[ActiveStorage] ${id} progress: ${ev.loaded} / ${ev.total}`);\n            // Begin checking for timeouts when progress starts, instead of loading,\n            // to avoid timing out requests on browser concurrency queue\n            timer.progress()\n\n            if (ev.lengthComputable) {\n              this.uppy.emit('upload-progress', file, {\n                uploader: this,\n                bytesUploaded: ev.loaded,\n                bytesTotal: ev.total,\n              });\n            }\n          });\n        }\n      });\n\n      this.uploaderEvents[file.id] = new EventTracker(this.uppy)\n      let queuedRequest\n\n      const timer = new ProgressTimeout(opts.timeout, () => {\n        const error = new Error(this.i18n('uploadStalled', { seconds: Math.ceil(opts.timeout / 1000) }))\n        this.uppy.emit('upload-stalled', error, [file])\n      })\n\n      queuedRequest = this.requests.run(() => {\n        // here we have the two xhr callbacks in one method (load and error)\n        directUpload.create((errorMessage, blob) => {\n          if (errorMessage) {\n            // https://github.com/transloadit/uppy/blob/90f7fb91974502c29ce935a0ed4befdecd6b0f64/packages/%40uppy/xhr-upload/src/index.js#L293\n            this.uppy.log(`[ActiveStorage] ${id} errored`)\n            timer.done()\n            queuedRequest.done()\n            if (this.uploaderEvents[file.id]) {\n              this.uploaderEvents[file.id].remove()\n              this.uploaderEvents[file.id] = null\n            }\n\n            const error = new Error(errorMessage)\n            this.uppy.emit('upload-error', file, error)\n            return reject(error)\n          } else {\n            // https://github.com/transloadit/uppy/blob/90f7fb91974502c29ce935a0ed4befdecd6b0f64/packages/%40uppy/xhr-upload/src/index.js#L254\n            this.uppy.log(`[ActiveStorage] ${id} finished`)\n            timer.done()\n            queuedRequest.done()\n            if (this.uploaderEvents[file.id]) {\n              this.uploaderEvents[file.id].remove()\n              this.uploaderEvents[file.id] = null\n            }\n\n            const uploadResp = {\n              status: 'success',\n              blob: blob,\n            };\n\n            this.uppy.emit('upload-success', file, uploadResp);\n\n            return resolve(file);\n          }\n        });\n\n        return () => {\n          timer.done();\n          directUpload.abort && directUpload.abort();\n        }\n      })\n\n      this.onFileRemove(file.id, () => {\n        queuedRequest.abort()\n        reject(new Error('File removed'))\n      })\n\n      this.onCancelAll(file.id, ({ reason }) => {\n        if (reason === 'user') {\n          queuedRequest.abort()\n        }\n        reject(new Error('Upload cancelled'))\n      })\n    });\n  }\n\n  async #uploadFiles(files) {\n    await Promise.allSettled(files.map((file, i) => {\n      const current = parseInt(i, 10) + 1;\n      const total = files.length;\n\n      return this.#upload(file, current, total)\n    }));\n  }\n\n  onFileRemove (fileID, cb) {\n    this.uploaderEvents[fileID].on('file-removed', (file) => {\n      if (fileID === file.id) cb(file.id)\n    })\n  }\n\n  onCancelAll (fileID, eventHandler) {\n    this.uploaderEvents[fileID].on('cancel-all', (...args) => {\n      if (!this.uppy.getFile(fileID)) return\n      eventHandler(...args)\n    })\n  }\n\n  #handleUpload = async (fileIDs) => {\n    if (fileIDs.length === 0) {\n      this.uppy.log('[ActiveStorage] No files to upload!');\n      return;\n    }\n\n    // No limit configured by the user, and no RateLimitedQueue passed in by a \"parent\" plugin\n    // (basically just AwsS3) using the internal symbol\n    if (this.opts.limit === 0 && !this.opts[internalRateLimitedQueue]) {\n      this.uppy.log(\n        '[ActiveStorage] When uploading multiple files at once, consider setting the `limit` option (to `10` for example), to limit the number of concurrent uploads, which helps prevent memory and network issues: https://uppy.io/docs/xhr-upload/#limit-0',\n        'warning',\n      )\n    }\n\n    this.uppy.log('[ActiveStorage] Uploading...');\n    const files = this.uppy.getFilesByIds(fileIDs)\n\n    const filesFiltered = filterNonFailedFiles(files)\n    const filesToEmit = filterFilesToEmitUploadStarted(filesFiltered)\n    this.uppy.emit('upload-start', filesToEmit)\n\n    await this.#uploadFiles(filesFiltered)\n  }\n\n  install() {\n    this.uppy.addUploader(this.#handleUpload);\n  }\n\n  uninstall() {\n    this.uppy.removeUploader(this.#handleUpload);\n  }\n};\n","const es_ES = {\n  strings: {},\n  pluralize(n) {\n    if (n === 1) {\n      return 0;\n    }\n    return 1;\n  }\n};\nes_ES.strings = {\n  addBulkFilesFailed: {\n    '0': 'No se pudo agregar %{smart_count} archivo debido a un error interno',\n    '1': 'No se pudieron agregar %{smart_count} archivos debido a errores internos'\n  },\n  addedNumFiles: 'Se agregó %{numFiles} archivo(s)',\n  addingMoreFiles: 'Agregando más archivos',\n  additionalRestrictionsFailed: 'No se cumplieron %{count} restricciones adicionales',\n  addMore: 'Agregar más',\n  addMoreFiles: 'Agregar más archivos',\n  allFilesFromFolderNamed: 'Todos los archivos de la carpeta %{name}',\n  allowAccessDescription: 'Para tomar fotos o grabar videos con tu cámara, por favor permite el acceso a la cámara para este sitio.',\n  allowAccessTitle: 'Por favor, permite el acceso a tu cámara',\n  allowAudioAccessDescription: 'Para grabar audio, por favor permite el acceso al micrófono para este sitio.',\n  allowAudioAccessTitle: 'Por favor, permite el acceso a tu micrófono',\n  aspectRatioLandscape: 'Recortar horizontal (16:9)',\n  aspectRatioPortrait: 'Recortar vertical (9:16)',\n  aspectRatioSquare: 'Recortar cuadrado',\n  authAborted: 'Autenticación cancelada',\n  authenticateWith: 'Conectar con %{pluginName}',\n  authenticateWithTitle: 'Por favor, autentícate con %{pluginName} para seleccionar archivos',\n  back: 'Atrás',\n  browse: 'Navegar',\n  browseFiles: 'Navegar por archivos',\n  browseFolders: 'Navegar por carpetas',\n  cancel: 'Cancelar',\n  cancelUpload: 'Cancelar subida',\n  chooseFiles: 'Seleccionar archivos',\n  closeModal: 'Cerrar ventana',\n  companionError: 'Error en la conexión con Companion',\n  companionUnauthorizeHint: 'Para desautorizar tu cuenta de %{provider}, por favor ve a %{url}',\n  complete: 'Completado',\n  compressedX: 'Se ahorró %{size} comprimiendo imágenes',\n  compressingImages: 'Comprimiendo imágenes...',\n  connectedToInternet: 'Conectado a Internet',\n  copyLink: 'Copiar enlace',\n  copyLinkToClipboardFallback: 'Copia la siguiente URL',\n  copyLinkToClipboardSuccess: 'Enlace copiado al portapapeles',\n  creatingAssembly: 'Preparando subida...',\n  creatingAssemblyFailed: 'No se pudo crear un Assembly',\n  dashboardTitle: 'Cargador de archivos',\n  dashboardWindowTitle: 'Ventana para cargar archivos (Presiona escape para cerrar)',\n  dataUploadedOfTotal: '%{complete} de %{total}',\n  discardRecordedFile: 'Descartar archivo grabado',\n  done: 'Hecho',\n  dropHereOr: 'Suelta archivos aquí o %{browse}',\n  dropHint: 'Suelta tus archivos aquí',\n  dropPasteBoth: 'Suelta archivos aquí, %{browseFiles} o %{browseFolders}',\n  dropPasteFiles: 'Suelta archivos aquí o %{browseFiles}',\n  dropPasteFolders: 'Suelta archivos aquí o %{browseFolders}',\n  dropPasteImportBoth: 'Suelta archivos aquí, %{browseFiles}, %{browseFolders} o importar desde:',\n  dropPasteImportFiles: 'Suelta archivos aquí, %{browseFiles} o importar desde:',\n  dropPasteImportFolders: 'Suelta archivos aquí, %{browseFolders} o importar desde:',\n  editFile: 'Editar archivo',\n  editImage: 'Editar imagen',\n  editFileWithFilename: 'Editar archivo %{file}',\n  editing: 'Editando %{file}',\n  emptyFolderAdded: 'No se agregaron archivos desde la carpeta vacía',\n  encoding: 'Codificando...',\n  enterCorrectUrl: 'URL incorrecta: Por favor, asegúrate de ingresar un enlace directo a un archivo',\n  enterTextToSearch: 'Ingresa texto para buscar imágenes',\n  enterUrlToImport: 'Ingresa la URL para importar un archivo',\n  error: 'Error',\n  exceedsSize: '%{file} excede el tamaño máximo permitido de %{size}',\n  failedToFetch: 'Companion no pudo recuperar esta URL, por favor asegúrate de que sea correcta',\n  failedToUpload: 'No se pudo subir %{file}',\n  fileSource: 'Fuente de archivo: %{name}',\n  filesUploadedOfTotal: {\n    '0': '%{complete} de %{smart_count} archivo subido',\n    '1': '%{complete} de %{smart_count} archivos subidos'\n  },\n  filter: 'Filtrar',\n  finishEditingFile: 'Terminar edición de archivo',\n  flipHorizontal: 'Voltear horizontalmente',\n  folderAdded: {\n    '0': 'Se agregó %{smart_count} archivo desde %{folder}',\n    '1': 'Se agregaron %{smart_count} archivos desde %{folder}'\n  },\n  folderAlreadyAdded: 'La carpeta \"%{folder}\" ya fue agregada',\n  generatingThumbnails: 'Generando miniaturas...',\n  import: 'Importar',\n  importFiles: 'Importar archivos desde:',\n  importFrom: 'Importar desde %{name}',\n  inferiorSize: 'Este archivo es más pequeño que el tamaño permitido de %{size}',\n  loading: 'Cargando...',\n  logOut: 'Cerrar sesión',\n  micDisabled: 'El acceso al micrófono fue denegado por el usuario',\n  missingRequiredMetaField: 'Faltan campos de metadatos obligatorios',\n  missingRequiredMetaFieldOnFile: 'Faltan campos de metadatos obligatorios en %{fileName}',\n  missingRequiredMetaFields: {\n    '0': 'Falta el campo de metadatos obligatorio: %{fields}.',\n    '1': 'Faltan los campos de metadatos obligatorios: %{fields}.'\n  },\n  myDevice: 'Mi dispositivo',\n  noAudioDescription: 'Para grabar audio, por favor conecta un micrófono u otro dispositivo de entrada de audio',\n  noAudioTitle: 'Micrófono no disponible',\n  noCameraDescription: 'Para tomar fotos o grabar video, por favor conecta un dispositivo de cámara',\n  noCameraTitle: 'Cámara no disponible',\n  noDuplicates: \"No se puede agregar el archivo duplicado '%{fileName}', ya existe\",\n  noFilesFound: 'No tienes archivos o carpetas aquí',\n  noInternetConnection: 'Sin conexión a Internet',\n  noMoreFilesAllowed: 'No se pueden agregar más archivos',\n  noSearchResults: 'Lamentablemente, no hay resultados para esta búsqueda',\n  openFolderNamed: 'Abrir carpeta %{name}',\n  pause: 'Pausar',\n  paused: 'En pausa',\n  pauseUpload: 'Pausar subida',\n  pluginNameAudio: 'Audio',\n  pluginNameBox: 'Box',\n  pluginNameCamera: 'Cámara',\n  pluginNameDropbox: 'Dropbox',\n  pluginNameFacebook: 'Facebook',\n  pluginNameGoogleDrive: 'Google Drive',\n  pluginNameInstagram: 'Instagram',\n  pluginNameOneDrive: 'OneDrive',\n  pluginNameZoom: 'Zoom',\n  poweredBy: 'Desarrollado por %{uppy}',\n  processingXFiles: {\n    '0': 'Procesando %{smart_count} archivo',\n    '1': 'Procesando %{smart_count} archivos'\n  },\n  recording: 'Grabando',\n  recordingLength: 'Duración de la grabación %{recording_length}',\n  recordingStoppedMaxSize: 'La grabación se detuvo porque el tamaño del archivo está a punto de exceder el límite',\n  recordVideoBtn: 'Grabar video',\n  recoveredAllFiles: 'Se restauraron todos los archivos. Ahora puedes reanudar la subida.',\n  recoveredXFiles: {\n    '0': 'No pudimos recuperar completamente 1 archivo. Por favor, vuelve a seleccionarlo y reanuda la subida.',\n    '1': 'No pudimos recuperar completamente %{smart_count} archivos. Por favor, vuelve a seleccionarlos y reanuda la subida.'\n  },\n  removeFile: 'Eliminar archivo',\n  reSelect: 'Volver a seleccionar',\n  resetFilter: 'Restablecer filtro',\n  resetSearch: 'Restablecer búsqueda',\n  resume: 'Reanudar',\n  resumeUpload: 'Reanudar subida',\n  retry: 'Reintentar',\n  retryUpload: 'Reintentar subida',\n  revert: 'Revertir',\n  rotate: 'Rotar',\n  save: 'Guardar',\n  saveChanges: 'Guardar cambios',\n  search: 'Buscar',\n  searchImages: 'Buscar imágenes',\n  selectX: {\n    '0': 'Seleccionar %{smart_count}',\n    '1': 'Seleccionar %{smart_count}'\n  },\n  sessionRestored: 'Sesión restaurada',\n  showErrorDetails: 'Mostrar detalles del error',\n  signInWithGoogle: 'Iniciar sesión con Google',\n  smile: '¡Sonríe!',\n  startAudioRecording: 'Iniciar grabación de audio',\n  startCapturing: 'Iniciar captura de pantalla',\n  startRecording: 'Iniciar grabación de video',\n  stopAudioRecording: 'Detener grabación de audio',\n  stopCapturing: 'Detener captura de pantalla',\n  stopRecording: 'Detener grabación de video',\n  streamActive: 'Transmisión activa',\n  streamPassive: 'Transmisión pasiva',\n  submitRecordedFile: 'Enviar archivo grabado',\n  takePicture: 'Tomar una foto',\n  takePictureBtn: 'Tomar foto',\n  timedOut: 'La subida se detuvo durante %{seconds} segundos, abortando.',\n  upload: 'Subir',\n  uploadComplete: 'Subida completa',\n  uploadFailed: 'Error en la subida',\n  uploading: 'Subiendo',\n  uploadingXFiles: {\n    '0': 'Subiendo %{smart_count} archivo',\n    '1': 'Subiendo %{smart_count} archivos'\n  },\n  uploadPaused: 'Subida en pausa',\n  uploadStalled: 'La subida no ha realizado ningún progreso durante %{seconds} segundos. Puedes intentarlo de nuevo.',\n  uploadXFiles: {\n    '0': 'Subir %{smart_count} archivo',\n    '1': 'Subir %{smart_count} archivos'\n  },\n  uploadXNewFiles: {\n    '0': 'Subir +%{smart_count} archivo',\n    '1': 'Subir +%{smart_count} archivos'\n  },\n  xFilesSelected: {\n    '0': '%{smart_count} archivo seleccionado',\n    '1': '%{smart_count} archivos seleccionados'\n  },\n  xMoreFilesAdded: {\n    '0': 'Se agregó %{smart_count} archivo más',\n    '1': 'Se agregaron %{smart_count} archivos más'\n  },\n  xTimeLeft: '%{time} restante',\n  youCanOnlyUploadFileTypes: 'Solo puedes subir: %{types}',\n  youCanOnlyUploadX: {\n    '0': 'Solo puedes subir %{smart_count} archivo',\n    '1': 'Solo puedes subir %{smart_count} archivos'\n  },\n  youHaveToAtLeastSelectX: {\n    '0': 'Debes seleccionar al menos %{smart_count} archivo',\n    '1': 'Debes seleccionar al menos %{smart_count} archivos'\n  },\n  zoomIn: 'Acercar',\n  zoomOut: 'Alejar',\n  selectFileNamed: 'Seleccione archivo %{name}',\n  unselectFileNamed: 'Deseleccionar archivo %{name}'\n};\nexport default es_ES;","/* eslint-disable @typescript-eslint/ban-ts-comment */\n\nconst en_US = {\n  strings: {},\n  pluralize(n) {\n    if (n === 1) {\n      return 0;\n    }\n    return 1;\n  }\n};\nen_US.strings = {\n  addBulkFilesFailed: {\n    '0': 'Failed to add %{smart_count} file due to an internal error',\n    '1': 'Failed to add %{smart_count} files due to internal errors'\n  },\n  addedNumFiles: 'Added %{numFiles} file(s)',\n  addingMoreFiles: 'Adding more files',\n  additionalRestrictionsFailed: '%{count} additional restrictions were not fulfilled',\n  addMore: 'Add more',\n  addMoreFiles: 'Add more files',\n  aggregateExceedsSize: 'You selected %{size} of files, but maximum allowed size is %{sizeAllowed}',\n  allFilesFromFolderNamed: 'All files from folder %{name}',\n  allowAccessDescription: 'In order to take pictures or record video with your camera, please allow camera access for this site.',\n  allowAccessTitle: 'Please allow access to your camera',\n  allowAudioAccessDescription: 'In order to record audio, please allow microphone access for this site.',\n  allowAudioAccessTitle: 'Please allow access to your microphone',\n  aspectRatioLandscape: 'Crop landscape (16:9)',\n  aspectRatioPortrait: 'Crop portrait (9:16)',\n  aspectRatioSquare: 'Crop square',\n  authAborted: 'Authentication aborted',\n  authenticate: 'Connect',\n  authenticateWith: 'Connect to %{pluginName}',\n  authenticateWithTitle: 'Please authenticate with %{pluginName} to select files',\n  back: 'Back',\n  browse: 'browse',\n  browseFiles: 'browse files',\n  browseFolders: 'browse folders',\n  cancel: 'Cancel',\n  cancelUpload: 'Cancel upload',\n  chooseFiles: 'Choose files',\n  closeModal: 'Close Modal',\n  companionError: 'Connection with Companion failed',\n  companionUnauthorizeHint: 'To unauthorize to your %{provider} account, please go to %{url}',\n  complete: 'Complete',\n  compressedX: 'Saved %{size} by compressing images',\n  compressingImages: 'Compressing images...',\n  connectedToInternet: 'Connected to the Internet',\n  copyLink: 'Copy link',\n  copyLinkToClipboardFallback: 'Copy the URL below',\n  copyLinkToClipboardSuccess: 'Link copied to clipboard.',\n  creatingAssembly: 'Preparing upload...',\n  creatingAssemblyFailed: 'Transloadit: Could not create Assembly',\n  dashboardTitle: 'Uppy Dashboard',\n  dashboardWindowTitle: 'Uppy Dashboard Window (Press escape to close)',\n  dataUploadedOfTotal: '%{complete} of %{total}',\n  dataUploadedOfUnknown: '%{complete} of unknown',\n  discardRecordedFile: 'Discard recorded file',\n  done: 'Done',\n  dropHereOr: 'Drop here or %{browse}',\n  dropHint: 'Drop your files here',\n  dropPasteBoth: 'Drop files here, %{browseFiles} or %{browseFolders}',\n  dropPasteFiles: 'Drop files here or %{browseFiles}',\n  dropPasteFolders: 'Drop files here or %{browseFolders}',\n  dropPasteImportBoth: 'Drop files here, %{browseFiles}, %{browseFolders} or import from:',\n  dropPasteImportFiles: 'Drop files here, %{browseFiles} or import from:',\n  dropPasteImportFolders: 'Drop files here, %{browseFolders} or import from:',\n  editFile: 'Edit file',\n  editFileWithFilename: 'Edit file %{file}',\n  editImage: 'Edit image',\n  editing: 'Editing %{file}',\n  emptyFolderAdded: 'No files were added from empty folder',\n  encoding: 'Encoding...',\n  enterCorrectUrl: 'Incorrect URL: Please make sure you are entering a direct link to a file',\n  enterTextToSearch: 'Enter text to search for images',\n  enterUrlToImport: 'Enter URL to import a file',\n  error: 'Error',\n  exceedsSize: '%{file} exceeds maximum allowed size of %{size}',\n  failedToFetch: 'Companion failed to fetch this URL, please make sure it’s correct',\n  failedToUpload: 'Failed to upload %{file}',\n  filesUploadedOfTotal: {\n    '0': '%{complete} of %{smart_count} file uploaded',\n    '1': '%{complete} of %{smart_count} files uploaded'\n  },\n  filter: 'Filter',\n  finishEditingFile: 'Finish editing file',\n  flipHorizontal: 'Flip horizontally',\n  folderAdded: {\n    '0': 'Added %{smart_count} file from %{folder}',\n    '1': 'Added %{smart_count} files from %{folder}'\n  },\n  folderAlreadyAdded: 'The folder \"%{folder}\" was already added',\n  generatingThumbnails: 'Generating thumbnails...',\n  import: 'Import',\n  importFiles: 'Import files from:',\n  importFrom: 'Import from %{name}',\n  inferiorSize: 'This file is smaller than the allowed size of %{size}',\n  loadedXFiles: 'Loaded %{numFiles} files',\n  loading: 'Loading...',\n  logIn: 'Log in',\n  logOut: 'Log out',\n  micDisabled: 'Microphone access denied by user',\n  missingRequiredMetaField: 'Missing required meta fields',\n  missingRequiredMetaFieldOnFile: 'Missing required meta fields in %{fileName}',\n  missingRequiredMetaFields: {\n    '0': 'Missing required meta field: %{fields}.',\n    '1': 'Missing required meta fields: %{fields}.'\n  },\n  myDevice: 'My Device',\n  noAudioDescription: 'In order to record audio, please connect a microphone or another audio input device',\n  noAudioTitle: 'Microphone Not Available',\n  noCameraDescription: 'In order to take pictures or record video, please connect a camera device',\n  noCameraTitle: 'Camera Not Available',\n  noDuplicates: \"Cannot add the duplicate file '%{fileName}', it already exists\",\n  noFilesFound: 'You have no files or folders here',\n  noInternetConnection: 'No Internet connection',\n  noMoreFilesAllowed: 'Cannot add more files',\n  noSearchResults: 'Unfortunately, there are no results for this search',\n  openFolderNamed: 'Open folder %{name}',\n  pause: 'Pause',\n  paused: 'Paused',\n  pauseUpload: 'Pause upload',\n  pickFiles: 'Pick files',\n  pickPhotos: 'Pick photos',\n  pleaseWait: 'Please wait',\n  pluginNameAudio: 'Audio',\n  pluginNameBox: 'Box',\n  pluginNameCamera: 'Camera',\n  pluginNameDropbox: 'Dropbox',\n  pluginNameFacebook: 'Facebook',\n  pluginNameGoogleDrive: 'Google Drive',\n  pluginNameGooglePhotos: 'Google Photos',\n  pluginNameGoogleDrivePicker: 'Google Drive',\n  pluginNameGooglePhotosPicker: 'Google Photos',\n  pluginNameInstagram: 'Instagram',\n  pluginNameOneDrive: 'OneDrive',\n  pluginNameScreenCapture: 'Screencast',\n  pluginNameUnsplash: 'Unsplash',\n  pluginNameUrl: 'Link',\n  pluginNameWebdav: 'WebDAV',\n  pluginNameZoom: 'Zoom',\n  pluginWebdavInputLabel: 'WebDAV URL for a file (e.g. from ownCloud or Nextcloud)',\n  poweredBy: 'Powered by %{uppy}',\n  processingXFiles: {\n    '0': 'Processing %{smart_count} file',\n    '1': 'Processing %{smart_count} files'\n  },\n  recording: 'Recording',\n  recordingLength: 'Recording length %{recording_length}',\n  recordingStoppedMaxSize: 'Recording stopped because the file size is about to exceed the limit',\n  recordVideoBtn: 'Record Video',\n  recoveredAllFiles: 'We restored all files. You can now resume the upload.',\n  recoveredXFiles: {\n    '0': 'We could not fully recover 1 file. Please re-select it and resume the upload.',\n    '1': 'We could not fully recover %{smart_count} files. Please re-select them and resume the upload.'\n  },\n  removeFile: 'Remove file',\n  reSelect: 'Re-select',\n  resetFilter: 'Reset filter',\n  resetSearch: 'Reset search',\n  resume: 'Resume',\n  resumeUpload: 'Resume upload',\n  retry: 'Retry',\n  retryUpload: 'Retry upload',\n  revert: 'Reset',\n  rotate: 'Rotate 90°',\n  save: 'Save',\n  saveChanges: 'Save changes',\n  search: 'Search',\n  searchImages: 'Search for images',\n  selectX: {\n    '0': 'Select %{smart_count}',\n    '1': 'Select %{smart_count}'\n  },\n  sessionRestored: 'Session restored',\n  showErrorDetails: 'Show error details',\n  signInWithGoogle: 'Sign in with Google',\n  smile: 'Smile!',\n  startAudioRecording: 'Begin audio recording',\n  startCapturing: 'Begin screen capturing',\n  startRecording: 'Begin video recording',\n  stopAudioRecording: 'Stop audio recording',\n  stopCapturing: 'Stop screen capturing',\n  stopRecording: 'Stop video recording',\n  streamActive: 'Stream active',\n  streamPassive: 'Stream passive',\n  submitRecordedFile: 'Submit recorded file',\n  takePicture: 'Take a picture',\n  takePictureBtn: 'Take Picture',\n  unnamed: 'Unnamed',\n  upload: 'Upload',\n  uploadComplete: 'Upload complete',\n  uploadFailed: 'Upload failed',\n  uploading: 'Uploading',\n  uploadingXFiles: {\n    '0': 'Uploading %{smart_count} file',\n    '1': 'Uploading %{smart_count} files'\n  },\n  uploadPaused: 'Upload paused',\n  uploadStalled: 'Upload has not made any progress for %{seconds} seconds. You may want to retry it.',\n  uploadXFiles: {\n    '0': 'Upload %{smart_count} file',\n    '1': 'Upload %{smart_count} files'\n  },\n  uploadXNewFiles: {\n    '0': 'Upload +%{smart_count} file',\n    '1': 'Upload +%{smart_count} files'\n  },\n  xFilesSelected: {\n    '0': '%{smart_count} file selected',\n    '1': '%{smart_count} files selected'\n  },\n  xMoreFilesAdded: {\n    '0': '%{smart_count} more file added',\n    '1': '%{smart_count} more files added'\n  },\n  xTimeLeft: '%{time} left',\n  youCanOnlyUploadFileTypes: 'You can only upload: %{types}',\n  youCanOnlyUploadX: {\n    '0': 'You can only upload %{smart_count} file',\n    '1': 'You can only upload %{smart_count} files'\n  },\n  youHaveToAtLeastSelectX: {\n    '0': 'You have to select at least %{smart_count} file',\n    '1': 'You have to select at least %{smart_count} files'\n  },\n  zoomIn: 'Zoom in',\n  zoomOut: 'Zoom out'\n};\n\n// @ts-ignore untyped\nif (typeof Uppy !== 'undefined') {\n  // @ts-ignore untyped\n  globalThis.Uppy.locales.en_US = en_US;\n}\nexport default en_US;","import Uppy from '@uppy/core'\nimport Dashboard from '@uppy/dashboard'\nimport ImageEditor from '@uppy/image-editor'\nimport Compressor from '@uppy/compressor'\n// import ThumbnailGenerator from '@uppy/thumbnail-generator'\nimport ActiveStorageUpload from \"./uppy_active_storage\";\n\nimport Catalan from '@uppy/locales/lib/es_ES'\nimport English from '@uppy/locales/lib/en_US'\nimport Spanish from '@uppy/locales/lib/es_ES'\n\nimport '@uppy/core/dist/style.css'\nimport '@uppy/dashboard/dist/style.css'\nimport '@uppy/image-editor/dist/style.css'\n\nconst UppyLocales = {\n  \"ca\": Catalan,\n  \"en\": English,\n  \"es\": Spanish\n}\n\nexport default class TrixUploader {\n  constructor(attachment, element) {\n    this.attachment = attachment;\n\n    this.element = element;\n\n    this.uppy = new Uppy({\n      autoProceed: false,\n      allowMultipleUploadBatches: false,\n      locale: UppyLocales[I18n.locale],\n      restrictions: {\n        allowedFileTypes: [\"image/*\"]\n      },\n    });\n\n    this.uppy.use(Dashboard, {\n      // metaFields: [\n      //   { id: 'name', name: 'Name', placeholder: 'file name' },\n      //   { id: 'caption', name: 'Caption', placeholder: 'describe what the image is about' }\n      // ],\n      waitForThumbnailsBeforeUpload: true,\n      autoOpen: \"imageEditor\"\n    });\n\n    this.uppy.use(ImageEditor, {\n      quality: 0.8,\n    });\n\n    // this.uppy.use(ThumbnailGenerator, {\n    //   thumbnailWidth: 200,\n    //   // thumbnailHeight: 200 // optional, use either width or height,\n    //   waitForThumbnailsBeforeUpload: true,\n    // });\n\n    this.uppy.use(Compressor, {\n      quality: 0.8,\n    });\n\n    this.uppy.use(ActiveStorageUpload, {\n      directUploadUrl: this.directUploadUrl\n    });\n\n    this.uppy.on(\"file-editor:complete\", (updatedFile) => {\n      this.uppy.getPlugin('Dashboard').closeModal();\n    });\n\n    this.uppy.on(\"dashboard:modal-closed\", (ev) => {\n      this.uppy.upload();\n    });\n\n    // this.uppy.on('upload', (data) => {\n    //   // data object consists of `id` with upload ID and `fileIDs` array\n    //   // with file IDs in current upload\n    //   // data: { id, fileIDs }\n    //   // console.log(`Starting upload ${id} for files ${fileIDs}`)\n    //   this.uppy.getPlugin('Dashboard').closeModal();\n    // });\n\n    this.uppy.on('progress', (progress) => {\n      // progress: integer (total progress percentage)\n      this.attachment.setUploadProgress(progress)\n    });\n\n    this.uppy.on('upload-success', (file, uploadResp) => {\n      // uploadResponse: { status: 'success', blob: {}}\n      const { blob } = uploadResp;\n\n      this.attachment.setAttributes({\n        sgid: blob.attachable_sgid,\n        url: this.createBlobUrl(blob.signed_id, blob.filename)\n      });\n    });\n\n    this.uppy.addFile({\n      name: attachment.file.name,\n      type: attachment.file.type,\n      data: attachment.file,\n      meta: {\n        relativePath: attachment.file.webkitRelativePath,\n      },\n      source: 'Local',\n      isRemote: false,\n    });\n  }\n\n  open() {\n    this.uppy.getPlugin('Dashboard').openModal();\n  }\n\n  createBlobUrl(signedId, filename) {\n    return this.blobUrlTemplate\n      .replace(\":signed_id\", signedId)\n      .replace(\":filename\", encodeURIComponent(filename))\n  }\n\n  get directUploadUrl() {\n    return this.element.dataset.directUploadUrl\n  }\n\n  get blobUrlTemplate() {\n    return this.element.dataset.blobUrlTemplate\n  }\n}\n","import Trix from \"trix\" // import \"@rails/actiontext\"\nimport TrixUploader from \"./trix_uploader\";\n\n// Simplified: https://github.com/basecamp/trix/blob/main/src/trix/core/helpers/dom.js#L160\nconst makeElement = (tagName, attributes = {}) => {\n  const element = document.createElement(tagName);\n\n  for (const key in attributes) {\n    element.setAttribute(key, attributes[key]);\n  }\n\n  return element;\n}\n\n// https://github.com/basecamp/trix/blob/main/src/trix/core/helpers/dom.js#L134\nconst removeNode = (node) => node?.parentNode?.removeChild(node);\n\nTrix.config.input.pickFiles = function(callback){\n  const fileInputId = `trix-file-input-${Date.now().toString(16)}`;\n  const input = makeElement(\"input\", { type: \"file\", multiple: false, hidden: true, accept: \"image/*\", id: fileInputId });\n\n  input.addEventListener(\"change\", () => {\n    callback(input.files);\n    removeNode(input)\n  });\n\n  removeNode(document.getElementById(fileInputId));\n  document.body.appendChild(input);\n  input.click()\n};\n\nTrix.config.attachments.preview.caption = {\n  name: false,\n  size: false\n};\n\naddEventListener(\"trix-initialize\", function(event) {\n  if (event.target.dataset.attachments !== \"enabled\") {\n    const fileButton = event.target.toolbarElement.querySelector(\"[data-trix-button-group=file-tools]\");\n\n    if (fileButton)\n      fileButton.remove();\n  }\n});\n\naddEventListener(\"trix-file-accept\", function(event) {\n  const isAnImageFile = function(file) {\n    return file && file[\"type\"].split(\"/\")[0] === \"image\";\n  };\n\n  if (event.target.dataset.attachments !== \"enabled\") {\n    return event.preventDefault();\n  }\n\n  if (!isAnImageFile(event.file)) {\n    return event.preventDefault();\n  }\n});\n\naddEventListener(\"trix-attachment-add\", event => {\n  const { attachment, target } = event\n\n  if (attachment.file) {\n    const uploader = new TrixUploader(attachment, target)\n    uploader.open()\n  }\n})\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var isArray = require('./isArray'),\n    isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n    reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n  if (isArray(value)) {\n    return false;\n  }\n  var type = typeof value;\n  if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n      value == null || isSymbol(value)) {\n    return true;\n  }\n  return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n    (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","var baseGetTag = require('./_baseGetTag'),\n    isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n    funcTag = '[object Function]',\n    genTag = '[object GeneratorFunction]',\n    proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n  if (!isObject(value)) {\n    return false;\n  }\n  // The use of `Object#toString` avoids issues with the `typeof` operator\n  // in Safari 9 which returns 'object' for typed arrays and other constructors.\n  var tag = baseGetTag(value);\n  return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n  var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n  return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n  return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n  if (func != null) {\n    try {\n      return funcToString.call(func);\n    } catch (e) {}\n    try {\n      return (func + '');\n    } catch (e) {}\n  }\n  return '';\n}\n\nmodule.exports = toSource;\n","var isFunction = require('./isFunction'),\n    isMasked = require('./_isMasked'),\n    isObject = require('./isObject'),\n    toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n    objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n  funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n  .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n *  else `false`.\n */\nfunction baseIsNative(value) {\n  if (!isObject(value) || isMasked(value)) {\n    return false;\n  }\n  var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n  return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n  return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var baseIsNative = require('./_baseIsNative'),\n    getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n  var value = getValue(object, key);\n  return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n  this.__data__ = nativeCreate ? nativeCreate(null) : {};\n  this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n  var result = this.has(key) && delete this.__data__[key];\n  this.size -= result ? 1 : 0;\n  return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n  var data = this.__data__;\n  if (nativeCreate) {\n    var result = data[key];\n    return result === HASH_UNDEFINED ? undefined : result;\n  }\n  return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n  var data = this.__data__;\n  return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n  var data = this.__data__;\n  this.size += this.has(key) ? 0 : 1;\n  data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n  return this;\n}\n\nmodule.exports = hashSet;\n","var hashClear = require('./_hashClear'),\n    hashDelete = require('./_hashDelete'),\n    hashGet = require('./_hashGet'),\n    hashHas = require('./_hashHas'),\n    hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n  var index = -1,\n      length = entries == null ? 0 : entries.length;\n\n  this.clear();\n  while (++index < length) {\n    var entry = entries[index];\n    this.set(entry[0], entry[1]);\n  }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n  this.__data__ = [];\n  this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n  return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n  var length = array.length;\n  while (length--) {\n    if (eq(array[length][0], key)) {\n      return length;\n    }\n  }\n  return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n  var data = this.__data__,\n      index = assocIndexOf(data, key);\n\n  if (index < 0) {\n    return false;\n  }\n  var lastIndex = data.length - 1;\n  if (index == lastIndex) {\n    data.pop();\n  } else {\n    splice.call(data, index, 1);\n  }\n  --this.size;\n  return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n  var data = this.__data__,\n      index = assocIndexOf(data, key);\n\n  return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n  return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n  var data = this.__data__,\n      index = assocIndexOf(data, key);\n\n  if (index < 0) {\n    ++this.size;\n    data.push([key, value]);\n  } else {\n    data[index][1] = value;\n  }\n  return this;\n}\n\nmodule.exports = listCacheSet;\n","var listCacheClear = require('./_listCacheClear'),\n    listCacheDelete = require('./_listCacheDelete'),\n    listCacheGet = require('./_listCacheGet'),\n    listCacheHas = require('./_listCacheHas'),\n    listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n  var index = -1,\n      length = entries == null ? 0 : entries.length;\n\n  this.clear();\n  while (++index < length) {\n    var entry = entries[index];\n    this.set(entry[0], entry[1]);\n  }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var getNative = require('./_getNative'),\n    root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var Hash = require('./_Hash'),\n    ListCache = require('./_ListCache'),\n    Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n  this.size = 0;\n  this.__data__ = {\n    'hash': new Hash,\n    'map': new (Map || ListCache),\n    'string': new Hash\n  };\n}\n\nmodule.exports = mapCacheClear;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n  var type = typeof value;\n  return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n    ? (value !== '__proto__')\n    : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n  var data = map.__data__;\n  return isKeyable(key)\n    ? data[typeof key == 'string' ? 'string' : 'hash']\n    : data.map;\n}\n\nmodule.exports = getMapData;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n  var result = getMapData(this, key)['delete'](key);\n  this.size -= result ? 1 : 0;\n  return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n  return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n  return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n  var data = getMapData(this, key),\n      size = data.size;\n\n  data.set(key, value);\n  this.size += data.size == size ? 0 : 1;\n  return this;\n}\n\nmodule.exports = mapCacheSet;\n","var mapCacheClear = require('./_mapCacheClear'),\n    mapCacheDelete = require('./_mapCacheDelete'),\n    mapCacheGet = require('./_mapCacheGet'),\n    mapCacheHas = require('./_mapCacheHas'),\n    mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n  var index = -1,\n      length = entries == null ? 0 : entries.length;\n\n  this.clear();\n  while (++index < length) {\n    var entry = entries[index];\n    this.set(entry[0], entry[1]);\n  }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n  if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n    throw new TypeError(FUNC_ERROR_TEXT);\n  }\n  var memoized = function() {\n    var args = arguments,\n        key = resolver ? resolver.apply(this, args) : args[0],\n        cache = memoized.cache;\n\n    if (cache.has(key)) {\n      return cache.get(key);\n    }\n    var result = func.apply(this, args);\n    memoized.cache = cache.set(key, result) || cache;\n    return result;\n  };\n  memoized.cache = new (memoize.Cache || MapCache);\n  return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n  var result = memoize(func, function(key) {\n    if (cache.size === MAX_MEMOIZE_SIZE) {\n      cache.clear();\n    }\n    return key;\n  });\n\n  var cache = result.cache;\n  return result;\n}\n\nmodule.exports = memoizeCapped;\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n  var result = [];\n  if (string.charCodeAt(0) === 46 /* . */) {\n    result.push('');\n  }\n  string.replace(rePropName, function(match, number, quote, subString) {\n    result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n  });\n  return result;\n});\n\nmodule.exports = stringToPath;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n  var index = -1,\n      length = array == null ? 0 : array.length,\n      result = Array(length);\n\n  while (++index < length) {\n    result[index] = iteratee(array[index], index, array);\n  }\n  return result;\n}\n\nmodule.exports = arrayMap;\n","var Symbol = require('./_Symbol'),\n    arrayMap = require('./_arrayMap'),\n    isArray = require('./isArray'),\n    isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n    symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n  // Exit early for strings to avoid a performance hit in some environments.\n  if (typeof value == 'string') {\n    return value;\n  }\n  if (isArray(value)) {\n    // Recursively convert values (susceptible to call stack limits).\n    return arrayMap(value, baseToString) + '';\n  }\n  if (isSymbol(value)) {\n    return symbolToString ? symbolToString.call(value) : '';\n  }\n  var result = (value + '');\n  return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n  return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","var isArray = require('./isArray'),\n    isKey = require('./_isKey'),\n    stringToPath = require('./_stringToPath'),\n    toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n  if (isArray(value)) {\n    return value;\n  }\n  return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n  if (typeof value == 'string' || isSymbol(value)) {\n    return value;\n  }\n  var result = (value + '');\n  return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","var castPath = require('./_castPath'),\n    toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n  path = castPath(path, object);\n\n  var index = 0,\n      length = path.length;\n\n  while (object != null && index < length) {\n    object = object[toKey(path[index++])];\n  }\n  return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n  var result = object == null ? undefined : baseGet(object, path);\n  return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.has` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHas(object, key) {\n  return object != null && hasOwnProperty.call(object, key);\n}\n\nmodule.exports = baseHas;\n","var baseGetTag = require('./_baseGetTag'),\n    isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n  return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var baseIsArguments = require('./_baseIsArguments'),\n    isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n *  else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n  return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n    !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n  var type = typeof value;\n  length = length == null ? MAX_SAFE_INTEGER : length;\n\n  return !!length &&\n    (type == 'number' ||\n      (type != 'symbol' && reIsUint.test(value))) &&\n        (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n  return typeof value == 'number' &&\n    value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","var castPath = require('./_castPath'),\n    isArguments = require('./isArguments'),\n    isArray = require('./isArray'),\n    isIndex = require('./_isIndex'),\n    isLength = require('./isLength'),\n    toKey = require('./_toKey');\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n  path = castPath(path, object);\n\n  var index = -1,\n      length = path.length,\n      result = false;\n\n  while (++index < length) {\n    var key = toKey(path[index]);\n    if (!(result = object != null && hasFunc(object, key))) {\n      break;\n    }\n    object = object[key];\n  }\n  if (result || ++index != length) {\n    return result;\n  }\n  length = object == null ? 0 : object.length;\n  return !!length && isLength(length) && isIndex(key, length) &&\n    (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n","var baseHas = require('./_baseHas'),\n    hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct property of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = { 'a': { 'b': 2 } };\n * var other = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.has(object, 'a');\n * // => true\n *\n * _.has(object, 'a.b');\n * // => true\n *\n * _.has(object, ['a', 'b']);\n * // => true\n *\n * _.has(other, 'a');\n * // => false\n */\nfunction has(object, path) {\n  return object != null && hasPath(object, path, baseHas);\n}\n\nmodule.exports = has;\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n  this.__data__ = new ListCache;\n  this.size = 0;\n}\n\nmodule.exports = stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n  var data = this.__data__,\n      result = data['delete'](key);\n\n  this.size = data.size;\n  return result;\n}\n\nmodule.exports = stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n  return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n  return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","var ListCache = require('./_ListCache'),\n    Map = require('./_Map'),\n    MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n  var data = this.__data__;\n  if (data instanceof ListCache) {\n    var pairs = data.__data__;\n    if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n      pairs.push([key, value]);\n      this.size = ++data.size;\n      return this;\n    }\n    data = this.__data__ = new MapCache(pairs);\n  }\n  data.set(key, value);\n  this.size = data.size;\n  return this;\n}\n\nmodule.exports = stackSet;\n","var ListCache = require('./_ListCache'),\n    stackClear = require('./_stackClear'),\n    stackDelete = require('./_stackDelete'),\n    stackGet = require('./_stackGet'),\n    stackHas = require('./_stackHas'),\n    stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n  var data = this.__data__ = new ListCache(entries);\n  this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n  try {\n    var func = getNative(Object, 'defineProperty');\n    func({}, '', {});\n    return func;\n  } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n  if (key == '__proto__' && defineProperty) {\n    defineProperty(object, key, {\n      'configurable': true,\n      'enumerable': true,\n      'value': value,\n      'writable': true\n    });\n  } else {\n    object[key] = value;\n  }\n}\n\nmodule.exports = baseAssignValue;\n","var baseAssignValue = require('./_baseAssignValue'),\n    eq = require('./eq');\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n  if ((value !== undefined && !eq(object[key], value)) ||\n      (value === undefined && !(key in object))) {\n    baseAssignValue(object, key, value);\n  }\n}\n\nmodule.exports = assignMergeValue;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n  return function(object, iteratee, keysFunc) {\n    var index = -1,\n        iterable = Object(object),\n        props = keysFunc(object),\n        length = props.length;\n\n    while (length--) {\n      var key = props[fromRight ? length : ++index];\n      if (iteratee(iterable[key], key, iterable) === false) {\n        break;\n      }\n    }\n    return object;\n  };\n}\n\nmodule.exports = createBaseFor;\n","var createBaseFor = require('./_createBaseFor');\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","var root = require('./_root');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n    allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of  `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n  if (isDeep) {\n    return buffer.slice();\n  }\n  var length = buffer.length,\n      result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n  buffer.copy(result);\n  return result;\n}\n\nmodule.exports = cloneBuffer;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","var Uint8Array = require('./_Uint8Array');\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n  var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n  new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n  return result;\n}\n\nmodule.exports = cloneArrayBuffer;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n  var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n  return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nmodule.exports = cloneTypedArray;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n  var index = -1,\n      length = source.length;\n\n  array || (array = Array(length));\n  while (++index < length) {\n    array[index] = source[index];\n  }\n  return array;\n}\n\nmodule.exports = copyArray;\n","var isObject = require('./isObject');\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n  function object() {}\n  return function(proto) {\n    if (!isObject(proto)) {\n      return {};\n    }\n    if (objectCreate) {\n      return objectCreate(proto);\n    }\n    object.prototype = proto;\n    var result = new object;\n    object.prototype = undefined;\n    return result;\n  };\n}());\n\nmodule.exports = baseCreate;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n  return function(arg) {\n    return func(transform(arg));\n  };\n}\n\nmodule.exports = overArg;\n","var overArg = require('./_overArg');\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n  var Ctor = value && value.constructor,\n      proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n  return value === proto;\n}\n\nmodule.exports = isPrototype;\n","var baseCreate = require('./_baseCreate'),\n    getPrototype = require('./_getPrototype'),\n    isPrototype = require('./_isPrototype');\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n  return (typeof object.constructor == 'function' && !isPrototype(object))\n    ? baseCreate(getPrototype(object))\n    : {};\n}\n\nmodule.exports = initCloneObject;\n","var isFunction = require('./isFunction'),\n    isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n  return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var isArrayLike = require('./isArrayLike'),\n    isObjectLike = require('./isObjectLike');\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n *  else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n  return isObjectLike(value) && isArrayLike(value);\n}\n\nmodule.exports = isArrayLikeObject;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n  return false;\n}\n\nmodule.exports = stubFalse;\n","var root = require('./_root'),\n    stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var baseGetTag = require('./_baseGetTag'),\n    getPrototype = require('./_getPrototype'),\n    isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n    objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n *   this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n  if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n    return false;\n  }\n  var proto = getPrototype(value);\n  if (proto === null) {\n    return true;\n  }\n  var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n  return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n    funcToString.call(Ctor) == objectCtorString;\n}\n\nmodule.exports = isPlainObject;\n","var baseGetTag = require('./_baseGetTag'),\n    isLength = require('./isLength'),\n    isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n    arrayTag = '[object Array]',\n    boolTag = '[object Boolean]',\n    dateTag = '[object Date]',\n    errorTag = '[object Error]',\n    funcTag = '[object Function]',\n    mapTag = '[object Map]',\n    numberTag = '[object Number]',\n    objectTag = '[object Object]',\n    regexpTag = '[object RegExp]',\n    setTag = '[object Set]',\n    stringTag = '[object String]',\n    weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n    dataViewTag = '[object DataView]',\n    float32Tag = '[object Float32Array]',\n    float64Tag = '[object Float64Array]',\n    int8Tag = '[object Int8Array]',\n    int16Tag = '[object Int16Array]',\n    int32Tag = '[object Int32Array]',\n    uint8Tag = '[object Uint8Array]',\n    uint8ClampedTag = '[object Uint8ClampedArray]',\n    uint16Tag = '[object Uint16Array]',\n    uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n  return isObjectLike(value) &&\n    isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n  return function(value) {\n    return func(value);\n  };\n}\n\nmodule.exports = baseUnary;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n  try {\n    // Use `util.types` for Node.js 10+.\n    var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n    if (types) {\n      return types;\n    }\n\n    // Legacy `process.binding('util')` for Node.js < 10.\n    return freeProcess && freeProcess.binding && freeProcess.binding('util');\n  } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n    baseUnary = require('./_baseUnary'),\n    nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n  if (key === 'constructor' && typeof object[key] === 'function') {\n    return;\n  }\n\n  if (key == '__proto__') {\n    return;\n  }\n\n  return object[key];\n}\n\nmodule.exports = safeGet;\n","var baseAssignValue = require('./_baseAssignValue'),\n    eq = require('./eq');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n  var objValue = object[key];\n  if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n      (value === undefined && !(key in object))) {\n    baseAssignValue(object, key, value);\n  }\n}\n\nmodule.exports = assignValue;\n","var assignValue = require('./_assignValue'),\n    baseAssignValue = require('./_baseAssignValue');\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n  var isNew = !object;\n  object || (object = {});\n\n  var index = -1,\n      length = props.length;\n\n  while (++index < length) {\n    var key = props[index];\n\n    var newValue = customizer\n      ? customizer(object[key], source[key], key, object, source)\n      : undefined;\n\n    if (newValue === undefined) {\n      newValue = source[key];\n    }\n    if (isNew) {\n      baseAssignValue(object, key, newValue);\n    } else {\n      assignValue(object, key, newValue);\n    }\n  }\n  return object;\n}\n\nmodule.exports = copyObject;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n  var index = -1,\n      result = Array(n);\n\n  while (++index < n) {\n    result[index] = iteratee(index);\n  }\n  return result;\n}\n\nmodule.exports = baseTimes;\n","var baseTimes = require('./_baseTimes'),\n    isArguments = require('./isArguments'),\n    isArray = require('./isArray'),\n    isBuffer = require('./isBuffer'),\n    isIndex = require('./_isIndex'),\n    isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n  var isArr = isArray(value),\n      isArg = !isArr && isArguments(value),\n      isBuff = !isArr && !isArg && isBuffer(value),\n      isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n      skipIndexes = isArr || isArg || isBuff || isType,\n      result = skipIndexes ? baseTimes(value.length, String) : [],\n      length = result.length;\n\n  for (var key in value) {\n    if ((inherited || hasOwnProperty.call(value, key)) &&\n        !(skipIndexes && (\n           // Safari 9 has enumerable `arguments.length` in strict mode.\n           key == 'length' ||\n           // Node.js 0.10 has enumerable non-index properties on buffers.\n           (isBuff && (key == 'offset' || key == 'parent')) ||\n           // PhantomJS 2 has enumerable non-index properties on typed arrays.\n           (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n           // Skip index properties.\n           isIndex(key, length)\n        ))) {\n      result.push(key);\n    }\n  }\n  return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n  var result = [];\n  if (object != null) {\n    for (var key in Object(object)) {\n      result.push(key);\n    }\n  }\n  return result;\n}\n\nmodule.exports = nativeKeysIn;\n","var isObject = require('./isObject'),\n    isPrototype = require('./_isPrototype'),\n    nativeKeysIn = require('./_nativeKeysIn');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n  if (!isObject(object)) {\n    return nativeKeysIn(object);\n  }\n  var isProto = isPrototype(object),\n      result = [];\n\n  for (var key in object) {\n    if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n      result.push(key);\n    }\n  }\n  return result;\n}\n\nmodule.exports = baseKeysIn;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n    baseKeysIn = require('./_baseKeysIn'),\n    isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n *   this.a = 1;\n *   this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n  return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nmodule.exports = keysIn;\n","var copyObject = require('./_copyObject'),\n    keysIn = require('./keysIn');\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n *   this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n  return copyObject(value, keysIn(value));\n}\n\nmodule.exports = toPlainObject;\n","var assignMergeValue = require('./_assignMergeValue'),\n    cloneBuffer = require('./_cloneBuffer'),\n    cloneTypedArray = require('./_cloneTypedArray'),\n    copyArray = require('./_copyArray'),\n    initCloneObject = require('./_initCloneObject'),\n    isArguments = require('./isArguments'),\n    isArray = require('./isArray'),\n    isArrayLikeObject = require('./isArrayLikeObject'),\n    isBuffer = require('./isBuffer'),\n    isFunction = require('./isFunction'),\n    isObject = require('./isObject'),\n    isPlainObject = require('./isPlainObject'),\n    isTypedArray = require('./isTypedArray'),\n    safeGet = require('./_safeGet'),\n    toPlainObject = require('./toPlainObject');\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n *  counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n  var objValue = safeGet(object, key),\n      srcValue = safeGet(source, key),\n      stacked = stack.get(srcValue);\n\n  if (stacked) {\n    assignMergeValue(object, key, stacked);\n    return;\n  }\n  var newValue = customizer\n    ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n    : undefined;\n\n  var isCommon = newValue === undefined;\n\n  if (isCommon) {\n    var isArr = isArray(srcValue),\n        isBuff = !isArr && isBuffer(srcValue),\n        isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n    newValue = srcValue;\n    if (isArr || isBuff || isTyped) {\n      if (isArray(objValue)) {\n        newValue = objValue;\n      }\n      else if (isArrayLikeObject(objValue)) {\n        newValue = copyArray(objValue);\n      }\n      else if (isBuff) {\n        isCommon = false;\n        newValue = cloneBuffer(srcValue, true);\n      }\n      else if (isTyped) {\n        isCommon = false;\n        newValue = cloneTypedArray(srcValue, true);\n      }\n      else {\n        newValue = [];\n      }\n    }\n    else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n      newValue = objValue;\n      if (isArguments(objValue)) {\n        newValue = toPlainObject(objValue);\n      }\n      else if (!isObject(objValue) || isFunction(objValue)) {\n        newValue = initCloneObject(srcValue);\n      }\n    }\n    else {\n      isCommon = false;\n    }\n  }\n  if (isCommon) {\n    // Recursively merge objects and arrays (susceptible to call stack limits).\n    stack.set(srcValue, newValue);\n    mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n    stack['delete'](srcValue);\n  }\n  assignMergeValue(object, key, newValue);\n}\n\nmodule.exports = baseMergeDeep;\n","var Stack = require('./_Stack'),\n    assignMergeValue = require('./_assignMergeValue'),\n    baseFor = require('./_baseFor'),\n    baseMergeDeep = require('./_baseMergeDeep'),\n    isObject = require('./isObject'),\n    keysIn = require('./keysIn'),\n    safeGet = require('./_safeGet');\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n *  counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n  if (object === source) {\n    return;\n  }\n  baseFor(source, function(srcValue, key) {\n    stack || (stack = new Stack);\n    if (isObject(srcValue)) {\n      baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n    }\n    else {\n      var newValue = customizer\n        ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n        : undefined;\n\n      if (newValue === undefined) {\n        newValue = srcValue;\n      }\n      assignMergeValue(object, key, newValue);\n    }\n  }, keysIn);\n}\n\nmodule.exports = baseMerge;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n  return value;\n}\n\nmodule.exports = identity;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n  switch (args.length) {\n    case 0: return func.call(thisArg);\n    case 1: return func.call(thisArg, args[0]);\n    case 2: return func.call(thisArg, args[0], args[1]);\n    case 3: return func.call(thisArg, args[0], args[1], args[2]);\n  }\n  return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n  start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n  return function() {\n    var args = arguments,\n        index = -1,\n        length = nativeMax(args.length - start, 0),\n        array = Array(length);\n\n    while (++index < length) {\n      array[index] = args[start + index];\n    }\n    index = -1;\n    var otherArgs = Array(start + 1);\n    while (++index < start) {\n      otherArgs[index] = args[index];\n    }\n    otherArgs[start] = transform(array);\n    return apply(func, this, otherArgs);\n  };\n}\n\nmodule.exports = overRest;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n  return function() {\n    return value;\n  };\n}\n\nmodule.exports = constant;\n","var constant = require('./constant'),\n    defineProperty = require('./_defineProperty'),\n    identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n  return defineProperty(func, 'toString', {\n    'configurable': true,\n    'enumerable': false,\n    'value': constant(string),\n    'writable': true\n  });\n};\n\nmodule.exports = baseSetToString;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n    HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n  var count = 0,\n      lastCalled = 0;\n\n  return function() {\n    var stamp = nativeNow(),\n        remaining = HOT_SPAN - (stamp - lastCalled);\n\n    lastCalled = stamp;\n    if (remaining > 0) {\n      if (++count >= HOT_COUNT) {\n        return arguments[0];\n      }\n    } else {\n      count = 0;\n    }\n    return func.apply(undefined, arguments);\n  };\n}\n\nmodule.exports = shortOut;\n","var baseSetToString = require('./_baseSetToString'),\n    shortOut = require('./_shortOut');\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n","var identity = require('./identity'),\n    overRest = require('./_overRest'),\n    setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n  return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","var eq = require('./eq'),\n    isArrayLike = require('./isArrayLike'),\n    isIndex = require('./_isIndex'),\n    isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n *  else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n  if (!isObject(object)) {\n    return false;\n  }\n  var type = typeof index;\n  if (type == 'number'\n        ? (isArrayLike(object) && isIndex(index, object.length))\n        : (type == 'string' && index in object)\n      ) {\n    return eq(object[index], value);\n  }\n  return false;\n}\n\nmodule.exports = isIterateeCall;\n","var baseRest = require('./_baseRest'),\n    isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n  return baseRest(function(object, sources) {\n    var index = -1,\n        length = sources.length,\n        customizer = length > 1 ? sources[length - 1] : undefined,\n        guard = length > 2 ? sources[2] : undefined;\n\n    customizer = (assigner.length > 3 && typeof customizer == 'function')\n      ? (length--, customizer)\n      : undefined;\n\n    if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n      customizer = length < 3 ? undefined : customizer;\n      length = 1;\n    }\n    object = Object(object);\n    while (++index < length) {\n      var source = sources[index];\n      if (source) {\n        assigner(object, source, index, customizer);\n      }\n    }\n    return object;\n  });\n}\n\nmodule.exports = createAssigner;\n","var baseMerge = require('./_baseMerge'),\n    createAssigner = require('./_createAssigner');\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n *   'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n *   'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n  baseMerge(object, source, srcIndex);\n});\n\nmodule.exports = merge;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n  this.__data__.set(value, HASH_UNDEFINED);\n  return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n  return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","var MapCache = require('./_MapCache'),\n    setCacheAdd = require('./_setCacheAdd'),\n    setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n  var index = -1,\n      length = values == null ? 0 : values.length;\n\n  this.__data__ = new MapCache;\n  while (++index < length) {\n    this.add(values[index]);\n  }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n  var length = array.length,\n      index = fromIndex + (fromRight ? 1 : -1);\n\n  while ((fromRight ? index-- : ++index < length)) {\n    if (predicate(array[index], index, array)) {\n      return index;\n    }\n  }\n  return -1;\n}\n\nmodule.exports = baseFindIndex;\n","/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n  return value !== value;\n}\n\nmodule.exports = baseIsNaN;\n","/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n  var index = fromIndex - 1,\n      length = array.length;\n\n  while (++index < length) {\n    if (array[index] === value) {\n      return index;\n    }\n  }\n  return -1;\n}\n\nmodule.exports = strictIndexOf;\n","var baseFindIndex = require('./_baseFindIndex'),\n    baseIsNaN = require('./_baseIsNaN'),\n    strictIndexOf = require('./_strictIndexOf');\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n  return value === value\n    ? strictIndexOf(array, value, fromIndex)\n    : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nmodule.exports = baseIndexOf;\n","var baseIndexOf = require('./_baseIndexOf');\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n  var length = array == null ? 0 : array.length;\n  return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nmodule.exports = arrayIncludes;\n","/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n  var index = -1,\n      length = array == null ? 0 : array.length;\n\n  while (++index < length) {\n    if (comparator(value, array[index])) {\n      return true;\n    }\n  }\n  return false;\n}\n\nmodule.exports = arrayIncludesWith;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n  return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var getNative = require('./_getNative'),\n    root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {\n  // No operation performed.\n}\n\nmodule.exports = noop;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n  var index = -1,\n      result = Array(set.size);\n\n  set.forEach(function(value) {\n    result[++index] = value;\n  });\n  return result;\n}\n\nmodule.exports = setToArray;\n","var Set = require('./_Set'),\n    noop = require('./noop'),\n    setToArray = require('./_setToArray');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\nvar createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n  return new Set(values);\n};\n\nmodule.exports = createSet;\n","var SetCache = require('./_SetCache'),\n    arrayIncludes = require('./_arrayIncludes'),\n    arrayIncludesWith = require('./_arrayIncludesWith'),\n    cacheHas = require('./_cacheHas'),\n    createSet = require('./_createSet'),\n    setToArray = require('./_setToArray');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\nfunction baseUniq(array, iteratee, comparator) {\n  var index = -1,\n      includes = arrayIncludes,\n      length = array.length,\n      isCommon = true,\n      result = [],\n      seen = result;\n\n  if (comparator) {\n    isCommon = false;\n    includes = arrayIncludesWith;\n  }\n  else if (length >= LARGE_ARRAY_SIZE) {\n    var set = iteratee ? null : createSet(array);\n    if (set) {\n      return setToArray(set);\n    }\n    isCommon = false;\n    includes = cacheHas;\n    seen = new SetCache;\n  }\n  else {\n    seen = iteratee ? [] : result;\n  }\n  outer:\n  while (++index < length) {\n    var value = array[index],\n        computed = iteratee ? iteratee(value) : value;\n\n    value = (comparator || value !== 0) ? value : 0;\n    if (isCommon && computed === computed) {\n      var seenIndex = seen.length;\n      while (seenIndex--) {\n        if (seen[seenIndex] === computed) {\n          continue outer;\n        }\n      }\n      if (iteratee) {\n        seen.push(computed);\n      }\n      result.push(value);\n    }\n    else if (!includes(seen, computed, comparator)) {\n      if (seen !== result) {\n        seen.push(computed);\n      }\n      result.push(value);\n    }\n  }\n  return result;\n}\n\nmodule.exports = baseUniq;\n","var baseUniq = require('./_baseUniq');\n\n/**\n * Creates a duplicate-free version of an array, using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons, in which only the first occurrence of each element\n * is kept. The order of result values is determined by the order they occur\n * in the array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniq([2, 1, 2]);\n * // => [2, 1]\n */\nfunction uniq(array) {\n  return (array && array.length) ? baseUniq(array) : [];\n}\n\nmodule.exports = uniq;\n","import uniq from \"lodash/uniq\";\nexport const defaultLocaleResolver = (i18n, locale) => {\n    const locales = [];\n    const list = [];\n    locales.push(locale);\n    if (!locale) {\n        locales.push(i18n.locale);\n    }\n    if (i18n.enableFallback) {\n        locales.push(i18n.defaultLocale);\n    }\n    locales\n        .filter(Boolean)\n        .map((entry) => entry.toString())\n        .forEach(function (currentLocale) {\n        if (!list.includes(currentLocale)) {\n            list.push(currentLocale);\n        }\n        if (!i18n.enableFallback) {\n            return;\n        }\n        const codes = currentLocale.split(\"-\");\n        if (codes.length === 3) {\n            list.push(`${codes[0]}-${codes[1]}`);\n        }\n        list.push(codes[0]);\n    });\n    return uniq(list);\n};\nexport class Locales {\n    constructor(i18n) {\n        this.i18n = i18n;\n        this.registry = {};\n        this.register(\"default\", defaultLocaleResolver);\n    }\n    register(locale, localeResolver) {\n        if (typeof localeResolver !== \"function\") {\n            const result = localeResolver;\n            localeResolver = (() => result);\n        }\n        this.registry[locale] = localeResolver;\n    }\n    get(locale) {\n        let locales = this.registry[locale] ||\n            this.registry[this.i18n.locale] ||\n            this.registry.default;\n        if (typeof locales === \"function\") {\n            locales = locales(this.i18n, locale);\n        }\n        if (!(locales instanceof Array)) {\n            locales = [locales];\n        }\n        return locales;\n    }\n}\n//# sourceMappingURL=Locales.js.map","const a = (n, ord) => {\n  if (ord) return 'other';\n  return n == 1 ? 'one' : 'other';\n};\nconst b = (n, ord) => {\n  if (ord) return 'other';\n  return (n == 0 || n == 1) ? 'one' : 'other';\n};\nconst c = (n, ord) => {\n  if (ord) return 'other';\n  return n >= 0 && n <= 1 ? 'one' : 'other';\n};\nconst d = (n, ord) => {\n  const s = String(n).split('.'), v0 = !s[1];\n  if (ord) return 'other';\n  return n == 1 && v0 ? 'one' : 'other';\n};\nconst e = (n, ord) => 'other';\nconst f = (n, ord) => {\n  if (ord) return 'other';\n  return n == 1 ? 'one'\n    : n == 2 ? 'two'\n    : 'other';\n};\n\nexport const af = a;\nexport const ak = b;\nexport const am = c;\nexport const an = a;\nexport const ar = (n, ord) => {\n  const s = String(n).split('.'), t0 = Number(s[0]) == n, n100 = t0 && s[0].slice(-2);\n  if (ord) return 'other';\n  return n == 0 ? 'zero'\n    : n == 1 ? 'one'\n    : n == 2 ? 'two'\n    : (n100 >= 3 && n100 <= 10) ? 'few'\n    : (n100 >= 11 && n100 <= 99) ? 'many'\n    : 'other';\n};\nexport const ars = (n, ord) => {\n  const s = String(n).split('.'), t0 = Number(s[0]) == n, n100 = t0 && s[0].slice(-2);\n  if (ord) return 'other';\n  return n == 0 ? 'zero'\n    : n == 1 ? 'one'\n    : n == 2 ? 'two'\n    : (n100 >= 3 && n100 <= 10) ? 'few'\n    : (n100 >= 11 && n100 <= 99) ? 'many'\n    : 'other';\n};\nexport const as = (n, ord) => {\n  if (ord) return (n == 1 || n == 5 || n == 7 || n == 8 || n == 9 || n == 10) ? 'one'\n    : (n == 2 || n == 3) ? 'two'\n    : n == 4 ? 'few'\n    : n == 6 ? 'many'\n    : 'other';\n  return n >= 0 && n <= 1 ? 'one' : 'other';\n};\nexport const asa = a;\nexport const ast = d;\nexport const az = (n, ord) => {\n  const s = String(n).split('.'), i = s[0], i10 = i.slice(-1), i100 = i.slice(-2), i1000 = i.slice(-3);\n  if (ord) return (i10 == 1 || i10 == 2 || i10 == 5 || i10 == 7 || i10 == 8) || (i100 == 20 || i100 == 50 || i100 == 70 || i100 == 80) ? 'one'\n    : (i10 == 3 || i10 == 4) || (i1000 == 100 || i1000 == 200 || i1000 == 300 || i1000 == 400 || i1000 == 500 || i1000 == 600 || i1000 == 700 || i1000 == 800 || i1000 == 900) ? 'few'\n    : i == 0 || i10 == 6 || (i100 == 40 || i100 == 60 || i100 == 90) ? 'many'\n    : 'other';\n  return n == 1 ? 'one' : 'other';\n};\nexport const bal = (n, ord) => n == 1 ? 'one' : 'other';\nexport const be = (n, ord) => {\n  const s = String(n).split('.'), t0 = Number(s[0]) == n, n10 = t0 && s[0].slice(-1), n100 = t0 && s[0].slice(-2);\n  if (ord) return (n10 == 2 || n10 == 3) && n100 != 12 && n100 != 13 ? 'few' : 'other';\n  return n10 == 1 && n100 != 11 ? 'one'\n    : (n10 >= 2 && n10 <= 4) && (n100 < 12 || n100 > 14) ? 'few'\n    : t0 && n10 == 0 || (n10 >= 5 && n10 <= 9) || (n100 >= 11 && n100 <= 14) ? 'many'\n    : 'other';\n};\nexport const bem = a;\nexport const bez = a;\nexport const bg = a;\nexport const bho = b;\nexport const blo = (n, ord) => {\n  const s = String(n).split('.'), i = s[0];\n  if (ord) return i == 0 ? 'zero'\n    : i == 1 ? 'one'\n    : (i == 2 || i == 3 || i == 4 || i == 5 || i == 6) ? 'few'\n    : 'other';\n  return n == 0 ? 'zero'\n    : n == 1 ? 'one'\n    : 'other';\n};\nexport const bm = e;\nexport const bn = (n, ord) => {\n  if (ord) return (n == 1 || n == 5 || n == 7 || n == 8 || n == 9 || n == 10) ? 'one'\n    : (n == 2 || n == 3) ? 'two'\n    : n == 4 ? 'few'\n    : n == 6 ? 'many'\n    : 'other';\n  return n >= 0 && n <= 1 ? 'one' : 'other';\n};\nexport const bo = e;\nexport const br = (n, ord) => {\n  const s = String(n).split('.'), t0 = Number(s[0]) == n, n10 = t0 && s[0].slice(-1), n100 = t0 && s[0].slice(-2), n1000000 = t0 && s[0].slice(-6);\n  if (ord) return 'other';\n  return n10 == 1 && n100 != 11 && n100 != 71 && n100 != 91 ? 'one'\n    : n10 == 2 && n100 != 12 && n100 != 72 && n100 != 92 ? 'two'\n    : ((n10 == 3 || n10 == 4) || n10 == 9) && (n100 < 10 || n100 > 19) && (n100 < 70 || n100 > 79) && (n100 < 90 || n100 > 99) ? 'few'\n    : n != 0 && t0 && n1000000 == 0 ? 'many'\n    : 'other';\n};\nexport const brx = a;\nexport const bs = (n, ord) => {\n  const s = String(n).split('.'), i = s[0], f = s[1] || '', v0 = !s[1], i10 = i.slice(-1), i100 = i.slice(-2), f10 = f.slice(-1), f100 = f.slice(-2);\n  if (ord) return 'other';\n  return v0 && i10 == 1 && i100 != 11 || f10 == 1 && f100 != 11 ? 'one'\n    : v0 && (i10 >= 2 && i10 <= 4) && (i100 < 12 || i100 > 14) || (f10 >= 2 && f10 <= 4) && (f100 < 12 || f100 > 14) ? 'few'\n    : 'other';\n};\nexport const ca = (n, ord) => {\n  const s = String(n).split('.'), i = s[0], v0 = !s[1], i1000000 = i.slice(-6);\n  if (ord) return (n == 1 || n == 3) ? 'one'\n    : n == 2 ? 'two'\n    : n == 4 ? 'few'\n    : 'other';\n  return n == 1 && v0 ? 'one'\n    : i != 0 && i1000000 == 0 && v0 ? 'many'\n    : 'other';\n};\nexport const ce = a;\nexport const ceb = (n, ord) => {\n  const s = String(n).split('.'), i = s[0], f = s[1] || '', v0 = !s[1], i10 = i.slice(-1), f10 = f.slice(-1);\n  if (ord) return 'other';\n  return v0 && (i == 1 || i == 2 || i == 3) || v0 && i10 != 4 && i10 != 6 && i10 != 9 || !v0 && f10 != 4 && f10 != 6 && f10 != 9 ? 'one' : 'other';\n};\nexport const cgg = a;\nexport const chr = a;\nexport const ckb = a;\nexport const cs = (n, ord) => {\n  const s = String(n).split('.'), i = s[0], v0 = !s[1];\n  if (ord) return 'other';\n  return n == 1 && v0 ? 'one'\n    : (i >= 2 && i <= 4) && v0 ? 'few'\n    : !v0 ? 'many'\n    : 'other';\n};\nexport const cy = (n, ord) => {\n  if (ord) return (n == 0 || n == 7 || n == 8 || n == 9) ? 'zero'\n    : n == 1 ? 'one'\n    : n == 2 ? 'two'\n    : (n == 3 || n == 4) ? 'few'\n    : (n == 5 || n == 6) ? 'many'\n    : 'other';\n  return n == 0 ? 'zero'\n    : n == 1 ? 'one'\n    : n == 2 ? 'two'\n    : n == 3 ? 'few'\n    : n == 6 ? 'many'\n    : 'other';\n};\nexport const da = (n, ord) => {\n  const s = String(n).split('.'), i = s[0], t0 = Number(s[0]) == n;\n  if (ord) return 'other';\n  return n == 1 || !t0 && (i == 0 || i == 1) ? 'one' : 'other';\n};\nexport const de = d;\nexport const doi = c;\nexport const dsb = (n, ord) => {\n  const s = String(n).split('.'), i = s[0], f = s[1] || '', v0 = !s[1], i100 = i.slice(-2), f100 = f.slice(-2);\n  if (ord) return 'other';\n  return v0 && i100 == 1 || f100 == 1 ? 'one'\n    : v0 && i100 == 2 || f100 == 2 ? 'two'\n    : v0 && (i100 == 3 || i100 == 4) || (f100 == 3 || f100 == 4) ? 'few'\n    : 'other';\n};\nexport const dv = a;\nexport const dz = e;\nexport const ee = a;\nexport const el = a;\nexport const en = (n, ord) => {\n  const s = String(n).split('.'), v0 = !s[1], t0 = Number(s[0]) == n, n10 = t0 && s[0].slice(-1), n100 = t0 && s[0].slice(-2);\n  if (ord) return n10 == 1 && n100 != 11 ? 'one'\n    : n10 == 2 && n100 != 12 ? 'two'\n    : n10 == 3 && n100 != 13 ? 'few'\n    : 'other';\n  return n == 1 && v0 ? 'one' : 'other';\n};\nexport const eo = a;\nexport const es = (n, ord) => {\n  const s = String(n).split('.'), i = s[0], v0 = !s[1], i1000000 = i.slice(-6);\n  if (ord) return 'other';\n  return n == 1 ? 'one'\n    : i != 0 && i1000000 == 0 && v0 ? 'many'\n    : 'other';\n};\nexport const et = d;\nexport const eu = a;\nexport const fa = c;\nexport const ff = (n, ord) => {\n  if (ord) return 'other';\n  return n >= 0 && n < 2 ? 'one' : 'other';\n};\nexport const fi = d;\nexport const fil = (n, ord) => {\n  const s = String(n).split('.'), i = s[0], f = s[1] || '', v0 = !s[1], i10 = i.slice(-1), f10 = f.slice(-1);\n  if (ord) return n == 1 ? 'one' : 'other';\n  return v0 && (i == 1 || i == 2 || i == 3) || v0 && i10 != 4 && i10 != 6 && i10 != 9 || !v0 && f10 != 4 && f10 != 6 && f10 != 9 ? 'one' : 'other';\n};\nexport const fo = a;\nexport const fr = (n, ord) => {\n  const s = String(n).split('.'), i = s[0], v0 = !s[1], i1000000 = i.slice(-6);\n  if (ord) return n == 1 ? 'one' : 'other';\n  return n >= 0 && n < 2 ? 'one'\n    : i != 0 && i1000000 == 0 && v0 ? 'many'\n    : 'other';\n};\nexport const fur = a;\nexport const fy = d;\nexport const ga = (n, ord) => {\n  const s = String(n).split('.'), t0 = Number(s[0]) == n;\n  if (ord) return n == 1 ? 'one' : 'other';\n  return n == 1 ? 'one'\n    : n == 2 ? 'two'\n    : (t0 && n >= 3 && n <= 6) ? 'few'\n    : (t0 && n >= 7 && n <= 10) ? 'many'\n    : 'other';\n};\nexport const gd = (n, ord) => {\n  const s = String(n).split('.'), t0 = Number(s[0]) == n;\n  if (ord) return (n == 1 || n == 11) ? 'one'\n    : (n == 2 || n == 12) ? 'two'\n    : (n == 3 || n == 13) ? 'few'\n    : 'other';\n  return (n == 1 || n == 11) ? 'one'\n    : (n == 2 || n == 12) ? 'two'\n    : ((t0 && n >= 3 && n <= 10) || (t0 && n >= 13 && n <= 19)) ? 'few'\n    : 'other';\n};\nexport const gl = d;\nexport const gsw = a;\nexport const gu = (n, ord) => {\n  if (ord) return n == 1 ? 'one'\n    : (n == 2 || n == 3) ? 'two'\n    : n == 4 ? 'few'\n    : n == 6 ? 'many'\n    : 'other';\n  return n >= 0 && n <= 1 ? 'one' : 'other';\n};\nexport const guw = b;\nexport const gv = (n, ord) => {\n  const s = String(n).split('.'), i = s[0], v0 = !s[1], i10 = i.slice(-1), i100 = i.slice(-2);\n  if (ord) return 'other';\n  return v0 && i10 == 1 ? 'one'\n    : v0 && i10 == 2 ? 'two'\n    : v0 && (i100 == 0 || i100 == 20 || i100 == 40 || i100 == 60 || i100 == 80) ? 'few'\n    : !v0 ? 'many'\n    : 'other';\n};\nexport const ha = a;\nexport const haw = a;\nexport const he = (n, ord) => {\n  const s = String(n).split('.'), i = s[0], v0 = !s[1];\n  if (ord) return 'other';\n  return i == 1 && v0 || i == 0 && !v0 ? 'one'\n    : i == 2 && v0 ? 'two'\n    : 'other';\n};\nexport const hi = (n, ord) => {\n  if (ord) return n == 1 ? 'one'\n    : (n == 2 || n == 3) ? 'two'\n    : n == 4 ? 'few'\n    : n == 6 ? 'many'\n    : 'other';\n  return n >= 0 && n <= 1 ? 'one' : 'other';\n};\nexport const hnj = e;\nexport const hr = (n, ord) => {\n  const s = String(n).split('.'), i = s[0], f = s[1] || '', v0 = !s[1], i10 = i.slice(-1), i100 = i.slice(-2), f10 = f.slice(-1), f100 = f.slice(-2);\n  if (ord) return 'other';\n  return v0 && i10 == 1 && i100 != 11 || f10 == 1 && f100 != 11 ? 'one'\n    : v0 && (i10 >= 2 && i10 <= 4) && (i100 < 12 || i100 > 14) || (f10 >= 2 && f10 <= 4) && (f100 < 12 || f100 > 14) ? 'few'\n    : 'other';\n};\nexport const hsb = (n, ord) => {\n  const s = String(n).split('.'), i = s[0], f = s[1] || '', v0 = !s[1], i100 = i.slice(-2), f100 = f.slice(-2);\n  if (ord) return 'other';\n  return v0 && i100 == 1 || f100 == 1 ? 'one'\n    : v0 && i100 == 2 || f100 == 2 ? 'two'\n    : v0 && (i100 == 3 || i100 == 4) || (f100 == 3 || f100 == 4) ? 'few'\n    : 'other';\n};\nexport const hu = (n, ord) => {\n  if (ord) return (n == 1 || n == 5) ? 'one' : 'other';\n  return n == 1 ? 'one' : 'other';\n};\nexport const hy = (n, ord) => {\n  if (ord) return n == 1 ? 'one' : 'other';\n  return n >= 0 && n < 2 ? 'one' : 'other';\n};\nexport const ia = d;\nexport const id = e;\nexport const ig = e;\nexport const ii = e;\nexport const io = d;\nexport const is = (n, ord) => {\n  const s = String(n).split('.'), i = s[0], t = (s[1] || '').replace(/0+$/, ''), t0 = Number(s[0]) == n, i10 = i.slice(-1), i100 = i.slice(-2);\n  if (ord) return 'other';\n  return t0 && i10 == 1 && i100 != 11 || t % 10 == 1 && t % 100 != 11 ? 'one' : 'other';\n};\nexport const it = (n, ord) => {\n  const s = String(n).split('.'), i = s[0], v0 = !s[1], i1000000 = i.slice(-6);\n  if (ord) return (n == 11 || n == 8 || n == 80 || n == 800) ? 'many' : 'other';\n  return n == 1 && v0 ? 'one'\n    : i != 0 && i1000000 == 0 && v0 ? 'many'\n    : 'other';\n};\nexport const iu = f;\nexport const ja = e;\nexport const jbo = e;\nexport const jgo = a;\nexport const jmc = a;\nexport const jv = e;\nexport const jw = e;\nexport const ka = (n, ord) => {\n  const s = String(n).split('.'), i = s[0], i100 = i.slice(-2);\n  if (ord) return i == 1 ? 'one'\n    : i == 0 || ((i100 >= 2 && i100 <= 20) || i100 == 40 || i100 == 60 || i100 == 80) ? 'many'\n    : 'other';\n  return n == 1 ? 'one' : 'other';\n};\nexport const kab = (n, ord) => {\n  if (ord) return 'other';\n  return n >= 0 && n < 2 ? 'one' : 'other';\n};\nexport const kaj = a;\nexport const kcg = a;\nexport const kde = e;\nexport const kea = e;\nexport const kk = (n, ord) => {\n  const s = String(n).split('.'), t0 = Number(s[0]) == n, n10 = t0 && s[0].slice(-1);\n  if (ord) return n10 == 6 || n10 == 9 || t0 && n10 == 0 && n != 0 ? 'many' : 'other';\n  return n == 1 ? 'one' : 'other';\n};\nexport const kkj = a;\nexport const kl = a;\nexport const km = e;\nexport const kn = c;\nexport const ko = e;\nexport const ks = a;\nexport const ksb = a;\nexport const ksh = (n, ord) => {\n  if (ord) return 'other';\n  return n == 0 ? 'zero'\n    : n == 1 ? 'one'\n    : 'other';\n};\nexport const ku = a;\nexport const kw = (n, ord) => {\n  const s = String(n).split('.'), t0 = Number(s[0]) == n, n100 = t0 && s[0].slice(-2), n1000 = t0 && s[0].slice(-3), n100000 = t0 && s[0].slice(-5), n1000000 = t0 && s[0].slice(-6);\n  if (ord) return (t0 && n >= 1 && n <= 4) || ((n100 >= 1 && n100 <= 4) || (n100 >= 21 && n100 <= 24) || (n100 >= 41 && n100 <= 44) || (n100 >= 61 && n100 <= 64) || (n100 >= 81 && n100 <= 84)) ? 'one'\n    : n == 5 || n100 == 5 ? 'many'\n    : 'other';\n  return n == 0 ? 'zero'\n    : n == 1 ? 'one'\n    : (n100 == 2 || n100 == 22 || n100 == 42 || n100 == 62 || n100 == 82) || t0 && n1000 == 0 && ((n100000 >= 1000 && n100000 <= 20000) || n100000 == 40000 || n100000 == 60000 || n100000 == 80000) || n != 0 && n1000000 == 100000 ? 'two'\n    : (n100 == 3 || n100 == 23 || n100 == 43 || n100 == 63 || n100 == 83) ? 'few'\n    : n != 1 && (n100 == 1 || n100 == 21 || n100 == 41 || n100 == 61 || n100 == 81) ? 'many'\n    : 'other';\n};\nexport const ky = a;\nexport const lag = (n, ord) => {\n  const s = String(n).split('.'), i = s[0];\n  if (ord) return 'other';\n  return n == 0 ? 'zero'\n    : (i == 0 || i == 1) && n != 0 ? 'one'\n    : 'other';\n};\nexport const lb = a;\nexport const lg = a;\nexport const lij = (n, ord) => {\n  const s = String(n).split('.'), v0 = !s[1], t0 = Number(s[0]) == n;\n  if (ord) return (n == 11 || n == 8 || (t0 && n >= 80 && n <= 89) || (t0 && n >= 800 && n <= 899)) ? 'many' : 'other';\n  return n == 1 && v0 ? 'one' : 'other';\n};\nexport const lkt = e;\nexport const ln = b;\nexport const lo = (n, ord) => {\n  if (ord) return n == 1 ? 'one' : 'other';\n  return 'other';\n};\nexport const lt = (n, ord) => {\n  const s = String(n).split('.'), f = s[1] || '', t0 = Number(s[0]) == n, n10 = t0 && s[0].slice(-1), n100 = t0 && s[0].slice(-2);\n  if (ord) return 'other';\n  return n10 == 1 && (n100 < 11 || n100 > 19) ? 'one'\n    : (n10 >= 2 && n10 <= 9) && (n100 < 11 || n100 > 19) ? 'few'\n    : f != 0 ? 'many'\n    : 'other';\n};\nexport const lv = (n, ord) => {\n  const s = String(n).split('.'), f = s[1] || '', v = f.length, t0 = Number(s[0]) == n, n10 = t0 && s[0].slice(-1), n100 = t0 && s[0].slice(-2), f100 = f.slice(-2), f10 = f.slice(-1);\n  if (ord) return 'other';\n  return t0 && n10 == 0 || (n100 >= 11 && n100 <= 19) || v == 2 && (f100 >= 11 && f100 <= 19) ? 'zero'\n    : n10 == 1 && n100 != 11 || v == 2 && f10 == 1 && f100 != 11 || v != 2 && f10 == 1 ? 'one'\n    : 'other';\n};\nexport const mas = a;\nexport const mg = b;\nexport const mgo = a;\nexport const mk = (n, ord) => {\n  const s = String(n).split('.'), i = s[0], f = s[1] || '', v0 = !s[1], i10 = i.slice(-1), i100 = i.slice(-2), f10 = f.slice(-1), f100 = f.slice(-2);\n  if (ord) return i10 == 1 && i100 != 11 ? 'one'\n    : i10 == 2 && i100 != 12 ? 'two'\n    : (i10 == 7 || i10 == 8) && i100 != 17 && i100 != 18 ? 'many'\n    : 'other';\n  return v0 && i10 == 1 && i100 != 11 || f10 == 1 && f100 != 11 ? 'one' : 'other';\n};\nexport const ml = a;\nexport const mn = a;\nexport const mo = (n, ord) => {\n  const s = String(n).split('.'), v0 = !s[1], t0 = Number(s[0]) == n, n100 = t0 && s[0].slice(-2);\n  if (ord) return n == 1 ? 'one' : 'other';\n  return n == 1 && v0 ? 'one'\n    : !v0 || n == 0 || n != 1 && (n100 >= 1 && n100 <= 19) ? 'few'\n    : 'other';\n};\nexport const mr = (n, ord) => {\n  if (ord) return n == 1 ? 'one'\n    : (n == 2 || n == 3) ? 'two'\n    : n == 4 ? 'few'\n    : 'other';\n  return n == 1 ? 'one' : 'other';\n};\nexport const ms = (n, ord) => {\n  if (ord) return n == 1 ? 'one' : 'other';\n  return 'other';\n};\nexport const mt = (n, ord) => {\n  const s = String(n).split('.'), t0 = Number(s[0]) == n, n100 = t0 && s[0].slice(-2);\n  if (ord) return 'other';\n  return n == 1 ? 'one'\n    : n == 2 ? 'two'\n    : n == 0 || (n100 >= 3 && n100 <= 10) ? 'few'\n    : (n100 >= 11 && n100 <= 19) ? 'many'\n    : 'other';\n};\nexport const my = e;\nexport const nah = a;\nexport const naq = f;\nexport const nb = a;\nexport const nd = a;\nexport const ne = (n, ord) => {\n  const s = String(n).split('.'), t0 = Number(s[0]) == n;\n  if (ord) return (t0 && n >= 1 && n <= 4) ? 'one' : 'other';\n  return n == 1 ? 'one' : 'other';\n};\nexport const nl = d;\nexport const nn = a;\nexport const nnh = a;\nexport const no = a;\nexport const nqo = e;\nexport const nr = a;\nexport const nso = b;\nexport const ny = a;\nexport const nyn = a;\nexport const om = a;\nexport const or = (n, ord) => {\n  const s = String(n).split('.'), t0 = Number(s[0]) == n;\n  if (ord) return (n == 1 || n == 5 || (t0 && n >= 7 && n <= 9)) ? 'one'\n    : (n == 2 || n == 3) ? 'two'\n    : n == 4 ? 'few'\n    : n == 6 ? 'many'\n    : 'other';\n  return n == 1 ? 'one' : 'other';\n};\nexport const os = a;\nexport const osa = e;\nexport const pa = b;\nexport const pap = a;\nexport const pcm = c;\nexport const pl = (n, ord) => {\n  const s = String(n).split('.'), i = s[0], v0 = !s[1], i10 = i.slice(-1), i100 = i.slice(-2);\n  if (ord) return 'other';\n  return n == 1 && v0 ? 'one'\n    : v0 && (i10 >= 2 && i10 <= 4) && (i100 < 12 || i100 > 14) ? 'few'\n    : v0 && i != 1 && (i10 == 0 || i10 == 1) || v0 && (i10 >= 5 && i10 <= 9) || v0 && (i100 >= 12 && i100 <= 14) ? 'many'\n    : 'other';\n};\nexport const prg = (n, ord) => {\n  const s = String(n).split('.'), f = s[1] || '', v = f.length, t0 = Number(s[0]) == n, n10 = t0 && s[0].slice(-1), n100 = t0 && s[0].slice(-2), f100 = f.slice(-2), f10 = f.slice(-1);\n  if (ord) return 'other';\n  return t0 && n10 == 0 || (n100 >= 11 && n100 <= 19) || v == 2 && (f100 >= 11 && f100 <= 19) ? 'zero'\n    : n10 == 1 && n100 != 11 || v == 2 && f10 == 1 && f100 != 11 || v != 2 && f10 == 1 ? 'one'\n    : 'other';\n};\nexport const ps = a;\nexport const pt = (n, ord) => {\n  const s = String(n).split('.'), i = s[0], v0 = !s[1], i1000000 = i.slice(-6);\n  if (ord) return 'other';\n  return (i == 0 || i == 1) ? 'one'\n    : i != 0 && i1000000 == 0 && v0 ? 'many'\n    : 'other';\n};\nexport const pt_PT = (n, ord) => {\n  const s = String(n).split('.'), i = s[0], v0 = !s[1], i1000000 = i.slice(-6);\n  if (ord) return 'other';\n  return n == 1 && v0 ? 'one'\n    : i != 0 && i1000000 == 0 && v0 ? 'many'\n    : 'other';\n};\nexport const rm = a;\nexport const ro = (n, ord) => {\n  const s = String(n).split('.'), v0 = !s[1], t0 = Number(s[0]) == n, n100 = t0 && s[0].slice(-2);\n  if (ord) return n == 1 ? 'one' : 'other';\n  return n == 1 && v0 ? 'one'\n    : !v0 || n == 0 || n != 1 && (n100 >= 1 && n100 <= 19) ? 'few'\n    : 'other';\n};\nexport const rof = a;\nexport const ru = (n, ord) => {\n  const s = String(n).split('.'), i = s[0], v0 = !s[1], i10 = i.slice(-1), i100 = i.slice(-2);\n  if (ord) return 'other';\n  return v0 && i10 == 1 && i100 != 11 ? 'one'\n    : v0 && (i10 >= 2 && i10 <= 4) && (i100 < 12 || i100 > 14) ? 'few'\n    : v0 && i10 == 0 || v0 && (i10 >= 5 && i10 <= 9) || v0 && (i100 >= 11 && i100 <= 14) ? 'many'\n    : 'other';\n};\nexport const rwk = a;\nexport const sah = e;\nexport const saq = a;\nexport const sat = f;\nexport const sc = (n, ord) => {\n  const s = String(n).split('.'), v0 = !s[1];\n  if (ord) return (n == 11 || n == 8 || n == 80 || n == 800) ? 'many' : 'other';\n  return n == 1 && v0 ? 'one' : 'other';\n};\nexport const scn = (n, ord) => {\n  const s = String(n).split('.'), v0 = !s[1];\n  if (ord) return (n == 11 || n == 8 || n == 80 || n == 800) ? 'many' : 'other';\n  return n == 1 && v0 ? 'one' : 'other';\n};\nexport const sd = a;\nexport const sdh = a;\nexport const se = f;\nexport const seh = a;\nexport const ses = e;\nexport const sg = e;\nexport const sh = (n, ord) => {\n  const s = String(n).split('.'), i = s[0], f = s[1] || '', v0 = !s[1], i10 = i.slice(-1), i100 = i.slice(-2), f10 = f.slice(-1), f100 = f.slice(-2);\n  if (ord) return 'other';\n  return v0 && i10 == 1 && i100 != 11 || f10 == 1 && f100 != 11 ? 'one'\n    : v0 && (i10 >= 2 && i10 <= 4) && (i100 < 12 || i100 > 14) || (f10 >= 2 && f10 <= 4) && (f100 < 12 || f100 > 14) ? 'few'\n    : 'other';\n};\nexport const shi = (n, ord) => {\n  const s = String(n).split('.'), t0 = Number(s[0]) == n;\n  if (ord) return 'other';\n  return n >= 0 && n <= 1 ? 'one'\n    : (t0 && n >= 2 && n <= 10) ? 'few'\n    : 'other';\n};\nexport const si = (n, ord) => {\n  const s = String(n).split('.'), i = s[0], f = s[1] || '';\n  if (ord) return 'other';\n  return (n == 0 || n == 1) || i == 0 && f == 1 ? 'one' : 'other';\n};\nexport const sk = (n, ord) => {\n  const s = String(n).split('.'), i = s[0], v0 = !s[1];\n  if (ord) return 'other';\n  return n == 1 && v0 ? 'one'\n    : (i >= 2 && i <= 4) && v0 ? 'few'\n    : !v0 ? 'many'\n    : 'other';\n};\nexport const sl = (n, ord) => {\n  const s = String(n).split('.'), i = s[0], v0 = !s[1], i100 = i.slice(-2);\n  if (ord) return 'other';\n  return v0 && i100 == 1 ? 'one'\n    : v0 && i100 == 2 ? 'two'\n    : v0 && (i100 == 3 || i100 == 4) || !v0 ? 'few'\n    : 'other';\n};\nexport const sma = f;\nexport const smi = f;\nexport const smj = f;\nexport const smn = f;\nexport const sms = f;\nexport const sn = a;\nexport const so = a;\nexport const sq = (n, ord) => {\n  const s = String(n).split('.'), t0 = Number(s[0]) == n, n10 = t0 && s[0].slice(-1), n100 = t0 && s[0].slice(-2);\n  if (ord) return n == 1 ? 'one'\n    : n10 == 4 && n100 != 14 ? 'many'\n    : 'other';\n  return n == 1 ? 'one' : 'other';\n};\nexport const sr = (n, ord) => {\n  const s = String(n).split('.'), i = s[0], f = s[1] || '', v0 = !s[1], i10 = i.slice(-1), i100 = i.slice(-2), f10 = f.slice(-1), f100 = f.slice(-2);\n  if (ord) return 'other';\n  return v0 && i10 == 1 && i100 != 11 || f10 == 1 && f100 != 11 ? 'one'\n    : v0 && (i10 >= 2 && i10 <= 4) && (i100 < 12 || i100 > 14) || (f10 >= 2 && f10 <= 4) && (f100 < 12 || f100 > 14) ? 'few'\n    : 'other';\n};\nexport const ss = a;\nexport const ssy = a;\nexport const st = a;\nexport const su = e;\nexport const sv = (n, ord) => {\n  const s = String(n).split('.'), v0 = !s[1], t0 = Number(s[0]) == n, n10 = t0 && s[0].slice(-1), n100 = t0 && s[0].slice(-2);\n  if (ord) return (n10 == 1 || n10 == 2) && n100 != 11 && n100 != 12 ? 'one' : 'other';\n  return n == 1 && v0 ? 'one' : 'other';\n};\nexport const sw = d;\nexport const syr = a;\nexport const ta = a;\nexport const te = a;\nexport const teo = a;\nexport const th = e;\nexport const ti = b;\nexport const tig = a;\nexport const tk = (n, ord) => {\n  const s = String(n).split('.'), t0 = Number(s[0]) == n, n10 = t0 && s[0].slice(-1);\n  if (ord) return (n10 == 6 || n10 == 9) || n == 10 ? 'few' : 'other';\n  return n == 1 ? 'one' : 'other';\n};\nexport const tl = (n, ord) => {\n  const s = String(n).split('.'), i = s[0], f = s[1] || '', v0 = !s[1], i10 = i.slice(-1), f10 = f.slice(-1);\n  if (ord) return n == 1 ? 'one' : 'other';\n  return v0 && (i == 1 || i == 2 || i == 3) || v0 && i10 != 4 && i10 != 6 && i10 != 9 || !v0 && f10 != 4 && f10 != 6 && f10 != 9 ? 'one' : 'other';\n};\nexport const tn = a;\nexport const to = e;\nexport const tpi = e;\nexport const tr = a;\nexport const ts = a;\nexport const tzm = (n, ord) => {\n  const s = String(n).split('.'), t0 = Number(s[0]) == n;\n  if (ord) return 'other';\n  return (n == 0 || n == 1) || (t0 && n >= 11 && n <= 99) ? 'one' : 'other';\n};\nexport const ug = a;\nexport const uk = (n, ord) => {\n  const s = String(n).split('.'), i = s[0], v0 = !s[1], t0 = Number(s[0]) == n, n10 = t0 && s[0].slice(-1), n100 = t0 && s[0].slice(-2), i10 = i.slice(-1), i100 = i.slice(-2);\n  if (ord) return n10 == 3 && n100 != 13 ? 'few' : 'other';\n  return v0 && i10 == 1 && i100 != 11 ? 'one'\n    : v0 && (i10 >= 2 && i10 <= 4) && (i100 < 12 || i100 > 14) ? 'few'\n    : v0 && i10 == 0 || v0 && (i10 >= 5 && i10 <= 9) || v0 && (i100 >= 11 && i100 <= 14) ? 'many'\n    : 'other';\n};\nexport const und = e;\nexport const ur = d;\nexport const uz = a;\nexport const ve = a;\nexport const vec = (n, ord) => {\n  const s = String(n).split('.'), i = s[0], v0 = !s[1], i1000000 = i.slice(-6);\n  if (ord) return (n == 11 || n == 8 || n == 80 || n == 800) ? 'many' : 'other';\n  return n == 1 && v0 ? 'one'\n    : i != 0 && i1000000 == 0 && v0 ? 'many'\n    : 'other';\n};\nexport const vi = (n, ord) => {\n  if (ord) return n == 1 ? 'one' : 'other';\n  return 'other';\n};\nexport const vo = a;\nexport const vun = a;\nexport const wa = b;\nexport const wae = a;\nexport const wo = e;\nexport const xh = a;\nexport const xog = a;\nexport const yi = d;\nexport const yo = e;\nexport const yue = e;\nexport const zh = e;\nexport const zu = c;\n","import { en } from \"make-plural\";\nexport function useMakePlural({ pluralizer, includeZero = true, ordinal = false, }) {\n    return function (_i18n, count) {\n        return [\n            includeZero && count === 0 ? \"zero\" : \"\",\n            pluralizer(count, ordinal),\n        ].filter(Boolean);\n    };\n}\nexport const defaultPluralizer = useMakePlural({\n    pluralizer: en,\n    includeZero: true,\n});\nexport class Pluralization {\n    constructor(i18n) {\n        this.i18n = i18n;\n        this.registry = {};\n        this.register(\"default\", defaultPluralizer);\n    }\n    register(locale, pluralizer) {\n        this.registry[locale] = pluralizer;\n    }\n    get(locale) {\n        return (this.registry[locale] ||\n            this.registry[this.i18n.locale] ||\n            this.registry[\"default\"]);\n    }\n}\n//# sourceMappingURL=Pluralization.js.map","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n  var index = -1,\n      length = array.length;\n\n  if (start < 0) {\n    start = -start > length ? 0 : (length + start);\n  }\n  end = end > length ? length : end;\n  if (end < 0) {\n    end += length;\n  }\n  length = start > end ? 0 : ((end - start) >>> 0);\n  start >>>= 0;\n\n  var result = Array(length);\n  while (++index < length) {\n    result[index] = array[index + start];\n  }\n  return result;\n}\n\nmodule.exports = baseSlice;\n","var baseSlice = require('./_baseSlice');\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n  var length = array.length;\n  end = end === undefined ? length : end;\n  return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\nmodule.exports = castSlice;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n    rsComboMarksRange = '\\\\u0300-\\\\u036f',\n    reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n    rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n    rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n    rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsZWJ = '\\\\u200d';\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange  + rsComboRange + rsVarRange + ']');\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n  return reHasUnicode.test(string);\n}\n\nmodule.exports = hasUnicode;\n","/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n  return string.split('');\n}\n\nmodule.exports = asciiToArray;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n    rsComboMarksRange = '\\\\u0300-\\\\u036f',\n    reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n    rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n    rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n    rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n    rsCombo = '[' + rsComboRange + ']',\n    rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n    rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n    rsNonAstral = '[^' + rsAstralRange + ']',\n    rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n    rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n    rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n    rsOptVar = '[' + rsVarRange + ']?',\n    rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n    rsSeq = rsOptVar + reOptMod + rsOptJoin,\n    rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n  return string.match(reUnicode) || [];\n}\n\nmodule.exports = unicodeToArray;\n","var asciiToArray = require('./_asciiToArray'),\n    hasUnicode = require('./_hasUnicode'),\n    unicodeToArray = require('./_unicodeToArray');\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n  return hasUnicode(string)\n    ? unicodeToArray(string)\n    : asciiToArray(string);\n}\n\nmodule.exports = stringToArray;\n","var castSlice = require('./_castSlice'),\n    hasUnicode = require('./_hasUnicode'),\n    stringToArray = require('./_stringToArray'),\n    toString = require('./toString');\n\n/**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\nfunction createCaseFirst(methodName) {\n  return function(string) {\n    string = toString(string);\n\n    var strSymbols = hasUnicode(string)\n      ? stringToArray(string)\n      : undefined;\n\n    var chr = strSymbols\n      ? strSymbols[0]\n      : string.charAt(0);\n\n    var trailing = strSymbols\n      ? castSlice(strSymbols, 1).join('')\n      : string.slice(1);\n\n    return chr[methodName]() + trailing;\n  };\n}\n\nmodule.exports = createCaseFirst;\n","var createCaseFirst = require('./_createCaseFirst');\n\n/**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\nvar upperFirst = createCaseFirst('toUpperCase');\n\nmodule.exports = upperFirst;\n","var toString = require('./toString'),\n    upperFirst = require('./upperFirst');\n\n/**\n * Converts the first character of `string` to upper case and the remaining\n * to lower case.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to capitalize.\n * @returns {string} Returns the capitalized string.\n * @example\n *\n * _.capitalize('FRED');\n * // => 'Fred'\n */\nfunction capitalize(string) {\n  return upperFirst(toString(string).toLowerCase());\n}\n\nmodule.exports = capitalize;\n","/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n *  the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n  var index = -1,\n      length = array == null ? 0 : array.length;\n\n  if (initAccum && length) {\n    accumulator = array[++index];\n  }\n  while (++index < length) {\n    accumulator = iteratee(accumulator, array[index], index, array);\n  }\n  return accumulator;\n}\n\nmodule.exports = arrayReduce;\n","/**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyOf(object) {\n  return function(key) {\n    return object == null ? undefined : object[key];\n  };\n}\n\nmodule.exports = basePropertyOf;\n","var basePropertyOf = require('./_basePropertyOf');\n\n/** Used to map Latin Unicode letters to basic Latin letters. */\nvar deburredLetters = {\n  // Latin-1 Supplement block.\n  '\\xc0': 'A',  '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n  '\\xe0': 'a',  '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n  '\\xc7': 'C',  '\\xe7': 'c',\n  '\\xd0': 'D',  '\\xf0': 'd',\n  '\\xc8': 'E',  '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n  '\\xe8': 'e',  '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n  '\\xcc': 'I',  '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n  '\\xec': 'i',  '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n  '\\xd1': 'N',  '\\xf1': 'n',\n  '\\xd2': 'O',  '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n  '\\xf2': 'o',  '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n  '\\xd9': 'U',  '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n  '\\xf9': 'u',  '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n  '\\xdd': 'Y',  '\\xfd': 'y', '\\xff': 'y',\n  '\\xc6': 'Ae', '\\xe6': 'ae',\n  '\\xde': 'Th', '\\xfe': 'th',\n  '\\xdf': 'ss',\n  // Latin Extended-A block.\n  '\\u0100': 'A',  '\\u0102': 'A', '\\u0104': 'A',\n  '\\u0101': 'a',  '\\u0103': 'a', '\\u0105': 'a',\n  '\\u0106': 'C',  '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n  '\\u0107': 'c',  '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n  '\\u010e': 'D',  '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n  '\\u0112': 'E',  '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n  '\\u0113': 'e',  '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n  '\\u011c': 'G',  '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n  '\\u011d': 'g',  '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n  '\\u0124': 'H',  '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n  '\\u0128': 'I',  '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n  '\\u0129': 'i',  '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n  '\\u0134': 'J',  '\\u0135': 'j',\n  '\\u0136': 'K',  '\\u0137': 'k', '\\u0138': 'k',\n  '\\u0139': 'L',  '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n  '\\u013a': 'l',  '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n  '\\u0143': 'N',  '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n  '\\u0144': 'n',  '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n  '\\u014c': 'O',  '\\u014e': 'O', '\\u0150': 'O',\n  '\\u014d': 'o',  '\\u014f': 'o', '\\u0151': 'o',\n  '\\u0154': 'R',  '\\u0156': 'R', '\\u0158': 'R',\n  '\\u0155': 'r',  '\\u0157': 'r', '\\u0159': 'r',\n  '\\u015a': 'S',  '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n  '\\u015b': 's',  '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n  '\\u0162': 'T',  '\\u0164': 'T', '\\u0166': 'T',\n  '\\u0163': 't',  '\\u0165': 't', '\\u0167': 't',\n  '\\u0168': 'U',  '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n  '\\u0169': 'u',  '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n  '\\u0174': 'W',  '\\u0175': 'w',\n  '\\u0176': 'Y',  '\\u0177': 'y', '\\u0178': 'Y',\n  '\\u0179': 'Z',  '\\u017b': 'Z', '\\u017d': 'Z',\n  '\\u017a': 'z',  '\\u017c': 'z', '\\u017e': 'z',\n  '\\u0132': 'IJ', '\\u0133': 'ij',\n  '\\u0152': 'Oe', '\\u0153': 'oe',\n  '\\u0149': \"'n\", '\\u017f': 's'\n};\n\n/**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\nvar deburrLetter = basePropertyOf(deburredLetters);\n\nmodule.exports = deburrLetter;\n","var deburrLetter = require('./_deburrLetter'),\n    toString = require('./toString');\n\n/** Used to match Latin Unicode letters (excluding mathematical operators). */\nvar reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n/** Used to compose unicode character classes. */\nvar rsComboMarksRange = '\\\\u0300-\\\\u036f',\n    reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n    rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n    rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange;\n\n/** Used to compose unicode capture groups. */\nvar rsCombo = '[' + rsComboRange + ']';\n\n/**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\nvar reComboMark = RegExp(rsCombo, 'g');\n\n/**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\nfunction deburr(string) {\n  string = toString(string);\n  return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n}\n\nmodule.exports = deburr;\n","/** Used to match words composed of alphanumeric characters. */\nvar reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n/**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction asciiWords(string) {\n  return string.match(reAsciiWord) || [];\n}\n\nmodule.exports = asciiWords;\n","/** Used to detect strings that need a more robust regexp to match words. */\nvar reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n/**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\nfunction hasUnicodeWord(string) {\n  return reHasUnicodeWord.test(string);\n}\n\nmodule.exports = hasUnicodeWord;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n    rsComboMarksRange = '\\\\u0300-\\\\u036f',\n    reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n    rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n    rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n    rsDingbatRange = '\\\\u2700-\\\\u27bf',\n    rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n    rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n    rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n    rsPunctuationRange = '\\\\u2000-\\\\u206f',\n    rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n    rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n    rsVarRange = '\\\\ufe0e\\\\ufe0f',\n    rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\",\n    rsBreak = '[' + rsBreakRange + ']',\n    rsCombo = '[' + rsComboRange + ']',\n    rsDigits = '\\\\d+',\n    rsDingbat = '[' + rsDingbatRange + ']',\n    rsLower = '[' + rsLowerRange + ']',\n    rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n    rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n    rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n    rsNonAstral = '[^' + rsAstralRange + ']',\n    rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n    rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n    rsUpper = '[' + rsUpperRange + ']',\n    rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n    rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n    rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n    rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n    reOptMod = rsModifier + '?',\n    rsOptVar = '[' + rsVarRange + ']?',\n    rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n    rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n    rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n    rsSeq = rsOptVar + reOptMod + rsOptJoin,\n    rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq;\n\n/** Used to match complex or compound words. */\nvar reUnicodeWord = RegExp([\n  rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n  rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',\n  rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,\n  rsUpper + '+' + rsOptContrUpper,\n  rsOrdUpper,\n  rsOrdLower,\n  rsDigits,\n  rsEmoji\n].join('|'), 'g');\n\n/**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction unicodeWords(string) {\n  return string.match(reUnicodeWord) || [];\n}\n\nmodule.exports = unicodeWords;\n","var asciiWords = require('./_asciiWords'),\n    hasUnicodeWord = require('./_hasUnicodeWord'),\n    toString = require('./toString'),\n    unicodeWords = require('./_unicodeWords');\n\n/**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\nfunction words(string, pattern, guard) {\n  string = toString(string);\n  pattern = guard ? undefined : pattern;\n\n  if (pattern === undefined) {\n    return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n  }\n  return string.match(pattern) || [];\n}\n\nmodule.exports = words;\n","var arrayReduce = require('./_arrayReduce'),\n    deburr = require('./deburr'),\n    words = require('./words');\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\";\n\n/** Used to match apostrophes. */\nvar reApos = RegExp(rsApos, 'g');\n\n/**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\nfunction createCompounder(callback) {\n  return function(string) {\n    return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n  };\n}\n\nmodule.exports = createCompounder;\n","var capitalize = require('./capitalize'),\n    createCompounder = require('./_createCompounder');\n\n/**\n * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the camel cased string.\n * @example\n *\n * _.camelCase('Foo Bar');\n * // => 'fooBar'\n *\n * _.camelCase('--foo-bar--');\n * // => 'fooBar'\n *\n * _.camelCase('__FOO_BAR__');\n * // => 'fooBar'\n */\nvar camelCase = createCompounder(function(result, word, index) {\n  word = word.toLowerCase();\n  return result + (index ? capitalize(word) : word);\n});\n\nmodule.exports = camelCase;\n","import camelCase from \"lodash/camelCase\";\nexport function camelCaseKeys(target) {\n    if (!target) {\n        return {};\n    }\n    return Object.keys(target).reduce((buffer, key) => {\n        buffer[camelCase(key)] = target[key];\n        return buffer;\n    }, {});\n}\n//# sourceMappingURL=camelCaseKeys.js.map","export function isSet(value) {\n    return value !== undefined && value !== null;\n}\n//# sourceMappingURL=isSet.js.map","import { isSet } from \"./isSet\";\nexport function createTranslationOptions(i18n, scope, options) {\n    let translationOptions = [{ scope }];\n    if (isSet(options.defaults)) {\n        translationOptions = translationOptions.concat(options.defaults);\n    }\n    if (isSet(options.defaultValue)) {\n        const message = typeof options.defaultValue === \"function\"\n            ? options.defaultValue(i18n, scope, options)\n            : options.defaultValue;\n        translationOptions.push({ message });\n        delete options.defaultValue;\n    }\n    return translationOptions;\n}\n//# sourceMappingURL=createTranslationOptions.js.map","/*\r\n *      bignumber.js v9.1.2\r\n *      A JavaScript library for arbitrary-precision arithmetic.\r\n *      https://github.com/MikeMcl/bignumber.js\r\n *      Copyright (c) 2022 Michael Mclaughlin <M8ch88l@gmail.com>\r\n *      MIT Licensed.\r\n *\r\n *      BigNumber.prototype methods     |  BigNumber methods\r\n *                                      |\r\n *      absoluteValue            abs    |  clone\r\n *      comparedTo                      |  config               set\r\n *      decimalPlaces            dp     |      DECIMAL_PLACES\r\n *      dividedBy                div    |      ROUNDING_MODE\r\n *      dividedToIntegerBy       idiv   |      EXPONENTIAL_AT\r\n *      exponentiatedBy          pow    |      RANGE\r\n *      integerValue                    |      CRYPTO\r\n *      isEqualTo                eq     |      MODULO_MODE\r\n *      isFinite                        |      POW_PRECISION\r\n *      isGreaterThan            gt     |      FORMAT\r\n *      isGreaterThanOrEqualTo   gte    |      ALPHABET\r\n *      isInteger                       |  isBigNumber\r\n *      isLessThan               lt     |  maximum              max\r\n *      isLessThanOrEqualTo      lte    |  minimum              min\r\n *      isNaN                           |  random\r\n *      isNegative                      |  sum\r\n *      isPositive                      |\r\n *      isZero                          |\r\n *      minus                           |\r\n *      modulo                   mod    |\r\n *      multipliedBy             times  |\r\n *      negated                         |\r\n *      plus                            |\r\n *      precision                sd     |\r\n *      shiftedBy                       |\r\n *      squareRoot               sqrt   |\r\n *      toExponential                   |\r\n *      toFixed                         |\r\n *      toFormat                        |\r\n *      toFraction                      |\r\n *      toJSON                          |\r\n *      toNumber                        |\r\n *      toPrecision                     |\r\n *      toString                        |\r\n *      valueOf                         |\r\n *\r\n */\r\n\r\n\r\nvar\r\n  isNumeric = /^-?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?$/i,\r\n  mathceil = Math.ceil,\r\n  mathfloor = Math.floor,\r\n\r\n  bignumberError = '[BigNumber Error] ',\r\n  tooManyDigits = bignumberError + 'Number primitive has more than 15 significant digits: ',\r\n\r\n  BASE = 1e14,\r\n  LOG_BASE = 14,\r\n  MAX_SAFE_INTEGER = 0x1fffffffffffff,         // 2^53 - 1\r\n  // MAX_INT32 = 0x7fffffff,                   // 2^31 - 1\r\n  POWS_TEN = [1, 10, 100, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13],\r\n  SQRT_BASE = 1e7,\r\n\r\n  // EDITABLE\r\n  // The limit on the value of DECIMAL_PLACES, TO_EXP_NEG, TO_EXP_POS, MIN_EXP, MAX_EXP, and\r\n  // the arguments to toExponential, toFixed, toFormat, and toPrecision.\r\n  MAX = 1E9;                                   // 0 to MAX_INT32\r\n\r\n\r\n/*\r\n * Create and return a BigNumber constructor.\r\n */\r\nfunction clone(configObject) {\r\n  var div, convertBase, parseNumeric,\r\n    P = BigNumber.prototype = { constructor: BigNumber, toString: null, valueOf: null },\r\n    ONE = new BigNumber(1),\r\n\r\n\r\n    //----------------------------- EDITABLE CONFIG DEFAULTS -------------------------------\r\n\r\n\r\n    // The default values below must be integers within the inclusive ranges stated.\r\n    // The values can also be changed at run-time using BigNumber.set.\r\n\r\n    // The maximum number of decimal places for operations involving division.\r\n    DECIMAL_PLACES = 20,                     // 0 to MAX\r\n\r\n    // The rounding mode used when rounding to the above decimal places, and when using\r\n    // toExponential, toFixed, toFormat and toPrecision, and round (default value).\r\n    // UP         0 Away from zero.\r\n    // DOWN       1 Towards zero.\r\n    // CEIL       2 Towards +Infinity.\r\n    // FLOOR      3 Towards -Infinity.\r\n    // HALF_UP    4 Towards nearest neighbour. If equidistant, up.\r\n    // HALF_DOWN  5 Towards nearest neighbour. If equidistant, down.\r\n    // HALF_EVEN  6 Towards nearest neighbour. If equidistant, towards even neighbour.\r\n    // HALF_CEIL  7 Towards nearest neighbour. If equidistant, towards +Infinity.\r\n    // HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.\r\n    ROUNDING_MODE = 4,                       // 0 to 8\r\n\r\n    // EXPONENTIAL_AT : [TO_EXP_NEG , TO_EXP_POS]\r\n\r\n    // The exponent value at and beneath which toString returns exponential notation.\r\n    // Number type: -7\r\n    TO_EXP_NEG = -7,                         // 0 to -MAX\r\n\r\n    // The exponent value at and above which toString returns exponential notation.\r\n    // Number type: 21\r\n    TO_EXP_POS = 21,                         // 0 to MAX\r\n\r\n    // RANGE : [MIN_EXP, MAX_EXP]\r\n\r\n    // The minimum exponent value, beneath which underflow to zero occurs.\r\n    // Number type: -324  (5e-324)\r\n    MIN_EXP = -1e7,                          // -1 to -MAX\r\n\r\n    // The maximum exponent value, above which overflow to Infinity occurs.\r\n    // Number type:  308  (1.7976931348623157e+308)\r\n    // For MAX_EXP > 1e7, e.g. new BigNumber('1e100000000').plus(1) may be slow.\r\n    MAX_EXP = 1e7,                           // 1 to MAX\r\n\r\n    // Whether to use cryptographically-secure random number generation, if available.\r\n    CRYPTO = false,                          // true or false\r\n\r\n    // The modulo mode used when calculating the modulus: a mod n.\r\n    // The quotient (q = a / n) is calculated according to the corresponding rounding mode.\r\n    // The remainder (r) is calculated as: r = a - n * q.\r\n    //\r\n    // UP        0 The remainder is positive if the dividend is negative, else is negative.\r\n    // DOWN      1 The remainder has the same sign as the dividend.\r\n    //             This modulo mode is commonly known as 'truncated division' and is\r\n    //             equivalent to (a % n) in JavaScript.\r\n    // FLOOR     3 The remainder has the same sign as the divisor (Python %).\r\n    // HALF_EVEN 6 This modulo mode implements the IEEE 754 remainder function.\r\n    // EUCLID    9 Euclidian division. q = sign(n) * floor(a / abs(n)).\r\n    //             The remainder is always positive.\r\n    //\r\n    // The truncated division, floored division, Euclidian division and IEEE 754 remainder\r\n    // modes are commonly used for the modulus operation.\r\n    // Although the other rounding modes can also be used, they may not give useful results.\r\n    MODULO_MODE = 1,                         // 0 to 9\r\n\r\n    // The maximum number of significant digits of the result of the exponentiatedBy operation.\r\n    // If POW_PRECISION is 0, there will be unlimited significant digits.\r\n    POW_PRECISION = 0,                       // 0 to MAX\r\n\r\n    // The format specification used by the BigNumber.prototype.toFormat method.\r\n    FORMAT = {\r\n      prefix: '',\r\n      groupSize: 3,\r\n      secondaryGroupSize: 0,\r\n      groupSeparator: ',',\r\n      decimalSeparator: '.',\r\n      fractionGroupSize: 0,\r\n      fractionGroupSeparator: '\\xA0',        // non-breaking space\r\n      suffix: ''\r\n    },\r\n\r\n    // The alphabet used for base conversion. It must be at least 2 characters long, with no '+',\r\n    // '-', '.', whitespace, or repeated character.\r\n    // '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_'\r\n    ALPHABET = '0123456789abcdefghijklmnopqrstuvwxyz',\r\n    alphabetHasNormalDecimalDigits = true;\r\n\r\n\r\n  //------------------------------------------------------------------------------------------\r\n\r\n\r\n  // CONSTRUCTOR\r\n\r\n\r\n  /*\r\n   * The BigNumber constructor and exported function.\r\n   * Create and return a new instance of a BigNumber object.\r\n   *\r\n   * v {number|string|BigNumber} A numeric value.\r\n   * [b] {number} The base of v. Integer, 2 to ALPHABET.length inclusive.\r\n   */\r\n  function BigNumber(v, b) {\r\n    var alphabet, c, caseChanged, e, i, isNum, len, str,\r\n      x = this;\r\n\r\n    // Enable constructor call without `new`.\r\n    if (!(x instanceof BigNumber)) return new BigNumber(v, b);\r\n\r\n    if (b == null) {\r\n\r\n      if (v && v._isBigNumber === true) {\r\n        x.s = v.s;\r\n\r\n        if (!v.c || v.e > MAX_EXP) {\r\n          x.c = x.e = null;\r\n        } else if (v.e < MIN_EXP) {\r\n          x.c = [x.e = 0];\r\n        } else {\r\n          x.e = v.e;\r\n          x.c = v.c.slice();\r\n        }\r\n\r\n        return;\r\n      }\r\n\r\n      if ((isNum = typeof v == 'number') && v * 0 == 0) {\r\n\r\n        // Use `1 / n` to handle minus zero also.\r\n        x.s = 1 / v < 0 ? (v = -v, -1) : 1;\r\n\r\n        // Fast path for integers, where n < 2147483648 (2**31).\r\n        if (v === ~~v) {\r\n          for (e = 0, i = v; i >= 10; i /= 10, e++);\r\n\r\n          if (e > MAX_EXP) {\r\n            x.c = x.e = null;\r\n          } else {\r\n            x.e = e;\r\n            x.c = [v];\r\n          }\r\n\r\n          return;\r\n        }\r\n\r\n        str = String(v);\r\n      } else {\r\n\r\n        if (!isNumeric.test(str = String(v))) return parseNumeric(x, str, isNum);\r\n\r\n        x.s = str.charCodeAt(0) == 45 ? (str = str.slice(1), -1) : 1;\r\n      }\r\n\r\n      // Decimal point?\r\n      if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n\r\n      // Exponential form?\r\n      if ((i = str.search(/e/i)) > 0) {\r\n\r\n        // Determine exponent.\r\n        if (e < 0) e = i;\r\n        e += +str.slice(i + 1);\r\n        str = str.substring(0, i);\r\n      } else if (e < 0) {\r\n\r\n        // Integer.\r\n        e = str.length;\r\n      }\r\n\r\n    } else {\r\n\r\n      // '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}'\r\n      intCheck(b, 2, ALPHABET.length, 'Base');\r\n\r\n      // Allow exponential notation to be used with base 10 argument, while\r\n      // also rounding to DECIMAL_PLACES as with other bases.\r\n      if (b == 10 && alphabetHasNormalDecimalDigits) {\r\n        x = new BigNumber(v);\r\n        return round(x, DECIMAL_PLACES + x.e + 1, ROUNDING_MODE);\r\n      }\r\n\r\n      str = String(v);\r\n\r\n      if (isNum = typeof v == 'number') {\r\n\r\n        // Avoid potential interpretation of Infinity and NaN as base 44+ values.\r\n        if (v * 0 != 0) return parseNumeric(x, str, isNum, b);\r\n\r\n        x.s = 1 / v < 0 ? (str = str.slice(1), -1) : 1;\r\n\r\n        // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}'\r\n        if (BigNumber.DEBUG && str.replace(/^0\\.0*|\\./, '').length > 15) {\r\n          throw Error\r\n           (tooManyDigits + v);\r\n        }\r\n      } else {\r\n        x.s = str.charCodeAt(0) === 45 ? (str = str.slice(1), -1) : 1;\r\n      }\r\n\r\n      alphabet = ALPHABET.slice(0, b);\r\n      e = i = 0;\r\n\r\n      // Check that str is a valid base b number.\r\n      // Don't use RegExp, so alphabet can contain special characters.\r\n      for (len = str.length; i < len; i++) {\r\n        if (alphabet.indexOf(c = str.charAt(i)) < 0) {\r\n          if (c == '.') {\r\n\r\n            // If '.' is not the first character and it has not be found before.\r\n            if (i > e) {\r\n              e = len;\r\n              continue;\r\n            }\r\n          } else if (!caseChanged) {\r\n\r\n            // Allow e.g. hexadecimal 'FF' as well as 'ff'.\r\n            if (str == str.toUpperCase() && (str = str.toLowerCase()) ||\r\n                str == str.toLowerCase() && (str = str.toUpperCase())) {\r\n              caseChanged = true;\r\n              i = -1;\r\n              e = 0;\r\n              continue;\r\n            }\r\n          }\r\n\r\n          return parseNumeric(x, String(v), isNum, b);\r\n        }\r\n      }\r\n\r\n      // Prevent later check for length on converted number.\r\n      isNum = false;\r\n      str = convertBase(str, b, 10, x.s);\r\n\r\n      // Decimal point?\r\n      if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n      else e = str.length;\r\n    }\r\n\r\n    // Determine leading zeros.\r\n    for (i = 0; str.charCodeAt(i) === 48; i++);\r\n\r\n    // Determine trailing zeros.\r\n    for (len = str.length; str.charCodeAt(--len) === 48;);\r\n\r\n    if (str = str.slice(i, ++len)) {\r\n      len -= i;\r\n\r\n      // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}'\r\n      if (isNum && BigNumber.DEBUG &&\r\n        len > 15 && (v > MAX_SAFE_INTEGER || v !== mathfloor(v))) {\r\n          throw Error\r\n           (tooManyDigits + (x.s * v));\r\n      }\r\n\r\n       // Overflow?\r\n      if ((e = e - i - 1) > MAX_EXP) {\r\n\r\n        // Infinity.\r\n        x.c = x.e = null;\r\n\r\n      // Underflow?\r\n      } else if (e < MIN_EXP) {\r\n\r\n        // Zero.\r\n        x.c = [x.e = 0];\r\n      } else {\r\n        x.e = e;\r\n        x.c = [];\r\n\r\n        // Transform base\r\n\r\n        // e is the base 10 exponent.\r\n        // i is where to slice str to get the first element of the coefficient array.\r\n        i = (e + 1) % LOG_BASE;\r\n        if (e < 0) i += LOG_BASE;  // i < 1\r\n\r\n        if (i < len) {\r\n          if (i) x.c.push(+str.slice(0, i));\r\n\r\n          for (len -= LOG_BASE; i < len;) {\r\n            x.c.push(+str.slice(i, i += LOG_BASE));\r\n          }\r\n\r\n          i = LOG_BASE - (str = str.slice(i)).length;\r\n        } else {\r\n          i -= len;\r\n        }\r\n\r\n        for (; i--; str += '0');\r\n        x.c.push(+str);\r\n      }\r\n    } else {\r\n\r\n      // Zero.\r\n      x.c = [x.e = 0];\r\n    }\r\n  }\r\n\r\n\r\n  // CONSTRUCTOR PROPERTIES\r\n\r\n\r\n  BigNumber.clone = clone;\r\n\r\n  BigNumber.ROUND_UP = 0;\r\n  BigNumber.ROUND_DOWN = 1;\r\n  BigNumber.ROUND_CEIL = 2;\r\n  BigNumber.ROUND_FLOOR = 3;\r\n  BigNumber.ROUND_HALF_UP = 4;\r\n  BigNumber.ROUND_HALF_DOWN = 5;\r\n  BigNumber.ROUND_HALF_EVEN = 6;\r\n  BigNumber.ROUND_HALF_CEIL = 7;\r\n  BigNumber.ROUND_HALF_FLOOR = 8;\r\n  BigNumber.EUCLID = 9;\r\n\r\n\r\n  /*\r\n   * Configure infrequently-changing library-wide settings.\r\n   *\r\n   * Accept an object with the following optional properties (if the value of a property is\r\n   * a number, it must be an integer within the inclusive range stated):\r\n   *\r\n   *   DECIMAL_PLACES   {number}           0 to MAX\r\n   *   ROUNDING_MODE    {number}           0 to 8\r\n   *   EXPONENTIAL_AT   {number|number[]}  -MAX to MAX  or  [-MAX to 0, 0 to MAX]\r\n   *   RANGE            {number|number[]}  -MAX to MAX (not zero)  or  [-MAX to -1, 1 to MAX]\r\n   *   CRYPTO           {boolean}          true or false\r\n   *   MODULO_MODE      {number}           0 to 9\r\n   *   POW_PRECISION       {number}           0 to MAX\r\n   *   ALPHABET         {string}           A string of two or more unique characters which does\r\n   *                                       not contain '.'.\r\n   *   FORMAT           {object}           An object with some of the following properties:\r\n   *     prefix                 {string}\r\n   *     groupSize              {number}\r\n   *     secondaryGroupSize     {number}\r\n   *     groupSeparator         {string}\r\n   *     decimalSeparator       {string}\r\n   *     fractionGroupSize      {number}\r\n   *     fractionGroupSeparator {string}\r\n   *     suffix                 {string}\r\n   *\r\n   * (The values assigned to the above FORMAT object properties are not checked for validity.)\r\n   *\r\n   * E.g.\r\n   * BigNumber.config({ DECIMAL_PLACES : 20, ROUNDING_MODE : 4 })\r\n   *\r\n   * Ignore properties/parameters set to null or undefined, except for ALPHABET.\r\n   *\r\n   * Return an object with the properties current values.\r\n   */\r\n  BigNumber.config = BigNumber.set = function (obj) {\r\n    var p, v;\r\n\r\n    if (obj != null) {\r\n\r\n      if (typeof obj == 'object') {\r\n\r\n        // DECIMAL_PLACES {number} Integer, 0 to MAX inclusive.\r\n        // '[BigNumber Error] DECIMAL_PLACES {not a primitive number|not an integer|out of range}: {v}'\r\n        if (obj.hasOwnProperty(p = 'DECIMAL_PLACES')) {\r\n          v = obj[p];\r\n          intCheck(v, 0, MAX, p);\r\n          DECIMAL_PLACES = v;\r\n        }\r\n\r\n        // ROUNDING_MODE {number} Integer, 0 to 8 inclusive.\r\n        // '[BigNumber Error] ROUNDING_MODE {not a primitive number|not an integer|out of range}: {v}'\r\n        if (obj.hasOwnProperty(p = 'ROUNDING_MODE')) {\r\n          v = obj[p];\r\n          intCheck(v, 0, 8, p);\r\n          ROUNDING_MODE = v;\r\n        }\r\n\r\n        // EXPONENTIAL_AT {number|number[]}\r\n        // Integer, -MAX to MAX inclusive or\r\n        // [integer -MAX to 0 inclusive, 0 to MAX inclusive].\r\n        // '[BigNumber Error] EXPONENTIAL_AT {not a primitive number|not an integer|out of range}: {v}'\r\n        if (obj.hasOwnProperty(p = 'EXPONENTIAL_AT')) {\r\n          v = obj[p];\r\n          if (v && v.pop) {\r\n            intCheck(v[0], -MAX, 0, p);\r\n            intCheck(v[1], 0, MAX, p);\r\n            TO_EXP_NEG = v[0];\r\n            TO_EXP_POS = v[1];\r\n          } else {\r\n            intCheck(v, -MAX, MAX, p);\r\n            TO_EXP_NEG = -(TO_EXP_POS = v < 0 ? -v : v);\r\n          }\r\n        }\r\n\r\n        // RANGE {number|number[]} Non-zero integer, -MAX to MAX inclusive or\r\n        // [integer -MAX to -1 inclusive, integer 1 to MAX inclusive].\r\n        // '[BigNumber Error] RANGE {not a primitive number|not an integer|out of range|cannot be zero}: {v}'\r\n        if (obj.hasOwnProperty(p = 'RANGE')) {\r\n          v = obj[p];\r\n          if (v && v.pop) {\r\n            intCheck(v[0], -MAX, -1, p);\r\n            intCheck(v[1], 1, MAX, p);\r\n            MIN_EXP = v[0];\r\n            MAX_EXP = v[1];\r\n          } else {\r\n            intCheck(v, -MAX, MAX, p);\r\n            if (v) {\r\n              MIN_EXP = -(MAX_EXP = v < 0 ? -v : v);\r\n            } else {\r\n              throw Error\r\n               (bignumberError + p + ' cannot be zero: ' + v);\r\n            }\r\n          }\r\n        }\r\n\r\n        // CRYPTO {boolean} true or false.\r\n        // '[BigNumber Error] CRYPTO not true or false: {v}'\r\n        // '[BigNumber Error] crypto unavailable'\r\n        if (obj.hasOwnProperty(p = 'CRYPTO')) {\r\n          v = obj[p];\r\n          if (v === !!v) {\r\n            if (v) {\r\n              if (typeof crypto != 'undefined' && crypto &&\r\n               (crypto.getRandomValues || crypto.randomBytes)) {\r\n                CRYPTO = v;\r\n              } else {\r\n                CRYPTO = !v;\r\n                throw Error\r\n                 (bignumberError + 'crypto unavailable');\r\n              }\r\n            } else {\r\n              CRYPTO = v;\r\n            }\r\n          } else {\r\n            throw Error\r\n             (bignumberError + p + ' not true or false: ' + v);\r\n          }\r\n        }\r\n\r\n        // MODULO_MODE {number} Integer, 0 to 9 inclusive.\r\n        // '[BigNumber Error] MODULO_MODE {not a primitive number|not an integer|out of range}: {v}'\r\n        if (obj.hasOwnProperty(p = 'MODULO_MODE')) {\r\n          v = obj[p];\r\n          intCheck(v, 0, 9, p);\r\n          MODULO_MODE = v;\r\n        }\r\n\r\n        // POW_PRECISION {number} Integer, 0 to MAX inclusive.\r\n        // '[BigNumber Error] POW_PRECISION {not a primitive number|not an integer|out of range}: {v}'\r\n        if (obj.hasOwnProperty(p = 'POW_PRECISION')) {\r\n          v = obj[p];\r\n          intCheck(v, 0, MAX, p);\r\n          POW_PRECISION = v;\r\n        }\r\n\r\n        // FORMAT {object}\r\n        // '[BigNumber Error] FORMAT not an object: {v}'\r\n        if (obj.hasOwnProperty(p = 'FORMAT')) {\r\n          v = obj[p];\r\n          if (typeof v == 'object') FORMAT = v;\r\n          else throw Error\r\n           (bignumberError + p + ' not an object: ' + v);\r\n        }\r\n\r\n        // ALPHABET {string}\r\n        // '[BigNumber Error] ALPHABET invalid: {v}'\r\n        if (obj.hasOwnProperty(p = 'ALPHABET')) {\r\n          v = obj[p];\r\n\r\n          // Disallow if less than two characters,\r\n          // or if it contains '+', '-', '.', whitespace, or a repeated character.\r\n          if (typeof v == 'string' && !/^.?$|[+\\-.\\s]|(.).*\\1/.test(v)) {\r\n            alphabetHasNormalDecimalDigits = v.slice(0, 10) == '0123456789';\r\n            ALPHABET = v;\r\n          } else {\r\n            throw Error\r\n             (bignumberError + p + ' invalid: ' + v);\r\n          }\r\n        }\r\n\r\n      } else {\r\n\r\n        // '[BigNumber Error] Object expected: {v}'\r\n        throw Error\r\n         (bignumberError + 'Object expected: ' + obj);\r\n      }\r\n    }\r\n\r\n    return {\r\n      DECIMAL_PLACES: DECIMAL_PLACES,\r\n      ROUNDING_MODE: ROUNDING_MODE,\r\n      EXPONENTIAL_AT: [TO_EXP_NEG, TO_EXP_POS],\r\n      RANGE: [MIN_EXP, MAX_EXP],\r\n      CRYPTO: CRYPTO,\r\n      MODULO_MODE: MODULO_MODE,\r\n      POW_PRECISION: POW_PRECISION,\r\n      FORMAT: FORMAT,\r\n      ALPHABET: ALPHABET\r\n    };\r\n  };\r\n\r\n\r\n  /*\r\n   * Return true if v is a BigNumber instance, otherwise return false.\r\n   *\r\n   * If BigNumber.DEBUG is true, throw if a BigNumber instance is not well-formed.\r\n   *\r\n   * v {any}\r\n   *\r\n   * '[BigNumber Error] Invalid BigNumber: {v}'\r\n   */\r\n  BigNumber.isBigNumber = function (v) {\r\n    if (!v || v._isBigNumber !== true) return false;\r\n    if (!BigNumber.DEBUG) return true;\r\n\r\n    var i, n,\r\n      c = v.c,\r\n      e = v.e,\r\n      s = v.s;\r\n\r\n    out: if ({}.toString.call(c) == '[object Array]') {\r\n\r\n      if ((s === 1 || s === -1) && e >= -MAX && e <= MAX && e === mathfloor(e)) {\r\n\r\n        // If the first element is zero, the BigNumber value must be zero.\r\n        if (c[0] === 0) {\r\n          if (e === 0 && c.length === 1) return true;\r\n          break out;\r\n        }\r\n\r\n        // Calculate number of digits that c[0] should have, based on the exponent.\r\n        i = (e + 1) % LOG_BASE;\r\n        if (i < 1) i += LOG_BASE;\r\n\r\n        // Calculate number of digits of c[0].\r\n        //if (Math.ceil(Math.log(c[0] + 1) / Math.LN10) == i) {\r\n        if (String(c[0]).length == i) {\r\n\r\n          for (i = 0; i < c.length; i++) {\r\n            n = c[i];\r\n            if (n < 0 || n >= BASE || n !== mathfloor(n)) break out;\r\n          }\r\n\r\n          // Last element cannot be zero, unless it is the only element.\r\n          if (n !== 0) return true;\r\n        }\r\n      }\r\n\r\n    // Infinity/NaN\r\n    } else if (c === null && e === null && (s === null || s === 1 || s === -1)) {\r\n      return true;\r\n    }\r\n\r\n    throw Error\r\n      (bignumberError + 'Invalid BigNumber: ' + v);\r\n  };\r\n\r\n\r\n  /*\r\n   * Return a new BigNumber whose value is the maximum of the arguments.\r\n   *\r\n   * arguments {number|string|BigNumber}\r\n   */\r\n  BigNumber.maximum = BigNumber.max = function () {\r\n    return maxOrMin(arguments, -1);\r\n  };\r\n\r\n\r\n  /*\r\n   * Return a new BigNumber whose value is the minimum of the arguments.\r\n   *\r\n   * arguments {number|string|BigNumber}\r\n   */\r\n  BigNumber.minimum = BigNumber.min = function () {\r\n    return maxOrMin(arguments, 1);\r\n  };\r\n\r\n\r\n  /*\r\n   * Return a new BigNumber with a random value equal to or greater than 0 and less than 1,\r\n   * and with dp, or DECIMAL_PLACES if dp is omitted, decimal places (or less if trailing\r\n   * zeros are produced).\r\n   *\r\n   * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n   *\r\n   * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp}'\r\n   * '[BigNumber Error] crypto unavailable'\r\n   */\r\n  BigNumber.random = (function () {\r\n    var pow2_53 = 0x20000000000000;\r\n\r\n    // Return a 53 bit integer n, where 0 <= n < 9007199254740992.\r\n    // Check if Math.random() produces more than 32 bits of randomness.\r\n    // If it does, assume at least 53 bits are produced, otherwise assume at least 30 bits.\r\n    // 0x40000000 is 2^30, 0x800000 is 2^23, 0x1fffff is 2^21 - 1.\r\n    var random53bitInt = (Math.random() * pow2_53) & 0x1fffff\r\n     ? function () { return mathfloor(Math.random() * pow2_53); }\r\n     : function () { return ((Math.random() * 0x40000000 | 0) * 0x800000) +\r\n       (Math.random() * 0x800000 | 0); };\r\n\r\n    return function (dp) {\r\n      var a, b, e, k, v,\r\n        i = 0,\r\n        c = [],\r\n        rand = new BigNumber(ONE);\r\n\r\n      if (dp == null) dp = DECIMAL_PLACES;\r\n      else intCheck(dp, 0, MAX);\r\n\r\n      k = mathceil(dp / LOG_BASE);\r\n\r\n      if (CRYPTO) {\r\n\r\n        // Browsers supporting crypto.getRandomValues.\r\n        if (crypto.getRandomValues) {\r\n\r\n          a = crypto.getRandomValues(new Uint32Array(k *= 2));\r\n\r\n          for (; i < k;) {\r\n\r\n            // 53 bits:\r\n            // ((Math.pow(2, 32) - 1) * Math.pow(2, 21)).toString(2)\r\n            // 11111 11111111 11111111 11111111 11100000 00000000 00000000\r\n            // ((Math.pow(2, 32) - 1) >>> 11).toString(2)\r\n            //                                     11111 11111111 11111111\r\n            // 0x20000 is 2^21.\r\n            v = a[i] * 0x20000 + (a[i + 1] >>> 11);\r\n\r\n            // Rejection sampling:\r\n            // 0 <= v < 9007199254740992\r\n            // Probability that v >= 9e15, is\r\n            // 7199254740992 / 9007199254740992 ~= 0.0008, i.e. 1 in 1251\r\n            if (v >= 9e15) {\r\n              b = crypto.getRandomValues(new Uint32Array(2));\r\n              a[i] = b[0];\r\n              a[i + 1] = b[1];\r\n            } else {\r\n\r\n              // 0 <= v <= 8999999999999999\r\n              // 0 <= (v % 1e14) <= 99999999999999\r\n              c.push(v % 1e14);\r\n              i += 2;\r\n            }\r\n          }\r\n          i = k / 2;\r\n\r\n        // Node.js supporting crypto.randomBytes.\r\n        } else if (crypto.randomBytes) {\r\n\r\n          // buffer\r\n          a = crypto.randomBytes(k *= 7);\r\n\r\n          for (; i < k;) {\r\n\r\n            // 0x1000000000000 is 2^48, 0x10000000000 is 2^40\r\n            // 0x100000000 is 2^32, 0x1000000 is 2^24\r\n            // 11111 11111111 11111111 11111111 11111111 11111111 11111111\r\n            // 0 <= v < 9007199254740992\r\n            v = ((a[i] & 31) * 0x1000000000000) + (a[i + 1] * 0x10000000000) +\r\n               (a[i + 2] * 0x100000000) + (a[i + 3] * 0x1000000) +\r\n               (a[i + 4] << 16) + (a[i + 5] << 8) + a[i + 6];\r\n\r\n            if (v >= 9e15) {\r\n              crypto.randomBytes(7).copy(a, i);\r\n            } else {\r\n\r\n              // 0 <= (v % 1e14) <= 99999999999999\r\n              c.push(v % 1e14);\r\n              i += 7;\r\n            }\r\n          }\r\n          i = k / 7;\r\n        } else {\r\n          CRYPTO = false;\r\n          throw Error\r\n           (bignumberError + 'crypto unavailable');\r\n        }\r\n      }\r\n\r\n      // Use Math.random.\r\n      if (!CRYPTO) {\r\n\r\n        for (; i < k;) {\r\n          v = random53bitInt();\r\n          if (v < 9e15) c[i++] = v % 1e14;\r\n        }\r\n      }\r\n\r\n      k = c[--i];\r\n      dp %= LOG_BASE;\r\n\r\n      // Convert trailing digits to zeros according to dp.\r\n      if (k && dp) {\r\n        v = POWS_TEN[LOG_BASE - dp];\r\n        c[i] = mathfloor(k / v) * v;\r\n      }\r\n\r\n      // Remove trailing elements which are zero.\r\n      for (; c[i] === 0; c.pop(), i--);\r\n\r\n      // Zero?\r\n      if (i < 0) {\r\n        c = [e = 0];\r\n      } else {\r\n\r\n        // Remove leading elements which are zero and adjust exponent accordingly.\r\n        for (e = -1 ; c[0] === 0; c.splice(0, 1), e -= LOG_BASE);\r\n\r\n        // Count the digits of the first element of c to determine leading zeros, and...\r\n        for (i = 1, v = c[0]; v >= 10; v /= 10, i++);\r\n\r\n        // adjust the exponent accordingly.\r\n        if (i < LOG_BASE) e -= LOG_BASE - i;\r\n      }\r\n\r\n      rand.e = e;\r\n      rand.c = c;\r\n      return rand;\r\n    };\r\n  })();\r\n\r\n\r\n   /*\r\n   * Return a BigNumber whose value is the sum of the arguments.\r\n   *\r\n   * arguments {number|string|BigNumber}\r\n   */\r\n  BigNumber.sum = function () {\r\n    var i = 1,\r\n      args = arguments,\r\n      sum = new BigNumber(args[0]);\r\n    for (; i < args.length;) sum = sum.plus(args[i++]);\r\n    return sum;\r\n  };\r\n\r\n\r\n  // PRIVATE FUNCTIONS\r\n\r\n\r\n  // Called by BigNumber and BigNumber.prototype.toString.\r\n  convertBase = (function () {\r\n    var decimal = '0123456789';\r\n\r\n    /*\r\n     * Convert string of baseIn to an array of numbers of baseOut.\r\n     * Eg. toBaseOut('255', 10, 16) returns [15, 15].\r\n     * Eg. toBaseOut('ff', 16, 10) returns [2, 5, 5].\r\n     */\r\n    function toBaseOut(str, baseIn, baseOut, alphabet) {\r\n      var j,\r\n        arr = [0],\r\n        arrL,\r\n        i = 0,\r\n        len = str.length;\r\n\r\n      for (; i < len;) {\r\n        for (arrL = arr.length; arrL--; arr[arrL] *= baseIn);\r\n\r\n        arr[0] += alphabet.indexOf(str.charAt(i++));\r\n\r\n        for (j = 0; j < arr.length; j++) {\r\n\r\n          if (arr[j] > baseOut - 1) {\r\n            if (arr[j + 1] == null) arr[j + 1] = 0;\r\n            arr[j + 1] += arr[j] / baseOut | 0;\r\n            arr[j] %= baseOut;\r\n          }\r\n        }\r\n      }\r\n\r\n      return arr.reverse();\r\n    }\r\n\r\n    // Convert a numeric string of baseIn to a numeric string of baseOut.\r\n    // If the caller is toString, we are converting from base 10 to baseOut.\r\n    // If the caller is BigNumber, we are converting from baseIn to base 10.\r\n    return function (str, baseIn, baseOut, sign, callerIsToString) {\r\n      var alphabet, d, e, k, r, x, xc, y,\r\n        i = str.indexOf('.'),\r\n        dp = DECIMAL_PLACES,\r\n        rm = ROUNDING_MODE;\r\n\r\n      // Non-integer.\r\n      if (i >= 0) {\r\n        k = POW_PRECISION;\r\n\r\n        // Unlimited precision.\r\n        POW_PRECISION = 0;\r\n        str = str.replace('.', '');\r\n        y = new BigNumber(baseIn);\r\n        x = y.pow(str.length - i);\r\n        POW_PRECISION = k;\r\n\r\n        // Convert str as if an integer, then restore the fraction part by dividing the\r\n        // result by its base raised to a power.\r\n\r\n        y.c = toBaseOut(toFixedPoint(coeffToString(x.c), x.e, '0'),\r\n         10, baseOut, decimal);\r\n        y.e = y.c.length;\r\n      }\r\n\r\n      // Convert the number as integer.\r\n\r\n      xc = toBaseOut(str, baseIn, baseOut, callerIsToString\r\n       ? (alphabet = ALPHABET, decimal)\r\n       : (alphabet = decimal, ALPHABET));\r\n\r\n      // xc now represents str as an integer and converted to baseOut. e is the exponent.\r\n      e = k = xc.length;\r\n\r\n      // Remove trailing zeros.\r\n      for (; xc[--k] == 0; xc.pop());\r\n\r\n      // Zero?\r\n      if (!xc[0]) return alphabet.charAt(0);\r\n\r\n      // Does str represent an integer? If so, no need for the division.\r\n      if (i < 0) {\r\n        --e;\r\n      } else {\r\n        x.c = xc;\r\n        x.e = e;\r\n\r\n        // The sign is needed for correct rounding.\r\n        x.s = sign;\r\n        x = div(x, y, dp, rm, baseOut);\r\n        xc = x.c;\r\n        r = x.r;\r\n        e = x.e;\r\n      }\r\n\r\n      // xc now represents str converted to baseOut.\r\n\r\n      // THe index of the rounding digit.\r\n      d = e + dp + 1;\r\n\r\n      // The rounding digit: the digit to the right of the digit that may be rounded up.\r\n      i = xc[d];\r\n\r\n      // Look at the rounding digits and mode to determine whether to round up.\r\n\r\n      k = baseOut / 2;\r\n      r = r || d < 0 || xc[d + 1] != null;\r\n\r\n      r = rm < 4 ? (i != null || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n            : i > k || i == k &&(rm == 4 || r || rm == 6 && xc[d - 1] & 1 ||\r\n             rm == (x.s < 0 ? 8 : 7));\r\n\r\n      // If the index of the rounding digit is not greater than zero, or xc represents\r\n      // zero, then the result of the base conversion is zero or, if rounding up, a value\r\n      // such as 0.00001.\r\n      if (d < 1 || !xc[0]) {\r\n\r\n        // 1^-dp or 0\r\n        str = r ? toFixedPoint(alphabet.charAt(1), -dp, alphabet.charAt(0)) : alphabet.charAt(0);\r\n      } else {\r\n\r\n        // Truncate xc to the required number of decimal places.\r\n        xc.length = d;\r\n\r\n        // Round up?\r\n        if (r) {\r\n\r\n          // Rounding up may mean the previous digit has to be rounded up and so on.\r\n          for (--baseOut; ++xc[--d] > baseOut;) {\r\n            xc[d] = 0;\r\n\r\n            if (!d) {\r\n              ++e;\r\n              xc = [1].concat(xc);\r\n            }\r\n          }\r\n        }\r\n\r\n        // Determine trailing zeros.\r\n        for (k = xc.length; !xc[--k];);\r\n\r\n        // E.g. [4, 11, 15] becomes 4bf.\r\n        for (i = 0, str = ''; i <= k; str += alphabet.charAt(xc[i++]));\r\n\r\n        // Add leading zeros, decimal point and trailing zeros as required.\r\n        str = toFixedPoint(str, e, alphabet.charAt(0));\r\n      }\r\n\r\n      // The caller will add the sign.\r\n      return str;\r\n    };\r\n  })();\r\n\r\n\r\n  // Perform division in the specified base. Called by div and convertBase.\r\n  div = (function () {\r\n\r\n    // Assume non-zero x and k.\r\n    function multiply(x, k, base) {\r\n      var m, temp, xlo, xhi,\r\n        carry = 0,\r\n        i = x.length,\r\n        klo = k % SQRT_BASE,\r\n        khi = k / SQRT_BASE | 0;\r\n\r\n      for (x = x.slice(); i--;) {\r\n        xlo = x[i] % SQRT_BASE;\r\n        xhi = x[i] / SQRT_BASE | 0;\r\n        m = khi * xlo + xhi * klo;\r\n        temp = klo * xlo + ((m % SQRT_BASE) * SQRT_BASE) + carry;\r\n        carry = (temp / base | 0) + (m / SQRT_BASE | 0) + khi * xhi;\r\n        x[i] = temp % base;\r\n      }\r\n\r\n      if (carry) x = [carry].concat(x);\r\n\r\n      return x;\r\n    }\r\n\r\n    function compare(a, b, aL, bL) {\r\n      var i, cmp;\r\n\r\n      if (aL != bL) {\r\n        cmp = aL > bL ? 1 : -1;\r\n      } else {\r\n\r\n        for (i = cmp = 0; i < aL; i++) {\r\n\r\n          if (a[i] != b[i]) {\r\n            cmp = a[i] > b[i] ? 1 : -1;\r\n            break;\r\n          }\r\n        }\r\n      }\r\n\r\n      return cmp;\r\n    }\r\n\r\n    function subtract(a, b, aL, base) {\r\n      var i = 0;\r\n\r\n      // Subtract b from a.\r\n      for (; aL--;) {\r\n        a[aL] -= i;\r\n        i = a[aL] < b[aL] ? 1 : 0;\r\n        a[aL] = i * base + a[aL] - b[aL];\r\n      }\r\n\r\n      // Remove leading zeros.\r\n      for (; !a[0] && a.length > 1; a.splice(0, 1));\r\n    }\r\n\r\n    // x: dividend, y: divisor.\r\n    return function (x, y, dp, rm, base) {\r\n      var cmp, e, i, more, n, prod, prodL, q, qc, rem, remL, rem0, xi, xL, yc0,\r\n        yL, yz,\r\n        s = x.s == y.s ? 1 : -1,\r\n        xc = x.c,\r\n        yc = y.c;\r\n\r\n      // Either NaN, Infinity or 0?\r\n      if (!xc || !xc[0] || !yc || !yc[0]) {\r\n\r\n        return new BigNumber(\r\n\r\n         // Return NaN if either NaN, or both Infinity or 0.\r\n         !x.s || !y.s || (xc ? yc && xc[0] == yc[0] : !yc) ? NaN :\r\n\r\n          // Return ±0 if x is ±0 or y is ±Infinity, or return ±Infinity as y is ±0.\r\n          xc && xc[0] == 0 || !yc ? s * 0 : s / 0\r\n       );\r\n      }\r\n\r\n      q = new BigNumber(s);\r\n      qc = q.c = [];\r\n      e = x.e - y.e;\r\n      s = dp + e + 1;\r\n\r\n      if (!base) {\r\n        base = BASE;\r\n        e = bitFloor(x.e / LOG_BASE) - bitFloor(y.e / LOG_BASE);\r\n        s = s / LOG_BASE | 0;\r\n      }\r\n\r\n      // Result exponent may be one less then the current value of e.\r\n      // The coefficients of the BigNumbers from convertBase may have trailing zeros.\r\n      for (i = 0; yc[i] == (xc[i] || 0); i++);\r\n\r\n      if (yc[i] > (xc[i] || 0)) e--;\r\n\r\n      if (s < 0) {\r\n        qc.push(1);\r\n        more = true;\r\n      } else {\r\n        xL = xc.length;\r\n        yL = yc.length;\r\n        i = 0;\r\n        s += 2;\r\n\r\n        // Normalise xc and yc so highest order digit of yc is >= base / 2.\r\n\r\n        n = mathfloor(base / (yc[0] + 1));\r\n\r\n        // Not necessary, but to handle odd bases where yc[0] == (base / 2) - 1.\r\n        // if (n > 1 || n++ == 1 && yc[0] < base / 2) {\r\n        if (n > 1) {\r\n          yc = multiply(yc, n, base);\r\n          xc = multiply(xc, n, base);\r\n          yL = yc.length;\r\n          xL = xc.length;\r\n        }\r\n\r\n        xi = yL;\r\n        rem = xc.slice(0, yL);\r\n        remL = rem.length;\r\n\r\n        // Add zeros to make remainder as long as divisor.\r\n        for (; remL < yL; rem[remL++] = 0);\r\n        yz = yc.slice();\r\n        yz = [0].concat(yz);\r\n        yc0 = yc[0];\r\n        if (yc[1] >= base / 2) yc0++;\r\n        // Not necessary, but to prevent trial digit n > base, when using base 3.\r\n        // else if (base == 3 && yc0 == 1) yc0 = 1 + 1e-15;\r\n\r\n        do {\r\n          n = 0;\r\n\r\n          // Compare divisor and remainder.\r\n          cmp = compare(yc, rem, yL, remL);\r\n\r\n          // If divisor < remainder.\r\n          if (cmp < 0) {\r\n\r\n            // Calculate trial digit, n.\r\n\r\n            rem0 = rem[0];\r\n            if (yL != remL) rem0 = rem0 * base + (rem[1] || 0);\r\n\r\n            // n is how many times the divisor goes into the current remainder.\r\n            n = mathfloor(rem0 / yc0);\r\n\r\n            //  Algorithm:\r\n            //  product = divisor multiplied by trial digit (n).\r\n            //  Compare product and remainder.\r\n            //  If product is greater than remainder:\r\n            //    Subtract divisor from product, decrement trial digit.\r\n            //  Subtract product from remainder.\r\n            //  If product was less than remainder at the last compare:\r\n            //    Compare new remainder and divisor.\r\n            //    If remainder is greater than divisor:\r\n            //      Subtract divisor from remainder, increment trial digit.\r\n\r\n            if (n > 1) {\r\n\r\n              // n may be > base only when base is 3.\r\n              if (n >= base) n = base - 1;\r\n\r\n              // product = divisor * trial digit.\r\n              prod = multiply(yc, n, base);\r\n              prodL = prod.length;\r\n              remL = rem.length;\r\n\r\n              // Compare product and remainder.\r\n              // If product > remainder then trial digit n too high.\r\n              // n is 1 too high about 5% of the time, and is not known to have\r\n              // ever been more than 1 too high.\r\n              while (compare(prod, rem, prodL, remL) == 1) {\r\n                n--;\r\n\r\n                // Subtract divisor from product.\r\n                subtract(prod, yL < prodL ? yz : yc, prodL, base);\r\n                prodL = prod.length;\r\n                cmp = 1;\r\n              }\r\n            } else {\r\n\r\n              // n is 0 or 1, cmp is -1.\r\n              // If n is 0, there is no need to compare yc and rem again below,\r\n              // so change cmp to 1 to avoid it.\r\n              // If n is 1, leave cmp as -1, so yc and rem are compared again.\r\n              if (n == 0) {\r\n\r\n                // divisor < remainder, so n must be at least 1.\r\n                cmp = n = 1;\r\n              }\r\n\r\n              // product = divisor\r\n              prod = yc.slice();\r\n              prodL = prod.length;\r\n            }\r\n\r\n            if (prodL < remL) prod = [0].concat(prod);\r\n\r\n            // Subtract product from remainder.\r\n            subtract(rem, prod, remL, base);\r\n            remL = rem.length;\r\n\r\n             // If product was < remainder.\r\n            if (cmp == -1) {\r\n\r\n              // Compare divisor and new remainder.\r\n              // If divisor < new remainder, subtract divisor from remainder.\r\n              // Trial digit n too low.\r\n              // n is 1 too low about 5% of the time, and very rarely 2 too low.\r\n              while (compare(yc, rem, yL, remL) < 1) {\r\n                n++;\r\n\r\n                // Subtract divisor from remainder.\r\n                subtract(rem, yL < remL ? yz : yc, remL, base);\r\n                remL = rem.length;\r\n              }\r\n            }\r\n          } else if (cmp === 0) {\r\n            n++;\r\n            rem = [0];\r\n          } // else cmp === 1 and n will be 0\r\n\r\n          // Add the next digit, n, to the result array.\r\n          qc[i++] = n;\r\n\r\n          // Update the remainder.\r\n          if (rem[0]) {\r\n            rem[remL++] = xc[xi] || 0;\r\n          } else {\r\n            rem = [xc[xi]];\r\n            remL = 1;\r\n          }\r\n        } while ((xi++ < xL || rem[0] != null) && s--);\r\n\r\n        more = rem[0] != null;\r\n\r\n        // Leading zero?\r\n        if (!qc[0]) qc.splice(0, 1);\r\n      }\r\n\r\n      if (base == BASE) {\r\n\r\n        // To calculate q.e, first get the number of digits of qc[0].\r\n        for (i = 1, s = qc[0]; s >= 10; s /= 10, i++);\r\n\r\n        round(q, dp + (q.e = i + e * LOG_BASE - 1) + 1, rm, more);\r\n\r\n      // Caller is convertBase.\r\n      } else {\r\n        q.e = e;\r\n        q.r = +more;\r\n      }\r\n\r\n      return q;\r\n    };\r\n  })();\r\n\r\n\r\n  /*\r\n   * Return a string representing the value of BigNumber n in fixed-point or exponential\r\n   * notation rounded to the specified decimal places or significant digits.\r\n   *\r\n   * n: a BigNumber.\r\n   * i: the index of the last digit required (i.e. the digit that may be rounded up).\r\n   * rm: the rounding mode.\r\n   * id: 1 (toExponential) or 2 (toPrecision).\r\n   */\r\n  function format(n, i, rm, id) {\r\n    var c0, e, ne, len, str;\r\n\r\n    if (rm == null) rm = ROUNDING_MODE;\r\n    else intCheck(rm, 0, 8);\r\n\r\n    if (!n.c) return n.toString();\r\n\r\n    c0 = n.c[0];\r\n    ne = n.e;\r\n\r\n    if (i == null) {\r\n      str = coeffToString(n.c);\r\n      str = id == 1 || id == 2 && (ne <= TO_EXP_NEG || ne >= TO_EXP_POS)\r\n       ? toExponential(str, ne)\r\n       : toFixedPoint(str, ne, '0');\r\n    } else {\r\n      n = round(new BigNumber(n), i, rm);\r\n\r\n      // n.e may have changed if the value was rounded up.\r\n      e = n.e;\r\n\r\n      str = coeffToString(n.c);\r\n      len = str.length;\r\n\r\n      // toPrecision returns exponential notation if the number of significant digits\r\n      // specified is less than the number of digits necessary to represent the integer\r\n      // part of the value in fixed-point notation.\r\n\r\n      // Exponential notation.\r\n      if (id == 1 || id == 2 && (i <= e || e <= TO_EXP_NEG)) {\r\n\r\n        // Append zeros?\r\n        for (; len < i; str += '0', len++);\r\n        str = toExponential(str, e);\r\n\r\n      // Fixed-point notation.\r\n      } else {\r\n        i -= ne;\r\n        str = toFixedPoint(str, e, '0');\r\n\r\n        // Append zeros?\r\n        if (e + 1 > len) {\r\n          if (--i > 0) for (str += '.'; i--; str += '0');\r\n        } else {\r\n          i += e - len;\r\n          if (i > 0) {\r\n            if (e + 1 == len) str += '.';\r\n            for (; i--; str += '0');\r\n          }\r\n        }\r\n      }\r\n    }\r\n\r\n    return n.s < 0 && c0 ? '-' + str : str;\r\n  }\r\n\r\n\r\n  // Handle BigNumber.max and BigNumber.min.\r\n  // If any number is NaN, return NaN.\r\n  function maxOrMin(args, n) {\r\n    var k, y,\r\n      i = 1,\r\n      x = new BigNumber(args[0]);\r\n\r\n    for (; i < args.length; i++) {\r\n      y = new BigNumber(args[i]);\r\n      if (!y.s || (k = compare(x, y)) === n || k === 0 && x.s === n) {\r\n        x = y;\r\n      }\r\n    }\r\n\r\n    return x;\r\n  }\r\n\r\n\r\n  /*\r\n   * Strip trailing zeros, calculate base 10 exponent and check against MIN_EXP and MAX_EXP.\r\n   * Called by minus, plus and times.\r\n   */\r\n  function normalise(n, c, e) {\r\n    var i = 1,\r\n      j = c.length;\r\n\r\n     // Remove trailing zeros.\r\n    for (; !c[--j]; c.pop());\r\n\r\n    // Calculate the base 10 exponent. First get the number of digits of c[0].\r\n    for (j = c[0]; j >= 10; j /= 10, i++);\r\n\r\n    // Overflow?\r\n    if ((e = i + e * LOG_BASE - 1) > MAX_EXP) {\r\n\r\n      // Infinity.\r\n      n.c = n.e = null;\r\n\r\n    // Underflow?\r\n    } else if (e < MIN_EXP) {\r\n\r\n      // Zero.\r\n      n.c = [n.e = 0];\r\n    } else {\r\n      n.e = e;\r\n      n.c = c;\r\n    }\r\n\r\n    return n;\r\n  }\r\n\r\n\r\n  // Handle values that fail the validity test in BigNumber.\r\n  parseNumeric = (function () {\r\n    var basePrefix = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i,\r\n      dotAfter = /^([^.]+)\\.$/,\r\n      dotBefore = /^\\.([^.]+)$/,\r\n      isInfinityOrNaN = /^-?(Infinity|NaN)$/,\r\n      whitespaceOrPlus = /^\\s*\\+(?=[\\w.])|^\\s+|\\s+$/g;\r\n\r\n    return function (x, str, isNum, b) {\r\n      var base,\r\n        s = isNum ? str : str.replace(whitespaceOrPlus, '');\r\n\r\n      // No exception on ±Infinity or NaN.\r\n      if (isInfinityOrNaN.test(s)) {\r\n        x.s = isNaN(s) ? null : s < 0 ? -1 : 1;\r\n      } else {\r\n        if (!isNum) {\r\n\r\n          // basePrefix = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i\r\n          s = s.replace(basePrefix, function (m, p1, p2) {\r\n            base = (p2 = p2.toLowerCase()) == 'x' ? 16 : p2 == 'b' ? 2 : 8;\r\n            return !b || b == base ? p1 : m;\r\n          });\r\n\r\n          if (b) {\r\n            base = b;\r\n\r\n            // E.g. '1.' to '1', '.1' to '0.1'\r\n            s = s.replace(dotAfter, '$1').replace(dotBefore, '0.$1');\r\n          }\r\n\r\n          if (str != s) return new BigNumber(s, base);\r\n        }\r\n\r\n        // '[BigNumber Error] Not a number: {n}'\r\n        // '[BigNumber Error] Not a base {b} number: {n}'\r\n        if (BigNumber.DEBUG) {\r\n          throw Error\r\n            (bignumberError + 'Not a' + (b ? ' base ' + b : '') + ' number: ' + str);\r\n        }\r\n\r\n        // NaN\r\n        x.s = null;\r\n      }\r\n\r\n      x.c = x.e = null;\r\n    }\r\n  })();\r\n\r\n\r\n  /*\r\n   * Round x to sd significant digits using rounding mode rm. Check for over/under-flow.\r\n   * If r is truthy, it is known that there are more digits after the rounding digit.\r\n   */\r\n  function round(x, sd, rm, r) {\r\n    var d, i, j, k, n, ni, rd,\r\n      xc = x.c,\r\n      pows10 = POWS_TEN;\r\n\r\n    // if x is not Infinity or NaN...\r\n    if (xc) {\r\n\r\n      // rd is the rounding digit, i.e. the digit after the digit that may be rounded up.\r\n      // n is a base 1e14 number, the value of the element of array x.c containing rd.\r\n      // ni is the index of n within x.c.\r\n      // d is the number of digits of n.\r\n      // i is the index of rd within n including leading zeros.\r\n      // j is the actual index of rd within n (if < 0, rd is a leading zero).\r\n      out: {\r\n\r\n        // Get the number of digits of the first element of xc.\r\n        for (d = 1, k = xc[0]; k >= 10; k /= 10, d++);\r\n        i = sd - d;\r\n\r\n        // If the rounding digit is in the first element of xc...\r\n        if (i < 0) {\r\n          i += LOG_BASE;\r\n          j = sd;\r\n          n = xc[ni = 0];\r\n\r\n          // Get the rounding digit at index j of n.\r\n          rd = mathfloor(n / pows10[d - j - 1] % 10);\r\n        } else {\r\n          ni = mathceil((i + 1) / LOG_BASE);\r\n\r\n          if (ni >= xc.length) {\r\n\r\n            if (r) {\r\n\r\n              // Needed by sqrt.\r\n              for (; xc.length <= ni; xc.push(0));\r\n              n = rd = 0;\r\n              d = 1;\r\n              i %= LOG_BASE;\r\n              j = i - LOG_BASE + 1;\r\n            } else {\r\n              break out;\r\n            }\r\n          } else {\r\n            n = k = xc[ni];\r\n\r\n            // Get the number of digits of n.\r\n            for (d = 1; k >= 10; k /= 10, d++);\r\n\r\n            // Get the index of rd within n.\r\n            i %= LOG_BASE;\r\n\r\n            // Get the index of rd within n, adjusted for leading zeros.\r\n            // The number of leading zeros of n is given by LOG_BASE - d.\r\n            j = i - LOG_BASE + d;\r\n\r\n            // Get the rounding digit at index j of n.\r\n            rd = j < 0 ? 0 : mathfloor(n / pows10[d - j - 1] % 10);\r\n          }\r\n        }\r\n\r\n        r = r || sd < 0 ||\r\n\r\n        // Are there any non-zero digits after the rounding digit?\r\n        // The expression  n % pows10[d - j - 1]  returns all digits of n to the right\r\n        // of the digit at j, e.g. if n is 908714 and j is 2, the expression gives 714.\r\n         xc[ni + 1] != null || (j < 0 ? n : n % pows10[d - j - 1]);\r\n\r\n        r = rm < 4\r\n         ? (rd || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n         : rd > 5 || rd == 5 && (rm == 4 || r || rm == 6 &&\r\n\r\n          // Check whether the digit to the left of the rounding digit is odd.\r\n          ((i > 0 ? j > 0 ? n / pows10[d - j] : 0 : xc[ni - 1]) % 10) & 1 ||\r\n           rm == (x.s < 0 ? 8 : 7));\r\n\r\n        if (sd < 1 || !xc[0]) {\r\n          xc.length = 0;\r\n\r\n          if (r) {\r\n\r\n            // Convert sd to decimal places.\r\n            sd -= x.e + 1;\r\n\r\n            // 1, 0.1, 0.01, 0.001, 0.0001 etc.\r\n            xc[0] = pows10[(LOG_BASE - sd % LOG_BASE) % LOG_BASE];\r\n            x.e = -sd || 0;\r\n          } else {\r\n\r\n            // Zero.\r\n            xc[0] = x.e = 0;\r\n          }\r\n\r\n          return x;\r\n        }\r\n\r\n        // Remove excess digits.\r\n        if (i == 0) {\r\n          xc.length = ni;\r\n          k = 1;\r\n          ni--;\r\n        } else {\r\n          xc.length = ni + 1;\r\n          k = pows10[LOG_BASE - i];\r\n\r\n          // E.g. 56700 becomes 56000 if 7 is the rounding digit.\r\n          // j > 0 means i > number of leading zeros of n.\r\n          xc[ni] = j > 0 ? mathfloor(n / pows10[d - j] % pows10[j]) * k : 0;\r\n        }\r\n\r\n        // Round up?\r\n        if (r) {\r\n\r\n          for (; ;) {\r\n\r\n            // If the digit to be rounded up is in the first element of xc...\r\n            if (ni == 0) {\r\n\r\n              // i will be the length of xc[0] before k is added.\r\n              for (i = 1, j = xc[0]; j >= 10; j /= 10, i++);\r\n              j = xc[0] += k;\r\n              for (k = 1; j >= 10; j /= 10, k++);\r\n\r\n              // if i != k the length has increased.\r\n              if (i != k) {\r\n                x.e++;\r\n                if (xc[0] == BASE) xc[0] = 1;\r\n              }\r\n\r\n              break;\r\n            } else {\r\n              xc[ni] += k;\r\n              if (xc[ni] != BASE) break;\r\n              xc[ni--] = 0;\r\n              k = 1;\r\n            }\r\n          }\r\n        }\r\n\r\n        // Remove trailing zeros.\r\n        for (i = xc.length; xc[--i] === 0; xc.pop());\r\n      }\r\n\r\n      // Overflow? Infinity.\r\n      if (x.e > MAX_EXP) {\r\n        x.c = x.e = null;\r\n\r\n      // Underflow? Zero.\r\n      } else if (x.e < MIN_EXP) {\r\n        x.c = [x.e = 0];\r\n      }\r\n    }\r\n\r\n    return x;\r\n  }\r\n\r\n\r\n  function valueOf(n) {\r\n    var str,\r\n      e = n.e;\r\n\r\n    if (e === null) return n.toString();\r\n\r\n    str = coeffToString(n.c);\r\n\r\n    str = e <= TO_EXP_NEG || e >= TO_EXP_POS\r\n      ? toExponential(str, e)\r\n      : toFixedPoint(str, e, '0');\r\n\r\n    return n.s < 0 ? '-' + str : str;\r\n  }\r\n\r\n\r\n  // PROTOTYPE/INSTANCE METHODS\r\n\r\n\r\n  /*\r\n   * Return a new BigNumber whose value is the absolute value of this BigNumber.\r\n   */\r\n  P.absoluteValue = P.abs = function () {\r\n    var x = new BigNumber(this);\r\n    if (x.s < 0) x.s = 1;\r\n    return x;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return\r\n   *   1 if the value of this BigNumber is greater than the value of BigNumber(y, b),\r\n   *   -1 if the value of this BigNumber is less than the value of BigNumber(y, b),\r\n   *   0 if they have the same value,\r\n   *   or null if the value of either is NaN.\r\n   */\r\n  P.comparedTo = function (y, b) {\r\n    return compare(this, new BigNumber(y, b));\r\n  };\r\n\r\n\r\n  /*\r\n   * If dp is undefined or null or true or false, return the number of decimal places of the\r\n   * value of this BigNumber, or null if the value of this BigNumber is ±Infinity or NaN.\r\n   *\r\n   * Otherwise, if dp is a number, return a new BigNumber whose value is the value of this\r\n   * BigNumber rounded to a maximum of dp decimal places using rounding mode rm, or\r\n   * ROUNDING_MODE if rm is omitted.\r\n   *\r\n   * [dp] {number} Decimal places: integer, 0 to MAX inclusive.\r\n   * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n   *\r\n   * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n   */\r\n  P.decimalPlaces = P.dp = function (dp, rm) {\r\n    var c, n, v,\r\n      x = this;\r\n\r\n    if (dp != null) {\r\n      intCheck(dp, 0, MAX);\r\n      if (rm == null) rm = ROUNDING_MODE;\r\n      else intCheck(rm, 0, 8);\r\n\r\n      return round(new BigNumber(x), dp + x.e + 1, rm);\r\n    }\r\n\r\n    if (!(c = x.c)) return null;\r\n    n = ((v = c.length - 1) - bitFloor(this.e / LOG_BASE)) * LOG_BASE;\r\n\r\n    // Subtract the number of trailing zeros of the last number.\r\n    if (v = c[v]) for (; v % 10 == 0; v /= 10, n--);\r\n    if (n < 0) n = 0;\r\n\r\n    return n;\r\n  };\r\n\r\n\r\n  /*\r\n   *  n / 0 = I\r\n   *  n / N = N\r\n   *  n / I = 0\r\n   *  0 / n = 0\r\n   *  0 / 0 = N\r\n   *  0 / N = N\r\n   *  0 / I = 0\r\n   *  N / n = N\r\n   *  N / 0 = N\r\n   *  N / N = N\r\n   *  N / I = N\r\n   *  I / n = I\r\n   *  I / 0 = I\r\n   *  I / N = N\r\n   *  I / I = N\r\n   *\r\n   * Return a new BigNumber whose value is the value of this BigNumber divided by the value of\r\n   * BigNumber(y, b), rounded according to DECIMAL_PLACES and ROUNDING_MODE.\r\n   */\r\n  P.dividedBy = P.div = function (y, b) {\r\n    return div(this, new BigNumber(y, b), DECIMAL_PLACES, ROUNDING_MODE);\r\n  };\r\n\r\n\r\n  /*\r\n   * Return a new BigNumber whose value is the integer part of dividing the value of this\r\n   * BigNumber by the value of BigNumber(y, b).\r\n   */\r\n  P.dividedToIntegerBy = P.idiv = function (y, b) {\r\n    return div(this, new BigNumber(y, b), 0, 1);\r\n  };\r\n\r\n\r\n  /*\r\n   * Return a BigNumber whose value is the value of this BigNumber exponentiated by n.\r\n   *\r\n   * If m is present, return the result modulo m.\r\n   * If n is negative round according to DECIMAL_PLACES and ROUNDING_MODE.\r\n   * If POW_PRECISION is non-zero and m is not present, round to POW_PRECISION using ROUNDING_MODE.\r\n   *\r\n   * The modular power operation works efficiently when x, n, and m are integers, otherwise it\r\n   * is equivalent to calculating x.exponentiatedBy(n).modulo(m) with a POW_PRECISION of 0.\r\n   *\r\n   * n {number|string|BigNumber} The exponent. An integer.\r\n   * [m] {number|string|BigNumber} The modulus.\r\n   *\r\n   * '[BigNumber Error] Exponent not an integer: {n}'\r\n   */\r\n  P.exponentiatedBy = P.pow = function (n, m) {\r\n    var half, isModExp, i, k, more, nIsBig, nIsNeg, nIsOdd, y,\r\n      x = this;\r\n\r\n    n = new BigNumber(n);\r\n\r\n    // Allow NaN and ±Infinity, but not other non-integers.\r\n    if (n.c && !n.isInteger()) {\r\n      throw Error\r\n        (bignumberError + 'Exponent not an integer: ' + valueOf(n));\r\n    }\r\n\r\n    if (m != null) m = new BigNumber(m);\r\n\r\n    // Exponent of MAX_SAFE_INTEGER is 15.\r\n    nIsBig = n.e > 14;\r\n\r\n    // If x is NaN, ±Infinity, ±0 or ±1, or n is ±Infinity, NaN or ±0.\r\n    if (!x.c || !x.c[0] || x.c[0] == 1 && !x.e && x.c.length == 1 || !n.c || !n.c[0]) {\r\n\r\n      // The sign of the result of pow when x is negative depends on the evenness of n.\r\n      // If +n overflows to ±Infinity, the evenness of n would be not be known.\r\n      y = new BigNumber(Math.pow(+valueOf(x), nIsBig ? n.s * (2 - isOdd(n)) : +valueOf(n)));\r\n      return m ? y.mod(m) : y;\r\n    }\r\n\r\n    nIsNeg = n.s < 0;\r\n\r\n    if (m) {\r\n\r\n      // x % m returns NaN if abs(m) is zero, or m is NaN.\r\n      if (m.c ? !m.c[0] : !m.s) return new BigNumber(NaN);\r\n\r\n      isModExp = !nIsNeg && x.isInteger() && m.isInteger();\r\n\r\n      if (isModExp) x = x.mod(m);\r\n\r\n    // Overflow to ±Infinity: >=2**1e10 or >=1.0000024**1e15.\r\n    // Underflow to ±0: <=0.79**1e10 or <=0.9999975**1e15.\r\n    } else if (n.e > 9 && (x.e > 0 || x.e < -1 || (x.e == 0\r\n      // [1, 240000000]\r\n      ? x.c[0] > 1 || nIsBig && x.c[1] >= 24e7\r\n      // [80000000000000]  [99999750000000]\r\n      : x.c[0] < 8e13 || nIsBig && x.c[0] <= 9999975e7))) {\r\n\r\n      // If x is negative and n is odd, k = -0, else k = 0.\r\n      k = x.s < 0 && isOdd(n) ? -0 : 0;\r\n\r\n      // If x >= 1, k = ±Infinity.\r\n      if (x.e > -1) k = 1 / k;\r\n\r\n      // If n is negative return ±0, else return ±Infinity.\r\n      return new BigNumber(nIsNeg ? 1 / k : k);\r\n\r\n    } else if (POW_PRECISION) {\r\n\r\n      // Truncating each coefficient array to a length of k after each multiplication\r\n      // equates to truncating significant digits to POW_PRECISION + [28, 41],\r\n      // i.e. there will be a minimum of 28 guard digits retained.\r\n      k = mathceil(POW_PRECISION / LOG_BASE + 2);\r\n    }\r\n\r\n    if (nIsBig) {\r\n      half = new BigNumber(0.5);\r\n      if (nIsNeg) n.s = 1;\r\n      nIsOdd = isOdd(n);\r\n    } else {\r\n      i = Math.abs(+valueOf(n));\r\n      nIsOdd = i % 2;\r\n    }\r\n\r\n    y = new BigNumber(ONE);\r\n\r\n    // Performs 54 loop iterations for n of 9007199254740991.\r\n    for (; ;) {\r\n\r\n      if (nIsOdd) {\r\n        y = y.times(x);\r\n        if (!y.c) break;\r\n\r\n        if (k) {\r\n          if (y.c.length > k) y.c.length = k;\r\n        } else if (isModExp) {\r\n          y = y.mod(m);    //y = y.minus(div(y, m, 0, MODULO_MODE).times(m));\r\n        }\r\n      }\r\n\r\n      if (i) {\r\n        i = mathfloor(i / 2);\r\n        if (i === 0) break;\r\n        nIsOdd = i % 2;\r\n      } else {\r\n        n = n.times(half);\r\n        round(n, n.e + 1, 1);\r\n\r\n        if (n.e > 14) {\r\n          nIsOdd = isOdd(n);\r\n        } else {\r\n          i = +valueOf(n);\r\n          if (i === 0) break;\r\n          nIsOdd = i % 2;\r\n        }\r\n      }\r\n\r\n      x = x.times(x);\r\n\r\n      if (k) {\r\n        if (x.c && x.c.length > k) x.c.length = k;\r\n      } else if (isModExp) {\r\n        x = x.mod(m);    //x = x.minus(div(x, m, 0, MODULO_MODE).times(m));\r\n      }\r\n    }\r\n\r\n    if (isModExp) return y;\r\n    if (nIsNeg) y = ONE.div(y);\r\n\r\n    return m ? y.mod(m) : k ? round(y, POW_PRECISION, ROUNDING_MODE, more) : y;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return a new BigNumber whose value is the value of this BigNumber rounded to an integer\r\n   * using rounding mode rm, or ROUNDING_MODE if rm is omitted.\r\n   *\r\n   * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n   *\r\n   * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {rm}'\r\n   */\r\n  P.integerValue = function (rm) {\r\n    var n = new BigNumber(this);\r\n    if (rm == null) rm = ROUNDING_MODE;\r\n    else intCheck(rm, 0, 8);\r\n    return round(n, n.e + 1, rm);\r\n  };\r\n\r\n\r\n  /*\r\n   * Return true if the value of this BigNumber is equal to the value of BigNumber(y, b),\r\n   * otherwise return false.\r\n   */\r\n  P.isEqualTo = P.eq = function (y, b) {\r\n    return compare(this, new BigNumber(y, b)) === 0;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return true if the value of this BigNumber is a finite number, otherwise return false.\r\n   */\r\n  P.isFinite = function () {\r\n    return !!this.c;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return true if the value of this BigNumber is greater than the value of BigNumber(y, b),\r\n   * otherwise return false.\r\n   */\r\n  P.isGreaterThan = P.gt = function (y, b) {\r\n    return compare(this, new BigNumber(y, b)) > 0;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return true if the value of this BigNumber is greater than or equal to the value of\r\n   * BigNumber(y, b), otherwise return false.\r\n   */\r\n  P.isGreaterThanOrEqualTo = P.gte = function (y, b) {\r\n    return (b = compare(this, new BigNumber(y, b))) === 1 || b === 0;\r\n\r\n  };\r\n\r\n\r\n  /*\r\n   * Return true if the value of this BigNumber is an integer, otherwise return false.\r\n   */\r\n  P.isInteger = function () {\r\n    return !!this.c && bitFloor(this.e / LOG_BASE) > this.c.length - 2;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return true if the value of this BigNumber is less than the value of BigNumber(y, b),\r\n   * otherwise return false.\r\n   */\r\n  P.isLessThan = P.lt = function (y, b) {\r\n    return compare(this, new BigNumber(y, b)) < 0;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return true if the value of this BigNumber is less than or equal to the value of\r\n   * BigNumber(y, b), otherwise return false.\r\n   */\r\n  P.isLessThanOrEqualTo = P.lte = function (y, b) {\r\n    return (b = compare(this, new BigNumber(y, b))) === -1 || b === 0;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return true if the value of this BigNumber is NaN, otherwise return false.\r\n   */\r\n  P.isNaN = function () {\r\n    return !this.s;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return true if the value of this BigNumber is negative, otherwise return false.\r\n   */\r\n  P.isNegative = function () {\r\n    return this.s < 0;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return true if the value of this BigNumber is positive, otherwise return false.\r\n   */\r\n  P.isPositive = function () {\r\n    return this.s > 0;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return true if the value of this BigNumber is 0 or -0, otherwise return false.\r\n   */\r\n  P.isZero = function () {\r\n    return !!this.c && this.c[0] == 0;\r\n  };\r\n\r\n\r\n  /*\r\n   *  n - 0 = n\r\n   *  n - N = N\r\n   *  n - I = -I\r\n   *  0 - n = -n\r\n   *  0 - 0 = 0\r\n   *  0 - N = N\r\n   *  0 - I = -I\r\n   *  N - n = N\r\n   *  N - 0 = N\r\n   *  N - N = N\r\n   *  N - I = N\r\n   *  I - n = I\r\n   *  I - 0 = I\r\n   *  I - N = N\r\n   *  I - I = N\r\n   *\r\n   * Return a new BigNumber whose value is the value of this BigNumber minus the value of\r\n   * BigNumber(y, b).\r\n   */\r\n  P.minus = function (y, b) {\r\n    var i, j, t, xLTy,\r\n      x = this,\r\n      a = x.s;\r\n\r\n    y = new BigNumber(y, b);\r\n    b = y.s;\r\n\r\n    // Either NaN?\r\n    if (!a || !b) return new BigNumber(NaN);\r\n\r\n    // Signs differ?\r\n    if (a != b) {\r\n      y.s = -b;\r\n      return x.plus(y);\r\n    }\r\n\r\n    var xe = x.e / LOG_BASE,\r\n      ye = y.e / LOG_BASE,\r\n      xc = x.c,\r\n      yc = y.c;\r\n\r\n    if (!xe || !ye) {\r\n\r\n      // Either Infinity?\r\n      if (!xc || !yc) return xc ? (y.s = -b, y) : new BigNumber(yc ? x : NaN);\r\n\r\n      // Either zero?\r\n      if (!xc[0] || !yc[0]) {\r\n\r\n        // Return y if y is non-zero, x if x is non-zero, or zero if both are zero.\r\n        return yc[0] ? (y.s = -b, y) : new BigNumber(xc[0] ? x :\r\n\r\n         // IEEE 754 (2008) 6.3: n - n = -0 when rounding to -Infinity\r\n         ROUNDING_MODE == 3 ? -0 : 0);\r\n      }\r\n    }\r\n\r\n    xe = bitFloor(xe);\r\n    ye = bitFloor(ye);\r\n    xc = xc.slice();\r\n\r\n    // Determine which is the bigger number.\r\n    if (a = xe - ye) {\r\n\r\n      if (xLTy = a < 0) {\r\n        a = -a;\r\n        t = xc;\r\n      } else {\r\n        ye = xe;\r\n        t = yc;\r\n      }\r\n\r\n      t.reverse();\r\n\r\n      // Prepend zeros to equalise exponents.\r\n      for (b = a; b--; t.push(0));\r\n      t.reverse();\r\n    } else {\r\n\r\n      // Exponents equal. Check digit by digit.\r\n      j = (xLTy = (a = xc.length) < (b = yc.length)) ? a : b;\r\n\r\n      for (a = b = 0; b < j; b++) {\r\n\r\n        if (xc[b] != yc[b]) {\r\n          xLTy = xc[b] < yc[b];\r\n          break;\r\n        }\r\n      }\r\n    }\r\n\r\n    // x < y? Point xc to the array of the bigger number.\r\n    if (xLTy) {\r\n      t = xc;\r\n      xc = yc;\r\n      yc = t;\r\n      y.s = -y.s;\r\n    }\r\n\r\n    b = (j = yc.length) - (i = xc.length);\r\n\r\n    // Append zeros to xc if shorter.\r\n    // No need to add zeros to yc if shorter as subtract only needs to start at yc.length.\r\n    if (b > 0) for (; b--; xc[i++] = 0);\r\n    b = BASE - 1;\r\n\r\n    // Subtract yc from xc.\r\n    for (; j > a;) {\r\n\r\n      if (xc[--j] < yc[j]) {\r\n        for (i = j; i && !xc[--i]; xc[i] = b);\r\n        --xc[i];\r\n        xc[j] += BASE;\r\n      }\r\n\r\n      xc[j] -= yc[j];\r\n    }\r\n\r\n    // Remove leading zeros and adjust exponent accordingly.\r\n    for (; xc[0] == 0; xc.splice(0, 1), --ye);\r\n\r\n    // Zero?\r\n    if (!xc[0]) {\r\n\r\n      // Following IEEE 754 (2008) 6.3,\r\n      // n - n = +0  but  n - n = -0  when rounding towards -Infinity.\r\n      y.s = ROUNDING_MODE == 3 ? -1 : 1;\r\n      y.c = [y.e = 0];\r\n      return y;\r\n    }\r\n\r\n    // No need to check for Infinity as +x - +y != Infinity && -x - -y != Infinity\r\n    // for finite x and y.\r\n    return normalise(y, xc, ye);\r\n  };\r\n\r\n\r\n  /*\r\n   *   n % 0 =  N\r\n   *   n % N =  N\r\n   *   n % I =  n\r\n   *   0 % n =  0\r\n   *  -0 % n = -0\r\n   *   0 % 0 =  N\r\n   *   0 % N =  N\r\n   *   0 % I =  0\r\n   *   N % n =  N\r\n   *   N % 0 =  N\r\n   *   N % N =  N\r\n   *   N % I =  N\r\n   *   I % n =  N\r\n   *   I % 0 =  N\r\n   *   I % N =  N\r\n   *   I % I =  N\r\n   *\r\n   * Return a new BigNumber whose value is the value of this BigNumber modulo the value of\r\n   * BigNumber(y, b). The result depends on the value of MODULO_MODE.\r\n   */\r\n  P.modulo = P.mod = function (y, b) {\r\n    var q, s,\r\n      x = this;\r\n\r\n    y = new BigNumber(y, b);\r\n\r\n    // Return NaN if x is Infinity or NaN, or y is NaN or zero.\r\n    if (!x.c || !y.s || y.c && !y.c[0]) {\r\n      return new BigNumber(NaN);\r\n\r\n    // Return x if y is Infinity or x is zero.\r\n    } else if (!y.c || x.c && !x.c[0]) {\r\n      return new BigNumber(x);\r\n    }\r\n\r\n    if (MODULO_MODE == 9) {\r\n\r\n      // Euclidian division: q = sign(y) * floor(x / abs(y))\r\n      // r = x - qy    where  0 <= r < abs(y)\r\n      s = y.s;\r\n      y.s = 1;\r\n      q = div(x, y, 0, 3);\r\n      y.s = s;\r\n      q.s *= s;\r\n    } else {\r\n      q = div(x, y, 0, MODULO_MODE);\r\n    }\r\n\r\n    y = x.minus(q.times(y));\r\n\r\n    // To match JavaScript %, ensure sign of zero is sign of dividend.\r\n    if (!y.c[0] && MODULO_MODE == 1) y.s = x.s;\r\n\r\n    return y;\r\n  };\r\n\r\n\r\n  /*\r\n   *  n * 0 = 0\r\n   *  n * N = N\r\n   *  n * I = I\r\n   *  0 * n = 0\r\n   *  0 * 0 = 0\r\n   *  0 * N = N\r\n   *  0 * I = N\r\n   *  N * n = N\r\n   *  N * 0 = N\r\n   *  N * N = N\r\n   *  N * I = N\r\n   *  I * n = I\r\n   *  I * 0 = N\r\n   *  I * N = N\r\n   *  I * I = I\r\n   *\r\n   * Return a new BigNumber whose value is the value of this BigNumber multiplied by the value\r\n   * of BigNumber(y, b).\r\n   */\r\n  P.multipliedBy = P.times = function (y, b) {\r\n    var c, e, i, j, k, m, xcL, xlo, xhi, ycL, ylo, yhi, zc,\r\n      base, sqrtBase,\r\n      x = this,\r\n      xc = x.c,\r\n      yc = (y = new BigNumber(y, b)).c;\r\n\r\n    // Either NaN, ±Infinity or ±0?\r\n    if (!xc || !yc || !xc[0] || !yc[0]) {\r\n\r\n      // Return NaN if either is NaN, or one is 0 and the other is Infinity.\r\n      if (!x.s || !y.s || xc && !xc[0] && !yc || yc && !yc[0] && !xc) {\r\n        y.c = y.e = y.s = null;\r\n      } else {\r\n        y.s *= x.s;\r\n\r\n        // Return ±Infinity if either is ±Infinity.\r\n        if (!xc || !yc) {\r\n          y.c = y.e = null;\r\n\r\n        // Return ±0 if either is ±0.\r\n        } else {\r\n          y.c = [0];\r\n          y.e = 0;\r\n        }\r\n      }\r\n\r\n      return y;\r\n    }\r\n\r\n    e = bitFloor(x.e / LOG_BASE) + bitFloor(y.e / LOG_BASE);\r\n    y.s *= x.s;\r\n    xcL = xc.length;\r\n    ycL = yc.length;\r\n\r\n    // Ensure xc points to longer array and xcL to its length.\r\n    if (xcL < ycL) {\r\n      zc = xc;\r\n      xc = yc;\r\n      yc = zc;\r\n      i = xcL;\r\n      xcL = ycL;\r\n      ycL = i;\r\n    }\r\n\r\n    // Initialise the result array with zeros.\r\n    for (i = xcL + ycL, zc = []; i--; zc.push(0));\r\n\r\n    base = BASE;\r\n    sqrtBase = SQRT_BASE;\r\n\r\n    for (i = ycL; --i >= 0;) {\r\n      c = 0;\r\n      ylo = yc[i] % sqrtBase;\r\n      yhi = yc[i] / sqrtBase | 0;\r\n\r\n      for (k = xcL, j = i + k; j > i;) {\r\n        xlo = xc[--k] % sqrtBase;\r\n        xhi = xc[k] / sqrtBase | 0;\r\n        m = yhi * xlo + xhi * ylo;\r\n        xlo = ylo * xlo + ((m % sqrtBase) * sqrtBase) + zc[j] + c;\r\n        c = (xlo / base | 0) + (m / sqrtBase | 0) + yhi * xhi;\r\n        zc[j--] = xlo % base;\r\n      }\r\n\r\n      zc[j] = c;\r\n    }\r\n\r\n    if (c) {\r\n      ++e;\r\n    } else {\r\n      zc.splice(0, 1);\r\n    }\r\n\r\n    return normalise(y, zc, e);\r\n  };\r\n\r\n\r\n  /*\r\n   * Return a new BigNumber whose value is the value of this BigNumber negated,\r\n   * i.e. multiplied by -1.\r\n   */\r\n  P.negated = function () {\r\n    var x = new BigNumber(this);\r\n    x.s = -x.s || null;\r\n    return x;\r\n  };\r\n\r\n\r\n  /*\r\n   *  n + 0 = n\r\n   *  n + N = N\r\n   *  n + I = I\r\n   *  0 + n = n\r\n   *  0 + 0 = 0\r\n   *  0 + N = N\r\n   *  0 + I = I\r\n   *  N + n = N\r\n   *  N + 0 = N\r\n   *  N + N = N\r\n   *  N + I = N\r\n   *  I + n = I\r\n   *  I + 0 = I\r\n   *  I + N = N\r\n   *  I + I = I\r\n   *\r\n   * Return a new BigNumber whose value is the value of this BigNumber plus the value of\r\n   * BigNumber(y, b).\r\n   */\r\n  P.plus = function (y, b) {\r\n    var t,\r\n      x = this,\r\n      a = x.s;\r\n\r\n    y = new BigNumber(y, b);\r\n    b = y.s;\r\n\r\n    // Either NaN?\r\n    if (!a || !b) return new BigNumber(NaN);\r\n\r\n    // Signs differ?\r\n     if (a != b) {\r\n      y.s = -b;\r\n      return x.minus(y);\r\n    }\r\n\r\n    var xe = x.e / LOG_BASE,\r\n      ye = y.e / LOG_BASE,\r\n      xc = x.c,\r\n      yc = y.c;\r\n\r\n    if (!xe || !ye) {\r\n\r\n      // Return ±Infinity if either ±Infinity.\r\n      if (!xc || !yc) return new BigNumber(a / 0);\r\n\r\n      // Either zero?\r\n      // Return y if y is non-zero, x if x is non-zero, or zero if both are zero.\r\n      if (!xc[0] || !yc[0]) return yc[0] ? y : new BigNumber(xc[0] ? x : a * 0);\r\n    }\r\n\r\n    xe = bitFloor(xe);\r\n    ye = bitFloor(ye);\r\n    xc = xc.slice();\r\n\r\n    // Prepend zeros to equalise exponents. Faster to use reverse then do unshifts.\r\n    if (a = xe - ye) {\r\n      if (a > 0) {\r\n        ye = xe;\r\n        t = yc;\r\n      } else {\r\n        a = -a;\r\n        t = xc;\r\n      }\r\n\r\n      t.reverse();\r\n      for (; a--; t.push(0));\r\n      t.reverse();\r\n    }\r\n\r\n    a = xc.length;\r\n    b = yc.length;\r\n\r\n    // Point xc to the longer array, and b to the shorter length.\r\n    if (a - b < 0) {\r\n      t = yc;\r\n      yc = xc;\r\n      xc = t;\r\n      b = a;\r\n    }\r\n\r\n    // Only start adding at yc.length - 1 as the further digits of xc can be ignored.\r\n    for (a = 0; b;) {\r\n      a = (xc[--b] = xc[b] + yc[b] + a) / BASE | 0;\r\n      xc[b] = BASE === xc[b] ? 0 : xc[b] % BASE;\r\n    }\r\n\r\n    if (a) {\r\n      xc = [a].concat(xc);\r\n      ++ye;\r\n    }\r\n\r\n    // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n    // ye = MAX_EXP + 1 possible\r\n    return normalise(y, xc, ye);\r\n  };\r\n\r\n\r\n  /*\r\n   * If sd is undefined or null or true or false, return the number of significant digits of\r\n   * the value of this BigNumber, or null if the value of this BigNumber is ±Infinity or NaN.\r\n   * If sd is true include integer-part trailing zeros in the count.\r\n   *\r\n   * Otherwise, if sd is a number, return a new BigNumber whose value is the value of this\r\n   * BigNumber rounded to a maximum of sd significant digits using rounding mode rm, or\r\n   * ROUNDING_MODE if rm is omitted.\r\n   *\r\n   * sd {number|boolean} number: significant digits: integer, 1 to MAX inclusive.\r\n   *                     boolean: whether to count integer-part trailing zeros: true or false.\r\n   * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n   *\r\n   * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}'\r\n   */\r\n  P.precision = P.sd = function (sd, rm) {\r\n    var c, n, v,\r\n      x = this;\r\n\r\n    if (sd != null && sd !== !!sd) {\r\n      intCheck(sd, 1, MAX);\r\n      if (rm == null) rm = ROUNDING_MODE;\r\n      else intCheck(rm, 0, 8);\r\n\r\n      return round(new BigNumber(x), sd, rm);\r\n    }\r\n\r\n    if (!(c = x.c)) return null;\r\n    v = c.length - 1;\r\n    n = v * LOG_BASE + 1;\r\n\r\n    if (v = c[v]) {\r\n\r\n      // Subtract the number of trailing zeros of the last element.\r\n      for (; v % 10 == 0; v /= 10, n--);\r\n\r\n      // Add the number of digits of the first element.\r\n      for (v = c[0]; v >= 10; v /= 10, n++);\r\n    }\r\n\r\n    if (sd && x.e + 1 > n) n = x.e + 1;\r\n\r\n    return n;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return a new BigNumber whose value is the value of this BigNumber shifted by k places\r\n   * (powers of 10). Shift to the right if n > 0, and to the left if n < 0.\r\n   *\r\n   * k {number} Integer, -MAX_SAFE_INTEGER to MAX_SAFE_INTEGER inclusive.\r\n   *\r\n   * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {k}'\r\n   */\r\n  P.shiftedBy = function (k) {\r\n    intCheck(k, -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER);\r\n    return this.times('1e' + k);\r\n  };\r\n\r\n\r\n  /*\r\n   *  sqrt(-n) =  N\r\n   *  sqrt(N) =  N\r\n   *  sqrt(-I) =  N\r\n   *  sqrt(I) =  I\r\n   *  sqrt(0) =  0\r\n   *  sqrt(-0) = -0\r\n   *\r\n   * Return a new BigNumber whose value is the square root of the value of this BigNumber,\r\n   * rounded according to DECIMAL_PLACES and ROUNDING_MODE.\r\n   */\r\n  P.squareRoot = P.sqrt = function () {\r\n    var m, n, r, rep, t,\r\n      x = this,\r\n      c = x.c,\r\n      s = x.s,\r\n      e = x.e,\r\n      dp = DECIMAL_PLACES + 4,\r\n      half = new BigNumber('0.5');\r\n\r\n    // Negative/NaN/Infinity/zero?\r\n    if (s !== 1 || !c || !c[0]) {\r\n      return new BigNumber(!s || s < 0 && (!c || c[0]) ? NaN : c ? x : 1 / 0);\r\n    }\r\n\r\n    // Initial estimate.\r\n    s = Math.sqrt(+valueOf(x));\r\n\r\n    // Math.sqrt underflow/overflow?\r\n    // Pass x to Math.sqrt as integer, then adjust the exponent of the result.\r\n    if (s == 0 || s == 1 / 0) {\r\n      n = coeffToString(c);\r\n      if ((n.length + e) % 2 == 0) n += '0';\r\n      s = Math.sqrt(+n);\r\n      e = bitFloor((e + 1) / 2) - (e < 0 || e % 2);\r\n\r\n      if (s == 1 / 0) {\r\n        n = '5e' + e;\r\n      } else {\r\n        n = s.toExponential();\r\n        n = n.slice(0, n.indexOf('e') + 1) + e;\r\n      }\r\n\r\n      r = new BigNumber(n);\r\n    } else {\r\n      r = new BigNumber(s + '');\r\n    }\r\n\r\n    // Check for zero.\r\n    // r could be zero if MIN_EXP is changed after the this value was created.\r\n    // This would cause a division by zero (x/t) and hence Infinity below, which would cause\r\n    // coeffToString to throw.\r\n    if (r.c[0]) {\r\n      e = r.e;\r\n      s = e + dp;\r\n      if (s < 3) s = 0;\r\n\r\n      // Newton-Raphson iteration.\r\n      for (; ;) {\r\n        t = r;\r\n        r = half.times(t.plus(div(x, t, dp, 1)));\r\n\r\n        if (coeffToString(t.c).slice(0, s) === (n = coeffToString(r.c)).slice(0, s)) {\r\n\r\n          // The exponent of r may here be one less than the final result exponent,\r\n          // e.g 0.0009999 (e-4) --> 0.001 (e-3), so adjust s so the rounding digits\r\n          // are indexed correctly.\r\n          if (r.e < e) --s;\r\n          n = n.slice(s - 3, s + 1);\r\n\r\n          // The 4th rounding digit may be in error by -1 so if the 4 rounding digits\r\n          // are 9999 or 4999 (i.e. approaching a rounding boundary) continue the\r\n          // iteration.\r\n          if (n == '9999' || !rep && n == '4999') {\r\n\r\n            // On the first iteration only, check to see if rounding up gives the\r\n            // exact result as the nines may infinitely repeat.\r\n            if (!rep) {\r\n              round(t, t.e + DECIMAL_PLACES + 2, 0);\r\n\r\n              if (t.times(t).eq(x)) {\r\n                r = t;\r\n                break;\r\n              }\r\n            }\r\n\r\n            dp += 4;\r\n            s += 4;\r\n            rep = 1;\r\n          } else {\r\n\r\n            // If rounding digits are null, 0{0,4} or 50{0,3}, check for exact\r\n            // result. If not, then there are further digits and m will be truthy.\r\n            if (!+n || !+n.slice(1) && n.charAt(0) == '5') {\r\n\r\n              // Truncate to the first rounding digit.\r\n              round(r, r.e + DECIMAL_PLACES + 2, 1);\r\n              m = !r.times(r).eq(x);\r\n            }\r\n\r\n            break;\r\n          }\r\n        }\r\n      }\r\n    }\r\n\r\n    return round(r, r.e + DECIMAL_PLACES + 1, ROUNDING_MODE, m);\r\n  };\r\n\r\n\r\n  /*\r\n   * Return a string representing the value of this BigNumber in exponential notation and\r\n   * rounded using ROUNDING_MODE to dp fixed decimal places.\r\n   *\r\n   * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n   * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n   *\r\n   * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n   */\r\n  P.toExponential = function (dp, rm) {\r\n    if (dp != null) {\r\n      intCheck(dp, 0, MAX);\r\n      dp++;\r\n    }\r\n    return format(this, dp, rm, 1);\r\n  };\r\n\r\n\r\n  /*\r\n   * Return a string representing the value of this BigNumber in fixed-point notation rounding\r\n   * to dp fixed decimal places using rounding mode rm, or ROUNDING_MODE if rm is omitted.\r\n   *\r\n   * Note: as with JavaScript's number type, (-0).toFixed(0) is '0',\r\n   * but e.g. (-0.00001).toFixed(0) is '-0'.\r\n   *\r\n   * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n   * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n   *\r\n   * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n   */\r\n  P.toFixed = function (dp, rm) {\r\n    if (dp != null) {\r\n      intCheck(dp, 0, MAX);\r\n      dp = dp + this.e + 1;\r\n    }\r\n    return format(this, dp, rm);\r\n  };\r\n\r\n\r\n  /*\r\n   * Return a string representing the value of this BigNumber in fixed-point notation rounded\r\n   * using rm or ROUNDING_MODE to dp decimal places, and formatted according to the properties\r\n   * of the format or FORMAT object (see BigNumber.set).\r\n   *\r\n   * The formatting object may contain some or all of the properties shown below.\r\n   *\r\n   * FORMAT = {\r\n   *   prefix: '',\r\n   *   groupSize: 3,\r\n   *   secondaryGroupSize: 0,\r\n   *   groupSeparator: ',',\r\n   *   decimalSeparator: '.',\r\n   *   fractionGroupSize: 0,\r\n   *   fractionGroupSeparator: '\\xA0',      // non-breaking space\r\n   *   suffix: ''\r\n   * };\r\n   *\r\n   * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n   * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n   * [format] {object} Formatting options. See FORMAT pbject above.\r\n   *\r\n   * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n   * '[BigNumber Error] Argument not an object: {format}'\r\n   */\r\n  P.toFormat = function (dp, rm, format) {\r\n    var str,\r\n      x = this;\r\n\r\n    if (format == null) {\r\n      if (dp != null && rm && typeof rm == 'object') {\r\n        format = rm;\r\n        rm = null;\r\n      } else if (dp && typeof dp == 'object') {\r\n        format = dp;\r\n        dp = rm = null;\r\n      } else {\r\n        format = FORMAT;\r\n      }\r\n    } else if (typeof format != 'object') {\r\n      throw Error\r\n        (bignumberError + 'Argument not an object: ' + format);\r\n    }\r\n\r\n    str = x.toFixed(dp, rm);\r\n\r\n    if (x.c) {\r\n      var i,\r\n        arr = str.split('.'),\r\n        g1 = +format.groupSize,\r\n        g2 = +format.secondaryGroupSize,\r\n        groupSeparator = format.groupSeparator || '',\r\n        intPart = arr[0],\r\n        fractionPart = arr[1],\r\n        isNeg = x.s < 0,\r\n        intDigits = isNeg ? intPart.slice(1) : intPart,\r\n        len = intDigits.length;\r\n\r\n      if (g2) {\r\n        i = g1;\r\n        g1 = g2;\r\n        g2 = i;\r\n        len -= i;\r\n      }\r\n\r\n      if (g1 > 0 && len > 0) {\r\n        i = len % g1 || g1;\r\n        intPart = intDigits.substr(0, i);\r\n        for (; i < len; i += g1) intPart += groupSeparator + intDigits.substr(i, g1);\r\n        if (g2 > 0) intPart += groupSeparator + intDigits.slice(i);\r\n        if (isNeg) intPart = '-' + intPart;\r\n      }\r\n\r\n      str = fractionPart\r\n       ? intPart + (format.decimalSeparator || '') + ((g2 = +format.fractionGroupSize)\r\n        ? fractionPart.replace(new RegExp('\\\\d{' + g2 + '}\\\\B', 'g'),\r\n         '$&' + (format.fractionGroupSeparator || ''))\r\n        : fractionPart)\r\n       : intPart;\r\n    }\r\n\r\n    return (format.prefix || '') + str + (format.suffix || '');\r\n  };\r\n\r\n\r\n  /*\r\n   * Return an array of two BigNumbers representing the value of this BigNumber as a simple\r\n   * fraction with an integer numerator and an integer denominator.\r\n   * The denominator will be a positive non-zero value less than or equal to the specified\r\n   * maximum denominator. If a maximum denominator is not specified, the denominator will be\r\n   * the lowest value necessary to represent the number exactly.\r\n   *\r\n   * [md] {number|string|BigNumber} Integer >= 1, or Infinity. The maximum denominator.\r\n   *\r\n   * '[BigNumber Error] Argument {not an integer|out of range} : {md}'\r\n   */\r\n  P.toFraction = function (md) {\r\n    var d, d0, d1, d2, e, exp, n, n0, n1, q, r, s,\r\n      x = this,\r\n      xc = x.c;\r\n\r\n    if (md != null) {\r\n      n = new BigNumber(md);\r\n\r\n      // Throw if md is less than one or is not an integer, unless it is Infinity.\r\n      if (!n.isInteger() && (n.c || n.s !== 1) || n.lt(ONE)) {\r\n        throw Error\r\n          (bignumberError + 'Argument ' +\r\n            (n.isInteger() ? 'out of range: ' : 'not an integer: ') + valueOf(n));\r\n      }\r\n    }\r\n\r\n    if (!xc) return new BigNumber(x);\r\n\r\n    d = new BigNumber(ONE);\r\n    n1 = d0 = new BigNumber(ONE);\r\n    d1 = n0 = new BigNumber(ONE);\r\n    s = coeffToString(xc);\r\n\r\n    // Determine initial denominator.\r\n    // d is a power of 10 and the minimum max denominator that specifies the value exactly.\r\n    e = d.e = s.length - x.e - 1;\r\n    d.c[0] = POWS_TEN[(exp = e % LOG_BASE) < 0 ? LOG_BASE + exp : exp];\r\n    md = !md || n.comparedTo(d) > 0 ? (e > 0 ? d : n1) : n;\r\n\r\n    exp = MAX_EXP;\r\n    MAX_EXP = 1 / 0;\r\n    n = new BigNumber(s);\r\n\r\n    // n0 = d1 = 0\r\n    n0.c[0] = 0;\r\n\r\n    for (; ;)  {\r\n      q = div(n, d, 0, 1);\r\n      d2 = d0.plus(q.times(d1));\r\n      if (d2.comparedTo(md) == 1) break;\r\n      d0 = d1;\r\n      d1 = d2;\r\n      n1 = n0.plus(q.times(d2 = n1));\r\n      n0 = d2;\r\n      d = n.minus(q.times(d2 = d));\r\n      n = d2;\r\n    }\r\n\r\n    d2 = div(md.minus(d0), d1, 0, 1);\r\n    n0 = n0.plus(d2.times(n1));\r\n    d0 = d0.plus(d2.times(d1));\r\n    n0.s = n1.s = x.s;\r\n    e = e * 2;\r\n\r\n    // Determine which fraction is closer to x, n0/d0 or n1/d1\r\n    r = div(n1, d1, e, ROUNDING_MODE).minus(x).abs().comparedTo(\r\n        div(n0, d0, e, ROUNDING_MODE).minus(x).abs()) < 1 ? [n1, d1] : [n0, d0];\r\n\r\n    MAX_EXP = exp;\r\n\r\n    return r;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return the value of this BigNumber converted to a number primitive.\r\n   */\r\n  P.toNumber = function () {\r\n    return +valueOf(this);\r\n  };\r\n\r\n\r\n  /*\r\n   * Return a string representing the value of this BigNumber rounded to sd significant digits\r\n   * using rounding mode rm or ROUNDING_MODE. If sd is less than the number of digits\r\n   * necessary to represent the integer part of the value in fixed-point notation, then use\r\n   * exponential notation.\r\n   *\r\n   * [sd] {number} Significant digits. Integer, 1 to MAX inclusive.\r\n   * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n   *\r\n   * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}'\r\n   */\r\n  P.toPrecision = function (sd, rm) {\r\n    if (sd != null) intCheck(sd, 1, MAX);\r\n    return format(this, sd, rm, 2);\r\n  };\r\n\r\n\r\n  /*\r\n   * Return a string representing the value of this BigNumber in base b, or base 10 if b is\r\n   * omitted. If a base is specified, including base 10, round according to DECIMAL_PLACES and\r\n   * ROUNDING_MODE. If a base is not specified, and this BigNumber has a positive exponent\r\n   * that is equal to or greater than TO_EXP_POS, or a negative exponent equal to or less than\r\n   * TO_EXP_NEG, return exponential notation.\r\n   *\r\n   * [b] {number} Integer, 2 to ALPHABET.length inclusive.\r\n   *\r\n   * '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}'\r\n   */\r\n  P.toString = function (b) {\r\n    var str,\r\n      n = this,\r\n      s = n.s,\r\n      e = n.e;\r\n\r\n    // Infinity or NaN?\r\n    if (e === null) {\r\n      if (s) {\r\n        str = 'Infinity';\r\n        if (s < 0) str = '-' + str;\r\n      } else {\r\n        str = 'NaN';\r\n      }\r\n    } else {\r\n      if (b == null) {\r\n        str = e <= TO_EXP_NEG || e >= TO_EXP_POS\r\n         ? toExponential(coeffToString(n.c), e)\r\n         : toFixedPoint(coeffToString(n.c), e, '0');\r\n      } else if (b === 10 && alphabetHasNormalDecimalDigits) {\r\n        n = round(new BigNumber(n), DECIMAL_PLACES + e + 1, ROUNDING_MODE);\r\n        str = toFixedPoint(coeffToString(n.c), n.e, '0');\r\n      } else {\r\n        intCheck(b, 2, ALPHABET.length, 'Base');\r\n        str = convertBase(toFixedPoint(coeffToString(n.c), e, '0'), 10, b, s, true);\r\n      }\r\n\r\n      if (s < 0 && n.c[0]) str = '-' + str;\r\n    }\r\n\r\n    return str;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return as toString, but do not accept a base argument, and include the minus sign for\r\n   * negative zero.\r\n   */\r\n  P.valueOf = P.toJSON = function () {\r\n    return valueOf(this);\r\n  };\r\n\r\n\r\n  P._isBigNumber = true;\r\n\r\n  P[Symbol.toStringTag] = 'BigNumber';\r\n\r\n  // Node.js v10.12.0+\r\n  P[Symbol.for('nodejs.util.inspect.custom')] = P.valueOf;\r\n\r\n  if (configObject != null) BigNumber.set(configObject);\r\n\r\n  return BigNumber;\r\n}\r\n\r\n\r\n// PRIVATE HELPER FUNCTIONS\r\n\r\n// These functions don't need access to variables,\r\n// e.g. DECIMAL_PLACES, in the scope of the `clone` function above.\r\n\r\n\r\nfunction bitFloor(n) {\r\n  var i = n | 0;\r\n  return n > 0 || n === i ? i : i - 1;\r\n}\r\n\r\n\r\n// Return a coefficient array as a string of base 10 digits.\r\nfunction coeffToString(a) {\r\n  var s, z,\r\n    i = 1,\r\n    j = a.length,\r\n    r = a[0] + '';\r\n\r\n  for (; i < j;) {\r\n    s = a[i++] + '';\r\n    z = LOG_BASE - s.length;\r\n    for (; z--; s = '0' + s);\r\n    r += s;\r\n  }\r\n\r\n  // Determine trailing zeros.\r\n  for (j = r.length; r.charCodeAt(--j) === 48;);\r\n\r\n  return r.slice(0, j + 1 || 1);\r\n}\r\n\r\n\r\n// Compare the value of BigNumbers x and y.\r\nfunction compare(x, y) {\r\n  var a, b,\r\n    xc = x.c,\r\n    yc = y.c,\r\n    i = x.s,\r\n    j = y.s,\r\n    k = x.e,\r\n    l = y.e;\r\n\r\n  // Either NaN?\r\n  if (!i || !j) return null;\r\n\r\n  a = xc && !xc[0];\r\n  b = yc && !yc[0];\r\n\r\n  // Either zero?\r\n  if (a || b) return a ? b ? 0 : -j : i;\r\n\r\n  // Signs differ?\r\n  if (i != j) return i;\r\n\r\n  a = i < 0;\r\n  b = k == l;\r\n\r\n  // Either Infinity?\r\n  if (!xc || !yc) return b ? 0 : !xc ^ a ? 1 : -1;\r\n\r\n  // Compare exponents.\r\n  if (!b) return k > l ^ a ? 1 : -1;\r\n\r\n  j = (k = xc.length) < (l = yc.length) ? k : l;\r\n\r\n  // Compare digit by digit.\r\n  for (i = 0; i < j; i++) if (xc[i] != yc[i]) return xc[i] > yc[i] ^ a ? 1 : -1;\r\n\r\n  // Compare lengths.\r\n  return k == l ? 0 : k > l ^ a ? 1 : -1;\r\n}\r\n\r\n\r\n/*\r\n * Check that n is a primitive number, an integer, and in range, otherwise throw.\r\n */\r\nfunction intCheck(n, min, max, name) {\r\n  if (n < min || n > max || n !== mathfloor(n)) {\r\n    throw Error\r\n     (bignumberError + (name || 'Argument') + (typeof n == 'number'\r\n       ? n < min || n > max ? ' out of range: ' : ' not an integer: '\r\n       : ' not a primitive number: ') + String(n));\r\n  }\r\n}\r\n\r\n\r\n// Assumes finite n.\r\nfunction isOdd(n) {\r\n  var k = n.c.length - 1;\r\n  return bitFloor(n.e / LOG_BASE) == k && n.c[k] % 2 != 0;\r\n}\r\n\r\n\r\nfunction toExponential(str, e) {\r\n  return (str.length > 1 ? str.charAt(0) + '.' + str.slice(1) : str) +\r\n   (e < 0 ? 'e' : 'e+') + e;\r\n}\r\n\r\n\r\nfunction toFixedPoint(str, e, z) {\r\n  var len, zs;\r\n\r\n  // Negative exponent?\r\n  if (e < 0) {\r\n\r\n    // Prepend zeros.\r\n    for (zs = z + '.'; ++e; zs += z);\r\n    str = zs + str;\r\n\r\n  // Positive exponent\r\n  } else {\r\n    len = str.length;\r\n\r\n    // Append zeros.\r\n    if (++e > len) {\r\n      for (zs = z, e -= len; --e; zs += z);\r\n      str += zs;\r\n    } else if (e < len) {\r\n      str = str.slice(0, e) + '.' + str.slice(e);\r\n    }\r\n  }\r\n\r\n  return str;\r\n}\r\n\r\n\r\n// EXPORT\r\n\r\n\r\nexport var BigNumber = clone();\r\n\r\nexport default BigNumber;\r\n","import { BigNumber } from \"bignumber.js\";\nvar RoundingModeMap;\n(function (RoundingModeMap) {\n    RoundingModeMap[RoundingModeMap[\"up\"] = BigNumber.ROUND_UP] = \"up\";\n    RoundingModeMap[RoundingModeMap[\"down\"] = BigNumber.ROUND_DOWN] = \"down\";\n    RoundingModeMap[RoundingModeMap[\"truncate\"] = BigNumber.ROUND_DOWN] = \"truncate\";\n    RoundingModeMap[RoundingModeMap[\"halfUp\"] = BigNumber.ROUND_HALF_UP] = \"halfUp\";\n    RoundingModeMap[RoundingModeMap[\"default\"] = BigNumber.ROUND_HALF_UP] = \"default\";\n    RoundingModeMap[RoundingModeMap[\"halfDown\"] = BigNumber.ROUND_HALF_DOWN] = \"halfDown\";\n    RoundingModeMap[RoundingModeMap[\"halfEven\"] = BigNumber.ROUND_HALF_EVEN] = \"halfEven\";\n    RoundingModeMap[RoundingModeMap[\"banker\"] = BigNumber.ROUND_HALF_EVEN] = \"banker\";\n    RoundingModeMap[RoundingModeMap[\"ceiling\"] = BigNumber.ROUND_CEIL] = \"ceiling\";\n    RoundingModeMap[RoundingModeMap[\"ceil\"] = BigNumber.ROUND_CEIL] = \"ceil\";\n    RoundingModeMap[RoundingModeMap[\"floor\"] = BigNumber.ROUND_FLOOR] = \"floor\";\n})(RoundingModeMap || (RoundingModeMap = {}));\nexport function expandRoundMode(roundMode) {\n    var _a;\n    return ((_a = RoundingModeMap[roundMode]) !== null && _a !== void 0 ? _a : RoundingModeMap.default);\n}\n//# sourceMappingURL=expandRoundMode.js.map","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeFloor = Math.floor;\n\n/**\n * The base implementation of `_.repeat` which doesn't coerce arguments.\n *\n * @private\n * @param {string} string The string to repeat.\n * @param {number} n The number of times to repeat the string.\n * @returns {string} Returns the repeated string.\n */\nfunction baseRepeat(string, n) {\n  var result = '';\n  if (!string || n < 1 || n > MAX_SAFE_INTEGER) {\n    return result;\n  }\n  // Leverage the exponentiation by squaring algorithm for a faster repeat.\n  // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details.\n  do {\n    if (n % 2) {\n      result += string;\n    }\n    n = nativeFloor(n / 2);\n    if (n) {\n      string += string;\n    }\n  } while (n);\n\n  return result;\n}\n\nmodule.exports = baseRepeat;\n","var toNumber = require('./toNumber');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n    MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n  if (!value) {\n    return value === 0 ? value : 0;\n  }\n  value = toNumber(value);\n  if (value === INFINITY || value === -INFINITY) {\n    var sign = (value < 0 ? -1 : 1);\n    return sign * MAX_INTEGER;\n  }\n  return value === value ? value : 0;\n}\n\nmodule.exports = toFinite;\n","var toFinite = require('./toFinite');\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n  var result = toFinite(value),\n      remainder = result % 1;\n\n  return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nmodule.exports = toInteger;\n","var baseRepeat = require('./_baseRepeat'),\n    isIterateeCall = require('./_isIterateeCall'),\n    toInteger = require('./toInteger'),\n    toString = require('./toString');\n\n/**\n * Repeats the given string `n` times.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to repeat.\n * @param {number} [n=1] The number of times to repeat the string.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {string} Returns the repeated string.\n * @example\n *\n * _.repeat('*', 3);\n * // => '***'\n *\n * _.repeat('abc', 2);\n * // => 'abcabc'\n *\n * _.repeat('abc', 0);\n * // => ''\n */\nfunction repeat(string, n, guard) {\n  if ((guard ? isIterateeCall(string, n, guard) : n === undefined)) {\n    n = 1;\n  } else {\n    n = toInteger(n);\n  }\n  return baseRepeat(toString(string), n);\n}\n\nmodule.exports = repeat;\n","import { BigNumber } from \"bignumber.js\";\nimport { expandRoundMode } from \"./expandRoundMode\";\nfunction digitCount(numeric) {\n    if (numeric.isZero()) {\n        return 1;\n    }\n    return Math.floor(Math.log10(numeric.abs().toNumber()) + 1);\n}\nfunction getAbsolutePrecision(numeric, { precision, significant }) {\n    if (significant && precision !== null && precision > 0) {\n        return precision - digitCount(numeric);\n    }\n    return precision;\n}\nexport function roundNumber(numeric, options) {\n    const precision = getAbsolutePrecision(numeric, options);\n    if (precision === null) {\n        return numeric.toString();\n    }\n    const roundMode = expandRoundMode(options.roundMode);\n    if (precision >= 0) {\n        return numeric.toFixed(precision, roundMode);\n    }\n    const rounder = Math.pow(10, Math.abs(precision));\n    numeric = new BigNumber(numeric.div(rounder).toFixed(0, roundMode)).times(rounder);\n    return numeric.toString();\n}\n//# sourceMappingURL=roundNumber.js.map","import { BigNumber } from \"bignumber.js\";\nimport repeat from \"lodash/repeat\";\nimport { roundNumber } from \"./roundNumber\";\nfunction replaceInFormat(format, { formattedNumber, unit }) {\n    return format.replace(\"%n\", formattedNumber).replace(\"%u\", unit);\n}\nfunction computeSignificand({ significand, whole, precision, }) {\n    if (whole === \"0\" || precision === null) {\n        return significand;\n    }\n    const limit = Math.max(0, precision - whole.length);\n    return (significand !== null && significand !== void 0 ? significand : \"\").substr(0, limit);\n}\nexport function formatNumber(input, options) {\n    var _a, _b, _c;\n    const originalNumber = new BigNumber(input);\n    if (options.raise && !originalNumber.isFinite()) {\n        throw new Error(`\"${input}\" is not a valid numeric value`);\n    }\n    const roundedNumber = roundNumber(originalNumber, options);\n    const numeric = new BigNumber(roundedNumber);\n    const isNegative = numeric.lt(0);\n    const isZero = numeric.isZero();\n    let [whole, significand] = roundedNumber.split(\".\");\n    const buffer = [];\n    let formattedNumber;\n    const positiveFormat = (_a = options.format) !== null && _a !== void 0 ? _a : \"%n\";\n    const negativeFormat = (_b = options.negativeFormat) !== null && _b !== void 0 ? _b : `-${positiveFormat}`;\n    const format = isNegative && !isZero ? negativeFormat : positiveFormat;\n    whole = whole.replace(\"-\", \"\");\n    while (whole.length > 0) {\n        buffer.unshift(whole.substr(Math.max(0, whole.length - 3), 3));\n        whole = whole.substr(0, whole.length - 3);\n    }\n    whole = buffer.join(\"\");\n    formattedNumber = buffer.join(options.delimiter);\n    if (options.significant) {\n        significand = computeSignificand({\n            whole,\n            significand,\n            precision: options.precision,\n        });\n    }\n    else {\n        significand = significand !== null && significand !== void 0 ? significand : repeat(\"0\", (_c = options.precision) !== null && _c !== void 0 ? _c : 0);\n    }\n    if (options.stripInsignificantZeros && significand) {\n        significand = significand.replace(/0+$/, \"\");\n    }\n    if (originalNumber.isNaN()) {\n        formattedNumber = input.toString();\n    }\n    if (significand && originalNumber.isFinite()) {\n        formattedNumber += (options.separator || \".\") + significand;\n    }\n    return replaceInFormat(format, {\n        formattedNumber,\n        unit: options.unit,\n    });\n}\n//# sourceMappingURL=formatNumber.js.map","export function getFullScope(i18n, scope, options) {\n    let result = \"\";\n    if (scope instanceof String || typeof scope === \"string\") {\n        result = scope;\n    }\n    if (scope instanceof Array) {\n        result = scope.join(i18n.defaultSeparator);\n    }\n    if (options.scope) {\n        result = [options.scope, result].join(i18n.defaultSeparator);\n    }\n    return result;\n}\n//# sourceMappingURL=getFullScope.js.map","export function inferType(instance) {\n    var _a, _b;\n    if (instance === null) {\n        return \"null\";\n    }\n    const type = typeof instance;\n    if (type !== \"object\") {\n        return type;\n    }\n    return ((_b = (_a = instance === null || instance === void 0 ? void 0 : instance.constructor) === null || _a === void 0 ? void 0 : _a.name) === null || _b === void 0 ? void 0 : _b.toLowerCase()) || \"object\";\n}\n//# sourceMappingURL=inferType.js.map","import { isSet } from \"./isSet\";\nexport function interpolate(i18n, message, options) {\n    options = Object.keys(options).reduce((buffer, key) => {\n        buffer[i18n.transformKey(key)] = options[key];\n        return buffer;\n    }, {});\n    const matches = message.match(i18n.placeholder);\n    if (!matches) {\n        return message;\n    }\n    while (matches.length) {\n        let value;\n        const placeholder = matches.shift();\n        const name = placeholder.replace(i18n.placeholder, \"$1\");\n        if (isSet(options[name])) {\n            value = options[name].toString().replace(/\\$/gm, \"_#$#_\");\n        }\n        else if (name in options) {\n            value = i18n.nullPlaceholder(i18n, placeholder, message, options);\n        }\n        else {\n            value = i18n.missingPlaceholder(i18n, placeholder, message, options);\n        }\n        const regex = new RegExp(placeholder.replace(/\\{/gm, \"\\\\{\").replace(/\\}/gm, \"\\\\}\"), \"g\");\n        message = message.replace(regex, value);\n    }\n    return message.replace(/_#\\$#_/g, \"$\");\n}\n//# sourceMappingURL=interpolate.js.map","import { isSet } from \"./isSet\";\nimport { getFullScope } from \"./getFullScope\";\nimport { inferType } from \"./inferType\";\nexport function lookup(i18n, scope, options = {}) {\n    options = Object.assign({}, options);\n    const locale = \"locale\" in options ? options.locale : i18n.locale;\n    const localeType = inferType(locale);\n    const locales = i18n.locales\n        .get(localeType === \"string\" ? locale : typeof locale)\n        .slice();\n    const keys = getFullScope(i18n, scope, options)\n        .split(i18n.defaultSeparator)\n        .map((component) => i18n.transformKey(component));\n    const entries = locales.map((locale) => keys.reduce((path, key) => path && path[key], i18n.translations[locale]));\n    entries.push(options.defaultValue);\n    return entries.find((entry) => isSet(entry));\n}\n//# sourceMappingURL=lookup.js.map","import { BigNumber } from \"bignumber.js\";\nexport function numberToDelimited(input, options) {\n    const numeric = new BigNumber(input);\n    if (!numeric.isFinite()) {\n        return input.toString();\n    }\n    if (!options.delimiterPattern.global) {\n        throw new Error(`options.delimiterPattern must be a global regular expression; received ${options.delimiterPattern}`);\n    }\n    let [left, right] = numeric.toString().split(\".\");\n    left = left.replace(options.delimiterPattern, (digitToDelimiter) => `${digitToDelimiter}${options.delimiter}`);\n    return [left, right].filter(Boolean).join(options.separator);\n}\n//# sourceMappingURL=numberToDelimited.js.map","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n  var index = -1,\n      length = values.length,\n      offset = array.length;\n\n  while (++index < length) {\n    array[offset + index] = values[index];\n  }\n  return array;\n}\n\nmodule.exports = arrayPush;\n","var Symbol = require('./_Symbol'),\n    isArguments = require('./isArguments'),\n    isArray = require('./isArray');\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n  return isArray(value) || isArguments(value) ||\n    !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nmodule.exports = isFlattenable;\n","var arrayPush = require('./_arrayPush'),\n    isFlattenable = require('./_isFlattenable');\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n  var index = -1,\n      length = array.length;\n\n  predicate || (predicate = isFlattenable);\n  result || (result = []);\n\n  while (++index < length) {\n    var value = array[index];\n    if (depth > 0 && predicate(value)) {\n      if (depth > 1) {\n        // Recursively flatten arrays (susceptible to call stack limits).\n        baseFlatten(value, depth - 1, predicate, isStrict, result);\n      } else {\n        arrayPush(result, value);\n      }\n    } else if (!isStrict) {\n      result[result.length] = value;\n    }\n  }\n  return result;\n}\n\nmodule.exports = baseFlatten;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n *  else `false`.\n */\nfunction arraySome(array, predicate) {\n  var index = -1,\n      length = array == null ? 0 : array.length;\n\n  while (++index < length) {\n    if (predicate(array[index], index, array)) {\n      return true;\n    }\n  }\n  return false;\n}\n\nmodule.exports = arraySome;\n","var SetCache = require('./_SetCache'),\n    arraySome = require('./_arraySome'),\n    cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n    COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n  var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n      arrLength = array.length,\n      othLength = other.length;\n\n  if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n    return false;\n  }\n  // Check that cyclic values are equal.\n  var arrStacked = stack.get(array);\n  var othStacked = stack.get(other);\n  if (arrStacked && othStacked) {\n    return arrStacked == other && othStacked == array;\n  }\n  var index = -1,\n      result = true,\n      seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n  stack.set(array, other);\n  stack.set(other, array);\n\n  // Ignore non-index properties.\n  while (++index < arrLength) {\n    var arrValue = array[index],\n        othValue = other[index];\n\n    if (customizer) {\n      var compared = isPartial\n        ? customizer(othValue, arrValue, index, other, array, stack)\n        : customizer(arrValue, othValue, index, array, other, stack);\n    }\n    if (compared !== undefined) {\n      if (compared) {\n        continue;\n      }\n      result = false;\n      break;\n    }\n    // Recursively compare arrays (susceptible to call stack limits).\n    if (seen) {\n      if (!arraySome(other, function(othValue, othIndex) {\n            if (!cacheHas(seen, othIndex) &&\n                (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n              return seen.push(othIndex);\n            }\n          })) {\n        result = false;\n        break;\n      }\n    } else if (!(\n          arrValue === othValue ||\n            equalFunc(arrValue, othValue, bitmask, customizer, stack)\n        )) {\n      result = false;\n      break;\n    }\n  }\n  stack['delete'](array);\n  stack['delete'](other);\n  return result;\n}\n\nmodule.exports = equalArrays;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n  var index = -1,\n      result = Array(map.size);\n\n  map.forEach(function(value, key) {\n    result[++index] = [key, value];\n  });\n  return result;\n}\n\nmodule.exports = mapToArray;\n","var Symbol = require('./_Symbol'),\n    Uint8Array = require('./_Uint8Array'),\n    eq = require('./eq'),\n    equalArrays = require('./_equalArrays'),\n    mapToArray = require('./_mapToArray'),\n    setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n    COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n    dateTag = '[object Date]',\n    errorTag = '[object Error]',\n    mapTag = '[object Map]',\n    numberTag = '[object Number]',\n    regexpTag = '[object RegExp]',\n    setTag = '[object Set]',\n    stringTag = '[object String]',\n    symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n    dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n    symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n  switch (tag) {\n    case dataViewTag:\n      if ((object.byteLength != other.byteLength) ||\n          (object.byteOffset != other.byteOffset)) {\n        return false;\n      }\n      object = object.buffer;\n      other = other.buffer;\n\n    case arrayBufferTag:\n      if ((object.byteLength != other.byteLength) ||\n          !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n        return false;\n      }\n      return true;\n\n    case boolTag:\n    case dateTag:\n    case numberTag:\n      // Coerce booleans to `1` or `0` and dates to milliseconds.\n      // Invalid dates are coerced to `NaN`.\n      return eq(+object, +other);\n\n    case errorTag:\n      return object.name == other.name && object.message == other.message;\n\n    case regexpTag:\n    case stringTag:\n      // Coerce regexes to strings and treat strings, primitives and objects,\n      // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n      // for more details.\n      return object == (other + '');\n\n    case mapTag:\n      var convert = mapToArray;\n\n    case setTag:\n      var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n      convert || (convert = setToArray);\n\n      if (object.size != other.size && !isPartial) {\n        return false;\n      }\n      // Assume cyclic values are equal.\n      var stacked = stack.get(object);\n      if (stacked) {\n        return stacked == other;\n      }\n      bitmask |= COMPARE_UNORDERED_FLAG;\n\n      // Recursively compare objects (susceptible to call stack limits).\n      stack.set(object, other);\n      var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n      stack['delete'](object);\n      return result;\n\n    case symbolTag:\n      if (symbolValueOf) {\n        return symbolValueOf.call(object) == symbolValueOf.call(other);\n      }\n  }\n  return false;\n}\n\nmodule.exports = equalByTag;\n","var arrayPush = require('./_arrayPush'),\n    isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n  var result = keysFunc(object);\n  return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n  var index = -1,\n      length = array == null ? 0 : array.length,\n      resIndex = 0,\n      result = [];\n\n  while (++index < length) {\n    var value = array[index];\n    if (predicate(value, index, array)) {\n      result[resIndex++] = value;\n    }\n  }\n  return result;\n}\n\nmodule.exports = arrayFilter;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n  return [];\n}\n\nmodule.exports = stubArray;\n","var arrayFilter = require('./_arrayFilter'),\n    stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n  if (object == null) {\n    return [];\n  }\n  object = Object(object);\n  return arrayFilter(nativeGetSymbols(object), function(symbol) {\n    return propertyIsEnumerable.call(object, symbol);\n  });\n};\n\nmodule.exports = getSymbols;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","var isPrototype = require('./_isPrototype'),\n    nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n  if (!isPrototype(object)) {\n    return nativeKeys(object);\n  }\n  var result = [];\n  for (var key in Object(object)) {\n    if (hasOwnProperty.call(object, key) && key != 'constructor') {\n      result.push(key);\n    }\n  }\n  return result;\n}\n\nmodule.exports = baseKeys;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n    baseKeys = require('./_baseKeys'),\n    isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n *   this.a = 1;\n *   this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n  return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n    getSymbols = require('./_getSymbols'),\n    keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n  return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n  var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n      objProps = getAllKeys(object),\n      objLength = objProps.length,\n      othProps = getAllKeys(other),\n      othLength = othProps.length;\n\n  if (objLength != othLength && !isPartial) {\n    return false;\n  }\n  var index = objLength;\n  while (index--) {\n    var key = objProps[index];\n    if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n      return false;\n    }\n  }\n  // Check that cyclic values are equal.\n  var objStacked = stack.get(object);\n  var othStacked = stack.get(other);\n  if (objStacked && othStacked) {\n    return objStacked == other && othStacked == object;\n  }\n  var result = true;\n  stack.set(object, other);\n  stack.set(other, object);\n\n  var skipCtor = isPartial;\n  while (++index < objLength) {\n    key = objProps[index];\n    var objValue = object[key],\n        othValue = other[key];\n\n    if (customizer) {\n      var compared = isPartial\n        ? customizer(othValue, objValue, key, other, object, stack)\n        : customizer(objValue, othValue, key, object, other, stack);\n    }\n    // Recursively compare objects (susceptible to call stack limits).\n    if (!(compared === undefined\n          ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n          : compared\n        )) {\n      result = false;\n      break;\n    }\n    skipCtor || (skipCtor = key == 'constructor');\n  }\n  if (result && !skipCtor) {\n    var objCtor = object.constructor,\n        othCtor = other.constructor;\n\n    // Non `Object` object instances with different constructors are not equal.\n    if (objCtor != othCtor &&\n        ('constructor' in object && 'constructor' in other) &&\n        !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n          typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n      result = false;\n    }\n  }\n  stack['delete'](object);\n  stack['delete'](other);\n  return result;\n}\n\nmodule.exports = equalObjects;\n","var getNative = require('./_getNative'),\n    root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var getNative = require('./_getNative'),\n    root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var getNative = require('./_getNative'),\n    root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","var DataView = require('./_DataView'),\n    Map = require('./_Map'),\n    Promise = require('./_Promise'),\n    Set = require('./_Set'),\n    WeakMap = require('./_WeakMap'),\n    baseGetTag = require('./_baseGetTag'),\n    toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n    objectTag = '[object Object]',\n    promiseTag = '[object Promise]',\n    setTag = '[object Set]',\n    weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n    mapCtorString = toSource(Map),\n    promiseCtorString = toSource(Promise),\n    setCtorString = toSource(Set),\n    weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n    (Map && getTag(new Map) != mapTag) ||\n    (Promise && getTag(Promise.resolve()) != promiseTag) ||\n    (Set && getTag(new Set) != setTag) ||\n    (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n  getTag = function(value) {\n    var result = baseGetTag(value),\n        Ctor = result == objectTag ? value.constructor : undefined,\n        ctorString = Ctor ? toSource(Ctor) : '';\n\n    if (ctorString) {\n      switch (ctorString) {\n        case dataViewCtorString: return dataViewTag;\n        case mapCtorString: return mapTag;\n        case promiseCtorString: return promiseTag;\n        case setCtorString: return setTag;\n        case weakMapCtorString: return weakMapTag;\n      }\n    }\n    return result;\n  };\n}\n\nmodule.exports = getTag;\n","var Stack = require('./_Stack'),\n    equalArrays = require('./_equalArrays'),\n    equalByTag = require('./_equalByTag'),\n    equalObjects = require('./_equalObjects'),\n    getTag = require('./_getTag'),\n    isArray = require('./isArray'),\n    isBuffer = require('./isBuffer'),\n    isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n    arrayTag = '[object Array]',\n    objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n  var objIsArr = isArray(object),\n      othIsArr = isArray(other),\n      objTag = objIsArr ? arrayTag : getTag(object),\n      othTag = othIsArr ? arrayTag : getTag(other);\n\n  objTag = objTag == argsTag ? objectTag : objTag;\n  othTag = othTag == argsTag ? objectTag : othTag;\n\n  var objIsObj = objTag == objectTag,\n      othIsObj = othTag == objectTag,\n      isSameTag = objTag == othTag;\n\n  if (isSameTag && isBuffer(object)) {\n    if (!isBuffer(other)) {\n      return false;\n    }\n    objIsArr = true;\n    objIsObj = false;\n  }\n  if (isSameTag && !objIsObj) {\n    stack || (stack = new Stack);\n    return (objIsArr || isTypedArray(object))\n      ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n      : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n  }\n  if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n    var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n        othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n    if (objIsWrapped || othIsWrapped) {\n      var objUnwrapped = objIsWrapped ? object.value() : object,\n          othUnwrapped = othIsWrapped ? other.value() : other;\n\n      stack || (stack = new Stack);\n      return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n    }\n  }\n  if (!isSameTag) {\n    return false;\n  }\n  stack || (stack = new Stack);\n  return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n    isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n *  1 - Unordered comparison\n *  2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n  if (value === other) {\n    return true;\n  }\n  if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n    return value !== value && other !== other;\n  }\n  return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","var Stack = require('./_Stack'),\n    baseIsEqual = require('./_baseIsEqual');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n    COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n  var index = matchData.length,\n      length = index,\n      noCustomizer = !customizer;\n\n  if (object == null) {\n    return !length;\n  }\n  object = Object(object);\n  while (index--) {\n    var data = matchData[index];\n    if ((noCustomizer && data[2])\n          ? data[1] !== object[data[0]]\n          : !(data[0] in object)\n        ) {\n      return false;\n    }\n  }\n  while (++index < length) {\n    data = matchData[index];\n    var key = data[0],\n        objValue = object[key],\n        srcValue = data[1];\n\n    if (noCustomizer && data[2]) {\n      if (objValue === undefined && !(key in object)) {\n        return false;\n      }\n    } else {\n      var stack = new Stack;\n      if (customizer) {\n        var result = customizer(objValue, srcValue, key, object, source, stack);\n      }\n      if (!(result === undefined\n            ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n            : result\n          )) {\n        return false;\n      }\n    }\n  }\n  return true;\n}\n\nmodule.exports = baseIsMatch;\n","var isObject = require('./isObject');\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n *  equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n  return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n","var isStrictComparable = require('./_isStrictComparable'),\n    keys = require('./keys');\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n  var result = keys(object),\n      length = result.length;\n\n  while (length--) {\n    var key = result[length],\n        value = object[key];\n\n    result[length] = [key, value, isStrictComparable(value)];\n  }\n  return result;\n}\n\nmodule.exports = getMatchData;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n  return function(object) {\n    if (object == null) {\n      return false;\n    }\n    return object[key] === srcValue &&\n      (srcValue !== undefined || (key in Object(object)));\n  };\n}\n\nmodule.exports = matchesStrictComparable;\n","var baseIsMatch = require('./_baseIsMatch'),\n    getMatchData = require('./_getMatchData'),\n    matchesStrictComparable = require('./_matchesStrictComparable');\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n  var matchData = getMatchData(source);\n  if (matchData.length == 1 && matchData[0][2]) {\n    return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n  }\n  return function(object) {\n    return object === source || baseIsMatch(object, source, matchData);\n  };\n}\n\nmodule.exports = baseMatches;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n  return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n","var baseHasIn = require('./_baseHasIn'),\n    hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n  return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n","var baseIsEqual = require('./_baseIsEqual'),\n    get = require('./get'),\n    hasIn = require('./hasIn'),\n    isKey = require('./_isKey'),\n    isStrictComparable = require('./_isStrictComparable'),\n    matchesStrictComparable = require('./_matchesStrictComparable'),\n    toKey = require('./_toKey');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n    COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n  if (isKey(path) && isStrictComparable(srcValue)) {\n    return matchesStrictComparable(toKey(path), srcValue);\n  }\n  return function(object) {\n    var objValue = get(object, path);\n    return (objValue === undefined && objValue === srcValue)\n      ? hasIn(object, path)\n      : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n  };\n}\n\nmodule.exports = baseMatchesProperty;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n  return function(object) {\n    return object == null ? undefined : object[key];\n  };\n}\n\nmodule.exports = baseProperty;\n","var baseGet = require('./_baseGet');\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n  return function(object) {\n    return baseGet(object, path);\n  };\n}\n\nmodule.exports = basePropertyDeep;\n","var baseProperty = require('./_baseProperty'),\n    basePropertyDeep = require('./_basePropertyDeep'),\n    isKey = require('./_isKey'),\n    toKey = require('./_toKey');\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n *   { 'a': { 'b': 2 } },\n *   { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n  return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n","var baseMatches = require('./_baseMatches'),\n    baseMatchesProperty = require('./_baseMatchesProperty'),\n    identity = require('./identity'),\n    isArray = require('./isArray'),\n    property = require('./property');\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n  // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n  // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n  if (typeof value == 'function') {\n    return value;\n  }\n  if (value == null) {\n    return identity;\n  }\n  if (typeof value == 'object') {\n    return isArray(value)\n      ? baseMatchesProperty(value[0], value[1])\n      : baseMatches(value);\n  }\n  return property(value);\n}\n\nmodule.exports = baseIteratee;\n","var baseFor = require('./_baseFor'),\n    keys = require('./keys');\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n  return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\n","var isArrayLike = require('./isArrayLike');\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n  return function(collection, iteratee) {\n    if (collection == null) {\n      return collection;\n    }\n    if (!isArrayLike(collection)) {\n      return eachFunc(collection, iteratee);\n    }\n    var length = collection.length,\n        index = fromRight ? length : -1,\n        iterable = Object(collection);\n\n    while ((fromRight ? index-- : ++index < length)) {\n      if (iteratee(iterable[index], index, iterable) === false) {\n        break;\n      }\n    }\n    return collection;\n  };\n}\n\nmodule.exports = createBaseEach;\n","var baseForOwn = require('./_baseForOwn'),\n    createBaseEach = require('./_createBaseEach');\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nmodule.exports = baseEach;\n","var baseEach = require('./_baseEach'),\n    isArrayLike = require('./isArrayLike');\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n  var index = -1,\n      result = isArrayLike(collection) ? Array(collection.length) : [];\n\n  baseEach(collection, function(value, key, collection) {\n    result[++index] = iteratee(value, key, collection);\n  });\n  return result;\n}\n\nmodule.exports = baseMap;\n","/**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\nfunction baseSortBy(array, comparer) {\n  var length = array.length;\n\n  array.sort(comparer);\n  while (length--) {\n    array[length] = array[length].value;\n  }\n  return array;\n}\n\nmodule.exports = baseSortBy;\n","var isSymbol = require('./isSymbol');\n\n/**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\nfunction compareAscending(value, other) {\n  if (value !== other) {\n    var valIsDefined = value !== undefined,\n        valIsNull = value === null,\n        valIsReflexive = value === value,\n        valIsSymbol = isSymbol(value);\n\n    var othIsDefined = other !== undefined,\n        othIsNull = other === null,\n        othIsReflexive = other === other,\n        othIsSymbol = isSymbol(other);\n\n    if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n        (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n        (valIsNull && othIsDefined && othIsReflexive) ||\n        (!valIsDefined && othIsReflexive) ||\n        !valIsReflexive) {\n      return 1;\n    }\n    if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n        (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n        (othIsNull && valIsDefined && valIsReflexive) ||\n        (!othIsDefined && valIsReflexive) ||\n        !othIsReflexive) {\n      return -1;\n    }\n  }\n  return 0;\n}\n\nmodule.exports = compareAscending;\n","var compareAscending = require('./_compareAscending');\n\n/**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\nfunction compareMultiple(object, other, orders) {\n  var index = -1,\n      objCriteria = object.criteria,\n      othCriteria = other.criteria,\n      length = objCriteria.length,\n      ordersLength = orders.length;\n\n  while (++index < length) {\n    var result = compareAscending(objCriteria[index], othCriteria[index]);\n    if (result) {\n      if (index >= ordersLength) {\n        return result;\n      }\n      var order = orders[index];\n      return result * (order == 'desc' ? -1 : 1);\n    }\n  }\n  // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n  // that causes it, under certain circumstances, to provide the same value for\n  // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n  // for more details.\n  //\n  // This also ensures a stable sort in V8 and other engines.\n  // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n  return object.index - other.index;\n}\n\nmodule.exports = compareMultiple;\n","var arrayMap = require('./_arrayMap'),\n    baseGet = require('./_baseGet'),\n    baseIteratee = require('./_baseIteratee'),\n    baseMap = require('./_baseMap'),\n    baseSortBy = require('./_baseSortBy'),\n    baseUnary = require('./_baseUnary'),\n    compareMultiple = require('./_compareMultiple'),\n    identity = require('./identity'),\n    isArray = require('./isArray');\n\n/**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\nfunction baseOrderBy(collection, iteratees, orders) {\n  if (iteratees.length) {\n    iteratees = arrayMap(iteratees, function(iteratee) {\n      if (isArray(iteratee)) {\n        return function(value) {\n          return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);\n        }\n      }\n      return iteratee;\n    });\n  } else {\n    iteratees = [identity];\n  }\n\n  var index = -1;\n  iteratees = arrayMap(iteratees, baseUnary(baseIteratee));\n\n  var result = baseMap(collection, function(value, key, collection) {\n    var criteria = arrayMap(iteratees, function(iteratee) {\n      return iteratee(value);\n    });\n    return { 'criteria': criteria, 'index': ++index, 'value': value };\n  });\n\n  return baseSortBy(result, function(object, other) {\n    return compareMultiple(object, other, orders);\n  });\n}\n\nmodule.exports = baseOrderBy;\n","var baseFlatten = require('./_baseFlatten'),\n    baseOrderBy = require('./_baseOrderBy'),\n    baseRest = require('./_baseRest'),\n    isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n *  The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n *   { 'user': 'fred',   'age': 48 },\n *   { 'user': 'barney', 'age': 36 },\n *   { 'user': 'fred',   'age': 30 },\n *   { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]\n */\nvar sortBy = baseRest(function(collection, iteratees) {\n  if (collection == null) {\n    return [];\n  }\n  var length = iteratees.length;\n  if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n    iteratees = [];\n  } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n    iteratees = [iteratees[0]];\n  }\n  return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n});\n\nmodule.exports = sortBy;\n","/**\n * This base implementation of `_.zipObject` which assigns values using `assignFunc`.\n *\n * @private\n * @param {Array} props The property identifiers.\n * @param {Array} values The property values.\n * @param {Function} assignFunc The function to assign values.\n * @returns {Object} Returns the new object.\n */\nfunction baseZipObject(props, values, assignFunc) {\n  var index = -1,\n      length = props.length,\n      valsLength = values.length,\n      result = {};\n\n  while (++index < length) {\n    var value = index < valsLength ? values[index] : undefined;\n    assignFunc(result, props[index], value);\n  }\n  return result;\n}\n\nmodule.exports = baseZipObject;\n","var assignValue = require('./_assignValue'),\n    baseZipObject = require('./_baseZipObject');\n\n/**\n * This method is like `_.fromPairs` except that it accepts two arrays,\n * one of property identifiers and one of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 0.4.0\n * @category Array\n * @param {Array} [props=[]] The property identifiers.\n * @param {Array} [values=[]] The property values.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.zipObject(['a', 'b'], [1, 2]);\n * // => { 'a': 1, 'b': 2 }\n */\nfunction zipObject(props, values) {\n  return baseZipObject(props || [], values || [], assignValue);\n}\n\nmodule.exports = zipObject;\n","import { BigNumber } from \"bignumber.js\";\nimport sortBy from \"lodash/sortBy\";\nimport zipObject from \"lodash/zipObject\";\nimport { getFullScope } from \"./getFullScope\";\nimport { lookup } from \"./lookup\";\nimport { roundNumber } from \"./roundNumber\";\nimport { inferType } from \"./inferType\";\nconst DECIMAL_UNITS = {\n    \"0\": \"unit\",\n    \"1\": \"ten\",\n    \"2\": \"hundred\",\n    \"3\": \"thousand\",\n    \"6\": \"million\",\n    \"9\": \"billion\",\n    \"12\": \"trillion\",\n    \"15\": \"quadrillion\",\n    \"-1\": \"deci\",\n    \"-2\": \"centi\",\n    \"-3\": \"mili\",\n    \"-6\": \"micro\",\n    \"-9\": \"nano\",\n    \"-12\": \"pico\",\n    \"-15\": \"femto\",\n};\nconst INVERTED_DECIMAL_UNITS = zipObject(Object.values(DECIMAL_UNITS), Object.keys(DECIMAL_UNITS).map((key) => parseInt(key, 10)));\nexport function numberToHuman(i18n, input, options) {\n    const roundOptions = {\n        roundMode: options.roundMode,\n        precision: options.precision,\n        significant: options.significant,\n    };\n    let units;\n    if (inferType(options.units) === \"string\") {\n        const scope = options.units;\n        units = lookup(i18n, scope);\n        if (!units) {\n            throw new Error(`The scope \"${i18n.locale}${i18n.defaultSeparator}${getFullScope(i18n, scope, {})}\" couldn't be found`);\n        }\n    }\n    else {\n        units = options.units;\n    }\n    let formattedNumber = roundNumber(new BigNumber(input), roundOptions);\n    const unitExponents = (units) => sortBy(Object.keys(units).map((name) => INVERTED_DECIMAL_UNITS[name]), (numeric) => numeric * -1);\n    const calculateExponent = (num, units) => {\n        const exponent = num.isZero()\n            ? 0\n            : Math.floor(Math.log10(num.abs().toNumber()));\n        return unitExponents(units).find((exp) => exponent >= exp) || 0;\n    };\n    const determineUnit = (units, exponent) => {\n        const expName = DECIMAL_UNITS[exponent.toString()];\n        return units[expName] || \"\";\n    };\n    const exponent = calculateExponent(new BigNumber(formattedNumber), units);\n    const unit = determineUnit(units, exponent);\n    formattedNumber = roundNumber(new BigNumber(formattedNumber).div(Math.pow(10, exponent)), roundOptions);\n    if (options.stripInsignificantZeros) {\n        let [whole, significand] = formattedNumber.split(\".\");\n        significand = (significand || \"\").replace(/0+$/, \"\");\n        formattedNumber = whole;\n        if (significand) {\n            formattedNumber += `${options.separator}${significand}`;\n        }\n    }\n    return options.format\n        .replace(\"%n\", formattedNumber || \"0\")\n        .replace(\"%u\", unit)\n        .trim();\n}\n//# sourceMappingURL=numberToHuman.js.map","import { BigNumber } from \"bignumber.js\";\nimport { roundNumber } from \"./roundNumber\";\nimport { expandRoundMode } from \"./expandRoundMode\";\nconst STORAGE_UNITS = [\"byte\", \"kb\", \"mb\", \"gb\", \"tb\", \"pb\", \"eb\"];\nexport function numberToHumanSize(i18n, input, options) {\n    const roundMode = expandRoundMode(options.roundMode);\n    const base = 1024;\n    const num = new BigNumber(input).abs();\n    const smallerThanBase = num.lt(base);\n    let numberToBeFormatted;\n    const computeExponent = (numeric, units) => {\n        const max = units.length - 1;\n        const exp = new BigNumber(Math.log(numeric.toNumber()))\n            .div(Math.log(base))\n            .integerValue(BigNumber.ROUND_DOWN)\n            .toNumber();\n        return Math.min(max, exp);\n    };\n    const storageUnitKey = (units) => {\n        const keyEnd = smallerThanBase ? \"byte\" : units[exponent];\n        return `number.human.storage_units.units.${keyEnd}`;\n    };\n    const exponent = computeExponent(num, STORAGE_UNITS);\n    if (smallerThanBase) {\n        numberToBeFormatted = num.integerValue();\n    }\n    else {\n        numberToBeFormatted = new BigNumber(roundNumber(num.div(Math.pow(base, exponent)), {\n            significant: options.significant,\n            precision: options.precision,\n            roundMode: options.roundMode,\n        }));\n    }\n    const format = i18n.translate(\"number.human.storage_units.format\", {\n        defaultValue: \"%n %u\",\n    });\n    const unit = i18n.translate(storageUnitKey(STORAGE_UNITS), {\n        count: num.integerValue().toNumber(),\n    });\n    let formattedNumber = numberToBeFormatted.toFixed(options.precision, roundMode);\n    if (options.stripInsignificantZeros) {\n        formattedNumber = formattedNumber\n            .replace(/(\\..*?)0+$/, \"$1\")\n            .replace(/\\.$/, \"\");\n    }\n    return format.replace(\"%n\", formattedNumber).replace(\"%u\", unit);\n}\n//# sourceMappingURL=numberToHumanSize.js.map","export function parseDate(input) {\n    if (input instanceof Date) {\n        return input;\n    }\n    if (typeof input === \"number\") {\n        const date = new Date();\n        date.setTime(input);\n        return date;\n    }\n    const matches = new String(input).match(/(\\d{4})-(\\d{2})-(\\d{2})(?:[ T](\\d{2}):(\\d{2}):(\\d{2})(?:[.,](\\d{1,3}))?)?(Z|\\+00:?00)?/);\n    if (matches) {\n        const parts = matches.slice(1, 8).map((match) => parseInt(match, 10) || 0);\n        parts[1] -= 1;\n        const [year, month, day, hour, minute, second, milliseconds] = parts;\n        const timezone = matches[8];\n        if (timezone) {\n            return new Date(Date.UTC(year, month, day, hour, minute, second, milliseconds));\n        }\n        else {\n            return new Date(year, month, day, hour, minute, second, milliseconds);\n        }\n    }\n    if (input.match(/([A-Z][a-z]{2}) ([A-Z][a-z]{2}) (\\d+) (\\d+:\\d+:\\d+) ([+-]\\d+) (\\d+)/)) {\n        const date = new Date();\n        date.setTime(Date.parse([RegExp.$1, RegExp.$2, RegExp.$3, RegExp.$6, RegExp.$4, RegExp.$5].join(\" \")));\n    }\n    const date = new Date();\n    date.setTime(Date.parse(input));\n    return date;\n}\n//# sourceMappingURL=parseDate.js.map","import { isSet } from \"./isSet\";\nimport { lookup } from \"./lookup\";\nexport function pluralize({ i18n, count, scope, options, baseScope, }) {\n    options = Object.assign({}, options);\n    let translations;\n    let message;\n    if (typeof scope === \"object\" && scope) {\n        translations = scope;\n    }\n    else {\n        translations = lookup(i18n, scope, options);\n    }\n    if (!translations) {\n        return i18n.missingTranslation.get(scope, options);\n    }\n    const pluralizer = i18n.pluralization.get(options.locale);\n    const keys = pluralizer(i18n, count);\n    const missingKeys = [];\n    while (keys.length) {\n        const key = keys.shift();\n        if (isSet(translations[key])) {\n            message = translations[key];\n            break;\n        }\n        missingKeys.push(key);\n    }\n    if (!isSet(message)) {\n        return i18n.missingTranslation.get(baseScope.split(i18n.defaultSeparator).concat([missingKeys[0]]), options);\n    }\n    options.count = count;\n    return i18n.interpolate(i18n, message, options);\n}\n//# sourceMappingURL=pluralize.js.map","const DEFAULT_OPTIONS = {\n    meridian: { am: \"AM\", pm: \"PM\" },\n    dayNames: [\n        \"Sunday\",\n        \"Monday\",\n        \"Tuesday\",\n        \"Wednesday\",\n        \"Thursday\",\n        \"Friday\",\n        \"Saturday\",\n    ],\n    abbrDayNames: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n    monthNames: [\n        null,\n        \"January\",\n        \"February\",\n        \"March\",\n        \"April\",\n        \"May\",\n        \"June\",\n        \"July\",\n        \"August\",\n        \"September\",\n        \"October\",\n        \"November\",\n        \"December\",\n    ],\n    abbrMonthNames: [\n        null,\n        \"Jan\",\n        \"Feb\",\n        \"Mar\",\n        \"Apr\",\n        \"May\",\n        \"Jun\",\n        \"Jul\",\n        \"Aug\",\n        \"Sep\",\n        \"Oct\",\n        \"Nov\",\n        \"Dec\",\n    ],\n};\nexport function strftime(date, format, options = {}) {\n    const { abbrDayNames, dayNames, abbrMonthNames, monthNames, meridian: AM_PM, utc, } = Object.assign(Object.assign({}, DEFAULT_OPTIONS), options);\n    if (isNaN(date.getTime())) {\n        throw new Error(\"strftime() requires a valid date object, but received an invalid date.\");\n    }\n    const weekDay = utc ? date.getUTCDay() : date.getDay();\n    const day = utc ? date.getUTCDate() : date.getDate();\n    const year = utc ? date.getUTCFullYear() : date.getFullYear();\n    const month = (utc ? date.getUTCMonth() : date.getMonth()) + 1;\n    const hour = utc ? date.getUTCHours() : date.getHours();\n    let hour12 = hour;\n    const meridian = hour > 11 ? \"pm\" : \"am\";\n    const secs = utc ? date.getUTCSeconds() : date.getSeconds();\n    const mins = utc ? date.getUTCMinutes() : date.getMinutes();\n    const offset = utc ? 0 : date.getTimezoneOffset();\n    const absOffsetHours = Math.floor(Math.abs(offset / 60));\n    const absOffsetMinutes = Math.abs(offset) - absOffsetHours * 60;\n    const timezoneoffset = (offset > 0 ? \"-\" : \"+\") +\n        (absOffsetHours.toString().length < 2\n            ? \"0\" + absOffsetHours\n            : absOffsetHours) +\n        (absOffsetMinutes.toString().length < 2\n            ? \"0\" + absOffsetMinutes\n            : absOffsetMinutes);\n    if (hour12 > 12) {\n        hour12 = hour12 - 12;\n    }\n    else if (hour12 === 0) {\n        hour12 = 12;\n    }\n    format = format.replace(\"%a\", abbrDayNames[weekDay]);\n    format = format.replace(\"%A\", dayNames[weekDay]);\n    format = format.replace(\"%b\", abbrMonthNames[month]);\n    format = format.replace(\"%B\", monthNames[month]);\n    format = format.replace(\"%d\", day.toString().padStart(2, \"0\"));\n    format = format.replace(\"%e\", day.toString());\n    format = format.replace(\"%-d\", day.toString());\n    format = format.replace(\"%H\", hour.toString().padStart(2, \"0\"));\n    format = format.replace(\"%-H\", hour.toString());\n    format = format.replace(\"%k\", hour.toString());\n    format = format.replace(\"%I\", hour12.toString().padStart(2, \"0\"));\n    format = format.replace(\"%-I\", hour12.toString());\n    format = format.replace(\"%l\", hour12.toString());\n    format = format.replace(\"%m\", month.toString().padStart(2, \"0\"));\n    format = format.replace(\"%-m\", month.toString());\n    format = format.replace(\"%M\", mins.toString().padStart(2, \"0\"));\n    format = format.replace(\"%-M\", mins.toString());\n    format = format.replace(\"%p\", AM_PM[meridian]);\n    format = format.replace(\"%P\", AM_PM[meridian].toLowerCase());\n    format = format.replace(\"%S\", secs.toString().padStart(2, \"0\"));\n    format = format.replace(\"%-S\", secs.toString());\n    format = format.replace(\"%w\", weekDay.toString());\n    format = format.replace(\"%y\", year.toString().padStart(2, \"0\").substr(-2));\n    format = format.replace(\"%-y\", year.toString().padStart(2, \"0\").substr(-2).replace(/^0+/, \"\"));\n    format = format.replace(\"%Y\", year.toString());\n    format = format.replace(/%z/i, timezoneoffset);\n    return format;\n}\n//# sourceMappingURL=strftime.js.map","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil,\n    nativeMax = Math.max;\n\n/**\n * The base implementation of `_.range` and `_.rangeRight` which doesn't\n * coerce arguments.\n *\n * @private\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @param {number} step The value to increment or decrement by.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the range of numbers.\n */\nfunction baseRange(start, end, step, fromRight) {\n  var index = -1,\n      length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),\n      result = Array(length);\n\n  while (length--) {\n    result[fromRight ? length : ++index] = start;\n    start += step;\n  }\n  return result;\n}\n\nmodule.exports = baseRange;\n","var baseRange = require('./_baseRange'),\n    isIterateeCall = require('./_isIterateeCall'),\n    toFinite = require('./toFinite');\n\n/**\n * Creates a `_.range` or `_.rangeRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new range function.\n */\nfunction createRange(fromRight) {\n  return function(start, end, step) {\n    if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {\n      end = step = undefined;\n    }\n    // Ensure the sign of `-0` is preserved.\n    start = toFinite(start);\n    if (end === undefined) {\n      end = start;\n      start = 0;\n    } else {\n      end = toFinite(end);\n    }\n    step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);\n    return baseRange(start, end, step, fromRight);\n  };\n}\n\nmodule.exports = createRange;\n","var createRange = require('./_createRange');\n\n/**\n * Creates an array of numbers (positive and/or negative) progressing from\n * `start` up to, but not including, `end`. A step of `-1` is used if a negative\n * `start` is specified without an `end` or `step`. If `end` is not specified,\n * it's set to `start` with `start` then set to `0`.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @param {number} [step=1] The value to increment or decrement by.\n * @returns {Array} Returns the range of numbers.\n * @see _.inRange, _.rangeRight\n * @example\n *\n * _.range(4);\n * // => [0, 1, 2, 3]\n *\n * _.range(-4);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 5);\n * // => [1, 2, 3, 4]\n *\n * _.range(0, 20, 5);\n * // => [0, 5, 10, 15]\n *\n * _.range(0, -4, -1);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 4, 0);\n * // => [1, 1, 1]\n *\n * _.range(0);\n * // => []\n */\nvar range = createRange();\n\nmodule.exports = range;\n","import range from \"lodash/range\";\nimport { parseDate } from \"./parseDate\";\nconst within = (start, end, actual) => actual >= start && actual <= end;\nexport function timeAgoInWords(i18n, fromTime, toTime, options = {}) {\n    const scope = options.scope || \"datetime.distance_in_words\";\n    const t = (name, count = 0) => i18n.t(name, { count, scope });\n    fromTime = parseDate(fromTime);\n    toTime = parseDate(toTime);\n    let fromInSeconds = fromTime.getTime() / 1000;\n    let toInSeconds = toTime.getTime() / 1000;\n    if (fromInSeconds > toInSeconds) {\n        [fromTime, toTime, fromInSeconds, toInSeconds] = [\n            toTime,\n            fromTime,\n            toInSeconds,\n            fromInSeconds,\n        ];\n    }\n    const distanceInSeconds = Math.round(toInSeconds - fromInSeconds);\n    const distanceInMinutes = Math.round((toInSeconds - fromInSeconds) / 60);\n    const distanceInHours = distanceInMinutes / 60;\n    const distanceInDays = distanceInHours / 24;\n    const distanceInHoursRounded = Math.round(distanceInMinutes / 60);\n    const distanceInDaysRounded = Math.round(distanceInDays);\n    const distanceInMonthsRounded = Math.round(distanceInDaysRounded / 30);\n    if (within(0, 1, distanceInMinutes)) {\n        if (!options.includeSeconds) {\n            return distanceInMinutes === 0\n                ? t(\"less_than_x_minutes\", 1)\n                : t(\"x_minutes\", distanceInMinutes);\n        }\n        if (within(0, 4, distanceInSeconds)) {\n            return t(\"less_than_x_seconds\", 5);\n        }\n        if (within(5, 9, distanceInSeconds)) {\n            return t(\"less_than_x_seconds\", 10);\n        }\n        if (within(10, 19, distanceInSeconds)) {\n            return t(\"less_than_x_seconds\", 20);\n        }\n        if (within(20, 39, distanceInSeconds)) {\n            return t(\"half_a_minute\");\n        }\n        if (within(40, 59, distanceInSeconds)) {\n            return t(\"less_than_x_minutes\", 1);\n        }\n        return t(\"x_minutes\", 1);\n    }\n    if (within(2, 44, distanceInMinutes)) {\n        return t(\"x_minutes\", distanceInMinutes);\n    }\n    if (within(45, 89, distanceInMinutes)) {\n        return t(\"about_x_hours\", 1);\n    }\n    if (within(90, 1439, distanceInMinutes)) {\n        return t(\"about_x_hours\", distanceInHoursRounded);\n    }\n    if (within(1440, 2519, distanceInMinutes)) {\n        return t(\"x_days\", 1);\n    }\n    if (within(2520, 43199, distanceInMinutes)) {\n        return t(\"x_days\", distanceInDaysRounded);\n    }\n    if (within(43200, 86399, distanceInMinutes)) {\n        return t(\"about_x_months\", Math.round(distanceInMinutes / 43200));\n    }\n    if (within(86400, 525599, distanceInMinutes)) {\n        return t(\"x_months\", distanceInMonthsRounded);\n    }\n    let fromYear = fromTime.getFullYear();\n    if (fromTime.getMonth() + 1 >= 3) {\n        fromYear += 1;\n    }\n    let toYear = toTime.getFullYear();\n    if (toTime.getMonth() + 1 < 3) {\n        toYear -= 1;\n    }\n    const leapYears = fromYear > toYear\n        ? 0\n        : range(fromYear, toYear).filter((year) => new Date(year, 1, 29).getMonth() == 1).length;\n    const minutesInYear = 525600;\n    const minuteOffsetForLeapYear = leapYears * 1440;\n    const minutesWithOffset = distanceInMinutes - minuteOffsetForLeapYear;\n    const distanceInYears = Math.trunc(minutesWithOffset / minutesInYear);\n    const diff = parseFloat((minutesWithOffset / minutesInYear - distanceInYears).toPrecision(3));\n    if (diff < 0.25) {\n        return t(\"about_x_years\", distanceInYears);\n    }\n    if (diff < 0.75) {\n        return t(\"over_x_years\", distanceInYears);\n    }\n    return t(\"almost_x_years\", distanceInYears + 1);\n}\n//# sourceMappingURL=timeAgoInWords.js.map","import { getFullScope, inferType } from \"./helpers\";\nexport const guessStrategy = function (i18n, scope) {\n    if (scope instanceof Array) {\n        scope = scope.join(i18n.defaultSeparator);\n    }\n    const message = scope.split(i18n.defaultSeparator).slice(-1)[0];\n    return (i18n.missingTranslationPrefix +\n        message\n            .replace(\"_\", \" \")\n            .replace(/([a-z])([A-Z])/g, (_match, p1, p2) => `${p1} ${p2.toLowerCase()}`));\n};\nexport const messageStrategy = (i18n, scope, options) => {\n    const fullScope = getFullScope(i18n, scope, options);\n    const locale = \"locale\" in options ? options.locale : i18n.locale;\n    const localeType = inferType(locale);\n    const fullScopeWithLocale = [\n        localeType == \"string\" ? locale : localeType,\n        fullScope,\n    ].join(i18n.defaultSeparator);\n    return `[missing \"${fullScopeWithLocale}\" translation]`;\n};\nexport const errorStrategy = (i18n, scope, options) => {\n    const fullScope = getFullScope(i18n, scope, options);\n    const fullScopeWithLocale = [i18n.locale, fullScope].join(i18n.defaultSeparator);\n    throw new Error(`Missing translation: ${fullScopeWithLocale}`);\n};\nexport class MissingTranslation {\n    constructor(i18n) {\n        this.i18n = i18n;\n        this.registry = {};\n        this.register(\"guess\", guessStrategy);\n        this.register(\"message\", messageStrategy);\n        this.register(\"error\", errorStrategy);\n    }\n    register(name, strategy) {\n        this.registry[name] = strategy;\n    }\n    get(scope, options) {\n        var _a;\n        return this.registry[(_a = options.missingBehavior) !== null && _a !== void 0 ? _a : this.i18n.missingBehavior](this.i18n, scope, options);\n    }\n}\n//# sourceMappingURL=MissingTranslation.js.map","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n    return new (P || (P = Promise))(function (resolve, reject) {\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\n    });\n};\nimport get from \"lodash/get\";\nimport has from \"lodash/has\";\nimport merge from \"lodash/merge\";\nimport { Locales } from \"./Locales\";\nimport { Pluralization } from \"./Pluralization\";\nimport { MissingTranslation } from \"./MissingTranslation\";\nimport { camelCaseKeys, createTranslationOptions, formatNumber, getFullScope, inferType, interpolate, isSet, lookup, numberToDelimited, numberToHuman, numberToHumanSize, parseDate, pluralize, strftime, timeAgoInWords, } from \"./helpers\";\nconst DEFAULT_I18N_OPTIONS = {\n    defaultLocale: \"en\",\n    locale: \"en\",\n    defaultSeparator: \".\",\n    placeholder: /(?:\\{\\{|%\\{)(.*?)(?:\\}\\}?)/gm,\n    enableFallback: false,\n    missingBehavior: \"message\",\n    missingTranslationPrefix: \"\",\n    missingPlaceholder: (_i18n, placeholder) => `[missing \"${placeholder}\" value]`,\n    nullPlaceholder: (i18n, placeholder, message, options) => i18n.missingPlaceholder(i18n, placeholder, message, options),\n    transformKey: (key) => key,\n};\nexport class I18n {\n    constructor(translations = {}, options = {}) {\n        this._locale = DEFAULT_I18N_OPTIONS.locale;\n        this._defaultLocale = DEFAULT_I18N_OPTIONS.defaultLocale;\n        this._version = 0;\n        this.onChangeHandlers = [];\n        this.translations = {};\n        this.t = this.translate;\n        this.p = this.pluralize;\n        this.l = this.localize;\n        this.distanceOfTimeInWords = this.timeAgoInWords;\n        const { locale, enableFallback, missingBehavior, missingTranslationPrefix, missingPlaceholder, nullPlaceholder, defaultLocale, defaultSeparator, placeholder, transformKey, } = Object.assign(Object.assign({}, DEFAULT_I18N_OPTIONS), options);\n        this.locale = locale;\n        this.defaultLocale = defaultLocale;\n        this.defaultSeparator = defaultSeparator;\n        this.enableFallback = enableFallback;\n        this.locale = locale;\n        this.missingBehavior = missingBehavior;\n        this.missingTranslationPrefix = missingTranslationPrefix;\n        this.missingPlaceholder = missingPlaceholder;\n        this.nullPlaceholder = nullPlaceholder;\n        this.placeholder = placeholder;\n        this.pluralization = new Pluralization(this);\n        this.locales = new Locales(this);\n        this.missingTranslation = new MissingTranslation(this);\n        this.transformKey = transformKey;\n        this.interpolate = interpolate;\n        this.store(translations);\n    }\n    store(translations) {\n        merge(this.translations, translations);\n        this.hasChanged();\n    }\n    get locale() {\n        return this._locale || this.defaultLocale || \"en\";\n    }\n    set locale(newLocale) {\n        if (typeof newLocale !== \"string\") {\n            throw new Error(`Expected newLocale to be a string; got ${inferType(newLocale)}`);\n        }\n        const changed = this._locale !== newLocale;\n        this._locale = newLocale;\n        if (changed) {\n            this.hasChanged();\n        }\n    }\n    get defaultLocale() {\n        return this._defaultLocale || \"en\";\n    }\n    set defaultLocale(newLocale) {\n        if (typeof newLocale !== \"string\") {\n            throw new Error(`Expected newLocale to be a string; got ${inferType(newLocale)}`);\n        }\n        const changed = this._defaultLocale !== newLocale;\n        this._defaultLocale = newLocale;\n        if (changed) {\n            this.hasChanged();\n        }\n    }\n    translate(scope, options) {\n        options = Object.assign({}, options);\n        const translationOptions = createTranslationOptions(this, scope, options);\n        let translation;\n        const hasFoundTranslation = translationOptions.some((translationOption) => {\n            if (isSet(translationOption.scope)) {\n                translation = lookup(this, translationOption.scope, options);\n            }\n            else if (isSet(translationOption.message)) {\n                translation = translationOption.message;\n            }\n            return translation !== undefined && translation !== null;\n        });\n        if (!hasFoundTranslation) {\n            return this.missingTranslation.get(scope, options);\n        }\n        if (typeof translation === \"string\") {\n            translation = this.interpolate(this, translation, options);\n        }\n        else if (typeof translation === \"object\" &&\n            translation &&\n            isSet(options.count)) {\n            translation = pluralize({\n                i18n: this,\n                count: options.count || 0,\n                scope: translation,\n                options,\n                baseScope: getFullScope(this, scope, options),\n            });\n        }\n        if (options && translation instanceof Array) {\n            translation = translation.map((entry) => typeof entry === \"string\"\n                ? interpolate(this, entry, options)\n                : entry);\n        }\n        return translation;\n    }\n    pluralize(count, scope, options) {\n        return pluralize({\n            i18n: this,\n            count,\n            scope,\n            options: Object.assign({}, options),\n            baseScope: getFullScope(this, scope, options !== null && options !== void 0 ? options : {}),\n        });\n    }\n    localize(type, value, options) {\n        options = Object.assign({}, options);\n        if (value === undefined || value === null) {\n            return \"\";\n        }\n        switch (type) {\n            case \"currency\":\n                return this.numberToCurrency(value);\n            case \"number\":\n                return formatNumber(value, Object.assign({ delimiter: \",\", precision: 3, separator: \".\", significant: false, stripInsignificantZeros: false }, lookup(this, \"number.format\")));\n            case \"percentage\":\n                return this.numberToPercentage(value);\n            default: {\n                let localizedValue;\n                if (type.match(/^(date|time)/)) {\n                    localizedValue = this.toTime(type, value);\n                }\n                else {\n                    localizedValue = value.toString();\n                }\n                return interpolate(this, localizedValue, options);\n            }\n        }\n    }\n    toTime(scope, input) {\n        const date = parseDate(input);\n        const format = lookup(this, scope);\n        if (date.toString().match(/invalid/i)) {\n            return date.toString();\n        }\n        if (!format) {\n            return date.toString();\n        }\n        return this.strftime(date, format);\n    }\n    numberToCurrency(input, options = {}) {\n        return formatNumber(input, Object.assign(Object.assign(Object.assign({ delimiter: \",\", format: \"%u%n\", precision: 2, separator: \".\", significant: false, stripInsignificantZeros: false, unit: \"$\" }, camelCaseKeys(this.get(\"number.format\"))), camelCaseKeys(this.get(\"number.currency.format\"))), options));\n    }\n    numberToPercentage(input, options = {}) {\n        return formatNumber(input, Object.assign(Object.assign(Object.assign({ delimiter: \"\", format: \"%n%\", precision: 3, stripInsignificantZeros: false, separator: \".\", significant: false }, camelCaseKeys(this.get(\"number.format\"))), camelCaseKeys(this.get(\"number.percentage.format\"))), options));\n    }\n    numberToHumanSize(input, options = {}) {\n        return numberToHumanSize(this, input, Object.assign(Object.assign(Object.assign({ delimiter: \"\", precision: 3, significant: true, stripInsignificantZeros: true, units: {\n                billion: \"Billion\",\n                million: \"Million\",\n                quadrillion: \"Quadrillion\",\n                thousand: \"Thousand\",\n                trillion: \"Trillion\",\n                unit: \"\",\n            } }, camelCaseKeys(this.get(\"number.human.format\"))), camelCaseKeys(this.get(\"number.human.storage_units\"))), options));\n    }\n    numberToHuman(input, options = {}) {\n        return numberToHuman(this, input, Object.assign(Object.assign(Object.assign({ delimiter: \"\", separator: \".\", precision: 3, significant: true, stripInsignificantZeros: true, format: \"%n %u\", roundMode: \"default\", units: {\n                billion: \"Billion\",\n                million: \"Million\",\n                quadrillion: \"Quadrillion\",\n                thousand: \"Thousand\",\n                trillion: \"Trillion\",\n                unit: \"\",\n            } }, camelCaseKeys(this.get(\"number.human.format\"))), camelCaseKeys(this.get(\"number.human.decimal_units\"))), options));\n    }\n    numberToRounded(input, options) {\n        return formatNumber(input, Object.assign({ unit: \"\", precision: 3, significant: false, separator: \".\", delimiter: \"\", stripInsignificantZeros: false }, options));\n    }\n    numberToDelimited(input, options = {}) {\n        return numberToDelimited(input, Object.assign({ delimiterPattern: /(\\d)(?=(\\d\\d\\d)+(?!\\d))/g, delimiter: \",\", separator: \".\" }, options));\n    }\n    withLocale(locale, callback) {\n        return __awaiter(this, void 0, void 0, function* () {\n            const originalLocale = this.locale;\n            try {\n                this.locale = locale;\n                yield callback();\n            }\n            finally {\n                this.locale = originalLocale;\n            }\n        });\n    }\n    strftime(date, format, options = {}) {\n        return strftime(date, format, Object.assign(Object.assign(Object.assign({}, camelCaseKeys(lookup(this, \"date\"))), { meridian: {\n                am: lookup(this, \"time.am\") || \"AM\",\n                pm: lookup(this, \"time.pm\") || \"PM\",\n            } }), options));\n    }\n    update(path, override, options = { strict: false }) {\n        if (options.strict && !has(this.translations, path)) {\n            throw new Error(`The path \"${path}\" is not currently defined`);\n        }\n        const currentNode = get(this.translations, path);\n        const currentType = inferType(currentNode);\n        const overrideType = inferType(override);\n        if (options.strict && currentType !== overrideType) {\n            throw new Error(`The current type for \"${path}\" is \"${currentType}\", but you're trying to override it with \"${overrideType}\"`);\n        }\n        let newNode;\n        if (overrideType === \"object\") {\n            newNode = Object.assign(Object.assign({}, currentNode), override);\n        }\n        else {\n            newNode = override;\n        }\n        const components = path.split(this.defaultSeparator);\n        const prop = components.pop();\n        let buffer = this.translations;\n        for (const component of components) {\n            if (!buffer[component]) {\n                buffer[component] = {};\n            }\n            buffer = buffer[component];\n        }\n        buffer[prop] = newNode;\n        this.hasChanged();\n    }\n    toSentence(items, options = {}) {\n        const { wordsConnector, twoWordsConnector, lastWordConnector } = Object.assign(Object.assign({ wordsConnector: \", \", twoWordsConnector: \" and \", lastWordConnector: \", and \" }, camelCaseKeys(lookup(this, \"support.array\"))), options);\n        const size = items.length;\n        switch (size) {\n            case 0:\n                return \"\";\n            case 1:\n                return `${items[0]}`;\n            case 2:\n                return items.join(twoWordsConnector);\n            default:\n                return [\n                    items.slice(0, size - 1).join(wordsConnector),\n                    lastWordConnector,\n                    items[size - 1],\n                ].join(\"\");\n        }\n    }\n    timeAgoInWords(fromTime, toTime, options = {}) {\n        return timeAgoInWords(this, fromTime, toTime, options);\n    }\n    onChange(callback) {\n        this.onChangeHandlers.push(callback);\n        return () => {\n            this.onChangeHandlers.splice(this.onChangeHandlers.indexOf(callback), 1);\n        };\n    }\n    get version() {\n        return this._version;\n    }\n    formatNumber(input, options = {}) {\n        options = Object.assign(Object.assign({ delimiter: \",\", precision: 3, separator: \".\", unit: \"\", format: \"%u%n\", significant: false, stripInsignificantZeros: false }, camelCaseKeys(this.get(\"number.format\"))), options);\n        return formatNumber(input, options);\n    }\n    get(scope) {\n        return lookup(this, scope);\n    }\n    runCallbacks() {\n        this.onChangeHandlers.forEach((callback) => callback(this));\n    }\n    hasChanged() {\n        this._version += 1;\n        this.runCallbacks();\n    }\n}\n//# sourceMappingURL=I18n.js.map","import { I18n } from \"i18n-js\";\nimport translations from \"../../assets/builds/translations.json\";\n\n// Fetch user locale from html#lang.\n// This value is being set on `app/views/layouts/application.html.erb` and\n// is inferred from `ACCEPT-LANGUAGE` header.\nconst userLocale = document.documentElement.lang;\n\nconst i18n = new I18n();\ni18n.store(translations);\ni18n.defaultLocale = \"ca\";\ni18n.enableFallback = true;\ni18n.locale = userLocale;\n\nwindow.I18n = i18n;\n\nexport { i18n };\n"],"names":["t","e","i","n","r","o","s","a","l","c","u","h","d","g","m","p","f","b","y","v","A","x","C","E","S","R","k","T","w","L","D","I","N","O","F","B","P","M","_","j","W","U","V","z","q$3","H","J","K","G","Y","$","X$1","q","et","it","Z","Q","tt","nt","rt","X","ot","st","at","lt","ct","ut","ht","dt","gt","bt","pt","mt","ft","vt","At","yt","xt","Ct","Et","St","Rt","kt","Tt","wt","Nt","Lt","It","Dt","Ot","Ft","Pt","Mt","_t","Bt","jt","Wt","Ut","Vt","zt","qt","Ht","Yt","Gt","Jt","Kt","$t","Xt","Zt","Qt","te","ee$2","ee","ie$1","ne","ie","re","oe","se","ae","le","ce","ue","he","de","ge","me","Te","pe","fe","be","ve","Ae","ye","xe","Ce","Ee","Se","Re","ke","we","Le","De","Ne","Ie","Oe","Fe","Pe","Me","Be","_e","je","We","Ue","Ve","ze","qe","He","Je","Ke","Ge","Ye","$e","Xe","Ze","Qe","ti","ei","ii","ni","ri","oi","si","ai","li","ci","ui","hi","di","gi","mi","pi","fi","bi","vi","Ai","yi","xi","Ci","Si","Ei","Ri","wi","Li","Di","Oi","Ii","Ni","Fi","Pi","Mi","Bi","_i","ji","Wi","Ui","Vi","zi","Hi","Ji","qi","Ki","Gi","Yi","en","rn","nn","Qi","$i","Zi","tn","Xi","on","sn","an","ln","cn","gn","un","fn","mn","pn","hn","dn","bn","vn","An","yn","xn","Cn","En","Sn","Rn","kn","Tn","wn","Ln","Dn","Nn","In","On","Fn","_n","Pn","Mn","Bn","jn","Wn","Un","Vn","zn","qn","Hn","Jn","Kn","Gn","Yn","$n","Xn","Zn","Qn","tr","er","ir","nr","or","rr","sr","ar","lr","cr","ur","hr","fr","mr","pr","dr","gr","br","vr","Er","xr","Cr","Sr","Ar","yr","Rr","kr","Tr","wr","Lr","Dr","Nr","Ir","Fr","Or","Pr","Mr","Br","_r","jr","Wr","Ur","Vr","zr","qr","Hr","Jr","Kr","Gr","Yr","$r","Xr","Zr","Qr","to","eo","io","no","_classPrivateFieldLooseBase","id","_classPrivateFieldLooseKey","insertReplacement","source","rx","replacement","newParts","chunk","raw","list","interpolate","phrase","options","dollarRegex","dollarBillsYall","interpolated","arg","defaultOnMissingKey","key","_onMissingKey","_apply","Translator","locales","_temp","onMissingKey","_apply2","string","plural","locale","prevLocale","namespaceEmitter","emitter","_fns","event","arg1","arg2","arg3","arg4","arg5","arg6","toEmit","getListeners","emitAll","one","keep","fns","out","idx","args","keys","urlAlphabet","nanoid","size","isObject","value","type","isObject_1","freeGlobal","global","_freeGlobal","require$$0","freeSelf","root","_root","now","now_1","reWhitespace","trimmedEndIndex","index","_trimmedEndIndex","reTrimStart","baseTrim","_baseTrim","Symbol","_Symbol","objectProto","hasOwnProperty","nativeObjectToString","symToStringTag","getRawTag","isOwn","tag","unmasked","result","_getRawTag","objectToString","_objectToString","require$$1","require$$2","nullTag","undefinedTag","baseGetTag","_baseGetTag","isObjectLike","isObjectLike_1","symbolTag","isSymbol","isSymbol_1","NAN","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","toNumber","other","isBinary","toNumber_1","FUNC_ERROR_TEXT","nativeMax","nativeMin","debounce","func","wait","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","time","thisArg","leadingEdge","timerExpired","remainingWait","timeSinceLastCall","timeSinceLastInvoke","timeWaiting","shouldInvoke","trailingEdge","cancel","flush","debounced","isInvoking","debounce_1","throttle","throttle_1","packageJson","_callbacks","_publish","DefaultStore","_publish2","patch","prevState","nextState","listener","_len","_key","getFileNameAndExtension","fullFileName","lastDot","mimeTypes","getFileType","file","_getFileNameAndExtens","fileExtension","encodeCharacter","character","encodeFilename","name","suffix","generateFileID","instanceId","hasFileStableId","getSafeFileId","fileType","supportsUploadProgress","userAgent","version","major","minor","getFileName","fileDescriptor","pad","number","getTimeStamp","date","hours","minutes","seconds","justErrorsLogger","debugLogger","_len2","_key2","_len3","_key3","_len4","_key4","prettierBytes","input","neg","num","units","exponent","unit","WildcardMatcher","text","separator","matches","parts","partsCount","testParts","wildcard","test","matcher","reMimePartSplit","mimeMatch","target","pattern","defaultOptions","RestrictionError","message","opts","_opts$isUserFacing","Restricter","getOpts","getI18n","_opts$restrictions","existingFiles","addingFiles","maxTotalFileSize","maxNumberOfFiles","totalFilesSize","total","_f$size","maxFileSize","minFileSize","allowedFileTypes","match","allowedFileTypesString","_file$name","addingFile","files","minNumberOfFiles","_file$name2","error","requiredMetaFields","missingFields","field","locale$5","defaultUploadState","_plugins","_restricter","_storeUnsubscribe","_emitter","_preProcessors","_uploaders","_postProcessors","_informAndEmit","_checkRequiredMetaFieldsOnFile","_checkRequiredMetaFields","_assertNewUploadAllowed","_transformFile","_startIfAutoProceed","_checkAndUpdateFileState","_handleUploadProgress","_updateTotalProgress","_updateTotalProgressThrottled","_calculateTotalProgress","_addListeners","_updateOnlineStatus","_requestClientById","_createUpload","_getUpload","_removeUpload","_runUpload","Uppy$1","Uppy","_opts","_runUpload2","_removeUpload2","_getUpload2","_createUpload2","_addListeners2","_calculateTotalProgress2","_updateTotalProgress2","_checkAndUpdateFileState2","_startIfAutoProceed2","_transformFile2","_assertNewUploadAllowed2","_checkRequiredMetaFields2","_checkRequiredMetaFieldsOnFile2","_informAndEmit2","progress","fileInState","newProgress","defaultRestrictionOptions","merged","callback","state","plugin","filesWithNewState","existingFilesState","_ref","fileID","newFileState","translator","newOpts","defaultProgress","updatedFiles","capabilities","currentUploads","data","updatedMeta","newMeta","ids","filesObject","totalProgress","inProgressFiles","newFiles","startedFiles","uploadStartedFiles","pausedFiles","completeFiles","erroredFiles","inProgressNotPausedFiles","processingFiles","err","nextFilesState","validFilesToAdd","errors","restrictionErrors","firstValidFileToAdd","fileDescriptors","nonRestrictionErrors","subError","fileIDs","updatedUploads","removedFiles","fileIsNotRemoved","uploadFileID","uploadID","newFileIDs","stateUpdate","removedFileIDs","isPaused","updatedFile","filesToRetry","_provider","_window$navigator$onL","Plugin","msg","pluginId","existsPluginAlready","plugins","foundPlugin","method","instance","item","updatedState","info","duration","isComplexMessage","logger","client","requestClient","currentUpload","_classPrivateFieldLoo","onBeforeUploadResult","currentlyUploadingFiles","curr","waitingFileIDs","userFacingErrors","maxNumToShow","firstErrors","additionalErrors","_ref2","details","success","allowNewUpload","fileDescriptorOrFile","fileName","meta","filesToAdd","fileToAdd","_existingFiles$newFil","newFile","isGhost","onBeforeFileAddedResult","_newFile$name","_totalProgressPercent","_totalProgressPercent2","totalProgressPercent","filesInProgress","isSizedFile","sizedFilesInProgress","unsizedFilesInProgress","acc","_file$progress$bytesT","totalUploadedSize","errorHandler","response","errorMsg","newError","uploadStalledWarningRecentlyEmitted","onUploadStarted","filesFiltered","exists","filesState","uploadResp","currentProgress","forceAllowNewUpload","getCurrentUpload","steps","step","successful","failed","isDOMElement","obj","findDOMElement","element","context","getTextDirection","_element","BasePlugin","uppy","update","calling","latestArgs","_updateUI","UIPlugin","targetPlugin","Target","callerPluginName","targetElement","uppyRootElement","render","container","_classPrivateFieldLoo2","_this$el","emaFilter","newValue","previousSmoothedValue","halfLife","statusBarStates","hasOwn","classNames","classes","appendClass","parseValue","newClass","module","calculateProcessingProgress","values","mode","preprocess","postprocess","progressValue","secondsToTime","rawSeconds","prettyETA","hoursStr","minutesStr","secondsStr","DOT","renderDot","UploadBtn","props","isUploadStarted","recoveredState","i18n","uploadState","isSomeGhost","startUpload","uploadBtnClassNames","uploadBtnText","RetryBtn","CancelBtn","PauseResumeButton","isAllPaused","isAllComplete","resumableUploads","title","togglePauseResume","DoneBtn","doneButtonHandler","LoadingSpinner","ProgressBarProcessing","ProgressDetails","numUploads","complete","totalSize","totalETA","ifShowFilesUploadedOfTotal","totalUploadedSizeStr","FileUploadCount","UploadNewlyAddedFiles","ProgressBarUploading","showProgressDetails","showUploadNewlyAddedFiles","renderProgressDetails","ProgressBarComplete","ProgressBarError","displayErrorAlert","errorMessage","STATE_ERROR","STATE_WAITING","STATE_PREPROCESSING","STATE_UPLOADING","STATE_POSTPROCESSING","STATE_COMPLETE","StatusBarUI","isUploadInProgress","hideUploadButton","hidePauseResumeButton","hideCancelButton","hideRetryButton","hideAfterFinish","getProgressValue","getIsIndeterminate","width","showUploadBtn","showCancelBtn","showPauseResumeBtn","showRetryBtn","showDoneBtn","progressClassNames","statusBarClassNames","progressBarStateEl","locale$4","speedFilterHalfLife","ETAFilterHalfLife","getUploadingState","_lastUpdateTime","_previousUploadedBytes","_previousSpeed","_previousETA","_computeSmoothETA","_onUploadStart","StatusBar","_computeSmoothETA2","pv","newFilesOrRecovered","totalBytes","remaining","_classPrivateFieldLoo3","uploadedBytesSinceLastTick","_classPrivateFieldLoo4","currentSpeed","filteredSpeed","instantETA","updatedPreviousETA","filteredETA","TRANSITION_MS","FadeIn","Component","createRef","children","assign","getKey","vnode","fallback","_vnode$key","linkRef","component","cache","getChildMapping","mergeChildMappings","prev","next","getValueForKey","nextKeysPending","pendingKeys","prevKey","childMapping","nextKey","pendingNextKey","identity","TransitionGroup","toChildArray","initialChildMapping","nextProps","nextChildMapping","prevChildMapping","hasPrev","hasNext","keysToEnter","keysToLeave","currentChildMapping","childFactory","transitionLeave","transitionName","transitionAppear","transitionEnter","transitionLeaveTimeout","transitionEnterTimeout","transitionAppearTimeout","childrenToRender","_ref3","child","ref","cloneElement","Informer","DATA_URL_PATTERN","dataURItoBlob","dataURI","toFile","_opts$mimeType","dataURIData","mimeType","binary","bytes","isObjectURL","url","isPreviewSupported","c$1","D$1","locale$3","canvasToBlob","canvas","quality","resolve","blob","rotateImage","image","translate","protect","ratio","maxSquare","maxSize","maxW","maxH","ThumbnailGenerator","emitPreprocessCompleteForAll","targetWidth","targetHeight","originalUrl","onload","reject","orientationPromise","rotation","orientation","dimensions","rotatedImage","resizedImage","img","height","deg","aspect","sW","sH","preview","current","findAllDOMElements","elements","toArray$3","getFilesAndDirectoriesFromDirectory","directoryReader","oldEntries","logDropError","onSuccess","entries","newEntries","getAsFileSystemHandleFromEntry","entry","dirEntries","createPromiseToAddFileOrParseDirectory","relativePath","lastResortFile","getNextRelativePath","handle","getFilesFromDataTransfer","dataTransfer","fileSystemHandles","_fileSystemHandle","fileSystemHandle","getAsEntry","fallbackApi","toArray","getDroppedFiles","_options$logDropError","accumulator","webkitGetAsEntryApi","_extends","STYLE_INNER","STYLE_CONTENT","VirtualList","rowHeight","renderRow","overscanCount","offset","start","visibleRowCount","end","selection","styleInner","styleContent","defaultPickerIcon","safeIsNaN","isEqual","first","second","areInputsEqual","newInputs","lastInputs","memoizeOne","resultFn","memoized","newArgs","lastResult","FOCUSABLE_ELEMENTS","getActiveOverlayEl","dashboardEl","activeOverlayType","overlayEl","focusOnFirstNode","nodes","node","focusOnLastNode","isFocusInOverlay","activeOverlayEl","trapFocus","focusableNodes","focusedItemIndex","forInline","createSuperFocus","lastFocusWasOnSuperFocusableEl","superFocusableEl","firstEl","isDragDropSupported","div","shallowEqualObjects","objA","objB","aKeys","bKeys","len","iconImage","iconAudio","iconVideo","iconPDF","iconArchive","iconFile","iconText","getIconByMime","defaultChoice","fileTypeGeneral","fileTypeSpecific","FilePreview","color","icon","getFileTypeIcon","metaFieldIdToName","metaFieldId","metaFields","MetaErrorMessage","toggleFileCard","missingRequiredMetaFields","metaFieldsString","missingMetaField","FilePreviewAndLink","showLinkToFileUploadResult","previewBackgroundColor","onPauseResumeCancelRetry","progressIndicatorTitle","ProgressIndicatorButton","ProgressCircleContainer","ProgressCircle","circleLength","FileProgress","truncateString","maxLength","charsToShow","frontChars","backChars","renderFileName","author","getMaxNameLength","renderAuthor","_props$file$remote","providerName","dot","renderFileSize","ReSelectButton","ErrorButton","onClick","FileInfo","toggleAddFilesPanel","isSingleFile","containerHeight","containerWidth","copyToClipboard","textToCopy","fallbackString","textArea","magicCopyFailed","EditButton","uploadInProgressOrComplete","canEditFile","RemoveButton","CopyLinkButton","copyLinkToClipboard","Buttons","showRemoveButton","openFileEditor","FileItem","isProcessing","isUploaded","uploadInProgress","dashboardItemClass","chunks","chunked","currentChunk","FileList","showRemoveButtonAfterComplete","handleRequestThumbnail","handleCancelThumbnail","individualCancellation","itemsPerRow","rows","useMemo","sortByGhostComesFirst","file1","file2","fileIds","row","AddFiles","_this$fileInput","_this$folderInput","_this$mobileVideoFile","_this$mobilePhotoFile","isFolder","refCallback","_this$props$allowedFi","nativeCameraFacingMode","accept","onClickFn","numberOfAcquirers","browseFiles","browseFolders","lowerFMSelectionType","camelFMSelectionType","acquirer","_this$props$activePic","acquirers","acquirersWithoutLastTwo","lastTwoAcquirers","Fragment","disableLocalFiles","showNativePhotoCameraButton","showNativeVideoCameraButton","myDeviceKey","listWithoutLastTwo","lastTwo","i18nArray","uppyBranding","linkText","AddFilesPanel","ignoreEvent","ev","tagName","PickerPanelContent","activePickerPanel","className","hideAllPanels","useRef","EditorPanel","handleCancel","uploadStates","isAllErrored","UploadStatus","PanelTopBar","RenderMetaFields","computedMetaFields","updateMeta","form","formState","fieldCSSClasses","required","newVal","FileCard","_getMetaFields","fileCardFor","saveFileCard","getMetaFields","showEditButton","storedMetaData","_file$meta$field$id","setFormState","useState","handleSave","useCallback","formEl","useEffect","Slide","cachedChildren","setCachedChildren","setClassName","enterTimeoutRef","leaveTimeoutRef","animationFrameRef","handleEnterTransition","handleLeaveTransition","WIDTH_XL","WIDTH_LG","WIDTH_MD","HEIGHT_MD","Dashboard","isNoFiles","isSizeMD","isSizeHeightMD","dashboardClassName","showFileList","numberOfFilesForRecovery","numberOfGhosts","renderRestoredText","locale$2","memoize","TAB_KEY","ESC_KEY","createPromise","_disabledNodes","_generateLargeThumbnailIfSingleFile","_openFileEditorWhenFilesAdded","_attachRenderFunctionToTarget","_isTargetSupported","_getAcquirers","_getProgressIndicators","_getEditors","_addSpecifiedPluginsFromOptions","_autoDiscoverPlugins","_addSupportedPluginIfNoTarget","_getStatusBarOpts","_getThumbnailGeneratorOpts","_getInformerOpts","_getStatusBarId","_getThumbnailGeneratorId","_getInformerId","_opts$autoOpen","_this$opts","_this$opts$onRequestC","autoOpen","_getInformerId2","_getThumbnailGeneratorId2","_getStatusBarId2","_getInformerOpts2","_getThumbnailGeneratorOpts2","_getStatusBarOpts2","newTargets","callerPluginId","callerPluginType","_state$activePickerPa","targets","editors","editor","promise","handler","_opts$manualClose","manualClose","isHidden","isClosing","_history$state","isDarkModeOn","isDarkModeOnNow","show","descriptors","uppyDashboardInnerEl","pluginState","isModalAndClosed","disable","NODES_TO_DISABLE","nodesToDisable","_history$state2","_event$state","trapFocus.forModal","canSomePluginHandleRootDrop","somePluginCanHandleRootDrop","doesEventHaveFiles","types","hasFiles","executedDropErrorOnce","trapFocus.forInline","LARGE_THUMBNAIL","thumbnailGenerator","fileForThumbnail","firstFile","isMetaEditorEnabled","isImageEditorEnabled","showModalTrigger","trigger","isFocusInUppy","isFocusNowhere","isInformerHidden","isModal","progressindicators","theme","DashboardUI","pluginID","_plugin$opts","typesAllowed","installedPlugin","inline","closeAfterFinish","allowMultipleUploads","allowMultipleUploadBatches","isDarkModeOnFromTheStart","_this$darkModeMediaQu","informer","statusBar","thumbnail","_this$darkModeMediaQu2","_this$uppy$getPlugin","_this$uppy$getPlugin2","hideProgressAfterFinish","thumbnailWidth","thumbnailHeight","thumbnailType","waitForThumbnailsBeforeUpload","ownKeys","_objectSpread2","_defineProperty","_toPrimitive","_toPropertyKey","_typeof","_classCallCheck","Constructor","_defineProperties","descriptor","_createClass","protoProps","staticProps","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","_arrayLikeToArray","iter","minLen","arr2","IS_BROWSER","WINDOW","IS_TOUCH_DEVICE","HAS_POINTER_EVENT","NAMESPACE","ACTION_ALL","ACTION_CROP","ACTION_MOVE","ACTION_ZOOM","ACTION_EAST","ACTION_WEST","ACTION_SOUTH","ACTION_NORTH","ACTION_NORTH_EAST","ACTION_NORTH_WEST","ACTION_SOUTH_EAST","ACTION_SOUTH_WEST","CLASS_CROP","CLASS_DISABLED","CLASS_HIDDEN","CLASS_HIDE","CLASS_INVISIBLE","CLASS_MODAL","CLASS_MOVE","DATA_ACTION","DATA_PREVIEW","DRAG_MODE_CROP","DRAG_MODE_MOVE","DRAG_MODE_NONE","EVENT_CROP","EVENT_CROP_END","EVENT_CROP_MOVE","EVENT_CROP_START","EVENT_DBLCLICK","EVENT_TOUCH_START","EVENT_TOUCH_MOVE","EVENT_TOUCH_END","EVENT_POINTER_DOWN","EVENT_POINTER_MOVE","EVENT_POINTER_UP","EVENT_READY","EVENT_RESIZE","EVENT_WHEEL","EVENT_ZOOM","MIME_TYPE_JPEG","REGEXP_ACTIONS","REGEXP_DATA_URL","REGEXP_DATA_URL_JPEG","REGEXP_TAG_NAME","MIN_CONTAINER_WIDTH","MIN_CONTAINER_HEIGHT","DEFAULTS","TEMPLATE","isNaN","isNumber","isPositiveNumber","isUndefined","isPlainObject","_constructor","prototype","isFunction","slice","forEach","REGEXP_DECIMALS","normalizeDecimalNumber","times","REGEXP_SUFFIX","setStyle","styles","style","property","hasClass","addClass","elem","removeClass","toggleClass","added","REGEXP_CAMEL_CASE","toParamCase","getData","setData","removeData","REGEXP_SPACES","onceSupported","supported","once","removeListener","listeners","addListener","_handler","_element$listeners","dispatchEvent","getOffset","box","location","REGEXP_ORIGINS","isCrossOriginURL","addTimestamp","timestamp","getTransforms","rotate","scaleX","scaleY","translateX","translateY","transform","getMaxZoomRatio","pointers","pointers2","maxRatio","pointer","pointerId","pointer2","x1","y1","x2","y2","z1","z2","getPointer","endOnly","pageX","pageY","getPointersCenter","count","startX","startY","getAdjustedSizes","_ref4","aspectRatio","isValidWidth","isValidHeight","adjustedWidth","getRotatedSizes","_ref5","degree","arc","sinArc","cosArc","newWidth","newHeight","getSourceCanvas","_ref6","_ref7","_ref8","imageAspectRatio","imageNaturalWidth","imageNaturalHeight","_ref6$rotate","_ref6$scaleX","_ref6$scaleY","naturalWidth","naturalHeight","_ref8$fillColor","fillColor","_ref8$imageSmoothingE","imageSmoothingEnabled","_ref8$imageSmoothingQ","imageSmoothingQuality","_ref8$maxWidth","maxWidth","_ref8$maxHeight","maxHeight","_ref8$minWidth","minWidth","_ref8$minHeight","minHeight","maxSizes","minSizes","destMaxSizes","destMinSizes","destWidth","destHeight","params","param","fromCharCode","getStringFromCharCode","dataView","length","str","REGEXP_DATA_URL_HEAD","dataURLToArrayBuffer","dataURL","base64","arrayBuffer","uint8","arrayBufferToDataURL","chunkSize","resetAndGetOrientation","littleEndian","app1Start","ifdStart","exifIDCode","tiffOffset","endianness","firstIFDOffset","_length","_offset","parseOrientation","cropper","containerData","imageData","viewMode","rotated","canvasWidth","canvasHeight","canvasData","sizeLimited","positionLimited","cropBoxData","cropped","minCanvasWidth","minCanvasHeight","_getAdjustedSizes","newCanvasLeft","newCanvasTop","changed","transformed","_getRotatedSizes","autoCropArea","limited","minCropBoxWidth","minCropBoxHeight","maxCropBoxWidth","maxCropBoxHeight","crossOrigin","alt","previews","el","cropBoxWidth","cropBoxHeight","left","top","originalWidth","originalHeight","events","handlers","ratioX","ratioY","_this","delta","buttons","button","action","touch","change","right","bottom","minLeft","minTop","renderable","range","check","side","methods","hasSameSize","offsetX","offsetY","_this$canvasData","_originalEvent","pivot","center","_scaleX","_scaleY","rounded","widthChanged","heightChanged","_this$getData","initialX","initialY","initialWidth","initialHeight","_options$imageSmoothi","sourceWidth","sourceHeight","srcX","srcY","srcWidth","srcHeight","dstX","dstY","dstWidth","dstHeight","scale","dragBox","face","croppable","movable","AnotherCropper","Cropper","xhr","clone","_parseOrientation","crossOriginUrl","_this2","isIOSWebKit","done","sizingImage","body","template","cropBox","parentNode","getCanvasDataThatFitsPerfectlyIntoContainer","widthRatio","heightRatio","scaleFactor","newLeft","newTop","toRadians","angle","getScaleFactorThatRemovesDarkCorners","granularAngle","α","limitCropboxMovementOnMove","cropbox","prevCropbox","limitCropboxMovementOnResize","cropboxData","Editor","angle90Deg","newAngle","newCanvasData","newGranularAngle","scaleFactorX","storeCropperInstance","prevCropboxData","newCropboxData","angleGranular","currentImage","actions","imageURL","locale$1","defaultCropperOptions","defaultActions","ImageEditor","saveBlobCallback","_name","croppedCanvas","createCancelError","cause","abortOn","signal","_this$then","abortPromise","removeAbortListener","_activeRequests","_queuedHandlers","_paused","_pauseTimer","_downLimit","_upperLimit","_rateLimitingTimer","_call","_queueNext","_next","_queue","_dequeue","_resume","_increaseLimit","RateLimitedQueue","limit","_dequeue2","_queue2","_next2","_queueNext2","_call2","queueOptions","queuedRequest","outerPromise","cancelError","innerPromise","cancelActive","internalRateLimitedQueue","object","enumerableOnly","symbols","sym","hint","prim","res","window","CanvasPrototype","hasBlobConstructor","hasArrayBufferViewSupport","BlobBuilder","dataURIPattern","dataURLtoBlob","mediaType","isBase64","dataString","byteString","intArray","bb","self","toBlob","isBlob","REGEXP_IMAGE_TYPE","isImageType","imageTypeToExtension","extension","btoa","getExif","array","segments","segment","exifArray","insertExif","app0Length","newArrayBuffer","ArrayBuffer$1","FileReader","URL","REGEXP_EXTENSION","AnotherCompressor","Compressor","isJPEGImage","checkOrientation","retainExif","reader","_this3","_ref2$rotate","_ref2$scaleX","_ref2$scaleY","is90DegreesRotated","resizable","_getAdjustedSizes2","_getAdjustedSizes3","_getAdjustedSizes4","_getAdjustedSizes4$wi","_getAdjustedSizes4$he","destX","destY","_getAdjustedSizes5","fillStyle","_RateLimitedQueue","CompressorJS","totalCompressedSize","compressedFiles","compressAndApplyResult","compressedBlob","compressedSavingsSize","compressedFileName","newMetaName","promises","_file$type","filterNonFailedFiles","hasError","filterFilesToEmitUploadStarted","_file$progress","_uppy","_events","EventManager","cb","targetFileID","eventHandler","_aliveTimer","_isDone","_onTimedOut","_timeout","ProgressTimeout","timeout","timeoutHandler","sparkMd5","exports","factory","undefined$1","hex_chr","md5cycle","md5blk","md5blks","md5blk_array","md51","tail","tmp","lo","md51_array","rhex","hex","clamp","val","from","begin","targetArray","sourceArray","toUtf8","utf8Str2ArrayBuffer","returnUInt8Array","buff","arrayBuffer2Utf8Str","concatenateArrayBuffers","hexToBinaryString","SparkMD5","contents","ret","content","hash","fileSlice","FileChecksum","binaryDigest","base64digest","getMetaValue","findElement","findElements","selector","eventInit","disabled","bubbles","cancelable","detail","BlobRecord","checksum","customHeaders","headerKey","csrfToken","responseType","direct_upload","BlobUpload","headers","status","DirectUpload","delegate","notify","upload","methodName","messages","DirectUploadController","hiddenInput","attributes","inputSelector","DirectUploadsController","controllers","startNextController","controller","processingAttribute","submitButtonsByForm","started","didClick","didSubmitForm","didSubmitRemoteElement","handleFormSubmissionEvent","inputs","enable","submitForm","autostart","idCounter","_ActiveStorageUpload_instances","upload_fn","uploadFiles_fn","_handleUpload","ActiveStorageUpload","__privateAdd","filesToEmit","__privateMethod","_file","__privateGet","directUpload","_xhr","timer","EventTracker","reason","es_ES","en_US","UppyLocales","Catalan","English","Spanish","TrixUploader","attachment","signedId","filename","makeElement","removeNode","_a","Trix","fileInputId","fileButton","isAnImageFile","isArray","isArray_1","reIsDeepProp","reIsPlainProp","isKey","_isKey","asyncTag","funcTag","genTag","proxyTag","isFunction_1","coreJsData","_coreJsData","maskSrcKey","uid","isMasked","_isMasked","funcProto","funcToString","toSource","_toSource","require$$3","reRegExpChar","reIsHostCtor","reIsNative","baseIsNative","_baseIsNative","getValue","_getValue","getNative","_getNative","nativeCreate","_nativeCreate","hashClear","_hashClear","hashDelete","_hashDelete","HASH_UNDEFINED","hashGet","_hashGet","hashHas","_hashHas","hashSet","_hashSet","require$$4","Hash","_Hash","listCacheClear","_listCacheClear","eq","eq_1","assocIndexOf","_assocIndexOf","arrayProto","splice","listCacheDelete","lastIndex","_listCacheDelete","listCacheGet","_listCacheGet","listCacheHas","_listCacheHas","listCacheSet","_listCacheSet","ListCache","_ListCache","Map","_Map","mapCacheClear","_mapCacheClear","isKeyable","_isKeyable","getMapData","map","_getMapData","mapCacheDelete","_mapCacheDelete","mapCacheGet","_mapCacheGet","mapCacheHas","_mapCacheHas","mapCacheSet","_mapCacheSet","MapCache","_MapCache","resolver","memoize_1","MAX_MEMOIZE_SIZE","memoizeCapped","_memoizeCapped","rePropName","reEscapeChar","stringToPath","quote","subString","_stringToPath","arrayMap","iteratee","_arrayMap","symbolProto","symbolToString","baseToString","_baseToString","toString","toString_1","castPath","_castPath","toKey","_toKey","baseGet","path","_baseGet","get","defaultValue","get_1","baseHas","_baseHas","argsTag","baseIsArguments","_baseIsArguments","propertyIsEnumerable","isArguments","isArguments_1","MAX_SAFE_INTEGER","reIsUint","isIndex","_isIndex","isLength","isLength_1","require$$5","hasPath","hasFunc","_hasPath","has","has_1","stackClear","_stackClear","stackDelete","_stackDelete","stackGet","_stackGet","stackHas","_stackHas","LARGE_ARRAY_SIZE","stackSet","pairs","_stackSet","Stack","_Stack","defineProperty","baseAssignValue","_baseAssignValue","assignMergeValue","_assignMergeValue","createBaseFor","fromRight","keysFunc","iterable","_createBaseFor","baseFor","_baseFor","freeExports","freeModule","moduleExports","Buffer","allocUnsafe","cloneBuffer","buffer","isDeep","Uint8Array","_Uint8Array","cloneArrayBuffer","_cloneArrayBuffer","cloneTypedArray","typedArray","_cloneTypedArray","copyArray","_copyArray","objectCreate","baseCreate","proto","_baseCreate","overArg","_overArg","getPrototype","_getPrototype","isPrototype","Ctor","_isPrototype","initCloneObject","_initCloneObject","isArrayLike","isArrayLike_1","isArrayLikeObject","isArrayLikeObject_1","stubFalse","stubFalse_1","nativeIsBuffer","isBuffer","objectTag","objectCtorString","isPlainObject_1","arrayTag","boolTag","dateTag","errorTag","mapTag","numberTag","regexpTag","setTag","stringTag","weakMapTag","arrayBufferTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","typedArrayTags","baseIsTypedArray","_baseIsTypedArray","baseUnary","_baseUnary","freeProcess","nodeUtil","nodeIsTypedArray","isTypedArray","isTypedArray_1","safeGet","_safeGet","assignValue","objValue","_assignValue","copyObject","customizer","isNew","_copyObject","baseTimes","_baseTimes","arrayLikeKeys","inherited","isArr","isArg","isBuff","isType","skipIndexes","_arrayLikeKeys","nativeKeysIn","_nativeKeysIn","baseKeysIn","isProto","_baseKeysIn","keysIn","keysIn_1","toPlainObject","toPlainObject_1","require$$6","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","baseMergeDeep","srcIndex","mergeFunc","stack","srcValue","stacked","isCommon","isTyped","_baseMergeDeep","baseMerge","_baseMerge","identity_1","apply","overRest","otherArgs","_overRest","constant","constant_1","baseSetToString","_baseSetToString","HOT_COUNT","HOT_SPAN","nativeNow","shortOut","lastCalled","stamp","_shortOut","setToString","_setToString","baseRest","_baseRest","isIterateeCall","_isIterateeCall","createAssigner","assigner","sources","guard","_createAssigner","merge","merge_1","setCacheAdd","_setCacheAdd","setCacheHas","_setCacheHas","SetCache","_SetCache","baseFindIndex","predicate","fromIndex","_baseFindIndex","baseIsNaN","_baseIsNaN","strictIndexOf","_strictIndexOf","baseIndexOf","_baseIndexOf","arrayIncludes","_arrayIncludes","arrayIncludesWith","comparator","_arrayIncludesWith","cacheHas","_cacheHas","Set","_Set","noop","noop_1","setToArray","set","_setToArray","INFINITY","createSet","_createSet","baseUniq","includes","seen","outer","computed","seenIndex","_baseUniq","uniq","uniq_1","defaultLocaleResolver","currentLocale","codes","Locales","localeResolver","ord","v0","t0","n10","n100","useMakePlural","pluralizer","includeZero","ordinal","_i18n","defaultPluralizer","Pluralization","baseSlice","_baseSlice","castSlice","_castSlice","rsAstralRange","rsComboMarksRange","reComboHalfMarksRange","rsComboSymbolsRange","rsComboRange","rsVarRange","rsZWJ","reHasUnicode","hasUnicode","_hasUnicode","asciiToArray","_asciiToArray","rsAstral","rsCombo","rsFitz","rsModifier","rsNonAstral","rsRegional","rsSurrPair","reOptMod","rsOptVar","rsOptJoin","rsSeq","rsSymbol","reUnicode","unicodeToArray","_unicodeToArray","stringToArray","_stringToArray","createCaseFirst","strSymbols","chr","_createCaseFirst","upperFirst","upperFirst_1","capitalize","capitalize_1","arrayReduce","initAccum","_arrayReduce","basePropertyOf","_basePropertyOf","deburredLetters","deburrLetter","_deburrLetter","reLatin","reComboMark","deburr","deburr_1","reAsciiWord","asciiWords","_asciiWords","reHasUnicodeWord","hasUnicodeWord","_hasUnicodeWord","rsDingbatRange","rsLowerRange","rsMathOpRange","rsNonCharRange","rsPunctuationRange","rsSpaceRange","rsUpperRange","rsBreakRange","rsApos","rsBreak","rsDigits","rsDingbat","rsLower","rsMisc","rsUpper","rsMiscLower","rsMiscUpper","rsOptContrLower","rsOptContrUpper","rsOrdLower","rsOrdUpper","rsEmoji","reUnicodeWord","unicodeWords","_unicodeWords","words","words_1","reApos","createCompounder","_createCompounder","camelCase","word","camelCase_1","camelCaseKeys","isSet","createTranslationOptions","scope","translationOptions","isNumeric","mathceil","mathfloor","bignumberError","tooManyDigits","BASE","LOG_BASE","POWS_TEN","SQRT_BASE","MAX","configObject","convertBase","parseNumeric","BigNumber","ONE","DECIMAL_PLACES","ROUNDING_MODE","TO_EXP_NEG","TO_EXP_POS","MIN_EXP","MAX_EXP","CRYPTO","MODULO_MODE","POW_PRECISION","FORMAT","ALPHABET","alphabetHasNormalDecimalDigits","alphabet","caseChanged","isNum","intCheck","round","maxOrMin","pow2_53","random53bitInt","dp","rand","sum","decimal","toBaseOut","baseIn","baseOut","arrL","sign","callerIsToString","xc","rm","toFixedPoint","coeffToString","multiply","base","temp","xlo","xhi","carry","klo","khi","compare","aL","bL","cmp","subtract","more","prod","prodL","qc","rem","remL","rem0","xL","yc0","yL","yz","yc","bitFloor","format","c0","toExponential","normalise","basePrefix","dotAfter","dotBefore","isInfinityOrNaN","whitespaceOrPlus","p1","p2","sd","rd","pows10","valueOf","half","isModExp","nIsBig","nIsNeg","nIsOdd","isOdd","xLTy","xcL","ycL","ylo","yhi","zc","sqrtBase","rep","g1","g2","groupSeparator","intPart","fractionPart","isNeg","intDigits","md","d0","d1","d2","exp","n0","n1","min","max","zs","RoundingModeMap","expandRoundMode","roundMode","nativeFloor","baseRepeat","_baseRepeat","MAX_INTEGER","toFinite","toFinite_1","toInteger","remainder","toInteger_1","repeat","repeat_1","digitCount","numeric","getAbsolutePrecision","precision","significant","roundNumber","rounder","replaceInFormat","formattedNumber","computeSignificand","significand","whole","formatNumber","_b","_c","originalNumber","roundedNumber","isNegative","isZero","positiveFormat","negativeFormat","getFullScope","inferType","placeholder","regex","lookup","localeType","numberToDelimited","digitToDelimiter","arrayPush","_arrayPush","spreadableSymbol","isFlattenable","_isFlattenable","baseFlatten","depth","isStrict","_baseFlatten","arraySome","_arraySome","COMPARE_PARTIAL_FLAG","COMPARE_UNORDERED_FLAG","equalArrays","bitmask","equalFunc","isPartial","arrLength","othLength","arrStacked","othStacked","arrValue","othValue","compared","othIndex","_equalArrays","mapToArray","_mapToArray","symbolValueOf","equalByTag","convert","_equalByTag","baseGetAllKeys","symbolsFunc","_baseGetAllKeys","arrayFilter","resIndex","_arrayFilter","stubArray","stubArray_1","nativeGetSymbols","getSymbols","symbol","_getSymbols","nativeKeys","_nativeKeys","baseKeys","_baseKeys","keys_1","getAllKeys","_getAllKeys","equalObjects","objProps","objLength","othProps","objStacked","skipCtor","objCtor","othCtor","_equalObjects","DataView","_DataView","Promise","_Promise","WeakMap","_WeakMap","promiseTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","getTag","ctorString","_getTag","baseIsEqualDeep","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","_baseIsEqualDeep","baseIsEqual","_baseIsEqual","baseIsMatch","matchData","noCustomizer","_baseIsMatch","isStrictComparable","_isStrictComparable","getMatchData","_getMatchData","matchesStrictComparable","_matchesStrictComparable","baseMatches","_baseMatches","baseHasIn","_baseHasIn","hasIn","hasIn_1","baseMatchesProperty","_baseMatchesProperty","baseProperty","_baseProperty","basePropertyDeep","_basePropertyDeep","property_1","baseIteratee","_baseIteratee","baseForOwn","_baseForOwn","createBaseEach","eachFunc","collection","_createBaseEach","baseEach","_baseEach","baseMap","_baseMap","baseSortBy","comparer","_baseSortBy","compareAscending","valIsDefined","valIsNull","valIsReflexive","valIsSymbol","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","_compareAscending","compareMultiple","orders","objCriteria","othCriteria","ordersLength","order","_compareMultiple","baseOrderBy","iteratees","criteria","_baseOrderBy","sortBy","sortBy_1","baseZipObject","assignFunc","valsLength","_baseZipObject","zipObject","zipObject_1","DECIMAL_UNITS","INVERTED_DECIMAL_UNITS","numberToHuman","roundOptions","unitExponents","calculateExponent","determineUnit","expName","STORAGE_UNITS","numberToHumanSize","smallerThanBase","numberToBeFormatted","computeExponent","storageUnitKey","parseDate","year","month","day","hour","minute","milliseconds","pluralize","baseScope","translations","missingKeys","DEFAULT_OPTIONS","strftime","abbrDayNames","dayNames","abbrMonthNames","monthNames","AM_PM","utc","weekDay","hour12","meridian","secs","mins","absOffsetHours","absOffsetMinutes","timezoneoffset","nativeCeil","baseRange","_baseRange","createRange","_createRange","range_1","within","actual","timeAgoInWords","fromTime","toTime","fromInSeconds","toInSeconds","distanceInSeconds","distanceInMinutes","distanceInDays","distanceInHoursRounded","distanceInDaysRounded","distanceInMonthsRounded","fromYear","toYear","leapYears","minutesInYear","minuteOffsetForLeapYear","minutesWithOffset","distanceInYears","diff","guessStrategy","_match","messageStrategy","fullScope","errorStrategy","fullScopeWithLocale","MissingTranslation","strategy","__awaiter","_arguments","generator","adopt","fulfilled","rejected","DEFAULT_I18N_OPTIONS","I18n$1","enableFallback","missingBehavior","missingTranslationPrefix","missingPlaceholder","nullPlaceholder","defaultLocale","defaultSeparator","transformKey","newLocale","translation","translationOption","localizedValue","originalLocale","override","currentNode","currentType","overrideType","newNode","components","prop","items","wordsConnector","twoWordsConnector","lastWordConnector","userLocale","I18n"],"mappings":"4TAIA,IAAIA,GAAE,SAAS,MAAMC,GAAE,yBAAyBC,GAAE,CAAC,QAAQ,CAAC,aAAa,UAAU,QAAQ,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,EAAEC,GAAE,CAAC,QAAQ,CAAC,QAAQ,MAAM,MAAM,EAAE,EAAE,MAAM,CAAC,QAAQ,aAAa,SAAS,EAAE,EAAE,SAAS,CAAC,QAAQ,KAAK,SAAS,GAAG,cAAc,GAAG,MAAM,EAAE,EAAE,KAAK,CAAC,QAAQ,MAAM,SAAS,GAAG,eAAe,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,EAAE,WAAW,CAAC,QAAQ,KAAK,MAAM,EAAE,EAAE,OAAO,CAAC,QAAQ,KAAK,cAAc,aAAa,MAAM,GAAG,SAAS,GAAG,KAAKH,EAAE,CAAC,OAAOI,GAAEJ,EAAE,UAAU,IAAIG,GAAE,KAAK,aAAa,EAAE,OAAO,CAAC,EAAE,WAAW,CAAC,QAAQ,KAAK,MAAM,EAAE,EAAE,OAAO,CAAC,QAAQ,KAAK,cAAc,aAAa,MAAM,GAAG,SAAS,GAAG,KAAKH,EAAE,CAAC,OAAOI,GAAEJ,EAAE,UAAU,IAAIG,GAAE,KAAK,aAAa,EAAE,OAAO,CAAC,EAAE,kBAAkB,CAAC,QAAQ,MAAM,UAAU,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC,EAAEC,GAAEJ,GAAG,CAAC,IAAI,EAAE,OAAaA,GAAN,OAAiB,EAAEA,EAAE,WAAZ,MAA+B,IAAT,OAAW,OAAO,EAAE,YAAa,CAAA,EAAEK,GAAE,UAAU,UAAU,MAAM,4BAA4B,EAAEC,GAAED,IAAG,SAASA,GAAE,CAAC,CAAC,EAAE,IAAIE,GAAE,CAAC,qBAAqB,kBAAkB,KAAK,UAAU,SAAS,EAAE,cAAcD,IAAGA,GAAE,GAAG,eAAeA,IAAG,UAAU,UAAU,MAAM,cAAc,EAAE,qBAAqB,iBAAiB,KAAK,UAAU,SAAS,EAAE,oBAAiC,OAAO,WAApB,KAAgC,CAAC,OAAO,kBAAkB,WAAW,EAAE,MAAON,GAAGA,KAAK,WAAW,SAAW,CAAA,EAAEQ,GAAE,CAAC,SAAS,CAAC,UAAU,EAAE,aAAa,GAAG,WAAW,EAAE,EAAEC,EAAE,CAAC,YAAY,eAAe,KAAK,OAAO,QAAQ,UAAU,KAAK,OAAO,MAAM,QAAQ,mBAAmB,iBAAiB,KAAK,OAAO,SAAS,UAAU,OAAO,iBAAiB,OAAO,SAAS,KAAK,OAAO,QAAQ,UAAU,QAAQ,iBAAiB,MAAM,QAAQ,KAAK,OAAO,OAAO,SAAS,OAAO,gBAAgB,KAAK,OAAO,OAAO,SAAS,IAAI,MAAM,eAAe,eAAe,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,IAAI,EAAE,MAAMC,GAAE,CAACD,EAAE,MAAMA,EAAE,GAAGA,EAAE,GAAGA,EAAE,GAAGA,EAAE,GAAGA,EAAE,EAAE,EAAE,IAAIE,GAAE,CAAC,OAAO,MAAM,UAAU,EAAE,UAAUX,EAAE,CAAC,OAAOA,EAAG,CAAA,IAAK,GAAE,MAAM,KAAK,OAAOS,EAAE,KAAK,EAAE,IAAK,GAAE,MAAM,KAAK,OAAOA,EAAE,IAAI,EAAE,QAAQ,IAAI,EAAS,KAAK,SAAZ,KAAmB,EAAE,IAAY,KAAK,SAAb,QAAsB,EAAE,MAAM,MAAMP,EAAE,KAAK,MAAM,KAAK,IAAIF,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC,EAAEG,GAAGH,EAAE,KAAK,IAAI,EAAEE,CAAC,GAAG,QAAQ,KAAK,SAAS,EAAE,QAAQ,MAAM,EAAE,EAAE,QAAQ,MAAM,EAAE,EAAE,MAAM,GAAG,OAAOC,EAAE,GAAG,EAAE,OAAOO,GAAER,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAMU,GAAE,SAASC,GAAE,IAAIC,GAAE,SAASd,EAAE,CAAC,UAAU,KAAKA,EAAE,CAAC,MAAME,EAAEF,EAAE,CAAC,EAAE,KAAK,CAAC,EAAEE,CAAC,CAAC,OAAO,IAAI,EAAEa,GAAE,SAAS,gBAAgBC,GAAED,GAAE,QAAQE,GAAE,SAASjB,EAAE,CAAC,GAAG,CAAC,UAAU,EAAE,iBAAiBE,EAAE,aAAaC,EAAE,QAAQC,EAAE,eAAeC,EAAE,MAAM,CAAC,EAAE,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,CAAA,EAAG,MAAME,EAAE,GAAGQ,GAAE,EAAEb,EAAE,EAAgBE,IAAd,YAAgB,EAAE,SAASJ,EAAE,CAAO,GAAN,MAAY,EAAE,GAAL,GAAQ,EAAE,QAAO,EAAG,MAAMC,EAAEiB,GAAElB,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC,EAAQC,GAAN,OAAgBE,GAAN,MAASA,EAAE,KAAKF,EAAED,EAAEC,CAAC,EAAEI,GAAGL,EAAE,eAAc,EAAG,EAAE,OAAO,EAAE,QAAQ,IAAIO,EAAE,oBAAoBP,EAAE,EAAE,CAAC,EAAEO,EAAE,iBAAiBP,EAAE,EAAE,CAAC,EAAE,CAAC,EAAEmB,GAAE,SAASnB,EAAE,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQE,EAAE,WAAWC,EAAE,WAAWC,CAAC,EAAE,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,CAAA,EAAG,MAAMC,EAAQ,GAAIU,GAAEb,EAAOA,IAAL,GAAOC,EAAOA,IAAL,GAAO,MAAM,EAAE,SAAS,YAAY,QAAQ,EAAE,OAAO,EAAE,UAAUH,EAAEE,EAAEC,CAAC,EAAQC,GAAN,MAASU,GAAE,KAAK,EAAEV,CAAC,EAAEC,EAAE,cAAc,CAAC,CAAC,EAAEe,GAAE,SAASpB,EAAE,EAAE,CAAC,IAAcA,GAAN,KAAQ,OAAOA,EAAE,YAAtB,EAAgC,OAAOgB,GAAE,KAAKhB,EAAE,CAAC,CAAC,EAAEkB,GAAE,SAASlB,EAAE,CAAC,GAAG,CAAC,iBAAiB,EAAE,UAAUE,CAAC,EAAE,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,CAAA,EAAG,KAAKF,GAAGA,EAAE,WAAW,KAAK,cAAcA,EAAEA,EAAE,WAAW,GAASA,GAAN,KAAQ,CAAC,GAAS,GAAN,KAAQ,OAAOA,EAAE,GAAGA,EAAE,SAAeE,GAAN,KAAQ,OAAOF,EAAE,QAAQ,CAAC,EAAE,KAAKA,GAAGA,IAAIE,GAAG,CAAC,GAAGkB,GAAEpB,EAAE,CAAC,EAAE,OAAOA,EAAEA,EAAEA,EAAE,UAAU,CAAC,CAAC,EAAEqB,GAAErB,GAAG,SAAS,gBAAgBA,GAAGsB,GAAEtB,EAAE,SAAS,aAAa,EAAEsB,GAAE,SAAStB,EAAE,EAAE,CAAC,GAAGA,GAAG,EAAE,KAAK,GAAG,CAAC,GAAG,IAAIA,EAAE,MAAM,GAAG,EAAE,EAAE,UAAU,CAAC,EAAEuB,GAAE,SAASvB,EAAE,CAAC,IAAI,EAAE,IAAW,EAAEA,KAAV,MAAuB,IAAT,QAAY,CAAC,EAAE,WAAW,OAAO,IAAIE,EAAE,EAAE,IAAIF,EAAEA,EAAE,gBAAgBA,GAAGE,IAAIF,EAAEA,EAAE,gBAAgB,OAAOE,CAAC,EAAEsB,GAAExB,GAAG,CAAC,IAAI,EAAE,OAAaA,GAAN,OAAiB,EAAEA,EAAE,cAAZ,MAAkC,IAAT,OAAW,OAAO,EAAE,YAAYA,CAAC,CAAC,EAAEyB,GAAE,SAASzB,EAAE,CAAC,GAAG,CAAC,gBAAgB,EAAE,YAAYE,EAAE,uBAAuBC,CAAC,EAAE,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,CAAE,EAAC,MAAMC,GAAG,IAAI,CAAC,OAAO,EAAG,CAAA,IAAI,UAAU,OAAO,WAAW,aAAa,IAAI,OAAO,OAAO,WAAW,UAAU,IAAI,UAAU,OAAO,WAAW,aAAa,QAAQ,OAAO,WAAW,QAAQ,CAAC,GAAC,EAAI,OAAO,SAAS,iBAAiBJ,EAAEI,EAAQF,GAAI,KAAUC,IAAL,EAAM,CAAC,EAAEuB,GAAE1B,GAAG,CAAC,IAAI,EAAE,OAAaA,GAAN,OAAiB,EAAEA,EAAE,WAAZ,MAA+B,IAAT,OAAW,OAAO,EAAE,YAAW,CAAE,EAAE2B,EAAE,SAAS3B,EAAE,CAAC,IAAI,EAAEE,EAAEC,EAAE,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,CAAE,EAAW,OAAOH,GAAjB,UAAoBG,EAAEH,EAAEA,EAAEG,EAAE,SAASA,EAAE,CAAC,WAAWA,CAAC,EAAE,MAAMC,EAAE,SAAS,cAAcJ,CAAC,EAAE,GAASG,EAAE,UAAR,OAAyBA,EAAE,YAAR,OAAqBA,EAAE,WAAW,CAAA,GAAIA,EAAE,WAAW,gBAAgBA,EAAE,UAAUA,EAAE,WAAW,IAAI,KAAKA,EAAE,WAAWD,EAAEC,EAAE,WAAW,CAAC,EAAEC,EAAE,aAAa,EAAEF,CAAC,EAAE,GAAGC,EAAE,MAAM,IAAI,KAAKA,EAAE,MAAMD,EAAEC,EAAE,MAAM,CAAC,EAAEC,EAAE,MAAM,CAAC,EAAEF,EAAE,GAAGC,EAAE,KAAK,IAAI,KAAKA,EAAE,KAAKD,EAAEC,EAAE,KAAK,CAAC,EAAEC,EAAE,QAAQ,CAAC,EAAEF,EAAE,OAAOC,EAAE,WAAWA,EAAE,UAAU,MAAM,GAAG,EAAE,QAASH,GAAG,CAACI,EAAE,UAAU,IAAIJ,CAAC,CAAC,CAAG,EAACG,EAAE,cAAcC,EAAE,YAAYD,EAAE,aAAaA,EAAE,YAAY,CAAE,EAAC,OAAOA,EAAE,UAAU,EAAE,QAASH,GAAG,CAACI,EAAE,YAAYJ,CAAC,CAAC,CAAG,EAACI,CAAC,EAAE,IAAIwB,GAAE,MAAMC,GAAE,UAAU,CAAC,GAASD,IAAN,KAAQ,OAAOA,GAAEA,GAAE,CAAA,EAAG,UAAU5B,KAAKG,GAAE,CAAC,MAAM,EAAEA,GAAEH,CAAC,EAAE,EAAE,SAAS4B,GAAE,KAAK,EAAE,OAAO,CAAC,CAAC,OAAOA,EAAC,EAAEE,GAAE9B,GAAG+B,GAAQ/B,GAAN,KAAQ,OAAOA,EAAE,UAAU,EAAEgC,GAAE,SAAShC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE+B,GAAE/B,CAAC,EAAE+B,GAAE/B,CAAC,GAAG,CAAC+B,GAAE/B,EAAE,UAAU,GAAG,SAAS,EAAE,CAAC,OAAO6B,GAAG,EAAC,SAASH,GAAE,CAAC,CAAC,GAAG,CAACG,GAAG,EAAC,SAASH,GAAE,EAAE,UAAU,CAAC,CAAC,EAAE1B,CAAC,CAAC,EAAE+B,GAAE/B,GAAGiC,GAAEjC,CAAC,IAAoBA,GAAN,KAAQ,OAAOA,EAAE,QAA5B,QAAkCiC,GAAEjC,IAAUA,GAAN,KAAQ,OAAOA,EAAE,YAAY,KAAK,aAAakC,GAAE,SAASlC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,CAAE,EAAC,GAAGA,EAAE,OAAOmC,GAAEnC,CAAC,EAAEA,EAAE,OAAOY,GAAE,CAAC,GAAGZ,EAAE,WAAW,QAAQ,mBAAmB,EAAE,OAAOkC,GAAElC,EAAE,UAAU,CAAC,EAAEoC,GAAEpC,GAAGoB,GAAEpB,EAAEC,EAAC,EAAEoC,GAAErC,GAAGmC,GAAEnC,CAAC,IAAeA,GAAN,KAAQ,OAAOA,EAAE,QAAvB,GAA6BmC,GAAEnC,IAAUA,GAAN,KAAQ,OAAOA,EAAE,YAAY,KAAK,UAAUsC,GAAE,CAAC,cAAc,GAAG,UAAU,CAAC,OAAO,KAAK,eAAe/B,GAAE,oBAAoB,EAAE,CAAC,EAAE,UAAUP,EAAE,CAAC,MAAM,EAAE2B,EAAE,QAAQ,CAAC,KAAK,OAAO,SAAS,GAAG,OAAO,GAAG,GAAG,KAAK,WAAW,CAAC,EAAE,EAAE,iBAAiB,SAAU,IAAI,CAAC3B,EAAE,EAAE,KAAK,EAAEwB,GAAE,CAAC,CAAC,CAAG,EAACA,GAAE,SAAS,eAAe,KAAK,WAAW,CAAC,EAAE,SAAS,KAAK,YAAY,CAAC,EAAE,EAAE,MAAK,CAAE,CAAC,EAAE,IAAIe,GAAE,CAAC,sBAAsB,GAAG,mBAAmB,MAAM,kBAAkB;AAAA,CAAI,EAAEC,GAAE,CAAC,KAAK,CAAC,QAAQ,SAAS,YAAY,GAAG,OAAOxC,EAAE,CAAC,MAAM,EAAE,OAAO,iBAAiBA,CAAC,EAAE,OAAe,EAAE,aAAX,QAAuB,EAAE,YAAY,GAAG,CAAC,EAAE,OAAO,CAAC,QAAQ,KAAK,YAAY,GAAG,OAAOA,GAAc,OAAO,iBAAiBA,CAAC,EAAE,YAAtC,QAA+C,EAAE,KAAK,CAAC,aAAa,IAAI,OAAOA,EAAE,CAAC,MAAME,EAAE,SAAS,OAAOD,GAAE,GAAG,EAAEE,EAAEH,EAAE,QAAQE,CAAC,EAAE,GAAGC,EAAE,OAAOA,EAAE,aAAa,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,QAAQ,MAAM,YAAY,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,gBAAgB,WAAW,CAAC,CAAC,EAAEsC,GAAE,CAAC,eAAe,IAAI;AAAA;AAAA,iJAA2R,OAAOhC,EAAE,KAAK,kBAAkB,EAAE,OAAOA,EAAE,KAAK;AAAA,oJAAgK,EAAE,OAAOA,EAAE,OAAO,kBAAkB,EAAE,OAAOA,EAAE,OAAO;AAAA,kIAA8I,EAAE,OAAOA,EAAE,OAAO,kBAAkB,EAAE,OAAOA,EAAE,OAAO;AAAA,wKAAoL,EAAE,OAAOA,EAAE,KAAK,kBAAkB,EAAE,OAAOA,EAAE,KAAK;AAAA;AAAA;AAAA;AAAA,uIAAgR,EAAE,OAAOA,EAAE,SAAS,kBAAkB,EAAE,OAAOA,EAAE,SAAS;AAAA,gIAA4I,EAAE,OAAOA,EAAE,MAAM,kBAAkB,EAAE,OAAOA,EAAE,MAAM;AAAA,8HAA0I,EAAE,OAAOA,EAAE,KAAK,kBAAkB,EAAE,OAAOA,EAAE,KAAK;AAAA,uIAAmJ,EAAE,OAAOA,EAAE,QAAQ,kBAAkB,EAAE,OAAOA,EAAE,QAAQ;AAAA,uIAAmJ,EAAE,OAAOA,EAAE,QAAQ,kBAAkB,EAAE,OAAOA,EAAE,QAAQ;AAAA,6JAAyK,EAAE,OAAOA,EAAE,QAAQ,kBAAkB,EAAE,OAAOA,EAAE,QAAQ;AAAA,6JAAyK,EAAE,OAAOA,EAAE,OAAO,kBAAkB,EAAE,OAAOA,EAAE,OAAO;AAAA;AAAA;AAAA;AAAA,oIAA2Q,EAAE,OAAOA,EAAE,YAAY,kBAAkB,EAAE,OAAOA,EAAE,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,6IAAkV,EAAE,OAAOA,EAAE,KAAK,kBAAkB,EAAE,OAAOA,EAAE,KAAK;AAAA,mJAA+J,EAAE,OAAOA,EAAE,KAAK,kBAAkB,EAAE,OAAOA,EAAE,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4FAAoV,EAAE,OAAOA,EAAE,eAAe,gBAAgB,EAAE,OAAOA,EAAE,IAAI;AAAA;AAAA,iFAAkL,EAAE,OAAOA,EAAE,KAAK;AAAA,iFAAsH,EAAE,OAAOA,EAAE,OAAO;AAAA;AAAA;AAAA;AAAA,WAAmG,CAAC,EAAE,MAAMiC,GAAE,CAAC,SAAS,GAAG,EAAE,IAAIC,GAAE,OAAO,OAAO,CAAC,UAAU,KAAK,YAAYzC,GAAE,gBAAgBC,GAAE,QAAQI,GAAE,IAAI,CAAC,WAAW,aAAa,kBAAkB,sBAAsB,wBAAwB,6BAA6B,mBAAmB,uBAAuB,4BAA4B,iCAAiC,eAAe,mBAAmB,mBAAmB,uBAAuB,eAAe,mBAAmB,kBAAkB,sBAAsB,kBAAkB,oBAAoB,EAAE,UAAUC,GAAE,SAASG,GAAE,MAAM2B,GAAE,SAAS,CAAC,EAAE,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,EAAE,KAAK7B,EAAE,OAAO8B,GAAE,eAAeC,GAAE,QAAQC,GAAE,KAAKC,EAAC,CAAC,EAAE,IAAAE,GAAA,KAAO,CAAC,OAAO,YAAY5C,EAAE,CAAC,KAAK,CAAC,KAAKC,EAAE,SAASC,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE2C,GAAE7C,CAAC,EAAE,KAAK,UAAUC,CAAC,EAAE,UAAU,CAAC,IAAID,EAAE,EAAE,IAAIM,EAAEC,EAAE,OAAAL,EAAE,EAAE,GAAUI,EAAE,KAAKJ,CAAC,KAAhB,MAA6BI,IAAT,OAAW,OAAOA,EAAE,KAAK,IAAI,EAAE,KAAKJ,CAAC,EAAC,EAAG,IAAI,EAAE,KAAK,CAAC,GAAU,GAAGF,GAAUO,EAAE,KAAV,MAAuBA,IAAT,OAAW,OAAOA,EAAEN,CAAC,EAAED,EAAE8C,GAAE,KAAK9C,EAAE,EAAE,SAAS,EAAE,SAASA,EAAE,EAAEC,CAAC,EAAE6C,GAAE,KAAK9C,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,EAAC,MAAM6C,GAAE,SAAS7C,EAAE,CAAC,MAAM,EAAEA,EAAE,MAAM+C,EAAC,EAAE,GAAG,CAAC,EAAE,MAAM,IAAI,MAAM,wCAAwC,OAAO/C,CAAC,CAAC,EAAE,MAAME,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,OAAa,EAAE,CAAC,GAAT,KAAWA,EAAE,SAAS,EAAE,CAAC,EAAEA,EAAE,WAAW,EAAE,CAAC,EAAQ,EAAE,CAAC,GAAT,OAAaA,EAAE,SAAS,IAAIA,CAAC,EAAE,CAAC,MAAM4C,EAAC,EAAE,SAAS,UAAUC,GAAE,IAAI,OAAO,gCAAgC,EAAE,IAAIC,GAAEC,GAAEC,GAAC,IAAAC,GAAC,cAAgBC,EAAC,CAAC,OAAO,KAAK,CAAC,IAAIpD,EAAE,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,GAAG,OAAOA,aAAa,KAAKA,EAAE,KAAK,eAAqBA,GAAN,KAAQ,OAAOA,EAAE,SAAU,CAAA,CAAC,CAAC,OAAO,eAAeA,EAAE,CAAC,OAAO,IAAI,KAAKA,EAAEqD,GAAGrD,CAAC,CAAC,CAAC,CAAC,OAAO,eAAeA,EAAE,CAAC,OAAO,IAAI,KAAKsD,GAAGtD,CAAC,EAAEA,CAAC,CAAC,CAAC,YAAYA,EAAEC,EAAE,CAAC,MAAM,GAAG,SAAS,EAAE,KAAK,WAAWD,EAAE,KAAK,WAAWC,EAAE,KAAK,OAAO,KAAK,WAAW,OAAO,KAAK,WAAW,KAAK,WAAW,MAAM,CAAC,mBAAmBD,EAAE,CAAC,OAAOsD,GAAG,KAAK,WAAW,MAAM,EAAE,KAAK,IAAI,EAAEtD,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,qBAAqBA,EAAE,CAAC,OAAOqD,GAAG,KAAK,WAAW,MAAM,EAAE,KAAK,IAAI,EAAErD,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,KAAK,YAAY,eAAe,KAAK,WAAW,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,OAAOA,EAAE,CAAC,OAAO,KAAK,MAAMA,EAAEA,EAAE,CAAC,CAAC,CAAC,UAAUA,EAAE,CAAC,OAAO,KAAK,YAAY,IAAIA,CAAC,EAAE,aAAa,KAAK,UAAU,CAAC,QAAQ,CAAC,OAAO,KAAK,UAAU,CAAC,aAAa,CAAC,OAAO,KAAK,UAAU,CAAC,UAAU,CAAC,OAAO,KAAK,UAAU,CAAC,EAAC,MAAMuD,KAAeP,GAAE,MAAM,QAAhB,MAAgCA,KAAT,OAAW,OAAOA,GAAE,KAAK,MAAM,IAAI,EAAE,UAAjE,EAAyEQ,KAAiBP,GAAE,IAAI,eAAd,MAAqCA,KAAT,OAAW,OAAOA,GAAE,KAAK,IAAI,CAAC,IAAjE,KAAoEQ,KAAoBP,GAAE,OAAO,iBAAjB,MAA0CA,KAAT,OAAW,OAAOA,GAAE,KAAK,OAAO,GAAG,MAAM,KAAnF,MAAsF,IAAIG,GAAGC,GAAGD,GAAGE,IAAGC,GAAExD,GAAG,MAAM,KAAKA,CAAC,EAAE,IAAKA,GAAGA,EAAE,YAAY,CAAC,CAAC,EAAG,SAASA,EAAE,CAAC,MAAM,EAAE,CAAE,EAAC,IAAIE,EAAE,EAAE,KAAK,CAAC,OAAOC,CAAC,EAAEH,EAAE,KAAKE,EAAEC,GAAG,CAAC,IAAIC,EAAEJ,EAAE,WAAWE,GAAG,EAAE,GAAG,OAAOE,GAAGA,GAAG,OAAOF,EAAEC,EAAE,CAAC,MAAMF,EAAED,EAAE,WAAWE,GAAG,GAAU,MAAMD,IAAd,MAAiBG,IAAI,KAAKA,IAAI,KAAK,KAAKH,GAAG,MAAMC,GAAG,CAAC,EAAE,KAAKE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAEkD,GAAGG,GAAGzD,GAAG,OAAO,cAAc,GAAG,MAAM,KAAKA,GAAG,CAAE,CAAA,CAAC,EAAE,SAASA,EAAE,CAAC,OAAO,IAAI,CAAC,MAAM,EAAE,CAAE,EAAC,OAAO,MAAM,KAAKA,CAAC,EAAE,QAAS,GAAG,CAAC,IAAIE,EAAE,GAAG,EAAE,QAAQ,GAAG,MAAMA,GAAG,OAAO,aAAa,IAAI,GAAG,KAAK,KAAK,EAAE,EAAE,MAAM,KAAK,GAAG,EAAE,KAAKA,EAAE,OAAO,aAAa,CAAC,CAAC,CAAC,CAAG,EAAC,CAAC,GAAI,EAAC,KAAK,EAAE,CAAC,EAAE,IAAIwD,GAAG,EAAE,MAAMC,WAAWP,EAAC,CAAC,OAAO,eAAepD,EAAE,CAAC,OAAO,KAAK,SAAS,KAAK,MAAMA,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,GAAG,SAAS,EAAE,KAAK,GAAG,EAAE0D,EAAE,CAAC,qBAAqB1D,EAAE,CAAC,OAAO,KAAK,eAAqBA,GAAN,KAAQ,OAAOA,EAAE,YAAY,CAAC,UAAUA,EAAE,CAAC,OAAO,OAAOA,CAAC,CAAC,SAAS,CAAC,MAAMA,EAAE,CAAA,EAAGC,EAAE,KAAK,sBAAuB,GAAE,CAAE,EAAC,UAAUC,KAAKD,EAAE,CAAC,MAAM,EAAEA,EAAEC,CAAC,EAAEF,EAAE,KAAK,GAAG,OAAOE,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,KAAK,YAAY,KAAK,GAAG,EAAE,OAAO,KAAK,EAAE,EAAE,OAAOF,EAAE,OAAO,IAAI,OAAOA,EAAE,KAAK,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,uBAAuB,CAAA,CAAE,cAAc,CAAC,OAAO,KAAK,UAAU,IAAI,CAAC,CAAC,eAAe,CAAC,OAAO4D,GAAE,IAAI,IAAI,CAAC,CAAC,aAAa,CAAC,OAAO,KAAK,GAAG,SAAU,CAAA,CAAC,CAAC,MAAMC,GAAG,UAAU,CAAC,IAAI7D,EAAE,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,CAAE,EAAC,EAAE,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,CAAE,EAAC,GAAGA,EAAE,SAAS,EAAE,OAAO,MAAM,GAAG,QAAQE,EAAE,EAAEA,EAAEF,EAAE,OAAOE,IAAK,GAAGF,EAAEE,CAAC,IAAI,EAAEA,CAAC,EAAE,MAAQ,GAAC,MAAM,EAAE,EAAE4D,GAAG,SAAS9D,EAAE,CAAC,MAAM,EAAEA,EAAE,MAAM,CAAC,EAAE,QAAQE,EAAE,UAAU,OAAOC,EAAE,IAAI,MAAMD,EAAE,EAAEA,EAAE,EAAE,CAAC,EAAEE,EAAE,EAAEA,EAAEF,EAAEE,IAAID,EAAEC,EAAE,CAAC,EAAE,UAAUA,CAAC,EAAE,OAAO,EAAE,OAAO,GAAGD,CAAC,EAAE,CAAC,EAAE4D,GAAG,qVAAqVC,GAAG,UAAU,CAAC,MAAMhE,EAAE2B,EAAE,QAAQ,CAAC,IAAI,OAAO,KAAK,IAAI,QAAQ,OAAO,CAAC,EAAE,EAAEA,EAAE,WAAW,CAAC,IAAI,OAAO,KAAK,IAAI,QAAQ,OAAO,CAAC,EAAEzB,EAAEyB,EAAE,MAAM,EAAEzB,EAAE,YAAYF,CAAC,EAAEE,EAAE,YAAY,CAAC,EAAE,MAAMC,EAAE,UAAU,CAAC,GAAG,CAAC,OAAO,IAAI,SAASD,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,MAAS,CAAC,MAAM,EAAE,CAAC,EAAC,EAAGE,EAAE,UAAU,CAAC,GAAG,CAAC,OAAOJ,EAAE,QAAQ,qBAAqB,CAAC,MAAS,CAAC,MAAQ,EAAA,CAAC,EAAC,EAAG,OAAOG,EAAE,SAASH,EAAE,CAAC,OAAO,EAAE,MAAMA,EAAE,IAAI,SAASE,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,EAAEE,EAAE,SAASH,EAAE,CAAC,OAAOD,EAAE,MAAMC,EAAED,EAAE,QAAQ,WAAW,EAAE,MAAM,KAAK,EAAE,SAASA,EAAE,CAAC,MAAMC,EAAED,EAAE,KAAM,EAAC,OAAO,CAAC,EAAE,OAAO+D,GAAG,KAAK9D,CAAC,EAAE,MAAM,KAAK,CAAC,EAAG,EAAC,IAAIgE,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAK,MAAMC,GAAG,KAAKJ,KAAKA,GAAGK,GAAE,EAAG,OAAOC,GAAI,CAAA,GAAGN,IAAIO,GAAGxE,GAAGG,GAAEH,CAAC,EAAEuE,GAAG,KAAKL,KAAKA,GAAG,OAAO,KAAK/D,EAAC,GAAG+D,IAAIO,GAAGzE,GAAGwC,GAAExC,CAAC,EAAEsE,GAAG,KAAKH,KAAKA,GAAG,OAAO,KAAK3B,EAAC,GAAG2B,IAAIO,GAAG,SAAS1E,EAAE,EAAE,CAAC2E,GAAG3E,CAAC,EAAE,YAAY,EAAE,QAAQ,MAAMA,CAAC,CAAC,EAAE2E,GAAG,SAAS3E,EAAE,CAAC,MAAM,EAAE,SAAS,cAAc,OAAO,EAAE,EAAE,aAAa,OAAO,UAAU,EAAE,EAAE,aAAa,gBAAgBA,EAAE,YAAa,CAAA,EAAE,MAAME,EAAE0E,GAAE,EAAG,OAAO1E,GAAG,EAAE,aAAa,QAAQA,CAAC,EAAE,SAAS,KAAK,aAAa,EAAE,SAAS,KAAK,UAAU,EAAE,CAAC,EAAE0E,GAAG,UAAU,CAAC,MAAM5E,EAAE6E,GAAG,gBAAgB,GAAGA,GAAG,WAAW,EAAE,GAAG7E,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQE,CAAC,EAAEF,EAAE,OAAU,GAAJ,GAAME,EAAE,CAAC,CAAC,EAAE2E,GAAG7E,GAAG,SAAS,KAAK,cAAc,aAAa,OAAOA,EAAE,GAAG,CAAC,EAAE8E,GAAG,CAAC,uCAAuC,MAAM,EAAEC,GAAG,SAAS/E,EAAE,CAAC,MAAM,EAAEA,EAAE,QAAQ,YAAY,EAAEE,EAAEF,EAAE,QAAQ,WAAW,EAAE,GAAG,CAAC,GAAG,CAACE,EAAE,OAAa,GAAN,KAAQ,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,KAAKF,CAAC,EAAG,IAAI,YAAW,gBAAgBE,EAAE,WAAW,EAAE,GAAGF,EAAE,cAAc,EAAE,MAAM,CAACA,EAAE,cAAc,GAAG,CAAC,CAAC,EAAEgF,GAAG,UAAU,KAAK,UAAU,QAAQ,EAAEhF,GAAGA,EAAE,QAAQA,GAAGA,EAAE,QAAciF,GAAGjF,GAAG,WAAWA,EAAE,CAAC,EAAEkF,GAAG,UAAU,CAAC,IAAIlF,EAAE,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,CAAA,EAAG,MAAM,EAAE,CAAE,EAAC,UAAUE,KAAKF,EAAE,CAAC,MAAMG,EAAEH,EAAEE,CAAC,EAAE,EAAEA,CAAC,EAAEC,CAAC,CAAC,OAAO,CAAC,EAAEgF,GAAG,UAAU,CAAC,IAAInF,EAAE,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,CAAA,EAAG,EAAE,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,CAAE,EAAC,GAAG,OAAO,KAAKA,CAAC,EAAE,SAAS,OAAO,KAAK,CAAC,EAAE,OAAO,SAAS,UAAUE,KAAKF,EAAG,GAAGA,EAAEE,CAAC,IAAI,EAAEA,CAAC,EAAE,MAAQ,GAAC,MAAM,EAAE,EAAEkF,GAAG,SAASpF,EAAE,CAAC,GAASA,GAAN,KAAQ,OAAO,MAAM,QAAQA,CAAC,IAAIA,EAAE,CAACA,EAAEA,CAAC,GAAG,CAACqF,GAAGrF,EAAE,CAAC,CAAC,EAAEqF,GAASrF,EAAE,CAAC,GAAT,KAAWA,EAAE,CAAC,EAAEA,EAAE,CAAC,CAAC,CAAC,CAAC,EAAEsF,GAAG,SAAStF,EAAE,CAAC,GAASA,GAAN,KAAQ,OAAO,KAAK,CAAC,EAAEE,CAAC,EAAEkF,GAAGpF,CAAC,EAAE,OAAOuF,GAAG,EAAErF,CAAC,CAAC,EAAEsF,GAAG,SAASxF,EAAE,EAAE,CAAC,GAASA,GAAN,MAAe,GAAN,KAAQ,OAAO,KAAK,CAACE,EAAEC,CAAC,EAAEiF,GAAGpF,CAAC,EAAE,CAACI,EAAEC,CAAC,EAAE+E,GAAG,CAAC,EAAE,OAAOG,GAAGrF,EAAEE,CAAC,GAAGmF,GAAGpF,EAAEE,CAAC,CAAC,EAAEgF,GAAG,SAASrF,EAAE,CAAC,OAAgB,OAAOA,GAAjB,SAAmBA,EAAEkF,GAAGlF,CAAC,CAAC,EAAEuF,GAAG,SAASvF,EAAE,EAAE,CAAC,OAAgB,OAAOA,GAAjB,SAAmBA,IAAI,EAAEmF,GAAGnF,EAAE,CAAC,CAAC,EAAE,MAAMyF,WAAWrC,EAAC,CAAC,aAAa,CAAC,MAAM,GAAG,SAAS,EAAE,KAAK,OAAO,KAAK,OAAO,KAAK,IAAI,EAAE,KAAK,kBAAkB,CAAA,CAAE,CAAC,OAAO,CAAC,KAAK,UAAU,KAAK,QAAQ,GAAG,SAAS,iBAAiB,kBAAkB,KAAK,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,KAAK,QAAQ,OAAO,KAAK,QAAQ,GAAG,SAAS,oBAAoB,kBAAkB,KAAK,OAAO,EAAE,CAAC,CAAC,yBAAyBpD,EAAE,CAAC,GAAG,CAAC,KAAK,kBAAkB,SAASA,CAAC,EAAE,OAAO,KAAK,kBAAkB,KAAKA,CAAC,EAAE,KAAK,MAAK,CAAE,CAAC,2BAA2BA,EAAE,CAAC,GAAG,KAAK,kBAAkB,KAAK,kBAAkB,OAAQC,GAAGA,IAAID,CAAC,EAAO,KAAK,kBAAkB,SAA3B,EAAkC,OAAO,KAAK,KAAM,CAAA,CAAC,0CAA0C,CAAC,OAAO,KAAK,kBAAkB,IAAKA,GAAGA,EAAE,mBAAkB,CAAI,CAAA,CAAC,QAAQ,CAAC,KAAK,0CAA0C,CAAC,OAAO,CAAC,KAAK,OAAM,CAAE,CAAC,CAAC,MAAM0F,GAAG,IAAID,GAAGE,GAAG,UAAU,CAAC,MAAM3F,EAAE,OAAO,aAAc,EAAC,GAAGA,EAAE,WAAW,EAAE,OAAOA,CAAC,EAAE4F,GAAG,UAAU,CAAC,IAAI5F,EAAE,MAAM,GAAUA,EAAE2F,GAAE,KAAZ,MAA0B3F,IAAT,OAAW,OAAOA,EAAE,WAAW,CAAC,EAAE,GAAG,GAAG,CAAC6F,GAAG,CAAC,EAAE,OAAO,CAAC,EAAEC,GAAG,SAAS9F,EAAE,CAAC,MAAM,EAAE,OAAO,aAAc,EAAC,OAAO,EAAE,gBAAiB,EAAC,EAAE,SAASA,CAAC,EAAE0F,GAAG,OAAQ,CAAA,EAAEG,GAAG7F,GAAG+F,GAAG/F,EAAE,cAAc,GAAG+F,GAAG/F,EAAE,YAAY,EAAE+F,GAAG/F,GAAG,CAAC,OAAO,eAAeA,CAAC,EAAEgG,GAAGhG,GAAGA,EAAE,QAAQ,IAAI,OAAO,GAAG,OAAOY,EAAC,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,IAAI,OAAO,GAAG,OAAOC,EAAC,EAAE,GAAG,EAAE,GAAG,EAAEoF,GAAG,IAAI,OAAO,QAAQ,OAAOpF,GAAE,GAAG,CAAC,EAAEqF,GAAGlG,GAAGA,EAAE,QAAQ,IAAI,OAAO,GAAG,OAAOiG,GAAG,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,UAAU,GAAG,EAAEE,GAAG,SAASnG,EAAE,EAAE,CAAC,GAAGA,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,GAAG,EAAE,EAAE,MAAME,EAAEkG,GAAGpG,EAAE,CAAC,EAAE,CAAC,OAAOG,CAAC,EAAED,EAAE,YAAY,IAAIE,EAAE,GAAGD,EAAE,CAAC,KAAK,CAAC,OAAOE,CAAC,EAAEH,EAAE,EAAEF,EAAE,WAAW,MAAM,EAAEK,CAAC,EAAE,OAAOL,EAAE,WAAW,MAAMK,EAAEF,CAAC,CAAC,EAAEC,EAAEgG,GAAG,EAAExC,GAAE,eAAe,CAAC,CAAC,CAAC,MAAMxD,EAAEgG,GAAG,EAAEpG,CAAC,EAAE,MAAM,CAACE,EAAE,YAAY,SAAQ,EAAGE,EAAE,YAAY,SAAU,CAAA,CAAC,EAAEgG,GAAG,SAASpG,EAAE,EAAE,CAAC,IAAIE,EAAE,EAAEC,EAAEH,EAAE,OAAOI,EAAE,EAAE,OAAO,KAAKF,EAAEC,GAAGH,EAAE,OAAOE,CAAC,EAAE,UAAU,EAAE,OAAOA,CAAC,CAAC,GAAGA,IAAI,KAAKC,EAAED,EAAE,GAAGF,EAAE,OAAOG,EAAE,CAAC,EAAE,UAAU,EAAE,OAAOC,EAAE,CAAC,CAAC,GAAGD,IAAIC,IAAI,MAAM,CAAC,YAAYJ,EAAE,MAAME,EAAEC,CAAC,EAAE,OAAOD,CAAC,CAAC,EAAE,MAAMmG,WAAW1C,EAAE,CAAC,OAAO,+BAA+B,CAAC,IAAI3D,EAAE,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,CAAE,EAAC,GAAG,CAACA,EAAE,OAAO,OAAO,IAAI,KAAK,IAAIC,EAAEqG,GAAGtG,EAAE,CAAC,CAAC,EAAEE,EAAED,EAAE,UAAU,OAAOD,EAAE,MAAM,CAAC,EAAE,QAASA,GAAG,CAACE,EAAED,EAAE,oBAAoBqG,GAAGtG,CAAC,CAAC,EAAEC,EAAEA,EAAE,MAAMC,CAAC,CAAC,CAAG,EAACD,CAAC,CAAC,OAAO,IAAID,EAAE,CAAC,OAAOsG,GAAGtG,CAAC,CAAC,CAAC,aAAa,CAAC,IAAIA,EAAE,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,CAAA,EAAG,MAAM,GAAG,SAAS,EAAE,KAAK,OAAOuG,GAAGvG,CAAC,CAAC,CAAC,IAAIA,EAAEC,EAAE,CAAC,OAAO,KAAK,MAAMuG,GAAGxG,EAAEC,CAAC,CAAC,CAAC,CAAC,OAAOD,EAAE,CAAC,OAAO,IAAIqG,GAAGE,GAAG,KAAK,OAAOvG,CAAC,CAAC,CAAC,CAAC,IAAIA,EAAE,CAAC,OAAO,KAAK,OAAOA,CAAC,CAAC,CAAC,IAAIA,EAAE,CAAC,OAAOA,KAAK,KAAK,MAAM,CAAC,MAAMA,EAAE,CAAC,OAAO,IAAIqG,GAAGI,GAAG,KAAK,OAAOC,GAAG1G,CAAC,CAAC,CAAC,CAAC,CAAC,MAAMA,EAAE,CAAC,MAAMC,EAAE,CAAE,EAAC,OAAO,MAAM,KAAKD,CAAC,EAAE,QAASA,GAAG,CAAC,KAAK,IAAIA,CAAC,IAAIC,EAAED,CAAC,EAAE,KAAK,OAAOA,CAAC,EAAE,CAAG,EAAC,IAAIqG,GAAGpG,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,OAAO,KAAK,KAAK,MAAM,CAAC,CAAC,oBAAoBD,EAAE,CAAC,OAAOA,EAAEsG,GAAGtG,CAAC,EAAE,KAAK,QAAS,EAAC,OAAQC,GAAG,KAAK,OAAOA,CAAC,IAAID,EAAE,OAAOC,CAAC,CAAC,CAAE,CAAC,UAAUD,EAAE,CAAC,OAAO6D,GAAG,KAAK,QAAO,EAAGyC,GAAGtG,CAAC,EAAE,QAAS,CAAA,CAAC,CAAC,SAAS,CAAC,OAAW,KAAK,QAAO,EAAG,SAAnB,CAAyB,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,MAAMA,EAAE,CAAE,EAAC,UAAUC,KAAK,KAAK,OAAO,CAAC,MAAMC,EAAE,KAAK,OAAOD,CAAC,EAAED,EAAE,KAAKA,EAAE,KAAKC,EAAEC,CAAC,CAAC,CAAC,CAAC,KAAK,MAAMF,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC,UAAU,CAAC,OAAOuG,GAAG,KAAK,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,KAAK,SAAQ,CAAE,CAAC,uBAAuB,CAAC,MAAM,CAAC,OAAO,KAAK,UAAU,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,MAAMC,GAAG,SAASxG,EAAE,EAAE,CAAC,MAAME,EAAE,CAAE,EAAC,OAAOA,EAAEF,CAAC,EAAE,EAAEE,CAAC,EAAEuG,GAAG,SAASzG,EAAE,EAAE,CAAC,MAAME,EAAEqG,GAAGvG,CAAC,EAAE,UAAUA,KAAK,EAAE,CAAC,MAAM,EAAE,EAAEA,CAAC,EAAEE,EAAEF,CAAC,EAAE,CAAC,CAAC,OAAOE,CAAC,EAAEqG,GAAG,SAASvG,EAAE,EAAE,CAAC,MAAME,EAAE,GAAG,OAAO,OAAO,KAAKF,CAAC,EAAE,KAAM,EAAC,QAASG,GAAG,CAACA,IAAI,IAAID,EAAEC,CAAC,EAAEH,EAAEG,CAAC,EAAE,CAAC,EAAGD,CAAC,EAAEoG,GAAG,SAAStG,EAAE,CAAC,OAAOA,aAAaqG,GAAGrG,EAAE,IAAIqG,GAAGrG,CAAC,CAAC,EAAE0G,GAAG,SAAS1G,EAAE,CAAC,OAAOA,aAAaqG,GAAGrG,EAAE,OAAOA,CAAC,EAAE,MAAM2G,EAAE,CAAC,OAAO,cAAc,CAAC,IAAI3G,EAAEC,EAAE,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,CAAE,EAAC,CAAC,MAAMC,EAAE,OAAO,CAAC,EAAE,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,CAAA,EAAG,GAASA,GAAN,OAAUA,EAAE,GAAG,MAAM,EAAE,CAAA,EAAG,OAAO,MAAM,KAAKD,CAAC,EAAE,QAASA,GAAG,CAAC,IAAI,EAAE,GAAGD,EAAE,CAAC,IAAIM,EAAEC,EAAEC,EAAE,IAAWF,EAAEL,EAAE,gBAAZ,MAAoCK,IAAT,QAAYA,EAAE,KAAKL,EAAEC,CAAC,IAAWK,GAAGC,EAAER,EAAEA,EAAE,OAAO,CAAC,GAAG,oBAA5B,MAAwDO,IAAT,QAAYA,EAAE,KAAKC,EAAEP,EAAEC,CAAC,EAAE,OAAO,KAAKF,EAAE,KAAKC,CAAC,EAAE,EAAE,KAAK,IAAI,KAAKD,EAAE,CAAC,MAAME,EAAE,OAAO,CAAC,CAAC,CAAC,EAAEF,EAAE,IAAI,EAAS,EAAEC,EAAE,gBAAZ,MAAoC,IAAT,QAAY,EAAE,KAAKA,EAAEC,CAAC,EAAEF,EAAE,CAACC,CAAC,EAAE,EAAE,KAAKA,CAAC,CAAC,CAAG,EAACD,GAAG,EAAE,KAAK,IAAI,KAAKA,EAAE,CAAC,MAAME,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,IAAIF,EAAE,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,CAAA,EAAG,CAAC,MAAMC,EAAE,OAAOC,CAAC,EAAE,UAAU,OAAO,EAAE,UAAU,CAAC,EAAE,OAAO,KAAK,QAAQF,EAAEE,IAAI,KAAK,MAAMD,EAAE,KAAK,QAAQ,KAAK,YAAY,aAAa,KAAK,QAAQ,CAAC,OAAOC,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,KAAK,OAAO,CAAC,UAAU,CAAC,OAAO,KAAK,KAAK,CAAC,aAAa,CAAC,MAAMF,EAAE,CAAC,aAAa,EAAE,OAAO,MAAM,KAAK,KAAK,WAAU,CAAE,EAAE,QAASC,GAAG,CAACD,EAAE,KAAKC,EAAE,YAAW,CAAE,CAAC,CAAG,EAACD,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM4G,WAAWxD,EAAC,CAAC,aAAa,CAAC,IAAIpD,EAAE,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,CAAE,EAAC,MAAM,GAAG,SAAS,EAAE,KAAK,QAAQ,CAAA,EAAG,MAAM,KAAKA,CAAC,EAAE,QAAS,GAAG,CAAC,MAAMC,EAAE,KAAK,UAAU,CAAC,EAAQ,KAAK,QAAQA,CAAC,GAApB,OAAwB,KAAK,QAAQA,CAAC,EAAE,EAAE,CAAC,CAAE,CAAC,KAAKD,EAAE,CAAC,MAAMC,EAAE,KAAK,UAAUD,CAAC,EAAE,OAAO,KAAK,QAAQC,CAAC,CAAC,CAAC,CAAC,MAAM4G,EAAE,CAAC,YAAY7G,EAAE,CAAC,KAAK,MAAMA,CAAC,CAAC,CAAC,IAAIA,EAAE,CAAC,MAAMC,EAAE6G,GAAG9G,CAAC,EAAE,KAAK,SAASC,CAAC,EAAED,CAAC,CAAC,OAAOA,EAAE,CAAC,MAAMC,EAAE6G,GAAG9G,CAAC,EAAEE,EAAE,KAAK,SAASD,CAAC,EAAE,GAAGC,EAAE,OAAO,OAAO,KAAK,SAASD,CAAC,EAAEC,CAAC,CAAC,OAAO,CAAC,IAAIF,EAAE,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,CAAE,EAAC,OAAO,KAAK,SAAS,CAAA,EAAG,MAAM,KAAKA,CAAC,EAAE,QAAS,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,EAAGA,CAAC,CAAC,CAAC,MAAM8G,GAAG9G,GAAGA,EAAE,QAAQ,aAAa,IAAA+G,GAAA,cAAiB3D,EAAC,CAAC,cAAc,CAAC,OAAW,KAAK,aAAV,EAAoB,CAAC,cAAc,CAAC,OAAW,KAAK,YAAV,EAAmB,CAAC,cAAc,CAAC,OAAO,KAAK,WAAW,KAAK,SAAS,CAAC,WAAW,CAAC,OAAO,KAAK,WAAW,CAAC,KAAK,SAAS,CAAC,YAAY,CAAC,OAAO,KAAK,UAAU,KAAK,QAAQ,IAAI,QAAS,CAACpD,EAAEC,KAAK,KAAK,WAAW,GAAG,KAAK,QAAS,CAACC,EAAE,IAAI,CAAC,KAAK,UAAUA,EAAE,KAAK,WAAW,GAAG,KAAK,UAAU,GAAG,KAAK,UAAUF,EAAE,CAAC,EAAEC,EAAE,CAAC,CAAC,CAAG,EAAG,GAAE,KAAK,OAAO,CAAC,QAAQD,EAAE,CAAC,OAAOA,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,IAAIA,EAAEC,GAAUD,EAAE,KAAK,WAAf,MAAkCA,IAAT,SAAoBC,EAAED,EAAE,UAAZ,MAA8BC,IAAT,QAAYA,EAAE,KAAKD,CAAC,EAAE,KAAK,QAAQ,KAAK,KAAK,WAAW,KAAK,KAAK,UAAU,KAAK,KAAK,UAAU,IAAI,CAAC,EAACgH,GAAG,YAAY,mBAAmB,EAAEA,GAAG,YAAY,oBAAoB,EAAE,IAAAC,GAAA,cAAiB7D,EAAC,CAAC,YAAYpD,EAAE,CAAC,IAAIC,EAAE,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,CAAA,EAAG,MAAM,GAAG,SAAS,EAAE,KAAK,OAAOD,EAAE,KAAK,QAAQC,EAAE,KAAK,WAAW,CAAE,EAAC,KAAK,SAAS,IAAI,CAAC,UAAU,CAAC,OAAO,KAAK,QAAQ,KAAK,MAAM,KAAK,YAAa,GAAE,KAAK,MAAM,IAAKD,GAAGA,EAAE,UAAU,EAAE,CAAG,CAAA,CAAC,YAAY,CAAC,IAAIA,EAAE,OAAO,KAAK,MAAM,KAAK,KAAK,WAAW,CAAA,GAAWA,EAAE,KAAK,cAAf,MAAqCA,IAAT,OAAW,OAAOA,EAAE,WAAY,CAAA,CAAC,wBAAwBA,EAAE,CAAC,IAAIC,EAAE,OAAeA,EAAE,KAAK,kBAAkBD,CAAC,KAAlC,MAA+CC,IAAT,OAAW,OAAOA,EAAE,WAAU,CAAE,CAAC,4BAA4BD,EAAEC,EAAEC,EAAE,CAAC,IAAI,EAAE,KAAK,uBAAuBD,CAAC,EAAE,OAAO,EAAE,KAAK,gBAAgB,CAAC,GAAG,EAAE,KAAK,gBAAgB,GAAG,SAAS,EAAE,KAAK,mBAAmB,EAAEA,CAAC,GAAG,CAAC,CAAC,gBAAgBD,EAAEC,EAAE,CAAC,IAAIC,EAAE,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,CAAE,EAACD,aAAa0G,KAAKzG,EAAE,UAAUF,EAAEA,EAAEkH,IAAI,MAAM,EAAE,IAAIlH,EAAEC,EAAEC,CAAC,EAAE,OAAO,KAAK,gBAAgB,CAAC,CAAC,CAAC,gBAAgBF,EAAE,CAAC,OAAOA,EAAE,WAAW,KAAKA,EAAE,SAAS,KAAK,SAAS,KAAK,WAAW,KAAKA,CAAC,EAAEA,CAAC,CAAC,kBAAkB,CAAC,IAAIA,EAAE,CAAE,EAAC,OAAO,KAAK,WAAW,QAASC,GAAG,CAACD,EAAE,KAAKC,CAAC,EAAED,EAAEA,EAAE,OAAOC,EAAE,iBAAkB,CAAA,CAAC,CAAC,EAAGD,CAAC,CAAC,aAAa,CAAC,OAAO,KAAK,qBAAqB,KAAK,MAAM,CAAC,CAAC,qBAAqBA,EAAE,CAAC,MAAMC,EAAQD,GAAN,KAAQ,OAAOA,EAAE,GAAG,GAAGC,EAAE,OAAO,KAAK,SAAS,QAAQ,cAAc,kBAAkB,OAAOA,EAAE,IAAI,CAAC,CAAC,CAAC,kBAAkBD,EAAE,CAAC,UAAUC,KAAK,KAAK,iBAAkB,EAAC,GAAGA,EAAE,SAASD,EAAE,OAAOC,CAAC,CAAC,cAAc,CAAC,OAAO,KAAK,WAAW,KAAK,KAAK,SAAS,aAAc,EAAC,KAAK,qBAAoB,GAAI,KAAK,YAAY,KAAK,UAAU,CAAA,GAAI,KAAK,WAAW,MAAM,CAAC,sBAAsB,CAAC,OAAW,KAAK,mBAAV,EAA0B,CAAC,mBAAmB,CAAC,KAAK,iBAAiB,EAAE,CAAC,oBAAoB,CAAC,KAAK,iBAAiB,EAAE,CAAC,uBAAuBD,EAAE,CAAC,IAAIC,EAAE,OAAeA,EAAE,KAAK,aAAc,KAA7B,MAAyCA,IAAT,OAAW,OAAOA,EAAED,EAAE,YAAW,CAAE,CAAC,CAAC,mBAAmBA,EAAEC,EAAE,CAAC,MAAMC,EAAE,KAAK,aAAY,EAAGA,IAAIA,EAAED,EAAE,YAAa,CAAA,EAAED,EAAE,CAAC,2BAA2B,CAAC,MAAMA,EAAE,KAAK,aAAc,EAAC,GAAGA,EAAE,CAAC,MAAMC,EAAE,KAAK,iBAAkB,EAAC,OAAO,IAAI,EAAE,IAAKD,GAAGA,EAAE,OAAO,YAAW,CAAI,EAAC,UAAUE,KAAKF,EAAEC,EAAE,SAASC,CAAC,GAAG,OAAOF,EAAEE,CAAC,CAAC,CAAC,CAAC,KAAC,cAAiBiH,EAAE,CAAC,aAAa,CAAC,MAAM,GAAG,SAAS,EAAE,KAAK,YAAY,KAAK,OAAO,KAAK,UAAU,KAAK,QAAQ,UAAU,OAAO,KAAK,QAAQ,SAAS,CAAC,eAAe,CAAC,OAAO,KAAK,WAAW,QAAQ,MAAM,KAAK,KAAK,YAAY,WAAU,CAAE,EAAE,QAASnH,GAAG,CAAC,KAAK,4BAA4B,KAAK,UAAUA,EAAE,KAAK,OAAO,CAAC,CAAC,EAAG,KAAK,UAAU,CAAC,aAAa,CAAC,MAAMA,EAAE,KAAK,uBAAsB,EAAG,OAAO,KAAK,cAAa,EAAG,QAASC,GAAG,CAAC,MAAM,KAAKA,EAAE,SAAQ,CAAE,EAAE,QAASA,GAAG,CAACD,EAAE,YAAYC,CAAC,CAAC,CAAC,CAAE,CAAC,EAAG,CAACD,CAAC,CAAC,CAAC,wBAAwB,CAAC,IAAIA,EAAE,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,KAAK,YAAY,SAAQ,EAAG,OAAO,KAAK,cAAa,EAAG,CAAC,EAAE,uBAAuBA,CAAC,CAAC,CAAC,EAC7nyB,2LAA2L,KAAK,CAAC,QAAQoH,GAAG,eAAeC,GAAG,SAASC,GAAG,eAAeC,GAAG,yBAAyBC,EAAE,EAAE,OAAO,GAAG,CAAC,OAAOC,GAAG,KAAKC,GAAG,OAAOC,EAAE,EAAE,OAAO,CAAC,MAAMC,GAAG,UAAUC,EAAE,EAAe,OAAO,QAApB,KAA6B,QAAQJ,KAAKA,GAAG,SAASzH,EAAE,CAAC,OAAOA,CAAC,GAAG0H,KAAKA,GAAG,SAAS1H,EAAE,CAAC,OAAOA,CAAC,GAAG4H,KAAKA,GAAG,SAAS5H,EAAE,EAAEE,EAAE,CAAC,OAAOF,EAAE,MAAM,EAAEE,CAAC,CAAC,GAAG2H,KAAKA,GAAG,SAAS7H,EAAE,EAAE,CAAC,OAAO,IAAIA,EAAE,GAAG,CAAC,CAAC,GAAG,MAAM8H,GAAGC,GAAG,MAAM,UAAU,OAAO,EAAEC,GAAGD,GAAG,MAAM,UAAU,GAAG,EAAEE,GAAGF,GAAG,MAAM,UAAU,IAAI,EAAEG,GAAGH,GAAG,OAAO,UAAU,WAAW,EAAEI,GAAGJ,GAAG,OAAO,UAAU,QAAQ,EAAEK,GAAGL,GAAG,OAAO,UAAU,KAAK,EAAEM,GAAGN,GAAG,OAAO,UAAU,OAAO,EAAEO,GAAGP,GAAG,OAAO,UAAU,OAAO,EAAEQ,GAAGR,GAAG,OAAO,UAAU,IAAI,EAAES,GAAGT,GAAG,OAAO,UAAU,cAAc,EAAEU,GAAGV,GAAG,OAAO,UAAU,IAAI,EAAEW,IAAIC,GAAG,UAAU,UAAU,CAAC,QAAQ3I,EAAE,UAAU,OAAO,EAAE,IAAI,MAAMA,CAAC,EAAEE,EAAE,EAAEA,EAAEF,EAAEE,IAAI,EAAEA,CAAC,EAAE,UAAUA,CAAC,EAAE,OAAO2H,GAAGc,GAAG,CAAC,CAAC,GAAG,IAAIA,GAAG,SAASZ,GAAG/H,EAAE,CAAC,OAAO,SAAS,EAAE,CAAC,QAAQE,EAAE,UAAU,OAAOC,EAAE,IAAI,MAAMD,EAAE,EAAEA,EAAE,EAAE,CAAC,EAAEE,EAAE,EAAEA,EAAEF,EAAEE,IAAID,EAAEC,EAAE,CAAC,EAAE,UAAUA,CAAC,EAAE,OAAOwH,GAAG5H,EAAE,EAAEG,CAAC,CAAC,CAAC,CAAC,SAASyI,EAAG5I,EAAE,EAAE,CAAC,IAAIE,EAAE,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAEgI,GAAGb,IAAIA,GAAGrH,EAAE,IAAI,EAAE,IAAIG,EAAE,EAAE,OAAO,KAAKA,KAAK,CAAC,IAAIC,EAAE,EAAED,CAAC,EAAE,GAAa,OAAOC,GAAjB,SAAmB,CAAC,MAAMJ,EAAEE,EAAEE,CAAC,EAAEJ,IAAII,IAAIkH,GAAG,CAAC,IAAI,EAAEnH,CAAC,EAAEH,GAAGI,EAAEJ,EAAE,CAACA,EAAEI,CAAC,EAAE,EAAE,CAAC,OAAOJ,CAAC,CAAC,SAAS6I,GAAG7I,EAAE,CAAC,QAAQ,EAAE,EAAE,EAAEA,EAAE,OAAO,IAAKwI,GAAGxI,EAAE,CAAC,IAAIA,EAAE,CAAC,EAAE,MAAM,OAAOA,CAAC,CAAC,SAAS8I,GAAG9I,EAAE,CAAC,MAAM,EAAE2H,GAAG,IAAI,EAAE,SAAS,CAACzH,EAAEC,CAAC,IAAIiH,GAAGpH,CAAC,EAAGwI,GAAGxI,EAAEE,CAAC,IAAI,MAAM,QAAQC,CAAC,EAAE,EAAED,CAAC,EAAE2I,GAAG1I,CAAC,EAAEA,GAAa,OAAOA,GAAjB,UAAoBA,EAAE,cAAc,OAAO,EAAED,CAAC,EAAE4I,GAAG3I,CAAC,EAAE,EAAED,CAAC,EAAEC,GAAG,OAAO,CAAC,CAAC,SAAS4I,GAAG/I,EAAE,EAAE,CAAC,KAAYA,IAAP,MAAU,CAAC,MAAME,EAAEsH,GAAGxH,EAAE,CAAC,EAAE,GAAGE,EAAE,CAAC,GAAGA,EAAE,IAAI,OAAO6H,GAAG7H,EAAE,GAAG,EAAE,GAAe,OAAOA,EAAE,OAArB,WAA2B,OAAO6H,GAAG7H,EAAE,KAAK,CAAC,CAACF,EAAEuH,GAAGvH,CAAC,CAAC,CAAC,OAAO,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC,MAAMgJ,GAAGvB,GAAG,CAAC,IAAI,OAAO,UAAU,UAAU,OAAO,UAAU,QAAQ,QAAQ,IAAI,MAAM,MAAM,MAAM,QAAQ,aAAa,OAAO,KAAK,SAAS,SAAS,UAAU,SAAS,OAAO,OAAO,MAAM,WAAW,UAAU,OAAO,WAAW,KAAK,YAAY,MAAM,UAAU,MAAM,SAAS,MAAM,MAAM,KAAK,KAAK,UAAU,KAAK,WAAW,aAAa,SAAS,OAAO,SAAS,OAAO,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,OAAO,SAAS,SAAS,KAAK,OAAO,IAAI,MAAM,QAAQ,MAAM,MAAM,QAAQ,SAAS,KAAK,OAAO,MAAM,OAAO,UAAU,OAAO,WAAW,QAAQ,MAAM,OAAO,KAAK,WAAW,SAAS,SAAS,IAAI,UAAU,MAAM,WAAW,IAAI,KAAK,KAAK,OAAO,IAAI,OAAO,UAAU,SAAS,SAAS,QAAQ,SAAS,SAAS,OAAO,SAAS,SAAS,QAAQ,MAAM,UAAU,MAAM,QAAQ,QAAQ,KAAK,WAAW,WAAW,QAAQ,KAAK,QAAQ,OAAO,KAAK,QAAQ,KAAK,IAAI,KAAK,MAAM,QAAQ,KAAK,CAAC,EAAEwB,GAAGxB,GAAG,CAAC,MAAM,IAAI,WAAW,cAAc,eAAe,eAAe,gBAAgB,mBAAmB,SAAS,WAAW,OAAO,OAAO,UAAU,SAAS,OAAO,IAAI,QAAQ,WAAW,QAAQ,QAAQ,OAAO,iBAAiB,SAAS,OAAO,WAAW,QAAQ,OAAO,UAAU,UAAU,WAAW,iBAAiB,OAAO,OAAO,QAAQ,SAAS,SAAS,OAAO,WAAW,QAAQ,OAAO,QAAQ,OAAO,OAAO,CAAC,EAAEyB,GAAGzB,GAAG,CAAC,UAAU,gBAAgB,sBAAsB,cAAc,mBAAmB,oBAAoB,oBAAoB,iBAAiB,eAAe,UAAU,UAAU,UAAU,UAAU,UAAU,iBAAiB,UAAU,UAAU,cAAc,eAAe,WAAW,eAAe,qBAAqB,cAAc,SAAS,cAAc,CAAC,EAAE0B,GAAG1B,GAAG,CAAC,UAAU,gBAAgB,SAAS,UAAU,YAAY,mBAAmB,iBAAiB,gBAAgB,gBAAgB,gBAAgB,QAAQ,YAAY,OAAO,eAAe,YAAY,UAAU,gBAAgB,SAAS,MAAM,aAAa,UAAU,KAAK,CAAC,EAAE2B,GAAG3B,GAAG,CAAC,OAAO,WAAW,SAAS,UAAU,QAAQ,SAAS,KAAK,aAAa,gBAAgB,KAAK,KAAK,QAAQ,UAAU,WAAW,QAAQ,OAAO,KAAK,SAAS,QAAQ,SAAS,OAAO,OAAO,UAAU,SAAS,MAAM,QAAQ,MAAM,SAAS,aAAa,aAAa,CAAC,EAAE4B,GAAG5B,GAAG,CAAC,UAAU,cAAc,aAAa,WAAW,YAAY,UAAU,UAAU,SAAS,SAAS,QAAQ,YAAY,aAAa,iBAAiB,cAAc,MAAM,CAAC,EAAE6B,GAAG7B,GAAG,CAAC,OAAO,CAAC,EAAE8B,GAAG9B,GAAG,CAAC,SAAS,SAAS,QAAQ,MAAM,iBAAiB,eAAe,uBAAuB,WAAW,aAAa,UAAU,SAAS,UAAU,cAAc,cAAc,UAAU,OAAO,QAAQ,QAAQ,QAAQ,OAAO,UAAU,WAAW,eAAe,SAAS,cAAc,WAAW,WAAW,UAAU,MAAM,WAAW,0BAA0B,wBAAwB,WAAW,YAAY,UAAU,eAAe,OAAO,MAAM,UAAU,SAAS,SAAS,OAAO,OAAO,WAAW,KAAK,YAAY,YAAY,QAAQ,OAAO,QAAQ,OAAO,OAAO,UAAU,OAAO,MAAM,MAAM,YAAY,QAAQ,SAAS,MAAM,YAAY,WAAW,QAAQ,OAAO,QAAQ,UAAU,aAAa,SAAS,OAAO,UAAU,UAAU,cAAc,cAAc,UAAU,gBAAgB,sBAAsB,SAAS,UAAU,UAAU,aAAa,WAAW,MAAM,WAAW,MAAM,WAAW,OAAO,OAAO,UAAU,aAAa,QAAQ,WAAW,QAAQ,OAAO,QAAQ,OAAO,UAAU,QAAQ,MAAM,SAAS,OAAO,QAAQ,UAAU,WAAW,QAAQ,YAAY,OAAO,SAAS,SAAS,QAAQ,QAAQ,OAAO,QAAQ,MAAM,CAAC,EAAE+B,GAAG/B,GAAG,CAAC,gBAAgB,aAAa,WAAW,qBAAqB,YAAY,SAAS,gBAAgB,gBAAgB,UAAU,gBAAgB,iBAAiB,QAAQ,OAAO,KAAK,QAAQ,OAAO,gBAAgB,YAAY,YAAY,QAAQ,sBAAsB,8BAA8B,gBAAgB,kBAAkB,KAAK,KAAK,IAAI,KAAK,KAAK,kBAAkB,YAAY,UAAU,UAAU,MAAM,WAAW,YAAY,MAAM,WAAW,OAAO,eAAe,YAAY,SAAS,cAAc,cAAc,gBAAgB,cAAc,YAAY,mBAAmB,eAAe,aAAa,eAAe,cAAc,KAAK,KAAK,KAAK,KAAK,aAAa,WAAW,gBAAgB,oBAAoB,SAAS,OAAO,KAAK,kBAAkB,KAAK,MAAM,YAAY,IAAI,KAAK,KAAK,KAAK,KAAK,UAAU,YAAY,aAAa,WAAW,OAAO,eAAe,iBAAiB,eAAe,mBAAmB,iBAAiB,QAAQ,aAAa,aAAa,eAAe,eAAe,cAAc,cAAc,mBAAmB,YAAY,MAAM,OAAO,QAAQ,SAAS,OAAO,MAAM,OAAO,aAAa,SAAS,WAAW,UAAU,QAAQ,SAAS,cAAc,SAAS,WAAW,cAAc,OAAO,aAAa,sBAAsB,mBAAmB,eAAe,SAAS,gBAAgB,sBAAsB,iBAAiB,IAAI,KAAK,KAAK,SAAS,OAAO,OAAO,cAAc,YAAY,UAAU,SAAS,SAAS,QAAQ,OAAO,kBAAkB,QAAQ,mBAAmB,mBAAmB,eAAe,cAAc,eAAe,cAAc,aAAa,eAAe,mBAAmB,oBAAoB,iBAAiB,kBAAkB,oBAAoB,iBAAiB,SAAS,eAAe,QAAQ,eAAe,iBAAiB,WAAW,cAAc,UAAU,UAAU,YAAY,mBAAmB,cAAc,kBAAkB,iBAAiB,aAAa,OAAO,KAAK,KAAK,UAAU,SAAS,UAAU,aAAa,UAAU,aAAa,gBAAgB,gBAAgB,QAAQ,eAAe,OAAO,eAAe,mBAAmB,mBAAmB,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,YAAY,CAAC,EAAEgC,GAAGhC,GAAG,CAAC,SAAS,cAAc,QAAQ,WAAW,QAAQ,eAAe,cAAc,aAAa,aAAa,QAAQ,MAAM,UAAU,eAAe,WAAW,QAAQ,QAAQ,SAAS,OAAO,KAAK,UAAU,SAAS,gBAAgB,SAAS,SAAS,iBAAiB,YAAY,WAAW,cAAc,UAAU,UAAU,gBAAgB,WAAW,WAAW,OAAO,WAAW,WAAW,aAAa,UAAU,SAAS,SAAS,cAAc,gBAAgB,uBAAuB,YAAY,YAAY,aAAa,WAAW,iBAAiB,iBAAiB,YAAY,UAAU,QAAQ,OAAO,CAAC,EAAEiC,GAAGjC,GAAG,CAAC,aAAa,SAAS,cAAc,YAAY,aAAa,CAAC,EAAEkC,GAAGjC,GAAG,2BAA2B,EAAEkC,GAAGlC,GAAG,uBAAuB,EAAEmC,GAAGnC,GAAG,gBAAgB,EAAEoC,GAAGpC,GAAG,8BAA8B,EAAEqC,GAAGrC,GAAG,gBAAgB,EAAEsC,GAAGtC,GAAG,2FAA2F,EAAEuC,GAAGvC,GAAG,uBAAuB,EAAEwC,GAAGxC,GAAG,6DAA6D,EAAEyC,GAAGzC,GAAG,SAAS,EAAE0C,GAAG1C,GAAG,0BAA0B,EAAE,IAAI2C,GAAG,OAAO,OAAO,CAAC,UAAU,KAAK,UAAUN,GAAG,gBAAgBG,GAAG,eAAeE,GAAG,UAAUN,GAAG,aAAaK,GAAG,SAASP,GAAG,eAAeI,GAAG,kBAAkBC,GAAG,cAAcN,GAAG,YAAYE,EAAE,CAAC,EAAE,MAAMS,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,UAAU,CAAC,OAAmB,OAAO,OAApB,IAA2B,KAAK,MAAM,EAAE,IAAIC,GAAG,SAAS5K,GAAG,CAAC,IAAI,EAAE,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE2K,GAAE,EAAG,MAAMzK,EAAED,GAAGD,EAAEC,CAAC,EAAE,GAAGC,EAAE,QAAQ,QAAQA,EAAE,QAAQ,CAAA,EAAG,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,SAAS,WAAWwK,GAAG,OAAOxK,EAAE,YAAY,GAAGA,EAAE,GAAG,CAAC,SAASC,CAAC,EAAE,EAAE,MAAMC,EAAED,EAAEE,EAAED,EAAE,cAAc,CAAC,iBAAiB,EAAE,oBAAoBG,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAaI,EAAE,EAAE,cAAc,EAAE,gBAAgB,gBAAgBC,EAAE,UAAUC,EAAE,aAAaC,CAAC,EAAE,EAAEC,EAAE,EAAE,UAAUC,EAAE+H,GAAGhI,EAAE,WAAW,EAAEE,EAAE8H,GAAGhI,EAAE,QAAQ,EAAE,EAAEgI,GAAGhI,EAAE,aAAa,EAAEK,EAAE2H,GAAGhI,EAAE,YAAY,EAAEG,EAAE6H,GAAGhI,EAAE,YAAY,EAAE,GAAe,OAAOR,GAAnB,WAAqB,CAAC,MAAMP,EAAEG,EAAE,cAAc,UAAU,EAAEH,EAAE,SAASA,EAAE,QAAQ,gBAAgBG,EAAEH,EAAE,QAAQ,cAAc,CAAC,IAAIqB,EAAEC,EAAE,GAAG,KAAK,CAAC,eAAeC,EAAE,mBAAmBC,EAAE,uBAAuBC,EAAE,qBAAqBC,CAAC,EAAEvB,EAAE,CAAC,WAAWwB,CAAC,EAAEvB,EAAE,IAAIwB,EAAE,CAAC,wBAAwB,GAAG,sBAAsB,CAAE,EAAC,uBAAuB,CAAA,EAAG,yBAAyB,CAAA,EAAG,uBAAuB,GAAG,wBAAwB,CAAE,EAAC,sBAAsB,CAAE,EAAC,oBAAoB,CAAA,EAAG,uBAAuB,EAAE,EAAE1B,EAAE,YAAwB,OAAOkH,IAAnB,YAAmC,OAAOlG,GAAnB,YAAsBK,GAAYA,EAAE,qBAAX,OAA8B,KAAK,CAAC,cAAcM,EAAE,SAASC,EAAE,YAAYE,EAAE,UAAUD,EAAE,UAAUE,EAAE,kBAAkBC,EAAE,gBAAgBE,EAAE,eAAeC,CAAC,EAAEgI,GAAG,GAAG,CAAC,eAAelI,CAAC,EAAEkI,GAAG/H,EAAE,KAAK,MAAMC,GAAEqG,EAAG,CAAA,EAAG,CAAC,GAAGI,GAAG,GAAGC,GAAG,GAAGC,GAAG,GAAGE,GAAG,GAAGE,EAAE,CAAC,EAAE,IAAI9G,EAAE,KAAK,MAAMC,EAAEmG,EAAG,CAAA,EAAG,CAAC,GAAGW,GAAG,GAAGC,GAAG,GAAGC,GAAG,GAAGC,EAAE,CAAC,EAAE,IAAIhH,EAAE,OAAO,KAAKiF,GAAG,KAAK,CAAC,aAAa,CAAC,SAAS,GAAG,aAAa,GAAG,WAAW,GAAG,MAAM,IAAI,EAAE,mBAAmB,CAAC,SAAS,GAAG,aAAa,GAAG,WAAW,GAAG,MAAM,IAAI,EAAE,+BAA+B,CAAC,SAAS,GAAG,aAAa,GAAG,WAAW,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC,EAAEhF,GAAE,KAAKS,GAAE,KAAKP,GAAE,GAAGC,GAAE,GAAGC,GAAE,GAAGC,GAAE,GAAGC,GAAE,GAAGC,GAAE,GAAGU,GAAE,GAAGL,GAAE,GAAGC,GAAE,GAAGC,GAAG,GAAGJ,GAAG,GAAGC,GAAG,GAAGI,GAAG,GAAGC,GAAG,GAAGE,GAAG,GAAGC,GAAG,GAAGC,GAAG,CAAA,EAAGC,GAAG,KAAK,MAAMC,GAAG2E,EAAG,GAAG,CAAC,iBAAiB,QAAQ,WAAW,OAAO,gBAAgB,OAAO,SAAS,OAAO,KAAK,KAAK,KAAK,KAAK,QAAQ,UAAU,WAAW,WAAW,YAAY,SAAS,QAAQ,MAAM,WAAW,QAAQ,QAAQ,QAAQ,KAAK,CAAC,EAAE,IAAI1E,GAAG,KAAK,MAAMC,GAAGyE,EAAG,CAAE,EAAC,CAAC,QAAQ,QAAQ,MAAM,SAAS,QAAQ,OAAO,CAAC,EAAE,IAAIxE,GAAG,KAAK,MAAMC,GAAGuE,EAAG,GAAG,CAAC,MAAM,QAAQ,MAAM,KAAK,QAAQ,OAAO,UAAU,cAAc,OAAO,UAAU,QAAQ,QAAQ,QAAQ,OAAO,CAAC,EAAEpE,GAAG,qCAAqCD,GAAG,6BAA6BE,GAAG,+BAA+B,IAAIH,GAAGG,GAAGC,GAAG,GAAGC,GAAG,KAAK,MAAMC,GAAGgE,EAAG,CAAA,EAAG,CAACpE,GAAGD,GAAGE,EAAE,EAAE0D,EAAE,EAAE,IAAItD,GAAG+D,EAAG,CAAE,EAAC,CAAC,KAAK,KAAK,KAAK,KAAK,OAAO,CAAC,EAAE9D,GAAG8D,EAAG,CAAE,EAAC,CAAC,gBAAgB,CAAC,EAAE,MAAM7D,GAAG6D,EAAG,GAAG,CAAC,QAAQ,QAAQ,OAAO,IAAI,QAAQ,CAAC,EAAE,IAAI5D,GAAG,KAAK,MAAMC,GAAG,CAAC,wBAAwB,WAAW,EAAE,IAAIC,GAAG,KAAKC,GAAG,KAAK,MAAMC,GAAGjF,EAAE,cAAc,MAAM,EAAEmF,GAAG,SAAStF,EAAE,CAAC,OAAOA,aAAa,QAAQA,aAAa,QAAQ,EAAEwF,GAAG,UAAU,CAAC,IAAIxF,EAAE,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,GAAG,GAAG,CAACmF,IAAIA,KAAKnF,EAAE,CAAC,GAAGA,GAAa,OAAOA,GAAjB,WAAqBA,EAAE,CAAA,GAAIA,EAAE8I,GAAG9I,CAAC,EAAEgF,GAAQC,GAAG,QAAQjF,EAAE,iBAAiB,IAAnC,GAAqC,YAAYA,EAAE,kBAAkBkF,GAA6BF,KAA1B,wBAA6BmD,GAAGD,GAAG5F,EAAEkG,GAAGxI,EAAE,cAAc,EAAE4I,EAAG,CAAE,EAAC5I,EAAE,aAAakF,EAAE,EAAE3C,GAAEC,EAAEgG,GAAGxI,EAAE,cAAc,EAAE4I,EAAG,CAAE,EAAC5I,EAAE,aAAakF,EAAE,EAAEzC,EAAEkC,GAAG6D,GAAGxI,EAAE,oBAAoB,EAAE4I,EAAG,GAAG5I,EAAE,mBAAmBmI,EAAE,EAAEvD,GAAGR,GAAGoE,GAAGxI,EAAE,mBAAmB,EAAE4I,EAAGE,GAAGzE,EAAE,EAAErE,EAAE,kBAAkBkF,EAAE,EAAEb,GAAGH,GAAGsE,GAAGxI,EAAE,mBAAmB,EAAE4I,EAAGE,GAAG3E,EAAE,EAAEnE,EAAE,kBAAkBkF,EAAE,EAAEf,GAAGH,GAAGwE,GAAGxI,EAAE,iBAAiB,EAAE4I,EAAG,CAAA,EAAG5I,EAAE,gBAAgBkF,EAAE,EAAEjB,GAAGtB,GAAE6F,GAAGxI,EAAE,aAAa,EAAE4I,EAAG,CAAA,EAAG5I,EAAE,YAAYkF,EAAE,EAAE,CAAE,EAAC9B,GAAEoF,GAAGxI,EAAE,aAAa,EAAE4I,EAAG,CAAE,EAAC5I,EAAE,YAAYkF,EAAE,EAAE,CAAE,EAACnB,GAAG,CAAC,CAACyE,GAAGxI,EAAE,cAAc,GAAGA,EAAE,aAAa6C,GAAO7C,EAAE,kBAAP,GAAuB8C,GAAO9C,EAAE,kBAAP,GAAuB+C,GAAE/C,EAAE,yBAAyB,GAAGgD,GAAOhD,EAAE,2BAAP,GAAgCiD,GAAEjD,EAAE,oBAAoB,GAAGkD,GAAOlD,EAAE,eAAP,GAAoB4D,GAAE5D,EAAE,gBAAgB,GAAGyD,GAAGzD,EAAE,YAAY,GAAGqD,GAAGrD,EAAE,qBAAqB,GAAGsD,GAAGtD,EAAE,qBAAqB,GAAGwD,GAAExD,EAAE,YAAY,GAAG0D,GAAQ1D,EAAE,eAAP,GAAoB2D,GAAG3D,EAAE,sBAAsB,GAAG6D,GAAQ7D,EAAE,eAAP,GAAoB8D,GAAG9D,EAAE,UAAU,GAAGmC,EAAEnC,EAAE,oBAAoBgK,GAAG1F,GAAGtE,EAAE,WAAWyE,GAAGI,GAAG7E,EAAE,gCAAgC6E,GAAGC,GAAG9E,EAAE,yBAAyB8E,GAAGpC,EAAE1C,EAAE,yBAAyB,CAAA,EAAGA,EAAE,yBAAyBsF,GAAGtF,EAAE,wBAAwB,YAAY,IAAI0C,EAAE,aAAa1C,EAAE,wBAAwB,cAAcA,EAAE,yBAAyBsF,GAAGtF,EAAE,wBAAwB,kBAAkB,IAAI0C,EAAE,mBAAmB1C,EAAE,wBAAwB,oBAAoBA,EAAE,yBAAoC,OAAOA,EAAE,wBAAwB,gCAA5C,YAA6E0C,EAAE,+BAA+B1C,EAAE,wBAAwB,gCAAgCiD,KAAIH,GAAE,IAAIO,KAAKI,GAAG,IAAIM,KAAKzB,EAAEsG,EAAG,GAAGU,EAAE,EAAE9G,EAAE,CAAE,EAAMuB,GAAG,OAAR,KAAe6E,EAAGtG,EAAE0G,EAAE,EAAEJ,EAAGpG,EAAE+G,EAAE,GAAQxF,GAAG,MAAR,KAAc6E,EAAGtG,EAAE2G,EAAE,EAAEL,EAAGpG,EAAEgH,EAAE,EAAEZ,EAAGpG,EAAEkH,EAAE,GAAQ3F,GAAG,aAAR,KAAqB6E,EAAGtG,EAAE4G,EAAE,EAAEN,EAAGpG,EAAEgH,EAAE,EAAEZ,EAAGpG,EAAEkH,EAAE,GAAQ3F,GAAG,SAAR,KAAiB6E,EAAGtG,EAAE8G,EAAE,EAAER,EAAGpG,EAAEiH,EAAE,EAAEb,EAAGpG,EAAEkH,EAAE,IAAI1J,EAAE,WAAWsC,IAAIC,KAAID,EAAEwG,GAAGxG,CAAC,GAAGsG,EAAGtG,EAAEtC,EAAE,SAASkF,EAAE,GAAGlF,EAAE,WAAWwC,IAAIC,IAAID,EAAEsG,GAAGtG,CAAC,GAAGoG,EAAGpG,EAAExC,EAAE,SAASkF,EAAE,GAAGlF,EAAE,mBAAmB4I,EAAGxE,GAAGpE,EAAE,kBAAkBkF,EAAE,EAAElF,EAAE,kBAAkBgE,KAAKC,KAAKD,GAAG8E,GAAG9E,EAAE,GAAG4E,EAAG5E,GAAGhE,EAAE,gBAAgBkF,EAAE,GAAGrB,KAAKvB,EAAE,OAAO,EAAE,IAAIsB,IAAGgF,EAAGtG,EAAE,CAAC,OAAO,OAAO,MAAM,CAAC,EAAEA,EAAE,QAAQsG,EAAGtG,EAAE,CAAC,OAAO,CAAC,EAAE,OAAOK,GAAE,OAAO3C,EAAE,qBAAqB,CAAC,GAAe,OAAOA,EAAE,qBAAqB,YAA1C,WAAqD,MAAM0I,GAAG,6EAA6E,EAAE,GAAe,OAAO1I,EAAE,qBAAqB,iBAA1C,WAA0D,MAAM0I,GAAG,kFAAkF,EAAErH,EAAErB,EAAE,qBAAqBsB,EAAED,EAAE,WAAW,EAAE,CAAC,MAAeA,IAAT,SAAaA,EAAE,SAASrB,EAAEC,EAAE,CAAC,GAAa,OAAOD,GAAjB,UAAgC,OAAOA,EAAE,cAArB,WAAkC,OAAO,KAAK,IAAIE,GAAE,KAAK,MAAMC,GAAE,wBAAwBF,GAAGA,EAAE,aAAaE,EAAC,IAAID,GAAED,EAAE,aAAaE,EAAC,GAAG,MAAMC,EAAE,aAAaF,GAAE,IAAIA,GAAE,IAAI,GAAG,CAAC,OAAOF,EAAE,aAAaI,EAAE,CAAC,WAAWJ,IAAGA,GAAE,gBAAgBA,IAAGA,EAAC,CAAC,CAAC,MAAS,CAAC,OAAO,QAAQ,KAAK,uBAAuBI,EAAE,wBAAwB,EAAE,IAAI,CAAC,EAAEU,EAAET,CAAC,GAAUgB,IAAP,MAAoB,OAAOC,GAAjB,WAAqBA,EAAED,EAAE,WAAW,EAAE,GAAGoG,IAAIA,GAAGzH,CAAC,EAAEmF,GAAGnF,CAAC,CAAC,EAAEqF,GAAGuD,EAAG,CAAE,EAAC,CAAC,GAAGK,GAAG,GAAGC,GAAG,GAAGC,EAAE,CAAC,EAAE5D,GAAGqD,EAAG,CAAE,EAAC,CAAC,GAAGQ,GAAG,GAAGC,EAAE,CAAC,EAAE5D,GAAG,SAASzF,EAAE,CAACiI,GAAG/H,EAAE,QAAQ,CAAC,QAAQF,CAAC,CAAC,EAAE,GAAG,CAACkB,EAAElB,CAAC,EAAE,YAAYA,CAAC,CAAC,MAAS,CAACiB,EAAEjB,CAAC,CAAC,CAAC,EAAE0F,GAAG,SAAS1F,EAAEC,EAAE,CAAC,GAAG,CAACgI,GAAG/H,EAAE,QAAQ,CAAC,UAAUD,EAAE,iBAAiBD,CAAC,EAAE,KAAKC,CAAC,CAAC,CAAC,MAAS,CAACgI,GAAG/H,EAAE,QAAQ,CAAC,UAAU,KAAK,KAAKD,CAAC,CAAC,CAAC,CAAC,GAAGA,EAAE,gBAAgBD,CAAC,EAASA,IAAP,KAAS,GAAGyD,IAAIJ,GAAG,GAAG,CAACoC,GAAGxF,CAAC,CAAC,MAAS,CAAE,KAAK,IAAG,CAACA,EAAE,aAAaD,EAAE,EAAE,CAAC,MAAS,CAAA,CAAE,EAAE2F,GAAG,SAAS3F,EAAE,CAAC,IAAIC,EAAE,KAAKC,EAAE,KAAK,GAAGsD,GAAExD,EAAE,oBAAoBA,MAAM,CAAC,MAAMC,EAAEmI,GAAGpI,EAAE,aAAa,EAAEE,EAAED,GAAGA,EAAE,CAAC,CAAC,CAA2B+E,KAA1B,yBAA8BV,KAAKG,KAAKzE,EAAE,iEAAiEA,EAAE,kBAAkB,MAAMI,GAAEiB,EAAEA,EAAE,WAAWrB,CAAC,EAAEA,EAAE,GAAGsE,KAAKG,GAAG,GAAG,CAACxE,EAAG,IAAIY,IAAG,gBAAgBT,GAAE4E,EAAE,CAAC,MAAS,CAAA,CAAE,GAAG,CAAC/E,GAAG,CAACA,EAAE,gBAAgB,CAACA,EAAEsB,EAAE,eAAe+C,GAAG,WAAW,IAAI,EAAE,GAAG,CAACrE,EAAE,gBAAgB,UAAUyE,GAAGpD,EAAElB,EAAC,MAAS,EAAE,CAAC,MAAMC,GAAEJ,EAAE,MAAMA,EAAE,gBAAgB,OAAOD,GAAGE,GAAGG,GAAE,aAAaF,EAAE,eAAeD,CAAC,EAAEG,GAAE,WAAW,CAAC,GAAG,IAAI,EAAEiE,KAAKG,GAAG/C,EAAE,KAAKzB,EAAE2D,GAAE,OAAO,MAAM,EAAE,CAAC,EAAEA,GAAE3D,EAAE,gBAAgBI,EAAC,EAAEuF,GAAG,SAAS5F,EAAE,CAAC,OAAOwB,EAAE,KAAKxB,EAAE,eAAeA,EAAEA,EAAE,EAAE,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,4BAA4B,EAAE,mBAAmB,IAAI,CAAC,EAAE8F,GAAG,SAAS9F,EAAE,CAAC,OAAOA,aAAaY,IAAc,OAAOZ,EAAE,UAAnB,UAAuC,OAAOA,EAAE,aAAnB,UAA4C,OAAOA,EAAE,aAArB,YAAkC,EAAEA,EAAE,sBAAsBW,IAAgB,OAAOX,EAAE,iBAArB,YAAkD,OAAOA,EAAE,cAArB,YAA6C,OAAOA,EAAE,cAAnB,UAA6C,OAAOA,EAAE,cAArB,YAA+C,OAAOA,EAAE,eAArB,WAAmC,EAAE6F,GAAG,SAAS7F,EAAE,CAAC,OAAkB,OAAO,GAAnB,YAAsBA,aAAa,CAAC,EAAE,SAAS+F,GAAG/F,EAAEC,EAAEE,EAAE,CAAC2H,GAAG9H,EAAGA,IAAG,CAACA,GAAE,KAAKE,EAAED,EAAEE,EAAEgF,EAAE,CAAC,EAAG,CAAC,MAAMa,GAAG,SAAShG,EAAE,CAAC,IAAIC,EAAE,KAAK,GAAG8F,GAAGnE,EAAE,uBAAuB5B,EAAE,IAAI,EAAE8F,GAAG9F,CAAC,EAAE,OAAOyF,GAAGzF,CAAC,EAAE,GAAG,MAAMG,EAAE+E,GAAGlF,EAAE,QAAQ,EAAkN,GAA7M+F,GAAGnE,EAAE,oBAAoB5B,EAAE,CAAC,QAAQG,EAAE,YAAYmC,CAAC,CAAC,EAAEtC,EAAE,cAAe,GAAE,CAAC6F,GAAG7F,EAAE,iBAAiB,GAAGyI,GAAG,UAAUzI,EAAE,SAAS,GAAGyI,GAAG,UAAUzI,EAAE,WAAW,GAAqBA,EAAE,WAAWwK,IAAsBtH,IAAGlD,EAAE,WAAWyK,IAAIhC,GAAG,UAAUzI,EAAE,IAAI,EAAE,OAAOyF,GAAGzF,CAAC,EAAE,GAAG,GAAG,CAACsC,EAAEnC,CAAC,GAAGwC,GAAExC,CAAC,EAAE,CAAC,GAAG,CAACwC,GAAExC,CAAC,GAAG+F,GAAG/F,CAAC,IAAMuC,EAAE,wBAAwB,QAAQ+F,GAAG/F,EAAE,aAAavC,CAAC,GAAcuC,EAAE,wBAAwB,UAAUA,EAAE,aAAavC,CAAC,GAAE,MAAQ,GAAC,GAAG0D,IAAI,CAACG,GAAG7D,CAAC,EAAE,CAAC,MAAMF,GAAEiB,EAAElB,CAAC,GAAGA,EAAE,WAAWE,GAAEkB,EAAEpB,CAAC,GAAGA,EAAE,WAAW,GAAGE,IAAGD,GAAG,QAAQE,EAAED,GAAE,OAAO,EAAEC,GAAG,EAAE,EAAEA,EAAE,CAAC,MAAMC,GAAEY,EAAEd,GAAEC,CAAC,EAAE,EAAE,EAAEC,GAAE,gBAAgBJ,EAAE,gBAAgB,GAAG,EAAEC,GAAE,aAAaG,GAAE,EAAEJ,CAAC,CAAC,CAAC,CAAE,CAAC,OAAOyF,GAAGzF,CAAC,EAAE,EAAE,CAAC,OAAOA,aAAa,GAAG,CAAC,SAASA,GAAE,CAAC,IAAIC,GAAEiB,EAAElB,EAAC,EAAEC,IAAGA,GAAE,UAAUA,GAAE,CAAC,aAAaqE,GAAG,QAAQ,UAAU,GAAG,MAAMpE,EAAEgI,GAAGlI,GAAE,OAAO,EAAEG,GAAE+H,GAAGjI,GAAE,OAAO,EAAE,MAAM,CAAC,CAAC0E,GAAG3E,GAAE,YAAY,IAAIA,GAAE,eAAeuE,GAAGtE,GAAE,eAAewE,GAAWvE,IAAR,MAAUD,GAAE,eAAeuE,GAAWtE,IAAR,QAA+BC,KAAnB,kBAAsB0E,GAAG1E,EAAC,GAAG,EAAQkF,GAAGnF,CAAC,EAAGF,GAAE,eAAewE,GAAGvE,GAAE,eAAewE,GAAYvE,IAAT,OAAWD,GAAE,eAAesE,GAAYrE,IAAT,QAAY4E,GAAG3E,EAAC,EAAE,EAAQoF,GAAGrF,CAAC,EAAGF,GAAE,eAAeyE,GAAG,EAAExE,GAAE,eAAesE,IAAI,CAACO,GAAG3E,EAAC,IAAI,EAAEF,GAAE,eAAeuE,IAAI,CAACK,GAAG1E,EAAC,IAAI,CAACoF,GAAGrF,CAAC,IAAI6E,GAAG7E,CAAC,GAAG,CAACmF,GAAGnF,CAAC,GAAG,EAA4B8E,KAA1B,yBAA8B,CAACL,GAAG3E,GAAE,YAAY,GAAG,EAAEA,CAAC,GAAGyF,GAAGzF,CAAC,EAAE,IAAiBG,IAAb,YAA4BA,IAAZ,WAA4BA,IAAb,YAAgB,CAACsI,GAAG,8BAA8BzI,EAAE,SAAS,GAAGiD,IAAGjD,EAAE,WAAWuK,KAAKtK,EAAED,EAAE,YAAY8H,GAAG,CAACjG,EAAEC,EAAEE,CAAC,EAAGhC,IAAG,CAACC,EAAEoI,GAAGpI,EAAED,GAAE,GAAG,CAAC,GAAIA,EAAE,cAAcC,IAAIgI,GAAG/H,EAAE,QAAQ,CAAC,QAAQF,EAAE,UAAW,CAAA,CAAC,EAAEA,EAAE,YAAYC,IAAI8F,GAAGnE,EAAE,sBAAsB5B,EAAE,IAAI,EAAE,KAAKyF,GAAGzF,CAAC,EAAE,GAAG,EAAEiG,GAAG,SAASjG,EAAEC,EAAEC,EAAE,CAAC,GAAGwD,KAAYzD,IAAP,MAAmBA,IAAT,UAAcC,KAAKC,GAAGD,KAAKkF,IAAI,SAAS,GAAG,EAAAtC,IAAG,CAACM,GAAEnD,CAAC,GAAGwI,GAAG1G,EAAE9B,CAAC,IAAQ,GAAG,EAAA4C,IAAG4F,GAAGxG,EAAEhC,CAAC,IAAQ,GAAG,CAACuC,EAAEvC,CAAC,GAAGmD,GAAEnD,CAAC,GAAG,GAAG,EAAEiG,GAAGlG,CAAC,IAAI0C,EAAE,wBAAwB,QAAQ+F,GAAG/F,EAAE,aAAa1C,CAAC,GAAG0C,EAAE,wBAAwB,UAAUA,EAAE,aAAa1C,CAAC,KAAK0C,EAAE,8BAA8B,QAAQ+F,GAAG/F,EAAE,mBAAmBzC,CAAC,GAAGyC,EAAE,8BAA8B,UAAUA,EAAE,mBAAmBzC,CAAC,IAAWA,IAAP,MAAUyC,EAAE,iCAAiCA,EAAE,wBAAwB,QAAQ+F,GAAG/F,EAAE,aAAaxC,CAAC,GAAGwC,EAAE,wBAAwB,UAAUA,EAAE,aAAaxC,CAAC,IAAI,MAAM,WAAW,CAAAkE,GAAGnE,CAAC,GAAQ,GAAG,CAAAwI,GAAGtG,EAAEkG,GAAGnI,EAAEkC,EAAE,EAAE,CAAC,GAAQ,IAAWnC,IAAR,OAA0BA,IAAf,cAA2BA,IAAT,QAAuBD,IAAX,UAAkBsI,GAAGpI,EAAE,OAAO,IAAhB,GAAmB,CAACgE,GAAGlE,CAAC,IAAM,EAAA+C,IAAG,CAAC0F,GAAGvG,EAAEmG,GAAGnI,EAAEkC,EAAE,EAAE,CAAC,IAAQ,GAAGlC,EAAE,MAAQ,OAAM,QAAQ,EAAEgG,GAAG,SAASlG,EAAE,CAAC,OAAyBA,IAAnB,kBAAsBoI,GAAGpI,EAAEqC,CAAC,CAAC,EAAE8D,GAAG,SAASnG,EAAE,CAAC+F,GAAGnE,EAAE,yBAAyB5B,EAAE,IAAI,EAAE,KAAK,CAAC,WAAWC,CAAC,EAAED,EAAE,GAAG,CAACC,GAAG6F,GAAG9F,CAAC,EAAE,OAAO,MAAMG,EAAE,CAAC,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,kBAAkBqC,EAAE,cAAc,MAAM,EAAE,IAAIpC,GAAEH,EAAE,OAAO,KAAKG,MAAK,CAAC,MAAMC,GAAEJ,EAAEG,EAAC,EAAE,CAAC,KAAKE,EAAE,aAAaC,GAAE,MAAMC,EAAC,EAAEH,GAAEI,GAAEyE,GAAG5E,CAAC,EAAE,IAAII,GAAYJ,IAAV,QAAYE,GAAE+H,GAAG/H,EAAC,EAAE,GAAGL,EAAE,SAASM,GAAEN,EAAE,UAAUO,GAAEP,EAAE,SAAS,GAAGA,EAAE,cAAc,OAAO4F,GAAGnE,EAAE,sBAAsB5B,EAAEG,CAAC,EAAEO,GAAEP,EAAE,UAAU,CAACwD,IAAWlD,KAAP,MAAmBA,KAAT,SAAaiF,GAAGpF,EAAEN,CAAC,EAAEU,GAAE,gBAAgBA,IAAGwC,IAAGuF,GAAG,gCAAgC/H,EAAC,EAAE,CAACgF,GAAGpF,EAAEN,CAAC,EAAE,QAAQ,CAA6B,GAAzBG,EAAE,gBAA0BuF,GAAGpF,EAAEN,CAAC,EAAE,CAACG,EAAE,UAAS,SAAS,GAAG,CAAC6C,IAAGyF,GAAG,OAAO/H,EAAC,EAAE,CAACgF,GAAGpF,EAAEN,CAAC,EAAE,QAAQ,CAACiD,IAAG6E,GAAG,CAACjG,EAAEC,EAAEE,CAAC,EAAGhC,IAAG,CAACU,GAAE2H,GAAG3H,GAAEV,GAAE,GAAG,CAAC,GAAI,MAAMW,GAAEuE,GAAGlF,EAAE,QAAQ,EAAE,GAAGiG,GAAGtF,GAAEF,GAAEC,EAAC,EAAE,CAAC,GAAGW,GAAa,OAAOP,GAAjB,UAAgC,OAAOA,EAAE,kBAArB,YAAyC,CAAAP,GAAQ,OAAOO,EAAE,iBAAiBH,GAAEF,EAAC,EAAG,CAAA,IAAI,cAAcC,GAAEW,EAAE,WAAWX,EAAC,EAAE,MAAM,IAAI,mBAAmBA,GAAEW,EAAE,gBAAgBX,EAAC,CAAC,CAAC,GAAG,CAACH,GAAEP,EAAE,eAAeO,GAAED,EAAEI,EAAC,EAAEV,EAAE,aAAaM,EAAEI,EAAC,EAAEoF,GAAG9F,CAAC,EAAEyF,GAAGzF,CAAC,EAAEgI,GAAG9H,EAAE,OAAO,CAAC,MAAS,CAAA,CAAE,CAAC,CAAC6F,GAAGnE,EAAE,wBAAwB5B,EAAE,IAAI,CAAC,EAAEoG,GAAG,SAASpG,EAAEC,EAAE,CAAC,IAAIC,EAAE,KAAK,MAAMC,GAAEyF,GAAG3F,CAAC,EAAE,IAAI8F,GAAGnE,EAAE,wBAAwB3B,EAAE,IAAI,EAAEC,EAAEC,GAAE,SAAQ,GAAI4F,GAAGnE,EAAE,uBAAuB1B,EAAE,IAAI,EAAE8F,GAAG9F,CAAC,EAAEiG,GAAGjG,CAAC,EAAEA,EAAE,mBAAmB,GAAGF,EAAEE,EAAE,OAAO,EAAE6F,GAAGnE,EAAE,uBAAuB3B,EAAE,IAAI,CAAC,EAAE,OAAOC,EAAE,SAAS,SAASF,EAAE,CAAC,IAAIC,EAAE,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,CAAE,EAACE,EAAE,KAAKE,GAAE,KAAKE,GAAE,KAAKE,EAAE,KAAK,GAAGiE,GAAG,CAAC1E,EAAE0E,KAAK1E,EAAE,SAAyB,OAAOA,GAAjB,UAAoB,CAAC6F,GAAG7F,CAAC,EAAE,CAAC,GAAe,OAAOA,EAAE,UAArB,WAA8B,MAAM0I,GAAG,4BAA4B,EAAE,GAAa,OAAO1I,EAAEA,EAAE,aAArB,SAAiC,MAAM0I,GAAG,iCAAiC,CAAC,CAAC,GAAG,CAACxI,EAAE,YAAY,OAAOF,EAAE,GAAGuD,IAAGiC,GAAGvF,CAAC,EAAEC,EAAE,QAAQ,CAAE,EAAW,OAAOF,GAAjB,WAAqB8D,GAAG,IAAIA,IAAI,GAAG9D,EAAE,SAAS,CAAC,MAAMC,GAAEiF,GAAGlF,EAAE,QAAQ,EAAE,GAAG,CAACsC,EAAErC,EAAC,GAAG0C,GAAE1C,EAAC,EAAE,MAAMyI,GAAG,yDAAyD,CAAC,UAAU1I,aAAa,EAAEG,EAAEwF,GAAG,SAAe,EAAEtF,GAAEF,EAAE,cAAc,WAAWH,EAAE,EAAE,EAAEK,GAAE,WAAWiK,IAAajK,GAAE,WAAX,QAA8BA,GAAE,WAAX,OAAoBF,EAAEE,GAAEF,EAAE,YAAYE,EAAC,MAAM,CAAC,GAAG,CAACoD,IAAI,CAACR,IAAG,CAACW,IAAQ5D,EAAE,QAAQ,GAAG,IAAlB,GAAoB,OAAOqB,GAAGiC,GAAGjC,EAAE,WAAWrB,CAAC,EAAEA,EAAE,GAAGG,EAAEwF,GAAG3F,CAAC,EAAE,CAACG,EAAE,OAAOsD,GAAG,KAAKH,GAAGhC,EAAE,EAAE,CAACnB,GAAGqD,IAAGiC,GAAGtF,EAAE,UAAU,EAAE,MAAMO,GAAEkF,GAAG9B,GAAG9D,EAAEG,CAAC,EAAE,KAAKI,GAAEG,GAAE,SAAU,GAAEsF,GAAGzF,EAAC,EAAE4F,GAAG5F,EAAC,EAAEA,GAAE,mBAAmB,GAAG6F,GAAG7F,GAAE,OAAO,EAAE,GAAGuD,GAAG,OAAO9D,EAAE,GAAGyD,GAAG,CAAC,GAAGJ,GAAG,IAAI5C,EAAEgB,EAAE,KAAKtB,EAAE,aAAa,EAAEA,EAAE,YAAYM,EAAE,YAAYN,EAAE,UAAU,OAAOM,EAAEN,EAAE,OAAOqC,EAAE,YAAYA,EAAE,kBAAkB/B,EAAEkB,EAAE,KAAKvB,EAAEK,EAAE,EAAE,GAAGA,CAAC,CAAC,IAAIE,GAAEiD,GAAEzD,EAAE,UAAUA,EAAE,UAAU,OAAOyD,IAAGtB,EAAE,UAAU,GAAGnC,EAAE,eAAeA,EAAE,cAAc,SAASA,EAAE,cAAc,QAAQ,MAAMsI,GAAG0B,GAAGhK,EAAE,cAAc,QAAQ,IAAI,IAAIQ,GAAE,aAAaR,EAAE,cAAc,QAAQ,KAAK;AAAA,EAAMQ,IAAGsC,IAAG6E,GAAG,CAACjG,EAAEC,EAAEE,CAAC,EAAGhC,IAAG,CAACW,GAAE0H,GAAG1H,GAAEX,GAAE,GAAG,CAAC,CAAC,EAAGqB,GAAGiC,GAAGjC,EAAE,WAAWV,EAAC,EAAEA,EAAC,EAAET,EAAE,UAAU,UAAU,CAACsF,GAAG,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,CAAE,CAAA,EAAEjC,GAAE,EAAE,EAAErD,EAAE,YAAY,UAAU,CAACiF,GAAG,KAAK5B,GAAE,EAAE,EAAErD,EAAE,iBAAiB,SAASF,EAAEC,EAAEC,EAAE,CAACiF,IAAIK,GAAG,CAAE,CAAA,EAAE,MAAMrF,GAAE+E,GAAGlF,CAAC,EAAEI,GAAE8E,GAAGjF,CAAC,EAAE,OAAOgG,GAAG9F,GAAEC,GAAEF,CAAC,CAAC,EAAEA,EAAE,QAAQ,SAASF,EAAEC,EAAE,CAAa,OAAOA,GAAnB,YAAsBgI,GAAGrG,EAAE5B,CAAC,EAAEC,CAAC,CAAC,EAAEC,EAAE,WAAW,SAASF,EAAE,CAAC,OAAOgI,GAAGpG,EAAE5B,CAAC,CAAC,CAAC,EAAEE,EAAE,YAAY,SAASF,EAAE,CAAC4B,EAAE5B,CAAC,EAAE,CAAE,CAAA,EAAEE,EAAE,eAAe,UAAU,CAAC0B,EAAE,CAAC,wBAAwB,CAAA,EAAG,sBAAsB,GAAG,uBAAuB,CAAE,EAAC,yBAAyB,CAAA,EAAG,uBAAuB,CAAA,EAAG,wBAAwB,GAAG,sBAAsB,CAAE,EAAC,oBAAoB,CAAE,EAAC,uBAAuB,CAAA,CAAE,CAAC,EAAE1B,CAAC,EAAC,EAAG0K,GAAG,QAAQ,wBAAyB,SAAS5K,EAAE,EAAE,CAAC,cAAc,KAAK,EAAE,QAAQ,IAAI,EAAE,cAAc,GAAG,GAAI,MAAM6K,GAAG,6CAA6C,MAAM,GAAG,EAAEC,GAAG,cAAc,MAAM,GAAG,EAAEC,GAAG,8BAA8B,MAAM,GAAG,EAAE,MAAMC,WAAW5H,EAAC,CAAC,OAAO,QAAQpD,EAAEC,EAAE,CAAC,MAAMC,EAAE,IAAI,KAAKD,CAAC,EAAE,SAAQ,EAAG,EAAEC,EAAE,QAAQA,EAAE,UAAUA,EAAE,UAAUF,EAAE,UAAU,CAAC,CAAC,OAAO,SAASA,EAAEC,EAAE,CAAC,MAAMC,EAAE,IAAI,KAAKF,EAAEC,CAAC,EAAE,OAAOC,EAAE,SAAQ,EAAGA,CAAC,CAAC,YAAYF,EAAE,CAAC,GAAG,CAAC,kBAAkBC,EAAE,mBAAmBC,EAAE,kBAAkB,CAAC,EAAE,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,CAAE,EAAC,MAAM,GAAG,SAAS,EAAE,KAAK,kBAAkBD,GAAG4K,GAAG,KAAK,mBAAmB3K,GAAG4K,GAAG,KAAK,kBAAkB,GAAGC,GAAG,KAAK,KAAKE,GAAGjL,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,KAAK,iBAAkB,EAAC,KAAK,8BAA8B4K,GAAG,UAAUpK,EAAC,EAAE,KAAK,KAAKoK,GAAG,SAAS,KAAK,IAAI,EAAE,KAAK,IAAI,CAAC,SAAS,CAAC,OAAO,KAAK,KAAK,SAAS,CAAC,SAAS,CAAC,OAAO,KAAK,IAAI,CAAC,kBAAkB,CAAC,MAAM5K,EAAEyB,GAAE,KAAK,IAAI,EAAExB,EAAE,CAAE,EAAC,KAAKD,EAAE,SAAU,GAAE,CAAC,MAAME,EAAEF,EAAE,YAAY,OAAOE,EAAE,SAAQ,CAAE,KAAK,KAAK,aAAa,KAAK,mBAAmBA,CAAC,EAAED,EAAE,KAAKC,CAAC,EAAE,KAAK,gBAAgBA,CAAC,EAAE,MAAM,KAAK,KAAK,aAAaD,EAAE,KAAKC,CAAC,CAAC,CAAC,CAAC,OAAOD,EAAE,QAASD,GAAGwB,GAAExB,CAAC,GAAI,KAAK,IAAI,CAAC,gBAAgBA,EAAE,CAAC,OAAOA,EAAE,aAAa,MAAM,GAAG,KAAK,mBAAmB,SAASA,EAAE,QAAQ,GAAGA,EAAE,gBAAgB,MAAM,EAAE,MAAM,KAAKA,EAAE,UAAU,EAAE,QAASC,GAAG,CAAC,GAAG,CAAC,KAAKC,CAAC,EAAED,EAAE,KAAK,kBAAkB,SAASC,CAAC,GAAOA,EAAE,QAAQ,WAAW,IAAzB,GAA4BF,EAAE,gBAAgBE,CAAC,CAAC,CAAC,EAAGF,CAAC,CAAC,6BAA6B,CAAC,OAAO,MAAM,KAAK,KAAK,KAAK,iBAAiB,OAAO,CAAC,EAAE,QAASA,GAAG,CAAC,MAAMC,EAAED,EAAE,uBAAuBC,GAAUyB,GAAEzB,CAAC,IAAV,MAAaA,EAAE,YAAYD,CAAC,CAAC,CAAG,EAAC,KAAK,IAAI,CAAC,mBAAmBA,EAAE,CAAC,IAAUA,GAAN,KAAQ,OAAOA,EAAE,YAAY,KAAK,aAAa,OAAO,KAAK,mBAAmBA,CAAC,GAAG,KAAK,wBAAwBA,CAAC,CAAC,CAAC,mBAAmBA,EAAE,CAAC,OAAO,KAAK,kBAAkB,SAAS0B,GAAE1B,CAAC,CAAC,CAAC,CAAC,wBAAwBA,EAAE,CAAC,OAAgBA,EAAE,aAAa,qBAAqB,IAA9C,SAAiD,CAACoC,GAAEpC,CAAC,CAAC,CAAC,CAAC,MAAMiL,GAAG,UAAU,CAAC,IAAIjL,EAAE,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,GAAGA,EAAEA,EAAE,QAAQ,sBAAsB,SAAS,EAAE,MAAM,EAAE,SAAS,eAAe,mBAAmB,EAAE,EAAE,OAAO,EAAE,gBAAgB,UAAUA,EAAE,MAAM,KAAK,EAAE,KAAK,iBAAiB,OAAO,CAAC,EAAE,QAAS,GAAG,CAAC,EAAE,KAAK,YAAY,CAAC,CAAC,CAAC,EAAG,EAAE,IAAI,EAAE,CAAC,IAAIkL,EAAE,EAAEvI,GAAE,MAAMwI,WAAWhE,EAAE,CAAC,aAAa,CAAC,MAAM,GAAG,SAAS,EAAE,KAAK,WAAW,KAAK,OAAO,KAAK,WAAW,uBAAuB,KAAK,KAAK,gBAAgB,KAAK,QAAQ,KAAK,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC,aAAa,CAAC,IAAInH,EAAE,MAAMC,EAAED,EAAE2B,EAAE,CAAC,QAAQ,SAAS,UAAU,KAAK,eAAe,KAAK,KAAK,QAAS,EAAC,SAAS,EAAE,CAAC,EAAEzB,EAAE,KAAK,QAAS,EAAC,OAAOA,IAAIF,EAAE2B,EAAE,CAAC,QAAQ,IAAI,SAAS,GAAG,WAAW,CAAC,KAAKzB,EAAE,SAAS,EAAE,CAAC,CAAC,EAAED,EAAE,YAAYD,CAAC,GAAG,KAAK,WAAW,WAAY,EAACgL,GAAG,QAAQhL,EAAE,KAAK,WAAW,WAAY,CAAA,EAAE,KAAK,mBAAoB,EAAC,QAASC,GAAG,CAACD,EAAE,YAAYC,CAAC,CAAC,CAAG,EAACD,EAAE,YAAY,KAAK,qBAAoB,CAAE,EAAE,KAAK,WAAW,cAAc,KAAK,gBAAgB2B,EAAE,CAAC,QAAQ,WAAW,WAAW,CAAC,MAAMuJ,GAAG,mBAAmB,MAAM,KAAK,WAAW,kBAAmB,EAAC,IAAI,GAAG,EAAE,KAAK,CAAC,YAAY,GAAG,aAAa,CAAC,kBAAkB,KAAK,WAAW,EAAE,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,EAAEjL,EAAE,YAAY,KAAK,eAAe,GAAG,CAACmL,GAAG,MAAM,EAAEnL,EAAEmL,GAAG,OAAO,CAAC,CAAC,CAAC,sBAAsB,CAAC,MAAMpL,EAAE2B,EAAE,CAAC,QAAQ,aAAa,UAAUuJ,GAAG,iBAAiB,CAAC,EAAEjL,EAAE,KAAK,gBAAgB,aAAa,GAAGA,EAAED,EAAE,UAAU,IAAI,GAAG,OAAOkL,GAAG,kBAAkB,UAAU,CAAC,EAAElL,EAAE,YAAYC,MAAM,CAAC,IAAIA,EAAEC,EAAE,MAAMC,EAAE,KAAK,iBAAkB,EAAC,GAAGA,EAAE,OAAOF,EAAE,KAAK,WAAW,YAAW,GAAIE,EAAE,OAAOD,EAAE,KAAK,WAAW,qBAAsB,GAAED,EAAE,CAAC,MAAMC,EAAEyB,EAAE,CAAC,QAAQ,OAAO,UAAUuJ,GAAG,eAAe,YAAYjL,CAAC,CAAC,EAAED,EAAE,YAAYE,CAAC,CAAC,CAAC,GAAGA,EAAE,CAACD,GAAGD,EAAE,YAAY,SAAS,eAAe,GAAG,CAAC,EAAE,MAAMG,EAAEwB,EAAE,CAAC,QAAQ,OAAO,UAAUuJ,GAAG,eAAe,YAAYhL,CAAC,CAAC,EAAEF,EAAE,YAAYG,CAAC,CAAC,CAAC,CAAC,OAAOH,CAAC,CAAC,cAAc,CAAC,MAAMA,EAAE,CAACkL,GAAG,WAAW,GAAG,OAAOA,GAAG,WAAW,IAAI,EAAE,OAAO,KAAK,WAAW,QAAS,CAAA,CAAC,EAAEjL,EAAE,KAAK,WAAW,aAAY,EAAG,OAAOA,GAAGD,EAAE,KAAK,GAAG,OAAOkL,GAAG,WAAW,IAAI,EAAE,OAAOjL,CAAC,CAAC,EAAED,EAAE,KAAK,GAAG,CAAC,CAAC,SAAS,CAAC,MAAMA,EAAE,CAAC,eAAe,KAAK,UAAU,KAAK,UAAU,EAAE,gBAAgB,KAAK,WAAW,eAAc,EAAG,OAAO,KAAK,WAAW,EAAE,EAAE,CAAC,WAAWC,CAAC,EAAE,KAAK,gBAAgB,OAAOA,EAAE,QAAO,IAAKD,EAAE,eAAe,KAAK,UAAUC,CAAC,GAAG,KAAK,WAAW,UAAS,IAAKD,EAAE,cAAc,IAAIA,CAAC,CAAC,SAAS,CAAC,GAAG,CAACqL,GAAG,KAAK,WAAW,aAAa,GAAG,EAAE,OAAO,KAAK,WAAW,QAAS,CAAA,CAAC,kBAAkB,CAAC,IAAIrL,EAAE,MAAMC,EAAE,KAAK,WAAW,QAAS,EAACE,EAAE+E,IAAWlF,EAAEE,GAAED,CAAC,KAAb,MAA0BD,IAAT,OAAW,OAAOA,EAAE,OAAO,EAAE,OAAeC,IAAT,SAAaE,EAAE,KAAK,IAAIA,CAAC,CAAC,qBAAqB,CAAC,IAAIH,EAAE,OAAeA,EAAE,KAAK,YAAW,KAA1B,MAAwCA,IAAT,OAAW,OAAOA,EAAE,cAAc,UAAU,CAAC,CAAC,mCAAmC,CAAC,MAAMA,EAAE,KAAK,WAAW,kBAAiB,EAAGC,EAAE,KAAK,oBAAqB,EAACA,IAAIA,EAAE,MAAMD,EAAE,CAAC,CAAC,MAAMoL,GAAGpL,GAAG2B,EAAE,CAAC,QAAQ,OAAO,YAAYf,GAAE,KAAK,CAAC,iBAAiBZ,EAAE,cAAc,EAAE,CAAC,CAAC,EAAEqL,GAAG,SAASrL,EAAE,EAAE,CAAC,MAAME,EAAEyB,EAAE,KAAK,EAAE,OAAOqJ,GAAG,QAAQ9K,EAAEF,GAAG,EAAE,EAAEE,EAAE,cAAc,CAAC,CAAC,EAAE,MAAMoL,WAAWH,EAAE,CAAC,aAAa,CAAC,MAAM,GAAG,SAAS,EAAE,KAAK,WAAW,gBAAgB,IAAI,CAAC,oBAAoB,CAAC,OAAO,KAAK,MAAMxJ,EAAE,CAAC,QAAQ,MAAM,WAAW,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,KAAK,QAAQ,KAAK,KAAK,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC,sBAAsB,CAAC,MAAM3B,EAAE,MAAM,qBAAqB,GAAG,SAAS,EAAE,OAAOA,EAAE,aAAaA,EAAE,aAAa,wBAAwBS,EAAE,kBAAkB,EAAET,CAAC,CAAC,QAAQA,EAAE,CAAC,IAAIC,EAAiF,GAA/ED,IAAIA,GAAUC,EAAE,KAAK,iBAAf,MAAwCA,IAAT,OAAW,OAAOA,EAAE,cAAc,KAAK,GAAMD,EAAE,OAAO,KAAK,yBAAyBA,CAAC,CAAC,CAAC,yBAAyBA,EAAE,CAAC,MAAMC,EAAE,KAAK,WAAW,SAASC,EAAE,KAAK,WAAW,cAAa,EAAG,GAAGF,EAAE,IAAIE,GAAGD,EAAEC,IAAID,EAAED,EAAE,gBAAgB,iCAAiC,MAAM,CAAC,MAAME,EAAE,KAAK,UAAU,CAAC,IAAID,CAAC,CAAC,EAAED,EAAE,aAAa,kCAAkCE,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,WAAW,WAAW,EAAE,KAAK,WAAW,UAAS,EAAS,GAAN,OAAUF,EAAE,MAAM,GAAS,GAAN,OAAUA,EAAE,OAAO,GAAG,MAAMK,EAAE,CAAC,eAAe,KAAK,WAAW,GAAGL,EAAE,IAAIA,EAAE,MAAMA,EAAE,MAAM,EAAE,KAAK,GAAG,EAAEA,EAAE,QAAQ,aAAaK,CAAC,CAAC,+BAA+B,CAAC,OAAO,KAAK,QAAQ,KAAK,KAAK,EAAE,KAAK,QAAS,CAAA,CAAC,CAAC,MAAMkL,WAAWpE,EAAE,CAAC,aAAa,CAAC,MAAM,GAAG,SAAS,EAAE,KAAK,MAAM,KAAK,OAAO,KAAK,WAAW,KAAK,MAAM,cAAe,EAAC,KAAK,WAAW,KAAK,QAAQ,WAAW,KAAK,QAAQ,KAAK,QAAQ,QAAQ,KAAK,MAAM,WAAW,KAAK,WAAW,KAAK,MAAM,WAAW,KAAK,OAAO,KAAK,MAAM,SAAQ,CAAE,CAAC,aAAa,CAAC,IAAInH,EAAE,KAAK,WAAW,KAAK,sBAAuB,EAAC,KAAK,oBAAoB,MAAMC,EAAE,KAAK,cAAa,EAAG,GAAGA,EAAE,CAAC,MAAMC,EAAE,SAASF,EAAE,CAAC,MAAaC,EAAED,KAAV,MAAuBC,IAAT,QAAYA,EAAE,mBAAmB,CAAC,IAAIA,EAAED,EAAEA,EAAE,iBAAiB,CAAC,OAAOA,CAAC,EAAEC,CAAC,EAAE,MAAM,KAAKD,CAAC,EAAE,QAASA,GAAG,CAACE,EAAE,YAAYF,CAAC,CAAC,CAAG,EAACA,EAAE,CAACC,CAAC,CAAC,CAAC,OAAOD,CAAC,CAAC,uBAAuB,CAAC,MAAMA,EAAE,KAAK,WAAW,cAAa,EAAGsL,GAAGH,GAAG,OAAO,KAAK,gBAAgBnL,EAAE,KAAK,MAAM,WAAW,CAAC,MAAM,KAAK,KAAK,CAAC,EAAE,SAAU,CAAA,CAAC,mBAAmB,CAAC,IAAIA,EAAE,IAAWA,EAAE,KAAK,cAAf,MAAqCA,IAAT,QAAYA,EAAE,UAAU,MAAM,CAAC,SAAS,eAAe,KAAK,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,GAAGC,EAAE,KAAK,OAAO,MAAM;AAAA,CAAI,EAAE,QAAQC,EAAE,EAAEA,EAAED,EAAE,OAAOC,IAAI,CAAC,MAAMC,EAAEF,EAAEC,CAAC,EAAE,GAAGA,EAAE,EAAE,CAAC,MAAMD,EAAE0B,EAAE,IAAI,EAAE,EAAE,KAAK1B,CAAC,CAAC,CAAC,GAAGE,EAAE,OAAO,CAAC,MAAMF,EAAE,SAAS,eAAe,KAAK,eAAeE,CAAC,CAAC,EAAE,EAAE,KAAKF,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,IAAID,EAAEC,EAAEC,EAAE,MAAM,EAAE,CAAA,EAAG,IAAID,KAAK,KAAK,WAAW,CAACC,EAAE,KAAK,WAAWD,CAAC,EAAE,MAAMI,EAAEoE,GAAGxE,CAAC,EAAE,GAAGI,EAAE,CAAC,GAAGA,EAAE,QAAQ,CAAC,IAAI,EAAE,MAAMJ,EAAE0B,EAAEtB,EAAE,OAAO,EAAE,GAAG,EAAE,YAAYJ,CAAC,EAAE,EAAEA,GAAGD,EAAE,EAAEC,CAAC,CAAC,GAAGI,EAAE,gBAAgB,EAAEA,EAAE,aAAa,EAAEH,GAAGG,EAAE,MAAM,IAAIJ,KAAKI,EAAE,MAAMH,EAAEG,EAAE,MAAMJ,CAAC,EAAE,EAAEA,CAAC,EAAEC,CAAC,CAAC,CAAC,GAAG,OAAO,KAAK,CAAC,EAAE,OAAO,IAAID,KAAKD,IAAIA,EAAE2B,EAAE,MAAM,GAAG,EAAEzB,EAAE,EAAED,CAAC,EAAED,EAAE,MAAMC,CAAC,EAAEC,EAAE,OAAOF,CAAC,CAAC,wBAAwB,CAAC,UAAUA,KAAK,KAAK,WAAW,CAAC,MAAMC,EAAE,KAAK,WAAWD,CAAC,EAAEE,EAAEuE,GAAGzE,CAAC,EAAE,GAAGE,GAAGA,EAAE,aAAa,CAAC,MAAM,EAAE,CAAE,EAAC,OAAO,EAAEF,CAAC,EAAEC,EAAE0B,EAAEzB,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,eAAeF,EAAE,CAAC,OAAO,KAAK,QAAQ,SAASA,EAAEA,EAAE,QAAQ,MAAMa,EAAC,GAAGb,EAAEA,EAAE,QAAQ,iBAAiB,MAAM,OAAOa,GAAE,KAAK,CAAC,EAAE,QAAQ,SAAS,GAAG,OAAOA,GAAE,GAAG,CAAC,EAAE,QAAQ,SAAS,IAAI,OAAOA,EAAC,CAAC,GAAG,KAAK,QAAQ,SAAS,KAAK,QAAQ,qBAAqBb,EAAEA,EAAE,QAAQ,MAAMa,EAAC,GAAGb,CAAC,CAAC,CAAC,MAAMwL,WAAWrE,EAAE,CAAC,aAAa,CAAC,MAAM,GAAG,SAAS,EAAE,KAAK,KAAK,KAAK,OAAO,KAAK,WAAW,KAAK,QAAQ,UAAU,CAAC,aAAa,CAAC,MAAMnH,EAAE,CAAE,EAACC,EAAE0G,GAAG,aAAa,KAAK,UAAW,CAAA,EAAEzG,EAAED,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAEA,EAAE,OAAO,IAAI,CAAC,MAAMI,EAAEJ,EAAE,CAAC,EAAEK,EAAE,GAAO,IAAJ,IAAQA,EAAE,QAAQ,IAAI,IAAIJ,IAAII,EAAE,OAAO,IAAImL,GAAG,CAAC,IAAInL,EAAE,kBAAkB,IAAI,MAAMC,EAAE,KAAK,4BAA4BgL,GAAGlL,EAAE,CAAC,WAAW,KAAK,WAAW,QAAQC,CAAC,CAAC,EAAEN,EAAE,KAAK,GAAG,MAAM,KAAKO,EAAE,SAAU,GAAE,EAAE,CAAC,EAAE,IAAI,EAAEF,CAAC,CAAC,OAAOL,CAAC,CAAC,WAAW,CAAC,OAAO,MAAM,KAAK,KAAK,KAAK,WAAW,EAAE,OAAQA,GAAG,CAACA,EAAE,aAAa,YAAY,CAAG,CAAA,CAAC,CAAC,MAAMyL,GAAGzL,GAAG,MAAM,KAAWA,GAAN,KAAQ,OAAOA,EAAE,SAAQ,CAAE,EAAE,CAAC,IAAI0L,EAAE,EAAE/I,GAAE,MAAMgJ,WAAWxE,EAAE,CAAC,aAAa,CAAC,MAAM,GAAG,SAAS,EAAE,KAAK,MAAM,KAAK,OAAO,KAAK,WAAW,KAAK,MAAM,eAAe,CAAC,aAAa,CAAC,MAAMnH,EAAE,CAAC,SAAS,cAAc,OAAO,CAAC,EAAE,GAAG,KAAK,MAAM,QAAS,EAACA,EAAE,KAAK2B,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI1B,EAAE,MAAMC,GAAUD,EAAEuE,GAAG,KAAK,MAAM,kBAAkB,KAA1C,MAAuDvE,IAAT,OAAW,OAAOA,EAAE,KAAK,EAAE,KAAK,4BAA4BuL,GAAG,KAAK,MAAM,KAAK,CAAC,WAAWtL,CAAC,CAAC,EAAEF,EAAE,KAAK,GAAG,MAAM,KAAK,EAAE,SAAQ,GAAI,CAAE,CAAA,CAAC,EAAE,KAAK,6BAA8B,GAAEA,EAAE,KAAK2B,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,WAAW,OAAO,OAAO3B,EAAE,CAAC,IAAIC,EAAE,KAAK,CAAC,QAAQC,CAAC,EAAEC,GAAE,QAAQ,KAAK,MAAM,MAAK,IAAKF,EAAE,CAAC,IAAI,KAAK,GAAG,MAAM,EAAE0B,EAAE,CAAC,QAAQzB,EAAE,WAAWD,CAAC,CAAC,EAAE,OAAOD,EAAE,QAASA,GAAG,EAAE,YAAYA,CAAC,CAAG,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,uBAAuBA,EAAE,CAAC,MAAMC,EAAE,GAAG,IAAIC,EAAE,MAAM,EAAE,KAAK,WAAWF,CAAC,EAAE,CAAC,QAAQ,EAAE,eAAeK,EAAE,CAAA,CAAE,EAAEmE,GAAG,CAAC,EAAE,GAAOxE,IAAJ,GAAO,KAAK,MAAM,MAAK,GAAI,OAAO,OAAOC,EAAE,CAAC,IAAI,KAAK,CAAC,EAAwB,IAAtB,oBAAwB,CAAC,MAAMD,EAAE,KAAK,MAAM,wBAAwBE,EAAE,GAAG,OAAOwL,GAAG,kBAAkB,GAAG,EAAE,OAAOA,GAAG,kBAAkB,IAAI,EAAE,OAAO1L,CAAC,CAAC,CAAC,OAAO,OAAO,QAAQ,KAAK,MAAM,cAAc,EAAE,QAASA,GAAG,CAAC,GAAG,CAACE,EAAEC,CAAC,EAAEH,EAAEK,EAAE,SAASH,CAAC,IAAID,EAAEC,CAAC,EAAEC,EAAE,GAAIwB,EAAE,CAAC,QAAQ,EAAE,UAAUzB,EAAE,WAAWD,CAAC,CAAC,CAAC,CAAC,8BAA8B,CAAC,MAAM,QAAQ,KAAK,KAAK,MAAM,SAAU,CAAA,CAAC,CAAC,CAAC,MAAM2L,WAAWzE,EAAE,CAAC,OAAO,OAAOnH,EAAE,CAAC,MAAMC,EAAE0B,EAAE,KAAK,EAAEzB,EAAE,IAAI,KAAKF,EAAE,CAAC,QAAQC,CAAC,CAAC,EAAE,OAAOC,EAAE,SAASA,EAAE,KAAI,EAAGD,CAAC,CAAC,aAAa,CAAC,MAAM,GAAG,SAAS,EAAE,KAAK,QAAQ,KAAK,QAAQ,QAAQ,KAAK,aAAa,IAAI4G,GAAG,KAAK,YAAY,KAAK,MAAM,CAAC,CAAC,YAAY7G,EAAE,CAACA,EAAE,UAAU,KAAK,QAAQ,IAAI,KAAK,SAAS,KAAK,OAAOA,EAAE,CAAC,QAAQ,CAAC,GAAG,KAAK,WAAW,CAAE,EAAC,KAAK,cAAc2B,EAAE,KAAK,EAAE,CAAC,KAAK,SAAS,QAAO,EAAG,CAAC,MAAM3B,EAAE2G,GAAG,aAAa,KAAK,SAAS,UAAW,EAAC,CAAC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK3G,CAAC,EAAE,QAAS,GAAG,CAAC,MAAMC,EAAE,KAAK,4BAA4B0L,GAAG,CAAC,EAAE,MAAM,KAAK1L,EAAE,SAAQ,CAAE,EAAE,IAAKD,GAAG,KAAK,cAAc,YAAYA,CAAC,CAAC,CAAE,CAAG,CAAA,CAAC,CAAC,UAAU,CAAC,OAAO6L,GAAG,KAAK,cAAc,KAAK,OAAO,CAAC,CAAC,MAAM,CAAC,MAAM7L,EAAE,KAAK,8BAA6B,EAAG,KAAK,KAAK,QAAQ,WAAW,KAAK,QAAQ,YAAY,KAAK,QAAQ,SAAS,EAAE,OAAO,KAAK,QAAQ,YAAYA,CAAC,EAAE,KAAK,QAAO,CAAE,CAAC,SAAS,CAAC,OAAO,KAAK,aAAa,MAAM8L,GAAG,KAAK,OAAO,CAAC,EAAE7G,GAAI,IAAI,KAAK,0BAAyB,EAAI,CAAC,+BAA+B,CAAC,MAAMjF,EAAE,SAAS,uBAAsB,EAAG,OAAO,MAAM,KAAK,KAAK,cAAc,UAAU,EAAE,QAASC,GAAG,CAACD,EAAE,YAAYC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAG,EAAC,MAAM,KAAK6L,GAAG9L,CAAC,CAAC,EAAE,QAAS,GAAG,CAAC,MAAMC,EAAE,KAAK,aAAa,OAAO,CAAC,EAAEA,GAAG,EAAE,WAAW,aAAaA,EAAE,CAAC,CAAC,CAAG,EAACD,CAAC,CAAC,CAAC,MAAM8L,GAAG9L,GAAGA,EAAE,iBAAiB,uBAAuB,EAAE6L,GAAG,CAAC7L,EAAE,IAAI+L,GAAG/L,EAAE,SAAS,IAAI+L,GAAG,EAAE,SAAS,EAAEA,GAAG/L,GAAGA,EAAE,QAAQ,UAAU,GAAG,EAA8rB,SAASgM,GAAGhM,EAAE,EAAEE,EAAE,CAAC,OAAO,EAAE+L,GAAG,CAAC,KAAKjM,EAAE,OAAO,eAAeA,EAAE,EAAE,CAAC,MAAME,EAAE,WAAW,GAAG,aAAa,GAAG,SAAS,EAAE,CAAC,EAAEF,EAAE,CAAC,EAAEE,EAAEF,CAAC,CAAC,SAASiM,GAAGjM,EAAE,CAAC,IAAI,EAAE,SAAS,EAAEC,EAAE,CAAC,GAAa,OAAO,GAAjB,UAA2B,IAAP,KAAS,OAAO,EAAE,IAAIC,EAAE,EAAE,OAAO,WAAW,EAAE,GAAYA,IAAT,OAAW,CAAC,IAAIC,EAAED,EAAE,KAAK,EAAED,CAAY,EAAE,GAAa,OAAOE,GAAjB,SAAmB,OAAOA,EAAE,MAAM,IAAI,UAAU,8CAA8C,CAAC,CAAC,OAAkBF,IAAX,SAAa,OAAO,QAAQ,CAAC,CAAC,EAAED,EAAE,QAAQ,EAAE,OAAgB,OAAO,GAAjB,SAAmB,EAAE,OAAO,CAAC,CAAC,CAAuS,SAASkM,GAAGlM,EAAE,EAAE,CAAC,OAAOmM,GAAGnM,EAAEoM,GAAGpM,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,SAASqM,GAAGrM,EAAE,EAAEE,EAAE,CAAC,OAAOoM,GAAGtM,EAAEoM,GAAGpM,EAAE,EAAE,KAAK,EAAEE,CAAC,EAAEA,CAAC,CAAC,SAASkM,GAAGpM,EAAE,EAAEE,EAAE,CAAC,GAAG,CAAC,EAAE,IAAIF,CAAC,EAAE,MAAM,IAAI,UAAU,gBAAgBE,EAAE,gCAAgC,EAAE,OAAO,EAAE,IAAIF,CAAC,CAAC,CAAC,SAASmM,GAAGnM,EAAE,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,KAAKA,CAAC,EAAE,EAAE,KAAK,CAAC,SAASsM,GAAGtM,EAAE,EAAEE,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,KAAKF,EAAEE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,SAAS,MAAM,IAAI,UAAU,0CAA0C,EAAE,EAAE,MAAMA,CAAC,CAAC,CAAC,SAASqM,GAAGvM,EAAE,EAAEE,EAAE,CAAC,GAAG,CAAC,EAAE,IAAIF,CAAC,EAAE,MAAM,IAAI,UAAU,gDAAgD,EAAE,OAAOE,CAAC,CAAC,SAASsM,GAAGxM,EAAE,EAAE,CAAC,GAAG,EAAE,IAAIA,CAAC,EAAE,MAAM,IAAI,UAAU,gEAAgE,CAAC,CAAC,SAASyM,GAAGzM,EAAE,EAAEE,EAAE,CAACsM,GAAGxM,EAAE,CAAC,EAAE,EAAE,IAAIA,EAAEE,CAAC,CAAC,CAAC,MAAMwM,WAAW/I,EAAE,CAAC,OAAO,aAAa3D,EAAEC,EAAE,CAACA,EAAE,KAAKD,EAAE,KAAK,MAAMA,CAAC,EAAEC,CAAC,CAAC,OAAO,SAASD,EAAE,CAAC,MAAMC,EAAE,KAAK,MAAMD,EAAE,IAAI,EAAE,GAAGC,EAAE,OAAOA,EAAE,SAASD,CAAC,CAAC,CAAC,YAAYA,EAAE,CAAC,IAAIC,EAAE,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,GAAG,MAAM,GAAG,SAAS,EAAE,KAAK,WAAWoG,GAAG,IAAIpG,CAAC,CAAC,CAAC,mBAAmBD,EAAE,CAAC,OAAO,IAAI,KAAK,YAAY,KAAK,SAAU,EAACA,CAAC,CAAC,CAAC,6BAA6BA,EAAE,CAAC,OAAO,KAAK,mBAAmB,KAAK,WAAW,MAAMA,CAAC,CAAC,CAAC,CAAC,qBAAqBA,EAAE,CAAC,OAAO,KAAK,mBAAmB,KAAK,WAAW,OAAOA,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,KAAK,mBAAmB,KAAK,UAAU,CAAC,CAAC,aAAaA,EAAE,CAAC,OAAO,KAAK,WAAW,IAAIA,CAAC,CAAC,CAAC,mBAAmB,CAAC,OAAO,KAAK,UAAU,CAAC,eAAe,CAAC,OAAO,KAAK,WAAW,SAAQ,CAAE,CAAC,aAAaA,EAAE,CAAC,OAAO,KAAK,WAAW,IAAIA,CAAC,CAAC,CAAC,0BAA0BA,EAAE,CAAC,OAAOA,GAAG,KAAK,SAAU,IAAGA,EAAE,UAAU,CAAC,yBAAyBA,EAAE,CAAC,OAAOA,IAAI,KAAK,aAAaA,EAAE,YAAY,KAAK,WAAW,UAAUA,EAAE,UAAU,EAAE,CAAC,cAAc,CAAC,MAAQ,EAAA,CAAC,UAAUA,EAAE,CAAC,OAAO,MAAM,UAAU,GAAG,SAAS,GAAG,KAAK,qBAAqBA,CAAC,GAAG,KAAK,0BAA0BA,CAAC,GAAG,KAAK,yBAAyBA,CAAC,CAAC,CAAC,SAAS,CAAC,OAAW,KAAK,SAAT,CAAe,CAAC,gBAAgB,CAAC,MAAQ,EAAA,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,KAAK,YAAY,KAAK,WAAW,KAAK,eAAe,CAAC,CAAC,uBAAuB,CAAC,MAAM,CAAC,KAAK,KAAK,YAAY,KAAK,WAAW,KAAK,WAAW,SAAS,CAAC,CAAC,cAAc,CAAC,OAAO,KAAK,aAAa,MAAM,CAAC,CAAC,iBAAiBA,EAAE,CAAC,OAAO,KAAK,aAAa,MAAM,IAAIA,EAAE,aAAa,MAAM,CAAC,CAAC,WAAW,CAAC,OAAO,KAAK,MAAM,CAAC,sBAAsBA,EAAE,CAAC,QAAQ,CAAC,CAACgM,GAAGU,GAAG,QAAQ,CAAE,CAAA,EAAE,MAAMC,WAAW3F,EAAE,CAAC,YAAYhH,EAAE,CAAC,MAAM,GAAG,SAAS,EAAE,KAAK,IAAIA,CAAC,CAAC,QAAQA,EAAE,CAAC,MAAMC,EAAE,IAAI,MAAMA,EAAE,OAAO,KAAKA,EAAE,MAAM,KAAK,MAAMA,EAAE,aAAaA,EAAE,OAAO,KAAK,OAAOA,EAAE,cAAcD,EAAE,GAAGC,CAAC,GAAGA,EAAE,QAAQ,IAAID,EAAE,EAAE,EAAEC,EAAE,IAAI,KAAK,GAAG,CAAC,CAAC,MAAM2M,WAAWjJ,EAAE,CAAC,OAAO,kBAAkB3D,EAAE,CAAC,MAAMC,EAAE,IAAI,KAAK,KAAK,kBAAkBD,CAAC,CAAC,EAAE,OAAOC,EAAE,QAAQD,CAAC,EAAEC,CAAC,CAAC,OAAO,kBAAkBD,EAAE,CAAC,OAAO,IAAIqG,GAAG,CAAC,SAASrG,EAAE,KAAK,SAASA,EAAE,KAAK,YAAYA,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,SAASA,EAAE,CAAC,OAAO,IAAI,KAAKA,CAAC,CAAC,CAAC,aAAa,CAAC,IAAIA,EAAE,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,GAAG,MAAMA,CAAC,EAAE,KAAK,YAAY,KAAK,YAAY,KAAK,IAAI,EAAE,KAAK,WAAWqG,GAAG,IAAIrG,CAAC,EAAE,KAAK,oBAAqB,CAAA,CAAC,aAAaA,EAAE,CAAC,OAAO,KAAK,WAAW,IAAIA,CAAC,CAAC,CAAC,aAAaA,EAAE,CAAC,OAAO,KAAK,WAAW,IAAIA,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,KAAK,WAAW,SAAQ,CAAE,CAAC,eAAe,CAAC,IAAIA,EAAE,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,CAAA,EAAG,MAAMC,EAAE,KAAK,WAAW,MAAMD,CAAC,EAAE,IAAIE,EAAE,EAAE,EAAEG,EAAE,GAAG,CAAC,KAAK,WAAW,UAAUJ,CAAC,EAAE,OAAO,KAAK,WAAWA,EAAE,KAAK,oBAAmB,GAAWC,EAAE,KAAK,mBAAf,MAA0CA,IAAT,SAAoB,EAAEA,EAAE,iCAAZ,MAAqD,IAAT,QAAY,EAAE,KAAKA,EAAE,IAAI,GAAU,EAAE,KAAK,YAAf,MAAmC,IAAT,SAAoBG,EAAE,EAAE,iCAAZ,MAAqDA,IAAT,OAAW,OAAOA,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,qBAAqB,CAAC,GAAG,KAAK,gBAAgB,OAAO,KAAK,YAAY,CAAC,WAAW,CAAC,OAAa,KAAK,MAAX,MAAiB,EAAE,KAAK,UAAU,KAAK,QAAS,EAAC,CAAC,eAAe,CAAC,OAAO,KAAK,WAAW,IAAI,aAAa,EAAE,KAAK,WAAW,IAAI,aAAa,EAAEuM,GAAG,mBAAmB,KAAK,KAAK,eAAgB,CAAA,CAAC,CAAC,SAAS,CAAC,OAAO,KAAK,WAAY,EAAC,UAAU,KAAK,cAAe,EAAC,UAAU,MAAM,CAAC,QAAQ,CAAC,OAAO,KAAK,WAAW,IAAI,KAAK,CAAC,CAAC,SAAS,CAAC,OAAO,KAAK,WAAW,IAAI,MAAM,CAAC,CAAC,aAAa,CAAC,OAAO,KAAK,WAAW,IAAI,UAAU,GAAG,EAAE,CAAC,aAAa,CAAC,OAAO,KAAK,WAAW,IAAI,UAAU,CAAC,CAAC,sBAAsB,CAAC,MAAM5M,EAAE,KAAK,WAAW,IAAI,UAAU,EAAE,OAAgB,OAAOA,GAAjB,SAAmBW,GAAE,UAAUX,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,IAAIA,EAAE,OAAeA,EAAE,KAAK,cAAc,MAAM,UAAU,KAA7C,MAA0DA,IAAT,OAAW,OAAOA,EAAE,CAAC,EAAE,YAAa,CAAA,CAAC,gBAAgB,CAAC,OAAO,KAAK,WAAW,IAAI,aAAa,CAAC,CAAC,YAAY,CAAC,OAAO,KAAK,WAAW,IAAI,SAAS,CAAC,CAAC,YAAY,CAAC,OAAO,KAAK,WAAW,IAAI,SAAS,CAAC,CAAC,UAAU,CAAC,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,CAAC,WAAW,CAAC,OAAO,KAAK,WAAW,IAAI,QAAQ,CAAC,CAAC,SAAS,CAAC,OAAO,KAAK,IAAI,CAAC,QAAQA,EAAE,CAAC,GAAG,KAAK,KAAKA,EAAE,KAAK,cAAa,EAAG,OAAO,KAAK,YAAa,CAAA,CAAC,aAAa,CAAC,KAAK,uBAAuB,KAAK,KAAK,IAAI,CAAC,mBAAmB,CAAC,OAAa,KAAK,gBAAX,KAA0B,KAAK,eAAe,CAAC,CAAC,kBAAkBA,EAAE,CAAC,IAAIC,EAAEC,EAAE,GAAG,KAAK,iBAAiBF,EAAE,OAAO,KAAK,eAAeA,GAAUC,EAAE,KAAK,0BAAf,MAAiDA,IAAT,SAAoBC,EAAED,EAAE,qCAAZ,MAAyDC,IAAT,OAAW,OAAOA,EAAE,KAAKD,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,KAAK,cAAa,CAAE,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,YAAY,GAAG,SAAS,EAAE,KAAK,WAAW,YAAa,EAAC,KAAK,cAAa,CAAE,EAAE,KAAK,GAAG,CAAC,CAAC,eAAe,CAAC,OAAO,KAAK,YAAY,KAAK,aAAa,CAAC,cAAcD,EAAE,CAAC,IAAIC,EAAEC,EAAE,EAAE,EAAE,GAAGF,IAAI,KAAK,cAAe,EAAC,OAAO,KAAK,WAAWA,GAAUC,EAAE,KAAK,mBAAf,MAA0CA,IAAT,SAAoBC,EAAED,EAAE,iCAAZ,MAAqDC,IAAT,QAAYA,EAAE,KAAKD,EAAE,IAAI,GAAU,EAAE,KAAK,YAAf,MAAmC,IAAT,SAAoB,EAAE,EAAE,iCAAZ,MAAqD,IAAT,OAAW,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,YAAY,CAAC,OAAO,KAAK,QAAQ,KAAK,SAAS,KAAK,WAAW,CAAC,CAAC,aAAa,CAAC,GAAG,KAAK,KAAK,OAAO,KAAK,cAAc,IAAI,gBAAgB,KAAK,IAAI,EAAE,KAAK,QAAQ,KAAK,aAAa,CAAC,CAAC,sBAAsB,CAAC,KAAK,gBAAgB,IAAI,gBAAgB,KAAK,aAAa,EAAE,KAAK,cAAc,KAAK,CAAC,QAAQD,EAAEC,EAAE,CAAC,GAAGD,GAAGA,IAAI,KAAK,gBAAiB,YAAK,cAAcA,EAAS,IAAI2M,GAAG3M,CAAC,EAAE,KAAME,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,EAAEA,EAAE,OAAO,KAAK,YAAY,KAAK,UAAS,GAAI,KAAK,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,KAAK,cAAc,KAAK,KAAK,cAAcF,CAAC,EAAQC,GAAN,KAAQ,OAAOA,GAAG,CAAC,EAAG,MAAO,KAAK,KAAK,cAAc,KAAWA,GAAN,KAAQ,OAAOA,EAAG,GAAI,CAAC,CAAC+L,GAAGY,GAAG,qBAAqB,kCAAkC,EAAE,MAAMC,WAAWH,EAAE,CAAC,OAAO,SAAS1M,EAAE,CAAC,OAAO,IAAI,KAAK4M,GAAG,SAAS5M,EAAE,UAAU,EAAEA,EAAE,UAAU,CAAC,CAAC,YAAYA,EAAE,CAAC,MAAM,GAAG,SAAS,EAAE,KAAK,WAAWA,EAAE,KAAK,OAAO,EAAE,KAAK,wCAAwC,MAAM,EAAE,KAAK,WAAW,cAAc,KAAK,2BAA0B,CAAE,CAAC,wCAAwCA,EAAE,CAAC,KAAK,aAAaA,CAAC,IAAI,KAAK,WAAW,aAAaA,CAAC,GAAG,KAAK,WAAW,cAAc,KAAK,WAAW,MAAM,CAACA,CAAC,CAAC,CAAC,EAAE,KAAK,WAAW,KAAK,WAAW,OAAOA,CAAC,EAAE,CAAC,4BAA4B,CAAC,MAAMA,EAAE,KAAK,WAAW,MAAM6M,GAAG,mBAAmB,EAAE7M,EAAE,UAAU,KAAK,UAAU,IAAI,KAAK,WAAWA,EAAE,CAAC,UAAU,CAAC,OAAO,KAAK,UAAU,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,WAAW,WAAW,CAAC,YAAY,CAAC,OAAO,KAAK,WAAW,IAAI,SAAS,GAAG,EAAE,CAAC,UAAUA,EAAE,CAAC,IAAIC,EAAE,OAAO,MAAM,UAAUD,CAAC,GAAG,KAAK,WAAW,MAAYA,GAAN,OAAiBC,EAAED,EAAE,cAAZ,MAAkCC,IAAT,OAAW,OAAOA,EAAE,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,QAAQ,CAAC,MAAMD,EAAE,MAAM,OAAO,GAAG,SAAS,EAAE,OAAOA,EAAE,WAAW,KAAK,WAAWA,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,YAAY,GAAG,SAAS,EAAE,KAAK,WAAW,YAAW,CAAE,EAAE,KAAK,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,KAAK,UAAU,KAAK,UAAU,CAAC,CAAC,CAACgM,GAAGa,GAAG,sBAAsB,CAAC,UAAU,cAAc,CAAC,EAAEH,GAAG,aAAa,aAAaG,EAAE,EAAE,MAAMC,WAAWJ,EAAE,CAAC,OAAO,SAAS1M,EAAE,CAAC,OAAO,IAAI,KAAKA,EAAE,OAAOA,EAAE,UAAU,CAAC,CAAC,YAAYA,EAAE,CAAC,MAAM,GAAG,SAAS,EAAE,KAAK,QAAQ,GAAG,EAAE,QAAQ,SAAS;AAAA,CAAI,GAAGA,CAAC,EAAE,KAAK,OAAO,KAAK,OAAO,MAAM,CAAC,UAAU,CAAC,OAAO,KAAK,MAAM,CAAC,UAAU,CAAC,OAAO,KAAK,OAAO,SAAQ,CAAE,CAAC,cAAc,CAAC,OAAa,KAAK,aAAZ;AAAA,GAA6B,KAAK,aAAa,YAAY,IAAnC,EAAoC,CAAC,QAAQ,CAAC,MAAMA,EAAE,MAAM,OAAO,GAAG,SAAS,EAAE,OAAOA,EAAE,OAAO,KAAK,OAAOA,CAAC,CAAC,sBAAsBA,EAAE,CAAC,OAAOA,GAAG,KAAK,qBAAqBA,CAAC,GAAG,KAAK,yBAAyBA,CAAC,CAAC,CAAC,gBAAgBA,EAAE,CAAC,OAAO,IAAI,KAAK,YAAY,KAAK,SAAQ,EAAGA,EAAE,SAAU,EAAC,KAAK,UAAU,CAAC,CAAC,cAAcA,EAAE,CAAC,IAAIC,EAAEC,EAAE,OAAWF,IAAJ,GAAOC,EAAE,KAAKC,EAAE,MAAMF,IAAI,KAAK,QAAQC,EAAE,KAAKC,EAAE,OAAOD,EAAE,IAAI,KAAK,YAAY,KAAK,OAAO,MAAM,EAAED,CAAC,EAAE,KAAK,UAAU,EAAEE,EAAE,IAAI,KAAK,YAAY,KAAK,OAAO,MAAMF,CAAC,EAAE,KAAK,UAAU,GAAG,CAACC,EAAEC,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,OAAOF,CAAC,EAAE,KAAK,OAAOA,EAAE,OAAO,KAAKA,EAAEA,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,KAAK,UAAUA,EAAE,SAAQ,CAAE,CAAC,CAAC,CAAC0M,GAAG,aAAa,SAASI,EAAE,EAAE,MAAMC,WAAWpJ,EAAE,CAAC,OAAO,IAAI3D,EAAE,CAAC,OAAOA,aAAa,KAAKA,EAAE,IAAI,KAAKA,CAAC,CAAC,CAAC,aAAa,CAAC,IAAIA,EAAE,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,CAAA,EAAG,MAAM,GAAG,SAAS,EAAE,KAAK,QAAQA,EAAE,MAAM,CAAC,EAAE,KAAK,OAAO,KAAK,QAAQ,MAAM,CAAC,QAAQA,EAAE,CAAC,OAAO,KAAK,QAAQ,QAAQA,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQA,EAAE,UAAU,OAAOC,EAAE,IAAI,MAAMD,CAAC,EAAEE,EAAE,EAAEA,EAAEF,EAAEE,IAAID,EAAEC,CAAC,EAAE,UAAUA,CAAC,EAAE,OAAO,IAAI,KAAK,YAAY4D,GAAG,KAAK,QAAQ,GAAG7D,CAAC,CAAC,CAAC,CAAC,WAAWD,EAAE,CAAC,OAAO,KAAK,QAAQ,IAAK,CAACC,EAAEC,IAAIF,EAAEC,EAAEC,CAAC,CAAG,CAAA,CAAC,oBAAoBF,EAAEC,EAAE,CAAC,OAAO,KAAK,OAAOA,EAAE,EAAED,CAAC,CAAC,CAAC,4BAA4BA,EAAEC,EAAE,CAAC,OAAO,KAAK,OAAOA,EAAE,EAAE,GAAGD,EAAE,OAAO,CAAC,CAAC,+BAA+BA,EAAEC,EAAE,CAAC,KAAK,CAACC,EAAE,CAAC,EAAE,KAAK,sBAAsBD,CAAC,EAAE,OAAO,IAAI,KAAK,YAAYC,CAAC,EAAE,4BAA4BF,EAAE,CAAC,CAAC,CAAC,kBAAkBA,EAAEC,EAAE,CAAC,OAAO,KAAK,qBAAqBA,EAAE,KAAK,QAAQD,CAAC,CAAC,EAAEA,CAAC,CAAC,CAAC,qBAAqBA,EAAEC,EAAE,CAAC,OAAO,KAAK,OAAOA,EAAE,EAAED,CAAC,CAAC,CAAC,oBAAoBA,EAAE,CAAC,OAAO,KAAK,OAAOA,EAAE,CAAC,CAAC,CAAC,iBAAiBA,EAAE,CAAC,OAAO,KAAK,QAAQA,CAAC,CAAC,CAAC,yBAAyBA,EAAE,CAAC,KAAK,CAACC,EAAEC,EAAE,CAAC,EAAE,KAAK,oBAAoBF,CAAC,EAAE,OAAO,IAAI,KAAK,YAAYC,EAAE,MAAMC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,qBAAqBF,EAAE,CAAC,MAAMC,EAAE,KAAK,QAAQ,OAAQA,GAAGD,EAAEC,CAAC,GAAI,OAAO,IAAI,KAAK,YAAYA,CAAC,CAAC,CAAC,qBAAqBD,EAAE,CAAC,KAAK,CAACC,EAAEC,EAAE,CAAC,EAAE,KAAK,oBAAoBF,CAAC,EAAE,OAAO,IAAI,KAAK,YAAYC,CAAC,EAAE,OAAOC,EAAE,EAAEA,EAAE,CAAC,CAAC,CAAC,wBAAwBF,EAAEC,EAAE,CAAC,KAAK,CAACC,EAAE,EAAE,CAAC,EAAE,KAAK,oBAAoBF,CAAC,EAAEK,EAAEH,EAAE,IAAK,CAACF,EAAEE,IAAI,GAAGA,GAAGA,GAAG,EAAED,EAAED,CAAC,EAAEA,CAAG,EAAC,OAAO,IAAI,KAAK,YAAYK,CAAC,CAAC,CAAC,oBAAoBL,EAAE,CAAC,IAAIC,EAAE,CAACC,EAAE,EAAE,CAAC,EAAE,KAAK,sBAAsB8M,GAAGhN,CAAC,CAAC,EAAE,MAAM,CAACE,EAAED,CAAC,EAAE,IAAI,KAAK,YAAYC,CAAC,EAAE,sBAAsB+M,GAAGjN,CAAC,EAAE,CAAC,EAAE,CAACE,EAAE,EAAED,EAAE,CAAC,CAAC,CAAC,oBAAoBD,EAAE,CAAC,KAAK,CAAC,MAAMC,CAAC,EAAE,KAAK,6BAA6BD,CAAC,EAAE,OAAO,KAAK,QAAQC,CAAC,CAAC,CAAC,sBAAsBD,EAAE,CAAC,IAAIC,EAAEC,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,6BAA6BF,CAAC,EAAEK,EAAE,KAAK,QAAQ,MAAM,CAAC,EAAE,GAAS,GAAN,KAAQ,GAAO,IAAJ,EAAMJ,EAAE,EAAEC,EAAE,MAAM,CAAC,MAAMF,EAAE,KAAK,iBAAiB,CAAC,EAAE,CAACM,EAAEC,CAAC,EAAEP,EAAE,cAAc,CAAC,EAAEK,EAAE,OAAO,EAAE,EAAEC,EAAEC,CAAC,EAAEN,EAAE,EAAE,EAAEC,EAAEI,EAAE,UAAS,EAAG,CAAC,MAAML,EAAEI,EAAE,OAAOH,EAAE,EAAE,MAAM,CAACG,EAAEJ,EAAEC,CAAC,CAAC,CAAC,aAAa,CAAC,MAAMF,EAAE,CAAE,EAAC,IAAIC,EAAE,KAAK,QAAQ,CAAC,EAAE,OAAO,KAAK,QAAQ,MAAM,CAAC,EAAE,QAASC,GAAG,CAAC,IAAI,EAAE,GAAU,GAAG,EAAED,GAAG,yBAAhB,MAAiD,IAAT,QAAY,EAAE,KAAK,EAAEC,CAAC,EAAED,EAAEA,EAAE,gBAAgBC,CAAC,GAAGF,EAAE,KAAKC,CAAC,EAAEA,EAAEC,EAAE,CAAC,EAAGD,GAAGD,EAAE,KAAKC,CAAC,EAAE,IAAI,KAAK,YAAYD,CAAC,CAAC,CAAC,4BAA4BA,EAAEC,EAAE,CAAC,MAAMC,EAAE,KAAK,QAAQ,MAAM,CAAC,EAAE,MAAMF,EAAEC,EAAE,CAAC,EAAE,EAAE,IAAI,KAAK,YAAYC,CAAC,EAAE,cAAc,UAAU,OAAO,KAAK,OAAOF,EAAEE,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC,6BAA6BF,EAAE,CAAC,IAAIC,EAAEC,EAAE,EAAE,IAAID,EAAE,EAAEA,EAAE,KAAK,QAAQ,OAAOA,IAAI,CAAC,MAAM,EAAEC,EAAE,KAAK,QAAQD,CAAC,EAAE,UAAW,EAAC,GAAGC,GAAGF,GAAGA,EAAE,EAAE,MAAM,CAAC,MAAMC,EAAE,OAAOD,EAAEE,CAAC,EAAEA,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,OAAO,IAAI,CAAC,CAAC,6BAA6BF,EAAEC,EAAE,CAAC,IAAIC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,QAAQ,OAAO,IAAI,CAAC,MAAM,EAAE,KAAK,QAAQ,CAAC,EAAE,GAAG,EAAEF,EAAEE,GAAG,EAAE,UAAW,UAAS,IAAIF,EAAE,CAACE,GAAGD,EAAE,KAAK,CAAC,CAAC,OAAOC,CAAC,CAAC,gBAAgB,CAAC,OAAa,KAAK,aAAX,OAAyB,KAAK,YAAY,EAAE,KAAK,QAAQ,QAASF,GAAG,KAAK,aAAaA,EAAE,WAAa,GAAE,KAAK,WAAW,CAAC,UAAU,CAAC,OAAO,KAAK,QAAQ,KAAK,EAAE,CAAC,CAAC,SAAS,CAAC,OAAO,KAAK,QAAQ,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,KAAK,QAAO,CAAE,CAAC,UAAUA,EAAE,CAAC,OAAO,MAAM,UAAU,GAAG,SAAS,GAAGkN,GAAG,KAAK,QAAclN,GAAN,KAAQ,OAAOA,EAAE,OAAO,CAAC,CAAC,uBAAuB,CAAC,MAAM,CAAC,QAAQ,IAAI,OAAO,KAAK,QAAQ,IAAKA,GAAGA,EAAE,SAAW,EAAC,KAAK,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,MAAMkN,GAAG,SAASlN,EAAE,CAAC,IAAI,EAAE,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,CAAE,EAAC,GAAGA,EAAE,SAAS,EAAE,OAAO,MAAM,GAAG,IAAIE,EAAE,GAAG,QAAQC,EAAE,EAAEA,EAAEH,EAAE,OAAOG,IAAI,CAAC,MAAMC,EAAEJ,EAAEG,CAAC,EAAED,GAAG,CAACE,EAAE,UAAU,EAAED,CAAC,CAAC,IAAID,EAAE,GAAG,CAAC,OAAOA,CAAC,EAAE8M,GAAGhN,GAAGA,EAAE,CAAC,EAAEiN,GAAGjN,GAAGA,EAAE,CAAC,EAAE,MAAMmN,WAAWxJ,EAAE,CAAC,OAAO,gCAAgC3D,EAAEC,EAAE,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI4M,GAAG7M,EAAEC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,4BAA4BD,EAAEC,EAAE,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI6M,GAAG9M,EAAEC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,SAASD,EAAE,CAAC,OAAO,IAAI,KAAK,MAAM,KAAKA,CAAC,EAAE,IAAK,GAAG0M,GAAG,SAAS,CAAC,CAAG,CAAA,CAAC,CAAC,aAAa,CAAC,IAAI1M,EAAE,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,GAAG,MAAM,GAAG,SAAS,EAAE,MAAMC,EAAED,EAAE,OAAQA,GAAG,CAACA,EAAE,QAAS,CAAA,EAAG,KAAK,UAAU,IAAI+M,GAAG9M,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,KAAK,kBAAkB,KAAK,SAAS,CAAC,CAAC,kBAAkBD,EAAE,CAAC,OAAO,IAAI,KAAK,YAAYA,EAAE,cAAc,SAAS,CAAC,CAAC,mBAAmBA,EAAE,CAAC,MAAMC,EAAE,KAAK,UAAW,EAAC,IAAKA,GAAGD,EAAE,KAAKC,CAAC,GAAGA,CAAG,EAAC,OAAO,IAAI,KAAK,YAAYA,CAAC,CAAC,CAAC,WAAWD,EAAE,CAAC,OAAO,KAAK,qBAAqBA,EAAE,KAAK,UAAW,CAAA,CAAC,CAAC,qBAAqBA,EAAEC,EAAE,CAAC,OAAO,KAAK,kBAAkB,KAAK,UAAU,+BAA+BD,EAAE,UAAUC,CAAC,CAAC,CAAC,CAAC,kBAAkBD,EAAE,CAAC,OAAO,KAAK,kBAAkB,KAAK,UAAU,qBAAqBA,CAAC,CAAC,CAAC,CAAC,mBAAmBA,EAAEC,EAAE,CAAC,OAAO,KAAK,kBAAkBA,CAAC,EAAE,qBAAqBD,EAAEC,EAAE,CAAC,CAAC,CAAC,CAAC,4BAA4BD,EAAEC,EAAE,CAAC,GAAGD,EAAE,CAAC,GAAGC,GAAGA,GAAGD,EAAE,CAAC,EAAE,OAAO,MAAME,EAAE,KAAK,eAAeF,CAAC,EAAE,EAAEE,EAAE,YAAY,OAAOF,EAAE,CAAC,EAAEC,IAAIA,GAAG,GAAG,KAAK,kBAAkBD,CAAC,EAAE,qBAAqBE,EAAED,CAAC,CAAC,CAAC,oBAAoBD,EAAEC,EAAEC,EAAE,CAAC,MAAM,EAAE,CAAE,EAAC,OAAO,EAAEF,CAAC,EAAEC,EAAE,KAAK,qBAAqB,EAAEC,CAAC,CAAC,CAAC,qBAAqBF,EAAEC,EAAE,CAAC,OAAO,KAAK,kBAAkB,KAAK,UAAU,wBAAwBA,EAAGA,GAAGA,EAAE,6BAA6BD,CAAC,CAAC,CAAE,CAAC,CAAC,uBAAuBA,EAAEC,EAAE,CAAC,OAAO,KAAK,kBAAkB,KAAK,UAAU,wBAAwBA,EAAGA,GAAGA,EAAE,qBAAqBD,CAAC,CAAG,CAAA,CAAC,CAAC,qBAAqBA,EAAEC,EAAE,CAAC,OAAO,KAAK,kBAAkB,KAAK,UAAU,wBAAwBA,EAAGA,GAAGA,EAAE,mBAAmBD,CAAC,EAAG,CAAC,CAAC,wBAAwBA,EAAE,CAAC,IAAIC,EAAE,QAAeA,EAAE,KAAK,UAAU,oBAAoBD,CAAC,KAA9C,MAA2DC,IAAT,OAAW,OAAOA,EAAE,cAAa,IAAK,CAAE,CAAA,CAAC,qBAAqB,CAAC,MAAMD,EAAE,MAAM,KAAK,KAAK,UAAU,QAAO,CAAE,EAAE,IAAK,GAAG,EAAE,eAAiB,EAAC,OAAOqG,GAAG,8BAA8BrG,CAAC,EAAE,SAAQ,CAAE,CAAC,2BAA2BA,EAAE,CAAC,OAAO,KAAK,eAAeA,CAAC,EAAE,oBAAmB,GAAI,CAAA,CAAE,CAAC,qCAAqCA,EAAEC,EAAE,CAAC,IAAIC,EAAE,EAAEA,EAAED,EAAE,MAAM,EAAE,KAAK,UAAW,EAAC,KAAK,EAAE,GAAG,KAAK,2BAA2B,CAAC,EAAE,EAAEC,CAAC,CAAC,EAAEF,CAAC,GAAG,IAAI,KAAKE,EAAE,GAAG,KAAK,2BAA2B,CAACD,EAAEC,EAAE,CAAC,CAAC,EAAEF,CAAC,GAAGE,IAAI,MAAM,CAAC,EAAEA,CAAC,CAAC,CAAC,eAAeF,EAAE,CAAC,OAAO,KAAK,kBAAkB,KAAK,UAAU,yBAAyBA,CAAC,CAAC,CAAC,CAAC,iBAAiBA,EAAE,CAAC,OAAO,KAAK,UAAU,yBAAyBA,CAAC,EAAE,UAAU,CAAC,oBAAoBA,EAAE,CAAC,OAAO,KAAK,iBAAiB,CAACA,EAAEA,EAAE,CAAC,CAAC,CAAC,CAAC,iBAAiBA,EAAE,CAAC,OAAO,KAAK,iBAAiB,CAAC,EAAEA,EAAE,MAAM,CAAC,IAAIA,CAAC,CAAC,eAAeA,EAAE,CAAC,MAAMC,EAAE,KAAK,UAAS,EAAG,OAAO,KAAK,iBAAiB,CAACA,EAAED,EAAE,OAAOC,CAAC,CAAC,IAAID,CAAC,CAAC,qBAAqB,CAAC,OAAO,KAAK,UAAU,QAAO,EAAG,OAAQA,GAAG,CAAC,CAACA,EAAE,WAAY,CAAC,gBAAgB,CAAC,OAAO,KAAK,sBAAsB,IAAKA,GAAGA,EAAE,UAAY,CAAA,CAAC,6BAA6BA,EAAE,CAAC,IAAIC,EAAE,EAAE,UAAU,KAAK,KAAK,UAAU,QAAS,EAAC,CAAC,IAAIC,EAAE,KAAYA,EAAE,EAAE,cAAZ,MAAkCA,IAAT,OAAW,OAAOA,EAAE,MAAMF,EAAE,MAAM,CAAC,WAAW,EAAE,WAAW,SAASC,CAAC,EAAEA,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,KAAK,SAAS,IAAI,CAAC,CAAC,kBAAkBD,EAAE,CAAC,KAAK,CAAC,WAAWC,CAAC,EAAE,KAAK,6BAA6BD,CAAC,EAAE,OAAOC,CAAC,CAAC,qBAAqBD,EAAE,CAAC,MAAMC,EAAE,KAAK,6BAA6BD,EAAE,EAAE,EAAEE,EAAED,EAAE,SAAS,GAAGD,EAAEC,EAAE,WAAW,MAAM,CAACC,EAAEA,EAAE,CAAC,CAAC,CAAC,8BAA8BF,EAAEC,EAAE,CAAC,MAAMC,EAAE,KAAK,qBAAqBD,CAAC,EAAE,OAAOC,EAAE,KAAK,qBAAqBF,EAAEE,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,KAAK,UAAU,eAAgB,CAAA,CAAC,SAAS,CAAC,OAAW,KAAK,cAAT,CAAoB,CAAC,UAAUF,EAAE,CAAC,IAAIC,EAAE,OAAO,MAAM,UAAUD,CAAC,IAAUA,GAAN,OAAiBC,EAAED,EAAE,aAAZ,MAAiCC,IAAT,OAAW,OAAOA,EAAE,UAAU,KAAK,SAAS,EAAE,CAAC,cAAc,CAAC,OAAW,KAAK,UAAS,IAAlB,GAAsB,KAAK,UAAU,iBAAiB,CAAC,EAAE,aAAc,CAAA,CAAC,UAAUD,EAAE,CAAC,OAAO,KAAK,UAAU,WAAWA,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,KAAK,UAAU,QAAS,CAAA,CAAC,mBAAmBA,EAAE,CAAC,OAAO,KAAK,UAAU,oBAAoBA,CAAC,CAAC,CAAC,uBAAuB,CAAC,MAAM,CAAC,UAAU,KAAK,UAAU,QAAO,CAAE,CAAC,CAAC,oBAAoB,CAAC,MAAMA,EAAE,KAAK,UAAU,qBAAsB,GAAG,EAAE,eAAc,GAAK,OAAO,KAAK,kBAAkBA,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,KAAK,UAAU,SAAU,CAAA,CAAC,QAAQ,CAAC,OAAO,KAAK,UAAU,OAAM,CAAE,CAAC,WAAW,CAAC,OAAO,KAAK,UAAU,KAAK,UAAU,QAAS,EAAC,IAAKA,GAAG,KAAK,MAAMA,EAAE,UAAW,CAAA,EAAG,CAAC,CAAC,cAAc,CAAC,OAAOgE,GAAG,KAAK,SAAU,CAAA,CAAC,CAAC,OAAO,CAAC,OAAc,KAAK,aAAY,IAAzB,KAA2B,CAAC,CAAC,MAAMoJ,WAAWzJ,EAAE,CAAC,OAAO,SAAS3D,EAAE,CAAC,OAAO,IAAI,KAAKmN,GAAG,SAASnN,EAAE,IAAI,EAAEA,EAAE,WAAWA,EAAE,cAAc,CAAC,CAAC,YAAYA,EAAEC,EAAEC,EAAE,CAAC,MAAM,GAAG,SAAS,EAAE,KAAK,KAAKmN,GAAGrN,GAAG,IAAImN,EAAE,EAAE,KAAK,WAAWlN,GAAG,GAAG,KAAK,eAAeC,GAAG,CAAA,CAAE,CAAC,SAAS,CAAC,OAAO,KAAK,KAAK,aAAc,CAAA,CAAC,UAAUF,EAAE,CAAC,MAAM,CAAC,CAAC,MAAM,UAAUA,CAAC,GAAG,KAAK,KAAK,UAAgBA,GAAN,KAAQ,OAAOA,EAAE,IAAI,GAAG6D,GAAG,KAAK,WAAiB7D,GAAN,KAAQ,OAAOA,EAAE,UAAU,GAAGmF,GAAG,KAAK,eAAqBnF,GAAN,KAAQ,OAAOA,EAAE,cAAc,CAAC,CAAC,aAAaA,EAAE,CAAC,OAAO,IAAIoN,GAAGpN,EAAE,KAAK,WAAW,KAAK,cAAc,CAAC,CAAC,iBAAiB,CAAC,OAAO,KAAK,aAAa,IAAI,CAAC,CAAC,mBAAmBA,EAAE,CAAC,OAAO,IAAIoN,GAAG,KAAK,KAAKpN,EAAE,KAAK,cAAc,CAAC,CAAC,uBAAuB,CAAC,OAAO,KAAK,mBAAmB,IAAI,CAAC,CAAC,mBAAmBA,EAAE,CAAC,MAAMC,EAAED,EAAE,KAAK,KAAK,IAAI,EAAE,OAAOC,EAAE,KAAK,aAAaA,CAAC,EAAE,KAAK,aAAa,KAAK,KAAK,mBAAmBD,CAAC,CAAC,CAAC,CAAC,aAAaA,EAAE,CAAC,MAAMC,EAAE,KAAK,WAAW,OAAOqN,GAAGtN,CAAC,CAAC,EAAE,OAAO,KAAK,mBAAmBC,CAAC,CAAC,CAAC,iBAAiBD,EAAEC,EAAE,CAAC,MAAMC,EAAE,OAAO,OAAO,GAAG,KAAK,eAAe,CAAC,CAACF,CAAC,EAAEC,CAAC,CAAC,EAAE,OAAO,IAAImN,GAAG,KAAK,KAAK,KAAK,WAAWlN,CAAC,CAAC,CAAC,gBAAgBF,EAAE,CAAC,KAAK,CAAC,cAAcC,CAAC,EAAEuE,GAAGxE,CAAC,EAAEE,EAAEqN,GAAGA,GAAG,KAAK,WAAWvN,CAAC,EAAEC,CAAC,EAAE,OAAO,KAAK,mBAAmBC,CAAC,CAAC,CAAC,qBAAqB,CAAC,OAAO,KAAK,gBAAgB,KAAK,iBAAkB,CAAA,CAAC,CAAC,kBAAkB,CAAC,OAAOsN,GAAG,KAAK,UAAU,CAAC,CAAC,eAAe,CAAC,OAAO,KAAK,WAAW,MAAM,CAAC,CAAC,CAAC,mBAAmB,CAAC,OAAO,KAAK,WAAW,MAAM,CAAC,oBAAoBxN,EAAE,CAAC,OAAO,KAAK,WAAWA,EAAE,CAAC,CAAC,CAAC,aAAaA,EAAE,CAAC,OAAO,KAAK,WAAW,SAASA,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,KAAK,kBAAiB,EAAG,CAAC,CAAC,0BAA0B,CAAC,OAAOwN,GAAG,KAAK,sBAAqB,CAAE,CAAC,CAAC,uBAAuB,CAAC,OAAO,KAAK,WAAW,OAAQxN,GAAGwE,GAAGxE,CAAC,EAAE,QAAU,CAAA,CAAC,iBAAiB,CAAC,OAAO,KAAK,sBAAqB,EAAG,MAAM,CAAC,sBAAsB,CAAC,MAAMA,EAAE,KAAK,yBAAwB,EAAG,OAAOA,EAAE,KAAK,gBAAgBA,CAAC,EAAE,IAAI,CAAC,sBAAsB,CAAC,MAAMA,EAAE,KAAK,yBAA0B,EAAC,GAAGA,EAAE,CAAC,MAAMC,EAAE,KAAK,WAAW,YAAYD,CAAC,EAAEE,EAAE4D,GAAG,KAAK,WAAW7D,EAAE,EAAE,EAAE,GAAGqN,GAAGtN,CAAC,CAAC,EAAE,OAAO,KAAK,mBAAmBE,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,uBAAuB,CAAC,OAAO,KAAK,WAAW,OAAQF,GAAGwE,GAAGxE,CAAC,EAAE,aAAa,CAAE,CAAC,YAAY,CAAC,IAAIA,EAAE,OAAeA,EAAEwE,GAAG,KAAK,iBAAkB,CAAA,KAApC,MAAiDxE,IAAT,OAAW,OAAOA,EAAE,aAAa,CAAC,iBAAiB,CAAC,IAAIA,EAAE,OAAeA,EAAEwE,GAAG,KAAK,iBAAkB,CAAA,KAApC,MAAiDxE,IAAT,OAAW,OAAOA,EAAE,QAAQ,CAAC,gBAAgB,CAAC,IAAIA,EAAE,OAAeA,EAAEwE,GAAG,KAAK,kBAAkB,KAApC,MAAiDxE,IAAT,OAAW,OAAOA,EAAE,aAAa,CAAC,qCAAqCA,EAAEC,EAAE,CAAC,MAAMC,EAAE,KAAK,SAAQ,EAAG,IAAI,EAAE,OAAOF,EAAG,CAAA,IAAI,UAAU,EAAEE,EAAE,QAAQ;AAAA,EAAKD,CAAC,EAAE,MAAM,IAAI,WAAW,EAAEC,EAAE,MAAM,EAAED,CAAC,EAAE,YAAY;AAAA,CAAI,CAAC,CAAC,GAAQ,IAAL,GAAO,OAAO,CAAC,CAAC,uBAAuB,CAAC,MAAM,CAAC,KAAK,KAAK,KAAK,UAAU,WAAW,KAAK,UAAU,CAAC,CAAC,UAAU,CAAC,OAAO,KAAK,KAAK,SAAQ,CAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,KAAK,KAAK,WAAW,KAAK,WAAW,eAAe,KAAK,cAAc,CAAC,CAAC,cAAc,CAAC,OAAO,KAAK,KAAK,aAAY,CAAE,CAAC,OAAO,CAAC,OAAO,KAAK,KAAK,OAAO,CAAC,WAAW,CAAC,OAAO,KAAK,KAAK,UAAS,CAAE,CAAC,sBAAsBD,EAAE,CAAC,MAAM,CAAC,KAAK,cAAe,GAAE,CAACA,EAAE,cAAe,GAAE,KAAK,aAAc,IAAGA,EAAE,aAAc,CAAA,CAAC,gBAAgBA,EAAE,CAAC,MAAMC,EAAEkN,GAAG,4BAA4B;AAAA,CAAI,EAAEjN,EAAE,KAAK,yBAA0B,EAAC,WAAWD,CAAC,EAAE,OAAO,KAAK,aAAaC,EAAE,WAAWF,EAAE,IAAI,CAAC,CAAC,CAAC,cAAcA,EAAE,CAAC,IAAIC,EAAEC,EAAE,OAAWF,IAAJ,GAAOC,EAAE,KAAKC,EAAE,MAAMF,IAAI,KAAK,UAAW,GAAEC,EAAE,KAAKC,EAAE,OAAOD,EAAE,KAAK,aAAa,KAAK,KAAK,eAAe,CAAC,EAAED,CAAC,CAAC,CAAC,EAAEE,EAAE,KAAK,aAAa,KAAK,KAAK,eAAe,CAACF,EAAE,KAAK,UAAW,CAAA,CAAC,CAAC,GAAG,CAACC,EAAEC,CAAC,CAAC,CAAC,uBAAuB,CAAC,OAAO,KAAK,KAAK,YAAY,CAAC,CAAC,0BAA0B,CAAC,OAAOuN,GAAG,KAAK,IAAI,EAAE,KAAK,KAAK,eAAe,CAAC,EAAE,KAAK,sBAAuB,CAAA,CAAC,EAAE,KAAK,KAAK,KAAM,CAAA,CAAC,aAAazN,EAAE,CAAC,OAAO,KAAK,WAAWA,CAAC,CAAC,CAAC,iBAAiBA,EAAEC,EAAE,CAAC,MAAMC,EAAEF,EAAE,gBAAgBI,EAAEF,EAAED,CAAC,EAAEI,EAAE,KAAK,WAAWJ,CAAC,EAAE,OAAOI,IAAID,GAAG,EAAOoE,GAAGnE,CAAC,EAAE,QAAX,IAAkB,EAAE,IAAI,CAAC,GAAG,CAAC+D,GAAG,CAACA,GAAG,CAAE,EAAC,UAAUpE,KAAKG,GAAE,CAAC,KAAK,CAAC,cAAcF,CAAC,EAAEE,GAAEH,CAAC,EAAQC,GAAN,MAASmE,GAAG,KAAKnE,CAAC,CAAC,CAAC,CAAC,OAAOmE,EAAE,GAAI,EAAC,SAASlE,EAAED,EAAE,CAAC,CAAC,KAAK,KAAK,aAAY,IAAKD,EAAE,aAAY,GAAIA,EAAE,QAAS,EAAC,CAAC,CAAC,MAAMqN,GAAG,SAASrN,EAAE,CAAC,OAAOA,EAAE0N,GAAG1N,CAAC,EAAEA,EAAE2N,GAAG3N,CAAC,CAAC,EAAE0N,GAAG,SAAS1N,EAAE,CAAC,IAAI,EAAE,GAAG,MAAME,EAAEF,EAAE,YAAY,IAAIG,EAAED,EAAE,MAAM,EAAEA,EAAE,OAAO,CAAC,EAAE,MAAME,EAAEF,EAAEA,EAAE,OAAO,CAAC,EAAE,OAAOE,GAAGD,EAAEA,EAAE,IAAKH,GAAGA,EAAE,gBAAgB,EAAE,GAAG4N,GAAG5N,CAAC,GAAGA,CAAC,EAAG,EAAE,IAAImN,GAAG,CAAC,GAAGhN,EAAEC,CAAC,CAAC,EAAEJ,GAAGA,CAAC,EAAE6N,GAAGV,GAAG,4BAA4B;AAAA,EAAK,CAAC,WAAW,EAAE,CAAC,EAAEQ,GAAG,SAAS3N,EAAE,CAAC,OAAOyN,GAAGzN,CAAC,EAAEA,EAAEA,EAAE,WAAW6N,EAAE,CAAC,EAAEJ,GAAG,SAASzN,EAAE,CAAC,MAAM,EAAEA,EAAE,UAAW,EAAC,OAAO,IAAJ,KAAsBA,EAAE,eAAe,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,aAAY,CAAE,EAAE4N,GAAG5N,GAAGA,EAAE,qBAAqB,YAAY,EAAEsN,GAAG,SAAStN,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,EAAEwE,GAAGxE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAEA,CAAC,EAAE,CAACA,CAAC,CAAC,EAAEwN,GAAGxN,GAAGA,EAAE,MAAM,EAAE,EAAE,CAAC,EAAEuN,GAAG,SAASvN,EAAE,EAAE,CAAC,MAAME,EAAEF,EAAE,YAAY,CAAC,EAAE,OAAWE,OAAEF,EAAE8D,GAAG9D,EAAEE,EAAE,CAAC,CAAC,EAAE,MAAM4N,WAAWnK,EAAE,CAAC,OAAO,SAAS3D,EAAE,CAAC,OAAO,IAAI,KAAK,MAAM,KAAKA,CAAC,EAAE,IAAK,GAAGoN,GAAG,SAAS,CAAC,EAAG,CAAC,CAAC,OAAO,WAAWpN,EAAEC,EAAE,CAAC,MAAMC,EAAEiN,GAAG,4BAA4BnN,EAAEC,CAAC,EAAE,OAAO,IAAI,KAAK,CAAC,IAAImN,GAAGlN,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,IAAIF,EAAE,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,GAAG,MAAM,GAAG,SAAS,EAAMA,EAAE,SAAN,IAAeA,EAAE,CAAC,IAAIoN,EAAE,GAAG,KAAK,UAAUL,GAAG,IAAI/M,CAAC,CAAC,CAAC,SAAS,CAAC,MAAMA,EAAE,KAAK,gBAAgB,CAAC,EAAE,OAAW,KAAK,UAAU,SAAnB,GAA2BA,EAAE,WAAW,CAACA,EAAE,eAAe,CAAC,MAAM,CAAC,MAAMA,GAAG,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,CAAE,GAAE,kBAAkB,KAAK,UAAU,YAAa,EAAC,QAAS,EAAC,KAAK,UAAU,QAAS,EAAC,OAAO,IAAI,KAAK,YAAYA,CAAC,CAAC,CAAC,6BAA6BA,EAAE,CAAC,MAAMC,EAAE,IAAI2G,GAAG5G,EAAE,YAAY,EAAE,OAAO,KAAK,mBAAmBC,CAAC,CAAC,CAAC,mBAAmBD,EAAE,CAAC,MAAMC,EAAE,KAAK,UAAS,EAAG,IAAKA,GAAGD,EAAE,KAAKC,CAAC,GAAGA,EAAE,mBAAmBD,CAAC,GAAI,OAAO,IAAI,KAAK,YAAYC,CAAC,CAAC,CAAC,6BAA6B,CAAC,IAAID,EAAE,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,GAAG,MAAMC,EAAE,KAAK,UAAS,EAAG,IAAKA,GAAG,CAAC,MAAMC,EAAEF,EAAE,OAAOC,EAAE,cAAa,CAAE,EAAE,OAAOA,EAAE,mBAAmBC,CAAC,CAAC,CAAG,EAAC,OAAO,IAAI,KAAK,YAAYD,CAAC,CAAC,CAAC,aAAaD,EAAEC,EAAE,CAAC,MAAMC,EAAE,KAAK,UAAU,QAAQF,CAAC,EAAE,OAAWE,OAAE,KAAK,IAAI,KAAK,YAAY,KAAK,UAAU,qBAAqBD,EAAEC,CAAC,CAAC,CAAC,CAAC,sBAAsBF,EAAEC,EAAE,CAAC,KAAK,CAAC,UAAUC,CAAC,EAAEF,EAAEC,EAAEmF,GAAGnF,CAAC,EAAE,GAAG,CAAC,CAAC,EAAEA,EAAE,KAAK,CAAC,MAAM,EAAE,OAAOI,CAAC,EAAE,KAAK,qBAAqB,CAAC,EAAE,IAAIC,EAAE,KAAK,MAAMC,EAAE,KAAK,mBAAmB,CAAC,EAAE,OAAO+E,GAAGrF,CAAC,GAAGM,EAAE,QAAS,GAAE,CAACA,EAAE,cAAa,EAAGD,EAAE,IAAI,KAAK,YAAYA,EAAE,UAAU,oBAAoB,CAAC,CAAC,EAAEC,EAAE,sBAAqB,IAAKF,GAAG,IAAIC,EAAEA,EAAE,kBAAkBL,CAAC,EAAE,IAAI,KAAK,YAAYK,EAAE,UAAU,+BAA+BJ,EAAE,CAAC,CAAC,CAAC,CAAC,qBAAqBF,EAAEC,EAAE,CAAC,IAAIC,EAAE,EAAED,EAAEmF,GAAGnF,CAAC,EAAE,KAAK,CAAC,CAAC,EAAEA,EAAEI,EAAE,KAAK,qBAAqB,CAAC,EAAEC,EAAE,KAAK,gBAAgBD,EAAE,KAAK,EAAE,cAAa,EAAGE,EAAEP,EAAE,uBAAwB,EAACQ,EAAEF,EAAE,MAAM,CAACC,EAAE,MAAM,EAAE,GAAGsD,GAAGtD,EAAEC,CAAC,EAAE,CAAC,MAAMP,EAAEK,EAAE,MAAM,EAAE,CAACC,EAAE,MAAM,EAAEL,EAAEF,EAAE,4BAA4BC,CAAC,CAAC,MAAMC,EAAEF,EAAE,KAAK,CAAC,kBAAkB,EAAE,CAAC,EAAE,4BAA4BM,CAAC,EAAE,MAAMG,EAAEP,EAAE,cAAa,EAAGQ,EAAER,EAAE,gBAAgB,CAAC,EAAE,GAAG2D,GAAGvD,EAAEI,EAAE,cAAe,CAAA,EAAE,CAAC,MAAMV,EAAEU,EAAE,yBAAwB,EAAG,GAAG,EAAE,KAAK,kBAAkBV,EAAEC,CAAC,EAAEQ,EAAE,EAAE,CAACP,EAAE,IAAI,KAAK,YAAYA,EAAE,UAAS,EAAG,MAAM,CAAC,CAAC,EAAE,MAAMD,EAAE,EAAED,EAAE,UAAS,EAAG,EAAE,EAAE,sBAAsBE,EAAED,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,sBAAsBC,EAAED,CAAC,EAAE,OAAO,CAAC,CAAC,kBAAkBD,EAAEC,EAAE,CAACA,EAAEmF,GAAGnF,CAAC,EAAE,KAAK,CAACC,CAAC,EAAED,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,qBAAqBC,CAAC,EAAEG,EAAE,KAAK,kBAAkBJ,CAAC,EAAE,OAAO,IAAI,KAAK,YAAYI,EAAE,UAAU,kBAAkB,EAAGJ,GAAGA,EAAE,aAAaA,EAAE,KAAK,qBAAqBD,EAAE,CAAC,CAAC,CAAG,CAAA,CAAC,CAAC,kBAAkBA,EAAE,CAAC,IAAIC,EAAED,EAAEoF,GAAGpF,CAAC,EAAE,KAAK,CAACE,EAAE,CAAC,EAAEF,EAAE,GAAGsF,GAAGtF,CAAC,EAAE,OAAO,KAAK,KAAK,CAAC,EAAEK,CAAC,EAAE,MAAM,KAAK,KAAK,uBAAuBL,CAAC,CAAC,EAAEM,EAAE,EAAE,MAAMC,EAAE,EAAE,OAAOC,EAAE,KAAK,gBAAgBF,CAAC,EAAEG,EAAEJ,EAAE,MAAMK,EAAEL,EAAE,OAAOM,EAAE,KAAK,gBAAgBF,CAAC,EAAE,GAAG,EAAEP,GAAG,GAAGM,EAAE,sBAAqB,IAAKD,GAAGI,EAAE,0BAA0BD,GAAUC,EAAE,KAAK,oBAAoBD,CAAC,IAAnC;AAAA,EAAqCT,EAAE,KAAK,UAAU,kBAAkBQ,EAAGT,GAAGA,EAAE,aAAaA,EAAE,KAAK,kBAAkB,CAACU,EAAEA,EAAE,CAAC,CAAC,CAAC,CAAG,MAAK,CAAC,IAAIV,EAAE,MAAME,EAAEM,EAAE,KAAK,eAAe,CAAC,EAAED,CAAC,CAAC,EAAEJ,EAAEQ,EAAE,KAAK,eAAe,CAACD,EAAEC,EAAE,WAAW,CAAC,EAAEP,EAAEF,EAAE,WAAWC,CAAC,EAAEH,EAAEM,IAAIG,GAAOF,IAAJ,GAAOC,EAAE,kBAAmB,GAAEG,EAAE,oBAAoBA,EAAE,aAAaP,CAAC,EAAEI,EAAE,aAAaJ,CAAC,EAAE,MAAMC,EAAEI,EAAE,EAAEH,EAAEL,EAAE,KAAK,UAAU,OAAOK,EAAED,EAAEL,CAAC,CAAC,CAAC,OAAO,IAAI,KAAK,YAAYC,CAAC,CAAC,CAAC,4BAA4BD,EAAEC,EAAE,CAAC,IAAIC,EAAEF,EAAEoF,GAAGpF,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,EAAEA,EAAE,GAAG,GAAGC,GAAGA,GAAG,EAAE,OAAO,KAAK,IAAII,EAAE,KAAK,mBAAmBL,CAAC,EAAEM,EAAE,KAAK,kBAAkBN,CAAC,EAAE,MAAMO,EAAE,EAAEN,EAAEM,IAAIN,GAAGI,EAAE,UAAW,GAAE,KAAK,CAACG,EAAE,GAAGC,CAAC,EAAEJ,EAAE,UAAS,EAAG,OAAWI,EAAE,SAAN,GAAcP,EAAEM,EAAE,yBAA0B,EAACD,IAAIN,GAAG,IAAIC,EAAEM,EAAE,KAAKF,EAAEA,EAAE,kBAAkBJ,EAAED,CAAC,EAAMQ,EAAE,SAAN,EAAaH,GAAGD,EAAE,IAAI,KAAK,YAAYI,CAAC,EAAER,GAAGC,EAAE,UAAS,EAAGI,EAAE,sBAAsBD,EAAEJ,CAAC,EAAE,CAAC,oBAAoBD,EAAEC,EAAEC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,KAAK,OAAO,KAAK,iBAAiBA,EAAG,CAACA,EAAEE,EAAE,IAAI,EAAE,EAAE,kBAAkB,EAAG,UAAU,CAAC,OAAOoE,GAAGxE,CAAC,EAAEE,EAAE,aAAaF,EAAEC,CAAC,EAAEG,EAAE,CAAC,IAAIA,EAAE,CAAC,EAAEF,EAAEA,EAAE,aAAaA,EAAE,KAAK,oBAAoBF,EAAEC,EAAEG,CAAC,CAAC,CAAC,CAAC,GAAK,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,aAAaJ,EAAEC,EAAE,CAAC,GAAG,CAAC,UAAUC,CAAC,EAAE,KAAK,OAAO,KAAK,UAAW,CAAC,EAAE,IAAIA,EAAEA,EAAE,kBAAkB,EAAG,IAAI,EAAE,aAAaF,EAAEC,CAAC,CAAC,GAAK,IAAI,KAAK,YAAYC,CAAC,CAAC,CAAC,uBAAuBF,EAAEC,EAAE,CAAC,GAAG,CAAC,UAAUC,CAAC,EAAE,KAAK,OAAO,KAAK,iBAAiBD,EAAG,SAASA,EAAEE,EAAEC,EAAE,CAACoE,GAAGxE,CAAC,EAAEE,EAAEA,EAAE,kBAAkBE,EAAG,IAAIH,EAAE,gBAAgBD,CAAC,CAAC,EAAGG,EAAE,CAAC,IAAIA,EAAE,CAAC,IAAID,EAAEA,EAAE,kBAAkBE,EAAG,IAAIH,EAAE,aAAaA,EAAE,KAAK,uBAAuBD,EAAEG,CAAC,CAAC,CAAG,EAAC,CAAG,EAAC,IAAI,KAAK,YAAYD,CAAC,CAAC,CAAC,8BAA8BF,EAAEC,EAAE,CAAC,MAAMC,EAAE,KAAK,qBAAqBD,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAKC,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,qBAAqB,CAAC,EAAEG,EAAE,KAAK,eAAe,CAAC,EAAE,OAAO,IAAI,KAAK,YAAY,KAAK,UAAU,kBAAkB,EAAGH,GAAGA,EAAE,aAAaG,EAAE,8BAA8BL,EAAEC,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,6BAA6BD,EAAEC,EAAE,CAAC,MAAMC,EAAE,KAAK,qBAAqBD,CAAC,EAAE,OAAO,KAAK,uBAAuBD,EAAEE,CAAC,CAAC,CAAC,2BAA2BF,EAAEC,EAAEC,EAAE,CAAC,MAAM,EAAE,KAAK,mBAAmBF,CAAC,EAAE,EAAE,EAAE,iBAAiBC,EAAEC,CAAC,EAAE,OAAO,KAAK,aAAa,EAAE,CAAC,CAAC,CAAC,wBAAwBF,EAAE,CAAC,IAAIC,EAAED,EAAEoF,GAAGpF,CAAC,EAAE,KAAK,CAACE,CAAC,EAAEF,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,qBAAqBE,CAAC,EAAE,EAAE,KAAK,kBAAkBF,CAAC,EAAE,OAAW,IAAJ,IAAQC,EAAE,CAAC,IAAImN,EAAE,GAAG,IAAI,KAAK,YAAY,EAAE,UAAU,+BAA+B,IAAIL,GAAG9M,CAAC,EAAEC,CAAC,CAAC,CAAC,CAAC,2BAA2BF,EAAEC,EAAEC,EAAE,CAAC,MAAM,EAAE,KAAK,sCAAsCA,CAAC,EAAE,IAAI,EAAE,EAAE,SAASA,EAAE,EAAE,MAAM,MAAMG,EAAEmE,GAAGxE,CAAC,EAAE,GAAGK,EAAE,cAAc,CAAC,EAAE,EAAE,+BAA+BH,EAAE,CAAC,oBAAoBF,CAAC,CAAC,EAAE,MAAMC,EAAE,EAAE,sCAAsCC,CAAC,EAAE,EAAED,EAAE,SAASC,EAAED,EAAE,KAAK,MAAM,EAAEI,EAAE,UAAU,EAAE,6BAA6BH,CAAC,EAAEG,EAAE,SAAS,EAAE,mCAAmCH,CAAC,EAAE,EAAE,yBAAyBA,CAAC,EAAE,OAAO,EAAE,oBAAoBF,EAAEC,EAAEC,CAAC,CAAC,CAAC,+BAA+BF,EAAE,CAAC,IAAIC,EAAE,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,CAAA,EAAG,CAAC,UAAUC,CAAC,EAAE,KAAK,OAAO,KAAK,iBAAiBF,EAAG,SAASA,EAAEG,EAAEC,EAAE,CAAC,MAAM,EAAEJ,EAAE,iBAAkB,EAAC,GAAGwE,GAAG,CAAC,EAAE,eAAe,IAAIvE,EAAE,sBAAsBC,EAAEA,EAAE,kBAAkBE,EAAG,IAAIJ,EAAE,gBAAgB,CAAC,CAAG,EAAC,CAAG,EAAC,IAAI,KAAK,YAAYE,CAAC,CAAC,CAAC,mCAAmCF,EAAE,CAAC,GAAG,CAAC,UAAUC,CAAC,EAAE,KAAK,OAAO,KAAK,iBAAiBD,EAAG,SAASA,EAAEE,EAAEC,EAAE,CAAC,MAAMC,EAAEJ,EAAE,iBAAkB,EAACI,GAAGoE,GAAGpE,CAAC,EAAE,WAAWH,EAAEA,EAAE,kBAAkBE,EAAG,IAAIH,EAAE,gBAAgBI,CAAC,CAAC,EAAG,CAAC,EAAG,IAAI,KAAK,YAAYH,CAAC,CAAC,CAAC,6BAA6BD,EAAE,CAAC,GAAG,CAAC,UAAUC,CAAC,EAAE,KAAK,OAAO,KAAK,iBAAiBD,EAAG,SAASA,EAAEE,EAAEC,EAAE,CAACH,EAAE,cAAe,IAAGC,EAAEA,EAAE,kBAAkBE,EAAG,IAAIH,EAAE,sBAAqB,CAAI,EAAC,CAAG,EAAC,IAAI,KAAK,YAAYC,CAAC,CAAC,CAAC,sCAAsCD,EAAE,CAAC,IAAIC,EAAED,EAAEoF,GAAGpF,CAAC,EAAE,GAAG,CAACE,EAAE,CAAC,EAAEF,EAAE,MAAM,EAAE,KAAK,qBAAqBE,CAAC,EAAEG,EAAE,KAAK,qBAAqB,CAAC,EAAE,IAAIC,EAAE,KAAK,MAAMC,EAAED,EAAE,gBAAgB,EAAE,KAAK,EAAE,GAAG,EAAE,OAAOC,EAAE,qCAAqC,WAAW,EAAE,MAAM,EAAQ,EAAE,QAAR,OAAiBN,EAAEK,EAAE,qBAAqB,CAAC,EAAEA,EAAEA,EAAE,wBAAwB,CAACL,EAAEA,EAAE,CAAC,CAAC,EAAEI,EAAE,OAAO,EAAEA,EAAE,QAAQC,EAAE,gBAAgB,EAAE,KAAK,EAAE,UAAS,EAAG,EAAE,OAAO,GAAG,EAAE,OAAO,EAAMD,EAAE,SAAN,GAAcA,EAAE,MAAM,EAAE,MAAMA,EAAE,OAAO,EAAEA,EAAE,OAAOC,EAAE,gBAAgBD,EAAE,KAAK,EAAE,sBAAqB,MAAO,CAAC,MAAML,EAAEM,EAAE,gBAAgBD,EAAE,KAAK,EAASL,EAAE,KAAK,iBAAiB,CAACK,EAAE,OAAO,EAAEA,EAAE,MAAM,CAAC,IAApD;AAAA,EAAsDA,EAAE,QAAQ,EAAEA,EAAE,OAAOL,EAAE,qCAAqC,UAAUK,EAAE,MAAM,EAAEA,EAAE,SAASL,EAAE,sBAAuB,IAAGC,EAAEK,EAAE,qBAAqBD,CAAC,EAAEC,EAAEA,EAAE,wBAAwB,CAACL,EAAEA,EAAE,CAAC,CAAC,EAAE,CAAC,OAAOC,EAAEI,EAAE,qBAAqB,CAAC,EAAE,EAAEA,EAAE,qBAAqBD,CAAC,EAAE,CAAC,SAASC,EAAE,MAAMN,EAAEoF,GAAG,CAAClF,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,sCAAsCF,EAAE,CAACA,EAAEoF,GAAGpF,CAAC,EAAE,GAAG,CAACC,CAAC,EAAED,EAAE,MAAME,EAAE,KAAK,iBAAiBF,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,OAAOE,EAAE,QAAQ,SAAU,SAASF,EAAE,CAACC,GAAGD,EAAE,OAAO,EAAE,EAAE,wBAAwB,CAACC,EAAE,EAAEA,CAAC,CAAC,CAAC,CAAG,EAAC,CAAC,SAAS,EAAE,MAAMD,CAAC,CAAC,CAAC,yBAAyBA,EAAE,CAACA,EAAEoF,GAAGpF,CAAC,EAAE,KAAK,CAACC,EAAEC,CAAC,EAAEF,EAAE,EAAE,KAAK,qBAAqBC,CAAC,EAAE,MAAM,EAAE,KAAK,qBAAqBC,CAAC,EAAE,MAAM,OAAO,IAAI,KAAK,YAAY,KAAK,UAAU,4BAA4B,EAAE,CAAC,CAAC,CAAC,CAAC,mBAAmBF,EAAE,CAACA,EAAEoF,GAAGpF,CAAC,EAAE,MAAMC,EAAE,KAAK,UAAU,yBAAyBD,CAAC,EAAE,UAAU,OAAO,IAAI,KAAK,YAAYC,CAAC,CAAC,CAAC,iBAAiBD,EAAE,CAAC,IAAIC,EAAE,MAAMC,EAAEF,EAAEoF,GAAGpF,CAAC,EAAE,OAAOE,EAAEA,EAAE,OAAO,CAAC,IAAI,KAAK,cAAcD,EAAE,IAAI,KAAK,mBAAmBD,CAAC,EAAE,SAAU,EAAC,MAAM,EAAEC,CAAC,CAAC,CAAC,gBAAgBD,EAAE,CAAC,OAAO,KAAK,UAAU,iBAAiBA,CAAC,CAAC,CAAC,mBAAmBA,EAAE,CAAC,KAAK,CAAC,MAAMC,CAAC,EAAE,KAAK,qBAAqBD,CAAC,EAAE,OAAO,KAAK,gBAAgBC,CAAC,CAAC,CAAC,eAAeD,EAAE,CAAC,IAAIC,EAAE,OAAeA,EAAE,KAAK,gBAAgBD,CAAC,KAAhC,MAA6CC,IAAT,OAAW,OAAOA,EAAE,IAAI,CAAC,kBAAkBD,EAAE,CAAC,KAAK,CAAC,MAAMC,CAAC,EAAE,KAAK,qBAAqBD,CAAC,EAAE,OAAO,KAAK,eAAeC,CAAC,CAAC,CAAC,mBAAmBD,EAAE,CAAC,KAAK,CAAC,MAAMC,EAAE,OAAOC,CAAC,EAAE,KAAK,qBAAqBF,CAAC,EAAE,OAAO,KAAK,eAAeC,CAAC,EAAE,mBAAmBC,CAAC,CAAC,CAAC,uBAAuBF,EAAE,CAAC,KAAK,CAAC,MAAMC,EAAE,OAAOC,CAAC,EAAE,KAAK,qBAAqBF,CAAC,EAAE,OAAO,KAAK,eAAeC,CAAC,EAAE,iBAAiB,CAACC,EAAEA,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,KAAK,UAAU,eAAc,CAAE,CAAC,WAAW,CAAC,OAAO,KAAK,UAAU,SAAS,CAAC,eAAe,CAAC,OAAO,KAAK,UAAU,MAAM,CAAC,cAAc,CAAC,OAAO,KAAK,SAAS,CAAC,UAAUF,EAAE,CAAC,OAAO,KAAK,UAAU,WAAWA,CAAC,CAAC,CAAC,iBAAiBA,EAAEC,EAAE,CAAC,IAAIC,EAAE,EAAEF,EAAEoF,GAAGpF,CAAC,EAAE,KAAK,CAAC,EAAEK,CAAC,EAAEL,EAAEM,EAAE,KAAK,qBAAqB,CAAC,EAAEC,EAAE,KAAK,qBAAqBF,CAAC,EAAE,GAAGC,EAAE,QAAQC,EAAE,MAAM,OAAOL,EAAE,KAAK,gBAAgBI,EAAE,KAAK,EAAE,EAAE,CAACA,EAAE,OAAOC,EAAE,MAAM,EAAEN,EAAEC,EAAE,EAAEI,EAAE,KAAK,EAAE,QAAQN,EAAEM,EAAE,MAAMN,GAAGO,EAAE,MAAMP,IAAI,GAAGE,EAAE,KAAK,gBAAgBF,CAAC,EAAEE,EAAE,CAAC,OAAOF,EAAG,CAAA,KAAKM,EAAE,MAAM,EAAE,CAACA,EAAE,OAAOJ,EAAE,KAAK,UAAW,CAAA,EAAE,MAAM,KAAKK,EAAE,MAAM,EAAE,CAAC,EAAEA,EAAE,MAAM,EAAE,MAAM,QAAQ,EAAE,CAAC,EAAEL,EAAE,KAAK,UAAS,CAAE,CAAC,CAACD,EAAEC,EAAE,EAAEF,CAAC,CAAC,CAAC,CAAC,2BAA2BA,EAAE,CAACA,EAAEoF,GAAGpF,CAAC,EAAE,KAAK,CAACC,CAAC,EAAED,EAAE,GAAGsF,GAAGtF,CAAC,EAAE,OAAO,KAAK,8BAA8BC,CAAC,EAAE,CAAC,MAAMA,EAAE,CAAE,EAACC,EAAE,CAAA,EAAG,OAAO,KAAK,iBAAiBF,EAAG,SAASA,EAAEG,EAAE,CAAC,GAAGA,EAAE,CAAC,IAAIA,EAAE,CAAC,EAAE,OAAOF,EAAE,KAAKD,EAAE,KAAK,2BAA2BG,CAAC,CAAC,EAAED,EAAE,KAAK6N,GAAG/N,CAAC,CAAC,CAAC,CAAC,EAAGqG,GAAG,8BAA8BpG,CAAC,EAAE,MAAMoG,GAAG,8BAA8BnG,CAAC,CAAC,EAAE,SAAQ,CAAE,CAAC,CAAC,8BAA8BF,EAAE,CAAC,IAAIC,EAAEC,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,qBAAqBF,CAAC,EAAEK,EAAE,KAAK,gBAAgB,CAAC,EAAE,GAAG,CAACA,EAAE,MAAM,GAAG,MAAMC,EAAEyN,GAAG1N,CAAC,EAAEE,EAAEF,EAAE,KAAK,wBAAwB,CAAC,EAAEG,EAAEH,EAAE,KAAK,wBAAwB,EAAE,CAAC,EAAEI,EAAE,OAAO,KAAK+B,EAAC,EAAE,OAAQxC,GAAGwC,GAAExC,CAAC,EAAE,WAAW,EAAG,IAAIC,KAAKO,EAAEN,EAAEM,EAAEP,CAAC,GAAGC,IAAIK,EAAEN,CAAC,GAAGQ,EAAE,SAASR,CAAC,KAAKK,EAAEL,CAAC,EAAEC,GAAG,OAAOI,CAAC,CAAC,oCAAoCN,EAAEC,EAAE,CAAC,KAAK,CAAC,MAAMC,EAAE,OAAO,CAAC,EAAE,KAAK,qBAAqBD,CAAC,EAAE,EAAE,KAAK,eAAeC,CAAC,EAAE,CAACG,EAAEC,CAAC,EAAE,MAAM,KAAK,EAAE,qCAAqCN,EAAE,CAAC,CAAC,EAAEO,EAAE,KAAK,qBAAqB,CAAC,MAAML,EAAE,OAAOG,CAAC,CAAC,EAAEG,EAAE,KAAK,qBAAqB,CAAC,MAAMN,EAAE,OAAOI,CAAC,CAAC,EAAE,OAAO8E,GAAG,CAAC7E,EAAEC,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,IAAIR,EAAE,KAAK,gBAAgB,CAAC,EAAE,cAAe,EAAC,QAAQC,EAAE,EAAEA,EAAE,KAAK,cAAe,EAACA,IAAI,CAAC,MAAMC,EAAE,KAAK,gBAAgBD,CAAC,EAAE,cAAa,EAAG,EAAE,KAAK,IAAID,EAAE,OAAOE,EAAE,MAAM,EAAEF,GAAG,IAAI,CAAC,MAAMC,EAAE,CAAE,EAAC,QAAQG,EAAE,EAAEA,EAAE,GAAGF,EAAEE,CAAC,IAAIJ,EAAEI,CAAC,EAAEA,IAAIH,EAAE,KAAKC,EAAEE,CAAC,CAAC,EAAE,OAAOH,CAAC,GAAI,CAAA,CAAC,OAAOD,CAAC,CAAC,kBAAkBA,EAAE,CAAC,UAAUC,KAAK,KAAK,eAAc,EAAG,GAAGA,EAAE,KAAKD,EAAE,OAAOC,CAAC,CAAC,qBAAqB,CAAC,IAAID,EAAE,CAAA,EAAG,OAAO,KAAK,UAAU,WAAYC,GAAG,CAAC,GAAG,CAAC,KAAKC,CAAC,EAAED,EAAE,OAAOD,EAAEA,EAAE,OAAOE,EAAE,qBAAqB,CAAC,GAAIF,CAAC,CAAC,gBAAgB,CAAC,OAAO,KAAK,oBAAmB,EAAG,IAAKA,GAAGA,EAAE,UAAY,CAAA,CAAC,qBAAqBA,EAAE,CAAC,IAAIC,EAAE,EAAE,MAAMC,EAAE,KAAK,UAAU,QAAO,EAAG,QAAQ,EAAE,EAAE,EAAEA,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAEA,EAAE,CAAC,EAAEG,EAAE,EAAE,qBAAqBL,CAAC,EAAE,GAAGK,EAAE,OAAO+E,GAAG,CAACnF,EAAEI,EAAE,CAAC,EAAEJ,EAAEI,EAAE,CAAC,CAAC,CAAC,EAAEJ,GAAG,EAAE,UAAS,CAAE,CAAC,CAAC,6BAA6BD,EAAE,CAAC,MAAMC,EAAE,KAAK,qBAAqBD,CAAC,EAAE,OAAO,KAAK,uBAAuBC,CAAC,CAAC,CAAC,gCAAgCD,EAAE,CAAC,UAAUC,KAAK,KAAK,oBAAmB,EAAG,GAAGA,EAAE,aAAaD,EAAE,OAAOC,CAAC,CAAC,4BAA4BD,EAAE,CAAC,IAAIC,EAAE,EAAE,MAAMC,EAAE,CAAA,EAAG,OAAO,KAAK,UAAW,EAAC,QAAS,GAAG,CAAC,MAAM,EAAE,EAAE,UAAW,EAAC,EAAE,aAAaF,CAAC,GAAGE,EAAE,KAAK,CAACD,EAAEA,EAAE,CAAC,CAAC,EAAEA,GAAG,CAAC,CAAC,EAAGC,CAAC,CAAC,2BAA2BF,EAAE,CAAC,GAAG,CAAC,UAAUC,CAAC,EAAE,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,CAAA,EAAGC,EAAE,EAAE,EAAE,CAAA,EAAG,MAAM,EAAE,CAAE,EAAC,OAAO,KAAK,UAAW,EAAC,QAASG,GAAG,CAAC,MAAMC,EAAED,EAAE,UAAW,GAAE,SAASH,EAAE,CAAC,OAAOD,EAAEC,EAAE,aAAaF,CAAC,IAAIC,EAAEC,EAAE,aAAaF,CAAC,CAAC,GAAGK,CAAC,IAAI,EAAE,CAAC,IAAIH,EAAE,EAAE,CAAC,EAAEA,EAAEI,EAAE,EAAE,KAAK,EAAE,CAACJ,EAAEA,EAAEI,CAAC,CAAC,GAAGJ,GAAGI,CAAC,GAAI,CAAC,CAAC,qBAAqBN,EAAE,CAAC,MAAMC,EAAE,KAAK,UAAU,6BAA6B,KAAK,IAAI,EAAED,CAAC,CAAC,EAAE,GAASC,EAAE,OAAR,KAAc,OAAOA,EAAE,CAAC,MAAMD,EAAE,KAAK,YAAY,MAAM,CAAC,MAAMA,EAAE,OAAO,EAAE,OAAOA,EAAEA,EAAE,OAAO,CAAC,EAAE,UAAS,CAAE,CAAC,CAAC,CAAC,qBAAqBA,EAAE,CAAC,OAAO,KAAK,UAAU,6BAA6BA,EAAE,MAAMA,EAAE,MAAM,CAAC,CAAC,0BAA0BA,EAAE,CAAC,OAAOoF,GAAG,KAAK,qBAAqBpF,CAAC,CAAC,CAAC,CAAC,uBAAuBA,EAAE,CAAC,GAAG,EAAEA,EAAEoF,GAAGpF,CAAC,GAAG,OAAO,KAAK,CAACC,EAAEC,CAAC,EAAE,MAAM,KAAKF,CAAC,EAAE,EAAE,KAAK,qBAAqBC,CAAC,EAAE,EAAE,KAAK,qBAAqBC,CAAC,EAAE,OAAOkF,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,uBAAuBpF,EAAE,CAAC,IAAIC,EAAED,EAAEoF,GAAGpF,CAAC,EAAE,MAAME,EAAE,KAAK,qBAAqBF,EAAE,CAAC,CAAC,EAAE,OAAOsF,GAAGtF,CAAC,IAAIC,EAAE,KAAK,qBAAqBD,EAAE,CAAC,CAAC,GAAGoF,GAAG,CAAClF,EAAED,CAAC,CAAC,CAAC,CAAC,UAAUD,EAAE,CAAC,OAAO,KAAK,UAAU,UAAgBA,GAAN,KAAQ,OAAOA,EAAE,SAAS,CAAC,CAAC,UAAU,CAAC,OAAO,KAAK,UAAS,EAAG,IAAKA,GAAGA,EAAE,IAAM,CAAA,CAAC,WAAW,CAAC,MAAMA,EAAE,GAAG,OAAO,MAAM,KAAK,KAAK,SAAU,CAAA,EAAE,QAASC,GAAG,CAACD,EAAE,KAAK,GAAG,MAAM,KAAKC,EAAE,UAAW,GAAE,EAAE,CAAC,CAAC,CAAG,EAACD,CAAC,CAAC,YAAY,CAAC,OAAO,KAAK,UAAS,EAAG,OAAO,KAAK,UAAU,EAAE,OAAO,KAAK,UAAS,CAAE,CAAC,CAAC,wBAAwB,CAAC,MAAMA,EAAE,CAAE,EAAC,OAAO,KAAK,UAAU,WAAYC,GAAGD,EAAE,KAAKC,EAAE,aAAaA,EAAE,KAAK,mBAAkB,CAAE,CAAC,CAAC,EAAG,IAAI,KAAK,YAAYD,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,KAAK,UAAU,SAAQ,CAAE,CAAC,QAAQ,CAAC,OAAO,KAAK,UAAU,OAAQ,CAAA,CAAC,WAAW,CAAC,OAAO,KAAK,UAAU,KAAK,UAAU,UAAU,IAAKA,GAAG,KAAK,MAAMA,EAAE,KAAK,WAAW,CAAC,CAAE,CAAC,CAAC,CAAC,MAAM+N,GAAG,SAAS/N,EAAE,CAAC,MAAM,EAAE,GAAGE,EAAEF,EAAE,mBAAmB,OAAOE,IAAI,EAAEA,CAAC,EAAE,IAAI,CAAC,EAAE8N,GAAG,SAAShO,EAAE,CAAC,IAAI,EAAE,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,CAAA,EAAG,MAAM,CAAC,OAAOA,EAAEgG,GAAGhG,CAAC,EAAE,WAAW,EAAE,KAAK,QAAQ,CAAC,EAAEiO,GAAG,CAACjO,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,KAAK,MAAMA,EAAE,aAAa,aAAa,OAAO,CAAC,CAAC,CAAC,CAAC,MAAS,CAAC,MAAM,CAAA,CAAE,CAAC,EAAE,MAAMkO,WAAW9K,EAAC,CAAC,OAAO,MAAMpD,EAAEC,EAAE,CAAC,MAAMC,EAAE,IAAI,KAAKF,EAAEC,CAAC,EAAE,OAAOC,EAAE,MAAO,EAACA,CAAC,CAAC,YAAYF,EAAE,CAAC,GAAG,CAAC,iBAAiBC,CAAC,EAAE,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,CAAA,EAAG,MAAM,GAAG,SAAS,EAAE,KAAK,KAAKD,EAAE,KAAK,iBAAiBC,EAAE,KAAK,OAAO,CAAE,EAAC,KAAK,cAAc,CAAE,EAAC,KAAK,kBAAkB,CAAA,CAAE,CAAC,aAAa,CAAC,OAAO6N,GAAG,SAAS,KAAK,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,sBAAuB,EAAC9C,GAAG,QAAQ,KAAK,iBAAiB,KAAK,IAAI,EAAE,MAAMhL,EAAEyB,GAAE,KAAK,iBAAiB,CAAC,YAAY0M,EAAE,CAAC,EAAE,KAAKnO,EAAE,SAAU,GAAE,KAAK,YAAYA,EAAE,WAAW,EAAE,OAAO,KAAK,wCAAwC,QAAC,CAAQ,KAAK,sBAAuB,CAAA,CAAC,CAAC,uBAAuB,CAAC,OAAO,KAAK,kBAAkB,KAAK,iBAAiB,KAAK,iBAAiB,UAAU,EAAE,EAAE,KAAK,iBAAiB,gBAAgB,IAAI,EAAE,KAAK,iBAAiB,aAAa,qBAAqB,EAAE,EAAE,KAAK,iBAAiB,MAAM,QAAQ,OAAO,KAAK,iBAAiB,WAAW,aAAa,KAAK,iBAAiB,KAAK,iBAAiB,WAAW,IAAI,KAAK,iBAAiB2B,EAAE,CAAC,QAAQ,MAAM,MAAM,CAAC,QAAQ,MAAM,CAAC,CAAC,EAAE,SAAS,KAAK,YAAY,KAAK,gBAAgB,EAAE,CAAC,uBAAuB,CAAC,OAAOH,GAAE,KAAK,gBAAgB,CAAC,CAAC,YAAYxB,EAAE,CAAC,OAAOA,EAAE,SAAQ,CAAE,KAAK,KAAK,UAAU,GAAG,CAAC,KAAK,wBAAwBA,CAAC,EAAE,OAAO,KAAK,uBAAuBA,CAAC,EAAE,KAAK,gBAAgBA,CAAC,EAAE,MAAM,KAAK,KAAK,aAAa,OAAO,KAAK,sBAAsBA,CAAC,EAAE,KAAK,eAAeA,CAAC,CAAC,CAAC,CAAC,uBAAuBA,EAAE,CAAC,MAAMC,EAAED,EAAE,WAAW,GAAGC,IAAI,KAAK,qBAAqB,KAAK,eAAeD,EAAE,eAAe,EAAE,OAAO,KAAK,2BAA2B;AAAA,CAAI,EAAE,GAAGC,IAAI,KAAK,kBAAkB,KAAK,eAAeA,CAAC,EAAE,CAAC,IAAIC,EAAE,MAAMF,EAAE,KAAK,mBAAmBC,CAAC,EAAEE,EAAE,KAAK,uBAAuBF,CAAC,EAAE4D,GAAG7D,GAAUE,EAAE,KAAK,gBAAf,MAAuCA,IAAT,OAAW,OAAOA,EAAE,UAAU,IAAI,KAAK,aAAa,KAAK,oCAAoCF,EAAEC,EAAEE,CAAC,EAAE,KAAK,oBAAoBF,EAAE,CAAC,CAAC,sBAAsBD,EAAE,CAAC,MAAMC,EAAE,KAAK,eAAeD,CAAC,EAAEE,EAAEoB,GAAE,KAAK,oBAAoBtB,CAAC,EAAE,GAAGC,GAAG,CAAC,KAAK,eAAeD,EAAE,UAAU,GAAG,GAAG,CAAC,KAAK,wBAAwBA,EAAE,UAAU,GAAG,CAAC,KAAK,eAAeA,EAAE,iBAAiB,EAAE,CAAC,MAAMC,EAAE,KAAK,mBAAmBD,CAAC,EAAEG,EAAE,KAAK,uBAAuBH,CAAC,EAAE,GAAGA,EAAE,WAAW,CAAC,GAAGE,GAAG2D,GAAG5D,EAAE,KAAK,aAAa,UAAU,EAAE,OAAO,KAAK,2BAA2B;AAAA,CAAI,EAAE,KAAK,aAAa,KAAK,oCAAoCA,EAAED,EAAEG,CAAC,EAAE,KAAK,oBAAoBH,CAAC,CAAC,UAAU,KAAK,qBAAqB,CAACE,GAAG,CAACD,EAAE,CAAC,MAAMA,EAAE,KAAK,uBAAuBD,CAAC,EAAE,GAAGC,EAAE,OAAO,KAAK,sBAAsBA,CAAC,EAAE,KAAK,aAAa,KAAK,mBAAmB,KAAK,oBAAoB,IAAI,CAAC,CAAC,uBAAuBD,EAAE,CAAC,GAAG,CAAC,cAAcC,CAAC,EAAED,EAAE,KAAKC,GAAGA,IAAI,KAAK,kBAAkB,CAAC,GAAG,KAAK,eAAeA,CAAC,GAAG,KAAK,cAAc,SAASA,CAAC,EAAE,OAAOA,EAAEA,EAAEA,EAAE,aAAa,CAAC,OAAO,IAAI,CAAC,gBAAgBD,EAAE,CAAC,IAAIC,EAAED,EAAE,KAAK,IAAIE,EAAE,OAAAkO,GAAGpO,EAAE,UAAU,IAAIC,EAAEiG,GAAGjG,CAAC,EAAEoO,IAAWnO,EAAEF,EAAE,mBAAZ,MAAuCE,IAAT,OAAW,OAAOA,EAAE,WAAW,IAAID,EAAEqO,GAAGrO,CAAC,IAAW,KAAK,2BAA2BA,EAAE,KAAK,kBAAkBD,EAAE,UAAU,CAAC,CAAC,CAAC,eAAeA,EAAE,CAAC,IAAIC,EAAE,GAAGmC,GAAEpC,CAAC,EAAE,CAAC,GAAGC,EAAEgO,GAAGjO,EAAE,YAAY,EAAE,OAAO,KAAKC,CAAC,EAAE,OAAO,CAAC,MAAMC,EAAE,KAAK,kBAAkBF,CAAC,EAAE,KAAK,+BAA+BC,EAAEC,CAAC,EAAEF,EAAE,UAAU,EAAE,CAAC,OAAO,KAAK,kBAAkB,KAAKA,CAAC,CAAC,CAAC,OAAO0B,GAAE1B,CAAC,EAAC,CAAE,IAAI,KAAK,OAAO,KAAK,UAAUA,CAAC,GAAG,KAAK,eAAeA,EAAE,WAAW,GAAG,KAAK,2BAA2B;AAAA,EAAK,KAAK,kBAAkBA,CAAC,CAAC,EAAE,KAAK,kBAAkB,KAAKA,CAAC,EAAE,IAAI,MAAMC,EAAE,CAAC,IAAID,EAAE,aAAa,KAAK,EAAE,YAAY,OAAO,EAAE,MAAME,GAAGF,GAAG,CAAC,MAAMC,EAAED,EAAE,aAAa,OAAO,EAAEE,EAAEF,EAAE,aAAa,QAAQ,EAAEG,EAAE,GAAG,OAAOF,IAAIE,EAAE,MAAM,SAASF,EAAE,EAAE,GAAGC,IAAIC,EAAE,OAAO,SAASD,EAAE,EAAE,GAAGC,CAAC,GAAGH,CAAC,EAAE,UAAUA,KAAKE,EAAE,CAAC,MAAMC,EAAED,EAAEF,CAAC,EAAEC,EAAED,CAAC,EAAEG,CAAC,CAAC,OAAO,KAAK,+BAA+BF,EAAE,KAAK,kBAAkBD,CAAC,CAAC,EAAE,KAAK,kBAAkB,KAAKA,CAAC,EAAE,IAAI,KAAK,GAAG,KAAK,oBAAoBA,CAAC,EAAE,OAAO,KAAK,2BAA2BuC,GAAE,iBAAiB,EAAE,MAAM,IAAI,KAAK,GAAG,KAAK,oBAAoBvC,CAAC,EAAE,OAAO,KAAK,2BAA2BuC,GAAE,kBAAkB,CAAC,CAAC,CAAC,oCAAoCvC,EAAEC,EAAE,CAAC,IAAIC,EAAE,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,CAAA,EAAG,KAAK,cAAc,KAAKD,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,CAAE,EAAC,WAAW,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,GAAG,eAAe,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,CAAA,CAAE,CAAC,EAAED,EAAEE,CAAC,EAAE,OAAO,KAAK,OAAO,KAAK,CAAC,EAAE,CAAC,CAAC,kBAAkB,CAAC,OAAO,KAAK,oCAAoC,GAAG,IAAI,CAAC,CAAC,2BAA2BF,EAAEC,EAAE,CAAC,OAAO,KAAK,YAAY+N,GAAGhO,EAAEC,CAAC,CAAC,CAAC,CAAC,+BAA+BD,EAAEC,EAAE,CAAC,OAAO,KAAK,YAAY,SAASD,EAAE,CAAC,MAAM,CAAC,WAAWA,EAAE,WAAW,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,CAAE,EAAC,KAAK,YAAY,CAAC,EAAEA,EAAEC,CAAC,CAAC,CAAC,CAAC,YAAYD,EAAE,CAAC,OAAW,KAAK,OAAO,SAAhB,GAAwB,KAAK,iBAAgB,EAAG,KAAK,OAAO,KAAK,OAAO,OAAO,CAAC,EAAE,KAAK,KAAKA,CAAC,CAAC,CAAC,0BAA0BA,EAAEC,EAAE,CAAC,KAAK,CAAC,KAAKC,CAAC,EAAE,KAAK,OAAOD,CAAC,EAAE,EAAEC,EAAEA,EAAE,OAAO,CAAC,EAAE,IAAqB,GAAN,KAAQ,OAAO,EAAE,QAA7B,SAAmC,OAAOA,EAAE,KAAK8N,GAAGhO,CAAC,CAAC,EAAE,EAAE,QAAQA,CAAC,CAAC,2BAA2BA,EAAEC,EAAE,CAAC,KAAK,CAAC,KAAKC,CAAC,EAAE,KAAK,OAAOD,CAAC,EAAE,EAAEC,EAAE,CAAC,EAAE,IAAqB,GAAN,KAAQ,OAAO,EAAE,QAA7B,SAAmC,OAAOA,EAAE,QAAQ8N,GAAGhO,CAAC,CAAC,EAAE,EAAE,OAAOA,EAAE,EAAE,MAAM,CAAC,kBAAkBA,EAAE,CAAC,IAAIC,EAAE,MAAMC,EAAE,CAAA,EAAG,UAAU,KAAKsC,GAAE,CAAC,MAAM,EAAEA,GAAE,CAAC,EAAE,GAAG,EAAE,SAAStB,GAAElB,EAAE,CAAC,iBAAiB,EAAE,QAAQ,UAAU,KAAK,gBAAgB,CAAC,EAAEE,EAAE,CAAC,EAAE,WAAW,EAAE,QAAQ,GAAGD,EAAE,EAAE,OAAOD,CAAC,EAAEC,EAAE,CAAC,IAAII,EAAE,GAAG,UAAUH,KAAK,KAAK,0BAA0BF,CAAC,EAAE,GAAG,EAAE,OAAOE,CAAC,IAAID,EAAE,CAACI,EAAE,GAAG,KAAK,CAACA,IAAIH,EAAE,CAAC,EAAED,EAAE,OAAO,EAAE,gBAAgBA,EAAED,EAAE,MAAM,EAAE,aAAa,EAAEC,IAAIC,EAAE,CAAC,EAAED,GAAG,CAAC,GAAGmC,GAAEpC,CAAC,EAAE,CAAC,MAAM,EAAEiO,GAAGjO,EAAE,YAAY,EAAE,UAAUA,KAAK,EAAEC,EAAE,EAAED,CAAC,EAAEE,EAAEF,CAAC,EAAEC,CAAC,CAAC,OAAOC,CAAC,CAAC,mBAAmBF,EAAE,CAAC,MAAMC,EAAE,CAAE,EAAC,KAAKD,GAAGA,IAAI,KAAK,kBAAkB,CAAC,UAAUI,KAAKD,GAAE,CAAC,MAAME,EAAEF,GAAEC,CAAC,EAAE,IAAIF,EAAUG,EAAE,QAAP,IAAgBqB,GAAE1B,CAAC,IAAIK,EAAE,WAAiBH,EAAEG,EAAE,QAAZ,MAA4BH,IAAT,QAAYA,EAAE,KAAKG,EAAEL,CAAC,GAAG,CAACK,EAAE,QAAQJ,EAAE,KAAKG,CAAC,EAAEC,EAAE,eAAeJ,EAAE,KAAKI,EAAE,aAAa,EAAE,CAACL,EAAEA,EAAE,UAAU,CAAC,OAAOC,EAAE,QAAO,CAAE,CAAC,uBAAuBD,EAAE,CAAC,MAAMC,EAAE,GAAGC,EAAE,OAAO,OAAOC,EAAC,EAAE,KAAMF,GAAGA,EAAE,UAAUyB,GAAE1B,CAAC,GAAI,QAAcE,GAAN,KAAQ,OAAOA,EAAE,iBAAiB,CAAA,GAAI,QAASA,GAAG,CAACF,EAAE,aAAaE,CAAC,IAAID,EAAEC,CAAC,EAAEF,EAAE,aAAaE,CAAC,EAAE,CAAG,EAACD,CAAC,CAAC,0BAA0BD,EAAE,CAAC,MAAMC,EAAE,GAAG,KAAKD,GAAGA,IAAI,KAAK,kBAAkB,CAAC,MAAME,EAAEwB,GAAE1B,CAAC,EAAE6B,GAAC,EAAG,SAAS3B,CAAC,GAAGD,EAAE,KAAKD,CAAC,EAAEA,EAAEA,EAAE,UAAU,CAAC,OAAOC,CAAC,CAAC,eAAeD,EAAE,CAAC,IAAUA,GAAN,KAAQ,OAAOA,EAAE,YAAY,KAAK,cAAc,CAACoC,GAAEpC,CAAC,GAAG,CAACkB,GAAElB,EAAE,CAAC,iBAAiB,KAAK,UAAU,KAAK,gBAAgB,CAAC,EAAE,OAAO6B,GAAC,EAAG,SAASH,GAAE1B,CAAC,CAAC,GAAa,OAAO,iBAAiBA,CAAC,EAAE,UAArC,OAA4C,CAAC,wBAAwBA,EAAE,CAAwD,IAA7CA,GAAN,KAAQ,OAAOA,EAAE,YAAY,KAAK,WAAoB,CAACuO,GAAGvO,EAAE,IAAI,EAAE,OAAO,KAAK,CAAC,WAAWC,EAAE,gBAAgBC,EAAE,YAAY,CAAC,EAAEF,EAAE,OAAOwO,GAAGvO,EAAE,eAAe,GAAG,CAAC,KAAK,eAAeA,EAAE,eAAe,GAAGmO,GAAGnO,CAAC,EAAE,OAAO,CAACC,GAAG,KAAK,eAAeA,CAAC,GAAG,CAAC,GAAG,KAAK,eAAe,CAAC,CAAC,CAAC,UAAUF,EAAE,CAAC,OAAa0B,GAAE1B,CAAC,IAAV,MAAa,KAAK,eAAeA,EAAE,UAAU,GAAGA,EAAE,WAAW,YAAYA,CAAC,CAAC,oBAAoBA,EAAE,CAAC,GAAGuC,GAAE,sBAAsB,CAAC,IAAItC,EAAE,MAAMC,GAAUD,EAAED,EAAE,mBAAZ,MAAuCC,IAAT,OAAW,OAAOA,EAAE,YAAY,OAAOC,GAAG,KAAK,KAAKA,CAAC,CAAC,CAAC,OAAOF,EAAE,eAAe,CAAC,wCAAwC,CAAC,MAAMA,EAAE,KAAK,+BAAgC,EAAC,QAAQC,EAAE,EAAEA,EAAE,KAAK,OAAO,OAAOA,IAAI,CAAC,MAAMC,EAAE,KAAK,+BAA+BD,CAAC,EAAEC,IAAIA,EAAE,IAAI,EAAEF,EAAE,KAAK,KAAK,2BAA2B;AAAA,EAAKC,CAAC,EAAEC,EAAE,OAAO,EAAEF,EAAE,QAAQ,KAAK,0BAA0B;AAAA,EAAKC,CAAC,EAAE,CAAC,CAAC,+BAA+BD,EAAE,CAAC,MAAMC,EAAE,KAAK,cAAcD,CAAC,EAAE,GAAGC,GAAGA,EAAE,aAAa,CAAC4B,KAAI,SAASH,GAAEzB,CAAC,CAAC,GAAG,CAAC,KAAK,kBAAkB,SAASA,CAAC,EAAE,OAAOwO,GAAGxO,CAAC,CAAC,CAAC,gCAAgC,CAAC,MAAMD,EAAE2B,EAAExB,GAAE,QAAQ,OAAO,EAAE,OAAO,KAAK,iBAAiB,YAAYH,CAAC,EAAEyO,GAAGzO,CAAC,CAAC,CAAC,CAAC,MAAMoO,GAAG,SAASpO,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,OAAO,iBAAiBA,CAAC,EAAE,MAAM,CAAC,MAAM,WAAW,UAAU,EAAE,SAAS,CAAC,CAAC,EAAEwO,GAAGxO,GAAGA,GAAG,CAACqO,GAAGrO,EAAE,WAAW,EAAEyO,GAAG,SAASzO,EAAE,CAAC,MAAM,EAAE,OAAO,iBAAiBA,CAAC,EAAE,GAAa,EAAE,UAAZ,QAAoB,MAAM,CAAC,IAAI,SAAS,EAAE,SAAS,EAAE,OAAO,SAAS,EAAE,YAAY,CAAC,CAAC,EAAEmO,GAAG,SAASnO,EAAE,CAAC,OAAgB0B,GAAE1B,CAAC,IAAb,QAAe,WAAW,cAAc,WAAW,aAAa,EAAEsO,GAAGtO,GAAGA,EAAE,QAAQ,IAAI,OAAO,IAAI,OAAOiG,GAAG,OAAO,GAAG,CAAC,EAAE,EAAE,EAAEsI,GAAGvO,GAAG,IAAI,OAAO,IAAI,OAAOiG,GAAG,OAAO,IAAI,CAAC,EAAE,KAAKjG,CAAC,EAAEqO,GAAGrO,GAAG,MAAM,KAAKA,CAAC,EAAE0O,GAAG,CAAC,kBAAkB,eAAe,sBAAsB,oBAAoB,wBAAwB,UAAU,EAAEC,GAAG,kCAAkCC,GAAG,IAAI,OAAOD,GAAG,GAAG,EAAEE,GAAG,IAAI,OAAO,eAAqB,GAAG,EAAEC,GAAG,CAAC,mBAAmB,SAAS9O,EAAE,CAAC,IAAI,EAAE,GAAGA,aAAa8N,GAAG,EAAE9N,MAAM,CAAC,GAAG,EAAEA,aAAa,aAAa,MAAM,IAAI,MAAM,uBAAuB,EAAE,EAAEkO,GAAG,MAAMlO,EAAE,SAAS,EAAE,YAAW,CAAE,CAAC,OAAO,EAAE,yBAAyB,cAAc,EAAE,YAAY,SAASA,EAAE,CAAC,IAAI,EAAE,GAAGA,aAAa8N,GAAG,EAAElC,GAAG,OAAO5L,CAAC,MAAM,CAAC,GAAG,EAAEA,aAAa,aAAa,MAAM,IAAI,MAAM,uBAAuB,EAAE,EAAEA,EAAE,UAAU,EAAE,CAAC,CAAC,OAAO,MAAM,KAAK,EAAE,iBAAiB,6BAA6B,CAAC,EAAE,QAAS,GAAG,CAACwB,GAAE,CAAC,CAAC,CAAG,EAACkN,GAAG,QAAS,GAAG,CAAC,MAAM,KAAK,EAAE,iBAAiB,IAAI,OAAO,EAAE,GAAG,CAAC,CAAC,EAAE,QAASzO,GAAG,CAACA,EAAE,gBAAgB,CAAC,CAAC,EAAG,CAAC,EAAG,MAAM,KAAK,EAAE,iBAAiB2O,EAAE,CAAC,EAAE,QAAS,GAAG,CAAC,GAAG,CAAC,MAAM3O,EAAE,KAAK,MAAM,EAAE,aAAa0O,EAAE,CAAC,EAAE,EAAE,gBAAgBA,EAAE,EAAE,UAAUzO,KAAKD,EAAE,CAAC,MAAME,EAAEF,EAAEC,CAAC,EAAE,EAAE,aAAaA,EAAEC,CAAC,CAAC,CAAC,MAAS,CAAA,CAAE,CAAG,EAAC,EAAE,UAAU,QAAQ0O,GAAG,EAAE,CAAC,CAAC,EAAE,IAAIE,GAAG,OAAO,OAAO,CAAC,UAAU,IAAI,CAAC,EAAE,MAAMC,WAAW5L,EAAC,CAAC,YAAYpD,EAAEC,EAAE,CAAC,MAAM,GAAG,SAAS,EAAE,KAAK,kBAAkBD,EAAE,KAAK,WAAWC,EAAE,KAAK,GAAG,KAAK,WAAW,GAAG,KAAK,KAAK,KAAK,WAAW,IAAI,CAAC,QAAQ,CAAC,OAAO,KAAK,kBAAkB,2BAA2B,KAAK,UAAU,CAAC,CAAC,CAAC+O,GAAG,YAAY,yBAAyB,EAAEA,GAAG,YAAY,yBAAyB,EAAEA,GAAG,YAAY,yBAAyB,EAAEA,GAAG,YAAY,0BAA0B,EAAEA,GAAG,YAAY,0BAA0B,EAAEA,GAAG,YAAY,sBAAsB,EAAEA,GAAG,YAAY,0BAA0B,EAAEA,GAAG,YAAY,mBAAmB,EAAEA,GAAG,YAAY,oBAAoB,EAAEA,GAAG,YAAY,wBAAwB,EAAEA,GAAG,YAAY,wBAAwB,EAAEA,GAAG,YAAY,iCAAiC,EAAEA,GAAG,YAAY,yBAAyB,EAAEA,GAAG,YAAY,2BAA2B,EAAEA,GAAG,YAAY,oBAAoB,EAAEA,GAAG,YAAY,oBAAoB,EAAEA,GAAG,YAAY,wBAAwB,EAAEA,GAAG,YAAY,8BAA8B,EAAEA,GAAG,YAAY,8BAA8B,EAAE,MAAMC,WAAW7L,EAAC,CAAC,aAAa,CAAC,IAAIpD,EAAE,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,GAAG,MAAM,GAAG,SAAS,EAAE,KAAK,mBAAmB,CAAA,EAAG,MAAM,KAAKA,CAAC,EAAE,QAAS,GAAG,CAAC,KAAK,iBAAiB,CAAC,CAAC,CAAG,CAAA,CAAC,gBAAgB,CAAC,MAAMA,EAAE,CAAE,EAAC,UAAUC,KAAK,KAAK,mBAAmB,CAAC,MAAMC,EAAE,KAAK,mBAAmBD,CAAC,EAAED,EAAE,KAAKE,CAAC,CAAC,CAAC,OAAOF,CAAC,CAAC,iBAAiBA,EAAE,CAAC,OAAO,KAAK,mBAAmBA,EAAE,EAAE,IAAI,KAAK,mBAAmBA,EAAE,EAAE,EAAE,IAAIgP,GAAG,KAAKhP,CAAC,GAAG,KAAK,mBAAmBA,EAAE,EAAE,CAAC,CAAC,oBAAoBA,EAAE,CAAC,OAAOA,EAAE,MAAM,KAAK,kBAAkB,CAAC,2BAA2BA,EAAE,CAAC,IAAIC,EAAEC,EAAE,GAAG,KAAK,oBAAoBF,CAAC,EAAE,OAAeC,EAAE,KAAK,YAAf,MAAmCA,IAAT,SAAoBC,EAAED,EAAE,kDAAZ,MAAsEC,IAAT,OAAW,OAAOA,EAAE,KAAKD,EAAED,CAAC,CAAC,CAAC,mBAAmBA,EAAE,CAAC,MAAMC,EAAE,KAAK,mBAAmBD,EAAE,EAAE,EAAE,OAAO,OAAO,KAAK,mBAAmBA,EAAE,EAAE,EAAEC,CAAC,CAAC,CAAC,MAAMiP,EAAE,CAAC,YAAYlP,EAAE,CAAC,KAAK,YAAYA,EAAE,KAAK,SAAS,KAAK,YAAY,SAAS,MAAMC,EAAE,KAAK,YAAY,iBAAkB,EAAC,KAAK,cAAcA,EAAE,CAAC,EAAE,KAAK,YAAYA,EAAE,CAAC,EAAE,KAAK,cAAc,KAAK,SAAS,qBAAqB,KAAK,aAAa,EAAE,KAAK,YAAY,KAAK,SAAS,qBAAqB,KAAK,WAAW,EAAE,KAAK,MAAM,KAAK,SAAS,gBAAgB,KAAK,YAAY,KAAK,EAAE,KAAK,eAAe,KAAK,MAAM,eAAgB,EAAC,KAAK,kBAAkB,KAAK,MAAM,KAAK,oBAAoB,KAAK,YAAY,OAAO,CAAC,EAAE,KAAK,cAAc,KAAK,MAAM,KAAK,oBAAoB,KAAK,YAAY,MAAM,CAAC,CAAC,wBAAwB,CAAC,OAAO,KAAK,MAAM,cAAe,GAAE,KAAK,MAAM,WAAU,GAAI,CAAC,KAAK,MAAM,UAAc,KAAK,cAAc,SAAvB,EAA8B,KAAK,gBAAuB,KAAK,gBAAZ;AAAA,CAAyB,CAAC,2BAA2B,CAAC,OAAO,KAAK,MAAM,iBAAiB,CAAC,KAAK,MAAM,WAAU,IAAK,KAAK,gBAAuB,KAAK,gBAAZ;AAAA,GAAkC,KAAK,oBAAZ;AAAA,EAA8B,CAAC,yBAAyB,CAAC,OAAO,KAAK,MAAM,cAAe,GAAE,KAAK,MAAM,WAAU,GAAI,KAAK,MAAM,QAAO,CAAE,CAAC,uBAAuB,CAAC,OAAO,KAAK,MAAM,WAAY,GAAM,KAAK,cAAc,SAAvB,GAA+B,CAAC,KAAK,MAAM,QAAS,CAAA,CAAC,gCAAgC,CAAC,OAAO,KAAK,MAAM,cAAa,GAAI,CAAC,KAAK,MAAM,WAAU,GAAI,KAAK,MAAM,QAAS,CAAA,CAAC,CAAC,MAAMkP,WAAW/L,EAAC,CAAC,aAAa,CAAC,MAAM,GAAG,SAAS,EAAE,KAAK,SAAS,IAAI0K,GAAG,KAAK,YAAY,CAAE,EAAC,KAAK,kBAAkB,GAAG,KAAK,SAAS,CAAC,CAAC,YAAY9N,EAAE,CAAC,IAAIC,EAAEC,EAAE,GAAG,CAACF,EAAE,UAAU,KAAK,QAAQ,EAAE,OAAO,KAAK,SAASA,EAAE,KAAK,mBAAoB,EAAC,KAAK,YAAmBC,EAAE,KAAK,YAAf,MAAmCA,IAAT,SAAoBC,EAAED,EAAE,gCAAZ,MAAoDC,IAAT,OAAW,OAAOA,EAAE,KAAKD,EAAED,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,KAAK,SAAS,cAAc,KAAK,iBAAgB,CAAE,CAAC,CAAC,aAAaA,EAAE,CAAC,IAAIC,EAAEC,EAAE,EAAE,EAAE,GAAG,CAAC,SAASG,EAAE,cAAcC,CAAC,EAAEN,EAAE,OAAeC,EAAE,KAAK,YAAf,MAAmCA,IAAT,SAAoBC,EAAED,EAAE,+BAAZ,MAAmDC,IAAT,QAAYA,EAAE,KAAKD,CAAC,EAAE,KAAK,YAAkBI,GAAI,IAAIyN,EAAE,EAAE,KAAK,aAAmBxN,GAAI,CAAC,EAAE,CAAC,CAAC,GAAU,EAAE,KAAK,YAAf,MAAmC,IAAT,SAAoB,EAAE,EAAE,8BAAZ,MAAkD,IAAT,OAAW,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,WAAWN,EAAE,CAAC,GAAG,CAAC,eAAeC,CAAC,EAAE,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,CAAC,eAAe,EAAE,EAAE,MAAMC,EAAE,KAAK,mBAAmB,KAAK,YAAY,KAAK,SAAS,kBAAkBF,EAAEE,CAAC,CAAC,EAAE,MAAM,EAAEA,EAAE,CAAC,EAAE,EAAE,EAAEF,EAAE,UAAW,EAAC,OAAOC,GAAG,KAAK,aAAa,CAAC,EAAE,KAAK,iCAAiC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,IAAID,EAAE,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,IAAIoN,GAAG,MAAMnN,EAAE,IAAI6N,GAAG,CAAC9N,CAAC,CAAC,EAAE,OAAO,KAAK,eAAeC,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAID,EAAE,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,IAAI8N,GAAG,MAAM7N,EAAE,KAAK,iBAAkB,EAAC,KAAK,YAAY,KAAK,SAAS,sBAAsBD,EAAEC,CAAC,CAAC,EAAE,MAAMC,EAAED,EAAE,CAAC,EAAE,EAAEC,EAAEF,EAAE,YAAY,OAAO,KAAK,aAAa,CAAC,EAAE,KAAK,iCAAiC,CAACE,EAAE,CAAC,CAAC,CAAC,CAAC,aAAaF,EAAEC,EAAE,CAAC,MAAMC,EAAE,KAAK,yBAA0B,EAAC,EAAEiN,GAAG,4BAA4BnN,EAAEE,CAAC,EAAE,OAAO,KAAK,WAAW,EAAED,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAMD,EAAE,KAAK,iBAAgB,EAAG,KAAK,YAAY,KAAK,SAAS,wBAAwBA,CAAC,CAAC,EAAE,MAAMC,EAAED,EAAE,CAAC,EAAEE,EAAED,EAAE,EAAE,OAAO,KAAK,aAAaC,CAAC,EAAE,KAAK,iCAAiC,CAACD,EAAEC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,MAAMF,EAAE,IAAIkP,GAAG,IAAI,EAAE,GAAGlP,EAAE,wBAAyB,EAAC,OAAO,KAAK,kBAAiB,EAAG,KAAK,aAAaA,EAAE,aAAa,EAAE,GAAGA,EAAE,sBAAqB,EAAG,CAAC,MAAMC,EAAE,IAAI6N,GAAG,CAAC9N,EAAE,MAAM,gBAAiB,CAAA,CAAC,EAAE,OAAO,KAAK,eAAeC,CAAC,CAAC,CAAC,OAAOD,EAAE,uBAAsB,EAAG,KAAK,iBAAgB,EAAGA,EAAE,+BAAgC,EAAC,KAAK,2BAA2BA,EAAE,0BAAyB,EAAG,KAAK,oBAAoBA,CAAC,EAAE,KAAK,aAAa;AAAA,CAAI,CAAC,CAAC,WAAWA,EAAE,CAAC,MAAMC,EAAEiO,GAAG,MAAMlO,CAAC,EAAE,YAAa,EAACE,EAAE,KAAK,iBAAgB,EAAG,KAAK,YAAY,KAAK,SAAS,qBAAqBD,EAAEC,CAAC,CAAC,EAAE,MAAM,EAAEA,EAAE,CAAC,EAAE,EAAE,EAAED,EAAE,YAAY,EAAE,OAAO,KAAK,aAAa,CAAC,EAAE,KAAK,iCAAiC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,YAAYD,EAAE,CAAC,MAAMC,EAAEiO,GAAG,MAAMlO,CAAC,EAAE,YAAa,EAAC,6BAA6B,KAAK,QAAQ,EAAEE,EAAE,KAAK,iBAAiB,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,KAAK,SAAS,uBAAuBA,CAAC,EAAE,OAAO,KAAK,YAAYD,CAAC,EAAE,KAAK,aAAa,CAAC,CAAC,CAAC,WAAWD,EAAE,CAAC,OAAO,KAAK,YAAY,CAACA,CAAC,CAAC,CAAC,CAAC,YAAYA,EAAE,CAAC,MAAMC,EAAE,CAAA,EAAG,OAAO,MAAM,KAAKD,CAAC,EAAE,QAASA,GAAG,CAAC,IAAIE,EAAE,IAAWA,EAAE,KAAK,YAAf,MAAmCA,IAAT,QAAYA,EAAE,4BAA4BF,CAAC,EAAE,CAAC,MAAME,EAAE0M,GAAG,kBAAkB5M,CAAC,EAAEC,EAAE,KAAKC,CAAC,CAAC,CAAC,CAAC,EAAG,KAAK,kBAAkBD,CAAC,CAAC,CAAC,iBAAiBD,EAAE,CAAC,OAAO,KAAK,kBAAkB,CAACA,CAAC,CAAC,CAAC,CAAC,kBAAkBA,EAAE,CAAC,IAAIC,EAAE,IAAIkN,GAAG,OAAO,MAAM,KAAKnN,CAAC,EAAE,QAASA,GAAG,CAAC,IAAI,EAAE,MAAM,EAAEA,EAAE,QAAO,EAAGK,GAAU,EAAEH,GAAE,CAAC,KAAb,MAA0B,IAAT,OAAW,OAAO,EAAE,aAAaI,EAAE,KAAK,yBAAwB,EAAGD,IAAIC,EAAE,aAAaD,GAAG,MAAME,EAAE4M,GAAG,gCAAgCnN,EAAEM,CAAC,EAAEL,EAAEA,EAAE,WAAWM,CAAC,CAAC,GAAI,KAAK,WAAWN,CAAC,CAAC,CAAC,gCAAgCD,EAAE,CAAC,MAAMC,EAAE,KAAK,mBAAmB,GAAGqF,GAAGrF,CAAC,GAA+C,GAA5BD,IAAb,YAAoBC,EAAE,CAAC,EAAE,SAAT,GAA4B,KAAK,oCAAoCD,CAAC,EAAE,MAAM,WAAWC,EAAE,CAAC,EAAE,QAAQA,EAAE,CAAC,EAAE,MAAM,SAAS,QAAQ,CAAC,kBAAkBD,EAAE,CAAC,IAAIC,EAAEC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,GAAG,MAAMG,EAAE,KAAK,iBAAkB,EAAC,IAAIC,EAAE,KAAK,iBAAkB,EAAC,MAAMC,EAAE+E,GAAGhF,CAAC,EAAE,GAAGC,EAAEL,EAAeF,IAAb,YAAoBK,EAAE,CAAC,EAAE,SAAT,EAAgB,EAAEA,EAAE,CAAC,EAAE,QAAQA,EAAE,CAAC,EAAE,MAAMH,GAAG,KAAK,+BAA8B,EAAG,CAAC,MAAMF,EAAE,KAAK,SAAU,EAAC,GAAGA,EAAE,WAAY,EAAC,KAAK,oBAAoB,KAAK,4BAA2B,EAAG,KAAK,aAAaM,EAAE,CAAC,CAAC,EAAEN,EAAE,QAAO,EAAG,QAAQ,CAAC,OAAOO,IAAID,EAAE,KAAK,4BAA4BN,EAAE,CAAC,OAAO,CAAC,CAAC,EAAeA,IAAb,aAAiBC,EAAE,KAAK,qBAAqBK,CAAC,IAAIL,GAAG,KAAK,eAAeA,CAAC,EAAE,KAAK,KAAK,YAAY,KAAK,SAAS,kBAAkBK,CAAC,CAAC,EAAE,KAAK,aAAaA,EAAE,CAAC,CAAC,EAAE,CAACJ,GAAG,CAAC,GAAG,OAAO,CAAC,kBAAkBF,EAAE,CAAC,KAAK,CAACC,CAAC,EAAE,MAAM,KAAK,KAAK,iBAAkB,CAAA,EAAE,OAAO,KAAK,YAAY,KAAK,SAAS,4BAA4BD,EAAEC,CAAC,CAAC,EAAE,KAAK,aAAaA,CAAC,CAAC,CAAC,iBAAiBD,EAAE,CAAC,MAAMC,EAAE,KAAK,SAAS,qBAAqBD,CAAC,EAAE,GAAGC,EAAE,OAAO,KAAK,sBAAuB,EAAC,KAAK,YAAY,KAAK,SAAS,kBAAkBA,CAAC,CAAC,EAAE,KAAK,aAAaA,EAAE,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,KAAK,CAACD,EAAEC,CAAC,EAAE,MAAM,KAAK,KAAK,iBAAgB,CAAE,EAAEC,EAAE,KAAK,SAAS,mBAAmBD,CAAC,EAAE,OAAO,KAAK,uBAAuBC,EAAE,iBAAgB,CAAE,EAAE,KAAK,aAAaF,CAAC,CAAC,CAAC,mBAAmB,CAAC,OAAO,KAAK,oBAAoB,KAAK,YAAa,EAAC,KAAK,aAAa,GAAG,CAAC,CAAC,mBAAmB,CAAC,GAAS,KAAK,qBAAX,KAA+B,OAAO,KAAK,iBAAiB,CAAC,KAAK,oBAAoB,KAAK,oBAAoB,CAAC,CAAC,EAAE,KAAK,iBAAgB,CAAE,CAAC,mBAAmB,CAAC,KAAK,oBAAoB,IAAI,CAAC,oBAAoBA,EAAE,CAAC,MAAMC,EAAE,KAAK,kBAAkBD,CAAC,EAAE,OAAaC,GAAN,MAAcA,IAAL,EAAM,CAAC,uBAAuBD,EAAE,CAAC,MAAMC,EAAE,CAAC,KAAK,kBAAkBD,CAAC,EAAE,OAAOC,EAAE,KAAK,oBAAoBD,EAAEC,CAAC,EAAE,KAAK,uBAAuBD,CAAC,CAAC,CAAC,uBAAuBA,EAAE,CAAC,OAAOwE,GAAGxE,CAAC,EAAE,KAAK,4BAA4BA,CAAC,EAAE,KAAK,2BAA2BA,CAAC,CAAC,CAAC,2BAA2BA,EAAE,CAAC,MAAMC,EAAE,KAAK,sBAAsB,GAAGA,EAAE,CAAC,UAAUD,KAAK,MAAM,KAAKC,EAAE,eAAgB,CAAA,EAAE,GAAG,CAACD,EAAE,WAAY,EAAC,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC,4BAA4BA,EAAE,CAAC,MAAMC,EAAE,KAAK,WAAW,GAAGA,EAAE,MAAM,CAACA,EAAE,gBAAiB,CAAA,CAAC,oBAAoBD,EAAEC,EAAE,CAAC,OAAOuE,GAAGxE,CAAC,EAAE,KAAK,kBAAkBA,EAAEC,CAAC,GAAG,KAAK,iBAAiBD,EAAEC,CAAC,EAAE,KAAK,kBAAkBD,CAAC,EAAEC,EAAE,KAAK,wCAAyC,EAAC,CAAC,0BAA0BD,EAAEC,EAAEC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,SAAS,mBAAmBF,CAAC,EAAEK,GAAU,EAAEmE,GAAG,EAAE,iBAAkB,CAAA,KAAjC,MAA8C,IAAT,OAAW,OAAO,EAAE,eAAe,GAAG,GAASnE,GAAN,MAASA,EAAE,SAASJ,CAAC,EAAE,CAAC,MAAME,EAAE,KAAK,SAAS,2BAA2BH,EAAEC,EAAEC,CAAC,EAAE,KAAK,YAAYC,CAAC,CAAC,CAAC,CAAC,iBAAiBH,EAAEC,EAAE,CAAC,MAAMC,EAAE,KAAK,mBAAmB,GAAG,CAACA,EAAE,OAAO,KAAK,CAAC,EAAE,CAAC,EAAE,MAAM,KAAKA,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,KAAK,YAAY,KAAK,SAAS,oBAAoBF,EAAEC,EAAEC,CAAC,CAAC,EAAE,GAAYF,IAAT,OAAW,CAAC,MAAMA,EAAEmN,GAAG,4BAA4BlN,EAAE,CAAC,KAAKA,CAAC,CAAC,EAAE,OAAO,KAAK,WAAWD,CAAC,CAAC,CAAC,CAAC,kBAAkBA,EAAEC,EAAE,CAAC,MAAMC,EAAE,KAAK,iBAAkB,EAAC,GAAG,KAAK,uBAAuBF,CAAC,EAAE,OAAO,KAAK,YAAY,KAAK,SAAS,2BAA2BA,EAAEC,EAAEC,CAAC,CAAC,EAAE,KAAK,aAAaA,CAAC,CAAC,CAAC,uBAAuBF,EAAE,CAAC,OAAOwE,GAAGxE,CAAC,GAAG,KAAK,qBAAqBA,CAAC,EAAE,KAAK,wBAAuB,IAAK,KAAK,oBAAoBA,CAAC,EAAE,OAAO,KAAK,kBAAkBA,CAAC,EAAE,KAAK,wCAAuC,EAAG,CAAC,oBAAoBA,EAAE,CAAC,MAAMC,EAAE,KAAK,iBAAkB,EAAC,GAAGA,EAAE,OAAO,KAAK,YAAY,KAAK,SAAS,uBAAuBD,EAAEC,CAAC,CAAC,CAAC,CAAC,qBAAqBD,EAAE,CAAC,MAAMC,EAAE,KAAK,mBAAmB,GAAGA,EAAE,OAAO,KAAK,YAAY,KAAK,SAAS,uBAAuBD,EAAEC,CAAC,CAAC,CAAC,CAAC,yBAAyB,CAAC,IAAID,EAAE,QAAeA,EAAE,KAAK,SAAU,KAAzB,MAAqCA,IAAT,OAAW,OAAOA,EAAE,gBAAiB,GAAE,CAAC,CAAC,yBAAyB,CAAC,IAAIA,EAAE,MAAMC,EAAE,KAAK,SAAU,EAAC,GAAGA,EAAE,CAAC,IAAWD,EAAEwE,GAAGvE,EAAE,yBAAwB,CAAE,KAAzC,MAAsDD,IAAT,QAAY,CAACA,EAAE,cAAc,OAAOC,EAAE,gBAAe,EAAG,EAAE,CAAC,MAAMD,EAAE,KAAK,mBAAmB,GAAGA,EAAE,OAAO,UAAU,CAAC,IAAIA,EAAE,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,GAAG,OAAO6D,IAAI,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,CAAA,GAAI,MAAM,EAAE7D,EAAE,MAAM,EAAEA,CAAC,CAAC,EAAEA,EAAE,sBAAuB,EAACC,EAAE,sBAAqB,CAAE,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,MAAMD,EAAE,KAAK,SAAU,EAAC,GAAGA,EAAE,OAAO,KAAK,YAAY,KAAK,SAAS,aAAaA,EAAEA,EAAE,qBAAsB,CAAA,CAAC,CAAC,CAAC,sBAAsB,CAAC,MAAMA,EAAE,KAAK,SAAU,EAAC,GAAGA,EAAE,OAAO,KAAK,YAAY,KAAK,SAAS,aAAaA,EAAEA,EAAE,qBAAoB,CAAE,CAAC,CAAC,CAAC,gCAAgC,CAAC,IAAIA,EAAE,QAAeA,EAAE,KAAK,SAAU,KAAzB,MAAqCA,IAAT,OAAW,OAAOA,EAAE,kBAAiB,GAAI,CAAC,CAAC,6BAA6B,CAAC,IAAIA,EAAE,MAAMC,GAAUD,EAAE,KAAK,SAAQ,KAAvB,MAAqCA,IAAT,OAAW,OAAOA,EAAE,iBAAkB,EAAC,GAAGC,EAAE,OAAO,KAAK,uBAAuBA,CAAC,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAACD,CAAC,EAAE,MAAM,KAAK,KAAK,kBAAkB,EAAE,KAAK,CAAC,MAAMC,CAAC,EAAE,KAAK,SAAS,qBAAqBD,CAAC,EAAE,IAAIE,EAAED,EAAE,MAAM,EAAE,KAAK,SAAU,EAAC,kBAAmB,EAAC,IAAI,EAAE,KAAK,SAAS,gBAAgBC,EAAE,CAAC,EAAE,KAAK,GAAG,EAAE,WAAY,GAAE,EAAE,EAAE,kBAAmB,GAAE,IAAIA,IAAI,EAAE,KAAK,SAAS,gBAAgBA,EAAE,CAAC,EAAEF,EAAE,KAAK,SAAS,qBAAqB,CAAC,MAAMC,EAAE,OAAO,CAAC,CAAC,EAAE,MAAMI,EAAE,KAAK,SAAS,qBAAqB,CAAC,MAAMH,EAAE,OAAO,CAAC,CAAC,EAAE,OAAO,KAAK,YAAY,KAAK,SAAS,+BAA+B,CAACF,EAAEK,CAAC,CAAC,CAAC,CAAC,CAAC,yBAAyB,CAAC,MAAML,EAAE,KAAK,iBAAiB,CAAC,WAAW,EAAE,CAAC,EAAE,GAAGA,EAAE,CAAC,MAAMC,EAAE,KAAK,SAAS,2BAA2BD,CAAC,EAAE,GAAG,MAAM,KAAKqE,GAAI,CAAA,EAAE,QAASrE,GAAG,CAACC,EAAED,CAAC,GAAG,KAAK,uBAAuBA,CAAC,IAAIC,EAAED,CAAC,EAAE,GAAG,GAAI,CAACmF,GAAGlF,EAAE,KAAK,iBAAiB,EAAE,OAAO,KAAK,kBAAkBA,EAAE,KAAK,yCAAyC,CAAC,CAAC,sBAAsB,CAAC,OAAOa,GAAE,KAAK,CAAE,EAAC,KAAK,iBAAiB,CAAC,CAAC,0BAA0B,CAAC,MAAMd,EAAE,CAAE,EAAC,UAAUC,KAAK,KAAK,kBAAkB,CAAC,MAAMC,EAAE,KAAK,kBAAkBD,CAAC,EAAOC,IAAL,IAAQuE,GAAGxE,CAAC,IAAID,EAAEC,CAAC,EAAEC,EAAE,CAAC,OAAOF,CAAC,CAAC,iBAAiB,CAAC,OAAO,KAAK,oBAAoB,SAAS,EAAE,CAAC,CAAC,eAAe,CAAC,OAAO,KAAK,uBAAuB,QAAQ,CAAC,CAAC,oBAAoB,CAAC,OAAO,KAAK,oBAAoB,QAAQ,CAAC,CAAC,aAAaA,EAAE,CAAC,IAAIC,EAAE,MAAMC,EAAE,KAAK,SAAS,uBAAuBF,CAAC,EAAE,OAAeC,EAAE,KAAK,YAAf,MAAmCA,IAAT,OAAW,OAAOA,EAAE,sDAAsDC,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAMF,EAAE,KAAK,iBAAgB,EAAG,GAAGA,EAAE,OAAO,KAAK,SAAS,uBAAuBA,CAAC,CAAC,CAAC,iBAAiBA,EAAE,CAAC,MAAMC,EAAE,KAAK,SAAS,uBAAuBD,CAAC,EAAE,OAAO,KAAK,sBAAsB,iBAAiBC,CAAC,CAAC,CAAC,aAAa,CAAC,MAAMD,EAAE,KAAK,mBAAmB,GAAGA,EAAE,OAAO,KAAK,SAAS,qBAAqBA,EAAE,CAAC,CAAC,CAAC,CAAC,iBAAiBA,EAAE,CAAC,OAAO,KAAK,oBAAoB,KAAK,oBAAoB,KAAK,oBAAqB,EAAC,iBAAiBA,CAAC,GAAGoF,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,wBAAwBpF,EAAEC,EAAE,CAAC,IAAIC,EAAE,KAAK,oBAAoBF,EAAE,GAAG,CAACE,EAAED,GAAG,QAAC,CAAQ,KAAK,oBAAoB,IAAI,CAAC,OAAOC,CAAC,CAAC,gBAAgBF,EAAEC,EAAE,CAAC,MAAMC,EAAE,KAAK,SAAS,uBAAuBF,CAAC,EAAE,OAAO,KAAK,wBAAwBE,EAAED,CAAC,CAAC,CAAC,mBAAmBD,EAAEC,EAAE,CAAC,MAAMC,EAAE,KAAK,gCAAgCF,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,KAAK,wBAAwBE,EAAED,CAAC,CAAC,CAAC,4BAA4BD,EAAE,CAAC,GAAG,CAAC,OAAOC,CAAC,EAAE,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,GAAG,CAACC,EAAE,CAAC,EAAE,MAAM,KAAK,KAAK,iBAAgB,CAAE,EAAE,OAAmBF,IAAb,WAAeC,EAAEC,GAAGD,EAAEC,EAAE,KAAK,iCAAiCA,EAAE,EAAE,EAAED,EAAE,GAAGA,EAAE,EAAE,KAAK,iCAAiC,EAAE,CAAC,EAAEmF,GAAG,CAAClF,EAAE,CAAC,CAAC,CAAC,CAAC,oCAAoCF,EAAE,CAAC,GAAG,KAAK,kBAAkB,MAAM,GAAG,MAAMC,EAAE,KAAK,4BAA4BD,CAAC,EAAE,OAAa,KAAK,qBAAqBC,CAAC,GAAjC,IAAkC,CAAC,sBAAsBD,EAAE,CAAC,IAAIC,EAAEC,EAAE,GAAG,KAAK,kBAAkBA,EAAE,KAAK,SAAS,qBAAqB,KAAK,iBAAiB,MAAM,CAAC,MAAM,EAAE,KAAK,iBAAkB,EAACA,EAAE,KAAK,4BAA4BF,CAAC,EAAEC,EAAE,CAACuF,GAAG,EAAEtF,CAAC,CAAC,CAAC,GAAgBF,IAAb,WAAe,KAAK,iBAAiBE,EAAE,CAAC,CAAC,EAAE,KAAK,iBAAiBA,EAAE,CAAC,CAAC,EAAED,EAAE,CAAC,MAAMD,EAAE,KAAK,qBAAqBE,CAAC,EAAE,GAAGF,EAAE,OAAO,KAAK,eAAeA,CAAC,CAAC,CAAC,CAAC,2BAA2BA,EAAE,CAAC,GAAG,CAAC,OAAOC,CAAC,EAAE,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,GAAG,MAAMC,EAAE,KAAK,4BAA4BF,EAAE,CAAC,OAAOC,CAAC,CAAC,EAAE,OAAO,KAAK,iBAAiBC,CAAC,CAAC,CAAC,2BAA2B,CAAC,GAAG,KAAK,oBAAoB,MAAM,EAAE,OAAO,KAAK,qCAAqC,MAAM,CAAC,CAAC,qCAAqCF,EAAE,CAAC,MAAMC,EAAE,KAAK,YAAW,EAAGC,EAAE,KAAK,SAAS,oCAAoCF,EAAEC,CAAC,EAAE,OAAO,KAAK,iBAAiBC,CAAC,CAAC,CAAC,8BAA8B,CAAC,IAAIF,EAAE,QAAeA,EAAE,KAAK,uBAAsB,KAArC,MAAmDA,IAAT,OAAW,OAAOA,EAAE,QAAQ,CAAC,CAAC,2BAA2B,CAAC,OAAO,KAAK,mBAAmB,KAAK,uBAAuB,KAAK,aAAa,CAAC,CAAC,uBAAuBA,EAAE,CAAC,MAAMC,EAAE,KAAK,SAAS,qBAAqBD,CAAC,EAAE,GAAGC,EAAE,OAAO,KAAK,uBAAuBA,CAAC,CAAC,CAAC,qBAAqBD,EAAE,CAAC,IAAIC,EAAE,OAAeA,EAAE,KAAK,SAAS,mBAAmBD,CAAC,KAA5C,MAAyDC,IAAT,OAAW,OAAOA,EAAE,aAAY,CAAE,CAAC,qBAAqB,CAAC,MAAMD,EAAE,KAAK,iBAAgB,EAAG,GAAGA,EAAE,OAAO,KAAK,SAAS,mBAAmBA,CAAC,CAAC,CAAC,wBAAwB,CAAC,IAAIA,EAAE,OAAeA,EAAE,KAAK,oBAAqB,KAApC,MAAgDA,IAAT,OAAW,OAAOA,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,OAAO,KAAK,YAAY,MAAM,CAAC,CAAC,CAAC,oBAAoB,CAAC,MAAMA,EAAE,KAAK,SAAS,iBAAiB,CAAC,MAAMC,EAAE,QAAQC,CAAC,EAAE,UAAU,CAAC,IAAIF,EAAE,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,CAAA,EAAGC,EAAE,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,GAAG,MAAMC,EAAE,CAAA,EAAGC,EAAE,GAAGC,EAAE,IAAI,IAAIJ,EAAE,QAASA,GAAG,CAACI,EAAE,IAAIJ,CAAC,CAAC,CAAG,EAAC,MAAMK,EAAE,IAAI,IAAI,OAAOJ,EAAE,QAASD,GAAG,CAACK,EAAE,IAAIL,CAAC,EAAEI,EAAE,IAAIJ,CAAC,GAAGE,EAAE,KAAKF,CAAC,CAAC,CAAC,EAAGA,EAAE,QAASA,GAAG,CAACK,EAAE,IAAIL,CAAC,GAAGG,EAAE,KAAKH,CAAC,CAAC,CAAG,EAAC,CAAC,MAAME,EAAE,QAAQC,CAAC,CAAC,EAAE,KAAK,YAAYH,CAAC,EAAE,OAAO,KAAK,YAAYA,EAAE,MAAM,KAAKE,CAAC,EAAE,QAASF,GAAG,CAAC,IAAIC,EAAEC,EAAEF,EAAE,SAAS,MAAaC,EAAE,KAAK,YAAf,MAAmCA,IAAT,SAAoBC,EAAED,EAAE,kCAAZ,MAAsDC,IAAT,QAAYA,EAAE,KAAKD,EAAED,CAAC,CAAC,IAAK,IAAI,CAAC,MAAMA,EAAE,CAAE,EAAC,OAAO,MAAM,KAAKC,CAAC,EAAE,QAASA,GAAG,CAAC,IAAIC,EAAEC,EAAEF,EAAE,SAAS,KAAKD,EAAE,MAAaE,EAAE,KAAK,YAAf,MAAmCA,IAAT,SAAoBC,EAAED,EAAE,+BAAZ,MAAmDC,IAAT,OAAW,OAAOA,EAAE,KAAKD,EAAED,CAAC,CAAC,CAAC,CAAC,EAAGD,CAAC,IAAI,CAAC,8BAA8BA,EAAE,CAAC,IAAIC,EAAEC,EAAE,OAAO,KAAK,YAAmBD,EAAE,KAAK,YAAf,MAAmCA,IAAT,SAAoBC,EAAED,EAAE,gCAAZ,MAAoDC,IAAT,OAAW,OAAOA,EAAE,KAAKD,EAAED,CAAC,CAAC,CAAC,8BAA8BA,EAAE,CAAC,IAAIC,EAAEC,EAAE,OAAO,KAAK,YAAmBD,EAAE,KAAK,YAAf,MAAmCA,IAAT,SAAoBC,EAAED,EAAE,4CAAZ,MAAgEC,IAAT,OAAW,OAAOA,EAAE,KAAKD,EAAED,CAAC,CAAC,CAAC,eAAeA,EAAEC,EAAE,CAAC,IAAIC,EAAE,EAAE,GAAGF,IAAI,KAAK,kBAAkB,OAAO,KAAK,sBAAqB,EAAG,KAAK,kBAAkBA,GAAUE,EAAE,KAAK,YAAf,MAAmCA,IAAT,SAAoB,EAAEA,EAAE,wCAAZ,MAA4D,IAAT,OAAW,OAAO,EAAE,KAAKA,EAAE,KAAK,kBAAkBD,CAAC,CAAC,CAAC,uBAAuB,CAAC,IAAID,EAAEC,EAAE,KAAK,qBAA4BD,EAAE,KAAK,YAAf,MAAmCA,IAAT,SAAoBC,EAAED,EAAE,uCAAZ,MAA2DC,IAAT,QAAYA,EAAE,KAAKD,EAAE,KAAK,iBAAiB,EAAE,KAAK,kBAAkB,KAAK,CAAC,8BAA8BA,EAAEC,EAAE,CAAC,OAAO,KAAK,YAAY,KAAK,SAAS,8BAA8BD,EAAEC,CAAC,CAAC,CAAC,CAAC,6BAA6BD,EAAEC,EAAE,CAAC,OAAO,KAAK,YAAY,KAAK,SAAS,6BAA6BD,EAAEC,CAAC,CAAC,CAAC,CAAC,oBAAoBD,EAAE,CAAC,GAAG,CAAC,SAASC,CAAC,EAAED,EAAE,KAAK,CAAC,MAAME,CAAC,EAAEF,EAAE,IAAI,EAAEA,EAAE,cAAc,EAAE,CAAC,EAAE,EAAE,CAAC,EAAEE,EAAE,sBAAqB,IAAKF,EAAE,cAAc,QAAQE,EAAE,kBAAyBF,EAAE,gBAAT;AAAA,EAAuB,GAAG,EAAEC,EAAEA,EAAE,kBAAkB,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,GAAUD,EAAE,gBAAT;AAAA,EAA8BA,EAAE,oBAAT;AAAA,EAA2B,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,GAAGA,EAAE,cAAc,OAAO,GAAG,IAAI,GAAG,GAAG,MAAMK,EAAE,IAAIyN,GAAG,CAAC5N,EAAE,oBAAqB,EAAC,gBAAiB,CAAA,CAAC,EAAE,OAAO,KAAK,YAAYD,EAAE,sBAAsBI,EAAE,CAAC,CAAC,EAAE,KAAK,aAAa,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAML,EAAE,KAAK,iBAAkB,EAAC,GAAGA,EAAE,CAAC,KAAK,CAAC,MAAMC,CAAC,EAAED,EAAE,CAAC,EAAE,GAAGC,EAAE,EAAE,OAAO,KAAK,SAAS,gBAAgBA,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAMD,EAAE,KAAK,iBAAkB,EAAC,GAAGA,EAAE,OAAO,KAAK,SAAS,gBAAgBA,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,qBAAqBA,EAAE,CAAC,MAAMC,EAAE,KAAK,SAAS,mBAAmBD,CAAC,EAAE,GAAGC,EAAE,aAAa,GAAG,OAAO,IAAI;AAAA,CAAI,EAAE,OAAOA,EAAE,iBAAiB,CAAC,CAAC,CAAC,yCAAyC,CAAC,IAAID,EAAEC,EAAE,OAAeD,EAAE,KAAK,YAAf,MAAmCA,IAAT,SAAoBC,EAAED,EAAE,yCAAZ,MAA6DC,IAAT,OAAW,OAAOA,EAAE,KAAKD,EAAE,KAAK,iBAAiB,CAAC,CAAC,iCAAiCA,EAAE,CAAC,IAAIC,EAAEC,EAAE,OAAeD,EAAE,KAAK,YAAf,MAAmCA,IAAT,SAAoBC,EAAED,EAAE,yCAAZ,MAA6DC,IAAT,OAAW,OAAOA,EAAE,KAAKD,EAAED,CAAC,CAAC,CAAC,iCAAiCA,EAAEC,EAAE,CAAC,MAAMC,EAAE,KAAK,SAAS,cAAa,EAAG,EAAEA,EAAE,qBAAqBF,CAAC,EAAE,OAAOE,EAAE,mBAAmB,EAAED,CAAC,CAAC,CAAC,CAACkP,GAAG,YAAY,qCAAqC,EAAEA,GAAG,YAAY,sDAAsD,EAAEA,GAAG,YAAY,uDAAuD,EAAEA,GAAG,YAAY,8CAA8C,EAAEA,GAAG,YAAY,2CAA2C,EAAEA,GAAG,YAAY,+BAA+B,EAAE,MAAMC,WAAWhM,EAAC,CAAC,YAAYpD,EAAE,CAAC,MAAM,GAAG,SAAS,EAAE,KAAK,YAAYA,EAAE,KAAK,YAAY,GAAG,KAAK,YAAY,CAAA,CAAE,CAAC,gBAAgBA,EAAE,CAAC,GAAG,CAAC,QAAQC,EAAE,eAAeC,CAAC,EAAE,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,GAAG,MAAM,EAAE,KAAK,YAAY,MAAM,EAAE,EAAE,CAAC,EAAE,GAAG,CAACA,GAAG,CAACmP,GAAG,EAAErP,EAAEC,CAAC,EAAE,CAAC,MAAMC,EAAE,KAAK,YAAY,CAAC,YAAYF,EAAE,QAAQC,CAAC,CAAC,EAAE,KAAK,YAAY,KAAKC,CAAC,EAAE,KAAK,YAAY,CAAE,CAAA,CAAC,CAAC,MAAM,CAAC,MAAMF,EAAE,KAAK,YAAY,IAAG,EAAG,GAAGA,EAAE,CAAC,MAAMC,EAAE,KAAK,YAAYD,CAAC,EAAE,OAAO,KAAK,YAAY,KAAKC,CAAC,EAAE,KAAK,YAAY,aAAaD,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAMA,EAAE,KAAK,YAAY,IAAG,EAAG,GAAGA,EAAE,CAAC,MAAMC,EAAE,KAAK,YAAYD,CAAC,EAAE,OAAO,KAAK,YAAY,KAAKC,CAAC,EAAE,KAAK,YAAY,aAAaD,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,KAAK,YAAY,OAAO,CAAC,CAAC,SAAS,CAAC,OAAO,KAAK,YAAY,OAAO,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,YAAYA,EAAE,QAAQC,CAAC,EAAE,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,GAAG,MAAM,CAAC,YAAkBD,GAAN,KAAQ,OAAOA,EAAE,SAAQ,EAAG,QAAQ,KAAK,UAAUC,CAAC,EAAE,SAAS,KAAK,YAAY,YAAa,CAAA,CAAC,CAAC,CAAC,MAAMoP,GAAG,CAACrP,EAAE,EAAEE,KAAWF,GAAN,KAAQ,OAAOA,EAAE,gBAAsB,GAAN,KAAQ,OAAO,EAAE,cAAoBA,GAAN,KAAQ,OAAOA,EAAE,WAAW,KAAK,UAAUE,CAAC,EAAEoP,GAAG,oBAAoB,MAAMC,EAAE,CAAC,YAAYvP,EAAE,CAAC,KAAK,SAASA,EAAE,SAAS,KAAK,cAAcA,EAAE,aAAa,CAAC,SAAS,CAAC,OAAO,KAAK,qBAAoB,EAAG,KAAK,qBAAqB,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,KAAK,SAAS,cAAc,KAAK,aAAa,CAAC,CAAC,sBAAsB,CAAC,OAAO,KAAK,mBAAkB,EAAG,IAAKA,GAAG,KAAK,SAAS,KAAK,SAAS,uBAAuBsP,GAAGtP,CAAC,CAAG,CAAA,CAAC,qBAAqB,CAAC,IAAIA,EAAE,EAAE,KAAK,qBAAqB,QAASC,GAAG,CAACA,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAE,IAAIA,EAAE,CAAC,GAAGD,EAAEC,EAAE,CAAC,GAAGD,EAAS,KAAK,SAAS,uBAAuBC,EAAE,CAAC,CAAC,IAAhD;AAAA,IAAoD,KAAK,SAAS,KAAK,SAAS,wBAAwBA,EAAE,CAAC,CAAC,EAAEA,EAAE,CAAC,EAAE,KAAK,cAAc,CAAC,GAAG,KAAK,yBAA0B,EAACA,EAAE,CAAC,IAAID,KAASC,EAAE,CAAC,IAAP,GAAiB,KAAK,SAAS,uBAAuBA,EAAE,CAAC,EAAE,CAAC,IAAlD;AAAA,IAAsD,KAAK,SAAS,KAAK,SAAS,wBAAwBA,EAAE,CAAC,CAAC,EAAEA,EAAE,CAAC,EAAE,KAAK,cAAc,CAAC,GAAG,KAAK,2BAA2BA,EAAE,CAAC,IAAID,KAAK,KAAK,SAAS,KAAK,SAAS,2BAA2BsP,GAAG,GAAGrP,CAAC,EAAE,CAAC,CAAE,CAAC,oBAAoB,CAAC,OAAO,KAAK,SAAS,4BAA4BqP,EAAE,CAAC,CAAC,oBAAoB,CAAC,OAAO,KAAK,SAAS,2BAA2B,eAAe,CAAC,UAAU,SAAS,CAAC,CAAC,CAAC,0BAA0B,CAAC,KAAK,cAAc,CAAC,GAAG,EAAE,KAAK,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,MAAME,GAAG,SAASxP,EAAE,CAAC,MAAM,EAAE,IAAIuP,GAAGvP,CAAC,EAAE,OAAO,EAAE,QAAS,EAAC,EAAE,aAAa,EAAEyP,GAAG,CAACD,EAAE,EAAE,MAAME,EAAE,CAAC,YAAY1P,EAAEC,EAAEC,EAAE,CAAC,KAAK,YAAY,KAAK,YAAY,KAAK,IAAI,EAAE,KAAK,YAAYF,EAAE,KAAK,iBAAiBC,EAAE,KAAK,QAAQC,EAAE,KAAK,YAAY,IAAIkP,GAAG,KAAK,WAAW,EAAE,KAAK,QAAQK,GAAG,MAAM,CAAC,CAAC,CAAC,aAAazP,EAAE,CAAC,OAAO,KAAK,aAAa,CAAC,SAASA,EAAE,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAIA,EAAE,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,GAAG,MAAMC,EAAEiO,GAAG,MAAMlO,EAAE,CAAC,iBAAiB,KAAK,OAAO,CAAC,EAAE,YAAa,EAAC,OAAO,KAAK,aAAaC,CAAC,CAAC,CAAC,SAASD,EAAE,CAAC,GAAG,CAAC,SAASC,EAAE,cAAcC,CAAC,EAAEF,EAAE,OAAOC,EAAE6N,GAAG,SAAS7N,CAAC,EAAE,KAAK,aAAa,CAAC,SAASA,EAAE,cAAcC,CAAC,CAAC,CAAC,CAAC,aAAaF,EAAE,CAAC,OAAO,KAAK,YAAY,IAAIoP,GAAG,KAAK,WAAW,EAAE,KAAK,YAAY,aAAapP,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,KAAK,YAAY,QAAQ,CAAC,qBAAqB,CAAC,OAAO,KAAK,YAAY,oBAAqB,CAAA,CAAC,aAAa,CAAC,OAAO,KAAK,YAAY,aAAa,CAAC,QAAQ,CAAC,OAAO,KAAK,aAAa,CAAC,kBAAkBA,EAAE,CAAC,OAAO,KAAK,YAAY,kBAAkBA,CAAC,CAAC,CAAC,iBAAiBA,EAAE,CAAC,OAAO,KAAK,YAAY,iBAAiBA,CAAC,CAAC,CAAC,kBAAkBA,EAAE,CAAC,OAAO,KAAK,YAAY,kBAAkBA,CAAC,CAAC,CAAC,eAAeA,EAAE,CAAC,OAAO,KAAK,YAAY,eAAeA,CAAC,CAAC,CAAC,WAAWA,EAAE,CAAC,OAAO,KAAK,YAAY,WAAWA,CAAC,CAAC,CAAC,YAAYA,EAAE,CAAC,OAAO,KAAK,YAAY,YAAYA,CAAC,CAAC,CAAC,WAAWA,EAAE,CAAC,OAAO,KAAK,YAAY,WAAWA,CAAC,CAAC,CAAC,aAAaA,EAAE,CAAC,OAAO,KAAK,YAAY,aAAaA,CAAC,CAAC,CAAC,WAAWA,EAAE,CAAC,OAAO,KAAK,YAAY,WAAWA,CAAC,CAAC,CAAC,iBAAiB,CAAC,OAAO,KAAK,YAAY,gBAAe,CAAE,CAAC,kBAAkB,CAAC,OAAO,KAAK,YAAY,iBAAgB,CAAE,CAAC,aAAa,CAAC,OAAO,KAAK,YAAY,YAAW,CAAE,CAAC,wBAAwBA,EAAE,CAAC,MAAMC,EAAE,KAAK,YAAW,EAAG,uBAAuB,CAACD,EAAEA,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,iBAAiB,6BAA6BC,CAAC,CAAC,CAAC,2BAA2BD,EAAE,CAAC,OAAO,KAAK,YAAY,2BAA2BA,CAAC,CAAC,CAAC,sBAAsBA,EAAE,CAAC,OAAO,KAAK,YAAY,sBAAsBA,CAAC,CAAC,CAAC,iBAAiBA,EAAE,CAAC,OAAO,KAAK,YAAY,iBAAiBA,CAAC,CAAC,CAAC,kBAAkBA,EAAE,CAAC,IAAIC,EAAE,EAAE,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,SAAwB,UAAU,CAAC,EAAE,OAAO,KAAK,YAAY,oBAAoBD,EAAEC,CAAC,CAAC,CAAC,kBAAkBD,EAAE,CAAC,OAAO,KAAK,YAAY,oBAAoBA,CAAC,CAAC,CAAC,qBAAqBA,EAAE,CAAC,OAAO,KAAK,YAAY,uBAAuBA,CAAC,CAAC,CAAC,oBAAoBA,EAAE,CAAC,OAAO,KAAK,YAAY,uBAAuBA,CAAC,CAAC,CAAC,0BAA0BA,EAAEC,EAAEC,EAAE,CAAC,KAAK,YAAY,0BAA0BF,EAAEC,EAAEC,CAAC,CAAC,CAAC,yBAAyB,CAAC,OAAO,KAAK,YAAY,wBAAyB,CAAA,CAAC,yBAAyB,CAAC,OAAO,KAAK,YAAY,wBAAuB,CAAE,CAAC,sBAAsB,CAAC,GAAG,KAAK,wBAAuB,EAAG,OAAO,KAAK,YAAY,sBAAsB,CAAC,sBAAsB,CAAC,GAAG,KAAK,0BAA0B,OAAO,KAAK,YAAY,qBAAoB,CAAE,CAAC,SAAS,CAAC,OAAO,KAAK,YAAY,SAAS,CAAC,SAAS,CAAC,OAAO,KAAK,YAAY,QAAS,CAAA,CAAC,gBAAgBF,EAAE,CAAC,GAAG,CAAC,QAAQC,EAAE,eAAeC,CAAC,EAAE,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,CAAA,EAAG,OAAO,KAAK,YAAY,gBAAgBF,EAAE,CAAC,QAAQC,EAAE,eAAeC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,KAAK,QAAO,EAAG,OAAO,KAAK,YAAY,KAAM,CAAA,CAAC,MAAM,CAAC,GAAG,KAAK,QAAO,EAAG,OAAO,KAAK,YAAY,KAAI,CAAE,CAAC,CAAC,MAAMyP,EAAE,CAAC,YAAY3P,EAAE,CAAC,KAAK,QAAQA,CAAC,CAAC,mCAAmCA,EAAEC,EAAE,CAAC,GAAG,CAAC,OAAOC,CAAC,EAAE,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,MAAMG,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EAAEC,EAAE,KAAK,mCAAmCN,CAAC,EAAEM,IAAIN,EAAEM,EAAE,WAAWL,EAAEsB,GAAEjB,CAAC,GAAG,MAAMC,EAAEkB,GAAE,KAAK,QAAQ,CAAC,YAAYmO,EAAE,CAAC,EAAE,KAAKrP,EAAE,SAAU,GAAE,CAAC,MAAMD,EAAEC,EAAE,YAAY,GAAGD,IAAIN,GAAGmC,GAAEnC,CAAC,EAAE,CAACkC,GAAE5B,CAAC,IAAID,EAAE,QAAQJ,GAAG,KAAK,CAAC,GAAGK,EAAE,aAAaN,GAAG,GAAG,MAAMC,EAAE,cAAc,CAACqB,GAAEtB,EAAEM,CAAC,GAAG,EAAE,EAAE,MAAM0B,GAAE1B,EAAE,CAAC,OAAOJ,CAAC,CAAC,GAAG,GAAGG,EAAE,QAAQA,EAAE,OAAO,EAAE,EAAE,IAAIA,EAAE,QAAQwP,GAAGvP,CAAC,CAAC,CAAC,OAAOD,CAAC,CAAC,mCAAmCL,EAAE,CAAC,IAAIC,EAAEC,EAAE,GAAOF,EAAE,QAAN,GAAiBA,EAAE,SAAN,EAAa,CAAC,IAAIC,EAAE,KAAK,QAAQC,EAAE,EAAED,EAAE,YAAY,GAAGA,EAAEA,EAAE,WAAW6B,GAAE7B,CAAC,EAAE,CAACC,EAAE,EAAE,KAAK,CAAC,MAAM,CAACD,EAAEC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,KAAK,8BAA8BF,CAAC,EAAE,GAAG,EAAE,CAAC,GAAGmC,GAAE,CAAC,EAAM0N,GAAG,CAAC,IAAR,GAAW5P,EAAE,EAAE,WAAW,WAAWC,EAAEqB,GAAE,EAAE,UAAU,EAAEW,GAAE,EAAE,CAAC,KAAK,OAAO,CAAC,GAAGhC,MAAMD,EAAE,EAAEC,EAAEF,EAAE,OAAO,OAAO,CAAC,GAAGC,EAAE,EAAE,WAAW,CAAC+B,GAAE,EAAE,eAAe,GAAG,CAACF,GAAE7B,CAAC,EAAE,KAAK,IAAIA,EAAE,YAAY,EAAEA,EAAEA,EAAEA,EAAE,WAAW,CAAC6B,GAAE7B,CAAC,IAAI,CAACC,EAAEqB,GAAE,CAAC,EAAMvB,EAAE,SAAN,GAAcE,GAAG,CAAC,MAAM,CAACD,EAAEC,CAAC,CAAC,CAAC,CAAC,8BAA8BF,EAAE,CAAC,IAAIC,EAAEC,EAAE,EAAE,EAAE,UAAU,KAAK,KAAK,4BAA4BF,EAAE,KAAK,EAAE,CAAC,MAAMK,EAAEwP,GAAG,CAAC,EAAE,GAAG7P,EAAE,QAAQ,EAAEK,EAAE,GAAG8B,GAAE,CAAC,GAAG,GAAGlC,EAAE,EAAEC,EAAE,EAAEF,EAAE,SAASE,GAAGgC,GAAEjC,CAAC,EAAE,WAAWA,IAAIA,EAAE,EAAEC,EAAE,GAAG,GAAG,GAAGG,EAAE,EAAEL,EAAE,OAAO,KAAK,CAAC,MAAM,CAACC,EAAEC,CAAC,CAAC,CAAC,mCAAmCF,EAAE,CAAC,KAAKA,GAAGA,IAAI,KAAK,SAAS,CAAC,GAAGoC,GAAEpC,CAAC,EAAE,OAAOA,EAAEA,EAAEA,EAAE,UAAU,CAAC,CAAC,4BAA4BA,EAAE,CAAC,MAAMC,EAAE,CAAA,EAAGC,EAAEuB,GAAE,KAAK,QAAQ,CAAC,YAAYqO,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,KAAK5P,EAAE,YAAY,CAAC,MAAMG,EAAEH,EAAE,YAAY,IAAI,EAAE,GAAG6B,GAAE1B,CAAC,GAAG,GAAS,GAAN,KAAQ,IAAI,EAAE,EAAE,IAAIL,EAAE,EAAE,WAAW,EAAE,WAAW,GAAGC,EAAE,KAAKI,CAAC,CAAC,CAAC,OAAOJ,CAAC,CAAC,CAAC,MAAM4P,GAAG,SAAS7P,EAAE,CAAC,OAAGA,EAAE,WAAW,KAAK,UAAckC,GAAElC,CAAC,EAAS,EAASA,EAAE,YAAY,OAAoB0B,GAAE1B,CAAC,IAAV,MAAaoC,GAAEpC,CAAC,EAAE,EAAE,CAAC,EAAE8P,GAAG,SAAS9P,EAAE,CAAC,OAAO+P,GAAG/P,CAAC,IAAI,WAAW,cAAc4P,GAAG5P,CAAC,EAAE,WAAW,aAAa,EAAE+P,GAAG,SAAS/P,EAAE,CAAC,OAAOqC,GAAErC,CAAC,EAAE,WAAW,cAAc,WAAW,aAAa,EAAE4P,GAAG,SAAS5P,EAAE,CAAC,OAAOoC,GAAEpC,EAAE,UAAU,EAAE,WAAW,cAAc,WAAW,aAAa,EAAE,MAAMgQ,EAAE,CAAC,wBAAwBhQ,EAAE,CAAC,IAAIC,EAAE,CAAC,EAAEC,EAAE,EAAE,CAAC,EAAEF,EAAE,GAAG,SAAS,uBAAuB,CAAC,KAAK,CAAC,WAAWA,EAAE,OAAOI,CAAC,EAAE,SAAS,uBAAuBF,EAAE,CAAC,EAAE,OAAOD,EAAE,SAAS,cAAcA,EAAE,SAASD,EAAEI,CAAC,EAAEH,CAAC,CAAC,GAAG,SAAS,oBAAoB,OAAO,SAAS,oBAAoBC,EAAE,CAAC,EAAE,GAAG,SAAS,KAAK,gBAAgB,CAAC,MAAMF,EAAE4F,GAAI,EAAC,GAAG,CAAC,MAAM5F,EAAE,SAAS,KAAK,gBAAiB,EAACA,EAAE,YAAYE,EAAE,CAAC,EAAEF,EAAE,OAAM,CAAE,MAAS,CAAE,CAAA,OAAOC,EAAE2F,GAAI,EAACE,GAAG9F,CAAC,EAAEC,CAAC,CAAC,CAAC,0BAA0BD,EAAE,CAAC,MAAMC,EAAE,MAAM,KAAKD,EAAE,eAAc,CAAE,EAAE,MAAM,CAACC,EAAE,CAAC,EAAEA,EAAEA,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAMgQ,WAAW7M,EAAC,CAAC,YAAYpD,EAAE,CAAC,MAAM,GAAG,SAAS,EAAE,KAAK,aAAa,KAAK,aAAa,KAAK,IAAI,EAAE,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,IAAI,EAAE,KAAK,QAAQA,EAAE,KAAK,eAAe,IAAI2P,GAAG,KAAK,OAAO,EAAE,KAAK,YAAY,IAAIK,GAAG,KAAK,UAAU,EAAE/O,GAAE,YAAY,CAAC,UAAU,KAAK,QAAQ,aAAa,KAAK,YAAY,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAIjB,EAAE,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,CAAA,EAAG,OAAWA,EAAE,SAAP,GAAc,KAAK,gCAAgC4F,IAAI,EAAE5F,EAAE,WAAW,KAAK,qBAAqB,KAAK,oBAAoB,KAAK,oBAAoB,KAAK,oBAAoB,CAAC,iBAAiBA,EAAE,CAAC,GAAG,KAAK,oBAAoB,OAAOA,EAAEoF,GAAGpF,CAAC,EAAE,MAAMC,EAAE,KAAK,gCAAgCD,CAAC,EAAEC,IAAI6F,GAAG7F,CAAC,EAAE,KAAK,2BAA2BD,CAAC,EAAE,CAAC,+BAA+BA,EAAE,CAACA,EAAEoF,GAAGpF,CAAC,EAAE,MAAMC,EAAE,KAAK,mBAAmBD,EAAE,CAAC,CAAC,EAAEE,EAAE,KAAK,mBAAmBF,EAAE,CAAC,CAAC,EAAE,KAAK,iBAAiB,CAACC,EAAEC,CAAC,CAAC,CAAC,CAAC,6BAA6BF,EAAE,CAAC,MAAMC,EAAE,KAAK,gCAAgCD,CAAC,EAAE,GAAGC,EAAE,OAAO,KAAK,0BAA0BA,CAAC,EAAE,CAAC,CAAC,CAAC,uBAAuBD,EAAE,CAAC,MAAMC,EAAE,MAAM,KAAK,KAAK,8BAA8BD,CAAC,CAAC,EAAE,CAAC,EAAE,OAAOkC,GAAEjC,CAAC,CAAC,CAAC,MAAM,CAAI,KAAK,aAAR,IAAsB,KAAK,6BAA6B,KAAK,oBAAoB,KAAK,iBAAkB,EAAC,CAAC,QAAQ,CAAC,GAAM,EAAE,KAAK,WAAV,EAAoB,CAAC,KAAK,CAAC,oBAAoBD,CAAC,EAAE,KAAK,GAAG,KAAK,oBAAoB,KAAWA,GAAN,KAAQ,OAAO,KAAK,iBAAiBA,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAIA,EAAE,OAAeA,EAAE2F,GAAI,KAAd,MAA0B3F,IAAT,OAAW,OAAOA,EAAE,gBAAiB,CAAA,CAAC,sBAAsB,CAAC,IAAIA,EAAE,QAAoBA,EAAE4F,GAAI,KAAd,MAA0B5F,IAAT,OAAW,OAAOA,EAAE,aAA3C,EAAqD,CAAC,qBAAqB,CAAC,MAAM,CAAC,KAAK,sBAAsB,CAAC,gCAAgCA,EAAEC,EAAE,CAAC,GAASD,GAAN,MAAS,CAAC,KAAK,sBAAsBA,CAAC,EAAE,OAAO,MAAME,EAAE,KAAK,mCAAmCF,EAAE,eAAeA,EAAE,YAAYC,CAAC,EAAE,GAAG,CAACC,EAAE,OAAO,MAAM,EAAEF,EAAE,UAAU,OAAO,KAAK,mCAAmCA,EAAE,aAAaA,EAAE,UAAUC,CAAC,EAAE,OAAOmF,GAAG,CAAClF,EAAE,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,KAAK,iBAAkB,CAAA,CAAC,kBAAkB,CAAC,IAAIF,EAAE,KAAK,OAAO,GAAG,MAAMC,EAAE,IAAI,CAAC,GAAG,KAAK,OAAO,GAAG,aAAaC,CAAC,EAAE,MAAM,KAAKF,CAAC,EAAE,QAASA,GAAG,CAACA,EAAE,SAAS,CAAC,EAAGsB,GAAE,SAAS,KAAK,OAAO,EAAE,OAAO,KAAK,mBAAkB,CAAE,EAAEpB,EAAE,WAAWD,EAAE,GAAG,EAAED,EAAE,CAAC,YAAY,SAAS,EAAE,IAAKA,GAAGiB,GAAEjB,EAAE,CAAC,UAAU,SAAS,aAAaC,CAAC,CAAC,CAAC,CAAE,CAAC,oBAAoB,CAAC,GAAG,CAAC,KAAK,QAAQ,CAACoB,GAAE,KAAK,OAAO,EAAE,OAAO,KAAK,2BAA4B,CAAA,CAAC,2BAA2BrB,EAAE,CAAC,IAAIC,EAAEC,EAAE,IAAUF,IAAIA,EAAE,KAAK,gCAAgC4F,IAAI,KAAI,CAACJ,GAAGxF,EAAE,KAAK,oBAAoB,EAAE,OAAO,KAAK,qBAAqBA,GAAUC,EAAE,KAAK,YAAf,MAAmCA,IAAT,SAAoBC,EAAED,EAAE,0BAAZ,MAA8CC,IAAT,OAAW,OAAOA,EAAE,KAAKD,EAAE,KAAK,qBAAqB,MAAM,CAAC,CAAC,CAAC,CAAC,gCAAgCD,EAAE,CAAC,MAAMC,EAAE,KAAK,mCAAmCD,EAAE,CAAC,CAAC,EAAEE,EAAEoF,GAAGtF,CAAC,EAAEC,EAAE,KAAK,mCAAmCD,EAAE,CAAC,CAAC,GAAGC,EAAE,GAASA,GAAN,MAAeC,GAAN,KAAQ,CAAC,MAAMF,EAAE,SAAS,YAAa,EAAC,OAAOA,EAAE,SAAS,GAAG,MAAM,KAAKC,GAAG,EAAE,CAAC,EAAED,EAAE,OAAO,GAAG,MAAM,KAAKE,GAAG,CAAA,CAAE,CAAC,EAAEF,CAAC,CAAC,CAAC,mBAAmBA,EAAE,CAAC,MAAMC,EAAE,KAAK,wBAAwBD,CAAC,EAAE,IAAIE,EAAE,GAAGD,EAAE,OAAeC,EAAE,KAAK,gCAAgCD,CAAC,KAAhD,MAA6DC,IAAT,OAAW,OAAOA,EAAE,CAAC,CAAC,CAAC,sBAAsBF,EAAE,CAAC,OAAOA,EAAE,UAAUsB,GAAE,KAAK,QAAQtB,EAAE,cAAc,EAAEsB,GAAE,KAAK,QAAQtB,EAAE,cAAc,GAAGsB,GAAE,KAAK,QAAQtB,EAAE,YAAY,CAAC,CAAC,CAACiQ,GAAG,YAAY,mDAAmD,EAAEA,GAAG,YAAY,mDAAmD,EAAEA,GAAG,YAAY,8CAA8C,EAAEA,GAAG,YAAY,qCAAqC,EAAEA,GAAG,YAAY,uCAAuC,EAAE,IAAIC,GAAG,OAAO,OAAO,CAAC,UAAU,KAAK,WAAWtD,GAAG,kBAAkBqC,GAAG,gBAAgBpC,GAAG,MAAMO,GAAG,YAAY+B,GAAG,SAASrB,GAAG,OAAO4B,GAAG,WAAWxB,GAAG,cAAclD,GAAG,mBAAmBkE,GAAG,eAAeS,GAAG,kBAAkBX,GAAG,MAAMtC,GAAG,YAAYsD,GAAG,iBAAiBC,GAAG,eAAelD,GAAG,YAAYD,GAAG,KAAKK,GAAG,YAAYiC,EAAE,CAAC,EAAEe,GAAG,OAAO,OAAO,CAAC,UAAU,KAAK,WAAWhJ,GAAG,eAAegE,GAAG,UAAUQ,GAAG,aAAaC,GAAG,UAAUL,GAAG,0BAA0BD,GAAG,SAASE,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK4E,GAAG,IAAIC,GAAG,SAASC,EAAE,EAAE3N,GAAE4N,GAAG,SAASvQ,EAAE,CAAC,OAAO,UAAU,CAAC,MAAM,EAAEA,EAAE,MAAM,KAAK,SAAS,EAAE,EAAE,GAAE,EAAG,KAAK,QAAQ,KAAK,MAAM,CAAA,GAAI,KAAK,MAAM,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,MAAMwQ,WAAWpN,EAAC,CAAC,YAAYpD,EAAEC,EAAEC,EAAE,CAAC,IAAI,EAAE,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,CAAA,EAAG,MAAM,GAAG,SAAS,EAAE8L,GAAG,KAAK,qBAAqBuE,GAAI,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,QAAQ,QAAQ,YAAY,EAAE,EAAE,KAAK,IAAI,OAAO,KAAK,QAAQ,QAAQ,WAAW,EAAI,CAAA,EAAEvE,GAAG,KAAK,aAAauE,GAAI,IAAI,CAAC,MAAMvQ,EAAE2B,EAAE,CAAC,QAAQ,MAAM,UAAU0O,GAAG,kBAAkB,KAAK,CAAC,YAAY,EAAE,EAAE,WAAW1O,EAAE,CAAC,QAAQ,MAAM,UAAU,kBAAkB,WAAWA,EAAE,CAAC,QAAQ,OAAO,UAAU,+CAA+C,WAAWA,EAAE,CAAC,QAAQ,SAAS,UAAU,kCAAkC,YAAYyO,GAAG,OAAO,WAAW,CAAC,MAAMA,GAAG,MAAM,EAAE,KAAK,CAAC,WAAW,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,KAAK,WAAW,iBAAiBpQ,EAAE,YAAY2B,EAAE,CAAC,QAAQ,MAAM,UAAU0O,GAAG,4BAA4B,WAAW1O,EAAE,CAAC,QAAQ,OAAO,UAAU0O,GAAG,mBAAmB,WAAW,CAAC1O,EAAE,CAAC,QAAQ,OAAO,UAAU0O,GAAG,eAAe,YAAY,KAAK,WAAW,YAAW,EAAG,WAAW,CAAC,MAAM,KAAK,WAAW,YAAW,CAAE,CAAC,CAAC,EAAE1O,EAAE,CAAC,QAAQ,OAAO,UAAU0O,GAAG,eAAe,YAAY,KAAK,WAAW,qBAAsB,CAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEpP,GAAE,QAAQ,CAAC,UAAUjB,EAAE,aAAa,KAAK,eAAe,CAAC,EAAEiB,GAAE,QAAQ,CAAC,UAAUjB,EAAE,iBAAiB,qBAAqB,aAAa,KAAK,oBAAoB,CAAC,EAAEmB,GAAE,iCAAiC,CAAC,UAAU,KAAK,QAAQ,WAAW,CAAC,QAAQnB,EAAE,WAAW,KAAK,UAAU,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,KAAK,QAAQ,YAAYA,CAAC,EAAE,KAAK,IAAIwB,GAAExB,CAAC,CAAC,CAAC,EAAG,EAAEgM,GAAG,KAAK,uBAAuBuE,GAAI,IAAI,CAAC,MAAMvQ,EAAE2B,EAAE,CAAC,QAAQ,WAAW,UAAU0O,GAAG,wBAAwB,WAAW,CAAC,YAAYD,GAAG,kBAAkB,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC,EAAEpQ,EAAE,MAAM,KAAK,gBAAgB,aAAa,MAAMC,EAAED,EAAE,UAAS,EAAGC,EAAE,UAAU,IAAI,uBAAuB,EAAEA,EAAE,SAAS,GAAG,MAAMC,EAAE,UAAU,CAACD,EAAE,MAAMD,EAAE,MAAMA,EAAE,MAAM,OAAOC,EAAE,aAAa,IAAI,EAAEgB,GAAE,QAAQ,CAAC,UAAUjB,EAAE,aAAaE,CAAC,CAAC,EAAEe,GAAE,QAAQ,CAAC,UAAUjB,EAAE,aAAa,KAAK,eAAe,CAAC,EAAEiB,GAAE,UAAU,CAAC,UAAUjB,EAAE,aAAa,KAAK,iBAAiB,CAAC,EAAEiB,GAAE,SAAS,CAAC,UAAUjB,EAAE,aAAa,KAAK,gBAAgB,CAAC,EAAEiB,GAAE,OAAO,CAAC,UAAUjB,EAAE,aAAa,KAAK,cAAc,CAAC,EAAE,MAAMG,EAAE,KAAK,QAAQ,cAAc,YAAY,EAAEC,EAAED,EAAE,UAAW,EAAC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAGA,EAAE,MAAM,QAAQ,OAAOC,EAAE,YAAYJ,CAAC,EAAEI,EAAE,YAAYH,CAAC,EAAEG,EAAE,UAAU,IAAI,GAAG,OAAOiQ,GAAG,kBAAkB,WAAW,CAAC,EAAElQ,EAAE,cAAc,aAAaC,EAAED,CAAC,EAAED,EAAC,EAAG,KAAK,QAAQ,YAAY,OAAO+E,GAAI,IAAIjF,EAAE,MAAO,CAAA,CAAE,EAAE,MAAM,CAACwB,GAAEpB,CAAC,EAAED,EAAE,MAAM,QAAQ,IAAI,CAAC,CAAC,CAAG,CAAA,EAAE,KAAK,gBAAgB,KAAK,gBAAgB,KAAK,IAAI,EAAE,KAAK,qBAAqB,KAAK,qBAAqB,KAAK,IAAI,EAAE,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,IAAI,EAAE,KAAK,gBAAgB,KAAK,gBAAgB,KAAK,IAAI,EAAE,KAAK,iBAAiB,KAAK,iBAAiB,KAAK,IAAI,EAAE,KAAK,eAAe,KAAK,eAAe,KAAK,IAAI,EAAE,KAAK,gBAAgBH,EAAE,KAAK,QAAQC,EAAE,KAAK,UAAUC,EAAE,KAAK,QAAQ,EAAE,KAAK,WAAW,KAAK,gBAAgB,WAAiBwB,GAAE,KAAK,OAAO,IAApB,MAAwB,KAAK,QAAQ,KAAK,QAAQ,YAAY,KAAK,QAAO,CAAE,CAAC,SAAS,CAAC,KAAK,qBAAqB,KAAK,WAAU,EAAG,KAAK,WAAW,cAAa,GAAI,KAAK,qBAAsB,CAAA,CAAC,WAAW,CAAC,IAAI1B,EAAE,IAAIC,EAAE,KAAK,MAAM,IAAK,EAAC,IAAI,KAAK,mBAAoB,EAACA,GAAGA,IAAIA,EAAE,KAAK,MAAM,IAAG,GAAWD,EAAE,KAAK,YAAf,MAAmCA,IAAT,QAAYA,EAAE,6BAA6B,IAAI,CAAC,CAAC,oBAAoB,CAAC,GAAS,KAAK,gBAAX,KAA0B,CAAC,MAAM,EAAE,KAAK,eAAe,IAAIA,EAAEC,EAAEC,EAAE,EAAK,KAAK,eAAe,KAAK,GAAUF,EAAE,KAAK,YAAf,MAAmCA,IAAT,SAAoBC,EAAED,EAAE,6DAAZ,MAAiFC,IAAT,QAAYA,EAAE,KAAKD,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,UAAU,GAAeE,EAAE,KAAK,YAAf,MAAmCA,IAAT,SAAoB,EAAEA,EAAE,4DAAZ,MAAgF,IAAT,QAAY,EAAE,KAAKA,EAAE,UAAU,KAAK,UAAU,CAAC,CAAC,CAAC,gBAAgBF,EAAE,CAAC,OAAOA,EAAE,iBAAiBA,EAAE,gBAAe,CAAE,CAAC,qBAAqBA,EAAE,CAAC,IAAIC,EAAE,GAAcD,EAAE,OAAO,aAAa,kBAAkB,IAAnD,SAAqD,OAAeC,EAAE,KAAK,YAAf,MAAmCA,IAAT,OAAW,OAAOA,EAAE,8CAA8C,KAAK,UAAU,CAAC,CAAC,kBAAkBD,EAAE,CAAC,IAAIC,EAAEC,EAAE,GAAcoQ,GAAGtQ,EAAE,OAAO,IAAvB,SAAyB,OAAOA,EAAE,eAAc,EAAG,KAAK,mBAAoB,GAASC,EAAE,KAAK,YAAf,MAAmCA,IAAT,SAAoBC,EAAED,EAAE,mDAAZ,MAAuEC,IAAT,OAAW,OAAOA,EAAE,KAAKD,EAAE,KAAK,UAAU,CAAC,CAAC,gBAAgBD,EAAE,CAAC,KAAK,eAAeA,EAAE,OAAO,MAAM,QAAQ,MAAM,GAAG,EAAE,MAAM,CAAC,iBAAiBA,EAAE,CAAC,OAAO,KAAK,mBAAoB,CAAA,CAAC,eAAeA,EAAE,CAAC,OAAO,KAAK,mBAAkB,CAAE,CAAC,CAAC,MAAMyQ,WAAWrN,EAAC,CAAC,YAAYpD,EAAEE,EAAE,CAAC,MAAM,GAAG,SAAS,EAAE,KAAK,SAAS,KAAK,SAAS,KAAK,IAAI,EAAE,KAAK,QAAQ,KAAK,QAAQ,KAAK,IAAI,EAAE,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,IAAI,EAAE,KAAK,QAAQF,EAAE,KAAK,YAAYE,EAAE,KAAK,aAAa,IAAI0L,GAAG,KAAK,YAAY,SAAS,CAAC,QAAQ,KAAK,OAAO,CAAC,EAAE3K,GAAE,QAAQ,CAAC,UAAU,KAAK,QAAQ,aAAa,KAAK,QAAQ,CAAC,EAAEA,GAAE,OAAO,CAAC,UAAU,KAAK,QAAQ,aAAa,KAAK,OAAO,CAAC,EAAEA,GAAE,QAAQ,CAAC,UAAU,KAAK,QAAQ,iBAAiB,2BAA2B,eAAe,EAAE,CAAC,EAAEA,GAAE,YAAY,CAAC,UAAU,KAAK,QAAQ,iBAAiBhB,GAAE,aAAa,KAAK,kBAAkB,CAAC,EAAEgB,GAAE,QAAQ,CAAC,UAAU,KAAK,QAAQ,iBAAiB,IAAI,OAAOhB,EAAC,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,SAASD,EAAE,CAAC,IAAIC,EAAE,MAAMC,EAAE,IAAI,CAAC,IAAIF,EAAEC,EAAE,GAAG,CAAC,KAAK,QAAQ,OAAO,KAAK,QAAQ,IAAWD,EAAE,KAAK,YAAf,MAAmCA,IAAT,SAAoBC,EAAED,EAAE,iCAAZ,MAAqDC,IAAT,OAAW,OAAOA,EAAE,KAAKD,CAAC,CAAC,EAAE,QAAeC,EAAE,KAAK,eAAf,MAAsCA,IAAT,OAAW,OAAOA,EAAE,KAAKC,CAAC,IAAIA,GAAG,CAAC,QAAQF,EAAE,CAAC,KAAK,YAAY,IAAI,QAAS,GAAGiF,GAAI,IAAI,CAAC,IAAIhF,EAAEC,EAAEmB,OAAAA,GAAE,KAAK,OAAO,IAAI,KAAK,QAAQ,MAAapB,EAAE,KAAK,YAAf,MAAmCA,IAAT,SAAoBC,EAAED,EAAE,gCAAZ,MAAoDC,IAAT,QAAYA,EAAE,KAAKD,CAAC,GAAU,KAAK,YAAY,KAAK,GAAG,CAAC,EAAI,CAAC,mBAAmBD,EAAEC,EAAE,CAAC,IAAIC,EAAE,EAAE,MAAM,EAAE,KAAK,yBAAyBD,CAAC,EAAEI,EAAE,CAAC,CAACa,GAAElB,EAAE,OAAO,CAAC,iBAAiB,YAAY,CAAC,EAAE,OAAeE,EAAE,KAAK,YAAf,MAAmCA,IAAT,SAAoB,EAAEA,EAAE,4CAAZ,MAAgE,IAAT,OAAW,OAAO,EAAE,KAAKA,EAAE,EAAE,CAAC,YAAYG,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,OAAO,KAAK,oBAAmB,EAAG,KAAK,aAAa,cAAc,KAAK,OAAO,CAAC,QAAQ,CAAC,IAAIL,EAAEC,EAAEC,EAAE,EAAE,EAAEG,EAAE,OAAC,KAAK,WAAW,KAAK,YAAY,WAAW,KAAK,aAAa,YAAY,KAAK,YAAY,QAAQ,EAAE,KAAK,aAAa,OAAM,EAAG,KAAK,SAAS,KAAK,YAAY,UAAU,KAAK,oBAAqB,GAAE,CAAC,KAAK,aAAa,SAAU,KAAYH,EAAE,KAAK,YAAf,MAAmCA,IAAT,SAAoB,EAAEA,EAAE,6CAAZ,MAAiE,IAAT,QAAY,EAAE,KAAKA,CAAC,EAAE,KAAK,aAAa,QAAe,EAAE,KAAK,YAAf,MAAmC,IAAT,SAAoBG,EAAE,EAAE,4CAAZ,MAAgEA,IAAT,QAAYA,EAAE,KAAK,CAAC,IAAkBL,EAAE,KAAK,YAAf,MAAmCA,IAAT,SAAoBC,EAAED,EAAE,kCAAZ,MAAsDC,IAAT,OAAW,OAAOA,EAAE,KAAKD,CAAC,CAAC,CAAC,sBAAsBA,EAAE,CAAC,OAAO,KAAK,wBAAwBA,CAAC,EAAE,KAAK,OAAQ,CAAA,CAAC,wBAAwBA,EAAE,CAAC,OAAO,KAAK,aAAa,wBAAwBA,CAAC,CAAC,CAAC,sBAAsB,CAAC,OAAO,KAAK,aAAa,qBAAoB,CAAE,CAAC,mBAAmB,CAAC,OAAO,KAAK,aAAa,mBAAmB,CAAC,oBAAoB,CAAC,OAAO,KAAK,aAAa,mBAAoB,CAAA,CAAC,kBAAkB,CAAC,OAAO,KAAK,aAAa,2BAA2B,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,KAAK,gBAAgB,CAAC,qCAAqCA,EAAEC,EAAE,CAAC,IAAIC,EAAE,KAAYA,EAAE,KAAK,oBAAf,MAA2CA,IAAT,OAAW,OAAOA,EAAE,cAAcF,EAAE,OAAO,MAAM,EAAE,KAAK,aAAa,qBAAqBA,CAAC,EAAE,GAAG,CAAC,EAAE,OAAO,KAAK,0BAAyB,EAAG,MAAM,EAAE,KAAK,YAAY,SAAS,gCAAgCA,CAAC,EAAE,KAAK,iBAAiB,IAAIwQ,GAAG,EAAE,EAAE,KAAK,QAAQvQ,CAAC,EAAE,KAAK,iBAAiB,SAAS,IAAI,CAAC,2BAA2B,CAAC,IAAID,EAAE,OAAeA,EAAE,KAAK,oBAAf,MAA2CA,IAAT,OAAW,OAAOA,EAAE,UAAS,CAAE,CAAC,8BAA8B,CAAC,OAAO,KAAK,iBAAiB,KAAK,KAAK,OAAQ,CAAA,CAAC,0DAA0DA,EAAEC,EAAE,CAAC,IAAIC,EAAE,EAAE,OAAeA,EAAE,KAAK,YAAf,MAAmCA,IAAT,SAAoB,EAAEA,EAAE,6CAAZ,MAAiE,IAAT,QAAY,EAAE,KAAKA,EAAED,CAAC,EAAE,KAAK,YAAY,8BAA8BD,EAAEC,CAAC,CAAC,CAAC,yDAAyDD,EAAEC,EAAE,CAAC,IAAIC,EAAE,EAAE,OAAeA,EAAE,KAAK,YAAf,MAAmCA,IAAT,SAAoB,EAAEA,EAAE,6CAAZ,MAAiE,IAAT,QAAY,EAAE,KAAKA,EAAED,CAAC,EAAE,KAAK,YAAY,6BAA6BD,EAAEC,CAAC,CAAC,CAAC,8CAA8CD,EAAE,CAAC,IAAIC,EAAEC,EAAE,OAAeD,EAAE,KAAK,YAAf,MAAmCA,IAAT,SAAoBC,EAAED,EAAE,sDAAZ,MAA0EC,IAAT,OAAW,OAAOA,EAAE,KAAKD,EAAED,CAAC,CAAC,CAAC,gDAAgDA,EAAE,CAAC,IAAIC,EAAEC,EAAE,OAAeD,EAAE,KAAK,YAAf,MAAmCA,IAAT,SAAoBC,EAAED,EAAE,wDAAZ,MAA4EC,IAAT,OAAW,OAAOA,EAAE,KAAKD,EAAED,CAAC,CAAC,CAAC,qBAAqB,CAAC,MAAM,CAAC,KAAK,oBAAmB,CAAE,CAAC,yBAAyBA,EAAE,CAAC,OAAO,KAAK,YAAY,SAAS,kBAAkB,SAASA,EAAE,QAAQ,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM0Q,WAAWtN,EAAC,EAAE,MAAMuN,GAAG,oBAAoBC,GAAG,IAAI,OAAOD,GAAG,GAAG,EAAEE,GAAG,CAAC,WAAW,GAAG,UAAU,GAAG,cAAc,GAAG,sBAAsB,GAAG,QAAQ,EAAE,EAAE,MAAMC,WAAW1N,EAAC,CAAC,YAAYpD,EAAE,CAAC,MAAMA,CAAC,EAAE,KAAK,UAAU,KAAK,UAAU,KAAK,IAAI,EAAE,KAAK,QAAQA,EAAE,KAAK,SAAS,IAAI,OAAO,iBAAiB,KAAK,SAAS,EAAE,KAAK,MAAK,CAAE,CAAC,OAAO,CAAC,OAAO,KAAK,MAAK,EAAG,KAAK,SAAS,QAAQ,KAAK,QAAQ6Q,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,WAAY,CAAA,CAAC,UAAU7Q,EAAE,CAAC,IAAIC,EAAEC,EAAE,GAAG,KAAK,UAAU,KAAK,GAAG,MAAM,KAAK,KAAK,yBAAyBF,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,UAAU,OAAO,OAAeC,EAAE,KAAK,YAAf,MAAmCA,IAAT,SAAoBC,EAAED,EAAE,oBAAZ,MAAwCC,IAAT,QAAYA,EAAE,KAAKD,EAAE,KAAK,mBAAoB,CAAA,EAAE,KAAK,MAAO,CAAA,CAAC,OAAO,CAAC,KAAK,UAAU,CAAA,CAAE,CAAC,yBAAyBD,EAAE,CAAC,OAAOA,EAAE,OAAQ,GAAG,KAAK,sBAAsB,CAAC,CAAG,CAAA,CAAC,sBAAsBA,EAAE,CAAC,GAAG,KAAK,cAAcA,EAAE,MAAM,EAAE,SAAS,UAAUC,KAAK,MAAM,KAAK,KAAK,wBAAwBD,CAAC,CAAC,EAAE,GAAG,KAAK,kBAAkBC,CAAC,EAAE,MAAQ,GAAC,MAAQ,EAAA,CAAC,kBAAkBD,EAAE,CAAC,OAAOA,IAAI,KAAK,SAAS,CAAC,KAAK,cAAcA,CAAC,GAAG,CAACqC,GAAErC,CAAC,CAAC,CAAC,cAAcA,EAAE,CAAC,OAAOkB,GAAElB,EAAE,CAAC,iBAAiB4Q,EAAE,CAAC,CAAC,CAAC,wBAAwB5Q,EAAE,CAAC,MAAMC,EAAE,GAAG,OAAOD,EAAE,KAAM,CAAA,IAAI,aAAaA,EAAE,gBAAgB2Q,IAAI1Q,EAAE,KAAKD,EAAE,MAAM,EAAE,MAAM,IAAI,gBAAgBC,EAAE,KAAKD,EAAE,OAAO,UAAU,EAAEC,EAAE,KAAKD,EAAE,MAAM,EAAE,MAAM,IAAI,YAAYC,EAAE,KAAK,GAAG,MAAM,KAAKD,EAAE,YAAY,CAAA,CAAE,CAAC,EAAEC,EAAE,KAAK,GAAG,MAAM,KAAKD,EAAE,cAAc,CAAA,CAAE,CAAC,CAAC,CAAC,OAAOC,CAAC,CAAC,oBAAoB,CAAC,OAAO,KAAK,uBAAsB,CAAE,CAAC,wBAAwB,CAAC,KAAK,CAAC,UAAUD,EAAE,UAAUC,CAAC,EAAE,KAAK,gCAA+B,EAAGC,EAAE,KAAK,8BAA8B,MAAM,KAAKA,EAAE,SAAS,EAAE,QAASD,GAAG,CAAC,MAAM,KAAKD,CAAC,EAAE,SAASC,CAAC,GAAGD,EAAE,KAAKC,CAAC,CAAC,CAAG,EAACA,EAAE,KAAK,GAAG,MAAM,KAAKC,EAAE,WAAW,CAAA,CAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAEF,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,GAAG,MAAMK,EAAEJ,EAAE,KAAK,EAAE,EAAE,OAAOI,IAAI,EAAE,YAAYA,GAAG,CAAC,CAAC,mBAAmBL,EAAE,CAAC,OAAO,MAAM,KAAK,KAAK,SAAS,EAAE,OAAQC,GAAGA,EAAE,OAAOD,CAAC,CAAE,CAAC,6BAA6B,CAAC,IAAIA,EAAEC,EAAE,MAAMC,EAAE,CAAA,EAAG,EAAE,CAAA,EAAG,MAAM,KAAK,KAAK,mBAAmB,WAAW,CAAC,EAAE,QAASF,GAAG,CAACE,EAAE,KAAK,GAAG,MAAM,KAAKF,EAAE,YAAY,EAAE,CAAC,EAAE,EAAE,KAAK,GAAG,MAAM,KAAKA,EAAE,cAAc,CAAA,CAAE,CAAC,CAAC,CAAG,EAAKE,EAAE,SAAN,GAAkB,EAAE,SAAN,GAAc6B,GAAE,EAAE,CAAC,CAAC,GAAG/B,EAAE,GAAGC,EAAE,CAAC;AAAA,CAAI,IAAID,EAAE+Q,GAAG7Q,CAAC,EAAED,EAAE8Q,GAAG,CAAC,GAAG,MAAM,EAAE/Q,EAAE,OAAQ,CAACA,EAAEE,IAAIF,IAAIC,EAAEC,CAAC,GAAI,IAAI8F,EAAE,EAAE3F,EAAEJ,EAAE,OAAQ,CAACA,EAAEC,IAAID,IAAID,EAAEE,CAAC,CAAG,EAAC,IAAI8F,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE,UAAU3F,CAAC,CAAC,CAAC,iCAAiC,CAAC,IAAIL,EAAEC,EAAE,MAAMC,EAAE,KAAK,mBAAmB,eAAe,EAAE,GAAGA,EAAE,OAAO,CAAC,MAAM,EAAEA,EAAE,CAAC,EAAE,EAAEA,EAAEA,EAAE,OAAO,CAAC,EAAEG,EAAE,SAASL,EAAEC,EAAE,CAAC,IAAIC,EAAEC,EAAE,OAAOH,EAAE4D,GAAE,IAAI5D,CAAC,GAAGC,EAAE2D,GAAE,IAAI3D,CAAC,GAAG,OAAOD,EAAE,OAAO,CAACG,EAAED,CAAC,EAAEiG,GAAGnG,EAAEC,CAAC,EAAE,CAACC,EAAEC,CAAC,EAAEgG,GAAGlG,EAAED,CAAC,EAAE,CAAC,MAAME,EAAE,QAAQC,CAAC,CAAC,EAAE6F,GAAG,EAAE,QAAQ,EAAEA,GAAG,EAAE,OAAO,IAAI,CAAC,EAAEhG,EAAEK,EAAE,MAAMJ,EAAEI,EAAE,OAAO,CAAC,MAAM,CAAC,UAAUL,EAAE,CAACA,CAAC,EAAE,CAAA,EAAG,UAAUC,EAAE,CAACA,CAAC,EAAE,CAAE,CAAA,CAAC,CAAC,CAAC,MAAM8Q,GAAG,UAAU,CAAC,IAAI/Q,EAAE,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,GAAG,MAAM,EAAE,CAAA,EAAG,UAAUE,KAAK,MAAM,KAAKF,CAAC,EAAE,OAAOE,EAAE,SAAQ,CAAE,KAAK,KAAK,UAAU,EAAE,KAAKA,EAAE,IAAI,EAAE,MAAM,KAAK,KAAK,aAAoBwB,GAAExB,CAAC,IAAV,KAAY,EAAE,KAAK;AAAA,CAAI,EAAE,EAAE,KAAK,GAAG,MAAM,KAAK6Q,GAAG7Q,EAAE,UAAU,GAAG,CAAA,CAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM8Q,WAAWhK,EAAE,CAAC,YAAYhH,EAAE,CAAC,MAAM,GAAG,SAAS,EAAE,KAAK,KAAKA,CAAC,CAAC,QAAQA,EAAE,CAAC,MAAMC,EAAE,IAAI,WAAW,OAAOA,EAAE,QAAQ,IAAID,EAAE,EAAE,EAAEC,EAAE,OAAO,IAAI,CAACA,EAAE,QAAQ,KAAK,GAAG,CAACA,EAAE,MAAK,CAAE,MAAS,CAAE,CAAA,OAAOD,EAAE,GAAG,KAAK,IAAI,CAAC,EAAEC,EAAE,kBAAkB,KAAK,IAAI,CAAC,CAAC,CAAC,MAAMgR,EAAE,CAAC,YAAYjR,EAAE,CAAC,KAAK,QAAQA,CAAC,CAAC,aAAaA,EAAE,CAAC,MAAM,CAAC,CAACO,GAAE,iBAAiB,KAAK,cAAc,KAAK,MAAM,KAAK,MAAMP,EAAE,KAAK,mCAAkC,EAAG,KAAK,iCAAkC,EAAC,KAAK,UAAU,CAAC,oCAAoC,CAAC,KAAK,uCAAwC,GAAEkR,GAAG,KAAK,QAAQ,UAAU,KAAK,MAAM,IAAI,IAAI,KAAK,UAAU,GAAG,KAAK,MAAM,iBAAiB,CAAC,kCAAkC,CAAC,KAAK,WAA0B,KAAK,MAAM,YAA1B,eAAsC,KAAK,UAAU,GAAG,CAAC,wCAAwC,CAAC,IAAIlR,EAAE,OAAO,KAAK,2BAA2B,KAAK,oCAAmC,KAAaA,EAAE,KAAK,MAAM,QAArB,MAAqCA,IAAT,OAAW,OAAOA,EAAE,QAAQ,EAAE,CAAC,yBAAyB,CAAC,OAAsB,KAAK,MAAM,OAA3B,eAAgD,KAAK,MAAM,YAA1B,YAAmC,CAAC,qCAAqC,CAAC,IAAIA,EAAEC,EAAE,QAA2BD,EAAE,KAAK,iBAAf,MAAwCA,IAAT,OAAW,OAAOA,EAAE,QAAhE,aAAiGC,EAAE,KAAK,iBAAf,MAAwCA,IAAT,OAAW,OAAOA,EAAE,OAArE,cAAyE,CAAC,CAAC,MAAMiR,GAAG,CAAClR,EAAE,IAAImR,GAAGnR,CAAC,IAAImR,GAAG,CAAC,EAAEC,GAAG,IAAI,OAAO,IAAI,OAAO,IAAI,GAAG,EAAE,OAAOxQ,GAAE,GAAG,EAAE,OAAOC,GAAE,QAAQ,EAAE,GAAG,EAAEsQ,GAAGnR,GAAGA,EAAE,QAAQoR,GAAG,GAAG,EAAE,KAAI,EAAG,MAAMC,WAAWjO,EAAC,CAAC,YAAYpD,EAAE,CAAC,MAAM,GAAG,SAAS,EAAE,KAAK,QAAQA,EAAE,KAAK,iBAAiB,IAAI8Q,GAAG,KAAK,OAAO,EAAE,KAAK,iBAAiB,SAAS,KAAK,KAAK,sBAAsB,IAAIG,GAAG,KAAK,OAAO,EAAE,UAAU,KAAK,KAAK,YAAY,OAAOhQ,GAAE,EAAE,CAAC,UAAU,KAAK,QAAQ,aAAa,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiBjB,EAAE,CAAA,CAAE,4BAA4B,CAAC,OAAO,KAAK,iBAAiB,KAAI,CAAE,CAAC,2BAA2B,CAAC,OAAO,KAAK,iBAAiB,MAAO,CAAA,CAAC,eAAe,CAAC,IAAIA,EAAEC,EAAE,OAAeD,EAAE,KAAK,YAAf,MAAmCA,IAAT,SAAoBC,EAAED,EAAE,mCAAZ,MAAuDC,IAAT,OAAW,OAAOA,EAAE,KAAKD,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAIA,EAAEC,EAAE,OAAeD,EAAE,KAAK,YAAf,MAAmCA,IAAT,SAAoBC,EAAED,EAAE,oCAAZ,MAAwDC,IAAT,QAAYA,EAAE,KAAKD,CAAC,EAAE,KAAK,cAAa,CAAE,CAAC,YAAYA,EAAE,CAAC,MAAMC,EAAE,MAAM,KAAKD,CAAC,EAAE,IAAKA,GAAG,IAAIgR,GAAGhR,CAAC,GAAI,OAAO,QAAQ,IAAIC,CAAC,EAAE,KAAMD,GAAG,CAAC,KAAK,YAAa,UAAU,CAAC,IAAIC,EAAEC,EAAE,OAAeD,EAAE,KAAK,YAAf,MAAmCA,IAAT,QAAYA,EAAE,+BAA8B,GAAWC,EAAE,KAAK,aAAf,MAAoCA,IAAT,QAAYA,EAAE,YAAYF,CAAC,EAAE,KAAK,cAAe,CAAA,CAAG,CAAA,CAAG,CAAA,CAAC,WAAWA,EAAE,CAAC,OAAOC,GAAG,CAACA,EAAE,kBAAkB,KAAK,YAAa,IAAI,CAAC,GAAG,CAACoB,GAAE,KAAK,OAAO,EAAE,CAAC,GAAG,KAAK,sBAAsB,aAAapB,CAAC,EAAE,OAAO,KAAK,UAAUD,EAAE,KAAK,YAAY,OAAOA,CAAC,EAAE,KAAK,KAAKC,CAAC,CAAC,CAAC,EAAG,CAAC,CAAC,YAAYD,EAAE,CAAC,GAAG,CAAC,IAAIC,GAAUA,EAAE,KAAK,YAAf,MAAmCA,IAAT,QAAYA,EAAE,+BAAgC,EAACD,EAAE,KAAK,IAAI,CAAC,QAAC,CAAQ,IAAIE,GAAUA,EAAE,KAAK,YAAf,MAAmCA,IAAT,QAAYA,EAAE,8BAA+B,CAAA,CAAC,CAAC,eAAeF,EAAEC,EAAE,CAAC,MAAMC,EAAE,SAAS,cAAc,GAAG,EAAE,OAAOA,EAAE,KAAKF,EAAEE,EAAE,YAAYD,GAAGD,EAAEE,EAAE,SAAS,CAAC,CAAC,IAAIoR,GAAGtF,GAAGqF,GAAG,SAAS,CAAE,CAAA,EAAE,KAAK,CAAC,QAAQE,GAAG,SAASC,EAAE,EAAE7O,GAAE,IAAI8O,GAAG,EAAE,MAAMC,WAAWL,EAAE,CAAC,aAAa,CAAC,MAAM,GAAG,SAAS,EAAE,KAAK,mBAAmB,CAAC,iBAAiB,CAAC,IAAIrR,EAAE,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,CAAE,EAAC,KAAK,aAAa,UAAU,KAAK,UAAU,UAAUC,KAAKD,EAAE,CAAC,MAAME,EAAEF,EAAEC,CAAC,EAAE,KAAK,aAAaA,CAAC,EAAEC,CAAC,CAAC,OAAO,KAAK,YAAY,CAAC,mBAAmB,CAAC,KAAK,aAAa,CAAE,CAAA,CAAC,OAAO,CAAC,OAAO,KAAK,oBAAoBwF,GAAG,MAAK,CAAE,CAAC,iBAAiB1F,EAAE,CAAC,IAAIC,EAAEC,EAAE,OAAO,KAAK,YAAW,GAAWD,EAAE,KAAK,YAAf,MAAmCA,IAAT,SAAoBC,EAAED,EAAE,yCAAZ,MAA6DC,IAAT,OAAW,OAAOA,EAAE,KAAKD,CAAC,EAAE,KAAK,YAAa,UAAU,CAAC,OAAO,KAAK,sBAAsBD,CAAC,IAAI,KAAK,mBAAmBA,CAAC,EAAE,KAAK,gBAAgB,KAAK,eAAgB,GAAE,KAAK,MAAO,CAAA,EAAG,CAAC,mBAAmBA,EAAE,CAAC,GAAG,CAAC,UAAUC,EAAE,YAAYC,CAAC,EAAEF,EAAE,GAAG,KAAK,aAAa,eAAe,MAAM,GAAG,MAAM,EAAQC,GAAN,KAAQA,IAAI,KAAK,aAAa,UAAU,CAAC,KAAK,aAAa,UAAU,EAAQC,GAAN,KAAQ,KAAK,aAAa,UAAU,CAAC,KAAK,aAAa,UAAUG,EAAE,CAAC;AAAA,EAAK;AAAA,CAAK,EAAE,SAASJ,CAAC,GAAG,CAAC,EAAEK,EAASJ,IAAP;AAAA,GAAU,CAAC,EAAE,GAAGG,GAAG,CAACC,GAAGA,GAAG,CAACD,EAAE,CAAC,MAAML,EAAE,KAAK,iBAAgB,EAAG,GAAGA,EAAE,CAAC,IAAIO,EAAE,MAAML,EAAEG,EAAEJ,EAAE,QAAQ,MAAM,EAAE,EAAE,QAAQ,IAAUA,GAAN,KAAQ,OAAOA,EAAE,SAAS,EAAE,IAAWM,EAAE,KAAK,aAAf,MAAoCA,IAAT,QAAYA,EAAE,qBAAqBP,EAAE,CAAC,EAAEE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,sBAAsBF,EAAE,CAAC,IAAIC,EAAE,MAAMC,EAAE,OAAO,KAAKF,CAAC,EAAE,OAAO,EAAE,IAAgBC,EAAE,KAAK,oBAAf,MAA2CA,IAAT,OAAW,OAAOA,EAAE,gBAA5D,GAA0E,OAAOC,GAAG,CAAC,CAAC,CAAC,qBAAqB,CAAC,GAAG,KAAK,cAAc,OAAO,KAAK,iBAAiB,KAAK,iBAAiB,IAAIyR,GAAG,IAAI,CAAC,CAAC,aAAa,CAAC,OAAO,KAAK,kBAAkB,CAAC,KAAK,iBAAiB,QAAO,CAAE,CAAC,kBAAkB3R,EAAEC,EAAE,CAAC,IAAIC,EAAE,QAAoBA,EAAE,KAAK,aAAf,MAAoCA,IAAT,OAAW,OAAOA,EAAE,kBAAkBF,CAAC,QAAG,KAAK,gBAAgB,CAAC,UAAU,EAAE,CAAC,EAAEC,GAAGA,EAAE,eAAc,EAAG,KAAK,cAAe,GAAE,MAAM,CAAC,iCAAiCD,EAAE,CAAC,IAAIC,EAAE,GAAG,CAAC,SAASD,EAAE,CAAC,GAASA,GAAN,MAAS,CAACA,EAAE,QAAQ,MAAQ,GAAC,UAAUC,KAAK6E,GAAG,CAAC,MAAM5E,EAAE4E,GAAG7E,CAAC,EAAE,GAAG,CAAC,GAAGD,EAAE,QAAQC,EAAEC,CAAC,EAAE,CAACF,EAAE,QAAQC,CAAC,IAAIC,EAAE,MAAM,EAAE,MAAS,CAAC,MAAQ,EAAA,CAAC,CAAC,MAAM,EAAE,EAAEF,CAAC,EAAE,OAAO,MAAME,GAAUD,EAAE,KAAK,aAAf,MAAoCA,IAAT,OAAW,OAAOA,EAAE,oBAAmB,EAAG,uBAAwB,EAAC,OAAOD,EAAE,QAAQ,8BAA8B,KAAK,UAAUE,CAAC,CAAC,EAAEF,EAAE,QAAQ,YAAY4L,GAAG,OAAO1L,CAAC,EAAE,SAAS,EAAEF,EAAE,QAAQ,aAAaE,EAAE,SAAQ,EAAG,QAAQ,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,sBAAsBF,EAAE,CAAC,MAAMC,EAAE,CAAE,EAAC,OAAO,MAAM,MAAYD,GAAN,KAAQ,OAAOA,EAAE,QAAQ,CAAE,CAAA,EAAE,QAASA,GAAG,CAACC,EAAED,CAAC,EAAE,EAAE,CAAG,EAACC,EAAE,OAAOA,EAAE,6BAA6B,GAAGA,EAAE,WAAW,GAAGA,EAAE,YAAY,CAAC,CAAC,gCAAgCD,EAAE,CAAC,MAAMC,EAAE,KAAK,iBAAgB,EAAGC,EAAE,CAAC,SAAS,WAAW,KAAK,GAAG,OAAO,OAAO,YAAY,IAAI,EAAE,IAAI,GAAG,OAAO,OAAO,YAAY,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAEyB,EAAE,CAAC,MAAMzB,EAAE,QAAQ,MAAM,SAAS,EAAE,CAAC,EAAE,OAAO,SAAS,KAAK,YAAY,CAAC,EAAE,EAAE,QAAQ,sBAAuB,IAAI,CAAC,MAAMA,EAAE,EAAE,UAAU,OAAOsB,GAAE,CAAC,EAAE,KAAK,iBAAiBvB,CAAC,EAAED,EAAEE,CAAC,CAAC,CAAG,CAAA,CAAC,CAAC8L,GAAG0F,GAAG,SAAS,CAAC,QAAQ1R,EAAE,CAAC,KAAK,YAAa,GAAE,KAAK,kBAAmB,EAAC,KAAK,aAAa,SAAS,GAAG,MAAM,EAAEwR,GAAGxR,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAIE,EAAE,IAAI,EAAE,KAAK,KAAK,CAAC,OAAO,MAAM,QAAQ,MAAM,EAAE,QAASD,GAAG,CAAC,IAAIC,EAAEF,EAAE,GAAG,OAAOC,EAAE,KAAK,CAAC,IAAaA,IAAT,SAAaA,EAAE,WAAW,GAAUC,EAAE,KAAV,MAAuBA,IAAT,OAAW,OAAOA,EAAED,CAAC,EAAE,CAAG,IAAgBC,EAAE,KAAV,MAAuBA,IAAT,OAAW,OAAOA,EAAE,CAAC,IAA1C,OAA+C,KAAK,gBAAgB,CAAC,QAAQ,CAAC,CAAC,EAAEwF,GAAG,MAAK,EAAG,EAAE,CAAC,EAAE,KAAK,KAAK1F,CAAC,EAAE,CAAC,GAAGgF,GAAGhF,CAAC,EAAE,CAAC,MAAMC,EAAE,OAAO,aAAaD,EAAE,OAAO,EAAE,YAAa,EAAC,GAAGC,EAAE,CAAC,IAAIE,EAAE,MAAMD,EAAE,CAAC,MAAM,OAAO,EAAE,IAAKD,GAAG,CAAC,GAAGD,EAAE,GAAG,OAAOC,EAAE,KAAK,CAAC,EAAE,OAAOA,CAAC,CAAC,EAAG,OAAQD,GAAGA,CAAG,EAACE,EAAE,KAAKD,CAAC,GAAUE,EAAE,KAAK,YAAf,MAAmCA,IAAT,QAAYA,EAAE,yCAAyCD,CAAC,GAAGF,EAAE,eAAgB,CAAA,CAAC,CAAC,EAAE,SAASA,EAAE,CAAiE,GAAvD,KAAK,aAAa,WAAxB,MAA4CA,EAAE,SAAkBA,EAAE,SAAS,CAACA,EAAE,OAAO,OAAO,MAAM,EAAE4R,GAAG5R,CAAC,EAAE,IAAIE,EAAEC,EAAE,OAAO,IAAWD,EAAE,KAAK,YAAf,MAAmCA,IAAT,QAAYA,EAAE,oCAA2CC,EAAE,KAAK,aAAf,MAAoCA,IAAT,QAAYA,EAAE,aAAa,CAAC,EAAE,KAAK,gBAAgB,CAAC,UAAU,EAAE,UAAU,KAAK,oBAAqB,CAAA,CAAC,GAAG,MAAM,EAAE,UAAUH,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAEA,EAAE,CAAC,UAAUE,CAAC,EAAE,KAAK,aAAa,GAAGA,GAAGA,IAAI,GAAGA,EAAE,gBAAgB,EAAE,CAAC,IAAIC,EAAE,MAAMH,EAAE,KAAK,iBAAgB,EAAG,OAAO,KAAK,iBAAiB,CAACA,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAEE,EAAE,MAAM,CAAC,GAAUC,EAAE,KAAK,aAAf,MAAoCA,IAAT,QAAYA,EAAE,aAAa,CAAC,EAAE,KAAK,gBAAgB,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,iBAAiBH,CAAC,CAAC,CAAC,EAAE,UAAUA,EAAE,CAACA,EAAE,gBAAgB,EAAE,UAAUA,EAAE,CAAC,IAAI,EAAEE,EAAE,OAAO,KAAK,iCAAiCF,EAAE,YAAY,EAAE,KAAK,aAAa,KAAK,iBAAgB,GAAW,EAAE,KAAK,YAAf,MAAmC,IAAT,SAAoBE,EAAE,EAAE,+BAAZ,MAAmDA,IAAT,OAAW,OAAOA,EAAE,KAAK,CAAC,CAAC,EAAE,SAASF,EAAE,CAAC,GAAG,KAAK,cAAc,KAAK,sBAAsBA,EAAE,YAAY,EAAE,CAACA,EAAE,eAAc,EAAG,MAAMG,EAAE,CAAC,EAAEH,EAAE,QAAQ,EAAEA,EAAE,OAAO,EAAE,IAAI,EAAEE,EAAE,GAAG,CAACiF,GAAGhF,EAAE,KAAK,aAAa,EAAE,OAAO,KAAK,cAAcA,GAAU,EAAE,KAAK,YAAf,MAAmC,IAAT,SAAoBD,EAAE,EAAE,0CAAZ,MAA8DA,IAAT,OAAW,OAAOA,EAAE,KAAK,EAAE,KAAK,aAAa,CAAC,CAAC,EAAE,QAAQF,EAAE,CAAC,IAAI,EAAEE,GAAU,EAAE,KAAK,YAAf,MAAmC,IAAT,SAAoBA,EAAE,EAAE,gCAAZ,MAAoDA,IAAT,QAAYA,EAAE,KAAK,CAAC,EAAE,KAAK,aAAa,KAAK,KAAK,cAAc,IAAI,EAAE,KAAKF,EAAE,CAAC,IAAI,EAAEE,EAAEF,EAAE,eAAgB,EAAC,MAAMG,GAAU,EAAEH,EAAE,gBAAZ,MAAoC,IAAT,OAAW,OAAO,EAAE,MAAMI,EAAEJ,EAAE,aAAa,QAAQ,6BAA6B,EAAEK,EAAE,CAAC,EAAEL,EAAE,QAAQ,EAAEA,EAAE,OAAO,EAAE,IAAWE,EAAE,KAAK,aAAf,MAAoCA,IAAT,QAAYA,EAAE,+BAA+BG,CAAC,EAAQF,GAAN,MAASA,EAAE,OAAO,KAAK,YAAYA,CAAC,UAAU,KAAK,aAAa,CAAC,IAAI,EAAEI,GAAU,EAAE,KAAK,YAAf,MAAmC,IAAT,QAAY,EAAE,4BAA6B,GAASA,EAAE,KAAK,aAAf,MAAoCA,IAAT,QAAYA,EAAE,kBAAkB,KAAK,YAAY,EAAE,KAAK,aAAa,KAAK,KAAK,cAAe,CAAA,SAASH,EAAE,CAAC,IAAI,EAAE,MAAMJ,EAAE8N,GAAG,eAAe1N,CAAC,GAAU,EAAE,KAAK,aAAf,MAAoC,IAAT,QAAY,EAAE,eAAeJ,CAAC,EAAE,KAAK,cAAa,CAAE,CAAC,KAAK,aAAa,KAAK,KAAK,cAAc,IAAI,EAAE,IAAIA,EAAE,CAAC,IAAI,EAAEE,EAAE,IAAW,EAAE,KAAK,aAAf,MAAoC,IAAT,QAAY,EAAE,oBAAmB,IAAK,KAAK,iCAAiCF,EAAE,aAAa,GAAGA,EAAE,eAAgB,GAASE,EAAE,KAAK,YAAf,MAAmCA,IAAT,QAAYA,EAAE,2BAA0B,EAAG,KAAK,kBAAkB,UAAU,EAAEF,EAAE,kBAAkB,OAAO,KAAK,cAAe,CAAA,EAAE,KAAKA,EAAE,CAAC,IAAI,GAAU,EAAE,KAAK,aAAf,MAAoC,IAAT,QAAY,EAAE,uBAAuB,KAAK,iCAAiCA,EAAE,aAAa,GAAGA,EAAE,eAAgB,CAAA,EAAE,MAAMA,EAAE,CAAC,MAAM,EAAEA,EAAE,eAAeA,EAAE,kBAAkBE,EAAE,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,GAAG2R,GAAG7R,CAAC,EAAE,OAAO,KAAK,KAAK,gCAAiCA,GAAG,CAAC,IAAIC,EAAEE,EAAEC,EAAE,OAAOF,EAAE,KAAK,YAAYA,EAAE,KAAKF,GAAUC,EAAE,KAAK,YAAf,MAAmCA,IAAT,QAAYA,EAAE,yBAAyBC,CAAC,GAAUC,EAAE,KAAK,aAAf,MAAoCA,IAAT,QAAYA,EAAE,WAAWD,EAAE,IAAI,EAAE,KAAK,cAAa,GAAWE,EAAE,KAAK,YAAf,MAAmCA,IAAT,OAAW,OAAOA,EAAE,wBAAwBF,CAAC,CAAC,CAAG,EAAC,MAAMC,EAAE,EAAE,QAAQ,KAAK,EAAEC,EAAE,EAAE,QAAQ,WAAW,EAAEC,EAAE,EAAE,QAAQ,iBAAiB,EAAE,GAAGF,EAAE,CAAC,IAAI,EAAEI,EAAE,EAAE,IAAIP,EAAEE,EAAE,KAAK,YAAYF,EAAEK,EAAE6F,GAAG7F,CAAC,EAAE,KAAI,EAAGF,EAAED,EAAE,KAAK,KAAK,eAAeC,EAAEH,CAAC,GAAU,EAAE,KAAK,YAAf,MAAmC,IAAT,QAAY,EAAE,yBAAyBE,CAAC,EAAE,KAAK,gBAAgB,CAAC,UAAUF,EAAE,UAAU,KAAK,oBAAmB,CAAE,CAAC,GAAUO,EAAE,KAAK,aAAf,MAAoCA,IAAT,QAAYA,EAAE,WAAWL,EAAE,IAAI,EAAE,KAAK,cAAe,GAAS,EAAE,KAAK,YAAf,MAAmC,IAAT,QAAY,EAAE,wBAAwBA,CAAC,CAAC,SAAS6E,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,EAAEpE,EAAET,EAAE,KAAK,aAAaA,EAAE,OAAO,EAAE,QAAQ,YAAY,GAAU,EAAE,KAAK,YAAf,MAAmC,IAAT,QAAY,EAAE,yBAAyBA,CAAC,EAAE,KAAK,gBAAgB,CAAC,UAAUA,EAAE,OAAO,UAAU,KAAK,oBAAqB,CAAA,CAAC,GAAU,EAAE,KAAK,aAAf,MAAoC,IAAT,QAAY,EAAE,aAAaA,EAAE,MAAM,EAAE,KAAK,cAAa,GAAWS,EAAE,KAAK,YAAf,MAAmCA,IAAT,QAAYA,EAAE,wBAAwBT,CAAC,CAAC,SAASE,EAAE,CAAC,IAAIQ,EAAEC,EAAEC,EAAEZ,EAAE,KAAK,YAAYA,EAAE,KAAKE,GAAUQ,EAAE,KAAK,YAAf,MAAmCA,IAAT,QAAYA,EAAE,yBAAyBV,CAAC,GAAUW,EAAE,KAAK,aAAf,MAAoCA,IAAT,QAAYA,EAAE,WAAWX,EAAE,IAAI,EAAE,KAAK,cAAe,GAASY,EAAE,KAAK,YAAf,MAAmCA,IAAT,QAAYA,EAAE,wBAAwBZ,CAAC,CAAC,SAAS,MAAM,KAAK,EAAE,KAAK,EAAE,SAAS,OAAO,EAAE,CAAC,IAAIa,EAAEC,EAAE,MAAMhB,GAAUe,EAAE,EAAE,SAAZ,MAA6BA,IAAT,SAAoBA,EAAEA,EAAE,CAAC,KAAb,MAA0BA,IAAT,SAAoBC,EAAED,EAAE,aAAZ,MAAiCC,IAAT,OAAW,OAAOA,EAAE,KAAKD,CAAC,EAAE,GAAGf,EAAE,CAAC,IAAIiB,EAAE,EAAEG,EAAE,MAAMnB,EAAE6R,GAAG9R,CAAC,EAAE,CAACA,EAAE,MAAMC,IAAID,EAAE,KAAK,eAAe,OAAO,EAAEyR,GAAG,GAAG,EAAE,OAAOxR,CAAC,GAAGC,EAAE,KAAK,OAAOA,EAAE,KAAKF,GAAUiB,EAAE,KAAK,YAAf,MAAmCA,IAAT,QAAYA,EAAE,+BAAgC,GAAS,EAAE,KAAK,aAAf,MAAoC,IAAT,QAAY,EAAE,WAAWf,EAAE,IAAI,EAAE,KAAK,iBAAwBkB,EAAE,KAAK,YAAf,MAAmCA,IAAT,QAAYA,EAAE,wBAAwBlB,CAAC,CAAC,CAAC,CAACF,EAAE,gBAAgB,EAAE,iBAAiBA,EAAE,CAAC,OAAO,KAAK,oBAAmB,EAAG,MAAMA,EAAE,IAAI,CAAC,EAAE,kBAAkBA,EAAE,CAAC,OAAO,KAAK,sBAAsB,OAAOA,EAAE,IAAI,CAAC,EAAE,eAAeA,EAAE,CAAC,OAAO,KAAK,oBAAmB,EAAG,IAAIA,EAAE,IAAI,CAAC,EAAE,YAAYA,EAAE,CAAC,KAAK,aAAa,SAAS,EAAE,EAAE,MAAMA,EAAE,CAAC,OAAO,KAAK,aAAa,SAAS,GAAGA,EAAE,gBAAe,CAAE,CAAC,CAAC,EAAEgM,GAAG0F,GAAG,OAAO,CAAC,UAAU1R,EAAE,CAAC,IAAI,EAAE,OAAe,EAAE,KAAK,YAAf,MAAmC,IAAT,QAAY,EAAE,iCAAkC,EAAC,KAAK,kBAAkB,WAAWA,CAAC,CAAC,EAAE,OAAOA,EAAE,CAAC,IAAI,EAAE,OAAe,EAAE,KAAK,YAAf,MAAmC,IAAT,QAAY,EAAE,iCAAgC,EAAG,KAAK,kBAAkB,UAAUA,CAAC,CAAC,EAAE,OAAOA,EAAE,CAAC,IAAI,EAAEE,EAAE,OAAO,KAAK,gBAAgB,CAAC,eAAe,EAAE,CAAC,GAAU,EAAE,KAAK,YAAf,MAAmC,IAAT,QAAY,EAAE,iCAAkC,GAASA,EAAE,KAAK,aAAf,MAAoCA,IAAT,OAAW,OAAOA,EAAE,iBAAiB,EAAE,IAAIF,EAAE,CAAC,IAAI,EAAEE,GAAU,EAAE,KAAK,aAAf,MAAoC,IAAT,QAAY,EAAE,wBAAyB,KAAWA,EAAE,KAAK,aAAf,MAAoCA,IAAT,QAAYA,EAAE,qBAAoB,EAAG,KAAK,cAAe,EAACF,EAAE,eAAc,EAAG,EAAE,KAAKA,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,0BAAyB,EAAG,OAAOA,EAAE,eAAc,GAAW,EAAE,KAAK,aAAf,MAAoC,IAAT,OAAW,OAAO,EAAE,sBAAsB,UAAU,CAAC,EAAE,MAAMA,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,0BAA2B,EAAC,OAAOA,EAAE,kBAAyB,EAAE,KAAK,aAAf,MAAoC,IAAT,OAAW,OAAO,EAAE,sBAAsB,SAAS,CAAC,EAAE,QAAQ,CAAC,EAAEA,EAAE,CAAC,IAAI,EAAE,OAAe,EAAE,KAAK,YAAf,MAAmC,IAAT,QAAY,EAAE,iCAAgC,EAAG,KAAK,kBAAkB,UAAUA,CAAC,CAAC,EAAE,EAAEA,EAAE,CAAC,IAAI,EAAE,OAAe,EAAE,KAAK,YAAf,MAAmC,IAAT,QAAY,EAAE,iCAAkC,EAAC,KAAK,kBAAkB,WAAWA,CAAC,CAAC,EAAE,EAAEA,EAAE,CAAC,IAAI,EAAEE,EAAE,OAAOF,EAAE,eAAgB,GAAS,EAAE,KAAK,YAAf,MAAmC,IAAT,QAAY,EAAE,iCAAkC,GAASE,EAAE,KAAK,aAAf,MAAoCA,IAAT,QAAYA,EAAE,aAAa;AAAA,EAAK,CAAC,eAAe,EAAE,CAAC,EAAE,KAAK,cAAa,CAAE,CAAC,EAAE,MAAM,CAAC,OAAOF,EAAE,CAAC,IAAI,EAAEE,GAAU,EAAE,KAAK,YAAf,MAAmC,IAAT,QAAY,EAAE,iCAAkC,GAASA,EAAE,KAAK,aAAf,MAAoCA,IAAT,QAAYA,EAAE,aAAa;AAAA,CAAI,EAAE,KAAK,gBAAgBF,EAAE,eAAc,CAAE,EAAE,IAAIA,EAAE,CAAC,IAAI,EAAEE,GAAU,EAAE,KAAK,aAAf,MAAoC,IAAT,QAAY,EAAE,wBAAuB,KAAaA,EAAE,KAAK,aAAf,MAAoCA,IAAT,QAAYA,EAAE,qBAAsB,EAAC,KAAK,gBAAgBF,EAAE,eAAc,EAAG,EAAE,KAAKA,EAAE,CAAC,GAAG,KAAK,0BAAyB,EAAG,OAAOA,EAAE,eAAgB,EAAC,KAAK,2BAA2B,UAAU,CAAC,EAAE,MAAMA,EAAE,CAAC,GAAG,KAAK,0BAA2B,EAAC,OAAOA,EAAE,eAAgB,EAAC,KAAK,2BAA2B,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,UAAUA,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,gBAAgB,CAAC,eAAe,EAAE,CAAC,GAAU,EAAE,KAAK,YAAf,MAAmC,IAAT,OAAW,OAAO,EAAE,iCAAgC,CAAE,CAAC,EAAE,KAAK,CAAC,UAAUA,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,gBAAgB,CAAC,eAAe,EAAE,CAAC,GAAU,EAAE,KAAK,YAAf,MAAmC,IAAT,OAAW,OAAO,EAAE,kCAAkC,CAAC,CAAC,CAAC,EAAE0R,GAAG,YAAY,6BAA6B,EAAEA,GAAG,YAAY,6BAA6B,EAAEA,GAAG,YAAY,uCAAuC,EAAEA,GAAG,YAAY,sCAAsC,EAAEA,GAAG,YAAY,gCAAgC,EAAE,MAAMI,GAAG9R,GAAG,CAAC,IAAI,EAAE,OAAe,EAAEA,EAAE,QAAZ,MAA4B,IAAT,SAAoB,EAAE,EAAE,MAAM,UAAU,KAA5B,MAAyC,IAAT,OAAW,OAAO,EAAE,CAAC,CAAC,EAAE+R,GAAG,GAAUT,GAAG,IAAI,eAAf,MAAsCA,KAAT,QAAa,CAACA,GAAG,KAAK,IAAI,CAAC,GAAGM,GAAG,SAAS5R,EAAE,CAAC,GAAGA,EAAE,KAAK+R,IAAI/R,EAAE,IAAI,YAAY,CAAC,IAAIA,EAAE,QAAQ,OAAOA,EAAE,IAAI,CAAC,IAAI,EAAE,GAAUA,EAAE,QAAT,KAAe,EAAEA,EAAE,QAAYA,EAAE,QAAN,GAAiBA,EAAE,WAAN,IAAiB,EAAEA,EAAE,UAAgB,GAAN,MAAoBwR,GAAG,CAAC,IAAf,SAAiB,OAAO5N,GAAE,eAAe,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,EAAEiO,GAAG,SAAS7R,EAAE,CAAC,MAAM,EAAEA,EAAE,cAAc,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,SAAS,WAAW,EAAE,CAAC,UAAU,KAAK,EAAE,MAAM,CAAC,MAAME,EAAE,4BAA4B,KAAK,CAAC,EAAE,EAAE,SAAS,KAAK,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,GAAGA,GAAG,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,EAAE,MAAM,SAAS,sBAAsB,EAAEA,EAAE,EAAE,MAAM,SAAS,qBAAqB,EAAE,OAAO,GAAGA,CAAC,CAAC,CAAC,EAAE,MAAMyR,WAAWvO,EAAC,CAAC,YAAYpD,EAAE,CAAC,MAAM,GAAG,SAAS,EAAE,KAAK,gBAAgBA,EAAE,KAAK,UAAU,KAAK,gBAAgB,UAAU,KAAK,SAAS,KAAK,gBAAgB,SAAS,KAAK,aAAa,KAAK,gBAAgB,aAAa,KAAK,KAAK,CAAE,CAAA,CAAC,MAAMA,EAAE,CAAC,GAAG,KAAK,KAAK,MAAMA,EAAE,KAAK,gBAAgB,CAAC,IAAIC,EAAEC,EAAkB,KAAK,aAAa,YAA/B,YAA0C,KAAK,aAAa,aAAkBA,EAAE,KAAK,aAAf,MAAoCA,IAAT,QAAYA,EAAE,kBAAkB,MAAM,GAAE,KAAK,oBAAmB,IAAK,KAAK,oBAAoB,KAAK,cAAa,GAAI,KAAK,OAAcD,EAAE,KAAK,aAAf,MAAoCA,IAAT,OAAW,OAAOA,EAAE,iBAAgB,CAAE,CAAC,CAAC,OAAOD,EAAE,CAAC,GAAG,KAAK,KAAK,OAAOA,EAAE,KAAK,cAAa,EAAG,CAAC,MAAM,EAAE,KAAK,kBAAiB,EAAG,IAAI,KAAK,kBAAiB,EAAG,KAAK,MAAM,EAAE,CAAC,CAAC,IAAIA,EAAE,CAAC,OAAO,KAAK,KAAK,IAAIA,EAAE,KAAK,cAAe,GAAE,KAAK,kBAAmB,EAAC,KAAK,mBAAoB,GAAE,KAAK,gBAAgB,CAAC,eAAe,GAAG,SAAS,EAAE,CAAC,GAAUC,EAAE,KAAK,YAAf,MAAmCA,IAAT,QAAYA,EAAE,iCAAkC,GAASC,EAAE,KAAK,aAAf,MAAoCA,IAAT,QAAYA,EAAE,iBAAiB,KAAK,KAAK,GAAU,EAAE,KAAK,aAAf,MAAoC,IAAT,QAAY,EAAE,aAAa,KAAK,KAAK,GAAG,GAAU,EAAE,KAAK,aAAf,MAAoC,IAAT,OAAW,OAAO,EAAE,iBAAiB,KAAK,MAAM,CAAC,EAAE,KAAK,KAAK,IAAI,MAAM,GAAS,KAAK,KAAK,OAAhB,MAA6B,KAAK,KAAK,QAAhB,MAAwB,KAAK,eAAgB,EAAC,KAAK,gBAAgB,SAAS,QAAQ,KAAK,gBAAgB,MAAK,EAAG,IAAID,EAAEC,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,OAAO,KAAK,KAAK,GAAG,CAAC,SAAS,CAAC,OAAa,KAAK,WAAY,GAAvB,IAAuB,CAAC,eAAe,CAAC,MAAM,CAACqR,GAAG,sBAAsB,KAAK,aAAa,QAAQ,CAAC,oBAAoB,CAAC,IAAIvR,EAAEC,EAAE,QAAoBD,EAAE,KAAK,KAAK,SAApB,MAAqCA,IAAT,OAAW,OAAOA,EAAE,UAArD,KAAuEC,EAAE,KAAK,KAAK,OAApB,MAAmCA,IAAT,OAAW,OAAOA,EAAE,QAAQ,GAAG,KAAK,KAAK,CAAC,CAAC0R,GAAG,YAAY,iCAAiC,EAAEA,GAAG,YAAY,+BAA+B,EAAEA,GAAG,YAAY,gCAAgC,EAAEA,GAAG,YAAY,gCAAgC,EAAEA,GAAG,YAAY,8BAA8B,EAAEA,GAAG,YAAY,8BAA8B,EAAEA,GAAG,YAAY,8BAA8B,EAAE,MAAMK,WAAWX,EAAE,CAAC,aAAa,CAAC,MAAM,GAAG,SAAS,EAAE,KAAK,OAAO,KAAK,OAAO,KAAK,IAAI,CAAC,CAAC,kBAAkB,CAAC,OAAO,KAAK,gBAAgB,KAAK,WAAkBrR,EAAE,KAAK,YAAf,MAAmCA,IAAT,SAAoBC,EAAED,EAAE,yCAAZ,MAA6DC,IAAT,OAAW,OAAOA,EAAE,KAAKD,CAAC,EAAE,OAAO,KAAK,QAAS,EAAC,IAAIA,EAAEC,CAAC,CAAC,gBAAgB,CAAC,OAAO,KAAK,gBAAgB,KAAK,gBAAgB,KAAK,gBAAgB,sBAAsB,KAAK,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAID,EAAEC,EAAG,qBAAqB,KAAK,eAAe,EAAE,KAAK,gBAAgB,KAAK,KAAK,YAAqBA,EAAE,KAAK,YAAf,MAAmCA,IAAT,QAAYA,EAAE,OAAM,GAAYD,EAAE,KAAK,eAAf,MAAsCA,IAAT,QAAYA,EAAE,KAAK,IAAI,EAAE,KAAK,YAAY,IAAI,CAAC,SAAS,CAAC,IAAIA,EAAE,OAAeA,EAAE,KAAK,YAAf,MAAmCA,IAAT,OAAW,OAAOA,EAAE,QAAO,CAAE,CAAC,cAAc,CAAC,IAAIA,EAAE,IAAIC,EAAE,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,GAAGC,EAAE,UAAU,OAAO,EAAE,UAAU,CAAC,EAAE,OAAO,OAAeF,EAAE,KAAK,YAAf,MAAmCA,IAAT,QAAYA,EAAE,iCAAkC,EAAC,KAAK,mBAAoB,UAAU,CAAC,IAAIA,EAAE,OAAeA,EAAE,KAAK,aAAf,MAAoCA,IAAT,OAAW,OAAOA,EAAE,aAAaC,EAAEC,CAAC,CAAC,CAAC,CAAE,CAAC,2BAA2BF,EAAE,CAAC,IAAIC,EAAE,GAAGoE,GAAI,EAAC,SAASrE,CAAC,EAAE,OAAeC,EAAE,KAAK,YAAf,MAAmCA,IAAT,QAAYA,EAAE,qCAAqCD,CAAC,EAAE,KAAK,mBAAoB,UAAU,CAAC,IAAIC,EAAE,OAAeA,EAAE,KAAK,aAAf,MAAoCA,IAAT,OAAW,OAAOA,EAAE,uBAAuBD,CAAC,CAAC,CAAG,CAAA,CAAC,6BAA6BA,EAAEC,EAAE,CAAC,IAAIC,EAAE,GAAGmE,GAAE,EAAG,SAASrE,CAAC,EAAE,OAAeE,EAAE,KAAK,YAAf,MAAmCA,IAAT,QAAYA,EAAE,qCAAqCF,CAAC,EAAE,KAAK,mBAAoB,UAAU,CAAC,IAAIE,EAAE,OAAeA,EAAE,KAAK,aAAf,MAAoCA,IAAT,OAAW,OAAOA,EAAE,oBAAoBF,EAAEC,CAAC,CAAC,CAAC,CAAE,CAAC,kBAAkBD,EAAE,CAAC,GAAG,CAAC,gBAAgBC,CAAC,EAAE,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,CAAC,gBAAgB,EAAE,EAAE,IAAIC,EAAED,KAAYC,EAAE,KAAK,YAAf,MAAmCA,IAAT,QAAYA,EAAE,iCAAgC,GAAI,MAAM,EAAE,IAAI,CAAC,IAAID,EAAE,OAAeA,EAAE,KAAK,aAAf,MAAoCA,IAAT,OAAW,OAAOA,EAAE,kBAAkBD,CAAC,CAAC,EAAE,EAAE,KAAK,kBAAkB,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,mBAAmB,EAAE,CAAC,EAAE,EAAC,CAAE,CAAC,mBAAmBA,EAAEC,EAAE,CAAC,IAAIC,EAAE,OAAkB,OAAOF,GAAnB,aAAuBC,EAAED,EAAEA,EAAE,KAAK,kBAAiB,GAAIA,GAAUE,EAAE,KAAK,aAAf,MAAoCA,IAAT,OAAW,OAAOA,EAAE,mBAAmBF,EAAEC,EAAE,KAAK,IAAI,CAAC,GAAGyF,GAAG,MAAO,EAACzF,EAAE,KAAK,IAAI,EAAE,CAAC,mBAAmB,CAAC,IAAID,EAAEC,EAAE,GAAG,CAAC,UAAUC,CAAC,EAAE,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,MAAM,GAAUF,GAAGC,EAAE,KAAK,OAAO,mBAAzB,MAAoDD,IAAT,OAAW,OAAOA,EAAE,KAAKC,CAAC,EAAE,GAAG,GAAG,EAAE,OAAO,CAAC,MAAMD,EAAEiS,GAAG,EAAE,CAAC,CAAC,EAAE,GAAO/R,IAAJ,GAAOF,EAAE,WAAW,QAAQE,EAAE,OAAOF,CAAC,CAAC,CAAC,UAAUA,EAAEC,EAAE,CAAC,IAAIC,EAAE,KAAK,MAAMF,EAAE,GAAG,CAACE,EAAED,EAAE,KAAK,IAAI,CAAC,QAAC,CAAQ,KAAK,MAAM,IAAI,CAAC,OAAOC,CAAC,CAAC,CAAC8L,GAAGgG,GAAG,SAAS,CAAC,QAAQhS,EAAE,CAAC,GAAGgF,GAAGhF,CAAC,EAAE,CAAC,IAAI,EAAE,MAAME,EAAEgS,GAAGlS,CAAC,GAAU,EAAE,KAAK,YAAf,MAAmC,IAAT,QAAY,EAAE,yCAAyCE,CAAC,GAAGF,EAAE,eAAgB,CAAA,KAAK,CAAC,IAAIC,EAAED,EAAE,IAAIA,EAAE,SAASC,GAAG,QAAQD,EAAE,WAAWC,GAAG,UAAU,MAAMC,EAAE,KAAK,YAAY,KAAKD,CAAC,EAAE,GAAGC,EAAE,OAAO,KAAK,UAAUF,EAAEE,CAAC,CAAC,CAAC,EAAE,MAAMF,EAAE,CAAC,IAAI,EAAE,IAAIE,EAAE,MAAMC,GAAU,EAAEH,EAAE,iBAAZ,MAAqC,IAAT,OAAW,OAAO,EAAE,QAAQ,KAAK,EAAE,OAAOmS,GAAGnS,CAAC,GAAGA,EAAE,iBAAiB,KAAK,YAAYA,EAAE,cAAc,KAAK,GAAGoS,GAAGpS,CAAC,GAAGA,EAAE,eAAc,EAAGE,EAAE,CAAC,KAAK,aAAa,OAAOF,EAAE,cAAc,QAAQ,YAAY,CAAC,GAAUI,EAAE,KAAK,YAAf,MAAmCA,IAAT,QAAYA,EAAE,yBAAyBF,CAAC,GAAUG,EAAE,KAAK,aAAf,MAAoCA,IAAT,QAAYA,EAAE,aAAaH,EAAE,MAAM,EAAE,KAAK,OAAQ,GAAS,EAAE,KAAK,YAAf,MAAmC,IAAT,OAAW,OAAO,EAAE,wBAAwBA,CAAC,GAAGC,GAAGH,EAAE,eAAgB,EAACE,EAAE,CAAC,KAAK,YAAY,KAAK,KAAK,eAAeC,CAAC,CAAC,GAAUI,EAAE,KAAK,YAAf,MAAmCA,IAAT,QAAYA,EAAE,yBAAyBL,CAAC,GAAU,EAAE,KAAK,aAAf,MAAoC,IAAT,QAAY,EAAE,WAAWA,EAAE,IAAI,EAAE,KAAK,OAAQ,GAAS,EAAE,KAAK,YAAf,MAAmC,IAAT,OAAW,OAAO,EAAE,wBAAwBA,CAAC,GAAG,OAAO,IAAIE,EAAEC,EAAE,EAAEE,EAAE,EAAE,CAAC,EAAE,YAAYP,EAAE,CAAC,MAAM,EAAE,KAAK,YAAY,WAAWA,EAAE,SAAS,EAAEE,GAAGC,EAAEH,EAAE,EAAE,CAAC,cAAc,KAAK,UAAU,SAAS,GAAGG,EAAE,WAA+BA,EAAE,YAAtB,oBAAkC,IAAIA,EAAE,IAAI,KAAK,UAAUH,EAAE,CAAC,EAAEE,GAAG,KAAK,kBAAkBA,GAAG,KAAK,OAAM,CAAE,EAAE,MAAMF,EAAE,CAAC0F,GAAG,OAAO,EAAE,UAAU1F,EAAE,CAAC,IAAI,EAAEE,GAAU,EAAE,KAAK,aAAf,MAAoC,IAAT,QAAY,EAAE,iCAAiCF,EAAE,aAAa,QAAQ,8BAA8B,EAAE,EAAE,KAAK,SAAS,CAAC,OAAcE,EAAE,KAAK,aAAf,MAAoCA,IAAT,OAAW,OAAOA,EAAE,mBAAmB,MAAMmS,GAAGrS,CAAC,CAAC,EAAE,EAAE,UAAUA,EAAE,CAACsS,GAAGtS,CAAC,GAAGA,EAAE,gBAAgB,EAAE,SAASA,EAAE,CAAC,GAAG,KAAK,SAAS,CAACA,EAAE,eAAgB,EAAC,MAAME,EAAEmS,GAAGrS,CAAC,EAAE,IAAI,EAAE,GAAG,CAACmF,GAAGjF,EAAE,KAAK,SAAS,KAAK,EAAE,OAAO,KAAK,SAAS,MAAMA,GAAU,EAAE,KAAK,aAAf,MAAoC,IAAT,OAAW,OAAO,EAAE,+BAA+BA,CAAC,CAAC,MAAMoS,GAAGtS,CAAC,GAAGA,EAAE,eAAgB,CAAA,EAAE,KAAKA,EAAE,CAAC,IAAI,EAAEE,EAAE,GAAG,KAAK,SAAS,OAAOF,EAAE,kBAAyB,EAAE,KAAK,YAAf,MAAmC,IAAT,QAAY,EAAE,4BAA6B,GAASE,EAAE,KAAK,aAAf,MAAoCA,IAAT,QAAYA,EAAE,kBAAkB,KAAK,SAAS,KAAK,EAAE,KAAK,SAAS,KAAK,KAAK,eAAc,EAAG,GAAGoS,GAAGtS,CAAC,EAAE,CAAC,IAAIG,EAAEH,EAAE,eAAc,EAAG,MAAMC,EAAEoS,GAAGrS,CAAC,EAAE,OAAeG,EAAE,KAAK,aAAf,MAAoCA,IAAT,QAAYA,EAAE,+BAA+BF,CAAC,EAAE,KAAK,YAAYD,EAAE,aAAa,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,IAAIA,EAAE,KAAK,YAAmBA,EAAE,KAAK,aAAf,MAAoCA,IAAT,QAAYA,EAAE,iBAAiB,KAAK,SAAS,KAAK,EAAE,KAAK,SAAS,KAAK,EAAE,eAAeA,EAAE,CAAC,KAAK,YAAY,KAAK,UAAU,GAAGO,GAAE,eAAe,KAAK,iBAAiB,CAAC,CAAC,EAAEyL,GAAGgG,GAAG,OAAO,CAAC,WAAW,CAAC,IAAIhS,EAAE,EAAE,IAAWA,EAAE,KAAK,aAAf,MAAoCA,IAAT,QAAYA,EAAE,oCAAoC,UAAU,EAAE,OAAO,KAAK,MAAM,kBAAyB,EAAE,KAAK,aAAf,MAAoC,IAAT,OAAW,OAAO,EAAE,sBAAsB,UAAU,CAAC,EAAE,YAAY,CAAC,IAAIA,EAAE,EAAE,IAAWA,EAAE,KAAK,aAAf,MAAoCA,IAAT,QAAYA,EAAE,oCAAoC,SAAS,EAAE,OAAO,KAAK,MAAM,eAAgB,GAAS,EAAE,KAAK,aAAf,MAAoC,IAAT,OAAW,OAAO,EAAE,sBAAsB,SAAS,CAAC,EAAE,WAAW,CAAC,IAAIA,EAAE,EAAEE,EAAE,IAAWF,EAAE,KAAK,aAAf,MAAoCA,IAAT,QAAYA,EAAE,gCAAgC,UAAU,EAAE,OAAO,KAAK,MAAM,eAAgB,GAAS,EAAE,KAAK,YAAf,MAAmC,IAAT,QAAY,EAAE,oCAA2CE,EAAE,KAAK,aAAf,MAAoCA,IAAT,QAAYA,EAAE,kBAAkB,UAAU,EAAE,KAAK,OAAM,CAAE,EAAE,KAAK,CAAC,IAAIF,EAAE,EAAE,IAAWA,EAAE,KAAK,aAAf,MAAoCA,IAAT,QAAYA,EAAE,wBAAuB,EAAG,OAAO,KAAK,MAAM,eAAc,GAAW,EAAE,KAAK,aAAf,MAAoC,IAAT,QAAY,EAAE,qBAAoB,EAAG,KAAK,OAAQ,CAAA,EAAE,aAAa,CAAC,IAAIA,EAAE,EAAE,IAAWA,EAAE,KAAK,aAAf,MAAoCA,IAAT,QAAYA,EAAE,wBAAuB,EAAG,OAAO,KAAK,MAAM,eAAc,GAAW,EAAE,KAAK,aAAf,MAAoC,IAAT,QAAY,EAAE,qBAAsB,EAAC,KAAK,QAAQ,CAAC,CAAC,EAAEgM,GAAGgG,GAAG,aAAa,CAAC,qBAAqB,CAAC,OAAO,KAAK,kBAAkB,WAAW,CAAC,gBAAgB,EAAE,CAAC,CAAC,EAAE,aAAa,CAAC,OAAO,KAAK,kBAAkB,UAAU,CAAC,EAAE,cAAc,CAAC,OAAO,KAAK,MAAM,iBAAiB,KAAK,mBAAoB,UAAU,CAAC,IAAIhS,EAAE,KAAK,mBAA0BA,EAAE,KAAK,aAAf,MAAoCA,IAAT,OAAW,OAAOA,EAAE,iBAAgB,CAAE,CAAC,CAAE,EAAE,uBAAuB,CAAC,OAAO,KAAK,kBAAkB,WAAW,CAAC,gBAAgB,EAAE,CAAC,CAAC,EAAE,eAAe,CAAC,OAAO,KAAK,kBAAkB,UAAU,CAAC,EAAE,uBAAuB,CAAC,OAAO,KAAK,kBAAkB,UAAU,CAAC,EAAE,sBAAsB,CAAC,OAAO,KAAK,kBAAkB,SAAS,CAAC,EAAE,sBAAsB,CAAC,OAAO,KAAK,kBAAkB,SAAS,CAAC,EAAE,wBAAwB,CAAC,OAAO,KAAK,kBAAkB,UAAU,CAAC,EAAE,uBAAuB,CAAC,OAAO,KAAK,kBAAkB,SAAS,CAAC,EAAE,wBAAwB,CAAC,OAAO,KAAK,kBAAkB,UAAU,CAAC,EAAE,uBAAuB,CAAC,OAAO,KAAK,kBAAkB,SAAS,CAAC,EAAE,oBAAoB,CAAC,OAAO,KAAK,kBAAkB,UAAU,CAAC,EAAE,mBAAmB,CAAC,OAAO,KAAK,kBAAkB,SAAS,CAAC,EAAE,iBAAiB,CAAC,OAAO,KAAK,6BAA6B,kBAAkB,KAAK,MAAM,IAAI,CAAC,EAAE,YAAY,CAAC,OAAO,KAAK,2BAA2B,MAAM,CAAC,EAAE,iBAAiB,CAAC,OAAO,KAAK,6BAA6B,QAAQ,KAAK,MAAM,IAAI,CAAC,EAAE,gBAAgB,CAAC,OAAO,KAAK,6BAA6B,OAAO,KAAK,MAAM,IAAI,CAAC,EAAE,cAAc,CAAC,IAAIA,EAAE,IAAWA,EAAE,KAAK,aAAf,MAAoCA,IAAT,QAAYA,EAAE,0BAA0B,OAAO,KAAK,mBAAoB,UAAU,CAAC,IAAIA,EAAE,OAAeA,EAAE,KAAK,aAAf,MAAoCA,IAAT,OAAW,OAAOA,EAAE,qBAAoB,CAAE,CAAG,CAAA,EAAE,cAAc,CAAC,OAAO,KAAK,2BAA2B,QAAQ,CAAC,EAAE,qBAAqB,CAAC,OAAO,KAAK,2BAA2B,eAAe,CAAC,EAAE,mBAAmB,CAAC,OAAO,KAAK,2BAA2B,aAAa,CAAC,EAAE,mBAAmB,CAAC,OAAO,KAAK,2BAA2B,aAAa,CAAC,EAAE,oBAAoB,CAAC,OAAO,KAAK,2BAA2B,cAAc,CAAC,EAAE,eAAe,CAAC,IAAIA,EAAE,IAAWA,EAAE,KAAK,aAAf,MAAoCA,IAAT,QAAYA,EAAE,wBAAyB,EAAC,OAAO,KAAK,mBAAoB,UAAU,CAAC,IAAIA,EAAE,OAAeA,EAAE,KAAK,aAAf,MAAoCA,IAAT,OAAW,OAAOA,EAAE,qBAAoB,CAAE,CAAC,CAAE,EAAE,cAAc,CAAC,KAAK,mBAAoB,UAAU,CAAC,UAAUE,KAAaF,EAAE,KAAK,aAAf,MAAoCA,IAAT,OAAW,OAAOA,EAAE,qBAAsB,EAAC,CAAC,IAAIA,EAAE,GAAU,EAAE,KAAK,aAAf,MAAoC,IAAT,QAAY,EAAE,uBAAuBE,CAAC,CAAC,CAAC,CAAG,CAAA,EAAE,6BAA6B,CAAC,OAAO,KAAK,6BAA6B,WAAW,KAAK,MAAM,IAAI,CAAC,EAAE,8BAA8B,CAAC,OAAO,KAAK,6BAA6B,UAAU,KAAK,MAAM,IAAI,CAAC,EAAE,qBAAqB,CAAC,OAAO,KAAK,2BAA2B,QAAQ,CAAC,EAAE,iBAAiB,CAAC,OAAO,KAAK,2BAA2B,KAAK,CAAC,EAAE,mBAAmB,CAAC,OAAO,KAAK,2BAA2B,KAAK,CAAC,EAAE,iBAAiB,CAAC,OAAO,KAAK,2BAA2B,WAAW,CAAC,EAAE,aAAa,CAAC,IAAIF,EAAE,OAAeA,EAAE,KAAK,YAAf,MAAmCA,IAAT,OAAW,OAAOA,EAAE,+BAA8B,CAAE,EAAE,aAAa,CAAC,IAAIA,EAAE,OAAeA,EAAE,KAAK,YAAf,MAAmCA,IAAT,OAAW,OAAOA,EAAE,+BAAgC,CAAA,EAAE,uBAAuB,CAAC,OAAO,KAAK,UAAU,GAAG,KAAK,aAAa,KAAK,MAAM,IAAI,CAAC,EAAE,uBAAuB,CAAC,OAAO,KAAK,UAAU,GAAG,KAAK,aAAa,KAAK,MAAM,IAAI,CAAC,EAAE,gBAAgB,CAAC,MAAMA,EAAE,KAAK,kBAAkB,IAAI,EAAE,GAAGA,EAAE,OAAO,KAAK,kBAAkB,MAAa,EAAE,KAAK,YAAf,MAAmC,IAAT,QAAY,EAAE,4BAA6B,EAAC,KAAK,mBAAoB,UAAU,CAAC,IAAIC,EAAE,OAAeA,EAAE,KAAK,aAAf,MAAoCA,IAAT,OAAW,OAAOA,EAAE,kBAAkBD,CAAC,CAAC,EAAG,EAAE,iBAAiB,CAAC,KAAK,CAAC,aAAaA,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC,aAAaA,CAAC,EAAEE,EAAEF,EAAE,QAAQ,KAAK,EAAEG,EAAEH,EAAE,QAAQ,WAAW,EAAE,GAAGE,EAAE,CAAC,IAAIE,EAAE,IAAID,EAAE,KAAK,MAAM,eAAc,EAAG,EAAE,KAAK,YAAY,MAAME,EAAEL,EAAE,QAAQ,iBAAiB,EAAEG,EAAEE,EAAE6F,GAAG7F,CAAC,EAAE,OAAOH,EAAE,EAAE,KAAK,KAAK,eAAeA,EAAEC,CAAC,GAAUC,EAAE,KAAK,YAAf,MAAmCA,IAAT,QAAYA,EAAE,yBAAyB,CAAC,EAAE,KAAK,mBAAoB,UAAU,CAAC,IAAIJ,EAAE,OAAeA,EAAE,KAAK,aAAf,MAAoCA,IAAT,OAAW,OAAOA,EAAE,WAAW,EAAE,IAAI,CAAC,CAAG,EAAC,KAAK,YAAY,IAAI,CAAC,IAAIA,EAAE,OAAeA,EAAE,KAAK,YAAf,MAAmCA,IAAT,OAAW,OAAOA,EAAE,wBAAwB,CAAC,CAAC,CAAC,SAAS+E,GAAG/E,CAAC,EAAE,CAAC,IAAIK,EAAE,EAAE,KAAK,aAAa,EAAE,OAAOL,EAAE,QAAQ,YAAY,GAAUK,EAAE,KAAK,YAAf,MAAmCA,IAAT,QAAYA,EAAE,yBAAyB,CAAC,EAAE,KAAK,mBAAoB,UAAU,CAAC,IAAIL,EAAE,OAAeA,EAAE,KAAK,aAAf,MAAoCA,IAAT,OAAW,OAAOA,EAAE,aAAa,EAAE,MAAM,CAAC,GAAI,KAAK,YAAY,IAAI,CAAC,IAAIA,EAAE,OAAeA,EAAE,KAAK,YAAf,MAAmCA,IAAT,OAAW,OAAOA,EAAE,wBAAwB,CAAC,CAAC,CAAC,SAASuS,GAAG,KAAK,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,KAAK,OAAO,EAAE,KAAKvS,EAAE,MAAM,CAAC,GAAU,EAAE,KAAK,YAAf,MAAmC,IAAT,QAAY,EAAE,yBAAyB,CAAC,EAAE,KAAK,mBAAoB,UAAU,CAAC,IAAIA,EAAE,OAAeA,EAAE,KAAK,aAAf,MAAoCA,IAAT,OAAW,OAAOA,EAAE,WAAW,EAAE,IAAI,CAAC,CAAG,EAAC,KAAK,YAAY,IAAI,CAAC,IAAIA,EAAE,OAAeA,EAAE,KAAK,YAAf,MAAmCA,IAAT,OAAW,OAAOA,EAAE,wBAAwB,CAAC,CAAC,CAAC,SAASG,EAAE,CAAC,IAAII,EAAE,KAAK,MAAM,eAAgB,EAAC,EAAE,KAAK,YAAY,EAAE,KAAKJ,GAAUI,EAAE,KAAK,YAAf,MAAmCA,IAAT,QAAYA,EAAE,yBAAyB,CAAC,EAAE,KAAK,mBAAoB,UAAU,CAAC,IAAIP,EAAE,OAAeA,EAAE,KAAK,aAAf,MAAoCA,IAAT,OAAW,OAAOA,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC,EAAG,KAAK,YAAY,IAAI,CAAC,IAAIA,EAAE,OAAeA,EAAE,KAAK,YAAf,MAAmCA,IAAT,OAAW,OAAOA,EAAE,wBAAwB,CAAC,CAAC,CAAC,CAAC,EAAE,gBAAgB,CAAC,OAAO,KAAK,aAAa,KAAK,MAAM,IAAI,CAAC,EAAE,iBAAiB,CAAC,OAAO,KAAK,aAAa;AAAA,CAAI,CAAC,EAAE,YAAY,CAAC,OAAO,KAAK,6BAA6B,OAAO,KAAK,MAAM,IAAI,CAAC,EAAE,mBAAmB,CAAC,OAAO,KAAK,2BAA2B,QAAQ,CAAC,EAAE,iBAAiB,CAAC,IAAIA,EAAE,OAAeA,EAAE,KAAK,YAAf,MAAmCA,IAAT,QAAYA,EAAE,iCAAgC,EAAG,KAAK,mBAAoB,UAAU,CAAC,IAAIA,EAAE,OAAeA,EAAE,KAAK,aAAf,MAAoCA,IAAT,OAAW,OAAOA,EAAE,gBAAe,CAAE,CAAC,CAAE,EAAE,uBAAuB,CAAC,MAAMA,EAAE,KAAK,MAAM,aAAa,QAAQ,YAAY,EAAE,EAAE,KAAK,MAAM,gBAAiB,EAAC,CAAC,EAAE,KAAK,mBAAmB,EAAG,IAAI,CAAC,KAAK,aAAaA,EAAE,CAAC,eAAe,EAAE,CAAC,CAAC,CAAG,CAAA,EAAE,YAAY,CAAC,IAAIA,EAAE,OAAO,KAAK,aAAa,KAAK,MAAM,QAAeA,EAAE,KAAK,MAAM,gBAArB,MAA6CA,IAAT,OAAW,OAAOA,EAAE,QAAQ,YAAY,EAAE,CAAC,EAAE,iBAAiB,CAAC,OAAO,KAAK,aAAa,KAAK,MAAM,IAAI,CAAC,EAAE,qBAAqB,CAAC,OAAO,KAAK,2BAA2B,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAMiS,GAAG,SAASjS,EAAE,CAAC,MAAM,EAAE,SAAS,YAAW,EAAG,OAAO,EAAE,SAASA,EAAE,eAAeA,EAAE,WAAW,EAAE,EAAE,OAAOA,EAAE,aAAaA,EAAE,SAAS,EAAE,CAAC,EAAEsS,GAAGtS,GAAG,CAAC,IAAI,EAAE,OAAO,MAAM,OAAc,EAAEA,EAAE,gBAAZ,MAAoC,IAAT,OAAW,OAAO,EAAE,QAAQ,EAAE,EAAE,SAAS,OAAO,CAAC,EAAEuS,GAAGvS,GAAG,CAAC,IAAI,EAAE,QAAe,EAAEA,EAAE,aAAa,SAAzB,MAA0C,IAAT,OAAW,OAAO,EAAE,CAAC,IAAI,CAACmS,GAAGnS,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,aAAaC,CAAC,EAAE,EAAE,OAAOA,EAAE,MAAM,SAAS,OAAO,GAAGA,EAAE,MAAM,SAAS,WAAW,GAAGA,EAAE,QAAQ,WAAW,EAAE,SAAS,yCAAyC,CAAC,GAAGD,CAAC,CAAC,EAAEmS,GAAG,SAASnS,EAAE,CAAC,MAAM,EAAEA,EAAE,cAAc,GAAG,EAAG,OAAO,MAAM,KAAK,EAAE,KAAK,EAAE,OAAQ,GAAG,EAAE,MAAM,OAAO,CAAC,EAAG,SAAS,EAAE,MAAM,QAAQ,EAAE,MAAM,QAAQ,CAAE,EAAEoS,GAAG,SAASpS,EAAE,CAAC,MAAM,EAAEA,EAAE,cAAc,GAAG,EAAE,OAAO,EAAE,MAAM,SAAS,YAAY,GAAO,EAAE,MAAM,SAAZ,CAAkB,EAAEkS,GAAG,SAASlS,EAAE,CAAC,MAAM,EAAE,CAAA,EAAG,OAAOA,EAAE,QAAQ,EAAE,KAAK,KAAK,EAAEA,EAAE,UAAU,EAAE,KAAK,OAAO,EAAE,EAAE,KAAKA,EAAE,GAAG,EAAE,CAAC,EAAEqS,GAAGrS,IAAI,CAAC,EAAEA,EAAE,QAAQ,EAAEA,EAAE,OAAO,GAAGwS,GAAG,wBAAwBC,GAAG,qBAAqBC,GAAG,GAAG,OAAOF,GAAG,IAAI,EAAE,OAAOC,EAAE,EAAEE,GAAG,qBAAqBC,GAAG,GAAG,OAAOD,GAAG,oBAAoB,EAAEE,GAAG,GAAG,OAAOF,GAAG,qBAAqB,EAAEG,GAAG,GAAG,OAAOH,GAAG,oBAAoB,EAAEI,GAAG,CAAC/S,EAAE,KAAK,IAAI,EAAEgT,GAAGhT,CAAC,GAAGA,EAAE,cAAc,2BAA2B,OAAO,EAAE,IAAI,CAAC,GAAGiT,GAAGjT,GAAGA,EAAE,aAAa,kBAAkB,EAAEgT,GAAGhT,GAAGA,EAAE,aAAa,qBAAqB,GAAGA,EAAE,aAAa,4BAA4B,EAAE,MAAMkT,WAAW9P,EAAC,CAAC,YAAYpD,EAAE,CAAC,MAAMA,CAAC,EAAE,KAAK,qBAAqB,KAAK,qBAAqB,KAAK,IAAI,EAAE,KAAK,wBAAwB,KAAK,wBAAwB,KAAK,IAAI,EAAE,KAAK,qBAAqB,KAAK,qBAAqB,KAAK,IAAI,EAAE,KAAK,sBAAsB,KAAK,sBAAsB,KAAK,IAAI,EAAE,KAAK,QAAQA,EAAE,KAAK,WAAW,CAAE,EAAC,KAAK,QAAQ,CAAE,EAAC,KAAK,kBAAmB,EAACiB,GAAE,YAAY,CAAC,UAAU,KAAK,QAAQ,iBAAiBwR,GAAG,aAAa,KAAK,oBAAoB,CAAC,EAAExR,GAAE,YAAY,CAAC,UAAU,KAAK,QAAQ,iBAAiBuR,GAAG,aAAa,KAAK,uBAAuB,CAAC,EAAEvR,GAAE,QAAQ,CAAC,UAAU,KAAK,QAAQ,iBAAiByR,GAAG,eAAe,EAAE,CAAC,EAAEzR,GAAE,QAAQ,CAAC,UAAU,KAAK,QAAQ,iBAAiB4R,GAAG,aAAa,KAAK,oBAAoB,CAAC,EAAE5R,GAAE,UAAU,CAAC,UAAU,KAAK,QAAQ,iBAAiB6R,GAAG,aAAa,KAAK,qBAAqB,CAAC,CAAC,CAAC,qBAAqB9S,EAAEC,EAAE,CAAC,IAAIC,GAAUA,EAAE,KAAK,YAAf,MAAmCA,IAAT,QAAYA,EAAE,sBAAqB,EAAGF,EAAE,eAAc,EAAG,MAAM,EAAEiT,GAAGhT,CAAC,EAAE,OAAO,KAAK,UAAU,CAAC,EAAE,KAAK,aAAa,CAAC,GAAU,EAAE,KAAK,YAAf,MAAmC,IAAT,OAAW,OAAO,EAAE,uBAAuB,EAAEA,CAAC,EAAE,IAAI,CAAC,CAAC,wBAAwBD,EAAEC,EAAE,CAAC,IAAIC,GAAUA,EAAE,KAAK,YAAf,MAAmCA,IAAT,QAAYA,EAAE,sBAAuB,EAACF,EAAE,eAAgB,EAAC,MAAM,EAAEgT,GAAG/S,CAAC,EAAE,IAAI,EAAE,YAAK,UAAU,CAAC,EAAE,KAAK,aAAa,CAAC,GAAU,EAAE,KAAK,YAAf,MAAmC,IAAT,QAAY,EAAE,0BAA0B,CAAC,EAAS,KAAK,wBAAyB,CAAA,CAAC,qBAAqBD,EAAEC,EAAE,CAAC,MAAMC,EAAEgB,GAAEjB,EAAE,CAAC,iBAAiB0S,EAAE,CAAC,EAAE,OAAO,KAAK1S,EAAE,aAAa,kBAAkB,CAAC,EAAE,KAAK,KAAKC,CAAC,CAAC,CAAC,sBAAsBF,EAAEC,EAAE,CAAC,GAAQD,EAAE,UAAP,GAAe,CAACA,EAAE,eAAgB,EAAC,MAAME,EAAED,EAAE,aAAa,MAAM,EAAE,EAAE,KAAK,UAAUC,CAAC,EAAE,KAAK,aAAa,CAAC,CAAC,CAAC,GAAQF,EAAE,UAAP,GAAe,OAAOA,EAAE,eAAc,EAAG,KAAK,WAAU,CAAE,CAAC,cAAcA,EAAE,CAAC,OAAO,KAAK,QAAQA,EAAE,KAAK,qBAAsB,CAAA,CAAC,sBAAsB,CAAC,OAAO,KAAK,iBAAkB,CAACA,EAAEC,IAAI,CAACD,EAAE,SAAc,KAAK,QAAQC,CAAC,IAAnB,EAAoB,CAAC,CAAE,CAAC,iBAAiBD,EAAE,CAAC,OAAO,MAAM,KAAK,KAAK,QAAQ,iBAAiByS,EAAE,CAAC,EAAE,IAAKxS,GAAGD,EAAEC,EAAEgT,GAAGhT,CAAC,CAAC,CAAG,CAAA,CAAC,iBAAiBD,EAAE,CAAC,OAAO,KAAK,WAAWA,EAAE,KAAK,yBAAyB,CAAC,yBAAyB,CAAC,OAAO,KAAK,oBAAqB,CAACA,EAAEC,KAAKD,EAAE,SAAc,KAAK,WAAWC,CAAC,IAAtB,GAAwB,KAAK,WAAWA,CAAC,GAAG,KAAK,gBAAgBA,CAAC,GAAGD,EAAE,aAAa,mBAAmB,EAAE,EAAEA,EAAE,UAAU,IAAI,aAAa,IAAIA,EAAE,gBAAgB,kBAAkB,EAAEA,EAAE,UAAU,OAAO,aAAa,IAAK,CAAC,oBAAoBA,EAAE,CAAC,OAAO,MAAM,KAAK,KAAK,QAAQ,iBAAiBwS,EAAE,CAAC,EAAE,IAAKvS,GAAGD,EAAEC,EAAE+S,GAAG/S,CAAC,CAAC,EAAG,CAAC,qBAAqBD,EAAE,CAAC,MAAMC,EAAE,KAAK,UAAUD,EAAE,KAAM,CAAA,EAAE,UAAUA,KAAK,MAAM,KAAK,KAAK,QAAQ,iBAAiB,iBAAiB,CAAC,EAAE,CAAC,MAAME,EAAEF,EAAE,aAAa,eAAe,EAAE,MAAM,GAAG,EAAE,GAAG,KAAK,UAAUE,EAAE,KAAM,CAAA,IAAID,EAAE,OAAOkB,GAAE,YAAY,CAAC,UAAUnB,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,gBAAgBA,EAAE,CAAC,MAAMC,EAAE,KAAK,UAAUD,CAAC,EAAE,GAAGC,EAAE,OAAOA,EAAE,aAAa,kBAAkB,CAAC,CAAC,aAAaD,EAAE,CAAC,OAAO,KAAK,gBAAgBA,CAAC,EAAE,KAAK,WAAY,EAAC,KAAK,WAAWA,CAAC,CAAC,CAAC,WAAWA,EAAE,CAAC,IAAIC,EAAEC,EAAE,KAAK,WAAY,GAASD,EAAE,KAAK,YAAf,MAAmCA,IAAT,QAAYA,EAAE,wBAAwB,MAAM,EAAE,KAAK,UAAUD,CAAC,EAAE,EAAE,aAAa,mBAAmB,EAAE,EAAE,EAAE,UAAU,IAAI,aAAa,EAAE,MAAM,KAAK,EAAE,iBAAiB,iBAAiB,CAAC,EAAE,QAASA,GAAG,CAACA,EAAE,gBAAgB,UAAU,CAAC,GAAI,MAAM,EAAEgT,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,MAAM/S,EAAE8S,GAAG,EAAE/S,CAAC,EAAEC,IAAIA,EAAE,MAAM,KAAK,WAAW,CAAC,GAAG,GAAGA,EAAE,OAAM,EAAG,CAAC,OAAeC,EAAE,KAAK,YAAf,MAAmCA,IAAT,OAAW,OAAOA,EAAE,qBAAqBF,CAAC,CAAC,CAAC,aAAaA,EAAE,CAAC,IAAIC,EAAE,MAAMC,EAAE8S,GAAGhT,CAAC,EAAE,EAAE+S,GAAG/S,EAAEE,CAAC,EAAE,MAAM,CAAC,EAAE,eAAe,EAAE,kBAAkB,EAAE,EAAE,EAAE,iBAAiB,KAAK,gBAAgB,CAAC,KAAYD,EAAE,KAAK,YAAf,MAAmCA,IAAT,QAAYA,EAAE,0BAA0BC,EAAE,EAAE,KAAK,EAAE,KAAK,WAAU,IAAK,EAAE,kBAAkB,eAAe,EAAE,EAAE,aAAa,qBAAqB,EAAE,EAAE,EAAE,UAAU,IAAI,eAAe,EAAE,EAAE,MAAO,EAAC,CAAC,gBAAgBF,EAAE,CAAC,MAAM,CAACA,EAAE,aAAa,yBAAyB,GAAG4K,GAAG,iBAAiB,IAAI,OAAO5K,EAAE,KAAK,CAAC,CAAC,gBAAgBA,EAAE,CAAC,IAAIC,EAAE,MAAMC,EAAE8S,GAAGhT,CAAC,EAAE,OAAeC,EAAE,KAAK,YAAf,MAAmCA,IAAT,QAAYA,EAAE,0BAA0BC,CAAC,EAAE,KAAK,WAAU,CAAE,CAAC,YAAY,CAAC,MAAMF,EAAE,KAAK,QAAQ,cAAc4S,EAAE,EAAE,IAAI3S,EAAE,GAAGD,EAAE,OAAOA,EAAE,gBAAgB,kBAAkB,EAAEA,EAAE,UAAU,OAAO,aAAa,EAAE,KAAK,kBAAiB,GAAWC,EAAE,KAAK,YAAf,MAAmCA,IAAT,OAAW,OAAOA,EAAE,sBAAsBD,GAAGA,EAAE,aAAa,kBAAkB,GAAGA,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,MAAM,KAAK,KAAK,QAAQ,iBAAiB8S,EAAE,CAAC,EAAE,QAAS9S,GAAG,CAACA,EAAE,aAAa,WAAW,UAAU,EAAEA,EAAE,gBAAgB,oBAAoB,EAAEA,EAAE,UAAU,OAAO,eAAe,CAAC,CAAG,CAAA,CAAC,UAAUA,EAAE,CAAC,OAAO,KAAK,QAAQ,cAAc,qBAAqB,OAAOA,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,MAAMmT,WAAWzC,EAAE,CAAC,YAAY1Q,EAAE,CAAC,GAAG,CAAC,cAAcC,EAAE,SAASC,EAAE,KAAK,CAAC,EAAEF,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,cAAcC,EAAE,KAAK,iBAAiB,IAAIgQ,GAAG,KAAK,aAAa,EAAE,KAAK,iBAAiB,SAAS,KAAK,KAAK,YAAY,IAAId,GAAG,KAAK,YAAY,SAAS,KAAK,KAAK,kBAAkB,IAAIF,GAAG,KAAK,YAAY,eAAgB,CAAA,EAAE,KAAK,kBAAkB,SAAS,KAAK,KAAK,gBAAoB3M,GAAE,SAAU,IAAhB,EAAiB,IAAI0P,GAAG,KAAK,aAAa,EAAE,IAAIN,GAAG,KAAK,aAAa,EAAE,KAAK,gBAAgB,SAAS,KAAK,KAAK,gBAAgB,UAAU,KAAK,YAAY,KAAK,sBAAsB,IAAIjB,GAAG,KAAK,cAAc,KAAK,WAAW,EAAE,KAAK,sBAAsB,SAAS,KAAK,KAAK,kBAAkB,IAAIyC,GAAG,KAAK,cAAc,cAAc,EAAE,KAAK,kBAAkB,SAAS,KAAK,KAAK,OAAO,IAAIxD,GAAG,KAAK,YAAY,KAAK,iBAAiB,KAAK,aAAa,EAAExP,EAAE,KAAK,OAAO,aAAaA,CAAC,EAAE,KAAK,OAAO,SAAS,CAAC,CAAC,CAAC,0BAA0B,CAAC,OAAOwF,GAAG,yBAAyB,KAAK,gBAAgB,CAAC,CAAC,4BAA4B,CAAC,OAAOA,GAAG,2BAA2B,KAAK,gBAAgB,CAAC,CAAC,QAAQ,CAAC,OAAO,KAAK,sBAAsB,OAAM,CAAE,CAAC,SAAS,CAAC,OAAO,KAAK,YAAY,YAAY,KAAK,cAAc,SAAS,CAAC,CAAC,6BAA6B1F,EAAE,CAAC,GAAG,KAAK,oBAAoB,iBAAiB,EAAE,CAAC,KAAK,cAAc,OAAO,KAAK,OAAM,CAAE,CAAC,sCAAsCA,EAAE,CAAC,OAAO,KAAK,kBAAkBA,EAAE,KAAK,kBAAkB,iBAAiB,KAAK,iBAAiB,EAAE,KAAK,qBAAsB,EAAC,KAAK,oBAAoB,oBAAoB,CAAC,WAAW,KAAK,iBAAiB,CAAC,CAAC,CAAC,sCAAsCA,EAAE,CAAC,KAAK,UAAU,KAAK,YAAYA,EAAE,CAAC,4BAA4BA,EAAE,CAAC,OAAO,KAAK,oBAAoB,cAAc,CAAC,KAAKA,CAAC,CAAC,CAAC,CAAC,4BAA4BA,EAAE,CAAC,MAAMC,EAAE,KAAK,kBAAkB,iBAAiBD,CAAC,EAAE,OAAO,KAAK,oBAAoB,iBAAiB,CAAC,WAAWC,CAAC,CAAC,CAAC,CAAC,6BAA6BD,EAAE,CAAC,KAAK,sBAAsB,sBAAsBA,CAAC,EAAE,MAAMC,EAAE,KAAK,kBAAkB,iBAAiBD,CAAC,EAAE,OAAO,KAAK,oBAAoB,kBAAkB,CAAC,WAAWC,CAAC,CAAC,EAAE,KAAK,oBAAoB,QAAQ,CAAC,CAAC,yCAAyCD,EAAE,CAAC,OAAO,KAAK,sBAAsB,wBAAwBA,CAAC,EAAE,KAAK,oBAAoB,QAAQ,CAAC,CAAC,+BAA+BA,EAAE,CAAC,MAAMC,EAAE,KAAK,kBAAkB,mBAAmBD,CAAC,EAAE,OAAO,KAAK,oBAAoB,oBAAoB,CAAC,WAAWC,CAAC,CAAC,CAAC,CAAC,qCAAqCD,EAAEC,EAAE,CAAC,OAAO,KAAK,wBAAwB,KAAK,YAAY,SAAS,6BAA6BD,CAAC,EAAE,KAAK,sBAAsB,qCAAqCA,EAAEC,CAAC,EAAE,KAAK,iBAAiB,iBAAiB,KAAK,uBAAuB,CAAC,CAAC,oCAAoCD,EAAE,CAAC,KAAK,sBAAsB,4BAA4B,KAAK,wBAAwB,IAAI,CAAC,sDAAsDA,EAAE,CAAC,GAAG,CAAC,KAAK,iBAAiB,KAAK,YAAY,OAAO,KAAK,uBAAuBA,EAAE,KAAK,8CAA8C,KAAK,YAAY,SAAS,KAAK,cAAc,OAAO,KAAK,OAAM,CAAE,CAAC,6BAA6B,CAAC,KAAK,gBAAgB,EAAE,CAAC,4BAA4B,CAAC,KAAK,sBAAsB,iBAAgB,EAAG,KAAK,OAAQ,EAAC,KAAK,gBAAgB,EAAE,CAAC,qBAAqB,CAAC,OAAO,KAAK,gBAAgB,CAAC,+CAA+CA,EAAE,CAAC,OAAO,KAAK,iBAAiBA,CAAC,CAAC,CAAC,2CAA2C,CAAC,OAAO,KAAK,gBAAgB,6BAA6B,KAAK,iBAAiB,KAAM,EAAC,KAAK,iBAAiB,eAAc,CAAE,CAAC,0CAA0C,CAAC,OAAO,KAAK,gBAAgB,4BAA4B,KAAK,iBAAiB,OAAQ,EAAC,KAAK,qBAAoB,EAAG,KAAK,oBAAoB,MAAM,CAAC,CAAC,gCAAgC,CAAC,KAAK,yBAAyB,KAAK,gDAAgD,KAAK,YAAY,UAAU,KAAK,iBAAiB,iBAAiB,KAAK,sBAAsB,EAAE,KAAK,uBAAuB,KAAK,KAAK,8CAA8C,MAAM,KAAK,8BAA8B,KAAK,YAAY,WAAW,KAAK,iBAAkB,EAAC,KAAK,YAAY,wBAAuB,EAAG,KAAK,oBAAoB,QAAQ,GAAG,KAAK,4BAA4B,KAAK,YAAY,QAAQ,CAAC,+BAA+B,CAAC,OAAO,KAAK,mBAAoB,GAAE,KAAK,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,KAAK,kBAAkB,aAAa,KAAK,oBAAoB,OAAO,CAAC,CAAC,8BAA8B,CAAC,OAAO,KAAK,oBAAoB,MAAM,CAAC,CAAC,yCAAyCA,EAAEC,EAAE,CAAC,OAAO,KAAK,kBAAkB,WAAY,EAAC,KAAK,YAAY,eAAeD,EAAEC,CAAC,CAAC,CAAC,qDAAqDD,EAAE,CAAC,MAAMC,EAAE,KAAK,yBAAyB,KAAK,YAAY,SAAS,6BAA6BD,CAAC,EAAE,OAAO,KAAK,iBAAiB,iBAAiBC,EAAE,CAAC,CAAC,CAAC,CAAC,0CAA0CD,EAAE,CAAC,OAAO,KAAK,OAAO,gBAAgB,kBAAkB,CAAC,QAAQA,EAAE,GAAG,eAAe,EAAE,CAAC,CAAC,CAAC,mDAAmDA,EAAE,CAAC,OAAO,KAAK,iBAAiBA,CAAC,CAAC,CAAC,gCAAgC,CAAC,KAAK,cAAc,GAAG,KAAK,gBAAgB,EAAE,CAAC,iCAAiC,CAAC,KAAK,gBAAgB,EAAE,CAAC,+BAA+B,CAAC,GAAG,KAAK,cAAc,GAAG,KAAK,gBAAgB,OAAO,KAAK,gBAAgB,GAAG,KAAK,OAAM,CAAE,CAAC,uCAAuC,CAAC,OAAO,KAAK,oBAAoB,QAAQ,CAAC,CAAC,kCAAkC,CAAC,OAAO,KAAK,QAAO,CAAE,CAAC,kCAAkC,CAAC,OAAO,KAAK,sBAAuB,CAAA,CAAC,qCAAqCA,EAAE,CAAC,OAAO,KAAK,0BAA0BA,CAAC,CAAC,CAAC,4BAA4B,CAAC,OAAO,KAAK,OAAO,gBAAgB,KAAK,CAAC,CAAC,yBAAyBA,EAAE,CAAC,OAAO,KAAK,OAAO,gBAAgB,OAAO,EAAE,KAAK,QAAQ,GAAG,KAAK,oBAAoB,eAAe,CAAC,MAAMA,CAAC,CAAC,CAAC,CAAC,wBAAwBA,EAAE,CAAC,OAAOA,EAAE,MAAM,KAAK,YAAY,KAAK,YAAY,KAAK,KAAK,QAAQ,KAAK,KAAK,oBAAoB,QAAQ,CAAC,MAAMA,CAAC,CAAC,CAAC,CAAC,6BAA6B,CAAC,OAAO,KAAK,OAAO,gBAAgB,MAAM,CAAC,CAAC,gCAAgC,CAAC,OAAO,KAAK,OAAO,gBAAgB,YAAY,CAAC,CAAC,gCAAgC,CAAC,OAAO,KAAK,OAAO,KAAM,CAAA,CAAC,gCAAgC,CAAC,OAAO,KAAK,OAAO,KAAI,CAAE,CAAC,yCAAyCA,EAAE,CAAC,OAAO,KAAK,kBAAkB,qBAAqBA,CAAC,CAAC,CAAC,6BAA6B,CAAC,KAAK,wBAAwB,KAAK,iBAAiB,iBAAkB,CAAA,CAAC,uCAAuCA,EAAE,CAAC,OAAO,KAAK,iBAAiB,+BAA+BA,CAAC,CAAC,CAAC,8BAA8B,CAAC,KAAK,iBAAiB,iBAAiB,KAAK,uBAAuB,EAAE,KAAK,wBAAwB,IAAI,CAAC,uBAAuBA,EAAE,CAAC,OAAO,KAAK,YAAY,0BAA0B,KAAK,qBAAsB,EAAC,KAAK,yBAAyB,CAACwF,GAAG,KAAK,wBAAwBxF,CAAC,GAAG,KAAK,YAAY,wBAAwB,KAAK,oBAAoB,kBAAkB,CAAC,CAAC,uBAAuB,CAAC,GAAG,CAAC,KAAK,iBAAkB,EAAC,OAAO,KAAK,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,uBAAuBA,EAAEC,EAAE,CAAC,OAAO,KAAK,aAAaD,EAAEC,CAAC,CAAC,CAAC,0BAA0BD,EAAE,CAAC,GAAG,KAAK,0BAA0BA,CAAC,EAAE,KAAK,YAAY,uBAAuBA,CAAC,EAAE,KAAK,OAAQ,EAAC,CAAC,KAAK,gBAAgB,OAAO,KAAK,cAAc,MAAO,CAAA,CAAC,0BAA0BA,EAAEC,EAAE,CAAC,GAAG,KAAK,0BAA0BD,CAAC,EAAE,KAAK,YAAY,oBAAoBA,EAAEC,CAAC,EAAE,KAAK,SAAS,CAAC,KAAK,gBAAgB,OAAO,KAAK,cAAc,OAAO,CAAC,0BAA0BD,EAAE,CAAC,GAAG,KAAK,0BAA0BA,CAAC,EAAE,KAAK,YAAY,uBAAuBA,CAAC,EAAE,KAAK,OAAQ,EAAC,CAAC,KAAK,gBAAgB,OAAO,KAAK,cAAc,MAAK,CAAE,CAAC,sBAAsBA,EAAE,CAAC,OAAO,KAAK,YAAY,0BAAyB,EAAG,KAAK,gBAAiB,CAAA,CAAC,qBAAqBA,EAAE,CAAC,OAAO,KAAK,oBAAoB,sBAAsB,CAAC,WAAWA,CAAC,CAAC,CAAC,CAAC,qBAAqBA,EAAE,CAAC,OAAO,KAAK,cAAa,EAAG,KAAK,cAAc,QAAQ,KAAK,oBAAoB,sBAAsB,CAAC,WAAWA,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,gBAAgB,OAAO,KAAK,iBAAiB,KAAI,EAAG,KAAK,YAAY,gBAAiB,EAAC,KAAK,gBAAgB,GAAG,KAAK,QAAQ,CAAC,eAAe,CAAC,GAAG,KAAK,gBAAgB,OAAO,KAAK,YAAY,gBAAgB,KAAK,iBAAiB,SAAS,KAAK,gBAAgB,GAAG,KAAK,OAAQ,CAAA,CAAC,gBAAgBA,EAAE,CAAC,MAAM,CAAC,CAAC,KAAK,iBAAiBA,CAAC,GAAG,GAAUC,EAAE,KAAK,QAAQD,CAAC,KAAxB,MAAqCC,IAAT,SAAoBA,EAAEA,EAAE,QAAZ,MAA4BA,IAAT,QAAY,CAACA,EAAE,KAAK,IAAI,GAAG,IAAIA,CAAC,CAAC,aAAaD,EAAEC,EAAE,CAAC,OAAO,KAAK,iBAAiBD,CAAC,EAAE,KAAK,oBAAoB,gBAAgB,CAAC,WAAWA,EAAE,gBAAgBC,CAAC,CAAC,GAAUC,EAAE,KAAK,QAAQF,CAAC,KAAxB,MAAqCE,IAAT,SAAoBA,EAAEA,EAAE,WAAZ,MAA+BA,IAAT,OAAW,OAAOA,EAAE,KAAK,IAAI,EAAE,IAAIA,CAAC,CAAC,iBAAiBF,EAAE,CAAC,MAAM,OAAO,KAAKA,CAAC,CAAC,CAAC,mBAAmB,CAAC,MAAMA,EAAE,CAAE,EAAC,UAAUC,KAAK,KAAK,QAAQD,EAAEC,CAAC,EAAE,KAAK,gBAAgBA,CAAC,EAAE,OAAOD,CAAC,CAAC,sBAAsB,CAAC,MAAMA,EAAE,KAAK,kBAAiB,EAAG,GAAG,CAACmF,GAAGnF,EAAE,KAAK,cAAc,EAAE,OAAO,KAAK,eAAeA,EAAE,KAAK,kBAAkB,cAAc,KAAK,cAAc,EAAE,KAAK,oBAAoB,iBAAiB,CAAC,QAAQ,KAAK,cAAc,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAIA,EAAE,KAAK,YAAY,YAAa,EAAC,GAAG,MAAM,KAAK,KAAK,OAAO,OAAO,EAAE,QAASC,GAAG,CAAC,KAAK,CAAC,SAASC,EAAE,cAAcC,CAAC,EAAEH,EAAEA,EAAEC,EAAE,KAAK,KAAK,OAAOD,CAAC,GAAG,CAAA,EAAGA,EAAE,WAAWA,EAAE,SAASE,GAAGF,EAAE,gBAAgBA,EAAE,cAAcG,EAAE,GAAIF,EAAED,EAAEE,EAAE,KAAK,YAAY,YAAa,EAAC,CAACsF,GAAGvF,EAAE,cAAcC,EAAE,aAAa,GAAG,CAACD,EAAE,SAAS,UAAUC,EAAE,QAAQ,EAAE,OAAO,KAAK,YAAY,aAAaF,CAAC,EAAE,IAAIC,EAAEC,CAAC,CAAC,oBAAoB,CAAC,MAAMF,EAAE,SAAS,EAAEC,EAAE,CAAC,MAAMC,EAAE4O,GAAG7O,CAAC,EAAE,GAAGC,EAAE,OAAOA,EAAE,CAAC,EAAE,MAAM,IAAI,MAAM,yBAAyB,OAAOD,CAAC,CAAC,CAAC,EAAE,KAAK,sBAAsB,yBAAyB,WAAW,EAAE,OAAO,KAAK,cAAc,aAAaD,CAAC,CAAC,CAAC,oBAAoBA,EAAEC,EAAE,CAAC,OAAOD,EAAC,CAAE,IAAI,kBAAkB,KAAK,+BAA+B,GAAG,MAAM,IAAI,SAAS,KAAK,iCAAiC,KAAK,+BAA+B,GAAG,KAAK,oBAAoB,QAAQ,GAAG,MAAM,IAAI,SAAS,IAAI,iBAAiB,IAAI,kBAAkB,IAAI,oBAAoB,KAAK,mBAAkB,CAAE,CAAC,OAAO,KAAK,cAAc,OAAOA,EAAEC,CAAC,CAAC,CAAC,iBAAiBD,EAAE,CAAC,OAAO,KAAK,OAAO,gBAAgB,mBAAmB,EAAE,KAAK,YAAY,iBAAiBA,CAAC,EAAE,KAAK,OAAM,CAAE,CAAC,0BAA0BA,EAAE,CAAC,MAAMC,EAAEuE,GAAGxE,CAAC,EAAEE,EAAE,KAAK,iBAAiB,iBAAkB,EAAC,GAAGD,GAAG,CAACqF,GAAGpF,CAAC,EAAE,OAAO,KAAK,OAAO,gBAAgB,aAAa,CAAC,QAAQ,KAAK,eAAc,EAAG,eAAe,EAAE,CAAC,CAAC,CAAC,uBAAuB,CAAC,OAAO,KAAK,OAAO,gBAAgB,SAAS,CAAC,QAAQ,KAAK,eAAe,KAAK,iBAAiB,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,QAAQF,EAAE,UAAU,OAAOC,EAAE,IAAI,MAAMD,CAAC,EAAEE,EAAE,EAAEA,EAAEF,EAAEE,IAAID,EAAEC,CAAC,EAAE,UAAUA,CAAC,EAAE,MAAM,CAAC,KAAK,mBAAkB,EAAG,KAAK,eAAc,EAAG,GAAG,MAAM,KAAKD,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,MAAMD,EAAE,KAAK,iBAAiB,iBAAkB,EAAC,OAAOsF,GAAGtF,CAAC,EAAEA,EAAE,CAAC,EAAE,MAAMA,CAAC,CAAC,gBAAgB,CAAC,OAAO0C,GAAE,SAAS,EAAE,KAAK,MAAO,IAAI,OAAM,QAAS,EAACA,GAAE,QAAQ,EAAE,CAAC,CAAC,WAAW,CAAC,IAAI1C,EAAE,OAAO,KAAK,kBAAyBA,EAAE,KAAK,cAAc,iBAA7B,MAAsDA,IAAT,OAAW,OAAOA,EAAE,cAAc,CAAC,oBAAoB,CAAC,OAAO,KAAK,UAAS,GAAI,CAAC,KAAK,iBAAgB,CAAE,CAAC,IAAI,SAAS,CAAC,OAAO,KAAK,YAAY,OAAO,CAAC,CAACgM,GAAGmH,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,KAAK,OAAO,SAAS,EAAE,SAAS,CAAC,OAAO,KAAK,OAAO,KAAI,CAAE,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,KAAK,OAAO,SAAS,EAAE,SAAS,CAAC,OAAO,KAAK,OAAO,KAAI,CAAE,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,KAAK,OAAO,qBAAqB,MAAM,CAAC,CAAC,EAAE,qBAAqB,CAAC,MAAM,CAAC,OAAO,KAAK,OAAO,wBAAyB,CAAA,EAAE,SAAS,CAAC,OAAO,KAAK,OAAO,wBAAwB,KAAK,OAAM,CAAE,CAAC,EAAE,qBAAqB,CAAC,MAAM,CAAC,OAAO,KAAK,OAAO,wBAAuB,CAAE,EAAE,SAAS,CAAC,OAAO,KAAK,OAAO,qBAAsB,GAAE,KAAK,QAAQ,CAAC,EAAE,YAAY,CAAC,KAAK,IAAI,GAAG,SAAS,CAAC,OAAO7Q,GAAE,UAAU,KAAK,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE6Q,GAAG,YAAY,wCAAwC,EAAEA,GAAG,YAAY,wCAAwC,EAAE,IAAIC,GAAG,OAAO,OAAO,CAAC,UAAU,KAAK,2BAA2B5C,GAAG,sBAAsBC,GAAG,WAAWC,GAAG,iBAAiByC,GAAG,gBAAgB9B,GAAG,sBAAsBK,GAAG,sBAAsBM,GAAG,kBAAkBkB,EAAE,CAAC,EAAEG,GAAG,OAAO,OAAO,CAAC,UAAU,KAAK,iBAAiBvC,GAAG,wBAAwBrL,EAAE,CAAC,EAAE6N,GAAG,OAAO,OAAO,CAAC,UAAU,KAAK,0BAA0BtC,GAAG,sBAAsBrE,EAAE,CAAC,EAAEjI,GAAG,eAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAA2Q,EAAE,MAAM6O,WAAW,WAAW,CAAC,mBAAmB,CAAM,KAAK,YAAV,KAAsB,KAAK,UAAU9Q,GAAE,eAAc,EAAG,CAAC,CAAC,IAAI+Q,GAAG,EAAE,MAAMC,GAAG,SAASzT,EAAE,CAAC,GAAG,CAACA,EAAE,aAAa,iBAAiB,EAAE,OAAOA,EAAE,aAAa,kBAAkB,EAAE,EAAE,SAASA,EAAE,CAAC,IAAIC,EAAE,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,CAAE,EAAC,OAAOA,EAAE,MAAM,EAAEgB,GAAEjB,EAAEC,CAAC,CAAC,EAAE,QAAQ,CAAC,UAAUD,EAAE,aAAa,IAAI0T,GAAG1T,CAAC,CAAC,CAAC,CAAC,EAAE0T,GAAG,SAAS1T,EAAE,CAAC,OAAO2T,GAAG3T,CAAC,EAAE4T,GAAI,CAAC,EAAED,GAAG,SAAS3T,EAAE,CAAC,IAAI,EAAEE,EAAE,IAAW,GAAGA,EAAE,UAAU,yBAAvB,MAAwD,IAAT,QAAY,EAAE,KAAKA,EAAE,sBAAsB,EAAE,OAAO,SAAS,YAAY,uBAAuB,GAAG,EAAE,EAAEe,GAAE,kBAAkB,CAAC,UAAUjB,EAAE,eAAe,EAAE,CAAC,CAAC,EAAE4T,GAAG,SAAS5T,EAAE,CAAC,IAAI,EAAEE,EAAE,IAAW,GAAGA,EAAE,UAAU,yBAAvB,MAAwD,IAAT,QAAY,EAAE,KAAKA,EAAE,2BAA2B,EAAE,CAAC,KAAK,CAAC,QAAQF,CAAC,EAAEG,GAAE,QAAQ,GAAG,CAAC,MAAM,GAAG,EAAE,SAASH,CAAC,EAAE,OAAO,SAAS,YAAY,4BAA4B,GAAGA,CAAC,CAAC,CAAC,EAAE6T,GAAGtT,GAAE,qBAAqB,CAAC,QAAQ,SAAS,MAAM,MAAM,EAAE,CAAC,QAAQ,eAAe,MAAM,KAAK,EAAEmE,GAAG,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAA+S,OAAOzE,GAAE;AAAA;AAAA;AAAA;AAAA,IAAqD,EAAE,OAAOA,GAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAA2H,EAAE,OAAOA,GAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAAyK,EAAE,OAAO4T,GAAG,QAAQ;AAAA,YAA2B,EAAE,OAAOA,GAAG,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAA+U,CAAC,EAAE,IAAIC,GAAG,IAAI,QAAQC,GAAG,IAAI,QAAQ,MAAMC,EAAE,CAAC,YAAYhU,EAAE,CAAC,IAAIC,EAAEC,EAAEsM,GAAGvM,EAAE,KAAKC,EAAE6T,EAAE,EAAE7T,EAAE,IAAID,CAAC,EAAEwM,GAAG,KAAKqH,GAAG,CAAC,SAAS,GAAG,MAAM,MAAM,CAAC,EAAE,KAAK,QAAQ9T,EAAEqM,GAAG,KAAKyH,GAAG9T,EAAE,gBAAiB,CAAA,CAAC,CAAC,mBAAmB,CAACuM,GAAG,KAAKwH,GAAGE,EAAE,EAAE,KAAK,IAAI,CAAC,CAAC,sBAAsB,CAAE,CAAA,IAAI,QAAQ,CAAC,OAAO/H,GAAG,KAAK4H,EAAE,EAAE,MAAM,CAAC,IAAI,UAAU,CAAC,IAAI9T,EAAE,OAAeA,EAAE,KAAK,QAAQ,gBAAvB,MAA+CA,IAAT,OAAW,OAAOA,EAAE,QAAQ,CAAC,IAAI,SAASA,EAAE,CAAC,KAAK,QAAQ,gBAAgB,WAAWA,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,OAAO,KAAK,QAAQ,aAAa,UAAU,CAAC,CAAC,IAAI,SAASA,EAAE,CAAC,KAAK,QAAQ,gBAAgB,WAAWA,CAAC,EAAEuM,GAAG,KAAKwH,GAAGE,EAAE,EAAE,KAAK,IAAI,CAAC,CAAC,IAAI,UAAU,CAAC,OAAO/H,GAAG,KAAK4H,EAAE,EAAE,QAAQ,CAAC,IAAI,mBAAmB,CAAC,OAAO5H,GAAG,KAAK4H,EAAE,EAAE,iBAAiB,CAAC,IAAI,cAAc,CAAC,OAAO5H,GAAG,KAAK4H,EAAE,EAAE,YAAY,CAAC,aAAa9T,EAAE,CAACuM,GAAG,KAAKwH,GAAGE,EAAE,EAAE,KAAK,IAAI,CAAC,CAAC,eAAe,CAAC,OAAO/H,GAAG,KAAK4H,EAAE,EAAE,cAAe,CAAA,CAAC,gBAAgB,CAAC,OAAO5H,GAAG,KAAK4H,EAAE,EAAE,eAAgB,CAAA,CAAC,kBAAkB9T,EAAE,CAACuM,GAAG,KAAKwH,GAAGE,EAAE,EAAE,KAAK,KAAKjU,CAAC,CAAC,CAAC,CAAC,SAASiU,IAAI,CAAC,IAAIjU,EAAE,UAAU,OAAO,GAAY,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,GAAG,KAAK,CAAC,SAAS,EAAE,MAAME,CAAC,EAAE,KAAK,QAAQC,EAAE,GAAG,CAACD,EAAEE,EAAE,CAAC,CAACJ,EAAEK,EAAEsB,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE3B,GAAGK,EAAE,kBAAkB6L,GAAG,KAAK4H,EAAE,EAAE,YAAY,CAAC,aAAa3T,EAAE,YAAYC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI8T,GAAG,IAAI,QAAQC,GAAG,IAAI,QAAQC,GAAG,IAAI,QAAQ,MAAMC,EAAE,CAAC,YAAYrU,EAAE,CAACyM,GAAG,KAAKyH,GAAG,CAAC,SAAS,GAAG,MAAM,MAAM,CAAC,EAAEzH,GAAG,KAAK0H,GAAG,CAAC,SAAS,GAAG,MAAM,GAAG,CAAC,EAAE,kBAAkB,EAAE,SAAS,KAAK,QAAQ,MAAM,KAAK,QAAQ,OAAO,CAAC,CAAC,EAAE1H,GAAG,KAAK2H,GAAG,CAAC,SAAS,GAAG,MAAM,GAAG,CAA8B,GAA1B,EAAE,kBAA2B,KAAK,QAAQ,SAAS,EAAE,MAAM,EAAE,OAAO,MAAMnU,EAAEiB,GAAE,EAAE,OAAO,CAAC,iBAAiB,OAAO,CAAC,EAAEjB,GAAG,MAAM,KAAK,KAAK,MAAM,EAAE,SAASA,CAAC,GAAG,KAAK,QAAQ,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQD,CAAC,CAAC,mBAAmB,CAACqM,GAAG,KAAK6H,GAAG,SAASlU,EAAE,CAAC,GAAGA,EAAE,aAAa,YAAY,GAAGA,EAAE,aAAa,iBAAiB,EAAE,OAAO,MAAMC,EAAE,UAAU,CAAC,MAAMA,EAAE,MAAM,KAAKD,EAAE,MAAM,EAAE,IAAKC,GAAG,CAAC,GAAG,CAACA,EAAE,SAASD,CAAC,EAAE,OAAOC,EAAE,WAAW,GAAI,OAAQD,GAAGA,CAAC,EAAGE,EAAED,EAAE,KAAK,GAAG,EAAE,OAAOC,EAAEF,EAAE,aAAa,aAAaE,CAAC,EAAEF,EAAE,gBAAgB,YAAY,CAAC,EAAE,OAAOC,EAAG,EAACgB,GAAE,QAAQ,CAAC,UAAUjB,EAAE,aAAaC,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,OAAO,iBAAiB,QAAQiM,GAAG,KAAKiI,EAAE,EAAE,EAAE,EAAE,OAAO,iBAAiB,QAAQjI,GAAG,KAAKkI,EAAE,EAAE,EAAE,CAAC,CAAC,sBAAsB,CAAC,IAAIpU,GAAUA,EAAEkM,GAAG,KAAKgI,EAAE,KAApB,MAAiClU,IAAT,QAAYA,EAAE,QAAS,EAAC,OAAO,oBAAoB,QAAQkM,GAAG,KAAKiI,EAAE,EAAE,EAAE,EAAE,OAAO,oBAAoB,QAAQjI,GAAG,KAAKkI,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,QAAQ,CAAC,MAAMpU,EAAE,CAAA,EAAG,KAAK,QAAQ,IAAI,KAAK,QAAQ,eAAeA,EAAE,KAAK,GAAG,MAAM,KAAK,KAAK,QAAQ,cAAc,iBAAiB,cAAc,OAAO,KAAK,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,MAAMC,EAAEiB,GAAE,KAAK,QAAQ,CAAC,iBAAiB,OAAO,CAAC,EAAE,OAAOjB,GAAG,CAAC,KAAK,QAAQ,IAAI,EAAE,SAASA,EAAE,OAAO,GAAGD,EAAE,KAAKC,CAAC,EAAED,CAAC,CAAC,IAAI,UAAU,CAAC,OAAO,QAAQ,KAAK,kFAAkF,EAAE,EAAE,CAAC,IAAI,SAASA,EAAE,CAAC,QAAQ,KAAK,kFAAkF,CAAC,CAAC,IAAI,UAAU,CAAC,OAAO,QAAQ,KAAK,kFAAkF,EAAE,EAAE,CAAC,IAAI,SAASA,EAAE,CAAC,QAAQ,KAAK,kFAAkF,CAAC,CAAC,IAAI,UAAU,CAAC,OAAO,QAAQ,KAAK,+EAA+E,EAAE,IAAI,CAAC,IAAI,mBAAmB,CAAC,OAAO,QAAQ,KAAK,wFAAwF,EAAE,EAAE,CAAC,IAAI,cAAc,CAAC,OAAO,QAAQ,KAAK,mFAAmF,EAAE,EAAE,CAAC,aAAaA,EAAE,EAAE,eAAe,CAAC,OAAO,QAAQ,KAAK,yEAAyE,EAAE,EAAE,CAAC,gBAAgB,CAAC,OAAO,QAAQ,KAAK,0EAA0E,EAAE,EAAE,CAAC,kBAAkBA,EAAE,CAAC,QAAQ,KAAK,8FAA8F,CAAC,CAAC,CAAC,IAAIsU,GAAG,IAAI,QAAQ,MAAMC,WAAW,WAAW,CAAC,aAAa,CAAC,MAAO,EAAC9H,GAAG,KAAK6H,GAAG,CAAC,SAAS,GAAG,MAAM,MAAM,CAAC,EAAEjI,GAAG,KAAKiI,GAAG,KAAK,YAAY,eAAe,IAAIN,GAAG,IAAI,EAAE,IAAIK,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,OAAO,KAAK,aAAa,SAAS,EAAE,KAAK,aAAa,SAAS,GAAG,KAAK,aAAa,UAAU,EAAEb,EAAE,EAAE,KAAK,OAAO,CAAC,IAAI,QAAQ,CAAC,OAAOtH,GAAG,KAAKoI,EAAE,EAAE,MAAM,CAAC,IAAI,UAAU,CAAC,OAAOpI,GAAG,KAAKoI,EAAE,EAAE,QAAQ,CAAC,IAAI,SAAStU,EAAE,CAACkM,GAAG,KAAKoI,EAAE,EAAE,SAAStU,CAAC,CAAC,IAAI,UAAU,CAAC,OAAOkM,GAAG,KAAKoI,EAAE,EAAE,QAAQ,CAAC,IAAI,SAAStU,EAAE,CAACkM,GAAG,KAAKoI,EAAE,EAAE,SAAStU,CAAC,CAAC,IAAI,UAAU,CAAC,OAAOkM,GAAG,KAAKoI,EAAE,EAAE,QAAQ,CAAC,IAAI,mBAAmB,CAAC,OAAOpI,GAAG,KAAKoI,EAAE,EAAE,iBAAiB,CAAC,IAAI,cAAc,CAAC,OAAOpI,GAAG,KAAKoI,EAAE,EAAE,YAAY,CAAC,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,IAAI,gBAAgB,CAAC,IAAItU,EAAE,GAAG,KAAK,aAAa,SAAS,EAAE,OAAeA,EAAE,KAAK,iBAAf,MAAwCA,IAAT,OAAW,OAAOA,EAAE,eAAe,KAAK,aAAa,SAAS,CAAC,EAAE,GAAG,KAAK,WAAW,CAAC,MAAM,EAAE,gBAAgB,OAAO,KAAK,MAAM,EAAE,OAAO,KAAK,aAAa,UAAU,CAAC,EAAE,KAAK,gBAAgB2B,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,WAAW,aAAa,KAAK,gBAAgB,IAAI,EAAE,KAAK,eAAe,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI3B,EAAE,OAAeA,EAAE,KAAK,gBAAf,MAAuCA,IAAT,OAAW,OAAOA,EAAE,IAAI,CAAC,IAAI,cAAc,CAAC,IAAIA,EAAE,GAAG,KAAK,aAAa,OAAO,EAAE,OAAeA,EAAE,KAAK,iBAAf,MAAwCA,IAAT,OAAW,OAAOA,EAAE,eAAe,KAAK,aAAa,OAAO,CAAC,EAAE,GAAG,KAAK,WAAW,CAAC,MAAM,EAAE,cAAc,OAAO,KAAK,MAAM,EAAE,KAAK,aAAa,QAAQ,CAAC,EAAE,MAAMC,EAAE0B,EAAE,QAAQ,CAAC,KAAK,SAAS,GAAG,CAAC,CAAC,EAAE,OAAO,KAAK,WAAW,aAAa1B,EAAE,KAAK,kBAAkB,EAAEA,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,IAAID,EAAE,OAAeA,EAAE,KAAK,oBAAf,MAA2CA,IAAT,OAAW,OAAOA,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,IAAIA,EAAE,OAAeA,EAAE,KAAK,gBAAf,MAAuCA,IAAT,OAAW,OAAOA,EAAE,IAAI,CAAC,IAAI,OAAO,CAAC,IAAIA,EAAE,OAAeA,EAAE,KAAK,gBAAf,MAAuCA,IAAT,OAAW,OAAOA,EAAE,KAAK,CAAC,IAAI,MAAMA,EAAE,CAAC,IAAIC,EAAE,KAAK,aAAaD,GAAUC,EAAE,KAAK,UAAf,MAAiCA,IAAT,QAAYA,EAAE,SAAS,KAAK,YAAY,CAAC,CAAC,yBAAyBD,EAAEC,EAAEC,EAAE,CAAeF,IAAd,aAAiB,KAAK,aAAmBC,GAAN,MAASA,IAAIC,GAAG,sBAAuB,IAAI,KAAK,UAAW,CAAA,CAAE,CAAC,OAAOF,EAAEC,EAAE,CAAC,GAAG,KAAK,iBAAiB,OAAOkB,GAAE,QAAQ,OAAOnB,CAAC,EAAE,CAAC,UAAU,KAAK,WAAWC,CAAC,CAAC,CAAC,CAAC,aAAaD,EAAE,CAAC,KAAK,eAAe,KAAK,aAAa,MAAMA,EAAEkM,GAAG,KAAKoI,EAAE,EAAE,aAAatU,CAAC,EAAE,CAAC,mBAAmB,CAAC,KAAK,aAAa,oBAAoB,IAAIyT,GAAG,IAAI,EAAE,SAASzT,EAAE,CAAKA,EAAE,aAAa,MAAM,GAAEA,EAAE,aAAa,OAAO,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,mBAAmBmB,GAAE,yBAAyB,CAAC,UAAU,IAAI,CAAC,EAAE,KAAK,iBAAiB,IAAIgS,GAAG,CAAC,cAAc,KAAK,KAAK,KAAK,aAAa,KAAK,KAAK,CAAC,EAAE,sBAAuB,IAAIhS,GAAE,kBAAkB,CAAC,UAAU,IAAI,CAAC,IAAK,KAAK,iBAAiB,yBAAwB,EAAG+K,GAAG,KAAKoI,EAAE,EAAE,oBAAoB,KAAK,gBAAgB,YAAY,EAAE,EAAE,SAAStU,EAAE,CAAI,CAAC,SAAS,cAAc,QAAQ,GAAGA,EAAE,aAAa,WAAW,GAAG,SAAS,cAAc,aAAa,IAAIA,GAAEA,EAAE,MAAO,CAAA,EAAE,IAAI,EAAE,CAAC,sBAAsB,CAAC,IAAIA,GAAUA,EAAE,KAAK,oBAAf,MAA2CA,IAAT,QAAYA,EAAE,2BAA4B,EAACkM,GAAG,KAAKoI,EAAE,EAAE,qBAAsB,EAAC,KAAK,gBAAgB,YAAY,EAAE,CAAC,CAAC,WAAW,CAAC,KAAK,wBAAwB,KAAK,qBAAoB,EAAG,KAAK,mBAAmB,CAAC,uBAAuB,CAAC,IAAItU,GAAUA,EAAE,KAAK,mBAAf,MAA0CA,IAAT,QAAYA,EAAE,OAAQ,EAAC,KAAK,gBAAgB,IAAI,CAAC,eAAe,CAAC,OAAOkM,GAAG,KAAKoI,EAAE,EAAE,eAAe,CAAC,gBAAgB,CAAC,OAAOpI,GAAG,KAAKoI,EAAE,EAAE,eAAgB,CAAA,CAAC,kBAAkBtU,EAAE,CAACkM,GAAG,KAAKoI,EAAE,EAAE,kBAAkBtU,CAAC,CAAC,CAAC,qBAAqBA,EAAE,CAAC,KAAK,eAAe,KAAK,aAAa,SAASA,GAAG,KAAK,gBAAgB,kBAAkB,CAACA,CAAC,CAAC,CAAC,mBAAmB,CAAC,KAAK,MAAO,CAAA,CAAC,OAAO,CAAC,KAAK,MAAM,KAAK,YAAY,CAAC,CAACgM,GAAGuI,GAAG,iBAAiB,qBAAqB,MAAM,EAAEvI,GAAGuI,GAAG,qBAAqB,CAAC,WAAW,CAAC,EAAE,MAAMC,GAAG,CAAC,QAAQxU,GAAE,OAAO2C,GAAE,KAAKoM,GAAG,OAAOmB,GAAG,MAAMC,GAAG,YAAYiD,GAAG,UAAUC,GAAG,WAAWC,GAAG,SAAS,OAAO,OAAO,CAAC,UAAU,KAAK,kBAAkBiB,GAAG,mBAAmBhB,EAAE,CAAC,EAAE,QAAQ,OAAO,OAAO,CAAC,UAAU,KAAK,OAAOhE,GAAG,wBAAwBC,EAAE,CAAC,CAAC,EAAE,OAAO,OAAOgF,GAAGtE,EAAE,EAAE,OAAO,KAAKsE,GAAG,WAAY,UAAU,CAAC,eAAe,IAAI,cAAc,GAAG,eAAe,OAAO,eAAejB,EAAE,EAAE,eAAe,IAAI,aAAa,GAAG,eAAe,OAAO,cAAcgB,EAAE,CAAC,EAAG,CAAC,ECLzp5K,SAASE,GAA4BxU,EAAGD,EAAG,CAAE,GAAI,CAAC,CAAA,EAAG,eAAe,KAAKC,EAAGD,CAAC,EAAG,MAAM,IAAI,UAAU,gDAAgD,EAAG,OAAOC,CAAE,CAChK,IAAIyU,GAAK,EACT,SAASC,GAA2B1U,EAAG,CAAE,MAAO,aAAeyU,KAAO,IAAMzU,CAAE,CAK9E,SAAS2U,GAAkBC,EAAQC,EAAIC,EAAa,CAClD,MAAMC,EAAW,CAAE,EACnB,OAAAH,EAAO,QAAQI,GAKT,OAAOA,GAAU,SACZD,EAAS,KAAKC,CAAK,EAErBH,EAAG,OAAO,KAAK,EAAEG,CAAK,EAAE,QAAQ,CAACC,EAAKhV,EAAGiV,IAAS,CACnDD,IAAQ,IACVF,EAAS,KAAKE,CAAG,EAIfhV,EAAIiV,EAAK,OAAS,GACpBH,EAAS,KAAKD,CAAW,CAEjC,CAAK,CACF,EACMC,CACT,CAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAUA,SAASI,GAAYC,EAAQC,EAAS,CACpC,MAAMC,EAAc,MACdC,EAAkB,OACxB,IAAIC,EAAe,CAACJ,CAAM,EAC1B,GAAIC,GAAW,KAAM,OAAOG,EAC5B,UAAWC,KAAO,OAAO,KAAKJ,CAAO,EACnC,GAAII,IAAQ,IAAK,CAIf,IAAIX,EAAcO,EAAQI,CAAG,EACzB,OAAOX,GAAgB,WACzBA,EAAcQ,EAAY,OAAO,OAAO,EAAER,EAAaS,CAAe,GAKxEC,EAAeb,GAAkBa,EAAc,IAAI,OAAO,OAAOC,CAAG,MAAO,GAAG,EAAGX,CAAW,CAClG,CAEE,OAAOU,CACT,CACA,MAAME,GAAsBC,GAAO,CACjC,MAAM,IAAI,MAAM,mBAAmBA,CAAG,EAAE,CAC1C,EAaA,IAAIC,GAA6BlB,GAA2B,cAAc,EACtEmB,GAAsBnB,GAA2B,OAAO,EAC7C,MAAMoB,EAAW,CAC9B,YAAYC,EAASC,EAAO,CAC1B,GAAI,CACF,aAAAC,EAAeP,EACrB,EAAQM,IAAU,OAAS,CAAA,EAAKA,EAC5B,OAAO,eAAe,KAAMH,GAAQ,CAClC,MAAOK,EACb,CAAK,EACD,OAAO,eAAe,KAAMN,GAAe,CACzC,SAAU,GACV,MAAO,MACb,CAAK,EACD,KAAK,OAAS,CACZ,QAAS,CAAE,EACX,UAAU,EAAG,CACX,OAAI,IAAM,EACD,EAEF,CACf,CACK,EACG,MAAM,QAAQG,CAAO,EACvBA,EAAQ,QAAQvB,GAA4B,KAAMqB,EAAM,EAAEA,EAAM,EAAG,IAAI,EAEvErB,GAA4B,KAAMqB,EAAM,EAAEA,EAAM,EAAEE,CAAO,EAE3DvB,GAA4B,KAAMoB,EAAa,EAAEA,EAAa,EAAIK,CACtE,CAQE,UAAUN,EAAKN,EAAS,CACtB,OAAO,KAAK,eAAeM,EAAKN,CAAO,EAAE,KAAK,EAAE,CACpD,CAOE,eAAeM,EAAKN,EAAS,CAC3B,IAAIc,EAAS,KAAK,OAAO,QAAQR,CAAG,EAMpC,GALIQ,GAAU,OACZ3B,GAA4B,KAAMoB,EAAa,EAAEA,EAAa,EAAED,CAAG,EACnEQ,EAASR,GAEY,OAAOQ,GAAW,SACrB,CAClB,GAAId,GAAW,OAAOA,EAAQ,YAAgB,IAAa,CACzD,MAAMe,EAAS,KAAK,OAAO,UAAUf,EAAQ,WAAW,EACxD,OAAOF,GAAYgB,EAAOC,CAAM,EAAGf,CAAO,CAClD,CACM,MAAM,IAAI,MAAM,wFAAwF,CAC9G,CACI,GAAI,OAAOc,GAAW,SACpB,MAAM,IAAI,MAAM,yBAAyB,EAE3C,OAAOhB,GAAYgB,EAAQd,CAAO,CACtC,CACA,CACA,SAASa,GAAQG,EAAQ,CACvB,GAAI,EAAEA,GAAU,MAAQA,EAAO,SAC7B,OAEF,MAAMC,EAAa,KAAK,OACxB,OAAO,OAAO,KAAK,OAAQ,CACzB,QAAS,CACP,GAAGA,EAAW,QACd,GAAGD,EAAO,OACX,EACD,UAAWA,EAAO,WAAaC,EAAW,SAC9C,CAAG,CACH,6pBC9IAC,GAAiB,UAAmC,CAClD,IAAIC,EAAU,CAAA,EACVC,EAAOD,EAAQ,KAAO,CAAA,EAY1BA,EAAQ,KAAO,SAAeE,EAAOC,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EAAM,CACvE,IAAIC,EAASC,EAAaR,CAAK,EAE3BO,EAAO,QACTE,EAAQT,EAAOO,EAAQ,CAACN,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,CAAI,CAAC,CAEjE,EAWER,EAAQ,GAAK,SAAaE,EAAOtI,EAAI,CAC9BqI,EAAKC,CAAK,IACbD,EAAKC,CAAK,EAAI,CAAA,GAGhBD,EAAKC,CAAK,EAAE,KAAKtI,CAAE,CACvB,EAWEoI,EAAQ,KAAO,SAAeE,EAAOtI,EAAI,CACvC,SAASgJ,GAAO,CACdhJ,EAAG,MAAM,KAAM,SAAS,EACxBoI,EAAQ,IAAIE,EAAOU,CAAG,CAC5B,CACI,KAAK,GAAGV,EAAOU,CAAG,CACtB,EAaEZ,EAAQ,IAAM,SAAcE,EAAOtI,EAAI,CACrC,IAAIiJ,EAAO,CAAA,EAEX,GAAIX,GAAStI,EAAI,CACf,IAAIkJ,EAAM,KAAK,KAAKZ,CAAK,EACrBzW,EAAI,EACJM,EAAI+W,EAAMA,EAAI,OAAS,EAE3B,IAAKrX,EAAGA,EAAIM,EAAGN,IACTqX,EAAIrX,CAAC,IAAMmO,GACbiJ,EAAK,KAAKC,EAAIrX,CAAC,CAAC,CAG1B,CAEIoX,EAAK,OAAS,KAAK,KAAKX,CAAK,EAAIW,EAAO,OAAO,KAAK,KAAKX,CAAK,CAClE,EAEE,SAASQ,EAAclX,EAAG,CACxB,IAAIuX,EAAMd,EAAKzW,CAAC,EAAIyW,EAAKzW,CAAC,EAAI,CAAA,EAC1BwX,EAAMxX,EAAE,QAAQ,GAAG,EACnByX,EAAQD,IAAQ,GAAM,CAACxX,CAAC,EAAI,CAACA,EAAE,UAAU,EAAGwX,CAAG,EAAGxX,EAAE,UAAUwX,EAAM,CAAC,CAAC,EAEtEE,EAAO,OAAO,KAAKjB,CAAI,EACvBxW,EAAI,EACJM,EAAImX,EAAK,OAEb,IAAKzX,EAAGA,EAAIM,EAAGN,IAAK,CAClB,IAAI0V,EAAM+B,EAAKzX,CAAC,EAKhB,GAJI0V,IAAQ,MACV4B,EAAMA,EAAI,OAAOd,EAAKd,CAAG,CAAC,GAGxB8B,EAAK,SAAW,GAAKA,EAAK,CAAC,IAAM9B,EAAK,CACxC4B,EAAMA,EAAI,OAAOd,EAAKd,CAAG,CAAC,EAC1B,KACR,CACA,CAEI,OAAO4B,CACX,CAEE,SAASJ,EAASnX,EAAGsX,EAAKG,EAAM,CAC9B,IAAIxX,EAAI,EACJM,EAAI+W,EAAI,OAEZ,IAAKrX,EAAGA,EAAIM,GACL+W,EAAIrX,CAAC,EADGA,IAEbqX,EAAIrX,CAAC,EAAE,MAAQD,EACfsX,EAAIrX,CAAC,EAAE,MAAMqX,EAAIrX,CAAC,EAAGwX,CAAI,CAE/B,CAEE,OAAOjB,CACT,kBCtIA,IAAImB,GACF,mEAWSC,GAAS,CAACC,EAAO,KAAO,CACjC,IAAIpD,EAAK,GACLxU,EAAI4X,EAAO,EACf,KAAO5X,KACLwU,GAAMkD,GAAa,KAAK,OAAQ,EAAG,GAAM,CAAC,EAE5C,OAAOlD,CACT,ECKA,SAASqD,GAASC,EAAO,CACvB,IAAIC,EAAO,OAAOD,EAClB,OAAOA,GAAS,OAASC,GAAQ,UAAYA,GAAQ,WACvD,CAEA,IAAAC,GAAiBH,GC7BbI,GAAa,OAAOC,IAAU,UAAYA,IAAUA,GAAO,SAAW,QAAUA,GAEpFC,GAAiBF,GCHbA,GAAaG,GAGbC,GAAW,OAAO,MAAQ,UAAY,MAAQ,KAAK,SAAW,QAAU,KAGxEC,GAAOL,IAAcI,IAAY,SAAS,aAAa,EAAG,EAE9DE,GAAiBD,GCRbA,GAAOF,GAkBPI,GAAM,UAAW,CACnB,OAAOF,GAAK,KAAK,IAAK,CACxB,EAEAG,GAAiBD,GCrBbE,GAAe,KAUnB,SAASC,GAAgBzC,EAAQ,CAG/B,QAFI0C,EAAQ1C,EAAO,OAEZ0C,KAAWF,GAAa,KAAKxC,EAAO,OAAO0C,CAAK,CAAC,GAAG,CAC3D,OAAOA,CACT,CAEA,IAAAC,GAAiBF,GClBbA,GAAkBP,GAGlBU,GAAc,OASlB,SAASC,GAAS7C,EAAQ,CACxB,OAAOA,GACHA,EAAO,MAAM,EAAGyC,GAAgBzC,CAAM,EAAI,CAAC,EAAE,QAAQ4C,GAAa,EAAE,CAE1E,CAEA,IAAAE,GAAiBD,GClBbT,GAAOF,GAGPa,GAASX,GAAK,OAElBY,GAAiBD,GCLbA,GAASb,GAGTe,GAAc,OAAO,UAGrBC,GAAiBD,GAAY,eAO7BE,GAAuBF,GAAY,SAGnCG,GAAiBL,GAASA,GAAO,YAAc,OASnD,SAASM,GAAUzB,EAAO,CACxB,IAAI0B,EAAQJ,GAAe,KAAKtB,EAAOwB,EAAc,EACjDG,EAAM3B,EAAMwB,EAAc,EAE9B,GAAI,CACFxB,EAAMwB,EAAc,EAAI,OACxB,IAAII,EAAW,EAChB,MAAW,CAAA,CAEZ,IAAIC,EAASN,GAAqB,KAAKvB,CAAK,EAC5C,OAAI4B,IACEF,EACF1B,EAAMwB,EAAc,EAAIG,EAExB,OAAO3B,EAAMwB,EAAc,GAGxBK,CACT,CAEA,IAAAC,GAAiBL,GC5CbJ,GAAc,OAAO,UAOrBE,GAAuBF,GAAY,SASvC,SAASU,GAAe/B,EAAO,CAC7B,OAAOuB,GAAqB,KAAKvB,CAAK,CACxC,CAEA,IAAAgC,GAAiBD,GCrBbZ,GAASb,GACTmB,GAAYQ,GACZF,GAAiBG,GAGjBC,GAAU,gBACVC,GAAe,qBAGfZ,GAAiBL,GAASA,GAAO,YAAc,OASnD,SAASkB,GAAWrC,EAAO,CACzB,OAAIA,GAAS,KACJA,IAAU,OAAYoC,GAAeD,GAEtCX,IAAkBA,MAAkB,OAAOxB,CAAK,EACpDyB,GAAUzB,CAAK,EACf+B,GAAe/B,CAAK,CAC1B,CAEA,IAAAsC,GAAiBD,GCHjB,SAASE,GAAavC,EAAO,CAC3B,OAAOA,GAAS,MAAQ,OAAOA,GAAS,QAC1C,CAEA,IAAAwC,GAAiBD,GC5BbF,GAAa/B,GACbiC,GAAeN,GAGfQ,GAAY,kBAmBhB,SAASC,GAAS1C,EAAO,CACvB,OAAO,OAAOA,GAAS,UACpBuC,GAAavC,CAAK,GAAKqC,GAAWrC,CAAK,GAAKyC,EACjD,CAEA,IAAAE,GAAiBD,GC5BbzB,GAAWX,GACXP,GAAWkC,GACXS,GAAWR,GAGXU,GAAM,IAGNC,GAAa,qBAGbC,GAAa,aAGbC,GAAY,cAGZC,GAAe,SAyBnB,SAASC,GAASjD,EAAO,CACvB,GAAI,OAAOA,GAAS,SAClB,OAAOA,EAET,GAAI0C,GAAS1C,CAAK,EAChB,OAAO4C,GAET,GAAI7C,GAASC,CAAK,EAAG,CACnB,IAAIkD,EAAQ,OAAOlD,EAAM,SAAW,WAAaA,EAAM,QAAO,EAAKA,EACnEA,EAAQD,GAASmD,CAAK,EAAKA,EAAQ,GAAMA,CAC7C,CACE,GAAI,OAAOlD,GAAS,SAClB,OAAOA,IAAU,EAAIA,EAAQ,CAACA,EAEhCA,EAAQiB,GAASjB,CAAK,EACtB,IAAImD,EAAWL,GAAW,KAAK9C,CAAK,EACpC,OAAQmD,GAAYJ,GAAU,KAAK/C,CAAK,EACpCgD,GAAahD,EAAM,MAAM,CAAC,EAAGmD,EAAW,EAAI,CAAC,EAC5CN,GAAW,KAAK7C,CAAK,EAAI4C,GAAM,CAAC5C,CACvC,CAEA,IAAAoD,GAAiBH,GC/DblD,GAAWO,GACXI,GAAMuB,GACNgB,GAAWf,GAGXmB,GAAkB,sBAGlBC,GAAY,KAAK,IACjBC,GAAY,KAAK,IAwDrB,SAASC,GAASC,EAAMC,EAAMpG,EAAS,CACrC,IAAIqG,EACAC,EACAC,EACAhC,EACAiC,EACAC,EACAC,EAAiB,EACjBC,EAAU,GACVC,EAAS,GACTC,EAAW,GAEf,GAAI,OAAOV,GAAQ,WACjB,MAAM,IAAI,UAAUJ,EAAe,EAErCK,EAAOT,GAASS,CAAI,GAAK,EACrB3D,GAASzC,CAAO,IAClB2G,EAAU,CAAC,CAAC3G,EAAQ,QACpB4G,EAAS,YAAa5G,EACtBuG,EAAUK,EAASZ,GAAUL,GAAS3F,EAAQ,OAAO,GAAK,EAAGoG,CAAI,EAAIG,EACrEM,EAAW,aAAc7G,EAAU,CAAC,CAACA,EAAQ,SAAW6G,GAG1D,SAASC,EAAWC,EAAM,CACxB,IAAI3E,EAAOiE,EACPW,EAAUV,EAEd,OAAAD,EAAWC,EAAW,OACtBI,EAAiBK,EACjBxC,EAAS4B,EAAK,MAAMa,EAAS5E,CAAI,EAC1BmC,CACX,CAEE,SAAS0C,EAAYF,EAAM,CAEzB,OAAAL,EAAiBK,EAEjBP,EAAU,WAAWU,EAAcd,CAAI,EAEhCO,EAAUG,EAAWC,CAAI,EAAIxC,CACxC,CAEE,SAAS4C,EAAcJ,EAAM,CAC3B,IAAIK,EAAoBL,EAAON,EAC3BY,EAAsBN,EAAOL,EAC7BY,EAAclB,EAAOgB,EAEzB,OAAOR,EACHX,GAAUqB,EAAaf,EAAUc,CAAmB,EACpDC,CACR,CAEE,SAASC,EAAaR,EAAM,CAC1B,IAAIK,EAAoBL,EAAON,EAC3BY,EAAsBN,EAAOL,EAKjC,OAAQD,IAAiB,QAAcW,GAAqBhB,GACzDgB,EAAoB,GAAOR,GAAUS,GAAuBd,CACnE,CAEE,SAASW,GAAe,CACtB,IAAIH,EAAO3D,GAAK,EAChB,GAAImE,EAAaR,CAAI,EACnB,OAAOS,EAAaT,CAAI,EAG1BP,EAAU,WAAWU,EAAcC,EAAcJ,CAAI,CAAC,CAC1D,CAEE,SAASS,EAAaT,EAAM,CAK1B,OAJAP,EAAU,OAINK,GAAYR,EACPS,EAAWC,CAAI,GAExBV,EAAWC,EAAW,OACf/B,EACX,CAEE,SAASkD,GAAS,CACZjB,IAAY,QACd,aAAaA,CAAO,EAEtBE,EAAiB,EACjBL,EAAWI,EAAeH,EAAWE,EAAU,MACnD,CAEE,SAASkB,GAAQ,CACf,OAAOlB,IAAY,OAAYjC,EAASiD,EAAapE,GAAG,CAAE,CAC9D,CAEE,SAASuE,GAAY,CACnB,IAAIZ,EAAO3D,GAAK,EACZwE,EAAaL,EAAaR,CAAI,EAMlC,GAJAV,EAAW,UACXC,EAAW,KACXG,EAAeM,EAEXa,EAAY,CACd,GAAIpB,IAAY,OACd,OAAOS,EAAYR,CAAY,EAEjC,GAAIG,EAEF,oBAAaJ,CAAO,EACpBA,EAAU,WAAWU,EAAcd,CAAI,EAChCU,EAAWL,CAAY,CAEtC,CACI,OAAID,IAAY,SACdA,EAAU,WAAWU,EAAcd,CAAI,GAElC7B,CACX,CACE,OAAAoD,EAAU,OAASF,EACnBE,EAAU,MAAQD,EACXC,CACT,CAEA,IAAAE,GAAiB3B,mBC9LjB,IAAIA,GAAWlD,GACXP,GAAWkC,GAGXoB,GAAkB,sBA8CtB,SAAS+B,GAAS3B,EAAMC,EAAMpG,EAAS,CACrC,IAAI2G,EAAU,GACVE,EAAW,GAEf,GAAI,OAAOV,GAAQ,WACjB,MAAM,IAAI,UAAUJ,EAAe,EAErC,OAAItD,GAASzC,CAAO,IAClB2G,EAAU,YAAa3G,EAAU,CAAC,CAACA,EAAQ,QAAU2G,EACrDE,EAAW,aAAc7G,EAAU,CAAC,CAACA,EAAQ,SAAW6G,GAEnDX,GAASC,EAAMC,EAAM,CAC1B,QAAWO,EACX,QAAWP,EACX,SAAYS,CAChB,CAAG,CACH,CAEA,IAAAkB,GAAiBD,mBCpEjB,SAAS3I,GAA4BxU,EAAGD,EAAG,CAAE,GAAI,CAAC,CAAA,EAAG,eAAe,KAAKC,EAAGD,CAAC,EAAG,MAAM,IAAI,UAAU,gDAAgD,EAAG,OAAOC,CAAE,CAChK,IAAIyU,GAAK,EACT,SAASC,GAA2B1U,EAAG,CAAE,MAAO,aAAeyU,KAAO,IAAMzU,CAAE,CAG9E,MAAMqd,GAAc,CAClB,QAAW,OACb,EACA,IAAIC,GAA0B5I,GAA2B,WAAW,EAChE6I,GAAwB7I,GAA2B,SAAS,EAIhE,MAAM8I,EAAa,CACjB,aAAc,CACZ,OAAO,eAAe,KAAMD,GAAU,CACpC,MAAOE,EACb,CAAK,EACD,KAAK,MAAQ,CAAE,EACf,OAAO,eAAe,KAAMH,GAAY,CACtC,SAAU,GACV,MAAO,IAAI,GACjB,CAAK,CACL,CACE,UAAW,CACT,OAAO,KAAK,KAChB,CACE,SAASI,EAAO,CACd,MAAMC,EAAY,CAChB,GAAG,KAAK,KACT,EACKC,EAAY,CAChB,GAAG,KAAK,MACR,GAAGF,CACJ,EACD,KAAK,MAAQE,EACbpJ,GAA4B,KAAM+I,EAAQ,EAAEA,EAAQ,EAAEI,EAAWC,EAAWF,CAAK,CACrF,CACE,UAAUG,EAAU,CAClBrJ,OAAAA,GAA4B,KAAM8I,EAAU,EAAEA,EAAU,EAAE,IAAIO,CAAQ,EAC/D,IAAM,CACXrJ,GAA4B,KAAM8I,EAAU,EAAEA,EAAU,EAAE,OAAOO,CAAQ,CAC1E,CACL,CACA,CACA,SAASJ,IAAY,CACnB,QAASK,EAAO,UAAU,OAAQrG,EAAO,IAAI,MAAMqG,CAAI,EAAGC,EAAO,EAAGA,EAAOD,EAAMC,IAC/EtG,EAAKsG,CAAI,EAAI,UAAUA,CAAI,EAE7BvJ,GAA4B,KAAM8I,EAAU,EAAEA,EAAU,EAAE,QAAQO,GAAY,CAC5EA,EAAS,GAAGpG,CAAI,CACpB,CAAG,CACH,CACA+F,GAAa,QAAUH,GAAY,QClDpB,SAASW,GAAwBC,EAAc,CAC5D,MAAMC,EAAUD,EAAa,YAAY,GAAG,EAE5C,OAAIC,IAAY,IAAMA,IAAYD,EAAa,OAAS,EAC/C,CACL,KAAMA,EACN,UAAW,MACZ,EAEI,CACL,KAAMA,EAAa,MAAM,EAAGC,CAAO,EACnC,UAAWD,EAAa,MAAMC,EAAU,CAAC,CAC1C,CACH,CCXA,MAAeC,GAAA,CACb,UAAW,KACX,GAAI,gBACJ,SAAU,gBACV,IAAK,YACL,IAAK,YACL,IAAK,gBACL,IAAK,aACL,IAAK,YACL,KAAM,aACN,IAAK,YACL,KAAM,aACN,KAAM,aACN,KAAM,YACN,IAAK,YACL,IAAK,WACL,IAAK,4BACL,IAAK,4BACL,IAAK,kBACL,IAAK,mBACL,IAAK,mBACL,IAAK,kBACL,MAAO,oBACP,IAAK,qBACL,KAAM,mDACN,KAAM,0EACN,IAAK,qBACL,KAAM,mDACN,KAAM,0EACN,IAAK,2BACL,KAAM,iDACN,IAAK,2BACL,IAAK,0BACL,IAAK,2BACL,IAAK,2BACL,KAAM,wDACN,KAAM,iDACN,KAAM,oEACN,IAAK,2BACL,KAAM,oDACN,KAAM,uEACN,IAAK,2BACL,IAAK,aACL,KAAM,aACN,KAAM,aACN,IAAK,aACL,IAAK,kBACL,IAAK,kBACL,KAAM,8BACN,IAAK,+BACL,IAAK,oBACL,GAAI,mBACJ,IAAK,+BACP,ECxDe,SAASC,GAAYC,EAAM,CACxC,IAAIC,EACJ,GAAID,EAAK,KAAM,OAAOA,EAAK,KAC3B,MAAME,EAAgBF,EAAK,MAAQC,EAAwBN,GAAwBK,EAAK,IAAI,EAAE,YAAc,KAAO,OAASC,EAAsB,YAAa,EAAG,KAClK,OAAIC,GAAiBA,KAAiBJ,GAE7BA,GAAUI,CAAa,EAGzB,0BACT,CCXA,SAASC,GAAgBC,EAAW,CAClC,OAAOA,EAAU,WAAW,CAAC,EAAE,SAAS,EAAE,CAC5C,CACA,SAASC,GAAeC,EAAM,CAC5B,IAAIC,EAAS,GACb,OAAOD,EAAK,QAAQ,cAAeF,IACjCG,GAAU,IAAIJ,GAAgBC,CAAS,CAAC,GACjC,IACR,EAAIG,CACP,CAMe,SAASC,GAAeR,EAAMS,EAAY,CAIvD,IAAIrK,EAAKqK,GAAc,OACvB,OAAI,OAAOT,EAAK,MAAS,WACvB5J,GAAM,IAAIiK,GAAeL,EAAK,KAAK,YAAa,CAAA,CAAC,IAE/CA,EAAK,OAAS,SAChB5J,GAAM,IAAI4J,EAAK,IAAI,IAEjBA,EAAK,MAAQ,OAAOA,EAAK,KAAK,cAAiB,WACjD5J,GAAM,IAAIiK,GAAeL,EAAK,KAAK,aAAa,YAAa,CAAA,CAAC,IAE5DA,EAAK,KAAK,OAAS,SACrB5J,GAAM,IAAI4J,EAAK,KAAK,IAAI,IAEtBA,EAAK,KAAK,eAAiB,SAC7B5J,GAAM,IAAI4J,EAAK,KAAK,YAAY,IAE3B5J,CACT,CAIA,SAASsK,GAAgBV,EAAM,CAC7B,MAAI,CAACA,EAAK,UAAY,CAACA,EAAK,OAAe,GAEjB,IAAI,IAAI,CAAC,MAAO,UAAW,QAAS,WAAY,UAAU,CAAC,EAC5D,IAAIA,EAAK,OAAO,QAAQ,CACnD,CACO,SAASW,GAAcX,EAAMS,EAAY,CAC9C,GAAIC,GAAgBV,CAAI,EAAG,OAAOA,EAAK,GACvC,MAAMY,EAAWb,GAAYC,CAAI,EACjC,OAAOQ,GAAe,CACpB,GAAGR,EACH,KAAMY,CACP,EAAEH,CAAU,CACf,CCnDe,SAASI,GAAuBC,EAAW,CAOxD,GALIA,GAAa,MAAQ,OAAO,UAAc,MAE5CA,EAAY,UAAU,WAGpB,CAACA,EAAW,MAAO,GACvB,MAAMte,EAAI,mBAAmB,KAAKse,CAAS,EAC3C,GAAI,CAACte,EAAG,MAAO,GAEf,MAAMue,EADcve,EAAE,CAAC,EACK,MAAM,IAAK,CAAC,EAClCwe,EAAQ,SAASD,EAAQ,CAAC,EAAG,EAAE,EAC/BE,EAAQ,SAASF,EAAQ,CAAC,EAAG,EAAE,EAWrC,OANIC,EAAQ,IAAMA,IAAU,IAAMC,EAAQ,OAMtCD,EAAQ,IAAMA,IAAU,IAAMC,GAAS,KAM7C,CCjCe,SAASC,GAAYN,EAAUO,EAAgB,CAC5D,OAAIA,EAAe,KACVA,EAAe,KAEpBP,EAAS,MAAM,GAAG,EAAE,CAAC,IAAM,QACtB,GAAGA,EAAS,MAAM,GAAG,EAAE,CAAC,CAAC,IAAIA,EAAS,MAAM,GAAG,EAAE,CAAC,CAAC,GAErD,QACT,CCLA,SAASQ,GAAIC,EAAQ,CACnB,OAAOA,EAAS,GAAK,IAAIA,CAAM,GAAKA,EAAO,SAAU,CACvD,CAKe,SAASC,IAAe,CACrC,MAAMC,EAAO,IAAI,KACXC,EAAQJ,GAAIG,EAAK,SAAQ,CAAE,EAC3BE,EAAUL,GAAIG,EAAK,WAAU,CAAE,EAC/BG,EAAUN,GAAIG,EAAK,WAAU,CAAE,EACrC,MAAO,GAAGC,CAAK,IAAIC,CAAO,IAAIC,CAAO,EACvC,CCXA,MAAMC,GAAmB,CACvB,MAAO,IAAM,CAAE,EACf,KAAM,IAAM,CAAE,EACd,MAAO,UAAY,CACjB,QAASlC,EAAO,UAAU,OAAQrG,EAAO,IAAI,MAAMqG,CAAI,EAAGC,EAAO,EAAGA,EAAOD,EAAMC,IAC/EtG,EAAKsG,CAAI,EAAI,UAAUA,CAAI,EAE7B,OAAO,QAAQ,MAAM,WAAW4B,GAAY,CAAE,IAAK,GAAGlI,CAAI,CAC9D,CACA,EAIMwI,GAAc,CAClB,MAAO,UAAY,CACjB,QAASC,EAAQ,UAAU,OAAQzI,EAAO,IAAI,MAAMyI,CAAK,EAAGC,EAAQ,EAAGA,EAAQD,EAAOC,IACpF1I,EAAK0I,CAAK,EAAI,UAAUA,CAAK,EAE/B,OAAO,QAAQ,MAAM,WAAWR,GAAY,CAAE,IAAK,GAAGlI,CAAI,CAC3D,EACD,KAAM,UAAY,CAChB,QAAS2I,EAAQ,UAAU,OAAQ3I,EAAO,IAAI,MAAM2I,CAAK,EAAGC,EAAQ,EAAGA,EAAQD,EAAOC,IACpF5I,EAAK4I,CAAK,EAAI,UAAUA,CAAK,EAE/B,OAAO,QAAQ,KAAK,WAAWV,GAAY,CAAE,IAAK,GAAGlI,CAAI,CAC1D,EACD,MAAO,UAAY,CACjB,QAAS6I,EAAQ,UAAU,OAAQ7I,EAAO,IAAI,MAAM6I,CAAK,EAAGC,EAAQ,EAAGA,EAAQD,EAAOC,IACpF9I,EAAK8I,CAAK,EAAI,UAAUA,CAAK,EAE/B,OAAO,QAAQ,MAAM,WAAWZ,GAAY,CAAE,IAAK,GAAGlI,CAAI,CAC9D,CACA,ECpCA,IAAA+I,GAAiB,SAAuBC,EAAO,CAC3C,GAAI,OAAOA,GAAU,UAAY,OAAO,MAAMA,CAAK,EAC/C,MAAM,IAAI,UAAU,0BAA0B,OAAOA,CAAK,EAAE,EAEhE,MAAMC,EAAMD,EAAQ,EACpB,IAAIE,EAAM,KAAK,IAAIF,CAAK,EAIxB,GAHIC,IACAC,EAAM,CAACA,GAEPA,IAAQ,EACR,MAAO,MAEX,MAAMC,EAAQ,CAAC,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAI,EAC5DC,EAAW,KAAK,IAAI,KAAK,MAAM,KAAK,IAAIF,CAAG,EAAI,KAAK,IAAI,IAAI,CAAC,EAAGC,EAAM,OAAS,CAAC,EAChF7I,EAAQ,OAAO4I,EAAM,MAAQE,CAAQ,EACrCC,EAAOF,EAAMC,CAAQ,EAC3B,MAAO,GAAG9I,GAAS,IAAMA,EAAQ,IAAM,EAAI,KAAK,MAAMA,CAAK,EAAIA,EAAM,QAAQ,CAAC,CAAC,IAAI+I,CAAI,EAC3F,kBCYA,SAASC,GAAgBC,EAAMC,EAAW,CACxC,KAAK,KAAOD,EAAOA,GAAQ,GAC3B,KAAK,QAAU,CAACA,EAAK,QAAQ,GAAG,EAChC,KAAK,UAAYC,EACjB,KAAK,MAAQD,EAAK,MAAMC,CAAS,CACnC,CAEAF,GAAgB,UAAU,MAAQ,SAASN,EAAO,CAChD,IAAIS,EAAU,GACVC,EAAQ,KAAK,MACb5W,EACA6W,EAAaD,EAAM,OACnBE,EAEJ,GAAI,OAAOZ,GAAS,UAAYA,aAAiB,OAC/C,GAAI,CAAC,KAAK,SAAW,KAAK,MAAQA,EAChCS,EAAU,OACL,CAEL,IADAG,GAAaZ,GAAS,IAAI,MAAM,KAAK,SAAS,EACzClW,EAAK,EAAG2W,GAAW3W,EAAK6W,EAAY7W,IACnC4W,EAAM5W,CAAE,IAAM,MAEPA,EAAK8W,EAAU,OACxBH,EAAUC,EAAM5W,CAAE,IAAM8W,EAAU9W,CAAE,EAEpC2W,EAAU,IAKdA,EAAUA,GAAWG,CAC3B,SAEW,OAAOZ,EAAM,QAAU,WAG9B,IAFAS,EAAU,CAAE,EAEP3W,EAAKkW,EAAM,OAAQlW,KAClB,KAAK,MAAMkW,EAAMlW,CAAE,CAAC,IACtB2W,EAAQA,EAAQ,MAAM,EAAIT,EAAMlW,CAAE,WAI/B,OAAOkW,GAAS,SAAU,CACjCS,EAAU,CAAE,EAEZ,QAASvL,KAAO8K,EACV,KAAK,MAAM9K,CAAG,IAChBuL,EAAQvL,CAAG,EAAI8K,EAAM9K,CAAG,EAGhC,CAEE,OAAOuL,CACT,EAEA,IAAAI,GAAiB,SAASN,EAAMO,EAAMN,EAAW,CAC/C,IAAIO,EAAU,IAAIT,GAAgBC,EAAMC,GAAa,QAAQ,EAC7D,OAAI,OAAOM,EAAQ,IACVC,EAAQ,MAAMD,CAAI,EAGpBC,CACT,EC5FIF,GAAWjJ,GACXoJ,GAAkB,WAatBC,GAAiB,SAASC,EAAQC,EAAS,CACzC,SAASL,EAAKK,EAAS,CACrB,IAAIhI,EAAS0H,GAASM,EAASD,EAAQF,EAAe,EAGtD,OAAO7H,GAAUA,EAAO,QAAU,CACtC,CAEE,OAAOgI,EAAUL,EAAKK,EAAQ,MAAM,GAAG,EAAE,CAAC,CAAC,EAAIL,CACjD,kBCbMM,GAAiB,CACrB,YAAa,KACb,YAAa,KACb,iBAAkB,KAClB,iBAAkB,KAClB,iBAAkB,KAClB,iBAAkB,KAClB,mBAAoB,CAAA,CACtB,EACA,MAAMC,WAAyB,KAAM,CACnC,YAAYC,EAASC,EAAM,CACzB,IAAIC,EACJ,MAAMF,CAAO,EACb,KAAK,cAAgB,GACrB,KAAK,cAAgBE,EAAqBD,GAAQ,KAAO,OAASA,EAAK,eAAiB,KAAOC,EAAqB,GAChHD,GAAQ,MAAQA,EAAK,OACvB,KAAK,KAAOA,EAAK,KAEvB,CACA,CACA,MAAME,EAAW,CACf,YAAYC,EAASC,EAAS,CAC5B,KAAK,QAAUA,EACf,KAAK,QAAU,IAAM,CACnB,IAAIC,EACJ,MAAML,EAAOG,EAAS,EACtB,KAAME,EAAqBL,EAAK,eAAiB,KAAO,OAASK,EAAmB,mBAAqB,MAAQ,CAAC,MAAM,QAAQL,EAAK,aAAa,gBAAgB,EAChK,MAAM,IAAI,UAAU,kDAAkD,EAExE,OAAOA,CACR,CACL,CAGE,8BAA8BM,EAAeC,EAAa,CACxD,KAAM,CACJ,iBAAAC,EACA,iBAAAC,CACN,EAAQ,KAAK,QAAO,EAAG,aACnB,GAAIA,GACoBH,EAAc,OAAOvhB,GAAK,CAACA,EAAE,OAAO,EACxC,OAASwhB,EAAY,OAASE,EAC9C,MAAM,IAAIX,GAAiB,GAAG,KAAK,QAAO,EAAG,oBAAqB,CAChE,YAAaW,CACd,CAAA,CAAC,EAAE,EAGR,GAAID,EAAkB,CACpB,MAAME,EAAiB,CAAC,GAAGJ,EAAe,GAAGC,CAAW,EAAE,OAAO,CAACI,EAAO5hB,IAAM,CAC7E,IAAI6hB,EACJ,OAAOD,IAAUC,EAAU7hB,EAAE,OAAS,KAAO6hB,EAAU,EACxD,EAAE,CAAC,EACJ,GAAIF,EAAiBF,EACnB,MAAM,IAAIV,GAAiB,KAAK,QAAO,EAAG,uBAAwB,CAChE,YAAatB,GAAcgC,CAAgB,EAC3C,KAAMhC,GAAckC,CAAc,CAC5C,CAAS,CAAC,CAEV,CACA,CACE,mBAAmBrE,EAAM,CACvB,KAAM,CACJ,YAAAwE,EACA,YAAAC,EACA,iBAAAC,CACN,EAAQ,KAAK,QAAO,EAAG,aACnB,GAAIA,GAcE,CAbsBA,EAAiB,KAAK/K,GAE1CA,EAAK,SAAS,GAAG,EACdqG,EAAK,KACH2E,GAAM3E,EAAK,KAAK,QAAQ,QAAS,EAAE,EAAGrG,CAAI,EAD1B,GAKrBA,EAAK,CAAC,IAAM,KAAOqG,EAAK,UACnBA,EAAK,UAAU,YAAa,IAAKrG,EAAK,MAAM,CAAC,EAAE,YAAa,EAE9D,EACR,EACuB,CACtB,MAAMiL,EAAyBF,EAAiB,KAAK,IAAI,EACzD,MAAM,IAAIjB,GAAiB,KAAK,QAAO,EAAG,4BAA6B,CACrE,MAAOmB,CACjB,CAAS,EAAG,CACF,KAAA5E,CACV,CAAS,CACT,CAII,GAAIwE,GAAexE,EAAK,MAAQ,MAAQA,EAAK,KAAOwE,EAAa,CAC/D,IAAIK,EACJ,MAAM,IAAIpB,GAAiB,KAAK,QAAO,EAAG,cAAe,CACvD,KAAMtB,GAAcqC,CAAW,EAC/B,MAAOK,EAAa7E,EAAK,OAAS,KAAO6E,EAAa,KAAK,QAAO,EAAG,SAAS,CACtF,CAAO,EAAG,CACF,KAAA7E,CACR,CAAO,CACP,CAGI,GAAIyE,GAAezE,EAAK,MAAQ,MAAQA,EAAK,KAAOyE,EAClD,MAAM,IAAIhB,GAAiB,KAAK,QAAO,EAAG,eAAgB,CACxD,KAAMtB,GAAcsC,CAAW,CACvC,CAAO,EAAG,CACF,KAAAzE,CACR,CAAO,CAEP,CACE,SAASiE,EAAeC,EAAa,CACnCA,EAAY,QAAQY,GAAc,CAChC,KAAK,mBAAmBA,CAAU,CACxC,CAAK,EACD,KAAK,8BAA8Bb,EAAeC,CAAW,CACjE,CACE,yBAAyBa,EAAO,CAC9B,KAAM,CACJ,iBAAAC,CACN,EAAQ,KAAK,QAAO,EAAG,aACnB,GAAIA,GAAoB,OAAO,KAAKD,CAAK,EAAE,OAASC,EAClD,MAAM,IAAIvB,GAAiB,KAAK,QAAO,EAAG,0BAA2B,CACnE,YAAauB,CACrB,CAAO,CAAC,CAER,CACE,6BAA6BhF,EAAM,CACjC,IAAIiF,EACJ,MAAMC,EAAQ,IAAIzB,GAAiB,KAAK,QAAO,EAAG,iCAAkC,CAClF,UAAWwB,EAAcjF,EAAK,OAAS,KAAOiF,EAAc,KAAK,QAAO,EAAG,SAAS,CAC1F,CAAK,CAAC,EACI,CACJ,mBAAAE,CACN,EAAQ,KAAK,QAAO,EAAG,aACbC,EAAgB,CAAE,EACxB,UAAWC,KAASF,GACd,CAAC,OAAO,OAAOnF,EAAK,KAAMqF,CAAK,GAAKrF,EAAK,KAAKqF,CAAK,IAAM,KAC3DD,EAAc,KAAKC,CAAK,EAG5B,MAAO,CACL,cAAAD,EACA,MAAAF,CACD,CACL,CACA,CC3JA,MAAeI,GAAA,CACb,QAAS,CACP,mBAAoB,CAClB,EAAG,6DACH,EAAG,2DACJ,EACD,kBAAmB,CACjB,EAAG,0CACH,EAAG,0CACJ,EACD,wBAAyB,CACvB,EAAG,kDACH,EAAG,kDACJ,EACD,qBAAsB,4EACtB,YAAa,kDACb,yBAA0B,+BAC1B,+BAAgC,8CAChC,aAAc,wDACd,0BAA2B,gCAC3B,mBAAoB,wBACpB,aAAc,iEACd,eAAgB,mCAChB,YAAa,yBACb,yBAA0B,kEAC1B,eAAgB,2BAChB,qBAAsB,yBACtB,oBAAqB,4BAErB,aAAc,oCACd,gBAAiB,sDACjB,QAAS,CACP,EAAG,wBACH,EAAG,uBACJ,EACD,wBAAyB,gCACzB,gBAAiB,sBACjB,OAAQ,SACR,OAAQ,UACR,MAAO,SACP,UAAW,aACX,WAAY,cACZ,OAAQ,SACR,YAAa,eACb,QAAS,aACT,aAAc,2BACd,sBAAuB,yDACvB,iBAAkB,2BAClB,iBAAkB,sBAClB,aAAc,oBACd,kBAAmB,kCACnB,OAAQ,SACR,YAAa,eACb,iBAAkB,wCAClB,cAAe,4BACf,mBAAoB,2CACpB,YAAa,CACX,EAAG,2CACH,EAAG,2CACJ,EACD,6BAA8B,sDAC9B,QAAS,UACT,WAAY,aAChB,CACA,EChEA,SAASnP,EAA4BxU,EAAGD,EAAG,CAAE,GAAI,CAAC,CAAA,EAAG,eAAe,KAAKC,EAAGD,CAAC,EAAG,MAAM,IAAI,UAAU,gDAAgD,EAAG,OAAOC,CAAE,CAChK,IAAIyU,GAAK,EACT,SAASC,GAA2B1U,EAAG,CAAE,MAAO,aAAeyU,KAAO,IAAMzU,CAAE,CAoB9E,MAAMqd,GAAc,CAClB,QAAW,OACb,EAsDMuG,GAAqB,CACzB,cAAe,EACf,eAAgB,GAChB,MAAO,KACP,eAAgB,IAClB,EAOA,IAAIC,GAAwBnP,GAA2B,SAAS,EAC5DoP,GAA2BpP,GAA2B,YAAY,EAClEqP,GAAiCrP,GAA2B,kBAAkB,EAC9EsP,GAAwBtP,GAA2B,SAAS,EAC5DuP,GAA8BvP,GAA2B,eAAe,EACxEwP,GAA0BxP,GAA2B,WAAW,EAChEyP,GAA+BzP,GAA2B,gBAAgB,EAC1E0P,GAA8B1P,GAA2B,eAAe,EACxE2P,GAA8C3P,GAA2B,+BAA+B,EACxG4P,GAAwC5P,GAA2B,yBAAyB,EAC5F6P,GAAuC7P,GAA2B,wBAAwB,EAC1F8P,GAA8B9P,GAA2B,eAAe,EACxE+P,GAAmC/P,GAA2B,oBAAoB,EAClFgQ,GAAwChQ,GAA2B,yBAAyB,EAC5FiQ,GAAqCjQ,GAA2B,sBAAsB,EACtFkQ,GAAoClQ,GAA2B,qBAAqB,EACpFmQ,GAA6CnQ,GAA2B,8BAA8B,EACtGoQ,GAAuCpQ,GAA2B,wBAAwB,EAC1FqQ,GAA6BrQ,GAA2B,cAAc,EACtEsQ,GAAmCtQ,GAA2B,oBAAoB,EAClFuQ,GAAkCvQ,GAA2B,mBAAmB,EAChFwQ,GAA6BxQ,GAA2B,cAAc,EACtEyQ,GAA0BzQ,GAA2B,WAAW,EAChE0Q,GAA6B1Q,GAA2B,cAAc,EACtE2Q,GAA0B3Q,GAA2B,WAAW,EAC7D,IAAA4Q,GAAA,MAAMC,EAAK,CAIhB,YAAYC,EAAO,CAIjB,OAAO,eAAe,KAAMH,GAAY,CACtC,MAAOI,EACb,CAAK,EAKD,OAAO,eAAe,KAAML,GAAe,CACzC,MAAOM,EACb,CAAK,EACD,OAAO,eAAe,KAAMP,GAAY,CACtC,MAAOQ,EACb,CAAK,EAKD,OAAO,eAAe,KAAMT,GAAe,CACzC,MAAOU,EACb,CAAK,EAKD,OAAO,eAAe,KAAMb,GAAe,CACzC,MAAOc,EACb,CAAK,EACD,OAAO,eAAe,KAAMf,GAAyB,CACnD,MAAOgB,EACb,CAAK,EACD,OAAO,eAAe,KAAMlB,GAAsB,CAChD,MAAOmB,EACb,CAAK,EACD,OAAO,eAAe,KAAMrB,GAA0B,CACpD,MAAOsB,EACb,CAAK,EAED,OAAO,eAAe,KAAMvB,GAAqB,CAC/C,MAAOwB,EACb,CAAK,EAID,OAAO,eAAe,KAAMzB,GAAgB,CAC1C,MAAO0B,EACb,CAAK,EACD,OAAO,eAAe,KAAM3B,GAAyB,CACnD,MAAO4B,EACb,CAAK,EACD,OAAO,eAAe,KAAM7B,GAA0B,CACpD,MAAO8B,EACb,CAAK,EACD,OAAO,eAAe,KAAM/B,GAAgC,CAC1D,MAAOgC,EACb,CAAK,EACD,OAAO,eAAe,KAAMjC,GAAgB,CAC1C,MAAOkC,EACb,CAAK,EACD,OAAO,eAAe,KAAMzC,GAAU,CACpC,SAAU,GACV,MAAO,OAAO,OAAO,IAAI,CAC/B,CAAK,EACD,OAAO,eAAe,KAAMC,GAAa,CACvC,SAAU,GACV,MAAO,MACb,CAAK,EACD,OAAO,eAAe,KAAMC,GAAmB,CAC7C,SAAU,GACV,MAAO,MACb,CAAK,EACD,OAAO,eAAe,KAAMC,GAAU,CACpC,SAAU,GACV,MAAOjd,GAAE,CACf,CAAK,EACD,OAAO,eAAe,KAAMkd,GAAgB,CAC1C,SAAU,GACV,MAAO,IAAI,GACjB,CAAK,EACD,OAAO,eAAe,KAAMC,GAAY,CACtC,SAAU,GACV,MAAO,IAAI,GACjB,CAAK,EACD,OAAO,eAAe,KAAMC,GAAiB,CAC3C,SAAU,GACV,MAAO,IAAI,GACjB,CAAK,EACD,KAAK,qBAAuB,KAC5B,KAAK,WAAa,GAClB,OAAO,eAAe,KAAMQ,GAAuB,CACjD,SAAU,GACV,MAAO,CAACtG,EAAMkI,IAAa,CACzB,MAAMC,EAAcnI,EAAO,KAAK,QAAQA,EAAK,EAAE,EAAI,OACnD,GAAIA,GAAQ,MAAQ,CAACmI,EAAa,CAChC,KAAK,IAAI,0DAA0DnI,GAAQ,KAAO,OAASA,EAAK,EAAE,EAAE,EACpG,MACV,CACQ,GAAImI,EAAY,SAAS,aAAe,IAAK,CAC3C,KAAK,IAAI,mEAAmEnI,EAAK,EAAE,EAAE,EACrF,MACV,CACQ,MAAMoI,EAAc,CAClB,WAAYF,EAAS,WAErB,WAAYA,EAAS,YAAc,MAAQ,OAAO,SAASA,EAAS,UAAU,GAAKA,EAAS,WAAa,EAAI,KAAK,MAAMA,EAAS,cAAgBA,EAAS,WAAa,GAAG,EAAI,MAC/K,EACGC,EAAY,SAAS,eAAiB,KACxC,KAAK,aAAanI,EAAK,GAAI,CACzB,SAAU,CACR,GAAGmI,EAAY,SACf,GAAGC,EACH,cAAeF,EAAS,aACtC,CACA,CAAW,EAED,KAAK,aAAalI,EAAK,GAAI,CACzB,SAAU,CACR,GAAGmI,EAAY,SACf,GAAGC,CACjB,CACA,CAAW,EAEHjS,EAA4B,KAAMqQ,EAA6B,EAAEA,EAA6B,EAAG,CACzG,CACA,CAAK,EAQD,OAAO,eAAe,KAAMA,GAA+B,CACzD,SAAU,GACV,MAAO1H,GAAS,IAAM3I,EAA4B,KAAMoQ,EAAoB,EAAEA,EAAoB,EAAG,EAAE,IAAK,CAC1G,QAAS,GACT,SAAU,EACX,CAAA,CACP,CAAK,EACD,OAAO,eAAe,KAAMI,GAAqB,CAC/C,SAAU,GACV,MAAO,KAAK,mBAAmB,KAAK,IAAI,CAC9C,CAAK,EAWD,OAAO,eAAe,KAAMC,GAAoB,CAC9C,SAAU,GACV,MAAO,IAAI,GACjB,CAAK,EACD,KAAK,cAAgB5O,GACrB,MAAMwL,EAAiB,CACrB,GAAI,OACJ,YAAa,GACb,2BAA4B,GAC5B,MAAO,GACP,aAAc6E,GACd,KAAM,CAAE,EACR,kBAAmB,CAACrI,EAAM+E,IAAU,CAAC,OAAO,OAAOA,EAAO/E,EAAK,EAAE,EACjE,eAAgB+E,GAASA,EACzB,MAAO,IAAI5F,GACX,OAAQwC,GACR,YAAa,GACd,EACK2G,EAAS,CACb,GAAG9E,EACH,GAAG2D,CACJ,EAGD,KAAK,KAAO,CACV,GAAGmB,EACH,aAAc,CACZ,GAAG9E,EAAe,aAClB,GAAI2D,GAASA,EAAM,YAC3B,CACK,EAIGA,GAASA,EAAM,QAAUA,EAAM,MACjC,KAAK,IAAI,4KAA6K,SAAS,EACtLA,GAASA,EAAM,QACxB,KAAK,KAAK,OAASvF,IAErB,KAAK,IAAI,eAAesF,GAAK,OAAO,EAAE,EACtC,KAAK,SAAU,EACf,KAAK,MAAQ,KAAK,KAAK,MACvB,KAAK,SAAS,CACZ,GAAG3B,GACH,QAAS,CAAE,EACX,MAAO,CAAE,EACT,eAAgB,CAAE,EAClB,aAAc,CACZ,eAAgB1E,GAAwB,EACxC,uBAAwB,GACxB,iBAAkB,EACnB,EACD,KAAM,CACJ,GAAG,KAAK,KAAK,IACd,EACD,KAAM,CAAA,CACZ,CAAK,EACD1K,EAA4B,KAAMsP,EAAW,EAAEA,EAAW,EAAI,IAAI5B,GAAW,IAAM,KAAK,KAAM,IAAM,KAAK,IAAI,EAC7G1N,EAA4B,KAAMuP,EAAiB,EAAEA,EAAiB,EAAI,KAAK,MAAM,UAAU,CAACpG,EAAWC,EAAWF,IAAU,CAC9H,KAAK,KAAK,eAAgBC,EAAWC,EAAWF,CAAK,EACrD,KAAK,UAAUE,CAAS,CAC9B,CAAK,EAGG,KAAK,KAAK,OAAS,OAAO,OAAW,MAGvC,OAAO,KAAK,KAAK,EAAE,EAAI,MAEzBpJ,EAA4B,KAAMuQ,EAAa,EAAEA,EAAa,EAAG,CACrE,CACE,KAAKrO,EAAO,CACV,QAASoH,EAAO,UAAU,OAAQrG,EAAO,IAAI,MAAMqG,EAAO,EAAIA,EAAO,EAAI,CAAC,EAAGC,EAAO,EAAGA,EAAOD,EAAMC,IAClGtG,EAAKsG,EAAO,CAAC,EAAI,UAAUA,CAAI,EAEjCvJ,EAA4B,KAAMwP,EAAQ,EAAEA,EAAQ,EAAE,KAAKtN,EAAO,GAAGe,CAAI,CAC7E,CACE,GAAGf,EAAOkQ,EAAU,CAClBpS,OAAAA,EAA4B,KAAMwP,EAAQ,EAAEA,EAAQ,EAAE,GAAGtN,EAAOkQ,CAAQ,EACjE,IACX,CACE,KAAKlQ,EAAOkQ,EAAU,CACpBpS,OAAAA,EAA4B,KAAMwP,EAAQ,EAAEA,EAAQ,EAAE,KAAKtN,EAAOkQ,CAAQ,EACnE,IACX,CACE,IAAIlQ,EAAOkQ,EAAU,CACnBpS,OAAAA,EAA4B,KAAMwP,EAAQ,EAAEA,EAAQ,EAAE,IAAItN,EAAOkQ,CAAQ,EAClE,IACX,CAOE,UAAUC,EAAO,CACf,KAAK,eAAeC,GAAU,CAC5BA,EAAO,OAAOD,CAAK,CACzB,CAAK,CACL,CAKE,SAASnJ,EAAO,CACd,KAAK,MAAM,SAASA,CAAK,CAC7B,CAKE,UAAW,CACT,OAAO,KAAK,MAAM,SAAU,CAChC,CACE,gBAAgBqJ,EAAmB,CACjC,MAAMC,EAAqB,KAAK,SAAQ,EAAG,MAC3C,KAAK,SAAS,CACZ,MAAO,CACL,GAAGA,EACH,GAAG,OAAO,YAAY,OAAO,QAAQD,CAAiB,EAAE,IAAIE,GAAQ,CAClE,GAAI,CAACC,EAAQC,CAAY,EAAIF,EAC7B,MAAO,CAACC,EAAQ,CACd,GAAGF,EAAmBE,CAAM,EAC5B,GAAGC,CACf,CAAW,CACX,CAAS,CAAC,CACV,CACA,CAAK,CACL,CAKE,aAAaD,EAAQL,EAAO,CAC1B,GAAI,CAAC,KAAK,SAAU,EAAC,MAAMK,CAAM,EAC/B,MAAM,IAAI,MAAM,uBAAuBA,CAAM,qCAAqC,EAEpF,KAAK,gBAAgB,CACnB,CAACA,CAAM,EAAGL,CAChB,CAAK,CACL,CACE,UAAW,CACT,MAAM5Q,EAAeN,GAAO,KAAK,IAAI,wBAAwBA,CAAG,GAAI,OAAO,EACrEyR,EAAa,IAAItR,GAAW,CAAC,KAAK,cAAe,KAAK,KAAK,MAAM,EAAG,CACxE,aAAAG,CACN,CAAK,EACD,KAAK,KAAOmR,EAAW,UAAU,KAAKA,CAAU,EAChD,KAAK,UAAYA,EAAW,eAAe,KAAKA,CAAU,EAC1D,KAAK,OAASA,EAAW,MAC7B,CACE,WAAWC,EAAS,CAClB,KAAK,KAAO,CACV,GAAG,KAAK,KACR,GAAGA,EACH,aAAc,CACZ,GAAG,KAAK,KAAK,aACb,GAAIA,GAAW,KAAO,OAASA,EAAQ,YAC/C,CACK,EACGA,EAAQ,MACV,KAAK,QAAQA,EAAQ,IAAI,EAE3B,KAAK,SAAU,EACXA,EAAQ,QACV,KAAK,eAAeP,GAAU,CAC5BA,EAAO,WAAWO,CAAO,CACjC,CAAO,EAIH,KAAK,SAAS,MAAS,CAC3B,CACE,eAAgB,CACd,MAAMC,EAAkB,CACtB,WAAY,EACZ,cAAe,GACf,eAAgB,GAChB,cAAe,IAChB,EACKlE,EAAQ,CACZ,GAAG,KAAK,WAAW,KACpB,EACKmE,EAAe,OAAO,OAAO,IAAI,EACvC,OAAO,KAAKnE,CAAK,EAAE,QAAQ8D,GAAU,CACnCK,EAAaL,CAAM,EAAI,CACrB,GAAG9D,EAAM8D,CAAM,EACf,SAAU,CACR,GAAG9D,EAAM8D,CAAM,EAAE,SACjB,GAAGI,CACJ,EAID,IAAK,OACL,YAAa,MACd,CACP,CAAK,EACD,KAAK,SAAS,CACZ,MAAOC,EACP,GAAG3D,EACT,CAAK,CACL,CACE,OAAQ,CACN,KAAM,CACJ,aAAA4D,EACA,eAAAC,CACN,EAAQ,KAAK,SAAU,EACnB,GAAI,OAAO,KAAKA,CAAc,EAAE,OAAS,GAAK,CAACD,EAAa,uBAC1D,MAAM,IAAI,MAAM,+EAA+E,EAEjG,KAAK,SAAS,CACZ,GAAG5D,GACH,MAAO,CAAA,CACb,CAAK,CACL,CACE,gBAAgBxV,EAAI,CAClBoG,EAA4B,KAAMyP,EAAc,EAAEA,EAAc,EAAE,IAAI7V,CAAE,CAC5E,CACE,mBAAmBA,EAAI,CACrB,OAAOoG,EAA4B,KAAMyP,EAAc,EAAEA,EAAc,EAAE,OAAO7V,CAAE,CACtF,CACE,iBAAiBA,EAAI,CACnBoG,EAA4B,KAAM2P,EAAe,EAAEA,EAAe,EAAE,IAAI/V,CAAE,CAC9E,CACE,oBAAoBA,EAAI,CACtB,OAAOoG,EAA4B,KAAM2P,EAAe,EAAEA,EAAe,EAAE,OAAO/V,CAAE,CACxF,CACE,YAAYA,EAAI,CACdoG,EAA4B,KAAM0P,EAAU,EAAEA,EAAU,EAAE,IAAI9V,CAAE,CACpE,CACE,eAAeA,EAAI,CACjB,OAAOoG,EAA4B,KAAM0P,EAAU,EAAEA,EAAU,EAAE,OAAO9V,CAAE,CAC9E,CACE,QAAQsZ,EAAM,CACZ,MAAMC,EAAc,CAClB,GAAG,KAAK,SAAQ,EAAG,KACnB,GAAGD,CACJ,EACKH,EAAe,CACnB,GAAG,KAAK,WAAW,KACpB,EACD,OAAO,KAAKA,CAAY,EAAE,QAAQL,GAAU,CAC1CK,EAAaL,CAAM,EAAI,CACrB,GAAGK,EAAaL,CAAM,EACtB,KAAM,CACJ,GAAGK,EAAaL,CAAM,EAAE,KACxB,GAAGQ,CACb,CACO,CACP,CAAK,EACD,KAAK,IAAI,kBAAkB,EAC3B,KAAK,IAAIA,CAAI,EACb,KAAK,SAAS,CACZ,KAAMC,EACN,MAAOJ,CACb,CAAK,CACL,CACE,YAAYL,EAAQQ,EAAM,CACxB,MAAMH,EAAe,CACnB,GAAG,KAAK,WAAW,KACpB,EACD,GAAI,CAACA,EAAaL,CAAM,EAAG,CACzB,KAAK,IAAI,gEAAgEA,CAAM,EAAE,EACjF,MACN,CACI,MAAMU,EAAU,CACd,GAAGL,EAAaL,CAAM,EAAE,KACxB,GAAGQ,CACJ,EACDH,EAAaL,CAAM,EAAI,CACrB,GAAGK,EAAaL,CAAM,EACtB,KAAMU,CACP,EACD,KAAK,SAAS,CACZ,MAAOL,CACb,CAAK,CACL,CAKE,QAAQL,EAAQ,CACd,OAAO,KAAK,WAAW,MAAMA,CAAM,CACvC,CAKE,UAAW,CACT,KAAM,CACJ,MAAA9D,CACN,EAAQ,KAAK,SAAU,EACnB,OAAO,OAAO,OAAOA,CAAK,CAC9B,CACE,cAAcyE,EAAK,CACjB,OAAOA,EAAI,IAAIpT,GAAM,KAAK,QAAQA,CAAE,CAAC,CACzC,CACE,0BAA2B,CACzB,KAAM,CACJ,MAAOqT,EACP,cAAAC,EACA,MAAAxE,CACN,EAAQ,KAAK,SAAU,EACbH,EAAQ,OAAO,OAAO0E,CAAW,EACjCE,EAAkB,CAAE,EACpBC,EAAW,CAAE,EACbC,EAAe,CAAE,EACjBC,EAAqB,CAAE,EACvBC,EAAc,CAAE,EAChBC,EAAgB,CAAE,EAClBC,EAAe,CAAE,EACjBC,EAA2B,CAAE,EAC7BC,EAAkB,CAAE,EAC1B,UAAWnK,KAAQ+E,EAAO,CACxB,KAAM,CACJ,SAAAmD,CACR,EAAUlI,EACA,CAACkI,EAAS,gBAAkBA,EAAS,gBACvCyB,EAAgB,KAAK3J,CAAI,EACpBA,EAAK,UACRkK,EAAyB,KAAKlK,CAAI,GAGjCkI,EAAS,eACZ0B,EAAS,KAAK5J,CAAI,GAEhBkI,EAAS,eAAiBA,EAAS,YAAcA,EAAS,cAC5D2B,EAAa,KAAK7J,CAAI,EAEpBkI,EAAS,eACX4B,EAAmB,KAAK9J,CAAI,EAE1BA,EAAK,UACP+J,EAAY,KAAK/J,CAAI,EAEnBkI,EAAS,gBACX8B,EAAc,KAAKhK,CAAI,EAErBA,EAAK,OACPiK,EAAa,KAAKjK,CAAI,GAEpBkI,EAAS,YAAcA,EAAS,cAClCiC,EAAgB,KAAKnK,CAAI,CAEjC,CACI,MAAO,CACL,SAAA4J,EACA,aAAAC,EACA,mBAAAC,EACA,YAAAC,EACA,cAAAC,EACA,aAAAC,EACA,gBAAAN,EACA,yBAAAO,EACA,gBAAAC,EACA,gBAAiBL,EAAmB,OAAS,EAC7C,cAAeJ,IAAkB,KAAOM,EAAc,SAAWjF,EAAM,QAAUoF,EAAgB,SAAW,EAC5G,aAAc,CAAC,CAACjF,GAAS+E,EAAa,SAAWlF,EAAM,OACvD,YAAa4E,EAAgB,SAAW,GAAKI,EAAY,SAAWJ,EAAgB,OACpF,mBAAoBA,EAAgB,OAAS,EAC7C,YAAa5E,EAAM,KAAK/E,GAAQA,EAAK,OAAO,CAC7C,CACL,CACE,qBAAqBA,EAAM+E,EAAO,CAC5BA,IAAU,SACZA,EAAQ,KAAK,SAAU,GAEzB,GAAI,CACF5O,EAA4B,KAAMsP,EAAW,EAAEA,EAAW,EAAE,SAASV,EAAO,CAAC/E,CAAI,CAAC,CACnF,OAAQoK,EAAK,CACZ,OAAOA,CACb,CACI,OAAO,IACX,CACE,mBAAmBpK,EAAM,CACvB,GAAI,CACF7J,EAA4B,KAAMsP,EAAW,EAAEA,EAAW,EAAE,mBAAmBzF,CAAI,CACpF,OAAQoK,EAAK,CACZ,OAAOA,EAAI,OACjB,CACI,OAAO,IACX,CACE,8BAA8BrF,EAAO,CACnC,MAAMd,EAAgB,KAAK,SAAU,EACrC,GAAI,CACF9N,EAA4B,KAAMsP,EAAW,EAAEA,EAAW,EAAE,8BAA8BxB,EAAec,CAAK,CAC/G,OAAQqF,EAAK,CACZ,OAAOA,EAAI,OACjB,CACI,OAAO,IACX,CACE,yBAAyBvB,EAAQ,CAC/B,KAAM,CACJ,MAAA9D,CACN,EAAQ,KAAK,SAAU,EACnB,MAAI,GAAAA,EAAM8D,CAAM,GAAK,CAAC9D,EAAM8D,CAAM,EAAE,QAIxC,CAME,QAAQ7I,EAAM,CACZ7J,EAA4B,KAAM+P,EAAuB,EAAEA,EAAuB,EAAElG,CAAI,EACxF,KAAM,CACJ,eAAAqK,EACA,gBAAAC,EACA,OAAAC,CACN,EAAQpU,EAA4B,KAAMkQ,EAAwB,EAAEA,EAAwB,EAAE,CAACrG,CAAI,CAAC,EAC1FwK,EAAoBD,EAAO,OAAOrF,GAASA,EAAM,aAAa,EAEpE,GADA/O,EAA4B,KAAM4P,EAAc,EAAEA,EAAc,EAAEyE,CAAiB,EAC/ED,EAAO,OAAS,EAAG,MAAMA,EAAO,CAAC,EACrC,KAAK,SAAS,CACZ,MAAOF,CACb,CAAK,EACD,KAAM,CAACI,CAAmB,EAAIH,EAC9B,YAAK,KAAK,aAAcG,CAAmB,EAC3C,KAAK,KAAK,cAAeH,CAAe,EACxC,KAAK,IAAI,eAAeG,EAAoB,IAAI,KAAKA,EAAoB,EAAE,gBAAgBA,EAAoB,IAAI,EAAE,EACrHtU,EAA4B,KAAMiQ,EAAmB,EAAEA,EAAmB,EAAG,EACtEqE,EAAoB,EAC/B,CASE,SAASC,EAAiB,CACxBvU,EAA4B,KAAM+P,EAAuB,EAAEA,EAAuB,EAAG,EACrF,KAAM,CACJ,eAAAmE,EACA,gBAAAC,EACA,OAAAC,CACN,EAAQpU,EAA4B,KAAMkQ,EAAwB,EAAEA,EAAwB,EAAEqE,CAAe,EACnGF,EAAoBD,EAAO,OAAOrF,GAASA,EAAM,aAAa,EACpE/O,EAA4B,KAAM4P,EAAc,EAAEA,EAAc,EAAEyE,CAAiB,EACnF,MAAMG,EAAuBJ,EAAO,OAAOrF,GAAS,CAACA,EAAM,aAAa,EACxE,GAAIyF,EAAqB,OAAS,EAAG,CACnC,IAAIjH,EAAU;AAAA,EAUd,GATAiH,EAAqB,QAAQC,GAAY,CACvClH,GAAW;AAAA,KAAQkH,EAAS,OAAO,EAC3C,CAAO,EACD,KAAK,KAAK,CACR,QAAS,KAAK,KAAK,qBAAsB,CACvC,YAAaD,EAAqB,MAC5C,CAAS,EACD,QAASjH,CACV,EAAE,QAAS,KAAK,KAAK,WAAW,EAC7B,OAAO,gBAAmB,WAC5B,MAAM,IAAI,eAAeiH,EAAsBjH,CAAO,EACjD,CACL,MAAM0G,EAAM,IAAI,MAAM1G,CAAO,EAE7B,MAAA0G,EAAI,OAASO,EACPP,CACd,CACA,CAII,KAAK,SAAS,CACZ,MAAOC,CACb,CAAK,EACDC,EAAgB,QAAQtK,GAAQ,CAC9B,KAAK,KAAK,aAAcA,CAAI,CAClC,CAAK,EACD,KAAK,KAAK,cAAesK,CAAe,EACpCA,EAAgB,OAAS,EAC3B,KAAK,IAAI,kBAAkBA,EAAgB,MAAM,QAAQ,EAEzD,OAAO,OAAOA,CAAe,EAAE,QAAQtK,GAAQ,CAC7C,KAAK,IAAI,eAAeA,EAAK,IAAI;AAAA,OAAUA,EAAK,EAAE;AAAA,SAAYA,EAAK,IAAI,EAAE,CACjF,CAAO,EAECsK,EAAgB,OAAS,GAC3BnU,EAA4B,KAAMiQ,EAAmB,EAAEA,EAAmB,EAAG,CAEnF,CACE,YAAYyE,EAAS,CACnB,KAAM,CACJ,MAAA9F,EACA,eAAAqE,CACN,EAAQ,KAAK,SAAU,EACbF,EAAe,CACnB,GAAGnE,CACJ,EACK+F,EAAiB,CACrB,GAAG1B,CACJ,EACK2B,EAAe,OAAO,OAAO,IAAI,EACvCF,EAAQ,QAAQhC,GAAU,CACpB9D,EAAM8D,CAAM,IACdkC,EAAalC,CAAM,EAAI9D,EAAM8D,CAAM,EACnC,OAAOK,EAAaL,CAAM,EAElC,CAAK,EAGD,SAASmC,EAAiBC,EAAc,CACtC,OAAOF,EAAaE,CAAY,IAAM,MAC5C,CACI,OAAO,KAAKH,CAAc,EAAE,QAAQI,GAAY,CAC9C,MAAMC,EAAa/B,EAAe8B,CAAQ,EAAE,QAAQ,OAAOF,CAAgB,EAG3E,GAAIG,EAAW,SAAW,EAAG,CAC3B,OAAOL,EAAeI,CAAQ,EAC9B,MACR,CACM,KAAM,CACJ,aAAA/B,CACR,EAAU,KAAK,SAAU,EACnB,GAAIgC,EAAW,SAAW/B,EAAe8B,CAAQ,EAAE,QAAQ,QAAU,CAAC/B,EAAa,uBACjF,MAAM,IAAI,MAAM,+EAA+E,EAEjG2B,EAAeI,CAAQ,EAAI,CACzB,GAAG9B,EAAe8B,CAAQ,EAC1B,QAASC,CACV,CACP,CAAK,EACD,MAAMC,EAAc,CAClB,eAAgBN,EAChB,MAAO5B,CACR,EAIG,OAAO,KAAKA,CAAY,EAAE,SAAW,IACvCkC,EAAY,eAAiB,GAC7BA,EAAY,MAAQ,KACpBA,EAAY,eAAiB,MAE/B,KAAK,SAASA,CAAW,EACzBjV,EAA4B,KAAMqQ,EAA6B,EAAEA,EAA6B,EAAG,EACjG,MAAM6E,EAAiB,OAAO,KAAKN,CAAY,EAC/CM,EAAe,QAAQxC,GAAU,CAC/B,KAAK,KAAK,eAAgBkC,EAAalC,CAAM,CAAC,CACpD,CAAK,EACGwC,EAAe,OAAS,EAC1B,KAAK,IAAI,WAAWA,EAAe,MAAM,QAAQ,EAEjD,KAAK,IAAI,kBAAkBA,EAAe,KAAK,IAAI,CAAC,EAAE,CAE5D,CACE,WAAWxC,EAAQ,CACjB,KAAK,YAAY,CAACA,CAAM,CAAC,CAC7B,CACE,YAAYA,EAAQ,CAClB,GAAI,CAAC,KAAK,SAAU,EAAC,aAAa,kBAAoB,KAAK,QAAQA,CAAM,EAAE,SAAS,eAClF,OAEF,MAAM7I,EAAO,KAAK,QAAQ6I,CAAM,EAE1ByC,EAAW,EADCtL,EAAK,UAAY,IAEnC,YAAK,aAAa6I,EAAQ,CACxB,SAAAyC,CACN,CAAK,EACD,KAAK,KAAK,eAAgBtL,EAAMsL,CAAQ,EACjCA,CACX,CACE,UAAW,CACT,MAAMpC,EAAe,CACnB,GAAG,KAAK,WAAW,KACpB,EAC8B,OAAO,KAAKA,CAAY,EAAE,OAAOlJ,GACvD,CAACkJ,EAAalJ,CAAI,EAAE,SAAS,gBAAkBkJ,EAAalJ,CAAI,EAAE,SAAS,aACnF,EACsB,QAAQA,GAAQ,CACrC,MAAMuL,EAAc,CAClB,GAAGrC,EAAalJ,CAAI,EACpB,SAAU,EACX,EACDkJ,EAAalJ,CAAI,EAAIuL,CAC3B,CAAK,EACD,KAAK,SAAS,CACZ,MAAOrC,CACb,CAAK,EACD,KAAK,KAAK,WAAW,CACzB,CACE,WAAY,CACV,MAAMA,EAAe,CACnB,GAAG,KAAK,WAAW,KACpB,EAC8B,OAAO,KAAKA,CAAY,EAAE,OAAOlJ,GACvD,CAACkJ,EAAalJ,CAAI,EAAE,SAAS,gBAAkBkJ,EAAalJ,CAAI,EAAE,SAAS,aACnF,EACsB,QAAQA,GAAQ,CACrC,MAAMuL,EAAc,CAClB,GAAGrC,EAAalJ,CAAI,EACpB,SAAU,GACV,MAAO,IACR,EACDkJ,EAAalJ,CAAI,EAAIuL,CAC3B,CAAK,EACD,KAAK,SAAS,CACZ,MAAOrC,CACb,CAAK,EACD,KAAK,KAAK,YAAY,CAC1B,CACE,UAAW,CACT,MAAMA,EAAe,CACnB,GAAG,KAAK,WAAW,KACpB,EACKsC,EAAe,OAAO,KAAKtC,CAAY,EAAE,OAAOlJ,GAC7CkJ,EAAalJ,CAAI,EAAE,KAC3B,EAcD,GAbAwL,EAAa,QAAQxL,GAAQ,CAC3B,MAAMuL,EAAc,CAClB,GAAGrC,EAAalJ,CAAI,EACpB,SAAU,GACV,MAAO,IACR,EACDkJ,EAAalJ,CAAI,EAAIuL,CAC3B,CAAK,EACD,KAAK,SAAS,CACZ,MAAOrC,EACP,MAAO,IACb,CAAK,EACD,KAAK,KAAK,YAAa,OAAO,OAAOA,CAAY,CAAC,EAC9CsC,EAAa,SAAW,EAC1B,OAAO,QAAQ,QAAQ,CACrB,WAAY,CAAE,EACd,OAAQ,CAAA,CAChB,CAAO,EAEH,MAAMN,EAAW/U,EAA4B,KAAM0Q,EAAa,EAAEA,EAAa,EAAE2E,EAAc,CAC7F,oBAAqB,EAC3B,CAAK,EACD,OAAOrV,EAA4B,KAAM6Q,EAAU,EAAEA,EAAU,EAAEkE,CAAQ,CAC7E,CACE,WAAY,CACV,KAAK,KAAK,YAAY,EACtB,KAAM,CACJ,MAAAnG,CACN,EAAQ,KAAK,SAAU,EACb8F,EAAU,OAAO,KAAK9F,CAAK,EAC7B8F,EAAQ,QACV,KAAK,YAAYA,CAAO,EAE1B,KAAK,SAAStF,EAAkB,CACpC,CACE,YAAYsD,EAAQ,CAClB,KAAK,aAAaA,EAAQ,CACxB,MAAO,KACP,SAAU,EAChB,CAAK,EACD,KAAK,KAAK,eAAgB,KAAK,QAAQA,CAAM,CAAC,EAC9C,MAAMqC,EAAW/U,EAA4B,KAAM0Q,EAAa,EAAEA,EAAa,EAAE,CAACgC,CAAM,EAAG,CACzF,oBAAqB,EAC3B,CAAK,EACD,OAAO1S,EAA4B,KAAM6Q,EAAU,EAAEA,EAAU,EAAEkE,CAAQ,CAC7E,CACE,QAAS,CACP,KAAK,eAAezC,GAAU,CAC5B,IAAIgD,GAEHA,EAAYhD,EAAO,WAAa,MAAQgD,EAAU,QAAU,MAAQA,EAAU,OAAQ,CAC7F,CAAK,CACL,CAEE,CAAC,OAAO,IAAI,gCAAgC,CAAC,GAAI,CAC/C,OAAOtV,EAA4B,KAAMoQ,EAAoB,EAAEA,EAAoB,EAAG,CAC1F,CACE,oBAAqB,CACnB,IAAImF,IACYA,EAAwB,OAAO,UAAU,SAAW,KAAOA,EAAwB,KAMjG,KAAK,KAAK,WAAW,EACjB,KAAK,aACP,KAAK,KAAK,aAAa,EACvB,KAAK,KAAK,KAAK,KAAK,qBAAqB,EAAG,UAAW,GAAI,EAC3D,KAAK,WAAa,MARpB,KAAK,KAAK,YAAY,EACtB,KAAK,KAAK,KAAK,KAAK,sBAAsB,EAAG,QAAS,CAAC,EACvD,KAAK,WAAa,GASxB,CACE,OAAQ,CACN,OAAO,KAAK,KAAK,EACrB,CAKE,IAAIC,EAAQ,CACV,GAAI,OAAOA,GAAW,WAAY,CAChC,MAAMC,EAAM,oCAAoCD,IAAW,KAAO,OAAS,OAAOA,CAAM,sEACxF,MAAM,IAAI,UAAUC,CAAG,CAC7B,CAGI,QAAS/J,EAAQ,UAAU,OAAQzI,EAAO,IAAI,MAAMyI,EAAQ,EAAIA,EAAQ,EAAI,CAAC,EAAGC,EAAQ,EAAGA,EAAQD,EAAOC,IACxG1I,EAAK0I,EAAQ,CAAC,EAAI,UAAUA,CAAK,EAEnC,MAAM2G,EAAS,IAAIkD,EAAO,KAAM,GAAGvS,CAAI,EACjCyS,EAAWpD,EAAO,GACxB,GAAI,CAACoD,EACH,MAAM,IAAI,MAAM,6BAA6B,EAE/C,GAAI,CAACpD,EAAO,KACV,MAAM,IAAI,MAAM,8BAA8B,EAEhD,MAAMqD,EAAsB,KAAK,UAAUD,CAAQ,EACnD,GAAIC,EAAqB,CACvB,MAAMF,EAAM,iCAAiCE,EAAoB,EAAE,qBAA0BD,CAAQ;AAAA,+CACrG,MAAM,IAAI,MAAMD,CAAG,CACzB,CAGI,OAAID,EAAO,SAET,KAAK,IAAI,SAASE,CAAQ,KAAKF,EAAO,OAAO,EAAE,EAE7ClD,EAAO,QAAQtS,EAA4B,KAAMqP,EAAQ,EAAEA,EAAQ,EACrErP,EAA4B,KAAMqP,EAAQ,EAAEA,EAAQ,EAAEiD,EAAO,IAAI,EAAE,KAAKA,CAAM,EAE9EtS,EAA4B,KAAMqP,EAAQ,EAAEA,EAAQ,EAAEiD,EAAO,IAAI,EAAI,CAACA,CAAM,EAE9EA,EAAO,QAAS,EAChB,KAAK,KAAK,eAAgBA,CAAM,EACzB,IACX,CAKE,UAAUrS,EAAI,CACZ,UAAW2V,KAAW,OAAO,OAAO5V,EAA4B,KAAMqP,EAAQ,EAAEA,EAAQ,CAAC,EAAG,CAC1F,MAAMwG,EAAcD,EAAQ,KAAKtD,GAAUA,EAAO,KAAOrS,CAAE,EAC3D,GAAI4V,GAAe,KAAM,OAAOA,CACtC,CAEA,CACE,CAAC,OAAO,IAAI,uBAAuB,CAAC,EAAErS,EAAM,CAC1C,OAAOxD,EAA4B,KAAMqP,EAAQ,EAAEA,EAAQ,EAAE7L,CAAI,CACrE,CAME,eAAesS,EAAQ,CACrB,OAAO,OAAO9V,EAA4B,KAAMqP,EAAQ,EAAEA,EAAQ,CAAC,EAAE,KAAK,CAAC,EAAE,QAAQyG,CAAM,CAC/F,CAOE,aAAaC,EAAU,CACrB,KAAK,IAAI,mBAAmBA,EAAS,EAAE,EAAE,EACzC,KAAK,KAAK,gBAAiBA,CAAQ,EAC/BA,EAAS,WACXA,EAAS,UAAW,EAEtB,MAAMrV,EAAOV,EAA4B,KAAMqP,EAAQ,EAAEA,EAAQ,EAAE0G,EAAS,IAAI,EAI1E1R,EAAQ3D,EAAK,UAAUsV,GAAQA,EAAK,KAAOD,EAAS,EAAE,EACxD1R,IAAU,IACZ3D,EAAK,OAAO2D,EAAO,CAAC,EAGtB,MAAM4R,EAAe,CACnB,QAAS,CACP,GAHU,KAAK,SAAU,EAGhB,QACT,CAACF,EAAS,EAAE,EAAG,MACvB,CACK,EACD,KAAK,SAASE,CAAY,CAC9B,CAKE,SAAU,CACR,KAAK,IAAI,yBAAyB,KAAK,KAAK,EAAE,+CAA+C,EAC7F,KAAK,UAAW,EAChBjW,EAA4B,KAAMuP,EAAiB,EAAEA,EAAiB,EAAG,EACzE,KAAK,eAAe+C,GAAU,CAC5B,KAAK,aAAaA,CAAM,CAC9B,CAAK,EACG,OAAO,OAAW,KAAe,OAAO,sBAC1C,OAAO,oBAAoB,SAAUtS,EAA4B,KAAMwQ,EAAmB,EAAEA,EAAmB,CAAC,EAChH,OAAO,oBAAoB,UAAWxQ,EAA4B,KAAMwQ,EAAmB,EAAEA,EAAmB,CAAC,EAEvH,CACE,UAAW,CACT,KAAM,CACJ,KAAA0F,CACN,EAAQ,KAAK,SAAU,EACnB,KAAK,SAAS,CACZ,KAAMA,EAAK,MAAM,CAAC,CACxB,CAAK,EACD,KAAK,KAAK,aAAa,CAC3B,CAME,KAAK3I,EAAS/J,EAAM2S,EAAU,CACxB3S,IAAS,SACXA,EAAO,QAEL2S,IAAa,SACfA,EAAW,KAEb,MAAMC,EAAmB,OAAO7I,GAAY,SAC5C,KAAK,SAAS,CACZ,KAAM,CAAC,GAAG,KAAK,SAAQ,EAAG,KAAM,CAC9B,KAAA/J,EACA,QAAS4S,EAAmB7I,EAAQ,QAAUA,EAC9C,QAAS6I,EAAmB7I,EAAQ,QAAU,IAC/C,CAAA,CACP,CAAK,EACD,WAAW,IAAM,KAAK,SAAQ,EAAI4I,CAAQ,EAC1C,KAAK,KAAK,cAAc,CAC5B,CAME,IAAI5I,EAAS/J,EAAM,CACjB,KAAM,CACJ,OAAA6S,CACD,EAAG,KAAK,KACT,OAAQ7S,EAAI,CACV,IAAK,QACH6S,EAAO,MAAM9I,CAAO,EACpB,MACF,IAAK,UACH8I,EAAO,KAAK9I,CAAO,EACnB,MACF,QACE8I,EAAO,MAAM9I,CAAO,EACpB,KACR,CACA,CACE,sBAAsBtN,EAAIqW,EAAQ,CAChCtW,EAA4B,KAAMyQ,EAAkB,EAAEA,EAAkB,EAAE,IAAIxQ,EAAIqW,CAAM,CAC5F,CAGE,wBAAwBzM,EAAM,CAC5B,GAAI,CAACA,EAAK,OAAQ,MAAM,IAAI,MAAM,oDAAoDA,EAAK,EAAE,EAAE,EAC/F,MAAM0M,EAAgBvW,EAA4B,KAAMyQ,EAAkB,EAAEA,EAAkB,EAAE,IAAI5G,EAAK,OAAO,eAAe,EAC/H,GAAI0M,GAAiB,KAAM,MAAM,IAAI,MAAM,oBAAoB1M,EAAK,OAAO,eAAe,8BAA8BA,EAAK,EAAE,GAAG,EAClI,OAAO0M,CACX,CAKE,QAAQxB,EAAU,CAEhB,OADA,KAAK,IAAI,uCAAuCA,CAAQ,GAAG,EACtD,KAAK,SAAU,EAAC,eAAeA,CAAQ,EAIrC/U,EAA4B,KAAM6Q,EAAU,EAAEA,EAAU,EAAEkE,CAAQ,GAHvE/U,EAA4B,KAAM4Q,EAAa,EAAEA,EAAa,EAAEmE,CAAQ,EACjE,QAAQ,OAAO,IAAI,MAAM,oBAAoB,CAAC,EAG3D,CACE,CAAC,OAAO,IAAI,yBAAyB,CAAC,GAAI,CAExC,OAAO/U,EAA4B,KAAM0Q,EAAa,EAAEA,EAAa,EAAE,GAAG,SAAS,CACvF,CAIE,cAAcqE,EAAU7B,EAAM,CAC5B,GAAI,CAAClT,EAA4B,KAAM2Q,EAAU,EAAEA,EAAU,EAAEoE,CAAQ,EAAG,CACxE,KAAK,IAAI,2DAA2DA,CAAQ,EAAE,EAC9E,MACN,CACI,KAAM,CACJ,eAAA9B,CACN,EAAQ,KAAK,SAAU,EACbuD,EAAgB,CACpB,GAAGvD,EAAe8B,CAAQ,EAC1B,OAAQ,CACN,GAAG9B,EAAe8B,CAAQ,EAAE,OAC5B,GAAG7B,CACX,CACK,EACD,KAAK,SAAS,CACZ,eAAgB,CACd,GAAGD,EACH,CAAC8B,CAAQ,EAAGyB,CACpB,CACA,CAAK,CACL,CAIE,MAAM,QAAS,CACb,IAAIC,GACGA,EAAwBzW,EAA4B,KAAMqP,EAAQ,EAAEA,EAAQ,EAAE,WAAgB,MAAQoH,EAAsB,QACjI,KAAK,IAAI,oCAAqC,SAAS,EAEzD,GAAI,CACF,MAAA7H,CACN,EAAQ,KAAK,SAAU,EAGnB,MAAMyG,EAAe,OAAO,KAAKzG,CAAK,EAAE,OAAO8D,GAAU9D,EAAM8D,CAAM,EAAE,KAAK,EAI5E,GAHwB2C,EAAa,OAAS,EAGzB,CACnB,MAAMtC,EAAe,CACnB,GAAGnE,CACJ,EACDyG,EAAa,QAAQ3C,GAAU,CAC7BK,EAAaL,CAAM,EAAI,CACrB,GAAGK,EAAaL,CAAM,EACtB,SAAU,GACV,MAAO,IACR,CACT,CAAO,EACD,KAAK,SAAS,CACZ,MAAOK,EACP,MAAO,IACf,CAAO,EACD,KAAK,KAAK,YAAa,OAAO,OAAOA,CAAY,CAAC,EAClD,MAAMgC,EAAW/U,EAA4B,KAAM0Q,EAAa,EAAEA,EAAa,EAAE2E,EAAc,CAC7F,oBAAqB,EAC7B,CAAO,EACKjQ,EAAS,MAAMpF,EAA4B,KAAM6Q,EAAU,EAAEA,EAAU,EAAEkE,CAAQ,EAEvF,GAAI,CADgB,KAAK,WAAW,OAAOlL,GAAQA,EAAK,SAAS,eAAiB,IAAI,EAEpF,OAAOzE,EAETwJ,EAAQ,KAAK,SAAQ,EAAG,KAC9B,CAGI,MAAM8H,EAAuB,KAAK,KAAK,eAAe9H,CAAK,EAC3D,OAAI8H,IAAyB,GACpB,QAAQ,OAAO,IAAI,MAAM,+DAA+D,CAAC,GAE9FA,GAAwB,OAAOA,GAAyB,WAC1D9H,EAAQ8H,EAGR,KAAK,SAAS,CACZ,MAAA9H,CACR,CAAO,GAEI,QAAQ,QAAS,EAAC,KAAK,IAAM5O,EAA4B,KAAMsP,EAAW,EAAEA,EAAW,EAAE,yBAAyBV,CAAK,CAAC,EAAE,MAAMqF,GAAO,CAC5IjU,MAAAA,EAA4B,KAAM4P,EAAc,EAAEA,EAAc,EAAE,CAACqE,CAAG,CAAC,EACjEA,CACZ,CAAK,EAAE,KAAK,IAAM,CACZ,GAAI,CAACjU,EAA4B,KAAM8P,EAAwB,EAAEA,EAAwB,EAAElB,CAAK,EAC9F,MAAM,IAAItB,GAAiB,KAAK,KAAK,0BAA0B,CAAC,CAExE,CAAK,EAAE,MAAM2G,GAAO,CAId,MAAMA,CACZ,CAAK,EAAE,KAAK,IAAM,CACZ,KAAM,CACJ,eAAAhB,CACR,EAAU,KAAK,SAAU,EAEb0D,EAA0B,OAAO,OAAO1D,CAAc,EAAE,QAAQ2D,GAAQA,EAAK,OAAO,EACpFC,EAAiB,CAAE,EACzB,OAAO,KAAKjI,CAAK,EAAE,QAAQ8D,GAAU,CACnC,MAAM7I,EAAO,KAAK,QAAQ6I,CAAM,EAE5B,CAAC7I,EAAK,SAAS,eAAiB8M,EAAwB,QAAQjE,CAAM,IAAM,IAC9EmE,EAAe,KAAKhN,EAAK,EAAE,CAErC,CAAO,EACD,MAAMkL,EAAW/U,EAA4B,KAAM0Q,EAAa,EAAEA,EAAa,EAAEmG,CAAc,EAC/F,OAAO7W,EAA4B,KAAM6Q,EAAU,EAAEA,EAAU,EAAEkE,CAAQ,CAC/E,CAAK,EAAE,MAAMd,GAAO,CACd,WAAK,KAAK,QAASA,CAAG,EACtB,KAAK,IAAIA,EAAK,OAAO,EACfA,CACZ,CAAK,EACL,CACA,EACA,SAASnC,GAAgBsC,EAAQ,CAC/B,UAAWrF,KAASqF,EACdrF,EAAM,cACR,KAAK,KAAK,qBAAsBA,EAAM,KAAMA,CAAK,EAEjD,KAAK,KAAK,QAASA,EAAOA,EAAM,IAAI,EAEtC,KAAK,IAAIA,EAAO,SAAS,EAE3B,MAAM+H,EAAmB1C,EAAO,OAAOrF,GAASA,EAAM,YAAY,EAG5DgI,EAAe,EACfC,EAAcF,EAAiB,MAAM,EAAGC,CAAY,EACpDE,EAAmBH,EAAiB,MAAMC,CAAY,EAC5DC,EAAY,QAAQE,GAAS,CAC3B,GAAI,CACF,QAAA3J,EACA,QAAA4J,EAAU,EAChB,EAAQD,EACJ,KAAK,KAAK,CACR,QAAA3J,EACA,QAAA4J,CACD,EAAE,QAAS,KAAK,KAAK,WAAW,CACrC,CAAG,EACGF,EAAiB,OAAS,GAC5B,KAAK,KAAK,CACR,QAAS,KAAK,KAAK,+BAAgC,CACjD,MAAOA,EAAiB,MACzB,CAAA,CACP,CAAK,CAEL,CACA,SAASpF,GAAgChI,EAAM,CAC7C,KAAM,CACJ,cAAAoF,EACA,MAAAF,CACJ,EAAM/O,EAA4B,KAAMsP,EAAW,EAAEA,EAAW,EAAE,6BAA6BzF,CAAI,EACjG,OAAIoF,EAAc,OAAS,GACzB,KAAK,aAAapF,EAAK,GAAI,CACzB,0BAA2BoF,CACjC,CAAK,EACD,KAAK,IAAIF,EAAM,OAAO,EACtB,KAAK,KAAK,qBAAsBlF,EAAMkF,CAAK,EACpC,IAEF,EACT,CACA,SAAS6C,GAA0BhD,EAAO,CACxC,IAAIwI,EAAU,GACd,UAAWvN,KAAQ,OAAO,OAAO+E,CAAK,EAC/B5O,EAA4B,KAAM6P,EAA8B,EAAEA,EAA8B,EAAEhG,CAAI,IACzGuN,EAAU,IAGd,OAAOA,CACT,CACA,SAASzF,GAAyB9H,EAAM,CACtC,KAAM,CACJ,eAAAwN,CACJ,EAAM,KAAK,SAAU,EACnB,GAAIA,IAAmB,GAAO,CAC5B,MAAMtI,EAAQ,IAAIzB,GAAiB,KAAK,KAAK,oBAAoB,EAAG,CAClE,KAAAzD,CACN,CAAK,EACD7J,MAAAA,EAA4B,KAAM4P,EAAc,EAAEA,EAAc,EAAE,CAACb,CAAK,CAAC,EACnEA,CACV,CACA,CACA,SAAS2C,GAAgB4F,EAAsB,CAI7C,MAAMzN,EAAOyN,aAAgC,KAAO,CAClD,KAAMA,EAAqB,KAC3B,KAAMA,EAAqB,KAC3B,KAAMA,EAAqB,KAC3B,KAAMA,CACV,EAAMA,EACE7M,EAAWb,GAAYC,CAAI,EAC3B0N,EAAWxM,GAAYN,EAAUZ,CAAI,EACrCE,EAAgBP,GAAwB+N,CAAQ,EAAE,UAClDtX,EAAKuK,GAAcX,EAAM,KAAK,MAAK,CAAE,EACrC2N,EAAO3N,EAAK,MAAQ,CAAE,EAC5B2N,EAAK,KAAOD,EACZC,EAAK,KAAO/M,EAGZ,MAAMpH,EAAO,OAAO,SAASwG,EAAK,KAAK,IAAI,EAAIA,EAAK,KAAK,KAAO,KAChE,MAAO,CACL,OAAQA,EAAK,QAAU,GACvB,GAAA5J,EACA,KAAMsX,EACN,UAAWxN,GAAiB,GAC5B,KAAM,CACJ,GAAG,KAAK,SAAQ,EAAG,KACnB,GAAGyN,CACJ,EACD,KAAM/M,EACN,KAAMZ,EAAK,KACX,SAAU,CACR,WAAY,EACZ,cAAe,GACf,WAAYxG,EACZ,eAAgB,GAChB,cAAe,IAChB,EACD,KAAAA,EACA,QAAS,GACT,SAAUwG,EAAK,UAAY,GAC3B,OAAQA,EAAK,OACb,QAASA,EAAK,OACf,CACH,CACA,SAAS4H,IAAuB,CAC1B,KAAK,KAAK,aAAe,CAAC,KAAK,uBACjC,KAAK,qBAAuB,WAAW,IAAM,CAC3C,KAAK,qBAAuB,KAC5B,KAAK,OAAM,EAAG,MAAMwC,GAAO,CACpBA,EAAI,eACP,KAAK,IAAIA,EAAI,OAASA,EAAI,SAAWA,CAAG,CAElD,CAAO,CACF,EAAE,CAAC,EAER,CACA,SAASzC,GAA0BiG,EAAY,CAC7C,KAAM,CACJ,MAAO3J,CACX,EAAM,KAAK,SAAU,EAGboG,EAAiB,CACrB,GAAGpG,CACJ,EACKqG,EAAkB,CAAE,EACpBC,EAAS,CAAE,EACjB,UAAWsD,KAAaD,EACtB,GAAI,CACF,IAAIE,EACJ,IAAIC,EAAU5X,EAA4B,KAAMgQ,EAAc,EAAEA,EAAc,EAAE0H,CAAS,EAMzF,MAAMG,GAAWF,EAAwB7J,EAAc8J,EAAQ,EAAE,IAAM,KAAO,OAASD,EAAsB,QACzGE,IAEFD,EAAU,CACR,GAFwB9J,EAAc8J,EAAQ,EAAE,EAGhD,QAAS,GACT,KAAMF,EAAU,IACjB,EACD,KAAK,IAAI,iDAAiDE,EAAQ,IAAI,KAAKA,EAAQ,EAAE,EAAE,GAEzF,MAAME,EAA0B,KAAK,KAAK,kBAAkBF,EAAS1D,CAAc,EACnF,GAAI,CAAC4D,GAA2B,KAAK,yBAAyBF,EAAQ,EAAE,EAAG,CACzE,IAAIG,EACJ,MAAM,IAAIzK,GAAiB,KAAK,KAAK,eAAgB,CACnD,UAAWyK,EAAgBH,EAAQ,OAAS,KAAOG,EAAgB,KAAK,KAAK,SAAS,CAChG,CAAS,EAAG,CACF,KAAML,CAChB,CAAS,CACT,CAGM,GAAII,IAA4B,IAAS,CAACD,EAExC,MAAM,IAAIvK,GAAiB,gEAAiE,CAC1F,aAAc,GACd,KAAMoK,CAChB,CAAS,EACQ,OAAOI,GAA4B,UAAYA,IAA4B,OACpFF,EAAUE,GAEZ9X,EAA4B,KAAMsP,EAAW,EAAEA,EAAW,EAAE,mBAAmBsI,CAAO,EAGtF1D,EAAe0D,EAAQ,EAAE,EAAIA,EAC7BzD,EAAgB,KAAKyD,CAAO,CAC7B,OAAQ3D,EAAK,CACZG,EAAO,KAAKH,CAAG,CACrB,CAEE,GAAI,CAGFjU,EAA4B,KAAMsP,EAAW,EAAEA,EAAW,EAAE,8BAA8B,OAAO,OAAOxB,CAAa,EAAGqG,CAAe,CACxI,OAAQF,EAAK,CACZ,OAAAG,EAAO,KAAKH,CAAG,EAGR,CACL,eAAgBnG,EAChB,gBAAiB,CAAE,EACnB,OAAAsG,CACD,CACL,CACE,MAAO,CACL,eAAAF,EACA,gBAAAC,EACA,OAAAC,CACD,CACH,CACA,SAAS7C,IAAwB,CAC/B,IAAIyG,EAAuBC,EAC3B,MAAM1E,EAAgBvT,EAA4B,KAAMsQ,EAAuB,EAAEA,EAAuB,EAAG,EAC3G,IAAI4H,EAAuB,KACvB3E,GAAiB,OACnB2E,EAAuB,KAAK,MAAM3E,EAAgB,GAAG,EACjD2E,EAAuB,IAAKA,EAAuB,IAAaA,EAAuB,IAAGA,EAAuB,IAEvH,KAAK,KAAK,YAAaF,EAAwBE,IAAyB,KAAOF,EAAwB,CAAC,EACxG,KAAK,SAAS,CACZ,eAAgBC,EAAyBC,IAAyB,KAAOD,EAAyB,CACtG,CAAG,CACH,CACA,SAAS3G,IAA2B,CAMlC,MAAM6G,EAHQ,KAAK,SAAU,EAGC,OAAOtO,GAC5BA,EAAK,SAAS,eAAiBA,EAAK,SAAS,YAAcA,EAAK,SAAS,WACjF,EACD,GAAIsO,EAAgB,SAAW,EAC7B,MAAO,GAET,GAAIA,EAAgB,MAAMtO,GAAQA,EAAK,SAAS,cAAc,EAI5D,MAAO,GAET,MAAMuO,EAAcvO,GAAQA,EAAK,SAAS,YAAc,MAAQA,EAAK,SAAS,aAAe,EACvFwO,EAAuBF,EAAgB,OAAOC,CAAW,EACzDE,EAAyBH,EAAgB,OAAOtO,GAAQ,CAACuO,EAAYvO,CAAI,CAAC,EAChF,GAAIwO,EAAqB,MAAMxO,GAAQA,EAAK,SAAS,cAAc,GAAKyO,EAAuB,OAAS,GAAK,CAACA,EAAuB,MAAMzO,GAAQA,EAAK,SAAS,cAAc,EAK7K,OAAO,KAET,MAAMqE,EAAiBmK,EAAqB,OAAO,CAACE,EAAK1O,IAAS,CAChE,IAAI2O,EACJ,OAAOD,IAAQC,EAAwB3O,EAAK,SAAS,aAAe,KAAO2O,EAAwB,EACpG,EAAE,CAAC,EACEC,EAAoBJ,EAAqB,OAAO,CAACE,EAAK1O,IAAS0O,GAAO1O,EAAK,SAAS,eAAiB,GAAI,CAAC,EAChH,OAAOqE,IAAmB,EAAI,EAAIuK,EAAoBvK,CACxD,CACA,SAASmD,IAAiB,CAExB,MAAMqH,EAAe,CAAC3J,EAAOlF,EAAM8O,IAAa,CAC9C,IAAIC,EAAW7J,EAAM,SAAW,gBAC5BA,EAAM,UACR6J,GAAY,IAAI7J,EAAM,OAAO,IAE/B,KAAK,SAAS,CACZ,MAAO6J,CACb,CAAK,EACG/O,GAAQ,MAAQA,EAAK,MAAM,KAAK,SAAU,EAAC,OAC7C,KAAK,aAAaA,EAAK,GAAI,CACzB,MAAO+O,EACP,SAAAD,CACR,CAAO,CAEJ,EACD,KAAK,GAAG,QAASD,CAAY,EAC7B,KAAK,GAAG,eAAgB,CAAC7O,EAAMkF,EAAO4J,IAAa,CAEjD,GADAD,EAAa3J,EAAOlF,EAAM8O,CAAQ,EAC9B,OAAO5J,GAAU,UAAYA,EAAM,QAAS,CAC9C,IAAIL,EACJ,KAAK,IAAIK,EAAM,QAAS,OAAO,EAC/B,MAAM8J,EAAW,IAAI,MAAM,KAAK,KAAK,iBAAkB,CACrD,MAAOnK,EAAa7E,GAAQ,KAAO,OAASA,EAAK,OAAS,KAAO6E,EAAa,EAC/E,CAAA,CAAC,EACFmK,EAAS,aAAe,GACxBA,EAAS,QAAU9J,EAAM,QACrBA,EAAM,UACR8J,EAAS,SAAW,IAAI9J,EAAM,OAAO,IAEvC/O,EAA4B,KAAM4P,EAAc,EAAEA,EAAc,EAAE,CAACiJ,CAAQ,CAAC,CAClF,MACM7Y,EAA4B,KAAM4P,EAAc,EAAEA,EAAc,EAAE,CAACb,CAAK,CAAC,CAE/E,CAAG,EACD,IAAI+J,EAAsC,KAC1C,KAAK,GAAG,iBAAkB,CAAC/J,EAAOH,IAAU,CAC1C,KAAM,CACJ,QAAArB,CACN,EAAQwB,EACEoI,EAAUvI,EAAM,IAAI/E,GAAQA,EAAK,KAAK,IAAI,EAAE,KAAK,IAAI,EACtDiP,IACH,KAAK,KAAK,CACR,QAAAvL,EACA,QAAA4J,CACD,EAAE,UAAW,KAAK,KAAK,WAAW,EACnC2B,EAAsC,WAAW,IAAM,CACrDA,EAAsC,IAC9C,EAAS,KAAK,KAAK,WAAW,GAE1B,KAAK,IAAI,GAAGvL,CAAO,IAAI4J,CAAO,GAAG,KAAM,EAAE,SAAS,CACtD,CAAG,EACD,KAAK,GAAG,SAAU,IAAM,CACtB,KAAK,SAAS,CACZ,MAAO,IACb,CAAK,CACL,CAAG,EACD,MAAM4B,EAAkBnK,GAAS,CAC/B,MAAMoK,EAAgBpK,EAAM,OAAO/E,GAAQ,CACzC,MAAMoP,EAASpP,GAAQ,MAAQ,KAAK,QAAQA,EAAK,EAAE,EACnD,OAAKoP,GAAQ,KAAK,IAAI,0DAA0DpP,GAAQ,KAAO,OAASA,EAAK,EAAE,EAAE,EAC1GoP,CACb,CAAK,EACKC,EAAa,OAAO,YAAYF,EAAc,IAAInP,GAAQ,CAACA,EAAK,GAAI,CACxE,SAAU,CACR,cAAe,KAAK,IAAK,EACzB,eAAgB,GAChB,cAAe,EACf,WAAYA,EAAK,IACzB,CACK,CAAA,CAAC,CAAC,EACH,KAAK,gBAAgBqP,CAAU,CAChC,EACD,KAAK,GAAG,eAAgBH,CAAe,EACvC,KAAK,GAAG,kBAAmB/Y,EAA4B,KAAMmQ,EAAqB,EAAEA,EAAqB,CAAC,EAC1G,KAAK,GAAG,iBAAkB,CAACtG,EAAMsP,IAAe,CAC9C,GAAItP,GAAQ,MAAQ,CAAC,KAAK,QAAQA,EAAK,EAAE,EAAG,CAC1C,KAAK,IAAI,0DAA0DA,GAAQ,KAAO,OAASA,EAAK,EAAE,EAAE,EACpG,MACN,CACI,MAAMuP,EAAkB,KAAK,QAAQvP,EAAK,EAAE,EAAE,SAC9C,KAAK,aAAaA,EAAK,GAAI,CACzB,SAAU,CACR,GAAGuP,EACH,YAAapZ,EAA4B,KAAM2P,EAAe,EAAEA,EAAe,EAAE,KAAO,EAAI,CAC1F,KAAM,eAChB,EAAY,OACJ,eAAgB,GAChB,WAAY,IACZ,cAAeyJ,EAAgB,UAChC,EACD,SAAUD,EACV,UAAWA,EAAW,UACtB,SAAU,EAChB,CAAK,EAIGtP,EAAK,MAAQ,MACf,KAAK,aAAaA,EAAK,GAAI,CACzB,KAAMsP,EAAW,eAAiBC,EAAgB,UAC1D,CAAO,EAEHpZ,EAA4B,KAAMqQ,EAA6B,EAAEA,EAA6B,EAAG,CACrG,CAAG,EACD,KAAK,GAAG,sBAAuB,CAACxG,EAAMkI,IAAa,CACjD,GAAIlI,GAAQ,MAAQ,CAAC,KAAK,QAAQA,EAAK,EAAE,EAAG,CAC1C,KAAK,IAAI,0DAA0DA,GAAQ,KAAO,OAASA,EAAK,EAAE,EAAE,EACpG,MACN,CACI,KAAK,aAAaA,EAAK,GAAI,CACzB,SAAU,CACR,GAAG,KAAK,QAAQA,EAAK,EAAE,EAAE,SACzB,WAAYkI,CACpB,CACA,CAAK,CACL,CAAG,EACD,KAAK,GAAG,sBAAuBlI,GAAQ,CACrC,GAAIA,GAAQ,MAAQ,CAAC,KAAK,QAAQA,EAAK,EAAE,EAAG,CAC1C,KAAK,IAAI,0DAA0DA,GAAQ,KAAO,OAASA,EAAK,EAAE,EAAE,EACpG,MACN,CACI,MAAM+E,EAAQ,CACZ,GAAG,KAAK,WAAW,KACpB,EACDA,EAAM/E,EAAK,EAAE,EAAI,CACf,GAAG+E,EAAM/E,EAAK,EAAE,EAChB,SAAU,CACR,GAAG+E,EAAM/E,EAAK,EAAE,EAAE,QAC1B,CACK,EACD,OAAO+E,EAAM/E,EAAK,EAAE,EAAE,SAAS,WAC/B,KAAK,SAAS,CACZ,MAAA+E,CACN,CAAK,CACL,CAAG,EACD,KAAK,GAAG,uBAAwB,CAAC/E,EAAMkI,IAAa,CAClD,GAAIlI,GAAQ,MAAQ,CAAC,KAAK,QAAQA,EAAK,EAAE,EAAG,CAC1C,KAAK,IAAI,0DAA0DA,GAAQ,KAAO,OAASA,EAAK,EAAE,EAAE,EACpG,MACN,CACI,KAAK,aAAaA,EAAK,GAAI,CACzB,SAAU,CACR,GAAG,KAAK,SAAU,EAAC,MAAMA,EAAK,EAAE,EAAE,SAClC,YAAakI,CACrB,CACA,CAAK,CACL,CAAG,EACD,KAAK,GAAG,uBAAwBlI,GAAQ,CACtC,GAAIA,GAAQ,MAAQ,CAAC,KAAK,QAAQA,EAAK,EAAE,EAAG,CAC1C,KAAK,IAAI,0DAA0DA,GAAQ,KAAO,OAASA,EAAK,EAAE,EAAE,EACpG,MACN,CACI,MAAM+E,EAAQ,CACZ,GAAG,KAAK,WAAW,KACpB,EACDA,EAAM/E,EAAK,EAAE,EAAI,CACf,GAAG+E,EAAM/E,EAAK,EAAE,EAChB,SAAU,CACR,GAAG+E,EAAM/E,EAAK,EAAE,EAAE,QAC1B,CACK,EACD,OAAO+E,EAAM/E,EAAK,EAAE,EAAE,SAAS,YAC/B,KAAK,SAAS,CACZ,MAAA+E,CACN,CAAK,CACL,CAAG,EACD,KAAK,GAAG,WAAY,IAAM,CAExB5O,EAA4B,KAAMqQ,EAA6B,EAAEA,EAA6B,EAAG,CACrG,CAAG,EAGD,KAAK,GAAG,+BAAgCxG,GAAQ,CAC1CA,GACF7J,EAA4B,KAAM6P,EAA8B,EAAEA,EAA8B,EAAEhG,CAAI,CAE5G,CAAG,EAGG,OAAO,OAAW,KAAe,OAAO,mBAC1C,OAAO,iBAAiB,SAAU7J,EAA4B,KAAMwQ,EAAmB,EAAEA,EAAmB,CAAC,EAC7G,OAAO,iBAAiB,UAAWxQ,EAA4B,KAAMwQ,EAAmB,EAAEA,EAAmB,CAAC,EAC9G,WAAWxQ,EAA4B,KAAMwQ,EAAmB,EAAEA,EAAmB,EAAG,GAAI,EAEhG,CACA,SAASY,GAAesD,EAASlH,EAAM,CACjCA,IAAS,SACXA,EAAO,CAAE,GAGX,KAAM,CACJ,oBAAA6L,EAAsB,EAC1B,EAAM7L,EACE,CACJ,eAAA6J,EACA,eAAApE,CACJ,EAAM,KAAK,SAAU,EACnB,GAAI,CAACoE,GAAkB,CAACgC,EACtB,MAAM,IAAI,MAAM,gDAAgD,EAElE,MAAMtE,EAAW3R,GAAQ,EACzB,YAAK,KAAK,SAAU2R,EAAU,KAAK,cAAcL,CAAO,CAAC,EACzD,KAAK,SAAS,CACZ,eAAgB,KAAK,KAAK,6BAA+B,IAAS,KAAK,KAAK,uBAAyB,GACrG,eAAgB,CACd,GAAGzB,EACH,CAAC8B,CAAQ,EAAG,CACV,QAAAL,EACA,KAAM,EACN,OAAQ,CAAA,CAChB,CACA,CACA,CAAG,EACMK,CACT,CACA,SAAS5D,GAAY4D,EAAU,CAC7B,KAAM,CACJ,eAAA9B,CACJ,EAAM,KAAK,SAAU,EACnB,OAAOA,EAAe8B,CAAQ,CAChC,CACA,SAAS7D,GAAe6D,EAAU,CAChC,MAAM9B,EAAiB,CACrB,GAAG,KAAK,WAAW,cACpB,EACD,OAAOA,EAAe8B,CAAQ,EAC9B,KAAK,SAAS,CACZ,eAAA9B,CACJ,CAAG,CACH,CACA,eAAehC,GAAY8D,EAAU,CACnC,MAAMuE,EAAmB,IAAM,CAC7B,KAAM,CACJ,eAAArG,CACN,EAAQ,KAAK,SAAU,EACnB,OAAOA,EAAe8B,CAAQ,CAC/B,EACD,IAAIyB,EAAgB8C,EAAkB,EACtC,MAAMC,EAAQ,CAAC,GAAGvZ,EAA4B,KAAMyP,EAAc,EAAEA,EAAc,EAAG,GAAGzP,EAA4B,KAAM0P,EAAU,EAAEA,EAAU,EAAG,GAAG1P,EAA4B,KAAM2P,EAAe,EAAEA,EAAe,CAAC,EACzN,GAAI,CACF,QAAS6J,EAAOhD,EAAc,MAAQ,EAAGgD,EAAOD,EAAM,QAC/C/C,EADuDgD,IAAQ,CAIpE,MAAM5f,EAAK2f,EAAMC,CAAI,EACrB,KAAK,SAAS,CACZ,eAAgB,CACd,GAAG,KAAK,SAAQ,EAAG,eACnB,CAACzE,CAAQ,EAAG,CACV,GAAGyB,EACH,KAAAgD,CACZ,CACA,CACA,CAAO,EACD,KAAM,CACJ,QAAA9E,CACR,EAAU8B,EAIJ,MAAM5c,EAAG8a,EAASK,CAAQ,EAG1ByB,EAAgB8C,EAAkB,CACxC,CACG,OAAQrF,EAAK,CACZjU,MAAAA,EAA4B,KAAM4Q,EAAa,EAAEA,EAAa,EAAEmE,CAAQ,EAClEd,CACV,CAGE,GAAIuC,EAAe,CAWjBA,EAAc,QAAQ,QAAQ9D,GAAU,CACtC,MAAM7I,EAAO,KAAK,QAAQ6I,CAAM,EAC5B7I,GAAQA,EAAK,SAAS,aACxB,KAAK,KAAK,uBAAwBA,CAAI,CAE9C,CAAK,EACD,MAAM+E,EAAQ4H,EAAc,QAAQ,IAAI9D,GAAU,KAAK,QAAQA,CAAM,CAAC,EAChE+G,EAAa7K,EAAM,OAAO/E,GAAQ,CAACA,EAAK,KAAK,EAC7C6P,EAAS9K,EAAM,OAAO/E,GAAQA,EAAK,KAAK,EAC9C,KAAK,cAAckL,EAAU,CAC3B,WAAA0E,EACA,OAAAC,EACA,SAAA3E,CACN,CAAK,EAGDyB,EAAgB8C,EAAkB,CACtC,CAKE,IAAIlU,EACJ,OAAIoR,IACFpR,EAASoR,EAAc,OACvB,KAAK,KAAK,WAAYpR,CAAM,EAC5BpF,EAA4B,KAAM4Q,EAAa,EAAEA,EAAa,EAAEmE,CAAQ,GAEtE3P,GAAU,MACZ,KAAK,IAAI,2DAA2D2P,CAAQ,EAAE,EAEzE3P,CACT,CACA2L,GAAK,QAAUlI,GAAY,QC/yDxB,IAACnd,GAAEK,GAAER,GAAIE,GAAEE,GAAEC,GAAEJ,GAAEe,GAAEP,GAAEH,GAAEC,GAAIQ,GAAE,CAAE,EAACI,GAAE,CAAA,EAAGD,GAAE,oEAAoEN,GAAE,MAAM,QAAQ,SAASgB,GAAEzB,EAAEK,EAAE,CAAC,QAAQ,KAAKA,EAAEL,EAAE,CAAC,EAAEK,EAAE,CAAC,EAAE,OAAOL,CAAC,CAAC,SAASU,GAAEV,EAAE,CAACA,GAAGA,EAAE,YAAYA,EAAE,WAAW,YAAYA,CAAC,CAAC,CAAC,SAASmC,EAAE9B,EAAER,EAAEU,EAAE,CAAC,IAAIR,EAAEE,EAAEC,EAAEJ,EAAE,CAAE,EAAC,IAAII,KAAKL,EAASK,GAAP,MAASH,EAAEF,EAAEK,CAAC,EAASA,GAAP,MAASD,EAAEJ,EAAEK,CAAC,EAAEJ,EAAEI,CAAC,EAAEL,EAAEK,CAAC,EAAE,GAAG,UAAU,OAAO,IAAIJ,EAAE,SAAS,UAAU,OAAO,EAAEE,GAAE,KAAK,UAAU,CAAC,EAAEO,GAAe,OAAOF,GAAnB,YAA4BA,EAAE,cAAR,KAAqB,IAAIH,KAAKG,EAAE,aAAsBP,EAAEI,CAAC,IAAN,SAAUJ,EAAEI,CAAC,EAAEG,EAAE,aAAaH,CAAC,GAAG,OAAOS,GAAEN,EAAEP,EAAEC,EAAEE,EAAE,IAAI,CAAC,CAAC,SAASU,GAAEX,EAAEO,EAAER,EAAEE,EAAEC,EAAE,CAAC,IAAIJ,EAAE,CAAC,KAAKE,EAAE,MAAMO,EAAE,IAAIR,EAAE,IAAIE,EAAE,IAAI,KAAK,GAAG,KAAK,IAAI,EAAE,IAAI,KAAK,IAAI,KAAK,YAAY,OAAO,IAAUC,GAAE,EAAEL,GAAI,IAAI,GAAG,IAAI,CAAC,EAAE,OAAaK,GAAN,MAAeG,GAAE,OAAR,MAAeA,GAAE,MAAMP,CAAC,EAAEA,CAAC,CAAC,SAASgB,IAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC,SAASS,GAAEvB,EAAE,CAAC,OAAOA,EAAE,QAAQ,CAAC,SAASkB,GAAElB,EAAEK,EAAE,CAAC,KAAK,MAAML,EAAE,KAAK,QAAQK,CAAC,CAAC,SAASgB,GAAErB,EAAEK,EAAE,CAAC,GAASA,GAAN,KAAQ,OAAOL,EAAE,GAAGqB,GAAErB,EAAE,GAAGA,EAAE,IAAI,CAAC,EAAE,KAAK,QAAQ,EAAEK,EAAEL,EAAE,IAAI,OAAOK,IAAI,IAAU,EAAEL,EAAE,IAAIK,CAAC,IAAhB,MAA0B,EAAE,KAAR,KAAY,OAAO,EAAE,IAAI,OAAkB,OAAOL,EAAE,MAArB,WAA0BqB,GAAErB,CAAC,EAAE,IAAI,CAAC,SAASmB,GAAEnB,EAAE,CAAC,IAAIK,EAAE,EAAE,IAAUL,EAAEA,EAAE,KAAX,MAAsBA,EAAE,KAAR,KAAY,CAAC,IAAIA,EAAE,IAAIA,EAAE,IAAI,KAAK,KAAKK,EAAE,EAAEA,EAAEL,EAAE,IAAI,OAAOK,IAAI,IAAU,EAAEL,EAAE,IAAIK,CAAC,IAAhB,MAA0B,EAAE,KAAR,KAAY,CAACL,EAAE,IAAIA,EAAE,IAAI,KAAK,EAAE,IAAI,KAAK,CAAC,OAAOmB,GAAEnB,CAAC,CAAC,CAAC,CAAC,SAASkC,GAAElC,EAAE,EAAE,CAACA,EAAE,MAAMA,EAAE,IAAI,KAAKD,GAAE,KAAKC,CAAC,GAAG,CAAC+C,GAAE,OAAO9C,KAAII,GAAE,sBAAsBJ,GAAEI,GAAE,oBAAoBH,IAAG6C,EAAC,CAAC,CAAC,SAASA,IAAG,CAAC,QAAQ/C,EAAEH,EAAEU,EAAEN,EAAEC,EAAEW,EAAEP,EAAEH,EAAE,EAAEJ,GAAE,QAAQA,GAAE,OAAOI,GAAGJ,GAAE,KAAKD,EAAC,EAAEE,EAAED,GAAE,MAAO,EAACI,EAAEJ,GAAE,OAAOC,EAAE,MAAMO,EAAE,OAAOL,GAAGD,GAAGJ,EAAEG,GAAG,KAAK,IAAIa,EAAE,CAAE,EAACP,EAAE,GAAGT,EAAE,OAAOU,EAAEkB,GAAE,GAAGxB,CAAC,GAAG,IAAIA,EAAE,IAAI,EAAEI,GAAE,OAAOA,GAAE,MAAME,CAAC,EAAEuB,GAAEjC,EAAE,IAAIU,EAAEN,EAAEJ,EAAE,IAAIA,EAAE,IAAI,aAAa,GAAGI,EAAE,IAAI,CAACC,CAAC,EAAE,KAAKW,EAAQX,GAAEmB,GAAEpB,CAAC,EAAI,CAAC,EAAE,GAAGA,EAAE,KAAKK,CAAC,EAAEC,EAAE,IAAIN,EAAE,IAAIM,EAAE,GAAG,IAAIA,EAAE,GAAG,EAAEA,EAAEiC,GAAE3B,EAAEN,EAAED,CAAC,EAAEC,EAAE,KAAKL,GAAGiB,GAAEZ,CAAC,IAAIwC,GAAE,IAAI,CAAC,CAAC,SAASnB,GAAE5B,EAAEK,EAAE,EAAEE,EAAER,EAAE,EAAEG,EAAEJ,EAAEe,EAAE,EAAEV,EAAE,CAAC,IAAIC,EAAEI,EAAEO,EAAEN,EAAEgB,EAAEf,EAAEyB,EAAE5B,GAAGA,EAAE,KAAKS,GAAEL,EAAEN,EAAE,OAAO,IAAIQ,EAAEoB,GAAE,EAAE5B,EAAE8B,EAAEtB,EAAEF,CAAC,EAAEP,EAAE,EAAEA,EAAEO,EAAEP,KAAWW,EAAE,EAAE,IAAIX,CAAC,IAAhB,OAAqBI,EAAOO,EAAE,MAAP,GAAWH,GAAEuB,EAAEpB,EAAE,GAAG,GAAGH,GAAEG,EAAE,IAAIX,EAAEM,EAAEoB,GAAE9B,EAAEe,EAAEP,EAAET,EAAE,EAAEG,EAAEJ,EAAEe,EAAE,EAAEV,CAAC,EAAEM,EAAEM,EAAE,IAAIA,EAAE,KAAKP,EAAE,KAAKO,EAAE,MAAMP,EAAE,KAAKyC,GAAEzC,EAAE,IAAI,KAAKO,CAAC,EAAEZ,EAAE,KAAKY,EAAE,IAAIA,EAAE,KAAKN,EAAEM,CAAC,GAASU,GAAN,MAAehB,GAAN,OAAUgB,EAAEhB,GAAG,EAAEM,EAAE,KAAKP,EAAE,MAAMO,EAAE,IAAIF,EAAEI,GAAEF,EAAEF,EAAEb,CAAC,EAAc,OAAOe,EAAE,MAArB,YAAoCL,IAAT,OAAWG,EAAEH,EAAED,IAAII,EAAEJ,EAAE,aAAaM,EAAE,KAAK,IAAI,OAAO,EAAE,IAAIU,EAAEZ,CAAC,CAAC,SAASoB,GAAEjC,EAAEK,EAAE,EAAEE,EAAER,EAAE,CAAC,IAAI,EAAEG,EAAEJ,EAAEe,EAAE,EAAEV,EAAE,EAAE,OAAOC,EAAED,EAAEK,EAAE,EAAE,IAAIR,EAAE,IAAI,IAAI,MAAMD,CAAC,EAAE,EAAE,EAAE,EAAEA,EAAE,KAAWG,EAAEG,EAAE,CAAC,IAAZ,MAA2B,OAAOH,GAAlB,WAAiC,OAAOA,GAAnB,YAAsBW,EAAE,EAAEL,GAAGN,EAAEF,EAAE,IAAI,CAAC,EAAY,OAAOE,GAAjB,UAA8B,OAAOA,GAAjB,UAA8B,OAAOA,GAAjB,UAAoBA,EAAE,aAAa,OAAOS,GAAE,KAAKT,EAAE,KAAK,KAAK,IAAI,EAAEO,GAAEP,CAAC,EAAES,GAAEY,GAAE,CAAC,SAASrB,CAAC,EAAE,KAAK,KAAK,IAAI,EAAWA,EAAE,cAAX,QAAwBA,EAAE,IAAI,EAAES,GAAET,EAAE,KAAKA,EAAE,MAAMA,EAAE,IAAIA,EAAE,IAAIA,EAAE,IAAI,KAAKA,EAAE,GAAG,EAAEA,GAAG,GAAGF,EAAEE,EAAE,IAAIF,EAAE,IAAI,EAAEF,EAAE,MAAW,EAAEI,EAAE,IAAIwB,GAAExB,EAAE,EAAEW,EAAET,CAAC,KAAvB,KAA4BA,KAAKN,EAAE,EAAE,CAAC,KAAKA,EAAE,KAAK,IAAUA,GAAN,MAAgBA,EAAE,MAAT,MAAkB,GAAJ,KAAQC,EAAEI,EAAEK,IAAIT,EAAEI,GAAGK,KAAiB,OAAON,EAAE,MAArB,aAA4BA,EAAE,KAAK,IAAI,GAAGW,IAAI,GAAGA,EAAE,EAAEL,IAAI,GAAGK,EAAE,EAAEL,KAAK,EAAEK,EAAEL,IAAIA,IAAIN,EAAE,KAAK,KAAKF,EAAE,IAAI,CAAC,EAAE,KAAK,GAAGI,EAAE,IAAI,EAAE,EAAE,EAAED,EAAE,KAAWL,EAAE,EAAE,CAAC,IAAZ,OAAoB,EAAEA,EAAE,MAAR,IAAeA,EAAE,KAAKS,IAAIA,EAAEc,GAAEvB,CAAC,GAAGkC,GAAElC,EAAEA,CAAC,GAAG,OAAOS,CAAC,CAAC,SAASU,GAAEjB,EAAEK,EAAE,EAAE,CAAC,IAAIE,EAAER,EAAE,GAAe,OAAOC,EAAE,MAArB,WAA0B,CAAC,IAAIO,EAAEP,EAAE,IAAID,EAAE,EAAEQ,GAAGR,EAAEQ,EAAE,OAAOR,IAAIQ,EAAER,CAAC,IAAIQ,EAAER,CAAC,EAAE,GAAGC,EAAEK,EAAEY,GAAEV,EAAER,CAAC,EAAEM,EAAE,CAAC,GAAG,OAAOA,CAAC,CAACL,EAAE,KAAKK,IAAIA,GAAGL,EAAE,MAAM,CAAC,EAAE,SAASK,CAAC,IAAIA,EAAEgB,GAAErB,CAAC,GAAG,EAAE,aAAaA,EAAE,IAAIK,GAAG,IAAI,EAAEA,EAAEL,EAAE,KAAK,GAAGK,EAAEA,GAAGA,EAAE,kBAAwBA,GAAN,MAAYA,EAAE,UAAL,GAAe,OAAOA,CAAC,CAAC,SAASqC,GAAE1C,EAAEK,EAAE,CAAC,OAAOA,EAAEA,GAAG,CAAE,EAAOL,GAAN,MAAoB,OAAOA,GAAlB,YAAsBS,GAAET,CAAC,EAAEA,EAAE,KAAK,SAASA,EAAE,CAAC0C,GAAE1C,EAAEK,CAAC,CAAC,CAAC,EAAEA,EAAE,KAAKL,CAAC,GAAGK,CAAC,CAAC,SAASqB,GAAE1B,EAAEK,EAAE,EAAEE,EAAE,CAAC,IAAIR,EAAE,EAAEG,EAAEF,EAAE,IAAIF,EAAEE,EAAE,KAAKa,EAAER,EAAE,CAAC,EAAE,GAAUQ,IAAP,MAAgBb,EAAE,KAAR,MAAaa,GAAGX,GAAGW,EAAE,KAAKf,IAAIe,EAAE,OAAU,EAAEA,EAAE,MAAR,EAAa,OAAO,EAAE,GAAGN,GAASM,GAAN,OAAa,EAAEA,EAAE,MAAR,EAAa,EAAE,GAAG,IAAId,EAAE,EAAE,EAAE,EAAE,EAAE,EAAEA,GAAG,GAAG,EAAEM,EAAE,QAAQ,CAAC,GAAGN,GAAG,EAAE,CAAC,IAAIc,EAAER,EAAEN,CAAC,KAAQ,EAAEc,EAAE,MAAR,GAAcX,GAAGW,EAAE,KAAKf,IAAIe,EAAE,KAAK,OAAOd,EAAEA,GAAG,CAAC,GAAG,EAAEM,EAAE,OAAO,CAAC,IAAIQ,EAAER,EAAE,CAAC,KAAQ,EAAEQ,EAAE,MAAR,GAAcX,GAAGW,EAAE,KAAKf,IAAIe,EAAE,KAAK,OAAO,EAAE,GAAG,CAAC,CAAC,MAAQ,EAAA,CAAC,SAASW,GAAExB,EAAEK,EAAE,EAAE,CAAMA,EAAE,CAAC,GAAR,IAAUL,EAAE,YAAYK,EAAQ,GAAE,EAAI,EAAEL,EAAEK,CAAC,EAAQ,GAAN,KAAQ,GAAa,OAAO,GAAjB,UAAoBU,GAAE,KAAKV,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,SAAS+B,GAAEpC,EAAEK,EAAE,EAAEE,EAAER,EAAE,CAAC,IAAI,EAAEC,EAAE,GAAYK,GAAT,QAAW,GAAa,OAAO,GAAjB,SAAmBL,EAAE,MAAM,QAAQ,MAAM,CAAC,GAAa,OAAOO,GAAjB,WAAqBP,EAAE,MAAM,QAAQO,EAAE,IAAIA,EAAE,IAAIF,KAAKE,EAAE,GAAGF,KAAK,GAAGmB,GAAExB,EAAE,MAAMK,EAAE,EAAE,EAAE,GAAG,EAAE,IAAIA,KAAK,EAAEE,GAAG,EAAEF,CAAC,IAAIE,EAAEF,CAAC,GAAGmB,GAAExB,EAAE,MAAMK,EAAE,EAAEA,CAAC,CAAC,CAAC,SAAcA,EAAE,CAAC,GAAR,KAAgBA,EAAE,CAAC,GAAR,IAAU,EAAEA,IAAIA,EAAEA,EAAE,QAAQQ,GAAE,IAAI,GAAGR,EAAEA,EAAE,gBAAgBL,GAAiBK,GAAd,cAA8BA,GAAb,YAAeA,EAAE,YAAW,EAAG,MAAM,CAAC,EAAEA,EAAE,MAAM,CAAC,EAAEL,EAAE,IAAIA,EAAE,EAAE,IAAIA,EAAE,EAAEK,EAAE,CAAC,EAAE,EAAE,EAAEE,EAAE,EAAE,EAAEA,EAAE,GAAG,EAAE,EAAED,GAAEN,EAAE,iBAAiBK,EAAE,EAAED,GAAED,GAAE,CAAC,GAAGH,EAAE,oBAAoBK,EAAE,EAAED,GAAED,GAAE,CAAC,MAAM,CAAC,GAAiCJ,GAA9B,6BAAgCM,EAAEA,EAAE,QAAQ,cAAc,GAAG,EAAE,QAAQ,SAAS,GAAG,UAAmBA,GAAT,SAAsBA,GAAV,UAAqBA,GAAR,QAAmBA,GAAR,QAAmBA,GAAR,QAAuBA,GAAZ,YAA2BA,GAAZ,YAA0BA,GAAX,WAAyBA,GAAX,WAAsBA,GAAR,QAAsBA,GAAX,WAAcA,KAAKL,EAAE,GAAG,CAACA,EAAEK,CAAC,EAAQ,GAAE,GAAK,MAAML,CAAC,MAAS,CAAA,CAAc,OAAO,GAAnB,aAA6B,GAAN,MAAc,IAAL,IAAaK,EAAE,CAAC,GAAR,IAAUL,EAAE,gBAAgBK,CAAC,EAAEL,EAAE,aAAaK,EAAaA,GAAX,WAAiB,GAAH,EAAK,GAAG,CAAC,EAAE,CAAC,CAAC,SAAS0B,GAAE/B,EAAE,CAAC,OAAO,SAASH,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,IAAIU,EAAE,KAAK,EAAEV,EAAE,KAAKG,CAAC,EAAE,GAASH,EAAE,GAAR,KAAUA,EAAE,EAAES,aAAYT,EAAE,EAAEU,EAAE,EAAE,OAAO,OAAOA,EAAEF,GAAE,MAAMA,GAAE,MAAMR,CAAC,EAAEA,CAAC,CAAC,CAAC,CAAC,CAAC,SAASiC,GAAE9B,EAAEH,EAAEU,EAAER,EAAEE,EAAEC,EAAEJ,EAAEe,EAAEP,EAAEH,EAAE,CAAC,IAAIC,EAAEI,EAAEI,EAAEI,EAAED,EAAEoB,EAAExB,EAAEG,EAAEO,EAAEF,EAAEe,EAAEa,EAAEd,EAAEhB,EAAEyB,EAAEhB,EAAEF,EAAEY,EAAEvC,EAAE,KAAK,GAAYA,EAAE,cAAX,OAAuB,OAAO,KAAK,IAAIU,EAAE,MAAMD,EAAE,CAAC,EAAE,GAAGC,EAAE,KAAKL,EAAE,CAACW,EAAEhB,EAAE,IAAIU,EAAE,GAAG,IAAIH,EAAEC,GAAE,MAAMD,EAAEP,CAAC,EAAEG,EAAE,GAAe,OAAOoC,GAAnB,WAAqB,GAAG,CAAC,GAAGtB,EAAEjB,EAAE,MAAMwB,EAAE,cAAce,GAAGA,EAAE,UAAU,OAAOjB,GAAGf,EAAEgC,EAAE,cAAcrC,EAAEK,EAAE,GAAG,EAAE8B,EAAE9B,EAAEe,EAAEA,EAAE,MAAM,MAAMf,EAAE,GAAGL,EAAEQ,EAAE,IAAII,GAAGH,EAAEX,EAAE,IAAIU,EAAE,KAAK,GAAGC,EAAE,KAAKa,EAAExB,EAAE,IAAIW,EAAE,IAAI4B,EAAEtB,EAAEoB,CAAC,GAAGrC,EAAE,IAAIW,EAAE,IAAIU,GAAEJ,EAAEoB,CAAC,EAAE1B,EAAE,YAAY4B,EAAE5B,EAAE,OAAOmB,IAAGR,GAAGA,EAAE,IAAIX,CAAC,EAAEA,EAAE,MAAMM,EAAEN,EAAE,QAAQA,EAAE,MAAM,IAAIA,EAAE,QAAQ0B,EAAE1B,EAAE,IAAIT,EAAEa,EAAEJ,EAAE,IAAI,GAAGA,EAAE,IAAI,CAAA,EAAGA,EAAE,IAAI,IAAIa,GAASb,EAAE,KAAR,OAAcA,EAAE,IAAIA,EAAE,OAAOa,GAASe,EAAE,0BAAR,OAAmC5B,EAAE,KAAKA,EAAE,QAAQA,EAAE,IAAIiB,GAAE,GAAGjB,EAAE,GAAG,GAAGiB,GAAEjB,EAAE,IAAI4B,EAAE,yBAAyBtB,EAAEN,EAAE,GAAG,CAAC,GAAGQ,EAAER,EAAE,MAAMO,EAAEP,EAAE,MAAMA,EAAE,IAAIX,EAAEe,EAAES,GAASe,EAAE,0BAAR,MAAwC5B,EAAE,oBAAR,MAA4BA,EAAE,mBAAoB,EAACa,GAASb,EAAE,mBAAR,MAA2BA,EAAE,IAAI,KAAKA,EAAE,iBAAiB,MAAM,CAAC,GAAGa,GAASe,EAAE,0BAAR,MAAkCtB,IAAIE,GAASR,EAAE,2BAAR,MAAmCA,EAAE,0BAA0BM,EAAEoB,CAAC,EAAE,CAAC1B,EAAE,MAAYA,EAAE,uBAAR,MAAoCA,EAAE,sBAAsBM,EAAEN,EAAE,IAAI0B,CAAC,IAAtC,IAAyCrC,EAAE,KAAKU,EAAE,KAAK,CAAC,IAAIV,EAAE,KAAKU,EAAE,MAAMC,EAAE,MAAMM,EAAEN,EAAE,MAAMA,EAAE,IAAIA,EAAE,IAAI,IAAIX,EAAE,IAAIU,EAAE,IAAIV,EAAE,IAAIU,EAAE,IAAIV,EAAE,IAAI,KAAK,SAASG,EAAE,CAACA,IAAIA,EAAE,GAAGH,EAAE,CAAC,EAAEkD,EAAE,EAAEA,EAAEvC,EAAE,IAAI,OAAOuC,IAAIvC,EAAE,IAAI,KAAKA,EAAE,IAAIuC,CAAC,CAAC,EAAEvC,EAAE,IAAI,GAAGA,EAAE,IAAI,QAAQV,EAAE,KAAKU,CAAC,EAAE,MAAMR,CAAC,CAAOQ,EAAE,qBAAR,MAA6BA,EAAE,oBAAoBM,EAAEN,EAAE,IAAI0B,CAAC,EAAEb,GAASb,EAAE,oBAAR,MAA4BA,EAAE,IAAI,KAAK,UAAU,CAACA,EAAE,mBAAmBQ,EAAED,EAAEoB,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG3B,EAAE,QAAQ0B,EAAE1B,EAAE,MAAMM,EAAEN,EAAE,IAAIR,EAAEQ,EAAE,IAAI,GAAGyB,EAAE5B,GAAE,IAAIY,EAAE,EAAEI,EAAE,CAAC,IAAIb,EAAE,MAAMA,EAAE,IAAIA,EAAE,IAAI,GAAGyB,GAAGA,EAAEpC,CAAC,EAAEO,EAAEI,EAAE,OAAOA,EAAE,MAAMA,EAAE,MAAMA,EAAE,OAAO,EAAEkC,EAAE,EAAEA,EAAElC,EAAE,IAAI,OAAOkC,IAAIlC,EAAE,IAAI,KAAKA,EAAE,IAAIkC,CAAC,CAAC,EAAElC,EAAE,IAAI,CAAE,CAAA,KAAM,IAAGA,EAAE,IAAI,GAAGyB,GAAGA,EAAEpC,CAAC,EAAEO,EAAEI,EAAE,OAAOA,EAAE,MAAMA,EAAE,MAAMA,EAAE,OAAO,EAAEA,EAAE,MAAMA,EAAE,UAAUA,EAAE,KAAK,EAAES,EAAE,IAAIT,EAAE,MAAMA,EAAE,IAAUA,EAAE,iBAAR,OAA0BT,EAAE0B,GAAEA,GAAE,GAAG1B,CAAC,EAAES,EAAE,gBAAiB,CAAA,GAAGa,GAAG,CAACT,GAASJ,EAAE,yBAAR,OAAkC2B,EAAE3B,EAAE,wBAAwBQ,EAAED,CAAC,GAAGW,EAAEtB,EAAQA,GAAN,MAASA,EAAE,OAAOmB,IAASnB,EAAE,KAAR,OAAcsB,EAAEG,GAAEzB,EAAE,MAAM,QAAQ,GAAGS,EAAEe,GAAE5B,EAAES,GAAEiB,CAAC,EAAEA,EAAE,CAACA,CAAC,EAAE7B,EAAEU,EAAER,EAAEE,EAAEC,EAAEJ,EAAEe,EAAEP,EAAEH,CAAC,EAAEK,EAAE,KAAKX,EAAE,IAAIA,EAAE,KAAK,KAAKW,EAAE,IAAI,QAAQV,EAAE,KAAKU,CAAC,EAAEG,IAAIH,EAAE,IAAIA,EAAE,GAAG,KAAK,OAAOR,EAAE,CAAC,GAAGH,EAAE,IAAI,KAAKS,GAASJ,GAAN,KAAQ,GAAGF,EAAE,KAAK,CAAC,IAAIH,EAAE,KAAKS,EAAE,IAAI,IAAIO,GAAMA,EAAE,UAAL,GAAeA,EAAE,aAAaA,EAAEA,EAAE,YAAYX,EAAEA,EAAE,QAAQW,CAAC,CAAC,EAAE,KAAKhB,EAAE,IAAIgB,CAAC,KAAM,KAAIW,EAAEtB,EAAE,OAAOsB,KAAKd,GAAER,EAAEsB,CAAC,CAAC,OAAO3B,EAAE,IAAIU,EAAE,IAAIV,EAAE,IAAIU,EAAE,IAAIF,GAAE,IAAIL,EAAEH,EAAEU,CAAC,CAAC,MAAYL,GAAN,MAASL,EAAE,KAAKU,EAAE,KAAKV,EAAE,IAAIU,EAAE,IAAIV,EAAE,IAAIU,EAAE,KAAKM,EAAEhB,EAAE,IAAI0C,GAAEhC,EAAE,IAAIV,EAAEU,EAAER,EAAEE,EAAEC,EAAEJ,EAAEQ,EAAEH,CAAC,EAAE,OAAOC,EAAEC,GAAE,SAASD,EAAEP,CAAC,EAAE,IAAIA,EAAE,IAAI,OAAOgB,CAAC,CAAC,SAAS2B,GAAExC,EAAEH,EAAEU,EAAE,CAAC,QAAQR,EAAE,EAAEA,EAAEQ,EAAE,OAAOR,IAAIkD,GAAE1C,EAAER,CAAC,EAAEQ,EAAE,EAAER,CAAC,EAAEQ,EAAE,EAAER,CAAC,CAAC,EAAEM,GAAE,KAAKA,GAAE,IAAIR,EAAEG,CAAC,EAAEA,EAAE,KAAK,SAASH,EAAE,CAAC,GAAG,CAACG,EAAEH,EAAE,IAAIA,EAAE,IAAI,CAAE,EAACG,EAAE,KAAK,SAASA,EAAE,CAACA,EAAE,KAAKH,CAAC,CAAC,CAAC,CAAC,OAAOG,EAAE,CAACK,GAAE,IAAIL,EAAEH,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAASgC,GAAE7B,EAAE,CAAC,OAAgB,OAAOA,GAAjB,UAA0BA,GAAN,KAAQA,EAAES,GAAET,CAAC,EAAEA,EAAE,IAAI6B,EAAC,EAAEJ,GAAE,CAAA,EAAGzB,CAAC,CAAC,CAAC,SAASuC,GAAE1C,EAAEU,EAAER,EAAEE,EAAEC,EAAEJ,EAAEe,EAAEP,EAAEH,EAAE,CAAC,IAAIC,EAAEI,EAAEQ,EAAED,EAAEU,EAAEU,EAAExB,EAAEG,EAAEf,EAAE,MAAMwB,EAAEhB,EAAE,MAAMW,EAAEX,EAAE,KAAK,GAAUW,GAAP,MAAShB,EAAE,6BAAqCgB,GAAR,OAAUhB,EAAE,qCAAqCA,IAAIA,EAAE,gCAAsCJ,GAAN,MAAQ,IAAIM,EAAE,EAAEA,EAAEN,EAAE,OAAOM,IAAI,IAAIqB,EAAE3B,EAAEM,CAAC,IAAI,iBAAiBqB,GAAG,CAAC,CAACP,IAAIA,EAAEO,EAAE,WAAWP,EAAKO,EAAE,UAAL,GAAe,CAAC5B,EAAE4B,EAAE3B,EAAEM,CAAC,EAAE,KAAK,KAAK,EAAC,GAASP,GAAN,KAAQ,CAAC,GAASqB,GAAN,KAAQ,OAAO,SAAS,eAAeK,CAAC,EAAE1B,EAAE,SAAS,gBAAgBK,EAAEgB,EAAEK,EAAE,IAAIA,CAAC,EAAEjB,IAAID,GAAE,KAAKA,GAAE,IAAIE,EAAET,CAAC,EAAEQ,EAAE,IAAIR,EAAE,IAAI,CAAC,GAAUoB,IAAP,KAASJ,IAAIS,GAAGjB,GAAGT,EAAE,OAAO0B,IAAI1B,EAAE,KAAK0B,OAAO,CAAC,GAAGzB,EAAEA,GAAGE,GAAE,KAAKH,EAAE,UAAU,EAAEiB,EAAEf,EAAE,OAAOa,GAAE,CAACN,GAASR,GAAN,KAAQ,IAAIgB,EAAE,CAAE,EAACV,EAAE,EAAEA,EAAEP,EAAE,WAAW,OAAOO,IAAIU,GAAGW,EAAE5B,EAAE,WAAWO,CAAC,GAAG,IAAI,EAAEqB,EAAE,MAAM,IAAIrB,KAAKU,EAAE,GAAGW,EAAEX,EAAEV,CAAC,EAAcA,GAAZ,YAAoB,GAA8BA,GAA3B,0BAA6BY,EAAES,UAAU,EAAErB,KAAKmB,GAAG,CAAC,GAAYnB,GAAT,SAAY,iBAAiBmB,GAAcnB,GAAX,WAAc,mBAAmBmB,EAAE,SAASa,GAAEvC,EAAEO,EAAE,KAAKqB,EAAEvB,CAAC,CAAC,EAAC,IAAIE,KAAKmB,EAAEE,EAAEF,EAAEnB,CAAC,EAAcA,GAAZ,WAAcW,EAAEU,EAA6BrB,GAA3B,0BAA6BI,EAAEiB,EAAWrB,GAAT,QAAW+B,EAAEV,EAAarB,GAAX,UAAaO,EAAEc,EAAEnB,GAAe,OAAOmB,GAAnB,YAAsBX,EAAEV,CAAC,IAAIqB,GAAGW,GAAEvC,EAAEO,EAAEqB,EAAEX,EAAEV,CAAC,EAAEF,CAAC,EAAE,GAAGM,EAAEF,GAAGU,IAAIR,EAAE,SAASQ,EAAE,QAAQR,EAAE,SAASX,EAAE,aAAaA,EAAE,UAAUW,EAAE,QAAQD,EAAE,IAAI,WAAWS,IAAInB,EAAE,UAAU,IAAI+B,GAAerB,EAAE,OAAf,WAAoBV,EAAE,QAAQA,EAAEY,GAAEM,CAAC,EAAEA,EAAE,CAACA,CAAC,EAAER,EAAER,EAAEE,EAAmBiB,GAAjB,gBAAmB,+BAA+BhB,EAAEJ,EAAEe,EAAEf,EAAEA,EAAE,CAAC,EAAEC,EAAE,KAAKsB,GAAEtB,EAAE,CAAC,EAAEO,EAAEH,CAAC,EAAQL,GAAN,KAAQ,IAAIM,EAAEN,EAAE,OAAOM,KAAKM,GAAEZ,EAAEM,CAAC,CAAC,EAAEE,IAAIF,EAAE,QAAoBc,GAAZ,YAAqBiB,GAAN,KAAQtC,EAAE,gBAAgB,OAAO,EAAWsC,IAAT,SAAaA,IAAItC,EAAEO,CAAC,GAAec,GAAZ,YAAe,CAACiB,GAAajB,GAAV,UAAaiB,IAAIrB,EAAEV,CAAC,IAAIgC,GAAEvC,EAAEO,EAAE+B,EAAErB,EAAEV,CAAC,EAAEF,CAAC,EAAEE,EAAE,UAAmBO,IAAT,QAAYA,IAAId,EAAEO,CAAC,GAAGgC,GAAEvC,EAAEO,EAAEO,EAAEG,EAAEV,CAAC,EAAEF,CAAC,EAAE,CAAC,OAAOL,CAAC,CAAC,SAASoD,GAAEjD,EAAEH,EAAEU,EAAE,CAAC,GAAG,CAAC,GAAe,OAAOP,GAAnB,WAAqB,CAAC,IAAID,EAAc,OAAOC,EAAE,KAArB,WAAyBD,GAAGC,EAAE,MAAMD,GAASF,GAAN,OAAUG,EAAE,IAAIA,EAAEH,CAAC,EAAE,MAAMG,EAAE,QAAQH,CAAC,OAAO,EAAE,CAACQ,GAAE,IAAI,EAAEE,CAAC,CAAC,CAAC,CAAC,SAASyB,GAAEhC,EAAEH,EAAEU,EAAE,CAAC,IAAIR,EAAEE,EAAE,GAAGI,GAAE,SAASA,GAAE,QAAQL,CAAC,GAAGD,EAAEC,EAAE,OAAOD,EAAE,SAASA,EAAE,UAAUC,EAAE,KAAKiD,GAAElD,EAAE,KAAKF,CAAC,IAAUE,EAAEC,EAAE,MAAX,KAAgB,CAAC,GAAGD,EAAE,qBAAqB,GAAG,CAACA,EAAE,qBAAoB,CAAE,OAAOC,EAAE,CAACK,GAAE,IAAIL,EAAEH,CAAC,CAAC,CAACE,EAAE,KAAKA,EAAE,IAAI,IAAI,CAAC,GAAGA,EAAEC,EAAE,IAAI,IAAIC,EAAE,EAAEA,EAAEF,EAAE,OAAOE,IAAIF,EAAEE,CAAC,GAAG+B,GAAEjC,EAAEE,CAAC,EAAEJ,EAAEU,GAAe,OAAOP,EAAE,MAArB,UAAyB,EAAEO,GAAGG,GAAEV,EAAE,GAAG,EAAEA,EAAE,IAAIA,EAAE,GAAGA,EAAE,IAAI,MAAM,CAAC,SAAS2B,GAAE3B,EAAEK,EAAE,EAAE,CAAC,OAAO,KAAK,YAAYL,EAAE,CAAC,CAAC,CAAC,SAASoB,GAAEvB,EAAEU,EAAER,EAAE,CAAC,IAAIE,EAAEC,EAAEJ,EAAEe,EAAEN,GAAG,WAAWA,EAAE,SAAS,iBAAiBF,GAAE,IAAIA,GAAE,GAAGR,EAAEU,CAAC,EAAEL,GAAGD,EAAE,IAAsB,KAAeM,EAAE,IAAIT,EAAE,GAAGe,EAAE,CAAE,EAACiB,GAAEvB,EAAEV,EAAUU,EAAG,IAAI4B,EAAEZ,GAAE,KAAK,CAAC1B,CAAC,CAAC,EAAEK,GAAGU,GAAEA,GAAEL,EAAE,aAAuBL,EAAE,KAAKK,EAAE,WAAWP,GAAE,KAAKO,EAAE,UAAU,EAAE,KAAKT,EAAUI,EAAEA,EAAE,IAAIK,EAAE,WAAWN,EAAEY,CAAC,EAAE2B,GAAE1C,EAAED,EAAEgB,CAAC,CAAC,CAA0B,SAAS8B,GAAEtC,EAAER,EAAEU,EAAE,CAAC,IAAIR,EAAEE,EAAEC,EAAEJ,EAAEe,EAAEY,GAAE,GAAGpB,EAAE,KAAK,EAAE,IAAIH,KAAKG,EAAE,MAAMA,EAAE,KAAK,eAAeP,EAAEO,EAAE,KAAK,cAAcR,EAASK,GAAP,MAASH,EAAEF,EAAEK,CAAC,EAASA,GAAP,MAASD,EAAEJ,EAAEK,CAAC,EAAEW,EAAEX,CAAC,EAAWL,EAAEK,CAAC,IAAZ,QAAwBJ,IAAT,OAAWA,EAAEI,CAAC,EAAEL,EAAEK,CAAC,EAAE,OAAO,UAAU,OAAO,IAAIW,EAAE,SAAS,UAAU,OAAO,EAAEb,GAAE,KAAK,UAAU,CAAC,EAAEO,GAAGI,GAAEN,EAAE,KAAKQ,EAAEd,GAAGM,EAAE,IAAIJ,GAAGI,EAAE,IAAI,IAAI,CAAC,CAAyhBL,GAAEgB,GAAE,MAAMX,GAAE,CAAC,IAAI,SAASL,EAAEK,EAAE,EAAEE,EAAE,CAAC,QAAQR,EAAE,EAAEG,EAAEG,EAAEA,EAAE,IAAI,IAAIN,EAAEM,EAAE,MAAM,CAACN,EAAE,GAAG,GAAG,CAAC,IAAI,EAAEA,EAAE,cAAoB,EAAE,0BAAR,OAAmCA,EAAE,SAAS,EAAE,yBAAyBC,CAAC,CAAC,EAAEE,EAAEH,EAAE,KAAWA,EAAE,mBAAR,OAA4BA,EAAE,kBAAkBC,EAAEO,GAAG,CAAA,CAAE,EAAEL,EAAEH,EAAE,KAAKG,EAAE,OAAOH,EAAE,IAAIA,CAAC,OAAOM,EAAE,CAACL,EAAEK,CAAC,CAAC,MAAML,CAAC,CAAC,EAAEH,GAAE,EAAqDqB,GAAE,UAAU,SAAS,SAASlB,EAAEK,EAAE,CAAC,IAAI,EAAE,EAAQ,KAAK,KAAX,MAAgB,KAAK,MAAM,KAAK,MAAM,KAAK,IAAI,KAAK,IAAIoB,GAAE,CAAA,EAAG,KAAK,KAAK,EAAc,OAAOzB,GAAnB,aAAuBA,EAAEA,EAAEyB,GAAE,CAAE,EAAC,CAAC,EAAE,KAAK,KAAK,GAAGzB,GAAGyB,GAAE,EAAEzB,CAAC,EAAQA,GAAN,MAAS,KAAK,MAAMK,GAAG,KAAK,IAAI,KAAKA,CAAC,EAAE6B,GAAE,IAAI,EAAE,EAAEhB,GAAE,UAAU,YAAY,SAASlB,EAAE,CAAC,KAAK,MAAM,KAAK,IAAI,GAAGA,GAAG,KAAK,IAAI,KAAKA,CAAC,EAAEkC,GAAE,IAAI,EAAE,EAAEhB,GAAE,UAAU,OAAOK,GAAExB,GAAE,CAAE,EAACG,GAAc,OAAO,SAAnB,WAA2B,QAAQ,UAAU,KAAK,KAAK,QAAQ,QAAO,CAAE,EAAE,WAAWJ,GAAE,SAASE,EAAEK,EAAE,CAAC,OAAOL,EAAE,IAAI,IAAIK,EAAE,IAAI,GAAG,EAAE0C,GAAE,IAAI,EAAElC,GAAE,8BAA8BP,GAAE,EAAEH,GAAE4B,GAAE,EAAE,EAAE3B,GAAE2B,GAAE,EAAE,ECGtiW,SAASksB,GAAaC,EAAK,CAExC,OADI,OAAOA,GAAQ,UAAYA,IAAQ,MACnC,EAAE,aAAcA,GAAa,GAC1BA,EAAI,WAAa,KAAK,YAC/B,CCNA,SAASC,GAAeC,EAASC,EAAS,CAIxC,OAHIA,IAAY,SACdA,EAAU,UAER,OAAOD,GAAY,SACdC,EAAQ,cAAcD,CAAO,EAElCH,GAAaG,CAAO,EACfA,EAEF,IACT,CCRA,SAASE,GAAiBF,EAAS,CAQjC,QAPIG,EAOGH,GAAW,CAACA,EAAQ,KAEzBA,EAAUA,EAAQ,WAEpB,OAAQG,EAAWH,IAAY,KAAO,OAASG,EAAS,GAC1D,CCAe,MAAMC,EAAW,CAC9B,YAAYC,EAAM3M,EAAM,CACtB,KAAK,KAAO2M,EACZ,KAAK,KAAO3M,GAAsB,CAAE,CACxC,CACE,gBAAiB,CACf,KAAM,CACJ,QAAAoI,CACN,EAAQ,KAAK,KAAK,SAAU,EACxB,OAAQA,GAAW,KAAO,OAASA,EAAQ,KAAK,EAAE,IAAM,CAAE,CAC9D,CACE,eAAewE,EAAQ,CACrB,KAAM,CACJ,QAAAxE,CACN,EAAQ,KAAK,KAAK,SAAU,EACxB,KAAK,KAAK,SAAS,CACjB,QAAS,CACP,GAAGA,EACH,CAAC,KAAK,EAAE,EAAG,CACT,GAAGA,EAAQ,KAAK,EAAE,EAClB,GAAGwE,CACb,CACA,CACA,CAAK,CACL,CACE,WAAWvH,EAAS,CAClB,KAAK,KAAO,CACV,GAAG,KAAK,KACR,GAAGA,CACJ,EACD,KAAK,eAAe,MAAS,EAC7B,KAAK,SAAU,CACnB,CACE,UAAW,CACT,MAAMD,EAAa,IAAItR,GAAW,CAAC,KAAK,cAAe,KAAK,KAAK,OAAQ,KAAK,KAAK,MAAM,CAAC,EAC1F,KAAK,KAAOsR,EAAW,UAAU,KAAKA,CAAU,EAChD,KAAK,UAAYA,EAAW,eAAe,KAAKA,CAAU,EAC1D,KAAK,eAAe,MAAS,CACjC,CAUE,UAAUN,EAAQ,CAChB,MAAM,IAAI,MAAM,2EAA2E,CAC/F,CACE,SAAU,CAAA,CACV,WAAY,CAAA,CAGZ,OAAOD,EAAO,CAAA,CAGd,aAAc,CAAA,CAChB,CC5EA,SAASrS,GAA4BxU,EAAGD,EAAG,CAAE,GAAI,CAAC,CAAA,EAAG,eAAe,KAAKC,EAAGD,CAAC,EAAG,MAAM,IAAI,UAAU,gDAAgD,EAAG,OAAOC,CAAE,CAChK,IAAIyU,GAAK,EACT,SAASC,GAA2B1U,EAAG,CAAE,MAAO,aAAeyU,KAAO,IAAMzU,CAAE,CAS9E,SAASub,GAASnN,EAAI,CACpB,IAAIygB,EAAU,KACVC,EACJ,OAAO,UAAY,CACjB,QAAShR,EAAO,UAAU,OAAQrG,EAAO,IAAI,MAAMqG,CAAI,EAAGC,EAAO,EAAGA,EAAOD,EAAMC,IAC/EtG,EAAKsG,CAAI,EAAI,UAAUA,CAAI,EAE7B,OAAA+Q,EAAarX,EACRoX,IACHA,EAAU,QAAQ,QAAS,EAAC,KAAK,KAC/BA,EAAU,KAKHzgB,EAAG,GAAG0gB,CAAU,EACxB,GAEID,CACR,CACH,CAQA,IAAIE,GAAyBra,GAA2B,UAAU,EAClE,MAAMsa,WAAiBN,EAAW,CAChC,aAAc,CACZ,MAAM,GAAG,SAAS,EAClB,OAAO,eAAe,KAAMK,GAAW,CACrC,SAAU,GACV,MAAO,MACb,CAAK,CACL,CACE,gBAAgBpN,EACd,CACA,IAAIsN,EACJ,GAAI,OAAQtN,GAAU,KAAO,OAASA,EAAO,YAAe,WAE1DsN,EAAetN,EACTsN,aAAwBD,IAE5B,QAAQ,KAAK,IAAI,MAAM,mHAAoH,CACzI,MAAO,CACL,aAAAC,EACA,SAAAD,EACZ,CACA,CAAS,CAAC,UAEK,OAAOrN,GAAW,WAAY,CAEvC,MAAMuN,EAASvN,EAEf,KAAK,KAAK,eAAe7gB,GAAK,CACxBA,aAAaouB,IACfD,EAAenuB,EAEzB,CAAO,CACP,CACI,OAAOmuB,CACX,CAOE,MAAMtN,EAENmF,EAAQ,CACN,MAAMqI,EAAmBrI,EAAO,GAC1BsI,EAAgBf,GAAe1M,CAAM,EAC3C,GAAIyN,EAAe,CACjB,KAAK,cAAgB,GAIrB,MAAMC,EAAkB,SAAS,cAAc,KAAK,EACpD,OAAAA,EAAgB,UAAU,IAAI,WAAW,EAGzC7a,GAA4B,KAAMua,EAAS,EAAEA,EAAS,EAAIxT,GAASsL,GAAS,CAIrE,KAAK,KAAK,UAAU,KAAK,EAAE,IAChCyI,GAAO,KAAK,OAAOzI,EAAOwI,CAAe,EAAGA,CAAe,EAC3D,KAAK,YAAa,EAC1B,CAAO,EACD,KAAK,KAAK,IAAI,cAAcF,CAAgB,sBAAsBxN,CAAM,GAAG,EACvE,KAAK,KAAK,uBAIZyN,EAAc,UAAY,IAE5BE,GAAO,KAAK,OAAO,KAAK,KAAK,SAAU,EAAED,CAAe,EAAGA,CAAe,EAC1E,KAAK,GAAKA,EACVD,EAAc,YAAYC,CAAe,EAGzCA,EAAgB,IAAM,KAAK,KAAK,WAAab,GAAiBa,CAAe,GAAK,MAClF,KAAK,QAAS,EACP,KAAK,EAClB,CACI,MAAMJ,EAAe,KAAK,gBAAgBtN,CAAM,EAChD,GAAIsN,EACF,YAAK,KAAK,IAAI,cAAcE,CAAgB,OAAOF,EAAa,EAAE,EAAE,EACpE,KAAK,OAASA,EACd,KAAK,GAAKA,EAAa,UAAUnI,CAAM,EACvC,KAAK,QAAS,EACP,KAAK,GAEd,KAAK,KAAK,IAAI,kBAAkBqI,CAAgB,EAAE,EAClD,IAAIpN,EAAU,kCAAkCoN,CAAgB,IAChE,MAAI,OAAOxN,GAAW,WACpBI,GAAW,+UAEXA,GAAW,yWAEP,IAAI,MAAMA,CAAO,CAC3B,CAQE,OAEA8E,EAEA0I,EAAW,CACT,MAAM,IAAI,MAAM,8DAA8D,CAClF,CACE,OAAO1I,EAAO,CACZ,GAAI,KAAK,IAAM,KAAM,CACnB,IAAIoE,EAAuBuE,GAC1BvE,GAAyBuE,EAAyBhb,GAA4B,KAAMua,EAAS,GAAGA,EAAS,IAAM,MAAQ9D,EAAsB,KAAKuE,EAAwB3I,CAAK,CACtL,CACA,CACE,SAAU,CACR,GAAI,KAAK,cAAe,CACtB,IAAI4I,GACHA,EAAW,KAAK,KAAO,MAAQA,EAAS,OAAQ,CACvD,CACI,KAAK,UAAW,CACpB,CACE,SAAU,CAAA,CACV,WAAY,CAAA,CACd,CC1Je,SAASC,GAAUC,EAAUC,EAAuBC,EAAU1rB,EAAI,CAC/E,OAAsBwrB,IAAaC,EAA8BD,EAC7DxrB,IAAO,EAAUyrB,EACdD,GAAYC,EAAwBD,GAAY,IAAM,CAACxrB,EAAK0rB,EACrE,CCfA,MAAeC,GAAA,CACb,YAAa,QACb,cAAe,UACf,oBAAqB,gBACrB,gBAAiB,YACjB,qBAAsB,iBACtB,eAAgB,UAClB;;;;gBCAC,UAAY,CAGZ,IAAIC,EAAS,CAAA,EAAG,eAEhB,SAASC,GAAc,CAGtB,QAFIC,EAAU,GAELhwB,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAC1C,IAAIwV,EAAM,UAAUxV,CAAC,EACjBwV,IACHwa,EAAUC,EAAYD,EAASE,EAAW1a,CAAG,CAAC,GAIhD,OAAOwa,EAGR,SAASE,EAAY1a,EAAK,CACzB,GAAI,OAAOA,GAAQ,UAAY,OAAOA,GAAQ,SAC7C,OAAOA,EAGR,GAAI,OAAOA,GAAQ,SAClB,MAAO,GAGR,GAAI,MAAM,QAAQA,CAAG,EACpB,OAAOua,EAAW,MAAM,KAAMva,CAAG,EAGlC,GAAIA,EAAI,WAAa,OAAO,UAAU,UAAY,CAACA,EAAI,SAAS,SAAQ,EAAG,SAAS,eAAe,EAClG,OAAOA,EAAI,SAAU,EAGtB,IAAIwa,EAAU,GAEd,QAASta,KAAOF,EACXsa,EAAO,KAAKta,EAAKE,CAAG,GAAKF,EAAIE,CAAG,IACnCsa,EAAUC,EAAYD,EAASta,CAAG,GAIpC,OAAOsa,EAGR,SAASC,EAAanY,EAAOqY,EAAU,CACtC,OAAKA,EAIDrY,EACIA,EAAQ,IAAMqY,EAGfrY,EAAQqY,EAPPrY,EAU4BsY,EAAO,SAC3CL,EAAW,QAAUA,EACrBK,EAAA,QAAiBL,GAOjB,OAAO,WAAaA,CAEtB,6CC5Ee,SAASM,GAA4BlN,EAAO,CACzD,MAAMmN,EAAS,CAAE,EACjB,IAAIC,EAAO,gBACPzO,EACJ,SAAW,CACT,SAAAwE,CACJ,IAAO,OAAO,OAAOnD,CAAK,EAAG,CACzB,KAAM,CACJ,WAAAqN,EACA,YAAAC,CACN,EAAQnK,EAGAxE,GAAW,OAAS0O,GAAcC,KAEnC,CACC,KAAAF,EACA,QAAAzO,CACD,EAAG0O,GAAcC,IAEfD,GAAc,KAAO,OAASA,EAAW,QAAU,eAAeF,EAAO,KAAKE,EAAW,KAAK,GAC9FC,GAAe,KAAO,OAASA,EAAY,QAAU,eAAeH,EAAO,KAAKG,EAAY,KAAK,CAC1G,CACE,MAAM3Y,EAAQwY,EAAO,OAAO,CAAC5N,EAAOgO,IAC3BhO,EAAQgO,EAAgBJ,EAAO,OACrC,CAAC,EACJ,MAAO,CACL,KAAAC,EACA,QAAAzO,EACA,MAAAhK,CACD,CACH,CC/Be,SAAS6Y,GAAcC,EAAY,CAChD,MAAMhR,EAAQ,KAAK,MAAMgR,EAAa,IAAI,EAAI,GACxC/Q,EAAU,KAAK,MAAM+Q,EAAa,EAAE,EAAI,GACxC9Q,EAAU,KAAK,MAAM8Q,EAAa,EAAE,EAC1C,MAAO,CACL,MAAAhR,EACA,QAAAC,EACA,QAAAC,CACD,CACH,CCRe,SAAS+Q,GAAU/Q,EAAS,CACzC,MAAM3D,EAAOwU,GAAc7Q,CAAO,EAK5BgR,EAAW3U,EAAK,QAAU,EAAI,GAAK,GAAGA,EAAK,KAAK,IAChD4U,EAAa5U,EAAK,UAAY,EAAI,GAAK,GAAGA,EAAK,QAAU,EAAIA,EAAK,QAAU,IAAIA,EAAK,QAAQ,SAAS,EAAE,EAAE,SAAS,EAAG,GAAG,CAAC,EAAE,IAC5H6U,EAAa7U,EAAK,QAAU,EAAI,GAAK,GAAGA,EAAK,UAAY,EAAIA,EAAK,QAAU,IAAIA,EAAK,QAAQ,SAAS,EAAE,EAAE,SAAS,EAAG,GAAG,CAAC,EAAE,IAClI,MAAO,GAAG2U,CAAQ,GAAGC,CAAU,GAAGC,CAAU,EAC9C,CCNA,MAAMC,GAAM,IACNC,GAAY,IAAM,IAAID,EAAG,IAC/B,SAASE,GAAUC,EAAO,CACxB,KAAM,CACJ,SAAApJ,EACA,gBAAAqJ,EACA,eAAAC,EACA,KAAAC,EACA,YAAAC,EACA,YAAAC,EACA,YAAAC,CACJ,EAAMN,EACEO,EAAsB5B,GAAW,eAAgB,aAAc,2BAA4B,mCAAoC,CACnI,qBAAsByB,IAAgB3B,GAAgB,aAC1D,EAAK,CACD,qCAAsC4B,CAC1C,CAAG,EACKG,EAAgB5J,GAAYqJ,GAAmB,CAACC,EAAiBC,EAAK,kBAAmB,CAC7F,YAAavJ,CACjB,CAAG,EAAIuJ,EAAK,eAAgB,CACxB,YAAavJ,CACjB,CAAG,EACD,OAAOvnB,EAAE,SAAU,CACjB,KAAM,SACN,UAAWkxB,EACX,aAAcJ,EAAK,eAAgB,CACjC,YAAavJ,CACnB,CAAK,EACD,QAAS0J,EACT,SAAUD,EACV,4BAA6B,EAC9B,EAAEG,CAAa,CAClB,CACA,SAASC,GAAST,EAAO,CACvB,KAAM,CACJ,KAAAG,EACA,KAAA7C,CACJ,EAAM0C,EACJ,OAAO3wB,EAAE,SAAU,CACjB,KAAM,SACN,UAAW,mFACX,aAAc8wB,EAAK,aAAa,EAChC,QAAS,IAAM7C,EAAK,SAAU,EAAC,MAAM,IAAM,CAE/C,CAAK,EACD,4BAA6B,GAC7B,UAAW,OACf,EAAKjuB,EAAE,MAAO,CACV,cAAe,OACf,UAAW,QACX,UAAW,cACX,MAAO,IACP,OAAQ,KACR,QAAS,UACb,EAAKA,EAAE,OAAQ,CACX,EAAG,oLACP,CAAG,CAAC,EAAG8wB,EAAK,OAAO,CAAC,CACpB,CACA,SAASO,GAAUV,EAAO,CACxB,KAAM,CACJ,KAAAG,EACA,KAAA7C,CACJ,EAAM0C,EACJ,OAAO3wB,EAAE,SAAU,CACjB,KAAM,SACN,UAAW,8CACX,MAAO8wB,EAAK,QAAQ,EACpB,aAAcA,EAAK,QAAQ,EAC3B,QAAS,IAAM7C,EAAK,UAAW,EAC/B,UAAW,SACX,4BAA6B,EACjC,EAAKjuB,EAAE,MAAO,CACV,cAAe,OACf,UAAW,QACX,UAAW,cACX,MAAO,KACP,OAAQ,KACR,QAAS,WACb,EAAKA,EAAE,IAAK,CACR,KAAM,OACN,SAAU,SACd,EAAKA,EAAE,SAAU,CACb,KAAM,OACN,GAAI,IACJ,GAAI,IACJ,EAAG,GACP,CAAG,EAAGA,EAAE,OAAQ,CACZ,KAAM,OACN,EAAG,iIACJ,CAAA,CAAC,CAAC,CAAC,CACN,CACA,SAASsxB,GAAkBX,EAAO,CAChC,KAAM,CACJ,YAAAY,EACA,KAAAT,EACA,cAAAU,EACA,iBAAAC,EACA,KAAAxD,CACJ,EAAM0C,EACEe,EAAsBZ,EAAdS,EAAmB,SAAiB,OAAT,EACzC,SAASI,GAAoB,CAC3B,GAAI,CAAAH,EACJ,IAAI,CAACC,EAAkB,CACrBxD,EAAK,UAAW,EAChB,MACN,CACI,GAAIsD,EAAa,CACftD,EAAK,UAAW,EAChB,MACN,CACIA,EAAK,SAAU,EACnB,CACE,OAAOjuB,EAAE,SAAU,CACjB,MAAO0xB,EACP,aAAcA,EACd,UAAW,8CACX,KAAM,SACN,QAASC,EACT,UAAW,oBACX,4BAA6B,EACjC,EAAK3xB,EAAE,MAAO,CACV,cAAe,OACf,UAAW,QACX,UAAW,cACX,MAAO,KACP,OAAQ,KACR,QAAS,WACb,EAAKA,EAAE,IAAK,CACR,KAAM,OACN,SAAU,SACd,EAAKA,EAAE,SAAU,CACb,KAAM,OACN,GAAI,IACJ,GAAI,IACJ,EAAG,GACP,CAAG,EAAGA,EAAE,OAAQ,CACZ,KAAM,OACN,EAAGuxB,EAAc,0BAA4B,gCAC9C,CAAA,CAAC,CAAC,CAAC,CACN,CACA,SAASK,GAAQjB,EAAO,CACtB,KAAM,CACJ,KAAAG,EACA,kBAAAe,CACJ,EAAMlB,EACJ,OAAO3wB,EAAE,SAAU,CACjB,KAAM,SACN,UAAW,kFACX,QAAS6xB,EACT,4BAA6B,EACjC,EAAKf,EAAK,MAAM,CAAC,CACjB,CACA,SAASgB,IAAiB,CACxB,OAAO9xB,EAAE,MAAO,CACd,UAAW,yBACX,cAAe,OACf,UAAW,QACX,MAAO,KACP,OAAQ,IACZ,EAAKA,EAAE,OAAQ,CACX,EAAG,ubACH,SAAU,SACd,CAAG,CAAC,CACJ,CACA,SAAS+xB,GAAsBpB,EAAO,CACpC,KAAM,CACJ,SAAA9K,CACJ,EAAM8K,EACE,CACJ,MAAAtZ,EACA,KAAAyY,EACA,QAAAzO,CACJ,EAAMwE,EAEJ,OAAO7lB,EAAE,MAAO,CACd,UAAW,wBACf,EAAKA,EAAE8xB,GAAgB,IAAI,EAAGhC,IAAS,cAAgB,GAAG,KAAK,MAAMzY,EAAQ,GAAG,CAAC,OAAc,GAAIgK,CAAO,CAC1G,CACA,SAAS2Q,GAAgBrB,EAAO,CAC9B,KAAM,CACJ,WAAAsB,EACA,SAAAC,EACA,kBAAA3F,EACA,UAAA4F,EACA,SAAAC,EACA,KAAAtB,CACJ,EAAMH,EACE0B,EAA6BJ,EAAa,EAC1CK,EAAuBxS,GAAcyM,CAAiB,EAC5D,OAAOvsB,EAAE,MAAO,CACd,UAAW,gCACf,EAAKqyB,GAA8BvB,EAAK,uBAAwB,CAC5D,SAAAoB,EACA,YAAaD,CACjB,CAAG,EAAGjyB,EAAE,OAAQ,CACZ,UAAW,+BACf,EAAKqyB,GAA8B5B,GAAW,EAAE0B,GAAa,KAAOrB,EAAK,sBAAuB,CAC5F,SAAUwB,EACV,MAAOxS,GAAcqS,CAAS,CAClC,CAAG,EAAIrB,EAAK,wBAAyB,CACjC,SAAUwB,CACd,CAAG,EAAG7B,GAAS,EAAI2B,GAAY,MAAQtB,EAAK,YAAa,CACrD,KAAMV,GAAUgC,CAAQ,CACzB,CAAA,CAAC,CAAC,CACL,CACA,SAASG,GAAgB5B,EAAO,CAC9B,KAAM,CACJ,KAAAG,EACA,SAAAoB,EACA,WAAAD,CACJ,EAAMtB,EACJ,OAAO3wB,EAAE,MAAO,CACd,UAAW,gCACf,EAAK8wB,EAAK,uBAAwB,CAC9B,SAAAoB,EACA,YAAaD,CACjB,CAAG,CAAC,CACJ,CACA,SAASO,GAAsB7B,EAAO,CACpC,KAAM,CACJ,KAAAG,EACA,SAAAvJ,EACA,YAAA0J,CACJ,EAAMN,EACEO,EAAsB5B,GAAW,eAAgB,aAAc,2BAA4B,4CAA4C,EAC7I,OAAOtvB,EAAE,MAAO,CACd,UAAW,gCACf,EAAKA,EAAE,MAAO,CACV,UAAW,oCACf,EAAK8wB,EAAK,kBAAmB,CACzB,YAAavJ,CACjB,CAAG,CAAC,EAAGvnB,EAAE,SAAU,CACf,KAAM,SACN,UAAWkxB,EACX,aAAcJ,EAAK,eAAgB,CACjC,YAAavJ,CACnB,CAAK,EACD,QAAS0J,CACb,EAAKH,EAAK,QAAQ,CAAC,CAAC,CACpB,CACA,SAAS2B,GAAqB9B,EAAO,CACnC,KAAM,CACJ,KAAAG,EACA,uBAAAtS,EACA,cAAA6I,EACA,oBAAAqL,EACA,gBAAA9B,EACA,cAAAY,EACA,YAAAD,EACA,SAAAhK,EACA,WAAA0K,EACA,SAAAC,EACA,kBAAA3F,EACA,UAAA4F,EACA,SAAAC,EACA,YAAAnB,CACJ,EAAMN,EACEgC,EAA4BpL,GAAYqJ,EAC9C,GAAI,CAACA,GAAmBY,EACtB,OAAO,KAET,MAAME,EAAsBZ,EAAdS,EAAmB,SAAiB,WAAT,EACzC,SAASqB,GAAwB,CAC/B,MAAI,CAACrB,GAAe,CAACoB,GAA6BD,EAC5ClU,EACKxe,EAAEgyB,GAAiB,CACxB,WAAYC,EACZ,SAAUC,EACV,kBAAmB3F,EACnB,UAAW4F,EACX,SAAUC,EACV,KAAMtB,CAChB,CAAS,EAEI9wB,EAAEuyB,GAAiB,CACxB,KAAMzB,EACN,SAAUoB,EACV,WAAYD,CACpB,CAAO,EAEI,IACX,CACE,OAAOjyB,EAAE,MAAO,CACd,UAAW,yBACX,aAAc0xB,EACd,MAAOA,CACX,EAAMH,EAAwC,KAA1BvxB,EAAE8xB,GAAgB,IAAI,EAAU9xB,EAAE,MAAO,CACzD,UAAW,uBACf,EAAKA,EAAE,MAAO,CACV,UAAW,8BACf,EAAKwe,GAA0B6I,IAAkB,EAAI,GAAGqK,CAAK,KAAKrK,CAAa,IAAMqK,CAAK,EAAGkB,EAAuB,EAAED,EAA4B3yB,EAAEwyB,GAAuB,CACvK,KAAM1B,EACN,SAAUvJ,EACV,YAAa0J,CACjB,CAAG,EAAI,IAAI,CAAC,CACZ,CACA,SAAS4B,GAAoBlC,EAAO,CAClC,KAAM,CACJ,KAAAG,CACJ,EAAMH,EACJ,OAAO3wB,EAAE,MAAO,CACd,UAAW,yBACX,KAAM,SACN,MAAO8wB,EAAK,UAAU,CAC1B,EAAK9wB,EAAE,MAAO,CACV,UAAW,uBACf,EAAKA,EAAE,MAAO,CACV,UAAW,8BACf,EAAKA,EAAE,MAAO,CACV,cAAe,OACf,UAAW,QACX,UAAW,6CACX,MAAO,KACP,OAAQ,KACR,QAAS,WACb,EAAKA,EAAE,OAAQ,CACX,EAAG,qEACJ,CAAA,CAAC,EAAG8wB,EAAK,UAAU,CAAC,CAAC,CAAC,CACzB,CACA,SAASgC,GAAiBnC,EAAO,CAC/B,KAAM,CACJ,MAAA9N,EACA,KAAAiO,EACA,SAAAoB,EACA,WAAAD,CACJ,EAAMtB,EACJ,SAASoC,GAAoB,CAC3B,MAAMC,EAAe,GAAGlC,EAAK,cAAc,CAAC;AAAA;AAAA,GAASjO,CAAK,GAE1D,MAAMmQ,CAAY,CACtB,CACE,OAAOhzB,EAAE,MAAO,CACd,UAAW,yBACX,MAAO8wB,EAAK,cAAc,CAC9B,EAAK9wB,EAAE,MAAO,CACV,cAAe,OACf,UAAW,QACX,UAAW,6CACX,MAAO,KACP,OAAQ,KACR,QAAS,WACb,EAAKA,EAAE,OAAQ,CACX,EAAG,+GACP,CAAG,CAAC,EAAGA,EAAE,MAAO,CACZ,UAAW,uBACf,EAAKA,EAAE,MAAO,CACV,UAAW,8BACZ,EAAE8wB,EAAK,cAAc,EAAG9wB,EAAE,SAAU,CACnC,UAAW,sCACX,aAAc8wB,EAAK,kBAAkB,EACrC,yBAA0B,YAC1B,qBAAsB,SACtB,QAASiC,EACT,KAAM,QACP,EAAE,GAAG,CAAC,EAAG/yB,EAAEuyB,GAAiB,CAC3B,KAAMzB,EACN,SAAUoB,EACV,WAAYD,CACb,CAAA,CAAC,CAAC,CACL,CCvWA,KAAM,CACJ,YAAAgB,GACA,cAAAC,GACA,oBAAAC,GACA,gBAAAC,GACA,qBAAAC,GACA,eAAAC,EACF,EAAIlE,GACW,SAASmE,GAAYhN,EAAM,CACxC,GAAI,CACF,SAAAgB,EACA,eAAA4D,EACA,mBAAAqI,EACA,YAAAjC,EACA,iBAAAE,EACA,MAAA5O,EACA,iBAAA4Q,EAAmB,OACnB,sBAAAC,EAAwB,GACxB,iBAAAC,EAAmB,GACnB,gBAAAC,EAAkB,GAClB,eAAA/C,EACA,YAAAE,EACA,cAAA1J,EACA,MAAA3E,EACA,uBAAAlE,EACA,gBAAAqV,EAAkB,GAClB,YAAA7C,EACA,kBAAAa,EAAoB,OACpB,gBAAAjB,EACA,KAAAE,EACA,YAAAG,EACA,KAAAhD,EACA,cAAAuD,EACA,oBAAAkB,EAAsB,OACtB,WAAAT,EACA,SAAAC,EACA,UAAAC,EACA,SAAAC,EACA,kBAAA7F,CACJ,EAAMhG,EACJ,SAASuN,GAAmB,CAC1B,OAAQ/C,EAAW,CACjB,KAAKsC,GACL,KAAKF,GACH,CACE,MAAMtN,GAAW+J,GAA4BlN,CAAK,EAClD,OAAImD,GAAS,OAAS,cACbA,GAAS,MAAQ,IAEnBwB,CACjB,CACM,KAAK4L,GAED,OAAO,KAEX,KAAKG,GAED,OAAK5U,EAGE6I,EAFE,KAIb,QACE,OAAOA,CACf,CACA,CACE,SAAS0M,GAAqB,CAC5B,OAAQhD,EAAW,CACjB,KAAKsC,GACL,KAAKF,GACH,CACE,KAAM,CACJ,KAAArD,EACZ,EAAcF,GAA4BlN,CAAK,EACrC,OAAOoN,KAAS,eAC1B,CACM,KAAKsD,GAED,MAAK,CAAA5U,EAKT,QACE,MAAO,EACf,CACA,CACE,MAAMyR,EAAgB6D,EAAkB,EAClCE,EAAQ/D,GAAwC,IAChDgE,EAAgB,CAACpR,GAAS0E,IAAa,CAACiM,GAAsB,CAACjC,GAAeV,IAAmB1F,GAAkB,CAACsI,EACpHS,EAAgB,CAACP,GAAoB5C,IAAgBmC,IAAiBnC,IAAgBuC,GACtFa,EAAqB1C,GAAoB,CAACiC,GAAyB3C,IAAgBqC,GACnFgB,EAAevR,GAAS,CAAC2O,GAAiB,CAACoC,EAC3CS,EAAcxC,GAAqBd,IAAgBuC,GACnDgB,GAAqBhF,GAAW,0BAA2B,CAC/D,mBAAoByE,EAAkB,CAC1C,CAAG,EACKQ,EAAsBjF,GAAW,iBAAkB,MAAMyB,CAAW,GAAI,CAC5E,aAAcC,CAClB,CAAG,EACKwD,GAAsB,IAAM,CAChC,OAAQzD,EAAW,CACjB,KAAKoC,GACL,KAAKE,GACH,OAAOrzB,EAAE+xB,GAAuB,CAC9B,SAAUnC,GAA4BlN,CAAK,CACrD,CAAS,EACH,KAAK4Q,GACH,OAAOtzB,EAAE6yB,GAAqB,CAC5B,KAAM/B,CAChB,CAAS,EACH,KAAKmC,GACH,OAAOjzB,EAAE8yB,GAAkB,CACzB,MAAOjQ,EACP,KAAMiO,EACN,WAAYmB,EACZ,SAAUC,CACpB,CAAS,EACH,KAAKkB,GACH,OAAOpzB,EAAEyyB,GAAsB,CAC7B,KAAM3B,EACN,uBAAwBtS,EACxB,cAAe6I,EACf,oBAAqBqL,EACrB,gBAAiB9B,EACjB,cAAeY,EACf,YAAaD,EACb,SAAUhK,EACV,WAAY0K,EACZ,SAAUC,EACV,kBAAmB3F,EACnB,UAAW4F,EACX,SAAUC,EACV,YAAanB,CACvB,CAAS,EACH,QACE,OAAO,IACf,CACA,GAAM,EAIJ,MAF6B,EADJgD,GAAiBG,GAAgBD,GAAsBD,GAAiBG,IAC/C,CAACG,GACVzD,IAAgBuC,IAAkBO,EAElE,KAEF7zB,EAAE,MAAO,CACd,UAAWu0B,CACf,EAAKv0B,EAAE,MAAO,CACV,UAAWs0B,GACX,MAAO,CACL,MAAO,GAAGN,CAAK,GAChB,EACD,KAAM,cACN,aAAc,GAAGA,CAAK,IACtB,iBAAkB,GAAGA,CAAK,IAC1B,gBAAiB,EACjB,gBAAiB,IACjB,gBAAiB/D,CACrB,CAAG,EAAGuE,EAAoBx0B,EAAE,MAAO,CAC/B,UAAW,wBACf,EAAKi0B,EAAgBj0B,EAAE0wB,GAAW,CAC9B,SAAUnJ,EACV,gBAAiBqJ,EACjB,eAAgBC,EAChB,KAAMC,EACN,YAAaE,EACb,YAAaC,EACb,YAAaF,CACd,CAAA,EAAI,KAAMqD,EAAep0B,EAAEoxB,GAAU,CACpC,KAAMN,EACN,KAAM7C,CACP,CAAA,EAAI,KAAMkG,EAAqBn0B,EAAEsxB,GAAmB,CACnD,YAAaC,EACb,KAAMT,EACN,cAAeU,EACf,iBAAkBC,EAClB,KAAMxD,CACP,CAAA,EAAI,KAAMiG,EAAgBl0B,EAAEqxB,GAAW,CACtC,KAAMP,EACN,KAAM7C,CACP,CAAA,EAAI,KAAMoG,EAAcr0B,EAAE4xB,GAAS,CAClC,KAAMd,EACN,kBAAmBe,CACvB,CAAG,EAAI,IAAI,CAAC,CACZ,CC7LA,MAAe4C,GAAA,CACb,QAAS,CAEP,UAAW,YAEX,SAAU,WAEV,aAAc,gBAEd,OAAQ,SAER,MAAO,QAEP,OAAQ,SAER,MAAO,QAEP,OAAQ,SAER,KAAM,OAEN,qBAAsB,CACpB,EAAG,8CACH,EAAG,8CACJ,EAED,oBAAqB,0BACrB,sBAAuB,yBAEvB,UAAW,eAEX,aAAc,CACZ,EAAG,6BACH,EAAG,6BACJ,EAGD,gBAAiB,CACf,EAAG,8BACH,EAAG,8BACJ,EACD,OAAQ,SACR,YAAa,eACb,gBAAiB,CACf,EAAG,iCACH,EAAG,iCACJ,EACD,iBAAkB,oBACtB,CACA,ECjDA,SAAS3gB,GAA4BxU,EAAGD,EAAG,CAAE,GAAI,CAAC,CAAA,EAAG,eAAe,KAAKC,EAAGD,CAAC,EAAG,MAAM,IAAI,UAAU,gDAAgD,EAAG,OAAOC,CAAE,CAChK,IAAIyU,GAAK,EACT,SAASC,GAA2B1U,EAAG,CAAE,MAAO,aAAeyU,KAAO,IAAMzU,CAAE,CAQ9E,MAAMqd,GAAc,CAClB,QAAW,OACb,EAEM+X,GAAsB,IACtBC,GAAoB,IAC1B,SAASC,GAAkB/R,EAAO2O,EAAeX,EAAgBnO,EAAO,CACtE,GAAIG,EACF,OAAOuM,GAAgB,YAEzB,GAAIoC,EACF,OAAOpC,GAAgB,eAEzB,GAAIyB,EACF,OAAOzB,GAAgB,cAEzB,IAAIjJ,EAAQiJ,GAAgB,cAC5B,MAAM5G,EAAU,OAAO,KAAK9F,CAAK,EACjC,QAASnjB,EAAI,EAAGA,EAAIipB,EAAQ,OAAQjpB,IAAK,CACvC,KAAM,CACJ,SAAAsmB,CACN,EAAQnD,EAAM8F,EAAQjpB,CAAC,CAAC,EAEpB,GAAIsmB,EAAS,eAAiB,CAACA,EAAS,eACtC,OAAOuJ,GAAgB,gBAIrBvJ,EAAS,aACXM,EAAQiJ,GAAgB,qBAItBvJ,EAAS,aAAeM,IAAUiJ,GAAgB,sBACpDjJ,EAAQiJ,GAAgB,qBAE9B,CACE,OAAOjJ,CACT,CACA,MAAMhF,GAAiB,CACrB,iBAAkB,GAClB,gBAAiB,GACjB,sBAAuB,GACvB,iBAAkB,GAClB,oBAAqB,GACrB,gBAAiB,GACjB,kBAAmB,IACrB,EAMA,IAAI0T,GAA+B7gB,GAA2B,gBAAgB,EAC1E8gB,GAAsC9gB,GAA2B,uBAAuB,EACxF+gB,GAA8B/gB,GAA2B,eAAe,EACxEghB,GAA4BhhB,GAA2B,aAAa,EACpEihB,GAAiCjhB,GAA2B,kBAAkB,EAC9EkhB,GAA8BlhB,GAA2B,eAAe,EAC7D,MAAMmhB,WAAkB7G,EAAS,CAC9C,YAAYL,EAAM3M,EAAM,CACtB,MAAM2M,EAAM,CACV,GAAG9M,GACH,GAAGG,CACT,CAAK,EACD,OAAO,eAAe,KAAM2T,GAAmB,CAC7C,MAAOG,EACb,CAAK,EACD,OAAO,eAAe,KAAMP,GAAiB,CAC3C,SAAU,GACV,MAAO,MACb,CAAK,EACD,OAAO,eAAe,KAAMC,GAAwB,CAClD,SAAU,GACV,MAAO,MACb,CAAK,EACD,OAAO,eAAe,KAAMC,GAAgB,CAC1C,SAAU,GACV,MAAO,MACb,CAAK,EACD,OAAO,eAAe,KAAMC,GAAc,CACxC,SAAU,GACV,MAAO,MACb,CAAK,EACD,KAAK,YAAc,IACV,KAAK,KAAK,OAAQ,EAAC,MAAM,IAAM,CAE5C,CAAO,EAEH,OAAO,eAAe,KAAME,GAAgB,CAC1C,SAAU,GACV,MAAO,IAAM,CACX,KAAM,CACJ,eAAArE,CACV,EAAY,KAAK,KAAK,SAAU,EAGxB,GAFA/c,GAA4B,KAAMihB,EAAc,EAAEA,EAAc,EAAI,KACpEjhB,GAA4B,KAAMkhB,EAAY,EAAEA,EAAY,EAAI,KAC5DnE,EAAgB,CAClB/c,GAA4B,KAAMghB,EAAsB,EAAEA,EAAsB,EAAI,OAAO,OAAOjE,EAAe,KAAK,EAAE,OAAO,CAACwE,EAAI9O,IAAS,CAC3I,GAAI,CACF,SAAAV,CACd,EAAgBU,EACJ,OAAO8O,EAAKxP,EAAS,aACtB,EAAE,CAAC,EAKJ,KAAK,KAAK,KAAK,mBAAmB,EAClC,MACV,CACQ/R,GAA4B,KAAM+gB,EAAe,EAAEA,EAAe,EAAI,YAAY,IAAK,EACvF/gB,GAA4B,KAAMghB,EAAsB,EAAEA,EAAsB,EAAI,CAC5F,CACA,CAAK,EACD,KAAK,GAAK,KAAK,KAAK,IAAM,YAC1B,KAAK,MAAQ,YACb,KAAK,KAAO,oBACZ,KAAK,cAAgBnf,GACrB,KAAK,SAAU,EACf,KAAK,OAAS,KAAK,OAAO,KAAK,IAAI,EACnC,KAAK,QAAU,KAAK,QAAQ,KAAK,IAAI,CACzC,CACE,OAAOwQ,EAAO,CACZ,KAAM,CACJ,aAAAW,EACA,MAAApE,EACA,eAAAyI,EACA,cAAA9D,EACA,MAAAxE,EACA,eAAAgO,CACN,EAAQ1K,EACE,CACJ,SAAAoB,EACA,aAAAC,EACA,cAAAG,EACA,gBAAAiJ,EACA,cAAAY,EACA,YAAAD,EACA,mBAAAiC,EACA,YAAAxC,CACN,EAAQ,KAAK,KAAK,yBAA0B,EAKlCsE,EAAsBzE,EAAiB,OAAO,OAAOnO,CAAK,EAAI6E,EAC9DkK,EAAmB,CAAC,CAAC3K,EAAa,iBAClCtI,EAAyBsI,EAAa,iBAAmB,GAC/D,IAAIqL,EAAY,KACZ5F,EAAoB,EAGpB/E,EAAa,MAAMnnB,GAAKA,EAAE,SAAS,YAAc,MAAQA,EAAE,SAAS,aAAe,CAAC,GACtF8xB,EAAY,EACZ3K,EAAa,QAAQ7J,GAAQ,CAC3BwU,GAAaxU,EAAK,SAAS,YAAc,EACzC4O,GAAqB5O,EAAK,SAAS,eAAiB,CAC5D,CAAO,GAGD6J,EAAa,QAAQ7J,GAAQ,CAC3B4O,GAAqB5O,EAAK,SAAS,eAAiB,CAC5D,CAAO,EAEH,MAAMyU,EAAWte,GAA4B,KAAMmhB,EAAiB,EAAEA,EAAiB,EAAE,CACvF,SAAU1I,EACV,MAAO4F,CACb,CAAK,EACD,OAAOoB,GAAY,CACjB,MAAA1Q,EACA,YAAa+R,GAAkB/R,EAAO2O,EAAeX,EAAgB1K,EAAM,OAAS,EAAE,EACtF,eAAAgF,EACA,cAAA9D,EACA,UAAA8K,EACA,kBAAA5F,EACA,cAAe,GACf,YAAAgF,EACA,gBAAAX,EACA,mBAAA4C,EACA,YAAAxC,EACA,eAAAH,EACA,SAAUlJ,EAAc,OACxB,SAAU2N,EAAoB,OAC9B,WAAY9N,EAAa,OACzB,SAAA4K,EACA,MAAA1P,EACA,KAAM,KAAK,KACX,KAAM,KAAK,KACX,YAAa,KAAK,YAClB,kBAAmB,KAAK,KAAK,kBAC7B,iBAAA+O,EACA,uBAAAjT,EACA,oBAAqB,KAAK,KAAK,oBAC/B,iBAAkB,KAAK,KAAK,iBAC5B,gBAAiB,KAAK,KAAK,gBAC3B,sBAAuB,KAAK,KAAK,sBACjC,iBAAkB,KAAK,KAAK,iBAC5B,gBAAiB,KAAK,KAAK,eACjC,CAAK,CACL,CACE,SAAU,CAER,MAAMoP,EAAU,KAAK,GACHE,GAAiBF,CAAO,IAExCA,EAAQ,IAAM,MAEpB,CACE,SAAU,CACR,KAAM,CACJ,OAAA3M,CACD,EAAG,KAAK,KACLA,GACF,KAAK,MAAMA,EAAQ,IAAI,EAEzB,KAAK,KAAK,GAAG,SAAUnN,GAA4B,KAAMohB,EAAc,EAAEA,EAAc,CAAC,EAIxFphB,GAA4B,KAAM+gB,EAAe,EAAEA,EAAe,EAAI,YAAY,IAAK,EACvF/gB,GAA4B,KAAMghB,EAAsB,EAAEA,EAAsB,EAAI,KAAK,KAAK,SAAQ,EAAG,OAAO,CAACO,EAAI1X,IAAS0X,EAAK1X,EAAK,SAAS,cAAe,CAAC,CACrK,CACE,WAAY,CACV,KAAK,QAAS,EACd,KAAK,KAAK,IAAI,SAAU7J,GAA4B,KAAMohB,EAAc,EAAEA,EAAc,CAAC,CAC7F,CACA,CACA,SAASE,GAAmBG,EAAY,CACtC,IAAIhL,EAAuBuE,EAC3B,GAAIyG,EAAW,OAAS,MAAQA,EAAW,QAAU,EACnD,OAAO,KAET,MAAMC,EAAYD,EAAW,MAAQA,EAAW,SAChD,GAAIC,GAAa,EACf,OAAO,MAIR1G,GAA0BvE,EAAwBzW,GAA4B,KAAM+gB,EAAe,GAAGA,EAAe,IAAM,OAAgCtK,EAAsBsK,EAAe,EAAI,YAAY,IAAK,GACtN,MAAMpxB,EAAK,YAAY,IAAK,EAAGqQ,GAA4B,KAAM+gB,EAAe,EAAEA,EAAe,EACjG,GAAIpxB,IAAO,EAAG,CACZ,IAAIgyB,EACJ,OAAO,KAAK,QAAQA,EAAyB3hB,GAA4B,KAAMkhB,EAAY,EAAEA,EAAY,IAAM,KAAOS,EAAyB,GAAK,GAAG,EAAI,EAC/J,CACE,MAAMC,EAA6BH,EAAW,SAAWzhB,GAA4B,KAAMghB,EAAsB,EAAEA,EAAsB,EAKzI,GAJAhhB,GAA4B,KAAMghB,EAAsB,EAAEA,EAAsB,EAAIS,EAAW,SAI3FG,GAA8B,EAAG,CACnC,IAAIC,EACJ,OAAO,KAAK,QAAQA,EAAyB7hB,GAA4B,KAAMkhB,EAAY,EAAEA,EAAY,IAAM,KAAOW,EAAyB,GAAK,GAAG,EAAI,EAC/J,CACE,MAAMC,EAAeF,EAA6BjyB,EAC5CoyB,EAAgB/hB,GAA4B,KAAMihB,EAAc,EAAEA,EAAc,GAAK,KAAOa,EAAe5G,GAAU4G,EAAc9hB,GAA4B,KAAMihB,EAAc,EAAEA,EAAc,EAAGL,GAAqBjxB,CAAE,EACnOqQ,GAA4B,KAAMihB,EAAc,EAAEA,EAAc,EAAIc,EACpE,MAAMC,EAAaN,EAAYK,EACzBE,EAAqB,KAAK,IAAIjiB,GAA4B,KAAMkhB,EAAY,EAAEA,EAAY,EAAIvxB,EAAI,CAAC,EACnGuyB,EAAcliB,GAA4B,KAAMkhB,EAAY,EAAEA,EAAY,GAAK,KAAOc,EAAa9G,GAAU8G,EAAYC,EAAoBpB,GAAmBlxB,CAAE,EACxKqQ,OAAAA,GAA4B,KAAMkhB,EAAY,EAAEA,EAAY,EAAIgB,EAChEliB,GAA4B,KAAM+gB,EAAe,EAAEA,EAAe,EAAI,YAAY,IAAK,EAChF,KAAK,MAAMmB,EAAc,GAAG,EAAI,EACzC,CACAb,GAAU,QAAUxY,GAAY,QCjRhC,MAAMsZ,GAAgB,IACP,MAAMC,WAAeC,EAAU,CAC5C,aAAc,CACZ,MAAM,GAAG,SAAS,EAClB,KAAK,IAAMC,GAAW,CAC1B,CACE,mBAAmBlQ,EAAU,CAC3B,KAAK,IAAI,QAAQ,MAAM,QAAU,IACjC,KAAK,IAAI,QAAQ,MAAM,UAAY,OACnC,WAAWA,EAAU+P,EAAa,CACtC,CACE,mBAAmB/P,EAAU,CAC3B,KAAK,IAAI,QAAQ,MAAM,QAAU,IACjC,KAAK,IAAI,QAAQ,MAAM,UAAY,mBACnC,WAAWA,EAAU+P,EAAa,CACtC,CACE,QAAS,CACP,KAAM,CACJ,SAAAI,CACD,EAAG,KAAK,MACT,OAAOr2B,EAAE,MAAO,CACd,UAAW,yBACX,IAAK,KAAK,GACX,EAAEq2B,CAAQ,CACf,CACA,CCjBA,SAASC,GAAO5I,EAAKiD,EAAO,CAC1B,OAAO,OAAO,OAAOjD,EAAKiD,CAAK,CACjC,CACA,SAAS4F,GAAOC,EAAOC,EAAU,CAC/B,IAAIC,EACJ,OAAQA,EAAaF,GAAS,KAAO,OAASA,EAAM,MAAQ,KAAOE,EAAaD,CAClF,CACA,SAASE,GAAQC,EAAW3Y,EAAM,CAChC,MAAM4Y,EAAQD,EAAU,iBAAmBA,EAAU,eAAiB,CAAA,GACtE,OAAOC,EAAM5Y,CAAI,IAAM4Y,EAAM5Y,CAAI,EAAIne,GAAK,CACxC82B,EAAU,KAAK3Y,CAAI,EAAIne,CAC3B,EACA,CACA,SAASg3B,GAAgBT,EAAU,CACjC,MAAMxf,EAAM,CAAE,EACd,QAAStX,EAAI,EAAGA,EAAI82B,EAAS,OAAQ92B,IACnC,GAAI82B,EAAS92B,CAAC,GAAK,KAAM,CACvB,MAAM0V,EAAMshB,GAAOF,EAAS92B,CAAC,EAAGA,EAAE,SAAS,EAAE,CAAC,EAC9CsX,EAAI5B,CAAG,EAAIohB,EAAS92B,CAAC,CAC3B,CAEE,OAAOsX,CACT,CACA,SAASkgB,GAAmBC,EAAMC,EAAM,CACtCD,EAAOA,GAAQ,CAAE,EACjBC,EAAOA,GAAQ,CAAE,EACjB,MAAMC,EAAiBjiB,GAAOgiB,EAAK,eAAehiB,CAAG,EAAIgiB,EAAKhiB,CAAG,EAAI+hB,EAAK/hB,CAAG,EAIvEkiB,EAAkB,CAAE,EAC1B,IAAIC,EAAc,CAAE,EACpB,UAAWC,KAAWL,EAChBC,EAAK,eAAeI,CAAO,EACzBD,EAAY,SACdD,EAAgBE,CAAO,EAAID,EAC3BA,EAAc,CAAE,GAGlBA,EAAY,KAAKC,CAAO,EAG5B,MAAMC,EAAe,CAAE,EACvB,UAAWC,KAAWN,EAAM,CAC1B,GAAIE,EAAgB,eAAeI,CAAO,EACxC,QAASh4B,EAAI,EAAGA,EAAI43B,EAAgBI,CAAO,EAAE,OAAQh4B,IAAK,CACxD,MAAMi4B,EAAiBL,EAAgBI,CAAO,EAAEh4B,CAAC,EACjD+3B,EAAaH,EAAgBI,CAAO,EAAEh4B,CAAC,CAAC,EAAI23B,EAAeM,CAAc,CACjF,CAEIF,EAAaC,CAAO,EAAIL,EAAeK,CAAO,CAClD,CAGE,QAASh4B,EAAI,EAAGA,EAAI63B,EAAY,OAAQ73B,IACtC+3B,EAAaF,EAAY73B,CAAC,CAAC,EAAI23B,EAAeE,EAAY73B,CAAC,CAAC,EAE9D,OAAO+3B,CACT,CACA,MAAMG,GAAW,GAAK,EACtB,MAAMC,WAAwBvB,EAAU,CACtC,YAAYxF,EAAO9C,EAAS,CAC1B,MAAM8C,EAAO9C,CAAO,EACpB,KAAK,KAAO,CAAE,EACd,KAAK,MAAQ,CACX,SAAUiJ,GAAgBa,GAAaA,GAAa,KAAK,MAAM,QAAQ,CAAC,GAAK,CAAE,CAAA,CAChF,EACD,KAAK,cAAgB,KAAK,cAAc,KAAK,IAAI,EACjD,KAAK,aAAe,KAAK,aAAa,KAAK,IAAI,EAC/C,KAAK,aAAe,KAAK,aAAa,KAAK,IAAI,CACnD,CACE,oBAAqB,CACnB,KAAK,2BAA6B,CAAE,EACpC,KAAK,iBAAmB,CAAE,EAC1B,KAAK,YAAc,CAAE,EACrB,KAAK,YAAc,CAAE,CACzB,CACE,mBAAoB,CAClB,MAAMC,EAAsB,KAAK,MAAM,SACvC,UAAW3iB,KAAO2iB,EACZA,EAAoB3iB,CAAG,GAEzB,KAAK,cAAcA,CAAG,CAG9B,CACE,0BAA0B4iB,EAAW,CACnC,MAAMC,EAAmBhB,GAAgBa,GAAaE,EAAU,QAAQ,GAAK,EAAE,EACzEE,EAAmB,KAAK,MAAM,SACpC,KAAK,SAAS9a,IAAc,CAC1B,SAAU8Z,GAAmB9Z,EAAU,SAAU6a,CAAgB,CACvE,EAAM,EACF,IAAI7iB,EACJ,IAAKA,KAAO6iB,EACV,GAAIA,EAAiB,eAAe7iB,CAAG,EAAG,CACxC,MAAM+iB,EAAUD,GAAoBA,EAAiB,eAAe9iB,CAAG,EAEnE6iB,EAAiB7iB,CAAG,GAAK+iB,GAAW,KAAK,2BAA2B/iB,CAAG,GACzE,KAAK,YAAY,KAAKA,CAAG,EACzB,KAAK,iBAAiB,KAAKA,CAAG,GACrB6iB,EAAiB7iB,CAAG,GAAK,CAAC+iB,GAAW,CAAC,KAAK,2BAA2B/iB,CAAG,GAClF,KAAK,YAAY,KAAKA,CAAG,CAEnC,CAEI,IAAKA,KAAO8iB,EACV,GAAIA,EAAiB,eAAe9iB,CAAG,EAAG,CACxC,MAAMgjB,EAAUH,GAAoBA,EAAiB,eAAe7iB,CAAG,EACnE8iB,EAAiB9iB,CAAG,GAAK,CAACgjB,GAAW,CAAC,KAAK,2BAA2BhjB,CAAG,GAC3E,KAAK,YAAY,KAAKA,CAAG,CAEnC,CAEA,CACE,oBAAqB,CACnB,KAAM,CACJ,YAAAijB,CACN,EAAQ,KACJ,KAAK,YAAc,CAAE,EACrBA,EAAY,QAAQ,KAAK,YAAY,EACrC,KAAM,CACJ,YAAAC,CACN,EAAQ,KACJ,KAAK,YAAc,CAAE,EACrBA,EAAY,QAAQ,KAAK,YAAY,CACzC,CACE,aAAaljB,EAAK,CAChB,MAAM6B,EAAM,KAAK,iBAAiB,QAAQ7B,CAAG,EACzC6B,IAAQ,IACV,KAAK,iBAAiB,OAAOA,EAAK,CAAC,CAEzC,CACE,cAAc7B,EAAK,CACjB,KAAK,2BAA2BA,CAAG,EAAI,GACvC,MAAM2hB,EAAY,KAAK,KAAK3hB,CAAG,EAC3B2hB,GAAa,MAAQA,EAAU,oBACjCA,EAAU,oBAAoB,KAAK,qBAAqB,KAAK,KAAM3hB,CAAG,CAAC,EAEvE,KAAK,qBAAqBA,CAAG,CAEnC,CACE,qBAAqBA,EAAK,CACxB,MAAM2hB,EAAY,KAAK,KAAK3hB,CAAG,EAC3B2hB,GAAa,MAAQA,EAAU,oBACjCA,EAAU,mBAAoB,EAEhC,OAAO,KAAK,2BAA2B3hB,CAAG,EAC1C,KAAK,aAAaA,CAAG,EACrB,MAAMmjB,EAAsBtB,GAAgBa,GAAa,KAAK,MAAM,QAAQ,GAAK,EAAE,GAC/E,CAACS,GAAuB,CAACA,EAAoB,eAAenjB,CAAG,IAEjE,KAAK,aAAaA,CAAG,CAE3B,CACE,aAAaA,EAAK,CAChB,KAAK,2BAA2BA,CAAG,EAAI,GACvC,MAAM2hB,EAAY,KAAK,KAAK3hB,CAAG,EAC3B2hB,GAAa,MAAQA,EAAU,mBACjCA,EAAU,mBAAmB,KAAK,oBAAoB,KAAK,KAAM3hB,CAAG,CAAC,EAErE,KAAK,oBAAoBA,CAAG,CAElC,CACE,oBAAoBA,EAAK,CACvB,MAAM2hB,EAAY,KAAK,KAAK3hB,CAAG,EAC3B2hB,GAAa,MAAQA,EAAU,mBACjCA,EAAU,kBAAmB,EAE/B,OAAO,KAAK,2BAA2B3hB,CAAG,EAC1C,KAAK,aAAaA,CAAG,EACrB,MAAMmjB,EAAsBtB,GAAgBa,GAAa,KAAK,MAAM,QAAQ,GAAK,EAAE,GAC/E,CAACS,GAAuB,CAACA,EAAoB,eAAenjB,CAAG,IAEjE,KAAK,aAAaA,CAAG,CAE3B,CACE,aAAaA,EAAK,CAIhB,GADY,KAAK,iBAAiB,QAAQA,CAAG,IACjC,GACV,OAEF,KAAK,2BAA2BA,CAAG,EAAI,GACvC,MAAM2hB,EAAY,KAAK,KAAK3hB,CAAG,EAC3B2hB,GAAa,MAAQA,EAAU,mBACjCA,EAAU,mBAAmB,KAAK,mBAAmB,KAAK,KAAM3hB,CAAG,CAAC,EAKpE,KAAK,mBAAmBA,CAAG,CAEjC,CACE,mBAAmBA,EAAK,CAItB,GADY,KAAK,iBAAiB,QAAQA,CAAG,IACjC,GACV,OAEF,MAAM2hB,EAAY,KAAK,KAAK3hB,CAAG,EAC3B2hB,GAAa,MAAQA,EAAU,mBACjCA,EAAU,kBAAmB,EAE/B,OAAO,KAAK,2BAA2B3hB,CAAG,EAC1C,MAAMmjB,EAAsBtB,GAAgBa,GAAa,KAAK,MAAM,QAAQ,GAAK,EAAE,EACnF,GAAIS,GAAuBA,EAAoB,eAAenjB,CAAG,EAE/D,KAAK,aAAaA,CAAG,MAChB,CACL,MAAMohB,EAAWC,GAAO,CAAA,EAAI,KAAK,MAAM,QAAQ,EAC/C,OAAOD,EAASphB,CAAG,EACnB,KAAK,SAAS,CACZ,SAAAohB,CACR,CAAO,CACP,CACA,CACE,OAAO9P,EAAMyE,EAAO,CAClB,GAAI,CACF,aAAAqN,EACA,gBAAAC,EACA,eAAAC,EACA,iBAAAC,EACA,gBAAAC,EACA,uBAAAC,EACA,uBAAAC,EACA,wBAAAC,EACA,UAAAhC,EACA,GAAGjG,CACT,EAAQpK,EACA,CACF,SAAA8P,CACN,EAAQrL,EAGJ,MAAM6N,EAAmB,OAAO,QAAQxC,CAAQ,EAAE,IAAIyC,GAAS,CAC7D,GAAI,CAAC7jB,EAAK8jB,CAAK,EAAID,EACnB,GAAI,CAACC,EAAO,OACZ,MAAMC,EAAMrC,GAAQ,KAAM1hB,CAAG,EAC7B,OAAOgkB,GAAaZ,EAAaU,CAAK,EAAG,CACvC,IAAAC,EACA,IAAA/jB,CACR,CAAO,CACP,CAAK,EAAE,OAAO,OAAO,EACjB,OAAOjV,EAAE42B,EAAWjG,EAAOkI,CAAgB,CAC/C,CACA,CACAnB,GAAgB,aAAe,CAC7B,UAAW,OACX,aAAcD,EAChB,EC3PA,MAAM9a,GAAc,CAClB,QAAW,OACb,EAQe,MAAMuc,WAAiB5K,EAAS,CAC7C,YAAYL,EAAM3M,EAAM,CACtB,MAAM2M,EAAM3M,CAAI,EAChB,KAAK,OAAS6E,GACLnmB,EAAE,MAAO,CACd,UAAW,oBACnB,EAASA,EAAE03B,GAAiB,KAAMvR,EAAM,KAAK,IAAI6D,GAAQhqB,EAAEk2B,GAAQ,CAC3D,IAAKlM,EAAK,OAClB,EAAShqB,EAAE,IAAK,CACR,KAAM,OACd,EAASgqB,EAAK,QAAS,IAAKA,EAAK,SAAWhqB,EAAE,OAAQ,CAC9C,aAAcgqB,EAAK,QACnB,yBAA0B,WAC1B,qBAAsB,SACtB,KAAM,UACN,QAAS,IAET,MAAM,GAAGA,EAAK,OAAO;AAAA;AAAA,GAASA,EAAK,OAAO,EAAE,CACpD,EAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAEb,KAAK,KAAO,oBACZ,KAAK,GAAK,KAAK,KAAK,IAAM,WAC1B,KAAK,MAAQ,UACjB,CACE,SAAU,CACR,KAAM,CACJ,OAAA/I,CACD,EAAG,KAAK,KACLA,GACF,KAAK,MAAMA,EAAQ,IAAI,CAE7B,CACA,CACAiY,GAAS,QAAUvc,GAAY,QCpD/B,MAAMwc,GAAmB,uDACzB,SAASC,GAAcC,EAAS/X,EAAMgY,EAAQ,CAC5C,IAAI/S,EAAMgT,EAEV,MAAMC,EAAcL,GAAiB,KAAKE,CAAO,EAG3CI,GAAYlT,GAAQgT,EAAiBjY,EAAK,WAAa,KAAOiY,EAAiBC,GAAe,KAAO,OAASA,EAAY,CAAC,IAAM,KAAOjT,EAAO,aACrJ,IAAIS,EACJ,IAAKwS,GAAe,KAAO,OAASA,EAAY,CAAC,IAAM,KAAM,CAC3D,MAAME,EAAS,KAAK,mBAAmBF,EAAY,CAAC,CAAC,CAAC,EAChDG,EAAQ,IAAI,WAAWD,EAAO,MAAM,EAC1C,QAASn6B,EAAI,EAAGA,EAAIm6B,EAAO,OAAQn6B,IACjCo6B,EAAMp6B,CAAC,EAAIm6B,EAAO,WAAWn6B,CAAC,EAEhCynB,EAAO,CAAC2S,CAAK,CACjB,MAAcH,GAAe,KAAO,OAASA,EAAY,CAAC,IAAM,OAC5DxS,EAAO,CAAC,mBAAmBwS,EAAY,CAAC,CAAC,CAAC,GAS5C,OAAO,IAAI,KAAKxS,EAAM,CACpB,KAAMyS,CACV,CAAG,CACH,CC1Be,SAASG,GAAYC,EAAK,CACvC,OAAOA,EAAI,WAAW,OAAO,CAC/B,CCLe,SAASC,GAAmBvb,EAAU,CACnD,OAAKA,EAEE,sDAAsD,KAAKA,CAAQ,EAFpD,EAGxB,CCJA,SAASjf,GAAEA,EAAED,EAAEM,EAAE,CAAC,OAAON,KAAKC,EAAE,OAAO,eAAeA,EAAED,EAAE,CAAC,MAAMM,EAAE,WAAW,GAAG,aAAa,GAAG,SAAS,EAAE,CAAC,EAAEL,EAAED,CAAC,EAAEM,EAAEL,CAAC,CAAC,IAAID,GAAe,OAAO,KAApB,IAAyB,KAAK,OAAO,MAAMM,GAAe,OAAO,UAApB,IAA8BJ,GAAEI,IAAgB,OAAO,iBAApB,IAAqCH,GAAE,EAAe,OAAO,OAApB,KAAyC,OAAO,QAApB,KAA6B,CAAC,QAAQ,UAAU,CAAC,QAAQ,SAAS,MAAMC,GAAEJ,GAAE,OAAOO,GAAE,CAAC,CAACH,GAAEO,GAAEV,GAAYA,IAAT,OAAW,SAASe,GAAEf,EAAE,CAAC,OAAgBA,IAAT,SAAaA,aAAa,IAAQA,EAAE,OAAN,EAAe,OAAO,OAAOA,CAAC,EAAE,OAAOU,EAAC,EAAE,SAA/B,EAAsC,CAAC,SAASH,GAAEP,EAAE,CAAC,IAAID,EAAE,IAAI,MAAMC,CAAC,EAAE,MAAM,OAAOD,EAAE,MAAMA,CAAC,CAAC,SAASK,GAAEJ,EAAE,CAAC,IAAID,EAAE,SAASC,EAAE,CAAC,IAAID,EAAE,EAAE,OAAOC,EAAE,KAAK,UAAUD,GAAG,MAAMC,EAAE,KAAK,UAAUD,GAAG,MAAMC,EAAE,YAAYD,GAAG,MAAMC,EAAE,cAAcD,GAAG,MAAMC,EAAE,IAAI,UAAUD,GAAG,KAAKC,EAAE,QAAQ,UAAUD,GAAG,KAAKC,EAAE,KAAK,UAAUD,GAAG,MAAMA,EAAE,IAAI,EAAEC,CAAC,EAAE,OAAOA,EAAE,KAAK,UAAUD,GAAG,IAAIC,EAAE,IAAI,UAAUD,GAAG,KAAKC,EAAE,KAAK,UAAUD,GAAG,MAAMC,EAAE,IAAI,UAAUD,GAAG,KAAKA,CAAC,CAAC,MAAMU,GAAET,GAAG,OAAO,aAAa,MAAM,KAAKA,CAAC,EAAEW,GAAe,OAAO,YAApB,IAAgC,IAAI,YAAY,OAAO,EAAE,OAAM,IAAA85B,GAAC,MAAMj6B,EAAC,CAAC,OAAO,KAAK,EAAE,EAAE,CAAC,OAAO,aAAa,MAAM,EAAE,KAAK,EAAE,EAAE,IAAIA,GAAE,EAAE,OAAO,OAAO,CAAC,CAAC,CAAC,YAAY,EAAE,EAAE,EAAEH,EAAEJ,EAAE,CAAC,GAAc,OAAOA,GAAlB,YAAsB,KAAK,GAAGA,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,IAAI,WAAW,CAAC,GAAO,IAAJ,EAAM,KAAK,WAAW,EAAE,KAAK,WAAW,UAAU,aAAa,YAAY,CAAUI,IAAT,SAAaA,EAAE,EAAE,WAAW,GAAG,IAAIJ,EAAE,IAAI,SAAS,EAAE,EAAEI,CAAC,EAAE,KAAK,cAAcJ,CAAC,CAAC,SAAS,aAAa,YAAY,aAAa,UAAU,aAAaO,GAAE,CAAUH,IAAT,SAAaA,EAAE,EAAE,WAAW,IAAI,GAAG,EAAE,YAAYA,EAAE,EAAE,WAAW,EAAE,YAAYE,GAAE,0DAA0D,EAAE,IAAIN,EAAE,IAAI,SAAS,EAAE,OAAO,EAAEI,CAAC,EAAE,KAAK,cAAcJ,CAAC,CAAC,SAAmB,OAAO,GAAjB,SAAmB,CAAC,IAAIF,EAAE,IAAI,SAAS,IAAI,YAAY,CAAC,CAAC,EAAE,KAAK,cAAcA,CAAC,CAAC,MAAMQ,GAAE,0CAA0C,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC,KAAK,cAAc,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,KAAK,cAAc,IAAI,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,KAAK,SAAS,EAAE,KAAK,OAAO,EAAE,OAAO,KAAK,WAAW,EAAE,WAAW,KAAK,WAAW,EAAE,UAAU,CAAC,aAAa,EAAE,CAAC,OAAO,KAAK,WAAW,CAAC,CAAC,IAAI,EAAE,EAAEF,EAAEG,GAAE,CAAC,OAAO,aAAa,UAAU,aAAaA,GAAE,EAAE,IAAI,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,cAAc,EAAE,IAAI,WAAW,CAAC,GAAG,aAAa,YAAYD,GAAE,0CAA0C,EAAE,KAAK,QAAS,EAAC,IAAI,EAAE,CAAC,EAAE,IAAIF,EAAE,KAAK,EAAE,EAAE,UAAU,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,aAAa,CAAC,EAAE,IAAIG,GAAE,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,IAAI,WAAW,KAAK,OAAO,KAAK,WAAW,KAAK,UAAU,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,OAAO,IAAI,WAAW,KAAK,OAAO,KAAK,WAAW,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,EAAE,EAAE,KAAK,WAAW,CAA+B,OAAOP,EAA/B,KAAK,cAAc,EAAE,CAAC,EAAaU,GAAEA,GAAE,OAAOV,CAAC,EAAEK,GAAE,OAAO,KAAKL,CAAC,EAAE,SAAS,MAAM,EAAE,mBAAmB,OAAOQ,GAAER,CAAC,CAAC,CAAC,EAAE,IAAIA,CAAC,CAAC,gBAAgB,EAAE,EAAE,EAAE,KAAK,WAAW,CAAC,IAAII,EAAE,KAAK,cAAc,EAAE,CAAC,EAAE,OAAOI,GAAEJ,CAAC,CAAC,CAAC,iBAAiB,EAAE,EAAE,EAAE,KAAK,WAAW,CAAC,MAAMA,EAAE,CAAE,EAAC,QAAQJ,EAAE,EAAEA,EAAE,GAAG,EAAEA,EAAE,KAAK,WAAWA,GAAG,EAAEI,EAAE,KAAK,KAAK,UAAU,EAAEJ,CAAC,CAAC,EAAE,OAAOQ,GAAEJ,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,KAAK,SAAS,QAAQ,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,OAAO,KAAK,SAAS,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE,KAAK,GAAG,CAAC,OAAO,KAAK,SAAS,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE,KAAK,GAAG,CAAC,OAAO,KAAK,SAAS,SAAS,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,EAAE,KAAK,GAAG,CAAC,OAAO,KAAK,SAAS,UAAU,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,EAAE,KAAK,GAAG,CAAC,OAAO,KAAK,SAAS,UAAU,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,KAAK,GAAG,CAAC,OAAO,KAAK,SAAS,WAAW,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,KAAK,GAAG,CAAC,OAAO,KAAK,SAAS,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE,KAAK,GAAG,CAAC,OAAO,KAAK,SAAS,WAAW,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,EAAE,KAAK,GAAG,CAAC,OAAO,KAAK,SAAS,WAAW,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,EAAEA,EAAE,CAAC,OAAO,EAAG,CAAA,IAAK,GAAE,OAAO,KAAK,SAAS,EAAEA,CAAC,EAAE,IAAK,GAAE,OAAO,KAAK,UAAU,EAAEA,CAAC,EAAE,IAAK,GAAE,OAAO,KAAK,UAAU,EAAEA,CAAC,EAAE,IAAK,GAAE,OAAO,KAAK,WAAW,KAAK,UAAU,EAAEA,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAEA,EAAE,CAAC,OAAO,EAAC,CAAE,IAAK,GAAE,OAAO,KAAK,SAAS,EAAEA,CAAC,EAAE,IAAK,IAAG,OAAO,KAAK,UAAU,EAAEA,CAAC,EAAE,IAAK,IAAG,OAAO,KAAK,UAAU,EAAEA,CAAC,EAAE,IAAK,IAAG,OAAO,KAAK,WAAW,KAAK,UAAU,EAAEA,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,OAAO,KAAK,SAAS,SAAS,EAAE,KAAK,YAAY,IAAI,CAAC,CAAC,aAAa,EAAE,EAAC,SAASS,GAAEd,EAAED,EAAE,CAACQ,GAAE,GAAGP,CAAC,KAAKD,CAAC,kDAAkD,CAAC,CAAC,MAAMa,WAAU,GAAG,CAAC,YAAY,EAAE,CAAC,QAAQ,KAAK,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,KAAK,IAAI,CAAC,GAAGE,GAAE,KAAK,KAAK,CAAC,EAAE,IAAI,KAAK,GAAG,SAASd,EAAED,EAAE,CAACQ,GAAE,WAAWP,CAAC,KAAKD,CAAC,IAAI,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,EAAE,CAAC,EAAE,SAASe,GAAE,KAAK,KAAK,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,MAAM,KAAK,KAAK,KAAI,CAAE,CAAC,CAAC,CAAC,IAAID,GAAE,IAAID,GAAE,aAAa,EAAEK,GAAE,IAAIL,GAAE,gBAAgB,EAAEI,GAAE,IAAIJ,GAAE,aAAa,EAAE,IAAIe,GAAE5B,GAAE,MAAM,SAAS0B,GAAEzB,EAAED,EAAE,CAAC,OAAOE,EAAED,GAAG,WAAW,OAAO,GAAGC,EAAE,OAAO,IAAIiB,GAAElB,EAAED,EAAE,QAAQ,EAAEG,IAAGF,EAAE,SAAS,KAAK,EAAEgC,GAAEhC,EAAED,EAAE,MAAMwB,EAAC,EAAErB,GAAEgB,GAAElB,EAAED,EAAE,IAAI,EAAEM,GAAE2B,GAAEhC,EAAED,EAAE,MAAMwB,EAAC,EAAE,KAAKhB,GAAE,wBAAwB,EAAE,IAAIN,CAAC,CAAC,eAAe+B,GAAEhC,EAAED,EAAEM,EAAEJ,EAAE,CAAC,OAAOe,GAAE,IAAIX,CAAC,EAAEa,GAAElB,EAAED,EAAEM,CAAC,EAAEJ,EAAE,eAAeD,EAAED,EAAE,CAAC,IAAI,EAAE,MAAMA,EAAEC,CAAC,EAAE,OAAO,IAAIQ,GAAE,CAAC,CAAC,EAAER,EAAEC,CAAC,EAAE,KAAKM,GAAE,UAAUF,CAAC,gBAAgB,CAAC,CAAC,eAAea,GAAElB,EAAED,EAAEM,EAAE,CAAC,IAAIJ,EAAE,IAAIe,GAAE,IAAIX,CAAC,GAAGL,EAAED,CAAC,EAAE,OAAO,MAAME,EAAE,KAAM,EAACA,CAAC,CAAC,MAAMsB,GAAEvB,GAAG2B,GAAE3B,CAAC,EAAE,KAAM,GAAG,EAAE,YAAa,CAAA,EAAGmB,GAAEnB,GAAG,IAAI,QAAS,CAACD,EAAEM,IAAI,CAAC,IAAIJ,EAAE,IAAI,WAAWA,EAAE,UAAU,IAAIF,EAAEE,EAAE,QAAQ,IAAI,WAAW,EAAEA,EAAE,QAAQI,EAAEJ,EAAE,kBAAkBD,CAAC,CAAC,CAAG,EAAoZkC,GAAE,IAAI,IAAIO,GAAE,IAAI,IAAIX,GAAE,IAAI,IAAIF,GAAE,CAAC,UAAU,iBAAiB,qBAAqB,wBAAwB,YAAY,YAAY,EAAEF,GAAE,CAAC,OAAO,MAAM,MAAM,OAAO,MAAM,EAAEgB,GAAE,CAAC,OAAO,GAAGhB,EAAC,EAAES,GAAE,CAAC,OAAO,OAAO,OAAO,MAAM,SAAS,EAAEF,GAAE,CAAC,GAAGS,GAAE,GAAGP,EAAC,EAAEG,GAAE,CAAC,YAAY,aAAa,EAAEhB,GAAE,CAAC,gBAAgB,kBAAkB,eAAe,cAAc,EAAEc,GAAE,CAAC,GAAGd,GAAE,WAAW,cAAc,cAAc,EAAE,MAAMe,EAAC,CAAC,IAAI,WAAW,CAAC,OAAO,KAAK,eAAe,KAAK,iBAAiB,KAAK,YAAY,CAAC,CAAA,IAAAq4B,GAAC,cAAgBr4B,EAAC,CAAC,IAAI,QAAQ,CAAC,OAAO,KAAK,SAAS,KAAK,KAAK,KAAK,CAAC,CAAC,YAAYtC,EAAEM,EAAEJ,EAAE,EAAE,CAAC,GAAG,QAAQD,GAAE,KAAK,UAAU,EAAE,EAAEA,GAAE,KAAK,OAAO,IAAI,GAAG,EAAEA,GAAE,KAAK,OAAO,IAAI,GAAG,EAAEA,GAAE,KAAK,OAAO,IAAI,GAAG,EAAEA,GAAE,KAAK,gBAAgB,EAAE,EAAEA,GAAE,KAAK,kBAAkB,EAAE,EAAEA,GAAE,KAAK,eAAe,EAAE,EAAE,KAAK,IAAID,EAAE,KAAK,QAAQM,EAAE,KAAK,MAAM,KAAK,QAAQ,KAAK,kBAAkB,CAAC,EAAE,KAAK,cAAc8B,GAAE,SAASpC,CAAC,EAAE,KAAK,gBAAgB,KAAK,KAAKmC,GAAE,IAAInC,CAAC,GAAYE,IAAT,OAAW,GAAG,MAAM,QAAQA,CAAC,EAAE,KAAK,MAAM,KAAK,QAAQ,GAAG,KAAK,eAAeA,EAAE,OAAO,GAAG,KAAK,gBAAgBA,EAAE,KAAK,IAAI,UAAoB,OAAOA,GAAjB,SAAmB,CAAC,GAAG,KAAK,QAAQ,GAAG,KAAK,MAAWA,EAAE,QAAP,GAAa,KAAK,cAAc,CAAC,GAAG,CAAC,KAAKD,EAAE,KAAKD,CAAC,EAAEE,EAAED,GAAGA,EAAE,OAAO,GAAG,KAAK,gBAAgBA,EAAE,KAAK,IAAI,EAAED,GAAGA,EAAE,OAAO,GAAG,KAAK,gBAAgBA,EAAE,KAAK,IAAI,CAAC,CAAC,KAAK,kBAAkBE,CAAC,CAAC,MAAUA,IAAH,IAAWA,IAAL,GAAO,KAAK,MAAM,KAAK,QAAQA,EAAEM,GAAE,6BAA6BN,CAAC,EAAE,CAAC,CAAC,kBAAkB,EAAE,CAAC,IAAI,EAAEI,EAAE,IAAI,KAAKiB,GAAEjB,EAAE,EAAE,CAAC,EAAWA,IAAT,SAAa,KAAK,CAAC,EAAEA,EAAE,CAAC,gBAAgB,EAAE,EAAE,CAAC,GAAG,KAAK,KAAK,CAAC,IAAIA,EAAEJ,EAAE,CAAC,QAAQC,EAAE,UAAUC,CAAC,EAAE,KAAK,KAAK,IAAIE,KAAK,EAAY,OAAOA,GAAjB,UAAoBJ,EAAEE,EAAE,QAAQE,CAAC,EAAOJ,IAAL,KAASA,EAAEC,EAAE,QAAQ,OAAOG,CAAC,CAAC,GAAQJ,IAAL,IAAQ,EAAE,IAAI,OAAOC,EAAED,CAAC,CAAC,CAAC,GAAG,EAAE,IAAII,CAAC,CAAC,KAAM,SAAQA,KAAK,EAAE,EAAE,IAAIA,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,KAAK,SAAS,KAAK,KAAK,KAAK,GAAG,KAAK,QAAQ,GAAGsD,GAAE,KAAK,KAAK,KAAK,IAAI,GAAG,KAAK,SAAS,KAAK,KAAK,KAAK,GAAGA,GAAE,KAAK,KAAK,KAAK,IAAI,CAAC,CAAC,EAAC,IAAI5B,GAAE,CAAC,KAAK,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,IAAI,GAAG,QAAQ,GAAG,KAAK,OAAO,UAAU,GAAG,YAAY,GAAG,aAAa,GAAG,KAAK,CAAA,EAAG,KAAK,CAAE,EAAC,cAAc,GAAG,gBAAgB,GAAG,aAAa,GAAG,SAAS,GAAG,YAAY,GAAG,aAAa,GAAG,QAAQ,GAAG,eAAe,OAAO,mBAAmB,IAAI,sBAAsB,MAAM,UAAU,MAAM,WAAW,CAAC,EAAEkB,GAAE,IAAI,IAAI,MAAMzB,WAAUa,EAAC,CAAC,OAAO,UAAU,EAAE,CAAC,IAAI,EAAEY,GAAE,IAAI,CAAC,EAAE,OAAgB,IAAT,SAAa,EAAE,IAAI,KAAK,CAAC,EAAEA,GAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,CAAC,QAAa,IAAL,GAAO,KAAK,cAAa,EAAY,IAAT,OAAW,KAAK,mBAAoB,EAAC,MAAM,QAAQ,CAAC,EAAE,KAAK,eAAe,CAAC,EAAY,OAAO,GAAjB,SAAmB,KAAK,gBAAgB,CAAC,EAAE1C,GAAE,4BAA4B,CAAC,EAAE,EAAW,KAAK,iBAAd,SAA+B,KAAK,eAAeF,GAAE,KAAK,sBAAsB,KAAK,oBAAoB,KAAK,cAAc,KAAK,KAAK,QAAQ,IAAI,KAAK,wBAAyB,EAAC,KAAK,2BAA4B,EAAC,KAAK,mBAAoB,CAAA,CAAC,oBAAoB,CAAC,IAAI,EAAE,IAAI,KAAKuB,GAAE,KAAK,CAAC,EAAEG,GAAE,CAAC,EAAE,IAAI,KAAKK,GAAE,KAAK,CAAC,EAAEL,GAAE,CAAC,EAAE,IAAI,KAAKO,GAAE,KAAK,CAAC,EAAEP,GAAE,CAAC,EAAE,IAAI,KAAKE,GAAE,KAAK,CAAC,EAAE,IAAIJ,GAAE,EAAEE,GAAE,CAAC,EAAE,OAAO,IAAI,CAAC,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,KAAKH,GAAE,KAAK,CAAC,EAAEG,GAAE,CAAC,EAAE,IAAI,KAAKK,GAAE,KAAK,CAAC,EAAEL,GAAE,CAAC,EAAE,IAAI,KAAKO,GAAE,KAAK,CAAC,EAAE,GAAG,IAAI,KAAKL,GAAE,KAAK,CAAC,EAAE,IAAIJ,GAAE,EAAE,GAAG,OAAO,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC,IAAI,EAAE,IAAI,KAAKD,GAAE,KAAK,CAAC,EAAEG,GAAE,CAAC,EAAE,IAAI,KAAKK,GAAE,KAAK,CAAC,EAAEL,GAAE,CAAC,EAAE,IAAI,KAAKO,GAAE,KAAK,CAAC,EAAEP,GAAE,CAAC,EAAE,IAAI,KAAKE,GAAE,KAAK,CAAC,EAAE,IAAIJ,GAAE,EAAE,GAAG,OAAO,IAAI,EAAE,KAAK,mBAAmB,EAAE,OAAOM,EAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC,IAAI,EAAE,IAAI,KAAKA,GAAE,KAAKA,GAAE,MAAMA,GAAE,MAAMA,GAAE,KAAKA,GAAE,MAAMA,GAAE,UAAU,OAAO,OAAO,KAAK,CAAC,EAAEP,IAAG,KAAK,CAAC,EAAEW,GAAE,EAAE,CAAC,EAAER,GAAE,CAAC,CAAC,EAAE,IAAI,KAAKK,GAAE,KAAK,CAAC,EAAEG,GAAE,EAAE,CAAC,EAAER,GAAE,CAAC,CAAC,EAAE,IAAI,KAAKO,GAAE,KAAK,CAAC,EAAEC,GAAE,EAAE,CAAC,EAAER,GAAE,CAAC,CAAC,EAAE,IAAI,KAAKW,GAAE,KAAK,CAAC,EAAE,IAAIb,GAAE,EAAEE,GAAE,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,KAAKI,GAAE,KAAK,CAAC,EAAE,IAAIN,GAAE,EAAEE,GAAE,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,IAAI,EAAE,KAAK,mBAAmB,EAAE,KAAK,EAAE,KAAKI,GAAEF,EAAC,EAAO,EAAE,OAAP,GAAY,KAAK,oBAAoBE,GAAE,EAAE,EAAO,EAAE,OAAP,GAAY,KAAK,yBAAyBA,GAAE,CAAC,EAAE,MAAM,QAAQ,EAAE,IAAI,EAAE,KAAK,mBAAmB,EAAE,KAAK,OAAOA,EAAC,EAAY,OAAO,EAAE,MAAnB,UAAyB,KAAK,mBAAmB,EAAE,KAAK,KAAK,EAAE,KAAK,KAAKA,EAAC,CAAC,CAAC,oBAAoB,EAAE,EAAE,CAAC,QAAQ9B,KAAK,EAAE,KAAKA,CAAC,EAAE,QAAQ,CAAC,CAAC,yBAAyB,EAAE,EAAE,CAAC,QAAQA,KAAK,EAAE,CAAC,IAAIL,EAAE,EAAEK,CAAC,EAAE,KAAKA,CAAC,EAAE,QAAaL,IAAL,IAAiBA,IAAT,MAAU,CAAC,CAAC,mBAAmB,EAAE,EAAEK,EAAEJ,EAAEI,EAAE,CAAC,GAAG,GAAG,EAAE,OAAO,CAAC,QAAQL,KAAKC,EAAE,KAAKD,CAAC,EAAE,QAAQ,GAAG,IAAID,EAAE+C,GAAE,EAAEzC,CAAC,EAAE,OAAO,CAACL,EAAEK,CAAC,IAAIN,EAAE4D,GAAE,KAAK3D,CAAC,EAAE,KAAKK,CAAC,EAAE,KAAKL,CAAC,EAAE,QAAQ,EAAE,SAAS,GAAG,EAAE,OAAO,CAAC,IAAIA,EAAE8C,GAAE,EAAEzC,CAAC,EAAE,OAAO,CAACN,EAAEM,CAAC,IAAIL,EAAE2D,GAAE,KAAK5D,CAAC,EAAE,KAAKM,CAAC,CAAC,CAAC,CAAC,yBAAyB,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,IAAIA,EAAE,KAAKJ,EAAE,IAAIC,CAAC,EAAE,KAAK,KAAK,UAAU,EAAE,KAAK,IAAI,KAAK,EAAE,EAAE,KAAK,IAAI,KAAK,EAAE,KAAK,YAAY,EAAE,KAAK,IAAI,KAAK,EAAE,EAAE,KAAK,IAAI,KAAK,EAAEG,EAAE,SAAS,EAAE,KAAK,IAAI,GAAG,EAAEJ,EAAE,SAAS,EAAE,KAAK,IAAI,KAAK,EAAEC,EAAE,SAAS,EAAE,KAAK,IAAI,KAAK,CAAC,CAAC,4BAA4B,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,IAAIG,EAAE,QAAQJ,CAAC,EAAE,KAAKA,EAAE,SAAS,EAAE,KAAK,IAAI,KAAK,EAAE,EAAE,KAAK,IAAI,KAAK,GAAG,EAAE,QAAQ,EAAE,KAAK,IAAI,KAAK,EAAEI,EAAE,QAAQ,EAAE,KAAK,IAAI,KAAK,EAAE,KAAK,KAAK,QAAQ8B,GAAE,KAAMnC,GAAQ,KAAKA,CAAC,EAAE,UAAb,EAAoB,GAAI,KAAK,WAAW,KAAK,YAAY,QAAQA,KAAKmC,GAAE,KAAKnC,CAAC,EAAE,gBAAiB,CAAA,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC0B,GAAE,IAAK,GAAG,KAAK,CAAC,EAAE,OAAS,EAAC,KAAM,GAAQ,IAAL,KAAU,KAAK,KAAK,OAAO,CAAC,oBAAoB,CAAC,QAAQ,KAAKgB,GAAE,KAAK,CAAC,EAAE,SAAS,CAACzB,GAAE,IAAI,CAAC,GAAGH,GAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,SAASgC,GAAE9C,EAAED,EAAE,CAAC,IAAIM,EAAEJ,EAAE,EAAE,EAAEK,EAAE,CAAE,EAAC,IAAI,KAAKP,EAAE,CAAC,IAAI,KAAKM,EAAE6B,GAAE,IAAI,CAAC,EAAEjC,EAAE,GAAGI,IAAIL,EAAE,SAAS,EAAE,CAAC,CAAC,GAAGA,EAAE,SAAS,EAAE,CAAC,CAAC,IAAIC,EAAE,KAAK,EAAE,CAAC,CAAC,EAAEA,EAAE,QAAQK,EAAE,KAAK,CAAC,EAAEL,CAAC,CAAC,CAAC,CAAC,OAAOK,CAAC,CAAC,SAASiC,GAAEvC,EAAED,EAAE,CAAC,OAAgBC,IAAT,OAAWA,EAAWD,IAAT,OAAWA,EAAE,MAAM,CAAC,SAAS4D,GAAE3D,EAAED,EAAE,CAAC,QAAQM,KAAKN,EAAEC,EAAE,IAAIK,CAAC,CAAC,CAACL,GAAEwB,GAAE,UAAUO,EAAC,EAAE,MAAMa,EAAC,CAAC,YAAY7C,EAAE,CAACC,GAAE,KAAK,UAAU,CAAA,CAAE,EAAEA,GAAE,KAAK,SAAS,CAAE,CAAA,EAAEA,GAAE,KAAK,SAAS,CAAA,CAAE,EAAEA,GAAE,KAAK,eAAgBA,GAAG,KAAK,OAAO,KAAKA,CAAC,CAAG,EAAC,KAAK,QAAQwB,GAAE,UAAUzB,CAAC,CAAC,CAAC,MAAM,KAAK,EAAE,CAAC,KAAK,KAAK,MAAM,SAASC,EAAED,EAAE,CAAC,OAAgB,OAAOC,GAAjB,SAAmByB,GAAEzB,EAAED,CAAC,EAAEM,IAAG,CAACJ,IAAGD,aAAa,iBAAiByB,GAAEzB,EAAE,IAAID,CAAC,EAAEC,aAAa,YAAYA,aAAa,aAAaA,aAAa,SAAS,IAAIQ,GAAER,CAAC,EAAEK,IAAGL,aAAa,KAAKgC,GAAEhC,EAAED,EAAE,OAAOoB,EAAC,EAAE,KAAKZ,GAAE,wBAAwB,CAAC,EAAE,EAAE,KAAK,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,KAAK,WAAW,OAAO,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,UAAU,CAAC,EAAE,OAAO,CAACF,EAAEJ,CAAC,IAAIY,GAAE,GAAGZ,EAAE,UAAU,EAAE,CAAC,EAAE,OAAO,KAAK,WAAW,IAAIA,EAAE,KAAK,QAAQ,KAAK,KAAK,KAAK,OAAO,EAAE,EAAEI,CAAC,EAAE,GAAG,KAAK,KAAK,OAAO,KAAK,KAAK,MAAK,EAAGE,GAAE,qBAAqB,CAAC,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,KAAK,OAAO,KAAK,QAAQ,KAAK,QAAQ,cAAc,MAAM,KAAK,eAAc,EAAG,MAAM,KAAK,YAAY,EAAE,EAAE,KAAK,GAAG,KAAK,WAAW,MAAM,GAAG,MAAM,KAAK,eAAgB,EAAC,KAAK,KAAK,OAAO,KAAK,KAAK,MAAK,EAAG,KAAK,QAAQ,cAAc,EAAE,OAAO,IAAI,EAAE,OAAO,GAAGQ,GAAEV,EAAE,CAAC,EAAE,OAAOA,EAAE,IAAIA,CAAC,CAAC,MAAM,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,KAAK,MAAM,KAAK,WAAW,MAAO,EAAC,IAAI,EAAE,OAAO,OAAO,KAAK,OAAO,EAAE,IAAK,MAAMN,GAAG,CAAC,IAAIM,EAAE,MAAMN,EAAE,QAAQA,EAAE,eAAe,EAAEM,CAAC,CAAC,CAAG,EAAC,KAAK,QAAQ,eAAe,EAAE,EAAE,IAAKL,GAAGA,EAAE,MAAM,KAAK,YAAY,IAAK,MAAM,QAAQ,IAAI,CAAC,CAAC,CAAC,MAAM,kBAAkB,CAAC,KAAK,MAAO,EAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,KAAKK,EAAEY,GAAE,IAAI,OAAO,CAAC,EAAE,IAAIhB,EAAE,GAAG,EAAE,KAAKA,EAAE,CAAC,MAAM,EAAE,KAAK,MAAM,EAAE,EAAE,OAAOA,EAAE,MAAM,KAAK,WAAW,iBAAiB,MAAM,GAAYA,IAAT,OAAW,OAAO,IAAIC,EAAE,MAAM,KAAK,WAAW,mBAAmBD,CAAC,EAAEE,EAAE,KAAK,QAAQ,KAAK,IAAIE,EAAEH,EAAE,EAAE,CAAC,EAAEI,EAAE,MAAMH,EAAE,iBAAgB,EAAG,OAAO,EAAE,OAAO,EAAE,MAAK,EAAGG,CAAC,CAAC,CAA2a,MAAMuC,EAAC,CAAC,OAAO,aAAa,EAAE,EAAE,CAAC,IAAIxC,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,EAAEJ,EAAc,OAAO,KAAK,cAAxB,WAAqC,KAAK,aAAa,EAAE,EAAEI,CAAC,EAAE,KAAK,aAAaH,EAAE,EAAED,EAAEE,EAAEE,EAAEJ,EAAE,MAAM,CAAC,OAAO,EAAE,OAAOI,EAAE,aAAaJ,EAAE,MAAMC,EAAE,KAAKC,EAAE,IAAID,EAAEC,CAAC,CAAC,CAAC,OAAO,MAAM,EAAE,EAAE,CAAE,EAAC,CAAC,OAAO,IAAI,KAAK,EAAE,IAAIqB,GAAE,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,MAAK,CAAE,CAAC,eAAe,EAAE,CAAC,OAAO,aAAahB,GAAE,EAAE,IAAIA,GAAE,CAAC,CAAC,CAAC,YAAYT,EAAEM,EAAE,GAAGJ,EAAE,CAACD,GAAE,KAAK,SAAS,CAAE,CAAA,EAAEA,GAAE,KAAK,MAAM,IAAI,GAAG,EAAEA,GAAE,KAAK,cAAeA,GAAG,CAAC,GAAG,CAAC,KAAK,QAAQ,aAAa,MAAMA,EAAE,KAAK,OAAO,KAAKA,EAAE,OAAO,CAAC,GAAI,KAAK,MAAM,KAAK,eAAeD,CAAC,EAAE,KAAK,KAAKE,EAAE,KAAK,KAAK,KAAK,YAAY,KAAK,KAAK,cAAc,KAAK,QAAQI,EAAE,KAAK,aAAaA,EAAE,KAAK,IAAI,EAAE,KAAK,aAAa,KAAK,cAAc,KAAK,aAAa,SAAS,CAAC,WAAW,CAAC,KAAK,eAAe,KAAK,WAAW,KAAK,eAAe,KAAK,IAAI,KAAK,IAAI,EAAE,CAAC,IAAI,QAAQ,CAAC,OAAO,KAAK,WAAW,KAAK,WAAW,KAAK,IAAI,OAAO,YAAY,KAAK,GAAG,EAAE,MAAM,CAAC,eAAe,EAAE,EAAE,CAAC,IAAIA,EAAEyB,GAAE,IAAI,CAAC,EAAE7B,EAAEwC,GAAE,IAAI,CAAC,EAAEvC,EAAEgC,GAAE,IAAI,CAAC,EAAE/B,EAAE,KAAK,QAAQ,CAAC,EAAEG,EAAEH,EAAE,cAAc,CAAC,CAACE,EAAEK,EAAEP,EAAE,iBAAiB,CAAC,CAACF,EAAEc,EAAEZ,EAAE,eAAe,CAAC,CAACD,EAAEK,EAAE,CAAA,EAAG,OAAO,CAACR,EAAEI,CAAC,IAAI,EAAEG,GAAGD,EAAE,IAAIN,CAAC,EAAEI,EAAEE,EAAE,IAAIN,CAAC,EAAEI,CAAC,EAAEO,GAAGT,EAAE,IAAIF,CAAC,IAAII,EAAE,KAAK,eAAeA,EAAEF,EAAE,IAAIF,CAAC,CAAC,GAAGgB,GAAGb,EAAE,IAAIH,CAAC,IAAIA,EAAEG,EAAE,IAAIH,CAAC,GAAGA,GAAGQ,EAAER,CAAC,EAAEI,EAAE,OAAOI,CAAC,CAAC,eAAe,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,eAAe,EAAE,EAAE,CAAC,KAAK,qBAAqB,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,qBAAqB,EAAE,EAAEF,EAAE,CAAC,GAAG,KAAK,cAAc,YAAY,OAAO,OAAO,OAAO,EAAEA,CAAC,EAAE,EAAE,CAAC,EAAE,OAAO,OAAO,EAAE,CAAC,EAAEA,CAAC,EAAE,EAAE,CAAC,EAAEA,CAAC,CAAC,CAACL,GAAE6C,GAAE,eAAe,CAAC,EAAE7C,GAAE6C,GAAE,OAAO,MAAM,EAAE7C,GAAE6C,GAAE,eAAe,EAAE,EAAE7C,GAAE6C,GAAE,YAAa,IAAI,EAAI,EAAC,SAASM,GAAEnD,EAAE,CAAC,OAAaA,IAAN,KAAeA,IAAN,KAAeA,IAAN,KAAeA,IAAN,KAAeA,IAAN,KAAeA,IAAN,KAAeA,IAAN,GAAO,CAAC,SAASuD,GAAEvD,EAAE,CAAC,OAAOA,GAAG,KAAKA,GAAG,GAAG,CAAC,SAASsD,GAAEtD,EAAED,EAAEM,EAAE,CAAC,OAAO,CAACJ,EAAE,CAAC,IAAIgB,GAAE,GAAG,EAAE,UAAUjB,EAAED,EAAEM,CAAC,EAAE,OAAOJ,CAAC,CAAC,MAAM8G,WAAW,KAAK,CAAC,YAAYhH,EAAEM,EAAEJ,EAAE,CAACD,GAAE,KAAK,SAAS,CAAA,CAAE,EAAEA,GAAE,KAAK,qBAAsB,MAAMA,GAAG,CAAC,IAAID,EAAEC,EAAE,MAAM,EAAEA,EAAE,MAAM,MAAM,GAAG,KAAK,KAAK,QAAQ,GAAG,KAAK,KAAK,UAAUD,EAAE,CAAC,EAAEC,EAAE,MAAM,KAAK,KAAK,SAASD,EAAE,CAAC,MAAO,IAAG,CAACC,EAAE,MAAM,MAAM,KAAK,KAAK,UAAUD,EAAE,CAAC,CAAC,OAAOA,EAAE,CAACQ,GAAE,0BAA0B,KAAK,UAAUP,CAAC,CAAC,KAAKD,EAAE,OAAO,EAAE,CAAC,MAAM,KAAK,KAAK,WAAWA,EAAE,EAAEC,EAAE,MAAM,KAAK,KAAK,SAASD,EAAE,CAAC,EAAWC,EAAE,OAAX,OAAgBA,EAAE,MAAM,KAAK,KAAK,SAASD,CAAC,EAAEQ,GAAE,wBAAwB,KAAK,UAAUP,CAAC,CAAC,EAAE,OAAOA,EAAE,KAAK,CAAC,EAAG,KAAK,eAAe,KAAK,cAAcD,CAAC,EAAE,KAAK,QAAQA,EAAE,KAAK,KAAKM,EAAE,KAAK,QAAQJ,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,KAAK,QAAQ,CAAC,EAAE,SAAS,KAAK,aAAa,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC,IAAII,EAAE,IAAIY,GAAE,IAAI,CAAC,GAAG,EAAE,KAAK,QAAQ,KAAK,IAAI,EAAE,OAAO,KAAK,QAAQ,CAAC,EAAEZ,CAAC,CAAC,cAAc,EAAE,CAAC,QAAQ,KAAK,EAAE,CAAC,GAAG,CAAC,KAAKL,EAAE,MAAMK,CAAC,EAAE,EAAEJ,EAAE,KAAK,QAAQD,CAAC,EAAE,GAAGC,GAAGA,EAAE,QAAQ,CAAC,IAAIF,EAAE,KAAK,QAAQC,CAAC,EAAED,GAAGA,EAAE,QAAQA,GAAG,KAAK,aAAaC,EAAEK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE,IAAI,KAAK,kBAAkB,EAAE,MAAM,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,eAAeN,EAAE,CAAC,MAAM,GAAGA,CAAC,EAAEC,GAAE,KAAK,cAAc,CAAE,CAAA,EAAEA,GAAE,KAAK,eAAe,CAAA,CAAE,EAAEA,GAAE,KAAK,kBAAkB,CAAE,CAAA,CAAC,CAAC,OAAO,UAAU,EAAE,EAAE,CAAC,OAAe,IAAR,KAAS,CAAC,MAAM,OAAO,CAAC,MAAM,KAAK,kBAAkB,MAAM,KAAK,aAAa,KAAK,WAAW,EAAE,KAAK,qBAAqB,KAAK,cAAc,KAAK,mBAAmB,KAAK,WAAW,CAAC,CAAC,uBAAuB,EAAE,CAAM,QAAG,KAAK,QAAQ,GAAG,KAAK,OAAO,IAAI,IAAIiB,GAAE,SAAS,IAAI,EAAW,IAAT,OAAWA,GAAE,QAAO,EAAG,OAAQjB,GAAG,KAAK,QAAQA,CAAC,EAAE,OAAS,EAAC,EAAE,OAAQA,GAAG,KAAK,QAAQA,CAAC,EAAE,SAASiB,GAAE,IAAIjB,CAAC,CAAC,EAAG,KAAK,QAAQ,GAAG,KAAK,UAAU,IAAI,IAAI,CAAC,EAAE,KAAK,OAAO,IAAI,IAAI,CAAC,GAAG,KAAK,uBAAuB,EAAE,CAAC,MAAM,gBAAgB,EAAE,EAAE,EAAE,CAAC,KAAK,uBAAuB,CAAC,EAAE,GAAG,CAAC,KAAKK,EAAE,QAAQJ,EAAE,OAAOC,EAAE,UAAUC,CAAC,EAAE,KAAK,GAAG,CAACF,GAAG,KAAK,KAAK,UAAUA,EAAE,MAAM,KAAKC,CAAC,EAAE,KAAMF,GAAG,CAAC,IAAID,EAAEkB,GAAE,IAAIjB,CAAC,EAAEK,EAAE,KAAK,QAAQL,CAAC,EAAE,OAAOD,EAAE,cAAcM,EAAE,YAAY,CAAG,EAACJ,GAAG,MAAM,KAAK,KAAK,UAAW,GAAE,EAAE,KAAK,uBAAuB,EAAEI,EAAE,UAAU,EAAE,CAAC,KAAK,QAAQ,UAAUA,EAAE,QAAQ,CAAC,IAAIN,EAAE,GAAG,KAAKI,EAAE,KAAK,GAAG,CAACJ,IAAIM,EAAE,kBAAkB,KAAK,yBAAyB,CAAC,GAAG,CAAC,gBAAgBJ,CAAC,EAAEI,EAAEH,EAAE,KAAK,YAAY,KAAMF,GAAG,CAAC,KAAK,KAAK,UAAUA,EAAE,QAAQA,EAAE,MAAMA,EAAE,QAAQA,EAAE,IAAI,CAAG,EAAC,GAAGD,EAAE,EAAEE,GAAG,CAACC,EAAE,CAAC,MAAMG,EAAE,cAAc,CAAC,EAAE,CAAC,MAAMA,EAAE,cAAcJ,CAAC,GAAY,EAAE,KAAK,uBAAuB,EAAEI,EAAE,UAAU,KAAtD,OAAyD,MAAM,CAAC,CAAC,CAAC,uBAAuB,EAAE,EAAE,CAAC,GAAG,EAAE,IAAIA,EAAEJ,EAAEC,EAAEC,EAAEG,EAAEI,EAAE,CAAC,KAAKK,EAAE,QAAQR,EAAE,OAAOH,EAAE,UAAUK,EAAE,QAAQE,CAAC,EAAE,KAAK,KAAK,EAAE,EAAE,IAAI,GAASI,EAAE,SAAS,CAAC,IAAlB,KAAoB,GAAGV,EAAEU,EAAE,SAAS,EAAE,CAAC,EAAEwC,GAAElD,CAAC,EAAE,CAAC,GAAGJ,EAAEc,EAAE,UAAU,EAAE,CAAC,EAAEb,EAAEoD,GAAEvC,EAAE,EAAEd,CAAC,EAAEC,GAAGE,EAAE,IAAIF,CAAC,IAAIC,EAAEc,GAAE,IAAIf,CAAC,EAAEI,EAAEH,EAAE,aAAaY,EAAE,CAAC,EAAEL,EAAEC,EAAET,CAAC,EAAEI,EAAE,KAAKJ,EAAE,KAAK,YAAY,KAAKI,CAAC,EAAE,CAACC,IAAIJ,EAAE,cAAcO,EAAE,cAAc,KAAK,uBAAuBJ,EAAE,YAAYA,EAAE,WAAW,KAAK,wBAAwBG,EAAE,OAAOP,CAAC,GAAGO,EAAE,OAAOP,CAAC,EAAMO,EAAE,OAAN,IAAa,MAAME,EAAE,wBAAwBL,EAAEuC,GAAE,aAAa9B,EAAE,CAAC,EAAET,EAAE,OAAOD,EAAE,KAAK,gBAAgB,KAAKC,CAAC,GAAG,GAAGL,EAAE,CAAC,SAASkD,GAAE9C,CAAC,EAAE,CAAC,GAAGJ,EAAEc,EAAE,UAAU,EAAE,CAAC,EAAQV,IAAN,KAAcM,EAAE,eAAP,GAAoB,OAAOA,EAAE,oBAAoB,KAAK,aAAa,KAAK,CAAC,OAAO,EAAE,OAAOV,EAAE,OAAOI,CAAC,CAAC,EAAE,GAAGJ,EAAE,CAAC,EAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,GAAG,CAAC,KAAK,YAAY,KAAMD,GAAGA,EAAE,YAAY,EAAG,OAAO,IAAI,EAAE,SAASA,EAAED,EAAE,CAAC,IAAIM,EAAEJ,EAAEC,EAAEC,EAAE,IAAI,IAAI,QAAQG,EAAE,EAAEA,EAAEN,EAAE,OAAOM,IAAID,EAAEL,EAAEM,CAAC,EAAEL,EAAEI,EAAEN,CAAC,EAAEI,EAAE,IAAIF,CAAC,EAAEC,EAAEC,EAAE,IAAIF,CAAC,EAAEE,EAAE,IAAIF,EAAEC,EAAE,CAAA,CAAE,EAAEA,EAAE,KAAKG,CAAC,EAAE,OAAO,MAAM,KAAKF,CAAC,CAAC,EAAE,KAAK,YAAY,MAAM,EAAE,KAAK,kBAAkB,EAAE,IAAK,CAAC,CAACH,EAAED,CAAC,IAAI,CAAC,IAAIM,EAAEY,GAAE,IAAIjB,EAAE,KAAK,OAAO,EAAE,OAAGK,EAAE,oBAA2B,CAAC,KAAKL,EAAE,MAAMK,EAAE,oBAAoBN,CAAC,CAAC,EAASA,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC,WAAW,EAAE,CAAC,OAAO,KAAK,YAAY,KAAM,GAAG,EAAE,OAAO,CAAG,CAAA,CAAC,MAAM,iBAAiB,EAAE,CAAC,IAAI,EAAE,KAAK,WAAW,CAAC,EAAE,OAAgB,IAAT,SAAa,MAAM,KAAK,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,WAAW,CAAC,GAAG,CAAC,CAAC,CAACC,GAAE+G,GAAG,OAAO,MAAM,EAAElG,GAAE,IAAI,OAAOkG,EAAE,EAAE,MAAMF,GAAG,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,MAAMQ,WAAWxE,EAAC,CAAC,aAAa,CAAC,IAAI,EAAE,KAAK,MAAM,UAAW,EAAS,IAAR,MAAU,KAAK,GAAG,GAAW,IAAR,QAAY,KAAK,GAAG,IAAI,KAAK,MAAM,GAAG,KAAK,GAAG,KAAK,aAAa,EAAE,CAAC,UAAU,EAAE,EAAExC,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,KAAKJ,EAAE,KAAKC,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAED,EAAE,IAAI,IAAIA,CAAC,EAAE,IAAIE,EAAEF,EAAE,KAAK,EAAEK,EAAMJ,EAAE,OAAN,EAAWQ,EAAE,KAAK,MAAM,UAAU,CAAC,EAAE,GAAG,EAAE,QAAQK,EAAE,EAAEA,EAAEL,EAAEK,IAAI,CAAC,IAAIL,EAAE,KAAK,MAAM,UAAU,CAAC,EAAE,GAAGP,GAAG,GAAGF,EAAE,IAAIS,CAAC,IAAIL,EAAE,IAAIK,EAAE,KAAK,SAAS,EAAEA,EAAE,CAAC,CAAC,EAAET,EAAE,OAAOS,CAAC,EAAMT,EAAE,OAAN,GAAY,UAAU,CAACK,GAAGJ,EAAE,IAAIQ,CAAC,GAAGL,EAAE,IAAIK,EAAE,KAAK,SAAS,EAAEA,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,OAAOL,CAAC,CAAC,SAAS,EAAE,EAAEA,EAAE,CAAC,GAAG,CAAC,MAAMJ,CAAC,EAAE,KAAKC,EAAED,EAAE,UAAU,EAAE,CAAC,EAAEE,EAAEF,EAAE,UAAU,EAAE,CAAC,EAAEK,EAAEuG,GAAG3G,CAAC,EAAE,GAAGI,EAAEH,GAAG,EAAE,GAAG,EAAE,EAAEF,EAAE,UAAU,EAAE,CAAC,GAAGC,EAAE,GAAGA,EAAE,KAAKK,GAAE,mCAAmCF,EAAE,aAAa,UAAU,EAAE,SAAS,EAAE,CAAC,WAAWH,CAAC,YAAY,CAAC,EAAE,EAAE,EAAED,EAAE,YAAYM,GAAE,qCAAqCF,EAAE,aAAa,UAAU,EAAE,SAAS,EAAE,CAAC,WAAWH,CAAC,YAAY,CAAC,6BAA6BD,EAAE,UAAU,EAAE,EAAMC,IAAJ,EAAM,OAAOD,EAAE,cAAc,EAAEE,CAAC,EAAE,GAAOD,IAAJ,EAAM,OAAYQ,EAAE,SAASV,EAAE,CAAC,KAAKA,EAAE,SAAS,IAAI,GAAGA,EAAEA,EAAE,MAAM,EAAE,EAAE,EAAE,OAAOA,CAAC,EAAEU,EAAET,EAAE,UAAU,EAAEE,CAAC,CAAC,EAAE,KAAI,KAA7F,GAAiG,OAAOO,EAAE,IAAIA,EAAE,GAAOR,IAAJ,EAAM,OAAOD,EAAE,cAAc,EAAEE,CAAC,EAAE,GAAOA,IAAJ,EAAM,OAAO,KAAK,cAAcD,EAAE,CAAC,EAAE,CAAC,IAAIH,EAAE,IAAI,SAASC,EAAE,CAAC,OAAOA,EAAC,CAAE,IAAK,GAAE,OAAO,WAAW,IAAK,GAAE,OAAO,YAAY,IAAK,GAAE,OAAO,YAAY,IAAK,GAAE,OAAO,MAAM,IAAK,GAAE,OAAO,UAAU,IAAK,GAAE,OAAO,WAAW,IAAK,GAAE,OAAO,WAAW,IAAK,IAAG,OAAO,MAAM,IAAK,IAAG,OAAO,aAAa,IAAK,IAAG,OAAO,aAAa,QAAQ,OAAO,KAAK,CAAC,EAAEE,CAAC,GAAGC,CAAC,EAAEE,EAAEC,EAAE,QAAQL,EAAE,EAAEA,EAAEE,EAAEF,IAAIF,EAAEE,CAAC,EAAE,KAAK,cAAcC,EAAE,CAAC,EAAE,GAAGG,EAAE,OAAON,CAAC,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,GAAG,CAAC,MAAMM,CAAC,EAAE,KAAK,OAAO,EAAC,CAAE,IAAK,GAAE,OAAOA,EAAE,SAAS,CAAC,EAAE,IAAK,GAAE,OAAOA,EAAE,UAAU,CAAC,EAAE,IAAK,GAAE,OAAOA,EAAE,UAAU,CAAC,EAAE,IAAK,GAAE,OAAOA,EAAE,UAAU,CAAC,EAAEA,EAAE,UAAU,EAAE,CAAC,EAAE,IAAK,GAAE,OAAOA,EAAE,QAAQ,CAAC,EAAE,IAAK,GAAE,OAAOA,EAAE,SAAS,CAAC,EAAE,IAAK,GAAE,OAAOA,EAAE,SAAS,CAAC,EAAE,IAAK,IAAG,OAAOA,EAAE,SAAS,CAAC,EAAEA,EAAE,SAAS,EAAE,CAAC,EAAE,IAAK,IAAG,OAAOA,EAAE,SAAS,CAAC,EAAE,IAAK,IAAG,OAAOA,EAAE,UAAU,CAAC,EAAE,IAAK,IAAG,OAAOA,EAAE,UAAU,CAAC,EAAE,QAAQE,GAAE,qBAAqB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM2G,WAAWG,EAAE,CAAC,OAAO,UAAU,EAAE,EAAE,CAAC,OAAa,EAAE,SAAS,EAAE,CAAC,IAApB,KAAoC,EAAE,UAAU,EAAE,CAAC,IAA5B,YAAmC,EAAE,UAAU,EAAE,CAAC,IAAnB,CAAoB,CAAC,MAAM,OAAO,CAAC,KAAK,YAAa,EAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,KAAK,OAAO,EAAE,KAAK,SAAS,MAAM,KAAK,iBAAiB,EAAE,KAAK,SAAS,MAAM,KAAK,UAAU,gBAAgB,EAAE,EAAE,IAAI,SAAS,MAAM,KAAK,UAAU,eAAe,EAAE,EAAE,QAAQ,SAAS,MAAM,KAAK,UAAU,mBAAmB,EAAE,EAAE,KAAK,SAAS,MAAM,KAAK,UAAU,qBAAqB,EAAE,KAAK,aAAc,CAAA,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,OAAgB,EAAE,QAAX,SAAmB,EAAE,EAAE,MAAM,KAAK,WAAW,GAAG,CAAC,CAAC,gBAAgB,CAAU,KAAK,aAAR,SAAqB,KAAK,WAAW,KAAK,MAAM,UAAU,CAAC,EAAE,CAAC,gBAAgB,CAAC,GAAY,KAAK,aAAd,OAAyB,CAAC,KAAK,eAAc,EAAG,IAAI,EAAE,KAAK,MAAM,UAAU,KAAK,UAAU,EAAE,EAAE,KAAK,WAAW,EAAE,GAAG,EAAE,KAAK,WAAW,KAAK,MAAM,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,IAAIhH,EAAE,IAAI,IAAI,OAAO,KAAK,CAAC,EAAEA,EAAE,KAAK,UAAU,EAAE,EAAEA,CAAC,EAAEA,CAAC,CAAC,MAAM,gBAAgB,CAAC,GAAG,KAAK,KAAK,OAAO,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,KAAK,eAAc,EAAG,KAAK,WAAW,GAAGE,GAAE,qBAAqB,EAAE,CAAC,EAAE,SAAS,KAAK,WAAW,EAAE,YAAYA,GAAE;AAAA,mBAA4D,KAAK,UAAU,sBAAsB,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,MAAM,EAAE,YAAY,KAAK,WAAWH,GAAE,KAAK,OAAO,CAAC,EAAE,IAAI,EAAE,KAAK,WAAW,KAAK,WAAW,MAAM,EAAE,OAAW,EAAE,OAAN,GAAY,KAAK,WAAW,EAAE,IAAI,KAAK,EAAE,KAAK,cAAc,EAAE,IAAI,KAAK,EAAE,KAAK,UAAU,EAAE,IAAI,KAAK,EAAE,KAAK,IAAI,EAAE,IAAI,GAAG,EAAE,KAAK,KAAK,EAAE,IAAI,KAAK,EAAE,KAAK,IAAI,EAAE,IAAI,KAAK,EAAE,KAAK,QAAQ,WAAW,EAAE,OAAO,KAAK,EAAE,EAAE,OAAO,KAAK,EAAE,EAAE,OAAO,KAAK,EAAE,EAAE,OAAO,GAAG,EAAE,EAAE,OAAO,KAAK,EAAE,EAAE,OAAO,KAAK,GAAG,GAAG,MAAM,CAAC,MAAM,gBAAgB,CAAqB,GAAjB,KAAK,OAAe,KAAK,MAAM,MAAM,KAAK,iBAA0B,KAAK,aAAd,QAAyB,OAAO,KAAK,KAAK,MAAM,MAAM,KAAK,KAAK,YAAY,KAAK,WAAWA,GAAE,KAAK,OAAO,CAAC,EAAE,IAAI,EAAE,KAAK,WAAW,KAAK,WAAW,MAAM,EAAE,OAAO,KAAK,gBAAgB,KAAK,cAAc,EAAE,IAAI,KAAK,GAAG,KAAK,UAAU,EAAE,IAAI,KAAK,EAAE,KAAK,YAAY,EAAE,IAAI,KAAK,EAAE,KAAK,QAAQ,WAAW,EAAE,OAAO,KAAK,EAAE,EAAE,OAAO,KAAK,EAAE,EAAE,OAAO,KAAK,GAAG,KAAK,OAAO,EAAE,KAAK,EAAE,KAAK,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAIC,EAAE,EAAE,IAAI,CAAC,EAAEA,GAAOA,EAAE,SAAN,GAAc,EAAE,IAAI,EAAEA,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,eAAe,CAAoB,GAAhB,KAAK,MAAc,KAAK,MAAM,MAAM,KAAK,iBAA0B,KAAK,YAAd,QAAwB,OAAO,IAAI,EAAE,KAAK,WAAW,KAAK,UAAU,KAAK,EAAE,OAAO,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,WAAW4G,GAAG,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,YAAYA,GAAG,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,mBAAmB,CAAC,GAAG,CAAC,KAAK,UAAU,KAAK,MAAM,MAAM,KAAK,iBAA0B,KAAK,gBAAd,QAA6B,KAAK,MAAM,MAAM,KAAK,eAAgB,EAAU,KAAK,gBAAd,QAA6B,OAAO,KAAK,WAAW,KAAK,cAAc,SAAS,CAAC,CAAC,MAAM,oBAAoB,EAAE,GAAG,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,KAAK,aAAa,CAAC,KAAK,QAAQ,aAAa,GAAG,OAAO,KAAK,iBAAiB,KAAK,WAAW,IAAI,KAAK,WAAW,KAAK,WAAW,MAAM,EAAE,KAAK,WAAW,IAAI,KAAK,IAAI,CAAC,MAAM,kBAAkB,CAAC,GAAG,KAAK,cAAc,KAAK,YAAW,EAAG,KAAK,YAAY,MAAM,KAAK,oBAAoB,EAAE,EAAW,KAAK,OAAd,OAAmB,OAAO,IAAI,EAAE,KAAK,KAAK,IAAI,GAAG,EAAE,EAAE,KAAK,KAAK,IAAI,GAAG,EAAE,OAAO,KAAK,MAAM,cAAc,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI,CAAC,IAAI,WAAW,CAAC,OAAO,KAAK,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE5G,EAAEJ,EAAE,CAAA,EAAG,IAAI,KAAKkC,GAAE,GAAG,EAAE,KAAK,CAAC,EAAE,CAACpB,GAAE,CAAC,EAAE,GAAGV,EAAE,KAAK,aAAa,KAAK,eAAe,EAAE,CAAC,EAAE,OAAO,YAAY,CAAC,EAAE,KAAK,QAAQ,YAAY,CAAC,GAAY,IAAT,OAAW,SAAS,OAAO,OAAOJ,EAAEI,CAAC,CAAC,MAAMJ,EAAE,CAAC,EAAEI,EAAE,OAAO,KAAK,YAAYJ,EAAE,UAAU,KAAK,WAAW,KAAK,cAAcA,EAAE,YAAY,KAAK,aAAaA,CAAC,CAAC,eAAe,EAAE,EAAE,CAAC,GAAG,KAAK,cAAc,YAAY,OAAO,OAAO,EAAE,CAAC,MAAO,QAAO,CAACI,EAAEJ,CAAC,IAAI,OAAO,QAAQ,CAAC,EAAE,KAAK,qBAAqB,EAAEI,EAAEJ,CAAC,CAAC,CAAC,CAAC,SAASgH,GAAGjH,EAAED,EAAEM,EAAEJ,EAAE,CAAC,IAAI,EAAED,EAAED,EAAE,GAAGM,EAAE,KAAK,OAAYJ,IAAN,KAAeA,IAAN,MAAU,GAAG,IAAI,CAAC,CAACD,GAAEkH,GAAG,OAAO,MAAM,EAAElH,GAAEkH,GAAG,eAAe,EAAE,EAAEjG,GAAE,IAAI,OAAOiG,EAAE,EAAsX,MAACI,GAAG,CAAC,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,IAAI,GAAG,QAAQ,GAAG,SAAS,GAAG,aAAa,GAAG,cAAc,GAAG,gBAAgB,GAAG,YAAY,EAAE,EAAK,OAAO,OAAO,CAAE,EAACA,GAAG,CAAC,eAAe,IAAI,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAqK,OAAO,OAAO,CAAE,EAACA,GAAG,CAAC,KAAK,GAAG,KAAK,GAAG,YAAY,EAAE,CAAC,EAAqO,MAAMK,GAAG,OAAO,OAAO,CAAE,EAACL,GAAG,CAAC,eAAe,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,eAAeE,GAAGxH,EAAE,CAAC,IAAID,EAAE,IAAI6C,GAAE+E,EAAE,EAAE,MAAM5H,EAAE,KAAKC,CAAC,EAAE,IAAIK,EAAE,MAAMN,EAAE,QAAQ,GAAGM,GAAGA,EAAE,KAAK,OAAOA,EAAE,KAAK,GAAG,CAAC,CAAC,MAAM0H,GAAG,OAAO,OAAO,CAAC,EAAE,CAAC,iBAAiB,GAAG,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,GAAG,OAAO,GAAG,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,GAAG,OAAO,EAAE,OAAO,EAAE,IAAI,IAAI,IAAI,IAAI,KAAK,GAAG,GAAG,EAAE,EAAE,CAAC,iBAAiB,GAAG,OAAO,GAAG,OAAO,EAAE,IAAI,IAAI,IAAI,IAAI,KAAK,GAAG,GAAG,EAAE,EAAE,CAAC,iBAAiB,GAAG,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,GAAG,EAAE,EAAE,CAAC,iBAAiB,GAAG,OAAO,EAAE,OAAO,EAAE,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,GAAG,EAAE,EAAE,CAAC,iBAAiB,GAAG,OAAO,EAAE,OAAO,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,GAAG,GAAG,EAAE,EAAE,CAAC,iBAAiB,GAAG,OAAO,EAAE,OAAO,EAAE,IAAI,IAAI,IAAI,IAAI,KAAK,GAAG,GAAG,CAAC,CAAC,EAAE,IAAIH,GAAG,GAAGC,GAAG,GAAG,GAAa,OAAO,WAAjB,SAA2B,CAAC,IAAI7H,EAAE,UAAU,UAAU,GAAGA,EAAE,SAAS,MAAM,GAAGA,EAAE,SAAS,QAAQ,EAAE,CAAC,IAAID,EAAEC,EAAE,MAAM,gBAAgB,EAAE,GAAGD,EAAE,CAAC,GAAG,CAAA,CAAEC,EAAEK,CAAC,EAAEN,EAA2B6H,GAAvB,OAAO5H,CAAC,EAAE,GAAG,OAAOK,CAAC,EAAO,KAAKwH,GAAG,EAAE,CAAC,SAAS7H,EAAE,SAAS,SAAS,EAAE,CAAC,GAAG,CAAE,CAAAD,CAAC,EAAEC,EAAE,MAAM,kBAAkB,EAAE4H,GAAGC,GAAG,OAAO9H,CAAC,EAAE,EAAE,CAAC,GAAGC,EAAE,SAAS,SAAS,EAAE,CAAC,GAAG,CAAE,CAAAD,CAAC,EAAEC,EAAE,MAAM,eAAe,EAAE4H,GAAGC,GAAG,OAAO9H,CAAC,EAAE,EAAE,SAASC,EAAE,SAAS,UAAU,EAAE,CAAC,GAAG,CAAE,CAAAD,CAAC,EAAEC,EAAE,MAAM,gBAAgB,EAAE4H,GAAGC,GAAG,OAAO9H,CAAC,EAAE,EAAE,CAAC,CAAC,eAAeqI,GAAGpI,EAAE,CAAC,IAAID,EAAE,MAAMyH,GAAGxH,CAAC,EAAE,OAAO,OAAO,OAAO,CAAC,OAAO4H,GAAG,IAAIC,EAAE,EAAEE,GAAGhI,CAAC,CAAC,CAAC,CAAC,MAAMkI,WAAWzH,EAAC,CAAC,eAAeT,EAAE,CAAC,MAAM,GAAGA,CAAC,EAAEC,GAAE,KAAK,SAAS,IAAI2I,EAAE,EAAM,KAAK,aAAT,GAAqB,KAAK,OAAO,IAAI,EAAE,KAAK,UAAU,CAAC,CAAC,WAAW,EAAE,EAAEtI,EAAE,CAAC,GAAO,IAAJ,GAAW,KAAK,aAAT,GAAqBA,EAAE,CAAC,IAAIL,EAAE,IAAI,SAASK,EAAE,QAAQA,EAAEA,EAAE,WAAWA,EAAE,UAAU,EAAE,KAAK,cAAcL,CAAC,CAAC,KAAK,CAAC,IAAIK,EAAE,EAAE,EAAE,GAAGA,EAAE,KAAK,WAAW,CAAC,GAAG,CAAC,SAASL,CAAC,EAAE,KAAK,QAAQK,CAAC,EAAE,KAAK,cAAcL,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAEM,GAAEH,GAAE,YAAY,CAAC,EAAE,IAAI,WAAW,CAAC,EAAE,IAAIE,EAAE,IAAI,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,IAAI,WAAW,KAAK,OAAO,KAAK,WAAW,KAAK,UAAU,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,SAASA,CAAC,CAAC,CAAC,SAAS,EAAE,EAAEA,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,KAAK,aAAa,CAAC,EAAEA,GAAG,KAAK,WAAW,EAAE,CAAC,EAAE,KAAK,OAAO,IAAI,EAAE,CAAC,EAAE,MAAM,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAEA,EAAE,GAAG,CAACA,GAAG,KAAK,WAAW,EAAE,EAAE,WAAW,CAAC,EAAE,IAAIJ,EAAE,MAAM,IAAI,EAAE,CAAC,EAAE,OAAO,KAAK,OAAO,IAAI,EAAEA,EAAE,UAAU,EAAEA,CAAC,CAAC,MAAM,YAAY,EAAE,EAAE,CAAC,KAAK,UAAU,KAAK,OAAO,UAAU,EAAE,CAAC,GAAG,MAAM,KAAK,UAAU,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,OAAO,KAAK,OAAO,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM0I,EAAE,CAAC,aAAa,CAAC3I,GAAE,KAAK,OAAO,CAAA,CAAE,CAAC,CAAC,IAAI,QAAQ,CAAC,OAAO,KAAK,KAAK,MAAM,CAAC,IAAI,EAAE,EAAEK,EAAE,EAAE,CAAC,IAAIJ,EAAE,EAAE,EAAEC,EAAE,KAAK,KAAK,OAAQH,GAAG2I,GAAG,EAAE3I,EAAE,OAAOE,CAAC,GAAGyI,GAAG,EAAE3I,EAAE,IAAIE,CAAC,CAAC,EAAG,GAAGC,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,IAAI,EAAE,GAAGA,EAAE,IAAKF,GAAGA,EAAE,MAAM,CAAE,EAAEC,EAAE,KAAK,IAAIA,EAAE,GAAGC,EAAE,IAAKF,GAAGA,EAAE,GAAK,CAAA,EAAE,EAAEC,EAAE,EAAE,IAAI,EAAEC,EAAE,MAAO,EAAC,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,IAAID,EAAE,KAAK,KAAK,KAAK,KAAK,OAAQD,GAAG,CAACE,EAAE,SAASF,CAAC,CAAC,CAAE,MAAM,KAAK,KAAK,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,IAAIC,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,IAAII,EAAE,EAAE,EAAE,OAAO,KAAK,KAAK,KAAMN,GAAGA,EAAE,QAAQ,GAAGM,GAAGN,EAAE,IAAK,CAAC,CAAC,SAAS2I,GAAG1I,EAAED,EAAEM,EAAE,CAAC,OAAOL,GAAGD,GAAGA,GAAGM,CAAC,CAAC,MAAM2I,WAAWf,EAAE,CAAC,YAAYlI,EAAEM,EAAE,CAAC,MAAM,CAAC,EAAEL,GAAE,KAAK,aAAa,CAAC,EAAE,KAAK,MAAMD,EAAE,KAAK,QAAQM,CAAC,CAAC,MAAM,WAAW,CAAC,KAAK,QAAQ,GAAG,MAAM,KAAK,UAAU,KAAK,eAAe,CAAC,CAAC,MAAM,aAAa,CAAC,KAAK,QAAQ,GAAG,MAAM,KAAK,UAAU,EAAE,KAAK,QAAQ,cAAc,CAAC,CAAC,MAAM,cAAc,EAAE,KAAK,gBAAgB,CAAC,GAAG,KAAK,UAAU,OAAO,KAAK,aAAa,GAAG,IAAI,EAAE,KAAK,QAAQ,UAAUA,EAAE,MAAM,KAAK,UAAU,EAAE,CAAC,EAAE,MAAM,CAAC,CAACA,GAAGA,EAAE,aAAa,CAAC,CAAC,MAAM,UAAU,EAAE,EAAE,CAAC,GAAG,KAAK,cAAkB,EAAE,KAAK,gBAAgB,EAAE,CAAC,KAA/B,EAAkC,OAAO,KAAK,WAAW,EAAE,CAAC,CAAC,CAAC,gBAAgB,EAAE,EAAE,CAAC,OAAgB,KAAK,OAAd,QAAoB,EAAE,EAAE,KAAK,KAAK,KAAK,IAAI,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,iBAAiB,CAAC,GAAO,KAAK,OAAO,KAAK,SAArB,EAA4B,OAAO,KAAK,OAAO,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,kBAAkB,CAAC,OAAO,KAAK,WAAW,KAAK,QAAQ,UAAU,CAAC,IAAI,WAAW,CAAC,OAAgB,KAAK,OAAd,QAAoB,KAAK,kBAAkB,KAAK,IAAI,CAAC,MAAM,CAAC,OAAO,KAAK,QAAQ,QAAQ,KAAK,YAAa,EAAC,KAAK,UAAW,CAAA,CAAC,OAAO,EAAE,CAACW,GAAE,IAAI,OAAO,cAAcgI,EAAE,CAAC,MAAM,WAAW,CAAC,KAAK,QAAQ,GAAG,IAAIhJ,EAAE,MAAMmB,GAAE,KAAK,KAAK,EAAE,KAAK,iBAAiBnB,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,KAAK,QAAQ,GAAG,KAAK,KAAK,KAAK,MAAM,KAAK,MAAM,YAAW,CAAE,CAAC,MAAM,WAAWA,EAAED,EAAE,CAAC,IAAIM,EAAEN,EAAEC,EAAED,EAAE,OAAOE,EAAE,KAAK,MAAM,MAAMD,EAAEK,CAAC,EAAE,EAAE,MAAMc,GAAElB,CAAC,EAAE,OAAO,KAAK,IAAI,EAAED,EAAE,EAAE,CAAC,CAAC,CAAC,ECAvu3B,MAAe26B,GAAA,CACb,QAAS,CACP,qBAAsB,0BAC1B,CACA,ECMMtd,GAAc,CAClB,QAAW,OACb,EAKA,SAASud,GAAaC,EAAQ7iB,EAAM8iB,EAAS,CAC3C,GAAI,CACFD,EAAO,WAAW,IAAI,EAAE,aAAa,EAAG,EAAG,EAAG,CAAC,CAChD,OAAQpS,EAAK,CACZ,GAAIA,EAAI,OAAS,GACf,OAAO,QAAQ,OAAO,IAAI,MAAM,4DAA4D,CAAC,CAEnG,CACE,OAAIoS,EAAO,OACF,IAAI,QAAQE,GAAW,CAC5BF,EAAO,OAAOE,EAAS/iB,EAAM8iB,CAAO,CAC1C,CAAK,EAAE,KAAKE,GAAQ,CACd,GAAIA,IAAS,KACX,MAAM,IAAI,MAAM,4DAA4D,EAE9E,OAAOA,CACb,CAAK,EAEI,QAAQ,UAAU,KAAK,IACrBlB,GAAce,EAAO,UAAU7iB,EAAM8iB,CAAO,EAAG,EAAE,CACzD,EAAE,KAAKE,GAAQ,CACd,GAAIA,IAAS,KACX,MAAM,IAAI,MAAM,iDAAiD,EAEnE,OAAOA,CACX,CAAG,CACH,CACA,SAASC,GAAYC,EAAOC,EAAW,CACrC,IAAIx5B,EAAIu5B,EAAM,MACVx6B,EAAIw6B,EAAM,QACVC,EAAU,MAAQ,IAAMA,EAAU,MAAQ,OAC5Cx5B,EAAIu5B,EAAM,OACVx6B,EAAIw6B,EAAM,OAEZ,MAAML,EAAS,SAAS,cAAc,QAAQ,EAC9CA,EAAO,MAAQl5B,EACfk5B,EAAO,OAASn6B,EAChB,MAAM6tB,EAAUsM,EAAO,WAAW,IAAI,EACtC,OAAAtM,EAAQ,UAAU5sB,EAAI,EAAGjB,EAAI,CAAC,EAC1By6B,EAAU,SACZ5M,EAAQ,OAAO4M,EAAU,GAAG,EAC5B5M,EAAQ,MAAM4M,EAAU,OAAQA,EAAU,MAAM,GAElD5M,EAAQ,UAAU2M,EAAO,CAACA,EAAM,MAAQ,EAAG,CAACA,EAAM,OAAS,EAAGA,EAAM,MAAOA,EAAM,MAAM,EAChFL,CACT,CAMA,SAASO,GAAQF,EAAO,CAGtB,MAAMG,EAAQH,EAAM,MAAQA,EAAM,OAC5BI,EAAY,IACZC,EAAU,KAEhB,IAAIC,EAAO,KAAK,MAAM,KAAK,KAAKF,EAAYD,CAAK,CAAC,EAC9CI,EAAO,KAAK,MAAMH,EAAY,KAAK,KAAKA,EAAYD,CAAK,CAAC,EAS9D,GARIG,EAAOD,IACTC,EAAOD,EACPE,EAAO,KAAK,MAAMD,EAAOH,CAAK,GAE5BI,EAAOF,IACTE,EAAOF,EACPC,EAAO,KAAK,MAAMH,EAAQI,CAAI,GAE5BP,EAAM,MAAQM,EAAM,CACtB,MAAMX,EAAS,SAAS,cAAc,QAAQ,EAC9C,OAAAA,EAAO,MAAQW,EACfX,EAAO,OAASY,EAChBZ,EAAO,WAAW,IAAI,EAAE,UAAUK,EAAO,EAAG,EAAGM,EAAMC,CAAI,EAClDZ,CACX,CACE,OAAOK,CACT,CACA,MAAMrZ,GAAiB,CACrB,eAAgB,KAChB,gBAAiB,KACjB,cAAe,aACf,8BAA+B,GAC/B,KAAM,EACR,EAKe,MAAM6Z,WAA2B1M,EAAS,CACvD,YAAYL,EAAM3M,EAAM,CAgFtB,GA/EA,MAAM2M,EAAM,CACV,GAAG9M,GACH,GAAGG,CACT,CAAK,EACD,KAAK,YAAc3D,GAAQ,CACrB,CAACA,EAAK,SAAWA,EAAK,MAAQmc,GAAmBnc,EAAK,IAAI,GAAK,CAACA,EAAK,UACvE,KAAK,WAAWA,EAAK,EAAE,CAE1B,EAID,KAAK,gBAAkBA,GAAQ,CAC7B,MAAMxF,EAAQ,KAAK,MAAM,QAAQwF,EAAK,EAAE,EACpCxF,IAAU,IACZ,KAAK,MAAM,OAAOA,EAAO,CAAC,CAE7B,EAID,KAAK,cAAgBwF,GAAQ,CAC3B,MAAMxF,EAAQ,KAAK,MAAM,QAAQwF,EAAK,EAAE,EACpCxF,IAAU,IACZ,KAAK,MAAM,OAAOA,EAAO,CAAC,EAIxBwF,EAAK,SAAWic,GAAYjc,EAAK,OAAO,GAC1C,IAAI,gBAAgBA,EAAK,OAAO,CAEnC,EACD,KAAK,WAAa,IAAM,CACA,KAAK,KAAK,SAAU,EAAC,OAAOA,GAAQA,EAAK,UAAU,EAC3D,QAAQA,GAAQ,EAExB,CAACA,EAAK,SAAWic,GAAYjc,EAAK,OAAO,IAC3C,KAAK,WAAWA,EAAK,EAAE,CAEjC,CAAO,CACF,EACD,KAAK,kBAAoB,IAAM,CAC7B,KAAK,MAAQ,CAAE,CAChB,EACD,KAAK,sBAAwB6K,GAAW,CACtCA,EAAQ,QAAQhC,GAAU,CACxB,MAAM7I,EAAO,KAAK,KAAK,QAAQ6I,CAAM,EACrC,KAAK,KAAK,KAAK,sBAAuB7I,EAAM,CAC1C,KAAM,gBACN,QAAS,KAAK,KAAK,sBAAsB,CACnD,CAAS,CACT,CAAO,EACD,MAAMsd,EAA+B,IAAM,CACzCzS,EAAQ,QAAQhC,GAAU,CACxB,MAAM7I,EAAO,KAAK,KAAK,QAAQ6I,CAAM,EACrC,KAAK,KAAK,KAAK,sBAAuB7I,CAAI,CACpD,CAAS,CACF,EACD,OAAO,IAAI,QAAQ0c,GAAW,CACxB,KAAK,gBACP,KAAK,KAAK,KAAK,0BAA2B,IAAM,CAC9CY,EAA8B,EAC9BZ,EAAS,CACrB,CAAW,GAEDY,EAA8B,EAC9BZ,EAAS,EAEnB,CAAO,CACF,EACD,KAAK,KAAO,WACZ,KAAK,GAAK,KAAK,KAAK,IAAM,qBAC1B,KAAK,MAAQ,sBACb,KAAK,MAAQ,CAAE,EACf,KAAK,gBAAkB,GACvB,KAAK,0BAA4B,IACjC,KAAK,cAAgB,KAAK,KAAK,cAC/B,KAAK,cAAgB1kB,GACrB,KAAK,SAAU,EACX,KAAK,KAAK,MAAQ,KAAK,KAAK,8BAC9B,MAAM,IAAI,MAAM,wJAAwJ,CAE9K,CACE,gBAAgBgI,EAAMud,EAAaC,EAAc,CAC/C,MAAMC,EAAc,IAAI,gBAAgBzd,EAAK,IAAI,EAC3C0d,EAAS,IAAI,QAAQ,CAAChB,EAASiB,IAAW,CAC9C,MAAMd,EAAQ,IAAI,MAClBA,EAAM,IAAMY,EACZZ,EAAM,iBAAiB,OAAQ,IAAM,CACnC,IAAI,gBAAgBY,CAAW,EAC/Bf,EAAQG,CAAK,CACrB,CAAO,EACDA,EAAM,iBAAiB,QAASxkB,GAAS,CACvC,IAAI,gBAAgBolB,CAAW,EAC/BE,EAAOtlB,EAAM,OAAS,IAAI,MAAM,4BAA4B,CAAC,CACrE,CAAO,CACP,CAAK,EACKulB,EAAqBC,GAAS7d,EAAK,IAAI,EAAE,MAAM,IAAM,CAAC,EAC5D,OAAO,QAAQ,IAAI,CAAC0d,EAAQE,CAAkB,CAAC,EAAE,KAAKhV,GAAQ,CAC5D,GAAI,CAACiU,EAAOiB,CAAW,EAAIlV,EAC3B,MAAMmV,EAAa,KAAK,0BAA0BlB,EAAOU,EAAaC,EAAcM,EAAY,GAAG,EAC7FE,EAAepB,GAAYC,EAAOiB,CAAW,EAC7CG,EAAe,KAAK,YAAYD,EAAcD,EAAW,MAAOA,EAAW,MAAM,EACvF,OAAOxB,GAAa0B,EAAc,KAAK,cAAe,EAAE,CAC9D,CAAK,EAAE,KAAKtB,GACC,IAAI,gBAAgBA,CAAI,CAChC,CACL,CAQE,0BAA0BuB,EAAK7H,EAAO8H,EAAQC,EAAK,CAEjD,IAAIC,EAASH,EAAI,MAAQA,EAAI,OAI7B,OAHIE,IAAQ,IAAMA,IAAQ,OACxBC,EAASH,EAAI,OAASA,EAAI,OAExB7H,GAAS,KACJ,CACL,MAAAA,EACA,OAAQ,KAAK,MAAMA,EAAQgI,CAAM,CAClC,EAECF,GAAU,KACL,CACL,MAAO,KAAK,MAAMA,EAASE,CAAM,EACjC,OAAAF,CACD,EAEI,CACL,MAAO,KAAK,0BACZ,OAAQ,KAAK,MAAM,KAAK,0BAA4BE,CAAM,CAC3D,CACL,CAQE,YAAYxB,EAAOU,EAAaC,EAAc,CAI5C,IAAIU,EAAMnB,GAAQF,CAAK,EACnBnN,EAAQ,KAAK,KAAK,KAAK,KAAKwO,EAAI,MAAQX,CAAW,CAAC,EACpD7N,EAAQ,IACVA,EAAQ,GAEV,IAAI4O,EAAKf,EAAc,IAAM7N,EAAQ,GACjC6O,EAAKf,EAAe,IAAM9N,EAAQ,GACtC,MAAM3sB,EAAI,EACV,KAAO2sB,KAAS,CACd,MAAM8M,EAAS,SAAS,cAAc,QAAQ,EAC9CA,EAAO,MAAQ8B,EACf9B,EAAO,OAAS+B,EAChB/B,EAAO,WAAW,IAAI,EAAE,UAAU0B,EAAK,EAAG,EAAGI,EAAIC,CAAE,EACnDL,EAAM1B,EACN8B,EAAK,KAAK,MAAMA,EAAKv7B,CAAC,EACtBw7B,EAAK,KAAK,MAAMA,EAAKx7B,CAAC,CAC5B,CACI,OAAOm7B,CACX,CAKE,cAAcrV,EAAQ2V,EAAS,CAC7B,KAAK,KAAK,aAAa3V,EAAQ,CAC7B,QAAA2V,CACN,CAAK,CACL,CACE,WAAW3V,EAAQ,CACjB,KAAK,MAAM,KAAKA,CAAM,EAClB,KAAK,kBAAoB,IAC3B,KAAK,aAAc,CAEzB,CACE,cAAe,CAEb,GADA,KAAK,gBAAkB,GACnB,KAAK,MAAM,OAAS,EAAG,CACzB,MAAM4V,EAAU,KAAK,KAAK,QAAQ,KAAK,MAAM,OAAO,EACpD,OAAKA,EAIE,KAAK,iBAAiBA,CAAO,EAAE,MAAM,IAAM,CAAA,CAAE,EACnD,KAAK,IAAM,KAAK,cAAc,GAJ7B,KAAK,KAAK,IAAI,sIAAuI,OAAO,EACrJ,QAAQ,QAAS,EAIhC,CACI,YAAK,gBAAkB,GACvB,KAAK,KAAK,IAAI,8CAA8C,EAC5D,KAAK,KAAK,KAAK,yBAAyB,EACjC,QAAQ,QAAS,CAC5B,CACE,iBAAiBze,EAAM,CACrB,OAAImc,GAAmBnc,EAAK,IAAI,GAAK,CAACA,EAAK,SAClC,KAAK,gBAAgBA,EAAM,KAAK,KAAK,eAAgB,KAAK,KAAK,eAAe,EAAE,KAAKwe,GAAW,CACrG,KAAK,cAAcxe,EAAK,GAAIwe,CAAO,EACnC,KAAK,KAAK,IAAI,gDAAgDxe,EAAK,EAAE,EAAE,EACvE,KAAK,KAAK,KAAK,sBAAuB,KAAK,KAAK,QAAQA,EAAK,EAAE,EAAGwe,CAAO,CACjF,CAAO,EAAE,MAAMpU,GAAO,CACd,KAAK,KAAK,IAAI,6CAA6CpK,EAAK,EAAE,IAAK,SAAS,EAChF,KAAK,KAAK,IAAIoK,EAAK,SAAS,EAC5B,KAAK,KAAK,KAAK,kBAAmB,KAAK,KAAK,QAAQpK,EAAK,EAAE,EAAGoK,CAAG,CACzE,CAAO,EAEI,QAAQ,QAAS,CAC5B,CACE,SAAU,CACR,KAAK,KAAK,GAAG,eAAgB,KAAK,aAAa,EAC/C,KAAK,KAAK,GAAG,aAAc,KAAK,iBAAiB,EAC7C,KAAK,KAAK,MACZ,KAAK,KAAK,GAAG,oBAAqB,KAAK,WAAW,EAClD,KAAK,KAAK,GAAG,mBAAoB,KAAK,eAAe,IAErD,KAAK,KAAK,GAAG,oBAAqB,KAAK,WAAW,EAClD,KAAK,KAAK,GAAG,aAAc,KAAK,WAAW,EAC3C,KAAK,KAAK,GAAG,WAAY,KAAK,UAAU,GAEtC,KAAK,KAAK,+BACZ,KAAK,KAAK,gBAAgB,KAAK,qBAAqB,CAE1D,CACE,WAAY,CACV,KAAK,KAAK,IAAI,eAAgB,KAAK,aAAa,EAChD,KAAK,KAAK,IAAI,aAAc,KAAK,iBAAiB,EAC9C,KAAK,KAAK,MACZ,KAAK,KAAK,IAAI,oBAAqB,KAAK,WAAW,EACnD,KAAK,KAAK,IAAI,mBAAoB,KAAK,eAAe,IAEtD,KAAK,KAAK,IAAI,oBAAqB,KAAK,WAAW,EACnD,KAAK,KAAK,IAAI,aAAc,KAAK,WAAW,EAC5C,KAAK,KAAK,IAAI,WAAY,KAAK,UAAU,GAEvC,KAAK,KAAK,+BACZ,KAAK,KAAK,mBAAmB,KAAK,qBAAqB,CAE7D,CACA,CACAiT,GAAmB,QAAUre,GAAY,QC3VzC,SAAS0f,GAAmBzO,EAAS,CACnC,GAAI,OAAOA,GAAY,SAAU,CAC/B,MAAM0O,EAAW,SAAS,iBAAiB1O,CAAO,EAClD,OAAO0O,EAAS,SAAW,EAAI,KAAO,MAAM,KAAKA,CAAQ,CAC7D,CACE,OAAI,OAAO1O,GAAY,UAAYH,GAAaG,CAAO,EAC9C,CAACA,CAAO,EAEV,IACT,CCVA,MAAe2O,GAAA,MAAM,KCAN,SAASC,GAAoCC,EAAiBC,EAAYC,EAAcpW,EAAM,CAC3G,GAAI,CACF,UAAAqW,CACJ,EAAMrW,EACJkW,EAAgB,YAAYI,GAAW,CACrC,MAAMC,EAAa,CAAC,GAAGJ,EAAY,GAAGG,CAAO,EAGzCA,EAAQ,OACV,eAAe,IAAM,CACnBL,GAAoCC,EAAiBK,EAAYH,EAAc,CAC7E,UAAAC,CACV,CAAS,CACT,CAAO,EAGDA,EAAUE,CAAU,CAEvB,EAEDja,GAAS,CACP8Z,EAAa9Z,CAAK,EAClB+Z,EAAUF,CAAU,CACxB,CAAG,CACH,CCtBA,SAASK,GAA+BC,EAAOL,EAAc,CAC3D,OAAIK,GAAS,KAAaA,EACnB,CACL,KAEAA,EAAM,OAAS,OAASA,EAAM,YAAc,YAAc,OAC1D,KAAMA,EAAM,KACZ,SAAU,CACR,OAAO,IAAI,QAAQ,CAAC3C,EAASiB,IAAW0B,EAAM,KAAK3C,EAASiB,CAAM,CAAC,CACpE,EACD,MAAO,QAAS,CAEd,MAAMmB,EAAkBO,EAAM,aAAc,EAM5C,MALgB,MAAM,IAAI,QAAQ3C,GAAW,CAC3CmC,GAAoCC,EAAiB,CAAE,EAAEE,EAAc,CACrE,UAAWM,GAAc5C,EAAQ4C,EAAW,IAAItf,GAAQof,GAA+Bpf,EAAMgf,CAAY,CAAC,CAAC,CACrH,CAAS,CACT,CAAO,CAEF,EACD,YAAa,MACd,CACH,CACA,SAASO,GAAuCF,EAAOG,EAAcC,EAAgB,CACnF,GAAI,CACF,OAAIA,IAAmB,SACrBA,EAAiB,QAEZ,iBAAmB,CACxB,MAAMC,EAAsB,IAAM,GAAGF,CAAY,IAAIH,EAAM,IAAI,GAG/D,GAAIA,EAAM,OAAS,OAAQ,CACzB,MAAMrf,EAAO,MAAMqf,EAAM,QAAS,EAC9Brf,GAAQ,MAEVA,EAAK,aAAewf,EAAeE,EAAqB,EAAG,KAC3D,MAAM1f,GACGyf,GAAkB,OAAM,MAAMA,EACjD,SAAiBJ,EAAM,OAAS,YACxB,gBAAiBM,KAAUN,EAAM,SAE/B,MAAOE,GAAuCI,EAAQH,EAAeE,EAAqB,EAAGL,EAAM,IAAI,OAEhGI,GAAkB,OAAM,MAAMA,EAC/C,EAAO,CACJ,OAAQ99B,EAAG,CACV,OAAO,QAAQ,OAAOA,CAAC,CAC3B,CACA,CASe,eAAgBi+B,GAAyBC,EAAcb,EAAc,CAIlF,MAAMc,EAAoB,MAAM,QAAQ,IAAI,MAAM,KAAKD,EAAa,MAAO,MAAM1T,GAAQ,CACvF,IAAI4T,EACJ,IAAIC,EAWJ,MAAMC,EAAa,IAAM,OAAO9T,EAAK,YAAe,WAAaA,EAAK,WAAU,EAAKA,EAAK,iBAAkB,EAE5G,OAAC4T,EAAoBC,IAAqB,OAA2BA,EAAmBZ,GAA+Ba,EAAY,EAAEjB,CAAY,GAC1I,CACL,iBAAAgB,EACA,eAAgB7T,EAAK,UAAW,CACjC,CACL,CAAG,CAAC,EACF,SAAW,CACT,eAAAsT,EACA,iBAAAO,CACD,IAAIF,EAEH,GAAIE,GAAoB,KACtB,GAAI,CACF,MAAOT,GAAuCS,EAAkB,GAAIP,CAAc,CACnF,OAAQrV,EAAK,CAIRqV,GAAkB,KACpB,MAAMA,EAENT,EAAa5U,CAAG,CAE1B,MACeqV,GAAkB,OAAM,MAAMA,EAE7C,CCzGe,SAASS,GAAYL,EAAc,CAChD,MAAM9a,EAAQob,GAAQN,EAAa,KAAK,EACxC,OAAO,QAAQ,QAAQ9a,CAAK,CAC9B,CCYe,eAAeqb,GAAgBP,EAAc7oB,EAAS,CACnE,IAAIqpB,EAEJ,MAAMrB,GAAgBqB,EAAwBrpB,GAAW,KAAO,OAASA,EAAQ,eAAiB,KAAOqpB,EAAwB,SAAS,UAC1I,GAAI,CACF,MAAMC,EAAc,CAAE,EACtB,gBAAiBtgB,KAAQugB,GAAoBV,EAAcb,CAAY,EACrEsB,EAAY,KAAKtgB,CAAI,EAEvB,OAAOsgB,CAEX,MAAU,CACN,OAAOJ,GAAYL,CAAY,CACnC,CACA,CChCiC,IAAIn+B,GAAEI,GAAEM,GAAER,GAAEG,GAAE,EAAEW,GAAE,GAAGP,GAAEN,GAAEF,GAAEQ,GAAE,IAAIF,GAAEE,GAAE,IAAIU,GAAEV,GAAE,OAAOD,GAAEC,GAAE,IAAIK,GAAEL,GAAE,QAAQH,GAAEG,GAAE,GAAG,SAASM,GAAEZ,EAAEH,EAAE,CAACS,GAAE,KAAKA,GAAE,IAAIL,GAAED,EAAEE,IAAGL,CAAC,EAAEK,GAAE,EAAE,IAAIK,EAAEN,GAAE,MAAMA,GAAE,IAAI,CAAC,GAAG,CAAA,EAAG,IAAI,EAAE,GAAG,OAAOD,GAAGO,EAAE,GAAG,QAAQA,EAAE,GAAG,KAAK,EAAE,EAAEA,EAAE,GAAGP,CAAC,CAAC,CAAC,SAASS,GAAET,EAAE,CAAC,OAAOE,GAAE,EAAEM,GAAEmB,GAAE3B,CAAC,CAAC,CAAC,SAASQ,GAAER,EAAEO,EAAER,EAAE,CAAC,IAAIG,EAAEU,GAAEf,KAAI,CAAC,EAAE,GAAGK,EAAE,EAAEF,EAAE,CAACE,EAAE,MAAMA,EAAE,GAAG,CAAQyB,GAAE,OAAOpB,CAAC,EAAE,SAASP,EAAE,CAAC,IAAIH,EAAEK,EAAE,IAAIA,EAAE,IAAI,CAAC,EAAEA,EAAE,GAAG,CAAC,EAAED,EAAEC,EAAE,EAAEL,EAAEG,CAAC,EAAEH,IAAII,IAAIC,EAAE,IAAI,CAACD,EAAEC,EAAE,GAAG,CAAC,CAAC,EAAEA,EAAE,IAAI,SAAS,EAAE,EAAE,CAAC,EAAEA,EAAE,IAAID,GAAE,CAACA,GAAE,KAAK,CAAC,IAAIY,EAAE,SAASb,EAAEH,EAAEI,EAAE,CAAC,GAAG,CAACC,EAAE,IAAI,IAAI,SAAS,IAAI,EAAEA,EAAE,IAAI,IAAI,GAAG,OAAO,SAASF,EAAE,CAAC,MAAM,CAAC,CAACA,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,SAASA,EAAE,CAAC,MAAM,CAACA,EAAE,GAAG,CAAC,EAAE,MAAM,CAACM,GAAGA,EAAE,KAAK,KAAKN,EAAEH,EAAEI,CAAC,EAAE,IAAIF,EAAEG,EAAE,IAAI,QAAQF,EAAE,OAAO,EAAE,QAAQ,SAASA,EAAE,CAAC,GAAGA,EAAE,IAAI,CAAC,IAAIH,EAAEG,EAAE,GAAG,CAAC,EAAEA,EAAE,GAAGA,EAAE,IAAIA,EAAE,IAAI,OAAOH,IAAIG,EAAE,GAAG,CAAC,IAAID,EAAE,GAAG,CAAC,CAAC,EAAEO,GAAGA,EAAE,KAAK,KAAKN,EAAEH,EAAEI,CAAC,GAAGF,CAAC,EAAEE,GAAE,IAAI,GAAG,IAAIK,EAAEL,GAAE,sBAAsBH,EAAEG,GAAE,oBAAoBA,GAAE,oBAAoB,SAASD,EAAEH,EAAEI,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,IAAI,EAAEK,EAAEA,EAAE,OAAOO,EAAEb,EAAEH,EAAEI,CAAC,EAAEK,EAAE,CAAC,CAACR,GAAGA,EAAE,KAAK,KAAKE,EAAEH,EAAEI,CAAC,CAAC,EAAEA,GAAE,sBAAsBY,CAAC,CAAC,OAAOX,EAAE,KAAKA,EAAE,EAAE,CAAC,SAASa,GAAEf,EAAEO,EAAE,CAAC,IAAIR,EAAEa,GAAEf,KAAI,CAAC,EAAE,CAACS,GAAE,KAAKa,GAAEpB,EAAE,IAAIQ,CAAC,IAAIR,EAAE,GAAGC,EAAED,EAAE,EAAEQ,EAAEN,GAAE,IAAI,IAAI,KAAKF,CAAC,EAAE,CAAiF,SAASkB,GAAEjB,EAAE,CAAC,OAAOE,GAAE,EAAEsB,GAAE,UAAU,CAAC,MAAM,CAAC,QAAQxB,CAAC,CAAC,EAAE,CAAE,CAAA,CAAC,CAAsN,SAASwB,GAAExB,EAAEC,EAAE,CAAC,IAAIM,EAAEK,GAAEf,KAAI,CAAC,EAAE,OAAOsB,GAAEZ,EAAE,IAAIN,CAAC,IAAIM,EAAE,GAAGP,EAAC,EAAGO,EAAE,IAAIN,EAAEM,EAAE,IAAIP,GAAGO,EAAE,EAAE,CAAC,SAAS0C,GAAEjD,EAAEH,EAAE,CAAC,OAAOK,GAAE,EAAEsB,GAAE,UAAU,CAAC,OAAOxB,CAAC,EAAEH,CAAC,CAAC,CAAgf,SAASuC,IAAG,CAAC,QAAQpC,EAAEA,EAAEa,GAAE,MAAO,GAAE,GAAGb,EAAE,KAAKA,EAAE,IAAI,GAAG,CAACA,EAAE,IAAI,IAAI,QAAQwC,EAAC,EAAExC,EAAE,IAAI,IAAI,QAAQgC,EAAC,EAAEhC,EAAE,IAAI,IAAI,CAAE,CAAA,OAAOH,EAAE,CAACG,EAAE,IAAI,IAAI,CAAA,EAAGM,GAAE,IAAIT,EAAEG,EAAE,GAAG,CAAC,CAAC,CAACM,GAAE,IAAI,SAASN,EAAE,CAACC,GAAE,KAAKH,IAAGA,GAAEE,CAAC,CAAC,EAAEM,GAAE,GAAG,SAASN,EAAEH,EAAE,CAACG,GAAGH,EAAE,KAAKA,EAAE,IAAI,MAAMG,EAAE,IAAIH,EAAE,IAAI,KAAKM,IAAGA,GAAEH,EAAEH,CAAC,CAAC,EAAES,GAAE,IAAI,SAASN,EAAE,CAACI,IAAGA,GAAEJ,CAAC,EAAEH,GAAE,EAAE,IAAIE,GAAGE,GAAED,EAAE,KAAK,IAAID,IAAIQ,KAAIN,IAAGF,EAAE,IAAI,CAAA,EAAGE,GAAE,IAAI,CAAA,EAAGF,EAAE,GAAG,QAAQ,SAASC,EAAE,CAACA,EAAE,MAAMA,EAAE,GAAGA,EAAE,KAAKA,EAAE,EAAEA,EAAE,IAAI,MAAM,CAAC,IAAID,EAAE,IAAI,QAAQyC,EAAC,EAAEzC,EAAE,IAAI,QAAQiC,EAAC,EAAEjC,EAAE,IAAI,GAAGF,GAAE,IAAIU,GAAEN,EAAC,EAAEK,GAAE,OAAO,SAASN,EAAE,CAACgB,IAAGA,GAAEhB,CAAC,EAAE,IAAIH,EAAEG,EAAE,IAAIH,GAAGA,EAAE,MAAMA,EAAE,IAAI,IAAI,SAAagB,GAAE,KAAKhB,CAAC,IAAZ,GAAeE,KAAIO,GAAE,yBAAyBP,GAAEO,GAAE,wBAAwBmB,IAAGW,EAAC,GAAGvC,EAAE,IAAI,GAAG,QAAQ,SAASG,EAAE,CAACA,EAAE,IAAIA,EAAE,IAAIA,EAAE,GAAGA,EAAE,EAAE,MAAM,CAAC,GAAGO,GAAEN,GAAE,IAAI,EAAEK,GAAE,IAAI,SAASN,EAAEH,EAAE,CAACA,EAAE,KAAK,SAASG,EAAE,CAAC,GAAG,CAACA,EAAE,IAAI,QAAQwC,EAAC,EAAExC,EAAE,IAAIA,EAAE,IAAI,OAAO,SAASA,EAAE,CAAC,MAAM,CAACA,EAAE,IAAIgC,GAAEhC,CAAC,CAAC,CAAC,CAAC,OAAOC,EAAE,CAACJ,EAAE,KAAK,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAA,EAAG,CAAC,EAAEA,EAAE,CAAE,EAACS,GAAE,IAAIL,EAAED,EAAE,GAAG,CAAC,CAAC,CAAC,EAAEK,IAAGA,GAAEL,EAAEH,CAAC,CAAC,EAAES,GAAE,QAAQ,SAASN,EAAE,CAACW,IAAGA,GAAEX,CAAC,EAAE,IAAIH,EAAEI,EAAED,EAAE,IAAIC,GAAGA,EAAE,MAAMA,EAAE,IAAI,GAAG,QAAQ,SAASD,EAAE,CAAC,GAAG,CAACwC,GAAExC,CAAC,CAAC,OAAO,EAAE,CAACH,EAAE,CAAC,CAAC,CAAC,EAAEI,EAAE,IAAI,OAAOJ,GAAGS,GAAE,IAAIT,EAAEI,EAAE,GAAG,EAAE,EAAE,IAAIsB,GAAc,OAAO,uBAAnB,WAAyC,SAASE,GAAEzB,EAAE,CAAC,IAAIH,EAAEI,EAAE,UAAU,CAAC,aAAaM,CAAC,EAAEgB,IAAG,qBAAqB1B,CAAC,EAAE,WAAWG,CAAC,CAAC,EAAEO,EAAE,WAAWN,EAAE,GAAG,EAAEsB,KAAI1B,EAAE,sBAAsBI,CAAC,EAAE,CAAC,SAASuC,GAAExC,EAAE,CAAC,IAAIH,EAAEI,GAAEM,EAAEP,EAAE,IAAgB,OAAOO,GAAnB,aAAuBP,EAAE,IAAI,OAAOO,EAAG,GAAEN,GAAEJ,CAAC,CAAC,SAASmC,GAAEhC,EAAE,CAAC,IAAIH,EAAEI,GAAED,EAAE,IAAIA,EAAE,GAAE,EAAGC,GAAEJ,CAAC,CAAC,SAASsB,GAAEnB,EAAEH,EAAE,CAAC,MAAM,CAACG,GAAGA,EAAE,SAASH,EAAE,QAAQA,EAAE,KAAK,SAAS,EAAEI,EAAE,CAAC,OAAO,IAAID,EAAEC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS0B,GAAE3B,EAAEH,EAAE,CAAC,OAAkB,OAAOA,GAAnB,WAAqBA,EAAEG,CAAC,EAAEH,CAAC,CCA96G,SAAS8+B,IAAW,CAAE,OAAOA,GAAW,OAAO,OAAS,OAAO,OAAO,OAAS,SAAU3+B,EAAG,CAAE,QAAS,EAAI,EAAG,EAAI,UAAU,OAAQ,IAAK,CAAE,IAAI,EAAI,UAAU,CAAC,EAAG,QAASC,KAAK,GAAI,IAAI,eAAe,KAAK,EAAGA,CAAC,IAAMD,EAAEC,CAAC,EAAI,EAAEA,CAAC,EAAK,CAAC,OAAOD,GAAM2+B,GAAS,MAAM,KAAM,SAAS,CAAE,CA8BlR,MAAMC,GAAc,CAClB,SAAU,WAKV,MAAO,OACP,UAAW,MACb,EACMC,GAAgB,CACpB,SAAU,WACV,IAAK,EACL,KAAM,EAMN,MAAO,OACP,SAAU,SACZ,EACA,MAAMC,WAAoBnI,EAAU,CAClC,YAAYxF,EAAO,CACjB,MAAMA,CAAK,EAIX,KAAK,aAAe,IAAM,CACxB,KAAK,SAAS,CACZ,OAAQ,KAAK,KAAK,SAC1B,CAAO,CACF,EACD,KAAK,aAAe,IAAM,CACxB,KAAK,OAAQ,CACd,EACD,KAAK,aAAe,KACpB,KAAK,MAAQ,CACX,OAAQ,EACR,OAAQ,CACT,CACL,CACE,mBAAoB,CAClB,KAAK,OAAQ,EACb,OAAO,iBAAiB,SAAU,KAAK,YAAY,CACvD,CAIE,qBAAsB,CAChB,KAAK,KAAK,SAAS,SAAS,aAAa,IAC3C,KAAK,aAAe,SAAS,cAEnC,CACE,oBAAqB,CAEf,KAAK,cAAgB,KAAK,aAAa,YAAc,SAAS,gBAAkB,KAAK,cACvF,KAAK,aAAa,MAAO,EAE3B,KAAK,aAAe,KACpB,KAAK,OAAQ,CACjB,CACE,sBAAuB,CACrB,OAAO,oBAAoB,SAAU,KAAK,YAAY,CAC1D,CACE,QAAS,CACP,KAAM,CACJ,OAAAmL,CACD,EAAG,KAAK,MACLA,IAAW,KAAK,KAAK,cACvB,KAAK,SAAS,CACZ,OAAQ,KAAK,KAAK,YAC1B,CAAO,CAEP,CACE,OAAOvV,EAAM,CACX,GAAI,CACF,KAAAS,EACA,UAAAuX,EACA,UAAAC,EACA,cAAAC,EAAgB,GAChB,GAAG9N,CACT,EAAQpK,EACJ,KAAM,CACJ,OAAAmY,EACA,OAAA5C,CACD,EAAG,KAAK,MAET,IAAI6C,EAAQ,KAAK,MAAMD,EAASH,CAAS,EAGrCK,EAAkB,KAAK,MAAM9C,EAASyC,CAAS,EAI/CE,IACFE,EAAQ,KAAK,IAAI,EAAGA,EAAQA,EAAQF,CAAa,EACjDG,GAAmBH,GAIrB,MAAMI,EAAMF,EAAQC,EAAkB,EAGhCE,EAAY9X,EAAK,MAAM2X,EAAOE,CAAG,EACjCE,EAAa,CACjB,GAAGX,GACH,OAAQpX,EAAK,OAASuX,CACvB,EACKS,EAAe,CACnB,GAAGX,GACH,IAAKM,EAAQJ,CACd,EAID,OAEEv+B,EAAE,MAAOm+B,GAAS,CAChB,SAAU,KAAK,YACvB,EAASxN,CAAK,EAAG3wB,EAAE,MAAO,CAClB,KAAM,eACN,MAAO++B,CACf,EAAS/+B,EAAE,MAAO,CACV,KAAM,eACN,MAAOg/B,CACR,EAAEF,EAAU,IAAIN,CAAS,CAAC,CAAC,CAAC,CAEnC,CACA,CCtIO,SAASS,IAAoB,CAClC,OAAOj/B,EAAE,MAAO,CACd,cAAe,OACf,UAAW,QACX,MAAO,KACP,OAAQ,KACR,QAAS,WACb,EAAKA,EAAE,OAAQ,CACX,EAAG,yKACP,CAAG,CAAC,CACJ,CClCA,IAAIk/B,GAAY,OAAO,OACnB,SAAkB7nB,EAAO,CACrB,OAAO,OAAOA,GAAU,UAAYA,IAAUA,CACjD,EACL,SAAS8nB,GAAQC,EAAOC,EAAQ,CAI5B,MAHI,GAAAD,IAAUC,GAGVH,GAAUE,CAAK,GAAKF,GAAUG,CAAM,EAI5C,CACA,SAASC,GAAeC,EAAWC,EAAY,CAC3C,GAAID,EAAU,SAAWC,EAAW,OAChC,MAAO,GAEX,QAASjgC,EAAI,EAAGA,EAAIggC,EAAU,OAAQhgC,IAClC,GAAI,CAAC4/B,GAAQI,EAAUhgC,CAAC,EAAGigC,EAAWjgC,CAAC,CAAC,EACpC,MAAO,GAGf,MAAO,EACX,CAEA,SAASkgC,GAAWC,EAAUP,EAAS,CAC/BA,IAAY,SAAUA,EAAUG,IACpC,IAAIzI,EAAQ,KACZ,SAAS8I,GAAW,CAEhB,QADIC,EAAU,CAAE,EACP7zB,EAAK,EAAGA,EAAK,UAAU,OAAQA,IACpC6zB,EAAQ7zB,CAAE,EAAI,UAAUA,CAAE,EAE9B,GAAI8qB,GAASA,EAAM,WAAa,MAAQsI,EAAQS,EAAS/I,EAAM,QAAQ,EACnE,OAAOA,EAAM,WAEjB,IAAIgJ,EAAaH,EAAS,MAAM,KAAME,CAAO,EAC7C,OAAA/I,EAAQ,CACJ,WAAYgJ,EACZ,SAAUD,EACV,SAAU,IACb,EACMC,CACf,CACI,OAAAF,EAAS,MAAQ,UAAiB,CAC9B9I,EAAQ,IACX,EACM8I,CACX,CChDA,MAAeG,GAAA,CAAC,+DAAgE,kEAAmE,wDAAyD,yDAA0D,2DAA4D,yDAA0D,8DAA+D,8DAA+D,6DAA8D,yEAA0E,iEAAiE,ECGprB,SAASC,GAAmBC,EAAaC,EAAmB,CACzE,GAAIA,EAAmB,CACrB,MAAMC,EAAYF,EAAY,cAAc,yBAAyBC,CAAiB,IAAI,EAE1F,GAAIC,EAAW,OAAOA,CAC1B,CACE,OAAOF,CACT,CCLA,SAASG,GAAiBnqB,EAAOoqB,EAAO,CACtC,MAAMC,EAAOD,EAAM,CAAC,EAChBC,IACFA,EAAK,MAAO,EACZrqB,EAAM,eAAgB,EAE1B,CACA,SAASsqB,GAAgBtqB,EAAOoqB,EAAO,CACrC,MAAMC,EAAOD,EAAMA,EAAM,OAAS,CAAC,EAC/BC,IACFA,EAAK,MAAO,EACZrqB,EAAM,eAAgB,EAE1B,CAQA,SAASuqB,GAAiBC,EAAiB,CACzC,OAAOA,EAAgB,SAAS,SAAS,aAAa,CACxD,CACA,SAASC,GAAUzqB,EAAOiqB,EAAmBD,EAAa,CACxD,MAAMQ,EAAkBT,GAAmBC,EAAaC,CAAiB,EACnES,EAAiB5C,GAAQ0C,EAAgB,iBAAiBV,EAAkB,CAAC,EAC7Ea,EAAmBD,EAAe,QAAQ,SAAS,aAAa,EAMjEH,GAAiBC,CAAe,EAG1BxqB,EAAM,UAAY2qB,IAAqB,EAChDL,GAAgBtqB,EAAO0qB,CAAc,EAE5B,CAAC1qB,EAAM,UAAY2qB,IAAqBD,EAAe,OAAS,GACzEP,GAAiBnqB,EAAO0qB,CAAc,EANtCP,GAAiBnqB,EAAO0qB,CAAc,CAQ1C,CAOO,SAASE,GAAU5qB,EAAOiqB,EAAmBD,EAAa,CAE3DC,IAAsB,MAMxBQ,GAAUzqB,EAAOiqB,EAAmBD,CAAW,CAEnD,CCjDe,SAASa,IAAmB,CACzC,IAAIC,EAAiC,GAiCrC,OAAOjmB,GAhCY,CAACmlB,EAAaC,IAAsB,CACrD,MAAMC,EAAYH,GAAmBC,EAAaC,CAAiB,EAC7DM,EAAmBL,EAAU,SAAS,SAAS,aAAa,EAIlE,GAAIK,GAAoBO,EAAgC,OACxD,MAAMC,EAAmBb,EAAU,cAAc,6BAA6B,EAI9E,GAAI,EAAAK,GAAoB,CAACQ,GACzB,GAAIA,EACFA,EAAiB,MAAM,CACrB,cAAe,EACvB,CAAO,EACDD,EAAiC,OAC5B,CACL,MAAME,EAAUd,EAAU,cAAcJ,EAAkB,EAC1DkB,GAAW,MAAQA,EAAQ,MAAM,CAC/B,cAAe,EACvB,CAAO,EACDF,EAAiC,EACvC,CACG,EAQ2B,GAAG,CACjC,CC/Ce,SAASG,IAAsB,CAC5C,MAAMC,EAAM,SAAS,KAOrB,MANI,IAAE,cAAeA,IAAQ,EAAE,gBAAiBA,GAAO,WAAYA,IAG/D,EAAE,aAAc,SAGhB,EAAE,eAAgB,QAIxB,CCIA,SAASC,GAAoBC,EAAMC,EAAM,CACvC,GAAID,IAASC,EACX,MAAO,GAET,GAAI,CAACD,GAAQ,CAACC,EACZ,MAAO,GAET,MAAMC,EAAQ,OAAO,KAAKF,CAAI,EACxBG,EAAQ,OAAO,KAAKF,CAAI,EACxBG,EAAMF,EAAM,OAClB,GAAIC,EAAM,SAAWC,EACnB,MAAO,GAET,QAASjiC,EAAI,EAAGA,EAAIiiC,EAAKjiC,IAAK,CAC5B,MAAM0V,EAAMqsB,EAAM/hC,CAAC,EACnB,GAAI6hC,EAAKnsB,CAAG,IAAMosB,EAAKpsB,CAAG,GAAK,CAAC,OAAO,UAAU,eAAe,KAAKosB,EAAMpsB,CAAG,EAC5E,MAAO,EAEb,CACE,MAAO,EACT,CCtCA,SAASwsB,IAAY,CACnB,OAAOzhC,EAAE,MAAO,CACd,cAAe,OACf,UAAW,QACX,MAAO,KACP,OAAQ,KACR,QAAS,WACb,EAAKA,EAAE,IAAK,CACR,KAAM,UACN,SAAU,SACd,EAAKA,EAAE,OAAQ,CACX,EAAG,yFACH,SAAU,SACd,CAAG,EAAGA,EAAE,OAAQ,CACZ,EAAG,oLACH,SAAU,SACd,CAAG,EAAGA,EAAE,SAAU,CACd,GAAI,MACJ,GAAI,MACJ,EAAG,KACJ,CAAA,CAAC,CAAC,CACL,CACA,SAAS0hC,IAAY,CACnB,OAAO1hC,EAAE,MAAO,CACd,cAAe,OACf,UAAW,QACX,UAAW,cACX,MAAO,KACP,OAAQ,KACR,QAAS,WACb,EAAKA,EAAE,OAAQ,CACX,EAAG,0ZACH,KAAM,UACN,SAAU,SACd,CAAG,CAAC,CACJ,CACA,SAAS2hC,IAAY,CACnB,OAAO3hC,EAAE,MAAO,CACd,cAAe,OACf,UAAW,QACX,UAAW,cACX,MAAO,KACP,OAAQ,KACR,QAAS,WACb,EAAKA,EAAE,OAAQ,CACX,EAAG,kLACH,KAAM,UACN,SAAU,SACd,CAAG,CAAC,CACJ,CACA,SAAS4hC,IAAU,CACjB,OAAO5hC,EAAE,MAAO,CACd,cAAe,OACf,UAAW,QACX,UAAW,cACX,MAAO,KACP,OAAQ,KACR,QAAS,WACb,EAAKA,EAAE,OAAQ,CACX,EAAG,miCACH,KAAM,UACN,SAAU,SACd,CAAG,CAAC,CACJ,CACA,SAAS6hC,IAAc,CACrB,OAAO7hC,EAAE,MAAO,CACd,cAAe,OACf,UAAW,QACX,MAAO,KACP,OAAQ,KACR,QAAS,WACb,EAAKA,EAAE,OAAQ,CACX,EAAG,g6CACH,KAAM,UACN,SAAU,SACd,CAAG,CAAC,CACJ,CACA,SAAS8hC,IAAW,CAClB,OAAO9hC,EAAE,MAAO,CACd,cAAe,OACf,UAAW,QACX,UAAW,cACX,MAAO,KACP,OAAQ,KACR,QAAS,WACb,EAAKA,EAAE,IAAK,CACR,KAAM,UACN,SAAU,SACd,EAAKA,EAAE,OAAQ,CACX,EAAG,2JACP,CAAG,EAAGA,EAAE,OAAQ,CACZ,EAAG,oCACJ,CAAA,CAAC,CAAC,CACL,CACA,SAAS+hC,IAAW,CAClB,OAAO/hC,EAAE,MAAO,CACd,cAAe,OACf,UAAW,QACX,UAAW,cACX,MAAO,KACP,OAAQ,KACR,QAAS,WACb,EAAKA,EAAE,OAAQ,CACX,EAAG,6KACH,KAAM,UACN,SAAU,SACd,CAAG,CAAC,CACJ,CACe,SAASgiC,GAAczjB,EAAU,CAC9C,MAAM0jB,EAAgB,CACpB,MAAO,UACP,KAAMH,GAAQ,CACf,EACD,GAAI,CAACvjB,EAAU,OAAO0jB,EACtB,MAAMC,EAAkB3jB,EAAS,MAAM,GAAG,EAAE,CAAC,EACvC4jB,EAAmB5jB,EAAS,MAAM,GAAG,EAAE,CAAC,EAG9C,OAAI2jB,IAAoB,OACf,CACL,MAAO,UACP,KAAMH,GAAQ,CACf,EAICG,IAAoB,QACf,CACL,MAAO,UACP,KAAMT,GAAS,CAChB,EAICS,IAAoB,QACf,CACL,MAAO,UACP,KAAMR,GAAS,CAChB,EAICQ,IAAoB,QACf,CACL,MAAO,UACP,KAAMP,GAAS,CAChB,EAICO,IAAoB,eAAiBC,IAAqB,MACrD,CACL,MAAO,UACP,KAAMP,GAAO,CACd,EAKCM,IAAoB,eADH,CAAC,MAAO,kBAAmB,mBAAoB,mBAAoB,QAAS,SAAU,mBAAmB,EACxE,QAAQC,CAAgB,IAAM,GAC3E,CACL,MAAO,UACP,KAAMN,GAAW,CAClB,EAEII,CACT,CCrKe,SAASG,GAAYzR,EAAO,CACzC,KAAM,CACJ,KAAAhT,CACJ,EAAMgT,EACJ,GAAIhT,EAAK,QACP,OAAO3d,EAAE,MAAO,CACd,UAAW,GACX,UAAW,iCACX,IAAK2d,EAAK,KACV,IAAKA,EAAK,OAChB,CAAK,EAEH,KAAM,CACJ,MAAA0kB,EACA,KAAAC,CACJ,EAAMC,GAAgB5kB,EAAK,IAAI,EAC7B,OAAO3d,EAAE,MAAO,CACd,UAAW,qCACf,EAAKA,EAAE,OAAQ,CACX,UAAW,kCACX,MAAO,CACL,MAAAqiC,CACN,CACA,EAAKC,CAAI,EAAGtiC,EAAE,MAAO,CACjB,cAAe,OACf,UAAW,QACX,UAAW,oCACX,MAAO,KACP,OAAQ,KACR,QAAS,WACb,EAAKA,EAAE,OAAQ,CACX,KAAM,OACN,MAAO,KACP,OAAQ,KACR,GAAI,IACJ,SAAU,SACX,CAAA,CAAC,CAAC,CACL,CCtCA,MAAMwiC,GAAoB,CAACC,EAAaC,KACvB,OAAOA,GAAe,WAAaA,EAAY,EAAGA,GAC5C,OAAOriC,GAAKA,EAAE,KAAOoiC,CAAW,EACxC,CAAC,EAAE,KAEH,SAASE,GAAiBhS,EAAO,CAC9C,KAAM,CACJ,KAAAhT,EACA,eAAAilB,EACA,KAAA9R,EACA,WAAA4R,CACJ,EAAM/R,EACE,CACJ,0BAAAkS,CACJ,EAAMllB,EACJ,GAAI,EAAEklB,GAA6B,MAAQA,EAA0B,QACnE,OAAO,KAET,MAAMC,EAAmBD,EAA0B,IAAIE,GAAoBP,GAAkBO,EAAkBL,CAAU,CAAC,EAAE,KAAK,IAAI,EACrI,OAAO1iC,EAAE,MAAO,CACd,UAAW,kCACf,EAAK8wB,EAAK,4BAA6B,CACnC,YAAa+R,EAA0B,OACvC,OAAQC,CACZ,CAAG,EAAG,IAAK9iC,EAAE,SAAU,CACnB,KAAM,SACN,MAAO,mDACP,QAAS,IAAM4iC,EAAe,GAAMjlB,EAAK,EAAE,CAC/C,EAAKmT,EAAK,UAAU,CAAC,CAAC,CACtB,CC1Be,SAASkS,GAAmBrS,EAAO,CAChD,KAAM,CACJ,KAAAhT,EACA,KAAAmT,EACA,eAAA8R,EACA,WAAAF,EACA,2BAAAO,CACJ,EAAMtS,EAEEuS,EAAyBvlB,EAAK,QADtB,2BACwC4kB,GAAgB5kB,EAAK,IAAI,EAAE,MACjF,OAAO3d,EAAE,MAAO,CACd,UAAW,uCACX,MAAO,CACL,gBAAiBkjC,CACvB,CACG,EAAED,GAA8BtlB,EAAK,WAAa3d,EAAE,IAAK,CACxD,UAAW,kCACX,KAAM2d,EAAK,UACX,IAAK,sBACL,OAAQ,SACR,aAAcA,EAAK,KAAK,IAC5B,EAAK3d,EAAE,OAAQ,CACX,OAAQ,EACZ,EAAK2d,EAAK,KAAK,IAAI,CAAC,EAAG3d,EAAEoiC,GAAa,CAClC,KAAMzkB,CACV,CAAG,EAAG3d,EAAE2iC,GAAkB,CACtB,KAAMhlB,EACN,KAAMmT,EACN,eAAgB8R,EAChB,WAAYF,CAChB,CAAG,CAAC,CACJ,CC/BA,SAASS,GAAyBxS,EAAO,CACvC,GAAI,CAAAA,EAAM,WACV,IAAIA,EAAM,OAAS,CAACA,EAAM,gBAAiB,CACzCA,EAAM,KAAK,YAAYA,EAAM,KAAK,EAAE,EACpC,MACJ,CACMA,EAAM,kBAAoB,CAACA,EAAM,sBACnCA,EAAM,KAAK,YAAYA,EAAM,KAAK,EAAE,EAC3BA,EAAM,wBAA0B,CAACA,EAAM,kBAChDA,EAAM,KAAK,WAAWA,EAAM,KAAK,EAAE,EAEvC,CACA,SAASyS,GAAuBzS,EAAO,CACrC,OAAIA,EAAM,WACDA,EAAM,KAAK,gBAAgB,EAEhCA,EAAM,MACDA,EAAM,KAAK,aAAa,EAE7BA,EAAM,iBACJA,EAAM,KAAK,SACNA,EAAM,KAAK,cAAc,EAE3BA,EAAM,KAAK,aAAa,EAE7BA,EAAM,uBACDA,EAAM,KAAK,cAAc,EAE3B,EACT,CACA,SAAS0S,GAAwB1S,EAAO,CACtC,OAAO3wB,EAAE,MAAO,CACd,UAAW,8BACf,EAAKA,EAAE,SAAU,CACb,UAAW,gEACX,KAAM,SACN,aAAcojC,GAAuBzS,CAAK,EAC1C,MAAOyS,GAAuBzS,CAAK,EACnC,QAAS,IAAMwS,GAAyBxS,CAAK,CACjD,EAAKA,EAAM,QAAQ,CAAC,CACpB,CACA,SAAS2S,GAAwB/c,EAAM,CACrC,GAAI,CACF,SAAA8P,CACJ,EAAM9P,EACJ,OAAOvmB,EAAE,MAAO,CACd,cAAe,OACf,UAAW,QACX,MAAO,KACP,OAAQ,KACR,QAAS,YACT,UAAW,sDACZ,EAAEq2B,CAAQ,CACb,CACA,SAASkN,GAAevY,EAAO,CAC7B,GAAI,CACF,SAAAnF,CACJ,EAAMmF,EAEJ,MAAMwY,EAAe,EAAI,KAAK,GAAK,GACnC,OAAOxjC,EAAE,IAAK,KAAMA,EAAE,SAAU,CAC9B,UAAW,uCACX,EAAG,KACH,GAAI,KACJ,GAAI,KACJ,eAAgB,IAChB,KAAM,MACV,CAAG,EAAGA,EAAE,SAAU,CACd,UAAW,6CACX,EAAG,KACH,GAAI,KACJ,GAAI,KACJ,UAAW,sBACX,KAAM,OACN,eAAgB,IAChB,mBAAoBwjC,EACpB,oBAAqBA,EAAeA,EAAe,IAAM3d,CAC7D,CAAG,CAAC,CACJ,CACe,SAAS4d,GAAa9S,EAAO,CAK1C,MAHI,CAACA,EAAM,KAAK,SAAS,eAGrBA,EAAM,KAAK,SAAS,aAAe,OAC9B,KAILA,EAAM,WACD3wB,EAAE,MAAO,CACd,UAAW,8BACjB,EAAOA,EAAE,MAAO,CACV,UAAW,uCACZ,EAAEA,EAAEsjC,GAAyB,KAAMtjC,EAAE,SAAU,CAC9C,EAAG,KACH,GAAI,KACJ,GAAI,KACJ,KAAM,SACZ,CAAK,EAAGA,EAAE,UAAW,CACf,UAAW,0CACX,UAAW,kBACX,OAAQ,qFACT,CAAA,CAAC,CAAC,CAAC,EAEF2wB,EAAM,eACD,KAILA,EAAM,OAAS,CAACA,EAAM,gBAGtB3wB,EAAEqjC,GAAyB1S,EAAO3wB,EAAE,MAAO,CACzC,cAAe,OACf,UAAW,QACX,UAAW,sDACX,MAAO,KACP,OAAQ,KACR,QAAS,WACjB,EAASA,EAAE,OAAQ,CACX,EAAG,yCACX,CAAO,EAAGA,EAAE,OAAQ,CACZ,EAAG,kBACX,CAAO,EAAGA,EAAE,OAAQ,CACZ,EAAG,8CACX,CAAO,EAAGA,EAAE,OAAQ,CACZ,EAAG,kDACX,CAAO,CAAC,CAAC,EAKH2wB,EAAM,kBAAoB,CAACA,EAAM,sBAGjC3wB,EAAEqjC,GAAyB1S,EAAO3wB,EAAEsjC,GAAyB,KAAMtjC,EAAEujC,GAAgB,CACnF,SAAU5S,EAAM,KAAK,SAAS,UAC/B,CAAA,EAAGA,EAAM,KAAK,SAAW3wB,EAAE,UAAW,CACrC,UAAW,yCACX,UAAW,kBACX,OAAQ,mBAChB,CAAO,EAAIA,EAAE,IAAK,CACV,UAAW,0CACX,UAAW,qBACnB,EAASA,EAAE,OAAQ,CACX,EAAG,IACH,EAAG,IACH,MAAO,IACP,OAAQ,KACR,GAAI,GACZ,CAAO,EAAGA,EAAE,OAAQ,CACZ,EAAG,IACH,EAAG,IACH,MAAO,IACP,OAAQ,KACR,GAAI,GACL,CAAA,CAAC,CAAC,CAAC,EAKJ,CAAC2wB,EAAM,kBAAoBA,EAAM,wBAA0B,CAACA,EAAM,iBAGlE3wB,EAAEqjC,GAAyB1S,EAAO3wB,EAAEsjC,GAAyB,KAAMtjC,EAAEujC,GAAgB,CACnF,SAAU5S,EAAM,KAAK,SAAS,UACtC,CAAO,EAAG3wB,EAAE,UAAW,CACf,UAAW,SACX,UAAW,kBACX,OAAQ,yMAChB,CAAO,CAAC,CAAC,EAKAA,EAAE,MAAO,CACd,UAAW,8BACf,EAAKA,EAAE,MAAO,CACV,UAAW,uCACZ,EAAEA,EAAEsjC,GAAyB,KAAMtjC,EAAEujC,GAAgB,CACpD,SAAU5S,EAAM,KAAK,SAAS,UAC/B,CAAA,CAAC,CAAC,CAAC,CACN,CCvLA,MAAMpQ,GAAY,MACH,SAASmjB,GAAejuB,EAAQkuB,EAAW,CAExD,GAAIA,IAAc,EAAG,MAAO,GAE5B,GAAIluB,EAAO,QAAUkuB,EAAW,OAAOluB,EAEvC,GAAIkuB,GAAapjB,GAAU,OAAS,EAAG,MAAO,GAAG9K,EAAO,MAAM,EAAGkuB,EAAY,CAAC,CAAC,IAC/E,MAAMC,EAAcD,EAAYpjB,GAAU,OACpCsjB,EAAa,KAAK,KAAKD,EAAc,CAAC,EACtCE,EAAY,KAAK,MAAMF,EAAc,CAAC,EAC5C,OAAOnuB,EAAO,MAAM,EAAGouB,CAAU,EAAItjB,GAAY9K,EAAO,MAAM,CAACquB,CAAS,CAC1E,CCXA,MAAMC,GAAiBpT,GAAS,CAC9B,KAAM,CACJ,OAAAqT,EACA,KAAA/lB,CACJ,EAAM0S,EAAM,KAAK,KACf,SAASsT,GAAmB,CAC1B,OAAItT,EAAM,cAAgBA,EAAM,iBAAmB,IAC1C,GAELA,EAAM,gBAAkB,IACnB,GAELA,EAAM,gBAAkB,IACnB,GAKFqT,EAAS,GAAK,EACzB,CACE,OAAOhkC,EAAE,MAAO,CACd,UAAW,2BACX,MAAOie,CACR,EAAEylB,GAAezlB,EAAMgmB,EAAgB,CAAE,CAAC,CAC7C,EACMC,GAAevT,GAAS,CAC5B,IAAIwT,EACJ,KAAM,CACJ,OAAAH,CACJ,EAAMrT,EAAM,KAAK,KACTyT,GAAgBD,EAAqBxT,EAAM,KAAK,SAAW,KAAO,OAASwT,EAAmB,aAC9FE,EAAM,IACZ,OAAKL,EAGEhkC,EAAE,MAAO,CACd,UAAW,4BACf,EAAKA,EAAE,IAAK,CACR,KAAM,GAAGgkC,EAAO,GAAG,4CACnB,OAAQ,SACR,IAAK,qBACT,EAAKN,GAAeM,EAAO,KAAM,EAAE,CAAC,EAAGI,EAAepkC,EAAE,SAAU,KAAM,IAAIqkC,CAAG,IAAKD,EAAc,IAAIC,CAAG,GAAG,EAAI,IAAI,EARzG,IASX,EACMC,GAAiB3T,GAASA,EAAM,KAAK,MAAQ3wB,EAAE,MAAO,CAC1D,UAAW,gCACb,EAAG8f,GAAc6Q,EAAM,KAAK,IAAI,CAAC,EAC3B4T,GAAiB5T,GAASA,EAAM,KAAK,SAAW3wB,EAAE,OAAQ,KAAM,MAAYA,EAAE,SAAU,CAC5F,UAAW,uDACX,KAAM,SACN,QAAS,IAAM2wB,EAAM,oBAAoB,EAAI,CAC/C,EAAGA,EAAM,KAAK,UAAU,CAAC,CAAC,EACpB6T,GAAcje,GAAQ,CAC1B,GAAI,CACF,KAAA5I,EACA,QAAA8mB,CACJ,EAAMle,EACJ,OAAI5I,EAAK,MACA3d,EAAE,SAAU,CACjB,UAAW,2DACX,aAAc2d,EAAK,MACnB,yBAA0B,SAC1B,qBAAsB,SACtB,QAAS8mB,EACT,KAAM,QACP,EAAE,GAAG,EAED,IACT,EACe,SAASC,GAAS/T,EAAO,CACtC,KAAM,CACJ,KAAAhT,EACA,KAAAmT,EACA,eAAA8R,EACA,WAAAF,EACA,oBAAAiC,EACA,aAAAC,EACA,gBAAAC,EACA,eAAAC,CACJ,EAAMnU,EACJ,OAAO3wB,EAAE,MAAO,CACd,UAAW,+BACX,wBAAyB2d,EAAK,MAClC,EAAK3d,EAAE,MAAO,CACV,UAAW,8BACZ,EAAE+jC,GAAe,CAChB,KAAApmB,EACA,aAAAinB,EACA,gBAAAC,EACA,eAAAC,CACJ,CAAG,EAAG9kC,EAAEwkC,GAAa,CACjB,KAAM7mB,EACN,QAAS,IAAM,MAAMA,EAAK,KAAK,CACnC,CAAG,CAAC,EAAG3d,EAAE,MAAO,CACZ,UAAW,4BACZ,EAAEkkC,GAAa,CACd,KAAAvmB,CACD,CAAA,EAAG2mB,GAAe,CACjB,KAAA3mB,CACD,CAAA,EAAG4mB,GAAe,CACjB,KAAA5mB,EACA,oBAAAgnB,EACA,KAAA7T,CACJ,CAAG,CAAC,EAAG9wB,EAAE2iC,GAAkB,CACvB,KAAMhlB,EACN,KAAMmT,EACN,eAAgB8R,EAChB,WAAYF,CAChB,CAAG,CAAC,CACJ,CCtGe,SAASqC,GAAgBC,EAAYC,EAAgB,CAClE,OAAIA,IAAmB,SACrBA,EAAiB,sBAEZ,IAAI,QAAQ5K,GAAW,CAC5B,MAAM6K,EAAW,SAAS,cAAc,UAAU,EAClDA,EAAS,aAAa,QAAS,CAC7B,SAAU,QACV,IAAK,EACL,KAAM,EACN,MAAO,MACP,OAAQ,MACR,QAAS,EACT,OAAQ,OACR,QAAS,OACT,UAAW,OACX,WAAY,aAClB,CAAK,EACDA,EAAS,MAAQF,EACjB,SAAS,KAAK,YAAYE,CAAQ,EAClCA,EAAS,OAAQ,EACjB,MAAMC,EAAkB,IAAM,CAC5B,SAAS,KAAK,YAAYD,CAAQ,EAElC,OAAO,OAAOD,EAAgBD,CAAU,EACxC3K,EAAS,CACV,EACD,GAAI,CAEF,OADmB,SAAS,YAAY,MAAM,GAI9C,SAAS,KAAK,YAAY6K,CAAQ,EAC3B7K,EAAS,GAHP8K,EAAiB,CAI3B,MAAa,CACZ,gBAAS,KAAK,YAAYD,CAAQ,EAC3BC,EAAiB,CAC9B,CACA,CAAG,CACH,CChDA,SAASC,GAAW7e,EAAM,CACxB,GAAI,CACF,KAAA5I,EACA,2BAAA0nB,EACA,WAAA3C,EACA,YAAA4C,EACA,KAAAxU,EACA,QAAA2T,CACJ,EAAMle,EACJ,MAAI,CAAC8e,GAA8B3C,GAAcA,EAAW,OAAS,GAAK,CAAC2C,GAA8BC,EAAY3nB,CAAI,EAChH3d,EAAE,SAAU,CACjB,UAAW,sFACX,KAAM,SACN,aAAc8wB,EAAK,uBAAwB,CACzC,KAAMnT,EAAK,KAAK,IACxB,CAAO,EACD,MAAOmT,EAAK,uBAAwB,CAClC,KAAMnT,EAAK,KAAK,IACxB,CAAO,EACD,QAAS,IAAM8mB,EAAO,CAC5B,EAAOzkC,EAAE,MAAO,CACV,cAAe,OACf,UAAW,QACX,UAAW,cACX,MAAO,KACP,OAAQ,KACR,QAAS,WACf,EAAOA,EAAE,IAAK,CACR,SAAU,SAChB,EAAOA,EAAE,OAAQ,CACX,EAAG,+JACH,SAAU,SAChB,CAAK,EAAGA,EAAE,OAAQ,CACZ,EAAG,IACH,EAAG,SACH,MAAO,KACP,OAAQ,IACR,GAAI,IACV,CAAK,EAAGA,EAAE,OAAQ,CACZ,SAAU,UACV,EAAG,2CACJ,CAAA,CAAC,CAAC,CAAC,EAEC,IACT,CACA,SAASulC,GAAava,EAAO,CAC3B,GAAI,CACF,KAAA8F,EACA,QAAA2T,EACA,KAAA9mB,CACJ,EAAMqN,EACJ,OAAOhrB,EAAE,SAAU,CACjB,UAAW,6EACX,KAAM,SACN,aAAc8wB,EAAK,aAAc,CAC/B,KAAMnT,EAAK,KAAK,IACtB,CAAK,EACD,MAAOmT,EAAK,aAAc,CACxB,KAAMnT,EAAK,KAAK,IACtB,CAAK,EACD,QAAS,IAAM8mB,EAAO,CAC1B,EAAKzkC,EAAE,MAAO,CACV,cAAe,OACf,UAAW,QACX,UAAW,cACX,MAAO,KACP,OAAQ,KACR,QAAS,WACb,EAAKA,EAAE,OAAQ,CACX,EAAG,+DACP,CAAG,EAAGA,EAAE,OAAQ,CACZ,KAAM,OACN,EAAG,2GACJ,CAAA,CAAC,CAAC,CACL,CACA,SAASwlC,GAAe1M,EAAO,CAC7B,GAAI,CACF,KAAAnb,EACA,KAAAsQ,EACA,KAAA6C,CACJ,EAAMgI,EACJ,MAAM2M,EAAsBzvB,GAAS,CACnC+uB,GAAgBpnB,EAAK,UAAWmT,EAAK,6BAA6B,CAAC,EAAE,KAAK,IAAM,CAC9E7C,EAAK,IAAI,2BAA2B,EACpCA,EAAK,KAAK6C,EAAK,4BAA4B,EAAG,OAAQ,GAAI,CAChE,CAAK,EAAE,MAAM7C,EAAK,GAAG,EAEhB,KAAK,IAAMjY,EAAM,OAAO,MAAM,CAC7B,cAAe,EACrB,CAAK,CAAC,CACH,EACD,OAAOhW,EAAE,SAAU,CACjB,UAAW,+EACX,KAAM,SACN,aAAc8wB,EAAK,UAAU,EAC7B,MAAOA,EAAK,UAAU,EACtB,QAAS9a,GAASyvB,EAAoBzvB,CAAK,CAC/C,EAAKhW,EAAE,MAAO,CACV,cAAe,OACf,UAAW,QACX,UAAW,cACX,MAAO,KACP,OAAQ,KACR,QAAS,WACb,EAAKA,EAAE,OAAQ,CACX,EAAG,stBACJ,CAAA,CAAC,CAAC,CACL,CACe,SAAS0lC,GAAQ/U,EAAO,CACrC,KAAM,CACJ,KAAA1C,EACA,KAAAtQ,EACA,2BAAA0nB,EACA,YAAAC,EACA,WAAA5C,EACA,2BAAAO,EACA,iBAAA0C,EACA,KAAA7U,EACA,eAAA8R,EACA,eAAAgD,CACJ,EAAMjV,EAQJ,OAAO3wB,EAAE,MAAO,CACd,UAAW,mCACf,EAAKA,EAAEolC,GAAY,CACf,KAAMtU,EACN,KAAMnT,EACN,2BAA4B0nB,EAC5B,YAAaC,EACb,WAAY5C,EACZ,QAfiB,IAAM,CACnBA,GAAcA,EAAW,OAAS,EACpCE,EAAe,GAAMjlB,EAAK,EAAE,EAE5BioB,EAAejoB,CAAI,CAEtB,CAUA,CAAA,EAAGslB,GAA8BtlB,EAAK,UAAY3d,EAAEwlC,GAAgB,CACnE,KAAM7nB,EACN,KAAMsQ,EACN,KAAM6C,CACP,CAAA,EAAI,KAAM6U,EAAmB3lC,EAAEulC,GAAc,CAC5C,KAAMzU,EACN,KAAMnT,EACN,QAAS,IAAMsQ,EAAK,WAAWtQ,EAAK,EAAE,CACvC,CAAA,EAAI,IAAI,CACX,CC5Ie,MAAMkoB,WAAiB1P,EAAU,CAC9C,mBAAoB,CAClB,KAAM,CACJ,KAAAxY,CACD,EAAG,KAAK,MACJA,EAAK,SACR,KAAK,MAAM,uBAAuBA,CAAI,CAE5C,CACE,sBAAsBka,EAAW,CAC/B,MAAO,CAACsJ,GAAoB,KAAK,MAAOtJ,CAAS,CACrD,CAIE,oBAAqB,CACnB,KAAM,CACJ,KAAAla,CACD,EAAG,KAAK,MACJA,EAAK,SACR,KAAK,MAAM,uBAAuBA,CAAI,CAE5C,CACE,sBAAuB,CACrB,KAAM,CACJ,KAAAA,CACD,EAAG,KAAK,MACJA,EAAK,SACR,KAAK,MAAM,sBAAsBA,CAAI,CAE3C,CACE,QAAS,CACP,KAAM,CACJ,KAAAA,CACD,EAAG,KAAK,MACHmoB,EAAenoB,EAAK,SAAS,YAAcA,EAAK,SAAS,YACzDooB,EAAa,CAAC,CAACpoB,EAAK,SAAS,gBAAkB,CAACmoB,GAAgB,CAACnoB,EAAK,MACtE0nB,EAA6B,CAAC,CAAC1nB,EAAK,SAAS,eAAiB,CAAC,CAACmoB,EAChEE,EAAmBroB,EAAK,SAAS,eAAiB,CAACA,EAAK,SAAS,gBAAkBmoB,EACnFjjB,EAAQlF,EAAK,OAAS,GAItB,CACJ,QAAAgO,CACN,EAAQhO,EACJ,IAAIgoB,GAAmB,KAAK,MAAM,wBAAuC,CAACK,IAAoB,CAACD,EAC3FA,GAAc,KAAK,MAAM,gCAC3BJ,EAAmB,IAErB,MAAMM,EAAqB3W,GAAW,CACpC,sBAAuB,GACvB,gBAAiB0W,GAAoB,CAAC,KAAK,MAAM,eACjD,gBAAiBF,EACjB,cAAeC,EACf,WAAY,CAAC,CAACljB,EACd,eAAgB,KAAK,MAAM,iBAC3B,8BAA+B,CAAC,KAAK,MAAM,uBAC3C,WAAY8I,CAClB,CAAK,EACD,OAAO3rB,EAAE,MAAO,CACd,UAAWimC,EACX,GAAI,QAAQtoB,EAAK,EAAE,GACnB,KAAM,KAAK,MAAM,IACvB,EAAO3d,EAAE,MAAO,CACV,UAAW,6BACjB,EAAOA,EAAEgjC,GAAoB,CACvB,KAAMrlB,EACN,2BAA4B,KAAK,MAAM,2BACvC,KAAM,KAAK,MAAM,KACjB,eAAgB,KAAK,MAAM,eAC3B,WAAY,KAAK,MAAM,UAC7B,CAAK,EAAG3d,EAAEyjC,GAAc,CAClB,KAAM,KAAK,MAAM,KACjB,KAAM9lB,EACN,MAAOkF,EACP,WAAYkjB,EACZ,gBAAiB,KAAK,MAAM,gBAC5B,iBAAkB,KAAK,MAAM,iBAC7B,sBAAuB,KAAK,MAAM,sBAClC,eAAgB,KAAK,MAAM,eAC3B,iBAAkB,KAAK,MAAM,iBAC7B,uBAAwB,KAAK,MAAM,uBACnC,KAAM,KAAK,MAAM,IACvB,CAAK,CAAC,EAAG/lC,EAAE,MAAO,CACZ,UAAW,wCACjB,EAAOA,EAAE0kC,GAAU,CACb,KAAM/mB,EACN,eAAgB,KAAK,MAAM,eAC3B,gBAAiB,KAAK,MAAM,gBAC5B,KAAM,KAAK,MAAM,KACjB,oBAAqB,KAAK,MAAM,oBAChC,eAAgB,KAAK,MAAM,eAC3B,WAAY,KAAK,MAAM,WACvB,aAAc,KAAK,MAAM,YAC/B,CAAK,EAAG3d,EAAE0lC,GAAS,CACb,KAAM/nB,EACN,WAAY,KAAK,MAAM,WACvB,2BAA4B,KAAK,MAAM,2BACvC,iBAAkBgoB,EAClB,YAAa,KAAK,MAAM,YACxB,2BAA4BN,EAC5B,eAAgB,KAAK,MAAM,eAC3B,eAAgB,KAAK,MAAM,eAC3B,KAAM,KAAK,MAAM,KACjB,KAAM,KAAK,MAAM,IAClB,CAAA,CAAC,CAAC,CACP,CACA,CC9GA,SAASa,GAAO1xB,EAAM2C,EAAM,CAC1B,MAAMgvB,EAAU,CAAE,EAClB,IAAIC,EAAe,CAAE,EACrB,OAAA5xB,EAAK,QAAQsV,GAAQ,CACfsc,EAAa,OAASjvB,EACxBivB,EAAa,KAAKtc,CAAI,GAEtBqc,EAAQ,KAAKC,CAAY,EACzBA,EAAe,CAACtc,CAAI,EAE1B,CAAG,EACGsc,EAAa,QAAQD,EAAQ,KAAKC,CAAY,EAC3CD,CACT,CACe,SAASE,GAAS9f,EAAM,CACrC,GAAI,CACF,GAAAxS,EACA,KAAA+c,EACA,KAAA7C,EACA,MAAAvL,EACA,iBAAA+O,EACA,gBAAAmC,EACA,sBAAAF,EACA,iBAAAC,EACA,2BAAAsP,EACA,8BAAAqD,EACA,WAAA5D,EACA,aAAAkC,EACA,eAAAhC,EACA,uBAAA2D,EACA,sBAAAC,EACA,eAAA3V,EACA,uBAAA4V,EACA,YAAAC,EACA,eAAAd,EACA,YAAAN,EACA,oBAAAX,EACA,eAAAG,EACA,gBAAAD,CACJ,EAAMte,EAGJ,MAAMgY,EAAYmI,IAAgB,EAElC,GAEE,IAGIC,EAAOC,GAAQ,IAAM,CACzB,MAAMC,EAAwB,CAACC,EAAOC,IAAU,OAAOrkB,EAAMqkB,CAAK,EAAE,OAAO,EAAI,OAAOrkB,EAAMokB,CAAK,EAAE,OAAO,EACpGE,EAAU,OAAO,KAAKtkB,CAAK,EACjC,OAAImO,GAAgBmW,EAAQ,KAAKH,CAAqB,EAC/CX,GAAOc,EAASN,CAAW,CACnC,EAAE,CAAChkB,EAAOgkB,EAAa7V,CAAc,CAAC,EACjC2N,EAAYyI,GAAOjnC,EAAE,MAAO,CAChC,MAAO,4BAIP,KAAM,eAGN,IAAKinC,EAAI,CAAC,CACX,EAAEA,EAAI,IAAIzgB,GAAUxmB,EAAE6lC,GAAU,CAC/B,IAAKrf,EACL,KAAMyH,EAGN,GAAIla,EAGJ,KAAM+c,EAGN,iBAAkBW,EAClB,uBAAwBgV,EAGxB,gBAAiB7S,EACjB,sBAAuBF,EACvB,iBAAkBC,EAClB,2BAA4BsP,EAC5B,8BAA+BqD,EAC/B,WAAY5D,EACZ,eAAgB7R,EAChB,aAAc+T,EACd,eAAgBE,EAChB,gBAAiBD,EAGjB,eAAgBjC,EAChB,uBAAwB2D,EACxB,sBAAuBC,EACvB,KAAM,WACN,eAAgBZ,EAChB,YAAaN,EACb,oBAAqBX,EACrB,KAAMjiB,EAAM8D,CAAM,CACnB,CAAA,CAAC,CAAC,EACH,OAAIoe,EACK5kC,EAAE,MAAO,CACd,MAAO,sBACR,EAAEw+B,EAAUmI,EAAK,CAAC,CAAC,CAAC,EAEhB3mC,EAAEs+B,GAAa,CACpB,MAAO,uBACP,KAAM,OACN,KAAMqI,EACN,UAAWnI,EACX,UAAWD,CACf,CAAG,CACH,CCpHA,MAAM2I,WAAiB/Q,EAAU,CAC/B,aAAc,CACZ,MAAM,GAAG,SAAS,EAClB,KAAK,UAAY,KACjB,KAAK,YAAc,KACnB,KAAK,qBAAuB,KAC5B,KAAK,qBAAuB,KAC5B,KAAK,sBAAwB,IAAM,CACjC,IAAIgR,GACHA,EAAkB,KAAK,YAAc,MAAQA,EAAgB,MAAO,CACtE,EACD,KAAK,wBAA0B,IAAM,CACnC,IAAIC,GACHA,EAAoB,KAAK,cAAgB,MAAQA,EAAkB,MAAO,CAC5E,EACD,KAAK,6BAA+B,IAAM,CACxC,IAAIC,GACHA,EAAwB,KAAK,uBAAyB,MAAQA,EAAsB,MAAO,CAC7F,EACD,KAAK,6BAA+B,IAAM,CACxC,IAAIC,GACHA,EAAwB,KAAK,uBAAyB,MAAQA,EAAsB,MAAO,CAC7F,EACD,KAAK,kBAAoBtxB,GAAS,CAChC,KAAK,MAAM,kBAAkBA,CAAK,EAKlCA,EAAM,cAAc,MAAQ,EAC7B,EACD,KAAK,kBAAoB,CAACuxB,EAAUC,IAAgB,CAClD,IAAIC,EACJ,OAAOznC,EAAE,QAAS,CAChB,UAAW,uBACX,OAAQ,GACR,cAAe,OACf,SAAU,GAGV,gBAAiBunC,EACjB,KAAM,OACN,KAAM,UACN,SAAU,KAAK,MAAM,mBAAqB,EAC1C,SAAU,KAAK,kBACf,QAASE,EAAwB,KAAK,MAAM,mBAAqB,KAAO,OAASA,EAAsB,KAAK,IAAI,EAChH,IAAKD,CACb,CAAO,CACF,EACD,KAAK,wBAA0B,CAAClwB,EAAMowB,EAAwBF,IAAgB,CAK5E,MAAMG,EAJe,CACnB,MAAO,UACP,MAAO,SACR,EAC2BrwB,CAAI,EAChC,OAAOtX,EAAE,QAAS,CAChB,UAAW,uBACX,OAAQ,GACR,cAAe,OACf,SAAU,GACV,KAAM,OACN,KAAM,UAAUsX,CAAI,GACpB,SAAU,KAAK,kBACf,QAASowB,EACT,OAAQC,EACR,IAAKH,CACb,CAAO,CACF,EACD,KAAK,uBAAyB,IACrBxnC,EAAE,MAAO,CACd,UAAW,oBACX,KAAM,eACN,wBAAyB,UACjC,EAASA,EAAE,SAAU,CACb,KAAM,SACN,UAAW,gDACX,KAAM,MACN,SAAU,EACV,4BAA6B,GAC7B,QAAS,KAAK,qBACtB,EAASA,EAAE,MAAO,CACV,UAAW,yBACnB,EAASA,EAAE,MAAO,CACV,UAAW,iCACX,cAAe,OACf,UAAW,QACX,MAAO,KACP,OAAQ,KACR,QAAS,WACjB,EAASA,EAAE,OAAQ,CACX,EAAG,4aACH,KAAM,eACN,YAAa,SACrB,CAAO,CAAC,CAAC,EAAGA,EAAE,MAAO,CACb,UAAW,wBACZ,EAAE,KAAK,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,EAElC,KAAK,kBAAoB,IAChBA,EAAE,MAAO,CACd,UAAW,oBACX,KAAM,eACN,wBAAyB,mBACjC,EAASA,EAAE,SAAU,CACb,KAAM,SACN,UAAW,gDACX,KAAM,MACN,SAAU,EACV,4BAA6B,GAC7B,QAAS,KAAK,4BACtB,EAASA,EAAE,MAAO,CACV,UAAW,yBACnB,EAASA,EAAE,MAAO,CACV,cAAe,OACf,UAAW,QACX,MAAO,KACP,OAAQ,KACR,QAAS,WACjB,EAASA,EAAE,OAAQ,CACX,EAAG,4cACH,KAAM,UACN,YAAa,SACrB,CAAO,CAAC,CAAC,EAAGA,EAAE,MAAO,CACb,UAAW,wBACZ,EAAE,KAAK,MAAM,KAAK,gBAAgB,CAAC,CAAC,CAAC,EAExC,KAAK,kBAAoB,IAChBA,EAAE,MAAO,CACd,UAAW,oBACX,KAAM,eACN,wBAAyB,mBACjC,EAASA,EAAE,SAAU,CACb,KAAM,SACN,UAAW,gDACX,KAAM,MACN,SAAU,EACV,4BAA6B,GAC7B,QAAS,KAAK,4BACtB,EAASA,EAAE,MAAO,CACV,UAAW,yBACnB,EAASA,EAAE,MAAO,CACV,cAAe,OACf,MAAO,KACP,OAAQ,KACR,QAAS,WACjB,EAASA,EAAE,OAAQ,CACX,KAAM,UACN,SAAU,UACV,EAAG,igBACX,CAAO,CAAC,CAAC,EAAGA,EAAE,MAAO,CACb,UAAW,wBACZ,EAAE,KAAK,MAAM,KAAK,gBAAgB,CAAC,CAAC,CAAC,EAExC,KAAK,mBAAqB,CAACsgB,EAAMsnB,IAAc,CAC7C,MAAMC,EAAoB,KAAK,MAAM,UAAU,OAC/C,OAAO7nC,EAAE,SAAU,CACjB,KAAM,SACN,UAAW,gDACX,QAAS4nC,EACT,4BAA6BC,IAAsB,CACpD,EAAEvnB,CAAI,CACR,EACD,KAAK,6BAA+BunB,GAAqB,CACvD,MAAMC,EAAc,KAAK,mBAAmB,KAAK,MAAM,KAAK,aAAa,EAAG,KAAK,qBAAqB,EAChGC,EAAgB,KAAK,mBAAmB,KAAK,MAAM,KAAK,eAAe,EAAG,KAAK,uBAAuB,EAItGC,EAAuB,KAAK,MAAM,yBAClCC,EAAuBD,EAAqB,OAAO,CAAC,EAAE,cAAgBA,EAAqB,MAAM,CAAC,EACxG,OAAOhoC,EAAE,MAAO,CACd,MAAO,+BACR,EAED,KAAK,MAAM,kBAAoB,KAAK,MAAM,KAAK,aAAa,EAAI6nC,EAAoB,EAAI,KAAK,MAAM,UAAU,kBAAkBI,CAAoB,GAAI,CACrJ,YAAAH,EACA,cAAAC,EACA,OAAQD,CAChB,CAAO,EAAI,KAAK,MAAM,UAAU,YAAYG,CAAoB,GAAI,CAC5D,YAAAH,EACA,cAAAC,EACA,OAAQD,CAChB,CAAO,CAAC,CACH,EACD,KAAK,eAAiBI,GAAY,CAChC,IAAIC,EACJ,OAAOnoC,EAAE,MAAO,CACd,UAAW,oBACX,KAAM,eACN,wBAAyBkoC,EAAS,EAC1C,EAASloC,EAAE,SAAU,CACb,KAAM,SACN,UAAW,gDACX,KAAM,MACN,SAAU,EACV,UAAWkoC,EAAS,GACpB,gBAAiB,gCAAgCA,EAAS,EAAE,GAC5D,kBAAmBC,EAAwB,KAAK,MAAM,oBAAsB,KAAO,OAASA,EAAsB,MAAQD,EAAS,GACnI,4BAA6B,GAC7B,QAAS,IAAM,KAAK,MAAM,UAAUA,EAAS,EAAE,CACvD,EAASloC,EAAE,MAAO,CACV,UAAW,yBACZ,EAAEkoC,EAAS,KAAI,CAAE,EAAGloC,EAAE,MAAO,CAC5B,UAAW,wBACnB,EAASkoC,EAAS,IAAI,CAAC,CAAC,CACnB,EACD,KAAK,gBAAkBE,GAAa,CAGlC,MAAMC,EAA0B,CAAC,GAAGD,CAAS,EACvCE,EAAmBD,EAAwB,OAAOD,EAAU,OAAS,EAAGA,EAAU,MAAM,EAC9F,OAAOpoC,EAAEuoC,GAAU,KAAMF,EAAwB,IAAIH,GAAY,KAAK,eAAeA,CAAQ,CAAC,EAAGloC,EAAE,OAAQ,CACzG,KAAM,eACN,MAAO,CACL,cAAe,QACzB,CACA,EAASsoC,EAAiB,IAAIJ,GAAY,KAAK,eAAeA,CAAQ,CAAC,CAAC,CAAC,CACpE,EACD,KAAK,kBAAoB,CAACE,EAAWI,IAAsB,CACzD,KAAM,CACJ,4BAAAC,EACA,4BAAAC,CACD,EAAG,KAAK,MACT,IAAIl0B,EAAO,CAAE,EACb,MAAMm0B,EAAc,WACfH,GAAmBh0B,EAAK,KAAK,CAChC,IAAKm0B,EACL,SAAU,KAAK,uBAAsB,CAC7C,CAAO,EACGF,GAA6Bj0B,EAAK,KAAK,CACzC,IAAK,0BACL,SAAU,KAAK,kBAAiB,CACxC,CAAO,EACGk0B,GAA6Bl0B,EAAK,KAAK,CACzC,IAAK,0BACL,SAAU,KAAK,kBAAiB,CACxC,CAAO,EACDA,EAAK,KAAK,GAAG4zB,EAAU,IAAIF,IAAa,CACtC,IAAKA,EAAS,GACd,SAAU,KAAK,eAAeA,CAAQ,CACvC,EAAC,CAAC,EAGqB1zB,EAAK,SAAW,GAAKA,EAAK,CAAC,EAAE,MAAQm0B,IACxCn0B,EAAO,CAAE,GAI9B,MAAMo0B,EAAqB,CAAC,GAAGp0B,CAAI,EAC7Bq0B,EAAUD,EAAmB,OAAOp0B,EAAK,OAAS,EAAGA,EAAK,MAAM,EACtE,OAAOxU,EAAEuoC,GAAU,KAAM,KAAK,6BAA6B/zB,EAAK,MAAM,EAAGxU,EAAE,MAAO,CAChF,UAAW,+BACX,KAAM,SACd,EAAS4oC,EAAmB,IAAIriB,GAAQ,CAChC,GAAI,CACF,IAAAtR,EACA,SAAAqnB,CACV,EAAY/V,EACJ,OAAOvmB,EAAEuoC,GAAU,CACjB,IAAKtzB,CACN,EAAEqnB,CAAQ,CACnB,CAAO,EAAGt8B,EAAE,OAAQ,CACZ,KAAM,eACN,MAAO,CACL,cAAe,QACzB,CACA,EAAS6oC,EAAQ,IAAI7d,GAAS,CACtB,GAAI,CACF,IAAA/V,EACA,SAAAqnB,CACV,EAAYtR,EACJ,OAAOhrB,EAAEuoC,GAAU,CACjB,IAAKtzB,CACN,EAAEqnB,CAAQ,CACZ,CAAA,CAAC,CAAC,CAAC,CACL,CACL,CACE,CAAC,OAAO,IAAI,8CAA8C,CAAC,GAAI,CAE7D,KAAK,MAAM,UAAU,eAAe,EACpC,KAAK,MAAM,UAAU,gBAAgB,EACrC,KAAK,MAAM,UAAU,kBAAkB,EACvC,KAAK,MAAM,UAAU,qBAAqB,EAC1C,KAAK,MAAM,UAAU,sBAAsB,EAC3C,KAAK,MAAM,UAAU,wBAAwB,CACjD,CACE,qBAAsB,CACpB,KAAM,CACJ,UAAAwM,CACD,EAAG,KAAK,MACHC,EAAe/oC,EAAE,OAAQ,KAAMA,EAAE,MAAO,CAC5C,cAAe,OACf,UAAW,QACX,UAAW,2CACX,MAAO,KACP,OAAQ,KACR,QAAS,WACf,EAAOA,EAAE,OAAQ,CACX,EAAG,0EACH,SAAU,SAChB,CAAK,CAAC,EAAGA,EAAE,OAAQ,CACb,UAAW,8BACZ,EAAE,MAAM,CAAC,EACJgpC,EAAWF,EAAU,YAAa,CACtC,KAAMC,CACZ,CAAK,EACD,OAAO/oC,EAAE,IAAK,CACZ,SAAU,GACV,KAAM,kBACN,IAAK,sBACL,OAAQ,SACR,UAAW,0BACZ,EAAEgpC,CAAQ,CACf,CACE,QAAS,CACP,KAAM,CACJ,4BAAAP,EACA,4BAAAC,EACA,uBAAAhB,CACD,EAAG,KAAK,MACT,OAAO1nC,EAAE,MAAO,CACd,UAAW,yBACZ,EAAE,KAAK,kBAAkB,GAAOg5B,GAAO,CACtC,KAAK,UAAYA,CAClB,CAAA,EAAG,KAAK,kBAAkB,GAAMA,GAAO,CACtC,KAAK,YAAcA,CACzB,CAAK,EAAGyP,GAA+B,KAAK,wBAAwB,QAASf,EAAwB1O,GAAO,CACtG,KAAK,qBAAuBA,CAClC,CAAK,EAAG0P,GAA+B,KAAK,wBAAwB,QAAShB,EAAwB1O,GAAO,CACtG,KAAK,qBAAuBA,CAC7B,CAAA,EAAG,KAAK,kBAAkB,KAAK,MAAM,UAAW,KAAK,MAAM,iBAAiB,EAAGh5B,EAAE,MAAO,CACvF,UAAW,8BACZ,EAAE,KAAK,MAAM,MAAQA,EAAE,MAAO,CAC7B,UAAW,qBACjB,EAAO,KAAK,MAAM,IAAI,EAAG,KAAK,MAAM,6BAA+B,KAAK,oBAAmB,CAAE,CAAC,CAC9F,CACA,CC7UA,MAAMipC,GAAgBtY,GACb3wB,EAAE,MAAO,CACd,UAAWsvB,GAAW,+BAAgCqB,EAAM,SAAS,EACrE,sBAAuB,WACvB,cAAe,CAACA,EAAM,iBAC1B,EAAK3wB,EAAE,MAAO,CACV,UAAW,2BACf,EAAKA,EAAE,MAAO,CACV,UAAW,8BACX,KAAM,UACN,aAAc,GAClB,EAAK2wB,EAAM,KAAK,iBAAiB,CAAC,EAAG3wB,EAAE,SAAU,CAC7C,UAAW,6BACX,KAAM,SACN,QAAS,IAAM2wB,EAAM,oBAAoB,EAAK,CAClD,EAAKA,EAAM,KAAK,MAAM,CAAC,CAAC,EAAG3wB,EAAEknC,GAAUvW,CAAK,CAAC,ECd7C,SAASuY,GAAYC,EAAI,CACvB,KAAM,CACJ,QAAAC,CACD,EAAGD,EAAG,OACP,GAAIC,IAAY,SAAWA,IAAY,WAAY,CACjDD,EAAG,gBAAiB,EACpB,MACJ,CACEA,EAAG,eAAgB,EACnBA,EAAG,gBAAiB,CACtB,CCXA,SAASE,GAAmB9iB,EAAM,CAChC,GAAI,CACF,kBAAA+iB,EACA,UAAAC,EACA,cAAAC,EACA,KAAA1Y,EACA,MAAA3K,EACA,KAAA8H,CACJ,EAAM1H,EACJ,MAAMyS,EAAMyQ,GAAO,IAAI,EACvB,OAAOzpC,EAAE,MAAO,CACd,UAAWsvB,GAAW,8BAA+Bia,CAAS,EAC9D,KAAM,WACN,sBAAuB,cACvB,GAAI,gCAAgCD,EAAkB,EAAE,GACxD,WAAYJ,GACZ,YAAaA,GACb,OAAQA,GACR,QAASA,EACb,EAAKlpC,EAAE,MAAO,CACV,UAAW,2BACf,EAAKA,EAAE,MAAO,CACV,UAAW,8BACX,KAAM,UACN,aAAc,GAClB,EAAK8wB,EAAK,aAAc,CACpB,KAAMwY,EAAkB,IAC5B,CAAG,CAAC,EAAGtpC,EAAE,SAAU,CACf,UAAW,6BACX,KAAM,SACN,QAASwpC,CACV,EAAE1Y,EAAK,QAAQ,CAAC,CAAC,EAAG9wB,EAAE,MAAO,CAC5B,IAAKg5B,EACL,UAAW,iCACf,EAAK/K,EAAK,UAAUqb,EAAkB,EAAE,EAAE,OAAOnjB,EAAO6S,EAAI,OAAO,CAAC,CAAC,CACrE,CCpCA,SAAS0Q,GAAY/Y,EAAO,CAC1B,MAAMhT,EAAOgT,EAAM,MAAMA,EAAM,WAAW,EACpCgZ,EAAe,IAAM,CACzBhZ,EAAM,KAAK,KAAK,qBAAsBhT,CAAI,EAC1CgT,EAAM,gBAAiB,CACxB,EACD,OAAO3wB,EAAE,MAAO,CACd,UAAWsvB,GAAW,8BAA+BqB,EAAM,SAAS,EACpE,KAAM,WACN,sBAAuB,aACvB,GAAI,qCACR,EAAK3wB,EAAE,MAAO,CACV,UAAW,2BACf,EAAKA,EAAE,MAAO,CACV,UAAW,8BACX,KAAM,UACN,aAAc,GAClB,EAAK2wB,EAAM,UAAU,UAAW,CAC5B,KAAM3wB,EAAE,OAAQ,CACd,UAAW,iCACjB,EAAO2d,EAAK,KAAOA,EAAK,KAAK,KAAOA,EAAK,IAAI,CAC7C,CAAG,CAAC,EAAG3d,EAAE,SAAU,CACf,UAAW,6BACX,KAAM,SACN,QAAS2pC,CACb,EAAKhZ,EAAM,KAAK,QAAQ,CAAC,EAAG3wB,EAAE,SAAU,CACpC,UAAW,6BACX,KAAM,SACN,QAAS2wB,EAAM,cACnB,EAAKA,EAAM,KAAK,MAAM,CAAC,CAAC,EAAG3wB,EAAE,MAAO,CAChC,UAAW,iCACZ,EAAE2wB,EAAM,QAAQ,IAAI1P,GACZ0P,EAAM,KAAK,UAAU1P,EAAO,EAAE,EAAE,OAAO0P,EAAM,KAAK,CAC1D,CAAC,CAAC,CACL,CCpCA,MAAMiZ,GAAe,CACnB,YAAa,QACb,cAAe,UACf,oBAAqB,gBACrB,gBAAiB,YACjB,qBAAsB,iBACtB,eAAgB,WAChB,aAAc,QAChB,EACA,SAAShV,GAAkBiV,EAAcrY,EAAeD,EAAa7O,EAAO,CAI1E,GAHIA,IAAU,SACZA,EAAQ,CAAE,GAERmnB,EACF,OAAOD,GAAa,YAEtB,GAAIpY,EACF,OAAOoY,GAAa,eAEtB,GAAIrY,EACF,OAAOqY,GAAa,aAEtB,IAAIzjB,EAAQyjB,GAAa,cACzB,MAAMphB,EAAU,OAAO,KAAK9F,CAAK,EACjC,QAASnjB,EAAI,EAAGA,EAAIipB,EAAQ,OAAQjpB,IAAK,CACvC,KAAM,CACJ,SAAAsmB,CACN,EAAQnD,EAAM8F,EAAQjpB,CAAC,CAAC,EAEpB,GAAIsmB,EAAS,eAAiB,CAACA,EAAS,eACtC,OAAO+jB,GAAa,gBAIlB/jB,EAAS,YAAcM,IAAUyjB,GAAa,kBAChDzjB,EAAQyjB,GAAa,qBAInB/jB,EAAS,aAAeM,IAAUyjB,GAAa,iBAAmBzjB,IAAUyjB,GAAa,sBAC3FzjB,EAAQyjB,GAAa,qBAE3B,CACE,OAAOzjB,CACT,CACA,SAAS2jB,GAAavjB,EAAM,CAC1B,GAAI,CACF,MAAA7D,EACA,KAAAoO,EACA,cAAAU,EACA,aAAAqY,EACA,YAAAtY,EACA,yBAAA1J,EACA,SAAAN,EACA,gBAAAO,CACJ,EAAMvB,EAEJ,OADuBqO,GAAkBiV,EAAcrY,EAAeD,EAAa7O,CAAK,EAClE,CACpB,IAAK,YACH,OAAOoO,EAAK,kBAAmB,CAC7B,YAAajJ,EAAyB,MAC9C,CAAO,EACH,IAAK,gBACL,IAAK,iBACH,OAAOiJ,EAAK,mBAAoB,CAC9B,YAAahJ,EAAgB,MACrC,CAAO,EACH,IAAK,SACH,OAAOgJ,EAAK,cAAc,EAC5B,IAAK,UACH,OAAOA,EAAK,iBAAkB,CAC5B,YAAavJ,EAAS,MAC9B,CAAO,EACH,IAAK,WACH,OAAOuJ,EAAK,gBAAgB,EAC9B,IAAK,QACH,OAAOA,EAAK,OAAO,CAEzB,CACA,CACA,SAASiZ,GAAYpZ,EAAO,CAC1B,KAAM,CACJ,KAAAG,EACA,cAAAU,EACA,iBAAAmC,EACA,iBAAA5R,EACA,oBAAA4iB,EACA,KAAA1W,CACJ,EAAM0C,EACJ,GAAI,CACF,eAAAxF,CACJ,EAAMwF,EAEJ,OAAIxF,GAAkBpJ,IAEpBoJ,EAAiBwF,EAAM,eAAiBA,EAAM,kBAEzC3wB,EAAE,MAAO,CACd,UAAW,2BACZ,EAAE,CAACwxB,GAAiB,CAACmC,EAAmB3zB,EAAE,SAAU,CACnD,UAAW,6BACX,KAAM,SACN,QAAS,IAAMiuB,EAAK,UAAS,CACjC,EAAK6C,EAAK,QAAQ,CAAC,EAAI9wB,EAAE,MAAO,IAAI,EAAGA,EAAE,MAAO,CAC5C,UAAW,8BACX,KAAM,UACN,aAAc,GAClB,EAAKA,EAAE8pC,GAAcnZ,CAAK,CAAC,EAAGxF,EAAiBnrB,EAAE,SAAU,CACvD,UAAW,gCACX,KAAM,SACN,aAAc8wB,EAAK,cAAc,EACjC,MAAOA,EAAK,cAAc,EAC1B,QAAS,IAAM6T,EAAoB,EAAI,CAC3C,EAAK3kC,EAAE,MAAO,CACV,cAAe,OACf,UAAW,QACX,UAAW,cACX,MAAO,KACP,OAAQ,KACR,QAAS,WACb,EAAKA,EAAE,OAAQ,CACX,EAAG,uKACP,CAAG,CAAC,EAAGA,EAAE,OAAQ,CACb,UAAW,sCACf,EAAK8wB,EAAK,SAAS,CAAC,CAAC,EAAI9wB,EAAE,MAAO,IAAI,CAAC,CACvC,CC7He,SAASgqC,GAAiBrZ,EAAO,CAC9C,KAAM,CACJ,mBAAAsZ,EACA,mBAAAnnB,EACA,WAAAonB,EACA,KAAAC,EACA,UAAAC,CACJ,EAAMzZ,EACE0Z,EAAkB,CACtB,KAAM,6DACP,EACD,OAAOJ,EAAmB,IAAIjnB,GAAS,CACrC,MAAMjP,EAAK,iCAAiCiP,EAAM,EAAE,GAC9CsnB,EAAWxnB,EAAmB,SAASE,EAAM,EAAE,EACrD,OAAOhjB,EAAE,WAAY,CACnB,IAAKgjB,EAAM,GACX,UAAW,kCACjB,EAAOhjB,EAAE,QAAS,CACZ,UAAW,gCACX,QAAS+T,CACf,EAAOiP,EAAM,IAAI,EAAGA,EAAM,SAAW,OAAYA,EAAM,OAAO,CACxD,MAAOonB,EAAUpnB,EAAM,EAAE,EACzB,SAAUunB,GAAUL,EAAWK,EAAQvnB,EAAM,EAAE,EAC/C,gBAAAqnB,EACA,SAAAC,EACA,KAAMH,EAAK,EACjB,EAAOnqC,CAAC,EAAIA,EAAE,QAAS,CACjB,UAAWqqC,EAAgB,KAC3B,GAAIt2B,EACJ,KAAMo2B,EAAK,GACX,KAAMnnB,EAAM,MAAQ,OACpB,SAAUsnB,EACV,MAAOF,EAAUpnB,EAAM,EAAE,EACzB,YAAaA,EAAM,YACnB,QAASmmB,GAAMe,EAAWf,EAAG,OAAO,MAAOnmB,EAAM,EAAE,EACnD,4BAA6B,EACnC,CAAK,CAAC,CACN,CAAG,CACH,CC/Be,SAASwnB,GAAS7Z,EAAO,CACtC,IAAI8Z,EACJ,KAAM,CACJ,MAAA/nB,EACA,YAAAgoB,EACA,eAAA9H,EACA,aAAA+H,EACA,WAAAjI,EACA,mBAAA5f,EACA,eAAA8iB,EACA,KAAA9U,EACA,UAAAgY,EACA,UAAAS,EACA,YAAAjE,CACJ,EAAM3U,EACEia,EAAgB,IACb,OAAOlI,GAAe,WAAaA,EAAWhgB,EAAMgoB,CAAW,CAAC,EAAIhI,EAEvE/kB,EAAO+E,EAAMgoB,CAAW,EACxBT,GAAsBQ,EAAiBG,EAAa,IAAO,KAAOH,EAAiB,CAAE,EACrFI,EAAiBvF,EAAY3nB,CAAI,EACjCmtB,EAAiB,CAAE,EACzBb,EAAmB,QAAQjnB,GAAS,CAClC,IAAI+nB,EACJD,EAAe9nB,EAAM,EAAE,GAAK+nB,EAAsBptB,EAAK,KAAKqF,EAAM,EAAE,IAAM,KAAO+nB,EAAsB,EAC3G,CAAG,EACD,KAAM,CAACX,EAAWY,CAAY,EAAIC,GAASH,CAAc,EACnDI,EAAaC,GAAYhC,GAAM,CACnCA,EAAG,eAAgB,EACnBwB,EAAaP,EAAWM,CAAW,CACpC,EAAE,CAACC,EAAcP,EAAWM,CAAW,CAAC,EACnCR,EAAa,CAACK,EAAQtsB,IAAS,CACnC+sB,EAAa,CACX,GAAGZ,EACH,CAACnsB,CAAI,EAAGssB,CACd,CAAK,CACF,EACKZ,EAAe,IAAM,CACzB/G,EAAe,EAAK,CACrB,EACK,CAACuH,CAAI,EAAIc,GAAS,IAAM,CAC5B,MAAMG,EAAS,SAAS,cAAc,MAAM,EAC5C,OAAAA,EAAO,aAAa,WAAY,IAAI,EACpCA,EAAO,GAAKl0B,GAAQ,EACbk0B,CACX,CAAG,EACDC,OAAAA,GAAU,KACR,SAAS,KAAK,YAAYlB,CAAI,EAC9BA,EAAK,iBAAiB,SAAUe,CAAU,EACnC,IAAM,CACXf,EAAK,oBAAoB,SAAUe,CAAU,EAC7C,SAAS,KAAK,YAAYf,CAAI,CAC/B,GACA,CAACA,EAAMe,CAAU,CAAC,EACdlrC,EAAE,MAAO,CACd,UAAWsvB,GAAW,0BAA2Bia,CAAS,EAC1D,sBAAuB,WACvB,WAAYL,GACZ,YAAaA,GACb,OAAQA,GACR,QAASA,EACb,EAAKlpC,EAAE,MAAO,CACV,UAAW,2BACf,EAAKA,EAAE,MAAO,CACV,UAAW,8BACX,KAAM,UACN,aAAc,GAClB,EAAK8oC,EAAU,UAAW,CACtB,KAAM9oC,EAAE,OAAQ,CACd,UAAW,iCACjB,EAAO2d,EAAK,KAAOA,EAAK,KAAK,KAAOA,EAAK,IAAI,CAC7C,CAAG,CAAC,EAAG3d,EAAE,SAAU,CACf,UAAW,6BACX,KAAM,SACN,KAAMmqC,EAAK,GACX,MAAOrZ,EAAK,mBAAmB,EAC/B,QAAS6Y,CACV,EAAE7Y,EAAK,QAAQ,CAAC,CAAC,EAAG9wB,EAAE,MAAO,CAC5B,UAAW,+BACf,EAAKA,EAAE,MAAO,CACV,UAAW,kCACX,MAAO,CACL,gBAAiBuiC,GAAgB5kB,EAAK,IAAI,EAAE,KAClD,CACA,EAAK3d,EAAEoiC,GAAa,CAChB,KAAMzkB,CACV,CAAG,EAAGktB,GAAkB7qC,EAAE,SAAU,CAChC,KAAM,SACN,UAAW,uDACX,QAASgW,GAAS,CAKhBk1B,EAAWl1B,CAAK,EAChB4vB,EAAejoB,CAAI,CACzB,CACG,EAAEmT,EAAK,WAAW,CAAC,CAAC,EAAG9wB,EAAE,MAAO,CAC/B,UAAW,8BACf,EAAKA,EAAEgqC,GAAkB,CACrB,mBAAoBC,EACpB,mBAAoBnnB,EACpB,WAAYonB,EACZ,KAAMC,EACN,UAAWC,CACf,CAAG,CAAC,EAAGpqC,EAAE,MAAO,CACZ,UAAW,iCACf,EAAKA,EAAE,SAAU,CACb,UAAW,gFAIX,KAAM,SACN,KAAMmqC,EAAK,EACZ,EAAErZ,EAAK,aAAa,CAAC,EAAG9wB,EAAE,SAAU,CACnC,UAAW,6EACX,KAAM,SACN,QAAS2pC,EACT,KAAMQ,EAAK,EACZ,EAAErZ,EAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CACtB,CC7HA,MAAMyH,GAAiB,8BACjBtO,GAAW,IAWjB,SAASqhB,GAAM/kB,EAAM,CACnB,GAAI,CACF,SAAA8P,CACJ,EAAM9P,EACJ,KAAM,CAACglB,EAAgBC,CAAiB,EAAIP,GAAS,IAAI,EACnD,CAAC1B,EAAWkC,CAAY,EAAIR,GAAS,EAAE,EACvCS,EAAkBjC,GAAQ,EAC1BkC,EAAkBlC,GAAQ,EAC1BmC,EAAoBnC,GAAQ,EAC5BoC,EAAwB,IAAM,CAClCJ,EAAa,GAAGlT,EAAc,QAAQ,EACtC,qBAAqBqT,EAAkB,OAAO,EAC9C,aAAaD,EAAgB,OAAO,EACpCA,EAAgB,QAAU,OAC1BC,EAAkB,QAAU,sBAAsB,IAAM,CACtDH,EAAa,GAAGlT,EAAc,UAAUA,EAAc,eAAe,EACrEmT,EAAgB,QAAU,WAAW,IAAM,CACzCD,EAAa,EAAE,CAChB,EAAExhB,EAAQ,CACjB,CAAK,CACF,EACK6hB,EAAwB,IAAM,CAClCL,EAAa,GAAGlT,EAAc,QAAQ,EACtC,qBAAqBqT,EAAkB,OAAO,EAC9C,aAAaF,EAAgB,OAAO,EACpCA,EAAgB,QAAU,OAC1BE,EAAkB,QAAU,sBAAsB,IAAM,CACtDH,EAAa,GAAGlT,EAAc,UAAUA,EAAc,eAAe,EACrEoT,EAAgB,QAAU,WAAW,IAAM,CACzCH,EAAkB,IAAI,EACtBC,EAAa,EAAE,CAChB,EAAExhB,EAAQ,CACjB,CAAK,CACF,EAoBD,OAnBAohB,GAAU,IAAM,CACd,MAAMtS,EAAQpB,GAAatB,CAAQ,EAAE,CAAC,EAClCkV,IAAmBxS,IACnBA,GAAS,CAACwS,EACZM,EAAuB,EACdN,GAAkB,CAACxS,GAAS,CAAC4S,EAAgB,SACtDG,EAAuB,EAEzBN,EAAkBzS,CAAK,EAC3B,EAAK,CAAC1C,EAAUkV,CAAc,CAAC,EAE7BF,GAAU,IACD,IAAM,CACX,aAAaK,EAAgB,OAAO,EACpC,aAAaC,EAAgB,OAAO,EACpC,qBAAqBC,EAAkB,OAAO,CAC/C,EACA,CAAE,CAAA,EAEAL,EACEtS,GAAasS,EAAgB,CAClC,UAAWjc,GAAWia,EAAWgC,EAAe,MAAM,SAAS,CACnE,CAAG,EAH2B,IAI9B,CCxEA,SAASpN,IAAW,CAAE,OAAOA,GAAW,OAAO,OAAS,OAAO,OAAO,OAAS,SAAU3+B,EAAG,CAAE,QAAS,EAAI,EAAG,EAAI,UAAU,OAAQ,IAAK,CAAE,IAAI,EAAI,UAAU,CAAC,EAAG,QAASC,KAAK,GAAI,IAAI,eAAe,KAAK,EAAGA,CAAC,IAAMD,EAAEC,CAAC,EAAI,EAAEA,CAAC,EAAK,CAAC,OAAOD,GAAM2+B,GAAS,MAAM,KAAM,SAAS,CAAE,CAgBlR,MAAM4N,GAAW,IACXC,GAAW,IACXC,GAAW,IACXC,GAAY,IAKH,SAASC,GAAUxb,EAAO,CACvC,MAAMyb,EAAYzb,EAAM,iBAAmB,EACrCiU,EAAejU,EAAM,iBAAmB,EACxC0b,EAAW1b,EAAM,eAAiBsb,GAClCK,EAAiB3b,EAAM,gBAAkBub,GACzCK,EAAqBjd,GAAW,CACpC,iBAAkB,GAClB,6BAA8BqB,EAAM,SACpC,mCAAoCA,EAAM,iBAC1C,4BAA6BA,EAAM,UACnC,iCAAkCA,EAAM,eACxC,wBAAyB,CAACA,EAAM,OAChC,gBAAiBA,EAAM,eAAiBsb,GACxC,gBAAiBtb,EAAM,eAAiBqb,GACxC,gBAAiBrb,EAAM,eAAiBob,GACxC,uBAAwBpb,EAAM,gBAAkBub,GAIhD,yCAA0Cvb,EAAM,kBAChD,qCAAsCA,EAAM,2BAE5C,6BAA8BA,EAAM,sBAAwBiU,GAAgB0H,CAChF,CAAG,EAGD,IAAI5F,EAAc,EACd/V,EAAM,eAAiBob,GACzBrF,EAAc,EACL/V,EAAM,eAAiBqb,GAChCtF,EAAc,EACL/V,EAAM,eAAiBsb,KAChCvF,EAAc,GAEhB,MAAM8F,EAAe7b,EAAM,mBAAqB,CAACyb,EAC3CK,EAA2B9b,EAAM,eAAiB,OAAO,KAAKA,EAAM,eAAe,KAAK,EAAE,OAAS,KACnG+b,EAAiB/b,EAAM,MAAQ,OAAO,KAAKA,EAAM,KAAK,EAAE,OAAOnK,GAAUmK,EAAM,MAAMnK,CAAM,EAAE,OAAO,EAAE,OAAS,EAC/GmmB,EAAqB,IACrBD,EAAiB,EACZ/b,EAAM,KAAK,kBAAmB,CACnC,YAAa+b,CACrB,CAAO,EAEI/b,EAAM,KAAK,mBAAmB,EA6HvC,OA3HkB3wB,EAAE,MAAO,CACzB,UAAWusC,EACX,kBAAmB5b,EAAM,MACzB,0BAA2BA,EAAM,UAAU,OAC3C,gCAAiC,CAACA,EAAM,mBAAqBsQ,GAAqB,EAClF,cAAetQ,EAAM,OAAS,QAAUA,EAAM,SAC9C,gBAAiBA,EAAM,SACvB,aAAeA,EAAM,OAA8CA,EAAM,KAAK,gBAAgB,EAAhEA,EAAM,KAAK,sBAAsB,EAC/D,QAASA,EAAM,YACf,WAAYA,EAAM,eAClB,YAAaA,EAAM,gBACnB,OAAQA,EAAM,UAClB,EAAK3wB,EAAE,MAAO,CACV,cAAe,OACf,UAAW,yBACX,SAAU,GACV,QAAS2wB,EAAM,kBACnB,CAAG,EAAG3wB,EAAE,MAAO,CACX,UAAW,uBACX,aAAc,CAAC2wB,EAAM,QAAU,OAC/B,KAAMA,EAAM,OAAS,OAAY,SACjC,MAAO,CACL,MAAOA,EAAM,QAAUA,EAAM,MAAQA,EAAM,MAAQ,GACnD,OAAQA,EAAM,QAAUA,EAAM,OAASA,EAAM,OAAS,EAC5D,CACG,EAAGA,EAAM,OAQI,KARK3wB,EAAE,SAAU,CAC7B,UAAW,oCACX,KAAM,SACN,aAAc2wB,EAAM,KAAK,YAAY,EACrC,MAAOA,EAAM,KAAK,YAAY,EAC9B,QAASA,EAAM,UACnB,EAAK3wB,EAAE,OAAQ,CACX,cAAe,MAChB,EAAE,GAAM,CAAC,EAAUA,EAAE,MAAO,CAC3B,UAAW,0BACf,EAAKA,EAAE,MAAO,CACV,UAAW,kCACZ,EAAE2wB,EAAM,KAAK,UAAU,CAAC,EAAG6b,GAAgBxsC,EAAE+pC,GAAapZ,CAAK,EAAG8b,GAA4BzsC,EAAE,MAAO,CACtG,UAAW,2BACf,EAAKA,EAAE,MAAO,CACV,UAAW,iCACX,cAAe,OACf,UAAW,QACX,MAAO,KACP,OAAQ,KACR,QAAS,WACb,EAAKA,EAAE,IAAK,CACR,UAAW,kBACX,KAAM,OACN,SAAU,SACd,EAAKA,EAAE,OAAQ,CACX,EAAG,uGACH,KAAM,SACV,CAAG,EAAGA,EAAE,OAAQ,CACZ,KAAM,OACN,EAAG,qBACP,CAAG,EAAGA,EAAE,SAAU,CACd,KAAM,OACN,GAAI,KACJ,GAAI,KACJ,EAAG,GACP,CAAG,CAAC,CAAC,EAAGA,EAAE,SAAU,CAChB,UAAW,iCACf,EAAK2wB,EAAM,KAAK,iBAAiB,CAAC,EAAG3wB,EAAE,MAAO,CAC1C,UAAW,gCACZ,EAAE2sC,EAAkB,CAAE,CAAC,EAAGH,EAAexsC,EAAEqmC,GAAU,CACpD,GAAI1V,EAAM,GACV,KAAMA,EAAM,KACZ,KAAMA,EAAM,KACZ,MAAOA,EAAM,MACb,iBAAkBA,EAAM,iBACxB,gBAAiBA,EAAM,gBACvB,sBAAuBA,EAAM,sBAC7B,iBAAkBA,EAAM,iBACxB,2BAA4BA,EAAM,2BAClC,8BAA+BA,EAAM,8BACrC,WAAYA,EAAM,WAClB,eAAgBA,EAAM,eACtB,uBAAwBA,EAAM,uBAC9B,sBAAuBA,EAAM,sBAC7B,eAAgBA,EAAM,eACtB,uBAAwBA,EAAM,uBAC9B,eAAgBA,EAAM,eACtB,YAAaA,EAAM,YACnB,oBAAqBA,EAAM,oBAC3B,aAAciU,EACd,YAAa8B,EACb,eAAgB/V,EAAM,eACtB,gBAAiBA,EAAM,eAC3B,CAAG,EAAI3wB,EAAEknC,GAAU,CACf,KAAMvW,EAAM,KACZ,UAAWA,EAAM,UACjB,UAAWA,EAAM,UACjB,kBAAmBA,EAAM,kBACzB,iBAAkBA,EAAM,iBACxB,iBAAkBA,EAAM,iBACxB,4BAA6BA,EAAM,4BACnC,4BAA6BA,EAAM,4BACnC,uBAAwBA,EAAM,uBAC9B,UAAWA,EAAM,UACjB,kBAAmBA,EAAM,kBACzB,kBAAmBA,EAAM,kBACzB,yBAA0BA,EAAM,yBAChC,KAAMA,EAAM,KACZ,4BAA6BA,EAAM,2BACvC,CAAG,EAAG3wB,EAAEsrC,GAAO,KAAM3a,EAAM,kBAAoB3wB,EAAEipC,GAAe9K,GAAS,CACrE,IAAK,UACN,EAAExN,EAAO,CACR,SAAU0b,CACX,CAAA,CAAC,EAAI,IAAI,EAAGrsC,EAAEsrC,GAAO,KAAM3a,EAAM,YAAc3wB,EAAEwqC,GAAUrM,GAAS,CACnE,IAAK,UACN,EAAExN,CAAK,CAAC,EAAI,IAAI,EAAG3wB,EAAEsrC,GAAO,KAAM3a,EAAM,kBAAoB3wB,EAAEqpC,GAAoBlL,GAAS,CAC1F,IAAK,QACN,EAAExN,CAAK,CAAC,EAAI,IAAI,EAAG3wB,EAAEsrC,GAAO,KAAM3a,EAAM,eAAiB3wB,EAAE0pC,GAAavL,GAAS,CAChF,IAAK,QACN,EAAExN,CAAK,CAAC,EAAI,IAAI,EAAG3wB,EAAE,MAAO,CAC3B,UAAW,mCACZ,EAAE2wB,EAAM,mBAAmB,IAAI1P,GAIvB0P,EAAM,KAAK,UAAU1P,EAAO,EAAE,EAAE,OAAO0P,EAAM,KAAK,CAC1D,CAAC,CAAC,CAAC,CAAC,CAEP,CCjMA,MAAeic,GAAA,CACb,QAAS,CAEP,WAAY,cAEZ,aAAc,iBACd,gBAAiB,oBAEjB,WAAY,sBAEZ,qBAAsB,gDAEtB,eAAgB,iBAEhB,2BAA4B,4BAG5B,4BAA6B,qBAE7B,SAAU,YACV,KAAM,OAEN,WAAY,cAEZ,SAAU,YACV,UAAW,aAEX,QAAS,kBAET,MAAO,QAGP,kBAAmB,sBACnB,YAAa,eAEb,SAAU,YACV,SAAU,uBAGV,eAAgB,kBAChB,aAAc,gBAEd,aAAc,gBAEd,YAAa,eAEb,YAAa,eAEb,aAAc,gBAEd,eAAgB,CACd,EAAG,+BACH,EAAG,+BACJ,EACD,gBAAiB,CACf,EAAG,gCACH,EAAG,gCACJ,EACD,iBAAkB,CAChB,EAAG,iCACH,EAAG,iCACJ,EAED,UAAW,qBACX,QAAS,WACT,qBAAsB,oBACtB,KAAM,OACN,OAAQ,SACR,eAAgB,oCAChB,iBAAkB,sCAClB,cAAe,sDACf,qBAAsB,kDACtB,uBAAwB,oDACxB,oBAAqB,oEACrB,YAAa,qBACb,YAAa,eACb,cAAe,iBACf,gBAAiB,CACf,EAAG,gFACH,EAAG,+FACJ,EACD,kBAAmB,wDACnB,gBAAiB,mBACjB,SAAU,YACV,0BAA2B,CACzB,EAAG,0CACH,EAAG,0CACJ,EAED,eAAgB,eAChB,eAAgB,cACpB,CACA,EC5FA,SAAS94B,GAA4BxU,EAAGD,EAAG,CAAE,GAAI,CAAC,CAAA,EAAG,eAAe,KAAKC,EAAGD,CAAC,EAAG,MAAM,IAAI,UAAU,gDAAgD,EAAG,OAAOC,CAAE,CAChK,IAAIyU,GAAK,EACT,SAASC,GAA2B1U,EAAG,CAAE,MAAO,aAAeyU,KAAO,IAAMzU,CAAE,CAiB9E,MAAMqd,GAAc,CAClB,QAAW,OACb,EAEMkwB,GAAUpN,GAAW,SAAWA,GAChCqN,GAAU,EACVC,GAAU,GAChB,SAASC,IAAgB,CACvB,MAAMttC,EAAI,CAAE,EACZ,OAAAA,EAAE,QAAU,IAAI,QAAQ,CAAC26B,EAASiB,IAAW,CAC3C57B,EAAE,QAAU26B,EACZ36B,EAAE,OAAS47B,CACf,CAAG,EACM57B,CACT,CACA,MAAMyhB,GAAiB,CACrB,OAAQ,OACR,WAAY,CAAE,EACd,eAAgB,IAChB,cAAe,aACf,8BAA+B,GAC/B,kBAAA8d,GACA,2BAA4B,GAC5B,oBAAqB,GACrB,iBAAkB,GAClB,iBAAkB,GAClB,gBAAiB,GACjB,sBAAuB,GACvB,wBAAyB,GACzB,KAAM,KACN,qBAAsB,GACtB,iBAAkB,GAClB,gBAAiB,GACjB,0BAA2B,GAC3B,yBAA0B,QAC1B,4BAA6B,GAC7B,kBAAmB,GACnB,8BAA+B,GAC/B,4BAA6B,GAC7B,4BAA6B,GAC7B,MAAO,QACP,SAAU,KACV,SAAU,GACV,kBAAmB,GACnB,uBAAwB,GACxB,YAAa,IAAM,CAAE,EACrB,WAAY,IAAM,CAAE,EACpB,OAAQ,IAAM,CAAE,EAChB,QAAS,CAAE,EAIX,kBAAmB,OACnB,oBAAqB,KAErB,OAAQ,GACR,iBAAkB,GAClB,uBAAwB,GACxB,iBAAkB,GAClB,yBAA0B,GAC1B,+BAAgC,GAChC,QAAS,KAET,MAAO,IACP,OAAQ,GACV,EAKA,IAAIgO,GAA8Bj5B,GAA2B,eAAe,EACxEk5B,GAAmDl5B,GAA2B,oCAAoC,EAClHm5B,GAA6Cn5B,GAA2B,8BAA8B,EACtGo5B,GAA6Cp5B,GAA2B,8BAA8B,EACtGq5B,GAAkCr5B,GAA2B,mBAAmB,EAChFs5B,GAA6Bt5B,GAA2B,cAAc,EACtEu5B,GAAsCv5B,GAA2B,uBAAuB,EACxFw5B,GAA2Bx5B,GAA2B,YAAY,EAClEy5B,GAA+Cz5B,GAA2B,gCAAgC,EAC1G05B,GAAoC15B,GAA2B,qBAAqB,EACpF25B,GAA6C35B,GAA2B,8BAA8B,EACtG45B,GAAiC55B,GAA2B,kBAAkB,EAC9E65B,GAA0C75B,GAA2B,2BAA2B,EAChG85B,GAAgC95B,GAA2B,iBAAiB,EAC5E+5B,GAA+B/5B,GAA2B,gBAAgB,EAC1Eg6B,GAAwCh6B,GAA2B,yBAAyB,EAC5Fi6B,GAA8Bj6B,GAA2B,eAAe,EAC7D,MAAMm4B,WAAkB7d,EAAS,CAG9C,YAAYL,EAAMnJ,EAAO,CACvB,IAAIopB,EAAgBC,EAAYC,EAChC,MAAMC,GAAYH,EAAiBppB,GAAS,KAAO,OAASA,EAAM,WAAa,KAAOopB,EAAiB,KACvG,MAAMjgB,EAAM,CACV,GAAG9M,GACH,GAAG2D,EACH,SAAAupB,CACN,CAAK,EACD,OAAO,eAAe,KAAMJ,GAAgB,CAC1C,MAAOK,EACb,CAAK,EACD,OAAO,eAAe,KAAMN,GAA0B,CACpD,MAAOO,EACb,CAAK,EACD,OAAO,eAAe,KAAMR,GAAiB,CAC3C,MAAOS,EACb,CAAK,EAED,OAAO,eAAe,KAAMV,GAAkB,CAC5C,MAAOW,EACb,CAAK,EACD,OAAO,eAAe,KAAMZ,GAA4B,CACtD,MAAOa,EACb,CAAK,EACD,OAAO,eAAe,KAAMd,GAAmB,CAC7C,MAAOe,EACb,CAAK,EACD,OAAO,eAAe,KAAM1B,GAAgB,CAC1C,SAAU,GACV,MAAO,MACb,CAAK,EACD,KAAK,UAAY,kBAAkB/1B,GAAQ,CAAA,GAC3C,KAAK,WAAa2pB,GAAkB,EACpC,KAAK,wBAA0B,GAC/B,KAAK,aAAeza,GAAU,CAG5B,MAAMwoB,EAFc,KAAK,eAAgB,EAEV,QAAQ,OAAO3tB,GAAUA,EAAO,KAAOmF,EAAO,EAAE,EAC/E,KAAK,eAAe,CAClB,QAASwoB,CACjB,CAAO,CACF,EACD,KAAK,UAAYxoB,GAAU,CACzB,MAAMyoB,EAAiBzoB,EAAO,IAAMA,EAAO,YAAY,KACjDqI,EAAmBrI,EAAO,OAASyoB,EACnCC,EAAmB1oB,EAAO,KAChC,GAAI0oB,IAAqB,YAAcA,IAAqB,qBAAuBA,IAAqB,SAEtG,YAAK,KAAK,IADE,2FACO,OAAO,EACnB,KAET,MAAM7tB,EAAS,CACb,GAAI4tB,EACJ,KAAMpgB,EACN,KAAMqgB,CACP,EAEKF,EADQ,KAAK,eAAgB,EACV,QAAQ,MAAO,EACxC,OAAAA,EAAW,KAAK3tB,CAAM,EACtB,KAAK,eAAe,CAClB,QAAS2tB,CACjB,CAAO,EACM,KAAK,EACb,EACD,KAAK,cAAgB,IAAM,CACzB,IAAIG,EACJ,MAAM5oB,EAAQ,KAAK,eAAgB,EAC7B+H,EAAS,CACb,kBAAmB,OACnB,kBAAmB,GACnB,kBAAmB,KACnB,YAAa,KACb,eAAgB,EACjB,EACG/H,EAAM,oBAAsB+H,EAAO,mBAAqB/H,EAAM,oBAAsB+H,EAAO,mBAAqB/H,EAAM,iBAAmB+H,EAAO,gBAAkB/H,EAAM,oBAAsB+H,EAAO,oBAIzM,KAAK,eAAeA,CAAM,EAC1B,KAAK,KAAK,KAAK,yBAA0B6gB,EAAwB5oB,EAAM,oBAAsB,KAAO,OAAS4oB,EAAsB,EAAE,EACtI,EACD,KAAK,UAAYh7B,GAAM,CACrB,KAAM,CACJ,QAAAi7B,CACR,EAAU,KAAK,eAAgB,EACnB1F,EAAoB0F,EAAQ,KAAK/tB,GAC9BA,EAAO,OAAS,YAAcA,EAAO,KAAOlN,CACpD,EACD,KAAK,eAAe,CAClB,kBAAAu1B,EACA,kBAAmB,aAC3B,CAAO,EACD,KAAK,KAAK,KAAK,uBAAwBv1B,CAAE,CAC1C,EACD,KAAK,YAAc4J,GAAQ,CACzB,KAAM,CACJ,QAAAqxB,CACR,EAAU,KAAK,eAAgB,EAEzB,OADgBl7B,GAA4B,KAAM05B,EAAW,EAAEA,EAAW,EAAEwB,CAAO,EACpE,KAAK/tB,GAAU,KAAK,KAAK,UAAUA,EAAO,EAAE,EAAE,YAAYtD,CAAI,CAAC,CAC/E,EACD,KAAK,eAAiBA,GAAQ,CAC5B,KAAM,CACJ,QAAAqxB,CACR,EAAU,KAAK,eAAgB,EACnBC,EAAUn7B,GAA4B,KAAM05B,EAAW,EAAEA,EAAW,EAAEwB,CAAO,EACnF,KAAK,eAAe,CAClB,eAAgB,GAChB,YAAarxB,EAAK,IAAM,KACxB,kBAAmB,YAC3B,CAAO,EACDsxB,EAAQ,QAAQC,GAAU,CAExB,KAAK,KAAK,UAAUA,EAAO,EAAE,EAAE,WAAWvxB,CAAI,CACtD,CAAO,CACF,EACD,KAAK,gBAAkB,IAAM,CAC3B,KAAM,CACJ,WAAA+kB,CACR,EAAU,KAAK,eAAgB,EACGA,GAAcA,EAAW,OAAS,EAE5D,KAAK,eAAe,CAClB,eAAgB,GAChB,kBAAmB,UAC7B,CAAS,EAED,KAAK,eAAe,CAClB,eAAgB,GAChB,YAAa,KACb,kBAAmB,UAC7B,CAAS,CAEJ,EACD,KAAK,eAAiB,IAAM,CAC1B,KAAM,CACJ,QAAAsM,CACR,EAAU,KAAK,eAAgB,EACTl7B,GAA4B,KAAM05B,EAAW,EAAEA,EAAW,EAAEwB,CAAO,EAC3E,QAAQE,GAAU,CAExB,KAAK,KAAK,UAAUA,EAAO,EAAE,EAAE,KAAM,CAC7C,CAAO,EACD,KAAK,gBAAiB,CACvB,EACD,KAAK,UAAY,IAAM,CACrB,KAAM,CACJ,QAAAC,EACA,QAAA9U,CACD,EAAG2S,GAAe,EAQnB,GANA,KAAK,oBAAsB,OAAO,YAElC,KAAK,mBAAqB,SAAS,cAC/B,KAAK,KAAK,gCACZ,SAAS,KAAK,UAAU,IAAI,wBAAwB,EAElD,KAAK,KAAK,kBAAoB,KAAK,eAAgB,EAAC,UAAW,CACjE,MAAMoC,EAAU,IAAM,CACpB,KAAK,eAAe,CAClB,SAAU,EACtB,CAAW,EACD,KAAK,GAAG,oBAAoB,eAAgBA,EAAS,EAAK,EAC1D/U,EAAS,CACV,EACD,KAAK,GAAG,iBAAiB,eAAgB+U,EAAS,EAAK,CAC/D,MACQ,KAAK,eAAe,CAClB,SAAU,EACpB,CAAS,EACD/U,EAAS,EAEX,OAAI,KAAK,KAAK,wBACZ,KAAK,qBAAsB,EAI7B,SAAS,iBAAiB,UAAW,KAAK,oBAAoB,EAC9D,KAAK,KAAK,KAAK,sBAAsB,EAC9B8U,CACR,EACD,KAAK,WAAa7tB,GAAQ,CACxB,IAAI+tB,EAEJ,MAAMC,GAAeD,EAAoB/tB,GAAQ,KAAO,OAASA,EAAK,cAAgB,KAAO+tB,EAAoB,GAC3G,CACJ,SAAAE,EACA,UAAAC,CACR,EAAU,KAAK,eAAgB,EACzB,GAAID,GAAYC,EAEd,OAEF,KAAM,CACJ,QAAAL,EACA,QAAA9U,CACD,EAAG2S,GAAe,EAInB,GAHI,KAAK,KAAK,gCACZ,SAAS,KAAK,UAAU,OAAO,wBAAwB,EAErD,KAAK,KAAK,iBAAkB,CAC9B,KAAK,eAAe,CAClB,UAAW,EACrB,CAAS,EACD,MAAMoC,EAAU,IAAM,CACpB,KAAK,eAAe,CAClB,SAAU,GACV,UAAW,EACvB,CAAW,EACD,KAAK,WAAW,OAAQ,EACxB,KAAK,mBAAmB,MAAO,EAC/B,KAAK,GAAG,oBAAoB,eAAgBA,EAAS,EAAK,EAC1D/U,EAAS,CACV,EACD,KAAK,GAAG,iBAAiB,eAAgB+U,EAAS,EAAK,CAC/D,MACQ,KAAK,eAAe,CAClB,SAAU,EACpB,CAAS,EACD,KAAK,WAAW,OAAQ,EACxB,KAAK,mBAAmB,MAAO,EAC/B/U,EAAS,EAKX,GADA,SAAS,oBAAoB,UAAW,KAAK,oBAAoB,EAC7DiV,GACE,KAAK,KAAK,uBAAwB,CACpC,IAAIG,GAGCA,EAAiB,QAAQ,QAAU,MAAQA,EAAe,KAAK,SAAS,GAG3E,QAAQ,KAAM,CAE1B,CAEM,YAAK,KAAK,KAAK,wBAAwB,EAChCN,CACR,EACD,KAAK,YAAc,IACV,CAAC,KAAK,eAAgB,EAAC,UAAY,GAE5C,KAAK,kBAAoB,IACnB,KAAK,KAAK,oBACL,KAAK,KAAK,oBAAqB,EAEjC,KAAK,WAAY,EAE1B,KAAK,sBAAwBO,GAAgB,CAC3C,KAAM,CACJ,aAAA5oB,CACR,EAAU,KAAK,KAAK,SAAU,EACxB,KAAK,KAAK,SAAS,CACjB,aAAc,CACZ,GAAGA,EACH,SAAU4oB,CACpB,CACA,CAAO,CACF,EACD,KAAK,2BAA6B15B,GAAS,CACzC,MAAM25B,EAAkB35B,EAAM,QAC9B,KAAK,KAAK,IAAI,4BAA4B25B,EAAkB,KAAO,KAAK,EAAE,EAC1E,KAAK,sBAAsBA,CAAe,CAC3C,EACD,KAAK,eAAiB,CAACC,EAAMppB,IAAW,CACtC,MAAM7I,EAAO,KAAK,KAAK,QAAQ6I,CAAM,EACjCopB,EACF,KAAK,KAAK,KAAK,4BAA6BjyB,CAAI,EAEhD,KAAK,KAAK,KAAK,+BAAgCA,CAAI,EAErD,KAAK,eAAe,CAClB,YAAaiyB,EAAOppB,EAAS,KAC7B,kBAAmBopB,EAAO,WAAa,IAC/C,CAAO,CACF,EACD,KAAK,oBAAsBA,GAAQ,CACjC,KAAK,eAAe,CAClB,kBAAmBA,EACnB,kBAAmBA,EAAO,WAAa,IAC/C,CAAO,CACF,EACD,KAAK,SAAWltB,GAAS,CACvB,MAAMmtB,EAAcntB,EAAM,IAAI/E,IAAS,CACrC,OAAQ,KAAK,GACb,KAAMA,EAAK,KACX,KAAMA,EAAK,KACX,KAAMA,EACN,KAAM,CAGJ,aAAcA,EAAK,cAAgBA,EAAK,oBAAsB,IACxE,CACA,EAAQ,EACF,GAAI,CACF,KAAK,KAAK,SAASkyB,CAAW,CAC/B,OAAQ9nB,EAAK,CACZ,KAAK,KAAK,IAAIA,CAAG,CACzB,CACK,EAOD,KAAK,uBAAyB,IAAM,CAIlC,KAAK,eAAiB,IAAI,eAAe8U,GAAW,CAClD,MAAMiT,EAAuBjT,EAAQ,CAAC,EAChC,CACJ,MAAA7I,EACA,OAAA8H,CACD,EAAGgU,EAAqB,YACzB,KAAK,eAAe,CAClB,eAAgB9b,EAChB,gBAAiB8H,EACjB,2BAA4B,EACtC,CAAS,CACT,CAAO,EACD,KAAK,eAAe,QAAQ,KAAK,GAAG,cAAc,uBAAuB,CAAC,EAG1E,KAAK,yCAA2C,WAAW,IAAM,CAC/D,MAAMiU,EAAc,KAAK,eAAgB,EACnCC,EAAmB,CAAC,KAAK,KAAK,QAAUD,EAAY,SAK1D,CAACA,EAAY,4BAEb,CAACC,IACC,KAAK,KAAK,IAAI,2EAA4E,SAAS,EACnG,KAAK,eAAe,CAClB,2BAA4B,EACxC,CAAW,EAEJ,EAAE,GAAI,CACR,EACD,KAAK,sBAAwB,IAAM,CACjC,KAAK,eAAe,WAAY,EAChC,aAAa,KAAK,wCAAwC,CAC3D,EAGD,KAAK,8BAAgCh6B,GAAS,CACxC,KAAK,GAAG,SAASA,EAAM,MAAM,EAC/B,KAAK,wBAA0B,IAE/B,KAAK,wBAA0B,GAI/B,KAAK,WAAW,OAAQ,EAE3B,EACD,KAAK,2BAA6Bi6B,GAAW,CAC3C,IAAI1lB,EACJ,MAAM2lB,EAAmB,CAAC,UAAW,wBAAyB,yBAA0B,2BAA4B,yBAA0B,iCAAiC,EACzKC,GAAkB5lB,EAAwBzW,GAA4B,KAAMm5B,EAAc,EAAEA,EAAc,IAAM,KAAO1iB,EAAwBuT,GAAQ,KAAK,GAAG,iBAAiBoS,CAAgB,CAAC,EAAE,OAAO7P,GAAQ,CAACA,EAAK,UAAU,SAAS,sBAAsB,CAAC,EACxQ,UAAWA,KAAQ8P,EAEb9P,EAAK,UAAY,IACnBA,EAAK,aAAa,gBAAiB4P,CAAO,EAE1C5P,EAAK,SAAW4P,EAGhBA,EACFn8B,GAA4B,KAAMm5B,EAAc,EAAEA,EAAc,EAAIkD,EAEpEr8B,GAA4B,KAAMm5B,EAAc,EAAEA,EAAc,EAAI,KAEtE,KAAK,oBAAsBgD,CAC5B,EACD,KAAK,qBAAuB,IAAM,CAChC,IAAIG,GAGGA,EAAkB,QAAQ,QAAU,MAAQA,EAAgB,KAAK,SAAS,GAG/E,QAAQ,UAAU,CAEhB,GAAG,QAAQ,MACX,CAAC,KAAK,SAAS,EAAG,EACnB,EAAE,EAAE,EAIP,OAAO,iBAAiB,WAAY,KAAK,eAAgB,EAAK,CAC/D,EACD,KAAK,eAAiBp6B,GAAS,CAC7B,IAAIq6B,EAEA,KAAK,gBAAkB,CAACr6B,EAAM,OAAS,CAACA,EAAM,MAAM,KAAK,SAAS,IACpE,KAAK,WAAW,CACd,YAAa,EACvB,CAAS,EASC,CAAC,KAAK,YAAa,IAAKq6B,EAAer6B,EAAM,QAAU,MAAQq6B,EAAa,KAAK,SAAS,GAE5F,QAAQ,KAAM,CAEjB,EACD,KAAK,qBAAuBr6B,GAAS,CAE/BA,EAAM,UAAY+2B,IAAS,KAAK,kBAAmB,EAEnD/2B,EAAM,UAAY82B,IAASwD,GAAmBt6B,EAAO,KAAK,eAAgB,EAAC,kBAAmB,KAAK,EAAE,CAC1G,EACD,KAAK,mBAAqB,IAAM,CAC1B,KAAK,KAAK,0BAA0B,KAAK,kBAAmB,CACjE,EACD,KAAK,YAAcA,GAAS,CAE1B,KAAK,KAAK,eAAeoQ,GAAU,CAC7BA,EAAO,OAAS,aAGlBA,EAAO,iBAAmB,MAAQA,EAAO,gBAAgBpQ,CAAK,EAExE,CAAO,EAGD,MAAM0M,EAAQob,GAAQ9nB,EAAM,cAAc,KAAK,EAC3C0M,EAAM,OAAS,IACjB,KAAK,KAAK,IAAI,0BAA0B,EACxC,KAAK,SAASA,CAAK,EAEtB,EACD,KAAK,kBAAoB1M,GAAS,CAChCA,EAAM,eAAgB,EACtB,MAAM0M,EAAQob,GAAQ9nB,EAAM,cAAc,OAAS,CAAA,CAAE,EACjD0M,EAAM,OAAS,IACjB,KAAK,KAAK,IAAI,0CAA0C,EACxD,KAAK,SAASA,CAAK,EAEtB,EACD,KAAK,eAAiB1M,GAAS,CAC7BA,EAAM,eAAgB,EACtBA,EAAM,gBAAiB,EAIvB,MAAMu6B,EAA8B,IAAM,CACxC,IAAIC,EAA8B,GAClC,YAAK,KAAK,eAAepqB,GAAU,CAC7BA,EAAO,mBAAqB,MAAQA,EAAO,kBAAkBpQ,CAAK,IACpEw6B,EAA8B,GAE1C,CAAS,EACMA,CACR,EAGKC,EAAqB,IAAM,CAC/B,KAAM,CACJ,MAAAC,CACD,EAAG16B,EAAM,aACV,OAAO06B,EAAM,KAAKp5B,GAAQA,IAAS,OAAO,CAC3C,EAIKk5B,EAA8BD,EAA6B,EAC3DI,EAAWF,EAAoB,EACrC,GAAI,CAACD,GAA+B,CAACG,GAAY,KAAK,KAAK,UAG3D,KAAK,KAAK,oBAAsBA,GAAY,CAACH,IAAgC,CAAC,KAAK,KAAK,SAAQ,EAAG,eAAgB,CACjHx6B,EAAM,aAAa,WAAa,OAChC,MACR,CAKMA,EAAM,aAAa,WAAa,OAEhC,KAAK,eAAe,CAClB,eAAgB,EACxB,CAAO,EACD,KAAK,KAAK,WAAWA,CAAK,CAC3B,EACD,KAAK,gBAAkBA,GAAS,CAC9BA,EAAM,eAAgB,EACtBA,EAAM,gBAAiB,EACvB,KAAK,eAAe,CAClB,eAAgB,EACxB,CAAO,EACD,KAAK,KAAK,YAAYA,CAAK,CAC5B,EACD,KAAK,WAAa,MAAMA,GAAS,CAC/BA,EAAM,eAAgB,EACtBA,EAAM,gBAAiB,EACvB,KAAK,eAAe,CAClB,eAAgB,EACxB,CAAO,EAGD,KAAK,KAAK,eAAeoQ,GAAU,CAC7BA,EAAO,OAAS,aAGlBA,EAAO,gBAAkB,MAAQA,EAAO,eAAepQ,CAAK,EAEtE,CAAO,EAGD,IAAI46B,EAAwB,GAC5B,MAAMjU,EAAe9Z,GAAS,CAC5B,KAAK,KAAK,IAAIA,EAAO,OAAO,EAIvB+tB,IACH,KAAK,KAAK,KAAK/tB,EAAM,QAAS,OAAO,EACrC+tB,EAAwB,GAE3B,EACD,KAAK,KAAK,IAAI,sCAAsC,EAGpD,MAAMluB,EAAQ,MAAMqb,GAAgB/nB,EAAM,aAAc,CACtD,aAAA2mB,CACR,CAAO,EACGja,EAAM,OAAS,IACjB,KAAK,KAAK,IAAI,2BAA2B,EACzC,KAAK,SAASA,CAAK,GAErB,KAAK,KAAK,OAAO1M,CAAK,CACvB,EACD,KAAK,uBAAyB2H,GAAQ,CAC/B,KAAK,KAAK,+BACb,KAAK,KAAK,KAAK,oBAAqBA,CAAI,CAE3C,EAKD,KAAK,sBAAwBA,GAAQ,CAC9B,KAAK,KAAK,+BACb,KAAK,KAAK,KAAK,mBAAoBA,CAAI,CAE1C,EACD,KAAK,sBAAwB3H,GAAS,CAEhCA,EAAM,UAAY82B,IAAS+D,GAAoB76B,EAAO,KAAK,eAAgB,EAAC,kBAAmB,KAAK,EAAE,CAC3G,EAUD,KAAK,kBAAoBA,GAAS,CACP,KAAK,GAAG,SAAS,SAAS,aAAa,GAE9D,KAAK,YAAYA,CAAK,CAEzB,EACD,KAAK,eAAiBuQ,GAAQ,CAC5B,GAAI,CACF,OAAAiH,CACR,EAAUjH,EACA,KAAK,KAAK,kBAAoB,EAAEiH,GAAU,MAAQA,EAAO,SAE3D,KAAK,kBAAmB,CAE3B,EACD,KAAK,oBAAsB,IAAM,CAC/B,KAAK,KAAK,KAAK,kBAAkB,CAClC,EACD,OAAO,eAAe,KAAM0f,GAAqC,CAC/D,SAAU,GACV,MAAO,IAAM,CACX,GAAI,KAAK,KAAK,0BACZ,OAEF,MAAM4D,EAAkB,IAClBpuB,EAAQ,KAAK,KAAK,SAAU,EAClC,GAAIA,EAAM,SAAW,EAAG,CACtB,MAAMquB,EAAqB,KAAK,KAAK,UAAU,GAAG,KAAK,EAAE,qBAAqB,EAC9EA,GAAsB,MAAQA,EAAmB,WAAW,CAC1D,eAAgBD,CAC5B,CAAW,EACD,MAAME,EAAmB,CACvB,GAAGtuB,EAAM,CAAC,EACV,QAAS,MACV,EACDquB,GAAsB,MAAQA,EAAmB,iBAAiBC,CAAgB,EAAE,KAAK,IAAM,CAC7FD,GAAsB,MAAQA,EAAmB,WAAW,CAC1D,eAAgB,KAAK,KAAK,cACxC,CAAa,CACb,CAAW,CACX,CACA,CACA,CAAK,EACD,OAAO,eAAe,KAAM5D,GAA+B,CACzD,SAAU,GACV,MAAOzqB,GAAS,CACd,MAAMuuB,EAAYvuB,EAAM,CAAC,EACnB,CACJ,WAAAggB,CACV,EAAY,KAAK,eAAgB,EACnBwO,EAAsBxO,GAAcA,EAAW,OAAS,EACxDyO,EAAuB,KAAK,YAAYF,CAAS,EACnDC,GAAuB,KAAK,KAAK,WAAa,aAChD,KAAK,eAAe,GAAMD,EAAU,EAAE,EAC7BE,GAAwB,KAAK,KAAK,WAAa,eACxD,KAAK,eAAeF,CAAS,CAEvC,CACA,CAAK,EACD,KAAK,WAAa,IAAM,CAEtB,GAAI,KAAK,KAAK,SAAW,CAAC,KAAK,KAAK,OAAQ,CAC1C,MAAMG,EAAmB/U,GAAmB,KAAK,KAAK,OAAO,EACzD+U,EACFA,EAAiB,QAAQC,GAAWA,EAAQ,iBAAiB,QAAS,KAAK,SAAS,CAAC,EAErF,KAAK,KAAK,IAAI,8JAA+J,SAAS,CAEhM,CACM,KAAK,uBAAwB,EAC7B,SAAS,iBAAiB,QAAS,KAAK,iBAAiB,EACzD,KAAK,KAAK,GAAG,eAAgBv9B,GAA4B,KAAM65B,EAA6B,EAAEA,EAA6B,CAAC,EAC5H,KAAK,KAAK,GAAG,gBAAiB,KAAK,YAAY,EAC/C,KAAK,KAAK,GAAG,aAAc,KAAK,aAAa,EAC7C,KAAK,KAAK,GAAG,yBAA0B,KAAK,aAAa,EACzD,KAAK,KAAK,GAAG,WAAY,KAAK,cAAc,EAC5C,KAAK,KAAK,GAAG,cAAe75B,GAA4B,KAAMo5B,EAAmC,EAAEA,EAAmC,CAAC,EACvI,KAAK,KAAK,GAAG,eAAgBp5B,GAA4B,KAAMo5B,EAAmC,EAAEA,EAAmC,CAAC,EAIxI,SAAS,iBAAiB,QAAS,KAAK,8BAA+B,EAAI,EAC3E,SAAS,iBAAiB,QAAS,KAAK,8BAA+B,EAAI,EACvE,KAAK,KAAK,QACZ,KAAK,GAAG,iBAAiB,UAAW,KAAK,qBAAqB,EAE5D,KAAK,KAAK,UACZ,KAAK,KAAK,GAAG,cAAep5B,GAA4B,KAAMq5B,EAA6B,EAAEA,EAA6B,CAAC,CAE9H,EACD,KAAK,aAAe,IAAM,CACxB,MAAMiE,EAAmB/U,GAAmB,KAAK,KAAK,OAAO,EACzD,CAAC,KAAK,KAAK,QAAU+U,GACvBA,EAAiB,QAAQC,GAAWA,EAAQ,oBAAoB,QAAS,KAAK,SAAS,CAAC,EAE1F,KAAK,sBAAuB,EAC5B,SAAS,oBAAoB,QAAS,KAAK,iBAAiB,EAC5D,OAAO,oBAAoB,WAAY,KAAK,eAAgB,EAAK,EACjE,KAAK,KAAK,IAAI,eAAgBv9B,GAA4B,KAAM65B,EAA6B,EAAEA,EAA6B,CAAC,EAC7H,KAAK,KAAK,IAAI,gBAAiB,KAAK,YAAY,EAChD,KAAK,KAAK,IAAI,aAAc,KAAK,aAAa,EAC9C,KAAK,KAAK,IAAI,yBAA0B,KAAK,aAAa,EAC1D,KAAK,KAAK,IAAI,WAAY,KAAK,cAAc,EAC7C,KAAK,KAAK,IAAI,cAAe75B,GAA4B,KAAMo5B,EAAmC,EAAEA,EAAmC,CAAC,EACxI,KAAK,KAAK,IAAI,eAAgBp5B,GAA4B,KAAMo5B,EAAmC,EAAEA,EAAmC,CAAC,EACzI,SAAS,oBAAoB,QAAS,KAAK,6BAA6B,EACxE,SAAS,oBAAoB,QAAS,KAAK,6BAA6B,EACpE,KAAK,KAAK,QACZ,KAAK,GAAG,oBAAoB,UAAW,KAAK,qBAAqB,EAE/D,KAAK,KAAK,UACZ,KAAK,KAAK,IAAI,cAAep5B,GAA4B,KAAMq5B,EAA6B,EAAEA,EAA6B,CAAC,CAE/H,EACD,KAAK,uBAAyB,IAAM,CAClC,MAAMmE,EAAgB,KAAK,GAAG,SAAS,SAAS,aAAa,EAEvDC,EAAiB,SAAS,gBAAkB,SAAS,MAAQ,SAAS,gBAAkB,KACxFC,EAAmB,KAAK,KAAK,SAAQ,EAAG,KAAK,SAAW,EACxDC,EAAU,CAAC,KAAK,KAAK,OAG3BD,IAGAC,GAEAH,GAUAC,GAAkB,KAAK,yBACrB,KAAK,WAAW,KAAK,GAAI,KAAK,eAAgB,EAAC,iBAAiB,EAEhE,KAAK,WAAW,OAAQ,CAE3B,EACD,KAAK,YAAc,IAAM,CACvB,GAAI,KAAK,KAAK,UAAY,CAAC,KAAK,oBAAqB,CACnD,KAAK,2BAA2B,EAAI,EACpC,MACR,CACU,CAAC,KAAK,KAAK,UAAY,KAAK,qBAC9B,KAAK,2BAA2B,EAAK,EAEvC,KAAK,uBAAwB,CAC9B,EACD,KAAK,aAAe,CAACjmB,EAAM9E,IAAW,CACpC,KAAK,KAAK,YAAYA,EAAQ8E,CAAI,EAClC,KAAK,eAAe,GAAO9E,CAAM,CAClC,EACD,OAAO,eAAe,KAAM4mB,GAA+B,CACzD,SAAU,GACV,MAAOnsB,GAAU,CACf,MAAMmF,EAAS,KAAK,KAAK,UAAUnF,EAAO,EAAE,EAC5C,MAAO,CACL,GAAGA,EACH,KAAMmF,EAAO,MAAQ,KAAK,KAAK,kBAC/B,OAAQA,EAAO,MAChB,CACT,CACA,CAAK,EACD,OAAO,eAAe,KAAMinB,GAAoB,CAC9C,SAAU,GACV,MAAOpsB,GAAU,CACf,MAAMmF,EAAS,KAAK,KAAK,UAAUnF,EAAO,EAAE,EAE5C,OAAI,OAAOmF,EAAO,aAAgB,WACzB,GAEFA,EAAO,YAAa,CACnC,CACA,CAAK,EACD,OAAO,eAAe,KAAMknB,GAAe,CACzC,SAAU,GACV,MAAOT,GAAQmC,GACNA,EAAQ,OAAO/tB,GAAUA,EAAO,OAAS,YAAcnN,GAA4B,KAAMu5B,EAAkB,EAAEA,EAAkB,EAAEpsB,CAAM,CAAC,EAAE,IAAInN,GAA4B,KAAMs5B,EAA6B,EAAEA,EAA6B,CAAC,CACrP,CACP,CAAK,EACD,OAAO,eAAe,KAAMG,GAAwB,CAClD,SAAU,GACV,MAAOV,GAAQmC,GACNA,EAAQ,OAAO/tB,GAAUA,EAAO,OAAS,mBAAmB,EAAE,IAAInN,GAA4B,KAAMs5B,EAA6B,EAAEA,EAA6B,CAAC,CACzK,CACP,CAAK,EACD,OAAO,eAAe,KAAMI,GAAa,CACvC,SAAU,GACV,MAAOX,GAAQmC,GACNA,EAAQ,OAAO/tB,GAAUA,EAAO,OAAS,QAAQ,EAAE,IAAInN,GAA4B,KAAMs5B,EAA6B,EAAEA,EAA6B,CAAC,CAC9J,CACP,CAAK,EACD,KAAK,OAASjnB,GAAS,CACrB,MAAM4pB,EAAc,KAAK,eAAgB,EACnC,CACJ,MAAArtB,EACA,aAAAoE,EACA,eAAAqE,CACR,EAAUhF,EACE,CACJ,SAAAoB,EACA,mBAAAE,EACA,cAAAE,EACA,aAAAC,EACA,gBAAAN,EACA,yBAAAO,EACA,gBAAAC,EACA,gBAAA8I,EACA,cAAAY,EACA,YAAAD,CACR,EAAU,KAAK,KAAK,yBAA0B,EAClC6W,EAAYt0B,GAA4B,KAAMw5B,EAAa,EAAEA,EAAa,EAAEyC,EAAY,OAAO,EAC/F2B,EAAqB59B,GAA4B,KAAMy5B,EAAsB,EAAEA,EAAsB,EAAEwC,EAAY,OAAO,EAC1Hd,EAAUn7B,GAA4B,KAAM05B,EAAW,EAAEA,EAAW,EAAEuC,EAAY,OAAO,EAC/F,IAAI4B,EACJ,OAAI,KAAK,KAAK,QAAU,OACtBA,EAAQ7qB,EAAa,SAAW,OAAS,QAEzC6qB,EAAQ,KAAK,KAAK,MAEhB,CAAC,QAAS,UAAW,MAAM,EAAE,QAAQ,KAAK,KAAK,wBAAwB,EAAI,IAC7E,KAAK,KAAK,yBAA2B,QAErC,QAAQ,KAAK,wEAAwE,KAAK,KAAK,wBAAwB,IAAI,GAEtHC,GAAY,CACjB,MAAAzrB,EACA,SAAU4pB,EAAY,SACtB,MAAArtB,EACA,SAAA6E,EACA,mBAAAE,EACA,cAAAE,EACA,aAAAC,EACA,gBAAAN,EACA,yBAAAO,EACA,gBAAAC,EACA,gBAAA8I,EACA,cAAAY,EACA,YAAAD,EACA,eAAgB,OAAO,KAAK7O,CAAK,EAAE,OACnC,cAAeyD,EAAM,cACrB,eAAAgF,EACA,UAAAid,EACA,MAAAuJ,EACA,SAAU,KAAK,KAAK,SACpB,kBAAmB,KAAK,KAAK,kBAC7B,UAAW,KAAK,KAAK,UACrB,kBAAmB5B,EAAY,kBAC/B,eAAgBA,EAAY,eAC5B,eAAgB,KAAK,eACrB,gBAAiB,KAAK,gBACtB,2BAA4B,KAAK,2BACjC,iBAAkB,KAAK,KAAK,iBAC5B,UAAWA,EAAY,UACvB,mBAAA2B,EACA,QAAAzC,EACA,YAAa,KAAK,KAAK,KAAK,YAC5B,GAAI,KAAK,GACT,WAAY,KAAK,kBACjB,mBAAoB,KAAK,mBACzB,kBAAmB,KAAK,kBACxB,YAAa,KAAK,YAClB,OAAQ,KAAK,KAAK,OAClB,UAAW,KAAK,UAChB,cAAe,KAAK,cACpB,KAAM,KAAK,KACX,UAAW,KAAK,UAChB,KAAM,KAAK,KACX,KAAM,KAAK,KAAK,KAChB,eAAgB9oB,EAAM,eACtB,WAAY4pB,EAAY,WACxB,iBAAkBjpB,EAAa,kBAAoB,GACnD,uBAAwBA,EAAa,uBACrC,eAAgBA,EAAa,eAC7B,YAAaipB,EAAY,YACzB,eAAgB,KAAK,eACrB,oBAAqB,KAAK,oBAC1B,kBAAmBA,EAAY,kBAC/B,aAAc,KAAK,aACnB,eAAgB,KAAK,eACrB,YAAa,KAAK,YAClB,MAAO,KAAK,KAAK,MACjB,OAAQ,KAAK,KAAK,OAClB,2BAA4B,KAAK,KAAK,2BACtC,yBAA0B,KAAK,KAAK,yBACpC,4BAA6B,KAAK,KAAK,4BACvC,iBAAkB,KAAK,KAAK,iBAC5B,gBAAiB,KAAK,KAAK,gBAC3B,sBAAuB,KAAK,KAAK,sBACjC,8BAA+B,KAAK,KAAK,8BACzC,eAAgBA,EAAY,eAC5B,gBAAiBA,EAAY,gBAC7B,2BAA4BA,EAAY,2BACxC,cAAe,KAAK,GACpB,iBAAkB,KAAK,KAAK,KAAK,aAAa,iBAC9C,iBAAkB,KAAK,KAAK,KAAK,aAAa,iBAC9C,mBAAoB,KAAK,KAAK,KAAK,aAAa,mBAChD,kBAAmB,KAAK,KAAK,kBAC7B,4BAA6B,KAAK,KAAK,4BACvC,4BAA6B,KAAK,KAAK,4BACvC,uBAAwB,KAAK,KAAK,uBAClC,qBAAsB,KAAK,KAAK,qBAChC,oBAAqB,KAAK,oBAC1B,uBAAwB,KAAK,uBAC7B,sBAAuB,KAAK,sBAE5B,eAAgBA,EAAY,eAC5B,eAAgB,KAAK,eACrB,gBAAiB,KAAK,gBACtB,WAAY,KAAK,UACzB,CAAO,CACF,EACD,OAAO,eAAe,KAAMtC,GAAiC,CAC3D,SAAU,GACV,MAAO,IAAM,CACX,KAAM,CACJ,QAAA/jB,CACD,EAAG,KAAK,KACTA,EAAQ,QAAQmoB,GAAY,CAC1B,MAAMzrB,EAAS,KAAK,KAAK,UAAUyrB,CAAQ,EACvCzrB,EAEFA,EAAO,MAAM,KAAMA,CAAM,EAEzB,KAAK,KAAK,IAAI,2CAA2CyrB,CAAQ,4DAA6D,SAAS,CAEnJ,CAAS,CACT,CACA,CAAK,EACD,OAAO,eAAe,KAAMnE,GAAsB,CAChD,SAAU,GACV,MAAO,IAAM,CACX,KAAK,KAAK,eAAe55B,GAA4B,KAAM65B,EAA6B,EAAEA,EAA6B,CAAC,CAChI,CACA,CAAK,EACD,OAAO,eAAe,KAAMA,GAA+B,CACzD,SAAU,GACV,MAAOvnB,GAAU,CACf,IAAI0rB,EAGJ,MAAMC,EAAe,CAAC,WAAY,QAAQ,EACtC3rB,GAAU,GAAG0rB,EAAe1rB,EAAO,OAAS,MAAQ0rB,EAAa,SAAWC,EAAa,SAAS3rB,EAAO,IAAI,IACpF,KAAK,eAAc,EAAG,QAAQ,KAAK4rB,GAAmB5rB,EAAO,KAAO4rB,EAAgB,EAAE,GAG/G5rB,EAAO,MAAM,KAAMA,CAAM,EAGrC,CACA,CAAK,EACD,KAAK,QAAU,IAAM,CAEnB,KAAK,eAAe,CAClB,SAAU,GACV,YAAa,KACb,kBAAmB,KACnB,kBAAmB,GACnB,kBAAmB,OACnB,eAAgB,GAChB,WAAY,KAAK,KAAK,WACtB,QAAS,CAAE,EAEX,2BAA4B,GAC5B,eAAgB,EACxB,CAAO,EACD,KAAM,CACJ,OAAA6rB,EACA,iBAAAC,CACD,EAAG,KAAK,KACT,GAAID,GAAUC,EACZ,MAAM,IAAI,MAAM,wMAAwM,EAE1N,KAAM,CACJ,qBAAAC,EACA,2BAAAC,CACR,EAAU,KAAK,KAAK,MACTD,GAAwBC,IAA+BF,GAC1D,KAAK,KAAK,IAAI,yMAA0M,SAAS,EAEnO,KAAM,CACJ,OAAAjxB,CACD,EAAG,KAAK,KACLA,GACF,KAAK,MAAMA,EAAQ,IAAI,EAEpB,KAAK,KAAK,kBACb,KAAK,KAAK,IAAIkU,GAAW,CACvB,GAAIrhB,GAA4B,KAAMi6B,EAAe,EAAEA,EAAe,EAAG,EACzE,OAAQ,KACR,GAAGj6B,GAA4B,KAAM85B,EAAiB,EAAEA,EAAiB,EAAC,CACpF,CAAS,EAEE,KAAK,KAAK,iBACb,KAAK,KAAK,IAAI1U,GAAU,CACtB,GAAIplB,GAA4B,KAAMm6B,EAAc,EAAEA,EAAc,EAAG,EACvE,OAAQ,KACR,GAAGn6B,GAA4B,KAAMg6B,EAAgB,EAAEA,EAAgB,EAAC,CAClF,CAAS,EAEE,KAAK,KAAK,2BACb,KAAK,KAAK,IAAI9S,GAAoB,CAChC,GAAIlnB,GAA4B,KAAMk6B,EAAwB,EAAEA,EAAwB,EAAG,EAC3F,GAAGl6B,GAA4B,KAAM+5B,EAA0B,EAAEA,EAA0B,EAAC,CACtG,CAAS,EAIH,KAAK,mBAAqB,OAAO,OAAW,KAAe,OAAO,WAAa,OAAO,WAAW,8BAA8B,EAAI,KACnI,MAAMwE,EAA2B,KAAK,mBAAqB,KAAK,mBAAmB,QAAU,GAG7F,GAFA,KAAK,KAAK,IAAI,4BAA4BA,EAA2B,KAAO,KAAK,EAAE,EACnF,KAAK,sBAAsBA,CAAwB,EAC/C,KAAK,KAAK,QAAU,OAAQ,CAC9B,IAAIC,GACHA,EAAwB,KAAK,qBAAuB,MAAQA,EAAsB,YAAY,KAAK,0BAA0B,CACtI,CACMx+B,GAA4B,KAAM25B,EAA+B,EAAEA,EAA+B,EAAG,EACrG35B,GAA4B,KAAM45B,EAAoB,EAAEA,EAAoB,EAAG,EAC/E,KAAK,WAAY,CAClB,EACD,KAAK,UAAY,IAAM,CACrB,GAAI,CAAC,KAAK,KAAK,gBAAiB,CAC9B,MAAM6E,EAAW,KAAK,KAAK,UAAU,GAAG,KAAK,EAAE,WAAW,EAGtDA,GAAU,KAAK,KAAK,aAAaA,CAAQ,CACrD,CACM,GAAI,CAAC,KAAK,KAAK,iBAAkB,CAC/B,MAAMC,EAAY,KAAK,KAAK,UAAU,GAAG,KAAK,EAAE,YAAY,EACxDA,GAAW,KAAK,KAAK,aAAaA,CAAS,CACvD,CACM,GAAI,CAAC,KAAK,KAAK,0BAA2B,CACxC,MAAMC,EAAY,KAAK,KAAK,UAAU,GAAG,KAAK,EAAE,qBAAqB,EACjEA,GAAW,KAAK,KAAK,aAAaA,CAAS,CACvD,CACM,KAAM,CACJ,QAAA/oB,CACD,EAAG,KAAK,KAKT,GAJAA,EAAQ,QAAQmoB,GAAY,CAC1B,MAAMzrB,EAAS,KAAK,KAAK,UAAUyrB,CAAQ,EACvCzrB,GAAQA,EAAO,QAAS,CACpC,CAAO,EACG,KAAK,KAAK,QAAU,OAAQ,CAC9B,IAAIssB,GACHA,EAAyB,KAAK,qBAAuB,MAAQA,EAAuB,eAAe,KAAK,0BAA0B,CAC3I,CACU,KAAK,KAAK,gCACZ,SAAS,KAAK,UAAU,OAAO,wBAAwB,EAEzD,KAAK,QAAS,EACd,KAAK,aAAc,CACpB,EACD,KAAK,GAAK,KAAK,KAAK,IAAM,YAC1B,KAAK,MAAQ,YACb,KAAK,KAAO,eACZ,KAAK,cAAgB/8B,GAGjB,KAAK,KAAK,oBAAsB,SAGlC,KAAK,KAAK,kBAAoB,IAAM,CAClC,KAAK,KAAK,MAAO,EACjB,KAAK,kBAAmB,CACzB,IAEFy4B,GAAyBD,EAAa,KAAK,MAAM,sBAAwB,OAA+BA,EAAW,oBAAsB,IAAM,KAAK,WAAY,GACjK,KAAK,SAAU,CACnB,CACE,WAAW7sB,EAAM,CACf,IAAIqxB,EAAsBC,EAC1B,MAAM,WAAWtxB,CAAI,GACpBqxB,EAAuB,KAAK,KAAK,UAAU7+B,GAA4B,KAAMi6B,EAAe,EAAEA,EAAe,EAAG,CAAA,IAAM,MAAQ4E,EAAqB,WAAW7+B,GAA4B,KAAM85B,EAAiB,EAAEA,EAAiB,GAAG,GACvOgF,EAAwB,KAAK,KAAK,UAAU9+B,GAA4B,KAAMk6B,EAAwB,EAAEA,EAAwB,EAAG,CAAA,IAAM,MAAQ4E,EAAsB,WAAW9+B,GAA4B,KAAM+5B,EAA0B,EAAEA,EAA0B,GAAG,CAClR,CACA,CACA,SAASc,IAAqB,CAC5B,KAAM,CACJ,iBAAAlb,EACA,gBAAAG,EACA,sBAAAF,EACA,iBAAAC,EACA,oBAAAjB,EACA,wBAAAmgB,EACA,OAAQhzC,EACR,kBAAAgyB,CACD,EAAG,KAAK,KACT,MAAO,CACL,iBAAA4B,EACA,gBAAAG,EACA,sBAAAF,EACA,iBAAAC,EACA,oBAAAjB,EACA,gBAAiBmgB,EACjB,OAAQhzC,EACR,kBAAAgyB,CACD,CACH,CACA,SAAS6c,IAA8B,CACrC,KAAM,CACJ,eAAAoE,EACA,gBAAAC,EACA,cAAAC,EACA,8BAAAC,CACD,EAAG,KAAK,KACT,MAAO,CACL,eAAAH,EACA,gBAAAC,EACA,cAAAC,EACA,8BAAAC,EAEA,KAAM,CAACA,CACR,CACH,CACA,SAASxE,IAAoB,CAC3B,MAAO,CAEN,CACH,CACA,SAASD,IAAmB,CAC1B,MAAO,GAAG,KAAK,EAAE,YACnB,CACA,SAASD,IAA4B,CACnC,MAAO,GAAG,KAAK,EAAE,qBACnB,CACA,SAASD,IAAkB,CACzB,MAAO,GAAG,KAAK,EAAE,WACnB,CACAnC,GAAU,QAAUxvB,GAAY,QC9rChC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAUA,SAASu2B,GAAQ5zC,EAAGG,EAAG,CACrB,IAAI,EAAI,OAAO,KAAKH,CAAC,EACrB,GAAI,OAAO,sBAAuB,CAChC,IAAII,EAAI,OAAO,sBAAsBJ,CAAC,EACtCG,IAAMC,EAAIA,EAAE,OAAO,SAAUD,EAAG,CAC9B,OAAO,OAAO,yBAAyBH,EAAGG,CAAC,EAAE,UACnD,CAAK,GAAI,EAAE,KAAK,MAAM,EAAGC,CAAC,CAC1B,CACE,OAAO,CACT,CACA,SAASyzC,GAAe7zC,EAAG,CACzB,QAASG,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CACzC,IAAI,EAAY,UAAUA,CAAC,GAAnB,KAAuB,UAAUA,CAAC,EAAI,CAAE,EAChDA,EAAI,EAAIyzC,GAAQ,OAAO,CAAC,EAAG,EAAE,EAAE,QAAQ,SAAUzzC,EAAG,CAClD2zC,GAAgB9zC,EAAGG,EAAG,EAAEA,CAAC,CAAC,CAChC,CAAK,EAAI,OAAO,0BAA4B,OAAO,iBAAiBH,EAAG,OAAO,0BAA0B,CAAC,CAAC,EAAI4zC,GAAQ,OAAO,CAAC,CAAC,EAAE,QAAQ,SAAUzzC,EAAG,CAChJ,OAAO,eAAeH,EAAGG,EAAG,OAAO,yBAAyB,EAAGA,CAAC,CAAC,CACvE,CAAK,CACL,CACE,OAAOH,CACT,CACA,SAAS+zC,GAAah0C,EAAGI,EAAG,CAC1B,GAAgB,OAAOJ,GAAnB,UAAwB,CAACA,EAAG,OAAOA,EACvC,IAAIC,EAAID,EAAE,OAAO,WAAW,EAC5B,GAAeC,IAAX,OAAc,CAChB,IAAIC,EAAID,EAAE,KAAKD,EAAGI,CAAc,EAChC,GAAgB,OAAOF,GAAnB,SAAsB,OAAOA,EACjC,MAAM,IAAI,UAAU,8CAA8C,CACtE,CACE,OAAyB,OAAiBF,CAAC,CAC7C,CACA,SAASi0C,GAAej0C,EAAG,CACzB,IAAIE,EAAI8zC,GAAah0C,EAAG,QAAQ,EAChC,OAAmB,OAAOE,GAAnB,SAAuBA,EAAIA,EAAI,EACxC,CACA,SAASg0C,GAAQ7zC,EAAG,CAClB,0BAEA,OAAO6zC,GAAwB,OAAO,QAArB,YAA2C,OAAO,OAAO,UAA1B,SAAqC,SAAU7zC,EAAG,CAChG,OAAO,OAAOA,CACf,EAAG,SAAUA,EAAG,CACf,OAAOA,GAAmB,OAAO,QAArB,YAA+BA,EAAE,cAAgB,QAAUA,IAAM,OAAO,UAAY,SAAW,OAAOA,CACtH,EAAK6zC,GAAQ7zC,CAAC,CACd,CACA,SAAS8zC,GAAgB3pB,EAAU4pB,EAAa,CAC9C,GAAI,EAAE5pB,aAAoB4pB,GACxB,MAAM,IAAI,UAAU,mCAAmC,CAE3D,CACA,SAASC,GAAkBzyB,EAAQ0P,EAAO,CACxC,QAASpxB,EAAI,EAAGA,EAAIoxB,EAAM,OAAQpxB,IAAK,CACrC,IAAIo0C,EAAahjB,EAAMpxB,CAAC,EACxBo0C,EAAW,WAAaA,EAAW,YAAc,GACjDA,EAAW,aAAe,GACtB,UAAWA,IAAYA,EAAW,SAAW,IACjD,OAAO,eAAe1yB,EAAQqyB,GAAeK,EAAW,GAAG,EAAGA,CAAU,CAC5E,CACA,CACA,SAASC,GAAaH,EAAaI,EAAYC,EAAa,CAC1D,OAAID,GAAYH,GAAkBD,EAAY,UAAWI,CAAU,EAC/DC,GAAaJ,GAAkBD,EAAaK,CAAW,EAC3D,OAAO,eAAeL,EAAa,YAAa,CAC9C,SAAU,EACd,CAAG,EACMA,CACT,CACA,SAASL,GAAgB1lB,EAAKzY,EAAKoC,EAAO,CACxC,OAAApC,EAAMq+B,GAAer+B,CAAG,EACpBA,KAAOyY,EACT,OAAO,eAAeA,EAAKzY,EAAK,CAC9B,MAAOoC,EACP,WAAY,GACZ,aAAc,GACd,SAAU,EAChB,CAAK,EAEDqW,EAAIzY,CAAG,EAAIoC,EAENqW,CACT,CACA,SAASqmB,GAAmBC,EAAK,CAC/B,OAAOC,GAAmBD,CAAG,GAAKE,GAAiBF,CAAG,GAAKG,GAA4BH,CAAG,GAAKI,GAAoB,CACrH,CACA,SAASH,GAAmBD,EAAK,CAC/B,GAAI,MAAM,QAAQA,CAAG,EAAG,OAAOK,GAAkBL,CAAG,CACtD,CACA,SAASE,GAAiBI,EAAM,CAC9B,GAAI,OAAO,OAAW,KAAeA,EAAK,OAAO,QAAQ,GAAK,MAAQA,EAAK,YAAY,GAAK,KAAM,OAAO,MAAM,KAAKA,CAAI,CAC1H,CACA,SAASH,GAA4Bz0C,EAAG60C,EAAQ,CAC9C,GAAK70C,EACL,IAAI,OAAOA,GAAM,SAAU,OAAO20C,GAAkB30C,EAAG60C,CAAM,EAC7D,IAAI/0C,EAAI,OAAO,UAAU,SAAS,KAAKE,CAAC,EAAE,MAAM,EAAG,EAAE,EAErD,GADIF,IAAM,UAAYE,EAAE,cAAaF,EAAIE,EAAE,YAAY,MACnDF,IAAM,OAASA,IAAM,MAAO,OAAO,MAAM,KAAKE,CAAC,EACnD,GAAIF,IAAM,aAAe,2CAA2C,KAAKA,CAAC,EAAG,OAAO60C,GAAkB30C,EAAG60C,CAAM,EACjH,CACA,SAASF,GAAkBL,EAAKxS,EAAK,EAC/BA,GAAO,MAAQA,EAAMwS,EAAI,UAAQxS,EAAMwS,EAAI,QAC/C,QAASz0C,EAAI,EAAGi1C,EAAO,IAAI,MAAMhT,CAAG,EAAGjiC,EAAIiiC,EAAKjiC,IAAKi1C,EAAKj1C,CAAC,EAAIy0C,EAAIz0C,CAAC,EACpE,OAAOi1C,CACT,CACA,SAASJ,IAAqB,CAC5B,MAAM,IAAI,UAAU;AAAA,mFAAsI,CAC5J,CAEA,IAAIK,GAAa,OAAO,OAAW,KAAe,OAAO,OAAO,SAAa,IACzEC,GAASD,GAAa,OAAS,CAAE,EACjCE,GAAkBF,IAAcC,GAAO,SAAS,gBAAkB,iBAAkBA,GAAO,SAAS,gBAAkB,GACtHE,GAAoBH,GAAa,iBAAkBC,GAAS,GAC5DG,GAAY,UAGZC,GAAa,MACbC,GAAc,OACdC,GAAc,OACdC,GAAc,OACdC,GAAc,IACdC,GAAc,IACdC,GAAe,IACfC,GAAe,IACfC,GAAoB,KACpBC,GAAoB,KACpBC,GAAoB,KACpBC,GAAoB,KAGpBC,GAAa,GAAG,OAAOb,GAAW,OAAO,EACzCc,GAAiB,GAAG,OAAOd,GAAW,WAAW,EACjDe,GAAe,GAAG,OAAOf,GAAW,SAAS,EAC7CgB,GAAa,GAAG,OAAOhB,GAAW,OAAO,EACzCiB,GAAkB,GAAG,OAAOjB,GAAW,YAAY,EACnDkB,GAAc,GAAG,OAAOlB,GAAW,QAAQ,EAC3CmB,GAAa,GAAG,OAAOnB,GAAW,OAAO,EAGzCoB,GAAc,GAAG,OAAOpB,GAAW,QAAQ,EAC3CqB,GAAe,GAAG,OAAOrB,GAAW,SAAS,EAG7CsB,GAAiB,OACjBC,GAAiB,OACjBC,GAAiB,OAGjBC,GAAa,OACbC,GAAiB,UACjBC,GAAkB,WAClBC,GAAmB,YACnBC,GAAiB,WACjBC,GAAoBhC,GAAkB,aAAe,YACrDiC,GAAmBjC,GAAkB,YAAc,YACnDkC,GAAkBlC,GAAkB,uBAAyB,UAC7DmC,GAAqBlC,GAAoB,cAAgB+B,GACzDI,GAAqBnC,GAAoB,cAAgBgC,GACzDI,GAAmBpC,GAAoB,0BAA4BiC,GACnEI,GAAc,QACdC,GAAe,SACfC,GAAc,QACdC,GAAa,OAGbC,GAAiB,aAGjBC,GAAiB,2CACjBC,GAAkB,SAClBC,GAAuB,4BACvBC,GAAkB,gBAIlBC,GAAsB,IACtBC,GAAuB,IAEvBC,GAAW,CAEb,SAAU,EAIV,SAAUzB,GAIV,mBAAoB,IAEpB,YAAa,IAEb,KAAM,KAEN,QAAS,GAET,WAAY,GAEZ,QAAS,GAET,iBAAkB,GAElB,iBAAkB,GAElB,MAAO,GAEP,OAAQ,GAER,OAAQ,GAER,UAAW,GAEX,WAAY,GAEZ,SAAU,GAEV,aAAc,GAEd,QAAS,GAET,UAAW,GAEX,SAAU,GAEV,SAAU,GAEV,YAAa,GAEb,YAAa,GAEb,eAAgB,GAEhB,eAAgB,GAEhB,iBAAkB,GAElB,yBAA0B,GAE1B,eAAgB,EAChB,gBAAiB,EACjB,gBAAiB,EACjB,iBAAkB,EAClB,kBAAmBuB,GACnB,mBAAoBC,GAEpB,MAAO,KACP,UAAW,KACX,SAAU,KACV,QAAS,KACT,KAAM,KACN,KAAM,IACR,EAEIE,GAAW,orCAKXC,GAAQ,OAAO,OAASpD,GAAO,MAOnC,SAASqD,EAAS1gC,EAAO,CACvB,OAAO,OAAOA,GAAU,UAAY,CAACygC,GAAMzgC,CAAK,CAClD,CAOA,IAAI2gC,GAAmB,SAA0B3gC,EAAO,CACtD,OAAOA,EAAQ,GAAKA,EAAQ,GAC9B,EAOA,SAAS4gC,GAAY5gC,EAAO,CAC1B,OAAO,OAAOA,EAAU,GAC1B,CAOA,SAASD,GAASC,EAAO,CACvB,OAAOk8B,GAAQl8B,CAAK,IAAM,UAAYA,IAAU,IAClD,CACA,IAAIsB,GAAiB,OAAO,UAAU,eAOtC,SAASu/B,GAAc7gC,EAAO,CAC5B,GAAI,CAACD,GAASC,CAAK,EACjB,MAAO,GAET,GAAI,CACF,IAAI8gC,EAAe9gC,EAAM,YACrB+gC,EAAYD,EAAa,UAC7B,OAAOA,GAAgBC,GAAaz/B,GAAe,KAAKy/B,EAAW,eAAe,CACnF,MAAe,CACd,MAAO,EACX,CACA,CAOA,SAASC,GAAWhhC,EAAO,CACzB,OAAO,OAAOA,GAAU,UAC1B,CACA,IAAIihC,GAAQ,MAAM,UAAU,MAO5B,SAASxa,GAAQzmB,EAAO,CACtB,OAAO,MAAM,KAAO,MAAM,KAAKA,CAAK,EAAIihC,GAAM,KAAKjhC,CAAK,CAC1D,CAQA,SAASkhC,GAAQvxB,EAAMd,EAAU,CAC/B,OAAIc,GAAQqxB,GAAWnyB,CAAQ,IACzB,MAAM,QAAQc,CAAI,GAAK+wB,EAAS/wB,EAAK,MAAM,EAC7C8W,GAAQ9W,CAAI,EAAE,QAAQ,SAAU3P,EAAOpC,EAAK,CAC1CiR,EAAS,KAAKc,EAAM3P,EAAOpC,EAAK+R,CAAI,CAC5C,CAAO,EACQ5P,GAAS4P,CAAI,GACtB,OAAO,KAAKA,CAAI,EAAE,QAAQ,SAAU/R,EAAK,CACvCiR,EAAS,KAAKc,EAAMA,EAAK/R,CAAG,EAAGA,EAAK+R,CAAI,CAChD,CAAO,GAGEA,CACT,CAQA,IAAIsP,GAAS,OAAO,QAAU,SAAgBrV,EAAQ,CACpD,QAAS7D,EAAO,UAAU,OAAQrG,EAAO,IAAI,MAAMqG,EAAO,EAAIA,EAAO,EAAI,CAAC,EAAGC,EAAO,EAAGA,EAAOD,EAAMC,IAClGtG,EAAKsG,EAAO,CAAC,EAAI,UAAUA,CAAI,EAEjC,OAAIjG,GAAS6J,CAAM,GAAKlK,EAAK,OAAS,GACpCA,EAAK,QAAQ,SAAUhC,EAAK,CACtBqC,GAASrC,CAAG,GACd,OAAO,KAAKA,CAAG,EAAE,QAAQ,SAAUE,EAAK,CACtCgM,EAAOhM,CAAG,EAAIF,EAAIE,CAAG,CAC/B,CAAS,CAET,CAAK,EAEIgM,CACT,EACIu3B,GAAkB,uBAStB,SAASC,GAAuBphC,EAAO,CACrC,IAAIqhC,EAAQ,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,KAChF,OAAOF,GAAgB,KAAKnhC,CAAK,EAAI,KAAK,MAAMA,EAAQqhC,CAAK,EAAIA,EAAQrhC,CAC3E,CACA,IAAIshC,GAAgB,+CAOpB,SAASC,GAAShrB,EAASirB,EAAQ,CACjC,IAAIC,EAAQlrB,EAAQ,MACpB2qB,GAAQM,EAAQ,SAAUxhC,EAAO0hC,EAAU,CACrCJ,GAAc,KAAKI,CAAQ,GAAKhB,EAAS1gC,CAAK,IAChDA,EAAQ,GAAG,OAAOA,EAAO,IAAI,GAE/ByhC,EAAMC,CAAQ,EAAI1hC,CACtB,CAAG,CACH,CAQA,SAAS2hC,GAASprB,EAASvW,EAAO,CAChC,OAAOuW,EAAQ,UAAYA,EAAQ,UAAU,SAASvW,CAAK,EAAIuW,EAAQ,UAAU,QAAQvW,CAAK,EAAI,EACpG,CAOA,SAAS4hC,GAASrrB,EAASvW,EAAO,CAChC,GAAKA,EAGL,IAAI0gC,EAASnqB,EAAQ,MAAM,EAAG,CAC5B2qB,GAAQ3qB,EAAS,SAAUsrB,EAAM,CAC/BD,GAASC,EAAM7hC,CAAK,CAC1B,CAAK,EACD,MACJ,CACE,GAAIuW,EAAQ,UAAW,CACrBA,EAAQ,UAAU,IAAIvW,CAAK,EAC3B,MACJ,CACE,IAAIkyB,EAAY3b,EAAQ,UAAU,KAAM,EACnC2b,EAEMA,EAAU,QAAQlyB,CAAK,EAAI,IACpCuW,EAAQ,UAAY,GAAG,OAAO2b,EAAW,GAAG,EAAE,OAAOlyB,CAAK,GAF1DuW,EAAQ,UAAYvW,EAIxB,CAOA,SAAS8hC,GAAYvrB,EAASvW,EAAO,CACnC,GAAKA,EAGL,IAAI0gC,EAASnqB,EAAQ,MAAM,EAAG,CAC5B2qB,GAAQ3qB,EAAS,SAAUsrB,EAAM,CAC/BC,GAAYD,EAAM7hC,CAAK,CAC7B,CAAK,EACD,MACJ,CACE,GAAIuW,EAAQ,UAAW,CACrBA,EAAQ,UAAU,OAAOvW,CAAK,EAC9B,MACJ,CACMuW,EAAQ,UAAU,QAAQvW,CAAK,GAAK,IACtCuW,EAAQ,UAAYA,EAAQ,UAAU,QAAQvW,EAAO,EAAE,GAE3D,CAQA,SAAS+hC,GAAYxrB,EAASvW,EAAOgiC,EAAO,CAC1C,GAAKhiC,EAGL,IAAI0gC,EAASnqB,EAAQ,MAAM,EAAG,CAC5B2qB,GAAQ3qB,EAAS,SAAUsrB,EAAM,CAC/BE,GAAYF,EAAM7hC,EAAOgiC,CAAK,CACpC,CAAK,EACD,MACJ,CAGMA,EACFJ,GAASrrB,EAASvW,CAAK,EAEvB8hC,GAAYvrB,EAASvW,CAAK,EAE9B,CACA,IAAIiiC,GAAoB,oBAOxB,SAASC,GAAYliC,EAAO,CAC1B,OAAOA,EAAM,QAAQiiC,GAAmB,OAAO,EAAE,YAAa,CAChE,CAQA,SAASE,GAAQ5rB,EAAS3P,EAAM,CAC9B,OAAI7G,GAASwW,EAAQ3P,CAAI,CAAC,EACjB2P,EAAQ3P,CAAI,EAEjB2P,EAAQ,QACHA,EAAQ,QAAQ3P,CAAI,EAEtB2P,EAAQ,aAAa,QAAQ,OAAO2rB,GAAYt7B,CAAI,CAAC,CAAC,CAC/D,CAQA,SAASw7B,GAAQ7rB,EAAS3P,EAAM+I,EAAM,CAChC5P,GAAS4P,CAAI,EACf4G,EAAQ3P,CAAI,EAAI+I,EACP4G,EAAQ,QACjBA,EAAQ,QAAQ3P,CAAI,EAAI+I,EAExB4G,EAAQ,aAAa,QAAQ,OAAO2rB,GAAYt7B,CAAI,CAAC,EAAG+I,CAAI,CAEhE,CAOA,SAAS0yB,GAAW9rB,EAAS3P,EAAM,CACjC,GAAI7G,GAASwW,EAAQ3P,CAAI,CAAC,EACxB,GAAI,CACF,OAAO2P,EAAQ3P,CAAI,CACpB,MAAe,CACd2P,EAAQ3P,CAAI,EAAI,MACtB,SACa2P,EAAQ,QAEjB,GAAI,CACF,OAAOA,EAAQ,QAAQ3P,CAAI,CAC5B,MAAe,CACd2P,EAAQ,QAAQ3P,CAAI,EAAI,MAC9B,MAEI2P,EAAQ,gBAAgB,QAAQ,OAAO2rB,GAAYt7B,CAAI,CAAC,CAAC,CAE7D,CACA,IAAI07B,GAAgB,QAChBC,GAAgB,UAAY,CAC9B,IAAIC,EAAY,GAChB,GAAIpF,GAAY,CACd,IAAIqF,EAAO,GACP38B,EAAW,UAAoB,CAAE,EACjCxI,EAAU,OAAO,eAAe,CAAA,EAAI,OAAQ,CAC9C,IAAK,UAAe,CAClB,OAAAklC,EAAY,GACLC,CACR,EAMD,IAAK,SAAaziC,EAAO,CACvByiC,EAAOziC,CACf,CACA,CAAK,EACDq9B,GAAO,iBAAiB,OAAQv3B,EAAUxI,CAAO,EACjD+/B,GAAO,oBAAoB,OAAQv3B,EAAUxI,CAAO,CACxD,CACE,OAAOklC,CACT,EAAG,EASH,SAASE,GAAensB,EAAStW,EAAM6F,EAAU,CAC/C,IAAIxI,EAAU,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,CAAE,EAChFy6B,EAAUjyB,EACd7F,EAAK,KAAI,EAAG,MAAMqiC,EAAa,EAAE,QAAQ,SAAU3jC,EAAO,CACxD,GAAI,CAAC4jC,GAAe,CAClB,IAAII,EAAYpsB,EAAQ,UACpBosB,GAAaA,EAAUhkC,CAAK,GAAKgkC,EAAUhkC,CAAK,EAAEmH,CAAQ,IAC5DiyB,EAAU4K,EAAUhkC,CAAK,EAAEmH,CAAQ,EACnC,OAAO68B,EAAUhkC,CAAK,EAAEmH,CAAQ,EAC5B,OAAO,KAAK68B,EAAUhkC,CAAK,CAAC,EAAE,SAAW,GAC3C,OAAOgkC,EAAUhkC,CAAK,EAEpB,OAAO,KAAKgkC,CAAS,EAAE,SAAW,GACpC,OAAOpsB,EAAQ,UAGzB,CACIA,EAAQ,oBAAoB5X,EAAOo5B,EAASz6B,CAAO,CACvD,CAAG,CACH,CASA,SAASslC,GAAYrsB,EAAStW,EAAM6F,EAAU,CAC5C,IAAIxI,EAAU,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,CAAE,EAChFulC,EAAW/8B,EACf7F,EAAK,KAAI,EAAG,MAAMqiC,EAAa,EAAE,QAAQ,SAAU3jC,EAAO,CACxD,GAAIrB,EAAQ,MAAQ,CAACilC,GAAe,CAClC,IAAIO,EAAqBvsB,EAAQ,UAC/BosB,EAAYG,IAAuB,OAAS,CAAA,EAAKA,EACnDD,EAAW,UAAmB,CAC5B,OAAOF,EAAUhkC,CAAK,EAAEmH,CAAQ,EAChCyQ,EAAQ,oBAAoB5X,EAAOkkC,EAAUvlC,CAAO,EACpD,QAAS6K,EAAQ,UAAU,OAAQzI,EAAO,IAAI,MAAMyI,CAAK,EAAGC,EAAQ,EAAGA,EAAQD,EAAOC,IACpF1I,EAAK0I,CAAK,EAAI,UAAUA,CAAK,EAE/BtC,EAAS,MAAMyQ,EAAS7W,CAAI,CAC7B,EACIijC,EAAUhkC,CAAK,IAClBgkC,EAAUhkC,CAAK,EAAI,CAAE,GAEnBgkC,EAAUhkC,CAAK,EAAEmH,CAAQ,GAC3ByQ,EAAQ,oBAAoB5X,EAAOgkC,EAAUhkC,CAAK,EAAEmH,CAAQ,EAAGxI,CAAO,EAExEqlC,EAAUhkC,CAAK,EAAEmH,CAAQ,EAAI+8B,EAC7BtsB,EAAQ,UAAYosB,CAC1B,CACIpsB,EAAQ,iBAAiB5X,EAAOkkC,EAAUvlC,CAAO,CACrD,CAAG,CACH,CASA,SAASylC,GAAcxsB,EAAStW,EAAM0P,EAAM,CAC1C,IAAIhR,EAGJ,OAAIqiC,GAAW,KAAK,GAAKA,GAAW,WAAW,EAC7CriC,EAAQ,IAAI,YAAYsB,EAAM,CAC5B,OAAQ0P,EACR,QAAS,GACT,WAAY,EAClB,CAAK,GAEDhR,EAAQ,SAAS,YAAY,aAAa,EAC1CA,EAAM,gBAAgBsB,EAAM,GAAM,GAAM0P,CAAI,GAEvC4G,EAAQ,cAAc5X,CAAK,CACpC,CAOA,SAASqkC,GAAUzsB,EAAS,CAC1B,IAAI0sB,EAAM1sB,EAAQ,sBAAuB,EACzC,MAAO,CACL,KAAM0sB,EAAI,MAAQ,OAAO,YAAc,SAAS,gBAAgB,YAChE,IAAKA,EAAI,KAAO,OAAO,YAAc,SAAS,gBAAgB,UAC/D,CACH,CACA,IAAIC,GAAW7F,GAAO,SAClB8F,GAAiB,gCAOrB,SAASC,GAAiB5gB,EAAK,CAC7B,IAAIpZ,EAAQoZ,EAAI,MAAM2gB,EAAc,EACpC,OAAO/5B,IAAU,OAASA,EAAM,CAAC,IAAM85B,GAAS,UAAY95B,EAAM,CAAC,IAAM85B,GAAS,UAAY95B,EAAM,CAAC,IAAM85B,GAAS,KACtH,CAOA,SAASG,GAAa7gB,EAAK,CACzB,IAAI8gB,EAAY,aAAa,OAAO,IAAI,KAAI,EAAG,SAAS,EACxD,OAAO9gB,GAAOA,EAAI,QAAQ,GAAG,IAAM,GAAK,IAAM,KAAO8gB,CACvD,CAOA,SAASC,GAAcr0B,EAAM,CAC3B,IAAIs0B,EAASt0B,EAAK,OAChBu0B,EAASv0B,EAAK,OACdw0B,EAASx0B,EAAK,OACdy0B,EAAaz0B,EAAK,WAClB00B,EAAa10B,EAAK,WAChBsJ,EAAS,CAAE,EACXkoB,EAASiD,CAAU,GAAKA,IAAe,GACzCnrB,EAAO,KAAK,cAAc,OAAOmrB,EAAY,KAAK,CAAC,EAEjDjD,EAASkD,CAAU,GAAKA,IAAe,GACzCprB,EAAO,KAAK,cAAc,OAAOorB,EAAY,KAAK,CAAC,EAIjDlD,EAAS8C,CAAM,GAAKA,IAAW,GACjChrB,EAAO,KAAK,UAAU,OAAOgrB,EAAQ,MAAM,CAAC,EAE1C9C,EAAS+C,CAAM,GAAKA,IAAW,GACjCjrB,EAAO,KAAK,UAAU,OAAOirB,EAAQ,GAAG,CAAC,EAEvC/C,EAASgD,CAAM,GAAKA,IAAW,GACjClrB,EAAO,KAAK,UAAU,OAAOkrB,EAAQ,GAAG,CAAC,EAE3C,IAAIG,EAAYrrB,EAAO,OAASA,EAAO,KAAK,GAAG,EAAI,OACnD,MAAO,CACL,gBAAiBqrB,EACjB,YAAaA,EACb,UAAWA,CACZ,CACH,CAOA,SAASC,GAAgBC,EAAU,CACjC,IAAIC,EAAYlI,GAAe,CAAE,EAAEiI,CAAQ,EACvCE,EAAW,EACf,OAAA/C,GAAQ6C,EAAU,SAAUG,EAASC,EAAW,CAC9C,OAAOH,EAAUG,CAAS,EAC1BjD,GAAQ8C,EAAW,SAAUI,EAAU,CACrC,IAAIC,EAAK,KAAK,IAAIH,EAAQ,OAASE,EAAS,MAAM,EAC9CE,EAAK,KAAK,IAAIJ,EAAQ,OAASE,EAAS,MAAM,EAC9CG,EAAK,KAAK,IAAIL,EAAQ,KAAOE,EAAS,IAAI,EAC1CI,EAAK,KAAK,IAAIN,EAAQ,KAAOE,EAAS,IAAI,EAC1CK,EAAK,KAAK,KAAKJ,EAAKA,EAAKC,EAAKA,CAAE,EAChCI,EAAK,KAAK,KAAKH,EAAKA,EAAKC,EAAKA,CAAE,EAChClhB,GAASohB,EAAKD,GAAMA,EACpB,KAAK,IAAInhB,CAAK,EAAI,KAAK,IAAI2gB,CAAQ,IACrCA,EAAW3gB,EAEnB,CAAK,CACL,CAAG,EACM2gB,CACT,CAQA,SAASU,GAAWhxB,EAAOixB,EAAS,CAClC,IAAIC,EAAQlxB,EAAM,MAChBmxB,EAAQnxB,EAAM,MACZ6T,EAAM,CACR,KAAMqd,EACN,KAAMC,CACP,EACD,OAAOF,EAAUpd,EAAMsU,GAAe,CACpC,OAAQ+I,EACR,OAAQC,CACT,EAAEtd,CAAG,CACR,CAOA,SAASud,GAAkBhB,EAAU,CACnC,IAAIc,EAAQ,EACRC,EAAQ,EACRE,EAAQ,EACZ,OAAA9D,GAAQ6C,EAAU,SAAUtiB,EAAO,CACjC,IAAIwjB,EAASxjB,EAAM,OACjByjB,EAASzjB,EAAM,OACjBojB,GAASI,EACTH,GAASI,EACTF,GAAS,CACb,CAAG,EACDH,GAASG,EACTF,GAASE,EACF,CACL,MAAOH,EACP,MAAOC,CACR,CACH,CAQA,SAASK,GAAiBC,EAAO,CAC/B,IAAIC,EAAcD,EAAM,YACtB3gB,EAAS2gB,EAAM,OACfzoB,EAAQyoB,EAAM,MACZnlC,EAAO,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,UAC3EqlC,EAAe3E,GAAiBhkB,CAAK,EACrC4oB,EAAgB5E,GAAiBlc,CAAM,EAC3C,GAAI6gB,GAAgBC,EAAe,CACjC,IAAIC,EAAgB/gB,EAAS4gB,EACzBplC,IAAS,WAAaulC,EAAgB7oB,GAAS1c,IAAS,SAAWulC,EAAgB7oB,EACrF8H,EAAS9H,EAAQ0oB,EAEjB1oB,EAAQ8H,EAAS4gB,CAEpB,MAAUC,EACT7gB,EAAS9H,EAAQ0oB,EACRE,IACT5oB,EAAQ8H,EAAS4gB,GAEnB,MAAO,CACL,MAAO1oB,EACP,OAAQ8H,CACT,CACH,CAOA,SAASghB,GAAgBC,EAAO,CAC9B,IAAI/oB,EAAQ+oB,EAAM,MAChBjhB,EAASihB,EAAM,OACfC,EAASD,EAAM,OAEjB,GADAC,EAAS,KAAK,IAAIA,CAAM,EAAI,IACxBA,IAAW,GACb,MAAO,CACL,MAAOlhB,EACP,OAAQ9H,CACT,EAEH,IAAIipB,EAAMD,EAAS,GAAK,KAAK,GAAK,IAC9BE,EAAS,KAAK,IAAID,CAAG,EACrBE,EAAS,KAAK,IAAIF,CAAG,EACrBG,EAAWppB,EAAQmpB,EAASrhB,EAASohB,EACrCG,EAAYrpB,EAAQkpB,EAASphB,EAASqhB,EAC1C,OAAOH,EAAS,GAAK,CACnB,MAAOK,EACP,OAAQD,CACZ,EAAM,CACF,MAAOA,EACP,OAAQC,CACT,CACH,CAUA,SAASC,GAAgB9iB,EAAO+iB,EAAOC,EAAOC,EAAO,CACnD,IAAIC,EAAmBH,EAAM,YAC3BI,EAAoBJ,EAAM,aAC1BK,EAAqBL,EAAM,cAC3BM,EAAeN,EAAM,OACrB1C,EAASgD,IAAiB,OAAS,EAAIA,EACvCC,EAAeP,EAAM,OACrBzC,EAASgD,IAAiB,OAAS,EAAIA,EACvCC,EAAeR,EAAM,OACrBxC,EAASgD,IAAiB,OAAS,EAAIA,EACrCrB,EAAcc,EAAM,YACtBQ,EAAeR,EAAM,aACrBS,EAAgBT,EAAM,cACpBU,EAAkBT,EAAM,UAC1BU,EAAYD,IAAoB,OAAS,cAAgBA,EACzDE,EAAwBX,EAAM,sBAC9BY,EAAwBD,IAA0B,OAAS,GAAOA,EAClEE,EAAwBb,EAAM,sBAC9Bc,EAAwBD,IAA0B,OAAS,MAAQA,EACnEE,EAAiBf,EAAM,SACvBgB,EAAWD,IAAmB,OAAS,IAAWA,EAClDE,EAAkBjB,EAAM,UACxBkB,EAAYD,IAAoB,OAAS,IAAWA,EACpDE,EAAiBnB,EAAM,SACvBoB,EAAWD,IAAmB,OAAS,EAAIA,EAC3CE,EAAkBrB,EAAM,UACxBsB,EAAYD,IAAoB,OAAS,EAAIA,EAC3C3kB,EAAS,SAAS,cAAc,QAAQ,EACxCtM,EAAUsM,EAAO,WAAW,IAAI,EAChC6kB,EAAWxC,GAAiB,CAC9B,YAAaE,EACb,MAAO+B,EACP,OAAQE,CACZ,CAAG,EACGM,EAAWzC,GAAiB,CAC9B,YAAaE,EACb,MAAOmC,EACP,OAAQE,CACT,EAAE,OAAO,EACN/qB,EAAQ,KAAK,IAAIgrB,EAAS,MAAO,KAAK,IAAIC,EAAS,MAAOjB,CAAY,CAAC,EACvEliB,EAAS,KAAK,IAAIkjB,EAAS,OAAQ,KAAK,IAAIC,EAAS,OAAQhB,CAAa,CAAC,EAI3EiB,EAAe1C,GAAiB,CAClC,YAAakB,EACb,MAAOe,EACP,OAAQE,CACZ,CAAG,EACGQ,EAAe3C,GAAiB,CAClC,YAAakB,EACb,MAAOmB,EACP,OAAQE,CACT,EAAE,OAAO,EACNK,EAAY,KAAK,IAAIF,EAAa,MAAO,KAAK,IAAIC,EAAa,MAAOxB,CAAiB,CAAC,EACxF0B,GAAa,KAAK,IAAIH,EAAa,OAAQ,KAAK,IAAIC,EAAa,OAAQvB,CAAkB,CAAC,EAC5F0B,EAAS,CAAC,CAACF,EAAY,EAAG,CAACC,GAAa,EAAGD,EAAWC,EAAU,EACpE,OAAAllB,EAAO,MAAQse,GAAuBzkB,CAAK,EAC3CmG,EAAO,OAASse,GAAuB3c,CAAM,EAC7CjO,EAAQ,UAAYswB,EACpBtwB,EAAQ,SAAS,EAAG,EAAGmG,EAAO8H,CAAM,EACpCjO,EAAQ,KAAM,EACdA,EAAQ,UAAUmG,EAAQ,EAAG8H,EAAS,CAAC,EACvCjO,EAAQ,OAAOgtB,EAAS,KAAK,GAAK,GAAG,EACrChtB,EAAQ,MAAMitB,EAAQC,CAAM,EAC5BltB,EAAQ,sBAAwBwwB,EAChCxwB,EAAQ,sBAAwB0wB,EAChC1wB,EAAQ,UAAU,MAAMA,EAAS,CAAC2M,CAAK,EAAE,OAAOuZ,GAAmBuL,EAAO,IAAI,SAAUC,EAAO,CAC7F,OAAO,KAAK,MAAM9G,GAAuB8G,CAAK,CAAC,CAChD,CAAA,CAAC,CAAC,CAAC,EACJ1xB,EAAQ,QAAS,EACVsM,CACT,CACA,IAAIqlB,GAAe,OAAO,aAS1B,SAASC,GAAsBC,EAAU/gB,EAAOghB,EAAQ,CACtD,IAAIC,EAAM,GACVD,GAAUhhB,EACV,QAASp/B,EAAIo/B,EAAOp/B,EAAIogD,EAAQpgD,GAAK,EACnCqgD,GAAOJ,GAAaE,EAAS,SAASngD,CAAC,CAAC,EAE1C,OAAOqgD,CACT,CACA,IAAIC,GAAuB,YAO3B,SAASC,GAAqBC,EAAS,CACrC,IAAIC,EAASD,EAAQ,QAAQF,GAAsB,EAAE,EACjDnmB,EAAS,KAAKsmB,CAAM,EACpBC,EAAc,IAAI,YAAYvmB,EAAO,MAAM,EAC3CwmB,EAAQ,IAAI,WAAWD,CAAW,EACtC,OAAA1H,GAAQ2H,EAAO,SAAU7oC,EAAO9X,EAAG,CACjC2gD,EAAM3gD,CAAC,EAAIm6B,EAAO,WAAWn6B,CAAC,CAClC,CAAG,EACM0gD,CACT,CAQA,SAASE,GAAqBF,EAAaxmB,EAAU,CAMnD,QALIyM,EAAS,CAAE,EAGXka,EAAY,KACZF,EAAQ,IAAI,WAAWD,CAAW,EAC/BC,EAAM,OAAS,GAGpBha,EAAO,KAAKsZ,GAAa,MAAM,KAAM1hB,GAAQoiB,EAAM,SAAS,EAAGE,CAAS,CAAC,CAAC,CAAC,EAC3EF,EAAQA,EAAM,SAASE,CAAS,EAElC,MAAO,QAAQ,OAAO3mB,EAAU,UAAU,EAAE,OAAO,KAAKyM,EAAO,KAAK,EAAE,CAAC,CAAC,CAC1E,CAOA,SAASma,GAAuBJ,EAAa,CAC3C,IAAIP,EAAW,IAAI,SAASO,CAAW,EACnCxkB,EAGJ,GAAI,CACF,IAAI6kB,EACAC,EACAC,EAGJ,GAAId,EAAS,SAAS,CAAC,IAAM,KAAQA,EAAS,SAAS,CAAC,IAAM,IAG5D,QAFIC,EAASD,EAAS,WAClBhhB,EAAS,EACNA,EAAS,EAAIihB,GAAQ,CAC1B,GAAID,EAAS,SAAShhB,CAAM,IAAM,KAAQghB,EAAS,SAAShhB,EAAS,CAAC,IAAM,IAAM,CAChF6hB,EAAY7hB,EACZ,KACV,CACQA,GAAU,CAClB,CAEI,GAAI6hB,EAAW,CACb,IAAIE,EAAaF,EAAY,EACzBG,EAAaH,EAAY,GAC7B,GAAId,GAAsBC,EAAUe,EAAY,CAAC,IAAM,OAAQ,CAC7D,IAAIE,EAAajB,EAAS,UAAUgB,CAAU,EAE9C,GADAJ,EAAeK,IAAe,OAC1BL,GAAgBK,IAAe,QAC7BjB,EAAS,UAAUgB,EAAa,EAAGJ,CAAY,IAAM,GAAQ,CAC/D,IAAIM,EAAiBlB,EAAS,UAAUgB,EAAa,EAAGJ,CAAY,EAChEM,GAAkB,IACpBJ,EAAWE,EAAaE,EAEtC,CAEA,CACA,CACI,GAAIJ,EAAU,CACZ,IAAIK,EAAUnB,EAAS,UAAUc,EAAUF,CAAY,EACnDQ,EACAvhD,EACJ,IAAKA,EAAI,EAAGA,EAAIshD,EAASthD,GAAK,EAE5B,GADAuhD,EAAUN,EAAWjhD,EAAI,GAAK,EAC1BmgD,EAAS,UAAUoB,EAASR,CAAY,IAAM,IAA0B,CAE1EQ,GAAW,EAGXrlB,EAAcikB,EAAS,UAAUoB,EAASR,CAAY,EAGtDZ,EAAS,UAAUoB,EAAS,EAAGR,CAAY,EAC3C,KACV,CAEA,CACG,MAAe,CACd7kB,EAAc,CAClB,CACE,OAAOA,CACT,CAOA,SAASslB,GAAiBtlB,EAAa,CACrC,IAAIof,EAAS,EACTC,EAAS,EACTC,EAAS,EACb,OAAQtf,EAAW,CAEjB,IAAK,GACHqf,EAAS,GACT,MAGF,IAAK,GACHD,EAAS,KACT,MAGF,IAAK,GACHE,EAAS,GACT,MAGF,IAAK,GACHF,EAAS,GACTE,EAAS,GACT,MAGF,IAAK,GACHF,EAAS,GACT,MAGF,IAAK,GACHA,EAAS,GACTC,EAAS,GACT,MAGF,IAAK,GACHD,EAAS,IACT,KACN,CACE,MAAO,CACL,OAAQA,EACR,OAAQC,EACR,OAAQC,CACT,CACH,CAEA,IAAInsB,GAAS,CACX,OAAQ,UAAkB,CACxB,KAAK,cAAe,EACpB,KAAK,WAAY,EACjB,KAAK,YAAa,EAClB,KAAK,aAAc,EACf,KAAK,SACP,KAAK,cAAe,CAEvB,EACD,cAAe,UAAyB,CACtC,IAAIhB,EAAU,KAAK,QACjBjZ,EAAU,KAAK,QACfka,EAAY,KAAK,UACjBmyB,EAAU,KAAK,QACbnC,EAAW,OAAOlqC,EAAQ,iBAAiB,EAC3CoqC,EAAY,OAAOpqC,EAAQ,kBAAkB,EACjDskC,GAAS+H,EAASpL,EAAY,EAC9BuD,GAAYvrB,EAASgoB,EAAY,EACjC,IAAIqL,EAAgB,CAClB,MAAO,KAAK,IAAIpyB,EAAU,YAAagwB,GAAY,EAAIA,EAAWnH,EAAmB,EACrF,OAAQ,KAAK,IAAI7oB,EAAU,aAAckwB,GAAa,EAAIA,EAAYpH,EAAoB,CAC3F,EACD,KAAK,cAAgBsJ,EACrBrI,GAASoI,EAAS,CAChB,MAAOC,EAAc,MACrB,OAAQA,EAAc,MAC5B,CAAK,EACDhI,GAASrrB,EAASgoB,EAAY,EAC9BuD,GAAY6H,EAASpL,EAAY,CAClC,EAED,WAAY,UAAsB,CAChC,IAAIqL,EAAgB,KAAK,cACvBC,EAAY,KAAK,UACfC,EAAW,KAAK,QAAQ,SACxBC,EAAU,KAAK,IAAIF,EAAU,MAAM,EAAI,MAAQ,GAC/ClD,EAAeoD,EAAUF,EAAU,cAAgBA,EAAU,aAC7DjD,EAAgBmD,EAAUF,EAAU,aAAeA,EAAU,cAC7DxE,EAAcsB,EAAeC,EAC7BoD,EAAcJ,EAAc,MAC5BK,EAAeL,EAAc,OAC7BA,EAAc,OAASvE,EAAcuE,EAAc,MACjDE,IAAa,EACfE,EAAcJ,EAAc,OAASvE,EAErC4E,EAAeL,EAAc,MAAQvE,EAE9ByE,IAAa,EACtBG,EAAeL,EAAc,MAAQvE,EAErC2E,EAAcJ,EAAc,OAASvE,EAEvC,IAAI6E,EAAa,CACf,YAAa7E,EACb,aAAcsB,EACd,cAAeC,EACf,MAAOoD,EACP,OAAQC,CACT,EACD,KAAK,WAAaC,EAClB,KAAK,QAAUJ,IAAa,GAAKA,IAAa,EAC9C,KAAK,YAAY,GAAM,EAAI,EAC3BI,EAAW,MAAQ,KAAK,IAAI,KAAK,IAAIA,EAAW,MAAOA,EAAW,QAAQ,EAAGA,EAAW,QAAQ,EAChGA,EAAW,OAAS,KAAK,IAAI,KAAK,IAAIA,EAAW,OAAQA,EAAW,SAAS,EAAGA,EAAW,SAAS,EACpGA,EAAW,MAAQN,EAAc,MAAQM,EAAW,OAAS,EAC7DA,EAAW,KAAON,EAAc,OAASM,EAAW,QAAU,EAC9DA,EAAW,QAAUA,EAAW,KAChCA,EAAW,OAASA,EAAW,IAC/B,KAAK,kBAAoBjrB,GAAO,CAAA,EAAIirB,CAAU,CAC/C,EACD,YAAa,SAAqBC,EAAaC,EAAiB,CAC9D,IAAI9sC,EAAU,KAAK,QACjBssC,EAAgB,KAAK,cACrBM,EAAa,KAAK,WAClBG,EAAc,KAAK,YACjBP,EAAWxsC,EAAQ,SACnB+nC,EAAc6E,EAAW,YACzBI,EAAU,KAAK,SAAWD,EAC9B,GAAIF,EAAa,CACf,IAAII,EAAiB,OAAOjtC,EAAQ,cAAc,GAAK,EACnDktC,EAAkB,OAAOltC,EAAQ,eAAe,GAAK,EACrDwsC,EAAW,GACbS,EAAiB,KAAK,IAAIA,EAAgBX,EAAc,KAAK,EAC7DY,EAAkB,KAAK,IAAIA,EAAiBZ,EAAc,MAAM,EAC5DE,IAAa,IACXU,EAAkBnF,EAAckF,EAClCA,EAAiBC,EAAkBnF,EAEnCmF,EAAkBD,EAAiBlF,IAG9ByE,EAAW,IAChBS,EACFA,EAAiB,KAAK,IAAIA,EAAgBD,EAAUD,EAAY,MAAQ,CAAC,EAChEG,EACTA,EAAkB,KAAK,IAAIA,EAAiBF,EAAUD,EAAY,OAAS,CAAC,EACnEC,IACTC,EAAiBF,EAAY,MAC7BG,EAAkBH,EAAY,OAC1BG,EAAkBnF,EAAckF,EAClCA,EAAiBC,EAAkBnF,EAEnCmF,EAAkBD,EAAiBlF,IAIzC,IAAIoF,EAAoBtF,GAAiB,CACvC,YAAaE,EACb,MAAOkF,EACP,OAAQC,CAChB,CAAO,EACDD,EAAiBE,EAAkB,MACnCD,EAAkBC,EAAkB,OACpCP,EAAW,SAAWK,EACtBL,EAAW,UAAYM,EACvBN,EAAW,SAAW,IACtBA,EAAW,UAAY,GAC7B,CACI,GAAIE,EACF,GAAIN,GAAYQ,EAAU,EAAI,GAAI,CAChC,IAAII,EAAgBd,EAAc,MAAQM,EAAW,MACjDS,EAAef,EAAc,OAASM,EAAW,OACrDA,EAAW,QAAU,KAAK,IAAI,EAAGQ,CAAa,EAC9CR,EAAW,OAAS,KAAK,IAAI,EAAGS,CAAY,EAC5CT,EAAW,QAAU,KAAK,IAAI,EAAGQ,CAAa,EAC9CR,EAAW,OAAS,KAAK,IAAI,EAAGS,CAAY,EACxCL,GAAW,KAAK,UAClBJ,EAAW,QAAU,KAAK,IAAIG,EAAY,KAAMA,EAAY,MAAQA,EAAY,MAAQH,EAAW,MAAM,EACzGA,EAAW,OAAS,KAAK,IAAIG,EAAY,IAAKA,EAAY,KAAOA,EAAY,OAASH,EAAW,OAAO,EACxGA,EAAW,QAAUG,EAAY,KACjCH,EAAW,OAASG,EAAY,IAC5BP,IAAa,IACXI,EAAW,OAASN,EAAc,QACpCM,EAAW,QAAU,KAAK,IAAI,EAAGQ,CAAa,EAC9CR,EAAW,QAAU,KAAK,IAAI,EAAGQ,CAAa,GAE5CR,EAAW,QAAUN,EAAc,SACrCM,EAAW,OAAS,KAAK,IAAI,EAAGS,CAAY,EAC5CT,EAAW,OAAS,KAAK,IAAI,EAAGS,CAAY,IAI1D,MACQT,EAAW,QAAU,CAACA,EAAW,MACjCA,EAAW,OAAS,CAACA,EAAW,OAChCA,EAAW,QAAUN,EAAc,MACnCM,EAAW,OAASN,EAAc,MAGvC,EACD,aAAc,SAAsBgB,EAASC,EAAa,CACxD,IAAIX,EAAa,KAAK,WACpBL,EAAY,KAAK,UACnB,GAAIgB,EAAa,CACf,IAAIC,EAAmBrF,GAAgB,CACnC,MAAOoE,EAAU,aAAe,KAAK,IAAIA,EAAU,QAAU,CAAC,EAC9D,OAAQA,EAAU,cAAgB,KAAK,IAAIA,EAAU,QAAU,CAAC,EAChE,OAAQA,EAAU,QAAU,CACtC,CAAS,EACDlD,EAAemE,EAAiB,MAChClE,EAAgBkE,EAAiB,OAC/BnuB,EAAQutB,EAAW,OAASvD,EAAeuD,EAAW,cACtDzlB,EAASylB,EAAW,QAAUtD,EAAgBsD,EAAW,eAC7DA,EAAW,OAASvtB,EAAQutB,EAAW,OAAS,EAChDA,EAAW,MAAQzlB,EAASylB,EAAW,QAAU,EACjDA,EAAW,MAAQvtB,EACnButB,EAAW,OAASzlB,EACpBylB,EAAW,YAAcvD,EAAeC,EACxCsD,EAAW,aAAevD,EAC1BuD,EAAW,cAAgBtD,EAC3B,KAAK,YAAY,GAAM,EAAK,CAClC,EACQsD,EAAW,MAAQA,EAAW,UAAYA,EAAW,MAAQA,EAAW,YAC1EA,EAAW,KAAOA,EAAW,UAE3BA,EAAW,OAASA,EAAW,WAAaA,EAAW,OAASA,EAAW,aAC7EA,EAAW,IAAMA,EAAW,QAE9BA,EAAW,MAAQ,KAAK,IAAI,KAAK,IAAIA,EAAW,MAAOA,EAAW,QAAQ,EAAGA,EAAW,QAAQ,EAChGA,EAAW,OAAS,KAAK,IAAI,KAAK,IAAIA,EAAW,OAAQA,EAAW,SAAS,EAAGA,EAAW,SAAS,EACpG,KAAK,YAAY,GAAO,EAAI,EAC5BA,EAAW,KAAO,KAAK,IAAI,KAAK,IAAIA,EAAW,KAAMA,EAAW,OAAO,EAAGA,EAAW,OAAO,EAC5FA,EAAW,IAAM,KAAK,IAAI,KAAK,IAAIA,EAAW,IAAKA,EAAW,MAAM,EAAGA,EAAW,MAAM,EACxFA,EAAW,QAAUA,EAAW,KAChCA,EAAW,OAASA,EAAW,IAC/B3I,GAAS,KAAK,OAAQtiB,GAAO,CAC3B,MAAOirB,EAAW,MAClB,OAAQA,EAAW,MACpB,EAAE3G,GAAc,CACf,WAAY2G,EAAW,KACvB,WAAYA,EAAW,GACxB,CAAA,CAAC,CAAC,EACH,KAAK,YAAYU,CAAO,EACpB,KAAK,SAAW,KAAK,SACvB,KAAK,aAAa,GAAM,EAAI,CAE/B,EACD,YAAa,SAAqBA,EAAS,CACzC,IAAIV,EAAa,KAAK,WACpBL,EAAY,KAAK,UACfltB,EAAQktB,EAAU,cAAgBK,EAAW,MAAQA,EAAW,cAChEzlB,EAASolB,EAAU,eAAiBK,EAAW,OAASA,EAAW,eACvEjrB,GAAO4qB,EAAW,CAChB,MAAOltB,EACP,OAAQ8H,EACR,MAAOylB,EAAW,MAAQvtB,GAAS,EACnC,KAAMutB,EAAW,OAASzlB,GAAU,CAC1C,CAAK,EACD8c,GAAS,KAAK,MAAOtiB,GAAO,CAC1B,MAAO4qB,EAAU,MACjB,OAAQA,EAAU,MACxB,EAAOtG,GAActkB,GAAO,CACtB,WAAY4qB,EAAU,KACtB,WAAYA,EAAU,GAC5B,EAAOA,CAAS,CAAC,CAAC,CAAC,EACXe,GACF,KAAK,OAAQ,CAEhB,EACD,YAAa,UAAuB,CAClC,IAAIttC,EAAU,KAAK,QACjB4sC,EAAa,KAAK,WAChB7E,EAAc/nC,EAAQ,aAAeA,EAAQ,mBAC7CytC,EAAe,OAAOztC,EAAQ,YAAY,GAAK,GAC/C+sC,EAAc,CAChB,MAAOH,EAAW,MAClB,OAAQA,EAAW,MACpB,EACG7E,IACE6E,EAAW,OAAS7E,EAAc6E,EAAW,MAC/CG,EAAY,OAASA,EAAY,MAAQhF,EAEzCgF,EAAY,MAAQA,EAAY,OAAShF,GAG7C,KAAK,YAAcgF,EACnB,KAAK,aAAa,GAAM,EAAI,EAG5BA,EAAY,MAAQ,KAAK,IAAI,KAAK,IAAIA,EAAY,MAAOA,EAAY,QAAQ,EAAGA,EAAY,QAAQ,EACpGA,EAAY,OAAS,KAAK,IAAI,KAAK,IAAIA,EAAY,OAAQA,EAAY,SAAS,EAAGA,EAAY,SAAS,EAGxGA,EAAY,MAAQ,KAAK,IAAIA,EAAY,SAAUA,EAAY,MAAQU,CAAY,EACnFV,EAAY,OAAS,KAAK,IAAIA,EAAY,UAAWA,EAAY,OAASU,CAAY,EACtFV,EAAY,KAAOH,EAAW,MAAQA,EAAW,MAAQG,EAAY,OAAS,EAC9EA,EAAY,IAAMH,EAAW,KAAOA,EAAW,OAASG,EAAY,QAAU,EAC9EA,EAAY,QAAUA,EAAY,KAClCA,EAAY,OAASA,EAAY,IACjC,KAAK,mBAAqBprB,GAAO,CAAA,EAAIorB,CAAW,CACjD,EACD,aAAc,SAAsBF,EAAaC,EAAiB,CAChE,IAAI9sC,EAAU,KAAK,QACjBssC,EAAgB,KAAK,cACrBM,EAAa,KAAK,WAClBG,EAAc,KAAK,YACnBW,EAAU,KAAK,QACb3F,EAAc/nC,EAAQ,YAC1B,GAAI6sC,EAAa,CACf,IAAIc,EAAkB,OAAO3tC,EAAQ,eAAe,GAAK,EACrD4tC,EAAmB,OAAO5tC,EAAQ,gBAAgB,GAAK,EACvD6tC,EAAkBH,EAAU,KAAK,IAAIpB,EAAc,MAAOM,EAAW,MAAOA,EAAW,MAAQA,EAAW,KAAMN,EAAc,MAAQM,EAAW,IAAI,EAAIN,EAAc,MACvKwB,EAAmBJ,EAAU,KAAK,IAAIpB,EAAc,OAAQM,EAAW,OAAQA,EAAW,OAASA,EAAW,IAAKN,EAAc,OAASM,EAAW,GAAG,EAAIN,EAAc,OAG9KqB,EAAkB,KAAK,IAAIA,EAAiBrB,EAAc,KAAK,EAC/DsB,EAAmB,KAAK,IAAIA,EAAkBtB,EAAc,MAAM,EAC9DvE,IACE4F,GAAmBC,EACjBA,EAAmB7F,EAAc4F,EACnCC,EAAmBD,EAAkB5F,EAErC4F,EAAkBC,EAAmB7F,EAE9B4F,EACTC,EAAmBD,EAAkB5F,EAC5B6F,IACTD,EAAkBC,EAAmB7F,GAEnC+F,EAAmB/F,EAAc8F,EACnCC,EAAmBD,EAAkB9F,EAErC8F,EAAkBC,EAAmB/F,GAKzCgF,EAAY,SAAW,KAAK,IAAIY,EAAiBE,CAAe,EAChEd,EAAY,UAAY,KAAK,IAAIa,EAAkBE,CAAgB,EACnEf,EAAY,SAAWc,EACvBd,EAAY,UAAYe,CAC9B,CACQhB,IACEY,GACFX,EAAY,QAAU,KAAK,IAAI,EAAGH,EAAW,IAAI,EACjDG,EAAY,OAAS,KAAK,IAAI,EAAGH,EAAW,GAAG,EAC/CG,EAAY,QAAU,KAAK,IAAIT,EAAc,MAAOM,EAAW,KAAOA,EAAW,KAAK,EAAIG,EAAY,MACtGA,EAAY,OAAS,KAAK,IAAIT,EAAc,OAAQM,EAAW,IAAMA,EAAW,MAAM,EAAIG,EAAY,SAEtGA,EAAY,QAAU,EACtBA,EAAY,OAAS,EACrBA,EAAY,QAAUT,EAAc,MAAQS,EAAY,MACxDA,EAAY,OAAST,EAAc,OAASS,EAAY,QAG7D,EACD,cAAe,UAAyB,CACtC,IAAI/sC,EAAU,KAAK,QACjBssC,EAAgB,KAAK,cACrBS,EAAc,KAAK,aACjBA,EAAY,MAAQA,EAAY,UAAYA,EAAY,MAAQA,EAAY,YAC9EA,EAAY,KAAOA,EAAY,UAE7BA,EAAY,OAASA,EAAY,WAAaA,EAAY,OAASA,EAAY,aACjFA,EAAY,IAAMA,EAAY,QAEhCA,EAAY,MAAQ,KAAK,IAAI,KAAK,IAAIA,EAAY,MAAOA,EAAY,QAAQ,EAAGA,EAAY,QAAQ,EACpGA,EAAY,OAAS,KAAK,IAAI,KAAK,IAAIA,EAAY,OAAQA,EAAY,SAAS,EAAGA,EAAY,SAAS,EACxG,KAAK,aAAa,GAAO,EAAI,EAC7BA,EAAY,KAAO,KAAK,IAAI,KAAK,IAAIA,EAAY,KAAMA,EAAY,OAAO,EAAGA,EAAY,OAAO,EAChGA,EAAY,IAAM,KAAK,IAAI,KAAK,IAAIA,EAAY,IAAKA,EAAY,MAAM,EAAGA,EAAY,MAAM,EAC5FA,EAAY,QAAUA,EAAY,KAClCA,EAAY,OAASA,EAAY,IAC7B/sC,EAAQ,SAAWA,EAAQ,gBAE7B8kC,GAAQ,KAAK,KAAMxD,GAAayL,EAAY,OAAST,EAAc,OAASS,EAAY,QAAUT,EAAc,OAASjM,GAAcF,EAAU,EAEnJ8D,GAAS,KAAK,QAAStiB,GAAO,CAC5B,MAAOorB,EAAY,MACnB,OAAQA,EAAY,MACrB,EAAE9G,GAAc,CACf,WAAY8G,EAAY,KACxB,WAAYA,EAAY,GACzB,CAAA,CAAC,CAAC,EACC,KAAK,SAAW,KAAK,SACvB,KAAK,YAAY,GAAM,EAAI,EAExB,KAAK,UACR,KAAK,OAAQ,CAEhB,EACD,OAAQ,UAAkB,CACxB,KAAK,QAAS,EACdtH,GAAc,KAAK,QAAS9D,GAAY,KAAK,QAAO,CAAE,CAC1D,CACA,EAEIna,GAAU,CACZ,YAAa,UAAuB,CAClC,IAAIvO,EAAU,KAAK,QACjB80B,EAAc,KAAK,YACjBvmB,EAAU,KAAK,QAAQ,QACvBtC,EAAM6oB,EAAc,KAAK,eAAiB,KAAK,IAC/CC,EAAM/0B,EAAQ,KAAO,uBACrB4M,EAAQ,SAAS,cAAc,KAAK,EAQxC,GAPIkoB,IACFloB,EAAM,YAAckoB,GAEtBloB,EAAM,IAAMX,EACZW,EAAM,IAAMmoB,EACZ,KAAK,QAAQ,YAAYnoB,CAAK,EAC9B,KAAK,aAAeA,EAChB,EAAC2B,EAGL,KAAIymB,EAAWzmB,EACX,OAAOA,GAAY,SACrBymB,EAAWh1B,EAAQ,cAAc,iBAAiBuO,CAAO,EAChDA,EAAQ,gBACjBymB,EAAW,CAACzmB,CAAO,GAErB,KAAK,SAAWymB,EAChBrK,GAAQqK,EAAU,SAAUC,EAAI,CAC9B,IAAIhnB,EAAM,SAAS,cAAc,KAAK,EAGtC4d,GAAQoJ,EAAI3M,GAAc,CACxB,MAAO2M,EAAG,YACV,OAAQA,EAAG,aACX,KAAMA,EAAG,SACjB,CAAO,EACGH,IACF7mB,EAAI,YAAc6mB,GAEpB7mB,EAAI,IAAMhC,EACVgC,EAAI,IAAM8mB,EAQV9mB,EAAI,MAAM,QAAU,0KACpBgnB,EAAG,UAAY,GACfA,EAAG,YAAYhnB,CAAG,CACxB,CAAK,EACF,EACD,aAAc,UAAwB,CACpC0c,GAAQ,KAAK,SAAU,SAAU3qB,EAAS,CACxC,IAAI5G,EAAOwyB,GAAQ5rB,EAASsoB,EAAY,EACxC0C,GAAShrB,EAAS,CAChB,MAAO5G,EAAK,MACZ,OAAQA,EAAK,MACrB,CAAO,EACD4G,EAAQ,UAAY5G,EAAK,KACzB0yB,GAAW9rB,EAASsoB,EAAY,CACtC,CAAK,CACF,EACD,QAAS,UAAmB,CAC1B,IAAIgL,EAAY,KAAK,UACnBK,EAAa,KAAK,WAClBG,EAAc,KAAK,YACjBoB,EAAepB,EAAY,MAC7BqB,EAAgBrB,EAAY,OAC1B1tB,EAAQktB,EAAU,MACpBplB,EAASolB,EAAU,OACjB8B,EAAOtB,EAAY,KAAOH,EAAW,KAAOL,EAAU,KACtD+B,EAAMvB,EAAY,IAAMH,EAAW,IAAML,EAAU,IACnD,CAAC,KAAK,SAAW,KAAK,WAG1BtI,GAAS,KAAK,aAActiB,GAAO,CACjC,MAAOtC,EACP,OAAQ8H,CACd,EAAO8e,GAActkB,GAAO,CACtB,WAAY,CAAC0sB,EACb,WAAY,CAACC,CACnB,EAAO/B,CAAS,CAAC,CAAC,CAAC,EACf3I,GAAQ,KAAK,SAAU,SAAU3qB,EAAS,CACxC,IAAI5G,EAAOwyB,GAAQ5rB,EAASsoB,EAAY,EACpCgN,EAAgBl8B,EAAK,MACrBm8B,EAAiBn8B,EAAK,OACtBo2B,EAAW8F,EACX7F,EAAY8F,EACZxoB,EAAQ,EACRmoB,IACFnoB,EAAQuoB,EAAgBJ,EACxBzF,EAAY0F,EAAgBpoB,GAE1BooB,GAAiB1F,EAAY8F,IAC/BxoB,EAAQwoB,EAAiBJ,EACzB3F,EAAW0F,EAAenoB,EAC1B0iB,EAAY8F,GAEdvK,GAAShrB,EAAS,CAChB,MAAOwvB,EACP,OAAQC,CAChB,CAAO,EACDzE,GAAShrB,EAAQ,qBAAqB,KAAK,EAAE,CAAC,EAAG0I,GAAO,CACtD,MAAOtC,EAAQ2G,EACf,OAAQmB,EAASnB,CACzB,EAASigB,GAActkB,GAAO,CACtB,WAAY,CAAC0sB,EAAOroB,EACpB,WAAY,CAACsoB,EAAMtoB,CAC3B,EAASumB,CAAS,CAAC,CAAC,CAAC,CACrB,CAAK,EACL,CACA,EAEIkC,GAAS,CACX,KAAM,UAAgB,CACpB,IAAIx1B,EAAU,KAAK,QACjBjZ,EAAU,KAAK,QACfqsC,EAAU,KAAK,QACb3I,GAAW1jC,EAAQ,SAAS,GAC9BslC,GAAYrsB,EAAS6oB,GAAkB9hC,EAAQ,SAAS,EAEtD0jC,GAAW1jC,EAAQ,QAAQ,GAC7BslC,GAAYrsB,EAAS4oB,GAAiB7hC,EAAQ,QAAQ,EAEpD0jC,GAAW1jC,EAAQ,OAAO,GAC5BslC,GAAYrsB,EAAS2oB,GAAgB5hC,EAAQ,OAAO,EAElD0jC,GAAW1jC,EAAQ,IAAI,GACzBslC,GAAYrsB,EAAS0oB,GAAY3hC,EAAQ,IAAI,EAE3C0jC,GAAW1jC,EAAQ,IAAI,GACzBslC,GAAYrsB,EAASwpB,GAAYziC,EAAQ,IAAI,EAE/CslC,GAAY+G,EAASlK,GAAoB,KAAK,YAAc,KAAK,UAAU,KAAK,IAAI,CAAC,EACjFniC,EAAQ,UAAYA,EAAQ,aAC9BslC,GAAY+G,EAAS7J,GAAa,KAAK,QAAU,KAAK,MAAM,KAAK,IAAI,EAAG,CACtE,QAAS,GACT,QAAS,EACjB,CAAO,EAECxiC,EAAQ,0BACVslC,GAAY+G,EAAStK,GAAgB,KAAK,WAAa,KAAK,SAAS,KAAK,IAAI,CAAC,EAEjFuD,GAAYrsB,EAAQ,cAAempB,GAAoB,KAAK,WAAa,KAAK,SAAS,KAAK,IAAI,CAAC,EACjGkD,GAAYrsB,EAAQ,cAAeopB,GAAkB,KAAK,UAAY,KAAK,QAAQ,KAAK,IAAI,CAAC,EACzFriC,EAAQ,YACVslC,GAAY,OAAQ/C,GAAc,KAAK,SAAW,KAAK,OAAO,KAAK,IAAI,CAAC,CAE3E,EACD,OAAQ,UAAkB,CACxB,IAAItpB,EAAU,KAAK,QACjBjZ,EAAU,KAAK,QACfqsC,EAAU,KAAK,QACb3I,GAAW1jC,EAAQ,SAAS,GAC9BolC,GAAensB,EAAS6oB,GAAkB9hC,EAAQ,SAAS,EAEzD0jC,GAAW1jC,EAAQ,QAAQ,GAC7BolC,GAAensB,EAAS4oB,GAAiB7hC,EAAQ,QAAQ,EAEvD0jC,GAAW1jC,EAAQ,OAAO,GAC5BolC,GAAensB,EAAS2oB,GAAgB5hC,EAAQ,OAAO,EAErD0jC,GAAW1jC,EAAQ,IAAI,GACzBolC,GAAensB,EAAS0oB,GAAY3hC,EAAQ,IAAI,EAE9C0jC,GAAW1jC,EAAQ,IAAI,GACzBolC,GAAensB,EAASwpB,GAAYziC,EAAQ,IAAI,EAElDolC,GAAeiH,EAASlK,GAAoB,KAAK,WAAW,EACxDniC,EAAQ,UAAYA,EAAQ,aAC9BolC,GAAeiH,EAAS7J,GAAa,KAAK,QAAS,CACjD,QAAS,GACT,QAAS,EACjB,CAAO,EAECxiC,EAAQ,0BACVolC,GAAeiH,EAAStK,GAAgB,KAAK,UAAU,EAEzDqD,GAAensB,EAAQ,cAAempB,GAAoB,KAAK,UAAU,EACzEgD,GAAensB,EAAQ,cAAeopB,GAAkB,KAAK,SAAS,EAClEriC,EAAQ,YACVolC,GAAe,OAAQ7C,GAAc,KAAK,QAAQ,CAExD,CACA,EAEImM,GAAW,CACb,OAAQ,UAAkB,CACxB,GAAI,MAAK,SAGT,KAAI1uC,EAAU,KAAK,QACjBka,EAAY,KAAK,UACjBoyB,EAAgB,KAAK,cACnBqC,EAASz0B,EAAU,YAAcoyB,EAAc,MAC/CsC,EAAS10B,EAAU,aAAeoyB,EAAc,OAChDtmB,EAAQ,KAAK,IAAI2oB,EAAS,CAAC,EAAI,KAAK,IAAIC,EAAS,CAAC,EAAID,EAASC,EAGnE,GAAI5oB,IAAU,EAAG,CACf,IAAI4mB,EACAG,EACA/sC,EAAQ,UACV4sC,EAAa,KAAK,cAAe,EACjCG,EAAc,KAAK,eAAgB,GAErC,KAAK,OAAQ,EACT/sC,EAAQ,UACV,KAAK,cAAc4jC,GAAQgJ,EAAY,SAAU/hD,EAAGD,EAAG,CACrDgiD,EAAWhiD,CAAC,EAAIC,EAAIm7B,CAC9B,CAAS,CAAC,EACF,KAAK,eAAe4d,GAAQmJ,EAAa,SAAUliD,EAAGD,EAAG,CACvDmiD,EAAYniD,CAAC,EAAIC,EAAIm7B,CAC/B,CAAS,CAAC,EAEV,EACG,EACD,SAAU,UAAoB,CACxB,KAAK,UAAY,KAAK,QAAQ,WAAa0b,IAG/C,KAAK,YAAY2C,GAAS,KAAK,QAAStD,EAAU,EAAIU,GAAiBD,EAAc,CACtF,EACD,MAAO,SAAengC,EAAO,CAC3B,IAAIwtC,EAAQ,KACR7oB,EAAQ,OAAO,KAAK,QAAQ,cAAc,GAAK,GAC/C8oB,EAAQ,EACR,KAAK,WAGTztC,EAAM,eAAgB,EAGlB,MAAK,WAGT,KAAK,SAAW,GAChB,WAAW,UAAY,CACrBwtC,EAAM,SAAW,EAClB,EAAE,EAAE,EACDxtC,EAAM,OACRytC,EAAQztC,EAAM,OAAS,EAAI,EAAI,GACtBA,EAAM,WACfytC,EAAQ,CAACztC,EAAM,WAAa,IACnBA,EAAM,SACfytC,EAAQztC,EAAM,OAAS,EAAI,EAAI,IAEjC,KAAK,KAAK,CAACytC,EAAQ9oB,EAAO3kB,CAAK,GAChC,EACD,UAAW,SAAmBA,EAAO,CACnC,IAAI0tC,EAAU1tC,EAAM,QAClB2tC,EAAS3tC,EAAM,OACjB,GAAI,OAAK,WAGLA,EAAM,OAAS,aAAeA,EAAM,OAAS,eAAiBA,EAAM,cAAgB,WAExF+hC,EAAS2L,CAAO,GAAKA,IAAY,GAAK3L,EAAS4L,CAAM,GAAKA,IAAW,GAGlE3tC,EAAM,UAGT,KAAIrB,EAAU,KAAK,QACjBymC,EAAW,KAAK,SACdwI,EACA5tC,EAAM,eAERuiC,GAAQviC,EAAM,eAAgB,SAAU6tC,EAAO,CAC7CzI,EAASyI,EAAM,UAAU,EAAI7H,GAAW6H,CAAK,CACrD,CAAO,EAGDzI,EAASplC,EAAM,WAAa,CAAC,EAAIgmC,GAAWhmC,CAAK,EAE/C,OAAO,KAAKolC,CAAQ,EAAE,OAAS,GAAKzmC,EAAQ,UAAYA,EAAQ,YAClEivC,EAAS3O,GAET2O,EAASpK,GAAQxjC,EAAM,OAAQigC,EAAW,EAEvCqB,GAAe,KAAKsM,CAAM,GAG3BxJ,GAAc,KAAK,QAAS3D,GAAkB,CAChD,cAAezgC,EACf,OAAQ4tC,CACT,CAAA,IAAM,KAKP5tC,EAAM,eAAgB,EACtB,KAAK,OAAS4tC,EACd,KAAK,SAAW,GACZA,IAAW7O,KACb,KAAK,SAAW,GAChBkE,GAAS,KAAK,QAASlD,EAAW,IAErC,EACD,SAAU,SAAkB//B,EAAO,CACjC,IAAI4tC,EAAS,KAAK,OAClB,GAAI,OAAK,UAAY,CAACA,GAGtB,KAAIxI,EAAW,KAAK,SACpBplC,EAAM,eAAgB,EAClBokC,GAAc,KAAK,QAAS5D,GAAiB,CAC/C,cAAexgC,EACf,OAAQ4tC,CACT,CAAA,IAAM,KAGH5tC,EAAM,eACRuiC,GAAQviC,EAAM,eAAgB,SAAU6tC,EAAO,CAE7CvtB,GAAO8kB,EAASyI,EAAM,UAAU,GAAK,CAAA,EAAI7H,GAAW6H,EAAO,EAAI,CAAC,CACxE,CAAO,EAEDvtB,GAAO8kB,EAASplC,EAAM,WAAa,CAAC,GAAK,CAAA,EAAIgmC,GAAWhmC,EAAO,EAAI,CAAC,EAEtE,KAAK,OAAOA,CAAK,GAClB,EACD,QAAS,SAAiBA,EAAO,CAC/B,GAAI,MAAK,SAGT,KAAI4tC,EAAS,KAAK,OAChBxI,EAAW,KAAK,SACdplC,EAAM,eACRuiC,GAAQviC,EAAM,eAAgB,SAAU6tC,EAAO,CAC7C,OAAOzI,EAASyI,EAAM,UAAU,CACxC,CAAO,EAED,OAAOzI,EAASplC,EAAM,WAAa,CAAC,EAEjC4tC,IAGL5tC,EAAM,eAAgB,EACjB,OAAO,KAAKolC,CAAQ,EAAE,SACzB,KAAK,OAAS,IAEZ,KAAK,WACP,KAAK,SAAW,GAChBhC,GAAY,KAAK,QAASrD,GAAa,KAAK,SAAW,KAAK,QAAQ,KAAK,GAE3EqE,GAAc,KAAK,QAAS7D,GAAgB,CAC1C,cAAevgC,EACf,OAAQ4tC,CACd,CAAK,GACL,CACA,EAEIE,GAAS,CACX,OAAQ,SAAgB9tC,EAAO,CAC7B,IAAIrB,EAAU,KAAK,QACjB4sC,EAAa,KAAK,WAClBN,EAAgB,KAAK,cACrBS,EAAc,KAAK,YACnBtG,EAAW,KAAK,SACdwI,EAAS,KAAK,OACdlH,EAAc/nC,EAAQ,YACtBquC,EAAOtB,EAAY,KACrBuB,EAAMvB,EAAY,IAClB1tB,EAAQ0tB,EAAY,MACpB5lB,EAAS4lB,EAAY,OACnBqC,EAAQf,EAAOhvB,EACfgwB,EAASf,EAAMnnB,EACfmoB,EAAU,EACVC,EAAS,EACTzF,EAAWwC,EAAc,MACzBtC,EAAYsC,EAAc,OAC1BkD,EAAa,GACbzlB,EAGA,CAACge,GAAe1mC,EAAM,WACxB0mC,EAAc1oB,GAAS8H,EAAS9H,EAAQ8H,EAAS,GAE/C,KAAK,UACPmoB,EAAUvC,EAAY,QACtBwC,EAASxC,EAAY,OACrBjD,EAAWwF,EAAU,KAAK,IAAIhD,EAAc,MAAOM,EAAW,MAAOA,EAAW,KAAOA,EAAW,KAAK,EACvG5C,EAAYuF,EAAS,KAAK,IAAIjD,EAAc,OAAQM,EAAW,OAAQA,EAAW,IAAMA,EAAW,MAAM,GAE3G,IAAIhG,EAAUH,EAAS,OAAO,KAAKA,CAAQ,EAAE,CAAC,CAAC,EAC3CgJ,EAAQ,CACV,EAAG7I,EAAQ,KAAOA,EAAQ,OAC1B,EAAGA,EAAQ,KAAOA,EAAQ,MAC3B,EACG8I,EAAQ,SAAeC,EAAM,CAC/B,OAAQA,EAAI,CACV,KAAKpP,GACC6O,EAAQK,EAAM,EAAI3F,IACpB2F,EAAM,EAAI3F,EAAWsF,GAEvB,MACF,KAAK5O,GACC6N,EAAOoB,EAAM,EAAIH,IACnBG,EAAM,EAAIH,EAAUjB,GAEtB,MACF,KAAK3N,GACC4N,EAAMmB,EAAM,EAAIF,IAClBE,EAAM,EAAIF,EAASjB,GAErB,MACF,KAAK7N,GACC4O,EAASI,EAAM,EAAIzF,IACrByF,EAAM,EAAIzF,EAAYqF,GAExB,KACV,CACK,EACD,OAAQJ,EAAM,CAEZ,KAAK9O,GACHkO,GAAQoB,EAAM,EACdnB,GAAOmB,EAAM,EACb,MAGF,KAAKlP,GACH,GAAIkP,EAAM,GAAK,IAAML,GAAStF,GAAY/B,IAAgBuG,GAAOiB,GAAUF,GAAUrF,IAAa,CAChGwF,EAAa,GACb,KACV,CACQE,EAAMnP,EAAW,EACjBlhB,GAASowB,EAAM,EACXpwB,EAAQ,IACV4vB,EAASzO,GACTnhB,EAAQ,CAACA,EACTgvB,GAAQhvB,GAEN0oB,IACF5gB,EAAS9H,EAAQ0oB,EACjBuG,IAAQvB,EAAY,OAAS5lB,GAAU,GAEzC,MACF,KAAKuZ,GACH,GAAI+O,EAAM,GAAK,IAAMnB,GAAOiB,GAAUxH,IAAgBsG,GAAQiB,GAAWF,GAAStF,IAAY,CAC5F0F,EAAa,GACb,KACV,CACQE,EAAMhP,EAAY,EAClBvZ,GAAUsoB,EAAM,EAChBnB,GAAOmB,EAAM,EACTtoB,EAAS,IACX8nB,EAASxO,GACTtZ,EAAS,CAACA,EACVmnB,GAAOnnB,GAEL4gB,IACF1oB,EAAQ8H,EAAS4gB,EACjBsG,IAAStB,EAAY,MAAQ1tB,GAAS,GAExC,MACF,KAAKmhB,GACH,GAAIiP,EAAM,GAAK,IAAMpB,GAAQiB,GAAWvH,IAAgBuG,GAAOiB,GAAUF,GAAUrF,IAAa,CAC9FwF,EAAa,GACb,KACV,CACQE,EAAMlP,EAAW,EACjBnhB,GAASowB,EAAM,EACfpB,GAAQoB,EAAM,EACVpwB,EAAQ,IACV4vB,EAAS1O,GACTlhB,EAAQ,CAACA,EACTgvB,GAAQhvB,GAEN0oB,IACF5gB,EAAS9H,EAAQ0oB,EACjBuG,IAAQvB,EAAY,OAAS5lB,GAAU,GAEzC,MACF,KAAKsZ,GACH,GAAIgP,EAAM,GAAK,IAAMJ,GAAUrF,GAAajC,IAAgBsG,GAAQiB,GAAWF,GAAStF,IAAY,CAClG0F,EAAa,GACb,KACV,CACQE,EAAMjP,EAAY,EAClBtZ,GAAUsoB,EAAM,EACZtoB,EAAS,IACX8nB,EAASvO,GACTvZ,EAAS,CAACA,EACVmnB,GAAOnnB,GAEL4gB,IACF1oB,EAAQ8H,EAAS4gB,EACjBsG,IAAStB,EAAY,MAAQ1tB,GAAS,GAExC,MACF,KAAKshB,GACH,GAAIoH,EAAa,CACf,GAAI0H,EAAM,GAAK,IAAMnB,GAAOiB,GAAUH,GAAStF,GAAW,CACxD0F,EAAa,GACb,KACZ,CACUE,EAAMhP,EAAY,EAClBvZ,GAAUsoB,EAAM,EAChBnB,GAAOmB,EAAM,EACbpwB,EAAQ8H,EAAS4gB,CAC3B,MACU2H,EAAMhP,EAAY,EAClBgP,EAAMnP,EAAW,EACbkP,EAAM,GAAK,EACTL,EAAQtF,EACVzqB,GAASowB,EAAM,EACNA,EAAM,GAAK,GAAKnB,GAAOiB,IAChCC,EAAa,IAGfnwB,GAASowB,EAAM,EAEbA,EAAM,GAAK,EACTnB,EAAMiB,IACRpoB,GAAUsoB,EAAM,EAChBnB,GAAOmB,EAAM,IAGftoB,GAAUsoB,EAAM,EAChBnB,GAAOmB,EAAM,GAGbpwB,EAAQ,GAAK8H,EAAS,GACxB8nB,EAASnO,GACT3Z,EAAS,CAACA,EACV9H,EAAQ,CAACA,EACTivB,GAAOnnB,EACPknB,GAAQhvB,GACCA,EAAQ,GACjB4vB,EAASrO,GACTvhB,EAAQ,CAACA,EACTgvB,GAAQhvB,GACC8H,EAAS,IAClB8nB,EAASpO,GACT1Z,EAAS,CAACA,EACVmnB,GAAOnnB,GAET,MACF,KAAKyZ,GACH,GAAImH,EAAa,CACf,GAAI0H,EAAM,GAAK,IAAMnB,GAAOiB,GAAUlB,GAAQiB,GAAU,CACtDE,EAAa,GACb,KACZ,CACUE,EAAMhP,EAAY,EAClBvZ,GAAUsoB,EAAM,EAChBnB,GAAOmB,EAAM,EACbpwB,EAAQ8H,EAAS4gB,EACjBsG,GAAQtB,EAAY,MAAQ1tB,CACtC,MACUqwB,EAAMhP,EAAY,EAClBgP,EAAMlP,EAAW,EACbiP,EAAM,GAAK,EACTpB,EAAOiB,GACTjwB,GAASowB,EAAM,EACfpB,GAAQoB,EAAM,GACLA,EAAM,GAAK,GAAKnB,GAAOiB,IAChCC,EAAa,KAGfnwB,GAASowB,EAAM,EACfpB,GAAQoB,EAAM,GAEZA,EAAM,GAAK,EACTnB,EAAMiB,IACRpoB,GAAUsoB,EAAM,EAChBnB,GAAOmB,EAAM,IAGftoB,GAAUsoB,EAAM,EAChBnB,GAAOmB,EAAM,GAGbpwB,EAAQ,GAAK8H,EAAS,GACxB8nB,EAASpO,GACT1Z,EAAS,CAACA,EACV9H,EAAQ,CAACA,EACTivB,GAAOnnB,EACPknB,GAAQhvB,GACCA,EAAQ,GACjB4vB,EAAStO,GACTthB,EAAQ,CAACA,EACTgvB,GAAQhvB,GACC8H,EAAS,IAClB8nB,EAASnO,GACT3Z,EAAS,CAACA,EACVmnB,GAAOnnB,GAET,MACF,KAAK2Z,GACH,GAAIiH,EAAa,CACf,GAAI0H,EAAM,GAAK,IAAMpB,GAAQiB,GAAWD,GAAUrF,GAAY,CAC5DwF,EAAa,GACb,KACZ,CACUE,EAAMlP,EAAW,EACjBnhB,GAASowB,EAAM,EACfpB,GAAQoB,EAAM,EACdtoB,EAAS9H,EAAQ0oB,CAC3B,MACU2H,EAAMjP,EAAY,EAClBiP,EAAMlP,EAAW,EACbiP,EAAM,GAAK,EACTpB,EAAOiB,GACTjwB,GAASowB,EAAM,EACfpB,GAAQoB,EAAM,GACLA,EAAM,GAAK,GAAKJ,GAAUrF,IACnCwF,EAAa,KAGfnwB,GAASowB,EAAM,EACfpB,GAAQoB,EAAM,GAEZA,EAAM,GAAK,EACTJ,EAASrF,IACX7iB,GAAUsoB,EAAM,GAGlBtoB,GAAUsoB,EAAM,EAGhBpwB,EAAQ,GAAK8H,EAAS,GACxB8nB,EAAStO,GACTxZ,EAAS,CAACA,EACV9H,EAAQ,CAACA,EACTivB,GAAOnnB,EACPknB,GAAQhvB,GACCA,EAAQ,GACjB4vB,EAASpO,GACTxhB,EAAQ,CAACA,EACTgvB,GAAQhvB,GACC8H,EAAS,IAClB8nB,EAASrO,GACTzZ,EAAS,CAACA,EACVmnB,GAAOnnB,GAET,MACF,KAAK0Z,GACH,GAAIkH,EAAa,CACf,GAAI0H,EAAM,GAAK,IAAML,GAAStF,GAAYuF,GAAUrF,GAAY,CAC9DwF,EAAa,GACb,KACZ,CACUE,EAAMnP,EAAW,EACjBlhB,GAASowB,EAAM,EACftoB,EAAS9H,EAAQ0oB,CAC3B,MACU2H,EAAMjP,EAAY,EAClBiP,EAAMnP,EAAW,EACbkP,EAAM,GAAK,EACTL,EAAQtF,EACVzqB,GAASowB,EAAM,EACNA,EAAM,GAAK,GAAKJ,GAAUrF,IACnCwF,EAAa,IAGfnwB,GAASowB,EAAM,EAEbA,EAAM,GAAK,EACTJ,EAASrF,IACX7iB,GAAUsoB,EAAM,GAGlBtoB,GAAUsoB,EAAM,EAGhBpwB,EAAQ,GAAK8H,EAAS,GACxB8nB,EAASrO,GACTzZ,EAAS,CAACA,EACV9H,EAAQ,CAACA,EACTivB,GAAOnnB,EACPknB,GAAQhvB,GACCA,EAAQ,GACjB4vB,EAASnO,GACTzhB,EAAQ,CAACA,EACTgvB,GAAQhvB,GACC8H,EAAS,IAClB8nB,EAAStO,GACTxZ,EAAS,CAACA,EACVmnB,GAAOnnB,GAET,MAGF,KAAKkZ,GACH,KAAK,KAAKoP,EAAM,EAAGA,EAAM,CAAC,EAC1BD,EAAa,GACb,MAGF,KAAKlP,GACH,KAAK,KAAKkG,GAAgBC,CAAQ,EAAGplC,CAAK,EAC1CmuC,EAAa,GACb,MAGF,KAAKpP,GACH,GAAI,CAACqP,EAAM,GAAK,CAACA,EAAM,EAAG,CACxBD,EAAa,GACb,KACV,CACQzlB,EAAS2b,GAAU,KAAK,OAAO,EAC/B2I,EAAOzH,EAAQ,OAAS7c,EAAO,KAC/BukB,EAAM1H,EAAQ,OAAS7c,EAAO,IAC9B1K,EAAQ0tB,EAAY,SACpB5lB,EAAS4lB,EAAY,UACjB0C,EAAM,EAAI,EACZR,EAASQ,EAAM,EAAI,EAAI5O,GAAoBF,GAClC8O,EAAM,EAAI,IACnBpB,GAAQhvB,EACR4vB,EAASQ,EAAM,EAAI,EAAI3O,GAAoBF,IAEzC6O,EAAM,EAAI,IACZnB,GAAOnnB,GAIJ,KAAK,UACRqd,GAAY,KAAK,QAASvD,EAAY,EACtC,KAAK,QAAU,GACX,KAAK,SACP,KAAK,aAAa,GAAM,EAAI,GAGhC,KACR,CACQuO,IACFzC,EAAY,MAAQ1tB,EACpB0tB,EAAY,OAAS5lB,EACrB4lB,EAAY,KAAOsB,EACnBtB,EAAY,IAAMuB,EAClB,KAAK,OAASW,EACd,KAAK,cAAe,GAItBrL,GAAQ6C,EAAU,SAAUh7C,EAAG,CAC7BA,EAAE,OAASA,EAAE,KACbA,EAAE,OAASA,EAAE,IACnB,CAAK,CACL,CACA,EAEImkD,GAAU,CAEZ,KAAM,UAAgB,CACpB,OAAI,KAAK,OAAS,CAAC,KAAK,SAAW,CAAC,KAAK,WACvC,KAAK,QAAU,GACf,KAAK,aAAa,GAAM,EAAI,EACxB,KAAK,QAAQ,OACftL,GAAS,KAAK,QAASlD,EAAW,EAEpCoD,GAAY,KAAK,QAASvD,EAAY,EACtC,KAAK,eAAe,KAAK,kBAAkB,GAEtC,IACR,EAED,MAAO,UAAiB,CACtB,OAAI,KAAK,OAAS,CAAC,KAAK,WACtB,KAAK,UAAYtf,GAAO,CAAA,EAAI,KAAK,gBAAgB,EACjD,KAAK,WAAaA,GAAO,CAAA,EAAI,KAAK,iBAAiB,EACnD,KAAK,YAAcA,GAAO,CAAA,EAAI,KAAK,kBAAkB,EACrD,KAAK,aAAc,EACf,KAAK,SACP,KAAK,cAAe,GAGjB,IACR,EAED,MAAO,UAAiB,CACtB,OAAI,KAAK,SAAW,CAAC,KAAK,WACxBA,GAAO,KAAK,YAAa,CACvB,KAAM,EACN,IAAK,EACL,MAAO,EACP,OAAQ,CAChB,CAAO,EACD,KAAK,QAAU,GACf,KAAK,cAAe,EACpB,KAAK,YAAY,GAAM,EAAI,EAG3B,KAAK,aAAc,EACnB6iB,GAAY,KAAK,QAASpD,EAAW,EACrCkD,GAAS,KAAK,QAASrD,EAAY,GAE9B,IACR,EAOD,QAAS,SAAiB/b,EAAK,CAC7B,IAAI2qB,EAAc,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GACtF,MAAI,CAAC,KAAK,UAAY3qB,IAChB,KAAK,QACP,KAAK,QAAQ,IAAMA,GAEjB2qB,GACF,KAAK,IAAM3qB,EACX,KAAK,MAAM,IAAMA,EACb,KAAK,QACP,KAAK,aAAa,IAAMA,EACxB0e,GAAQ,KAAK,SAAU,SAAU3qB,EAAS,CACxCA,EAAQ,qBAAqB,KAAK,EAAE,CAAC,EAAE,IAAMiM,CACzD,CAAW,KAGC,KAAK,QACP,KAAK,SAAW,IAElB,KAAK,QAAQ,KAAO,KACpB,KAAK,SAAU,EACf,KAAK,KAAKA,CAAG,IAGV,IACR,EAED,OAAQ,UAAkB,CACxB,OAAI,KAAK,OAAS,KAAK,WACrB,KAAK,SAAW,GAChBsf,GAAY,KAAK,QAASxD,EAAc,GAEnC,IACR,EAED,QAAS,UAAmB,CAC1B,OAAI,KAAK,OAAS,CAAC,KAAK,WACtB,KAAK,SAAW,GAChBsD,GAAS,KAAK,QAAStD,EAAc,GAEhC,IACR,EAKD,QAAS,UAAmB,CAC1B,IAAI/nB,EAAU,KAAK,QACnB,OAAKA,EAAQinB,EAAS,GAGtBjnB,EAAQinB,EAAS,EAAI,OACjB,KAAK,OAAS,KAAK,WACrBjnB,EAAQ,IAAM,KAAK,aAErB,KAAK,SAAU,EACR,MAPE,IAQV,EAOD,KAAM,SAAc62B,EAAS,CAC3B,IAAIC,EAAU,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAID,EAC9EE,EAAmB,KAAK,WAC1B3B,EAAO2B,EAAiB,KACxB1B,EAAM0B,EAAiB,IACzB,OAAO,KAAK,OAAO1M,GAAYwM,CAAO,EAAIA,EAAUzB,EAAO,OAAOyB,CAAO,EAAGxM,GAAYyM,CAAO,EAAIA,EAAUzB,EAAM,OAAOyB,CAAO,CAAC,CACnI,EAOD,OAAQ,SAAgBhkD,EAAG,CACzB,IAAIH,EAAI,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAIG,EACxE6gD,EAAa,KAAK,WAClBU,EAAU,GACd,OAAAvhD,EAAI,OAAOA,CAAC,EACZH,EAAI,OAAOA,CAAC,EACR,KAAK,OAAS,CAAC,KAAK,UAAY,KAAK,QAAQ,UAC3Cw3C,EAASr3C,CAAC,IACZ6gD,EAAW,KAAO7gD,EAClBuhD,EAAU,IAERlK,EAASx3C,CAAC,IACZghD,EAAW,IAAMhhD,EACjB0hD,EAAU,IAERA,GACF,KAAK,aAAa,EAAI,GAGnB,IACR,EAOD,KAAM,SAActnB,EAAOiqB,EAAgB,CACzC,IAAIrD,EAAa,KAAK,WACtB,OAAA5mB,EAAQ,OAAOA,CAAK,EAChBA,EAAQ,EACVA,EAAQ,GAAK,EAAIA,GAEjBA,EAAQ,EAAIA,EAEP,KAAK,OAAO4mB,EAAW,MAAQ5mB,EAAQ4mB,EAAW,aAAc,KAAMqD,CAAc,CAC5F,EAQD,OAAQ,SAAgBjqB,EAAOkqB,EAAOD,EAAgB,CACpD,IAAIjwC,EAAU,KAAK,QACjB4sC,EAAa,KAAK,WAChBvtB,EAAQutB,EAAW,MACrBzlB,EAASylB,EAAW,OACpBvD,EAAeuD,EAAW,aAC1BtD,EAAgBsD,EAAW,cAE7B,GADA5mB,EAAQ,OAAOA,CAAK,EAChBA,GAAS,GAAK,KAAK,OAAS,CAAC,KAAK,UAAYhmB,EAAQ,SAAU,CAClE,IAAIyoC,EAAWY,EAAerjB,EAC1B0iB,EAAYY,EAAgBtjB,EAChC,GAAIyf,GAAc,KAAK,QAAShD,GAAY,CAC1C,MAAOzc,EACP,SAAU3G,EAAQgqB,EAClB,cAAe4G,CAChB,CAAA,IAAM,GACL,OAAO,KAET,GAAIA,EAAgB,CAClB,IAAIxJ,EAAW,KAAK,SAChB1c,EAAS2b,GAAU,KAAK,OAAO,EAC/ByK,EAAS1J,GAAY,OAAO,KAAKA,CAAQ,EAAE,OAASgB,GAAkBhB,CAAQ,EAAI,CACpF,MAAOwJ,EAAe,MACtB,MAAOA,EAAe,KACvB,EAGDrD,EAAW,OAASnE,EAAWppB,KAAW8wB,EAAO,MAAQpmB,EAAO,KAAO6iB,EAAW,MAAQvtB,GAC1FutB,EAAW,MAAQlE,EAAYvhB,KAAYgpB,EAAO,MAAQpmB,EAAO,IAAM6iB,EAAW,KAAOzlB,EAC1F,MAAUoc,GAAc2M,CAAK,GAAK9M,EAAS8M,EAAM,CAAC,GAAK9M,EAAS8M,EAAM,CAAC,GACtEtD,EAAW,OAASnE,EAAWppB,KAAW6wB,EAAM,EAAItD,EAAW,MAAQvtB,GACvEutB,EAAW,MAAQlE,EAAYvhB,KAAY+oB,EAAM,EAAItD,EAAW,KAAOzlB,KAGvEylB,EAAW,OAASnE,EAAWppB,GAAS,EACxCutB,EAAW,MAAQlE,EAAYvhB,GAAU,GAE3CylB,EAAW,MAAQnE,EACnBmE,EAAW,OAASlE,EACpB,KAAK,aAAa,EAAI,CAC5B,CACI,OAAO,IACR,EAMD,OAAQ,SAAgBL,EAAQ,CAC9B,OAAO,KAAK,UAAU,KAAK,UAAU,QAAU,GAAK,OAAOA,CAAM,CAAC,CACnE,EAMD,SAAU,SAAkBA,EAAQ,CAClC,OAAAA,EAAS,OAAOA,CAAM,EAClBjF,EAASiF,CAAM,GAAK,KAAK,OAAS,CAAC,KAAK,UAAY,KAAK,QAAQ,YACnE,KAAK,UAAU,OAASA,EAAS,IACjC,KAAK,aAAa,GAAM,EAAI,GAEvB,IACR,EAMD,OAAQ,SAAgB+H,EAAS,CAC/B,IAAIhK,EAAS,KAAK,UAAU,OAC5B,OAAO,KAAK,MAAMgK,EAAShN,EAASgD,CAAM,EAAIA,EAAS,CAAC,CACzD,EAMD,OAAQ,SAAgBiK,EAAS,CAC/B,IAAIlK,EAAS,KAAK,UAAU,OAC5B,OAAO,KAAK,MAAM/C,EAAS+C,CAAM,EAAIA,EAAS,EAAGkK,CAAO,CACzD,EAOD,MAAO,SAAelK,EAAQ,CAC5B,IAAIC,EAAS,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAID,EAC7EoG,EAAY,KAAK,UACjBgB,EAAc,GAClB,OAAApH,EAAS,OAAOA,CAAM,EACtBC,EAAS,OAAOA,CAAM,EAClB,KAAK,OAAS,CAAC,KAAK,UAAY,KAAK,QAAQ,WAC3ChD,EAAS+C,CAAM,IACjBoG,EAAU,OAASpG,EACnBoH,EAAc,IAEZnK,EAASgD,CAAM,IACjBmG,EAAU,OAASnG,EACnBmH,EAAc,IAEZA,GACF,KAAK,aAAa,GAAM,EAAI,GAGzB,IACR,EAMD,QAAS,UAAmB,CAC1B,IAAI+C,EAAU,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GAC9EtwC,EAAU,KAAK,QACjBusC,EAAY,KAAK,UACjBK,EAAa,KAAK,WAClBG,EAAc,KAAK,YACjB16B,EACJ,GAAI,KAAK,OAAS,KAAK,QAAS,CAC9BA,EAAO,CACL,EAAG06B,EAAY,KAAOH,EAAW,KACjC,EAAGG,EAAY,IAAMH,EAAW,IAChC,MAAOG,EAAY,MACnB,OAAQA,EAAY,MACrB,EACD,IAAI/mB,EAAQumB,EAAU,MAAQA,EAAU,aAIxC,GAHA3I,GAAQvxB,EAAM,SAAUxnB,EAAGD,EAAG,CAC5BynB,EAAKznB,CAAC,EAAIC,EAAIm7B,CACtB,CAAO,EACGsqB,EAAS,CAGX,IAAIjB,EAAS,KAAK,MAAMh9B,EAAK,EAAIA,EAAK,MAAM,EACxC+8B,EAAQ,KAAK,MAAM/8B,EAAK,EAAIA,EAAK,KAAK,EAC1CA,EAAK,EAAI,KAAK,MAAMA,EAAK,CAAC,EAC1BA,EAAK,EAAI,KAAK,MAAMA,EAAK,CAAC,EAC1BA,EAAK,MAAQ+8B,EAAQ/8B,EAAK,EAC1BA,EAAK,OAASg9B,EAASh9B,EAAK,CACpC,CACA,MACMA,EAAO,CACL,EAAG,EACH,EAAG,EACH,MAAO,EACP,OAAQ,CACT,EAEH,OAAIrS,EAAQ,YACVqS,EAAK,OAASk6B,EAAU,QAAU,GAEhCvsC,EAAQ,WACVqS,EAAK,OAASk6B,EAAU,QAAU,EAClCl6B,EAAK,OAASk6B,EAAU,QAAU,GAE7Bl6B,CACR,EAMD,QAAS,SAAiBA,EAAM,CAC9B,IAAIrS,EAAU,KAAK,QACjBusC,EAAY,KAAK,UACjBK,EAAa,KAAK,WAChBG,EAAc,CAAE,EACpB,GAAI,KAAK,OAAS,CAAC,KAAK,UAAYxJ,GAAclxB,CAAI,EAAG,CACvD,IAAIk7B,EAAc,GACdvtC,EAAQ,WACNojC,EAAS/wB,EAAK,MAAM,GAAKA,EAAK,SAAWk6B,EAAU,SACrDA,EAAU,OAASl6B,EAAK,OACxBk7B,EAAc,IAGdvtC,EAAQ,WACNojC,EAAS/wB,EAAK,MAAM,GAAKA,EAAK,SAAWk6B,EAAU,SACrDA,EAAU,OAASl6B,EAAK,OACxBk7B,EAAc,IAEZnK,EAAS/wB,EAAK,MAAM,GAAKA,EAAK,SAAWk6B,EAAU,SACrDA,EAAU,OAASl6B,EAAK,OACxBk7B,EAAc,KAGdA,GACF,KAAK,aAAa,GAAM,EAAI,EAE9B,IAAIvnB,EAAQumB,EAAU,MAAQA,EAAU,aACpCnJ,EAAS/wB,EAAK,CAAC,IACjB06B,EAAY,KAAO16B,EAAK,EAAI2T,EAAQ4mB,EAAW,MAE7CxJ,EAAS/wB,EAAK,CAAC,IACjB06B,EAAY,IAAM16B,EAAK,EAAI2T,EAAQ4mB,EAAW,KAE5CxJ,EAAS/wB,EAAK,KAAK,IACrB06B,EAAY,MAAQ16B,EAAK,MAAQ2T,GAE/Bod,EAAS/wB,EAAK,MAAM,IACtB06B,EAAY,OAAS16B,EAAK,OAAS2T,GAErC,KAAK,eAAe+mB,CAAW,CACrC,CACI,OAAO,IACR,EAKD,iBAAkB,UAA4B,CAC5C,OAAO,KAAK,MAAQprB,GAAO,CAAE,EAAE,KAAK,aAAa,EAAI,CAAE,CACxD,EAKD,aAAc,UAAwB,CACpC,OAAO,KAAK,MAAQA,GAAO,CAAE,EAAE,KAAK,SAAS,EAAI,CAAE,CACpD,EAKD,cAAe,UAAyB,CACtC,IAAIirB,EAAa,KAAK,WAClBv6B,EAAO,CAAE,EACb,OAAI,KAAK,OACPuxB,GAAQ,CAAC,OAAQ,MAAO,QAAS,SAAU,eAAgB,eAAe,EAAG,SAAU/4C,EAAG,CACxFwnB,EAAKxnB,CAAC,EAAI+hD,EAAW/hD,CAAC,CAC9B,CAAO,EAEIwnB,CACR,EAMD,cAAe,SAAuBA,EAAM,CAC1C,IAAIu6B,EAAa,KAAK,WAClB7E,EAAc6E,EAAW,YAC7B,OAAI,KAAK,OAAS,CAAC,KAAK,UAAYrJ,GAAclxB,CAAI,IAChD+wB,EAAS/wB,EAAK,IAAI,IACpBu6B,EAAW,KAAOv6B,EAAK,MAErB+wB,EAAS/wB,EAAK,GAAG,IACnBu6B,EAAW,IAAMv6B,EAAK,KAEpB+wB,EAAS/wB,EAAK,KAAK,GACrBu6B,EAAW,MAAQv6B,EAAK,MACxBu6B,EAAW,OAASv6B,EAAK,MAAQ01B,GACxB3E,EAAS/wB,EAAK,MAAM,IAC7Bu6B,EAAW,OAASv6B,EAAK,OACzBu6B,EAAW,MAAQv6B,EAAK,OAAS01B,GAEnC,KAAK,aAAa,EAAI,GAEjB,IACR,EAKD,eAAgB,UAA0B,CACxC,IAAIgF,EAAc,KAAK,YACnB16B,EACJ,OAAI,KAAK,OAAS,KAAK,UACrBA,EAAO,CACL,KAAM06B,EAAY,KAClB,IAAKA,EAAY,IACjB,MAAOA,EAAY,MACnB,OAAQA,EAAY,MACrB,GAEI16B,GAAQ,CAAE,CAClB,EAMD,eAAgB,SAAwBA,EAAM,CAC5C,IAAI06B,EAAc,KAAK,YACnBhF,EAAc,KAAK,QAAQ,YAC3BwI,EACAC,EACJ,OAAI,KAAK,OAAS,KAAK,SAAW,CAAC,KAAK,UAAYjN,GAAclxB,CAAI,IAChE+wB,EAAS/wB,EAAK,IAAI,IACpB06B,EAAY,KAAO16B,EAAK,MAEtB+wB,EAAS/wB,EAAK,GAAG,IACnB06B,EAAY,IAAM16B,EAAK,KAErB+wB,EAAS/wB,EAAK,KAAK,GAAKA,EAAK,QAAU06B,EAAY,QACrDwD,EAAe,GACfxD,EAAY,MAAQ16B,EAAK,OAEvB+wB,EAAS/wB,EAAK,MAAM,GAAKA,EAAK,SAAW06B,EAAY,SACvDyD,EAAgB,GAChBzD,EAAY,OAAS16B,EAAK,QAExB01B,IACEwI,EACFxD,EAAY,OAASA,EAAY,MAAQhF,EAChCyI,IACTzD,EAAY,MAAQA,EAAY,OAAShF,IAG7C,KAAK,cAAe,GAEf,IACR,EAMD,iBAAkB,UAA4B,CAC5C,IAAI/nC,EAAU,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,CAAE,EACpF,GAAI,CAAC,KAAK,OAAS,CAAC,OAAO,kBACzB,OAAO,KAET,IAAI4sC,EAAa,KAAK,WAClBrtC,EAASopC,GAAgB,KAAK,MAAO,KAAK,UAAWiE,EAAY5sC,CAAO,EAG5E,GAAI,CAAC,KAAK,QACR,OAAOT,EAET,IAAIkxC,EAAgB,KAAK,QAAQzwC,EAAQ,OAAO,EAC9C0wC,EAAWD,EAAc,EACzBE,EAAWF,EAAc,EACzBG,EAAeH,EAAc,MAC7BI,EAAgBJ,EAAc,OAC5BzqB,EAAQzmB,EAAO,MAAQ,KAAK,MAAMqtC,EAAW,YAAY,EACzD5mB,IAAU,IACZ0qB,GAAY1qB,EACZ2qB,GAAY3qB,EACZ4qB,GAAgB5qB,EAChB6qB,GAAiB7qB,GAEnB,IAAI+hB,EAAc6I,EAAeC,EAC7BxG,EAAWxC,GAAiB,CAC9B,YAAaE,EACb,MAAO/nC,EAAQ,UAAY,IAC3B,OAAQA,EAAQ,WAAa,GACnC,CAAK,EACGsqC,EAAWzC,GAAiB,CAC9B,YAAaE,EACb,MAAO/nC,EAAQ,UAAY,EAC3B,OAAQA,EAAQ,WAAa,CAC9B,EAAE,OAAO,EACNmtC,EAAoBtF,GAAiB,CACrC,YAAaE,EACb,MAAO/nC,EAAQ,QAAUgmB,IAAU,EAAIzmB,EAAO,MAAQqxC,GACtD,OAAQ5wC,EAAQ,SAAWgmB,IAAU,EAAIzmB,EAAO,OAASsxC,EACjE,CAAO,EACDxxB,EAAQ8tB,EAAkB,MAC1BhmB,EAASgmB,EAAkB,OAC7B9tB,EAAQ,KAAK,IAAIgrB,EAAS,MAAO,KAAK,IAAIC,EAAS,MAAOjrB,CAAK,CAAC,EAChE8H,EAAS,KAAK,IAAIkjB,EAAS,OAAQ,KAAK,IAAIC,EAAS,OAAQnjB,CAAM,CAAC,EACpE,IAAI3B,EAAS,SAAS,cAAc,QAAQ,EACxCtM,EAAUsM,EAAO,WAAW,IAAI,EACpCA,EAAO,MAAQse,GAAuBzkB,CAAK,EAC3CmG,EAAO,OAASse,GAAuB3c,CAAM,EAC7CjO,EAAQ,UAAYlZ,EAAQ,WAAa,cACzCkZ,EAAQ,SAAS,EAAG,EAAGmG,EAAO8H,CAAM,EACpC,IAAI2pB,EAAwB9wC,EAAQ,sBAClC0pC,EAAwBoH,IAA0B,OAAS,GAAOA,EAClElH,EAAwB5pC,EAAQ,sBAClCkZ,EAAQ,sBAAwBwwB,EAC5BE,IACF1wB,EAAQ,sBAAwB0wB,GAIlC,IAAImH,EAAcxxC,EAAO,MACrByxC,EAAezxC,EAAO,OAGtB0xC,EAAOP,EACPQ,EAAOP,EACPQ,EACAC,EAGAC,EACAC,EACAC,EACAC,EACAP,GAAQ,CAACL,GAAgBK,EAAOF,GAClCE,EAAO,EACPE,EAAW,EACXE,EAAO,EACPE,EAAW,GACFN,GAAQ,GACjBI,EAAO,CAACJ,EACRA,EAAO,EACPE,EAAW,KAAK,IAAIJ,EAAaH,EAAeK,CAAI,EACpDM,EAAWJ,GACFF,GAAQF,IACjBM,EAAO,EACPF,EAAW,KAAK,IAAIP,EAAcG,EAAcE,CAAI,EACpDM,EAAWJ,GAETA,GAAY,GAAKD,GAAQ,CAACL,GAAiBK,EAAOF,GACpDE,EAAO,EACPE,EAAY,EACZE,EAAO,EACPE,EAAY,GACHN,GAAQ,GACjBI,EAAO,CAACJ,EACRA,EAAO,EACPE,EAAY,KAAK,IAAIJ,EAAcH,EAAgBK,CAAI,EACvDM,EAAYJ,GACHF,GAAQF,IACjBM,EAAO,EACPF,EAAY,KAAK,IAAIP,EAAeG,EAAeE,CAAI,EACvDM,EAAYJ,GAEd,IAAIzG,EAAS,CAACsG,EAAMC,EAAMC,EAAUC,CAAS,EAG7C,GAAIG,EAAW,GAAKC,EAAY,EAAG,CACjC,IAAIC,EAAQpyB,EAAQuxB,EACpBjG,EAAO,KAAK0G,EAAOI,EAAOH,EAAOG,EAAOF,EAAWE,EAAOD,EAAYC,CAAK,CACjF,CAII,OAAAv4B,EAAQ,UAAU,MAAMA,EAAS,CAAC3Z,CAAM,EAAE,OAAO6/B,GAAmBuL,EAAO,IAAI,SAAUC,EAAO,CAC9F,OAAO,KAAK,MAAM9G,GAAuB8G,CAAK,CAAC,CAChD,CAAA,CAAC,CAAC,CAAC,EACGplB,CACR,EAMD,eAAgB,SAAwBuiB,EAAa,CACnD,IAAI/nC,EAAU,KAAK,QACnB,MAAI,CAAC,KAAK,UAAY,CAACsjC,GAAYyE,CAAW,IAE5C/nC,EAAQ,YAAc,KAAK,IAAI,EAAG+nC,CAAW,GAAK,IAC9C,KAAK,QACP,KAAK,YAAa,EACd,KAAK,SACP,KAAK,cAAe,IAInB,IACR,EAMD,YAAa,SAAqB5sB,EAAM,CACtC,IAAInb,EAAU,KAAK,QACjB0xC,EAAU,KAAK,QACfC,EAAO,KAAK,KACd,GAAI,KAAK,OAAS,CAAC,KAAK,SAAU,CAChC,IAAIC,EAAYz2B,IAASqmB,GACrBqQ,EAAU7xC,EAAQ,SAAWmb,IAASsmB,GAC1CtmB,EAAOy2B,GAAaC,EAAU12B,EAAOumB,GACrC1hC,EAAQ,SAAWmb,EACnB2pB,GAAQ4M,EAASpQ,GAAanmB,CAAI,EAClCspB,GAAYiN,EAAS3Q,GAAY6Q,CAAS,EAC1CnN,GAAYiN,EAASrQ,GAAYwQ,CAAO,EACnC7xC,EAAQ,iBAEX8kC,GAAQ6M,EAAMrQ,GAAanmB,CAAI,EAC/BspB,GAAYkN,EAAM5Q,GAAY6Q,CAAS,EACvCnN,GAAYkN,EAAMtQ,GAAYwQ,CAAO,EAE7C,CACI,OAAO,IACX,CACA,EAEIC,GAAiB/R,GAAO,QACxBgS,GAAuB,UAAY,CAMrC,SAASA,EAAQ94B,EAAS,CACxB,IAAIjZ,EAAU,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,CAAE,EAEpF,GADA6+B,GAAgB,KAAMkT,CAAO,EACzB,CAAC94B,GAAW,CAAC6pB,GAAgB,KAAK7pB,EAAQ,OAAO,EACnD,MAAM,IAAI,MAAM,0EAA0E,EAE5F,KAAK,QAAUA,EACf,KAAK,QAAU0I,GAAO,CAAE,EAAEshB,GAAUM,GAAcvjC,CAAO,GAAKA,CAAO,EACrE,KAAK,QAAU,GACf,KAAK,SAAW,GAChB,KAAK,SAAW,CAAE,EAClB,KAAK,MAAQ,GACb,KAAK,UAAY,GACjB,KAAK,SAAW,GAChB,KAAK,MAAQ,GACb,KAAK,OAAS,GACd,KAAK,KAAM,CACf,CACE,OAAOi/B,GAAa8S,EAAS,CAAC,CAC5B,IAAK,OACL,MAAO,UAAgB,CACrB,IAAI94B,EAAU,KAAK,QACfwb,EAAUxb,EAAQ,QAAQ,YAAa,EACvCiM,EACJ,GAAI,CAAAjM,EAAQinB,EAAS,EAIrB,IADAjnB,EAAQinB,EAAS,EAAI,KACjBzL,IAAY,MAAO,CAQrB,GAPA,KAAK,MAAQ,GAGbvP,EAAMjM,EAAQ,aAAa,KAAK,GAAK,GACrC,KAAK,YAAciM,EAGf,CAACA,EACH,OAIFA,EAAMjM,EAAQ,GACf,MAAUwb,IAAY,UAAY,OAAO,oBACxCvP,EAAMjM,EAAQ,UAAW,GAE3B,KAAK,KAAKiM,CAAG,EACnB,CACA,EAAK,CACD,IAAK,OACL,MAAO,SAAcA,EAAK,CACxB,IAAI2pB,EAAQ,KACZ,GAAK3pB,EAGL,MAAK,IAAMA,EACX,KAAK,UAAY,CAAE,EACnB,IAAIjM,EAAU,KAAK,QACjBjZ,EAAU,KAAK,QAMjB,GALI,CAACA,EAAQ,WAAa,CAACA,EAAQ,WACjCA,EAAQ,iBAAmB,IAIzB,CAACA,EAAQ,kBAAoB,CAAC,OAAO,YAAa,CACpD,KAAK,MAAO,EACZ,MACR,CAGM,GAAI4iC,GAAgB,KAAK1d,CAAG,EAAG,CAEzB2d,GAAqB,KAAK3d,CAAG,EAC/B,KAAK,KAAKimB,GAAqBjmB,CAAG,CAAC,EAInC,KAAK,MAAO,EAEd,MACR,CAIM,IAAI8sB,EAAM,IAAI,eACVC,EAAQ,KAAK,MAAM,KAAK,IAAI,EAChC,KAAK,UAAY,GACjB,KAAK,IAAMD,EAMXA,EAAI,QAAUC,EACdD,EAAI,QAAUC,EACdD,EAAI,UAAYC,EAChBD,EAAI,WAAa,UAAY,CAEvBA,EAAI,kBAAkB,cAAc,IAAMtP,IAC5CsP,EAAI,MAAO,CAEd,EACDA,EAAI,OAAS,UAAY,CACvBnD,EAAM,KAAKmD,EAAI,QAAQ,CACxB,EACDA,EAAI,UAAY,UAAY,CAC1BnD,EAAM,UAAY,GAClBA,EAAM,IAAM,IACb,EAGG7uC,EAAQ,kBAAoB8lC,GAAiB5gB,CAAG,GAAKjM,EAAQ,cAC/DiM,EAAM6gB,GAAa7gB,CAAG,GAIxB8sB,EAAI,KAAK,MAAO9sB,EAAK,EAAI,EACzB8sB,EAAI,aAAe,cACnBA,EAAI,gBAAkB/4B,EAAQ,cAAgB,kBAC9C+4B,EAAI,KAAM,EAChB,CACA,EAAK,CACD,IAAK,OACL,MAAO,SAAc1G,EAAa,CAChC,IAAItrC,EAAU,KAAK,QACjBusC,EAAY,KAAK,UAIfzlB,EAAc4kB,GAAuBJ,CAAW,EAChDpF,EAAS,EACTC,EAAS,EACTC,EAAS,EACb,GAAItf,EAAc,EAAG,CAEnB,KAAK,IAAM0kB,GAAqBF,EAAa5I,EAAc,EAC3D,IAAIwP,EAAoB9F,GAAiBtlB,CAAW,EACpDof,EAASgM,EAAkB,OAC3B/L,EAAS+L,EAAkB,OAC3B9L,EAAS8L,EAAkB,MACnC,CACUlyC,EAAQ,YACVusC,EAAU,OAASrG,GAEjBlmC,EAAQ,WACVusC,EAAU,OAASpG,EACnBoG,EAAU,OAASnG,GAErB,KAAK,MAAO,CAClB,CACA,EAAK,CACD,IAAK,QACL,MAAO,UAAiB,CACtB,IAAIntB,EAAU,KAAK,QACjBiM,EAAM,KAAK,IACT6oB,EAAc90B,EAAQ,YACtBk5B,EAAiBjtB,EACjB,KAAK,QAAQ,kBAAoB4gB,GAAiB5gB,CAAG,IAClD6oB,IACHA,EAAc,aAIhBoE,EAAiBpM,GAAa7gB,CAAG,GAEnC,KAAK,YAAc6oB,EACnB,KAAK,eAAiBoE,EACtB,IAAItsB,EAAQ,SAAS,cAAc,KAAK,EACpCkoB,IACFloB,EAAM,YAAckoB,GAEtBloB,EAAM,IAAMssB,GAAkBjtB,EAC9BW,EAAM,IAAM5M,EAAQ,KAAO,oBAC3B,KAAK,MAAQ4M,EACbA,EAAM,OAAS,KAAK,MAAM,KAAK,IAAI,EACnCA,EAAM,QAAU,KAAK,KAAK,KAAK,IAAI,EACnCye,GAASze,EAAOqb,EAAU,EAC1BjoB,EAAQ,WAAW,aAAa4M,EAAO5M,EAAQ,WAAW,CAChE,CACA,EAAK,CACD,IAAK,QACL,MAAO,UAAiB,CACtB,IAAIm5B,EAAS,KACTvsB,EAAQ,KAAK,MACjBA,EAAM,OAAS,KACfA,EAAM,QAAU,KAChB,KAAK,OAAS,GAId,IAAIwsB,EAActS,GAAO,WAAa,sCAAsC,KAAKA,GAAO,UAAU,SAAS,EACvGuS,EAAO,SAAcjJ,EAAcC,EAAe,CACpD3nB,GAAOywB,EAAO,UAAW,CACvB,aAAc/I,EACd,cAAeC,EACf,YAAaD,EAAeC,CACtC,CAAS,EACD8I,EAAO,iBAAmBzwB,GAAO,CAAA,EAAIywB,EAAO,SAAS,EACrDA,EAAO,OAAS,GAChBA,EAAO,MAAQ,GACfA,EAAO,MAAO,CACf,EAGD,GAAIvsB,EAAM,cAAgB,CAACwsB,EAAa,CACtCC,EAAKzsB,EAAM,aAAcA,EAAM,aAAa,EAC5C,MACR,CACM,IAAI0sB,EAAc,SAAS,cAAc,KAAK,EAC1CC,EAAO,SAAS,MAAQ,SAAS,gBACrC,KAAK,YAAcD,EACnBA,EAAY,OAAS,UAAY,CAC/BD,EAAKC,EAAY,MAAOA,EAAY,MAAM,EACrCF,GACHG,EAAK,YAAYD,CAAW,CAE/B,EACDA,EAAY,IAAM1sB,EAAM,IAInBwsB,IACHE,EAAY,MAAM,QAAU,uJAC5BC,EAAK,YAAYD,CAAW,EAEpC,CACA,EAAK,CACD,IAAK,OACL,MAAO,UAAgB,CACrB,IAAI1sB,EAAQ,KAAK,MACjBA,EAAM,OAAS,KACfA,EAAM,QAAU,KAChBA,EAAM,WAAW,YAAYA,CAAK,EAClC,KAAK,MAAQ,IACnB,CACA,EAAK,CACD,IAAK,QACL,MAAO,UAAiB,CACtB,GAAI,GAAC,KAAK,OAAS,KAAK,OAGxB,KAAI5M,EAAU,KAAK,QACjBjZ,EAAU,KAAK,QACf6lB,EAAQ,KAAK,MAGX3L,EAAYjB,EAAQ,WACpBw5B,EAAW,SAAS,cAAc,KAAK,EAC3CA,EAAS,UAAYvP,GACrB,IAAImJ,EAAUoG,EAAS,cAAc,IAAI,OAAOvS,GAAW,YAAY,CAAC,EACpE1a,EAAS6mB,EAAQ,cAAc,IAAI,OAAOnM,GAAW,SAAS,CAAC,EAC/DwR,EAAUrF,EAAQ,cAAc,IAAI,OAAOnM,GAAW,WAAW,CAAC,EAClEwS,EAAUrG,EAAQ,cAAc,IAAI,OAAOnM,GAAW,WAAW,CAAC,EAClEyR,EAAOe,EAAQ,cAAc,IAAI,OAAOxS,GAAW,OAAO,CAAC,EAC/D,KAAK,UAAYhmB,EACjB,KAAK,QAAUmyB,EACf,KAAK,OAAS7mB,EACd,KAAK,QAAUksB,EACf,KAAK,QAAUgB,EACf,KAAK,QAAUrG,EAAQ,cAAc,IAAI,OAAOnM,GAAW,WAAW,CAAC,EACvE,KAAK,KAAOyR,EACZnsB,EAAO,YAAYK,CAAK,EAGxBye,GAASrrB,EAASgoB,EAAY,EAG9B/mB,EAAU,aAAamyB,EAASpzB,EAAQ,WAAW,EAGnDurB,GAAY3e,EAAOqb,EAAU,EAC7B,KAAK,YAAa,EAClB,KAAK,KAAM,EACXlhC,EAAQ,mBAAqB,KAAK,IAAI,EAAGA,EAAQ,kBAAkB,GAAK,IACxEA,EAAQ,YAAc,KAAK,IAAI,EAAGA,EAAQ,WAAW,GAAK,IAC1DA,EAAQ,SAAW,KAAK,IAAI,EAAG,KAAK,IAAI,EAAG,KAAK,MAAMA,EAAQ,QAAQ,CAAC,CAAC,GAAK,EAC7EskC,GAASoO,EAASzR,EAAY,EACzBjhC,EAAQ,QACXskC,GAASoO,EAAQ,uBAAuB,GAAG,OAAOxS,GAAW,SAAS,CAAC,EAAGe,EAAY,EAEnFjhC,EAAQ,QACXskC,GAASoO,EAAQ,uBAAuB,GAAG,OAAOxS,GAAW,SAAS,CAAC,EAAGe,EAAY,EAEpFjhC,EAAQ,YACVskC,GAAS+H,EAAS,GAAG,OAAOnM,GAAW,KAAK,CAAC,EAE1ClgC,EAAQ,WACXskC,GAASqN,EAAMxQ,EAAe,EAE5BnhC,EAAQ,iBACVskC,GAASqN,EAAMtQ,EAAU,EACzByD,GAAQ6M,EAAMrQ,GAAanB,EAAU,GAElCngC,EAAQ,mBACXskC,GAASoO,EAAQ,uBAAuB,GAAG,OAAOxS,GAAW,OAAO,CAAC,EAAGe,EAAY,EACpFqD,GAASoO,EAAQ,uBAAuB,GAAG,OAAOxS,GAAW,QAAQ,CAAC,EAAGe,EAAY,GAEvF,KAAK,OAAQ,EACb,KAAK,MAAQ,GACb,KAAK,YAAYjhC,EAAQ,QAAQ,EAC7BA,EAAQ,UACV,KAAK,KAAM,EAEb,KAAK,QAAQA,EAAQ,IAAI,EACrB0jC,GAAW1jC,EAAQ,KAAK,GAC1BslC,GAAYrsB,EAASqpB,GAAatiC,EAAQ,MAAO,CAC/C,KAAM,EAChB,CAAS,EAEHylC,GAAcxsB,EAASqpB,EAAW,EACxC,CACA,EAAK,CACD,IAAK,UACL,MAAO,UAAmB,CACxB,GAAK,KAAK,MAGV,MAAK,MAAQ,GACb,KAAK,OAAQ,EACb,KAAK,aAAc,EACnB,IAAIqQ,EAAa,KAAK,QAAQ,WAC1BA,GACFA,EAAW,YAAY,KAAK,OAAO,EAErCnO,GAAY,KAAK,QAASvD,EAAY,EAC5C,CACA,EAAK,CACD,IAAK,WACL,MAAO,UAAoB,CACrB,KAAK,OACP,KAAK,QAAS,EACd,KAAK,MAAQ,GACb,KAAK,QAAU,IACN,KAAK,QACd,KAAK,YAAY,OAAS,KAC1B,KAAK,OAAS,GACd,KAAK,MAAQ,IACJ,KAAK,WACd,KAAK,IAAI,QAAU,KACnB,KAAK,IAAI,MAAO,GACP,KAAK,OACd,KAAK,KAAM,CAEnB,CAMG,CAAA,EAAG,CAAC,CACH,IAAK,aACL,MAAO,UAAsB,CAC3B,cAAO,QAAU6Q,GACVC,CACb,CAMA,EAAK,CACD,IAAK,cACL,MAAO,SAAqB/xC,EAAS,CACnC2hB,GAAOshB,GAAUM,GAAcvjC,CAAO,GAAKA,CAAO,CACxD,CACA,CAAG,CAAC,CACJ,EAAG,EACH2hB,GAAOowB,GAAQ,UAAW93B,GAAQuN,GAASinB,GAAQC,GAAUS,GAAQS,EAAO,EC3rG5E,SAASgD,GAA4CtG,EAAeM,EAAY,CAE9E,MAAMiG,EAAavG,EAAc,MAAQM,EAAW,MAC9CkG,EAAcxG,EAAc,OAASM,EAAW,OAChDmG,EAAc,KAAK,IAAIF,EAAYC,CAAW,EAC9CrK,EAAWmE,EAAW,MAAQmG,EAC9BrK,EAAYkE,EAAW,OAASmG,EAGhCC,GAAW1G,EAAc,MAAQ7D,GAAY,EAC7CwK,GAAU3G,EAAc,OAAS5D,GAAa,EACpD,MAAO,CACL,MAAOD,EACP,OAAQC,EACR,KAAMsK,EACN,IAAKC,CACN,CACH,CCpBA,SAASC,GAAUC,EAAO,CACxB,OAAOA,GAAS,KAAK,GAAK,IAC5B,CACA,SAASC,GAAqC9mD,EAAGjB,EAAGgoD,EAAe,CACjE,MAAMC,EAAI,KAAK,IAAIJ,GAAUG,CAAa,CAAC,EAE3C,OADoB,KAAK,KAAK,KAAK,IAAIC,CAAC,EAAIhnD,EAAI,KAAK,IAAIgnD,CAAC,EAAIjoD,GAAKA,GAAI,KAAK,IAAIioD,CAAC,EAAIjoD,EAAI,KAAK,IAAIioD,CAAC,EAAIhnD,GAAKA,CAAC,CAE/G,CCPA,SAASinD,GAA2B/tB,EAAQguB,EAASC,EAAa,CAEhE,OAAID,EAAQ,KAAOhuB,EAAO,KACjB,CACL,KAAMA,EAAO,KACb,MAAOiuB,EAAY,KACpB,EAICD,EAAQ,IAAMhuB,EAAO,IAChB,CACL,IAAKA,EAAO,IACZ,OAAQiuB,EAAY,MACrB,EAICD,EAAQ,KAAOA,EAAQ,MAAQhuB,EAAO,KAAOA,EAAO,MAC/C,CACL,KAAMA,EAAO,KAAOA,EAAO,MAAQiuB,EAAY,MAC/C,MAAOA,EAAY,KACpB,EAICD,EAAQ,IAAMA,EAAQ,OAAShuB,EAAO,IAAMA,EAAO,OAC9C,CACL,IAAKA,EAAO,IAAMA,EAAO,OAASiuB,EAAY,OAC9C,OAAQA,EAAY,MACrB,EAEI,IACT,CCjCA,SAASC,GAA6BluB,EAAQmuB,EAAaF,EAAa,CAEtE,OAAIE,EAAY,KAAOnuB,EAAO,KACrB,CACL,KAAMA,EAAO,KACb,MAAOiuB,EAAY,KAAOA,EAAY,MAAQjuB,EAAO,IACtD,EAICmuB,EAAY,IAAMnuB,EAAO,IACpB,CACL,IAAKA,EAAO,IACZ,OAAQiuB,EAAY,IAAMA,EAAY,OAASjuB,EAAO,GACvD,EAICmuB,EAAY,KAAOA,EAAY,MAAQnuB,EAAO,KAAOA,EAAO,MACvD,CACL,KAAMiuB,EAAY,KAClB,MAAOjuB,EAAO,KAAOA,EAAO,MAAQiuB,EAAY,IACjD,EAICE,EAAY,IAAMA,EAAY,OAASnuB,EAAO,IAAMA,EAAO,OACtD,CACL,IAAKiuB,EAAY,IACjB,OAAQjuB,EAAO,IAAMA,EAAO,OAASiuB,EAAY,GAClD,EAEI,IACT,CC1Be,MAAMG,WAAepyB,EAAU,CAC5C,YAAYxF,EAAO,CACjB,MAAMA,CAAK,EACX,KAAK,cAAgB,IAAM,CAEzB,KAAM,CACJ,WAAA63B,CACD,EAAG,KAAK,MACHC,EAAWD,EAAa,GAC9B,KAAK,SAAS,CACZ,WAAYC,EACZ,cAAe,CACvB,CAAO,EAID,KAAK,QAAQ,MAAM,CAAC,EACpB,KAAK,QAAQ,SAASA,CAAQ,EAG9B,MAAMlH,EAAa,KAAK,QAAQ,cAAe,EACzCN,EAAgB,KAAK,QAAQ,iBAAkB,EAC/CyH,EAAgBnB,GAA4CtG,EAAeM,CAAU,EAC3F,KAAK,QAAQ,cAAcmH,CAAa,EAGxC,KAAK,QAAQ,eAAeA,CAAa,CAC1C,EACD,KAAK,iBAAmBvf,GAAM,CAE5B,MAAMwf,EAAmB,OAAOxf,EAAG,OAAO,KAAK,EAC/C,KAAK,SAAS,CACZ,cAAewf,CACvB,CAAO,EAGD,KAAM,CACJ,WAAAH,CACD,EAAG,KAAK,MACHC,EAAWD,EAAaG,EAC9B,KAAK,QAAQ,SAASF,CAAQ,EAG9B,MAAMjuB,EAAQ,KAAK,QAAQ,aAAc,EACnCktB,EAAcK,GAAqCvtB,EAAM,aAAcA,EAAM,cAAemuB,CAAgB,EAE5GC,EAAe,KAAK,QAAQ,aAAc,EAAC,OAAS,EAAI,CAAClB,EAAcA,EAC7E,KAAK,QAAQ,MAAMkB,EAAclB,CAAW,CAC7C,EACD,KAAK,MAAQ,CACX,WAAY,EACZ,cAAe,EACf,gBAAiB,IAClB,EACD,KAAK,qBAAuB,KAAK,qBAAqB,KAAK,IAAI,EAC/D,KAAK,qBAAuB,KAAK,qBAAqB,KAAK,IAAI,CACnE,CACE,mBAAoB,CAClB,KAAM,CACJ,KAAApmC,EACA,qBAAAunC,CACD,EAAG,KAAK,MACT,KAAK,QAAU,IAAInC,GAAQ,KAAK,WAAYplC,EAAK,cAAc,EAC/D,KAAK,WAAW,iBAAiB,YAAa,KAAK,oBAAoB,EAEvE,KAAK,WAAW,iBAAiB,UAAW,KAAK,oBAAoB,EACrEunC,EAAqB,KAAK,OAAO,CACrC,CACE,sBAAuB,CACrB,KAAK,QAAQ,QAAS,EACtB,KAAK,WAAW,oBAAoB,YAAa,KAAK,oBAAoB,EAE1E,KAAK,WAAW,oBAAoB,UAAW,KAAK,oBAAoB,CAC5E,CAGE,sBAAuB,CACrB,KAAK,SAAS,CACZ,gBAAiB,KAAK,QAAQ,eAAc,CAClD,CAAK,CACL,CACE,qBAAqB7yC,EAAO,CAC1B,MAAMurC,EAAa,KAAK,QAAQ,cAAe,EACzC+G,EAAc,KAAK,QAAQ,eAAgB,EAC3C,CACJ,gBAAAQ,CACD,EAAG,KAAK,MAGT,GAAI9yC,EAAM,OAAO,SAAW,MAAO,CACjC,MAAM+yC,EAAiBb,GAA2B3G,EAAY+G,EAAaQ,CAAe,EACtFC,GAAgB,KAAK,QAAQ,eAAeA,CAAc,CAEpE,KAAW,CACL,MAAMA,EAAiBV,GAA6B9G,EAAY+G,EAAaQ,CAAe,EACxFC,GAAgB,KAAK,QAAQ,eAAeA,CAAc,CACpE,CACA,CACE,sBAAuB,CACrB,KAAM,CACJ,KAAAj4B,CACD,EAAG,KAAK,MACH,CACJ,cAAAk4B,CACD,EAAG,KAAK,MACT,OAAOhpD,EAAE,QAAS,CAChB,KAAM,UACN,aAAc,GAAGgpD,CAAa,IAC9B,yBAA0B,MAC1B,UAAW,gCACjB,EAAOhpD,EAAE,QAAS,CACZ,UAAW,uCACX,KAAM,QACN,QAAS,KAAK,iBACd,SAAU,KAAK,iBACf,MAAOgpD,EACP,IAAK,MACL,IAAK,KACL,aAAcl4B,EAAK,QAAQ,CACjC,CAAK,CAAC,CACN,CACE,cAAe,CACb,KAAM,CACJ,KAAAA,EACA,KAAAxP,CACD,EAAG,KAAK,MACT,OAAOthB,EAAE,SAAU,CACjB,KAAM,iBACN,yBAA0B,MAC1B,KAAM,SACN,UAAW,0BACX,aAAc8wB,EAAK,QAAQ,EAC3B,QAAS,IAAM,CACb,KAAK,QAAQ,MAAO,EACpB,KAAK,QAAQ,eAAexP,EAAK,eAAe,kBAAkB,EAClE,KAAK,SAAS,CACZ,WAAY,EACZ,cAAe,CACzB,CAAS,CACT,CACA,EAAOthB,EAAE,MAAO,CACV,cAAe,OACf,UAAW,cACX,MAAO,KACP,OAAQ,KACR,QAAS,WACf,EAAOA,EAAE,OAAQ,CACX,EAAG,gBACH,KAAM,MACZ,CAAK,EAAGA,EAAE,OAAQ,CACZ,EAAG,kOACJ,CAAA,CAAC,CAAC,CACP,CACE,cAAe,CACb,KAAM,CACJ,KAAA8wB,CACD,EAAG,KAAK,MACT,OAAO9wB,EAAE,SAAU,CACjB,KAAM,iBACN,yBAA0B,MAC1B,KAAM,SACN,UAAW,0BACX,aAAc8wB,EAAK,QAAQ,EAC3B,QAAS,KAAK,aACpB,EAAO9wB,EAAE,MAAO,CACV,cAAe,OACf,UAAW,cACX,MAAO,KACP,OAAQ,KACR,QAAS,WACf,EAAOA,EAAE,OAAQ,CACX,EAAG,iCACH,KAAM,MACZ,CAAK,EAAGA,EAAE,OAAQ,CACZ,EAAG,2XACJ,CAAA,CAAC,CAAC,CACP,CACE,YAAa,CACX,KAAM,CACJ,KAAA8wB,CACD,EAAG,KAAK,MACT,OAAO9wB,EAAE,SAAU,CACjB,KAAM,iBACN,yBAA0B,MAC1B,KAAM,SACN,UAAW,0BACX,aAAc8wB,EAAK,gBAAgB,EACnC,QAAS,IAAM,KAAK,QAAQ,OAAO,CAAC,KAAK,QAAQ,UAAU,QAAU,EAAE,CAC7E,EAAO9wB,EAAE,MAAO,CACV,cAAe,OACf,UAAW,cACX,MAAO,KACP,OAAQ,KACR,QAAS,WACf,EAAOA,EAAE,OAAQ,CACX,EAAG,gBACH,KAAM,MACZ,CAAK,EAAGA,EAAE,OAAQ,CACZ,EAAG,uMACJ,CAAA,CAAC,CAAC,CACP,CACE,cAAe,CACb,KAAM,CACJ,KAAA8wB,CACD,EAAG,KAAK,MACT,OAAO9wB,EAAE,SAAU,CACjB,KAAM,iBACN,yBAA0B,MAC1B,KAAM,SACN,UAAW,0BACX,aAAc8wB,EAAK,QAAQ,EAC3B,QAAS,IAAM,KAAK,QAAQ,KAAK,EAAG,CAC1C,EAAO9wB,EAAE,MAAO,CACV,cAAe,OACf,UAAW,cACX,OAAQ,KACR,QAAS,YACT,MAAO,IACb,EAAOA,EAAE,OAAQ,CACX,EAAG,kBACH,KAAM,MACZ,CAAK,EAAGA,EAAE,OAAQ,CACZ,EAAG,4OACT,CAAK,EAAGA,EAAE,OAAQ,CACZ,EAAG,mCACJ,CAAA,CAAC,CAAC,CACP,CACE,eAAgB,CACd,KAAM,CACJ,KAAA8wB,CACD,EAAG,KAAK,MACT,OAAO9wB,EAAE,SAAU,CACjB,KAAM,iBACN,yBAA0B,MAC1B,KAAM,SACN,UAAW,0BACX,aAAc8wB,EAAK,SAAS,EAC5B,QAAS,IAAM,KAAK,QAAQ,KAAK,GAAI,CAC3C,EAAO9wB,EAAE,MAAO,CACV,cAAe,OACf,UAAW,cACX,MAAO,KACP,OAAQ,KACR,QAAS,WACf,EAAOA,EAAE,OAAQ,CACX,EAAG,kBACH,KAAM,MACZ,CAAK,EAAGA,EAAE,OAAQ,CACZ,EAAG,uPACJ,CAAA,CAAC,CAAC,CACP,CACE,kBAAmB,CACjB,KAAM,CACJ,KAAA8wB,CACD,EAAG,KAAK,MACT,OAAO9wB,EAAE,SAAU,CACjB,KAAM,iBACN,yBAA0B,MAC1B,KAAM,SACN,UAAW,0BACX,aAAc8wB,EAAK,mBAAmB,EACtC,QAAS,IAAM,KAAK,QAAQ,eAAe,CAAC,CAClD,EAAO9wB,EAAE,MAAO,CACV,cAAe,OACf,UAAW,cACX,MAAO,KACP,OAAQ,KACR,QAAS,WACf,EAAOA,EAAE,OAAQ,CACX,EAAG,gBACH,KAAM,MACZ,CAAK,EAAGA,EAAE,OAAQ,CACZ,EAAG,4FACJ,CAAA,CAAC,CAAC,CACP,CACE,sBAAuB,CACrB,KAAM,CACJ,KAAA8wB,CACD,EAAG,KAAK,MACT,OAAO9wB,EAAE,SAAU,CACjB,KAAM,iBACN,yBAA0B,MAC1B,KAAM,SACN,UAAW,0BACX,aAAc8wB,EAAK,sBAAsB,EACzC,QAAS,IAAM,KAAK,QAAQ,eAAe,GAAK,CAAC,CACvD,EAAO9wB,EAAE,MAAO,CACV,cAAe,OACf,UAAW,cACX,MAAO,KACP,OAAQ,KACR,QAAS,WACf,EAAOA,EAAE,OAAQ,CACX,EAAG,uOACT,CAAK,EAAGA,EAAE,OAAQ,CACZ,KAAM,OACN,EAAG,eACJ,CAAA,CAAC,CAAC,CACP,CACE,8BAA+B,CAC7B,KAAM,CACJ,KAAA8wB,CACD,EAAG,KAAK,MACT,OAAO9wB,EAAE,SAAU,CACjB,KAAM,iBACN,yBAA0B,MAC1B,KAAM,SACN,aAAc8wB,EAAK,qBAAqB,EACxC,UAAW,0BACX,QAAS,IAAM,KAAK,QAAQ,eAAe,EAAI,EAAE,CACvD,EAAO9wB,EAAE,MAAO,CACV,cAAe,OACf,UAAW,cACX,MAAO,KACP,OAAQ,KACR,QAAS,WACf,EAAOA,EAAE,OAAQ,CACX,EAAG,wMACT,CAAK,EAAGA,EAAE,OAAQ,CACZ,EAAG,gBACH,KAAM,MACP,CAAA,CAAC,CAAC,CACP,CACE,QAAS,CACP,KAAM,CACJ,aAAAipD,EACA,KAAA3nC,CACD,EAAG,KAAK,MACH,CACJ,QAAA4nC,CACN,EAAQ5nC,EACE6nC,EAAW,IAAI,gBAAgBF,EAAa,IAAI,EACtD,OAAOjpD,EAAE,MAAO,CACd,UAAW,mBACjB,EAAOA,EAAE,MAAO,CACV,UAAW,6BACjB,EAAOA,EAAE,MAAO,CACV,UAAW,0BACX,IAAKipD,EAAa,KAClB,IAAKE,EACL,IAAKnwB,GAAO,CACV,KAAK,WAAaA,CAC1B,CACA,CAAK,CAAC,EAAGh5B,EAAE,MAAO,CACZ,UAAW,4BACjB,EAAOkpD,EAAQ,QAAU,KAAK,aAAc,EAAEA,EAAQ,QAAU,KAAK,aAAc,EAAEA,EAAQ,gBAAkB,KAAK,qBAAoB,EAAIA,EAAQ,MAAQ,KAAK,aAAcA,EAAQ,QAAU,KAAK,aAAc,EAAEA,EAAQ,SAAW,KAAK,gBAAiBA,EAAQ,YAAc,KAAK,iBAAkB,EAAEA,EAAQ,gBAAkB,KAAK,qBAAsB,EAAEA,EAAQ,wBAA0B,KAAK,6BAA4B,CAAE,CAAC,CAC3a,CACA,CClWA,MAAeE,GAAA,CACb,QAAS,CACP,OAAQ,QACR,OAAQ,aACR,OAAQ,UACR,QAAS,WACT,eAAgB,oBAChB,kBAAmB,cACnB,qBAAsB,wBACtB,oBAAqB,sBACzB,CACA,ECNMzsC,GAAc,CAClB,QAAW,OACb,EAEM0sC,GAAwB,CAC5B,SAAU,EACV,WAAY,GACZ,aAAc,EACd,WAAY,GACZ,gBAAiB,GACjB,iBAAkB,GAClB,qBAAsB,CAAE,EACxB,mBAAoB,CACtB,EACMC,GAAiB,CACrB,OAAQ,GACR,OAAQ,GACR,eAAgB,GAChB,KAAM,GACN,OAAQ,GACR,QAAS,GACT,WAAY,GACZ,eAAgB,GAChB,uBAAwB,EAC1B,EACMnoC,GAAiB,CAGrB,QAAS,GACT,QAASmoC,GACT,eAAgBD,EAClB,EACe,MAAME,WAAoBj7B,EAAS,CAChD,YAAYL,EAAM3M,EAAM,CACtB,MAAM2M,EAAM,CACV,GAAG9M,GACH,GAAGG,EACH,QAAS,CACP,GAAGgoC,GACH,GAAIhoC,GAAQ,KAAO,OAASA,EAAK,OAClC,EACD,eAAgB,CACd,GAAG+nC,GACH,GAAI/nC,GAAQ,KAAO,OAASA,EAAK,cACzC,CACA,CAAK,EACD,KAAK,KAAO,IAAM,CAChB,MAAMkoC,EAAmBlvB,GAAQ,CAC/B,IAAImvB,EACJ,KAAM,CACJ,aAAAR,CACV,EAAY,KAAK,eAAgB,EACzB,KAAK,KAAK,aAAaA,EAAa,GAAI,CAEtC,KAAM,IAAI,KAAK,CAAC3uB,CAAI,GAAImvB,EAAQR,EAAa,OAAS,KAAOQ,EAAQ,KAAK,KAAK,SAAS,EAAG,CACzF,KAAMnvB,EAAK,IACvB,CAAW,EACD,KAAMA,EAAK,KACX,QAAS,MACnB,CAAS,EACD,MAAMpR,EAAc,KAAK,KAAK,QAAQ+/B,EAAa,EAAE,EACrD,KAAK,KAAK,KAAK,oBAAqB//B,CAAW,EAC/C,KAAK,eAAe,CAClB,aAAcA,CACxB,CAAS,EACD,KAAK,KAAK,KAAK,uBAAwBA,CAAW,CACnD,EACK,CACJ,aAAA+/B,CACR,EAAU,KAAK,eAAgB,EAKnBS,EAAgB,KAAK,QAAQ,iBAAiB,CAAA,CAAE,EAClDA,EAAc,MAAQ,IAAM,GAC9B,KAAK,QAAQ,QAAQ,CACnB,MAAOA,EAAc,MAAQ,CACvC,CAAS,EAECA,EAAc,OAAS,IAAM,GAC/B,KAAK,QAAQ,QAAQ,CACnB,OAAQA,EAAc,OAAS,CACzC,CAAS,EAEH,KAAK,QAAQ,iBAAiB,KAAK,KAAK,eAAe,oBAAoB,EAAE,OAAOF,EAAkBP,EAAa,KAAM,KAAK,KAAK,OAAO,CAC3I,EACD,KAAK,qBAAuBjI,GAAW,CACrC,KAAK,QAAUA,CAChB,EACD,KAAK,WAAarjC,GAAQ,CACxB,KAAK,KAAK,KAAK,oBAAqBA,CAAI,EACxC,KAAK,eAAe,CAClB,aAAcA,CACtB,CAAO,CACF,EACD,KAAK,GAAK,KAAK,KAAK,IAAM,cAC1B,KAAK,MAAQ,eACb,KAAK,KAAO,SACZ,KAAK,cAAgBhI,GACrB,KAAK,SAAU,CACnB,CAGE,YAAYgI,EAAM,CAChB,GAAI,CAACA,EAAK,MAAQA,EAAK,SACrB,MAAO,GAET,MAAMwkB,EAAmBxkB,EAAK,KAAK,MAAM,GAAG,EAAE,CAAC,EAC/C,MAAI,+BAA6B,KAAKwkB,CAAgB,CAI1D,CACE,SAAU,CACR,KAAK,eAAe,CAClB,aAAc,IACpB,CAAK,EACD,KAAM,CACJ,OAAAlhB,CACD,EAAG,KAAK,KACLA,GACF,KAAK,MAAMA,EAAQ,IAAI,CAE7B,CACE,WAAY,CACV,KAAM,CACJ,aAAAgoC,CACN,EAAQ,KAAK,eAAgB,EACzB,GAAIA,EAAc,CAChB,MAAMtrC,EAAO,KAAK,KAAK,QAAQsrC,EAAa,EAAE,EAC9C,KAAK,KAAK,KAAK,qBAAsBtrC,CAAI,CAC/C,CACI,KAAK,QAAS,CAClB,CACE,QAAS,CACP,KAAM,CACJ,aAAAsrC,CACN,EAAQ,KAAK,eAAgB,EACzB,OAAIA,IAAiB,MAAQA,EAAa,SACjC,KAEFjpD,EAAEuoD,GAAQ,CACf,aAAcU,EACd,qBAAsB,KAAK,qBAC3B,KAAM,KAAK,KACX,KAAM,KAAK,KACX,KAAM,KAAK,IACjB,CAAK,CACL,CACA,CACAM,GAAY,QAAU5sC,GAAY,QC5JlC,SAAS7I,EAA4BxU,EAAGD,EAAG,CAAE,GAAI,CAAC,CAAA,EAAG,eAAe,KAAKC,EAAGD,CAAC,EAAG,MAAM,IAAI,UAAU,gDAAgD,EAAG,OAAOC,CAAE,CAChK,IAAIyU,GAAK,EACT,SAASC,GAA2B1U,EAAG,CAAE,MAAO,aAAeyU,KAAO,IAAMzU,CAAE,CAC9E,SAASqqD,GAAkBC,EAAO,CAChC,OAAO,IAAI,MAAM,YAAa,CAC5B,MAAAA,CACJ,CAAG,CACH,CACA,SAASC,GAAQC,EAAQ,CACvB,GAAIA,GAAU,KAAM,CAClB,IAAIC,EACJ,MAAMC,EAAe,IAAM,KAAK,MAAMF,EAAO,MAAM,EACnDA,EAAO,iBAAiB,QAASE,EAAc,CAC7C,KAAM,EACZ,CAAK,EACD,MAAMC,EAAsB,IAAM,CAChCH,EAAO,oBAAoB,QAASE,CAAY,CACjD,GACAD,EAAa,KAAK,OAAS,MAAQA,EAAW,KAAK,KAAME,EAAqBA,CAAmB,CACtG,CACE,OAAO,IACT,CACA,IAAIC,GAA+Bl2C,GAA2B,gBAAgB,EAC1Em2C,GAA+Bn2C,GAA2B,gBAAgB,EAC1Eo2C,GAAuBp2C,GAA2B,QAAQ,EAC1Dq2C,GAA2Br2C,GAA2B,YAAY,EAClEs2C,GAA0Bt2C,GAA2B,WAAW,EAChEu2C,GAA2Bv2C,GAA2B,YAAY,EAClEw2C,GAAkCx2C,GAA2B,mBAAmB,EAChFy2C,GAAqBz2C,GAA2B,MAAM,EACtD02C,GAA0B12C,GAA2B,WAAW,EAChE22C,GAAqB32C,GAA2B,MAAM,EACtD42C,GAAsB52C,GAA2B,OAAO,EACxD62C,GAAwB72C,GAA2B,SAAS,EAC5D82C,GAAuB92C,GAA2B,QAAQ,EAC1D+2C,GAA8B/2C,GAA2B,eAAe,EACrE,MAAMg3C,EAAiB,CAC5B,YAAYC,EAAO,CACjB,OAAO,eAAe,KAAMJ,GAAU,CACpC,MAAOK,EACb,CAAK,EACD,OAAO,eAAe,KAAMN,GAAQ,CAClC,MAAOO,EACb,CAAK,EACD,OAAO,eAAe,KAAMR,GAAO,CACjC,MAAOS,EACb,CAAK,EACD,OAAO,eAAe,KAAMV,GAAY,CACtC,MAAOW,EACb,CAAK,EACD,OAAO,eAAe,KAAMZ,GAAO,CACjC,MAAOa,EACb,CAAK,EACD,OAAO,eAAe,KAAMpB,GAAiB,CAC3C,SAAU,GACV,MAAO,CACb,CAAK,EACD,OAAO,eAAe,KAAMC,GAAiB,CAC3C,SAAU,GACV,MAAO,CAAA,CACb,CAAK,EACD,OAAO,eAAe,KAAMC,GAAS,CACnC,SAAU,GACV,MAAO,EACb,CAAK,EACD,OAAO,eAAe,KAAMC,GAAa,CACvC,SAAU,GACV,MAAO,MACb,CAAK,EACD,OAAO,eAAe,KAAMC,GAAY,CACtC,SAAU,GACV,MAAO,CACb,CAAK,EACD,OAAO,eAAe,KAAMC,GAAa,CACvC,SAAU,GACV,MAAO,MACb,CAAK,EACD,OAAO,eAAe,KAAMC,GAAoB,CAC9C,SAAU,GACV,MAAO,MACb,CAAK,EACD,OAAO,eAAe,KAAMM,GAAS,CACnC,SAAU,GACV,MAAO,IAAM,KAAK,OAAM,CAC9B,CAAK,EACD,OAAO,eAAe,KAAMC,GAAgB,CAC1C,SAAU,GACV,MAAO,IAAM,CACX,GAAIj3C,EAA4B,KAAMs2C,EAAO,EAAEA,EAAO,EAAG,CACvDt2C,EAA4B,KAAM02C,EAAkB,EAAEA,EAAkB,EAAI,WAAW12C,EAA4B,KAAMi3C,EAAc,EAAEA,EAAc,EAAG,CAAC,EAC3J,MACV,CACQj3C,EAA4B,KAAMw2C,EAAU,EAAEA,EAAU,EAAI,KAAK,MACjE,KAAK,MAAQ,KAAK,MAAMx2C,EAA4B,KAAMy2C,EAAW,EAAEA,EAAW,EAAIz2C,EAA4B,KAAMw2C,EAAU,EAAEA,EAAU,GAAK,CAAC,EACpJ,QAAS/qD,EAAIuU,EAA4B,KAAMw2C,EAAU,EAAEA,EAAU,EAAG/qD,GAAK,KAAK,MAAOA,IACvFuU,EAA4B,KAAM42C,EAAU,EAAEA,EAAU,EAAG,EAEzD52C,EAA4B,KAAMy2C,EAAW,EAAEA,EAAW,EAAIz2C,EAA4B,KAAMw2C,EAAU,EAAEA,EAAU,EAAI,EAC5Hx2C,EAA4B,KAAM02C,EAAkB,EAAEA,EAAkB,EAAI,WAAW12C,EAA4B,KAAMi3C,EAAc,EAAEA,EAAc,EAAG,GAAI,EAE9Jj3C,EAA4B,KAAMw2C,EAAU,EAAEA,EAAU,EAAI,KAAK,MAAMx2C,EAA4B,KAAMw2C,EAAU,EAAEA,EAAU,EAAI,CAAC,CAE9I,CACA,CAAK,EACG,OAAOW,GAAU,UAAYA,IAAU,EACzC,KAAK,MAAQ,IAEb,KAAK,MAAQA,CAEnB,CACE,IAAIv9C,EAAI69C,EAAc,CACpB,MAAI,CAACz3C,EAA4B,KAAMs2C,EAAO,EAAEA,EAAO,GAAKt2C,EAA4B,KAAMo2C,EAAe,EAAEA,EAAe,EAAI,KAAK,MAC9Hp2C,EAA4B,KAAM22C,EAAK,EAAEA,EAAK,EAAE/8C,CAAE,EAEpDoG,EAA4B,KAAM82C,EAAM,EAAEA,EAAM,EAAEl9C,EAAI69C,CAAY,CAC7E,CACE,iBAAiB79C,EAAI69C,EAAc,CACjC,IAAI/H,EAAQ,KACZ,OAAO,UAAY,CACjB,QAASpmC,EAAO,UAAU,OAAQrG,EAAO,IAAI,MAAMqG,CAAI,EAAGC,EAAO,EAAGA,EAAOD,EAAMC,IAC/EtG,EAAKsG,CAAI,EAAI,UAAUA,CAAI,EAE7B,MAAMmuC,EAAgBhI,EAAM,IAAI,KAC9B91C,EAAG,GAAGqJ,CAAI,EACV,eAAe,IAAMy0C,EAAc,MAAM,EAClC,IAAM,CAAE,GACdD,CAAY,EACf,MAAO,CACL,QAAA1B,GACA,OAAQ,CACN2B,EAAc,MAAO,CAC/B,CACO,CACF,CACL,CACE,oBAAoB99C,EAAI69C,EAAc,CACpC,IAAIxE,EAAS,KACb,OAAO,UAAY,CACjB,QAASvnC,EAAQ,UAAU,OAAQzI,EAAO,IAAI,MAAMyI,CAAK,EAAGC,EAAQ,EAAGA,EAAQD,EAAOC,IACpF1I,EAAK0I,CAAK,EAAI,UAAUA,CAAK,EAE/B,IAAI+rC,EACJ,MAAMC,EAAe,IAAI,QAAQ,CAACpxB,EAASiB,IAAW,CACpDkwB,EAAgBzE,EAAO,IAAI,IAAM,CAC/B,IAAI2E,EACAC,EACJ,GAAI,CACFA,EAAe,QAAQ,QAAQj+C,EAAG,GAAGqJ,CAAI,CAAC,CAC3C,OAAQgR,EAAK,CACZ4jC,EAAe,QAAQ,OAAO5jC,CAAG,CAC7C,CACU,OAAA4jC,EAAa,KAAKzyC,GAAU,CACtBwyC,EACFpwB,EAAOowB,CAAW,GAElBF,EAAc,KAAM,EACpBnxB,EAAQnhB,CAAM,EAEjB,EAAE6O,GAAO,CACJ2jC,EACFpwB,EAAOowB,CAAW,GAElBF,EAAc,KAAM,EACpBlwB,EAAOvT,CAAG,EAExB,CAAW,EACM6hC,GAAS,CACd8B,EAAc/B,GAAkBC,CAAK,CACtC,CACF,EAAE2B,CAAY,CACvB,CAAO,EACD,OAAAE,EAAa,MAAQ7B,GAAS,CAC5B4B,EAAc,MAAM5B,CAAK,CAC1B,EACD6B,EAAa,QAAU5B,GAChB4B,CACR,CACL,CACE,QAAS,CACP33C,EAA4B,KAAMs2C,EAAO,EAAEA,EAAO,EAAI,GACtD,aAAat2C,EAA4B,KAAMu2C,EAAW,EAAEA,EAAW,CAAC,EACxE,QAAS9qD,EAAI,EAAGA,EAAI,KAAK,MAAOA,IAC9BuU,EAA4B,KAAM42C,EAAU,EAAEA,EAAU,EAAG,CAEjE,CAOE,MAAMzgC,EAAU,CACVA,IAAa,SACfA,EAAW,MAEbnW,EAA4B,KAAMs2C,EAAO,EAAEA,EAAO,EAAI,GACtD,aAAat2C,EAA4B,KAAMu2C,EAAW,EAAEA,EAAW,CAAC,EACpEpgC,GAAY,OACdnW,EAA4B,KAAMu2C,EAAW,EAAEA,EAAW,EAAI,WAAWv2C,EAA4B,KAAMg3C,EAAO,EAAEA,EAAO,EAAG7gC,CAAQ,EAE5I,CAYE,UAAUA,EAAU,CAClB,aAAanW,EAA4B,KAAM02C,EAAkB,EAAEA,EAAkB,CAAC,EACtF,KAAK,MAAMvgC,CAAQ,EACf,KAAK,MAAQ,GAAK,OAAO,SAAS,KAAK,KAAK,IAC9CnW,EAA4B,KAAMy2C,EAAW,EAAEA,EAAW,EAAI,KAAK,MAAQ,EAC3E,KAAK,MAAQz2C,EAA4B,KAAMw2C,EAAU,EAAEA,EAAU,EACrEx2C,EAA4B,KAAM02C,EAAkB,EAAEA,EAAkB,EAAI,WAAW12C,EAA4B,KAAMi3C,EAAc,EAAEA,EAAc,EAAG9gC,CAAQ,EAExK,CACE,IAAI,UAAW,CACb,OAAOnW,EAA4B,KAAMs2C,EAAO,EAAEA,EAAO,CAC7D,CACA,CACA,SAASkB,GAAO59C,EAAI,CAClBoG,EAA4B,KAAMo2C,EAAe,EAAEA,EAAe,GAAK,EACvE,IAAIjD,EAAO,GACP2E,EACJ,GAAI,CACFA,EAAel+C,EAAI,CACpB,OAAQqa,EAAK,CACZjU,MAAAA,EAA4B,KAAMo2C,EAAe,EAAEA,EAAe,GAAK,EACjEniC,CACV,CACE,MAAO,CACL,MAAO6hC,GAAS,CACV3C,IACJA,EAAO,GACPnzC,EAA4B,KAAMo2C,EAAe,EAAEA,EAAe,GAAK,EACvE0B,GAAgB,MAAQA,EAAahC,CAAK,EAC1C91C,EAA4B,KAAM42C,EAAU,EAAEA,EAAU,EAAG,EAC5D,EACD,KAAM,IAAM,CACNzD,IACJA,EAAO,GACPnzC,EAA4B,KAAMo2C,EAAe,EAAEA,EAAe,GAAK,EACvEp2C,EAA4B,KAAM42C,EAAU,EAAEA,EAAU,EAAG,EACjE,CACG,CACH,CACA,SAASW,IAAc,CAIrB,eAAe,IAAMv3C,EAA4B,KAAM62C,EAAK,EAAEA,EAAK,GAAG,CACxE,CACA,SAASS,IAAS,CAIhB,GAHIt3C,EAA4B,KAAMs2C,EAAO,EAAEA,EAAO,GAAKt2C,EAA4B,KAAMo2C,EAAe,EAAEA,EAAe,GAAK,KAAK,OAGnIp2C,EAA4B,KAAMq2C,EAAe,EAAEA,EAAe,EAAE,SAAW,EACjF,OAMF,MAAMlzB,EAAOnjB,EAA4B,KAAMq2C,EAAe,EAAEA,EAAe,EAAE,MAAO,EACxF,GAAIlzB,GAAQ,KACV,MAAM,IAAI,MAAM,mCAAmC,EAErD,MAAMmY,EAAUt7B,EAA4B,KAAM22C,EAAK,EAAEA,EAAK,EAAExzB,EAAK,EAAE,EACvEA,EAAK,MAAQmY,EAAQ,MACrBnY,EAAK,KAAOmY,EAAQ,IACtB,CACA,SAAS+b,GAAQz9C,EAAIiH,EAAS,CAC5B,MAAMy6B,EAAU,CACd,GAAA1hC,EACA,UAAWiH,GAAW,KAAO,OAASA,EAAQ,WAAa,EAC3D,MAAO,IAAM,CACXb,EAA4B,KAAM+2C,EAAQ,EAAEA,EAAQ,EAAEzb,CAAO,CAC9D,EACD,KAAM,IAAM,CACV,MAAM,IAAI,MAAM,4DAA4D,CAClF,CACG,EACKj3B,EAAQrE,EAA4B,KAAMq2C,EAAe,EAAEA,EAAe,EAAE,UAAU5vC,GACnF60B,EAAQ,SAAW70B,EAAM,QACjC,EACD,OAAIpC,IAAU,GACZrE,EAA4B,KAAMq2C,EAAe,EAAEA,EAAe,EAAE,KAAK/a,CAAO,EAEhFt7B,EAA4B,KAAMq2C,EAAe,EAAEA,EAAe,EAAE,OAAOhyC,EAAO,EAAGi3B,CAAO,EAEvFA,CACT,CACA,SAAS8b,GAAU9b,EAAS,CAC1B,MAAMj3B,EAAQrE,EAA4B,KAAMq2C,EAAe,EAAEA,EAAe,EAAE,QAAQ/a,CAAO,EAC7Fj3B,IAAU,IACZrE,EAA4B,KAAMq2C,EAAe,EAAEA,EAAe,EAAE,OAAOhyC,EAAO,CAAC,CAEvF,CACO,MAAM0zC,GAA2B,OAAO,SAAS,EC/SxD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAUA,SAAS3Y,GAAQ4Y,EAAQC,EAAgB,CACvC,IAAI/0C,EAAO,OAAO,KAAK80C,CAAM,EAC7B,GAAI,OAAO,sBAAuB,CAChC,IAAIE,EAAU,OAAO,sBAAsBF,CAAM,EACjDC,IAAmBC,EAAUA,EAAQ,OAAO,SAAUC,EAAK,CACzD,OAAO,OAAO,yBAAyBH,EAAQG,CAAG,EAAE,UAC1D,CAAK,GAAIj1C,EAAK,KAAK,MAAMA,EAAMg1C,CAAO,CACtC,CACE,OAAOh1C,CACT,CACA,SAASm8B,GAAelyB,EAAQ,CAC9B,QAAS1hB,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CACzC,IAAI2U,EAAiB,UAAU3U,CAAC,GAAnB,KAAuB,UAAUA,CAAC,EAAI,CAAE,EACrDA,EAAI,EAAI2zC,GAAQ,OAAOh/B,CAAM,EAAG,EAAE,EAAE,QAAQ,SAAUe,EAAK,CACzDm+B,GAAgBnyB,EAAQhM,EAAKf,EAAOe,CAAG,CAAC,CAC9C,CAAK,EAAI,OAAO,0BAA4B,OAAO,iBAAiBgM,EAAQ,OAAO,0BAA0B/M,CAAM,CAAC,EAAIg/B,GAAQ,OAAOh/B,CAAM,CAAC,EAAE,QAAQ,SAAUe,EAAK,CACjK,OAAO,eAAegM,EAAQhM,EAAK,OAAO,yBAAyBf,EAAQe,CAAG,CAAC,CACrF,CAAK,CACL,CACE,OAAOgM,CACT,CACA,SAASuyB,GAAgB3pB,EAAU4pB,EAAa,CAC9C,GAAI,EAAE5pB,aAAoB4pB,GACxB,MAAM,IAAI,UAAU,mCAAmC,CAE3D,CACA,SAASC,GAAkBzyB,EAAQ0P,EAAO,CACxC,QAASpxB,EAAI,EAAGA,EAAIoxB,EAAM,OAAQpxB,IAAK,CACrC,IAAIo0C,EAAahjB,EAAMpxB,CAAC,EACxBo0C,EAAW,WAAaA,EAAW,YAAc,GACjDA,EAAW,aAAe,GACtB,UAAWA,IAAYA,EAAW,SAAW,IACjD,OAAO,eAAe1yB,EAAQqyB,GAAeK,EAAW,GAAG,EAAGA,CAAU,CAC5E,CACA,CACA,SAASC,GAAaH,EAAaI,EAAYC,EAAa,CAC1D,OAAID,GAAYH,GAAkBD,EAAY,UAAWI,CAAU,EAC/DC,GAAaJ,GAAkBD,EAAaK,CAAW,EAC3D,OAAO,eAAeL,EAAa,YAAa,CAC9C,SAAU,EACd,CAAG,EACMA,CACT,CACA,SAASL,GAAgB1lB,EAAKzY,EAAKoC,EAAO,CACxC,OAAApC,EAAMq+B,GAAer+B,CAAG,EACpBA,KAAOyY,EACT,OAAO,eAAeA,EAAKzY,EAAK,CAC9B,MAAOoC,EACP,WAAY,GACZ,aAAc,GACd,SAAU,EAChB,CAAK,EAEDqW,EAAIzY,CAAG,EAAIoC,EAENqW,CACT,CACA,SAASyQ,IAAW,CAClB,OAAAA,GAAW,OAAO,OAAS,OAAO,OAAO,KAAI,EAAK,SAAUld,EAAQ,CAClE,QAAS1hB,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CACzC,IAAI2U,EAAS,UAAU3U,CAAC,EACxB,QAAS0V,KAAOf,EACV,OAAO,UAAU,eAAe,KAAKA,EAAQe,CAAG,IAClDgM,EAAOhM,CAAG,EAAIf,EAAOe,CAAG,EAGlC,CACI,OAAOgM,CACR,EACMkd,GAAS,MAAM,KAAM,SAAS,CACvC,CACA,SAASkV,GAAatzB,EAAOmsC,EAAM,CACjC,GAAI,OAAOnsC,GAAU,UAAYA,IAAU,KAAM,OAAOA,EACxD,IAAIosC,EAAOpsC,EAAM,OAAO,WAAW,EACnC,GAAIosC,IAAS,OAAW,CACtB,IAAIC,EAAMD,EAAK,KAAKpsC,EAAOmsC,CAAiB,EAC5C,GAAI,OAAOE,GAAQ,SAAU,OAAOA,EACpC,MAAM,IAAI,UAAU,8CAA8C,CACtE,CACE,OAA4B,OAAiBrsC,CAAK,CACpD,CACA,SAASuzB,GAAev+B,EAAK,CAC3B,IAAIE,EAAMo+B,GAAat+B,EAAK,QAAQ,EACpC,OAAO,OAAOE,GAAQ,SAAWA,EAAM,OAAOA,CAAG,CACnD,CAEA,IAAIilB,GAAe,CAAC,QAAS,EAAE,GAe9B,SAAUvK,EAAQ,CACb,OAAO,OAAW,KAGrB,SAAU08B,EAAQ,CAEjB,IAAIC,EAAkBD,EAAO,mBAAqBA,EAAO,kBAAkB,UACvEE,EAAqBF,EAAO,MAAQ,UAAY,CAClD,GAAI,CACF,MAAO,EAAQ,IAAI,IACpB,MAAW,CACV,MAAO,EACf,CACA,EAAO,EACCG,EAA4BD,GAAsBF,EAAO,YAAc,UAAY,CACrF,GAAI,CACF,OAAO,IAAI,KAAK,CAAC,IAAI,WAAW,GAAG,CAAC,CAAC,EAAE,OAAS,GACjD,MAAW,CACV,MAAO,EACf,CACA,EAAO,EACCI,EAAcJ,EAAO,aAAeA,EAAO,mBAAqBA,EAAO,gBAAkBA,EAAO,cAChGK,EAAiB,0CACjBC,GAAiBJ,GAAsBE,IAAgBJ,EAAO,MAAQA,EAAO,aAAeA,EAAO,YAAc,SAAUhzB,EAAS,CACtI,IAAI7Y,EAASosC,EAAWC,EAAUC,EAAYC,EAAY9M,EAAa+M,EAAUztD,EAAG0tD,EAGpF,GADAzsC,EAAU6Y,EAAQ,MAAMqzB,CAAc,EAClC,CAAClsC,EACH,MAAM,IAAI,MAAM,kBAAkB,EAgBpC,IAbAosC,EAAYpsC,EAAQ,CAAC,EAAIA,EAAQ,CAAC,EAAI,cAAgBA,EAAQ,CAAC,GAAK,qBACpEqsC,EAAW,CAAC,CAACrsC,EAAQ,CAAC,EACtBssC,EAAazzB,EAAQ,MAAM7Y,EAAQ,CAAC,EAAE,MAAM,EACxCqsC,EAEFE,EAAa,KAAKD,CAAU,EAG5BC,EAAa,mBAAmBD,CAAU,EAG5C7M,EAAc,IAAI,YAAY8M,EAAW,MAAM,EAC/CC,EAAW,IAAI,WAAW/M,CAAW,EAChC1gD,EAAI,EAAGA,EAAIwtD,EAAW,OAAQxtD,GAAK,EACtCytD,EAASztD,CAAC,EAAIwtD,EAAW,WAAWxtD,CAAC,EAGvC,OAAIgtD,EACK,IAAI,KAAK,CAACC,EAA4BQ,EAAW/M,CAAW,EAAG,CACpE,KAAM2M,CAChB,CAAS,GAEHK,EAAK,IAAIR,EACTQ,EAAG,OAAOhN,CAAW,EACdgN,EAAG,QAAQL,CAAS,EAC5B,EACGP,EAAO,mBAAqB,CAACC,EAAgB,SAC3CA,EAAgB,aAClBA,EAAgB,OAAS,SAAUpmC,EAAU5O,EAAM8iB,EAAS,CAC1D,IAAI8yB,EAAO,KACX,WAAW,UAAY,CACjB9yB,GAAWkyB,EAAgB,WAAaK,EAC1CzmC,EAASymC,EAAcO,EAAK,UAAU51C,EAAM8iB,CAAO,CAAC,CAAC,EAErDlU,EAASgnC,EAAK,aAAa,OAAQ51C,CAAI,CAAC,CAEtD,CAAW,CACF,EACQg1C,EAAgB,WAAaK,IAClCL,EAAgB,SAClBA,EAAgB,OAAS,SAAUpmC,EAAU5O,EAAM8iB,EAAS,CAC1D,IAAI8yB,EAAO,KACX,WAAW,UAAY,EAChB51C,GAAQA,IAAS,aAAe8iB,IAAYkyB,EAAgB,WAAaK,EAC5EzmC,EAASymC,EAAcO,EAAK,UAAU51C,EAAM8iB,CAAO,CAAC,CAAC,EAErDlU,EAASgnC,EAAK,SAAS51C,CAAI,CAAC,CAE5C,CAAa,CACF,EAEDg1C,EAAgB,OAAS,SAAUpmC,EAAU5O,EAAM8iB,EAAS,CAC1D,IAAI8yB,EAAO,KACX,WAAW,UAAY,CACrBhnC,EAASymC,EAAcO,EAAK,UAAU51C,EAAM8iB,CAAO,CAAC,CAAC,CACnE,CAAa,CACF,IAIHzK,EAAO,QACTA,EAAO,QAAUg9B,EAEjBN,EAAO,cAAgBM,CAE1B,EAAE,MAAM,CACX,GAAGzyB,EAAY,EACf,IAAIizB,GAASjzB,GAAa,QAEtBkzB,GAAS,SAAgB/1C,EAAO,CAClC,OAAI,OAAO,KAAS,IACX,GAEFA,aAAiB,MAAQ,OAAO,UAAU,SAAS,KAAKA,CAAK,IAAM,eAC5E,EAEIugC,GAAW,CAMb,OAAQ,GAMR,iBAAkB,GAKlB,WAAY,GAKZ,SAAU,IAKV,UAAW,IAKX,SAAU,EAKV,UAAW,EAMX,MAAO,OAMP,OAAQ,OAMR,OAAQ,OAQR,QAAS,GAMT,SAAU,OAMV,aAAc,CAAC,WAAW,EAM1B,YAAa,IAWb,WAAY,KAWZ,KAAM,KAUN,QAAS,KAUT,MAAO,IACT,EAEInD,GAAa,OAAO,OAAW,KAAe,OAAO,OAAO,SAAa,IACzEC,GAASD,GAAa,OAAS,CAAE,EAOjCuD,GAAmB,SAA0B3gC,EAAO,CACtD,OAAOA,EAAQ,GAAKA,EAAQ,GAC9B,EACIihC,GAAQ,MAAM,UAAU,MAO5B,SAASxa,GAAQzmB,EAAO,CACtB,OAAO,MAAM,KAAO,MAAM,KAAKA,CAAK,EAAIihC,GAAM,KAAKjhC,CAAK,CAC1D,CACA,IAAIg2C,GAAoB,cAOxB,SAASC,GAAYj2C,EAAO,CAC1B,OAAOg2C,GAAkB,KAAKh2C,CAAK,CACrC,CAOA,SAASk2C,GAAqBl2C,EAAO,CACnC,IAAIm2C,EAAYF,GAAYj2C,CAAK,EAAIA,EAAM,OAAO,CAAC,EAAI,GACvD,OAAIm2C,IAAc,SAChBA,EAAY,OAEP,IAAI,OAAOA,CAAS,CAC7B,CACA,IAAIhO,GAAe,OAAO,aAS1B,SAASC,GAAsBC,EAAU/gB,EAAOghB,EAAQ,CACtD,IAAIC,EAAM,GACNrgD,EAEJ,IADAogD,GAAUhhB,EACLp/B,EAAIo/B,EAAOp/B,EAAIogD,EAAQpgD,GAAK,EAC/BqgD,GAAOJ,GAAaE,EAAS,SAASngD,CAAC,CAAC,EAE1C,OAAOqgD,CACT,CACA,IAAI6N,GAAO/Y,GAAO,KAQlB,SAASyL,GAAqBF,EAAaxmB,EAAU,CAInD,QAHIyM,EAAS,CAAE,EACXka,EAAY,KACZF,EAAQ,IAAI,WAAWD,CAAW,EAC/BC,EAAM,OAAS,GAGpBha,EAAO,KAAKsZ,GAAa,MAAM,KAAM1hB,GAAQoiB,EAAM,SAAS,EAAGE,CAAS,CAAC,CAAC,CAAC,EAC3EF,EAAQA,EAAM,SAASE,CAAS,EAElC,MAAO,QAAQ,OAAO3mB,EAAU,UAAU,EAAE,OAAOg0B,GAAKvnB,EAAO,KAAK,EAAE,CAAC,CAAC,CAC1E,CAOA,SAASma,GAAuBJ,EAAa,CAC3C,IAAIP,EAAW,IAAI,SAASO,CAAW,EACnCxkB,EAGJ,GAAI,CACF,IAAI6kB,EACAC,EACAC,EAGJ,GAAId,EAAS,SAAS,CAAC,IAAM,KAAQA,EAAS,SAAS,CAAC,IAAM,IAG5D,QAFIC,EAASD,EAAS,WAClBhhB,EAAS,EACNA,EAAS,EAAIihB,GAAQ,CAC1B,GAAID,EAAS,SAAShhB,CAAM,IAAM,KAAQghB,EAAS,SAAShhB,EAAS,CAAC,IAAM,IAAM,CAChF6hB,EAAY7hB,EACZ,KACV,CACQA,GAAU,CAClB,CAEI,GAAI6hB,EAAW,CACb,IAAIE,EAAaF,EAAY,EACzBG,EAAaH,EAAY,GAC7B,GAAId,GAAsBC,EAAUe,EAAY,CAAC,IAAM,OAAQ,CAC7D,IAAIE,EAAajB,EAAS,UAAUgB,CAAU,EAE9C,GADAJ,EAAeK,IAAe,OAC1BL,GAAgBK,IAAe,QAC7BjB,EAAS,UAAUgB,EAAa,EAAGJ,CAAY,IAAM,GAAQ,CAC/D,IAAIM,EAAiBlB,EAAS,UAAUgB,EAAa,EAAGJ,CAAY,EAChEM,GAAkB,IACpBJ,EAAWE,EAAaE,EAEtC,CAEA,CACA,CACI,GAAIJ,EAAU,CACZ,IAAIK,EAAUnB,EAAS,UAAUc,EAAUF,CAAY,EACnDQ,EACAvhD,EACJ,IAAKA,EAAI,EAAGA,EAAIshD,EAASthD,GAAK,EAE5B,GADAuhD,EAAUN,EAAWjhD,EAAI,GAAK,EAC1BmgD,EAAS,UAAUoB,EAASR,CAAY,IAAM,IAA0B,CAE1EQ,GAAW,EAGXrlB,EAAcikB,EAAS,UAAUoB,EAASR,CAAY,EAGtDZ,EAAS,UAAUoB,EAAS,EAAGR,CAAY,EAC3C,KACV,CAEA,CACG,MAAW,CACV7kB,EAAc,CAClB,CACE,OAAOA,CACT,CAOA,SAASslB,GAAiBtlB,EAAa,CACrC,IAAIof,EAAS,EACTC,EAAS,EACTC,EAAS,EACb,OAAQtf,EAAW,CAEjB,IAAK,GACHqf,EAAS,GACT,MAGF,IAAK,GACHD,EAAS,KACT,MAGF,IAAK,GACHE,EAAS,GACT,MAGF,IAAK,GACHF,EAAS,GACTE,EAAS,GACT,MAGF,IAAK,GACHF,EAAS,GACT,MAGF,IAAK,GACHA,EAAS,GACTC,EAAS,GACT,MAGF,IAAK,GACHD,EAAS,IACT,KACN,CACE,MAAO,CACL,OAAQA,EACR,OAAQC,EACR,OAAQC,CACT,CACH,CACA,IAAIvC,GAAkB,uBAStB,SAASC,GAAuBphC,EAAO,CACrC,IAAIqhC,EAAQ,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,KAChF,OAAOF,GAAgB,KAAKnhC,CAAK,EAAI,KAAK,MAAMA,EAAQqhC,CAAK,EAAIA,EAAQrhC,CAC3E,CAQA,SAASmlC,GAAiBj2B,EAAM,CAC9B,IAAIm2B,EAAcn2B,EAAK,YACrBuV,EAASvV,EAAK,OACdyN,EAAQzN,EAAK,MACXjP,EAAO,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,OAC3EqlC,EAAe3E,GAAiBhkB,CAAK,EACrC4oB,EAAgB5E,GAAiBlc,CAAM,EAC3C,GAAI6gB,GAAgBC,EAAe,CACjC,IAAIC,EAAgB/gB,EAAS4gB,GACxBplC,IAAS,WAAaA,IAAS,SAAWulC,EAAgB7oB,GAAS1c,IAAS,SAAWulC,EAAgB7oB,EAC1G8H,EAAS9H,EAAQ0oB,EAEjB1oB,EAAQ8H,EAAS4gB,CAEpB,MAAUC,EACT7gB,EAAS9H,EAAQ0oB,EACRE,IACT5oB,EAAQ8H,EAAS4gB,GAEnB,MAAO,CACL,MAAO1oB,EACP,OAAQ8H,CACT,CACH,CAOA,SAAS4xB,GAAQzN,EAAa,CAK5B,QAJI0N,EAAQ7vB,GAAQ,IAAI,WAAWmiB,CAAW,CAAC,EAC3CN,EAASgO,EAAM,OACfC,EAAW,CAAE,EACbjvB,EAAQ,EACLA,EAAQ,EAAIghB,GAAQ,CACzB,IAAItoC,EAAQs2C,EAAMhvB,CAAK,EACnB1H,EAAO02B,EAAMhvB,EAAQ,CAAC,EAG1B,GAAItnB,IAAU,KAAQ4f,IAAS,IAC7B,MAIF,GAAI5f,IAAU,KAAQ4f,IAAS,IAC7B0H,GAAS,MACJ,CACL,IAAID,EAASivB,EAAMhvB,EAAQ,CAAC,EAAI,IAAMgvB,EAAMhvB,EAAQ,CAAC,EACjDE,EAAMF,EAAQD,EAAS,EACvBmvB,EAAUF,EAAM,MAAMhvB,EAAOE,CAAG,EACpC+uB,EAAS,KAAKC,CAAO,EACrBlvB,EAAQE,CACd,CACA,CACE,OAAO+uB,EAAS,OAAO,SAAUE,EAAW1xB,EAAS,CACnD,OAAIA,EAAQ,CAAC,IAAM,KAAQA,EAAQ,CAAC,IAAM,IACjC0xB,EAAU,OAAO1xB,CAAO,EAE1B0xB,CACR,EAAE,EAAE,CACP,CAQA,SAASC,GAAW9N,EAAa6N,EAAW,CAC1C,IAAIH,EAAQ7vB,GAAQ,IAAI,WAAWmiB,CAAW,CAAC,EAC/C,GAAI0N,EAAM,CAAC,IAAM,KAAQA,EAAM,CAAC,IAAM,IACpC,OAAO1N,EAET,IAAI+N,EAAaL,EAAM,CAAC,EAAI,IAAMA,EAAM,CAAC,EACrCM,EAAiB,CAAC,IAAM,GAAI,EAAE,OAAOH,EAAWH,EAAM,MAAM,EAAIK,CAAU,CAAC,EAC/E,OAAO,IAAI,WAAWC,CAAc,CACtC,CAEA,IAAIC,GAAgBxZ,GAAO,YACzByZ,GAAazZ,GAAO,WAClB0Z,GAAM1Z,GAAO,KAAOA,GAAO,UAC3B2Z,GAAmB,SACnBC,GAAoB5Z,GAAO,WAM3B6Z,GAA0B,UAAY,CAMxC,SAASA,EAAW5wC,EAAMhJ,EAAS,CACjC6+B,GAAgB,KAAM+a,CAAU,EAChC,KAAK,KAAO5wC,EACZ,KAAK,KAAO,CAAE,EACd,KAAK,MAAQ,IAAI,MACjB,KAAK,QAAUw1B,GAAeA,GAAe,CAAA,EAAIyE,EAAQ,EAAGjjC,CAAO,EACnE,KAAK,QAAU,GACf,KAAK,OAAS,KACd,KAAK,KAAM,CACf,CACE,OAAAi/B,GAAa2a,EAAY,CAAC,CACxB,IAAK,OACL,MAAO,UAAgB,CACrB,IAAI/K,EAAQ,KACR7lC,EAAO,KAAK,KACdhJ,EAAU,KAAK,QACjB,GAAI,CAACy4C,GAAOzvC,CAAI,EAAG,CACjB,KAAK,KAAK,IAAI,MAAM,mDAAmD,CAAC,EACxE,MACR,CACM,IAAI8b,EAAW9b,EAAK,KACpB,GAAI,CAAC2vC,GAAY7zB,CAAQ,EAAG,CAC1B,KAAK,KAAK,IAAI,MAAM,0DAA0D,CAAC,EAC/E,MACR,CACM,GAAI,CAAC20B,IAAO,CAACD,GAAY,CACvB,KAAK,KAAK,IAAI,MAAM,yDAAyD,CAAC,EAC9E,MACR,CACWD,KACHv5C,EAAQ,iBAAmB,GAC3BA,EAAQ,WAAa,IAEvB,IAAI65C,EAAc/0B,IAAa,aAC3Bg1B,EAAmBD,GAAe75C,EAAQ,iBAC1C+5C,EAAaF,GAAe75C,EAAQ,WACxC,GAAIy5C,IAAO,CAACK,GAAoB,CAACC,EAC/B,KAAK,KAAK,CACR,IAAKN,GAAI,gBAAgBzwC,CAAI,CACvC,CAAS,MACI,CACL,IAAIgxC,EAAS,IAAIR,GACjB,KAAK,OAASQ,EACdA,EAAO,OAAS,SAAUpoC,EAAM,CAC9B,IAAItF,EAASsF,EAAK,OACdrN,EAAS+H,EAAO,OAChB+F,EAAO,CAAE,EACTyU,EAAc,EACdgzB,IAGFhzB,EAAc4kB,GAAuBnnC,CAAM,EACvCuiB,EAAc,GAChB0C,GAASnX,EAAM+5B,GAAiBtlB,CAAW,CAAC,GAG5CizB,IACFlL,EAAM,KAAOkK,GAAQx0C,CAAM,GAEzBu1C,GAAoBC,EAClB,CAACN,IAGF3yB,EAAc,EACfzU,EAAK,IAAMm5B,GAAqBjnC,EAAQugB,CAAQ,EAEhDzS,EAAK,IAAMonC,GAAI,gBAAgBzwC,CAAI,EAGrCqJ,EAAK,IAAM9N,EAEbsqC,EAAM,KAAKx8B,CAAI,CAChB,EACD2nC,EAAO,QAAU,UAAY,CAC3BnL,EAAM,KAAK,IAAI,MAAM,4CAA4C,CAAC,CACnE,EACDmL,EAAO,QAAU,UAAY,CAC3BnL,EAAM,KAAK,IAAI,MAAM,2CAA2C,CAAC,CAClE,EACDmL,EAAO,UAAY,UAAY,CAC7BnL,EAAM,OAAS,IAChB,EACGiL,GAAoBC,EACtBC,EAAO,kBAAkBhxC,CAAI,EAE7BgxC,EAAO,cAAchxC,CAAI,CAEnC,CACA,CACA,EAAK,CACD,IAAK,OACL,MAAO,SAAcqJ,EAAM,CACzB,IAAI+/B,EAAS,KACTppC,EAAO,KAAK,KACd6c,EAAQ,KAAK,MACfA,EAAM,OAAS,UAAY,CACzBusB,EAAO,KAAK5T,GAAeA,GAAe,CAAA,EAAInsB,CAAI,EAAG,GAAI,CACvD,aAAcwT,EAAM,aACpB,cAAeA,EAAM,aAC/B,CAAS,CAAC,CACH,EACDA,EAAM,QAAU,UAAY,CAC1BusB,EAAO,KAAK,IAAI,MAAM,4BAA4B,CAAC,CACpD,EACDvsB,EAAM,QAAU,UAAY,CAC1BusB,EAAO,KAAK,IAAI,MAAM,2BAA2B,CAAC,CACnD,EAIGrS,GAAO,WAAa,sCAAsC,KAAKA,GAAO,UAAU,SAAS,IAE3Fla,EAAM,YAAc,aAEtBA,EAAM,IAAM7c,EAAK,KACjB6c,EAAM,IAAMxT,EAAK,GACvB,CACA,EAAK,CACD,IAAK,OACL,MAAO,SAAcgE,EAAO,CAC1B,IAAI4jC,EAAS,KACT5Q,EAAehzB,EAAM,aACvBizB,EAAgBjzB,EAAM,cACtB6jC,EAAe7jC,EAAM,OACrB6vB,EAASgU,IAAiB,OAAS,EAAIA,EACvCC,EAAe9jC,EAAM,OACrB8vB,EAASgU,IAAiB,OAAS,EAAIA,EACvCC,EAAe/jC,EAAM,OACrB+vB,EAASgU,IAAiB,OAAS,EAAIA,EACrCpxC,EAAO,KAAK,KACd6c,EAAQ,KAAK,MACb7lB,EAAU,KAAK,QACbwlB,EAAS,SAAS,cAAc,QAAQ,EACxCtM,EAAUsM,EAAO,WAAW,IAAI,EAChC60B,EAAqB,KAAK,IAAInU,CAAM,EAAI,MAAQ,GAChDoU,GAAat6C,EAAQ,SAAW,WAAaA,EAAQ,SAAW,UAAYqjC,GAAiBrjC,EAAQ,KAAK,GAAKqjC,GAAiBrjC,EAAQ,MAAM,EAC9I8pC,EAAW,KAAK,IAAI9pC,EAAQ,SAAU,CAAC,GAAK,IAC5CgqC,EAAY,KAAK,IAAIhqC,EAAQ,UAAW,CAAC,GAAK,IAC9CkqC,EAAW,KAAK,IAAIlqC,EAAQ,SAAU,CAAC,GAAK,EAC5CoqC,EAAY,KAAK,IAAIpqC,EAAQ,UAAW,CAAC,GAAK,EAC9C+nC,EAAcsB,EAAeC,EAC7BjqB,EAAQrf,EAAQ,MAClBmnB,EAASnnB,EAAQ,OACnB,GAAIq6C,EAAoB,CACtB,IAAIl2B,EAAQ,CAAC6lB,EAAWF,CAAQ,EAChCA,EAAW3lB,EAAM,CAAC,EAClB6lB,EAAY7lB,EAAM,CAAC,EACnB,IAAI2jB,EAAQ,CAACsC,EAAWF,CAAQ,EAChCA,EAAWpC,EAAM,CAAC,EAClBsC,EAAYtC,EAAM,CAAC,EACnB,IAAIM,EAAQ,CAACjhB,EAAQ9H,CAAK,EAC1BA,EAAQ+oB,EAAM,CAAC,EACfjhB,EAASihB,EAAM,CAAC,CACxB,CACUkS,IACFvS,EAAc1oB,EAAQ8H,GAExB,IAAIgmB,EAAoBtF,GAAiB,CACvC,YAAaE,EACb,MAAO+B,EACP,OAAQE,CACT,EAAE,SAAS,EACZF,EAAWqD,EAAkB,MAC7BnD,EAAYmD,EAAkB,OAC9B,IAAIoN,EAAqB1S,GAAiB,CACxC,YAAaE,EACb,MAAOmC,EACP,OAAQE,CACT,EAAE,OAAO,EAGV,GAFAF,EAAWqQ,EAAmB,MAC9BnQ,EAAYmQ,EAAmB,OAC3BD,EAAW,CACb,IAAIE,EAAqB3S,GAAiB,CACxC,YAAaE,EACb,MAAO1oB,EACP,OAAQ8H,CAClB,EAAWnnB,EAAQ,MAAM,EACjBqf,EAAQm7B,EAAmB,MAC3BrzB,EAASqzB,EAAmB,MACpC,KAAa,CACL,IAAIC,EAAqB5S,GAAiB,CACxC,YAAaE,EACb,MAAO1oB,EACP,OAAQ8H,CAClB,CAAS,EACGuzB,EAAwBD,EAAmB,MAC/Cp7B,EAAQq7B,IAA0B,OAASrR,EAAeqR,EAC1D,IAAIC,EAAwBF,EAAmB,OAC/CtzB,EAASwzB,IAA0B,OAASrR,EAAgBqR,CACpE,CACMt7B,EAAQ,KAAK,MAAMykB,GAAuB,KAAK,IAAI,KAAK,IAAIzkB,EAAO6qB,CAAQ,EAAGJ,CAAQ,CAAC,CAAC,EACxF3iB,EAAS,KAAK,MAAM2c,GAAuB,KAAK,IAAI,KAAK,IAAI3c,EAAQijB,CAAS,EAAGJ,CAAS,CAAC,CAAC,EAC5F,IAAI4Q,EAAQ,CAACv7B,EAAQ,EACjBw7B,EAAQ,CAAC1zB,EAAS,EAClBsjB,EAAYprB,EACZqrB,EAAavjB,EACbwjB,GAAS,CAAE,EACf,GAAI2P,EAAW,CACb,IAAIrJ,EAAO,EACPC,EAAO,EACPC,EAAW9H,EACX+H,GAAY9H,EACZwR,GAAqBjT,GAAiB,CACxC,YAAaE,EACb,MAAOsB,EACP,OAAQC,CAClB,EAAW,CACD,QAAS,QACT,MAAO,SACjB,EAAUtpC,EAAQ,MAAM,CAAC,EACjBmxC,EAAW2J,GAAmB,MAC9B1J,GAAY0J,GAAmB,OAC/B7J,GAAQ5H,EAAe8H,GAAY,EACnCD,GAAQ5H,EAAgB8H,IAAa,EACrCzG,GAAO,KAAKsG,EAAMC,EAAMC,EAAUC,EAAS,CACnD,CAEM,GADAzG,GAAO,KAAKiQ,EAAOC,EAAOpQ,EAAWC,CAAU,EAC3C2P,EAAoB,CACtB,IAAIzR,GAAQ,CAACzhB,EAAQ9H,CAAK,EAC1BA,EAAQupB,GAAM,CAAC,EACfzhB,EAASyhB,GAAM,CAAC,CACxB,CACMpjB,EAAO,MAAQnG,EACfmG,EAAO,OAAS2B,EACXwxB,GAAY34C,EAAQ,QAAQ,IAC/BA,EAAQ,SAAWgJ,EAAK,MAE1B,IAAI+xC,GAAY,cAGZ/xC,EAAK,KAAOhJ,EAAQ,aAAeA,EAAQ,aAAa,QAAQA,EAAQ,QAAQ,GAAK,IACvFA,EAAQ,SAAW,cAErB,IAAI65C,GAAc75C,EAAQ,WAAa,aAWvC,GAVI65C,KACFkB,GAAY,QAId7hC,EAAQ,UAAY6hC,GACpB7hC,EAAQ,SAAS,EAAG,EAAGmG,EAAO8H,CAAM,EAChCnnB,EAAQ,YACVA,EAAQ,WAAW,KAAK,KAAMkZ,EAASsM,CAAM,EAE3C,MAAK,UAGTtM,EAAQ,KAAM,EACdA,EAAQ,UAAUmG,EAAQ,EAAG8H,EAAS,CAAC,EACvCjO,EAAQ,OAAOgtB,EAAS,KAAK,GAAK,GAAG,EACrChtB,EAAQ,MAAMitB,EAAQC,CAAM,EAC5BltB,EAAQ,UAAU,MAAMA,EAAS,CAAC2M,CAAK,EAAE,OAAO8kB,EAAM,CAAC,EACvDzxB,EAAQ,QAAS,EACblZ,EAAQ,MACVA,EAAQ,KAAK,KAAK,KAAMkZ,EAASsM,CAAM,EAErC,MAAK,SAGT,KAAIjU,GAAW,SAAkBoU,GAAM,CACrC,GAAI,CAACs0B,EAAO,QAAS,CACnB,IAAI3H,GAAO,SAAc/tC,GAAQ,CAC/B,OAAO01C,EAAO,KAAK,CACjB,aAAc5Q,EACd,cAAeC,EACf,OAAQ/kC,EACtB,CAAa,CACF,EACD,GAAIohB,IAAQk0B,IAAe75C,EAAQ,YAAci6C,EAAO,MAAQA,EAAO,KAAK,OAAS,EAAG,CACtF,IAAI33B,GAAO,SAAcgpB,GAAa,CACpC,OAAOgH,GAAKkG,GAAOhN,GAAqB4N,GAAW9N,GAAa2O,EAAO,IAAI,EAAGj6C,EAAQ,QAAQ,CAAC,CAAC,CACjG,EACD,GAAI2lB,GAAK,YACPA,GAAK,YAAW,EAAG,KAAKrD,EAAI,EAAE,MAAM,UAAY,CAC9C23B,EAAO,KAAK,IAAI,MAAM,8DAA8D,CAAC,CACrG,CAAe,MACI,CACL,IAAID,GAAS,IAAIR,GACjBS,EAAO,OAASD,GAChBA,GAAO,OAAS,SAAUnR,GAAO,CAC/B,IAAIv8B,GAASu8B,GAAM,OACnBvmB,GAAKhW,GAAO,MAAM,CACnB,EACD0tC,GAAO,QAAU,UAAY,CAC3BC,EAAO,KAAK,IAAI,MAAM,uDAAuD,CAAC,CAC/E,EACDD,GAAO,QAAU,UAAY,CAC3BC,EAAO,KAAK,IAAI,MAAM,sDAAsD,CAAC,CAC9E,EACDD,GAAO,UAAY,UAAY,CAC7BC,EAAO,OAAS,IACjB,EACDD,GAAO,kBAAkBr0B,EAAI,CAC3C,CACA,MACY2sB,GAAK3sB,EAAI,CAErB,CACO,EACGH,EAAO,OACTA,EAAO,OAAOjU,GAAUvR,EAAQ,SAAUA,EAAQ,OAAO,EAEzDuR,GAASinC,GAAOhzB,EAAO,UAAUxlB,EAAQ,SAAUA,EAAQ,OAAO,CAAC,CAAC,EAE5E,CACA,EAAK,CACD,IAAK,OACL,MAAO,SAAc8oC,EAAO,CAC1B,IAAIO,EAAeP,EAAM,aACvBQ,EAAgBR,EAAM,cACtBvkC,EAASukC,EAAM,OACb9/B,EAAO,KAAK,KACd6c,EAAQ,KAAK,MACb7lB,EAAU,KAAK,QAIjB,GAHIy5C,IAAO5zB,EAAM,IAAI,QAAQ,OAAO,IAAM,GACxC4zB,GAAI,gBAAgB5zB,EAAM,GAAG,EAE3BthB,EAEF,GAAIvE,EAAQ,QAAU,CAACA,EAAQ,YAAcuE,EAAO,KAAOyE,EAAK,MAAQhJ,EAAQ,WAAagJ,EAAK,MAAQ,EAAEhJ,EAAQ,MAAQqpC,GAAgBrpC,EAAQ,OAASspC,GAAiBtpC,EAAQ,SAAWqpC,GAAgBrpC,EAAQ,UAAYspC,GAAiBtpC,EAAQ,SAAWqpC,GAAgBrpC,EAAQ,UAAYspC,GAC3S/kC,EAASyE,MACJ,CACL,IAAIuB,EAAO,IAAI,KACfhG,EAAO,aAAegG,EAAK,QAAS,EACpChG,EAAO,iBAAmBgG,EAC1BhG,EAAO,KAAOyE,EAAK,KAGfzE,EAAO,MAAQA,EAAO,OAASyE,EAAK,OACtCzE,EAAO,KAAOA,EAAO,KAAK,QAAQm1C,GAAkBd,GAAqBr0C,EAAO,IAAI,CAAC,EAEjG,MAGQA,EAASyE,EAEX,KAAK,OAASzE,EACVvE,EAAQ,SACVA,EAAQ,QAAQ,KAAK,KAAMuE,CAAM,CAEzC,CACA,EAAK,CACD,IAAK,OACL,MAAO,SAAc6O,EAAK,CACxB,IAAIpT,EAAU,KAAK,QACnB,GAAIA,EAAQ,MACVA,EAAQ,MAAM,KAAK,KAAMoT,CAAG,MAE5B,OAAMA,CAEd,CACA,EAAK,CACD,IAAK,QACL,MAAO,UAAiB,CACjB,KAAK,UACR,KAAK,QAAU,GACX,KAAK,OACP,KAAK,OAAO,MAAO,EACT,KAAK,MAAM,SAIrB,KAAK,KAAK,IAAI,MAAM,2CAA2C,CAAC,GAHhE,KAAK,MAAM,OAAS,KACpB,KAAK,MAAM,QAAS,GAK9B,CAMG,CAAA,EAAG,CAAC,CACH,IAAK,aACL,MAAO,UAAsB,CAC3B,cAAO,WAAaumC,GACbC,CACb,CAMA,EAAK,CACD,IAAK,cACL,MAAO,SAAqB55C,EAAS,CACnCwpB,GAASyZ,GAAUjjC,CAAO,CAChC,CACA,CAAG,CAAC,EACK45C,CACT,EAAG,EC5hCH,MAAe54C,GAAA,CACb,QAAS,CAEP,kBAAmB,wBACnB,YAAa,qCACjB,CACA,ECNA,SAAS7B,GAA4BxU,EAAGD,EAAG,CAAE,GAAI,CAAC,CAAA,EAAG,eAAe,KAAKC,EAAGD,CAAC,EAAG,MAAM,IAAI,UAAU,gDAAgD,EAAG,OAAOC,CAAE,CAChK,IAAIyU,GAAK,EACT,SAASC,GAA2B1U,EAAG,CAAE,MAAO,aAAeyU,KAAO,IAAMzU,CAAE,CAS9E,MAAM6hB,GAAiB,CACrB,QAAS,GACT,MAAO,EACT,EACA,IAAIwuC,GAAiC37C,GAA2B,kBAAkB,EACnE,MAAMu6C,WAAmBvgC,EAAW,CACjD,YAAYC,EAAM3M,EAAM,CACtB,MAAM2M,EAAM,CACV,GAAG9M,GACH,GAAGG,CACT,CAAK,EACD,OAAO,eAAe,KAAMquC,GAAmB,CAC7C,SAAU,GACV,MAAO,MACb,CAAK,EACD,KAAK,GAAK,KAAK,KAAK,IAAM,aAC1B,KAAK,KAAO,WACZ,KAAK,cAAgBh6C,GACrB7B,GAA4B,KAAM67C,EAAiB,EAAEA,EAAiB,EAAI,IAAI3E,GAAiB,KAAK,KAAK,KAAK,EAC9G,KAAK,SAAU,EACf,KAAK,cAAgB,KAAK,cAAc,KAAK,IAAI,EACjD,KAAK,SAAW,KAAK,SAAS,KAAK,IAAI,CAC3C,CACE,SAAS1wB,EAAM,CACb,OAAO,IAAI,QAAQ,CAACD,EAASiB,IAAW,CAEtC,IAAIs0B,GAAat1B,EAAM,CACrB,GAAG,KAAK,KACR,QAASD,EACT,MAAOiB,CACf,CAAO,CACP,CAAK,CACL,CACE,MAAM,cAAc9S,EAAS,CAC3B,IAAIqnC,EAAsB,EAC1B,MAAMC,EAAkB,CAAE,EACpBC,EAAyBj8C,GAA4B,KAAM67C,EAAiB,EAAEA,EAAiB,EAAE,oBAAoB,MAAMhyC,GAAQ,CACvI,GAAI,CACF,MAAMqyC,EAAiB,MAAM,KAAK,SAASryC,EAAK,IAAI,EAC9CsyC,EAAwBtyC,EAAK,KAAK,KAAOqyC,EAAe,KAC9D,KAAK,KAAK,IAAI,4BAA4BryC,EAAK,EAAE,kBAAkBmC,GAAcmwC,CAAqB,CAAC,EAAE,EACzGJ,GAAuBI,EACvB,KAAM,CACJ,KAAAhyC,EACA,KAAA3G,EACA,KAAAH,CACV,EAAY64C,EACEE,EAAqB5yC,GAAwBW,CAAI,EAIjDkyC,EAAc,GAHC7yC,GAAwBK,EAAK,KAAK,IAAI,EAGvB,IAAI,IAAIuyC,EAAmB,SAAS,GACxE,KAAK,KAAK,aAAavyC,EAAK,GAAI,CAC9B,GAAIM,GAAQ,CACV,KAAAA,CACZ,EACU,GAAIiyC,EAAmB,WAAa,CAClC,UAAWA,EAAmB,SAC1C,EACU,GAAI54C,GAAQ,CACV,KAAAA,CACZ,EACU,GAAIH,GAAQ,CACV,KAAAA,CACZ,EACU,KAAM64C,EACN,KAAM,CACJ,GAAGryC,EAAK,KACR,KAAArG,EACA,KAAM64C,CAClB,CACA,CAAS,EACDL,EAAgB,KAAKnyC,CAAI,CAC1B,OAAQoK,EAAK,CACZ,KAAK,KAAK,IAAI,yCAAyCpK,EAAK,EAAE,IAAK,SAAS,EAC5E,KAAK,KAAK,IAAIoK,EAAK,SAAS,CACpC,CACA,CAAK,EACKqoC,EAAW5nC,EAAQ,IAAIhC,GAAU,CACrC,IAAI6pC,EACJ,MAAM1yC,EAAO,KAAK,KAAK,QAAQ6I,CAAM,EAerC,OAdA,KAAK,KAAK,KAAK,sBAAuB7I,EAAM,CAC1C,KAAM,gBACN,QAAS,KAAK,KAAK,mBAAmB,CAC9C,CAAO,EACGA,EAAK,WAOJA,EAAK,KAAK,OACbA,EAAK,KAAOA,EAAK,KAAK,MAAM,EAAGA,EAAK,KAAK,KAAMA,EAAK,IAAI,GAEtD,GAAG0yC,EAAa1yC,EAAK,OAAS,MAAQ0yC,EAAW,WAAW,QAAQ,IAC/D,QAAQ,QAAS,EAEnBN,EAAuBpyC,CAAI,CACxC,CAAK,EAMD,MAAM,QAAQ,IAAIyyC,CAAQ,EAC1B,KAAK,KAAK,KAAK,sBAAuBN,CAAe,EAGjDD,EAAsB,MACxB,KAAK,KAAK,KAAK,KAAK,KAAK,cAAe,CACtC,KAAM/vC,GAAc+vC,CAAmB,CACxC,CAAA,EAAG,MAAM,EAEZ,UAAWrpC,KAAUgC,EAAS,CAC5B,MAAM7K,EAAO,KAAK,KAAK,QAAQ6I,CAAM,EACrC,KAAK,KAAK,KAAK,sBAAuB7I,CAAI,CAChD,CACA,CACE,SAAU,CACR,KAAK,KAAK,gBAAgB,KAAK,aAAa,CAChD,CACE,WAAY,CACV,KAAK,KAAK,mBAAmB,KAAK,aAAa,CACnD,CACA,CCxIO,SAAS2yC,GAAqB5tC,EAAO,CAC1C,MAAM6tC,EAAW5yC,GAAQ,UAAWA,GAAQ,CAAC,CAACA,EAAK,MACnD,OAAO+E,EAAM,OAAO/E,GAAQ,CAAC4yC,EAAS5yC,CAAI,CAAC,CAC7C,CAGO,SAAS6yC,GAA+B9tC,EAAO,CACpD,OAAOA,EAAM,OAAO/E,GAAQ,CAC1B,IAAI8yC,EACJ,MAAO,GAAGA,EAAiB9yC,EAAK,WAAa,MAAQ8yC,EAAe,gBAAkB,CAAC9yC,EAAK,UAChG,CAAG,CACH,CCXA,SAAS7J,GAA4BxU,EAAGD,EAAG,CAAE,GAAI,CAAC,CAAA,EAAG,eAAe,KAAKC,EAAGD,CAAC,EAAG,MAAM,IAAI,UAAU,gDAAgD,EAAG,OAAOC,CAAE,CAChK,IAAIyU,GAAK,EACT,SAASC,GAA2B1U,EAAG,CAAE,MAAO,aAAeyU,KAAO,IAAMzU,CAAE,CAC9E,IAAIoxD,GAAqB18C,GAA2B,MAAM,EACtD28C,GAAuB38C,GAA2B,QAAQ,EAK/C,MAAM48C,EAAa,CAChC,YAAY3iC,EAAM,CAChB,OAAO,eAAe,KAAMyiC,GAAO,CACjC,SAAU,GACV,MAAO,MACb,CAAK,EACD,OAAO,eAAe,KAAMC,GAAS,CACnC,SAAU,GACV,MAAO,CAAA,CACb,CAAK,EACD78C,GAA4B,KAAM48C,EAAK,EAAEA,EAAK,EAAIziC,CACtD,CACE,GAAGjY,EAAOtI,EAAI,CACZoG,OAAAA,GAA4B,KAAM68C,EAAO,EAAEA,EAAO,EAAE,KAAK,CAAC36C,EAAOtI,CAAE,CAAC,EAC7DoG,GAA4B,KAAM48C,EAAK,EAAEA,EAAK,EAAE,GAAG16C,EAAOtI,CAAE,CACvE,CACE,QAAS,CACP,SAAW,CAACsI,EAAOtI,CAAE,IAAKoG,GAA4B,KAAM68C,EAAO,EAAEA,EAAO,EAAE,OAAO,CAAC,EACpF78C,GAA4B,KAAM48C,EAAK,EAAEA,EAAK,EAAE,IAAI16C,EAAOtI,CAAE,CAEnE,CACE,YAAY8Y,EAAQqqC,EAAI,CACtB,KAAK,GAAG,eAAgB,CAACC,EAAc7nC,IAAa,CAC9CzC,IAAWsqC,GACbD,EAAG5nC,CAAQ,CAEnB,CAAK,CACL,CACE,aAAazC,EAAQqqC,EAAI,CACvB,KAAK,GAAG,eAAgBlzC,GAAQ,CAC1B6I,IAAW7I,EAAK,IAAIkzC,EAAGlzC,EAAK,EAAE,CACxC,CAAK,CACL,CACE,QAAQ6I,EAAQqqC,EAAI,CAClB,KAAK,GAAG,eAAgB,CAACC,EAAc7nC,IAAa,CAC9CzC,IAAWsqC,GAEbD,EAAG5nC,CAAQ,CAEnB,CAAK,CACL,CACE,QAAQzC,EAAQqqC,EAAI,CAClB,KAAK,GAAG,eAAgBC,GAAgB,CAClCtqC,IAAWsqC,GACbD,EAAI,CAEZ,CAAK,CACL,CACE,WAAWrqC,EAAQqqC,EAAI,CACrB,KAAK,GAAG,YAAa,IAAM,CACpB/8C,GAA4B,KAAM48C,EAAK,EAAEA,EAAK,EAAE,QAAQlqC,CAAM,GACnEqqC,EAAI,CACV,CAAK,CACL,CACE,WAAWrqC,EAAQqqC,EAAI,CACrB,KAAK,GAAG,YAAa,IAAM,CACpB/8C,GAA4B,KAAM48C,EAAK,EAAEA,EAAK,EAAE,QAAQlqC,CAAM,GACnEqqC,EAAI,CACV,CAAK,CACL,CACE,YAAYrqC,EAAQuqC,EAAc,CAChC,IAAIvN,EAAQ,KACZ,KAAK,GAAG,aAAc,UAAY,CAC3B1vC,GAA4B0vC,EAAOkN,EAAK,EAAEA,EAAK,EAAE,QAAQlqC,CAAM,GACpEuqC,EAAa,GAAG,SAAS,CAC/B,CAAK,CACL,CACE,YAAYvqC,EAAQqqC,EAAI,CACtB,KAAK,GAAG,aAAc,IAAM,CACrB/8C,GAA4B,KAAM48C,EAAK,EAAEA,EAAK,EAAE,QAAQlqC,CAAM,GACnEqqC,EAAI,CACV,CAAK,CACL,CACA,CClFA,SAAS/8C,GAA4BxU,EAAGD,EAAG,CAAE,GAAI,CAAC,CAAA,EAAG,eAAe,KAAKC,EAAGD,CAAC,EAAG,MAAM,IAAI,UAAU,gDAAgD,EAAG,OAAOC,CAAE,CAChK,IAAIyU,GAAK,EACT,SAASC,GAA2B1U,EAAG,CAAE,MAAO,aAAeyU,KAAO,IAAMzU,CAAE,CAC9E,IAAI0xD,GAA2Bh9C,GAA2B,YAAY,EAClEi9C,GAAuBj9C,GAA2B,QAAQ,EAC1Dk9C,GAA2Bl9C,GAA2B,YAAY,EAClEm9C,GAAwBn9C,GAA2B,SAAS,EAOhE,MAAMo9C,EAAgB,CACpB,YAAYC,EAEZC,EAAgB,CACd,OAAO,eAAe,KAAMN,GAAa,CACvC,SAAU,GACV,MAAO,MACb,CAAK,EACD,OAAO,eAAe,KAAMC,GAAS,CACnC,SAAU,GACV,MAAO,EACb,CAAK,EACD,OAAO,eAAe,KAAMC,GAAa,CACvC,SAAU,GACV,MAAO,MACb,CAAK,EACD,OAAO,eAAe,KAAMC,GAAU,CACpC,SAAU,GACV,MAAO,MACb,CAAK,EACDr9C,GAA4B,KAAMq9C,EAAQ,EAAEA,EAAQ,EAAIE,EACxDv9C,GAA4B,KAAMo9C,EAAW,EAAEA,EAAW,EAAI,IAAMI,EAAeD,CAAO,CAC9F,CACE,UAAW,CAILv9C,GAA4B,KAAMm9C,EAAO,EAAEA,EAAO,GAClDn9C,GAA4B,KAAMq9C,EAAQ,EAAEA,EAAQ,EAAI,IAC1D,aAAar9C,GAA4B,KAAMk9C,EAAW,EAAEA,EAAW,CAAC,EACxEl9C,GAA4B,KAAMk9C,EAAW,EAAEA,EAAW,EAAI,WAAWl9C,GAA4B,KAAMo9C,EAAW,EAAEA,EAAW,EAAGp9C,GAA4B,KAAMq9C,EAAQ,EAAEA,EAAQ,CAAC,EAEjM,CACE,MAAO,CACAr9C,GAA4B,KAAMm9C,EAAO,EAAEA,EAAO,IACrD,aAAan9C,GAA4B,KAAMk9C,EAAW,EAAEA,EAAW,CAAC,EACxEl9C,GAA4B,KAAMk9C,EAAW,EAAEA,EAAW,EAAI,OAC9Dl9C,GAA4B,KAAMm9C,EAAO,EAAEA,EAAO,EAAI,GAE5D,CACA,CCrDA,IAAIM,GAAW,CACb,QAAS,CAAA,CACX,GAEC,SAAS5hC,EAAQ6hC,EAAS,EACxB,SAASC,EAAS,CAEf9hC,EAAO,QAAU8hC,EAAS,CAE7B,GAAG,SAASC,EAAa,CACxB,IAAIC,EAAU,CAAE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAK,EAChG,SAASC,EAASlxD,EAAGK,EAAG,CACtB,IAAInB,EAAIc,EAAE,CAAC,EAAG,EAAIA,EAAE,CAAC,EAAGZ,EAAIY,EAAE,CAAC,EAAGT,EAAIS,EAAE,CAAC,EACzCd,IAAM,EAAIE,EAAI,CAAC,EAAIG,GAAKc,EAAE,CAAC,EAAI,UAAY,EAC3CnB,GAAKA,GAAK,EAAIA,IAAM,IAAM,EAAI,EAC9BK,IAAML,EAAI,EAAI,CAACA,EAAIE,GAAKiB,EAAE,CAAC,EAAI,UAAY,EAC3Cd,GAAKA,GAAK,GAAKA,IAAM,IAAML,EAAI,EAC/BE,IAAMG,EAAIL,EAAI,CAACK,EAAI,GAAKc,EAAE,CAAC,EAAI,UAAY,EAC3CjB,GAAKA,GAAK,GAAKA,IAAM,IAAMG,EAAI,EAC/B,IAAMH,EAAIG,EAAI,CAACH,EAAIF,GAAKmB,EAAE,CAAC,EAAI,WAAa,EAC5C,GAAK,GAAK,GAAK,IAAM,IAAMjB,EAAI,EAC/BF,IAAM,EAAIE,EAAI,CAAC,EAAIG,GAAKc,EAAE,CAAC,EAAI,UAAY,EAC3CnB,GAAKA,GAAK,EAAIA,IAAM,IAAM,EAAI,EAC9BK,IAAML,EAAI,EAAI,CAACA,EAAIE,GAAKiB,EAAE,CAAC,EAAI,WAAa,EAC5Cd,GAAKA,GAAK,GAAKA,IAAM,IAAML,EAAI,EAC/BE,IAAMG,EAAIL,EAAI,CAACK,EAAI,GAAKc,EAAE,CAAC,EAAI,WAAa,EAC5CjB,GAAKA,GAAK,GAAKA,IAAM,IAAMG,EAAI,EAC/B,IAAMH,EAAIG,EAAI,CAACH,EAAIF,GAAKmB,EAAE,CAAC,EAAI,SAAW,EAC1C,GAAK,GAAK,GAAK,IAAM,IAAMjB,EAAI,EAC/BF,IAAM,EAAIE,EAAI,CAAC,EAAIG,GAAKc,EAAE,CAAC,EAAI,WAAa,EAC5CnB,GAAKA,GAAK,EAAIA,IAAM,IAAM,EAAI,EAC9BK,IAAML,EAAI,EAAI,CAACA,EAAIE,GAAKiB,EAAE,CAAC,EAAI,WAAa,EAC5Cd,GAAKA,GAAK,GAAKA,IAAM,IAAML,EAAI,EAC/BE,IAAMG,EAAIL,EAAI,CAACK,EAAI,GAAKc,EAAE,EAAE,EAAI,MAAQ,EACxCjB,GAAKA,GAAK,GAAKA,IAAM,IAAMG,EAAI,EAC/B,IAAMH,EAAIG,EAAI,CAACH,EAAIF,GAAKmB,EAAE,EAAE,EAAI,WAAa,EAC7C,GAAK,GAAK,GAAK,IAAM,IAAMjB,EAAI,EAC/BF,IAAM,EAAIE,EAAI,CAAC,EAAIG,GAAKc,EAAE,EAAE,EAAI,WAAa,EAC7CnB,GAAKA,GAAK,EAAIA,IAAM,IAAM,EAAI,EAC9BK,IAAML,EAAI,EAAI,CAACA,EAAIE,GAAKiB,EAAE,EAAE,EAAI,SAAW,EAC3Cd,GAAKA,GAAK,GAAKA,IAAM,IAAML,EAAI,EAC/BE,IAAMG,EAAIL,EAAI,CAACK,EAAI,GAAKc,EAAE,EAAE,EAAI,WAAa,EAC7CjB,GAAKA,GAAK,GAAKA,IAAM,IAAMG,EAAI,EAC/B,IAAMH,EAAIG,EAAI,CAACH,EAAIF,GAAKmB,EAAE,EAAE,EAAI,WAAa,EAC7C,GAAK,GAAK,GAAK,IAAM,IAAMjB,EAAI,EAC/BF,IAAM,EAAIK,EAAIH,EAAI,CAACG,GAAKc,EAAE,CAAC,EAAI,UAAY,EAC3CnB,GAAKA,GAAK,EAAIA,IAAM,IAAM,EAAI,EAC9BK,IAAML,EAAIE,EAAI,EAAI,CAACA,GAAKiB,EAAE,CAAC,EAAI,WAAa,EAC5Cd,GAAKA,GAAK,EAAIA,IAAM,IAAML,EAAI,EAC9BE,IAAMG,EAAI,EAAIL,EAAI,CAAC,GAAKmB,EAAE,EAAE,EAAI,UAAY,EAC5CjB,GAAKA,GAAK,GAAKA,IAAM,IAAMG,EAAI,EAC/B,IAAMH,EAAIF,EAAIK,EAAI,CAACL,GAAKmB,EAAE,CAAC,EAAI,UAAY,EAC3C,GAAK,GAAK,GAAK,IAAM,IAAMjB,EAAI,EAC/BF,IAAM,EAAIK,EAAIH,EAAI,CAACG,GAAKc,EAAE,CAAC,EAAI,UAAY,EAC3CnB,GAAKA,GAAK,EAAIA,IAAM,IAAM,EAAI,EAC9BK,IAAML,EAAIE,EAAI,EAAI,CAACA,GAAKiB,EAAE,EAAE,EAAI,SAAW,EAC3Cd,GAAKA,GAAK,EAAIA,IAAM,IAAML,EAAI,EAC9BE,IAAMG,EAAI,EAAIL,EAAI,CAAC,GAAKmB,EAAE,EAAE,EAAI,UAAY,EAC5CjB,GAAKA,GAAK,GAAKA,IAAM,IAAMG,EAAI,EAC/B,IAAMH,EAAIF,EAAIK,EAAI,CAACL,GAAKmB,EAAE,CAAC,EAAI,UAAY,EAC3C,GAAK,GAAK,GAAK,IAAM,IAAMjB,EAAI,EAC/BF,IAAM,EAAIK,EAAIH,EAAI,CAACG,GAAKc,EAAE,CAAC,EAAI,UAAY,EAC3CnB,GAAKA,GAAK,EAAIA,IAAM,IAAM,EAAI,EAC9BK,IAAML,EAAIE,EAAI,EAAI,CAACA,GAAKiB,EAAE,EAAE,EAAI,WAAa,EAC7Cd,GAAKA,GAAK,EAAIA,IAAM,IAAML,EAAI,EAC9BE,IAAMG,EAAI,EAAIL,EAAI,CAAC,GAAKmB,EAAE,CAAC,EAAI,UAAY,EAC3CjB,GAAKA,GAAK,GAAKA,IAAM,IAAMG,EAAI,EAC/B,IAAMH,EAAIF,EAAIK,EAAI,CAACL,GAAKmB,EAAE,CAAC,EAAI,WAAa,EAC5C,GAAK,GAAK,GAAK,IAAM,IAAMjB,EAAI,EAC/BF,IAAM,EAAIK,EAAIH,EAAI,CAACG,GAAKc,EAAE,EAAE,EAAI,WAAa,EAC7CnB,GAAKA,GAAK,EAAIA,IAAM,IAAM,EAAI,EAC9BK,IAAML,EAAIE,EAAI,EAAI,CAACA,GAAKiB,EAAE,CAAC,EAAI,SAAW,EAC1Cd,GAAKA,GAAK,EAAIA,IAAM,IAAML,EAAI,EAC9BE,IAAMG,EAAI,EAAIL,EAAI,CAAC,GAAKmB,EAAE,CAAC,EAAI,WAAa,EAC5CjB,GAAKA,GAAK,GAAKA,IAAM,IAAMG,EAAI,EAC/B,IAAMH,EAAIF,EAAIK,EAAI,CAACL,GAAKmB,EAAE,EAAE,EAAI,WAAa,EAC7C,GAAK,GAAK,GAAK,IAAM,IAAMjB,EAAI,EAC/BF,IAAM,EAAIE,EAAIG,GAAKc,EAAE,CAAC,EAAI,OAAS,EACnCnB,GAAKA,GAAK,EAAIA,IAAM,IAAM,EAAI,EAC9BK,IAAML,EAAI,EAAIE,GAAKiB,EAAE,CAAC,EAAI,WAAa,EACvCd,GAAKA,GAAK,GAAKA,IAAM,IAAML,EAAI,EAC/BE,IAAMG,EAAIL,EAAI,GAAKmB,EAAE,EAAE,EAAI,WAAa,EACxCjB,GAAKA,GAAK,GAAKA,IAAM,IAAMG,EAAI,EAC/B,IAAMH,EAAIG,EAAIL,GAAKmB,EAAE,EAAE,EAAI,SAAW,EACtC,GAAK,GAAK,GAAK,IAAM,GAAKjB,EAAI,EAC9BF,IAAM,EAAIE,EAAIG,GAAKc,EAAE,CAAC,EAAI,WAAa,EACvCnB,GAAKA,GAAK,EAAIA,IAAM,IAAM,EAAI,EAC9BK,IAAML,EAAI,EAAIE,GAAKiB,EAAE,CAAC,EAAI,WAAa,EACvCd,GAAKA,GAAK,GAAKA,IAAM,IAAML,EAAI,EAC/BE,IAAMG,EAAIL,EAAI,GAAKmB,EAAE,CAAC,EAAI,UAAY,EACtCjB,GAAKA,GAAK,GAAKA,IAAM,IAAMG,EAAI,EAC/B,IAAMH,EAAIG,EAAIL,GAAKmB,EAAE,EAAE,EAAI,WAAa,EACxC,GAAK,GAAK,GAAK,IAAM,GAAKjB,EAAI,EAC9BF,IAAM,EAAIE,EAAIG,GAAKc,EAAE,EAAE,EAAI,UAAY,EACvCnB,GAAKA,GAAK,EAAIA,IAAM,IAAM,EAAI,EAC9BK,IAAML,EAAI,EAAIE,GAAKiB,EAAE,CAAC,EAAI,UAAY,EACtCd,GAAKA,GAAK,GAAKA,IAAM,IAAML,EAAI,EAC/BE,IAAMG,EAAIL,EAAI,GAAKmB,EAAE,CAAC,EAAI,UAAY,EACtCjB,GAAKA,GAAK,GAAKA,IAAM,IAAMG,EAAI,EAC/B,IAAMH,EAAIG,EAAIL,GAAKmB,EAAE,CAAC,EAAI,SAAW,EACrC,GAAK,GAAK,GAAK,IAAM,GAAKjB,EAAI,EAC9BF,IAAM,EAAIE,EAAIG,GAAKc,EAAE,CAAC,EAAI,UAAY,EACtCnB,GAAKA,GAAK,EAAIA,IAAM,IAAM,EAAI,EAC9BK,IAAML,EAAI,EAAIE,GAAKiB,EAAE,EAAE,EAAI,UAAY,EACvCd,GAAKA,GAAK,GAAKA,IAAM,IAAML,EAAI,EAC/BE,IAAMG,EAAIL,EAAI,GAAKmB,EAAE,EAAE,EAAI,UAAY,EACvCjB,GAAKA,GAAK,GAAKA,IAAM,IAAMG,EAAI,EAC/B,IAAMH,EAAIG,EAAIL,GAAKmB,EAAE,CAAC,EAAI,UAAY,EACtC,GAAK,GAAK,GAAK,IAAM,GAAKjB,EAAI,EAC9BF,IAAME,GAAK,EAAI,CAACG,IAAMc,EAAE,CAAC,EAAI,UAAY,EACzCnB,GAAKA,GAAK,EAAIA,IAAM,IAAM,EAAI,EAC9BK,IAAM,GAAKL,EAAI,CAACE,IAAMiB,EAAE,CAAC,EAAI,WAAa,EAC1Cd,GAAKA,GAAK,GAAKA,IAAM,IAAML,EAAI,EAC/BE,IAAMF,GAAKK,EAAI,CAAC,IAAMc,EAAE,EAAE,EAAI,WAAa,EAC3CjB,GAAKA,GAAK,GAAKA,IAAM,IAAMG,EAAI,EAC/B,IAAMA,GAAKH,EAAI,CAACF,IAAMmB,EAAE,CAAC,EAAI,SAAW,EACxC,GAAK,GAAK,GAAK,IAAM,IAAMjB,EAAI,EAC/BF,IAAME,GAAK,EAAI,CAACG,IAAMc,EAAE,EAAE,EAAI,WAAa,EAC3CnB,GAAKA,GAAK,EAAIA,IAAM,IAAM,EAAI,EAC9BK,IAAM,GAAKL,EAAI,CAACE,IAAMiB,EAAE,CAAC,EAAI,WAAa,EAC1Cd,GAAKA,GAAK,GAAKA,IAAM,IAAML,EAAI,EAC/BE,IAAMF,GAAKK,EAAI,CAAC,IAAMc,EAAE,EAAE,EAAI,QAAU,EACxCjB,GAAKA,GAAK,GAAKA,IAAM,IAAMG,EAAI,EAC/B,IAAMA,GAAKH,EAAI,CAACF,IAAMmB,EAAE,CAAC,EAAI,WAAa,EAC1C,GAAK,GAAK,GAAK,IAAM,IAAMjB,EAAI,EAC/BF,IAAME,GAAK,EAAI,CAACG,IAAMc,EAAE,CAAC,EAAI,WAAa,EAC1CnB,GAAKA,GAAK,EAAIA,IAAM,IAAM,EAAI,EAC9BK,IAAM,GAAKL,EAAI,CAACE,IAAMiB,EAAE,EAAE,EAAI,SAAW,EACzCd,GAAKA,GAAK,GAAKA,IAAM,IAAML,EAAI,EAC/BE,IAAMF,GAAKK,EAAI,CAAC,IAAMc,EAAE,CAAC,EAAI,WAAa,EAC1CjB,GAAKA,GAAK,GAAKA,IAAM,IAAMG,EAAI,EAC/B,IAAMA,GAAKH,EAAI,CAACF,IAAMmB,EAAE,EAAE,EAAI,WAAa,EAC3C,GAAK,GAAK,GAAK,IAAM,IAAMjB,EAAI,EAC/BF,IAAME,GAAK,EAAI,CAACG,IAAMc,EAAE,CAAC,EAAI,UAAY,EACzCnB,GAAKA,GAAK,EAAIA,IAAM,IAAM,EAAI,EAC9BK,IAAM,GAAKL,EAAI,CAACE,IAAMiB,EAAE,EAAE,EAAI,WAAa,EAC3Cd,GAAKA,GAAK,GAAKA,IAAM,IAAML,EAAI,EAC/BE,IAAMF,GAAKK,EAAI,CAAC,IAAMc,EAAE,CAAC,EAAI,UAAY,EACzCjB,GAAKA,GAAK,GAAKA,IAAM,IAAMG,EAAI,EAC/B,IAAMA,GAAKH,EAAI,CAACF,IAAMmB,EAAE,CAAC,EAAI,UAAY,EACzC,GAAK,GAAK,GAAK,IAAM,IAAMjB,EAAI,EAC/BY,EAAE,CAAC,EAAId,EAAIc,EAAE,CAAC,EAAI,EAClBA,EAAE,CAAC,EAAI,EAAIA,EAAE,CAAC,EAAI,EAClBA,EAAE,CAAC,EAAIZ,EAAIY,EAAE,CAAC,EAAI,EAClBA,EAAE,CAAC,EAAIT,EAAIS,EAAE,CAAC,EAAI,CACxB,CACI,SAASmxD,EAAOlyD,EAAG,CACjB,IAAImyD,EAAU,CAAA,EAAIvyD,EAClB,IAAKA,EAAI,EAAGA,EAAI,GAAIA,GAAK,EACvBuyD,EAAQvyD,GAAK,CAAC,EAAII,EAAE,WAAWJ,CAAC,GAAKI,EAAE,WAAWJ,EAAI,CAAC,GAAK,IAAMI,EAAE,WAAWJ,EAAI,CAAC,GAAK,KAAOI,EAAE,WAAWJ,EAAI,CAAC,GAAK,IAEzH,OAAOuyD,CACb,CACI,SAASC,EAAanyD,EAAG,CACvB,IAAIkyD,EAAU,CAAA,EAAIvyD,EAClB,IAAKA,EAAI,EAAGA,EAAI,GAAIA,GAAK,EACvBuyD,EAAQvyD,GAAK,CAAC,EAAIK,EAAEL,CAAC,GAAKK,EAAEL,EAAI,CAAC,GAAK,IAAMK,EAAEL,EAAI,CAAC,GAAK,KAAOK,EAAEL,EAAI,CAAC,GAAK,IAE7E,OAAOuyD,CACb,CACI,SAASE,EAAKryD,EAAG,CACf,IAAIH,EAAIG,EAAE,OAAQwmB,EAAQ,CAAE,WAAY,WAAY,YAAa,SAAS,EAAI5mB,EAAGogD,EAAQsS,EAAMC,EAAKC,EAAI7nD,EACxG,IAAK/K,EAAI,GAAIA,GAAKC,EAAGD,GAAK,GACxBqyD,EAASzrC,EAAO0rC,EAAOlyD,EAAE,UAAUJ,EAAI,GAAIA,CAAC,CAAC,CAAC,EAKhD,IAHAI,EAAIA,EAAE,UAAUJ,EAAI,EAAE,EACtBogD,EAAShgD,EAAE,OACXsyD,EAAO,CAAE,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAG,EACpD1yD,EAAI,EAAGA,EAAIogD,EAAQpgD,GAAK,EAC3B0yD,EAAK1yD,GAAK,CAAC,GAAKI,EAAE,WAAWJ,CAAC,IAAMA,EAAI,GAAK,GAG/C,GADA0yD,EAAK1yD,GAAK,CAAC,GAAK,MAAQA,EAAI,GAAK,GAC7BA,EAAI,GAEN,IADAqyD,EAASzrC,EAAO8rC,CAAI,EACf1yD,EAAI,EAAGA,EAAI,GAAIA,GAAK,EACvB0yD,EAAK1yD,CAAC,EAAI,EAGd,OAAA2yD,EAAM1yD,EAAI,EACV0yD,EAAMA,EAAI,SAAS,EAAE,EAAE,MAAM,gBAAgB,EAC7CC,EAAK,SAASD,EAAI,CAAC,EAAG,EAAE,EACxB5nD,EAAK,SAAS4nD,EAAI,CAAC,EAAG,EAAE,GAAK,EAC7BD,EAAK,EAAE,EAAIE,EACXF,EAAK,EAAE,EAAI3nD,EACXsnD,EAASzrC,EAAO8rC,CAAI,EACb9rC,CACb,CACI,SAASisC,EAAWxyD,EAAG,CACrB,IAAIJ,EAAII,EAAE,OAAQumB,EAAQ,CAAE,WAAY,WAAY,YAAa,SAAS,EAAI5mB,EAAGogD,EAAQsS,EAAMC,EAAKC,EAAI7nD,EACxG,IAAK/K,EAAI,GAAIA,GAAKC,EAAGD,GAAK,GACxBqyD,EAASzrC,EAAO4rC,EAAanyD,EAAE,SAASL,EAAI,GAAIA,CAAC,CAAC,CAAC,EAKrD,IAHAK,EAAIL,EAAI,GAAKC,EAAII,EAAE,SAASL,EAAI,EAAE,EAAI,IAAI,WAAW,CAAC,EACtDogD,EAAS//C,EAAE,OACXqyD,EAAO,CAAE,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAG,EACpD1yD,EAAI,EAAGA,EAAIogD,EAAQpgD,GAAK,EAC3B0yD,EAAK1yD,GAAK,CAAC,GAAKK,EAAEL,CAAC,IAAMA,EAAI,GAAK,GAGpC,GADA0yD,EAAK1yD,GAAK,CAAC,GAAK,MAAQA,EAAI,GAAK,GAC7BA,EAAI,GAEN,IADAqyD,EAASzrC,EAAO8rC,CAAI,EACf1yD,EAAI,EAAGA,EAAI,GAAIA,GAAK,EACvB0yD,EAAK1yD,CAAC,EAAI,EAGd,OAAA2yD,EAAM1yD,EAAI,EACV0yD,EAAMA,EAAI,SAAS,EAAE,EAAE,MAAM,gBAAgB,EAC7CC,EAAK,SAASD,EAAI,CAAC,EAAG,EAAE,EACxB5nD,EAAK,SAAS4nD,EAAI,CAAC,EAAG,EAAE,GAAK,EAC7BD,EAAK,EAAE,EAAIE,EACXF,EAAK,EAAE,EAAI3nD,EACXsnD,EAASzrC,EAAO8rC,CAAI,EACb9rC,CACb,CACI,SAASksC,EAAK7yD,EAAG,CACf,IAAIG,EAAI,GAAIiC,EACZ,IAAKA,EAAI,EAAGA,EAAI,EAAGA,GAAK,EACtBjC,GAAKgyD,EAAQnyD,GAAKoC,EAAI,EAAI,EAAI,EAAE,EAAI+vD,EAAQnyD,GAAKoC,EAAI,EAAI,EAAE,EAE7D,OAAOjC,CACb,CACI,SAAS2yD,EAAI5xD,EAAG,CACd,IAAInB,EACJ,IAAKA,EAAI,EAAGA,EAAImB,EAAE,OAAQnB,GAAK,EAC7BmB,EAAEnB,CAAC,EAAI8yD,EAAK3xD,EAAEnB,CAAC,CAAC,EAElB,OAAOmB,EAAE,KAAK,EAAE,CACtB,CACQ4xD,EAAIN,EAAK,OAAO,CAAC,EACjB,OAAO,YAAgB,KAAe,CAAC,YAAY,UAAU,OAC9D,UAAW,CACV,SAASO,EAAMC,EAAK7S,EAAQ,CAE1B,OADA6S,EAAMA,EAAM,GAAK,EACbA,EAAM,EACD,KAAK,IAAIA,EAAM7S,EAAQ,CAAC,EAE1B,KAAK,IAAI6S,EAAK7S,CAAM,CACrC,CACQ,YAAY,UAAU,MAAQ,SAAS8S,EAAM/+C,EAAI,CAC/C,IAAIisC,EAAS,KAAK,WAAY+S,EAAQH,EAAME,EAAM9S,CAAM,EAAG9gB,EAAM8gB,EAAQ1/B,EAAKgB,EAAQ0xC,EAAaC,EAInG,OAHIl/C,IAAOg+C,IACT7yB,EAAM0zB,EAAM7+C,EAAIisC,CAAM,GAEpB+S,EAAQ7zB,EACH,IAAI,YAAY,CAAC,GAE1B5e,EAAM4e,EAAM6zB,EACZzxC,EAAS,IAAI,YAAYhB,CAAG,EAC5B0yC,EAAc,IAAI,WAAW1xC,CAAM,EACnC2xC,EAAc,IAAI,WAAW,KAAMF,EAAOzyC,CAAG,EAC7C0yC,EAAY,IAAIC,CAAW,EACpB3xC,EACR,CACT,EAAU,EAEN,SAAS4xC,EAAOjT,EAAK,CACnB,MAAI,kBAAkB,KAAKA,CAAG,IAC5BA,EAAM,SAAS,mBAAmBA,CAAG,CAAC,GAEjCA,CACb,CACI,SAASkT,EAAoBlT,EAAKmT,EAAkB,CAClD,IAAIpT,EAASC,EAAI,OAAQoT,EAAO,IAAI,YAAYrT,CAAM,EAAG3L,EAAM,IAAI,WAAWgf,CAAI,EAAGzzD,EACrF,IAAKA,EAAI,EAAGA,EAAIogD,EAAQpgD,GAAK,EAC3By0C,EAAIz0C,CAAC,EAAIqgD,EAAI,WAAWrgD,CAAC,EAE3B,OAAOwzD,EAAmB/e,EAAMgf,CACtC,CACI,SAASC,EAAoBD,EAAM,CACjC,OAAO,OAAO,aAAa,MAAM,KAAM,IAAI,WAAWA,CAAI,CAAC,CACjE,CACI,SAASE,EAAwB9zB,EAAOC,EAAQ0zB,EAAkB,CAChE,IAAI75C,EAAS,IAAI,WAAWkmB,EAAM,WAAaC,EAAO,UAAU,EAChE,OAAAnmB,EAAO,IAAI,IAAI,WAAWkmB,CAAK,CAAC,EAChClmB,EAAO,IAAI,IAAI,WAAWmmB,CAAM,EAAGD,EAAM,UAAU,EACzBlmB,CAChC,CACI,SAASi6C,EAAkBb,EAAK,CAC9B,IAAI34B,EAAQ,CAAE,EAAEgmB,EAAS2S,EAAI,OAAQ5xD,EACrC,IAAKA,EAAI,EAAGA,EAAIi/C,EAAS,EAAGj/C,GAAK,EAC/Bi5B,EAAM,KAAK,SAAS24B,EAAI,OAAO5xD,EAAG,CAAC,EAAG,EAAE,CAAC,EAE3C,OAAO,OAAO,aAAa,MAAM,OAAQi5B,CAAK,CACpD,CACI,SAASy5B,GAAW,CAClB,KAAK,MAAO,CAClB,CACI,OAAAA,EAAS,UAAU,OAAS,SAASxT,EAAK,CACxC,YAAK,aAAaiT,EAAOjT,CAAG,CAAC,EACtB,IACR,EACDwT,EAAS,UAAU,aAAe,SAASC,EAAU,CACnD,KAAK,OAASA,EACd,KAAK,SAAWA,EAAS,OACzB,IAAI1T,EAAS,KAAK,MAAM,OAAQpgD,EAChC,IAAKA,EAAI,GAAIA,GAAKogD,EAAQpgD,GAAK,GAC7BqyD,EAAS,KAAK,MAAOC,EAAO,KAAK,MAAM,UAAUtyD,EAAI,GAAIA,CAAC,CAAC,CAAC,EAE9D,YAAK,MAAQ,KAAK,MAAM,UAAUA,EAAI,EAAE,EACjC,IACR,EACD6zD,EAAS,UAAU,IAAM,SAAS7+C,EAAK,CACrC,IAAIy+C,EAAO,KAAK,MAAOrT,EAASqT,EAAK,OAAQzzD,EAAG0yD,EAAO,CAAE,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAG,EAAEqB,EAC3G,IAAK/zD,EAAI,EAAGA,EAAIogD,EAAQpgD,GAAK,EAC3B0yD,EAAK1yD,GAAK,CAAC,GAAKyzD,EAAK,WAAWzzD,CAAC,IAAMA,EAAI,GAAK,GAElD,YAAK,QAAQ0yD,EAAMtS,CAAM,EACzB2T,EAAMhB,EAAI,KAAK,KAAK,EAChB/9C,IACF++C,EAAMH,EAAkBG,CAAG,GAE7B,KAAK,MAAO,EACLA,CACR,EACDF,EAAS,UAAU,MAAQ,UAAW,CACpC,YAAK,MAAQ,GACb,KAAK,QAAU,EACf,KAAK,MAAQ,CAAE,WAAY,WAAY,YAAa,SAAW,EACxD,IACR,EACDA,EAAS,UAAU,SAAW,UAAW,CACvC,MAAO,CACL,KAAM,KAAK,MACX,OAAQ,KAAK,QACb,KAAM,KAAK,MAAM,MAAK,CACvB,CACF,EACDA,EAAS,UAAU,SAAW,SAASjtC,EAAO,CAC5C,YAAK,MAAQA,EAAM,KACnB,KAAK,QAAUA,EAAM,OACrB,KAAK,MAAQA,EAAM,KACZ,IACR,EACDitC,EAAS,UAAU,QAAU,UAAW,CACtC,OAAO,KAAK,MACZ,OAAO,KAAK,MACZ,OAAO,KAAK,OACb,EACDA,EAAS,UAAU,QAAU,SAASnB,EAAMtS,EAAQ,CAClD,IAAIpgD,EAAIogD,EAAQuS,EAAKC,EAAI7nD,EAEzB,GADA2nD,EAAK1yD,GAAK,CAAC,GAAK,MAAQA,EAAI,GAAK,GAC7BA,EAAI,GAEN,IADAqyD,EAAS,KAAK,MAAOK,CAAI,EACpB1yD,EAAI,EAAGA,EAAI,GAAIA,GAAK,EACvB0yD,EAAK1yD,CAAC,EAAI,EAGd2yD,EAAM,KAAK,QAAU,EACrBA,EAAMA,EAAI,SAAS,EAAE,EAAE,MAAM,gBAAgB,EAC7CC,EAAK,SAASD,EAAI,CAAC,EAAG,EAAE,EACxB5nD,EAAK,SAAS4nD,EAAI,CAAC,EAAG,EAAE,GAAK,EAC7BD,EAAK,EAAE,EAAIE,EACXF,EAAK,EAAE,EAAI3nD,EACXsnD,EAAS,KAAK,MAAOK,CAAI,CAC1B,EACDmB,EAAS,KAAO,SAASxT,EAAKrrC,EAAK,CACjC,OAAO6+C,EAAS,WAAWP,EAAOjT,CAAG,EAAGrrC,CAAG,CAC5C,EACD6+C,EAAS,WAAa,SAASG,EAASh/C,EAAK,CAC3C,IAAIi/C,EAAOxB,EAAKuB,CAAO,EAAGD,EAAMhB,EAAIkB,CAAI,EACxC,OAAOj/C,EAAM4+C,EAAkBG,CAAG,EAAIA,CACvC,EACDF,EAAS,YAAc,UAAW,CAChC,KAAK,MAAO,CACb,EACDA,EAAS,YAAY,UAAU,OAAS,SAASpf,EAAK,CACpD,IAAIgf,EAAOE,EAAwB,KAAK,MAAM,OAAQlf,CAAS,EAAG2L,EAASqT,EAAK,OAAQzzD,EAExF,IADA,KAAK,SAAWy0C,EAAI,WACfz0C,EAAI,GAAIA,GAAKogD,EAAQpgD,GAAK,GAC7BqyD,EAAS,KAAK,MAAOG,EAAaiB,EAAK,SAASzzD,EAAI,GAAIA,CAAC,CAAC,CAAC,EAE7D,YAAK,MAAQA,EAAI,GAAKogD,EAAS,IAAI,WAAWqT,EAAK,OAAO,MAAMzzD,EAAI,EAAE,CAAC,EAAI,IAAI,WAAW,CAAC,EACpF,IACR,EACD6zD,EAAS,YAAY,UAAU,IAAM,SAAS7+C,EAAK,CACjD,IAAIy+C,EAAO,KAAK,MAAOrT,EAASqT,EAAK,OAAQf,EAAO,CAAE,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAG,EAAE1yD,EAAG+zD,EAC3G,IAAK/zD,EAAI,EAAGA,EAAIogD,EAAQpgD,GAAK,EAC3B0yD,EAAK1yD,GAAK,CAAC,GAAKyzD,EAAKzzD,CAAC,IAAMA,EAAI,GAAK,GAEvC,YAAK,QAAQ0yD,EAAMtS,CAAM,EACzB2T,EAAMhB,EAAI,KAAK,KAAK,EAChB/9C,IACF++C,EAAMH,EAAkBG,CAAG,GAE7B,KAAK,MAAO,EACLA,CACR,EACDF,EAAS,YAAY,UAAU,MAAQ,UAAW,CAChD,YAAK,MAAQ,IAAI,WAAW,CAAC,EAC7B,KAAK,QAAU,EACf,KAAK,MAAQ,CAAE,WAAY,WAAY,YAAa,SAAW,EACxD,IACR,EACDA,EAAS,YAAY,UAAU,SAAW,UAAW,CACnD,IAAIjtC,EAAQitC,EAAS,UAAU,SAAS,KAAK,IAAI,EACjD,OAAAjtC,EAAM,KAAO8sC,EAAoB9sC,EAAM,IAAI,EACpCA,CACR,EACDitC,EAAS,YAAY,UAAU,SAAW,SAASjtC,EAAO,CACxD,OAAAA,EAAM,KAAO2sC,EAAoB3sC,EAAM,KAAM,EAAI,EAC1CitC,EAAS,UAAU,SAAS,KAAK,KAAMjtC,CAAK,CACpD,EACDitC,EAAS,YAAY,UAAU,QAAUA,EAAS,UAAU,QAC5DA,EAAS,YAAY,UAAU,QAAUA,EAAS,UAAU,QAC5DA,EAAS,YAAY,KAAO,SAASpf,EAAKz/B,EAAK,CAC7C,IAAIi/C,EAAOpB,EAAW,IAAI,WAAWpe,CAAG,CAAC,EAAGsf,EAAMhB,EAAIkB,CAAI,EAC1D,OAAOj/C,EAAM4+C,EAAkBG,CAAG,EAAIA,CACvC,EACMF,CACX,CAAK,CACL,GAAG7B,EAAQ,EAEX,IAAI6B,GAAW7B,GAAS,QAExB,MAAMkC,GAAY,KAAK,UAAU,OAAS,KAAK,UAAU,UAAY,KAAK,UAAU,YAEpF,MAAMC,EAAa,CACjB,OAAO,OAAO/1C,EAAMuI,EAAU,CACX,IAAIwtC,GAAa/1C,CAAI,EAC7B,OAAOuI,CAAQ,CAC5B,CACE,YAAYvI,EAAM,CAChB,KAAK,KAAOA,EACZ,KAAK,UAAY,QACjB,KAAK,WAAa,KAAK,KAAK,KAAK,KAAK,KAAO,KAAK,SAAS,EAC3D,KAAK,WAAa,CACtB,CACE,OAAOuI,EAAU,CACf,KAAK,SAAWA,EAChB,KAAK,UAAY,IAAIktC,GAAS,YAC9B,KAAK,WAAa,IAAI,WACtB,KAAK,WAAW,iBAAiB,OAASp9C,GAAS,KAAK,kBAAkBA,CAAK,CAAG,EAClF,KAAK,WAAW,iBAAiB,QAAUA,GAAS,KAAK,mBAAmBA,CAAK,CAAG,EACpF,KAAK,cAAe,CACxB,CACE,kBAAkBA,EAAO,CAEvB,GADA,KAAK,UAAU,OAAOA,EAAM,OAAO,MAAM,EACrC,CAAC,KAAK,gBAAiB,CACzB,MAAM29C,EAAe,KAAK,UAAU,IAAI,EAAI,EACtCC,EAAe,KAAKD,CAAY,EACtC,KAAK,SAAS,KAAMC,CAAY,CACtC,CACA,CACE,mBAAmB59C,EAAO,CACxB,KAAK,SAAS,iBAAiB,KAAK,KAAK,IAAI,EAAE,CACnD,CACE,eAAgB,CACd,GAAI,KAAK,WAAa,KAAK,YAAc,KAAK,YAAc,GAAK,KAAK,YAAc,EAAG,CACrF,MAAM2oB,EAAQ,KAAK,WAAa,KAAK,UAC/BE,EAAM,KAAK,IAAIF,EAAQ,KAAK,UAAW,KAAK,KAAK,IAAI,EACrDhF,EAAQ85B,GAAU,KAAK,KAAK,KAAM90B,EAAOE,CAAG,EAClD,YAAK,WAAW,kBAAkBlF,CAAK,EACvC,KAAK,aACE,EACb,KACM,OAAO,EAEb,CACA,CAEA,SAASk6B,GAAa51C,EAAM,CAC1B,MAAM2P,EAAUkmC,GAAY,SAAS,KAAM,cAAc71C,CAAI,IAAI,EACjE,GAAI2P,EACF,OAAOA,EAAQ,aAAa,SAAS,CAEzC,CAEA,SAASmmC,GAAal8C,EAAMm8C,EAAU,CAChC,OAAOn8C,GAAQ,WACjBm8C,EAAWn8C,EACXA,EAAO,UAET,MAAMykB,EAAWzkB,EAAK,iBAAiBm8C,CAAQ,EAC/C,OAAOl2B,GAAQxB,CAAQ,CACzB,CAEA,SAASw3B,GAAYj8C,EAAMm8C,EAAU,CACnC,OAAI,OAAOn8C,GAAQ,WACjBm8C,EAAWn8C,EACXA,EAAO,UAEFA,EAAK,cAAcm8C,CAAQ,CACpC,CAEA,SAAS5Z,GAAcxsB,EAAStW,EAAM28C,EAAY,CAAA,EAAI,CACpD,KAAM,CAAC,SAAUC,CAAQ,EAAItmC,EACvB,CAAC,QAASumC,EAAS,WAAYC,EAAY,OAAQC,CAAM,EAAIJ,EAC7Dj+C,EAAQ,SAAS,YAAY,OAAO,EAC1CA,EAAM,UAAUsB,EAAM68C,GAAW,GAAMC,GAAc,EAAI,EACzDp+C,EAAM,OAASq+C,GAAU,CAAE,EAC3B,GAAI,CACFzmC,EAAQ,SAAW,GACnBA,EAAQ,cAAc5X,CAAK,CAC/B,QAAY,CACR4X,EAAQ,SAAWsmC,CACvB,CACE,OAAOl+C,CACT,CAEA,SAAS8nB,GAAQzmB,EAAO,CACtB,OAAI,MAAM,QAAQA,CAAK,EACdA,EACE,MAAM,KACR,MAAM,KAAKA,CAAK,EAEhB,GAAG,MAAM,KAAKA,CAAK,CAE9B,CAEA,MAAMi9C,EAAW,CACf,YAAY32C,EAAM42C,EAAU16B,EAAK26B,EAAgB,CAAA,EAAI,CACnD,KAAK,KAAO72C,EACZ,KAAK,WAAa,CAChB,SAAUA,EAAK,KACf,aAAcA,EAAK,MAAQ,2BAC3B,UAAWA,EAAK,KAChB,SAAU42C,CACX,EACD,KAAK,IAAM,IAAI,eACf,KAAK,IAAI,KAAK,OAAQ16B,EAAK,EAAI,EAC/B,KAAK,IAAI,aAAe,OACxB,KAAK,IAAI,iBAAiB,eAAgB,kBAAkB,EAC5D,KAAK,IAAI,iBAAiB,SAAU,kBAAkB,EACtD,KAAK,IAAI,iBAAiB,mBAAoB,gBAAgB,EAC9D,OAAO,KAAK26B,CAAa,EAAE,QAASC,GAAa,CAC/C,KAAK,IAAI,iBAAiBA,EAAWD,EAAcC,CAAS,CAAC,CACnE,CAAO,EACH,MAAMC,EAAYb,GAAa,YAAY,EACvCa,GAAa,MACf,KAAK,IAAI,iBAAiB,eAAgBA,CAAS,EAErD,KAAK,IAAI,iBAAiB,OAAS1+C,GAAS,KAAK,eAAeA,CAAK,CAAG,EACxE,KAAK,IAAI,iBAAiB,QAAUA,GAAS,KAAK,gBAAgBA,CAAK,CAAG,CAC9E,CACE,IAAI,QAAS,CACX,OAAO,KAAK,IAAI,MACpB,CACE,IAAI,UAAW,CACb,KAAM,CAAC,aAAc2+C,EAAc,SAAUloC,CAAQ,EAAI,KAAK,IAC9D,OAAIkoC,GAAgB,OACXloC,EAEA,KAAK,MAAMA,CAAQ,CAEhC,CACE,OAAOvG,EAAU,CACf,KAAK,SAAWA,EAChB,KAAK,IAAI,KAAK,KAAK,UAAU,CAC3B,KAAM,KAAK,UACjB,CAAK,CAAC,CACN,CACE,eAAelQ,EAAO,CACpB,GAAI,KAAK,QAAU,KAAO,KAAK,OAAS,IAAK,CAC3C,KAAM,CAAC,SAAUyW,CAAQ,EAAI,KACvB,CAAC,cAAemoC,CAAa,EAAInoC,EACvC,OAAOA,EAAS,cAChB,KAAK,WAAaA,EAClB,KAAK,iBAAmBmoC,EACxB,KAAK,SAAS,KAAM,KAAK,OAAM,CAAE,CACvC,MACM,KAAK,gBAAgB5+C,CAAK,CAEhC,CACE,gBAAgBA,EAAO,CACrB,KAAK,SAAS,4BAA4B,KAAK,KAAK,IAAI,cAAc,KAAK,MAAM,EAAE,CACvF,CACE,QAAS,CACP,MAAMkD,EAAS,CAAE,EACjB,UAAWjE,KAAO,KAAK,WACrBiE,EAAOjE,CAAG,EAAI,KAAK,WAAWA,CAAG,EAEnC,OAAOiE,CACX,CACA,CAEA,MAAM27C,EAAW,CACf,YAAYv6B,EAAM,CAChB,KAAK,KAAOA,EACZ,KAAK,KAAOA,EAAK,KACjB,KAAM,CAAC,IAAKT,EAAK,QAASi7B,CAAO,EAAIx6B,EAAK,iBAC1C,KAAK,IAAM,IAAI,eACf,KAAK,IAAI,KAAK,MAAOT,EAAK,EAAI,EAC9B,KAAK,IAAI,aAAe,OACxB,UAAW5kB,KAAO6/C,EAChB,KAAK,IAAI,iBAAiB7/C,EAAK6/C,EAAQ7/C,CAAG,CAAC,EAE7C,KAAK,IAAI,iBAAiB,OAASe,GAAS,KAAK,eAAeA,CAAK,CAAG,EACxE,KAAK,IAAI,iBAAiB,QAAUA,GAAS,KAAK,gBAAgBA,CAAK,CAAG,CAC9E,CACE,OAAOkQ,EAAU,CACf,KAAK,SAAWA,EAChB,KAAK,IAAI,KAAK,KAAK,KAAK,MAAK,CAAE,CACnC,CACE,eAAelQ,EAAO,CACpB,KAAM,CAAC,OAAQ++C,EAAQ,SAAUtoC,CAAQ,EAAI,KAAK,IAC9CsoC,GAAU,KAAOA,EAAS,IAC5B,KAAK,SAAS,KAAMtoC,CAAQ,EAE5B,KAAK,gBAAgBzW,CAAK,CAEhC,CACE,gBAAgBA,EAAO,CACrB,KAAK,SAAS,kBAAkB,KAAK,KAAK,IAAI,cAAc,KAAK,IAAI,MAAM,EAAE,CACjF,CACA,CAEA,IAAIjC,GAAK,EAET,MAAMihD,EAAa,CACjB,YAAYr3C,EAAMkc,EAAKo7B,EAAUT,EAAgB,CAAA,EAAI,CACnD,KAAK,GAAK,EAAEzgD,GACZ,KAAK,KAAO4J,EACZ,KAAK,IAAMkc,EACX,KAAK,SAAWo7B,EAChB,KAAK,cAAgBT,CACzB,CACE,OAAOtuC,EAAU,CACfwtC,GAAa,OAAO,KAAK,KAAO,CAAC7wC,EAAO0xC,IAAa,CACnD,GAAI1xC,EAAO,CACTqD,EAASrD,CAAK,EACd,MACR,CACM,MAAMyX,EAAO,IAAIg6B,GAAW,KAAK,KAAMC,EAAU,KAAK,IAAK,KAAK,aAAa,EAC7EW,GAAO,KAAK,SAAU,oCAAqC56B,EAAK,GAAG,EACnEA,EAAK,OAAQzX,GAAS,CACpB,GAAIA,EACFqD,EAASrD,CAAK,MACT,CACL,MAAMsyC,EAAS,IAAIN,GAAWv6B,CAAI,EAClC46B,GAAO,KAAK,SAAU,mCAAoCC,EAAO,GAAG,EACpEA,EAAO,OAAQtyC,GAAS,CAClBA,EACFqD,EAASrD,CAAK,EAEdqD,EAAS,KAAMoU,EAAK,QAAQ,CAE1C,CAAa,CACb,CACA,CAAS,CACT,CAAO,CACP,CACA,CAEA,SAAS46B,GAAOpJ,EAAQsJ,KAAeC,EAAU,CAC/C,GAAIvJ,GAAU,OAAOA,EAAOsJ,CAAU,GAAK,WACzC,OAAOtJ,EAAOsJ,CAAU,EAAE,GAAGC,CAAQ,CAEzC,CAEA,MAAMC,EAAuB,CAC3B,YAAYv1C,EAAOpC,EAAM,CACvB,KAAK,MAAQoC,EACb,KAAK,KAAOpC,EACZ,KAAK,aAAe,IAAIq3C,GAAa,KAAK,KAAM,KAAK,IAAK,IAAI,EAC9D,KAAK,SAAS,YAAY,CAC9B,CACE,MAAM9uC,EAAU,CACd,MAAMqvC,EAAc,SAAS,cAAc,OAAO,EAClDA,EAAY,KAAO,SACnBA,EAAY,KAAO,KAAK,MAAM,KAC9B,KAAK,MAAM,sBAAsB,cAAeA,CAAW,EAC3D,KAAK,SAAS,OAAO,EACrB,KAAK,aAAa,OAAQ,CAAC1yC,EAAO2yC,IAAe,CAC3C3yC,GACF0yC,EAAY,WAAW,YAAYA,CAAW,EAC9C,KAAK,cAAc1yC,CAAK,GAExB0yC,EAAY,MAAQC,EAAW,UAEjC,KAAK,SAAS,KAAK,EACnBtvC,EAASrD,CAAK,CACpB,CAAO,CACP,CACE,yBAAyB7M,EAAO,CAC9B,MAAM6P,EAAW7P,EAAM,OAASA,EAAM,MAAQ,IAC1C6P,GACF,KAAK,SAAS,WAAY,CACxB,SAAUA,CAClB,CAAO,CAEP,CACE,IAAI,KAAM,CACR,OAAO,KAAK,MAAM,aAAa,wBAAwB,CAC3D,CACE,SAAS5H,EAAMo2C,EAAS,GAAI,CAC1B,OAAAA,EAAO,KAAO,KAAK,KACnBA,EAAO,GAAK,KAAK,aAAa,GACvBja,GAAc,KAAK,MAAO,iBAAiBn8B,CAAI,GAAI,CACxD,OAAQo2C,CACd,CAAK,CACL,CACE,cAAcxxC,EAAO,CACL,KAAK,SAAS,QAAS,CACnC,MAAOA,CACb,CAAK,EACU,kBACT,MAAMA,CAAK,CAEjB,CACE,kCAAkC8jC,EAAK,CACrC,KAAK,SAAS,sBAAuB,CACnC,IAAKA,CACX,CAAK,CACL,CACE,iCAAiCA,EAAK,CACpC,KAAK,SAAS,yBAA0B,CACtC,IAAKA,CACX,CAAK,EACDA,EAAI,OAAO,iBAAiB,WAAa3wC,GAAS,KAAK,yBAAyBA,CAAK,CAAG,CAC5F,CACA,CAEA,MAAMy/C,GAAgB,2DAEtB,MAAMC,EAAwB,CAC5B,YAAYvrB,EAAM,CAChB,KAAK,KAAOA,EACZ,KAAK,OAAS4pB,GAAa5pB,EAAMsrB,EAAa,EAAE,OAAQ11C,GAASA,EAAM,MAAM,MAAQ,CACzF,CACE,MAAMmG,EAAU,CACd,MAAMyvC,EAAc,KAAK,8BAA+B,EAClDC,EAAsB,IAAM,CAChC,MAAMC,EAAaF,EAAY,MAAO,EAClCE,EACFA,EAAW,MAAOhzC,GAAS,CACrBA,GACFqD,EAASrD,CAAK,EACd,KAAK,SAAS,KAAK,GAEnB+yC,EAAqB,CAEjC,CAAW,GAEH1vC,EAAU,EACV,KAAK,SAAS,KAAK,EAEtB,EACD,KAAK,SAAS,OAAO,EACrB0vC,EAAqB,CACzB,CACE,+BAAgC,CAC9B,MAAMD,EAAc,CAAE,EACtB,YAAK,OAAO,QAAS51C,GAAS,CAC5B+d,GAAQ/d,EAAM,KAAK,EAAE,QAASpC,GAAQ,CACpC,MAAMk4C,EAAa,IAAIP,GAAuBv1C,EAAOpC,CAAI,EACzDg4C,EAAY,KAAKE,CAAU,CACnC,CAAS,CACT,CAAO,EACIF,CACX,CACE,SAAS13C,EAAMo2C,EAAS,GAAI,CAC1B,OAAOja,GAAc,KAAK,KAAM,kBAAkBn8B,CAAI,GAAI,CACxD,OAAQo2C,CACd,CAAK,CACL,CACA,CAEA,MAAMyB,GAAsB,iCAEtBC,GAAsB,IAAI,QAEhC,IAAIC,GAAU,GAEd,SAASr3B,IAAQ,CACVq3B,KACHA,GAAU,GACV,SAAS,iBAAiB,QAASC,GAAU,EAAI,EACjD,SAAS,iBAAiB,SAAUC,GAAe,EAAI,EACvD,SAAS,iBAAiB,cAAeC,EAAsB,EAEnE,CAEA,SAASF,GAASjgD,EAAO,CACvB,MAAM2tC,EAAS3tC,EAAM,OAAO,QAAQ,eAAe,EAC/C2tC,GAAUA,EAAO,OAAS,UAAYA,EAAO,MAC/CoS,GAAoB,IAAIpS,EAAO,KAAMA,CAAM,CAE/C,CAEA,SAASuS,GAAclgD,EAAO,CAC5BogD,GAA0BpgD,CAAK,CACjC,CAEA,SAASmgD,GAAuBngD,EAAO,CACjCA,EAAM,OAAO,SAAW,QAC1BogD,GAA0BpgD,CAAK,CAEnC,CAEA,SAASogD,GAA0BpgD,EAAO,CACxC,MAAMm0B,EAAOn0B,EAAM,OACnB,GAAIm0B,EAAK,aAAa2rB,EAAmB,EAAG,CAC1C9/C,EAAM,eAAgB,EACtB,MACJ,CACE,MAAM6/C,EAAa,IAAIH,GAAwBvrB,CAAI,EAC7C,CAAC,OAAQksB,CAAM,EAAIR,EACrBQ,EAAO,SACTrgD,EAAM,eAAgB,EACtBm0B,EAAK,aAAa2rB,GAAqB,EAAE,EACzCO,EAAO,QAAQpmB,EAAO,EACtB4lB,EAAW,MAAOhzC,GAAS,CACzBsnB,EAAK,gBAAgB2rB,EAAmB,EACpCjzC,EACFwzC,EAAO,QAAQC,EAAM,EAErBC,GAAWpsB,CAAI,CAEvB,CAAO,EAEP,CAEA,SAASosB,GAAWpsB,EAAM,CACxB,IAAIwZ,EAASoS,GAAoB,IAAI5rB,CAAI,GAAK2pB,GAAY3pB,EAAM,yCAAyC,EACzG,GAAIwZ,EAAQ,CACV,KAAM,CAAC,SAAUuQ,CAAQ,EAAIvQ,EAC7BA,EAAO,SAAW,GAClBA,EAAO,MAAO,EACdA,EAAO,MAAO,EACdA,EAAO,SAAWuQ,CACtB,MACIvQ,EAAS,SAAS,cAAc,OAAO,EACvCA,EAAO,KAAO,SACdA,EAAO,MAAM,QAAU,OACvBxZ,EAAK,YAAYwZ,CAAM,EACvBA,EAAO,MAAO,EACdxZ,EAAK,YAAYwZ,CAAM,EAEzBoS,GAAoB,OAAO5rB,CAAI,CACjC,CAEA,SAAS8F,GAAQlwB,EAAO,CACtBA,EAAM,SAAW,EACnB,CAEA,SAASu2C,GAAOv2C,EAAO,CACrBA,EAAM,SAAW,EACnB,CAEA,SAASy2C,IAAY,CACf,OAAO,eACT73B,GAAO,CAEX,CAEA,WAAW63B,GAAW,CAAC,ECp0BvB,IAAIC,GAAY,ElHThB,IAAAC,GAAAC,GAAAC,GAAAC,GkHWe,MAAMC,WAA4B9oC,EAAW,CAC1D,YAAYC,EAAM3M,EAAM,CACtB,MAAM2M,EAAM3M,CAAI,EAFLy1C,GAAA,KAAAL,IAyJbK,GAAA,KAAAF,GAAgB,MAAOruC,GAAY,CACjC,GAAIA,EAAQ,SAAW,EAAG,CACxB,KAAK,KAAK,IAAI,qCAAqC,EACnD,MACN,CAIQ,KAAK,KAAK,QAAU,GAAK,CAAC,KAAK,KAAKqjC,EAAwB,GAC9D,KAAK,KAAK,IACR,uPACA,SACR,EAGI,KAAK,KAAK,IAAI,8BAA8B,EAC5C,MAAMnpC,EAAQ,KAAK,KAAK,cAAc8F,CAAO,EAEvCsE,EAAgBwjC,GAAqB5tC,CAAK,EAC1Cs0C,EAAcxG,GAA+B1jC,CAAa,EAChE,KAAK,KAAK,KAAK,eAAgBkqC,CAAW,EAE1C,MAAMC,GAAA,KAAKP,GAAAE,IAAL,UAAkB9pC,EAC5B,GA5KI,KAAK,GAAKxL,EAAK,IAAM,sBACrB,KAAK,MAAQA,EAAK,OAAS,sBAC3B,KAAK,KAAO,WACZ,KAAK,MAAQA,EAAK,OAAS,GAC3B,KAAK,eAAiBA,EAAK,gBAAkB,GAE7C,MAAMH,EAAiB,CACrB,MAAO,EACP,QAAS,GAAK,IACd,gBAAiB,IAClB,EAED,KAAK,KAAO,CAAE,GAAGA,EAAgB,GAAGG,CAAI,EAGpCuqC,MAA4B,KAAK,KACnC,KAAK,SAAW,KAAK,KAAKA,EAAwB,EAElD,KAAK,SAAW,IAAIb,GAAiB,KAAK,KAAK,KAAK,EAGtD,KAAK,eAAiB,OAAO,OAAO,IAAI,CAC5C,CAEE,WAAWkM,EAAO,CAKhB,MAJa,CACX,GAAG,KAAK,IACd,CAGA,CA0GE,aAAc1wC,EAAQqqC,EAAI,CACxB,KAAK,eAAerqC,CAAM,EAAE,GAAG,eAAiB7I,GAAS,CACnD6I,IAAW7I,EAAK,IAAIkzC,EAAGlzC,EAAK,EAAE,CACnC,CAAA,CACL,CAEE,YAAa6I,EAAQuqC,EAAc,CACjC,KAAK,eAAevqC,CAAM,EAAE,GAAG,aAAc,IAAIzP,IAAS,CACnD,KAAK,KAAK,QAAQyP,CAAM,GAC7BuqC,EAAa,GAAGh6C,CAAI,CACrB,CAAA,CACL,CA2BE,SAAU,CACR,KAAK,KAAK,YAAYogD,GAAA,KAAKN,GAAa,CAC5C,CAEE,WAAY,CACV,KAAK,KAAK,eAAeM,GAAA,KAAKN,GAAa,CAC/C,CACA,CAzLeH,GAAA,YAoCPC,GAAO,eAACh5C,EAAMye,EAASna,EAAO,CAClC,MAAMX,EAAO,KAAK,WAAW3D,CAAI,EAEjC,YAAK,KAAK,IAAI,aAAaye,CAAO,OAAOna,CAAK,EAAE,EACzC,IAAI,QAAQ,CAACoY,EAASiB,IAAW,CACtC,MAAMvnB,EAAK,EAAE0iD,GACPzvC,EAAOrJ,EAAK,KAEZy5C,EAAe,IAAIpC,GAAahuC,EAAM,KAAK,KAAK,gBAAiB,CACrE,kCAAoCqwC,GAAS,CAC3C,KAAK,KAAK,IAAI,mBAAmBtjD,CAAE,UAAU,CAC9C,EACD,iCAAmC4yC,GAAQ,CACzCA,EAAI,OAAO,iBAAiB,WAAaxd,GAAO,CAC9C,KAAK,KAAK,IAAI,mBAAmBp1B,CAAE,cAAco1B,EAAG,MAAM,MAAMA,EAAG,KAAK,EAAE,EAG1EmuB,EAAM,SAAQ,EAEVnuB,EAAG,kBACL,KAAK,KAAK,KAAK,kBAAmBxrB,EAAM,CACtC,SAAU,KACV,cAAewrB,EAAG,OAClB,WAAYA,EAAG,KAC/B,CAAe,CAEf,CAAW,CACX,CACA,CAAO,EAED,KAAK,eAAexrB,EAAK,EAAE,EAAI,IAAI45C,GAAa,KAAK,IAAI,EACzD,IAAI/L,EAEJ,MAAM8L,EAAQ,IAAIlG,GAAgB9vC,EAAK,QAAS,IAAM,CACpD,MAAMuB,EAAQ,IAAI,MAAM,KAAK,KAAK,gBAAiB,CAAE,QAAS,KAAK,KAAKvB,EAAK,QAAU,GAAI,CAAC,CAAE,CAAC,EAC/F,KAAK,KAAK,KAAK,iBAAkBuB,EAAO,CAAClF,CAAI,CAAC,CAC/C,CAAA,EAED6tC,EAAgB,KAAK,SAAS,IAAI,KAEhC4L,EAAa,OAAO,CAACpkC,EAAcsH,IAAS,CAC1C,GAAItH,EAAc,CAEhB,KAAK,KAAK,IAAI,mBAAmBjf,CAAE,UAAU,EAC7CujD,EAAM,KAAI,EACV9L,EAAc,KAAI,EACd,KAAK,eAAe7tC,EAAK,EAAE,IAC7B,KAAK,eAAeA,EAAK,EAAE,EAAE,OAAM,EACnC,KAAK,eAAeA,EAAK,EAAE,EAAI,MAGjC,MAAMkF,EAAQ,IAAI,MAAMmQ,CAAY,EACpC,YAAK,KAAK,KAAK,eAAgBrV,EAAMkF,CAAK,EACnCyY,EAAOzY,CAAK,CAC/B,KAAiB,CAEL,KAAK,KAAK,IAAI,mBAAmB9O,CAAE,WAAW,EAC9CujD,EAAM,KAAI,EACV9L,EAAc,KAAI,EACd,KAAK,eAAe7tC,EAAK,EAAE,IAC7B,KAAK,eAAeA,EAAK,EAAE,EAAE,OAAM,EACnC,KAAK,eAAeA,EAAK,EAAE,EAAI,MAGjC,MAAMsP,EAAa,CACjB,OAAQ,UACR,KAAMqN,CACP,EAED,YAAK,KAAK,KAAK,iBAAkB3c,EAAMsP,CAAU,EAE1CoN,EAAQ1c,CAAI,CAC/B,CACA,CAAS,EAEM,IAAM,CACX25C,EAAM,KAAM,EACZF,EAAa,OAASA,EAAa,MAAO,CACpD,EACO,EAED,KAAK,aAAaz5C,EAAK,GAAI,IAAM,CAC/B6tC,EAAc,MAAK,EACnBlwB,EAAO,IAAI,MAAM,cAAc,CAAC,CACjC,CAAA,EAED,KAAK,YAAY3d,EAAK,GAAI,CAAC,CAAE,OAAA65C,CAAM,IAAO,CACpCA,IAAW,QACbhM,EAAc,MAAK,EAErBlwB,EAAO,IAAI,MAAM,kBAAkB,CAAC,CACrC,CAAA,CACP,CAAK,CACL,EAEQs7B,GAAY,eAACl0C,EAAO,CACxB,MAAM,QAAQ,WAAWA,EAAM,IAAI,CAAC/E,EAAMpe,IAAM,CAC9C,MAAM68B,EAAU,SAAS78B,EAAG,EAAE,EAAI,EAC5B0iB,EAAQS,EAAM,OAEpB,OAAOu0C,GAAA,KAAKP,GAAAC,IAAL,UAAah5C,EAAMye,EAASna,EACzC,CAAK,CAAC,CACN,EAeE40C,GAAA,YCpKG,MAACY,GAAQ,CACZ,QAAS,CAAE,EACX,UAAUj4D,EAAG,CACX,OAAIA,IAAM,EACD,EAEF,CACX,CACA,EACAi4D,GAAM,QAAU,CACd,mBAAoB,CAClB,EAAK,sEACL,EAAK,0EACN,EACD,cAAe,mCACf,gBAAiB,yBACjB,6BAA8B,sDAC9B,QAAS,cACT,aAAc,uBACd,wBAAyB,2CACzB,uBAAwB,2GACxB,iBAAkB,2CAClB,4BAA6B,+EAC7B,sBAAuB,8CACvB,qBAAsB,6BACtB,oBAAqB,2BACrB,kBAAmB,oBACnB,YAAa,0BACb,iBAAkB,6BAClB,sBAAuB,qEACvB,KAAM,QACN,OAAQ,UACR,YAAa,uBACb,cAAe,uBACf,OAAQ,WACR,aAAc,kBACd,YAAa,uBACb,WAAY,iBACZ,eAAgB,qCAChB,yBAA0B,oEAC1B,SAAU,aACV,YAAa,0CACb,kBAAmB,2BACnB,oBAAqB,uBACrB,SAAU,gBACV,4BAA6B,yBAC7B,2BAA4B,iCAC5B,iBAAkB,uBAClB,uBAAwB,+BACxB,eAAgB,uBAChB,qBAAsB,6DACtB,oBAAqB,0BACrB,oBAAqB,4BACrB,KAAM,QACN,WAAY,mCACZ,SAAU,2BACV,cAAe,0DACf,eAAgB,wCAChB,iBAAkB,0CAClB,oBAAqB,2EACrB,qBAAsB,yDACtB,uBAAwB,2DACxB,SAAU,iBACV,UAAW,gBACX,qBAAsB,yBACtB,QAAS,mBACT,iBAAkB,kDAClB,SAAU,iBACV,gBAAiB,kFACjB,kBAAmB,qCACnB,iBAAkB,0CAClB,MAAO,QACP,YAAa,uDACb,cAAe,gFACf,eAAgB,2BAChB,WAAY,6BACZ,qBAAsB,CACpB,EAAK,+CACL,EAAK,gDACN,EACD,OAAQ,UACR,kBAAmB,8BACnB,eAAgB,0BAChB,YAAa,CACX,EAAK,mDACL,EAAK,sDACN,EACD,mBAAoB,yCACpB,qBAAsB,0BACtB,OAAQ,WACR,YAAa,2BACb,WAAY,yBACZ,aAAc,iEACd,QAAS,cACT,OAAQ,gBACR,YAAa,qDACb,yBAA0B,0CAC1B,+BAAgC,yDAChC,0BAA2B,CACzB,EAAK,sDACL,EAAK,yDACN,EACD,SAAU,iBACV,mBAAoB,2FACpB,aAAc,0BACd,oBAAqB,8EACrB,cAAe,uBACf,aAAc,oEACd,aAAc,qCACd,qBAAsB,0BACtB,mBAAoB,oCACpB,gBAAiB,wDACjB,gBAAiB,wBACjB,MAAO,SACP,OAAQ,WACR,YAAa,gBACb,gBAAiB,QACjB,cAAe,MACf,iBAAkB,SAClB,kBAAmB,UACnB,mBAAoB,WACpB,sBAAuB,eACvB,oBAAqB,YACrB,mBAAoB,WACpB,eAAgB,OAChB,UAAW,2BACX,iBAAkB,CAChB,EAAK,oCACL,EAAK,oCACN,EACD,UAAW,WACX,gBAAiB,+CACjB,wBAAyB,wFACzB,eAAgB,eAChB,kBAAmB,sEACnB,gBAAiB,CACf,EAAK,uGACL,EAAK,qHACN,EACD,WAAY,mBACZ,SAAU,uBACV,YAAa,qBACb,YAAa,uBACb,OAAQ,WACR,aAAc,kBACd,MAAO,aACP,YAAa,oBACb,OAAQ,WACR,OAAQ,QACR,KAAM,UACN,YAAa,kBACb,OAAQ,SACR,aAAc,kBACd,QAAS,CACP,EAAK,6BACL,EAAK,4BACN,EACD,gBAAiB,oBACjB,iBAAkB,6BAClB,iBAAkB,4BAClB,MAAO,WACP,oBAAqB,6BACrB,eAAgB,8BAChB,eAAgB,6BAChB,mBAAoB,6BACpB,cAAe,8BACf,cAAe,6BACf,aAAc,qBACd,cAAe,qBACf,mBAAoB,yBACpB,YAAa,iBACb,eAAgB,aAChB,SAAU,8DACV,OAAQ,QACR,eAAgB,kBAChB,aAAc,qBACd,UAAW,WACX,gBAAiB,CACf,EAAK,kCACL,EAAK,kCACN,EACD,aAAc,kBACd,cAAe,qGACf,aAAc,CACZ,EAAK,+BACL,EAAK,+BACN,EACD,gBAAiB,CACf,EAAK,gCACL,EAAK,gCACN,EACD,eAAgB,CACd,EAAK,sCACL,EAAK,uCACN,EACD,gBAAiB,CACf,EAAK,uCACL,EAAK,0CACN,EACD,UAAW,mBACX,0BAA2B,8BAC3B,kBAAmB,CACjB,EAAK,2CACL,EAAK,2CACN,EACD,wBAAyB,CACvB,EAAK,oDACL,EAAK,oDACN,EACD,OAAQ,UACR,QAAS,SACT,gBAAiB,6BACjB,kBAAmB,+BACrB,ECnNK,MAACC,GAAQ,CACZ,QAAS,CAAE,EACX,UAAUl4D,EAAG,CACX,OAAIA,IAAM,EACD,EAEF,CACX,CACA,EACAk4D,GAAM,QAAU,CACd,mBAAoB,CAClB,EAAK,6DACL,EAAK,2DACN,EACD,cAAe,4BACf,gBAAiB,oBACjB,6BAA8B,sDAC9B,QAAS,WACT,aAAc,iBACd,qBAAsB,4EACtB,wBAAyB,gCACzB,uBAAwB,wGACxB,iBAAkB,qCAClB,4BAA6B,0EAC7B,sBAAuB,yCACvB,qBAAsB,wBACtB,oBAAqB,uBACrB,kBAAmB,cACnB,YAAa,yBACb,aAAc,UACd,iBAAkB,2BAClB,sBAAuB,yDACvB,KAAM,OACN,OAAQ,SACR,YAAa,eACb,cAAe,iBACf,OAAQ,SACR,aAAc,gBACd,YAAa,eACb,WAAY,cACZ,eAAgB,mCAChB,yBAA0B,kEAC1B,SAAU,WACV,YAAa,sCACb,kBAAmB,wBACnB,oBAAqB,4BACrB,SAAU,YACV,4BAA6B,qBAC7B,2BAA4B,4BAC5B,iBAAkB,sBAClB,uBAAwB,yCACxB,eAAgB,iBAChB,qBAAsB,gDACtB,oBAAqB,0BACrB,sBAAuB,yBACvB,oBAAqB,wBACrB,KAAM,OACN,WAAY,yBACZ,SAAU,uBACV,cAAe,sDACf,eAAgB,oCAChB,iBAAkB,sCAClB,oBAAqB,oEACrB,qBAAsB,kDACtB,uBAAwB,oDACxB,SAAU,YACV,qBAAsB,oBACtB,UAAW,aACX,QAAS,kBACT,iBAAkB,wCAClB,SAAU,cACV,gBAAiB,2EACjB,kBAAmB,kCACnB,iBAAkB,6BAClB,MAAO,QACP,YAAa,kDACb,cAAe,oEACf,eAAgB,2BAChB,qBAAsB,CACpB,EAAK,8CACL,EAAK,8CACN,EACD,OAAQ,SACR,kBAAmB,sBACnB,eAAgB,oBAChB,YAAa,CACX,EAAK,2CACL,EAAK,2CACN,EACD,mBAAoB,2CACpB,qBAAsB,2BACtB,OAAQ,SACR,YAAa,qBACb,WAAY,sBACZ,aAAc,wDACd,aAAc,2BACd,QAAS,aACT,MAAO,SACP,OAAQ,UACR,YAAa,mCACb,yBAA0B,+BAC1B,+BAAgC,8CAChC,0BAA2B,CACzB,EAAK,0CACL,EAAK,0CACN,EACD,SAAU,YACV,mBAAoB,sFACpB,aAAc,2BACd,oBAAqB,4EACrB,cAAe,uBACf,aAAc,iEACd,aAAc,oCACd,qBAAsB,yBACtB,mBAAoB,wBACpB,gBAAiB,sDACjB,gBAAiB,sBACjB,MAAO,QACP,OAAQ,SACR,YAAa,eACb,UAAW,aACX,WAAY,cACZ,WAAY,cACZ,gBAAiB,QACjB,cAAe,MACf,iBAAkB,SAClB,kBAAmB,UACnB,mBAAoB,WACpB,sBAAuB,eACvB,uBAAwB,gBACxB,4BAA6B,eAC7B,6BAA8B,gBAC9B,oBAAqB,YACrB,mBAAoB,WACpB,wBAAyB,aACzB,mBAAoB,WACpB,cAAe,OACf,iBAAkB,SAClB,eAAgB,OAChB,uBAAwB,0DACxB,UAAW,qBACX,iBAAkB,CAChB,EAAK,iCACL,EAAK,iCACN,EACD,UAAW,YACX,gBAAiB,uCACjB,wBAAyB,uEACzB,eAAgB,eAChB,kBAAmB,wDACnB,gBAAiB,CACf,EAAK,gFACL,EAAK,+FACN,EACD,WAAY,cACZ,SAAU,YACV,YAAa,eACb,YAAa,eACb,OAAQ,SACR,aAAc,gBACd,MAAO,QACP,YAAa,eACb,OAAQ,QACR,OAAQ,aACR,KAAM,OACN,YAAa,eACb,OAAQ,SACR,aAAc,oBACd,QAAS,CACP,EAAK,wBACL,EAAK,uBACN,EACD,gBAAiB,mBACjB,iBAAkB,qBAClB,iBAAkB,sBAClB,MAAO,SACP,oBAAqB,wBACrB,eAAgB,yBAChB,eAAgB,wBAChB,mBAAoB,uBACpB,cAAe,wBACf,cAAe,uBACf,aAAc,gBACd,cAAe,iBACf,mBAAoB,uBACpB,YAAa,iBACb,eAAgB,eAChB,QAAS,UACT,OAAQ,SACR,eAAgB,kBAChB,aAAc,gBACd,UAAW,YACX,gBAAiB,CACf,EAAK,gCACL,EAAK,gCACN,EACD,aAAc,gBACd,cAAe,qFACf,aAAc,CACZ,EAAK,6BACL,EAAK,6BACN,EACD,gBAAiB,CACf,EAAK,8BACL,EAAK,8BACN,EACD,eAAgB,CACd,EAAK,+BACL,EAAK,+BACN,EACD,gBAAiB,CACf,EAAK,iCACL,EAAK,iCACN,EACD,UAAW,eACX,0BAA2B,gCAC3B,kBAAmB,CACjB,EAAK,0CACL,EAAK,0CACN,EACD,wBAAyB,CACvB,EAAK,kDACL,EAAK,kDACN,EACD,OAAQ,UACR,QAAS,UACX,EAGI,OAAO,KAAS,MAElB,WAAW,KAAK,QAAQ,MAAQA,IC1NlC,MAAMC,GAAc,CAClB,GAAMC,GACN,GAAMC,GACN,GAAMC,EACR,EAEe,MAAMC,EAAa,CAChC,YAAYC,EAAYpqC,EAAS,CAC/B,KAAK,WAAaoqC,EAElB,KAAK,QAAUpqC,EAEf,KAAK,KAAO,IAAI/I,GAAK,CACnB,YAAa,GACb,2BAA4B,GAC5B,OAAQ8yC,GAAY,KAAK,MAAM,EAC/B,aAAc,CACZ,iBAAkB,CAAC,SAAS,CAC7B,CACP,CAAK,EAED,KAAK,KAAK,IAAIxrB,GAAW,CAKvB,8BAA+B,GAC/B,SAAU,aAChB,CAAK,EAED,KAAK,KAAK,IAAIod,GAAa,CACzB,QAAS,EACf,CAAK,EAQD,KAAK,KAAK,IAAIgF,GAAY,CACxB,QAAS,EACf,CAAK,EAED,KAAK,KAAK,IAAIuI,GAAqB,CACjC,gBAAiB,KAAK,eAC5B,CAAK,EAED,KAAK,KAAK,GAAG,uBAAyB5tC,GAAgB,CACpD,KAAK,KAAK,UAAU,WAAW,EAAE,WAAY,CACnD,CAAK,EAED,KAAK,KAAK,GAAG,yBAA2BigB,GAAO,CAC7C,KAAK,KAAK,OAAQ,CACxB,CAAK,EAUD,KAAK,KAAK,GAAG,WAAatjB,GAAa,CAErC,KAAK,WAAW,kBAAkBA,CAAQ,CAChD,CAAK,EAED,KAAK,KAAK,GAAG,iBAAkB,CAAClI,EAAMsP,IAAe,CAEnD,KAAM,CAAE,KAAAqN,CAAI,EAAKrN,EAEjB,KAAK,WAAW,cAAc,CAC5B,KAAMqN,EAAK,gBACX,IAAK,KAAK,cAAcA,EAAK,UAAWA,EAAK,QAAQ,CAC7D,CAAO,CACP,CAAK,EAED,KAAK,KAAK,QAAQ,CAChB,KAAM09B,EAAW,KAAK,KACtB,KAAMA,EAAW,KAAK,KACtB,KAAMA,EAAW,KACjB,KAAM,CACJ,aAAcA,EAAW,KAAK,kBAC/B,EACD,OAAQ,QACR,SAAU,EAChB,CAAK,CACL,CAEE,MAAO,CACL,KAAK,KAAK,UAAU,WAAW,EAAE,UAAW,CAChD,CAEE,cAAcC,EAAUC,EAAU,CAChC,OAAO,KAAK,gBACT,QAAQ,aAAcD,CAAQ,EAC9B,QAAQ,YAAa,mBAAmBC,CAAQ,CAAC,CACxD,CAEE,IAAI,iBAAkB,CACpB,OAAO,KAAK,QAAQ,QAAQ,eAChC,CAEE,IAAI,iBAAkB,CACpB,OAAO,KAAK,QAAQ,QAAQ,eAChC,CACA,CCvHA,MAAMC,GAAc,CAAC/uB,EAASosB,EAAa,KAAO,CAChD,MAAM5nC,EAAU,SAAS,cAAcwb,CAAO,EAE9C,UAAWn0B,KAAOugD,EAChB5nC,EAAQ,aAAa3Y,EAAKugD,EAAWvgD,CAAG,CAAC,EAG3C,OAAO2Y,CACT,EAGMwqC,GAAc/3B,GAAS,CtHf7B,IAAAg4B,EsHe6B,OAAAA,EAAAh4B,GAAA,YAAAA,EAAM,aAAN,YAAAg4B,EAAkB,YAAYh4B,IAE3Di4B,GAAK,OAAO,MAAM,UAAY,SAASpyC,EAAS,CAC9C,MAAMqyC,EAAc,mBAAmB,KAAK,IAAG,EAAG,SAAS,EAAE,CAAC,GACxDx4C,EAAQo4C,GAAY,QAAS,CAAE,KAAM,OAAQ,SAAU,GAAO,OAAQ,GAAM,OAAQ,UAAW,GAAII,CAAW,CAAE,EAEtHx4C,EAAM,iBAAiB,SAAU,IAAM,CACrCmG,EAASnG,EAAM,KAAK,EACpBq4C,GAAWr4C,CAAK,CACpB,CAAG,EAEDq4C,GAAW,SAAS,eAAeG,CAAW,CAAC,EAC/C,SAAS,KAAK,YAAYx4C,CAAK,EAC/BA,EAAM,MAAK,CACb,EAEAu4C,GAAK,OAAO,YAAY,QAAQ,QAAU,CACxC,KAAM,GACN,KAAM,EACR,EAEA,iBAAiB,kBAAmB,SAAStiD,EAAO,CAClD,GAAIA,EAAM,OAAO,QAAQ,cAAgB,UAAW,CAClD,MAAMwiD,EAAaxiD,EAAM,OAAO,eAAe,cAAc,qCAAqC,EAE9FwiD,GACFA,EAAW,OAAQ,CACzB,CACA,CAAC,EAED,iBAAiB,mBAAoB,SAASxiD,EAAO,CACnD,MAAMyiD,EAAgB,SAAS96C,EAAM,CACnC,OAAOA,GAAQA,EAAK,KAAQ,MAAM,GAAG,EAAE,CAAC,IAAM,OAC/C,EAMD,GAJI3H,EAAM,OAAO,QAAQ,cAAgB,WAIrC,CAACyiD,EAAcziD,EAAM,IAAI,EAC3B,OAAOA,EAAM,eAAgB,CAEjC,CAAC,EAED,iBAAiB,sBAAuBA,GAAS,CAC/C,KAAM,CAAE,WAAAgiD,EAAY,OAAA/2C,GAAWjL,EAE3BgiD,EAAW,MACI,IAAID,GAAaC,EAAY/2C,CAAM,EAC3C,KAAI,CAEjB,CAAC,EC3CD,IAAIy3C,GAAU,MAAM,QAEpBC,GAAiBD,GCzBbA,GAAU/gD,GACVoC,GAAWT,GAGXs/C,GAAe,mDACfC,GAAgB,QAUpB,SAASC,GAAMzhD,EAAOy0C,EAAQ,CAC5B,GAAI4M,GAAQrhD,CAAK,EACf,MAAO,GAET,IAAIC,EAAO,OAAOD,EAClB,OAAIC,GAAQ,UAAYA,GAAQ,UAAYA,GAAQ,WAChDD,GAAS,MAAQ0C,GAAS1C,CAAK,EAC1B,GAEFwhD,GAAc,KAAKxhD,CAAK,GAAK,CAACuhD,GAAa,KAAKvhD,CAAK,GACzDy0C,GAAU,MAAQz0C,KAAS,OAAOy0C,CAAM,CAC7C,CAEA,IAAAiN,GAAiBD,GC5Bbp/C,GAAa/B,GACbP,GAAWkC,GAGX0/C,GAAW,yBACXC,GAAU,oBACVC,GAAS,6BACTC,GAAW,iBAmBf,SAAS9gB,GAAWhhC,EAAO,CACzB,GAAI,CAACD,GAASC,CAAK,EACjB,MAAO,GAIT,IAAI2B,EAAMU,GAAWrC,CAAK,EAC1B,OAAO2B,GAAOigD,IAAWjgD,GAAOkgD,IAAUlgD,GAAOggD,IAAYhgD,GAAOmgD,EACtE,CAEA,IAAAC,GAAiB/gB,GCpCbxgC,GAAOF,GAGP0hD,GAAaxhD,GAAK,oBAAoB,EAE1CyhD,GAAiBD,GCLbA,GAAa1hD,GAGb4hD,GAAc,UAAW,CAC3B,IAAIC,EAAM,SAAS,KAAKH,IAAcA,GAAW,MAAQA,GAAW,KAAK,UAAY,EAAE,EACvF,OAAOG,EAAO,iBAAmBA,EAAO,EAC1C,IASA,SAASC,GAAS3+C,EAAM,CACtB,MAAO,CAAC,CAACy+C,IAAeA,MAAcz+C,CACxC,CAEA,IAAA4+C,GAAiBD,GClBbE,GAAY,SAAS,UAGrBC,GAAeD,GAAU,SAS7B,SAASE,GAAS/+C,EAAM,CACtB,GAAIA,GAAQ,KAAM,CAChB,GAAI,CACF,OAAO8+C,GAAa,KAAK9+C,CAAI,CAC9B,MAAW,CAAA,CACZ,GAAI,CACF,OAAQA,EAAO,EAChB,MAAW,CAAA,CAChB,CACE,MAAO,EACT,CAEA,IAAAg/C,GAAiBD,GCzBbxhB,GAAa1gC,GACb8hD,GAAWngD,GACXlC,GAAWmC,GACXsgD,GAAWE,GAMXC,GAAe,sBAGfC,GAAe,8BAGfN,GAAY,SAAS,UACrBjhD,GAAc,OAAO,UAGrBkhD,GAAeD,GAAU,SAGzBhhD,GAAiBD,GAAY,eAG7BwhD,GAAa,OAAO,IACtBN,GAAa,KAAKjhD,EAAc,EAAE,QAAQqhD,GAAc,MAAM,EAC7D,QAAQ,yDAA0D,OAAO,EAAI,GAChF,EAUA,SAASG,GAAa9iD,EAAO,CAC3B,GAAI,CAACD,GAASC,CAAK,GAAKoiD,GAASpiD,CAAK,EACpC,MAAO,GAET,IAAI6J,EAAUm3B,GAAWhhC,CAAK,EAAI6iD,GAAaD,GAC/C,OAAO/4C,EAAQ,KAAK24C,GAASxiD,CAAK,CAAC,CACrC,CAEA,IAAA+iD,GAAiBD,GCtCjB,SAASE,GAASvO,EAAQ72C,EAAK,CAC7B,OAAO62C,GAAU,KAAO,OAAYA,EAAO72C,CAAG,CAChD,CAEA,IAAAqlD,GAAiBD,GCZbF,GAAexiD,GACf0iD,GAAW/gD,GAUf,SAASihD,GAAUzO,EAAQ72C,EAAK,CAC9B,IAAIoC,EAAQgjD,GAASvO,EAAQ72C,CAAG,EAChC,OAAOklD,GAAa9iD,CAAK,EAAIA,EAAQ,MACvC,CAEA,IAAAmjD,GAAiBD,GChBbA,GAAY5iD,GAGZ8iD,GAAeF,GAAU,OAAQ,QAAQ,EAE7CG,GAAiBD,GCLbA,GAAe9iD,GASnB,SAASgjD,IAAY,CACnB,KAAK,SAAWF,GAAeA,GAAa,IAAI,EAAI,CAAE,EACtD,KAAK,KAAO,CACd,CAEA,IAAAG,GAAiBD,GCJjB,SAASE,GAAW5lD,EAAK,CACvB,IAAIiE,EAAS,KAAK,IAAIjE,CAAG,GAAK,OAAO,KAAK,SAASA,CAAG,EACtD,YAAK,MAAQiE,EAAS,EAAI,EACnBA,CACT,CAEA,IAAA4hD,GAAiBD,GChBbJ,GAAe9iD,GAGfojD,GAAiB,4BAGjBriD,GAAc,OAAO,UAGrBC,GAAiBD,GAAY,eAWjC,SAASsiD,GAAQ/lD,EAAK,CACpB,IAAI+R,EAAO,KAAK,SAChB,GAAIyzC,GAAc,CAChB,IAAIvhD,EAAS8N,EAAK/R,CAAG,EACrB,OAAOiE,IAAW6hD,GAAiB,OAAY7hD,CACnD,CACE,OAAOP,GAAe,KAAKqO,EAAM/R,CAAG,EAAI+R,EAAK/R,CAAG,EAAI,MACtD,CAEA,IAAAgmD,GAAiBD,GC7BbP,GAAe9iD,GAGfe,GAAc,OAAO,UAGrBC,GAAiBD,GAAY,eAWjC,SAASwiD,GAAQjmD,EAAK,CACpB,IAAI+R,EAAO,KAAK,SAChB,OAAOyzC,GAAgBzzC,EAAK/R,CAAG,IAAM,OAAa0D,GAAe,KAAKqO,EAAM/R,CAAG,CACjF,CAEA,IAAAkmD,GAAiBD,GCtBbT,GAAe9iD,GAGfojD,GAAiB,4BAYrB,SAASK,GAAQnmD,EAAKoC,EAAO,CAC3B,IAAI2P,EAAO,KAAK,SAChB,YAAK,MAAQ,KAAK,IAAI/R,CAAG,EAAI,EAAI,EACjC+R,EAAK/R,CAAG,EAAKwlD,IAAgBpjD,IAAU,OAAa0jD,GAAiB1jD,EAC9D,IACT,CAEA,IAAAgkD,GAAiBD,GCtBbT,GAAYhjD,GACZkjD,GAAavhD,GACb0hD,GAAUzhD,GACV2hD,GAAUnB,GACVqB,GAAUE,GASd,SAASC,GAAK1+B,EAAS,CACrB,IAAI1kB,EAAQ,GACRwnC,EAAS9iB,GAAW,KAAO,EAAIA,EAAQ,OAG3C,IADA,KAAK,MAAO,EACL,EAAE1kB,EAAQwnC,GAAQ,CACvB,IAAI3iB,EAAQH,EAAQ1kB,CAAK,EACzB,KAAK,IAAI6kB,EAAM,CAAC,EAAGA,EAAM,CAAC,CAAC,CAC/B,CACA,CAGAu+B,GAAK,UAAU,MAAQZ,GACvBY,GAAK,UAAU,OAAYV,GAC3BU,GAAK,UAAU,IAAMP,GACrBO,GAAK,UAAU,IAAML,GACrBK,GAAK,UAAU,IAAMH,GAErB,IAAAI,GAAiBD,GCxBjB,SAASE,IAAiB,CACxB,KAAK,SAAW,CAAE,EAClB,KAAK,KAAO,CACd,CAEA,IAAAC,GAAiBD,GCoBjB,SAASE,GAAGtkD,EAAOkD,EAAO,CACxB,OAAOlD,IAAUkD,GAAUlD,IAAUA,GAASkD,IAAUA,CAC1D,CAEA,IAAAqhD,GAAiBD,GCpCbA,GAAKhkD,GAUT,SAASkkD,GAAalO,EAAO14C,EAAK,CAEhC,QADI0qC,EAASgO,EAAM,OACZhO,KACL,GAAIgc,GAAGhO,EAAMhO,CAAM,EAAE,CAAC,EAAG1qC,CAAG,EAC1B,OAAO0qC,EAGX,MAAO,EACT,CAEA,IAAAmc,GAAiBD,GCpBbA,GAAelkD,GAGfokD,GAAa,MAAM,UAGnBC,GAASD,GAAW,OAWxB,SAASE,GAAgBhnD,EAAK,CAC5B,IAAI+R,EAAO,KAAK,SACZ7O,EAAQ0jD,GAAa70C,EAAM/R,CAAG,EAElC,GAAIkD,EAAQ,EACV,MAAO,GAET,IAAI+jD,EAAYl1C,EAAK,OAAS,EAC9B,OAAI7O,GAAS+jD,EACXl1C,EAAK,IAAK,EAEVg1C,GAAO,KAAKh1C,EAAM7O,EAAO,CAAC,EAE5B,EAAE,KAAK,KACA,EACT,CAEA,IAAAgkD,GAAiBF,GClCbJ,GAAelkD,GAWnB,SAASykD,GAAannD,EAAK,CACzB,IAAI+R,EAAO,KAAK,SACZ7O,EAAQ0jD,GAAa70C,EAAM/R,CAAG,EAElC,OAAOkD,EAAQ,EAAI,OAAY6O,EAAK7O,CAAK,EAAE,CAAC,CAC9C,CAEA,IAAAkkD,GAAiBD,GClBbP,GAAelkD,GAWnB,SAAS2kD,GAAarnD,EAAK,CACzB,OAAO4mD,GAAa,KAAK,SAAU5mD,CAAG,EAAI,EAC5C,CAEA,IAAAsnD,GAAiBD,GCfbT,GAAelkD,GAYnB,SAAS6kD,GAAavnD,EAAKoC,EAAO,CAChC,IAAI2P,EAAO,KAAK,SACZ7O,EAAQ0jD,GAAa70C,EAAM/R,CAAG,EAElC,OAAIkD,EAAQ,GACV,EAAE,KAAK,KACP6O,EAAK,KAAK,CAAC/R,EAAKoC,CAAK,CAAC,GAEtB2P,EAAK7O,CAAK,EAAE,CAAC,EAAId,EAEZ,IACT,CAEA,IAAAolD,GAAiBD,GCzBbf,GAAiB9jD,GACjBskD,GAAkB3iD,GAClB8iD,GAAe7iD,GACf+iD,GAAevC,GACfyC,GAAelB,GASnB,SAASoB,GAAU7/B,EAAS,CAC1B,IAAI1kB,EAAQ,GACRwnC,EAAS9iB,GAAW,KAAO,EAAIA,EAAQ,OAG3C,IADA,KAAK,MAAO,EACL,EAAE1kB,EAAQwnC,GAAQ,CACvB,IAAI3iB,EAAQH,EAAQ1kB,CAAK,EACzB,KAAK,IAAI6kB,EAAM,CAAC,EAAGA,EAAM,CAAC,CAAC,CAC/B,CACA,CAGA0/B,GAAU,UAAU,MAAQjB,GAC5BiB,GAAU,UAAU,OAAYT,GAChCS,GAAU,UAAU,IAAMN,GAC1BM,GAAU,UAAU,IAAMJ,GAC1BI,GAAU,UAAU,IAAMF,GAE1B,IAAAG,GAAiBD,GC/BbnC,GAAY5iD,GACZE,GAAOyB,GAGPsjD,GAAMrC,GAAU1iD,GAAM,KAAK,EAE/BglD,GAAiBD,GCNbrB,GAAO5jD,GACP+kD,GAAYpjD,GACZsjD,GAAMrjD,GASV,SAASujD,IAAgB,CACvB,KAAK,KAAO,EACZ,KAAK,SAAW,CACd,KAAQ,IAAIvB,GACZ,IAAO,IAAKqB,IAAOF,IACnB,OAAU,IAAInB,EACf,CACH,CAEA,IAAAwB,GAAiBD,GCbjB,SAASE,GAAU3lD,EAAO,CACxB,IAAIC,EAAO,OAAOD,EAClB,OAAQC,GAAQ,UAAYA,GAAQ,UAAYA,GAAQ,UAAYA,GAAQ,UACvED,IAAU,YACVA,IAAU,IACjB,CAEA,IAAA4lD,GAAiBD,GCdbA,GAAYrlD,GAUhB,SAASulD,GAAWC,EAAKloD,EAAK,CAC5B,IAAI+R,EAAOm2C,EAAI,SACf,OAAOH,GAAU/nD,CAAG,EAChB+R,EAAK,OAAO/R,GAAO,SAAW,SAAW,MAAM,EAC/C+R,EAAK,GACX,CAEA,IAAAo2C,GAAiBF,GCjBbA,GAAavlD,GAWjB,SAAS0lD,GAAepoD,EAAK,CAC3B,IAAIiE,EAASgkD,GAAW,KAAMjoD,CAAG,EAAE,OAAUA,CAAG,EAChD,YAAK,MAAQiE,EAAS,EAAI,EACnBA,CACT,CAEA,IAAAokD,GAAiBD,GCjBbH,GAAavlD,GAWjB,SAAS4lD,GAAYtoD,EAAK,CACxB,OAAOioD,GAAW,KAAMjoD,CAAG,EAAE,IAAIA,CAAG,CACtC,CAEA,IAAAuoD,GAAiBD,GCfbL,GAAavlD,GAWjB,SAAS8lD,GAAYxoD,EAAK,CACxB,OAAOioD,GAAW,KAAMjoD,CAAG,EAAE,IAAIA,CAAG,CACtC,CAEA,IAAAyoD,GAAiBD,GCfbP,GAAavlD,GAYjB,SAASgmD,GAAY1oD,EAAKoC,EAAO,CAC/B,IAAI2P,EAAOk2C,GAAW,KAAMjoD,CAAG,EAC3BkC,EAAO6P,EAAK,KAEhB,OAAAA,EAAK,IAAI/R,EAAKoC,CAAK,EACnB,KAAK,MAAQ2P,EAAK,MAAQ7P,EAAO,EAAI,EAC9B,IACT,CAEA,IAAAymD,GAAiBD,GCrBbb,GAAgBnlD,GAChB0lD,GAAiB/jD,GACjBikD,GAAchkD,GACdkkD,GAAc1D,GACd4D,GAAcrC,GASlB,SAASuC,GAAShhC,EAAS,CACzB,IAAI1kB,EAAQ,GACRwnC,EAAS9iB,GAAW,KAAO,EAAIA,EAAQ,OAG3C,IADA,KAAK,MAAO,EACL,EAAE1kB,EAAQwnC,GAAQ,CACvB,IAAI3iB,EAAQH,EAAQ1kB,CAAK,EACzB,KAAK,IAAI6kB,EAAM,CAAC,EAAGA,EAAM,CAAC,CAAC,CAC/B,CACA,CAGA6gC,GAAS,UAAU,MAAQf,GAC3Be,GAAS,UAAU,OAAYR,GAC/BQ,GAAS,UAAU,IAAMN,GACzBM,GAAS,UAAU,IAAMJ,GACzBI,GAAS,UAAU,IAAMF,GAEzB,IAAAG,GAAiBD,GC/BbA,GAAWlmD,GAGX+C,GAAkB,sBA8CtB,SAASmyB,GAAQ/xB,EAAMijD,EAAU,CAC/B,GAAI,OAAOjjD,GAAQ,YAAeijD,GAAY,MAAQ,OAAOA,GAAY,WACvE,MAAM,IAAI,UAAUrjD,EAAe,EAErC,IAAIilB,EAAW,UAAW,CACxB,IAAI5oB,EAAO,UACP9B,EAAM8oD,EAAWA,EAAS,MAAM,KAAMhnD,CAAI,EAAIA,EAAK,CAAC,EACpD8f,EAAQ8I,EAAS,MAErB,GAAI9I,EAAM,IAAI5hB,CAAG,EACf,OAAO4hB,EAAM,IAAI5hB,CAAG,EAEtB,IAAIiE,EAAS4B,EAAK,MAAM,KAAM/D,CAAI,EAClC,OAAA4oB,EAAS,MAAQ9I,EAAM,IAAI5hB,EAAKiE,CAAM,GAAK2d,EACpC3d,CACR,EACD,OAAAymB,EAAS,MAAQ,IAAKkN,GAAQ,OAASgxB,IAChCl+B,CACT,CAGAkN,GAAQ,MAAQgxB,GAEhB,IAAAG,GAAiBnxB,GCxEbA,GAAUl1B,GAGVsmD,GAAmB,IAUvB,SAASC,GAAcpjD,EAAM,CAC3B,IAAI5B,EAAS2zB,GAAQ/xB,EAAM,SAAS7F,EAAK,CACvC,OAAI4hB,EAAM,OAASonC,IACjBpnC,EAAM,MAAO,EAER5hB,CACX,CAAG,EAEG4hB,EAAQ3d,EAAO,MACnB,OAAOA,CACT,CAEA,IAAAilD,GAAiBD,GCzBbA,GAAgBvmD,GAGhBymD,GAAa,mGAGbC,GAAe,WASfC,GAAeJ,GAAc,SAASzoD,EAAQ,CAChD,IAAIyD,EAAS,CAAE,EACf,OAAIzD,EAAO,WAAW,CAAC,IAAM,IAC3ByD,EAAO,KAAK,EAAE,EAEhBzD,EAAO,QAAQ2oD,GAAY,SAAS97C,EAAOtD,EAAQu/C,EAAOC,EAAW,CACnEtlD,EAAO,KAAKqlD,EAAQC,EAAU,QAAQH,GAAc,IAAI,EAAKr/C,GAAUsD,CAAM,CACjF,CAAG,EACMpJ,CACT,CAAC,EAEDulD,GAAiBH,GCjBjB,SAASI,GAAS/Q,EAAOgR,EAAU,CAKjC,QAJIxmD,EAAQ,GACRwnC,EAASgO,GAAS,KAAO,EAAIA,EAAM,OACnCz0C,EAAS,MAAMymC,CAAM,EAElB,EAAExnC,EAAQwnC,GACfzmC,EAAOf,CAAK,EAAIwmD,EAAShR,EAAMx1C,CAAK,EAAGA,EAAOw1C,CAAK,EAErD,OAAOz0C,CACT,CAEA,IAAA0lD,GAAiBF,GCpBblmD,GAASb,GACT+mD,GAAWplD,GACXo/C,GAAUn/C,GACVQ,GAAWggD,GAMX8E,GAAcrmD,GAASA,GAAO,UAAY,OAC1CsmD,GAAiBD,GAAcA,GAAY,SAAW,OAU1D,SAASE,GAAa1nD,EAAO,CAE3B,GAAI,OAAOA,GAAS,SAClB,OAAOA,EAET,GAAIqhD,GAAQrhD,CAAK,EAEf,OAAOqnD,GAASrnD,EAAO0nD,EAAY,EAAI,GAEzC,GAAIhlD,GAAS1C,CAAK,EAChB,OAAOynD,GAAiBA,GAAe,KAAKznD,CAAK,EAAI,GAEvD,IAAI6B,EAAU7B,EAAQ,GACtB,OAAQ6B,GAAU,KAAQ,EAAI7B,GAAU,KAAa,KAAO6B,CAC9D,CAEA,IAAA8lD,GAAiBD,GCpCbA,GAAepnD,GAuBnB,SAASsnD,GAAS5nD,EAAO,CACvB,OAAOA,GAAS,KAAO,GAAK0nD,GAAa1nD,CAAK,CAChD,CAEA,IAAA6nD,GAAiBD,GC3BbvG,GAAU/gD,GACVmhD,GAAQx/C,GACRglD,GAAe/kD,GACf0lD,GAAWlF,GAUf,SAASoF,GAAS9nD,EAAOy0C,EAAQ,CAC/B,OAAI4M,GAAQrhD,CAAK,EACRA,EAEFyhD,GAAMzhD,EAAOy0C,CAAM,EAAI,CAACz0C,CAAK,EAAIinD,GAAaW,GAAS5nD,CAAK,CAAC,CACtE,CAEA,IAAA+nD,GAAiBD,GCpBbplD,GAAWpC,GAYf,SAAS0nD,GAAMhoD,EAAO,CACpB,GAAI,OAAOA,GAAS,UAAY0C,GAAS1C,CAAK,EAC5C,OAAOA,EAET,IAAI6B,EAAU7B,EAAQ,GACtB,OAAQ6B,GAAU,KAAQ,EAAI7B,GAAU,KAAa,KAAO6B,CAC9D,CAEA,IAAAomD,GAAiBD,GCpBbF,GAAWxnD,GACX0nD,GAAQ/lD,GAUZ,SAASimD,GAAQzT,EAAQ0T,EAAM,CAC7BA,EAAOL,GAASK,EAAM1T,CAAM,EAK5B,QAHI3zC,EAAQ,EACRwnC,EAAS6f,EAAK,OAEX1T,GAAU,MAAQ3zC,EAAQwnC,GAC/BmM,EAASA,EAAOuT,GAAMG,EAAKrnD,GAAO,CAAC,CAAC,EAEtC,OAAQA,GAASA,GAASwnC,EAAUmM,EAAS,MAC/C,CAEA,IAAA2T,GAAiBF,GCvBbA,GAAU5nD,GA2Bd,SAAS+nD,GAAI5T,EAAQ0T,EAAMG,EAAc,CACvC,IAAIzmD,EAAS4yC,GAAU,KAAO,OAAYyT,GAAQzT,EAAQ0T,CAAI,EAC9D,OAAOtmD,IAAW,OAAYymD,EAAezmD,CAC/C,CAEA,IAAA0mD,GAAiBF,mBC/BjB,IAAIhnD,GAAc,OAAO,UAGrBC,GAAiBD,GAAY,eAUjC,SAASmnD,GAAQ/T,EAAQ72C,EAAK,CAC5B,OAAO62C,GAAU,MAAQnzC,GAAe,KAAKmzC,EAAQ72C,CAAG,CAC1D,CAEA,IAAA6qD,GAAiBD,GClBbnmD,GAAa/B,GACbiC,GAAeN,GAGfymD,GAAU,qBASd,SAASC,GAAgB3oD,EAAO,CAC9B,OAAOuC,GAAavC,CAAK,GAAKqC,GAAWrC,CAAK,GAAK0oD,EACrD,CAEA,IAAAE,GAAiBD,GCjBbA,GAAkBroD,GAClBiC,GAAeN,GAGfZ,GAAc,OAAO,UAGrBC,GAAiBD,GAAY,eAG7BwnD,GAAuBxnD,GAAY,qBAoBnCynD,GAAcH,GAAgB,UAAW,CAAE,OAAO,SAAU,GAAI,EAAIA,GAAkB,SAAS3oD,EAAO,CACxG,OAAOuC,GAAavC,CAAK,GAAKsB,GAAe,KAAKtB,EAAO,QAAQ,GAC/D,CAAC6oD,GAAqB,KAAK7oD,EAAO,QAAQ,CAC9C,EAEA+oD,GAAiBD,GClCbE,GAAmB,iBAGnBC,GAAW,mBAUf,SAASC,GAAQlpD,EAAOsoC,EAAQ,CAC9B,IAAIroC,EAAO,OAAOD,EAClB,OAAAsoC,EAASA,GAAiB0gB,GAEnB,CAAC,CAAC1gB,IACNroC,GAAQ,UACNA,GAAQ,UAAYgpD,GAAS,KAAKjpD,CAAK,IACrCA,EAAQ,IAAMA,EAAQ,GAAK,GAAKA,EAAQsoC,CACjD,CAEA,IAAA6gB,GAAiBD,GCvBbF,GAAmB,iBA4BvB,SAASI,GAASppD,EAAO,CACvB,OAAO,OAAOA,GAAS,UACrBA,EAAQ,IAAMA,EAAQ,GAAK,GAAKA,GAASgpD,EAC7C,CAEA,IAAAK,GAAiBD,GClCbtB,GAAWxnD,GACXwoD,GAAc7mD,GACdo/C,GAAUn/C,GACVgnD,GAAUxG,GACV0G,GAAWnF,GACX+D,GAAQsB,GAWZ,SAASC,GAAQ9U,EAAQ0T,EAAMqB,EAAS,CACtCrB,EAAOL,GAASK,EAAM1T,CAAM,EAM5B,QAJI3zC,EAAQ,GACRwnC,EAAS6f,EAAK,OACdtmD,EAAS,GAEN,EAAEf,EAAQwnC,GAAQ,CACvB,IAAI1qC,EAAMoqD,GAAMG,EAAKrnD,CAAK,CAAC,EAC3B,GAAI,EAAEe,EAAS4yC,GAAU,MAAQ+U,EAAQ/U,EAAQ72C,CAAG,GAClD,MAEF62C,EAASA,EAAO72C,CAAG,CACvB,CACE,OAAIiE,GAAU,EAAEf,GAASwnC,EAChBzmC,GAETymC,EAASmM,GAAU,KAAO,EAAIA,EAAO,OAC9B,CAAC,CAACnM,GAAU8gB,GAAS9gB,CAAM,GAAK4gB,GAAQtrD,EAAK0qC,CAAM,IACvD+Y,GAAQ5M,CAAM,GAAKqU,GAAYrU,CAAM,GAC1C,CAEA,IAAAgV,GAAiBF,GCtCbf,GAAUloD,GACVipD,GAAUtnD,GA6Bd,SAASynD,GAAIjV,EAAQ0T,EAAM,CACzB,OAAO1T,GAAU,MAAQ8U,GAAQ9U,EAAQ0T,EAAMK,EAAO,CACxD,CAEA,IAAAmB,GAAiBD,mBClCjB,IAAIrE,GAAY/kD,GAShB,SAASspD,IAAa,CACpB,KAAK,SAAW,IAAIvE,GACpB,KAAK,KAAO,CACd,CAEA,IAAAwE,GAAiBD,GCLjB,SAASE,GAAYlsD,EAAK,CACxB,IAAI+R,EAAO,KAAK,SACZ9N,EAAS8N,EAAK,OAAU/R,CAAG,EAE/B,YAAK,KAAO+R,EAAK,KACV9N,CACT,CAEA,IAAAkoD,GAAiBD,GCRjB,SAASE,GAASpsD,EAAK,CACrB,OAAO,KAAK,SAAS,IAAIA,CAAG,CAC9B,CAEA,IAAAqsD,GAAiBD,GCJjB,SAASE,GAAStsD,EAAK,CACrB,OAAO,KAAK,SAAS,IAAIA,CAAG,CAC9B,CAEA,IAAAusD,GAAiBD,GCbb7E,GAAY/kD,GACZilD,GAAMtjD,GACNukD,GAAWtkD,GAGXkoD,GAAmB,IAYvB,SAASC,GAASzsD,EAAKoC,EAAO,CAC5B,IAAI2P,EAAO,KAAK,SAChB,GAAIA,aAAgB01C,GAAW,CAC7B,IAAIiF,EAAQ36C,EAAK,SACjB,GAAI,CAAC41C,IAAQ+E,EAAM,OAASF,GAAmB,EAC7C,OAAAE,EAAM,KAAK,CAAC1sD,EAAKoC,CAAK,CAAC,EACvB,KAAK,KAAO,EAAE2P,EAAK,KACZ,KAETA,EAAO,KAAK,SAAW,IAAI62C,GAAS8D,CAAK,CAC7C,CACE,OAAA36C,EAAK,IAAI/R,EAAKoC,CAAK,EACnB,KAAK,KAAO2P,EAAK,KACV,IACT,CAEA,IAAA46C,GAAiBF,GCjCbhF,GAAY/kD,GACZspD,GAAa3nD,GACb6nD,GAAc5nD,GACd8nD,GAAWtH,GACXwH,GAAWjG,GACXoG,GAAWf,GASf,SAASkB,GAAMhlC,EAAS,CACtB,IAAI7V,EAAO,KAAK,SAAW,IAAI01C,GAAU7/B,CAAO,EAChD,KAAK,KAAO7V,EAAK,IACnB,CAGA66C,GAAM,UAAU,MAAQZ,GACxBY,GAAM,UAAU,OAAYV,GAC5BU,GAAM,UAAU,IAAMR,GACtBQ,GAAM,UAAU,IAAMN,GACtBM,GAAM,UAAU,IAAMH,GAEtB,IAAAI,GAAiBD,GC1BbtH,GAAY5iD,GAEZoqD,GAAkB,UAAW,CAC/B,GAAI,CACF,IAAIjnD,EAAOy/C,GAAU,OAAQ,gBAAgB,EAC7C,OAAAz/C,EAAK,CAAA,EAAI,GAAI,EAAE,EACRA,CACR,MAAW,CAAA,CACd,IAEAs4B,GAAiB2uB,GCVbA,GAAiBpqD,GAWrB,SAASqqD,GAAgBlW,EAAQ72C,EAAKoC,EAAO,CACvCpC,GAAO,aAAe8sD,GACxBA,GAAejW,EAAQ72C,EAAK,CAC1B,aAAgB,GAChB,WAAc,GACd,MAASoC,EACT,SAAY,EAClB,CAAK,EAEDy0C,EAAO72C,CAAG,EAAIoC,CAElB,CAEA,IAAA4qD,GAAiBD,GCxBbA,GAAkBrqD,GAClBgkD,GAAKriD,GAWT,SAAS4oD,GAAiBpW,EAAQ72C,EAAKoC,EAAO,EACvCA,IAAU,QAAa,CAACskD,GAAG7P,EAAO72C,CAAG,EAAGoC,CAAK,GAC7CA,IAAU,QAAa,EAAEpC,KAAO62C,KACnCkW,GAAgBlW,EAAQ72C,EAAKoC,CAAK,CAEtC,CAEA,IAAA8qD,GAAiBD,GCZjB,SAASE,GAAcC,EAAW,CAChC,OAAO,SAASvW,EAAQ6S,EAAU2D,EAAU,CAM1C,QALInqD,EAAQ,GACRoqD,EAAW,OAAOzW,CAAM,EACxBn7B,EAAQ2xC,EAASxW,CAAM,EACvBnM,EAAShvB,EAAM,OAEZgvB,KAAU,CACf,IAAI1qC,EAAM0b,EAAM0xC,EAAY1iB,EAAS,EAAExnC,CAAK,EAC5C,GAAIwmD,EAAS4D,EAASttD,CAAG,EAAGA,EAAKstD,CAAQ,IAAM,GAC7C,KAER,CACI,OAAOzW,CACR,CACH,CAEA,IAAA0W,GAAiBJ,GCxBbA,GAAgBzqD,GAahB8qD,GAAUL,GAAe,EAE7BM,GAAiBD,6CCfjB,IAAI5qD,EAAOF,GAGPgrD,EAA4CnR,GAAW,CAACA,EAAQ,UAAYA,EAG5EoR,EAAaD,GAAe,IAA6BhzC,GAAU,CAACA,EAAO,UAAYA,EAGvFkzC,EAAgBD,GAAcA,EAAW,UAAYD,EAGrDG,EAASD,EAAgBhrD,EAAK,OAAS,OACvCkrD,EAAcD,EAASA,EAAO,YAAc,OAUhD,SAASE,EAAYC,EAAQC,EAAQ,CACnC,GAAIA,EACF,OAAOD,EAAO,MAAO,EAEvB,IAAItjB,EAASsjB,EAAO,OAChB/pD,EAAS6pD,EAAcA,EAAYpjB,CAAM,EAAI,IAAIsjB,EAAO,YAAYtjB,CAAM,EAE9E,OAAAsjB,EAAO,KAAK/pD,CAAM,EACXA,EAGTyW,EAAA,QAAiBqzC,qCClCbnrD,GAAOF,GAGPwrD,GAAatrD,GAAK,WAEtBurD,GAAiBD,GCLbA,GAAaxrD,GASjB,SAAS0rD,GAAiBpjB,EAAa,CACrC,IAAI/mC,EAAS,IAAI+mC,EAAY,YAAYA,EAAY,UAAU,EAC/D,WAAIkjB,GAAWjqD,CAAM,EAAE,IAAI,IAAIiqD,GAAWljB,CAAW,CAAC,EAC/C/mC,CACT,CAEA,IAAAoqD,GAAiBD,GCfbA,GAAmB1rD,GAUvB,SAAS4rD,GAAgBC,EAAYN,EAAQ,CAC3C,IAAID,EAASC,EAASG,GAAiBG,EAAW,MAAM,EAAIA,EAAW,OACvE,OAAO,IAAIA,EAAW,YAAYP,EAAQO,EAAW,WAAYA,EAAW,MAAM,CACpF,CAEA,IAAAC,GAAiBF,GCPjB,SAASG,GAAUxvD,EAAQy5C,EAAO,CAChC,IAAIx1C,EAAQ,GACRwnC,EAASzrC,EAAO,OAGpB,IADAy5C,IAAUA,EAAQ,MAAMhO,CAAM,GACvB,EAAExnC,EAAQwnC,GACfgO,EAAMx1C,CAAK,EAAIjE,EAAOiE,CAAK,EAE7B,OAAOw1C,CACT,CAEA,IAAAgW,GAAiBD,GCnBbtsD,GAAWO,GAGXisD,GAAe,OAAO,OAUtBC,GAAc,UAAW,CAC3B,SAAS/X,GAAS,CAAA,CAClB,OAAO,SAASgY,EAAO,CACrB,GAAI,CAAC1sD,GAAS0sD,CAAK,EACjB,MAAO,CAAE,EAEX,GAAIF,GACF,OAAOA,GAAaE,CAAK,EAE3BhY,EAAO,UAAYgY,EACnB,IAAI5qD,EAAS,IAAI4yC,EACjB,OAAAA,EAAO,UAAY,OACZ5yC,CACR,CACH,IAEA6qD,GAAiBF,GCrBjB,SAASG,GAAQlpD,EAAMogC,EAAW,CAChC,OAAO,SAASnmC,EAAK,CACnB,OAAO+F,EAAKogC,EAAUnmC,CAAG,CAAC,CAC3B,CACH,CAEA,IAAAkvD,GAAiBD,GCdbA,GAAUrsD,GAGVusD,GAAeF,GAAQ,OAAO,eAAgB,MAAM,EAExDG,GAAiBD,GCJbxrD,GAAc,OAAO,UASzB,SAAS0rD,GAAY/sD,EAAO,CAC1B,IAAIgtD,EAAOhtD,GAASA,EAAM,YACtBysD,EAAS,OAAOO,GAAQ,YAAcA,EAAK,WAAc3rD,GAE7D,OAAOrB,IAAUysD,CACnB,CAEA,IAAAQ,GAAiBF,GCjBbP,GAAalsD,GACbusD,GAAe5qD,GACf8qD,GAAc7qD,GASlB,SAASgrD,GAAgBzY,EAAQ,CAC/B,OAAQ,OAAOA,EAAO,aAAe,YAAc,CAACsY,GAAYtY,CAAM,EAClE+X,GAAWK,GAAapY,CAAM,CAAC,EAC/B,CAAE,CACR,CAEA,IAAA0Y,GAAiBD,GCjBblsB,GAAa1gC,GACb8oD,GAAWnnD,GA2Bf,SAASmrD,GAAYptD,EAAO,CAC1B,OAAOA,GAAS,MAAQopD,GAASppD,EAAM,MAAM,GAAK,CAACghC,GAAWhhC,CAAK,CACrE,CAEA,IAAAqtD,GAAiBD,GChCbA,GAAc9sD,GACdiC,GAAeN,GA2BnB,SAASqrD,GAAkBttD,EAAO,CAChC,OAAOuC,GAAavC,CAAK,GAAKotD,GAAYptD,CAAK,CACjD,CAEA,IAAAutD,GAAiBD,mBCnBjB,SAASE,IAAY,CACnB,MAAO,EACT,CAEA,IAAAC,GAAiBD,6BCjBjB,IAAIhtD,EAAOF,GACPktD,EAAYvrD,GAGZqpD,EAA4CnR,GAAW,CAACA,EAAQ,UAAYA,EAG5EoR,EAAaD,GAAe,IAA6BhzC,GAAU,CAACA,EAAO,UAAYA,EAGvFkzC,EAAgBD,GAAcA,EAAW,UAAYD,EAGrDG,EAASD,EAAgBhrD,EAAK,OAAS,OAGvCktD,EAAiBjC,EAASA,EAAO,SAAW,OAmB5CkC,EAAWD,GAAkBF,EAEjCl1C,EAAA,QAAiBq1C,qCCrCbtrD,GAAa/B,GACbusD,GAAe5qD,GACfM,GAAeL,GAGf0rD,GAAY,kBAGZtL,GAAY,SAAS,UACrBjhD,GAAc,OAAO,UAGrBkhD,GAAeD,GAAU,SAGzBhhD,GAAiBD,GAAY,eAG7BwsD,GAAmBtL,GAAa,KAAK,MAAM,EA8B/C,SAAS1hB,GAAc7gC,EAAO,CAC5B,GAAI,CAACuC,GAAavC,CAAK,GAAKqC,GAAWrC,CAAK,GAAK4tD,GAC/C,MAAO,GAET,IAAInB,EAAQI,GAAa7sD,CAAK,EAC9B,GAAIysD,IAAU,KACZ,MAAO,GAET,IAAIO,EAAO1rD,GAAe,KAAKmrD,EAAO,aAAa,GAAKA,EAAM,YAC9D,OAAO,OAAOO,GAAQ,YAAcA,aAAgBA,GAClDzK,GAAa,KAAKyK,CAAI,GAAKa,EAC/B,CAEA,IAAAC,GAAiBjtB,GC7Dbx+B,GAAa/B,GACb8oD,GAAWnnD,GACXM,GAAeL,GAGfwmD,GAAU,qBACVqF,GAAW,iBACXC,GAAU,mBACVC,GAAU,gBACVC,GAAW,iBACXtM,GAAU,oBACVuM,GAAS,eACTC,GAAY,kBACZR,GAAY,kBACZS,GAAY,kBACZC,GAAS,eACTC,GAAY,kBACZC,GAAa,mBAEbC,GAAiB,uBACjBC,GAAc,oBACdC,GAAa,wBACbC,GAAa,wBACbC,GAAU,qBACVC,GAAW,sBACXC,GAAW,sBACXC,GAAW,sBACXC,GAAkB,6BAClBC,GAAY,uBACZC,GAAY,uBAGZC,GAAiB,CAAE,EACvBA,GAAeT,EAAU,EAAIS,GAAeR,EAAU,EACtDQ,GAAeP,EAAO,EAAIO,GAAeN,EAAQ,EACjDM,GAAeL,EAAQ,EAAIK,GAAeJ,EAAQ,EAClDI,GAAeH,EAAe,EAAIG,GAAeF,EAAS,EAC1DE,GAAeD,EAAS,EAAI,GAC5BC,GAAe1G,EAAO,EAAI0G,GAAerB,EAAQ,EACjDqB,GAAeX,EAAc,EAAIW,GAAepB,EAAO,EACvDoB,GAAeV,EAAW,EAAIU,GAAenB,EAAO,EACpDmB,GAAelB,EAAQ,EAAIkB,GAAexN,EAAO,EACjDwN,GAAejB,EAAM,EAAIiB,GAAehB,EAAS,EACjDgB,GAAexB,EAAS,EAAIwB,GAAef,EAAS,EACpDe,GAAed,EAAM,EAAIc,GAAeb,EAAS,EACjDa,GAAeZ,EAAU,EAAI,GAS7B,SAASa,GAAiBrvD,EAAO,CAC/B,OAAOuC,GAAavC,CAAK,GACvBopD,GAASppD,EAAM,MAAM,GAAK,CAAC,CAACovD,GAAe/sD,GAAWrC,CAAK,CAAC,CAChE,CAEA,IAAAsvD,GAAiBD,GCpDjB,SAASE,GAAU9rD,EAAM,CACvB,OAAO,SAASzD,EAAO,CACrB,OAAOyD,EAAKzD,CAAK,CAClB,CACH,CAEA,IAAAwvD,GAAiBD,6CCbjB,IAAIpvD,EAAaG,GAGbgrD,EAA4CnR,GAAW,CAACA,EAAQ,UAAYA,EAG5EoR,EAAaD,GAAe,IAA6BhzC,GAAU,CAACA,EAAO,UAAYA,EAGvFkzC,EAAgBD,GAAcA,EAAW,UAAYD,EAGrDmE,EAAcjE,GAAiBrrD,EAAW,QAG1CuvD,EAAY,UAAW,CACzB,GAAI,CAEF,IAAIr2B,EAAQkyB,GAAcA,EAAW,SAAWA,EAAW,QAAQ,MAAM,EAAE,MAE3E,OAAIlyB,GAKGo2B,GAAeA,EAAY,SAAWA,EAAY,QAAQ,MAAM,CACxE,MAAW,CAAA,KAGdn3C,EAAA,QAAiBo3C,qCC7BbL,GAAmB/uD,GACnBivD,GAAYttD,GACZytD,GAAWxtD,GAGXytD,GAAmBD,IAAYA,GAAS,aAmBxCE,GAAeD,GAAmBJ,GAAUI,EAAgB,EAAIN,GAEpEQ,GAAiBD,GClBjB,SAASE,GAAQrb,EAAQ72C,EAAK,CAC5B,GAAI,EAAAA,IAAQ,eAAiB,OAAO62C,EAAO72C,CAAG,GAAM,aAIhDA,GAAO,YAIX,OAAO62C,EAAO72C,CAAG,CACnB,CAEA,IAAAmyD,GAAiBD,GCpBbnF,GAAkBrqD,GAClBgkD,GAAKriD,GAGLZ,GAAc,OAAO,UAGrBC,GAAiBD,GAAY,eAYjC,SAAS2uD,GAAYvb,EAAQ72C,EAAKoC,EAAO,CACvC,IAAIiwD,EAAWxb,EAAO72C,CAAG,GACrB,EAAE0D,GAAe,KAAKmzC,EAAQ72C,CAAG,GAAK0mD,GAAG2L,EAAUjwD,CAAK,IACvDA,IAAU,QAAa,EAAEpC,KAAO62C,KACnCkW,GAAgBlW,EAAQ72C,EAAKoC,CAAK,CAEtC,CAEA,IAAAkwD,GAAiBF,GC3BbA,GAAc1vD,GACdqqD,GAAkB1oD,GAYtB,SAASkuD,GAAWtzD,EAAQyc,EAAOm7B,EAAQ2b,EAAY,CACrD,IAAIC,EAAQ,CAAC5b,EACbA,IAAWA,EAAS,IAKpB,QAHI3zC,EAAQ,GACRwnC,EAAShvB,EAAM,OAEZ,EAAExY,EAAQwnC,GAAQ,CACvB,IAAI1qC,EAAM0b,EAAMxY,CAAK,EAEjB8W,EAAWw4C,EACXA,EAAW3b,EAAO72C,CAAG,EAAGf,EAAOe,CAAG,EAAGA,EAAK62C,EAAQ53C,CAAM,EACxD,OAEA+a,IAAa,SACfA,EAAW/a,EAAOe,CAAG,GAEnByyD,EACF1F,GAAgBlW,EAAQ72C,EAAKga,CAAQ,EAErCo4C,GAAYvb,EAAQ72C,EAAKga,CAAQ,CAEvC,CACE,OAAO68B,CACT,CAEA,IAAA6b,GAAiBH,GC9BjB,SAASI,GAAUpoE,EAAGm/D,EAAU,CAI9B,QAHIxmD,EAAQ,GACRe,EAAS,MAAM1Z,CAAC,EAEb,EAAE2Y,EAAQ3Y,GACf0Z,EAAOf,CAAK,EAAIwmD,EAASxmD,CAAK,EAEhC,OAAOe,CACT,CAEA,IAAA2uD,GAAiBD,GCnBbA,GAAYjwD,GACZwoD,GAAc7mD,GACdo/C,GAAUn/C,GACVyrD,GAAWjL,GACXwG,GAAUjF,GACV2L,GAAetG,GAGfjoD,GAAc,OAAO,UAGrBC,GAAiBD,GAAY,eAUjC,SAASovD,GAAczwD,EAAO0wD,EAAW,CACvC,IAAIC,EAAQtP,GAAQrhD,CAAK,EACrB4wD,EAAQ,CAACD,GAAS7H,GAAY9oD,CAAK,EACnC6wD,EAAS,CAACF,GAAS,CAACC,GAASjD,GAAS3tD,CAAK,EAC3C8wD,EAAS,CAACH,GAAS,CAACC,GAAS,CAACC,GAAUjB,GAAa5vD,CAAK,EAC1D+wD,EAAcJ,GAASC,GAASC,GAAUC,EAC1CjvD,EAASkvD,EAAcR,GAAUvwD,EAAM,OAAQ,MAAM,EAAI,CAAE,EAC3DsoC,EAASzmC,EAAO,OAEpB,QAASjE,KAAOoC,GACT0wD,GAAapvD,GAAe,KAAKtB,EAAOpC,CAAG,IAC5C,EAAEmzD,IAECnzD,GAAO,UAENizD,IAAWjzD,GAAO,UAAYA,GAAO,WAErCkzD,IAAWlzD,GAAO,UAAYA,GAAO,cAAgBA,GAAO,eAE7DsrD,GAAQtrD,EAAK0qC,CAAM,KAExBzmC,EAAO,KAAKjE,CAAG,EAGnB,OAAOiE,CACT,CAEA,IAAAmvD,GAAiBP,GCvCjB,SAASQ,GAAaxc,EAAQ,CAC5B,IAAI5yC,EAAS,CAAE,EACf,GAAI4yC,GAAU,KACZ,QAAS72C,KAAO,OAAO62C,CAAM,EAC3B5yC,EAAO,KAAKjE,CAAG,EAGnB,OAAOiE,CACT,CAEA,IAAAqvD,GAAiBD,GCnBblxD,GAAWO,GACXysD,GAAc9qD,GACdgvD,GAAe/uD,GAGfb,GAAc,OAAO,UAGrBC,GAAiBD,GAAY,eASjC,SAAS8vD,GAAW1c,EAAQ,CAC1B,GAAI,CAAC10C,GAAS00C,CAAM,EAClB,OAAOwc,GAAaxc,CAAM,EAE5B,IAAI2c,EAAUrE,GAAYtY,CAAM,EAC5B5yC,EAAS,CAAE,EAEf,QAASjE,KAAO62C,EACR72C,GAAO,gBAAkBwzD,GAAW,CAAC9vD,GAAe,KAAKmzC,EAAQ72C,CAAG,IACxEiE,EAAO,KAAKjE,CAAG,EAGnB,OAAOiE,CACT,CAEA,IAAAwvD,GAAiBF,GChCbV,GAAgBnwD,GAChB6wD,GAAalvD,GACbmrD,GAAclrD,GAyBlB,SAASovD,GAAO7c,EAAQ,CACtB,OAAO2Y,GAAY3Y,CAAM,EAAIgc,GAAchc,EAAQ,EAAI,EAAI0c,GAAW1c,CAAM,CAC9E,CAEA,IAAA8c,GAAiBD,GC/BbnB,GAAa7vD,GACbgxD,GAASrvD,GA0Bb,SAASuvD,GAAcxxD,EAAO,CAC5B,OAAOmwD,GAAWnwD,EAAOsxD,GAAOtxD,CAAK,CAAC,CACxC,CAEA,IAAAyxD,GAAiBD,GC/Bb3G,GAAmBvqD,GACnBqrD,GAAc1pD,GACdiqD,GAAkBhqD,GAClBmqD,GAAY3J,GACZwK,GAAkBjJ,GAClB6E,GAAcQ,GACdjI,GAAUqQ,GACVpE,GAAoBqE,GACpBhE,GAAWiE,GACX5wB,GAAa6wB,GACb9xD,GAAW+xD,GACXjxB,GAAgBkxB,GAChBnC,GAAeoC,GACflC,GAAUmC,GACVT,GAAgBU,GAiBpB,SAASC,GAAc1d,EAAQ53C,EAAQe,EAAKw0D,EAAUC,EAAWjC,EAAYkC,EAAO,CAClF,IAAIrC,EAAWH,GAAQrb,EAAQ72C,CAAG,EAC9B20D,EAAWzC,GAAQjzD,EAAQe,CAAG,EAC9B40D,EAAUF,EAAM,IAAIC,CAAQ,EAEhC,GAAIC,EAAS,CACX3H,GAAiBpW,EAAQ72C,EAAK40D,CAAO,EACrC,MACJ,CACE,IAAI56C,EAAWw4C,EACXA,EAAWH,EAAUsC,EAAW30D,EAAM,GAAK62C,EAAQ53C,EAAQy1D,CAAK,EAChE,OAEAG,EAAW76C,IAAa,OAE5B,GAAI66C,EAAU,CACZ,IAAI9B,EAAQtP,GAAQkR,CAAQ,EACxB1B,EAAS,CAACF,GAAShD,GAAS4E,CAAQ,EACpCG,EAAU,CAAC/B,GAAS,CAACE,GAAUjB,GAAa2C,CAAQ,EAExD36C,EAAW26C,EACP5B,GAASE,GAAU6B,EACjBrR,GAAQ4O,CAAQ,EAClBr4C,EAAWq4C,EAEJ3C,GAAkB2C,CAAQ,EACjCr4C,EAAWy0C,GAAU4D,CAAQ,EAEtBY,GACP4B,EAAW,GACX76C,EAAW+zC,GAAY4G,EAAU,EAAI,GAE9BG,GACPD,EAAW,GACX76C,EAAWs0C,GAAgBqG,EAAU,EAAI,GAGzC36C,EAAW,CAAE,EAGRipB,GAAc0xB,CAAQ,GAAKzJ,GAAYyJ,CAAQ,GACtD36C,EAAWq4C,EACPnH,GAAYmH,CAAQ,EACtBr4C,EAAW45C,GAAcvB,CAAQ,GAE1B,CAAClwD,GAASkwD,CAAQ,GAAKjvB,GAAWivB,CAAQ,KACjDr4C,EAAWs1C,GAAgBqF,CAAQ,IAIrCE,EAAW,EAEjB,CACMA,IAEFH,EAAM,IAAIC,EAAU36C,CAAQ,EAC5By6C,EAAUz6C,EAAU26C,EAAUH,EAAUhC,EAAYkC,CAAK,EACzDA,EAAM,OAAUC,CAAQ,GAE1B1H,GAAiBpW,EAAQ72C,EAAKga,CAAQ,CACxC,CAEA,IAAA+6C,GAAiBR,GC7Fb3H,GAAQlqD,GACRuqD,GAAmB5oD,GACnBmpD,GAAUlpD,GACViwD,GAAgBzP,GAChB3iD,GAAWkkD,GACXqN,GAAShI,GACTwG,GAAU4B,GAad,SAASkB,GAAUne,EAAQ53C,EAAQu1D,EAAUhC,EAAYkC,EAAO,CAC1D7d,IAAW53C,GAGfuuD,GAAQvuD,EAAQ,SAAS01D,EAAU30D,EAAK,CAEtC,GADA00D,IAAUA,EAAQ,IAAI9H,IAClBzqD,GAASwyD,CAAQ,EACnBJ,GAAc1d,EAAQ53C,EAAQe,EAAKw0D,EAAUQ,GAAWxC,EAAYkC,CAAK,MAEtE,CACH,IAAI16C,EAAWw4C,EACXA,EAAWN,GAAQrb,EAAQ72C,CAAG,EAAG20D,EAAW30D,EAAM,GAAK62C,EAAQ53C,EAAQy1D,CAAK,EAC5E,OAEA16C,IAAa,SACfA,EAAW26C,GAEb1H,GAAiBpW,EAAQ72C,EAAKga,CAAQ,CAC5C,CACG,EAAE05C,EAAM,CACX,CAEA,IAAAuB,GAAiBD,GCzBjB,SAASxyC,GAASpgB,EAAO,CACvB,OAAOA,CACT,CAEA,IAAA8yD,GAAiB1yC,GCVjB,SAAS2yC,GAAMtvD,EAAMa,EAAS5E,EAAM,CAClC,OAAQA,EAAK,OAAM,CACjB,IAAK,GAAG,OAAO+D,EAAK,KAAKa,CAAO,EAChC,IAAK,GAAG,OAAOb,EAAK,KAAKa,EAAS5E,EAAK,CAAC,CAAC,EACzC,IAAK,GAAG,OAAO+D,EAAK,KAAKa,EAAS5E,EAAK,CAAC,EAAGA,EAAK,CAAC,CAAC,EAClD,IAAK,GAAG,OAAO+D,EAAK,KAAKa,EAAS5E,EAAK,CAAC,EAAGA,EAAK,CAAC,EAAGA,EAAK,CAAC,CAAC,CAC/D,CACE,OAAO+D,EAAK,MAAMa,EAAS5E,CAAI,CACjC,CAEA,IAAA5B,GAAiBi1D,GCpBbA,GAAQzyD,GAGRgD,GAAY,KAAK,IAWrB,SAAS0vD,GAASvvD,EAAM6jB,EAAOuc,EAAW,CACxC,OAAAvc,EAAQhkB,GAAUgkB,IAAU,OAAa7jB,EAAK,OAAS,EAAK6jB,EAAO,CAAC,EAC7D,UAAW,CAMhB,QALI5nB,EAAO,UACPoB,EAAQ,GACRwnC,EAAShlC,GAAU5D,EAAK,OAAS4nB,EAAO,CAAC,EACzCgvB,EAAQ,MAAMhO,CAAM,EAEjB,EAAExnC,EAAQwnC,GACfgO,EAAMx1C,CAAK,EAAIpB,EAAK4nB,EAAQxmB,CAAK,EAEnCA,EAAQ,GAER,QADImyD,EAAY,MAAM3rC,EAAQ,CAAC,EACxB,EAAExmB,EAAQwmB,GACf2rC,EAAUnyD,CAAK,EAAIpB,EAAKoB,CAAK,EAE/B,OAAAmyD,EAAU3rC,CAAK,EAAIuc,EAAUyS,CAAK,EAC3Byc,GAAMtvD,EAAM,KAAMwvD,CAAS,CACnC,CACH,CAEA,IAAAC,GAAiBF,GChBjB,SAASG,GAASnzD,EAAO,CACvB,OAAO,UAAW,CAChB,OAAOA,CACR,CACH,CAEA,IAAAozD,GAAiBD,GCzBbA,GAAW7yD,GACXoqD,GAAiBzoD,GACjBme,GAAWle,GAUXmxD,GAAmB3I,GAA4B,SAASjnD,EAAMrF,EAAQ,CACxE,OAAOssD,GAAejnD,EAAM,WAAY,CACtC,aAAgB,GAChB,WAAc,GACd,MAAS0vD,GAAS/0D,CAAM,EACxB,SAAY,EAChB,CAAG,CACH,EAPwCgiB,GASxCkzC,GAAiBD,GCpBbE,GAAY,IACZC,GAAW,GAGXC,GAAY,KAAK,IAWrB,SAASC,GAASjwD,EAAM,CACtB,IAAIuhC,EAAQ,EACR2uB,EAAa,EAEjB,OAAO,UAAW,CAChB,IAAIC,EAAQH,GAAW,EACnBt1C,EAAYq1C,IAAYI,EAAQD,GAGpC,GADAA,EAAaC,EACTz1C,EAAY,GACd,GAAI,EAAE6mB,GAASuuB,GACb,OAAO,UAAU,CAAC,OAGpBvuB,EAAQ,EAEV,OAAOvhC,EAAK,MAAM,OAAW,SAAS,CACvC,CACH,CAEA,IAAAowD,GAAiBH,GCpCbL,GAAkB/yD,GAClBozD,GAAWzxD,GAUX6xD,GAAcJ,GAASL,EAAe,EAE1CU,GAAiBD,GCbb1zC,GAAW9f,GACX0yD,GAAW/wD,GACX6xD,GAAc5xD,GAUlB,SAAS8xD,GAASvwD,EAAM6jB,EAAO,CAC7B,OAAOwsC,GAAYd,GAASvvD,EAAM6jB,EAAOlH,EAAQ,EAAG3c,EAAO,EAAE,CAC/D,CAEA,IAAAwwD,GAAiBD,GChBb1P,GAAKhkD,GACL8sD,GAAcnrD,GACdinD,GAAUhnD,GACVnC,GAAW2iD,GAYf,SAASwR,GAAel0D,EAAOc,EAAO2zC,EAAQ,CAC5C,GAAI,CAAC10C,GAAS00C,CAAM,EAClB,MAAO,GAET,IAAIx0C,EAAO,OAAOa,EAClB,OAAIb,GAAQ,SACHmtD,GAAY3Y,CAAM,GAAKyU,GAAQpoD,EAAO2zC,EAAO,MAAM,EACnDx0C,GAAQ,UAAYa,KAAS2zC,GAE7B6P,GAAG7P,EAAO3zC,CAAK,EAAGd,CAAK,EAEzB,EACT,CAEA,IAAAm0D,GAAiBD,GC7BbF,GAAW1zD,GACX4zD,GAAiBjyD,GASrB,SAASmyD,GAAeC,EAAU,CAChC,OAAOL,GAAS,SAASvf,EAAQ6f,EAAS,CACxC,IAAIxzD,EAAQ,GACRwnC,EAASgsB,EAAQ,OACjBlE,EAAa9nB,EAAS,EAAIgsB,EAAQhsB,EAAS,CAAC,EAAI,OAChDisB,EAAQjsB,EAAS,EAAIgsB,EAAQ,CAAC,EAAI,OAWtC,IATAlE,EAAciE,EAAS,OAAS,GAAK,OAAOjE,GAAc,YACrD9nB,IAAU8nB,GACX,OAEAmE,GAASL,GAAeI,EAAQ,CAAC,EAAGA,EAAQ,CAAC,EAAGC,CAAK,IACvDnE,EAAa9nB,EAAS,EAAI,OAAY8nB,EACtC9nB,EAAS,GAEXmM,EAAS,OAAOA,CAAM,EACf,EAAE3zC,EAAQwnC,GAAQ,CACvB,IAAIzrC,EAASy3D,EAAQxzD,CAAK,EACtBjE,GACFw3D,EAAS5f,EAAQ53C,EAAQiE,EAAOsvD,CAAU,CAElD,CACI,OAAO3b,CACX,CAAG,CACH,CAEA,IAAA+f,GAAiBJ,GCpCbxB,GAAYtyD,GACZ8zD,GAAiBnyD,GAiCjBwyD,GAAQL,GAAe,SAAS3f,EAAQ53C,EAAQu1D,EAAU,CAC5DQ,GAAUne,EAAQ53C,EAAQu1D,CAAQ,CACpC,CAAC,EAEDsC,GAAiBD,mBCrCjB,IAAI/Q,GAAiB,4BAYrB,SAASiR,GAAY30D,EAAO,CAC1B,YAAK,SAAS,IAAIA,EAAO0jD,EAAc,EAChC,IACT,CAEA,IAAAkR,GAAiBD,GCTjB,SAASE,GAAY70D,EAAO,CAC1B,OAAO,KAAK,SAAS,IAAIA,CAAK,CAChC,CAEA,IAAA80D,GAAiBD,GCbbrO,GAAWlmD,GACXq0D,GAAc1yD,GACd4yD,GAAc3yD,GAUlB,SAAS6yD,GAASv8C,EAAQ,CACxB,IAAI1X,EAAQ,GACRwnC,EAAS9vB,GAAU,KAAO,EAAIA,EAAO,OAGzC,IADA,KAAK,SAAW,IAAIguC,GACb,EAAE1lD,EAAQwnC,GACf,KAAK,IAAI9vB,EAAO1X,CAAK,CAAC,CAE1B,CAGAi0D,GAAS,UAAU,IAAMA,GAAS,UAAU,KAAOJ,GACnDI,GAAS,UAAU,IAAMF,GAEzB,IAAAG,GAAiBD,GCfjB,SAASE,GAAc3e,EAAO4e,EAAWC,EAAWnK,EAAW,CAI7D,QAHI1iB,EAASgO,EAAM,OACfx1C,EAAQq0D,GAAanK,EAAY,EAAI,IAEjCA,EAAYlqD,IAAU,EAAEA,EAAQwnC,GACtC,GAAI4sB,EAAU5e,EAAMx1C,CAAK,EAAGA,EAAOw1C,CAAK,EACtC,OAAOx1C,EAGX,MAAO,EACT,CAEA,IAAAs0D,GAAiBH,GChBjB,SAASI,GAAUr1D,EAAO,CACxB,OAAOA,IAAUA,CACnB,CAEA,IAAAs1D,GAAiBD,GCDjB,SAASE,GAAcjf,EAAOt2C,EAAOm1D,EAAW,CAI9C,QAHIr0D,EAAQq0D,EAAY,EACpB7sB,EAASgO,EAAM,OAEZ,EAAEx1C,EAAQwnC,GACf,GAAIgO,EAAMx1C,CAAK,IAAMd,EACnB,OAAOc,EAGX,MAAO,EACT,CAEA,IAAA00D,GAAiBD,GCtBbN,GAAgB30D,GAChB+0D,GAAYpzD,GACZszD,GAAgBrzD,GAWpB,SAASuzD,GAAYnf,EAAOt2C,EAAOm1D,EAAW,CAC5C,OAAOn1D,IAAUA,EACbu1D,GAAcjf,EAAOt2C,EAAOm1D,CAAS,EACrCF,GAAc3e,EAAO+e,GAAWF,CAAS,CAC/C,CAEA,IAAAO,GAAiBD,GCnBbA,GAAcn1D,GAWlB,SAASq1D,GAAcrf,EAAOt2C,EAAO,CACnC,IAAIsoC,EAASgO,GAAS,KAAO,EAAIA,EAAM,OACvC,MAAO,CAAC,CAAChO,GAAUmtB,GAAYnf,EAAOt2C,EAAO,CAAC,EAAI,EACpD,CAEA,IAAA41D,GAAiBD,GCPjB,SAASE,GAAkBvf,EAAOt2C,EAAO81D,EAAY,CAInD,QAHIh1D,EAAQ,GACRwnC,EAASgO,GAAS,KAAO,EAAIA,EAAM,OAEhC,EAAEx1C,EAAQwnC,GACf,GAAIwtB,EAAW91D,EAAOs2C,EAAMx1C,CAAK,CAAC,EAChC,MAAO,GAGX,MAAO,EACT,CAEA,IAAAi1D,GAAiBF,GCbjB,SAASG,GAASx2C,EAAO5hB,EAAK,CAC5B,OAAO4hB,EAAM,IAAI5hB,CAAG,CACtB,CAEA,IAAAq4D,GAAiBD,GCZb9S,GAAY5iD,GACZE,GAAOyB,GAGPi0D,GAAMhT,GAAU1iD,GAAM,KAAK,EAE/B21D,GAAiBD,GCMjB,SAASE,IAAO,CAEhB,CAEA,IAAAC,GAAiBD,GCTjB,SAASE,GAAWC,EAAK,CACvB,IAAIz1D,EAAQ,GACRe,EAAS,MAAM00D,EAAI,IAAI,EAE3B,OAAAA,EAAI,QAAQ,SAASv2D,EAAO,CAC1B6B,EAAO,EAAEf,CAAK,EAAId,CACtB,CAAG,EACM6B,CACT,CAEA,IAAA20D,GAAiBF,GCjBbJ,GAAM51D,GACN81D,GAAOn0D,GACPq0D,GAAap0D,GAGbu0D,GAAW,IASXC,GAAcR,IAAQ,EAAII,GAAW,IAAIJ,GAAI,CAAA,CAAE,EAAE,CAAC,CAAC,EAAE,CAAC,GAAMO,GAAmB,SAASj+C,EAAQ,CAClG,OAAO,IAAI09C,GAAI19C,CAAM,CACvB,EAF4E49C,GAI5EO,GAAiBD,GClBb3B,GAAWz0D,GACXq1D,GAAgB1zD,GAChB4zD,GAAoB3zD,GACpB8zD,GAAWtT,GACXgU,GAAYzS,GACZqS,GAAahN,GAGbc,GAAmB,IAWvB,SAASwM,GAAStgB,EAAOgR,EAAUwO,EAAY,CAC7C,IAAIh1D,EAAQ,GACR+1D,EAAWlB,GACXrtB,EAASgO,EAAM,OACfmc,EAAW,GACX5wD,EAAS,CAAE,EACXi1D,EAAOj1D,EAEX,GAAIi0D,EACFrD,EAAW,GACXoE,EAAWhB,WAEJvtB,GAAU8hB,GAAkB,CACnC,IAAImM,EAAMjP,EAAW,KAAOoP,GAAUpgB,CAAK,EAC3C,GAAIigB,EACF,OAAOD,GAAWC,CAAG,EAEvB9D,EAAW,GACXoE,EAAWb,GACXc,EAAO,IAAI/B,EACf,MAEI+B,EAAOxP,EAAW,CAAA,EAAKzlD,EAEzBk1D,EACA,KAAO,EAAEj2D,EAAQwnC,GAAQ,CACvB,IAAItoC,EAAQs2C,EAAMx1C,CAAK,EACnBk2D,EAAW1P,EAAWA,EAAStnD,CAAK,EAAIA,EAG5C,GADAA,EAAS81D,GAAc91D,IAAU,EAAKA,EAAQ,EAC1CyyD,GAAYuE,IAAaA,EAAU,CAErC,QADIC,EAAYH,EAAK,OACdG,KACL,GAAIH,EAAKG,CAAS,IAAMD,EACtB,SAASD,EAGTzP,GACFwP,EAAK,KAAKE,CAAQ,EAEpBn1D,EAAO,KAAK7B,CAAK,CACvB,MACc62D,EAASC,EAAME,EAAUlB,CAAU,IACvCgB,IAASj1D,GACXi1D,EAAK,KAAKE,CAAQ,EAEpBn1D,EAAO,KAAK7B,CAAK,EAEvB,CACE,OAAO6B,CACT,CAEA,IAAAq1D,GAAiBN,GCvEbA,GAAWt2D,GAoBf,SAAS62D,GAAK7gB,EAAO,CACnB,OAAQA,GAASA,EAAM,OAAUsgB,GAAStgB,CAAK,EAAI,CAAE,CACvD,CAEA,IAAA8gB,GAAiBD,mBCvBJE,GAAwB,CAAC59C,EAAMnb,IAAW,CACnD,MAAMN,EAAU,CAAE,EACZb,EAAO,CAAE,EACf,OAAAa,EAAQ,KAAKM,CAAM,EACdA,GACDN,EAAQ,KAAKyb,EAAK,MAAM,EAExBA,EAAK,gBACLzb,EAAQ,KAAKyb,EAAK,aAAa,EAEnCzb,EACK,OAAO,OAAO,EACd,IAAK2nB,GAAUA,EAAM,SAAU,CAAA,EAC/B,QAAQ,SAAU2xC,EAAe,CAIlC,GAHKn6D,EAAK,SAASm6D,CAAa,GAC5Bn6D,EAAK,KAAKm6D,CAAa,EAEvB,CAAC79C,EAAK,eACN,OAEJ,MAAM89C,EAAQD,EAAc,MAAM,GAAG,EACjCC,EAAM,SAAW,GACjBp6D,EAAK,KAAK,GAAGo6D,EAAM,CAAC,CAAC,IAAIA,EAAM,CAAC,CAAC,EAAE,EAEvCp6D,EAAK,KAAKo6D,EAAM,CAAC,CAAC,CAC1B,CAAK,EACMJ,GAAKh6D,CAAI,CACpB,EACO,MAAMq6D,EAAQ,CACjB,YAAY/9C,EAAM,CACd,KAAK,KAAOA,EACZ,KAAK,SAAW,CAAE,EAClB,KAAK,SAAS,UAAW49C,EAAqB,CACtD,CACI,SAAS/4D,EAAQm5D,EAAgB,CAC7B,GAAI,OAAOA,GAAmB,WAAY,CACtC,MAAM51D,EAAS41D,EACfA,EAAkB,IAAM51D,CACpC,CACQ,KAAK,SAASvD,CAAM,EAAIm5D,CAChC,CACI,IAAIn5D,EAAQ,CACR,IAAIN,EAAU,KAAK,SAASM,CAAM,GAC9B,KAAK,SAAS,KAAK,KAAK,MAAM,GAC9B,KAAK,SAAS,QAClB,OAAI,OAAON,GAAY,aACnBA,EAAUA,EAAQ,KAAK,KAAMM,CAAM,GAEjCN,aAAmB,QACrBA,EAAU,CAACA,CAAO,GAEfA,CACf,CACA,CC2HO,MAAM1I,GAAK,CAACnN,EAAGuvE,IAAQ,CAC5B,MAAMpvE,EAAI,OAAOH,CAAC,EAAE,MAAM,GAAG,EAAGwvE,EAAK,CAACrvE,EAAE,CAAC,EAAGsvE,EAAK,OAAOtvE,EAAE,CAAC,CAAC,GAAKH,EAAG0vE,EAAMD,GAAMtvE,EAAE,CAAC,EAAE,MAAM,EAAE,EAAGwvE,EAAOF,GAAMtvE,EAAE,CAAC,EAAE,MAAM,EAAE,EAC1H,OAAIovE,EAAYG,GAAO,GAAKC,GAAQ,GAAK,MACrCD,GAAO,GAAKC,GAAQ,GAAK,MACzBD,GAAO,GAAKC,GAAQ,GAAK,MACzB,QACG3vE,GAAK,GAAKwvE,EAAK,MAAQ,OAChC,ECvLO,SAASI,GAAc,CAAE,WAAAC,EAAY,YAAAC,EAAc,GAAM,QAAAC,EAAU,IAAU,CAChF,OAAO,SAAUC,EAAOnzB,EAAO,CAC3B,MAAO,CACHizB,GAAejzB,IAAU,EAAI,OAAS,GACtCgzB,EAAWhzB,EAAOkzB,CAAO,CACrC,EAAU,OAAO,OAAO,CACnB,CACL,CACO,MAAME,GAAoBL,GAAc,CAC3C,WAAYziE,GACZ,YAAa,EACjB,CAAC,EACM,MAAM+iE,EAAc,CACvB,YAAY5+C,EAAM,CACd,KAAK,KAAOA,EACZ,KAAK,SAAW,CAAE,EAClB,KAAK,SAAS,UAAW2+C,EAAiB,CAClD,CACI,SAAS95D,EAAQ05D,EAAY,CACzB,KAAK,SAAS15D,CAAM,EAAI05D,CAChC,CACI,IAAI15D,EAAQ,CACR,OAAQ,KAAK,SAASA,CAAM,GACxB,KAAK,SAAS,KAAK,KAAK,MAAM,GAC9B,KAAK,SAAS,OAC1B,CACA,CClBA,SAASg6D,GAAUhiB,EAAOhvB,EAAOE,EAAK,CACpC,IAAI1mB,EAAQ,GACRwnC,EAASgO,EAAM,OAEfhvB,EAAQ,IACVA,EAAQ,CAACA,EAAQghB,EAAS,EAAKA,EAAShhB,GAE1CE,EAAMA,EAAM8gB,EAASA,EAAS9gB,EAC1BA,EAAM,IACRA,GAAO8gB,GAETA,EAAShhB,EAAQE,EAAM,EAAMA,EAAMF,IAAW,EAC9CA,KAAW,EAGX,QADIzlB,EAAS,MAAMymC,CAAM,EAClB,EAAExnC,EAAQwnC,GACfzmC,EAAOf,CAAK,EAAIw1C,EAAMx1C,EAAQwmB,CAAK,EAErC,OAAOzlB,CACT,CAEA,IAAA02D,GAAiBD,GC9BbA,GAAYh4D,GAWhB,SAASk4D,GAAUliB,EAAOhvB,EAAOE,EAAK,CACpC,IAAI8gB,EAASgO,EAAM,OACnB,OAAA9uB,EAAMA,IAAQ,OAAY8gB,EAAS9gB,EAC3B,CAACF,GAASE,GAAO8gB,EAAUgO,EAAQgiB,GAAUhiB,EAAOhvB,EAAOE,CAAG,CACxE,CAEA,IAAAixC,GAAiBD,GChBbE,GAAgB,kBAChBC,GAAoB,kBACpBC,GAAwB,kBACxBC,GAAsB,kBACtBC,GAAeH,GAAoBC,GAAwBC,GAC3DE,GAAa,iBAGbC,GAAQ,UAGRC,GAAe,OAAO,IAAMD,GAAQN,GAAiBI,GAAeC,GAAa,GAAG,EASxF,SAASG,GAAW96D,EAAQ,CAC1B,OAAO66D,GAAa,KAAK76D,CAAM,CACjC,CAEA,IAAA+6D,GAAiBD,GClBjB,SAASE,GAAah7D,EAAQ,CAC5B,OAAOA,EAAO,MAAM,EAAE,CACxB,CAEA,IAAAi7D,GAAiBD,GCVbV,GAAgB,kBAChBC,GAAoB,kBACpBC,GAAwB,kBACxBC,GAAsB,kBACtBC,GAAeH,GAAoBC,GAAwBC,GAC3DE,GAAa,iBAGbO,GAAW,IAAMZ,GAAgB,IACjCa,GAAU,IAAMT,GAAe,IAC/BU,GAAS,2BACTC,GAAa,MAAQF,GAAU,IAAMC,GAAS,IAC9CE,GAAc,KAAOhB,GAAgB,IACrCiB,GAAa,kCACbC,GAAa,qCACbZ,GAAQ,UAGRa,GAAWJ,GAAa,IACxBK,GAAW,IAAMf,GAAa,KAC9BgB,GAAY,MAAQf,GAAQ,MAAQ,CAACU,GAAaC,GAAYC,EAAU,EAAE,KAAK,GAAG,EAAI,IAAME,GAAWD,GAAW,KAClHG,GAAQF,GAAWD,GAAWE,GAC9BE,GAAW,MAAQ,CAACP,GAAcH,GAAU,IAAKA,GAASI,GAAYC,GAAYN,EAAQ,EAAE,KAAK,GAAG,EAAI,IAGxGY,GAAY,OAAOV,GAAS,MAAQA,GAAS,KAAOS,GAAWD,GAAO,GAAG,EAS7E,SAASG,GAAe/7D,EAAQ,CAC9B,OAAOA,EAAO,MAAM87D,EAAS,GAAK,CAAE,CACtC,CAEA,IAAAE,GAAiBD,GCvCbf,GAAe94D,GACf44D,GAAaj3D,GACbk4D,GAAiBj4D,GASrB,SAASm4D,GAAcj8D,EAAQ,CAC7B,OAAO86D,GAAW96D,CAAM,EACpB+7D,GAAe/7D,CAAM,EACrBg7D,GAAah7D,CAAM,CACzB,CAEA,IAAAk8D,GAAiBD,GCjBb7B,GAAYl4D,GACZ44D,GAAaj3D,GACbo4D,GAAgBn4D,GAChB0lD,GAAWlF,GASf,SAAS6X,GAAgBxc,EAAY,CACnC,OAAO,SAAS3/C,EAAQ,CACtBA,EAASwpD,GAASxpD,CAAM,EAExB,IAAIo8D,EAAatB,GAAW96D,CAAM,EAC9Bi8D,GAAcj8D,CAAM,EACpB,OAEAq8D,EAAMD,EACNA,EAAW,CAAC,EACZp8D,EAAO,OAAO,CAAC,EAEf+F,EAAWq2D,EACXhC,GAAUgC,EAAY,CAAC,EAAE,KAAK,EAAE,EAChCp8D,EAAO,MAAM,CAAC,EAElB,OAAOq8D,EAAI1c,CAAU,EAAC,EAAK55C,CAC5B,CACH,CAEA,IAAAu2D,GAAiBH,GChCbA,GAAkBj6D,GAmBlBq6D,GAAaJ,GAAgB,aAAa,EAE9CK,GAAiBD,GCrBb/S,GAAWtnD,GACXq6D,GAAa14D,GAiBjB,SAAS44D,GAAWz8D,EAAQ,CAC1B,OAAOu8D,GAAW/S,GAASxpD,CAAM,EAAE,YAAW,CAAE,CAClD,CAEA,IAAA08D,GAAiBD,GCVjB,SAASE,GAAYzkB,EAAOgR,EAAU1gC,EAAao0C,EAAW,CAC5D,IAAIl6D,EAAQ,GACRwnC,EAASgO,GAAS,KAAO,EAAIA,EAAM,OAKvC,IAHI0kB,GAAa1yB,IACf1hB,EAAc0vB,EAAM,EAAEx1C,CAAK,GAEtB,EAAEA,EAAQwnC,GACf1hB,EAAc0gC,EAAS1gC,EAAa0vB,EAAMx1C,CAAK,EAAGA,EAAOw1C,CAAK,EAEhE,OAAO1vB,CACT,CAEA,IAAAq0C,GAAiBF,GClBjB,SAASG,GAAezmB,EAAQ,CAC9B,OAAO,SAAS72C,EAAK,CACnB,OAAO62C,GAAU,KAAO,OAAYA,EAAO72C,CAAG,CAC/C,CACH,CAEA,IAAAu9D,GAAiBD,GCbbA,GAAiB56D,GAGjB86D,GAAkB,CAEpB,EAAQ,IAAM,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAC1E,EAAQ,IAAM,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAC1E,EAAQ,IAAM,EAAQ,IACtB,EAAQ,IAAM,EAAQ,IACtB,EAAQ,IAAM,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAChD,EAAQ,IAAM,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAChD,EAAQ,IAAM,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAChD,EAAQ,IAAM,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAChD,EAAQ,IAAM,EAAQ,IACtB,EAAQ,IAAM,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAC1E,EAAQ,IAAM,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAC1E,EAAQ,IAAM,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAChD,EAAQ,IAAM,EAAQ,IAAK,EAAQ,IAAK,EAAQ,IAChD,EAAQ,IAAM,EAAQ,IAAK,EAAQ,IACnC,EAAQ,KAAM,EAAQ,KACtB,EAAQ,KAAM,EAAQ,KACtB,EAAQ,KAER,EAAU,IAAM,EAAU,IAAK,EAAU,IACzC,EAAU,IAAM,EAAU,IAAK,EAAU,IACzC,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IACxD,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IACxD,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IACxD,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IAAK,EAAU,IACvE,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IAAK,EAAU,IACvE,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IACxD,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IACxD,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IACxD,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IAAK,EAAU,IACvE,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IAAK,EAAU,IACvE,EAAU,IAAM,EAAU,IAC1B,EAAU,IAAM,EAAU,IAAK,EAAU,IACzC,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IAAK,EAAU,IACvE,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IAAK,EAAU,IACvE,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IACxD,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IACxD,EAAU,IAAM,EAAU,IAAK,EAAU,IACzC,EAAU,IAAM,EAAU,IAAK,EAAU,IACzC,EAAU,IAAM,EAAU,IAAK,EAAU,IACzC,EAAU,IAAM,EAAU,IAAK,EAAU,IACzC,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IACxD,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IACxD,EAAU,IAAM,EAAU,IAAK,EAAU,IACzC,EAAU,IAAM,EAAU,IAAK,EAAU,IACzC,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IAAK,EAAU,IAAK,EAAU,IACtF,EAAU,IAAM,EAAU,IAAK,EAAU,IAAK,EAAU,IAAK,EAAU,IAAK,EAAU,IACtF,EAAU,IAAM,EAAU,IAC1B,EAAU,IAAM,EAAU,IAAK,EAAU,IACzC,EAAU,IAAM,EAAU,IAAK,EAAU,IACzC,EAAU,IAAM,EAAU,IAAK,EAAU,IACzC,EAAU,KAAM,EAAU,KAC1B,EAAU,KAAM,EAAU,KAC1B,EAAU,KAAM,EAAU,GAC5B,EAUIC,GAAeH,GAAeE,EAAe,EAEjDE,GAAiBD,GCtEbA,GAAe/6D,GACfsnD,GAAW3lD,GAGXs5D,GAAU,8CAGV5C,GAAoB,kBACpBC,GAAwB,kBACxBC,GAAsB,kBACtBC,GAAeH,GAAoBC,GAAwBC,GAG3DU,GAAU,IAAMT,GAAe,IAM/B0C,GAAc,OAAOjC,GAAS,GAAG,EAoBrC,SAASkC,GAAOr9D,EAAQ,CACtB,OAAAA,EAASwpD,GAASxpD,CAAM,EACjBA,GAAUA,EAAO,QAAQm9D,GAASF,EAAY,EAAE,QAAQG,GAAa,EAAE,CAChF,CAEA,IAAAE,GAAiBD,GC3CbE,GAAc,4CASlB,SAASC,GAAWx9D,EAAQ,CAC1B,OAAOA,EAAO,MAAMu9D,EAAW,GAAK,CAAE,CACxC,CAEA,IAAAE,GAAiBD,GCbbE,GAAmB,qEASvB,SAASC,GAAe39D,EAAQ,CAC9B,OAAO09D,GAAiB,KAAK19D,CAAM,CACrC,CAEA,IAAA49D,GAAiBD,GCbbrD,GAAgB,kBAChBC,GAAoB,kBACpBC,GAAwB,kBACxBC,GAAsB,kBACtBC,GAAeH,GAAoBC,GAAwBC,GAC3DoD,GAAiB,kBACjBC,GAAe,4BACfC,GAAgB,uBAChBC,GAAiB,+CACjBC,GAAqB,kBACrBC,GAAe,+JACfC,GAAe,4BACfxD,GAAa,iBACbyD,GAAeL,GAAgBC,GAAiBC,GAAqBC,GAGrEG,GAAS,OACTC,GAAU,IAAMF,GAAe,IAC/BjD,GAAU,IAAMT,GAAe,IAC/B6D,GAAW,OACXC,GAAY,IAAMX,GAAiB,IACnCY,GAAU,IAAMX,GAAe,IAC/BY,GAAS,KAAOpE,GAAgB8D,GAAeG,GAAWV,GAAiBC,GAAeK,GAAe,IACzG/C,GAAS,2BACTC,GAAa,MAAQF,GAAU,IAAMC,GAAS,IAC9CE,GAAc,KAAOhB,GAAgB,IACrCiB,GAAa,kCACbC,GAAa,qCACbmD,GAAU,IAAMR,GAAe,IAC/BvD,GAAQ,UAGRgE,GAAc,MAAQH,GAAU,IAAMC,GAAS,IAC/CG,GAAc,MAAQF,GAAU,IAAMD,GAAS,IAC/CI,GAAkB,MAAQT,GAAS,yBACnCU,GAAkB,MAAQV,GAAS,yBACnC5C,GAAWJ,GAAa,IACxBK,GAAW,IAAMf,GAAa,KAC9BgB,GAAY,MAAQf,GAAQ,MAAQ,CAACU,GAAaC,GAAYC,EAAU,EAAE,KAAK,GAAG,EAAI,IAAME,GAAWD,GAAW,KAClHuD,GAAa,mDACbC,GAAa,mDACbrD,GAAQF,GAAWD,GAAWE,GAC9BuD,GAAU,MAAQ,CAACV,GAAWjD,GAAYC,EAAU,EAAE,KAAK,GAAG,EAAI,IAAMI,GAGxEuD,GAAgB,OAAO,CACzBR,GAAU,IAAMF,GAAU,IAAMK,GAAkB,MAAQ,CAACR,GAASK,GAAS,GAAG,EAAE,KAAK,GAAG,EAAI,IAC9FE,GAAc,IAAME,GAAkB,MAAQ,CAACT,GAASK,GAAUC,GAAa,GAAG,EAAE,KAAK,GAAG,EAAI,IAChGD,GAAU,IAAMC,GAAc,IAAME,GACpCH,GAAU,IAAMI,GAChBE,GACAD,GACAT,GACAW,EACF,EAAE,KAAK,GAAG,EAAG,GAAG,EAShB,SAASE,GAAap/D,EAAQ,CAC5B,OAAOA,EAAO,MAAMm/D,EAAa,GAAK,CAAE,CAC1C,CAEA,IAAAE,GAAiBD,GCpEb5B,GAAat7D,GACby7D,GAAiB95D,GACjB2lD,GAAW1lD,GACXs7D,GAAe9a,GAqBnB,SAASgb,GAAMt/D,EAAQyL,EAAS0qD,EAAO,CAIrC,OAHAn2D,EAASwpD,GAASxpD,CAAM,EACxByL,EAAU0qD,EAAQ,OAAY1qD,EAE1BA,IAAY,OACPkyD,GAAe39D,CAAM,EAAIo/D,GAAap/D,CAAM,EAAIw9D,GAAWx9D,CAAM,EAEnEA,EAAO,MAAMyL,CAAO,GAAK,CAAE,CACpC,CAEA,IAAA8zD,GAAiBD,GClCb3C,GAAcz6D,GACdm7D,GAASx5D,GACTy7D,GAAQx7D,GAGRu6D,GAAS,OAGTmB,GAAS,OAAOnB,GAAQ,GAAG,EAS/B,SAASoB,GAAiBhvD,EAAU,CAClC,OAAO,SAASzQ,EAAQ,CACtB,OAAO28D,GAAY2C,GAAMjC,GAAOr9D,CAAM,EAAE,QAAQw/D,GAAQ,EAAE,CAAC,EAAG/uD,EAAU,EAAE,CAC3E,CACH,CAEA,IAAAivD,GAAiBD,GCvBbhD,GAAav6D,GACbu9D,GAAmB57D,GAsBnB87D,GAAYF,GAAiB,SAASh8D,EAAQm8D,EAAMl9D,EAAO,CAC7D,OAAAk9D,EAAOA,EAAK,YAAa,EAClBn8D,GAAUf,EAAQ+5D,GAAWmD,CAAI,EAAIA,EAC9C,CAAC,EAEDC,GAAiBF,mBC3BV,SAASG,GAAct0D,EAAQ,CAClC,OAAKA,EAGE,OAAO,KAAKA,CAAM,EAAE,OAAO,CAACgiD,EAAQhuD,KACvCguD,EAAOmS,GAAUngE,CAAG,CAAC,EAAIgM,EAAOhM,CAAG,EAC5BguD,GACR,EAAE,EALM,CAAE,CAMjB,CCTO,SAASuS,GAAMn+D,EAAO,CACzB,OAA8BA,GAAU,IAC5C,CCDO,SAASo+D,GAAyB3kD,EAAM4kD,EAAO/gE,EAAS,CAC3D,IAAIghE,EAAqB,CAAC,CAAE,MAAAD,EAAO,EAInC,GAHIF,GAAM7gE,EAAQ,QAAQ,IACtBghE,EAAqBA,EAAmB,OAAOhhE,EAAQ,QAAQ,GAE/D6gE,GAAM7gE,EAAQ,YAAY,EAAG,CAC7B,MAAM0M,EAAU,OAAO1M,EAAQ,cAAiB,WAC1CA,EAAQ,aAAamc,EAAM4kD,EAAO/gE,CAAO,EACzCA,EAAQ,aACdghE,EAAmB,KAAK,CAAE,QAAAt0D,EAAS,EACnC,OAAO1M,EAAQ,YACvB,CACI,OAAOghE,CACX,CCkCA,IACEC,GAAY,6CACZC,GAAW,KAAK,KAChBC,GAAY,KAAK,MAEjBC,GAAiB,qBACjBC,GAAgBD,GAAiB,yDAEjCE,GAAO,KACPC,EAAW,GACX7V,GAAmB,iBAEnB8V,GAAW,CAAC,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,IAAI,EACjFC,GAAY,IAKZC,GAAM,IAMR,SAASzvB,GAAM0vB,EAAc,CAC3B,IAAIp1C,EAAKq1C,EAAaC,EACpB/0E,EAAIg1E,EAAU,UAAY,CAAE,YAAaA,EAAW,SAAU,KAAM,QAAS,IAAM,EACnFC,EAAM,IAAID,EAAU,CAAC,EAUrBE,EAAiB,GAajBC,EAAgB,EAMhBC,EAAa,GAIbC,EAAa,GAMbC,EAAU,KAKVC,EAAU,IAGVC,EAAS,GAkBTC,EAAc,EAIdC,EAAgB,EAGhBC,EAAS,CACP,OAAQ,GACR,UAAW,EACX,mBAAoB,EACpB,eAAgB,IAChB,iBAAkB,IAClB,kBAAmB,EACnB,uBAAwB,IACxB,OAAQ,EACT,EAKDC,EAAW,uCACXC,EAAiC,GAgBnC,SAASb,EAAUj2E,EAAGF,EAAG,CACvB,IAAIi3E,EAAUz3E,EAAG03E,EAAal4E,EAAGC,EAAGk4E,EAAOj2C,EAAKoe,EAC9Cl/C,EAAI,KAGN,GAAI,EAAEA,aAAa+1E,GAAY,OAAO,IAAIA,EAAUj2E,EAAGF,CAAC,EAExD,GAAIA,GAAK,KAAM,CAEb,GAAIE,GAAKA,EAAE,eAAiB,GAAM,CAChCE,EAAE,EAAIF,EAAE,EAEJ,CAACA,EAAE,GAAKA,EAAE,EAAIw2E,EAChBt2E,EAAE,EAAIA,EAAE,EAAI,KACHF,EAAE,EAAIu2E,EACfr2E,EAAE,EAAI,CAACA,EAAE,EAAI,CAAC,GAEdA,EAAE,EAAIF,EAAE,EACRE,EAAE,EAAIF,EAAE,EAAE,MAAK,GAGjB,MACD,CAED,IAAKi3E,EAAQ,OAAOj3E,GAAK,WAAaA,EAAI,GAAK,EAAG,CAMhD,GAHAE,EAAE,EAAI,EAAIF,EAAI,GAAKA,EAAI,CAACA,EAAG,IAAM,EAG7BA,IAAM,CAAC,CAACA,EAAG,CACb,IAAKlB,EAAI,EAAGC,EAAIiB,EAAGjB,GAAK,GAAIA,GAAK,GAAID,IAAI,CAErCA,EAAI03E,EACNt2E,EAAE,EAAIA,EAAE,EAAI,MAEZA,EAAE,EAAIpB,EACNoB,EAAE,EAAI,CAACF,CAAC,GAGV,MACD,CAEDo/C,EAAM,OAAOp/C,CAAC,CACtB,KAAa,CAEL,GAAI,CAACo1E,GAAU,KAAKh2B,EAAM,OAAOp/C,CAAC,CAAC,EAAG,OAAOg2E,EAAa91E,EAAGk/C,EAAK63B,CAAK,EAEvE/2E,EAAE,EAAIk/C,EAAI,WAAW,CAAC,GAAK,IAAMA,EAAMA,EAAI,MAAM,CAAC,EAAG,IAAM,CAC5D,EAGItgD,EAAIsgD,EAAI,QAAQ,GAAG,GAAK,KAAIA,EAAMA,EAAI,QAAQ,IAAK,EAAE,IAGrDrgD,EAAIqgD,EAAI,OAAO,IAAI,GAAK,GAGvBtgD,EAAI,IAAGA,EAAIC,GACfD,GAAK,CAACsgD,EAAI,MAAMrgD,EAAI,CAAC,EACrBqgD,EAAMA,EAAI,UAAU,EAAGrgD,CAAC,GACfD,EAAI,IAGbA,EAAIsgD,EAAI,OAGhB,KAAW,CAOL,GAJA83B,GAASp3E,EAAG,EAAG+2E,EAAS,OAAQ,MAAM,EAIlC/2E,GAAK,IAAMg3E,EACb,OAAA52E,EAAI,IAAI+1E,EAAUj2E,CAAC,EACZm3E,EAAMj3E,EAAGi2E,EAAiBj2E,EAAE,EAAI,EAAGk2E,CAAa,EAKzD,GAFAh3B,EAAM,OAAOp/C,CAAC,EAEVi3E,EAAQ,OAAOj3E,GAAK,SAAU,CAGhC,GAAIA,EAAI,GAAK,EAAG,OAAOg2E,EAAa91E,EAAGk/C,EAAK63B,EAAOn3E,CAAC,EAKpD,GAHAI,EAAE,EAAI,EAAIF,EAAI,GAAKo/C,EAAMA,EAAI,MAAM,CAAC,EAAG,IAAM,EAGzC62B,EAAU,OAAS72B,EAAI,QAAQ,YAAa,EAAE,EAAE,OAAS,GAC3D,MAAM,MACJo2B,GAAgBx1E,CAAC,CAE7B,MACQE,EAAE,EAAIk/C,EAAI,WAAW,CAAC,IAAM,IAAMA,EAAMA,EAAI,MAAM,CAAC,EAAG,IAAM,EAQ9D,IALA23B,EAAWF,EAAS,MAAM,EAAG/2E,CAAC,EAC9BhB,EAAIC,EAAI,EAIHiiC,EAAMoe,EAAI,OAAQrgD,EAAIiiC,EAAKjiC,IAC9B,GAAIg4E,EAAS,QAAQz3E,EAAI8/C,EAAI,OAAOrgD,CAAC,CAAC,EAAI,EAAG,CAC3C,GAAIO,GAAK,KAGP,GAAIP,EAAID,EAAG,CACTA,EAAIkiC,EACJ,QACD,UACQ,CAACg2C,IAGN53B,GAAOA,EAAI,YAAW,IAAOA,EAAMA,EAAI,gBACvCA,GAAOA,EAAI,YAAa,IAAKA,EAAMA,EAAI,YAAW,IAAK,CACzD43B,EAAc,GACdj4E,EAAI,GACJD,EAAI,EACJ,QACD,CAGH,OAAOk3E,EAAa91E,EAAG,OAAOF,CAAC,EAAGi3E,EAAOn3E,CAAC,CAC3C,CAIHm3E,EAAQ,GACR73B,EAAM22B,EAAY32B,EAAKt/C,EAAG,GAAII,EAAE,CAAC,GAG5BpB,EAAIsgD,EAAI,QAAQ,GAAG,GAAK,GAAIA,EAAMA,EAAI,QAAQ,IAAK,EAAE,EACrDtgD,EAAIsgD,EAAI,MACd,CAGD,IAAKrgD,EAAI,EAAGqgD,EAAI,WAAWrgD,CAAC,IAAM,GAAIA,IAAI,CAG1C,IAAKiiC,EAAMoe,EAAI,OAAQA,EAAI,WAAW,EAAEpe,CAAG,IAAM,IAAI,CAErD,GAAIoe,EAAMA,EAAI,MAAMrgD,EAAG,EAAEiiC,CAAG,EAAG,CAI7B,GAHAA,GAAOjiC,EAGHk4E,GAAShB,EAAU,OACrBj1C,EAAM,KAAOhhC,EAAI6/D,IAAoB7/D,IAAMs1E,GAAUt1E,CAAC,GACpD,MAAM,MACJw1E,GAAiBt1E,EAAE,EAAIF,CAAE,EAI/B,IAAKlB,EAAIA,EAAIC,EAAI,GAAKy3E,EAGpBt2E,EAAE,EAAIA,EAAE,EAAI,aAGHpB,EAAIy3E,EAGbr2E,EAAE,EAAI,CAACA,EAAE,EAAI,CAAC,MACT,CAWL,GAVAA,EAAE,EAAIpB,EACNoB,EAAE,EAAI,GAMNnB,GAAKD,EAAI,GAAK42E,EACV52E,EAAI,IAAGC,GAAK22E,GAEZ32E,EAAIiiC,EAAK,CAGX,IAFIjiC,GAAGmB,EAAE,EAAE,KAAK,CAACk/C,EAAI,MAAM,EAAGrgD,CAAC,CAAC,EAE3BiiC,GAAO00C,EAAU32E,EAAIiiC,GACxB9gC,EAAE,EAAE,KAAK,CAACk/C,EAAI,MAAMrgD,EAAGA,GAAK22E,CAAQ,CAAC,EAGvC32E,EAAI22E,GAAYt2B,EAAMA,EAAI,MAAMrgD,CAAC,GAAG,MAC9C,MACUA,GAAKiiC,EAGP,KAAOjiC,IAAKqgD,GAAO,IAAI,CACvBl/C,EAAE,EAAE,KAAK,CAACk/C,CAAG,CACd,CACP,MAGMl/C,EAAE,EAAI,CAACA,EAAE,EAAI,CAAC,CAEjB,CAMD+1E,EAAU,MAAQ7vB,GAElB6vB,EAAU,SAAW,EACrBA,EAAU,WAAa,EACvBA,EAAU,WAAa,EACvBA,EAAU,YAAc,EACxBA,EAAU,cAAgB,EAC1BA,EAAU,gBAAkB,EAC5BA,EAAU,gBAAkB,EAC5BA,EAAU,gBAAkB,EAC5BA,EAAU,iBAAmB,EAC7BA,EAAU,OAAS,EAqCnBA,EAAU,OAASA,EAAU,IAAM,SAAU/oD,EAAK,CAChD,IAAIttB,EAAGI,EAEP,GAAIktB,GAAO,KAET,GAAI,OAAOA,GAAO,SAAU,CAsC1B,GAlCIA,EAAI,eAAettB,EAAI,gBAAgB,IACzCI,EAAIktB,EAAIttB,CAAC,EACTs3E,GAASl3E,EAAG,EAAG61E,GAAKj2E,CAAC,EACrBu2E,EAAiBn2E,GAKfktB,EAAI,eAAettB,EAAI,eAAe,IACxCI,EAAIktB,EAAIttB,CAAC,EACTs3E,GAASl3E,EAAG,EAAG,EAAGJ,CAAC,EACnBw2E,EAAgBp2E,GAOdktB,EAAI,eAAettB,EAAI,gBAAgB,IACzCI,EAAIktB,EAAIttB,CAAC,EACLI,GAAKA,EAAE,KACTk3E,GAASl3E,EAAE,CAAC,EAAG,KAAM,EAAGJ,CAAC,EACzBs3E,GAASl3E,EAAE,CAAC,EAAG,EAAG61E,GAAKj2E,CAAC,EACxBy2E,EAAar2E,EAAE,CAAC,EAChBs2E,EAAat2E,EAAE,CAAC,IAEhBk3E,GAASl3E,EAAG,KAAM61E,GAAKj2E,CAAC,EACxBy2E,EAAa,EAAEC,EAAat2E,EAAI,EAAI,CAACA,EAAIA,KAOzCktB,EAAI,eAAettB,EAAI,OAAO,EAEhC,GADAI,EAAIktB,EAAIttB,CAAC,EACLI,GAAKA,EAAE,IACTk3E,GAASl3E,EAAE,CAAC,EAAG,KAAM,GAAIJ,CAAC,EAC1Bs3E,GAASl3E,EAAE,CAAC,EAAG,EAAG61E,GAAKj2E,CAAC,EACxB22E,EAAUv2E,EAAE,CAAC,EACbw2E,EAAUx2E,EAAE,CAAC,UAEbk3E,GAASl3E,EAAG,KAAM61E,GAAKj2E,CAAC,EACpBI,EACFu2E,EAAU,EAAEC,EAAUx2E,EAAI,EAAI,CAACA,EAAIA,OAEnC,OAAM,MACJu1E,GAAiB31E,EAAI,oBAAsBI,CAAC,EAQpD,GAAIktB,EAAI,eAAettB,EAAI,QAAQ,EAEjC,GADAI,EAAIktB,EAAIttB,CAAC,EACLI,IAAM,CAAC,CAACA,EACV,GAAIA,EACF,GAAI,OAAO,OAAU,KAAe,SAClC,OAAO,iBAAmB,OAAO,aACjCy2E,EAASz2E,MAET,OAAAy2E,EAAS,CAACz2E,EACJ,MACJu1E,GAAiB,oBAAoB,OAGzCkB,EAASz2E,MAGX,OAAM,MACJu1E,GAAiB31E,EAAI,uBAAyBI,CAAC,EAsBrD,GAhBIktB,EAAI,eAAettB,EAAI,aAAa,IACtCI,EAAIktB,EAAIttB,CAAC,EACTs3E,GAASl3E,EAAG,EAAG,EAAGJ,CAAC,EACnB82E,EAAc12E,GAKZktB,EAAI,eAAettB,EAAI,eAAe,IACxCI,EAAIktB,EAAIttB,CAAC,EACTs3E,GAASl3E,EAAG,EAAG61E,GAAKj2E,CAAC,EACrB+2E,EAAgB32E,GAKdktB,EAAI,eAAettB,EAAI,QAAQ,EAEjC,GADAI,EAAIktB,EAAIttB,CAAC,EACL,OAAOI,GAAK,SAAU42E,EAAS52E,MAC9B,OAAM,MACTu1E,GAAiB31E,EAAI,mBAAqBI,CAAC,EAK/C,GAAIktB,EAAI,eAAettB,EAAI,UAAU,EAKnC,GAJAI,EAAIktB,EAAIttB,CAAC,EAIL,OAAOI,GAAK,UAAY,CAAC,wBAAwB,KAAKA,CAAC,EACzD82E,EAAiC92E,EAAE,MAAM,EAAG,EAAE,GAAK,aACnD62E,EAAW72E,MAEX,OAAM,MACJu1E,GAAiB31E,EAAI,aAAeI,CAAC,CAInD,KAGQ,OAAM,MACJu1E,GAAiB,oBAAsBroD,CAAG,EAIhD,MAAO,CACL,eAAgBipD,EAChB,cAAeC,EACf,eAAgB,CAACC,EAAYC,CAAU,EACvC,MAAO,CAACC,EAASC,CAAO,EACxB,OAAQC,EACR,YAAaC,EACb,cAAeC,EACf,OAAQC,EACR,SAAUC,CAChB,CACA,EAYEZ,EAAU,YAAc,SAAUj2E,EAAG,CACnC,GAAI,CAACA,GAAKA,EAAE,eAAiB,GAAM,MAAO,GAC1C,GAAI,CAACi2E,EAAU,MAAO,MAAO,GAE7B,IAAIl3E,EAAGC,EACLM,EAAIU,EAAE,EACNlB,EAAIkB,EAAE,EACNb,EAAIa,EAAE,EAERqW,EAAK,GAAI,CAAA,EAAG,SAAS,KAAK/W,CAAC,GAAK,kBAE9B,IAAKH,IAAM,GAAKA,IAAM,KAAOL,GAAK,MAAQA,GAAK+2E,IAAO/2E,IAAMw2E,GAAUx2E,CAAC,EAAG,CAGxE,GAAIQ,EAAE,CAAC,IAAM,EAAG,CACd,GAAIR,IAAM,GAAKQ,EAAE,SAAW,EAAG,MAAO,GACtC,MAAM+W,CACP,CAQD,GALAtX,GAAKD,EAAI,GAAK42E,EACV32E,EAAI,IAAGA,GAAK22E,GAIZ,OAAOp2E,EAAE,CAAC,CAAC,EAAE,QAAUP,EAAG,CAE5B,IAAKA,EAAI,EAAGA,EAAIO,EAAE,OAAQP,IAExB,GADAC,EAAIM,EAAEP,CAAC,EACHC,EAAI,GAAKA,GAAKy2E,IAAQz2E,IAAMs2E,GAAUt2E,CAAC,EAAG,MAAMqX,EAItD,GAAIrX,IAAM,EAAG,MAAO,EACrB,CACF,UAGQM,IAAM,MAAQR,IAAM,OAASK,IAAM,MAAQA,IAAM,GAAKA,IAAM,IACrE,MAAO,GAGT,MAAM,MACHo2E,GAAiB,sBAAwBv1E,CAAC,CACjD,EAQEi2E,EAAU,QAAUA,EAAU,IAAM,UAAY,CAC9C,OAAOmB,EAAS,UAAW,EAAE,CACjC,EAQEnB,EAAU,QAAUA,EAAU,IAAM,UAAY,CAC9C,OAAOmB,EAAS,UAAW,CAAC,CAChC,EAaEnB,EAAU,OAAU,UAAY,CAC9B,IAAIoB,EAAU,iBAMVC,EAAkB,KAAK,OAAQ,EAAGD,EAAW,QAC9C,UAAY,CAAE,OAAO/B,GAAU,KAAK,OAAQ,EAAG+B,CAAO,CAAI,EAC1D,UAAY,CAAE,OAAS,KAAK,OAAM,EAAK,WAAa,GAAK,SACxD,KAAK,OAAQ,EAAG,QAAW,EAAG,EAElC,OAAO,SAAUE,EAAI,CACnB,IAAIn4E,EAAGU,EAAGhB,EAAGyB,EAAGP,EACdjB,EAAI,EACJO,EAAI,CAAE,EACNk4E,EAAO,IAAIvB,EAAUC,CAAG,EAO1B,GALIqB,GAAM,KAAMA,EAAKpB,EAChBe,GAASK,EAAI,EAAG1B,EAAG,EAExBt1E,EAAI80E,GAASkC,EAAK7B,CAAQ,EAEtBe,EAGF,GAAI,OAAO,gBAAiB,CAI1B,IAFAr3E,EAAI,OAAO,gBAAgB,IAAI,YAAYmB,GAAK,CAAC,CAAC,EAE3CxB,EAAIwB,GAQTP,EAAIZ,EAAEL,CAAC,EAAI,QAAWK,EAAEL,EAAI,CAAC,IAAM,IAM/BiB,GAAK,MACPF,EAAI,OAAO,gBAAgB,IAAI,YAAY,CAAC,CAAC,EAC7CV,EAAEL,CAAC,EAAIe,EAAE,CAAC,EACVV,EAAEL,EAAI,CAAC,EAAIe,EAAE,CAAC,IAKdR,EAAE,KAAKU,EAAI,IAAI,EACfjB,GAAK,GAGTA,EAAIwB,EAAI,CAGlB,SAAmB,OAAO,YAAa,CAK7B,IAFAnB,EAAI,OAAO,YAAYmB,GAAK,CAAC,EAEtBxB,EAAIwB,GAMTP,GAAMZ,EAAEL,CAAC,EAAI,IAAM,gBAAoBK,EAAEL,EAAI,CAAC,EAAI,cAC9CK,EAAEL,EAAI,CAAC,EAAI,WAAgBK,EAAEL,EAAI,CAAC,EAAI,UACtCK,EAAEL,EAAI,CAAC,GAAK,KAAOK,EAAEL,EAAI,CAAC,GAAK,GAAKK,EAAEL,EAAI,CAAC,EAE3CiB,GAAK,KACP,OAAO,YAAY,CAAC,EAAE,KAAKZ,EAAGL,CAAC,GAI/BO,EAAE,KAAKU,EAAI,IAAI,EACfjB,GAAK,GAGTA,EAAIwB,EAAI,CAClB,KACU,OAAAk2E,EAAS,GACH,MACJlB,GAAiB,oBAAoB,EAK3C,GAAI,CAACkB,EAEH,KAAO13E,EAAIwB,GACTP,EAAIs3E,EAAc,EACdt3E,EAAI,OAAMV,EAAEP,GAAG,EAAIiB,EAAI,MAc/B,IAVAO,EAAIjB,EAAE,EAAEP,CAAC,EACTw4E,GAAM7B,EAGFn1E,GAAKg3E,IACPv3E,EAAI21E,GAASD,EAAW6B,CAAE,EAC1Bj4E,EAAEP,CAAC,EAAIu2E,GAAU/0E,EAAIP,CAAC,EAAIA,GAIrBV,EAAEP,CAAC,IAAM,EAAGO,EAAE,IAAK,EAAEP,IAAI,CAGhC,GAAIA,EAAI,EACNO,EAAI,CAACR,EAAI,CAAC,MACL,CAGL,IAAKA,EAAI,GAAKQ,EAAE,CAAC,IAAM,EAAGA,EAAE,OAAO,EAAG,CAAC,EAAGR,GAAK42E,EAAS,CAGxD,IAAK32E,EAAI,EAAGiB,EAAIV,EAAE,CAAC,EAAGU,GAAK,GAAIA,GAAK,GAAIjB,IAAI,CAGxCA,EAAI22E,IAAU52E,GAAK42E,EAAW32E,EACnC,CAED,OAAAy4E,EAAK,EAAI14E,EACT04E,EAAK,EAAIl4E,EACFk4E,CACb,CACA,IAQEvB,EAAU,IAAM,UAAY,CAI1B,QAHIl3E,EAAI,EACNwX,EAAO,UACPkhE,EAAM,IAAIxB,EAAU1/D,EAAK,CAAC,CAAC,EACtBxX,EAAIwX,EAAK,QAASkhE,EAAMA,EAAI,KAAKlhE,EAAKxX,GAAG,CAAC,EACjD,OAAO04E,CACX,EAOE1B,EAAe,UAAY,CACzB,IAAI2B,EAAU,aAOd,SAASC,EAAUv4B,EAAKw4B,EAAQC,EAASd,EAAU,CAOjD,QANI31E,EACFoyC,EAAM,CAAC,CAAC,EACRskC,EACA/4E,EAAI,EACJiiC,EAAMoe,EAAI,OAELrgD,EAAIiiC,GAAM,CACf,IAAK82C,EAAOtkC,EAAI,OAAQskC,IAAQtkC,EAAIskC,CAAI,GAAKF,EAAO,CAIpD,IAFApkC,EAAI,CAAC,GAAKujC,EAAS,QAAQ33B,EAAI,OAAOrgD,GAAG,CAAC,EAErCqC,EAAI,EAAGA,EAAIoyC,EAAI,OAAQpyC,IAEtBoyC,EAAIpyC,CAAC,EAAIy2E,EAAU,IACjBrkC,EAAIpyC,EAAI,CAAC,GAAK,OAAMoyC,EAAIpyC,EAAI,CAAC,EAAI,GACrCoyC,EAAIpyC,EAAI,CAAC,GAAKoyC,EAAIpyC,CAAC,EAAIy2E,EAAU,EACjCrkC,EAAIpyC,CAAC,GAAKy2E,EAGf,CAED,OAAOrkC,EAAI,SACZ,CAKD,OAAO,SAAU4L,EAAKw4B,EAAQC,EAASE,EAAMC,EAAkB,CAC7D,IAAIjB,EAAUt3E,EAAGX,EAAG,EAAGG,EAAGiB,EAAG+3E,EAAIl4E,EAC/BhB,GAAIqgD,EAAI,QAAQ,GAAG,EACnBm4B,EAAKpB,EACL+B,EAAK9B,EA+BP,IA5BIr3E,IAAK,IACP,EAAI43E,EAGJA,EAAgB,EAChBv3B,EAAMA,EAAI,QAAQ,IAAK,EAAE,EACzBr/C,EAAI,IAAIk2E,EAAU2B,CAAM,EACxB13E,EAAIH,EAAE,IAAIq/C,EAAI,OAASrgD,EAAC,EACxB43E,EAAgB,EAKhB52E,EAAE,EAAI43E,EAAUQ,GAAaC,GAAcl4E,EAAE,CAAC,EAAGA,EAAE,EAAG,GAAG,EACxD,GAAI23E,EAASH,CAAO,EACrB33E,EAAE,EAAIA,EAAE,EAAE,QAKZk4E,EAAKN,EAAUv4B,EAAKw4B,EAAQC,EAASG,GACjCjB,EAAWF,EAAUa,IACrBX,EAAWW,EAASb,EAAS,EAGjC/3E,EAAI,EAAIm5E,EAAG,OAGJA,EAAG,EAAE,CAAC,GAAK,EAAGA,EAAG,IAAG,EAAG,CAG9B,GAAI,CAACA,EAAG,CAAC,EAAG,OAAOlB,EAAS,OAAO,CAAC,EAqCpC,GAlCIh4E,GAAI,EACN,EAAED,GAEFoB,EAAE,EAAI+3E,EACN/3E,EAAE,EAAIpB,EAGNoB,EAAE,EAAI63E,EACN73E,EAAIwgC,EAAIxgC,EAAGH,EAAGw3E,EAAIW,EAAIL,CAAO,EAC7BI,EAAK/3E,EAAE,EACPjB,EAAIiB,EAAE,EACNpB,EAAIoB,EAAE,GAMRT,EAAIX,EAAIy4E,EAAK,EAGbx4E,GAAIk5E,EAAGx4E,CAAC,EAIR,EAAIo4E,EAAU,EACd54E,EAAIA,GAAKQ,EAAI,GAAKw4E,EAAGx4E,EAAI,CAAC,GAAK,KAE/BR,EAAIi5E,EAAK,GAAKn5E,IAAK,MAAQE,KAAOi5E,GAAM,GAAKA,IAAOh4E,EAAE,EAAI,EAAI,EAAI,IAC1DnB,GAAI,GAAKA,IAAK,IAAKm5E,GAAM,GAAKj5E,GAAKi5E,GAAM,GAAKD,EAAGx4E,EAAI,CAAC,EAAI,GAC3Dy4E,IAAOh4E,EAAE,EAAI,EAAI,EAAI,IAKxBT,EAAI,GAAK,CAACw4E,EAAG,CAAC,EAGhB74B,EAAMngD,EAAIk5E,GAAapB,EAAS,OAAO,CAAC,EAAG,CAACQ,EAAIR,EAAS,OAAO,CAAC,CAAC,EAAIA,EAAS,OAAO,CAAC,MAClF,CAML,GAHAkB,EAAG,OAASx4E,EAGRR,EAGF,IAAK,EAAE44E,EAAS,EAAEI,EAAG,EAAEx4E,CAAC,EAAIo4E,GAC1BI,EAAGx4E,CAAC,EAAI,EAEHA,IACH,EAAEX,EACFm5E,EAAK,CAAC,CAAC,EAAE,OAAOA,CAAE,GAMxB,IAAK,EAAIA,EAAG,OAAQ,CAACA,EAAG,EAAE,CAAC,GAAG,CAG9B,IAAKl5E,GAAI,EAAGqgD,EAAM,GAAIrgD,IAAK,EAAGqgD,GAAO23B,EAAS,OAAOkB,EAAGl5E,IAAG,CAAC,EAAE,CAG9DqgD,EAAM+4B,GAAa/4B,EAAKtgD,EAAGi4E,EAAS,OAAO,CAAC,CAAC,CAC9C,CAGD,OAAO33B,CACb,CACA,IAIE1e,EAAO,UAAY,CAGjB,SAAS23C,EAASn4E,EAAGK,EAAG+3E,EAAM,CAC5B,IAAI34E,EAAG44E,EAAMC,EAAKC,EAChBC,EAAQ,EACR35E,EAAImB,EAAE,OACNy4E,EAAMp4E,EAAIq1E,GACVgD,EAAMr4E,EAAIq1E,GAAY,EAExB,IAAK11E,EAAIA,EAAE,MAAO,EAAEnB,KAClBy5E,EAAMt4E,EAAEnB,CAAC,EAAI62E,GACb6C,EAAMv4E,EAAEnB,CAAC,EAAI62E,GAAY,EACzBj2E,EAAIi5E,EAAMJ,EAAMC,EAAME,EACtBJ,EAAOI,EAAMH,EAAQ74E,EAAIi2E,GAAaA,GAAa8C,EACnDA,GAASH,EAAOD,EAAO,IAAM34E,EAAIi2E,GAAY,GAAKgD,EAAMH,EACxDv4E,EAAEnB,CAAC,EAAIw5E,EAAOD,EAGhB,OAAII,IAAOx4E,EAAI,CAACw4E,CAAK,EAAE,OAAOx4E,CAAC,GAExBA,CACR,CAED,SAAS24E,EAAQz5E,EAAGU,EAAGg5E,EAAIC,EAAI,CAC7B,IAAIh6E,EAAGi6E,EAEP,GAAIF,GAAMC,EACRC,EAAMF,EAAKC,EAAK,EAAI,OAGpB,KAAKh6E,EAAIi6E,EAAM,EAAGj6E,EAAI+5E,EAAI/5E,IAExB,GAAIK,EAAEL,CAAC,GAAKe,EAAEf,CAAC,EAAG,CAChBi6E,EAAM55E,EAAEL,CAAC,EAAIe,EAAEf,CAAC,EAAI,EAAI,GACxB,KACD,CAIL,OAAOi6E,CACR,CAED,SAASC,EAAS75E,EAAGU,EAAGg5E,EAAIR,EAAM,CAIhC,QAHIv5E,EAAI,EAGD+5E,KACL15E,EAAE05E,CAAE,GAAK/5E,EACTA,EAAIK,EAAE05E,CAAE,EAAIh5E,EAAEg5E,CAAE,EAAI,EAAI,EACxB15E,EAAE05E,CAAE,EAAI/5E,EAAIu5E,EAAOl5E,EAAE05E,CAAE,EAAIh5E,EAAEg5E,CAAE,EAIjC,KAAO,CAAC15E,EAAE,CAAC,GAAKA,EAAE,OAAS,EAAGA,EAAE,OAAO,EAAG,CAAC,EAAE,CAC9C,CAGD,OAAO,SAAUc,EAAGH,EAAGw3E,EAAIW,EAAII,EAAM,CACnC,IAAIU,EAAKl6E,EAAGC,EAAGm6E,EAAMl6E,EAAGm6E,EAAMC,EAAOn3E,GAAGo3E,EAAIC,EAAKC,EAAMC,GAAMhvE,GAAIivE,GAAIC,GACnEC,GAAIC,GACJz6E,GAAIe,EAAE,GAAKH,EAAE,EAAI,EAAI,GACrBk4E,GAAK/3E,EAAE,EACP25E,GAAK95E,EAAE,EAGT,GAAI,CAACk4E,IAAM,CAACA,GAAG,CAAC,GAAK,CAAC4B,IAAM,CAACA,GAAG,CAAC,EAE/B,OAAO,IAAI5D,EAGV,CAAC/1E,EAAE,GAAK,CAACH,EAAE,IAAMk4E,GAAK4B,IAAM5B,GAAG,CAAC,GAAK4B,GAAG,CAAC,EAAI,CAACA,IAAM,IAGnD5B,IAAMA,GAAG,CAAC,GAAK,GAAK,CAAC4B,GAAK16E,GAAI,EAAIA,GAAI,CAChD,EAgBM,IAbA8C,GAAI,IAAIg0E,EAAU92E,EAAC,EACnBk6E,EAAKp3E,GAAE,EAAI,GACXnD,EAAIoB,EAAE,EAAIH,EAAE,EACZZ,GAAIo4E,EAAKz4E,EAAI,EAERw5E,IACHA,EAAO7C,GACP32E,EAAIg7E,GAAS55E,EAAE,EAAIw1E,CAAQ,EAAIoE,GAAS/5E,EAAE,EAAI21E,CAAQ,EACtDv2E,GAAIA,GAAIu2E,EAAW,GAKhB32E,EAAI,EAAG86E,GAAG96E,CAAC,IAAMk5E,GAAGl5E,CAAC,GAAK,GAAIA,IAAI,CAIvC,GAFI86E,GAAG96E,CAAC,GAAKk5E,GAAGl5E,CAAC,GAAK,IAAID,IAEtBK,GAAI,EACNk6E,EAAG,KAAK,CAAC,EACTH,EAAO,OACF,CAwBL,IAvBAO,GAAKxB,GAAG,OACR0B,GAAKE,GAAG,OACR96E,EAAI,EACJI,IAAK,EAILH,EAAIs2E,GAAUgD,GAAQuB,GAAG,CAAC,EAAI,EAAE,EAI5B76E,EAAI,IACN66E,GAAKxB,EAASwB,GAAI76E,EAAGs5E,CAAI,EACzBL,GAAKI,EAASJ,GAAIj5E,EAAGs5E,CAAI,EACzBqB,GAAKE,GAAG,OACRJ,GAAKxB,GAAG,QAGVztE,GAAKmvE,GACLL,EAAMrB,GAAG,MAAM,EAAG0B,EAAE,EACpBJ,EAAOD,EAAI,OAGJC,EAAOI,GAAIL,EAAIC,GAAM,EAAI,EAAE,CAClCK,GAAKC,GAAG,QACRD,GAAK,CAAC,CAAC,EAAE,OAAOA,EAAE,EAClBF,GAAMG,GAAG,CAAC,EACNA,GAAG,CAAC,GAAKvB,EAAO,GAAGoB,KAIvB,EAAG,CAOD,GANA16E,EAAI,EAGJg6E,EAAMH,EAAQgB,GAAIP,EAAKK,GAAIJ,CAAI,EAG3BP,EAAM,EAAG,CAqBX,GAjBAQ,GAAOF,EAAI,CAAC,EACRK,IAAMJ,IAAMC,GAAOA,GAAOlB,GAAQgB,EAAI,CAAC,GAAK,IAGhDt6E,EAAIs2E,GAAUkE,GAAOE,EAAG,EAapB16E,EAAI,EAcN,IAXIA,GAAKs5E,IAAMt5E,EAAIs5E,EAAO,GAG1Ba,EAAOd,EAASwB,GAAI76E,EAAGs5E,CAAI,EAC3Bc,EAAQD,EAAK,OACbI,EAAOD,EAAI,OAMJT,EAAQM,EAAMG,EAAKF,EAAOG,CAAI,GAAK,GACxCv6E,IAGAi6E,EAASE,EAAMQ,GAAKP,EAAQQ,GAAKC,GAAIT,EAAOd,CAAI,EAChDc,EAAQD,EAAK,OACbH,EAAM,OAQJh6E,GAAK,IAGPg6E,EAAMh6E,EAAI,GAIZm6E,EAAOU,GAAG,QACVT,EAAQD,EAAK,OAUf,GAPIC,EAAQG,IAAMJ,EAAO,CAAC,CAAC,EAAE,OAAOA,CAAI,GAGxCF,EAASK,EAAKH,EAAMI,EAAMjB,CAAI,EAC9BiB,EAAOD,EAAI,OAGPN,GAAO,GAMT,KAAOH,EAAQgB,GAAIP,EAAKK,GAAIJ,CAAI,EAAI,GAClCv6E,IAGAi6E,EAASK,EAAKK,GAAKJ,EAAOK,GAAKC,GAAIN,EAAMjB,CAAI,EAC7CiB,EAAOD,EAAI,MAG3B,MAAqBN,IAAQ,IACjBh6E,IACAs6E,EAAM,CAAC,CAAC,GAIVD,EAAGt6E,GAAG,EAAIC,EAGNs6E,EAAI,CAAC,EACPA,EAAIC,GAAM,EAAItB,GAAGztE,EAAE,GAAK,GAExB8uE,EAAM,CAACrB,GAAGztE,EAAE,CAAC,EACb+uE,EAAO,EAEnB,QAAkB/uE,KAAOivE,IAAMH,EAAI,CAAC,GAAK,OAASn6E,MAE1C+5E,EAAOI,EAAI,CAAC,GAAK,KAGZD,EAAG,CAAC,GAAGA,EAAG,OAAO,EAAG,CAAC,CAC3B,CAED,GAAIf,GAAQ7C,GAAM,CAGhB,IAAK12E,EAAI,EAAGI,GAAIk6E,EAAG,CAAC,EAAGl6E,IAAK,GAAIA,IAAK,GAAIJ,IAAI,CAE7Co4E,EAAMl1E,GAAGs1E,GAAMt1E,GAAE,EAAIlD,EAAID,EAAI42E,EAAW,GAAK,EAAGwC,EAAIgB,CAAI,CAGhE,MACQj3E,GAAE,EAAInD,EACNmD,GAAE,EAAI,CAACi3E,EAGT,OAAOj3E,EACb,CACA,IAYE,SAAS83E,EAAO/6E,EAAGD,EAAGm5E,EAAI3kE,EAAI,CAC5B,IAAIymE,EAAIl7E,EAAGiH,EAAIi7B,EAAKoe,EAKpB,GAHI84B,GAAM,KAAMA,EAAK9B,EAChBc,GAASgB,EAAI,EAAG,CAAC,EAElB,CAACl5E,EAAE,EAAG,OAAOA,EAAE,SAAQ,EAK3B,GAHAg7E,EAAKh7E,EAAE,EAAE,CAAC,EACV+G,EAAK/G,EAAE,EAEHD,GAAK,KACPqgD,EAAMg5B,GAAcp5E,EAAE,CAAC,EACvBogD,EAAM7rC,GAAM,GAAKA,GAAM,IAAMxN,GAAMswE,GAActwE,GAAMuwE,GACpD2D,GAAc76B,EAAKr5C,CAAE,EACrBoyE,GAAa/4B,EAAKr5C,EAAI,GAAG,UAE5B/G,EAAIm4E,EAAM,IAAIlB,EAAUj3E,CAAC,EAAGD,EAAGm5E,CAAE,EAGjCp5E,EAAIE,EAAE,EAENogD,EAAMg5B,GAAcp5E,EAAE,CAAC,EACvBgiC,EAAMoe,EAAI,OAON7rC,GAAM,GAAKA,GAAM,IAAMxU,GAAKD,GAAKA,GAAKu3E,GAAa,CAGrD,KAAOr1C,EAAMjiC,EAAGqgD,GAAO,IAAKpe,IAAM,CAClCoe,EAAM66B,GAAc76B,EAAKtgD,CAAC,CAGlC,SACQC,GAAKgH,EACLq5C,EAAM+4B,GAAa/4B,EAAKtgD,EAAG,GAAG,EAG1BA,EAAI,EAAIkiC,GACV,GAAI,EAAEjiC,EAAI,EAAG,IAAKqgD,GAAO,IAAKrgD,IAAKqgD,GAAO,IAAI,UAE9CrgD,GAAKD,EAAIkiC,EACLjiC,EAAI,EAEN,IADID,EAAI,GAAKkiC,IAAKoe,GAAO,KAClBrgD,IAAKqgD,GAAO,IAAI,CAM/B,OAAOpgD,EAAE,EAAI,GAAKg7E,EAAK,IAAM56B,EAAMA,CACpC,CAKD,SAASg4B,EAAS7gE,EAAMvX,EAAG,CAKzB,QAJIuB,EAAGR,EACLhB,EAAI,EACJmB,EAAI,IAAI+1E,EAAU1/D,EAAK,CAAC,CAAC,EAEpBxX,EAAIwX,EAAK,OAAQxX,IACtBgB,EAAI,IAAIk2E,EAAU1/D,EAAKxX,CAAC,CAAC,GACrB,CAACgB,EAAE,IAAMQ,EAAIs4E,GAAQ34E,EAAGH,CAAC,KAAOf,GAAKuB,IAAM,GAAKL,EAAE,IAAMlB,KAC1DkB,EAAIH,GAIR,OAAOG,CACR,CAOD,SAASg6E,EAAUl7E,EAAGM,EAAGR,EAAG,CAK1B,QAJIC,EAAI,EACNqC,EAAI9B,EAAE,OAGD,CAACA,EAAE,EAAE8B,CAAC,EAAG9B,EAAE,IAAG,EAAG,CAGxB,IAAK8B,EAAI9B,EAAE,CAAC,EAAG8B,GAAK,GAAIA,GAAK,GAAIrC,IAAI,CAGrC,OAAKD,EAAIC,EAAID,EAAI42E,EAAW,GAAKc,EAG/Bx3E,EAAE,EAAIA,EAAE,EAAI,KAGHF,EAAIy3E,EAGbv3E,EAAE,EAAI,CAACA,EAAE,EAAI,CAAC,GAEdA,EAAE,EAAIF,EACNE,EAAE,EAAIM,GAGDN,CACR,CAIDg3E,EAAgB,UAAY,CAC1B,IAAImE,EAAa,8BACfC,EAAW,cACXC,EAAY,cACZC,EAAkB,qBAClBC,EAAmB,6BAErB,OAAO,SAAUr6E,EAAGk/C,EAAK63B,EAAOn3E,EAAG,CACjC,IAAIw4E,EACFn5E,EAAI83E,EAAQ73B,EAAMA,EAAI,QAAQm7B,EAAkB,EAAE,EAGpD,GAAID,EAAgB,KAAKn7E,CAAC,EACxBe,EAAE,EAAI,MAAMf,CAAC,EAAI,KAAOA,EAAI,EAAI,GAAK,MAChC,CACL,GAAI,CAAC83E,IAGH93E,EAAIA,EAAE,QAAQg7E,EAAY,SAAUx6E,EAAG66E,EAAIC,EAAI,CAC7C,OAAAnC,GAAQmC,EAAKA,EAAG,YAAa,IAAK,IAAM,GAAKA,GAAM,IAAM,EAAI,EACtD,CAAC36E,GAAKA,GAAKw4E,EAAOkC,EAAK76E,CAC1C,CAAW,EAEGG,IACFw4E,EAAOx4E,EAGPX,EAAIA,EAAE,QAAQi7E,EAAU,IAAI,EAAE,QAAQC,EAAW,MAAM,GAGrDj7B,GAAOjgD,GAAG,OAAO,IAAI82E,EAAU92E,EAAGm5E,CAAI,EAK5C,GAAIrC,EAAU,MACZ,MAAM,MACHV,GAAiB,SAAWz1E,EAAI,SAAWA,EAAI,IAAM,YAAcs/C,CAAG,EAI3El/C,EAAE,EAAI,IACP,CAEDA,EAAE,EAAIA,EAAE,EAAI,IACb,CACL,IAOE,SAASi3E,EAAMj3E,EAAGw6E,EAAIxC,EAAIj5E,EAAG,CAC3B,IAAIQ,EAAGV,EAAGqC,EAAGb,EAAGvB,EAAGsK,EAAIqxE,EACrB1C,EAAK/3E,EAAE,EACP06E,EAASjF,GAGX,GAAIsC,EAAI,CAQN5hE,EAAK,CAGH,IAAK5W,EAAI,EAAGc,EAAI03E,EAAG,CAAC,EAAG13E,GAAK,GAAIA,GAAK,GAAId,IAAI,CAI7C,GAHAV,EAAI27E,EAAKj7E,EAGLV,EAAI,EACNA,GAAK22E,EACLt0E,EAAIs5E,EACJ17E,EAAIi5E,EAAG3uE,EAAK,CAAC,EAGbqxE,EAAKrF,GAAUt2E,EAAI47E,EAAOn7E,EAAI2B,EAAI,CAAC,EAAI,EAAE,UAEzCkI,EAAK+rE,IAAUt2E,EAAI,GAAK22E,CAAQ,EAE5BpsE,GAAM2uE,EAAG,OAEX,GAAIh5E,EAAG,CAGL,KAAOg5E,EAAG,QAAU3uE,EAAI2uE,EAAG,KAAK,CAAC,EAAE,CACnCj5E,EAAI27E,EAAK,EACTl7E,EAAI,EACJV,GAAK22E,EACLt0E,EAAIrC,EAAI22E,EAAW,CACjC,KACc,OAAMr/D,MAEH,CAIL,IAHArX,EAAIuB,EAAI03E,EAAG3uE,CAAE,EAGR7J,EAAI,EAAGc,GAAK,GAAIA,GAAK,GAAId,IAAI,CAGlCV,GAAK22E,EAILt0E,EAAIrC,EAAI22E,EAAWj2E,EAGnBk7E,EAAKv5E,EAAI,EAAI,EAAIk0E,GAAUt2E,EAAI47E,EAAOn7E,EAAI2B,EAAI,CAAC,EAAI,EAAE,CACtD,CAkBH,GAfAnC,EAAIA,GAAKy7E,EAAK,GAKbzC,EAAG3uE,EAAK,CAAC,GAAK,OAASlI,EAAI,EAAIpC,EAAIA,EAAI47E,EAAOn7E,EAAI2B,EAAI,CAAC,GAExDnC,EAAIi5E,EAAK,GACLyC,GAAM17E,KAAOi5E,GAAM,GAAKA,IAAOh4E,EAAE,EAAI,EAAI,EAAI,IAC9Cy6E,EAAK,GAAKA,GAAM,IAAMzC,GAAM,GAAKj5E,GAAKi5E,GAAM,IAG3Cn5E,EAAI,EAAIqC,EAAI,EAAIpC,EAAI47E,EAAOn7E,EAAI2B,CAAC,EAAI,EAAI62E,EAAG3uE,EAAK,CAAC,GAAK,GAAM,GAC7D4uE,IAAOh4E,EAAE,EAAI,EAAI,EAAI,IAEpBw6E,EAAK,GAAK,CAACzC,EAAG,CAAC,EACjB,OAAAA,EAAG,OAAS,EAERh5E,GAGFy7E,GAAMx6E,EAAE,EAAI,EAGZ+3E,EAAG,CAAC,EAAI2C,GAAQlF,EAAWgF,EAAKhF,GAAYA,CAAQ,EACpDx1E,EAAE,EAAI,CAACw6E,GAAM,GAIbzC,EAAG,CAAC,EAAI/3E,EAAE,EAAI,EAGTA,EAkBT,GAdInB,GAAK,GACPk5E,EAAG,OAAS3uE,EACZ/I,EAAI,EACJ+I,MAEA2uE,EAAG,OAAS3uE,EAAK,EACjB/I,EAAIq6E,EAAOlF,EAAW32E,CAAC,EAIvBk5E,EAAG3uE,CAAE,EAAIlI,EAAI,EAAIk0E,GAAUt2E,EAAI47E,EAAOn7E,EAAI2B,CAAC,EAAIw5E,EAAOx5E,CAAC,CAAC,EAAIb,EAAI,GAI9DtB,EAEF,OAGE,GAAIqK,GAAM,EAAG,CAGX,IAAKvK,EAAI,EAAGqC,EAAI62E,EAAG,CAAC,EAAG72E,GAAK,GAAIA,GAAK,GAAIrC,IAAI,CAE7C,IADAqC,EAAI62E,EAAG,CAAC,GAAK13E,EACRA,EAAI,EAAGa,GAAK,GAAIA,GAAK,GAAIb,IAAI,CAG9BxB,GAAKwB,IACPL,EAAE,IACE+3E,EAAG,CAAC,GAAKxC,KAAMwC,EAAG,CAAC,EAAI,IAG7B,KACd,KAAmB,CAEL,GADAA,EAAG3uE,CAAE,GAAK/I,EACN03E,EAAG3uE,CAAE,GAAKmsE,GAAM,MACpBwC,EAAG3uE,GAAI,EAAI,EACX/I,EAAI,CACL,CAKL,IAAKxB,EAAIk5E,EAAG,OAAQA,EAAG,EAAEl5E,CAAC,IAAM,EAAGk5E,EAAG,IAAG,EAAG,CAC7C,CAGG/3E,EAAE,EAAIs2E,EACRt2E,EAAE,EAAIA,EAAE,EAAI,KAGHA,EAAE,EAAIq2E,IACfr2E,EAAE,EAAI,CAACA,EAAE,EAAI,CAAC,EAEjB,CAED,OAAOA,CACR,CAGD,SAAS26E,EAAQ77E,EAAG,CAClB,IAAIogD,EACFtgD,EAAIE,EAAE,EAER,OAAIF,IAAM,KAAaE,EAAE,SAAQ,GAEjCogD,EAAMg5B,GAAcp5E,EAAE,CAAC,EAEvBogD,EAAMtgD,GAAKu3E,GAAcv3E,GAAKw3E,EAC1B2D,GAAc76B,EAAKtgD,CAAC,EACpBq5E,GAAa/4B,EAAKtgD,EAAG,GAAG,EAErBE,EAAE,EAAI,EAAI,IAAMogD,EAAMA,EAC9B,CASD,OAAAn+C,EAAE,cAAgBA,EAAE,IAAM,UAAY,CACpC,IAAIf,EAAI,IAAI+1E,EAAU,IAAI,EAC1B,OAAI/1E,EAAE,EAAI,IAAGA,EAAE,EAAI,GACZA,CACX,EAUEe,EAAE,WAAa,SAAUlB,EAAGD,EAAG,CAC7B,OAAO+4E,GAAQ,KAAM,IAAI5C,EAAUl2E,EAAGD,CAAC,CAAC,CAC5C,EAgBEmB,EAAE,cAAgBA,EAAE,GAAK,SAAUs2E,EAAIW,EAAI,CACzC,IAAI54E,EAAGN,EAAGgB,EACRE,EAAI,KAEN,GAAIq3E,GAAM,KACR,OAAAL,GAASK,EAAI,EAAG1B,EAAG,EACfqC,GAAM,KAAMA,EAAK9B,EAChBc,GAASgB,EAAI,EAAG,CAAC,EAEff,EAAM,IAAIlB,EAAU/1E,CAAC,EAAGq3E,EAAKr3E,EAAE,EAAI,EAAGg4E,CAAE,EAGjD,GAAI,EAAE54E,EAAIY,EAAE,GAAI,OAAO,KAIvB,GAHAlB,IAAMgB,EAAIV,EAAE,OAAS,GAAKw6E,GAAS,KAAK,EAAIpE,CAAQ,GAAKA,EAGrD11E,EAAIV,EAAEU,CAAC,EAAG,KAAOA,EAAI,IAAM,EAAGA,GAAK,GAAIhB,IAAI,CAC/C,OAAIA,EAAI,IAAGA,EAAI,GAERA,CACX,EAuBEiC,EAAE,UAAYA,EAAE,IAAM,SAAUlB,EAAGD,EAAG,CACpC,OAAO4gC,EAAI,KAAM,IAAIu1C,EAAUl2E,EAAGD,CAAC,EAAGq2E,EAAgBC,CAAa,CACvE,EAOEn1E,EAAE,mBAAqBA,EAAE,KAAO,SAAUlB,EAAGD,EAAG,CAC9C,OAAO4gC,EAAI,KAAM,IAAIu1C,EAAUl2E,EAAGD,CAAC,EAAG,EAAG,CAAC,CAC9C,EAkBEmB,EAAE,gBAAkBA,EAAE,IAAM,SAAUjC,EAAGW,EAAG,CAC1C,IAAIm7E,EAAMC,EAAUh8E,EAAGwB,EAAG24E,EAAM8B,EAAQC,EAAQC,EAAQn7E,EACtDG,EAAI,KAKN,GAHAlB,EAAI,IAAIi3E,EAAUj3E,CAAC,EAGfA,EAAE,GAAK,CAACA,EAAE,UAAS,EACrB,MAAM,MACHu2E,GAAiB,4BAA8BsF,EAAQ77E,CAAC,CAAC,EAS9D,GANIW,GAAK,OAAMA,EAAI,IAAIs2E,EAAUt2E,CAAC,GAGlCq7E,EAASh8E,EAAE,EAAI,GAGX,CAACkB,EAAE,GAAK,CAACA,EAAE,EAAE,CAAC,GAAKA,EAAE,EAAE,CAAC,GAAK,GAAK,CAACA,EAAE,GAAKA,EAAE,EAAE,QAAU,GAAK,CAAClB,EAAE,GAAK,CAACA,EAAE,EAAE,CAAC,EAI7E,OAAAe,EAAI,IAAIk2E,EAAU,KAAK,IAAI,CAAC4E,EAAQ36E,CAAC,EAAG86E,EAASh8E,EAAE,GAAK,EAAIm8E,GAAMn8E,CAAC,GAAK,CAAC67E,EAAQ77E,CAAC,CAAC,CAAC,EAC7EW,EAAII,EAAE,IAAIJ,CAAC,EAAII,EAKxB,GAFAk7E,EAASj8E,EAAE,EAAI,EAEXW,EAAG,CAGL,GAAIA,EAAE,EAAI,CAACA,EAAE,EAAE,CAAC,EAAI,CAACA,EAAE,EAAG,OAAO,IAAIs2E,EAAU,GAAG,EAElD8E,EAAW,CAACE,GAAU/6E,EAAE,UAAS,GAAMP,EAAE,YAErCo7E,IAAU76E,EAAIA,EAAE,IAAIP,CAAC,EAI1B,KAAM,IAAIX,EAAE,EAAI,IAAMkB,EAAE,EAAI,GAAKA,EAAE,EAAI,KAAOA,EAAE,GAAK,EAElDA,EAAE,EAAE,CAAC,EAAI,GAAK86E,GAAU96E,EAAE,EAAE,CAAC,GAAK,KAElCA,EAAE,EAAE,CAAC,EAAI,MAAQ86E,GAAU96E,EAAE,EAAE,CAAC,GAAK,YAGvC,OAAAK,EAAIL,EAAE,EAAI,GAAKi7E,GAAMn8E,CAAC,EAAI,GAAK,EAG3BkB,EAAE,EAAI,KAAIK,EAAI,EAAIA,GAGf,IAAI01E,EAAUgF,EAAS,EAAI16E,EAAIA,CAAC,EAE9Bo2E,IAKTp2E,EAAI80E,GAASsB,EAAgBjB,EAAW,CAAC,GAe3C,IAZIsF,GACFF,EAAO,IAAI7E,EAAU,EAAG,EACpBgF,IAAQj8E,EAAE,EAAI,GAClBk8E,EAASC,GAAMn8E,CAAC,IAEhBD,EAAI,KAAK,IAAI,CAAC87E,EAAQ77E,CAAC,CAAC,EACxBk8E,EAASn8E,EAAI,GAGfgB,EAAI,IAAIk2E,EAAUC,CAAG,IAGX,CAER,GAAIgF,EAAQ,CAEV,GADAn7E,EAAIA,EAAE,MAAMG,CAAC,EACT,CAACH,EAAE,EAAG,MAENQ,EACER,EAAE,EAAE,OAASQ,IAAGR,EAAE,EAAE,OAASQ,GACxBw6E,IACTh7E,EAAIA,EAAE,IAAIJ,CAAC,EAEd,CAED,GAAIZ,EAAG,CAEL,GADAA,EAAIu2E,GAAUv2E,EAAI,CAAC,EACfA,IAAM,EAAG,MACbm8E,EAASn8E,EAAI,CACrB,SACQC,EAAIA,EAAE,MAAM87E,CAAI,EAChB3D,EAAMn4E,EAAGA,EAAE,EAAI,EAAG,CAAC,EAEfA,EAAE,EAAI,GACRk8E,EAASC,GAAMn8E,CAAC,MACX,CAEL,GADAD,EAAI,CAAC87E,EAAQ77E,CAAC,EACVD,IAAM,EAAG,MACbm8E,EAASn8E,EAAI,CACd,CAGHmB,EAAIA,EAAE,MAAMA,CAAC,EAETK,EACEL,EAAE,GAAKA,EAAE,EAAE,OAASK,IAAGL,EAAE,EAAE,OAASK,GAC/Bw6E,IACT76E,EAAIA,EAAE,IAAIP,CAAC,EAEd,CAED,OAAIo7E,EAAiBh7E,GACjBk7E,IAAQl7E,EAAIm2E,EAAI,IAAIn2E,CAAC,GAElBJ,EAAII,EAAE,IAAIJ,CAAC,EAAIY,EAAI42E,EAAMp3E,EAAG42E,EAAeP,EAAe8C,CAAI,EAAIn5E,EAC7E,EAWEkB,EAAE,aAAe,SAAUi3E,EAAI,CAC7B,IAAIl5E,EAAI,IAAIi3E,EAAU,IAAI,EAC1B,OAAIiC,GAAM,KAAMA,EAAK9B,EAChBc,GAASgB,EAAI,EAAG,CAAC,EACff,EAAMn4E,EAAGA,EAAE,EAAI,EAAGk5E,CAAE,CAC/B,EAOEj3E,EAAE,UAAYA,EAAE,GAAK,SAAUlB,EAAGD,EAAG,CACnC,OAAO+4E,GAAQ,KAAM,IAAI5C,EAAUl2E,EAAGD,CAAC,CAAC,IAAM,CAClD,EAMEmB,EAAE,SAAW,UAAY,CACvB,MAAO,CAAC,CAAC,KAAK,CAClB,EAOEA,EAAE,cAAgBA,EAAE,GAAK,SAAUlB,EAAGD,EAAG,CACvC,OAAO+4E,GAAQ,KAAM,IAAI5C,EAAUl2E,EAAGD,CAAC,CAAC,EAAI,CAChD,EAOEmB,EAAE,uBAAyBA,EAAE,IAAM,SAAUlB,EAAGD,EAAG,CACjD,OAAQA,EAAI+4E,GAAQ,KAAM,IAAI5C,EAAUl2E,EAAGD,CAAC,CAAC,KAAO,GAAKA,IAAM,CAEnE,EAMEmB,EAAE,UAAY,UAAY,CACxB,MAAO,CAAC,CAAC,KAAK,GAAK64E,GAAS,KAAK,EAAIpE,CAAQ,EAAI,KAAK,EAAE,OAAS,CACrE,EAOEz0E,EAAE,WAAaA,EAAE,GAAK,SAAUlB,EAAGD,EAAG,CACpC,OAAO+4E,GAAQ,KAAM,IAAI5C,EAAUl2E,EAAGD,CAAC,CAAC,EAAI,CAChD,EAOEmB,EAAE,oBAAsBA,EAAE,IAAM,SAAUlB,EAAGD,EAAG,CAC9C,OAAQA,EAAI+4E,GAAQ,KAAM,IAAI5C,EAAUl2E,EAAGD,CAAC,CAAC,KAAO,IAAMA,IAAM,CACpE,EAMEmB,EAAE,MAAQ,UAAY,CACpB,MAAO,CAAC,KAAK,CACjB,EAMEA,EAAE,WAAa,UAAY,CACzB,OAAO,KAAK,EAAI,CACpB,EAMEA,EAAE,WAAa,UAAY,CACzB,OAAO,KAAK,EAAI,CACpB,EAMEA,EAAE,OAAS,UAAY,CACrB,MAAO,CAAC,CAAC,KAAK,GAAK,KAAK,EAAE,CAAC,GAAK,CACpC,EAuBEA,EAAE,MAAQ,SAAUlB,EAAGD,EAAG,CACxB,IAAIf,EAAGqC,EAAGvC,EAAGu8E,EACXl7E,EAAI,KACJd,EAAIc,EAAE,EAMR,GAJAH,EAAI,IAAIk2E,EAAUl2E,EAAGD,CAAC,EACtBA,EAAIC,EAAE,EAGF,CAACX,GAAK,CAACU,EAAG,OAAO,IAAIm2E,EAAU,GAAG,EAGtC,GAAI72E,GAAKU,EACP,OAAAC,EAAE,EAAI,CAACD,EACAI,EAAE,KAAKH,CAAC,EAGjB,IAAIoH,EAAKjH,EAAE,EAAIw1E,EACbxuE,EAAKnH,EAAE,EAAI21E,EACXuC,EAAK/3E,EAAE,EACP25E,EAAK95E,EAAE,EAET,GAAI,CAACoH,GAAM,CAACD,EAAI,CAGd,GAAI,CAAC+wE,GAAM,CAAC4B,EAAI,OAAO5B,GAAMl4E,EAAE,EAAI,CAACD,EAAGC,GAAK,IAAIk2E,EAAU4D,EAAK35E,EAAI,GAAG,EAGtE,GAAI,CAAC+3E,EAAG,CAAC,GAAK,CAAC4B,EAAG,CAAC,EAGjB,OAAOA,EAAG,CAAC,GAAK95E,EAAE,EAAI,CAACD,EAAGC,GAAK,IAAIk2E,EAAUgC,EAAG,CAAC,EAAI/3E,EAGpDk2E,GAAiB,EAAI,GAAK,CAAC,CAE/B,CAOD,GALAjvE,EAAK2yE,GAAS3yE,CAAE,EAChBD,EAAK4yE,GAAS5yE,CAAE,EAChB+wE,EAAKA,EAAG,QAGJ74E,EAAI+H,EAAKD,EAAI,CAaf,KAXIk0E,EAAOh8E,EAAI,IACbA,EAAI,CAACA,EACLP,EAAIo5E,IAEJ/wE,EAAKC,EACLtI,EAAIg7E,GAGNh7E,EAAE,QAAO,EAGJiB,EAAIV,EAAGU,IAAKjB,EAAE,KAAK,CAAC,EAAE,CAC3BA,EAAE,QAAO,CACf,KAKM,KAFAuC,GAAKg6E,GAAQh8E,EAAI64E,EAAG,SAAWn4E,EAAI+5E,EAAG,SAAWz6E,EAAIU,EAEhDV,EAAIU,EAAI,EAAGA,EAAIsB,EAAGtB,IAErB,GAAIm4E,EAAGn4E,CAAC,GAAK+5E,EAAG/5E,CAAC,EAAG,CAClBs7E,EAAOnD,EAAGn4E,CAAC,EAAI+5E,EAAG/5E,CAAC,EACnB,KACD,CAgBL,GAXIs7E,IACFv8E,EAAIo5E,EACJA,EAAK4B,EACLA,EAAKh7E,EACLkB,EAAE,EAAI,CAACA,EAAE,GAGXD,GAAKsB,EAAIy4E,EAAG,SAAW96E,EAAIk5E,EAAG,QAI1Bn4E,EAAI,EAAG,KAAOA,IAAKm4E,EAAGl5E,GAAG,EAAI,EAAE,CAInC,IAHAe,EAAI21E,GAAO,EAGJr0E,EAAIhC,GAAI,CAEb,GAAI64E,EAAG,EAAE72E,CAAC,EAAIy4E,EAAGz4E,CAAC,EAAG,CACnB,IAAKrC,EAAIqC,EAAGrC,GAAK,CAACk5E,EAAG,EAAEl5E,CAAC,EAAGk5E,EAAGl5E,CAAC,EAAIe,EAAE,CACrC,EAAEm4E,EAAGl5E,CAAC,EACNk5E,EAAG72E,CAAC,GAAKq0E,EACV,CAEDwC,EAAG72E,CAAC,GAAKy4E,EAAGz4E,CAAC,CACd,CAGD,KAAO62E,EAAG,CAAC,GAAK,EAAGA,EAAG,OAAO,EAAG,CAAC,EAAG,EAAE/wE,EAAG,CAGzC,OAAK+wE,EAAG,CAAC,EAWFiC,EAAUn6E,EAAGk4E,EAAI/wE,CAAE,GAPxBnH,EAAE,EAAIq2E,GAAiB,EAAI,GAAK,EAChCr2E,EAAE,EAAI,CAACA,EAAE,EAAI,CAAC,EACPA,EAMb,EAwBEkB,EAAE,OAASA,EAAE,IAAM,SAAUlB,EAAGD,EAAG,CACjC,IAAImC,EAAG9C,EACLe,EAAI,KAKN,OAHAH,EAAI,IAAIk2E,EAAUl2E,EAAGD,CAAC,EAGlB,CAACI,EAAE,GAAK,CAACH,EAAE,GAAKA,EAAE,GAAK,CAACA,EAAE,EAAE,CAAC,EACxB,IAAIk2E,EAAU,GAAG,EAGf,CAACl2E,EAAE,GAAKG,EAAE,GAAK,CAACA,EAAE,EAAE,CAAC,EACvB,IAAI+1E,EAAU/1E,CAAC,GAGpBw2E,GAAe,GAIjBv3E,EAAIY,EAAE,EACNA,EAAE,EAAI,EACNkC,EAAIy+B,EAAIxgC,EAAGH,EAAG,EAAG,CAAC,EAClBA,EAAE,EAAIZ,EACN8C,EAAE,GAAK9C,GAEP8C,EAAIy+B,EAAIxgC,EAAGH,EAAG,EAAG22E,CAAW,EAG9B32E,EAAIG,EAAE,MAAM+B,EAAE,MAAMlC,CAAC,CAAC,EAGlB,CAACA,EAAE,EAAE,CAAC,GAAK22E,GAAe,IAAG32E,EAAE,EAAIG,EAAE,GAElCH,EACX,EAuBEkB,EAAE,aAAeA,EAAE,MAAQ,SAAUlB,EAAGD,EAAG,CACzC,IAAIR,EAAGR,EAAGC,EAAGqC,EAAGb,EAAGZ,EAAG07E,EAAK7C,EAAKC,EAAK6C,EAAKC,EAAKC,EAAKC,EAClDnD,GAAMoD,EACNx7E,EAAI,KACJ+3E,EAAK/3E,EAAE,EACP25E,IAAM95E,EAAI,IAAIk2E,EAAUl2E,EAAGD,CAAC,GAAG,EAGjC,GAAI,CAACm4E,GAAM,CAAC4B,IAAM,CAAC5B,EAAG,CAAC,GAAK,CAAC4B,GAAG,CAAC,EAG/B,MAAI,CAAC35E,EAAE,GAAK,CAACH,EAAE,GAAKk4E,GAAM,CAACA,EAAG,CAAC,GAAK,CAAC4B,IAAMA,IAAM,CAACA,GAAG,CAAC,GAAK,CAAC5B,EAC1Dl4E,EAAE,EAAIA,EAAE,EAAIA,EAAE,EAAI,MAElBA,EAAE,GAAKG,EAAE,EAGL,CAAC+3E,GAAM,CAAC4B,GACV95E,EAAE,EAAIA,EAAE,EAAI,MAIZA,EAAE,EAAI,CAAC,CAAC,EACRA,EAAE,EAAI,IAIHA,EAmBT,IAhBAjB,EAAIg7E,GAAS55E,EAAE,EAAIw1E,CAAQ,EAAIoE,GAAS/5E,EAAE,EAAI21E,CAAQ,EACtD31E,EAAE,GAAKG,EAAE,EACTm7E,EAAMpD,EAAG,OACTqD,EAAMzB,GAAG,OAGLwB,EAAMC,IACRG,EAAKxD,EACLA,EAAK4B,GACLA,GAAK4B,EACL18E,EAAIs8E,EACJA,EAAMC,EACNA,EAAMv8E,GAIHA,EAAIs8E,EAAMC,EAAKG,EAAK,CAAA,EAAI18E,IAAK08E,EAAG,KAAK,CAAC,EAAE,CAK7C,IAHAnD,GAAO7C,GACPiG,EAAW9F,GAEN72E,EAAIu8E,EAAK,EAAEv8E,GAAK,GAAI,CAKvB,IAJAO,EAAI,EACJi8E,EAAM1B,GAAG96E,CAAC,EAAI28E,EACdF,EAAM3B,GAAG96E,CAAC,EAAI28E,EAAW,EAEpBn7E,EAAI86E,EAAKj6E,EAAIrC,EAAIwB,EAAGa,EAAIrC,GAC3By5E,EAAMP,EAAG,EAAE13E,CAAC,EAAIm7E,EAChBjD,EAAMR,EAAG13E,CAAC,EAAIm7E,EAAW,EACzB/7E,EAAI67E,EAAMhD,EAAMC,EAAM8C,EACtB/C,EAAM+C,EAAM/C,EAAQ74E,EAAI+7E,EAAYA,EAAYD,EAAGr6E,CAAC,EAAI9B,EACxDA,GAAKk5E,EAAMF,GAAO,IAAM34E,EAAI+7E,EAAW,GAAKF,EAAM/C,EAClDgD,EAAGr6E,GAAG,EAAIo3E,EAAMF,GAGlBmD,EAAGr6E,CAAC,EAAI9B,CACT,CAED,OAAIA,EACF,EAAER,EAEF28E,EAAG,OAAO,EAAG,CAAC,EAGTvB,EAAUn6E,EAAG07E,EAAI38E,CAAC,CAC7B,EAOEmC,EAAE,QAAU,UAAY,CACtB,IAAIf,EAAI,IAAI+1E,EAAU,IAAI,EAC1B,OAAA/1E,EAAE,EAAI,CAACA,EAAE,GAAK,KACPA,CACX,EAuBEe,EAAE,KAAO,SAAUlB,EAAGD,EAAG,CACvB,IAAIjB,EACFqB,EAAI,KACJd,EAAIc,EAAE,EAMR,GAJAH,EAAI,IAAIk2E,EAAUl2E,EAAGD,CAAC,EACtBA,EAAIC,EAAE,EAGF,CAACX,GAAK,CAACU,EAAG,OAAO,IAAIm2E,EAAU,GAAG,EAGrC,GAAI72E,GAAKU,EACR,OAAAC,EAAE,EAAI,CAACD,EACAI,EAAE,MAAMH,CAAC,EAGlB,IAAIoH,EAAKjH,EAAE,EAAIw1E,EACbxuE,EAAKnH,EAAE,EAAI21E,EACXuC,EAAK/3E,EAAE,EACP25E,EAAK95E,EAAE,EAET,GAAI,CAACoH,GAAM,CAACD,EAAI,CAGd,GAAI,CAAC+wE,GAAM,CAAC4B,EAAI,OAAO,IAAI5D,EAAU72E,EAAI,CAAC,EAI1C,GAAI,CAAC64E,EAAG,CAAC,GAAK,CAAC4B,EAAG,CAAC,EAAG,OAAOA,EAAG,CAAC,EAAI95E,EAAI,IAAIk2E,EAAUgC,EAAG,CAAC,EAAI/3E,EAAId,EAAI,CAAC,CACzE,CAOD,GALA+H,EAAK2yE,GAAS3yE,CAAE,EAChBD,EAAK4yE,GAAS5yE,CAAE,EAChB+wE,EAAKA,EAAG,QAGJ74E,EAAI+H,EAAKD,EAAI,CAUf,IATI9H,EAAI,GACN8H,EAAKC,EACLtI,EAAIg7E,IAEJz6E,EAAI,CAACA,EACLP,EAAIo5E,GAGNp5E,EAAE,QAAO,EACFO,IAAKP,EAAE,KAAK,CAAC,EAAE,CACtBA,EAAE,QAAO,CACV,CAcD,IAZAO,EAAI64E,EAAG,OACPn4E,EAAI+5E,EAAG,OAGHz6E,EAAIU,EAAI,IACVjB,EAAIg7E,EACJA,EAAK5B,EACLA,EAAKp5E,EACLiB,EAAIV,GAIDA,EAAI,EAAGU,GACVV,GAAK64E,EAAG,EAAEn4E,CAAC,EAAIm4E,EAAGn4E,CAAC,EAAI+5E,EAAG/5E,CAAC,EAAIV,GAAKq2E,GAAO,EAC3CwC,EAAGn4E,CAAC,EAAI21E,KAASwC,EAAGn4E,CAAC,EAAI,EAAIm4E,EAAGn4E,CAAC,EAAI21E,GAGvC,OAAIr2E,IACF64E,EAAK,CAAC74E,CAAC,EAAE,OAAO64E,CAAE,EAClB,EAAE/wE,GAKGgzE,EAAUn6E,EAAGk4E,EAAI/wE,CAAE,CAC9B,EAkBEjG,EAAE,UAAYA,EAAE,GAAK,SAAUy5E,EAAIxC,EAAI,CACrC,IAAI54E,EAAGN,EAAGgB,EACRE,EAAI,KAEN,GAAIw6E,GAAM,MAAQA,IAAO,CAAC,CAACA,EACzB,OAAAxD,GAASwD,EAAI,EAAG7E,EAAG,EACfqC,GAAM,KAAMA,EAAK9B,EAChBc,GAASgB,EAAI,EAAG,CAAC,EAEff,EAAM,IAAIlB,EAAU/1E,CAAC,EAAGw6E,EAAIxC,CAAE,EAGvC,GAAI,EAAE54E,EAAIY,EAAE,GAAI,OAAO,KAIvB,GAHAF,EAAIV,EAAE,OAAS,EACfN,EAAIgB,EAAI01E,EAAW,EAEf11E,EAAIV,EAAEU,CAAC,EAAG,CAGZ,KAAOA,EAAI,IAAM,EAAGA,GAAK,GAAIhB,IAAI,CAGjC,IAAKgB,EAAIV,EAAE,CAAC,EAAGU,GAAK,GAAIA,GAAK,GAAIhB,IAAI,CACtC,CAED,OAAI07E,GAAMx6E,EAAE,EAAI,EAAIlB,IAAGA,EAAIkB,EAAE,EAAI,GAE1BlB,CACX,EAWEiC,EAAE,UAAY,SAAUV,EAAG,CACzB,OAAA22E,GAAS32E,EAAG,kBAAmBs/D,EAAgB,EACxC,KAAK,MAAM,KAAOt/D,CAAC,CAC9B,EAcEU,EAAE,WAAaA,EAAE,KAAO,UAAY,CAClC,IAAItB,EAAGX,EAAGC,EAAG08E,EAAK98E,EAChBqB,EAAI,KACJZ,EAAIY,EAAE,EACNf,EAAIe,EAAE,EACNpB,EAAIoB,EAAE,EACNq3E,EAAKpB,EAAiB,EACtB2E,EAAO,IAAI7E,EAAU,KAAK,EAG5B,GAAI92E,IAAM,GAAK,CAACG,GAAK,CAACA,EAAE,CAAC,EACvB,OAAO,IAAI22E,EAAU,CAAC92E,GAAKA,EAAI,IAAM,CAACG,GAAKA,EAAE,CAAC,GAAK,IAAMA,EAAIY,EAAI,GAAK,EA8BxE,GA1BAf,EAAI,KAAK,KAAK,CAAC07E,EAAQ36E,CAAC,CAAC,EAIrBf,GAAK,GAAKA,GAAK,KACjBH,EAAIo5E,GAAc94E,CAAC,GACdN,EAAE,OAASF,GAAK,GAAK,IAAGE,GAAK,KAClCG,EAAI,KAAK,KAAK,CAACH,CAAC,EAChBF,EAAIg7E,IAAUh7E,EAAI,GAAK,CAAC,GAAKA,EAAI,GAAKA,EAAI,GAEtCK,GAAK,IACPH,EAAI,KAAOF,GAEXE,EAAIG,EAAE,gBACNH,EAAIA,EAAE,MAAM,EAAGA,EAAE,QAAQ,GAAG,EAAI,CAAC,EAAIF,GAGvCG,EAAI,IAAIg3E,EAAUj3E,CAAC,GAEnBC,EAAI,IAAIg3E,EAAU92E,EAAI,EAAE,EAOtBF,EAAE,EAAE,CAAC,GAMP,IALAH,EAAIG,EAAE,EACNE,EAAIL,EAAIy4E,EACJp4E,EAAI,IAAGA,EAAI,KAOb,GAHAN,EAAII,EACJA,EAAI67E,EAAK,MAAMj8E,EAAE,KAAK6hC,EAAIxgC,EAAGrB,EAAG04E,EAAI,CAAC,CAAC,CAAC,EAEnCa,GAAcv5E,EAAE,CAAC,EAAE,MAAM,EAAGM,CAAC,KAAOH,EAAIo5E,GAAcn5E,EAAE,CAAC,GAAG,MAAM,EAAGE,CAAC,EAWxE,GANIF,EAAE,EAAIH,GAAG,EAAEK,EACfH,EAAIA,EAAE,MAAMG,EAAI,EAAGA,EAAI,CAAC,EAKpBH,GAAK,QAAU,CAAC28E,GAAO38E,GAAK,OAAQ,CAItC,GAAI,CAAC28E,IACHxE,EAAMt4E,EAAGA,EAAE,EAAIs3E,EAAiB,EAAG,CAAC,EAEhCt3E,EAAE,MAAMA,CAAC,EAAE,GAAGqB,CAAC,GAAG,CACpBjB,EAAIJ,EACJ,KACD,CAGH04E,GAAM,EACNp4E,GAAK,EACLw8E,EAAM,CAClB,KAAiB,EAID,CAAC,CAAC38E,GAAK,CAAC,CAACA,EAAE,MAAM,CAAC,GAAKA,EAAE,OAAO,CAAC,GAAK,OAGxCm4E,EAAMl4E,EAAGA,EAAE,EAAIk3E,EAAiB,EAAG,CAAC,EACpCx2E,EAAI,CAACV,EAAE,MAAMA,CAAC,EAAE,GAAGiB,CAAC,GAGtB,KACD,EAKP,OAAOi3E,EAAMl4E,EAAGA,EAAE,EAAIk3E,EAAiB,EAAGC,EAAez2E,CAAC,CAC9D,EAYEsB,EAAE,cAAgB,SAAUs2E,EAAIW,EAAI,CAClC,OAAIX,GAAM,OACRL,GAASK,EAAI,EAAG1B,EAAG,EACnB0B,KAEKwC,EAAO,KAAMxC,EAAIW,EAAI,CAAC,CACjC,EAeEj3E,EAAE,QAAU,SAAUs2E,EAAIW,EAAI,CAC5B,OAAIX,GAAM,OACRL,GAASK,EAAI,EAAG1B,EAAG,EACnB0B,EAAKA,EAAK,KAAK,EAAI,GAEdwC,EAAO,KAAMxC,EAAIW,CAAE,CAC9B,EA4BEj3E,EAAE,SAAW,SAAUs2E,EAAIW,EAAI6B,EAAQ,CACrC,IAAI36B,EACFl/C,EAAI,KAEN,GAAI65E,GAAU,KACRxC,GAAM,MAAQW,GAAM,OAAOA,GAAM,UACnC6B,EAAS7B,EACTA,EAAK,MACIX,GAAM,OAAOA,GAAM,UAC5BwC,EAASxC,EACTA,EAAKW,EAAK,MAEV6B,EAASnD,UAEF,OAAOmD,GAAU,SAC1B,MAAM,MACHxE,GAAiB,2BAA6BwE,CAAM,EAKzD,GAFA36B,EAAMl/C,EAAE,QAAQq3E,EAAIW,CAAE,EAElBh4E,EAAE,EAAG,CACP,IAAInB,EACFy0C,EAAM4L,EAAI,MAAM,GAAG,EACnBw8B,EAAK,CAAC7B,EAAO,UACb8B,EAAK,CAAC9B,EAAO,mBACb+B,EAAiB/B,EAAO,gBAAkB,GAC1CgC,EAAUvoC,EAAI,CAAC,EACfwoC,EAAexoC,EAAI,CAAC,EACpByoC,EAAQ/7E,EAAE,EAAI,EACdg8E,EAAYD,EAAQF,EAAQ,MAAM,CAAC,EAAIA,EACvC/6C,EAAMk7C,EAAU,OASlB,GAPIL,IACF98E,EAAI68E,EACJA,EAAKC,EACLA,EAAK98E,EACLiiC,GAAOjiC,GAGL68E,EAAK,GAAK56C,EAAM,EAAG,CAGrB,IAFAjiC,EAAIiiC,EAAM46C,GAAMA,EAChBG,EAAUG,EAAU,OAAO,EAAGn9E,CAAC,EACxBA,EAAIiiC,EAAKjiC,GAAK68E,EAAIG,GAAWD,EAAiBI,EAAU,OAAOn9E,EAAG68E,CAAE,EACvEC,EAAK,IAAGE,GAAWD,EAAiBI,EAAU,MAAMn9E,CAAC,GACrDk9E,IAAOF,EAAU,IAAMA,EAC5B,CAED38B,EAAM48B,EACHD,GAAWhC,EAAO,kBAAoB,MAAQ8B,EAAK,CAAC9B,EAAO,mBAC1DiC,EAAa,QAAQ,IAAI,OAAO,OAASH,EAAK,OAAQ,GAAG,EAC1D,MAAQ9B,EAAO,wBAA0B,GAAG,EAC3CiC,GACDD,CACJ,CAED,OAAQhC,EAAO,QAAU,IAAM36B,GAAO26B,EAAO,QAAU,GAC3D,EAcE94E,EAAE,WAAa,SAAUk7E,EAAI,CAC3B,IAAI18E,EAAG28E,EAAIC,EAAIC,EAAIx9E,EAAGy9E,EAAKv9E,EAAGw9E,EAAIC,EAAIx6E,EAAGhD,EAAGE,EAC1Ce,EAAI,KACJ+3E,EAAK/3E,EAAE,EAET,GAAIi8E,GAAM,OACRn9E,EAAI,IAAIi3E,EAAUkG,CAAE,EAGhB,CAACn9E,EAAE,cAAgBA,EAAE,GAAKA,EAAE,IAAM,IAAMA,EAAE,GAAGk3E,CAAG,GAClD,MAAM,MACHX,GAAiB,aACfv2E,EAAE,UAAS,EAAK,iBAAmB,oBAAsB67E,EAAQ77E,CAAC,CAAC,EAI5E,GAAI,CAACi5E,EAAI,OAAO,IAAIhC,EAAU/1E,CAAC,EAoB/B,IAlBAT,EAAI,IAAIw2E,EAAUC,CAAG,EACrBuG,EAAKL,EAAK,IAAInG,EAAUC,CAAG,EAC3BmG,EAAKG,EAAK,IAAIvG,EAAUC,CAAG,EAC3B/2E,EAAIi5E,GAAcH,CAAE,EAIpBn5E,EAAIW,EAAE,EAAIN,EAAE,OAASe,EAAE,EAAI,EAC3BT,EAAE,EAAE,CAAC,EAAIk2E,IAAU4G,EAAMz9E,EAAI42E,GAAY,EAAIA,EAAW6G,EAAMA,CAAG,EACjEJ,EAAK,CAACA,GAAMn9E,EAAE,WAAWS,CAAC,EAAI,EAAKX,EAAI,EAAIW,EAAIg9E,EAAMz9E,EAErDu9E,EAAM/F,EACNA,EAAU,IACVx3E,EAAI,IAAIi3E,EAAU92E,CAAC,EAGnBq9E,EAAG,EAAE,CAAC,EAAI,EAGRv6E,EAAIy+B,EAAI1hC,EAAGS,EAAG,EAAG,CAAC,EAClB68E,EAAKF,EAAG,KAAKn6E,EAAE,MAAMo6E,CAAE,CAAC,EACpBC,EAAG,WAAWH,CAAE,GAAK,GACzBC,EAAKC,EACLA,EAAKC,EACLG,EAAKD,EAAG,KAAKv6E,EAAE,MAAMq6E,EAAKG,CAAE,CAAC,EAC7BD,EAAKF,EACL78E,EAAIT,EAAE,MAAMiD,EAAE,MAAMq6E,EAAK78E,CAAC,CAAC,EAC3BT,EAAIs9E,EAGN,OAAAA,EAAK57C,EAAIy7C,EAAG,MAAMC,CAAE,EAAGC,EAAI,EAAG,CAAC,EAC/BG,EAAKA,EAAG,KAAKF,EAAG,MAAMG,CAAE,CAAC,EACzBL,EAAKA,EAAG,KAAKE,EAAG,MAAMD,CAAE,CAAC,EACzBG,EAAG,EAAIC,EAAG,EAAIv8E,EAAE,EAChBpB,EAAIA,EAAI,EAGRG,EAAIyhC,EAAI+7C,EAAIJ,EAAIv9E,EAAGs3E,CAAa,EAAE,MAAMl2E,CAAC,EAAE,IAAK,EAAC,WAC7CwgC,EAAI87C,EAAIJ,EAAIt9E,EAAGs3E,CAAa,EAAE,MAAMl2E,CAAC,EAAE,IAAG,CAAE,EAAI,EAAI,CAACu8E,EAAIJ,CAAE,EAAI,CAACG,EAAIJ,CAAE,EAE1E5F,EAAU+F,EAEHt9E,CACX,EAMEgC,EAAE,SAAW,UAAY,CACvB,MAAO,CAAC45E,EAAQ,IAAI,CACxB,EAcE55E,EAAE,YAAc,SAAUy5E,EAAIxC,EAAI,CAChC,OAAIwC,GAAM,MAAMxD,GAASwD,EAAI,EAAG7E,EAAG,EAC5BkE,EAAO,KAAMW,EAAIxC,EAAI,CAAC,CACjC,EAcEj3E,EAAE,SAAW,SAAUnB,EAAG,CACxB,IAAIs/C,EACFpgD,EAAI,KACJG,EAAIH,EAAE,EACNF,EAAIE,EAAE,EAGR,OAAIF,IAAM,KACJK,GACFigD,EAAM,WACFjgD,EAAI,IAAGigD,EAAM,IAAMA,IAEvBA,EAAM,OAGJt/C,GAAK,KACPs/C,EAAMtgD,GAAKu3E,GAAcv3E,GAAKw3E,EAC3B2D,GAAc7B,GAAcp5E,EAAE,CAAC,EAAGF,CAAC,EACnCq5E,GAAaC,GAAcp5E,EAAE,CAAC,EAAGF,EAAG,GAAG,EACjCgB,IAAM,IAAMg3E,GACrB93E,EAAIm4E,EAAM,IAAIlB,EAAUj3E,CAAC,EAAGm3E,EAAiBr3E,EAAI,EAAGs3E,CAAa,EACjEh3B,EAAM+4B,GAAaC,GAAcp5E,EAAE,CAAC,EAAGA,EAAE,EAAG,GAAG,IAE/Ck4E,GAASp3E,EAAG,EAAG+2E,EAAS,OAAQ,MAAM,EACtCz3B,EAAM22B,EAAYoC,GAAaC,GAAcp5E,EAAE,CAAC,EAAGF,EAAG,GAAG,EAAG,GAAIgB,EAAGX,EAAG,EAAI,GAGxEA,EAAI,GAAKH,EAAE,EAAE,CAAC,IAAGogD,EAAM,IAAMA,IAG5BA,CACX,EAOEn+C,EAAE,QAAUA,EAAE,OAAS,UAAY,CACjC,OAAO45E,EAAQ,IAAI,CACvB,EAGE55E,EAAE,aAAe,GAEjBA,EAAE,OAAO,WAAW,EAAI,YAGxBA,EAAE,OAAO,IAAI,4BAA4B,CAAC,EAAIA,EAAE,QAE5C60E,GAAgB,MAAMG,EAAU,IAAIH,CAAY,EAE7CG,CACT,CASA,SAAS6D,GAAS96E,EAAG,CACnB,IAAID,EAAIC,EAAI,EACZ,OAAOA,EAAI,GAAKA,IAAMD,EAAIA,EAAIA,EAAI,CACpC,CAIA,SAASq5E,GAAch5E,EAAG,CAMxB,QALID,EAAGqC,EACLzC,EAAI,EACJqC,EAAIhC,EAAE,OACN,EAAIA,EAAE,CAAC,EAAI,GAENL,EAAIqC,GAAI,CAGb,IAFAjC,EAAIC,EAAEL,GAAG,EAAI,GACbyC,EAAIk0E,EAAWv2E,EAAE,OACVqC,IAAKrC,EAAI,IAAMA,EAAE,CACxB,GAAKA,CACN,CAGD,IAAKiC,EAAI,EAAE,OAAQ,EAAE,WAAW,EAAEA,CAAC,IAAM,IAAI,CAE7C,OAAO,EAAE,MAAM,EAAGA,EAAI,GAAK,CAAC,CAC9B,CAIA,SAASy3E,GAAQ34E,EAAGH,EAAG,CACrB,IAAIX,EAAGU,EACLm4E,EAAK/3E,EAAE,EACP25E,EAAK95E,EAAE,EACPhB,EAAImB,EAAE,EACNkB,EAAIrB,EAAE,EACNQ,EAAIL,EAAE,EACNb,EAAIU,EAAE,EAGR,GAAI,CAAChB,GAAK,CAACqC,EAAG,OAAO,KAMrB,GAJAhC,EAAI64E,GAAM,CAACA,EAAG,CAAC,EACfn4E,EAAI+5E,GAAM,CAACA,EAAG,CAAC,EAGXz6E,GAAKU,EAAG,OAAOV,EAAIU,EAAI,EAAI,CAACsB,EAAIrC,EAGpC,GAAIA,GAAKqC,EAAG,OAAOrC,EAMnB,GAJAK,EAAIL,EAAI,EACRe,EAAIS,GAAKlB,EAGL,CAAC44E,GAAM,CAAC4B,EAAI,OAAO/5E,EAAI,EAAI,CAACm4E,EAAK74E,EAAI,EAAI,GAG7C,GAAI,CAACU,EAAG,OAAOS,EAAIlB,EAAID,EAAI,EAAI,GAK/B,IAHAgC,GAAKb,EAAI03E,EAAG,SAAW54E,EAAIw6E,EAAG,QAAUt5E,EAAIlB,EAGvCN,EAAI,EAAGA,EAAIqC,EAAGrC,IAAK,GAAIk5E,EAAGl5E,CAAC,GAAK86E,EAAG96E,CAAC,EAAG,OAAOk5E,EAAGl5E,CAAC,EAAI86E,EAAG96E,CAAC,EAAIK,EAAI,EAAI,GAG3E,OAAOmB,GAAKlB,EAAI,EAAIkB,EAAIlB,EAAID,EAAI,EAAI,EACtC,CAMA,SAAS83E,GAASl4E,EAAG09E,EAAKC,EAAKl/D,EAAM,CACnC,GAAIze,EAAI09E,GAAO19E,EAAI29E,GAAO39E,IAAMs2E,GAAUt2E,CAAC,EACzC,MAAM,MACJu2E,IAAkB93D,GAAQ,aAAe,OAAOze,GAAK,SAClDA,EAAI09E,GAAO19E,EAAI29E,EAAM,kBAAoB,oBACzC,6BAA+B,OAAO39E,CAAC,CAAC,CAEjD,CAIA,SAASm8E,GAAMn8E,EAAG,CAChB,IAAIuB,EAAIvB,EAAE,EAAE,OAAS,EACrB,OAAO86E,GAAS96E,EAAE,EAAI02E,CAAQ,GAAKn1E,GAAKvB,EAAE,EAAEuB,CAAC,EAAI,GAAK,CACxD,CAGA,SAAS05E,GAAc76B,EAAK,EAAG,CAC7B,OAAQA,EAAI,OAAS,EAAIA,EAAI,OAAO,CAAC,EAAI,IAAMA,EAAI,MAAM,CAAC,EAAIA,IAC5D,EAAI,EAAI,IAAM,MAAQ,CAC1B,CAGA,SAAS+4B,GAAa/4B,EAAK,EAAG59C,EAAG,CAC/B,IAAIw/B,EAAK47C,EAGT,GAAI,EAAI,EAAG,CAGT,IAAKA,EAAKp7E,EAAI,IAAK,EAAE,EAAGo7E,GAAMp7E,EAAE,CAChC49C,EAAMw9B,EAAKx9B,CAGf,SACIpe,EAAMoe,EAAI,OAGN,EAAE,EAAIpe,EAAK,CACb,IAAK47C,EAAKp7E,EAAG,GAAKw/B,EAAK,EAAE,EAAG47C,GAAMp7E,EAAE,CACpC49C,GAAOw9B,CACb,MAAe,EAAI57C,IACboe,EAAMA,EAAI,MAAM,EAAG,CAAC,EAAI,IAAMA,EAAI,MAAM,CAAC,GAI7C,OAAOA,CACT,CAMO,IAAI62B,GAAY7vB,GAAO,ECv1F1By2B,IACH,SAAUA,EAAiB,CACxBA,EAAgBA,EAAgB,GAAQ5G,GAAU,QAAQ,EAAI,KAC9D4G,EAAgBA,EAAgB,KAAU5G,GAAU,UAAU,EAAI,OAClE4G,EAAgBA,EAAgB,SAAc5G,GAAU,UAAU,EAAI,WACtE4G,EAAgBA,EAAgB,OAAY5G,GAAU,aAAa,EAAI,SACvE4G,EAAgBA,EAAgB,QAAa5G,GAAU,aAAa,EAAI,UACxE4G,EAAgBA,EAAgB,SAAc5G,GAAU,eAAe,EAAI,WAC3E4G,EAAgBA,EAAgB,SAAc5G,GAAU,eAAe,EAAI,WAC3E4G,EAAgBA,EAAgB,OAAY5G,GAAU,eAAe,EAAI,SACzE4G,EAAgBA,EAAgB,QAAa5G,GAAU,UAAU,EAAI,UACrE4G,EAAgBA,EAAgB,KAAU5G,GAAU,UAAU,EAAI,OAClE4G,EAAgBA,EAAgB,MAAW5G,GAAU,WAAW,EAAI,OACxE,GAAG4G,KAAoBA,GAAkB,CAAA,EAAG,EACrC,SAASC,GAAgBC,EAAW,CACvC,IAAIllB,EACJ,OAASA,EAAKglB,GAAgBE,CAAS,KAAO,MAAQllB,IAAO,OAASA,EAAKglB,GAAgB,OAC/F,CCjBA,IAAIhd,GAAmB,iBAGnBmd,GAAc,KAAK,MAUvB,SAASC,GAAWhoE,EAAQjW,EAAG,CAC7B,IAAI0Z,EAAS,GACb,GAAI,CAACzD,GAAUjW,EAAI,GAAKA,EAAI6gE,GAC1B,OAAOnnD,EAIT,GACM1Z,EAAI,IACN0Z,GAAUzD,GAEZjW,EAAIg+E,GAAYh+E,EAAI,CAAC,EACjBA,IACFiW,GAAUA,SAELjW,GAET,OAAO0Z,CACT,CAEA,IAAAwkE,GAAiBD,GClCbnjE,GAAW3C,GAGXm2D,GAAW,IACX6P,GAAc,sBAyBlB,SAASC,GAASvmE,EAAO,CACvB,GAAI,CAACA,EACH,OAAOA,IAAU,EAAIA,EAAQ,EAG/B,GADAA,EAAQiD,GAASjD,CAAK,EAClBA,IAAUy2D,IAAYz2D,IAAU,KAAW,CAC7C,IAAIkhE,EAAQlhE,EAAQ,EAAI,GAAK,EAC7B,OAAOkhE,EAAOoF,EAClB,CACE,OAAOtmE,IAAUA,EAAQA,EAAQ,CACnC,CAEA,IAAAwmE,GAAiBD,GCzCbA,GAAWjmE,GA4Bf,SAASmmE,GAAUzmE,EAAO,CACxB,IAAI6B,EAAS0kE,GAASvmE,CAAK,EACvB0mE,EAAY7kE,EAAS,EAEzB,OAAOA,IAAWA,EAAU6kE,EAAY7kE,EAAS6kE,EAAY7kE,EAAU,CACzE,CAEA,IAAA8kE,GAAiBF,GCnCbL,GAAa9lE,GACb4zD,GAAiBjyD,GACjBwkE,GAAYvkE,GACZ0lD,GAAWlF,GAwBf,SAASkkB,GAAOxoE,EAAQjW,EAAGosE,EAAO,CAChC,OAAKA,EAAQL,GAAe91D,EAAQjW,EAAGosE,CAAK,EAAIpsE,IAAM,QACpDA,EAAI,EAEJA,EAAIs+E,GAAUt+E,CAAC,EAEVi+E,GAAWxe,GAASxpD,CAAM,EAAGjW,CAAC,CACvC,CAEA,IAAA0+E,GAAiBD,mBClCjB,SAASE,GAAWC,EAAS,CACzB,OAAIA,EAAQ,SACD,EAEJ,KAAK,MAAM,KAAK,MAAMA,EAAQ,MAAM,UAAU,EAAI,CAAC,CAC9D,CACA,SAASC,GAAqBD,EAAS,CAAE,UAAAE,EAAW,YAAAC,CAAW,EAAI,CAC/D,OAAIA,GAAeD,IAAc,MAAQA,EAAY,EAC1CA,EAAYH,GAAWC,CAAO,EAElCE,CACX,CACO,SAASE,GAAYJ,EAASzpE,EAAS,CAC1C,MAAM2pE,EAAYD,GAAqBD,EAASzpE,CAAO,EACvD,GAAI2pE,IAAc,KACd,OAAOF,EAAQ,SAAU,EAE7B,MAAMb,EAAYD,GAAgB3oE,EAAQ,SAAS,EACnD,GAAI2pE,GAAa,EACb,OAAOF,EAAQ,QAAQE,EAAWf,CAAS,EAE/C,MAAMkB,EAAU,KAAK,IAAI,GAAI,KAAK,IAAIH,CAAS,CAAC,EAChD,OAAAF,EAAU,IAAI3H,GAAU2H,EAAQ,IAAIK,CAAO,EAAE,QAAQ,EAAGlB,CAAS,CAAC,EAAE,MAAMkB,CAAO,EAC1EL,EAAQ,SAAU,CAC7B,CCvBA,SAASM,GAAgBnE,EAAQ,CAAE,gBAAAoE,EAAiB,KAAAv+D,CAAI,EAAI,CACxD,OAAOm6D,EAAO,QAAQ,KAAMoE,CAAe,EAAE,QAAQ,KAAMv+D,CAAI,CACnE,CACA,SAASw+D,GAAmB,CAAE,YAAAC,EAAa,MAAAC,EAAO,UAAAR,CAAS,EAAK,CAC5D,GAAIQ,IAAU,KAAOR,IAAc,KAC/B,OAAOO,EAEX,MAAM5zB,EAAQ,KAAK,IAAI,EAAGqzB,EAAYQ,EAAM,MAAM,EAClD,OAAQD,GAA+D,IAAI,OAAO,EAAG5zB,CAAK,CAC9F,CACO,SAAS8zB,GAAah/D,EAAOpL,EAAS,CACzC,IAAI0jD,EAAI2mB,EAAIC,EACZ,MAAMC,EAAiB,IAAIzI,GAAU12D,CAAK,EAC1C,GAAIpL,EAAQ,OAAS,CAACuqE,EAAe,SAAQ,EACzC,MAAM,IAAI,MAAM,IAAIn/D,CAAK,gCAAgC,EAE7D,MAAMo/D,EAAgBX,GAAYU,EAAgBvqE,CAAO,EACnDypE,EAAU,IAAI3H,GAAU0I,CAAa,EACrCC,EAAahB,EAAQ,GAAG,CAAC,EACzBiB,EAASjB,EAAQ,OAAQ,EAC/B,GAAI,CAACU,EAAOD,CAAW,EAAIM,EAAc,MAAM,GAAG,EAClD,MAAMlc,EAAS,CAAE,EACjB,IAAI0b,EACJ,MAAMW,GAAkBjnB,EAAK1jD,EAAQ,UAAY,MAAQ0jD,IAAO,OAASA,EAAK,KACxEknB,GAAkBP,EAAKrqE,EAAQ,kBAAoB,MAAQqqE,IAAO,OAASA,EAAK,IAAIM,CAAc,GAClG/E,EAAS6E,GAAc,CAACC,EAASE,EAAiBD,EAExD,IADAR,EAAQA,EAAM,QAAQ,IAAK,EAAE,EACtBA,EAAM,OAAS,GAClB7b,EAAO,QAAQ6b,EAAM,OAAO,KAAK,IAAI,EAAGA,EAAM,OAAS,CAAC,EAAG,CAAC,CAAC,EAC7DA,EAAQA,EAAM,OAAO,EAAGA,EAAM,OAAS,CAAC,EAE5C,OAAAA,EAAQ7b,EAAO,KAAK,EAAE,EACtB0b,EAAkB1b,EAAO,KAAKtuD,EAAQ,SAAS,EAC3CA,EAAQ,YACRkqE,EAAcD,GAAmB,CAC7B,MAAAE,EACA,YAAAD,EACA,UAAWlqE,EAAQ,SAC/B,CAAS,EAGDkqE,EAAcA,GAA+DZ,GAAO,KAAMgB,EAAKtqE,EAAQ,aAAe,MAAQsqE,IAAO,OAASA,EAAK,CAAC,EAEpJtqE,EAAQ,yBAA2BkqE,IACnCA,EAAcA,EAAY,QAAQ,MAAO,EAAE,GAE3CK,EAAe,UACfP,EAAkB5+D,EAAM,SAAU,GAElC8+D,GAAeK,EAAe,aAC9BP,IAAoBhqE,EAAQ,WAAa,KAAOkqE,GAE7CH,GAAgBnE,EAAQ,CAC3B,gBAAAoE,EACA,KAAMhqE,EAAQ,IACtB,CAAK,CACL,CC3DO,SAAS6qE,GAAa1uD,EAAM4kD,EAAO/gE,EAAS,CAC/C,IAAIuE,EAAS,GACb,OAAIw8D,aAAiB,QAAU,OAAOA,GAAU,YAC5Cx8D,EAASw8D,GAETA,aAAiB,QACjBx8D,EAASw8D,EAAM,KAAK5kD,EAAK,gBAAgB,GAEzCnc,EAAQ,QACRuE,EAAS,CAACvE,EAAQ,MAAOuE,CAAM,EAAE,KAAK4X,EAAK,gBAAgB,GAExD5X,CACX,CCZO,SAASumE,GAAU51D,EAAU,CAChC,IAAIwuC,EAAI2mB,EACR,GAAIn1D,IAAa,KACb,MAAO,OAEX,MAAMvS,EAAO,OAAOuS,EACpB,OAAIvS,IAAS,SACFA,IAEF0nE,GAAM3mB,EAAKxuC,GAAa,KAA8B,OAASA,EAAS,eAAiB,MAAQwuC,IAAO,OAAS,OAASA,EAAG,QAAU,MAAQ2mB,IAAO,OAAS,OAASA,EAAG,YAAa,IAAK,QAC1M,CCTO,SAASvqE,GAAYqc,EAAMzP,EAAS1M,EAAS,CAChDA,EAAU,OAAO,KAAKA,CAAO,EAAE,OAAO,CAACsuD,EAAQhuD,KAC3CguD,EAAOnyC,EAAK,aAAa7b,CAAG,CAAC,EAAIN,EAAQM,CAAG,EACrCguD,GACR,EAAE,EACL,MAAMziD,EAAUa,EAAQ,MAAMyP,EAAK,WAAW,EAC9C,GAAI,CAACtQ,EACD,OAAOa,EAEX,KAAOb,EAAQ,QAAQ,CACnB,IAAInJ,EACJ,MAAMqoE,EAAcl/D,EAAQ,MAAO,EAC7BvC,EAAOyhE,EAAY,QAAQ5uD,EAAK,YAAa,IAAI,EACnD0kD,GAAM7gE,EAAQsJ,CAAI,CAAC,EACnB5G,EAAQ1C,EAAQsJ,CAAI,EAAE,SAAQ,EAAG,QAAQ,OAAQ,OAAO,EAEnDA,KAAQtJ,EACb0C,EAAQyZ,EAAK,gBAAgBA,EAAM4uD,EAAar+D,EAAS1M,CAAO,EAGhE0C,EAAQyZ,EAAK,mBAAmBA,EAAM4uD,EAAar+D,EAAS1M,CAAO,EAEvE,MAAMgrE,EAAQ,IAAI,OAAOD,EAAY,QAAQ,OAAQ,KAAK,EAAE,QAAQ,OAAQ,KAAK,EAAG,GAAG,EACvFr+D,EAAUA,EAAQ,QAAQs+D,EAAOtoE,CAAK,CAC9C,CACI,OAAOgK,EAAQ,QAAQ,UAAW,GAAG,CACzC,CCxBO,SAASu+D,GAAO9uD,EAAM4kD,EAAO/gE,EAAU,CAAA,EAAI,CAC9CA,EAAU,OAAO,OAAO,CAAA,EAAIA,CAAO,EACnC,MAAMgB,EAAS,WAAYhB,EAAUA,EAAQ,OAASmc,EAAK,OACrD+uD,EAAaJ,GAAU9pE,CAAM,EAC7BN,EAAUyb,EAAK,QAChB,IAAI+uD,IAAe,SAAWlqE,EAAS,OAAOA,CAAM,EACpD,MAAO,EACNqB,EAAOwoE,GAAa1uD,EAAM4kD,EAAO/gE,CAAO,EACzC,MAAMmc,EAAK,gBAAgB,EAC3B,IAAK8F,GAAc9F,EAAK,aAAa8F,CAAS,CAAC,EAC9CiG,EAAUxnB,EAAQ,IAAKM,GAAWqB,EAAK,OAAO,CAACwoD,EAAMvqD,IAAQuqD,GAAQA,EAAKvqD,CAAG,EAAG6b,EAAK,aAAanb,CAAM,CAAC,CAAC,EAChH,OAAAknB,EAAQ,KAAKloB,EAAQ,YAAY,EAC1BkoB,EAAQ,KAAMG,GAAUw4C,GAAMx4C,CAAK,CAAC,CAC/C,CCfO,SAAS8iD,GAAkB//D,EAAOpL,EAAS,CAC9C,MAAMypE,EAAU,IAAI3H,GAAU12D,CAAK,EACnC,GAAI,CAACq+D,EAAQ,WACT,OAAOr+D,EAAM,SAAU,EAE3B,GAAI,CAACpL,EAAQ,iBAAiB,OAC1B,MAAM,IAAI,MAAM,0EAA0EA,EAAQ,gBAAgB,EAAE,EAExH,GAAI,CAACquC,EAAMe,CAAK,EAAIq6B,EAAQ,SAAU,EAAC,MAAM,GAAG,EAChD,OAAAp7B,EAAOA,EAAK,QAAQruC,EAAQ,iBAAmBorE,GAAqB,GAAGA,CAAgB,GAAGprE,EAAQ,SAAS,EAAE,EACtG,CAACquC,EAAMe,CAAK,EAAE,OAAO,OAAO,EAAE,KAAKpvC,EAAQ,SAAS,CAC/D,CCJA,SAASqrE,GAAUryB,EAAO99B,EAAQ,CAKhC,QAJI1X,EAAQ,GACRwnC,EAAS9vB,EAAO,OAChB6O,EAASivB,EAAM,OAEZ,EAAEx1C,EAAQwnC,GACfgO,EAAMjvB,EAASvmB,CAAK,EAAI0X,EAAO1X,CAAK,EAEtC,OAAOw1C,CACT,CAEA,IAAAsyB,GAAiBD,GCnBbxnE,GAASb,GACTwoD,GAAc7mD,GACdo/C,GAAUn/C,GAGV2mE,GAAmB1nE,GAASA,GAAO,mBAAqB,OAS5D,SAAS2nE,GAAc9oE,EAAO,CAC5B,OAAOqhD,GAAQrhD,CAAK,GAAK8oD,GAAY9oD,CAAK,GACxC,CAAC,EAAE6oE,IAAoB7oE,GAASA,EAAM6oE,EAAgB,EAC1D,CAEA,IAAAE,GAAiBD,GCnBbH,GAAYroE,GACZwoE,GAAgB7mE,GAapB,SAAS+mE,GAAY1yB,EAAO2yB,EAAO/T,EAAWgU,EAAUrnE,EAAQ,CAC9D,IAAIf,EAAQ,GACRwnC,EAASgO,EAAM,OAKnB,IAHA4e,IAAcA,EAAY4T,IAC1BjnE,IAAWA,EAAS,IAEb,EAAEf,EAAQwnC,GAAQ,CACvB,IAAItoC,EAAQs2C,EAAMx1C,CAAK,EACnBmoE,EAAQ,GAAK/T,EAAUl1D,CAAK,EAC1BipE,EAAQ,EAEVD,GAAYhpE,EAAOipE,EAAQ,EAAG/T,EAAWgU,EAAUrnE,CAAM,EAEzD8mE,GAAU9mE,EAAQ7B,CAAK,EAEfkpE,IACVrnE,EAAOA,EAAO,MAAM,EAAI7B,EAE9B,CACE,OAAO6B,CACT,CAEA,IAAAsnE,GAAiBH,GC3BjB,SAASI,GAAU9yB,EAAO4e,EAAW,CAInC,QAHIp0D,EAAQ,GACRwnC,EAASgO,GAAS,KAAO,EAAIA,EAAM,OAEhC,EAAEx1C,EAAQwnC,GACf,GAAI4sB,EAAU5e,EAAMx1C,CAAK,EAAGA,EAAOw1C,CAAK,EACtC,MAAO,GAGX,MAAO,EACT,CAEA,IAAA+yB,GAAiBD,GCtBbrU,GAAWz0D,GACX8oE,GAAYnnE,GACZ+zD,GAAW9zD,GAGXonE,GAAuB,EACvBC,GAAyB,EAe7B,SAASC,GAAYlzB,EAAOpzC,EAAOumE,EAASrZ,EAAYsZ,EAAWpX,EAAO,CACxE,IAAIqX,EAAYF,EAAUH,GACtBM,EAAYtzB,EAAM,OAClBuzB,EAAY3mE,EAAM,OAEtB,GAAI0mE,GAAaC,GAAa,EAAEF,GAAaE,EAAYD,GACvD,MAAO,GAGT,IAAIE,EAAaxX,EAAM,IAAIhc,CAAK,EAC5ByzB,EAAazX,EAAM,IAAIpvD,CAAK,EAChC,GAAI4mE,GAAcC,EAChB,OAAOD,GAAc5mE,GAAS6mE,GAAczzB,EAE9C,IAAIx1C,EAAQ,GACRe,EAAS,GACTi1D,EAAQ2S,EAAUF,GAA0B,IAAIxU,GAAW,OAM/D,IAJAzC,EAAM,IAAIhc,EAAOpzC,CAAK,EACtBovD,EAAM,IAAIpvD,EAAOozC,CAAK,EAGf,EAAEx1C,EAAQ8oE,GAAW,CAC1B,IAAII,EAAW1zB,EAAMx1C,CAAK,EACtBmpE,EAAW/mE,EAAMpC,CAAK,EAE1B,GAAIsvD,EACF,IAAI8Z,EAAWP,EACXvZ,EAAW6Z,EAAUD,EAAUlpE,EAAOoC,EAAOozC,EAAOgc,CAAK,EACzDlC,EAAW4Z,EAAUC,EAAUnpE,EAAOw1C,EAAOpzC,EAAOovD,CAAK,EAE/D,GAAI4X,IAAa,OAAW,CAC1B,GAAIA,EACF,SAEFroE,EAAS,GACT,KACN,CAEI,GAAIi1D,GACF,GAAI,CAACsS,GAAUlmE,EAAO,SAAS+mE,EAAUE,EAAU,CAC7C,GAAI,CAACnU,GAASc,EAAMqT,CAAQ,IACvBH,IAAaC,GAAYP,EAAUM,EAAUC,EAAUR,EAASrZ,EAAYkC,CAAK,GACpF,OAAOwE,EAAK,KAAKqT,CAAQ,CAEvC,CAAW,EAAG,CACNtoE,EAAS,GACT,KACR,UACe,EACLmoE,IAAaC,GACXP,EAAUM,EAAUC,EAAUR,EAASrZ,EAAYkC,CAAK,GACzD,CACLzwD,EAAS,GACT,KACN,CACA,CACE,OAAAywD,EAAM,OAAUhc,CAAK,EACrBgc,EAAM,OAAUpvD,CAAK,EACdrB,CACT,CAEA,IAAAuoE,GAAiBZ,GC5EjB,SAASa,GAAWvkB,EAAK,CACvB,IAAIhlD,EAAQ,GACRe,EAAS,MAAMikD,EAAI,IAAI,EAE3B,OAAAA,EAAI,QAAQ,SAAS9lD,EAAOpC,EAAK,CAC/BiE,EAAO,EAAEf,CAAK,EAAI,CAAClD,EAAKoC,CAAK,CACjC,CAAG,EACM6B,CACT,CAEA,IAAAyoE,GAAiBD,GCjBblpE,GAASb,GACTwrD,GAAa7pD,GACbqiD,GAAKpiD,GACLsnE,GAAc9mB,GACd2nB,GAAapmB,GACbqS,GAAahN,GAGbggB,GAAuB,EACvBC,GAAyB,EAGzBvb,GAAU,mBACVC,GAAU,gBACVC,GAAW,iBACXC,GAAS,eACTC,GAAY,kBACZC,GAAY,kBACZC,GAAS,eACTC,GAAY,kBACZ9rD,GAAY,kBAEZgsD,GAAiB,uBACjBC,GAAc,oBAGdlH,GAAcrmD,GAASA,GAAO,UAAY,OAC1CopE,GAAgB/iB,GAAcA,GAAY,QAAU,OAmBxD,SAASgjB,GAAW/1B,EAAQvxC,EAAOvB,EAAK8nE,EAASrZ,EAAYsZ,EAAWpX,EAAO,CAC7E,OAAQ3wD,EAAG,CACT,KAAK+sD,GACH,GAAKja,EAAO,YAAcvxC,EAAM,YAC3BuxC,EAAO,YAAcvxC,EAAM,WAC9B,MAAO,GAETuxC,EAASA,EAAO,OAChBvxC,EAAQA,EAAM,OAEhB,KAAKurD,GACH,MAAK,EAAAha,EAAO,YAAcvxC,EAAM,YAC5B,CAACwmE,EAAU,IAAI5d,GAAWrX,CAAM,EAAG,IAAIqX,GAAW5oD,CAAK,CAAC,GAK9D,KAAK8qD,GACL,KAAKC,GACL,KAAKG,GAGH,OAAO9J,GAAG,CAAC7P,EAAQ,CAACvxC,CAAK,EAE3B,KAAKgrD,GACH,OAAOzZ,EAAO,MAAQvxC,EAAM,MAAQuxC,EAAO,SAAWvxC,EAAM,QAE9D,KAAKmrD,GACL,KAAKE,GAIH,OAAO9Z,GAAWvxC,EAAQ,GAE5B,KAAKirD,GACH,IAAIsc,EAAUJ,GAEhB,KAAK/b,GACH,IAAIqb,EAAYF,EAAUH,GAG1B,GAFAmB,IAAYA,EAAUnU,IAElB7hB,EAAO,MAAQvxC,EAAM,MAAQ,CAACymE,EAChC,MAAO,GAGT,IAAInX,EAAUF,EAAM,IAAI7d,CAAM,EAC9B,GAAI+d,EACF,OAAOA,GAAWtvD,EAEpBumE,GAAWF,GAGXjX,EAAM,IAAI7d,EAAQvxC,CAAK,EACvB,IAAIrB,EAAS2nE,GAAYiB,EAAQh2B,CAAM,EAAGg2B,EAAQvnE,CAAK,EAAGumE,EAASrZ,EAAYsZ,EAAWpX,CAAK,EAC/F,OAAAA,EAAM,OAAU7d,CAAM,EACf5yC,EAET,KAAKY,GACH,GAAI8nE,GACF,OAAOA,GAAc,KAAK91B,CAAM,GAAK81B,GAAc,KAAKrnE,CAAK,CAErE,CACE,MAAO,EACT,CAEA,IAAAwnE,GAAiBF,GC/Gb7B,GAAYroE,GACZ+gD,GAAUp/C,GAad,SAAS0oE,GAAel2B,EAAQwW,EAAU2f,EAAa,CACrD,IAAI/oE,EAASopD,EAASxW,CAAM,EAC5B,OAAO4M,GAAQ5M,CAAM,EAAI5yC,EAAS8mE,GAAU9mE,EAAQ+oE,EAAYn2B,CAAM,CAAC,CACzE,CAEA,IAAAo2B,GAAiBF,GCVjB,SAASG,GAAYx0B,EAAO4e,EAAW,CAMrC,QALIp0D,EAAQ,GACRwnC,EAASgO,GAAS,KAAO,EAAIA,EAAM,OACnCy0B,EAAW,EACXlpE,EAAS,CAAE,EAER,EAAEf,EAAQwnC,GAAQ,CACvB,IAAItoC,EAAQs2C,EAAMx1C,CAAK,EACnBo0D,EAAUl1D,EAAOc,EAAOw1C,CAAK,IAC/Bz0C,EAAOkpE,GAAU,EAAI/qE,EAE3B,CACE,OAAO6B,CACT,CAEA,IAAAmpE,GAAiBF,GCNjB,SAASG,IAAY,CACnB,MAAO,CAAE,CACX,CAEA,IAAAC,GAAiBD,GCtBbH,GAAcxqE,GACd2qE,GAAYhpE,GAGZZ,GAAc,OAAO,UAGrBwnD,GAAuBxnD,GAAY,qBAGnC8pE,GAAmB,OAAO,sBAS1BC,GAAcD,GAA+B,SAAS12B,EAAQ,CAChE,OAAIA,GAAU,KACL,CAAE,GAEXA,EAAS,OAAOA,CAAM,EACfq2B,GAAYK,GAAiB12B,CAAM,EAAG,SAAS42B,EAAQ,CAC5D,OAAOxiB,GAAqB,KAAKpU,EAAQ42B,CAAM,CACnD,CAAG,EACH,EARqCJ,GAUrCK,GAAiBF,GC7Bbze,GAAUrsD,GAGVirE,GAAa5e,GAAQ,OAAO,KAAM,MAAM,EAE5C6e,GAAiBD,GCLbxe,GAAczsD,GACdirE,GAAatpE,GAGbZ,GAAc,OAAO,UAGrBC,GAAiBD,GAAY,eASjC,SAASoqE,GAASh3B,EAAQ,CACxB,GAAI,CAACsY,GAAYtY,CAAM,EACrB,OAAO82B,GAAW92B,CAAM,EAE1B,IAAI5yC,EAAS,CAAE,EACf,QAASjE,KAAO,OAAO62C,CAAM,EACvBnzC,GAAe,KAAKmzC,EAAQ72C,CAAG,GAAKA,GAAO,eAC7CiE,EAAO,KAAKjE,CAAG,EAGnB,OAAOiE,CACT,CAEA,IAAA6pE,GAAiBD,GC7Bbhb,GAAgBnwD,GAChBmrE,GAAWxpE,GACXmrD,GAAclrD,GA8BlB,SAASvC,GAAK80C,EAAQ,CACpB,OAAO2Y,GAAY3Y,CAAM,EAAIgc,GAAchc,CAAM,EAAIg3B,GAASh3B,CAAM,CACtE,CAEA,IAAAk3B,GAAiBhsE,GCpCbgrE,GAAiBrqE,GACjB8qE,GAAanpE,GACbtC,GAAOuC,GASX,SAAS0pE,GAAWn3B,EAAQ,CAC1B,OAAOk2B,GAAel2B,EAAQ90C,GAAMyrE,EAAU,CAChD,CAEA,IAAAS,GAAiBD,GCfbA,GAAatrE,GAGbgpE,GAAuB,EAGvBjoE,GAAc,OAAO,UAGrBC,GAAiBD,GAAY,eAejC,SAASyqE,GAAar3B,EAAQvxC,EAAOumE,EAASrZ,EAAYsZ,EAAWpX,EAAO,CAC1E,IAAIqX,EAAYF,EAAUH,GACtByC,EAAWH,GAAWn3B,CAAM,EAC5Bu3B,EAAYD,EAAS,OACrBE,EAAWL,GAAW1oE,CAAK,EAC3B2mE,EAAYoC,EAAS,OAEzB,GAAID,GAAanC,GAAa,CAACF,EAC7B,MAAO,GAGT,QADI7oE,EAAQkrE,EACLlrE,KAAS,CACd,IAAIlD,EAAMmuE,EAASjrE,CAAK,EACxB,GAAI,EAAE6oE,EAAY/rE,KAAOsF,EAAQ5B,GAAe,KAAK4B,EAAOtF,CAAG,GAC7D,MAAO,EAEb,CAEE,IAAIsuE,EAAa5Z,EAAM,IAAI7d,CAAM,EAC7Bs1B,EAAazX,EAAM,IAAIpvD,CAAK,EAChC,GAAIgpE,GAAcnC,EAChB,OAAOmC,GAAchpE,GAAS6mE,GAAct1B,EAE9C,IAAI5yC,EAAS,GACbywD,EAAM,IAAI7d,EAAQvxC,CAAK,EACvBovD,EAAM,IAAIpvD,EAAOuxC,CAAM,EAGvB,QADI03B,EAAWxC,EACR,EAAE7oE,EAAQkrE,GAAW,CAC1BpuE,EAAMmuE,EAASjrE,CAAK,EACpB,IAAImvD,EAAWxb,EAAO72C,CAAG,EACrBqsE,EAAW/mE,EAAMtF,CAAG,EAExB,GAAIwyD,EACF,IAAI8Z,EAAWP,EACXvZ,EAAW6Z,EAAUha,EAAUryD,EAAKsF,EAAOuxC,EAAQ6d,CAAK,EACxDlC,EAAWH,EAAUga,EAAUrsE,EAAK62C,EAAQvxC,EAAOovD,CAAK,EAG9D,GAAI,EAAE4X,IAAa,OACVja,IAAaga,GAAYP,EAAUzZ,EAAUga,EAAUR,EAASrZ,EAAYkC,CAAK,EAClF4X,GACD,CACLroE,EAAS,GACT,KACN,CACIsqE,IAAaA,EAAWvuE,GAAO,cACnC,CACE,GAAIiE,GAAU,CAACsqE,EAAU,CACvB,IAAIC,EAAU33B,EAAO,YACjB43B,EAAUnpE,EAAM,YAGhBkpE,GAAWC,GACV,gBAAiB53B,GAAU,gBAAiBvxC,GAC7C,EAAE,OAAOkpE,GAAW,YAAcA,aAAmBA,GACnD,OAAOC,GAAW,YAAcA,aAAmBA,KACvDxqE,EAAS,GAEf,CACE,OAAAywD,EAAM,OAAU7d,CAAM,EACtB6d,EAAM,OAAUpvD,CAAK,EACdrB,CACT,CAEA,IAAAyqE,GAAiBR,GCzFb5oB,GAAY5iD,GACZE,GAAOyB,GAGPsqE,GAAWrpB,GAAU1iD,GAAM,UAAU,EAEzCgsE,GAAiBD,GCNbrpB,GAAY5iD,GACZE,GAAOyB,GAGPwqE,GAAUvpB,GAAU1iD,GAAM,SAAS,EAEvCksE,GAAiBD,GCNbvpB,GAAY5iD,GACZE,GAAOyB,GAGP0qE,GAAUzpB,GAAU1iD,GAAM,SAAS,EAEvCosE,GAAiBD,GCNbJ,GAAWjsE,GACXilD,GAAMtjD,GACNwqE,GAAUvqE,GACVg0D,GAAMxT,GACNiqB,GAAU1oB,GACV5hD,GAAainD,GACb9G,GAAWkP,GAGXvD,GAAS,eACTP,GAAY,kBACZif,GAAa,mBACbve,GAAS,eACTE,GAAa,mBAEbE,GAAc,oBAGdoe,GAAqBtqB,GAAS+pB,EAAQ,EACtCQ,GAAgBvqB,GAAS+C,EAAG,EAC5BynB,GAAoBxqB,GAASiqB,EAAO,EACpCQ,GAAgBzqB,GAAS0T,EAAG,EAC5BgX,GAAoB1qB,GAASmqB,EAAO,EASpCQ,GAAS9qE,IAGRkqE,IAAYY,GAAO,IAAIZ,GAAS,IAAI,YAAY,CAAC,CAAC,CAAC,GAAK7d,IACxDnJ,IAAO4nB,GAAO,IAAI5nB,EAAG,GAAK4I,IAC1Bse,IAAWU,GAAOV,GAAQ,QAAS,CAAA,GAAKI,IACxC3W,IAAOiX,GAAO,IAAIjX,EAAG,GAAK5H,IAC1Bqe,IAAWQ,GAAO,IAAIR,EAAO,GAAKne,MACrC2e,GAAS,SAASntE,EAAO,CACvB,IAAI6B,EAASQ,GAAWrC,CAAK,EACzBgtD,EAAOnrD,GAAU+rD,GAAY5tD,EAAM,YAAc,OACjDotE,EAAapgB,EAAOxK,GAASwK,CAAI,EAAI,GAEzC,GAAIogB,EACF,OAAQA,EAAU,CAChB,KAAKN,GAAoB,OAAOpe,GAChC,KAAKqe,GAAe,OAAO5e,GAC3B,KAAK6e,GAAmB,OAAOH,GAC/B,KAAKI,GAAe,OAAO3e,GAC3B,KAAK4e,GAAmB,OAAO1e,EACvC,CAEI,OAAO3sD,CACR,GAGH,IAAAwrE,GAAiBF,GCzDb3iB,GAAQlqD,GACRkpE,GAAcvnE,GACduoE,GAAatoE,GACb4pE,GAAeppB,GACfyqB,GAASlpB,GACT5C,GAAUiI,GACVqE,GAAW+D,GACX9B,GAAe+B,GAGf2X,GAAuB,EAGvB5gB,GAAU,qBACVqF,GAAW,iBACXH,GAAY,kBAGZvsD,GAAc,OAAO,UAGrBC,GAAiBD,GAAY,eAgBjC,SAASisE,GAAgB74B,EAAQvxC,EAAOumE,EAASrZ,EAAYsZ,EAAWpX,EAAO,CAC7E,IAAIib,EAAWlsB,GAAQ5M,CAAM,EACzB+4B,EAAWnsB,GAAQn+C,CAAK,EACxBuqE,EAASF,EAAWxf,GAAWof,GAAO14B,CAAM,EAC5Ci5B,EAASF,EAAWzf,GAAWof,GAAOjqE,CAAK,EAE/CuqE,EAASA,GAAU/kB,GAAUkF,GAAY6f,EACzCC,EAASA,GAAUhlB,GAAUkF,GAAY8f,EAEzC,IAAIC,EAAWF,GAAU7f,GACrBggB,EAAWF,GAAU9f,GACrBigB,EAAYJ,GAAUC,EAE1B,GAAIG,GAAalgB,GAASlZ,CAAM,EAAG,CACjC,GAAI,CAACkZ,GAASzqD,CAAK,EACjB,MAAO,GAETqqE,EAAW,GACXI,EAAW,EACf,CACE,GAAIE,GAAa,CAACF,EAChB,OAAArb,IAAUA,EAAQ,IAAI9H,IACd+iB,GAAY3d,GAAanb,CAAM,EACnC+0B,GAAY/0B,EAAQvxC,EAAOumE,EAASrZ,EAAYsZ,EAAWpX,CAAK,EAChEkY,GAAW/1B,EAAQvxC,EAAOuqE,EAAQhE,EAASrZ,EAAYsZ,EAAWpX,CAAK,EAE7E,GAAI,EAAEmX,EAAUH,IAAuB,CACrC,IAAIwE,EAAeH,GAAYrsE,GAAe,KAAKmzC,EAAQ,aAAa,EACpEs5B,EAAeH,GAAYtsE,GAAe,KAAK4B,EAAO,aAAa,EAEvE,GAAI4qE,GAAgBC,EAAc,CAChC,IAAIC,EAAeF,EAAer5B,EAAO,MAAO,EAAGA,EAC/Cw5B,EAAeF,EAAe7qE,EAAM,MAAO,EAAGA,EAElD,OAAAovD,IAAUA,EAAQ,IAAI9H,IACfkf,EAAUsE,EAAcC,EAAcxE,EAASrZ,EAAYkC,CAAK,CAC7E,CACA,CACE,OAAKub,GAGLvb,IAAUA,EAAQ,IAAI9H,IACfshB,GAAar3B,EAAQvxC,EAAOumE,EAASrZ,EAAYsZ,EAAWpX,CAAK,GAH/D,EAIX,CAEA,IAAA4b,GAAiBZ,GClFbA,GAAkBhtE,GAClBiC,GAAeN,GAgBnB,SAASksE,GAAYnuE,EAAOkD,EAAOumE,EAASrZ,EAAYkC,EAAO,CAC7D,OAAItyD,IAAUkD,EACL,GAELlD,GAAS,MAAQkD,GAAS,MAAS,CAACX,GAAavC,CAAK,GAAK,CAACuC,GAAaW,CAAK,EACzElD,IAAUA,GAASkD,IAAUA,EAE/BoqE,GAAgBttE,EAAOkD,EAAOumE,EAASrZ,EAAY+d,GAAa7b,CAAK,CAC9E,CAEA,IAAA8b,GAAiBD,GC3Bb3jB,GAAQlqD,GACR6tE,GAAclsE,GAGdqnE,GAAuB,EACvBC,GAAyB,EAY7B,SAAS8E,GAAY55B,EAAQ53C,EAAQyxE,EAAWle,EAAY,CAC1D,IAAItvD,EAAQwtE,EAAU,OAClBhmC,EAASxnC,EACTytE,EAAe,CAACne,EAEpB,GAAI3b,GAAU,KACZ,MAAO,CAACnM,EAGV,IADAmM,EAAS,OAAOA,CAAM,EACf3zC,KAAS,CACd,IAAI6O,EAAO2+D,EAAUxtE,CAAK,EAC1B,GAAKytE,GAAgB5+D,EAAK,CAAC,EACnBA,EAAK,CAAC,IAAM8kC,EAAO9kC,EAAK,CAAC,CAAC,EAC1B,EAAEA,EAAK,CAAC,IAAK8kC,GAEnB,MAAO,EAEb,CACE,KAAO,EAAE3zC,EAAQwnC,GAAQ,CACvB34B,EAAO2+D,EAAUxtE,CAAK,EACtB,IAAIlD,EAAM+R,EAAK,CAAC,EACZsgD,EAAWxb,EAAO72C,CAAG,EACrB20D,EAAW5iD,EAAK,CAAC,EAErB,GAAI4+D,GAAgB5+D,EAAK,CAAC,GACxB,GAAIsgD,IAAa,QAAa,EAAEryD,KAAO62C,GACrC,MAAO,OAEJ,CACL,IAAI6d,EAAQ,IAAI9H,GAChB,GAAI4F,EACF,IAAIvuD,EAASuuD,EAAWH,EAAUsC,EAAU30D,EAAK62C,EAAQ53C,EAAQy1D,CAAK,EAExE,GAAI,EAAEzwD,IAAW,OACTssE,GAAY5b,EAAUtC,EAAUqZ,GAAuBC,GAAwBnZ,EAAYkC,CAAK,EAChGzwD,GAEN,MAAO,EAEf,CACA,CACE,MAAO,EACT,CAEA,IAAA2sE,GAAiBH,GC7DbtuE,GAAWO,GAUf,SAASmuE,GAAmBzuE,EAAO,CACjC,OAAOA,IAAUA,GAAS,CAACD,GAASC,CAAK,CAC3C,CAEA,IAAA0uE,GAAiBD,GCdbA,GAAqBnuE,GACrBX,GAAOsC,GASX,SAAS0sE,GAAal6B,EAAQ,CAI5B,QAHI5yC,EAASlC,GAAK80C,CAAM,EACpBnM,EAASzmC,EAAO,OAEbymC,KAAU,CACf,IAAI1qC,EAAMiE,EAAOymC,CAAM,EACnBtoC,EAAQy0C,EAAO72C,CAAG,EAEtBiE,EAAOymC,CAAM,EAAI,CAAC1qC,EAAKoC,EAAOyuE,GAAmBzuE,CAAK,CAAC,CAC3D,CACE,OAAO6B,CACT,CAEA,IAAA+sE,GAAiBD,GCdjB,SAASE,GAAwBjxE,EAAK20D,EAAU,CAC9C,OAAO,SAAS9d,EAAQ,CACtB,OAAIA,GAAU,KACL,GAEFA,EAAO72C,CAAG,IAAM20D,IACpBA,IAAa,QAAc30D,KAAO,OAAO62C,CAAM,EACnD,CACH,CAEA,IAAAq6B,GAAiBD,GCnBbR,GAAc/tE,GACdquE,GAAe1sE,GACf4sE,GAA0B3sE,GAS9B,SAAS6sE,GAAYlyE,EAAQ,CAC3B,IAAIyxE,EAAYK,GAAa9xE,CAAM,EACnC,OAAIyxE,EAAU,QAAU,GAAKA,EAAU,CAAC,EAAE,CAAC,EAClCO,GAAwBP,EAAU,CAAC,EAAE,CAAC,EAAGA,EAAU,CAAC,EAAE,CAAC,CAAC,EAE1D,SAAS75B,EAAQ,CACtB,OAAOA,IAAW53C,GAAUwxE,GAAY55B,EAAQ53C,EAAQyxE,CAAS,CAClE,CACH,CAEA,IAAAU,GAAiBD,GCbjB,SAASE,GAAUx6B,EAAQ72C,EAAK,CAC9B,OAAO62C,GAAU,MAAQ72C,KAAO,OAAO62C,CAAM,CAC/C,CAEA,IAAAy6B,GAAiBD,GCZbA,GAAY3uE,GACZipD,GAAUtnD,GA4Bd,SAASktE,GAAM16B,EAAQ0T,EAAM,CAC3B,OAAO1T,GAAU,MAAQ8U,GAAQ9U,EAAQ0T,EAAM8mB,EAAS,CAC1D,CAEA,IAAAG,GAAiBD,GCjCbhB,GAAc7tE,GACd+nD,GAAMpmD,GACNktE,GAAQjtE,GACRu/C,GAAQiB,GACR+rB,GAAqBxqB,GACrB4qB,GAA0BvlB,GAC1BtB,GAAQ0J,GAGR4X,GAAuB,EACvBC,GAAyB,EAU7B,SAAS8F,GAAoBlnB,EAAMoK,EAAU,CAC3C,OAAI9Q,GAAM0G,CAAI,GAAKsmB,GAAmBlc,CAAQ,EACrCsc,GAAwB7mB,GAAMG,CAAI,EAAGoK,CAAQ,EAE/C,SAAS9d,EAAQ,CACtB,IAAIwb,EAAW5H,GAAI5T,EAAQ0T,CAAI,EAC/B,OAAQ8H,IAAa,QAAaA,IAAasC,EAC3C4c,GAAM16B,EAAQ0T,CAAI,EAClBgmB,GAAY5b,EAAUtC,EAAUqZ,GAAuBC,EAAsB,CAClF,CACH,CAEA,IAAA+F,GAAiBD,GCzBjB,SAASE,GAAa3xE,EAAK,CACzB,OAAO,SAAS62C,EAAQ,CACtB,OAAOA,GAAU,KAAO,OAAYA,EAAO72C,CAAG,CAC/C,CACH,CAEA,IAAA4xE,GAAiBD,GCbbrnB,GAAU5nD,GASd,SAASmvE,GAAiBtnB,EAAM,CAC9B,OAAO,SAAS1T,EAAQ,CACtB,OAAOyT,GAAQzT,EAAQ0T,CAAI,CAC5B,CACH,CAEA,IAAAunB,GAAiBD,GCfbF,GAAejvE,GACfmvE,GAAmBxtE,GACnBw/C,GAAQv/C,GACR8lD,GAAQtF,GAwBZ,SAAShhB,GAASymB,EAAM,CACtB,OAAO1G,GAAM0G,CAAI,EAAIonB,GAAavnB,GAAMG,CAAI,CAAC,EAAIsnB,GAAiBtnB,CAAI,CACxE,CAEA,IAAAwnB,GAAiBjuC,GC/BbqtC,GAAczuE,GACd+uE,GAAsBptE,GACtBme,GAAWle,GACXm/C,GAAUqB,GACVhhB,GAAWuiB,GASf,SAAS2rB,GAAa5vE,EAAO,CAG3B,OAAI,OAAOA,GAAS,WACXA,EAELA,GAAS,KACJogB,GAEL,OAAOpgB,GAAS,SACXqhD,GAAQrhD,CAAK,EAChBqvE,GAAoBrvE,EAAM,CAAC,EAAGA,EAAM,CAAC,CAAC,EACtC+uE,GAAY/uE,CAAK,EAEhB0hC,GAAS1hC,CAAK,CACvB,CAEA,IAAA6vE,GAAiBD,GC9BbxkB,GAAU9qD,GACVX,GAAOsC,GAUX,SAAS6tE,GAAWr7B,EAAQ6S,EAAU,CACpC,OAAO7S,GAAU2W,GAAQ3W,EAAQ6S,EAAU3nD,EAAI,CACjD,CAEA,IAAAowE,GAAiBD,GCfb1iB,GAAc9sD,GAUlB,SAAS0vE,GAAeC,EAAUjlB,EAAW,CAC3C,OAAO,SAASklB,EAAY5oB,EAAU,CACpC,GAAI4oB,GAAc,KAChB,OAAOA,EAET,GAAI,CAAC9iB,GAAY8iB,CAAU,EACzB,OAAOD,EAASC,EAAY5oB,CAAQ,EAMtC,QAJIhf,EAAS4nC,EAAW,OACpBpvE,EAAQkqD,EAAY1iB,EAAS,GAC7B4iB,EAAW,OAAOglB,CAAU,GAExBllB,EAAYlqD,IAAU,EAAEA,EAAQwnC,IAClCgf,EAAS4D,EAASpqD,CAAK,EAAGA,EAAOoqD,CAAQ,IAAM,IAAnD,CAIF,OAAOglB,CACR,CACH,CAEA,IAAAC,GAAiBH,GC/BbF,GAAaxvE,GACb0vE,GAAiB/tE,GAUjBmuE,GAAWJ,GAAeF,EAAU,EAExCO,GAAiBD,GCbbA,GAAW9vE,GACX8sD,GAAcnrD,GAUlB,SAASquE,GAAQJ,EAAY5oB,EAAU,CACrC,IAAIxmD,EAAQ,GACRe,EAASurD,GAAY8iB,CAAU,EAAI,MAAMA,EAAW,MAAM,EAAI,CAAE,EAEpE,OAAAE,GAASF,EAAY,SAASlwE,EAAOpC,EAAKsyE,EAAY,CACpDruE,EAAO,EAAEf,CAAK,EAAIwmD,EAAStnD,EAAOpC,EAAKsyE,CAAU,CACrD,CAAG,EACMruE,CACT,CAEA,IAAA0uE,GAAiBD,GCXjB,SAASE,GAAWl6B,EAAOm6B,EAAU,CACnC,IAAInoC,EAASgO,EAAM,OAGnB,IADAA,EAAM,KAAKm6B,CAAQ,EACZnoC,KACLgO,EAAMhO,CAAM,EAAIgO,EAAMhO,CAAM,EAAE,MAEhC,OAAOgO,CACT,CAEA,IAAAo6B,GAAiBF,GCpBb9tE,GAAWpC,GAUf,SAASqwE,GAAiB3wE,EAAOkD,EAAO,CACtC,GAAIlD,IAAUkD,EAAO,CACnB,IAAI0tE,EAAe5wE,IAAU,OACzB6wE,EAAY7wE,IAAU,KACtB8wE,EAAiB9wE,IAAUA,EAC3B+wE,EAAcruE,GAAS1C,CAAK,EAE5BgxE,EAAe9tE,IAAU,OACzB+tE,EAAY/tE,IAAU,KACtBguE,EAAiBhuE,IAAUA,EAC3BiuE,EAAczuE,GAASQ,CAAK,EAEhC,GAAK,CAAC+tE,GAAa,CAACE,GAAe,CAACJ,GAAe/wE,EAAQkD,GACtD6tE,GAAeC,GAAgBE,GAAkB,CAACD,GAAa,CAACE,GAChEN,GAAaG,GAAgBE,GAC7B,CAACN,GAAgBM,GAClB,CAACJ,EACH,MAAO,GAET,GAAK,CAACD,GAAa,CAACE,GAAe,CAACI,GAAenxE,EAAQkD,GACtDiuE,GAAeP,GAAgBE,GAAkB,CAACD,GAAa,CAACE,GAChEE,GAAaL,GAAgBE,GAC7B,CAACE,GAAgBF,GAClB,CAACI,EACH,MAAO,EAEb,CACE,MAAO,EACT,CAEA,IAAAE,GAAiBT,GCxCbA,GAAmBrwE,GAgBvB,SAAS+wE,GAAgB58B,EAAQvxC,EAAOouE,EAAQ,CAO9C,QANIxwE,EAAQ,GACRywE,EAAc98B,EAAO,SACrB+8B,EAActuE,EAAM,SACpBolC,EAASipC,EAAY,OACrBE,EAAeH,EAAO,OAEnB,EAAExwE,EAAQwnC,GAAQ,CACvB,IAAIzmC,EAAS8uE,GAAiBY,EAAYzwE,CAAK,EAAG0wE,EAAY1wE,CAAK,CAAC,EACpE,GAAIe,EAAQ,CACV,GAAIf,GAAS2wE,EACX,OAAO5vE,EAET,IAAI6vE,EAAQJ,EAAOxwE,CAAK,EACxB,OAAOe,GAAU6vE,GAAS,OAAS,GAAK,EAC9C,CACA,CAQE,OAAOj9B,EAAO,MAAQvxC,EAAM,KAC9B,CAEA,IAAAyuE,GAAiBN,GC3CbhqB,GAAW/mD,GACX4nD,GAAUjmD,GACV2tE,GAAe1tE,GACfouE,GAAU5tB,GACV8tB,GAAavsB,GACbsL,GAAYjG,GACZ+nB,GAAkB3f,GAClBtxC,GAAWuxC,GACXtQ,GAAUuQ,GAWd,SAASggB,GAAY1B,EAAY2B,EAAWP,EAAQ,CAC9CO,EAAU,OACZA,EAAYxqB,GAASwqB,EAAW,SAASvqB,EAAU,CACjD,OAAIjG,GAAQiG,CAAQ,EACX,SAAStnD,EAAO,CACrB,OAAOkoD,GAAQloD,EAAOsnD,EAAS,SAAW,EAAIA,EAAS,CAAC,EAAIA,CAAQ,CAC9E,EAEaA,CACb,CAAK,EAEDuqB,EAAY,CAACzxD,EAAQ,EAGvB,IAAItf,EAAQ,GACZ+wE,EAAYxqB,GAASwqB,EAAWtiB,GAAUqgB,EAAY,CAAC,EAEvD,IAAI/tE,EAASyuE,GAAQJ,EAAY,SAASlwE,EAAOpC,EAAKsyE,EAAY,CAChE,IAAI4B,EAAWzqB,GAASwqB,EAAW,SAASvqB,EAAU,CACpD,OAAOA,EAAStnD,CAAK,CAC3B,CAAK,EACD,MAAO,CAAE,SAAY8xE,EAAU,MAAS,EAAEhxE,EAAO,MAASd,CAAO,CACrE,CAAG,EAED,OAAOwwE,GAAW3uE,EAAQ,SAAS4yC,EAAQvxC,EAAO,CAChD,OAAOmuE,GAAgB58B,EAAQvxC,EAAOouE,CAAM,CAChD,CAAG,CACH,CAEA,IAAAS,GAAiBH,GChDb5I,GAAc1oE,GACdsxE,GAAc3vE,GACd+xD,GAAW9xD,GACXgyD,GAAiBxR,GA+BjBsvB,GAAShe,GAAS,SAASkc,EAAY2B,EAAW,CACpD,GAAI3B,GAAc,KAChB,MAAO,CAAE,EAEX,IAAI5nC,EAASupC,EAAU,OACvB,OAAIvpC,EAAS,GAAK4rB,GAAegc,EAAY2B,EAAU,CAAC,EAAGA,EAAU,CAAC,CAAC,EACrEA,EAAY,CAAE,EACLvpC,EAAS,GAAK4rB,GAAe2d,EAAU,CAAC,EAAGA,EAAU,CAAC,EAAGA,EAAU,CAAC,CAAC,IAC9EA,EAAY,CAACA,EAAU,CAAC,CAAC,GAEpBD,GAAY1B,EAAYlH,GAAY6I,EAAW,CAAC,EAAG,EAAE,CAC9D,CAAC,EAEDI,GAAiBD,mBCtCjB,SAASE,GAAc54D,EAAOd,EAAQ25D,EAAY,CAMhD,QALIrxE,EAAQ,GACRwnC,EAAShvB,EAAM,OACf84D,EAAa55D,EAAO,OACpB3W,EAAS,CAAE,EAER,EAAEf,EAAQwnC,GAAQ,CACvB,IAAItoC,EAAQc,EAAQsxE,EAAa55D,EAAO1X,CAAK,EAAI,OACjDqxE,EAAWtwE,EAAQyX,EAAMxY,CAAK,EAAGd,CAAK,CAC1C,CACE,OAAO6B,CACT,CAEA,IAAAwwE,GAAiBH,GCtBbliB,GAAc1vD,GACd4xE,GAAgBjwE,GAkBpB,SAASqwE,GAAUh5D,EAAOd,EAAQ,CAChC,OAAO05D,GAAc54D,GAAS,CAAA,EAAId,GAAU,CAAA,EAAIw3C,EAAW,CAC7D,CAEA,IAAAuiB,GAAiBD,mBChBXE,GAAgB,CAClB,EAAK,OACL,EAAK,MACL,EAAK,UACL,EAAK,WACL,EAAK,UACL,EAAK,UACL,GAAM,WACN,GAAM,cACN,KAAM,OACN,KAAM,QACN,KAAM,OACN,KAAM,QACN,KAAM,OACN,MAAO,OACP,MAAO,OACX,EACMC,GAAyBH,GAAU,OAAO,OAAOE,EAAa,EAAG,OAAO,KAAKA,EAAa,EAAE,IAAK50E,GAAQ,SAASA,EAAK,EAAE,CAAC,CAAC,EAC1H,SAAS80E,GAAcj5D,EAAM/Q,EAAOpL,EAAS,CAChD,MAAMq1E,EAAe,CACjB,UAAWr1E,EAAQ,UACnB,UAAWA,EAAQ,UACnB,YAAaA,EAAQ,WACxB,EACD,IAAIuL,EACJ,GAAIu/D,GAAU9qE,EAAQ,KAAK,IAAM,SAAU,CACvC,MAAM+gE,EAAQ/gE,EAAQ,MAEtB,GADAuL,EAAQ0/D,GAAO9uD,EAAM4kD,CAAK,EACtB,CAACx1D,EACD,MAAM,IAAI,MAAM,cAAc4Q,EAAK,MAAM,GAAGA,EAAK,gBAAgB,GAAG0uD,GAAa1uD,EAAM4kD,EAAO,CAAA,CAAE,CAAC,qBAAqB,CAElI,MAEQx1D,EAAQvL,EAAQ,MAEpB,IAAIgqE,EAAkBH,GAAY,IAAI/H,GAAU12D,CAAK,EAAGiqE,CAAY,EACpE,MAAMC,EAAiB/pE,GAAUmpE,GAAO,OAAO,KAAKnpE,CAAK,EAAE,IAAKjC,GAAS6rE,GAAuB7rE,CAAI,CAAC,EAAImgE,GAAYA,EAAU,EAAE,EAC3H8L,EAAoB,CAACjqE,EAAKC,IAAU,CACtC,MAAMC,EAAWF,EAAI,OAAM,EACrB,EACA,KAAK,MAAM,KAAK,MAAMA,EAAI,IAAK,EAAC,SAAQ,CAAE,CAAC,EACjD,OAAOgqE,EAAc/pE,CAAK,EAAE,KAAM68D,GAAQ58D,GAAY48D,CAAG,GAAK,CACjE,EACKoN,EAAgB,CAACjqE,EAAOC,IAAa,CACvC,MAAMiqE,EAAUP,GAAc1pE,EAAS,SAAQ,CAAE,EACjD,OAAOD,EAAMkqE,CAAO,GAAK,EAC5B,EACKjqE,EAAW+pE,EAAkB,IAAIzT,GAAUkI,CAAe,EAAGz+D,CAAK,EAClEE,EAAO+pE,EAAcjqE,EAAOC,CAAQ,EAE1C,GADAw+D,EAAkBH,GAAY,IAAI/H,GAAUkI,CAAe,EAAE,IAAI,KAAK,IAAI,GAAIx+D,CAAQ,CAAC,EAAG6pE,CAAY,EAClGr1E,EAAQ,wBAAyB,CACjC,GAAI,CAACmqE,EAAOD,CAAW,EAAIF,EAAgB,MAAM,GAAG,EACpDE,GAAeA,GAAe,IAAI,QAAQ,MAAO,EAAE,EACnDF,EAAkBG,EACdD,IACAF,GAAmB,GAAGhqE,EAAQ,SAAS,GAAGkqE,CAAW,GAEjE,CACI,OAAOlqE,EAAQ,OACV,QAAQ,KAAMgqE,GAAmB,GAAG,EACpC,QAAQ,KAAMv+D,CAAI,EAClB,KAAM,CACf,CClEA,MAAMiqE,GAAgB,CAAC,OAAQ,KAAM,KAAM,KAAM,KAAM,KAAM,IAAI,EAC1D,SAASC,GAAkBx5D,EAAM/Q,EAAOpL,EAAS,CACpD,MAAM4oE,EAAYD,GAAgB3oE,EAAQ,SAAS,EAC7CmkE,EAAO,KACP74D,EAAM,IAAIw2D,GAAU12D,CAAK,EAAE,IAAK,EAChCwqE,EAAkBtqE,EAAI,GAAG64D,CAAI,EACnC,IAAI0R,EACJ,MAAMC,EAAkB,CAACrM,EAASl+D,IAAU,CACxC,MAAMi9D,EAAMj9D,EAAM,OAAS,EACrB68D,EAAM,IAAItG,GAAU,KAAK,IAAI2H,EAAQ,UAAU,CAAC,EACjD,IAAI,KAAK,IAAItF,CAAI,CAAC,EAClB,aAAarC,GAAU,UAAU,EACjC,SAAU,EACf,OAAO,KAAK,IAAI0G,EAAKJ,CAAG,CAC3B,EACK2N,EAAkBxqE,GAEb,oCADQqqE,EAAkB,OAASrqE,EAAMC,CAAQ,CACP,GAE/CA,EAAWsqE,EAAgBxqE,EAAKoqE,EAAa,EAC/CE,EACAC,EAAsBvqE,EAAI,aAAc,EAGxCuqE,EAAsB,IAAI/T,GAAU+H,GAAYv+D,EAAI,IAAI,KAAK,IAAI64D,EAAM34D,CAAQ,CAAC,EAAG,CAC/E,YAAaxL,EAAQ,YACrB,UAAWA,EAAQ,UACnB,UAAWA,EAAQ,SAC/B,CAAS,CAAC,EAEN,MAAM4lE,EAASzpD,EAAK,UAAU,oCAAqC,CAC/D,aAAc,OACtB,CAAK,EACK1Q,EAAO0Q,EAAK,UAAU45D,EAAeL,EAAa,EAAG,CACvD,MAAOpqE,EAAI,aAAc,EAAC,SAAU,CAC5C,CAAK,EACD,IAAI0+D,EAAkB6L,EAAoB,QAAQ71E,EAAQ,UAAW4oE,CAAS,EAC9E,OAAI5oE,EAAQ,0BACRgqE,EAAkBA,EACb,QAAQ,aAAc,IAAI,EAC1B,QAAQ,MAAO,EAAE,GAEnBpE,EAAO,QAAQ,KAAMoE,CAAe,EAAE,QAAQ,KAAMv+D,CAAI,CACnE,CC9CO,SAASuqE,GAAU5qE,EAAO,CAC7B,GAAIA,aAAiB,KACjB,OAAOA,EAEX,GAAI,OAAOA,GAAU,SAAU,CAC3B,MAAMb,EAAO,IAAI,KACjB,OAAAA,EAAK,QAAQa,CAAK,EACXb,CACf,CACI,MAAMsB,EAAU,IAAI,OAAOT,CAAK,EAAE,MAAM,wFAAwF,EAChI,GAAIS,EAAS,CACT,MAAMC,EAAQD,EAAQ,MAAM,EAAG,CAAC,EAAE,IAAK8B,GAAU,SAASA,EAAO,EAAE,GAAK,CAAC,EACzE7B,EAAM,CAAC,GAAK,EACZ,KAAM,CAACmqE,EAAMC,EAAOC,EAAKC,EAAMC,EAAQ3rD,EAAQ4rD,CAAY,EAAIxqE,EAE/D,OADiBD,EAAQ,CAAC,EAEf,IAAI,KAAK,KAAK,IAAIoqE,EAAMC,EAAOC,EAAKC,EAAMC,EAAQ3rD,EAAQ4rD,CAAY,CAAC,EAGvE,IAAI,KAAKL,EAAMC,EAAOC,EAAKC,EAAMC,EAAQ3rD,EAAQ4rD,CAAY,CAEhF,CACQlrE,EAAM,MAAM,qEAAqE,GACpE,IAAI,KAAM,EAClB,QAAQ,KAAK,MAAM,CAAC,OAAO,GAAI,OAAO,GAAI,OAAO,GAAI,OAAO,GAAI,OAAO,GAAI,OAAO,EAAE,EAAE,KAAK,GAAG,CAAC,CAAC,EAEzG,MAAMb,EAAO,IAAI,KACjB,OAAAA,EAAK,QAAQ,KAAK,MAAMa,CAAK,CAAC,EACvBb,CACX,CC3BO,SAASgsE,GAAU,CAAE,KAAAp6D,EAAM,MAAAurB,EAAO,MAAAq5B,EAAO,QAAA/gE,EAAS,UAAAw2E,GAAc,CACnEx2E,EAAU,OAAO,OAAO,CAAA,EAAIA,CAAO,EACnC,IAAIy2E,EACA/pE,EAOJ,GANI,OAAOq0D,GAAU,UAAYA,EAC7B0V,EAAe1V,EAGf0V,EAAexL,GAAO9uD,EAAM4kD,EAAO/gE,CAAO,EAE1C,CAACy2E,EACD,OAAOt6D,EAAK,mBAAmB,IAAI4kD,EAAO/gE,CAAO,EAGrD,MAAMqC,EADa8Z,EAAK,cAAc,IAAInc,EAAQ,MAAM,EAChCmc,EAAMurB,CAAK,EAC7BgvC,EAAc,CAAE,EACtB,KAAOr0E,EAAK,QAAQ,CAChB,MAAM/B,EAAM+B,EAAK,MAAO,EACxB,GAAIw+D,GAAM4V,EAAan2E,CAAG,CAAC,EAAG,CAC1BoM,EAAU+pE,EAAan2E,CAAG,EAC1B,KACZ,CACQo2E,EAAY,KAAKp2E,CAAG,CAC5B,CACI,OAAKugE,GAAMn0D,CAAO,GAGlB1M,EAAQ,MAAQ0nC,EACTvrB,EAAK,YAAYA,EAAMzP,EAAS1M,CAAO,GAHnCmc,EAAK,mBAAmB,IAAIq6D,EAAU,MAAMr6D,EAAK,gBAAgB,EAAE,OAAO,CAACu6D,EAAY,CAAC,CAAC,CAAC,EAAG12E,CAAO,CAInH,CC/BA,MAAM22E,GAAkB,CACpB,SAAU,CAAE,GAAI,KAAM,GAAI,IAAM,EAChC,SAAU,CACN,SACA,SACA,UACA,YACA,WACA,SACA,UACH,EACD,aAAc,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAK,EAC9D,WAAY,CACR,KACA,UACA,WACA,QACA,QACA,MACA,OACA,OACA,SACA,YACA,UACA,WACA,UACH,EACD,eAAgB,CACZ,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACH,CACL,EACO,SAASC,GAASrsE,EAAMq7D,EAAQ5lE,EAAU,CAAA,EAAI,CACjD,KAAM,CAAE,aAAA62E,EAAc,SAAAC,EAAU,eAAAC,EAAgB,WAAAC,EAAY,SAAUC,EAAO,IAAAC,CAAM,EAAG,OAAO,OAAO,OAAO,OAAO,CAAA,EAAIP,EAAe,EAAG32E,CAAO,EAC/I,GAAI,MAAMuK,EAAK,QAAO,CAAE,EACpB,MAAM,IAAI,MAAM,wEAAwE,EAE5F,MAAM4sE,EAAUD,EAAM3sE,EAAK,UAAW,EAAGA,EAAK,OAAQ,EAChD4rE,EAAMe,EAAM3sE,EAAK,WAAY,EAAGA,EAAK,QAAS,EAC9C0rE,EAAOiB,EAAM3sE,EAAK,eAAgB,EAAGA,EAAK,YAAa,EACvD2rE,GAASgB,EAAM3sE,EAAK,YAAW,EAAKA,EAAK,SAAQ,GAAM,EACvD6rE,EAAOc,EAAM3sE,EAAK,YAAa,EAAGA,EAAK,SAAU,EACvD,IAAI6sE,EAAShB,EACb,MAAMiB,EAAWjB,EAAO,GAAK,KAAO,KAC9BkB,EAAOJ,EAAM3sE,EAAK,cAAe,EAAGA,EAAK,WAAY,EACrDgtE,EAAOL,EAAM3sE,EAAK,cAAe,EAAGA,EAAK,WAAY,EACrDwf,EAASmtD,EAAM,EAAI3sE,EAAK,kBAAmB,EAC3CitE,EAAiB,KAAK,MAAM,KAAK,IAAIztD,EAAS,EAAE,CAAC,EACjD0tD,EAAmB,KAAK,IAAI1tD,CAAM,EAAIytD,EAAiB,GACvDE,GAAkB3tD,EAAS,EAAI,IAAM,MACtCytD,EAAe,SAAU,EAAC,OAAS,EAC9B,IAAMA,EACNA,IACLC,EAAiB,SAAU,EAAC,OAAS,EAChC,IAAMA,EACNA,GACV,OAAIL,EAAS,GACTA,EAASA,EAAS,GAEbA,IAAW,IAChBA,EAAS,IAEbxR,EAASA,EAAO,QAAQ,KAAMiR,EAAaM,CAAO,CAAC,EACnDvR,EAASA,EAAO,QAAQ,KAAMkR,EAASK,CAAO,CAAC,EAC/CvR,EAASA,EAAO,QAAQ,KAAMmR,EAAeb,CAAK,CAAC,EACnDtQ,EAASA,EAAO,QAAQ,KAAMoR,EAAWd,CAAK,CAAC,EAC/CtQ,EAASA,EAAO,QAAQ,KAAMuQ,EAAI,SAAQ,EAAG,SAAS,EAAG,GAAG,CAAC,EAC7DvQ,EAASA,EAAO,QAAQ,KAAMuQ,EAAI,SAAQ,CAAE,EAC5CvQ,EAASA,EAAO,QAAQ,MAAOuQ,EAAI,SAAQ,CAAE,EAC7CvQ,EAASA,EAAO,QAAQ,KAAMwQ,EAAK,SAAQ,EAAG,SAAS,EAAG,GAAG,CAAC,EAC9DxQ,EAASA,EAAO,QAAQ,MAAOwQ,EAAK,SAAQ,CAAE,EAC9CxQ,EAASA,EAAO,QAAQ,KAAMwQ,EAAK,SAAQ,CAAE,EAC7CxQ,EAASA,EAAO,QAAQ,KAAMwR,EAAO,SAAQ,EAAG,SAAS,EAAG,GAAG,CAAC,EAChExR,EAASA,EAAO,QAAQ,MAAOwR,EAAO,SAAQ,CAAE,EAChDxR,EAASA,EAAO,QAAQ,KAAMwR,EAAO,SAAQ,CAAE,EAC/CxR,EAASA,EAAO,QAAQ,KAAMsQ,EAAM,SAAQ,EAAG,SAAS,EAAG,GAAG,CAAC,EAC/DtQ,EAASA,EAAO,QAAQ,MAAOsQ,EAAM,SAAQ,CAAE,EAC/CtQ,EAASA,EAAO,QAAQ,KAAM2R,EAAK,SAAQ,EAAG,SAAS,EAAG,GAAG,CAAC,EAC9D3R,EAASA,EAAO,QAAQ,MAAO2R,EAAK,SAAQ,CAAE,EAC9C3R,EAASA,EAAO,QAAQ,KAAMqR,EAAMI,CAAQ,CAAC,EAC7CzR,EAASA,EAAO,QAAQ,KAAMqR,EAAMI,CAAQ,EAAE,aAAa,EAC3DzR,EAASA,EAAO,QAAQ,KAAM0R,EAAK,SAAQ,EAAG,SAAS,EAAG,GAAG,CAAC,EAC9D1R,EAASA,EAAO,QAAQ,MAAO0R,EAAK,SAAQ,CAAE,EAC9C1R,EAASA,EAAO,QAAQ,KAAMuR,EAAQ,SAAQ,CAAE,EAChDvR,EAASA,EAAO,QAAQ,KAAMqQ,EAAK,SAAQ,EAAG,SAAS,EAAG,GAAG,EAAE,OAAO,EAAE,CAAC,EACzErQ,EAASA,EAAO,QAAQ,MAAOqQ,EAAK,SAAQ,EAAG,SAAS,EAAG,GAAG,EAAE,OAAO,EAAE,EAAE,QAAQ,MAAO,EAAE,CAAC,EAC7FrQ,EAASA,EAAO,QAAQ,KAAMqQ,EAAK,SAAQ,CAAE,EAC7CrQ,EAASA,EAAO,QAAQ,MAAO8R,CAAc,EACtC9R,CACX,CCnGA,IAAI+R,GAAa,KAAK,KAClB3xE,GAAY,KAAK,IAarB,SAAS4xE,GAAU5tD,EAAOE,EAAKvR,EAAM+0C,EAAW,CAK9C,QAJIlqD,EAAQ,GACRwnC,EAAShlC,GAAU2xE,IAAYztD,EAAMF,IAAUrR,GAAQ,EAAE,EAAG,CAAC,EAC7DpU,EAAS,MAAMymC,CAAM,EAElBA,KACLzmC,EAAOmpD,EAAY1iB,EAAS,EAAExnC,CAAK,EAAIwmB,EACvCA,GAASrR,EAEX,OAAOpU,CACT,CAEA,IAAAszE,GAAiBD,GC3BbA,GAAY50E,GACZ4zD,GAAiBjyD,GACjBskE,GAAWrkE,GASf,SAASkzE,GAAYpqB,EAAW,CAC9B,OAAO,SAAS1jC,EAAOE,EAAKvR,EAAM,CAChC,OAAIA,GAAQ,OAAOA,GAAQ,UAAYi+C,GAAe5sC,EAAOE,EAAKvR,CAAI,IACpEuR,EAAMvR,EAAO,QAGfqR,EAAQi/C,GAASj/C,CAAK,EAClBE,IAAQ,QACVA,EAAMF,EACNA,EAAQ,GAERE,EAAM++C,GAAS/+C,CAAG,EAEpBvR,EAAOA,IAAS,OAAaqR,EAAQE,EAAM,EAAI,GAAM++C,GAAStwD,CAAI,EAC3Di/D,GAAU5tD,EAAOE,EAAKvR,EAAM+0C,CAAS,CAC7C,CACH,CAEA,IAAAqqB,GAAiBD,GC7BbA,GAAc90E,GA2CdysC,GAAQqoC,GAAa,EAEzBE,GAAiBvoC,mBC3CXwoC,GAAS,CAACjuD,EAAOE,EAAKguD,IAAWA,GAAUluD,GAASkuD,GAAUhuD,EAC7D,SAASiuD,GAAeh8D,EAAMi8D,EAAUC,EAAQr4E,EAAU,CAAA,EAAI,CACjE,MAAM+gE,EAAQ/gE,EAAQ,OAAS,6BACzBtV,EAAI,CAAC4e,EAAMo+B,EAAQ,IAAMvrB,EAAK,EAAE7S,EAAM,CAAE,MAAAo+B,EAAO,MAAAq5B,CAAK,CAAE,EAC5DqX,EAAWpC,GAAUoC,CAAQ,EAC7BC,EAASrC,GAAUqC,CAAM,EACzB,IAAIC,EAAgBF,EAAS,QAAO,EAAK,IACrCG,EAAcF,EAAO,QAAO,EAAK,IACjCC,EAAgBC,IAChB,CAACH,EAAUC,EAAQC,EAAeC,CAAW,EAAI,CAC7CF,EACAD,EACAG,EACAD,CACH,GAEL,MAAME,EAAoB,KAAK,MAAMD,EAAcD,CAAa,EAC1DG,EAAoB,KAAK,OAAOF,EAAcD,GAAiB,EAAE,EAEjEI,EADkBD,EAAoB,GACH,GACnCE,EAAyB,KAAK,MAAMF,EAAoB,EAAE,EAC1DG,EAAwB,KAAK,MAAMF,CAAc,EACjDG,EAA0B,KAAK,MAAMD,EAAwB,EAAE,EACrE,GAAIX,GAAO,EAAG,EAAGQ,CAAiB,EAC9B,OAAKz4E,EAAQ,eAKTi4E,GAAO,EAAG,EAAGO,CAAiB,EACvB9tF,EAAE,sBAAuB,CAAC,EAEjCutF,GAAO,EAAG,EAAGO,CAAiB,EACvB9tF,EAAE,sBAAuB,EAAE,EAElCutF,GAAO,GAAI,GAAIO,CAAiB,EACzB9tF,EAAE,sBAAuB,EAAE,EAElCutF,GAAO,GAAI,GAAIO,CAAiB,EACzB9tF,EAAE,eAAe,EAExButF,GAAO,GAAI,GAAIO,CAAiB,EACzB9tF,EAAE,sBAAuB,CAAC,EAE9BA,EAAE,YAAa,CAAC,EAnBZ+tF,IAAsB,EACvB/tF,EAAE,sBAAuB,CAAC,EAC1BA,EAAE,YAAa+tF,CAAiB,EAmB9C,GAAIR,GAAO,EAAG,GAAIQ,CAAiB,EAC/B,OAAO/tF,EAAE,YAAa+tF,CAAiB,EAE3C,GAAIR,GAAO,GAAI,GAAIQ,CAAiB,EAChC,OAAO/tF,EAAE,gBAAiB,CAAC,EAE/B,GAAIutF,GAAO,GAAI,KAAMQ,CAAiB,EAClC,OAAO/tF,EAAE,gBAAiBiuF,CAAsB,EAEpD,GAAIV,GAAO,KAAM,KAAMQ,CAAiB,EACpC,OAAO/tF,EAAE,SAAU,CAAC,EAExB,GAAIutF,GAAO,KAAM,MAAOQ,CAAiB,EACrC,OAAO/tF,EAAE,SAAUkuF,CAAqB,EAE5C,GAAIX,GAAO,MAAO,MAAOQ,CAAiB,EACtC,OAAO/tF,EAAE,iBAAkB,KAAK,MAAM+tF,EAAoB,KAAK,CAAC,EAEpE,GAAIR,GAAO,MAAO,OAAQQ,CAAiB,EACvC,OAAO/tF,EAAE,WAAYmuF,CAAuB,EAEhD,IAAIC,EAAWV,EAAS,YAAa,EACjCA,EAAS,WAAa,GAAK,IAC3BU,GAAY,GAEhB,IAAIC,EAASV,EAAO,YAAa,EAC7BA,EAAO,WAAa,EAAI,IACxBU,GAAU,GAEd,MAAMC,EAAYF,EAAWC,EACvB,EACAtpC,GAAMqpC,EAAUC,CAAM,EAAE,OAAQ9C,GAAS,IAAI,KAAKA,EAAM,EAAG,EAAE,EAAE,SAAQ,GAAM,CAAC,EAAE,OAChFgD,EAAgB,OAChBC,EAA0BF,EAAY,KACtCG,EAAoBV,EAAoBS,EACxCE,EAAkB,KAAK,MAAMD,EAAoBF,CAAa,EAC9DI,EAAO,YAAYF,EAAoBF,EAAgBG,GAAiB,YAAY,CAAC,CAAC,EAC5F,OAAIC,EAAO,IACA3uF,EAAE,gBAAiB0uF,CAAe,EAEzCC,EAAO,IACA3uF,EAAE,eAAgB0uF,CAAe,EAErC1uF,EAAE,iBAAkB0uF,EAAkB,CAAC,CAClD,CC3FO,MAAME,GAAgB,SAAUn9D,EAAM4kD,EAAO,CAC5CA,aAAiB,QACjBA,EAAQA,EAAM,KAAK5kD,EAAK,gBAAgB,GAE5C,MAAMzP,EAAUq0D,EAAM,MAAM5kD,EAAK,gBAAgB,EAAE,MAAM,EAAE,EAAE,CAAC,EAC9D,OAAQA,EAAK,yBACTzP,EACK,QAAQ,IAAK,GAAG,EAChB,QAAQ,kBAAmB,CAAC6sE,EAAQlT,EAAIC,IAAO,GAAGD,CAAE,IAAIC,EAAG,YAAW,CAAE,EAAE,CACvF,EACakT,GAAkB,CAACr9D,EAAM4kD,EAAO/gE,IAAY,CACrD,MAAMy5E,EAAY5O,GAAa1uD,EAAM4kD,EAAO/gE,CAAO,EAC7CgB,EAAS,WAAYhB,EAAUA,EAAQ,OAASmc,EAAK,OACrD+uD,EAAaJ,GAAU9pE,CAAM,EAKnC,MAAO,aAJqB,CACxBkqE,GAAc,SAAWlqE,EAASkqE,EAClCuO,CACR,EAAM,KAAKt9D,EAAK,gBAAgB,CACW,gBAC3C,EACau9D,GAAgB,CAACv9D,EAAM4kD,EAAO/gE,IAAY,CACnD,MAAMy5E,EAAY5O,GAAa1uD,EAAM4kD,EAAO/gE,CAAO,EAC7C25E,EAAsB,CAACx9D,EAAK,OAAQs9D,CAAS,EAAE,KAAKt9D,EAAK,gBAAgB,EAC/E,MAAM,IAAI,MAAM,wBAAwBw9D,CAAmB,EAAE,CACjE,EACO,MAAMC,EAAmB,CAC5B,YAAYz9D,EAAM,CACd,KAAK,KAAOA,EACZ,KAAK,SAAW,CAAE,EAClB,KAAK,SAAS,QAASm9D,EAAa,EACpC,KAAK,SAAS,UAAWE,EAAe,EACxC,KAAK,SAAS,QAASE,EAAa,CAC5C,CACI,SAASpwE,EAAMuwE,EAAU,CACrB,KAAK,SAASvwE,CAAI,EAAIuwE,CAC9B,CACI,IAAI9Y,EAAO/gE,EAAS,CAChB,IAAI0jD,EACJ,OAAO,KAAK,UAAUA,EAAK1jD,EAAQ,mBAAqB,MAAQ0jD,IAAO,OAASA,EAAK,KAAK,KAAK,eAAe,EAAE,KAAK,KAAMqd,EAAO/gE,CAAO,CACjJ,CACA,CCzCA,IAAI85E,GAAwC,SAAU9yE,EAAS+yE,EAAYjtF,EAAGktF,EAAW,CACrF,SAASC,EAAMv3E,EAAO,CAAE,OAAOA,aAAiB5V,EAAI4V,EAAQ,IAAI5V,EAAE,SAAU44B,EAAS,CAAEA,EAAQhjB,CAAK,CAAI,CAAA,CAAE,CAC1G,OAAO,IAAK5V,IAAMA,EAAI,UAAU,SAAU44B,EAASiB,EAAQ,CACvD,SAASuzD,EAAUx3E,EAAO,CAAE,GAAI,CAAEiW,EAAKqhE,EAAU,KAAKt3E,CAAK,CAAC,CAAI,OAAQ/X,EAAG,CAAEg8B,EAAOh8B,CAAC,CAAI,CAAA,CACzF,SAASwvF,EAASz3E,EAAO,CAAE,GAAI,CAAEiW,EAAKqhE,EAAU,MAASt3E,CAAK,CAAC,CAAI,OAAQ/X,EAAG,CAAEg8B,EAAOh8B,CAAC,CAAI,CAAA,CAC5F,SAASguB,EAAKpU,EAAQ,CAAEA,EAAO,KAAOmhB,EAAQnhB,EAAO,KAAK,EAAI01E,EAAM11E,EAAO,KAAK,EAAE,KAAK21E,EAAWC,CAAQ,CAAE,CAC5GxhE,GAAMqhE,EAAYA,EAAU,MAAMhzE,EAAS+yE,GAAc,CAAA,CAAE,GAAG,MAAM,CAC5E,CAAK,CACL,EAQA,MAAMK,GAAuB,CACzB,cAAe,KACf,OAAQ,KACR,iBAAkB,IAClB,YAAa,+BACb,eAAgB,GAChB,gBAAiB,UACjB,yBAA0B,GAC1B,mBAAoB,CAACvf,EAAOkQ,IAAgB,aAAaA,CAAW,WACpE,gBAAiB,CAAC5uD,EAAM4uD,EAAar+D,EAAS1M,IAAYmc,EAAK,mBAAmBA,EAAM4uD,EAAar+D,EAAS1M,CAAO,EACrH,aAAeM,GAAQA,CAC3B,EACO,IAAA+5E,GAAA,KAAW,CACd,YAAY5D,EAAe,GAAIz2E,EAAU,CAAA,EAAI,CACzC,KAAK,QAAUo6E,GAAqB,OACpC,KAAK,eAAiBA,GAAqB,cAC3C,KAAK,SAAW,EAChB,KAAK,iBAAmB,CAAE,EAC1B,KAAK,aAAe,CAAE,EACtB,KAAK,EAAI,KAAK,UACd,KAAK,EAAI,KAAK,UACd,KAAK,EAAI,KAAK,SACd,KAAK,sBAAwB,KAAK,eAClC,KAAM,CAAE,OAAAp5E,EAAQ,eAAAs5E,EAAgB,gBAAAC,EAAiB,yBAAAC,EAA0B,mBAAAC,EAAoB,gBAAAC,EAAiB,cAAAC,EAAe,iBAAAC,EAAkB,YAAA7P,EAAa,aAAA8P,CAAe,EAAG,OAAO,OAAO,OAAO,OAAO,CAAE,EAAET,EAAoB,EAAGp6E,CAAO,EAC9O,KAAK,OAASgB,EACd,KAAK,cAAgB25E,EACrB,KAAK,iBAAmBC,EACxB,KAAK,eAAiBN,EACtB,KAAK,OAASt5E,EACd,KAAK,gBAAkBu5E,EACvB,KAAK,yBAA2BC,EAChC,KAAK,mBAAqBC,EAC1B,KAAK,gBAAkBC,EACvB,KAAK,YAAc3P,EACnB,KAAK,cAAgB,IAAIhQ,GAAc,IAAI,EAC3C,KAAK,QAAU,IAAIb,GAAQ,IAAI,EAC/B,KAAK,mBAAqB,IAAI0f,GAAmB,IAAI,EACrD,KAAK,aAAeiB,EACpB,KAAK,YAAc/6E,GACnB,KAAK,MAAM22E,CAAY,CAC/B,CACI,MAAMA,EAAc,CAChBtf,GAAM,KAAK,aAAcsf,CAAY,EACrC,KAAK,WAAY,CACzB,CACI,IAAI,QAAS,CACT,OAAO,KAAK,SAAW,KAAK,eAAiB,IACrD,CACI,IAAI,OAAOqE,EAAW,CAClB,GAAI,OAAOA,GAAc,SACrB,MAAM,IAAI,MAAM,0CAA0ChQ,GAAUgQ,CAAS,CAAC,EAAE,EAEpF,MAAMxtC,EAAU,KAAK,UAAYwtC,EACjC,KAAK,QAAUA,EACXxtC,GACA,KAAK,WAAY,CAE7B,CACI,IAAI,eAAgB,CAChB,OAAO,KAAK,gBAAkB,IACtC,CACI,IAAI,cAAcwtC,EAAW,CACzB,GAAI,OAAOA,GAAc,SACrB,MAAM,IAAI,MAAM,0CAA0ChQ,GAAUgQ,CAAS,CAAC,EAAE,EAEpF,MAAMxtC,EAAU,KAAK,iBAAmBwtC,EACxC,KAAK,eAAiBA,EAClBxtC,GACA,KAAK,WAAY,CAE7B,CACI,UAAUyzB,EAAO/gE,EAAS,CACtBA,EAAU,OAAO,OAAO,CAAA,EAAIA,CAAO,EACnC,MAAMghE,EAAqBF,GAAyB,KAAMC,EAAO/gE,CAAO,EACxE,IAAI+6E,EAUJ,OAT4B/Z,EAAmB,KAAMga,IAC7Cna,GAAMma,EAAkB,KAAK,EAC7BD,EAAc9P,GAAO,KAAM+P,EAAkB,MAAOh7E,CAAO,EAEtD6gE,GAAMma,EAAkB,OAAO,IACpCD,EAAcC,EAAkB,SAEAD,GAAgB,KACvD,GAIG,OAAOA,GAAgB,SACvBA,EAAc,KAAK,YAAY,KAAMA,EAAa/6E,CAAO,EAEpD,OAAO+6E,GAAgB,UAC5BA,GACAla,GAAM7gE,EAAQ,KAAK,IACnB+6E,EAAcxE,GAAU,CACpB,KAAM,KACN,MAAOv2E,EAAQ,OAAS,EACxB,MAAO+6E,EACP,QAAA/6E,EACA,UAAW6qE,GAAa,KAAM9J,EAAO/gE,CAAO,CAC5D,CAAa,GAEDA,GAAW+6E,aAAuB,QAClCA,EAAcA,EAAY,IAAK1yD,GAAU,OAAOA,GAAU,SACpDvoB,GAAY,KAAMuoB,EAAOroB,CAAO,EAChCqoB,CAAK,GAER0yD,GArBI,KAAK,mBAAmB,IAAIha,EAAO/gE,CAAO,CAsB7D,CACI,UAAU0nC,EAAOq5B,EAAO/gE,EAAS,CAC7B,OAAOu2E,GAAU,CACb,KAAM,KACN,MAAA7uC,EACA,MAAAq5B,EACA,QAAS,OAAO,OAAO,CAAA,EAAI/gE,CAAO,EAClC,UAAW6qE,GAAa,KAAM9J,EAAO/gE,GAAmD,EAAE,CACtG,CAAS,CACT,CACI,SAAS2C,EAAMD,EAAO1C,EAAS,CAE3B,GADAA,EAAU,OAAO,OAAO,CAAA,EAAIA,CAAO,EACR0C,GAAU,KACjC,MAAO,GAEX,OAAQC,EAAI,CACR,IAAK,WACD,OAAO,KAAK,iBAAiBD,CAAK,EACtC,IAAK,SACD,OAAO0nE,GAAa1nE,EAAO,OAAO,OAAO,CAAE,UAAW,IAAK,UAAW,EAAG,UAAW,IAAK,YAAa,GAAO,wBAAyB,EAAO,EAAEuoE,GAAO,KAAM,eAAe,CAAC,CAAC,EACjL,IAAK,aACD,OAAO,KAAK,mBAAmBvoE,CAAK,EACxC,QAAS,CACL,IAAIu4E,EACJ,OAAIt4E,EAAK,MAAM,cAAc,EACzBs4E,EAAiB,KAAK,OAAOt4E,EAAMD,CAAK,EAGxCu4E,EAAiBv4E,EAAM,SAAU,EAE9B5C,GAAY,KAAMm7E,EAAgBj7E,CAAO,CAChE,CACA,CACA,CACI,OAAO+gE,EAAO31D,EAAO,CACjB,MAAMb,EAAOyrE,GAAU5qE,CAAK,EACtBw6D,EAASqF,GAAO,KAAMlK,CAAK,EAIjC,OAHIx2D,EAAK,SAAQ,EAAG,MAAM,UAAU,GAGhC,CAACq7D,EACMr7D,EAAK,SAAU,EAEnB,KAAK,SAASA,EAAMq7D,CAAM,CACzC,CACI,iBAAiBx6D,EAAOpL,EAAU,GAAI,CAClC,OAAOoqE,GAAah/D,EAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,CAAE,UAAW,IAAK,OAAQ,OAAQ,UAAW,EAAG,UAAW,IAAK,YAAa,GAAO,wBAAyB,GAAO,KAAM,GAAG,EAAIw1D,GAAc,KAAK,IAAI,eAAe,CAAC,CAAC,EAAGA,GAAc,KAAK,IAAI,wBAAwB,CAAC,CAAC,EAAG5gE,CAAO,CAAC,CACrT,CACI,mBAAmBoL,EAAOpL,EAAU,GAAI,CACpC,OAAOoqE,GAAah/D,EAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,CAAE,UAAW,GAAI,OAAQ,MAAO,UAAW,EAAG,wBAAyB,GAAO,UAAW,IAAK,YAAa,EAAK,EAAIw1D,GAAc,KAAK,IAAI,eAAe,CAAC,CAAC,EAAGA,GAAc,KAAK,IAAI,0BAA0B,CAAC,CAAC,EAAG5gE,CAAO,CAAC,CAC1S,CACI,kBAAkBoL,EAAOpL,EAAU,GAAI,CACnC,OAAO21E,GAAkB,KAAMvqE,EAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,CAAE,UAAW,GAAI,UAAW,EAAG,YAAa,GAAM,wBAAyB,GAAM,MAAO,CAChK,QAAS,UACT,QAAS,UACT,YAAa,cACb,SAAU,WACV,SAAU,WACV,KAAM,EACT,CAAA,EAAIw1D,GAAc,KAAK,IAAI,qBAAqB,CAAC,CAAC,EAAGA,GAAc,KAAK,IAAI,4BAA4B,CAAC,CAAC,EAAG5gE,CAAO,CAAC,CAClI,CACI,cAAcoL,EAAOpL,EAAU,GAAI,CAC/B,OAAOo1E,GAAc,KAAMhqE,EAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,CAAE,UAAW,GAAI,UAAW,IAAK,UAAW,EAAG,YAAa,GAAM,wBAAyB,GAAM,OAAQ,QAAS,UAAW,UAAW,MAAO,CACnN,QAAS,UACT,QAAS,UACT,YAAa,cACb,SAAU,WACV,SAAU,WACV,KAAM,EACT,CAAA,EAAIw1D,GAAc,KAAK,IAAI,qBAAqB,CAAC,CAAC,EAAGA,GAAc,KAAK,IAAI,4BAA4B,CAAC,CAAC,EAAG5gE,CAAO,CAAC,CAClI,CACI,gBAAgBoL,EAAOpL,EAAS,CAC5B,OAAOoqE,GAAah/D,EAAO,OAAO,OAAO,CAAE,KAAM,GAAI,UAAW,EAAG,YAAa,GAAO,UAAW,IAAK,UAAW,GAAI,wBAAyB,IAASpL,CAAO,CAAC,CACxK,CACI,kBAAkBoL,EAAOpL,EAAU,GAAI,CACnC,OAAOmrE,GAAkB//D,EAAO,OAAO,OAAO,CAAE,iBAAkB,2BAA4B,UAAW,IAAK,UAAW,GAAK,EAAEpL,CAAO,CAAC,CAChJ,CACI,WAAWgB,EAAQuQ,EAAU,CACzB,OAAOuoE,GAAU,KAAM,OAAQ,OAAQ,WAAa,CAChD,MAAMoB,EAAiB,KAAK,OAC5B,GAAI,CACA,KAAK,OAASl6E,EACd,MAAMuQ,EAAU,CAChC,QACoB,CACJ,KAAK,OAAS2pE,CAC9B,CACA,CAAS,CACT,CACI,SAAS3wE,EAAMq7D,EAAQ5lE,EAAU,CAAA,EAAI,CACjC,OAAO42E,GAASrsE,EAAMq7D,EAAQ,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,CAAE,EAAEhF,GAAcqK,GAAO,KAAM,MAAM,CAAC,CAAC,EAAG,CAAE,SAAU,CACtH,GAAIA,GAAO,KAAM,SAAS,GAAK,KAC/B,GAAIA,GAAO,KAAM,SAAS,GAAK,IAC/C,CAAe,CAAA,EAAGjrE,CAAO,CAAC,CAC1B,CACI,OAAO6qD,EAAMswB,EAAUn7E,EAAU,CAAE,OAAQ,IAAS,CAChD,GAAIA,EAAQ,QAAU,CAACosD,GAAI,KAAK,aAAcvB,CAAI,EAC9C,MAAM,IAAI,MAAM,aAAaA,CAAI,4BAA4B,EAEjE,MAAMuwB,EAAcrwB,GAAI,KAAK,aAAcF,CAAI,EACzCwwB,EAAcvQ,GAAUsQ,CAAW,EACnCE,EAAexQ,GAAUqQ,CAAQ,EACvC,GAAIn7E,EAAQ,QAAUq7E,IAAgBC,EAClC,MAAM,IAAI,MAAM,yBAAyBzwB,CAAI,SAASwwB,CAAW,6CAA6CC,CAAY,GAAG,EAEjI,IAAIC,EACAD,IAAiB,SACjBC,EAAU,OAAO,OAAO,OAAO,OAAO,GAAIH,CAAW,EAAGD,CAAQ,EAGhEI,EAAUJ,EAEd,MAAMK,EAAa3wB,EAAK,MAAM,KAAK,gBAAgB,EAC7C4wB,EAAOD,EAAW,IAAK,EAC7B,IAAIltB,EAAS,KAAK,aAClB,UAAWrsC,KAAau5D,EACfltB,EAAOrsC,CAAS,IACjBqsC,EAAOrsC,CAAS,EAAI,CAAE,GAE1BqsC,EAASA,EAAOrsC,CAAS,EAE7BqsC,EAAOmtB,CAAI,EAAIF,EACf,KAAK,WAAY,CACzB,CACI,WAAWG,EAAO17E,EAAU,GAAI,CAC5B,KAAM,CAAE,eAAA27E,EAAgB,kBAAAC,EAAmB,kBAAAC,CAAmB,EAAG,OAAO,OAAO,OAAO,OAAO,CAAE,eAAgB,KAAM,kBAAmB,QAAS,kBAAmB,QAAQ,EAAIjb,GAAcqK,GAAO,KAAM,eAAe,CAAC,CAAC,EAAGjrE,CAAO,EAChOwC,EAAOk5E,EAAM,OACnB,OAAQl5E,EAAI,CACR,IAAK,GACD,MAAO,GACX,IAAK,GACD,MAAO,GAAGk5E,EAAM,CAAC,CAAC,GACtB,IAAK,GACD,OAAOA,EAAM,KAAKE,CAAiB,EACvC,QACI,MAAO,CACHF,EAAM,MAAM,EAAGl5E,EAAO,CAAC,EAAE,KAAKm5E,CAAc,EAC5CE,EACAH,EAAMl5E,EAAO,CAAC,CAClC,EAAkB,KAAK,EAAE,CACzB,CACA,CACI,eAAe41E,EAAUC,EAAQr4E,EAAU,CAAA,EAAI,CAC3C,OAAOm4E,GAAe,KAAMC,EAAUC,EAAQr4E,CAAO,CAC7D,CACI,SAASuR,EAAU,CACf,YAAK,iBAAiB,KAAKA,CAAQ,EAC5B,IAAM,CACT,KAAK,iBAAiB,OAAO,KAAK,iBAAiB,QAAQA,CAAQ,EAAG,CAAC,CAC1E,CACT,CACI,IAAI,SAAU,CACV,OAAO,KAAK,QACpB,CACI,aAAanG,EAAOpL,EAAU,GAAI,CAC9B,OAAAA,EAAU,OAAO,OAAO,OAAO,OAAO,CAAE,UAAW,IAAK,UAAW,EAAG,UAAW,IAAK,KAAM,GAAI,OAAQ,OAAQ,YAAa,GAAO,wBAAyB,EAAO,EAAE4gE,GAAc,KAAK,IAAI,eAAe,CAAC,CAAC,EAAG5gE,CAAO,EACjNoqE,GAAah/D,EAAOpL,CAAO,CAC1C,CACI,IAAI+gE,EAAO,CACP,OAAOkK,GAAO,KAAMlK,CAAK,CACjC,CACI,cAAe,CACX,KAAK,iBAAiB,QAASxvD,GAAaA,EAAS,IAAI,CAAC,CAClE,CACI,YAAa,CACT,KAAK,UAAY,EACjB,KAAK,aAAc,CAC3B,CACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2smBC7RMuqE,GAAa,SAAS,gBAAgB,KAEtC3/D,GAAO,IAAI4/D,GACjB5/D,GAAK,MAAMs6D,EAAY,EACvBt6D,GAAK,cAAgB,KACrBA,GAAK,eAAiB,GACtBA,GAAK,OAAS2/D,GAEd,OAAO,KAAO3/D","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,115,116,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330]}