{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/@rails/activestorage/app/assets/javascripts/activestorage.js","webpack:///./app/javascript/packs/application.js","webpack:///./node_modules/trix/dist/trix.js","webpack:///./node_modules/timers-browserify/main.js","webpack:///./node_modules/setimmediate/setImmediate.js","webpack:///./node_modules/process/browser.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/@rails/actiontext/app/javascript/actiontext/attachment_upload.js","webpack:///./node_modules/@rails/actiontext/app/javascript/actiontext/index.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","_typeof","iterator","constructor","g","this","Function","e","window","factory","sparkMd5","fn","createCommonjsModule","undefined","hex_chr","md5cycle","x","k","a","b","md5blk","md5blks","charCodeAt","md5blk_array","md51","length","tail","tmp","lo","hi","state","substring","toString","match","parseInt","rhex","j","hex","join","toUtf8","str","test","unescape","encodeURIComponent","hexToBinaryString","bytes","push","substr","String","fromCharCode","apply","SparkMD5","reset","ArrayBuffer","slice","clamp","val","Math","max","min","from","to","num","target","targetArray","sourceArray","byteLength","begin","end","Uint8Array","set","append","appendBinary","contents","_buff","_length","_hash","raw","ret","buff","_finish","getState","hash","setState","destroy","hashBinary","content","arr","first","second","returnUInt8Array","result","buffer","subarray","utf8Str2ArrayBuffer","md51_array","classCallCheck","instance","Constructor","TypeError","createClass","defineProperties","props","descriptor","configurable","writable","protoProps","staticProps","fileSlice","File","mozSlice","webkitSlice","FileChecksum","file","chunkSize","chunkCount","ceil","size","chunkIndex","callback","_this","md5Buffer","fileReader","FileReader","addEventListener","event","fileReaderDidLoad","fileReaderDidError","readNextChunk","binaryDigest","base64digest","btoa","start","readAsArrayBuffer","findElement","root","selector","document","querySelector","dispatchEvent","element","type","eventInit","arguments","disabled","bubbles","cancelable","detail","createEvent","initEvent","toArray$1","Array","isArray","BlobRecord","checksum","url","attributes","filename","content_type","byte_size","xhr","XMLHttpRequest","open","responseType","setRequestHeader","csrfToken","head","getAttribute","getMetaValue","requestDidLoad","requestDidError","send","JSON","stringify","blob","status","response","direct_upload","directUploadData","toJSON","_xhr","parse","BlobUpload","_blob$directUploadDat","headers","id","DirectUpload","delegate","error","notify","upload","methodName","_len","messages","_key","DirectUploadController","input","directUpload","dispatch","hiddenInput","createElement","insertAdjacentElement","parentNode","removeChild","dispatchError","signed_id","progress","loaded","total","defaultPrevented","alert","_this2","uploadRequestDidProgress","DirectUploadsController","form","inputs","querySelectorAll","filter","files","controllers","createDirectUploadControllers","startNextController","controller","shift","forEach","submitButtonsByForm","WeakMap","started","didClick","didSubmitForm","didSubmitRemoteElement","tagName","handleFormSubmissionEvent","hasAttribute","preventDefault","setAttribute","disable","removeAttribute","enable","button","focus","click","style","display","appendChild","submitForm","setTimeout","ActiveStorage","require","Set","clear","values","has","indexOf","add","splice","_state","_handled","_value","_deferreds","h","onFulfilled","onRejected","promise","then","u","setImmediate","console","warn","all","resolve","reject","race","_setImmediateFn","_setUnhandledRejectionFn","Promise","customElements","registerElement","Date","now","random","A","sort","uid_","takeRecords","nodes_","observer","removeTransientObservers","callback_","options","subtree","enqueue","records_","C","addedNodes","removedNodes","previousSibling","nextSibling","attributeName","attributeNamespace","oldValue","w","f","transientObservedNodes","JsMutationObserver","navigator","userAgent","v","y","data","postMessage","observe","ShadowDOMPolyfill","wrapIfNeeded","childList","characterData","attributeOldValue","attributeFilter","characterDataOldValue","SyntaxError","removeListeners","addListeners","disconnect","addListeners_","removeListeners_","removeEventListener","addTransientObserver","handleEvent","stopImmediatePropagation","attrName","relatedNode","namespaceURI","attrChange","MutationEvent","ADDITION","prevValue","MutationObserver","_isPolyfilled","self","performance","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","cancelAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","clearTimeout","Event","CustomEvent","initCustomEvent","Boolean","WebComponents","CustomElements","flags","addModule","initializeModules","hasNative","isIE","useNative","register","HTMLImports","firstElementChild","firstChild","nodeType","Node","ELEMENT_NODE","nextElementSibling","shadowRoot","olderShadowRoot","IMPORT_LINK_TYPE","forDocumentTree","wrap","forSubtree","upgrade","__upgraded__","__attached","attachedCallback","detachedCallback","dom","host","URL","_URL","localName","split","pop","group","DOCUMENT_FRAGMENT_NODE","E","groupEnd","__observer","baseURI","hasPolyfillMutations","hasThrottledAttached","S","Element","createShadowRoot","watchShadow","__watched","log","upgradeDocumentTree","upgradeDocument","upgradeSubtree","upgradeAll","attached","is","createdCallback","__proto__","HTMLElement","getOwnPropertyNames","getOwnPropertyDescriptor","getPrototypeOf","HTMLTemplateElement","decorate","getRegisteredDefinition","tag","upgradeWithDefinition","implementPrototype","_polyfilled","toLowerCase","attributeChangedCallback","ctor","createElementNS","Error","__name","lifecycle","ancestry","concat","ready","registry","reservedTagList","readyTime","elapsed","unwrap","unwrapIfNeeded","__importsParsingHook","readyState","eager","attachEvent","Trix","VERSION","ZERO_WIDTH_SPACE","NON_BREAKING_SPACE","OBJECT_REPLACEMENT_CHARACTER","browser","composesExistingText","forcesObjectResizing","supportsInputEvents","InputEvent","config","BasicObject","proxyMethod","toMethod","toProperty","optional","_t","__super__","fromJSONString","fromJSON","hasSameConstructorAs","isEqualTo","inspect","contentsForInspection","toJSONString","toUTF16String","UTF16String","box","getCacheKey","extend","defer","normalizeSpaces","replace","RegExp","normalizeNewlines","breakableWhitespacePattern","squishBreakableWhitespace","source","summarizeStringChange","added","removed","_n","utf16String","offset","codepoints","fromCodepoints","_t2","charAt","copyObject","objectsAreEqual","keys","arraysAreEqual","arrayStartsWith","spliceArray","summarizeArrayChange","getAllAttributeNames","getTextAttributeNames","getBlockAttributeNames","getBlockConfig","blockAttributes","getTextConfig","textAttributes","getListAttributeNames","listAttribute","documentElement","matchesSelector","webkitMatchesSelector","msMatchesSelector","mozMatchesSelector","_s","onElement","matchingSelector","withCallback","inPhase","times","findClosestElementFromNode","handleEventOnce","triggerEvent","elementMatchesSelector","untilNode","closest","findInnerElement","innerElementIsActive","activeElement","elementContainsNode","findNodeFromContainerAndOffset","TEXT_NODE","childNodes","item","findElementFromContainerAndOffset","findChildIndexOfNode","removeNode","walkTree","onlyNodesOfType","usingFilter","expandEntityReferences","NodeFilter","SHOW_ELEMENT","SHOW_TEXT","SHOW_COMMENT","SHOW_ALL","createTreeWalker","makeElement","editable","contenteditable","dataset","className","classList","textContent","getBlockTagNames","blockTagNames","nodeIsBlockContainer","nodeIsBlockStartComment","nodeProbablyIsBlockContainer","nodeIsBlockStart","strict","nodeIsCommentNode","COMMENT_NODE","nodeIsCursorTarget","nodeIsTextNode","trixCursorTarget","nodeIsAttachmentElement","AttachmentView","attachmentSelector","nodeIsEmptyTextNode","normalizeRange","rangeIsCollapsed","rangesAreEqual","defaultCSS","insertBefore","_t3","initialize","connect","initialized","connectedCallback","disconnectedCallback","_n2","Reflect","construct","setPrototypeOf","define","getDOMSelection","getSelection","rangeCount","getDOMRange","getRangeAt","setDOMRange","removeAllRanges","addRange","selectionChangeObserver","update","_t4","startContainer","endContainer","dataTransferIsPlainText","getData","DOMParser","parseFromString","body","dataTransferIsWritable","setData","keyEventIsKeyboardCommand","platform","metaKey","ctrlKey","RTL_PATTERN","getDirection","dir","dirName","FormData","matches","trim","Hash","fromCommonAttributesOfObjects","getKeys","getKeysCommonToHash","merge","remove","toArray","isEmpty","array","toObject","ObjectGroup","objects","depth","asTree","groupObjects","canBeGrouped","canBeGroupedWith","getObjects","getDepth","_t5","ObjectMap","find","ElementStore","elements","trixStoreKey","_t6","Operation","isPerforming","performing","hasPerformed","performed","hasSucceeded","succeeded","hasFailed","getPromise","perform","release","cancel","ucs2String","ucs2Length","fromUCS2String","offsetToUCS2Offset","offsetFromUCS2Offset","codePointAt","fromCodePoint","map","lang","attachFiles","bold","bullets","captionPlaceholder","code","heading1","indent","italic","link","numbers","outdent","quote","redo","strike","undo","unlink","urlPlaceholder","GB","KB","MB","PB","TB","css","attachment","attachmentCaption","attachmentCaptionEditor","attachmentMetadata","attachmentMetadataContainer","attachmentName","attachmentProgress","attachmentSize","attachmentToolbar","attachmentGallery","nestable","terminal","breakOnReturn","text","plaintext","bulletList","bullet","numberList","number","exclusive","fileSize","prefix","precision","formatter","floor","pow","toFixed","inheritable","parser","getComputedStyle","fontWeight","fontStyle","href","groupTagName","frozen","backgroundColor","serializers","Document","fromHTML","innerHTML","toSerializableDocument","DocumentView","render","cloneNode","deserializers","serializeToContentType","deserializeFromContentType","toolbar","getDefaultHTML","undoInterval","attachments","preview","presentation","caption","keyNames","8","9","13","27","37","39","46","68","72","79","level2Enabled","getLevel","pickFiles","multiple","hidden","fileInputId","getElementById","_t7","ObjectView","childViews","rootView","getNodes","nodes","createNodes","invalidate","parentView","invalidateViewForObject","findViewForObject","findOrCreateCachedChildView","getCachedViewForObject","recordChildView","createChildView","cacheViewForObject","viewClass","ObjectGroupView","getAllChildViews","findElementForObject","getViewCache","isViewCachingEnabled","viewCache","shouldCacheViews","enableViewCaching","disableViewCaching","garbageCollectCachedViews","_t8","objectGroup","getChildViews","createContainerElement","_t9","Controller","didMutate","_h","stop","mutations","findSignificantMutations","elementDidMutate","getMutationSummary","mutationIsSignificant","nodeIsMutable","nodesModifiedByMutation","nodeIsSignificant","getTextMutationSummary","getTextChangesFromCharacterData","additions","deletions","getTextChangesFromChildList","textAdded","textDeleted","getMutationsByType","_t10","FileVerificationOperation","onerror","onload","abort","InputController","mutationObserver","events","handlerFor","editorWillSyncDocumentView","editorDidSyncDocumentView","requestRender","inputControllerDidRequestRender","requestReparse","inputControllerDidRequestReparse","handleInput","inputControllerWillAttachFiles","responder","insertFiles","eventName","inputControllerWillHandleInput","inputControllerDidHandleInput","createLinkHTML","outerHTML","Level0InputController","resetInputSummary","setInputSummary","inputSummary","isComposing","inputControllerDidAllowUnhandledInput","mutationIsExpected","preferDocument","didDelete","getSelectedRange","positionIsBlockBreak","compositionInput","getEndData","keydown","didInput","keyCode","keyName","inputControllerDidReceiveKeyboardCommand","keypress","altKey","inputControllerWillPerformTyping","insertString","selectionIsExpanded","textInput","toUpperCase","setSelectedRange","dragenter","dragstart","serializeSelectionToDataTransfer","dataTransfer","draggedRange","inputControllerDidStartDrag","dragover","canAcceptDataTransfer","clientX","clientY","draggingPoint","inputControllerDidReceiveDragOverPoint","dragend","inputControllerDidCancelDrag","drop","setLocationRangeFromPointRange","inputControllerWillMoveText","moveTextFromRange","insertDocument","cut","clipboardData","inputControllerWillCutText","deleteInDirection","copy","paste","R","D","L","testClipboardData","clipboard","getPastedHTMLUsingHiddenElement","html","inputControllerWillPaste","insertHTML","inputControllerDidPaste","string","types","items","getAsFile","insertFile","compositionstart","getCompositionInput","compositionupdate","compositionend","beforeinput","stopPropagation","backspace","insertLineBreak","tab","canIncreaseNestingLevel","increaseNestingLevel","left","selectionIsInCursorTarget","moveCursorInDirection","right","control","updatePosition","canDecreaseNestingLevel","decreaseNestingLevel","expandSelectionInDirection","alt","meta","isEnded","getSelectedDocument","Files","position","pageXOffset","top","pageYOffset","opacity","which","charCode","inputController","isSignificant","insertPlaceholder","range","selectPlaceholder","forgetPlaceholder","canApplyToDocument","Level2InputController","scheduledRender","composing","reparse","scheduleRender","afterRender","shiftKey","withEvent","inputTypes","inputType","selectionContainsAttachments","dragging","point","ArrowLeft","shouldManageMovingCursorInDirection","ArrowRight","Backspace","shouldManageDeletingInDirection","Tab","deleteByComposition","recordUndoEntry","deleteByCut","deleteByDrag","withTargetDOMRange","deleteByDragRange","deleteCompositionText","deleteContent","deleteContentBackward","deleteContentForward","deleteEntireSoftLine","deleteHardLineBackward","deleteHardLineForward","deleteSoftLineBackward","deleteSoftLineForward","deleteWordBackward","deleteWordForward","formatBackColor","activateAttributeIfSupported","formatBold","toggleAttributeIfSupported","formatFontColor","formatFontName","formatIndent","formatItalic","formatJustifyCenter","formatJustifyFull","formatJustifyLeft","formatJustifyRight","formatOutdent","formatRemove","getCurrentAttributes","removeCurrentAttribute","formatSetBlockTextDirection","formatSetInlineTextDirection","formatStrikeThrough","formatSubscript","formatSuperscript","formatUnderline","historyRedo","inputControllerWillPerformRedo","historyUndo","inputControllerWillPerformUndo","insertCompositionText","insertFromComposition","insertFromDrop","insertFromPaste","insertFromYank","insertLink","insertOrderedList","insertParagraph","insertReplacementText","insertText","insertTranspose","insertUnorderedList","inputControllerWillPerformFormatting","toggleCurrentAttribute","setCurrentAttribute","getTargetDOMRange","minLength","getTargetRanges","createRange","setStart","startOffset","setEnd","endOffset","AttachmentEditorController","attachmentPiece","container","didBlurCaption","didChangeCaption","didInputCaption","didKeyDownCaption","didClickActionButton","didClickToolbar","install","undos","makeElementMutable","addToolbar","isPreviewable","installCaptionEditor","uninstall","savePendingCaption","didUninstallAttachmentEditor","pendingCaption","attachmentEditorDidRequestUpdatingAttributesForAttachment","attachmentEditorDidRequestRemovingAttributeForAttachment","trixMutable","title","trixAction","getFilename","getFormattedFilesize","placeholder","getCaption","tabIndex","height","scrollHeight","parentElement","editCaption","attachmentEditorDidRequestRemovalOfAttachment","attachmentEditorDidRequestDeselectingAttachment","uploadProgressDelegate","piece","createContentNodes","getClassName","getHref","tabindex","hasContent","getContent","createCaptionElement","isPending","progressElement","getUploadProgress","getCaptionConfig","createTextNode","getType","getExtension","trixAttachment","trixContentType","getContentType","trixId","trixAttributes","trixSerialize","findProgressElement","attachmentDidChangeUploadProgress","PreviewableAttachmentView","previewDelegate","image","src","refresh","updateAttributesForImage","getURL","getPreviewURL","getWidth","getHeight","width","attachmentDidChangeAttributes","PieceView","getAttributes","textConfig","context","createAttachmentNodes","createStringNodes","preserveSpaces","styleProperty","isLast","isFirst","followsWhitespace","_t11","TextView","getPieces","BlockView","block","createComment","getLastAttribute","shouldAddExtraNewlineElement","isRTL","getBlockBreakPosition","elementStore","setDocument","sync","shadowElement","getBlocks","isSynced","createDocumentFragmentForSync","lastChild","didSync","createDocumentFragment","replaceChild","CompositionController","composition","didClickAttachment","didBlur","didFocus","documentView","focused","compositionControllerDidFocus","blurPromise","compositionControllerDidBlur","findAttachmentForElement","compositionControllerDidSelectAttachment","getSerializableElement","isEditingAttachment","revision","canSyncDocumentView","compositionControllerWillSyncDocumentView","compositionControllerDidSyncDocumentView","compositionControllerDidRender","rerenderViewForObject","refreshViewCache","attachmentEditor","installAttachmentEditorForAttachment","uninstallAttachmentEditor","getAttachmentPieceForAttachment","compositionControllerWillUpdateAttachment","updateAttributesForAttachment","removeAttributeForAttachment","compositionControllerDidRequestRemovalOfAttachment","compositionControllerDidRequestDeselectingAttachment","getAttachmentById","ToolbarController","didKeyDownDialogInput","didClickDialogButton","didClickAttributeButton","actions","resetDialogInputs","toolbarDidClickButton","getDialog","toggleDialog","toolbarDidInvokeAction","toolbarDidToggleAttribute","refreshAttributeButtons","hideDialog","updateActions","refreshActionButtons","eachActionButton","updateAttributes","eachAttributeButton","dialogIsVisible","applyKeyboardCommand","showDialog","toolbarWillShowDialog","select","toolbarDidShowDialog","willValidate","checkValidity","toolbarDidUpdateAttribute","toolbarDidRemoveAttribute","toolbarDidHideDialog","_t12","ImagePreloadOperation","Image","naturalWidth","naturalHeight","_t13","Attachment","releaseFile","didChangeAttributes","previewablePattern","attachmentForFile","attributesForFile","setFile","filesize","contentType","setAttributes","preloadURL","getFilesize","getFile","preloadFile","releasePreloadedFile","uploadProgress","setUploadProgress","previewURL","preloadingURL","setPreviewURL","attachmentDidChangePreviewURL","preload","fileObjectURL","createObjectURL","revokeObjectURL","_t14","Piece","registerType","copyWithAttributes","getValue","copyWithAdditionalAttributes","copyWithoutAttribute","getAttributesHash","getCommonAttributes","pieceList","getPieceAtIndex","eachPiece","hasSameStringValueAsPiece","hasSameAttributesAsPiece","isBlockBreak","isSerializable","getLength","canBeConsolidatedWith","_t15","AttachmentPiece","ensureAttachmentExclusivelyHasAttribute","removeProhibitedAttributes","permittedAttributes","toConsole","StringPiece","consolidateWith","splitAtOffset","SplittableList","eachObject","insertObjectAtIndex","insertSplittableListAtIndex","insertSplittableListAtPosition","splitObjectAtPosition","editObjectAtIndex","replaceObjectAtIndex","removeObjectAtIndex","getObjectAtIndex","getSplittableListInRange","splitObjectsAtRange","selectSplittableList","removeObjectsInRange","transformObjectsInRange","getObjectAtPosition","findIndexAndOffsetAtPosition","index","consolidate","consolidateFromIndexToIndex","findPositionAtIndexAndOffset","getEndPosition","endPosition","_t16","Text","textForAttachmentWithAttributes","textForStringWithAttributes","copyWithPieceList","copyUsingObjectMap","appendText","insertTextAtPosition","removeTextAtRange","replaceTextAtRange","moveTextFromRangeToPosition","getTextAtRange","addAttributeAtRange","addAttributesAtRange","removeAttributeAtRange","setAttributesAtRange","getAttributesAtPosition","getCommonAttributesAtRange","getExpandedRangeForAttributeAtOffset","getStringAtRange","getStringAtPosition","startsWithString","endsWithString","getAttachmentPieces","getAttachments","getAttachmentAndPositionById","getRangeOfAttachment","getPieceAtPosition","toSerializableText","Block","copyWithText","copyWithoutText","copyWithoutAttributes","addAttribute","removeLastAttribute","getAttributeLevel","getAttributeAtLevel","hasAttributes","getLastNestableAttribute","getNestableAttributes","getNestingLevel","lastIndexOf","getListItemAttributes","isListItem","isTerminalBlock","breaksOnReturn","findLineBreakInDirectionFromPosition","getTextWithoutBlockBreak","blockBreak","HTMLSanitizer","allowedAttributes","forbiddenProtocols","forbiddenElements","sanitize","sanitizeElements","normalizeListElementNesting","getHTML","getBody","nextNode","currentNode","elementIsRemovable","sanitizeElement","protocol","previousElementSibling","elementIsForbidden","elementIsntSerializable","implementation","createHTMLDocument","HTMLParser","referenceElement","blocks","blockElements","processedElements","getDocument","createHiddenContainer","containerElement","processNode","translateBlockElementMarginsToNewlines","removeHiddenContainer","FILTER_REJECT","FILTER_ACCEPT","isInsignificantTextNode","appendBlockForTextNode","processTextNode","appendBlockForElement","processElement","currentBlockElement","isBlockElement","appendStringWithAttributes","getBlockAttributes","currentBlock","appendBlockForAttributesWithElement","findParentBlockElement","appendEmptyBlock","getTextAttributes","appendAttachmentWithAttributes","isExtraBR","appendPiece","appendStringToTextAtIndex","prependStringToTextAtIndex","unshift","findBlockElementAncestors","reverse","whiteSpace","getMarginOfDefaultBlockElement","getMarginOfBlockElementAtIndex","bottom","marginTop","marginBottom","blockList","fromString","getBlockAtIndex","consolidateBlocks","copyUsingObjectsFromDocument","copyWithBaseBlockAttributes","replaceBlock","insertDocumentAtRange","locationFromPosition","getBlockAtPosition","mergeDocumentAtRange","getBaseBlockAttributes","getBlockCount","insertTextAtRange","locationRangeFromRange","getDocumentAtRange","eachBlockAtRange","eachBlock","getTextAtIndex","insertBlockBreakAtRange","applyBlockAttributeAtRange","expandRangeToLineBreaksAndSplitBlocks","removeLastListAttributeAtRange","exceptAttributeName","convertLineBreaksToBlockBreaksInRange","removeBlockAttributesAtRange","removeLastTerminalAttributeAtRange","consolidateBlocksAtRange","positionFromLocation","getTextAtPosition","getCharacterAtPosition","getEditCount","editCount","getCommonAttributesAtPosition","getRangeOfCommonAttributeAtPosition","getLocationRangeOfAttachment","findRangesForBlockAttribute","findRangesForTextAttribute","withValue","locationRangeFromPosition","rangeFromLocationRange","getTexts","LineBreakInsertion","startPosition","startLocation","endLocation","previousCharacter","nextCharacter","shouldInsertBlockBreak","shouldBreakFormattedBlock","shouldDecreaseListLevel","shouldPrependListItem","shouldRemoveLastBlockAttribute","Composition","currentAttributes","refreshAttachments","compositionDidChangeDocument","getSnapshot","selectedRange","loadSnapshot","compositionWillLoadSnapshot","setSelection","compositionDidLoadSnapshot","notifyDelegateOfInsertionAtRange","insertBlock","getCurrentTextAttributes","insertBlockBreak","decreaseListLevel","removeLastBlockAttribute","breakFormattedBlock","replaceHTML","getLocationRange","compositionShouldAcceptFile","insertAttachments","insertAttachment","canDecreaseBlockAttributeLevel","getBlock","decreaseBlockAttributeLevel","getExpandedRangeInDirection","getAttachmentAtRange","editAttachment","removeAttachment","stopEditingAttachment","placeholderPosition","getPosition","hasCurrentAttribute","canSetCurrentAttribute","canSetCurrentBlockAttribute","canSetCurrentTextAttribute","setBlockAttribute","setTextAttribute","notifyDelegateOfCurrentAttributesChange","removeBlockAttribute","updateCurrentAttributes","removeTextAttribute","getPreviousBlock","ignoreLock","freezeSelection","thawSelection","hasFrozenSelection","compositionDidRequestChangingSelectionToLocationRange","getSelectionManager","setLocationRange","targetLocationRange","withTargetLocationRange","withTargetRange","createLocationRangeFromDOMRange","translateUTF16PositionFromOffset","editingAttachment","expandSelectionForEditing","expandSelectionAroundCommonAttribute","getSelectedAttachments","positionIsCursorTarget","locationIsCursorTarget","compositionDidRemoveAttachment","compositionDidAddAttachment","compositionDidEditAttachment","compositionDidChangeAttachmentPreviewURL","compositionDidStartEditingAttachment","compositionDidStopEditingAttachment","compositionDidChangeCurrentAttributes","compositionDidPerformInsertionAtRange","_t17","UndoManager","undoEntries","redoEntries","consolidatable","createEntry","description","snapshot","canUndo","canRedo","attachmentGalleryFilter","applyBlockAttribute","findRangesOfBlocks","findRangesOfPieces","moveSelectedRangeForward","Editor","selectionManager","_t18","undoManager","filters","loadDocument","loadHTML","loadJSON","getClientRectAtPosition","getClientRectAtLocationRange","activateAttribute","attributeIsActive","canActivateAttribute","deactivateAttribute","_t19","ManagedAttachment","attachmentManager","requestRemovalOfAttachment","_t20","AttachmentManager","managedAttachments","manageAttachment","attachmentIsManaged","attachmentManagerDidRequestRemovalOfAttachment","unmanageAttachment","LocationMapper","findLocationFromContainerAndOffset","findAttachmentElementParentForNode","findContainerAndOffsetFromLocation","findNodeAndOffsetFromLocation","getSignificantNodesForIndex","PointMapper","createDOMRangeFromPoint","caretPositionFromPoint","offsetNode","caretRangeFromPoint","createTextRange","moveToPoint","getClientRectsForDOMRange","getClientRects","SelectionChangeObserver","run","selectionManagers","registerSelectionManager","unregisterSelectionManager","notifySelectionManagersOfSelectionChange","selectionDidChange","domRange","SelectionManager","didMouseDown","locationMapper","pointMapper","lockCount","currentLocationRange","lockedLocationRange","createDOMRangeFromLocationRange","updateCurrentLocationRange","getLocationAtPoint","lock","unlock","clearSelection","selectionIsCollapsed","collapsed","domRangeWithinElement","pauseTemporarily","paused","locationRangeDidChange","EditorController","editorElement","compositionController","toolbarController","toolbarElement","editor","notifyEditorElement","handlingInput","updateCurrentActions","pasting","pastedRange","attachmentLocationRange","loadingSnapshot","isFocused","requestedLocationRange","compositionRevisionWhenLocationRangeRequested","renderedCompositionRevision","runEditorFilters","isFocusedInvisibly","requestedRender","recordTypingUndoEntry","recordFormattingUndoEntry","locationRangeBeforeDrag","invokeAction","selectionFrozen","dialogName","canInvokeAction","actionIsExternal","actionName","getCurrentActions","currentActions","updateInputElement","setInputElementValue","documentChangedSinceLastRender","getUndoContext","getLocationContext","getTimeContext","getTime","ownerDocument","queryCommandSupported","execCommand","labels","contains","inputElement","editorController","defaultValue","registerResetListener","registerClickListener","unregisterResetListener","unregisterClickListener","resetListener","resetBubbled","clickListener","clickBubbled","Timeout","clearFn","_id","_clearFn","scope","setInterval","clearInterval","timeout","close","unref","ref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","active","_onTimeout","global","clearImmediate","registerImmediate","channel","messagePrefix","onGlobalMessage","nextHandle","tasksByHandle","currentlyRunningATask","doc","attachTo","process","handle","nextTick","runIfPresent","importScripts","postMessageIsAsynchronous","oldOnMessage","onmessage","canUsePostMessage","MessageChannel","port1","port2","script","onreadystatechange","args","task","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","len","marker","runClearTimeout","Item","noop","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","umask","webpackPolyfill","deprecate","paths","children","_defineProperties","_toPropertyKey","toPrimitive","Number","_toPrimitive","AttachmentUpload","_classCallCheck","directUploadUrl","directUploadDidComplete","sgid","attachable_sgid","createBlobUrl","signedId","blobUrlTemplate"],"mappings":";aACE,IAAIA,EAAmB,GAGvB,SAASC,EAAoBC,GAG5B,GAAGF,EAAiBE,GACnB,OAAOF,EAAiBE,GAAUC,QAGnC,IAAIC,EAASJ,EAAiBE,GAAY,CACzCG,EAAGH,EACHI,GAAG,EACHH,QAAS,IAUV,OANAI,EAAQL,GAAUM,KAAKJ,EAAOD,QAASC,EAAQA,EAAOD,QAASF,GAG/DG,EAAOE,GAAI,EAGJF,EAAOD,QAKfF,EAAoBQ,EAAIF,EAGxBN,EAAoBS,EAAIV,EAGxBC,EAAoBU,EAAI,SAASR,EAASS,EAAMC,GAC3CZ,EAAoBa,EAAEX,EAASS,IAClCG,OAAOC,eAAeb,EAASS,EAAM,CAAEK,YAAY,EAAMC,IAAKL,KAKhEZ,EAAoBkB,EAAI,SAAShB,GACX,qBAAXiB,QAA0BA,OAAOC,aAC1CN,OAAOC,eAAeb,EAASiB,OAAOC,YAAa,CAAEC,MAAO,WAE7DP,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,KAQvDrB,EAAoBsB,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQrB,EAAoBqB,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,kBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAKX,OAAOY,OAAO,MAGvB,GAFA1B,EAAoBkB,EAAEO,GACtBX,OAAOC,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOrB,EAAoBU,EAAEe,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIRzB,EAAoB6B,EAAI,SAAS1B,GAChC,IAAIS,EAAST,GAAUA,EAAOqB,WAC7B,WAAwB,OAAOrB,EAAgB,SAC/C,WAA8B,OAAOA,GAEtC,OADAH,EAAoBU,EAAEE,EAAQ,IAAKA,GAC5BA,GAIRZ,EAAoBa,EAAI,SAASiB,EAAQC,GAAY,OAAOjB,OAAOkB,UAAUC,eAAe1B,KAAKuB,EAAQC,IAGzG/B,EAAoBkC,EAAI,UAIjBlC,EAAoBA,EAAoBmC,EAAI,G,gBClFrD,SAASC,EAAQvB,GAAgC,OAAOuB,EAAU,mBAAqBjB,QAAU,iBAAmBA,OAAOkB,SAAW,SAAUxB,GAAK,cAAcA,GAAO,SAAUA,GAAK,OAAOA,GAAK,mBAAqBM,QAAUN,EAAEyB,cAAgBnB,QAAUN,IAAMM,OAAOa,UAAY,gBAAkBnB,IAAcA,GACzT,IAAI0B,EAGJA,EAAI,WACF,OAAOC,KADL,GAGJ,IAEED,EAAIA,GAAK,IAAIE,SAAS,cAAb,GACT,MAAOC,GAEiE,YAAjD,qBAAXC,OAAyB,YAAcP,EAAQO,WAAuBJ,EAAII,QAOxFxC,EAAOD,QAAUqC,G,gBCnBjB,UACmBK,EADnB,cAAiD,OAAOR,EAAU,mBAAqBjB,QAAU,iBAAmBA,OAAOkB,SAAW,SAAUxB,GAAK,cAAcA,GAAO,SAAUA,GAAK,OAAOA,GAAK,mBAAqBM,QAAUN,EAAEyB,cAAgBnB,QAAUN,IAAMM,OAAOa,UAAY,gBAAkBnB,IAAcA,GACtS+B,EAEV,SAAU1C,GACjB,aAOA,IAAI2C,EALJ,SAA8BC,EAAI3C,GAChC,OAEG2C,EAFI3C,EAAS,CACdD,QAAS,IACGC,EAAOD,SAAUC,EAAOD,QAEzB6C,EAAqB,SAAU5C,EAAQD,GAGhDC,EAAOD,QAER,SAAU8C,GACX,IAAIC,EAAU,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAC1F,SAASC,EAASC,EAAGC,GACnB,IAAIC,EAAIF,EAAE,GACRG,EAAIH,EAAE,GACN1C,EAAI0C,EAAE,GACNzC,EAAIyC,EAAE,GAQRG,IADAA,KADA7C,IADAA,KADAC,IADAA,KADA2C,IADAA,IAAMC,EAAI7C,GAAK6C,EAAI5C,GAAK0C,EAAE,GAAK,UAAY,IACjC,EAAIC,IAAM,IAAMC,EAAI,GACpBA,GAAKD,EAAI5C,GAAK2C,EAAE,GAAK,UAAY,IACjC,GAAK1C,IAAM,IAAM2C,EAAI,GACrBA,GAAK3C,EAAI4C,GAAKF,EAAE,GAAK,UAAY,IACjC,GAAK3C,IAAM,IAAMC,EAAI,GACrBA,GAAKD,EAAI4C,GAAKD,EAAE,GAAK,WAAa,IAClC,GAAKE,IAAM,IAAM7C,EAAI,EAQ/B6C,IADAA,KADA7C,IADAA,KADAC,IADAA,KADA2C,IADAA,IAAMC,EAAI7C,GAAK6C,EAAI5C,GAAK0C,EAAE,GAAK,UAAY,IACjC,EAAIC,IAAM,IAAMC,EAAI,GACpBA,GAAKD,EAAI5C,GAAK2C,EAAE,GAAK,WAAa,IAClC,GAAK1C,IAAM,IAAM2C,EAAI,GACrBA,GAAK3C,EAAI4C,GAAKF,EAAE,GAAK,WAAa,IAClC,GAAK3C,IAAM,IAAMC,EAAI,GACrBA,GAAKD,EAAI4C,GAAKD,EAAE,GAAK,SAAW,IAChC,GAAKE,IAAM,IAAM7C,EAAI,EAQ/B6C,IADAA,KADA7C,IADAA,KADAC,IADAA,KADA2C,IADAA,IAAMC,EAAI7C,GAAK6C,EAAI5C,GAAK0C,EAAE,GAAK,WAAa,IAClC,EAAIC,IAAM,IAAMC,EAAI,GACpBA,GAAKD,EAAI5C,GAAK2C,EAAE,GAAK,WAAa,IAClC,GAAK1C,IAAM,IAAM2C,EAAI,GACrBA,GAAK3C,EAAI4C,GAAKF,EAAE,IAAM,MAAQ,IAC9B,GAAK3C,IAAM,IAAMC,EAAI,GACrBA,GAAKD,EAAI4C,GAAKD,EAAE,IAAM,WAAa,IACnC,GAAKE,IAAM,IAAM7C,EAAI,EAQ/B6C,IADAA,KADA7C,IADAA,KADAC,IADAA,KADA2C,IADAA,IAAMC,EAAI7C,GAAK6C,EAAI5C,GAAK0C,EAAE,IAAM,WAAa,IACnC,EAAIC,IAAM,IAAMC,EAAI,GACpBA,GAAKD,EAAI5C,GAAK2C,EAAE,IAAM,SAAW,IACjC,GAAK1C,IAAM,IAAM2C,EAAI,GACrBA,GAAK3C,EAAI4C,GAAKF,EAAE,IAAM,WAAa,IACnC,GAAK3C,IAAM,IAAMC,EAAI,GACrBA,GAAKD,EAAI4C,GAAKD,EAAE,IAAM,WAAa,IACnC,GAAKE,IAAM,IAAM7C,EAAI,EAQ/B6C,IADAA,KADA7C,IADAA,KADAC,IADAA,KADA2C,IADAA,IAAMC,EAAI5C,EAAID,GAAKC,GAAK0C,EAAE,GAAK,UAAY,IACjC,EAAIC,IAAM,IAAMC,EAAI,GACpB7C,EAAI6C,GAAK7C,GAAK2C,EAAE,GAAK,WAAa,IAClC,EAAI1C,IAAM,IAAM2C,EAAI,GACpBC,EAAID,GAAKC,GAAKF,EAAE,IAAM,UAAY,IAClC,GAAK3C,IAAM,IAAMC,EAAI,GACrB2C,EAAI3C,GAAK2C,GAAKD,EAAE,GAAK,UAAY,IACjC,GAAKE,IAAM,IAAM7C,EAAI,EAQ/B6C,IADAA,KADA7C,IADAA,KADAC,IADAA,KADA2C,IADAA,IAAMC,EAAI5C,EAAID,GAAKC,GAAK0C,EAAE,GAAK,UAAY,IACjC,EAAIC,IAAM,IAAMC,EAAI,GACpB7C,EAAI6C,GAAK7C,GAAK2C,EAAE,IAAM,SAAW,IACjC,EAAI1C,IAAM,IAAM2C,EAAI,GACpBC,EAAID,GAAKC,GAAKF,EAAE,IAAM,UAAY,IAClC,GAAK3C,IAAM,IAAMC,EAAI,GACrB2C,EAAI3C,GAAK2C,GAAKD,EAAE,GAAK,UAAY,IACjC,GAAKE,IAAM,IAAM7C,EAAI,EAQ/B6C,IADAA,KADA7C,IADAA,KADAC,IADAA,KADA2C,IADAA,IAAMC,EAAI5C,EAAID,GAAKC,GAAK0C,EAAE,GAAK,UAAY,IACjC,EAAIC,IAAM,IAAMC,EAAI,GACpB7C,EAAI6C,GAAK7C,GAAK2C,EAAE,IAAM,WAAa,IACnC,EAAI1C,IAAM,IAAM2C,EAAI,GACpBC,EAAID,GAAKC,GAAKF,EAAE,GAAK,UAAY,IACjC,GAAK3C,IAAM,IAAMC,EAAI,GACrB2C,EAAI3C,GAAK2C,GAAKD,EAAE,GAAK,WAAa,IAClC,GAAKE,IAAM,IAAM7C,EAAI,EAQ/B6C,IADAA,KADA7C,IADAA,KADAC,IADAA,KADA2C,IADAA,IAAMC,EAAI5C,EAAID,GAAKC,GAAK0C,EAAE,IAAM,WAAa,IACnC,EAAIC,IAAM,IAAMC,EAAI,GACpB7C,EAAI6C,GAAK7C,GAAK2C,EAAE,GAAK,SAAW,IAChC,EAAI1C,IAAM,IAAM2C,EAAI,GACpBC,EAAID,GAAKC,GAAKF,EAAE,GAAK,WAAa,IAClC,GAAK3C,IAAM,IAAMC,EAAI,GACrB2C,EAAI3C,GAAK2C,GAAKD,EAAE,IAAM,WAAa,IACnC,GAAKE,IAAM,IAAM7C,EAAI,EAQ/B6C,IADAA,KADA7C,IADAA,KADAC,IADAA,KADA2C,IADAA,IAAMC,EAAI7C,EAAIC,GAAK0C,EAAE,GAAK,OAAS,IACzB,EAAIC,IAAM,IAAMC,EAAI,GACpBA,EAAI7C,GAAK2C,EAAE,GAAK,WAAa,IAC7B,GAAK1C,IAAM,IAAM2C,EAAI,GACrBA,EAAIC,GAAKF,EAAE,IAAM,WAAa,IAC9B,GAAK3C,IAAM,IAAMC,EAAI,GACrBA,EAAI2C,GAAKD,EAAE,IAAM,SAAW,IAC5B,GAAKE,IAAM,GAAK7C,EAAI,EAQ9B6C,IADAA,KADA7C,IADAA,KADAC,IADAA,KADA2C,IADAA,IAAMC,EAAI7C,EAAIC,GAAK0C,EAAE,GAAK,WAAa,IAC7B,EAAIC,IAAM,IAAMC,EAAI,GACpBA,EAAI7C,GAAK2C,EAAE,GAAK,WAAa,IAC7B,GAAK1C,IAAM,IAAM2C,EAAI,GACrBA,EAAIC,GAAKF,EAAE,GAAK,UAAY,IAC5B,GAAK3C,IAAM,IAAMC,EAAI,GACrBA,EAAI2C,GAAKD,EAAE,IAAM,WAAa,IAC9B,GAAKE,IAAM,GAAK7C,EAAI,EAQ9B6C,IADAA,KADA7C,IADAA,KADAC,IADAA,KADA2C,IADAA,IAAMC,EAAI7C,EAAIC,GAAK0C,EAAE,IAAM,UAAY,IAC7B,EAAIC,IAAM,IAAMC,EAAI,GACpBA,EAAI7C,GAAK2C,EAAE,GAAK,UAAY,IAC5B,GAAK1C,IAAM,IAAM2C,EAAI,GACrBA,EAAIC,GAAKF,EAAE,GAAK,UAAY,IAC5B,GAAK3C,IAAM,IAAMC,EAAI,GACrBA,EAAI2C,GAAKD,EAAE,GAAK,SAAW,IAC3B,GAAKE,IAAM,GAAK7C,EAAI,EAQ9B6C,IADAA,KADA7C,IADAA,KADAC,IADAA,KADA2C,IADAA,IAAMC,EAAI7C,EAAIC,GAAK0C,EAAE,GAAK,UAAY,IAC5B,EAAIC,IAAM,IAAMC,EAAI,GACpBA,EAAI7C,GAAK2C,EAAE,IAAM,UAAY,IAC7B,GAAK1C,IAAM,IAAM2C,EAAI,GACrBA,EAAIC,GAAKF,EAAE,IAAM,UAAY,IAC7B,GAAK3C,IAAM,IAAMC,EAAI,GACrBA,EAAI2C,GAAKD,EAAE,GAAK,UAAY,IAC5B,GAAKE,IAAM,GAAK7C,EAAI,EAQ9B6C,IADAA,KAHA5C,IADAA,IAAM4C,IADND,IADAA,IAAM5C,GAAK6C,GAAK5C,IAAM0C,EAAE,GAAK,UAAY,IAC/B,EAAIC,IAAM,IAAMC,EAAI,IACd7C,IAAM2C,EAAE,GAAK,WAAa,IAChC,GAAK1C,IAAM,IAAM2C,EAAI,KAE/B5C,IADAA,IAAM4C,GAAK3C,GAAK4C,IAAMF,EAAE,IAAM,WAAa,IACjC,GAAK3C,IAAM,IAAMC,EAAI,IACf2C,IAAMD,EAAE,GAAK,SAAW,IAC9B,GAAKE,IAAM,IAAM7C,EAAI,EAQ/B6C,IADAA,KAHA5C,IADAA,IAAM4C,IADND,IADAA,IAAM5C,GAAK6C,GAAK5C,IAAM0C,EAAE,IAAM,WAAa,IACjC,EAAIC,IAAM,IAAMC,EAAI,IACd7C,IAAM2C,EAAE,GAAK,WAAa,IAChC,GAAK1C,IAAM,IAAM2C,EAAI,KAE/B5C,IADAA,IAAM4C,GAAK3C,GAAK4C,IAAMF,EAAE,IAAM,QAAU,IAC9B,GAAK3C,IAAM,IAAMC,EAAI,IACf2C,IAAMD,EAAE,GAAK,WAAa,IAChC,GAAKE,IAAM,IAAM7C,EAAI,EAQ/B6C,IADAA,KAHA5C,IADAA,IAAM4C,IADND,IADAA,IAAM5C,GAAK6C,GAAK5C,IAAM0C,EAAE,GAAK,WAAa,IAChC,EAAIC,IAAM,IAAMC,EAAI,IACd7C,IAAM2C,EAAE,IAAM,SAAW,IAC/B,GAAK1C,IAAM,IAAM2C,EAAI,KAE/B5C,IADAA,IAAM4C,GAAK3C,GAAK4C,IAAMF,EAAE,GAAK,WAAa,IAChC,GAAK3C,IAAM,IAAMC,EAAI,IACf2C,IAAMD,EAAE,IAAM,WAAa,IACjC,GAAKE,IAAM,IAAM7C,EAAI,EAQ/B6C,IADAA,KAHA5C,IADAA,IAAM4C,IADND,IADAA,IAAM5C,GAAK6C,GAAK5C,IAAM0C,EAAE,GAAK,UAAY,IAC/B,EAAIC,IAAM,IAAMC,EAAI,IACd7C,IAAM2C,EAAE,IAAM,WAAa,IACjC,GAAK1C,IAAM,IAAM2C,EAAI,KAE/B5C,IADAA,IAAM4C,GAAK3C,GAAK4C,IAAMF,EAAE,GAAK,UAAY,IAC/B,GAAK3C,IAAM,IAAMC,EAAI,IACf2C,IAAMD,EAAE,GAAK,UAAY,IAC/B,GAAKE,IAAM,IAAM7C,EAAI,EAC/B0C,EAAE,GAAKE,EAAIF,EAAE,GAAK,EAClBA,EAAE,GAAKG,EAAIH,EAAE,GAAK,EAClBA,EAAE,GAAK1C,EAAI0C,EAAE,GAAK,EAClBA,EAAE,GAAKzC,EAAIyC,EAAE,GAAK,EAEpB,SAASI,EAAOpB,GACd,IACE/B,EADEoD,EAAU,GAEd,IAAKpD,EAAI,EAAGA,EAAI,GAAIA,GAAK,EACvBoD,EAAQpD,GAAK,GAAK+B,EAAEsB,WAAWrD,IAAM+B,EAAEsB,WAAWrD,EAAI,IAAM,IAAM+B,EAAEsB,WAAWrD,EAAI,IAAM,KAAO+B,EAAEsB,WAAWrD,EAAI,IAAM,IAEzH,OAAOoD,EAET,SAASE,EAAaL,GACpB,IACEjD,EADEoD,EAAU,GAEd,IAAKpD,EAAI,EAAGA,EAAI,GAAIA,GAAK,EACvBoD,EAAQpD,GAAK,GAAKiD,EAAEjD,IAAMiD,EAAEjD,EAAI,IAAM,IAAMiD,EAAEjD,EAAI,IAAM,KAAOiD,EAAEjD,EAAI,IAAM,IAE7E,OAAOoD,EAET,SAASG,EAAKxB,GACZ,IAEE/B,EACAwD,EACAC,EACAC,EACAC,EACAC,EAPEnC,EAAIM,EAAEyB,OACRK,EAAQ,CAAC,YAAa,WAAY,WAAY,WAOhD,IAAK7D,EAAI,GAAIA,GAAKyB,EAAGzB,GAAK,GACxB8C,EAASe,EAAOV,EAAOpB,EAAE+B,UAAU9D,EAAI,GAAIA,KAK7C,IAFAwD,GADAzB,EAAIA,EAAE+B,UAAU9D,EAAI,KACTwD,OACXC,EAAO,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAChDzD,EAAI,EAAGA,EAAIwD,EAAQxD,GAAK,EAC3ByD,EAAKzD,GAAK,IAAM+B,EAAEsB,WAAWrD,KAAOA,EAAI,GAAK,GAG/C,GADAyD,EAAKzD,GAAK,IAAM,MAAQA,EAAI,GAAK,GAC7BA,EAAI,GAEN,IADA8C,EAASe,EAAOJ,GACXzD,EAAI,EAAGA,EAAI,GAAIA,GAAK,EACvByD,EAAKzD,GAAK,EAUd,OANA0D,GADAA,EAAU,EAAJjC,GACIsC,SAAS,IAAIC,MAAM,kBAC7BL,EAAKM,SAASP,EAAI,GAAI,IACtBE,EAAKK,SAASP,EAAI,GAAI,KAAO,EAC7BD,EAAK,IAAME,EACXF,EAAK,IAAMG,EACXd,EAASe,EAAOJ,GACTI,EAoCT,SAASK,EAAKzC,GACZ,IACE0C,EADEpC,EAAI,GAER,IAAKoC,EAAI,EAAGA,EAAI,EAAGA,GAAK,EACtBpC,GAAKc,EAAQpB,GAAS,EAAJ0C,EAAQ,EAAI,IAAMtB,EAAQpB,GAAS,EAAJ0C,EAAQ,IAE3D,OAAOpC,EAET,SAASqC,EAAIrB,GACX,IAAI/C,EACJ,IAAKA,EAAI,EAAGA,EAAI+C,EAAES,OAAQxD,GAAK,EAC7B+C,EAAE/C,GAAKkE,EAAKnB,EAAE/C,IAEhB,OAAO+C,EAAEsB,KAAK,IAmChB,SAASC,EAAOC,GAId,MAHI,kBAAkBC,KAAKD,KACzBA,EAAME,SAASC,mBAAmBH,KAE7BA,EAqBT,SAASI,EAAkBP,GACzB,IAEErB,EAFE6B,EAAQ,GACVpB,EAASY,EAAIZ,OAEf,IAAKT,EAAI,EAAGA,EAAIS,EAAS,EAAGT,GAAK,EAC/B6B,EAAMC,KAAKZ,SAASG,EAAIU,OAAO/B,EAAG,GAAI,KAExC,OAAOgC,OAAOC,aAAaC,MAAMF,OAAQH,GAE3C,SAASM,IACP9C,KAAK+C,QA2IP,OA/MIf,EAAIb,EAAK,UACc,qBAAhB6B,aAAgCA,YAAYxD,UAAUyD,OAC/D,WACE,SAASC,EAAMC,EAAK/B,GAElB,OADA+B,EAAY,EAANA,GAAW,GACP,EACDC,KAAKC,IAAIF,EAAM/B,EAAQ,GAEzBgC,KAAKE,IAAIH,EAAK/B,GAEvB4B,YAAYxD,UAAUyD,MAAQ,SAAUM,EAAMC,GAC5C,IAGEC,EACAC,EACAC,EACAC,EANExC,EAASpB,KAAK6D,WAChBC,EAAQZ,EAAMK,EAAMnC,GACpB2C,EAAM3C,EAQR,OAHIoC,IAAOhD,IACTuD,EAAMb,EAAMM,EAAIpC,IAEd0C,EAAQC,EACH,IAAIf,YAAY,IAEzBS,EAAMM,EAAMD,EACZJ,EAAS,IAAIV,YAAYS,GACzBE,EAAc,IAAIK,WAAWN,GAC7BE,EAAc,IAAII,WAAWhE,KAAM8D,EAAOL,GAC1CE,EAAYM,IAAIL,GACTF,IA3BX,GAoEFZ,EAAStD,UAAU0E,OAAS,SAAU/B,GAEpC,OADAnC,KAAKmE,aAAajC,EAAOC,IAClBnC,MAET8C,EAAStD,UAAU2E,aAAe,SAAUC,GAC1CpE,KAAKqE,OAASD,EACdpE,KAAKsE,SAAWF,EAAShD,OACzB,IACExD,EADEwD,EAASpB,KAAKqE,MAAMjD,OAExB,IAAKxD,EAAI,GAAIA,GAAKwD,EAAQxD,GAAK,GAC7B8C,EAASV,KAAKuE,MAAOxD,EAAOf,KAAKqE,MAAM3C,UAAU9D,EAAI,GAAIA,KAG3D,OADAoC,KAAKqE,MAAQrE,KAAKqE,MAAM3C,UAAU9D,EAAI,IAC/BoC,MAET8C,EAAStD,UAAUuE,IAAM,SAAUS,GACjC,IAEE5G,EAEA6G,EAJEC,EAAO1E,KAAKqE,MACdjD,EAASsD,EAAKtD,OAEdC,EAAO,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAEvD,IAAKzD,EAAI,EAAGA,EAAIwD,EAAQxD,GAAK,EAC3ByD,EAAKzD,GAAK,IAAM8G,EAAKzD,WAAWrD,KAAOA,EAAI,GAAK,GAQlD,OANAoC,KAAK2E,QAAQtD,EAAMD,GACnBqD,EAAMzC,EAAIhC,KAAKuE,OACXC,IACFC,EAAMlC,EAAkBkC,IAE1BzE,KAAK+C,QACE0B,GAET3B,EAAStD,UAAUuD,MAAQ,WAIzB,OAHA/C,KAAKqE,MAAQ,GACbrE,KAAKsE,QAAU,EACftE,KAAKuE,MAAQ,CAAC,YAAa,WAAY,WAAY,WAC5CvE,MAET8C,EAAStD,UAAUoF,SAAW,WAC5B,MAAO,CACLF,KAAM1E,KAAKqE,MACXjD,OAAQpB,KAAKsE,QACbO,KAAM7E,KAAKuE,QAGfzB,EAAStD,UAAUsF,SAAW,SAAUrD,GAItC,OAHAzB,KAAKqE,MAAQ5C,EAAMiD,KACnB1E,KAAKsE,QAAU7C,EAAML,OACrBpB,KAAKuE,MAAQ9C,EAAMoD,KACZ7E,MAET8C,EAAStD,UAAUuF,QAAU,kBACpB/E,KAAKuE,aACLvE,KAAKqE,aACLrE,KAAKsE,SAEdxB,EAAStD,UAAUmF,QAAU,SAAUtD,EAAMD,GAC3C,IACEE,EACAC,EACAC,EAHE5D,EAAIwD,EAKR,GADAC,EAAKzD,GAAK,IAAM,MAAQA,EAAI,GAAK,GAC7BA,EAAI,GAEN,IADA8C,EAASV,KAAKuE,MAAOlD,GAChBzD,EAAI,EAAGA,EAAI,GAAIA,GAAK,EACvByD,EAAKzD,GAAK,EAId0D,GADAA,EAAqB,EAAftB,KAAKsE,SACD3C,SAAS,IAAIC,MAAM,kBAC7BL,EAAKM,SAASP,EAAI,GAAI,IACtBE,EAAKK,SAASP,EAAI,GAAI,KAAO,EAC7BD,EAAK,IAAME,EACXF,EAAK,IAAMG,EACXd,EAASV,KAAKuE,MAAOlD,IAEvByB,EAAS+B,KAAO,SAAU1C,EAAKqC,GAC7B,OAAO1B,EAASkC,WAAW9C,EAAOC,GAAMqC,IAE1C1B,EAASkC,WAAa,SAAUC,EAAST,GACvC,IACEC,EAAMzC,EADGb,EAAK8D,IAEhB,OAAOT,EAAMjC,EAAkBkC,GAAOA,GAExC3B,EAASE,YAAc,WACrBhD,KAAK+C,SAEPD,EAASE,YAAYxD,UAAU0E,OAAS,SAAUgB,GAChD,IAEEtH,EA5G6BuH,EAAOC,EAAQC,EAC1CC,EAyGAZ,GA1G2BS,EA0GInF,KAAKqE,MAAMkB,OA1GRH,EA0GgBF,EA1GRG,GA0Ga,GAzGvDC,EAAS,IAAItB,WAAWmB,EAAMtB,WAAauB,EAAOvB,aAC/CI,IAAI,IAAID,WAAWmB,IAC1BG,EAAOrB,IAAI,IAAID,WAAWoB,GAASD,EAAMtB,YAClCwB,EAAmBC,EAASA,EAAOC,QAuGxCnE,EAASsD,EAAKtD,OAGhB,IADApB,KAAKsE,SAAWY,EAAIrB,WACfjG,EAAI,GAAIA,GAAKwD,EAAQxD,GAAK,GAC7B8C,EAASV,KAAKuE,MAAOrD,EAAawD,EAAKc,SAAS5H,EAAI,GAAIA,KAG1D,OADAoC,KAAKqE,MAAQzG,EAAI,GAAKwD,EAAS,IAAI4C,WAAWU,EAAKa,OAAOtC,MAAMrF,EAAI,KAAO,IAAIoG,WAAW,GACnFhE,MAET8C,EAASE,YAAYxD,UAAUuE,IAAM,SAAUS,GAC7C,IAGE5G,EACA6G,EAJEC,EAAO1E,KAAKqE,MACdjD,EAASsD,EAAKtD,OACdC,EAAO,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAGvD,IAAKzD,EAAI,EAAGA,EAAIwD,EAAQxD,GAAK,EAC3ByD,EAAKzD,GAAK,IAAM8G,EAAK9G,KAAOA,EAAI,GAAK,GAQvC,OANAoC,KAAK2E,QAAQtD,EAAMD,GACnBqD,EAAMzC,EAAIhC,KAAKuE,OACXC,IACFC,EAAMlC,EAAkBkC,IAE1BzE,KAAK+C,QACE0B,GAET3B,EAASE,YAAYxD,UAAUuD,MAAQ,WAIrC,OAHA/C,KAAKqE,MAAQ,IAAIL,WAAW,GAC5BhE,KAAKsE,QAAU,EACftE,KAAKuE,MAAQ,CAAC,YAAa,WAAY,WAAY,WAC5CvE,MAET8C,EAASE,YAAYxD,UAAUoF,SAAW,WACxC,IA/I2BF,EA+IvBjD,EAAQqB,EAAStD,UAAUoF,SAAS7G,KAAKiC,MAE7C,OADAyB,EAAMiD,MAhJqBA,EAgJMjD,EAAMiD,KA/IhC/B,OAAOC,aAAaC,MAAM,KAAM,IAAImB,WAAWU,KAgJ/CjD,GAETqB,EAASE,YAAYxD,UAAUsF,SAAW,SAAUrD,GAElD,OADAA,EAAMiD,KA9JR,SAA6BvC,EAAKkD,GAChC,IAGEzH,EAHEwD,EAASe,EAAIf,OACfsD,EAAO,IAAI1B,YAAY5B,GACvB8D,EAAM,IAAIlB,WAAWU,GAEvB,IAAK9G,EAAI,EAAGA,EAAIwD,EAAQxD,GAAK,EAC3BsH,EAAItH,GAAKuE,EAAIlB,WAAWrD,GAE1B,OAAOyH,EAAmBH,EAAMR,EAsJnBe,CAAoBhE,EAAMiD,MAAM,GACtC5B,EAAStD,UAAUsF,SAAS/G,KAAKiC,KAAMyB,IAEhDqB,EAASE,YAAYxD,UAAUuF,QAAUjC,EAAStD,UAAUuF,QAC5DjC,EAASE,YAAYxD,UAAUmF,QAAU7B,EAAStD,UAAUmF,QAC5D7B,EAASE,YAAY6B,KAAO,SAAUK,EAAKV,GACzC,IACEC,EAAMzC,EA7PV,SAAoBnB,GAClB,IAEEjD,EACAwD,EACAC,EACAC,EACAC,EACAC,EAPEnC,EAAIwB,EAAEO,OACRK,EAAQ,CAAC,YAAa,WAAY,WAAY,WAOhD,IAAK7D,EAAI,GAAIA,GAAKyB,EAAGzB,GAAK,GACxB8C,EAASe,EAAOP,EAAaL,EAAE2E,SAAS5H,EAAI,GAAIA,KAKlD,IAHAiD,EAAIjD,EAAI,GAAKyB,EAAIwB,EAAE2E,SAAS5H,EAAI,IAAM,IAAIoG,WAAW,GACrD5C,EAASP,EAAEO,OACXC,EAAO,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAChDzD,EAAI,EAAGA,EAAIwD,EAAQxD,GAAK,EAC3ByD,EAAKzD,GAAK,IAAMiD,EAAEjD,KAAOA,EAAI,GAAK,GAGpC,GADAyD,EAAKzD,GAAK,IAAM,MAAQA,EAAI,GAAK,GAC7BA,EAAI,GAEN,IADA8C,EAASe,EAAOJ,GACXzD,EAAI,EAAGA,EAAI,GAAIA,GAAK,EACvByD,EAAKzD,GAAK,EAUd,OANA0D,GADAA,EAAU,EAAJjC,GACIsC,SAAS,IAAIC,MAAM,kBAC7BL,EAAKM,SAASP,EAAI,GAAI,IACtBE,EAAKK,SAASP,EAAI,GAAI,KAAO,EAC7BD,EAAK,IAAME,EACXF,EAAK,IAAMG,EACXd,EAASe,EAAOJ,GACTI,EA4NIiE,CAAW,IAAI1B,WAAWkB,KAErC,OAAOV,EAAMjC,EAAkBkC,GAAOA,GAEjC3B,EAhcY1C,MAmcnBuF,EAAiB,SAAwBC,EAAUC,GACrD,KAAMD,aAAoBC,GACxB,MAAM,IAAIC,UAAU,sCAGpBC,EAAc,WAChB,SAASC,EAAiBtC,EAAQuC,GAChC,IAAK,IAAIrI,EAAI,EAAGA,EAAIqI,EAAM7E,OAAQxD,IAAK,CACrC,IAAIsI,EAAaD,EAAMrI,GACvBsI,EAAW1H,WAAa0H,EAAW1H,aAAc,EACjD0H,EAAWC,cAAe,EACtB,UAAWD,IAAYA,EAAWE,UAAW,GACjD9H,OAAOC,eAAemF,EAAQwC,EAAW/G,IAAK+G,IAGlD,OAAO,SAAUL,EAAaQ,EAAYC,GAGxC,OAFID,GAAYL,EAAiBH,EAAYrG,UAAW6G,GACpDC,GAAaN,EAAiBH,EAAaS,GACxCT,GAbO,GAgBdU,EAAYC,KAAKhH,UAAUyD,OAASuD,KAAKhH,UAAUiH,UAAYD,KAAKhH,UAAUkH,YAC9EC,EAAe,WAQjB,SAASA,EAAaC,GACpBjB,EAAe3F,KAAM2G,GACrB3G,KAAK4G,KAAOA,EACZ5G,KAAK6G,UAAY,QACjB7G,KAAK8G,WAAa1D,KAAK2D,KAAK/G,KAAK4G,KAAKI,KAAOhH,KAAK6G,WAClD7G,KAAKiH,WAAa,EA+CpB,OA3DAlB,EAAYY,EAAc,KAAM,CAAC,CAC/BxH,IAAK,SACLN,MAAO,SAAgB+H,EAAMM,GACZ,IAAIP,EAAaC,GACvB1H,OAAOgI,OAUpBnB,EAAYY,EAAc,CAAC,CACzBxH,IAAK,SACLN,MAAO,SAAgBqI,GACrB,IAAIC,EAAQnH,KACZA,KAAKkH,SAAWA,EAChBlH,KAAKoH,UAAY,IAAI/G,EAAS2C,YAC9BhD,KAAKqH,WAAa,IAAIC,WACtBtH,KAAKqH,WAAWE,iBAAiB,QAAQ,SAAUC,GACjD,OAAOL,EAAMM,kBAAkBD,MAEjCxH,KAAKqH,WAAWE,iBAAiB,SAAS,SAAUC,GAClD,OAAOL,EAAMO,mBAAmBF,MAElCxH,KAAK2H,kBAEN,CACDxI,IAAK,oBACLN,MAAO,SAA2B2I,GAEhC,GADAxH,KAAKoH,UAAUlD,OAAOsD,EAAM9D,OAAO4B,SAC9BtF,KAAK2H,gBAAiB,CACzB,IAAIC,EAAe5H,KAAKoH,UAAUrD,KAAI,GAClC8D,EAAeC,KAAKF,GACxB5H,KAAKkH,SAAS,KAAMW,MAGvB,CACD1I,IAAK,qBACLN,MAAO,SAA4B2I,GACjCxH,KAAKkH,SAAS,iBAAmBlH,KAAK4G,KAAKzI,QAE5C,CACDgB,IAAK,gBACLN,MAAO,WACL,GAAImB,KAAKiH,WAAajH,KAAK8G,YAAiC,GAAnB9G,KAAKiH,YAAsC,GAAnBjH,KAAK8G,WAAiB,CACrF,IAAIiB,EAAQ/H,KAAKiH,WAAajH,KAAK6G,UAC/B9C,EAAMX,KAAKE,IAAIyE,EAAQ/H,KAAK6G,UAAW7G,KAAK4G,KAAKI,MACjDxE,EAAQ+D,EAAUxI,KAAKiC,KAAK4G,KAAMmB,EAAOhE,GAG7C,OAFA/D,KAAKqH,WAAWW,kBAAkBxF,GAClCxC,KAAKiH,cACE,EAEP,OAAO,MAINN,EA5DU,GA4EnB,SAASsB,EAAYC,EAAMC,GAKzB,MAJmB,iBAARD,IACTC,EAAWD,EACXA,EAAOE,UAEFF,EAAKG,cAAcF,GAE5B,SAASG,EAAcC,EAASC,GAC9B,IAAIC,EAAYC,UAAUtH,OAAS,QAAsBZ,IAAjBkI,UAAU,GAAmBA,UAAU,GAAK,GAChFC,EAAWJ,EAAQI,SACnBC,EAAUH,EAAUG,QACtBC,EAAaJ,EAAUI,WACvBC,EAASL,EAAUK,OACjBtB,EAAQY,SAASW,YAAY,SACjCvB,EAAMwB,UAAUR,EAAMI,IAAW,EAAMC,IAAc,GACrDrB,EAAMsB,OAASA,GAAU,GACzB,IACEP,EAAQI,UAAW,EACnBJ,EAAQD,cAAcd,GACtB,QACAe,EAAQI,SAAWA,EAErB,OAAOnB,EAET,SAASyB,EAAUpK,GACjB,OAAIqK,MAAMC,QAAQtK,GACTA,EACEqK,MAAM3F,KACR2F,MAAM3F,KAAK1E,GAEX,GAAGoE,MAAMlF,KAAKc,GAGzB,IAAIuK,EAAa,WACf,SAASA,EAAWxC,EAAMyC,EAAUC,GAClC,IAAInC,EAAQnH,KACZ2F,EAAe3F,KAAMoJ,GACrBpJ,KAAK4G,KAAOA,EACZ5G,KAAKuJ,WAAa,CAChBC,SAAU5C,EAAKzI,KACfsL,aAAc7C,EAAK4B,MAAQ,2BAC3BkB,UAAW9C,EAAKI,KAChBqC,SAAUA,GAEZrJ,KAAK2J,IAAM,IAAIC,eACf5J,KAAK2J,IAAIE,KAAK,OAAQP,GAAK,GAC3BtJ,KAAK2J,IAAIG,aAAe,OACxB9J,KAAK2J,IAAII,iBAAiB,eAAgB,oBAC1C/J,KAAK2J,IAAII,iBAAiB,SAAU,oBACpC/J,KAAK2J,IAAII,iBAAiB,mBAAoB,kBAC9C,IAAIC,EAhER,SAAsB7L,GACpB,IAAIoK,EAAUN,EAAYG,SAAS6B,KAAM,cAAgB9L,EAAO,MAChE,GAAIoK,EACF,OAAOA,EAAQ2B,aAAa,WA6DZC,CAAa,mBACZ3J,GAAbwJ,GACFhK,KAAK2J,IAAII,iBAAiB,eAAgBC,GAE5ChK,KAAK2J,IAAIpC,iBAAiB,QAAQ,SAAUC,GAC1C,OAAOL,EAAMiD,eAAe5C,MAE9BxH,KAAK2J,IAAIpC,iBAAiB,SAAS,SAAUC,GAC3C,OAAOL,EAAMkD,gBAAgB7C,MAyDjC,OAtDAzB,EAAYqD,EAAY,CAAC,CACvBjK,IAAK,SACLN,MAAO,SAAgBqI,GACrBlH,KAAKkH,SAAWA,EAChBlH,KAAK2J,IAAIW,KAAKC,KAAKC,UAAU,CAC3BC,KAAMzK,KAAKuJ,gBAGd,CACDpK,IAAK,iBACLN,MAAO,SAAwB2I,GAC7B,GAAIxH,KAAK0K,QAAU,KAAO1K,KAAK0K,OAAS,IAAK,CAC3C,IAAIC,EAAW3K,KAAK2K,SAChBC,EAAgBD,EAASC,qBACtBD,EAASC,cAChB5K,KAAKuJ,WAAaoB,EAClB3K,KAAK6K,iBAAmBD,EACxB5K,KAAKkH,SAAS,KAAMlH,KAAK8K,eAEzB9K,KAAKqK,gBAAgB7C,KAGxB,CACDrI,IAAK,kBACLN,MAAO,SAAyB2I,GAC9BxH,KAAKkH,SAAS,4BAA8BlH,KAAK4G,KAAKzI,KAAO,cAAgB6B,KAAK0K,UAEnF,CACDvL,IAAK,SACLN,MAAO,WACL,IAAIyG,EAAS,GACb,IAAK,IAAInG,KAAOa,KAAKuJ,WACnBjE,EAAOnG,GAAOa,KAAKuJ,WAAWpK,GAEhC,OAAOmG,IAER,CACDnG,IAAK,SACLV,IAAK,WACH,OAAOuB,KAAK2J,IAAIe,SAEjB,CACDvL,IAAK,WACLV,IAAK,WACH,IAAIsM,EAAO/K,KAAK2J,IACdG,EAAeiB,EAAKjB,aACpBa,EAAWI,EAAKJ,SAClB,MAAoB,QAAhBb,EACKa,EAEAJ,KAAKS,MAAML,OAIjBvB,EAlFQ,GAoFb6B,EAAa,WACf,SAASA,EAAWR,GAClB,IAAItD,EAAQnH,KACZ2F,EAAe3F,KAAMiL,GACrBjL,KAAKyK,KAAOA,EACZzK,KAAK4G,KAAO6D,EAAK7D,KACjB,IAAIsE,EAAwBT,EAAKI,iBAC/BvB,EAAM4B,EAAsB5B,IAC5B6B,EAAUD,EAAsBC,QAIlC,IAAK,IAAIhM,KAHTa,KAAK2J,IAAM,IAAIC,eACf5J,KAAK2J,IAAIE,KAAK,MAAOP,GAAK,GAC1BtJ,KAAK2J,IAAIG,aAAe,OACRqB,EACdnL,KAAK2J,IAAII,iBAAiB5K,EAAKgM,EAAQhM,IAEzCa,KAAK2J,IAAIpC,iBAAiB,QAAQ,SAAUC,GAC1C,OAAOL,EAAMiD,eAAe5C,MAE9BxH,KAAK2J,IAAIpC,iBAAiB,SAAS,SAAUC,GAC3C,OAAOL,EAAMkD,gBAAgB7C,MA2BjC,OAxBAzB,EAAYkF,EAAY,CAAC,CACvB9L,IAAK,SACLN,MAAO,SAAgBqI,GACrBlH,KAAKkH,SAAWA,EAChBlH,KAAK2J,IAAIW,KAAKtK,KAAK4G,KAAK3D,WAEzB,CACD9D,IAAK,iBACLN,MAAO,SAAwB2I,GAC7B,IAAIuD,EAAO/K,KAAK2J,IACde,EAASK,EAAKL,OACdC,EAAWI,EAAKJ,SACdD,GAAU,KAAOA,EAAS,IAC5B1K,KAAKkH,SAAS,KAAMyD,GAEpB3K,KAAKqK,gBAAgB7C,KAGxB,CACDrI,IAAK,kBACLN,MAAO,SAAyB2I,GAC9BxH,KAAKkH,SAAS,kBAAoBlH,KAAK4G,KAAKzI,KAAO,cAAgB6B,KAAK2J,IAAIe,YAGzEO,EA9CQ,GAgDbG,EAAK,EACLC,EAAe,WACjB,SAASA,EAAazE,EAAM0C,EAAKgC,GAC/B3F,EAAe3F,KAAMqL,GACrBrL,KAAKoL,KAAOA,EACZpL,KAAK4G,KAAOA,EACZ5G,KAAKsJ,IAAMA,EACXtJ,KAAKsL,SAAWA,EA+BlB,OA7BAvF,EAAYsF,EAAc,CAAC,CACzBlM,IAAK,SACLN,MAAO,SAAgBqI,GACrB,IAAIC,EAAQnH,KACZ2G,EAAazH,OAAOc,KAAK4G,MAAM,SAAU2E,EAAOlC,GAC9C,GAAIkC,EACFrE,EAASqE,OADX,CAIA,IAAId,EAAO,IAAIrB,EAAWjC,EAAMP,KAAMyC,EAAUlC,EAAMmC,KACtDkC,EAAOrE,EAAMmE,SAAU,oCAAqCb,EAAKd,KACjEc,EAAKvL,QAAO,SAAUqM,GACpB,GAAIA,EACFrE,EAASqE,OACJ,CACL,IAAIE,EAAS,IAAIR,EAAWR,GAC5Be,EAAOrE,EAAMmE,SAAU,mCAAoCG,EAAO9B,KAClE8B,EAAOvM,QAAO,SAAUqM,GAClBA,EACFrE,EAASqE,GAETrE,EAAS,KAAMuD,EAAKK,yBAQ3BO,EArCU,GAuCnB,SAASG,EAAOlM,EAAQoM,GACtB,GAAIpM,GAAuC,mBAAtBA,EAAOoM,GAA2B,CACrD,IAAK,IAAIC,EAAOjD,UAAUtH,OAAQwK,EAAW1C,MAAMyC,EAAO,EAAIA,EAAO,EAAI,GAAIE,EAAO,EAAGA,EAAOF,EAAME,IAClGD,EAASC,EAAO,GAAKnD,UAAUmD,GAEjC,OAAOvM,EAAOoM,GAAY7I,MAAMvD,EAAQsM,IAG5C,IAAIE,EAAyB,WAC3B,SAASA,EAAuBC,EAAOnF,GACrCjB,EAAe3F,KAAM8L,GACrB9L,KAAK+L,MAAQA,EACb/L,KAAK4G,KAAOA,EACZ5G,KAAKgM,aAAe,IAAIX,EAAarL,KAAK4G,KAAM5G,KAAKsJ,IAAKtJ,MAC1DA,KAAKiM,SAAS,cA4EhB,OA1EAlG,EAAY+F,EAAwB,CAAC,CACnC3M,IAAK,QACLN,MAAO,SAAeqI,GACpB,IAAIC,EAAQnH,KACRkM,EAAc9D,SAAS+D,cAAc,SACzCD,EAAY1D,KAAO,SACnB0D,EAAY/N,KAAO6B,KAAK+L,MAAM5N,KAC9B6B,KAAK+L,MAAMK,sBAAsB,cAAeF,GAChDlM,KAAKiM,SAAS,SACdjM,KAAKgM,aAAa9M,QAAO,SAAUqM,EAAOhC,GACpCgC,GACFW,EAAYG,WAAWC,YAAYJ,GACnC/E,EAAMoF,cAAchB,IAEpBW,EAAYrN,MAAQ0K,EAAWiD,UAEjCrF,EAAM8E,SAAS,OACf/E,EAASqE,QAGZ,CACDpM,IAAK,2BACLN,MAAO,SAAkC2I,GACvC,IAAIiF,EAAWjF,EAAMkF,OAASlF,EAAMmF,MAAQ,IACxCF,GACFzM,KAAKiM,SAAS,WAAY,CACxBQ,SAAUA,MAIf,CACDtN,IAAK,WACLN,MAAO,SAAkBV,GACvB,IAAI2K,EAASJ,UAAUtH,OAAS,QAAsBZ,IAAjBkI,UAAU,GAAmBA,UAAU,GAAK,GAGjF,OAFAI,EAAOlC,KAAO5G,KAAK4G,KACnBkC,EAAOsC,GAAKpL,KAAKgM,aAAaZ,GACvB9C,EAActI,KAAK+L,MAAO,iBAAmB5N,EAAM,CACxD2K,OAAQA,MAGX,CACD3J,IAAK,gBACLN,MAAO,SAAuB0M,GAChBvL,KAAKiM,SAAS,QAAS,CACjCV,MAAOA,IAEEqB,kBACTC,MAAMtB,KAGT,CACDpM,IAAK,oCACLN,MAAO,SAA2C8K,GAChD3J,KAAKiM,SAAS,sBAAuB,CACnCtC,IAAKA,MAGR,CACDxK,IAAK,mCACLN,MAAO,SAA0C8K,GAC/C,IAAImD,EAAS9M,KACbA,KAAKiM,SAAS,yBAA0B,CACtCtC,IAAKA,IAEPA,EAAI8B,OAAOlE,iBAAiB,YAAY,SAAUC,GAChD,OAAOsF,EAAOC,yBAAyBvF,QAG1C,CACDrI,IAAK,MACLV,IAAK,WACH,OAAOuB,KAAK+L,MAAM7B,aAAa,8BAG5B4B,EAlFoB,GAqFzBkB,EAA0B,WAC5B,SAASA,EAAwBC,GAnTnC,IAAsB/E,EAAMC,EAoTxBxC,EAAe3F,KAAMgN,GACrBhN,KAAKiN,KAAOA,EACZjN,KAAKkN,QAtTahF,EAsTS+E,EAtTH9E,EAiTR,2DAhTC,iBAARD,IACTC,EAAWD,EACXA,EAAOE,UAGFa,EADQf,EAAKiF,iBAAiBhF,KAiTaiF,QAAO,SAAUrB,GAC/D,OAAOA,EAAMsB,MAAMjM,UAgDvB,OA7CA2E,EAAYiH,EAAyB,CAAC,CACpC7N,IAAK,QACLN,MAAO,SAAeqI,GACpB,IAAIC,EAAQnH,KACRsN,EAActN,KAAKuN,gCAiBvBvN,KAAKiM,SAAS,SAhBY,SAASuB,IACjC,IAAIC,EAAaH,EAAYI,QACzBD,EACFA,EAAW1F,OAAM,SAAUwD,GACrBA,GACFrE,EAASqE,GACTpE,EAAM8E,SAAS,QAEfuB,QAIJtG,IACAC,EAAM8E,SAAS,QAInBuB,KAED,CACDrO,IAAK,gCACLN,MAAO,WACL,IAAIyO,EAAc,GAOlB,OANAtN,KAAKkN,OAAOS,SAAQ,SAAU5B,GAC5B9C,EAAU8C,EAAMsB,OAAOM,SAAQ,SAAU/G,GACvC,IAAI6G,EAAa,IAAI3B,EAAuBC,EAAOnF,GACnD0G,EAAY7K,KAAKgL,SAGdH,IAER,CACDnO,IAAK,WACLN,MAAO,SAAkBV,GACvB,IAAI2K,EAASJ,UAAUtH,OAAS,QAAsBZ,IAAjBkI,UAAU,GAAmBA,UAAU,GAAK,GACjF,OAAOJ,EAActI,KAAKiN,KAAM,kBAAoB9O,EAAM,CACxD2K,OAAQA,QAIPkE,EArDqB,GAwD1BY,EAAsB,IAAIC,QAC1BC,GAAU,EACd,SAAS/F,IACF+F,IACHA,GAAU,EACV1F,SAASb,iBAAiB,QAASwG,GAAU,GAC7C3F,SAASb,iBAAiB,SAAUyG,GACpC5F,SAASb,iBAAiB,cAAe0G,IAG7C,SAASF,EAASvG,GAChB,IAAI9D,EAAS8D,EAAM9D,OACI,SAAlBA,EAAOwK,SAAwC,UAAlBxK,EAAOwK,SAAuC,UAAfxK,EAAO8E,OAAoB9E,EAAOuJ,MACjGW,EAAoB3J,IAAIP,EAAOuJ,KAAMvJ,GAGzC,SAASsK,EAAcxG,GACrB2G,EAA0B3G,GAE5B,SAASyG,EAAuBzG,GACF,QAAxBA,EAAM9D,OAAOwK,SACfC,EAA0B3G,GAG9B,SAAS2G,EAA0B3G,GACjC,IAAIyF,EAAOzF,EAAM9D,OACjB,GAAIuJ,EAAKmB,aA3Be,kCA4BtB5G,EAAM6G,qBADR,CAIA,IAAIZ,EAAa,IAAIT,EAAwBC,GACzCC,EAASO,EAAWP,OACpBA,EAAO9L,SACToG,EAAM6G,iBACNpB,EAAKqB,aAnCiB,iCAmCiB,IACvCpB,EAAOS,QAAQY,GACfd,EAAW1F,OAAM,SAAUwD,GACzB0B,EAAKuB,gBAtCe,kCAuChBjD,EACF2B,EAAOS,QAAQc,GAOvB,SAAoBxB,GAClB,IAAIyB,EAASd,EAAoBnP,IAAIwO,IAAShF,EAAYgF,EAAM,2CAChE,GAAIyB,EAAQ,CACV,IACE/F,EADY+F,EACO/F,SACrB+F,EAAO/F,UAAW,EAClB+F,EAAOC,QACPD,EAAOE,QACPF,EAAO/F,SAAWA,OAElB+F,EAAStG,SAAS+D,cAAc,UACzB3D,KAAO,SACdkG,EAAOG,MAAMC,QAAU,OACvB7B,EAAK8B,YAAYL,GACjBA,EAAOE,QACP3B,EAAKX,YAAYoC,GAEnBd,EAA4B,OAAEX,GAtBxB+B,CAAW/B,QAwBnB,SAASsB,EAAQxC,GACfA,EAAMpD,UAAW,EAEnB,SAAS8F,EAAO1C,GACdA,EAAMpD,UAAW,EAOnBsG,YALA,WACM9O,OAAO+O,eACTnH,MAGkB,GACtBrK,EAAQqK,MAAQA,EAChBrK,EAAQ2N,aAAeA,EACvB/M,OAAOC,eAAeb,EAAS,aAAc,CAC3CmB,OAAO,KAn+B6D,WAAtBe,EAAQlC,IAA4C,qBAAXC,EAAyByC,EAAQ1C,IAAwD,EAAO,CAAC,QAAmB,2BAAP,EAAF,GAAS,iC,gBCS/MyR,EAAQ,GACRA,EAAQ,I,iBCZR,oCAAiD,OAAOvP,EAAU,mBAAqBjB,QAAU,iBAAmBA,OAAOkB,SAAW,SAAUxB,GAAK,cAAcA,GAAO,SAAUA,GAAK,OAAOA,GAAK,mBAAqBM,QAAUN,EAAEyB,cAAgBnB,QAAUN,IAAMM,OAAOa,UAAY,gBAAkBnB,IAAcA,IAMzT,cAAiBN,KAAKiC,MAAO,WAE3B,MAAQG,OAAOiP,MAAQjP,OAAOiP,IAAU,WACtC,SAAStQ,IACPkB,KAAKqP,QAEP,OAAOvQ,EAAEU,UAAU6P,MAAQ,WACzB,OAAOrP,KAAKsP,OAAS,IACpBxQ,EAAEU,UAAU+P,IAAM,SAAUzQ,GAC7B,OAAQ,IAAMkB,KAAKsP,OAAOE,QAAQ1Q,IACjCA,EAAEU,UAAUiQ,IAAM,SAAU3Q,GAC7B,OAAOkB,KAAKuP,IAAIzQ,IAAMkB,KAAKsP,OAAO7M,KAAK3D,GAAIkB,MAC1ClB,EAAEU,UAAkB,OAAI,SAAUV,GACnC,IAAIoB,EACJ,OAAQ,KAAOA,EAAIF,KAAKsP,OAAOE,QAAQ1Q,MAAYkB,KAAKsP,OAAOI,OAAOxP,EAAG,IAAI,IAC5EpB,EAAEU,UAAUmO,QAAU,WACvB,IAAI7O,EACJ,OAAQA,EAAIkB,KAAKsP,QAAQ3B,QAAQ9K,MAAM/D,EAAG4J,YACzC5J,EAhBmC,KAkBxCf,KAAKiC,MAAO,SAAUlB,GACtB,SAASoB,KAMT,SAAStC,EAAEkB,GACT,GAAI,UAAYc,EAAQI,MAAO,MAAM,IAAI8F,UAAU,wCACnD,GAAI,mBAAqBhH,EAAG,MAAM,IAAIgH,UAAU,kBAChD9F,KAAK2P,OAAS,EAAG3P,KAAK4P,UAAW,EAAI5P,KAAK6P,YAAS,EAAQ7P,KAAK8P,WAAa,GAAI7R,EAAEa,EAAGkB,MAExF,SAAS3B,EAAES,EAAGoB,GACZ,KAAO,IAAMpB,EAAE6Q,QAAS7Q,EAAIA,EAAE+Q,OAC9B,OAAO,IAAM/Q,EAAE6Q,YAAc7Q,EAAEgR,WAAWrN,KAAKvC,IAAMpB,EAAE8Q,UAAW,OAASG,GAAE,WAC3E,IAAI1Q,EAAI,IAAMP,EAAE6Q,OAASzP,EAAE8P,YAAc9P,EAAE+P,WAC3C,GAAI,OAAS5Q,EAAb,CACA,IAAIzB,EACJ,IACEA,EAAIyB,EAAEP,EAAE+Q,QACR,MAAOxR,GACP,YAAYsB,EAAEO,EAAEgQ,QAAS7R,GAE3BK,EAAEwB,EAAEgQ,QAAStS,QAPgB,IAAMkB,EAAE6Q,OAASjR,EAAIiB,GAAGO,EAAEgQ,QAASpR,EAAE+Q,YAUtE,SAASnR,EAAEI,EAAGoB,GACZ,IACE,GAAIA,IAAMpB,EAAG,MAAM,IAAIgH,UAAU,6CACjC,GAAI5F,IAAM,UAAYN,EAAQM,IAAM,mBAAqBA,GAAI,CAC3D,IAAI7B,EAAI6B,EAAEiQ,KACV,GAAIjQ,aAAatC,EAAG,OAAOkB,EAAE6Q,OAAS,EAAG7Q,EAAE+Q,OAAS3P,OAAQW,EAAE/B,GAC9D,GAAI,mBAAqBT,EAAG,YAAYJ,EA9B9C,SAAWa,EAAGoB,GACZ,OAAO,WACLpB,EAAE+D,MAAM3C,EAAGwI,YA4BiCrJ,CAAEhB,EAAG6B,GAAIpB,GAErDA,EAAE6Q,OAAS,EAAG7Q,EAAE+Q,OAAS3P,EAAGW,EAAE/B,GAC9B,MAAOJ,GACPiB,EAAEb,EAAGJ,IAGT,SAASiB,EAAEb,EAAGoB,GACZpB,EAAE6Q,OAAS,EAAG7Q,EAAE+Q,OAAS3P,EAAGW,EAAE/B,GAEhC,SAAS+B,EAAE/B,GACT,IAAMA,EAAE6Q,QAAU,IAAM7Q,EAAEgR,WAAW1O,QAAU6N,YAAW,WACxDnQ,EAAE8Q,UAAYlQ,EAAEZ,EAAE+Q,UACjB,GACH,IAAK,IAAI3P,EAAI,EAAGb,EAAIP,EAAEgR,WAAW1O,OAAQ/B,EAAIa,EAAGA,IAAK7B,EAAES,EAAGA,EAAEgR,WAAW5P,IACvEpB,EAAEgR,WAAa,KAEjB,SAASM,EAAEtR,EAAGoB,EAAGb,GACfW,KAAKgQ,YAAc,mBAAqBlR,EAAIA,EAAI,KAAMkB,KAAKiQ,WAAa,mBAAqB/P,EAAIA,EAAI,KAAMF,KAAKkQ,QAAU7Q,EAE5H,SAASpB,EAAEa,EAAGoB,GACZ,IAAIb,GAAI,EACR,IACEP,GAAE,SAAUA,GACVO,IAAMA,GAAI,EAAIX,EAAEwB,EAAGpB,OAClB,SAAUA,GACXO,IAAMA,GAAI,EAAIM,EAAEO,EAAGpB,OAErB,MAAOlB,GACP,GAAIyB,EAAG,OACPA,GAAI,EAAIM,EAAEO,EAAGtC,IAGjB,IAAIC,EAAIoR,WACNc,EAAI,mBAAqBM,GAAgBA,GAAgB,SAAUvR,GACjEjB,EAAEiB,EAAG,IAEPY,EAAI,SAAWZ,GACb,oBAAsBwR,SAAWA,SAAWA,QAAQC,KAAK,wCAAyCzR,IAEtGlB,EAAE4B,UAAiB,MAAI,SAAUV,GAC/B,OAAOkB,KAAKmQ,KAAK,KAAMrR,IACtBlB,EAAE4B,UAAU2Q,KAAO,SAAUrR,EAAGO,GACjC,IAAIX,EAAI,IAAId,EAAEsC,GACd,OAAO7B,EAAE2B,KAAM,IAAIoQ,EAAEtR,EAAGO,EAAGX,IAAKA,GAC/Bd,EAAE4S,IAAM,SAAU1R,GACnB,IAAIoB,EAAIgJ,MAAM1J,UAAUyD,MAAMlF,KAAKe,GACnC,OAAO,IAAIlB,GAAE,SAAUkB,EAAGO,GACxB,SAASzB,EAAEc,EAAGiB,GACZ,IACE,GAAIA,IAAM,UAAYC,EAAQD,IAAM,mBAAqBA,GAAI,CAC3D,IAAIkB,EAAIlB,EAAEwQ,KACV,GAAI,mBAAqBtP,EAAG,YAAYA,EAAE9C,KAAK4B,GAAG,SAAUb,GAC1DlB,EAAEc,EAAGI,KACJO,GAELa,EAAExB,GAAKiB,EAAG,MAAQtB,GAAKS,EAAEoB,GACzB,MAAOkQ,GACP/Q,EAAE+Q,IAGN,GAAI,IAAMlQ,EAAEkB,OAAQ,OAAOtC,EAAE,IAC7B,IAAK,IAAIT,EAAI6B,EAAEkB,OAAQ1C,EAAI,EAAGA,EAAIwB,EAAEkB,OAAQ1C,IAAKd,EAAEc,EAAGwB,EAAExB,QAEzDd,EAAE6S,QAAU,SAAU3R,GACvB,OAAOA,GAAK,UAAYc,EAAQd,IAAMA,EAAEgB,cAAgBlC,EAAIkB,EAAI,IAAIlB,GAAE,SAAUsC,GAC9EA,EAAEpB,OAEHlB,EAAE8S,OAAS,SAAU5R,GACtB,OAAO,IAAIlB,GAAE,SAAUsC,EAAGb,GACxBA,EAAEP,OAEHlB,EAAE+S,KAAO,SAAU7R,GACpB,OAAO,IAAIlB,GAAE,SAAUsC,EAAGb,GACxB,IAAK,IAAIzB,EAAI,EAAGS,EAAIS,EAAEsC,OAAQ/C,EAAIT,EAAGA,IAAKkB,EAAElB,GAAGuS,KAAKjQ,EAAGb,OAExDzB,EAAEgT,gBAAkB,SAAU9R,GAC/BiR,EAAIjR,GACHlB,EAAEiT,yBAA2B,SAAU/R,GACxCY,EAAIZ,GAC6BnB,EAAOD,QAAUC,EAAOD,QAAUE,EAAIkB,EAAEgS,UAAYhS,EAAEgS,QAAUlT,GAhHvF,CAiHZoC,MAAO,WACP,IAAIlB,EAAI,UAAYc,EAAQO,OAAO4Q,gBACjC7Q,EAAI,mBAAqBkI,SAAS4I,gBAC9BlS,GAAKoB,IAWX,oBAAsB2N,SAAY,WAChC,IAAI/O,EAAIR,OAAOC,eACb2B,EAAI+Q,KAAKC,MAAQ,IACjB7R,EAAI,WACFW,KAAK7B,KAAO,QAAU,IAAMiF,KAAK+N,WAAa,GAAMjR,IAAM,MAE9Db,EAAEG,UAAY,CACZyE,IAAK,SAAa/D,EAAGb,GACnB,IAAIzB,EAAIsC,EAAEF,KAAK7B,MACf,OAAOP,GAAKA,EAAE,KAAOsC,EAAItC,EAAE,GAAKyB,EAAIP,EAAEoB,EAAGF,KAAK7B,KAAM,CAClDU,MAAO,CAACqB,EAAGb,GACX+G,UAAU,IACRpG,MAENvB,IAAK,SAAaK,GAChB,IAAIoB,EACJ,OAAQA,EAAIpB,EAAEkB,KAAK7B,QAAU+B,EAAE,KAAOpB,EAAIoB,EAAE,QAAK,GAEnD,OAAU,SAAiBpB,GACzB,IAAIoB,EAAIpB,EAAEkB,KAAK7B,MACf,SAAO+B,GAAKA,EAAE,KAAOpB,KAAKoB,EAAE,GAAKA,EAAE,QAAK,GAAQ,IAElDqP,IAAK,SAAazQ,GAChB,IAAIoB,EAAIpB,EAAEkB,KAAK7B,MACf,QAAO+B,GAAIA,EAAE,KAAOpB,IAErBqB,OAAO0N,QAAUxO,EA1BY,GA2B7B,SAAUP,GACb,SAASoB,EAAEpB,GACTsS,EAAE3O,KAAK3D,GAAIgC,IAAMA,GAAI,EAAIf,EAAEnC,IAK7B,SAASA,IACPkD,GAAI,EACJ,IAAIhC,EAAIsS,EACRA,EAAI,GAAItS,EAAEuS,MAAK,SAAUvS,EAAGoB,GAC1B,OAAOpB,EAAEwS,KAAOpR,EAAEoR,QAEpB,IAAIpR,GAAI,EACRpB,EAAE6O,SAAQ,SAAU7O,GAClB,IAAIO,EAAIP,EAAEyS,eAId,SAAWzS,GACTA,EAAE0S,OAAO7D,SAAQ,SAAUzN,GACzB,IAAIb,EAAIrB,EAAES,IAAIyB,GACdb,GAAKA,EAAEsO,SAAQ,SAAUzN,GACvBA,EAAEuR,WAAa3S,GAAKoB,EAAEwR,kCAPxBrT,CAAES,GAAIO,EAAE+B,SAAWtC,EAAE6S,UAAUtS,EAAGP,GAAIoB,GAAI,MACxCA,GAAKtC,IAUX,SAASc,EAAEI,EAAGoB,GACZ,IAAK,IAAIb,EAAIP,EAAGO,EAAGA,EAAIA,EAAEgN,WAAY,CACnC,IAAIzO,EAAII,EAAES,IAAIY,GACd,GAAIzB,EAAG,IAAK,IAAIS,EAAI,EAAGA,EAAIT,EAAEwD,OAAQ/C,IAAK,CACxC,IAAIK,EAAId,EAAES,GACRsB,EAAIjB,EAAEkT,QACR,GAAIvS,IAAMP,GAAKa,EAAEkS,QAAS,CACxB,IAAIhR,EAAIX,EAAEP,GACVkB,GAAKnC,EAAEoT,QAAQjR,MAKvB,SAASlB,EAAEb,GACTkB,KAAK2R,UAAY7S,EAAGkB,KAAKwR,OAAS,GAAIxR,KAAK+R,SAAW,GAAI/R,KAAKsR,OAASU,EAE1E,SAASnR,EAAE/B,EAAGoB,GACZF,KAAKwI,KAAO1J,EAAGkB,KAAK0D,OAASxD,EAAGF,KAAKiS,WAAa,GAAIjS,KAAKkS,aAAe,GAAIlS,KAAKmS,gBAAkB,KAAMnS,KAAKoS,YAAc,KAAMpS,KAAKqS,cAAgB,KAAMrS,KAAKsS,mBAAqB,KAAMtS,KAAKuS,SAAW,KAMjN,SAAStU,EAAEa,EAAGoB,GACZ,OAAOS,EAAI,IAAIE,EAAE/B,EAAGoB,GAEtB,SAASrC,EAAEiB,GACT,OAAO0T,KAASA,EARlB,SAAW1T,GACT,IAAIoB,EAAI,IAAIW,EAAE/B,EAAE0J,KAAM1J,EAAE4E,QACxB,OAAOxD,EAAE+R,WAAanT,EAAEmT,WAAWhP,QAAS/C,EAAEgS,aAAepT,EAAEoT,aAAajP,QAAS/C,EAAEiS,gBAAkBrT,EAAEqT,gBAAiBjS,EAAEkS,YAActT,EAAEsT,YAAalS,EAAEmS,cAAgBvT,EAAEuT,cAAenS,EAAEoS,mBAAqBxT,EAAEwT,mBAAoBpS,EAAEqS,SAAWzT,EAAEyT,SAAUrS,EAMhPkQ,CAAEzP,IAAM4R,SAAWzT,EAAG0T,GAQ5C,SAAStU,EAAEY,EAAGoB,GACZ,OAAOpB,IAAMoB,EAAIpB,EAAI0T,GAJvB,SAAW1T,GACT,OAAOA,IAAM0T,GAAK1T,IAAM6B,EAGEjB,CAAEZ,GAAK0T,EAAI,KAEvC,SAASC,EAAE3T,EAAGoB,EAAGb,GACfW,KAAKyR,SAAW3S,EAAGkB,KAAK0D,OAASxD,EAAGF,KAAK4R,QAAUvS,EAAGW,KAAK0S,uBAAyB,GAEtF,IAAK5T,EAAE6T,mBAAoB,CACzB,IAAI5S,EACF/B,EAAI,IAAI6P,QACV,GAAI,eAAezL,KAAKwQ,UAAUC,WAAY9S,EAAIkP,gBAAgB,GAAI9O,OAAOkQ,aAActQ,EAAII,OAAOkQ,iBAAkB,CACtH,IAAIyC,EAAI,GACNC,EAAIpQ,OAAOS,KAAK+N,UAClBhR,OAAOoH,iBAAiB,WAAW,SAAUzI,GAC3C,GAAIA,EAAEkU,OAASD,EAAG,CAChB,IAAI7S,EAAI4S,EACRA,EAAI,GAAI5S,EAAEyN,SAAQ,SAAU7O,GAC1BA,WAGFiB,EAAI,SAAWjB,GACjBgU,EAAErQ,KAAK3D,GAAIqB,OAAO8S,YAAYF,EAAG,MAGrC,IA8BIpS,EAAG6R,EA9BH1R,GAAI,EACNsQ,EAAI,GACJY,EAAI,EACNrS,EAAEH,UAAY,CACZ0T,QAAS,SAAiBpU,EAAGoB,GAC3B,GAAIpB,EAtFV,SAAWA,GACT,OAAOqB,OAAOgT,mBAAqBhT,OAAOgT,kBAAkBC,aAAatU,IAAMA,EAqFnEO,CAAEP,IAAKoB,EAAEmT,YAAcnT,EAAEqJ,aAAerJ,EAAEoT,eAAiBpT,EAAEqT,oBAAsBrT,EAAEqJ,YAAcrJ,EAAEsT,iBAAmBtT,EAAEsT,gBAAgBpS,SAAWlB,EAAEqJ,YAAcrJ,EAAEuT,wBAA0BvT,EAAEoT,cAAe,MAAM,IAAII,YACpO,IAAI9V,EAAII,EAAES,IAAIK,GACdlB,GAAKI,EAAEiG,IAAInF,EAAGlB,EAAI,IAClB,IAAK,IAAIS,EAAGK,EAAI,EAAGA,EAAId,EAAEwD,OAAQ1C,IAAK,GAAId,EAAEc,GAAG+S,WAAazR,KAAM,EAChE3B,EAAIT,EAAEc,IAAMiV,kBAAmBtV,EAAEuT,QAAU1R,EAC3C,MAEF7B,IAAMA,EAAI,IAAIoU,EAAEzS,KAAMlB,EAAGoB,GAAItC,EAAE6E,KAAKpE,GAAI2B,KAAKwR,OAAO/O,KAAK3D,IAAKT,EAAEuV,gBAElEC,WAAY,WACV7T,KAAKwR,OAAO7D,SAAQ,SAAU7O,GAC5B,IAAK,IAAIoB,EAAIlC,EAAES,IAAIK,GAAIO,EAAI,EAAGA,EAAIa,EAAEkB,OAAQ/B,IAAK,CAC/C,IAAIzB,EAAIsC,EAAEb,GACV,GAAIzB,EAAE6T,WAAazR,KAAM,CACvBpC,EAAE+V,kBAAmBzT,EAAEwP,OAAOrQ,EAAG,GACjC,UAGHW,MAAOA,KAAK+R,SAAW,IAE5BR,YAAa,WACX,IAAIzS,EAAIkB,KAAK+R,SACb,OAAO/R,KAAK+R,SAAW,GAAIjT,IAI/B2T,EAAEjT,UAAY,CACZsS,QAAS,SAAiBhT,GACxB,IAAIO,EAAIW,KAAKyR,SAASM,SACpBnU,EAAIyB,EAAE+B,OACR,GAAI/B,EAAE+B,OAAS,EAAG,CAChB,IACE1C,EAAIR,EADEmB,EAAEzB,EAAI,GACHkB,GACX,GAAIJ,EAAG,YAAaW,EAAEzB,EAAI,GAAKc,QAC1BwB,EAAEF,KAAKyR,UACdpS,EAAEzB,GAAKkB,GAET8U,aAAc,WACZ5T,KAAK8T,cAAc9T,KAAK0D,SAE1BoQ,cAAe,SAAuBhV,GACpC,IAAIoB,EAAIF,KAAK4R,QACb1R,EAAEqJ,YAAczK,EAAEyI,iBAAiB,kBAAmBvH,MAAM,GAAKE,EAAEoT,eAAiBxU,EAAEyI,iBAAiB,2BAA4BvH,MAAM,GAAKE,EAAEmT,WAAavU,EAAEyI,iBAAiB,kBAAmBvH,MAAM,IAAME,EAAEmT,WAAanT,EAAE2R,UAAY/S,EAAEyI,iBAAiB,iBAAkBvH,MAAM,IAEzR2T,gBAAiB,WACf3T,KAAK+T,iBAAiB/T,KAAK0D,SAE7BqQ,iBAAkB,SAA0BjV,GAC1C,IAAIoB,EAAIF,KAAK4R,QACb1R,EAAEqJ,YAAczK,EAAEkV,oBAAoB,kBAAmBhU,MAAM,GAAKE,EAAEoT,eAAiBxU,EAAEkV,oBAAoB,2BAA4BhU,MAAM,GAAKE,EAAEmT,WAAavU,EAAEkV,oBAAoB,kBAAmBhU,MAAM,IAAME,EAAEmT,WAAanT,EAAE2R,UAAY/S,EAAEkV,oBAAoB,iBAAkBhU,MAAM,IAErSiU,qBAAsB,SAA8BnV,GAClD,GAAIA,IAAMkB,KAAK0D,OAAQ,CACrB1D,KAAK8T,cAAchV,GAAIkB,KAAK0S,uBAAuBjQ,KAAK3D,GACxD,IAAIoB,EAAIlC,EAAES,IAAIK,GACdoB,GAAKlC,EAAEiG,IAAInF,EAAGoB,EAAI,IAAKA,EAAEuC,KAAKzC,QAGlC0R,yBAA0B,WACxB,IAAI5S,EAAIkB,KAAK0S,uBACb1S,KAAK0S,uBAAyB,GAAI5T,EAAE6O,SAAQ,SAAU7O,GACpDkB,KAAK+T,iBAAiBjV,GACtB,IAAK,IAAIoB,EAAIlC,EAAES,IAAIK,GAAIO,EAAI,EAAGA,EAAIa,EAAEkB,OAAQ/B,IAAK,GAAIa,EAAEb,KAAOW,KAAM,CAClEE,EAAEwP,OAAOrQ,EAAG,GACZ,SAEDW,OAELkU,YAAa,SAAqBpV,GAChC,OAAQA,EAAEqV,2BAA4BrV,EAAE0J,MACtC,IAAK,kBACH,IAAItI,EAAIpB,EAAEsV,SACR/U,EAAIP,EAAEuV,YAAYC,aAClB1W,EAAIkB,EAAE4E,QACNrF,EAAI,IAAIJ,EAAE,aAAcL,IACxByU,cAAgBnS,EAAG7B,EAAEiU,mBAAqBjT,EAC5C,IAAIM,EAAIb,EAAEyV,aAAeC,cAAcC,SAAW,KAAO3V,EAAE4V,UAC3DhW,EAAEd,GAAG,SAAUkB,GACb,OAAQA,EAAEyK,YAAczK,EAAE0U,iBAAmB1U,EAAE0U,gBAAgBpS,SAAW,IAAMtC,EAAE0U,gBAAgBhE,QAAQtP,KAAO,IAAMpB,EAAE0U,gBAAgBhE,QAAQnQ,QAAK,EAASP,EAAEyU,kBAAoB1V,EAAE8B,GAAKtB,KAE9L,MACF,IAAK,2BACH,IACEA,EAAIJ,EAAE,gBADJL,EAAIkB,EAAE4E,QAER/D,EAAIb,EAAE4V,UACRhW,EAAEd,GAAG,SAAUkB,GACb,OAAOA,EAAEwU,cAAgBxU,EAAE2U,sBAAwB5V,EAAE8B,GAAKtB,OAAI,KAEhE,MACF,IAAK,iBACH2B,KAAKiU,qBAAqBnV,EAAE4E,QAC9B,IAAK,kBACH,IAAI7C,EACFuP,EACA1Q,EAAIZ,EAAE4E,OACR,oBAAsB5E,EAAE0J,MAAQ3H,EAAI,CAACnB,GAAI0Q,EAAI,KAAOvP,EAAI,GAAIuP,EAAI,CAAC1Q,IACjE,IAAIxB,EAAIwB,EAAEyS,gBACRM,EAAI/S,EAAE0S,aACN/T,EAAIJ,EAAE,YAAaa,EAAE4E,OAAO2I,aAC5B4F,WAAapR,EAAGxC,EAAE6T,aAAe9B,EAAG/R,EAAE8T,gBAAkBjU,EAAGG,EAAE+T,YAAcK,EAAG/T,EAAEI,EAAEuV,aAAa,SAAUvV,GACzG,OAAOA,EAAEuU,UAAYhV,OAAI,KArInCsC,EAAI6R,OAAI,IA0IL1T,EAAE6T,mBAAqBhT,EAAGb,EAAE6V,mBAAqB7V,EAAE6V,iBAAmBhV,EAAGA,EAAEiV,eAAgB,IAnM7F,CAqMHC,MAAO,WACP,aAEA,IAAK1U,OAAO2U,cAAgB3U,OAAO2U,YAAY5D,IAAK,CAClD,IAAIpS,EAAImS,KAAKC,MACb/Q,OAAO2U,YAAc,CACnB5D,IAAK,WACH,OAAOD,KAAKC,MAAQpS,IAsB1B,GAlBAqB,OAAO4U,wBAA0B5U,OAAO4U,sBAAwB,WAC9D,IAAIjW,EAAIqB,OAAO6U,6BAA+B7U,OAAO8U,yBACrD,OAAOnW,EAAI,SAAUoB,GACnB,OAAOpB,GAAE,WACPoB,EAAE4U,YAAY5D,WAEd,SAAUpS,GACZ,OAAOqB,OAAO8O,WAAWnQ,EAAG,IAAM,KAP0B,IAS1DqB,OAAO+U,uBAAyB/U,OAAO+U,qBACpC/U,OAAOgV,4BAA8BhV,OAAOiV,yBAA2B,SAAUtW,GACtFuW,aAAavW,MAGT,WACN,IAAIA,EAAIsJ,SAASW,YAAY,SAC7B,OAAOjK,EAAEkK,UAAU,OAAO,GAAI,GAAKlK,EAAEuP,iBAAkBvP,EAAE8N,iBAFnD,GAIA,CACN,IAAIvN,EAAIiW,MAAM9V,UAAU6O,eACxBiH,MAAM9V,UAAU6O,eAAiB,WAC/BrO,KAAK6I,aAAexJ,EAAEtB,KAAKiC,MAAO1B,OAAOC,eAAeyB,KAAM,mBAAoB,CAChFvB,IAAK,WACH,OAAO,GAET0H,cAAc,MAIpB,IAAIvI,EAAI,UAAUwE,KAAKwQ,UAAUC,WACjC,KAAM1S,OAAOoV,aAAe3X,GAAK,mBAAqBuC,OAAOoV,eAAiBpV,OAAOoV,YAAc,SAAUzW,EAAGoB,GAC9GA,EAAIA,GAAK,GACT,IAAIb,EAAI+I,SAASW,YAAY,eAC7B,OAAO1J,EAAEmW,gBAAgB1W,EAAG2W,QAAQvV,EAAE0I,SAAU6M,QAAQvV,EAAE2I,YAAa3I,EAAE4I,QAASzJ,GACjFc,OAAOoV,YAAY/V,UAAYW,OAAOmV,MAAM9V,YAAaW,OAAOmV,OAAS1X,GAAK,mBAAqBuC,OAAOmV,MAAO,CAClH,IAAIjX,EAAI8B,OAAOmV,MACfnV,OAAOmV,MAAQ,SAAUxW,EAAGoB,GAC1BA,EAAIA,GAAK,GACT,IAAIb,EAAI+I,SAASW,YAAY,SAC7B,OAAO1J,EAAE2J,UAAUlK,EAAG2W,QAAQvV,EAAE0I,SAAU6M,QAAQvV,EAAE2I,aAAcxJ,GACjEc,OAAOmV,MAAM9V,UAAYnB,EAAEmB,WAnDzB,CAqDPW,OAAOuV,eAAgBvV,OAAOwV,eAAiBxV,OAAOwV,gBAAkB,CACxEC,MAAO,IACN,SAAU9W,GACX,IAAIoB,EAAIpB,EAAE8W,MACRvW,EAAI,GASNP,EAAE+W,UARI,SAAW/W,GACbO,EAAEoD,KAAK3D,IAOMA,EAAEgX,kBALb,WACFzW,EAAEsO,SAAQ,SAAUzN,GAClBA,EAAEpB,OAGkCA,EAAEiX,UAAYN,QAAQrN,SAAS4I,iBAAkBlS,EAAEkX,KAAO,UAAU5T,KAAKwQ,UAAUC,WAAY/T,EAAEmX,WAAa/V,EAAEgW,UAAYpX,EAAEiX,YAAc5V,OAAOgT,qBAAuBhT,OAAOgW,aAAehW,OAAOgW,YAAYF,WAX5P,CAYD9V,OAAOwV,gBAAiBxV,OAAOwV,eAAeE,WAAU,SAAU/W,GAClE,SAASoB,EAAEpB,EAAGoB,IAKd,SAASb,EAAEP,EAAGoB,EAAGtC,GACf,IAAIS,EAAIS,EAAEsX,kBACV,IAAK/X,EAAG,IAAKA,EAAIS,EAAEuX,WAAYhY,GAAKA,EAAEiY,WAAaC,KAAKC,cAAenY,EAAIA,EAAE+T,YAC7E,KAAO/T,IAAgB,IAAZ6B,EAAE7B,EAAGT,IAAayB,EAAEhB,EAAG6B,EAAGtC,GAAIS,EAAIA,EAAEoY,mBAC/C,OAAO,MARPpX,CAAEP,GAAG,SAAUA,GACb,QAAOoB,EAAEpB,SAAelB,EAAEkB,EAAGoB,MAC3BtC,EAAEkB,EAAGoB,GAQX,SAAStC,EAAEkB,EAAGO,GACZ,IAAK,IAAIzB,EAAIkB,EAAE4X,WAAY9Y,GAAIsC,EAAEtC,EAAGyB,GAAIzB,EAAIA,EAAE+Y,gBAYhD,IAAIhX,EAAIQ,OAAOgW,YAAchW,OAAOgW,YAAYS,iBAAmB,OACnE9X,EAAE+X,gBAXF,SAAW/X,EAAGoB,IAGd,SAASxB,EAAEI,EAAGoB,EAAGb,GACf,GAAIP,EAAIqB,OAAO2W,KAAKhY,KAAMO,EAAEmQ,QAAQ1Q,IAAM,GAAI,CAC5CO,EAAEoD,KAAK3D,GACP,IAAK,IAAIlB,EAAGS,EAAIS,EAAEqO,iBAAiB,YAAcxN,EAAI,KAAMkB,EAAI,EAAGuP,EAAI/R,EAAE+C,OAAQgP,EAAIvP,IAAMjD,EAAIS,EAAEwC,IAAKA,IAAKjD,EAAU,QAAKc,EAAEd,EAAU,OAAGsC,EAAGb,GAC3Ia,EAAEpB,IANJJ,CAAEI,EAAGoB,EAAG,KAUapB,EAAEiY,WAAa7W,KACpCC,OAAOwV,eAAeE,WAAU,SAAU/W,GAC5C,SAASoB,EAAEpB,EAAGoB,GACZ,OAAOb,EAAEP,EAAGoB,IAAMtC,EAAEkB,EAAGoB,GAEzB,SAASb,EAAEa,EAAGb,GACZ,QAAOP,EAAEkY,QAAQ9W,EAAGb,SAAgBA,GAAKM,EAAEO,IAE7C,SAAStC,EAAEkB,EAAGoB,GACZY,EAAEhC,GAAG,SAAUA,GACb,QAAOO,EAAEP,EAAGoB,SAAU,KAG1B,SAAS7B,EAAES,GACT0T,EAAE/P,KAAK3D,GAAI6B,IAAMA,GAAI,EAAIsO,WAAWvQ,IAEtC,SAASA,IACPiC,GAAI,EACJ,IAAK,IAAI7B,EAAGoB,EAAIsS,EAAGnT,EAAI,EAAGzB,EAAIsC,EAAEkB,OAAQxD,EAAIyB,IAAMP,EAAIoB,EAAEb,IAAKA,IAAKP,IAClE0T,EAAI,GAEN,SAAS7S,EAAEb,GACTkT,EAAI3T,GAAE,WACJwC,EAAE/B,MACC+B,EAAE/B,GAET,SAAS+B,EAAE/B,GACTA,EAAEmY,eAAiBnY,EAAEoY,aAAepY,EAAEoY,YAAa,EAAIpY,EAAEqY,kBAAoBrY,EAAEqY,oBAOjF,SAASlZ,EAAEa,GACTkT,EAAI3T,GAAE,WACJR,EAAEiB,MACCjB,EAAEiB,GAET,SAASjB,EAAEiB,GACTA,EAAEmY,cAAgBnY,EAAEoY,aAAepY,EAAEoY,YAAa,EAAIpY,EAAEsY,kBAAoBtY,EAAEsY,oBAchF,SAASlZ,EAAEY,EAAGO,GACZ,GAAI0T,EAAEsE,IAAK,CACT,IAAIzZ,EAAIyB,EAAE,GACV,GAAIzB,GAAK,cAAgBA,EAAE4K,MAAQ5K,EAAEqU,YAAcrU,EAAEqU,WAAY,CAC/D,IAAK,IAAI5T,EAAIT,EAAEqU,WAAW,GAAI5T,GAAKA,IAAM+J,WAAa/J,EAAEiZ,MAAOjZ,EAAIA,EAAEgO,WACrE,IAAI3N,EAAIL,IAAMA,EAAEkZ,KAAOlZ,EAAEmZ,MAAQnZ,EAAEiZ,MAAQjZ,EAAEiZ,KAAKG,YAAc,GAChE/Y,EAAIA,EAAEgZ,MAAM,MAAMhK,QAAQgK,MAAM,KAAKC,MAEvCrH,QAAQsH,MAAM,sBAAuBvY,EAAE+B,OAAQ1C,GAAK,IAEtD,IAAIiB,EAtBN,SAAWb,GACT,IAAK,IAAIoB,EAAIpB,EAAGO,EAAIc,OAAO2W,KAAK1O,UAAWlI,GAAI,CAC7C,GAAIA,GAAKb,EAAG,OAAO,EACnBa,EAAIA,EAAEmM,YAAcnM,EAAEoW,WAAaC,KAAKsB,wBAA0B3X,EAAEoX,MAmB9DvH,CAAEjR,GACVO,EAAEsO,SAAQ,SAAU7O,GAClB,cAAgBA,EAAE0J,OAASsP,EAAEhZ,EAAEmT,YAAY,SAAUnT,GACnDA,EAAE2Y,WAAavX,EAAEpB,EAAGa,MAClBmY,EAAEhZ,EAAEoT,cAAc,SAAUpT,GAC9BA,EAAE2Y,WAxCR,SAAW3Y,GACTb,EAAEa,GAAIgC,EAAEhC,GAAG,SAAUA,GACnBb,EAAEa,MAsCesR,CAAEtR,UAEjBiU,EAAEsE,KAAO/G,QAAQyH,WAOvB,SAAShY,EAAEjB,GACT,IAAKA,EAAEkZ,WAAY,CACjB,IAAI9X,EAAI,IAAIyU,iBAAiBzW,EAAEkB,KAAKY,KAAMlB,IAC1CoB,EAAEgT,QAAQpU,EAAG,CACXuU,WAAW,EACXxB,SAAS,IACP/S,EAAEkZ,WAAa9X,GAGvB,SAASlC,EAAEc,GACTA,EAAIqB,OAAO2W,KAAKhY,GAAIiU,EAAEsE,KAAO/G,QAAQsH,MAAM,oBAAqB9Y,EAAEmZ,QAAQP,MAAM,KAAKC,OAErFzX,EAAEpB,EADMA,IAAMqB,OAAO2W,KAAK1O,WACjBrI,EAAEjB,GAAIiU,EAAEsE,KAAO/G,QAAQyH,WAKlC,IAAIhF,EAAIjU,EAAE8W,MACR9U,EAAIhC,EAAEiY,WACN3F,EAAItS,EAAE+X,gBACN7E,EAAI7R,OAAOwU,iBAAiBC,eAAiB7B,EAAE,qBACjDjU,EAAEoZ,qBAAuBlG,EAAGlT,EAAEqZ,qBAAuBnG,EACrD,IAAIrR,GAAI,EACN6R,EAAI,GACJsF,EAAI5O,MAAM1J,UAAUmO,QAAQ5P,KAAKqB,KAAK8J,MAAM1J,UAAUmO,SACtDyK,EAAIC,QAAQ7Y,UAAU8Y,iBACxBF,IAAMC,QAAQ7Y,UAAU8Y,iBAAmB,WACzC,IAAIxZ,EAAIsZ,EAAEra,KAAKiC,MACf,OAAOG,OAAOwV,eAAe4C,YAAYvY,MAAOlB,IAC9CA,EAAEyZ,YA3DN,SAAWzZ,GACT,GAAIA,EAAE4X,aAAe5X,EAAE4X,WAAW8B,UAAW,CAC3CzF,EAAEsE,KAAO/G,QAAQmI,IAAI,6BAA8B3Z,EAAE2Y,WACrD,IAAK,IAAIvX,EAAIpB,EAAE4X,WAAYxW,GAAIH,EAAEG,GAAIA,EAAIA,EAAEyW,kBAwDxB7X,EAAE4Z,oBAfzB,SAAW5Z,GACTsS,EAAEtS,EAAGd,IAc2Cc,EAAE6Z,gBAAkB3a,EAAGc,EAAE8Z,eAAiBhb,EAAGkB,EAAE+Z,WAAa3Y,EAAGpB,EAAEga,SAAWnZ,EAAGb,EAAEyS,YAlCnI,SAAWzS,GACT,KAAKA,EAAIqB,OAAO2W,KAAKhY,MAAUA,EAAIqB,OAAO2W,KAAK1O,WAAYtJ,EAAEuN,YAAavN,EAAIA,EAAEuN,WAChF,IAAInM,EAAIpB,EAAEkZ,WACV9X,IAAMhC,EAAEY,EAAGoB,EAAEqR,eAAgB7S,SAgC7ByB,OAAOwV,eAAeE,WAAU,SAAU/W,GAQ5C,SAASO,EAAEa,EAAGb,EAAGhB,GACf,OAAOsB,EAAEqX,SAAW1G,QAAQsH,MAAM,WAAY1X,EAAEuX,WAAYpY,EAAE0Z,IAAM7Y,EAAEoO,aAAa,KAAMjP,EAAE0Z,IAAKnb,EAAEsC,EAAGb,GAAIa,EAAE+W,cAAe,EAW5H,SAAWnY,GACTA,EAAEka,iBAAmBla,EAAEka,kBAZuGta,CAAEwB,GAAI7B,GAAKS,EAAEga,SAAS5Y,GAAIpB,EAAE8Z,eAAe1Y,EAAG7B,GAAIsB,EAAEqX,SAAW1G,QAAQyH,WAAY7X,EAEnN,SAAStC,EAAEkB,EAAGoB,GACZ5B,OAAO2a,WAET,SAAWna,EAAGoB,EAAGb,GACf,IAAK,IAAIzB,EAAI,GAAIS,EAAI6B,EAAG7B,IAAMgB,GAAKhB,IAAM6a,YAAY1Z,WAAY,CAC/D,IAAK,IAAId,EAAGiB,EAAIrB,OAAO6a,oBAAoB9a,GAAIwC,EAAI,EAAGnC,EAAIiB,EAAEkB,GAAIA,IAAKjD,EAAEc,KAAOJ,OAAOC,eAAeO,EAAGJ,EAAGJ,OAAO8a,yBAAyB/a,EAAGK,IAAKd,EAAEc,GAAK,GACzJL,EAAIC,OAAO+a,eAAehb,IALoBA,CAAES,EAAGoB,EAAEV,UAAWU,EAAU,QAAzDpB,EAAEma,UAAY/Y,EAAEV,UAWrC,IAAIG,EAAIb,EAAE8W,MACV9W,EAAEkY,QAvBF,SAAW9W,EAAGtC,GACZ,GAAI,aAAesC,EAAEuX,WAAatX,OAAOmZ,qBAAuBA,oBAAoBC,UAAYD,oBAAoBC,SAASrZ,IAAKA,EAAE+W,cAAgB/W,EAAEoW,WAAaC,KAAKC,aAAc,CACpL,IAAInY,EAAI6B,EAAEgK,aAAa,MACrBxL,EAAII,EAAE0a,wBAAwBtZ,EAAEuX,YAAc3Y,EAAE0a,wBAAwBnb,GAC1E,GAAIK,IAAML,GAAKK,EAAE+a,KAAOvZ,EAAEuX,YAAcpZ,IAAMK,EAAW,SAAI,OAAOW,EAAEa,EAAGxB,EAAGd,KAmBjEkB,EAAE4a,sBAAwBra,EAAGP,EAAE6a,mBAAqB/b,KACjEuC,OAAOwV,eAAeE,WAAU,SAAU/W,GAS5C,SAASO,EAAEP,GACT,IAAKA,EAAEwP,aAAasL,YAAa,CAC/B,IAAI1Z,EAAIpB,EAAEwP,aACVxP,EAAEwP,aAAe,SAAUxP,EAAGO,GAC5BzB,EAAEG,KAAKiC,KAAMlB,EAAGO,EAAGa,IAErB,IAAIb,EAAIP,EAAE0P,gBACV1P,EAAE0P,gBAAkB,SAAU1P,GAC5BlB,EAAEG,KAAKiC,KAAMlB,EAAG,KAAMO,IACrBP,EAAEwP,aAAasL,aAAc,GAGpC,SAAShc,EAAEkB,EAAGoB,EAAGb,GACfP,EAAIA,EAAE+a,cACN,IAAIjc,EAAIoC,KAAKkK,aAAapL,GAC1BO,EAAEwD,MAAM7C,KAAM0I,WACd,IAAIrK,EAAI2B,KAAKkK,aAAapL,GAC1BkB,KAAK8Z,0BAA4Bzb,IAAMT,GAAKoC,KAAK8Z,yBAAyBhb,EAAGlB,EAAGS,GA2BlF,SAASJ,EAAEa,GACT,OAAOA,EAAI6B,EAAE7B,EAAE+a,oBAAiB,EAKlC,SAAS9J,EAAEjR,GACT,OAAO,WACL,OAXJ,SAAWA,GACT,OAAOiU,EAAE+E,EAAEhZ,EAAE2a,KAAM3a,GAUVsR,CAAEtR,IAMb,SAASZ,EAAEY,EAAGoB,GACZpB,IAAMA,EAAIA,EAAE+a,eAAgB3Z,IAAMA,EAAIA,EAAE2Z,eACxC,IAKIjc,EALAyB,EAAIpB,EAAEiC,GAAKpB,GACf,GAAIO,EAAG,CACL,GAAIP,GAAKO,EAAEoa,KAAOvZ,GAAKb,EAAE0Z,GAAI,OAAO,IAAI1Z,EAAE0a,KAC1C,IAAK7Z,IAAMb,EAAE0Z,GAAI,OAAO,IAAI1Z,EAAE0a,KAGhC,OAAO7Z,IAAKtC,EAAIM,EAAEY,IAAMwP,aAAa,KAAMpO,GAAItC,IAAMA,EAAIka,EAAEhZ,GAAIA,EAAE0Q,QAAQ,MAAQ,GAAK1O,EAAElD,EAAGsb,aAActb,GAE3G,SAAS6U,EAAE3T,EAAGoB,GACZ,IAAIb,EAAIP,EAAEoB,GACVpB,EAAEoB,GAAK,WACL,IAAIpB,EAAIO,EAAEwD,MAAM7C,KAAM0I,WACtB,OAAOoK,EAAEhU,GAAIA,GAGjB,IAAIiB,EACF/B,GAAKc,EAAEkX,KAAMlX,EAAE4Z,qBACf5F,EAAIhU,EAAE+Z,WACN9F,EAAIjU,EAAE4a,sBACN5Y,EAAIhC,EAAE6a,mBACNvI,EAAItS,EAAEmX,UACNjE,EAAI,CAAC,iBAAkB,gBAAiB,YAAa,gBAAiB,gBAAiB,mBAAoB,iBAAkB,iBAC7HrR,EAAI,GACJ6R,EAAI,+BACJsF,EAAI1P,SAAS+D,cAAc/M,KAAKgJ,UAChCgQ,EAAIhQ,SAAS4R,gBAAgB5a,KAAKgJ,UACpCrI,EAAIzB,OAAO2a,WAAa7H,EAAI,SAAUtS,EAAGoB,GACvC,OAAOpB,aAAaoB,GAClB,SAAUpB,EAAGoB,GACf,GAAIpB,aAAaoB,EAAG,OAAO,EAC3B,IAAK,IAAIb,EAAIP,EAAGO,GAAI,CAClB,GAAIA,IAAMa,EAAEV,UAAW,OAAO,EAC9BH,EAAIA,EAAE4Z,UAER,OAAO,GACNxG,EAAE8D,KAAK/W,UAAW,aAAciT,EAAErK,SAAU,cAAeA,SAAS4I,gBAvGvE,SAAW9Q,EAAGtC,GACZ,IAAIwS,EAAIxS,GAAK,GACb,IAAKsC,EAAG,MAAM,IAAI+Z,MAAM,qEACxB,GAAI/Z,EAAEsP,QAAQ,KAAO,EAAG,MAAM,IAAIyK,MAAM,uGAAyGtX,OAAOzC,GAAK,MAC7J,GAuBF,SAAWpB,GACT,IAAK,IAAIoB,EAAI,EAAGA,EAAI8R,EAAE5Q,OAAQlB,IAAK,GAAIpB,IAAMkT,EAAE9R,GAAI,OAAO,EAxBtD7B,CAAE6B,GAAI,MAAM,IAAI+Z,MAAM,oFAAsFtX,OAAOzC,GAAK,gCAC5H,GAAIjC,EAAEiC,GAAI,MAAM,IAAI+Z,MAAM,+CAAiDtX,OAAOzC,GAAK,2BACvF,OAAOkQ,EAAE5Q,YAAc4Q,EAAE5Q,UAAYlB,OAAOY,OAAOga,YAAY1Z,YAAa4Q,EAAE8J,OAASha,EAAE2Z,cAAezJ,EAAW,UAAMA,EAAW,QAAIA,EAAW,QAAEyJ,eAAgBzJ,EAAE+J,UAAY/J,EAAE+J,WAAa,GAAI/J,EAAEgK,SAwB1M,SAAS1b,EAAEI,GACT,IAAIoB,EAAIjC,EAAEa,GACV,OAAOoB,EAAIxB,EAAEwB,EAAW,SAAGma,OAAO,CAACna,IAAM,GA1B0KxB,CAAE0R,EAAW,SA4BlO,SAAWtR,GACT,IAAK,IAAIoB,EAAGb,EAAIP,EAAW,QAAGlB,EAAI,EAAGsC,EAAIpB,EAAEsb,SAASxc,GAAIA,IAAKyB,EAAIa,EAAE6Y,IAAM7Y,EAAEuZ,IAC3E3a,EAAE2a,IAAMpa,GAAKP,EAAEob,OAAQ7a,IAAMP,EAAEia,GAAKja,EAAEob,QA9B8Lva,CAAEyQ,GAgCxO,SAAWtR,GACT,IAAKR,OAAO2a,UAAW,CACrB,IAAI/Y,EAAIgZ,YAAY1Z,UACpB,GAAIV,EAAEia,GAAI,CACR,IAAI1Z,EAAI+I,SAAS+D,cAAcrN,EAAE2a,KACjCvZ,EAAI5B,OAAO+a,eAAeha,GAE5B,IAAK,IAAIzB,EAAGS,EAAIS,EAAEU,UAAWd,GAAI,EAAIL,GAAIA,GAAK6B,IAAMxB,GAAI,IAAKd,EAAIU,OAAO+a,eAAehb,MAAUA,EAAE4a,UAAYrb,GAAIS,EAAIT,EACvHc,GAAK4R,QAAQC,KAAKzR,EAAE2a,IAAM,+CAAiD3a,EAAEia,IAAKja,EAAU,OAAIoB,GAxCwIW,CAAEuP,GAAI/Q,EAAE+Q,EAAE5Q,WAiDtP,SAAWV,EAAGoB,GACZS,EAAE7B,GAAKoB,EAlDyPrC,CAAEuS,EAAE8J,OAAQ9J,GAAIA,EAAE2J,KAAOhK,EAAEK,GAAIA,EAAE2J,KAAKva,UAAY4Q,EAAE5Q,UAAW4Q,EAAE5Q,UAAUM,YAAcsQ,EAAE2J,KAAMjb,EAAEwb,OAAStc,EAAEoK,UAAWgI,EAAE2J,MAiGjS3R,SAAS+D,cAAgBjO,EAAGkK,SAAS4R,gBAxCjI,SAAWlb,EAAGoB,EAAGb,GACf,OAAOP,IAAM0T,EAAItU,EAAEgC,EAAGb,GAAK+Y,EAAEtZ,EAAGoB,IAuCoHpB,EAAEyb,SAAW5Z,EAAG7B,EAAc,WAAIiB,EAAGjB,EAAE0b,gBAAkBxI,EAAGlT,EAAE0a,wBAA0Bvb,EAAGmK,SAAS8N,SAAW9N,SAAS4I,mBAC5Q,SAAUlS,GACZ,SAASoB,IACPxB,EAAEyB,OAAO2W,KAAK1O,WAAYjI,OAAOwV,eAAe2E,OAAQ,GAChDna,OAAO4U,uBAAyB,SAAUjW,GAChDmQ,WAAWnQ,EAAG,OAEd,WACAmQ,YAAW,WACT9O,OAAOwV,eAAe8E,UAAYxJ,KAAKC,MAAO/Q,OAAOgW,cAAgBhW,OAAOwV,eAAe+E,QAAUva,OAAOwV,eAAe8E,UAAYta,OAAOgW,YAAYsE,WAAYrS,SAASE,cAAc,IAAIiN,YAAY,qBAAsB,CACjO3M,SAAS,WAKjB,IAAIvJ,EAAIP,EAAEmX,UACRrY,EAAIkB,EAAEgX,kBACR,GAAIhX,EAAEkX,KAAM3W,EAAG,CACb,IAAIhB,EAAI,aACRS,EAAEyZ,YAAcla,EAAGS,EAAEkY,QAAU3Y,EAAGS,EAAE+Z,WAAaxa,EAAGS,EAAE4Z,oBAAsBra,EAAGS,EAAE8Z,eAAiBva,EAAGS,EAAEyS,YAAclT,EAAGS,EAAc,WAAI,SAAUA,EAAGoB,GACrJ,OAAOpB,aAAaoB,QAEjBtC,IACP,IAAIc,EAAII,EAAE4Z,oBACR/Y,EAAIb,EAAE6Z,gBACR,GAAIxY,OAAO2W,OAAS3W,OAAOgT,mBAAqBhT,OAAO2W,KAAO3W,OAAOgT,kBAAkBC,aAAcjT,OAAOwa,OAASxa,OAAOgT,kBAAkByH,gBAAkBza,OAAO2W,KAAO3W,OAAOwa,OAAS,SAAU7b,GACtM,OAAOA,IACLqB,OAAOgW,cAAgBhW,OAAOgW,YAAY0E,qBAAuB,SAAU/b,GAC7EA,EAAU,QAAKa,EAAEmX,KAAKhY,EAAU,WAC9B,aAAesJ,SAAS0S,YAAchc,EAAE8W,MAAMmF,MAAO7a,SAAS,GAAI,gBAAkBkI,SAAS0S,YAAc3a,OAAO6a,aAAe7a,OAAOgW,cAAgBhW,OAAOgW,YAAYmE,MAAO,CACpL,IAAIzZ,EAAIV,OAAOgW,cAAgBhW,OAAOgW,YAAYmE,MAAQ,oBAAsB,mBAChFna,OAAOoH,iBAAiB1G,EAAGX,QACtBA,IA/BL,CAgCFC,OAAOwV,kBACT5X,KAAKiC,MAAO,aAAejC,KAAKiC,MAAO,YAEvC,YACE,WACEA,KAAKib,KAAO,CACVC,QAAS,QACTC,iBAAkB,SAClBC,mBAAoB,OACpBC,6BAA8B,SAC9BC,QAAS,CACPC,qBAAsB,kBAAkBnZ,KAAKwQ,UAAUC,WACvD2I,qBAAsB,iBAAiBpZ,KAAKwQ,UAAUC,WACtD4I,oBAAqB,WACnB,IAAI3c,EAAGoB,EAAMtC,EACb,GAAI,oBAAsB8d,WAAY,OAAO,EAC7C,IAAmD5c,EAAI,EAAGoB,GAArDtC,EAAI,CAAC,OAAQ,kBAAmB,cAA2BwD,OAAQlB,EAAIpB,EAAGA,IAAK,KAAQlB,EAAEkB,KAAW4c,WAAWlc,WAAY,OAAO,EACvI,OAAO,EAJY,IAOvBmc,OAAQ,MAET5d,KAAKiC,QACPjC,KArBKiC,MAsBR,IAAIE,EAtBIF,KAsBEib,MACV,YACE,WACE/a,EAAE0b,YAAc,WACd,SAAS9c,KACT,IAAIoB,EAAGb,EAAGzB,EACV,OAAOkB,EAAE+c,YAAc,SAAU/c,GAC/B,IAAIlB,EAAGS,EAAGK,EAAGiB,EAAGkB,EAChB,OAAOnC,EAAIW,EAAEP,GAAIlB,EAAIc,EAAEP,KAAMwB,EAAIjB,EAAEod,SAAUjb,EAAInC,EAAEqd,WAAY1d,EAAIK,EAAEsd,SAAUhc,KAAKR,UAAU5B,GAAK,WACjG,IAAIkB,EAAGO,EACP,OAAOP,EAAI,MAAQa,EAAItB,EAAI,mBAAqB2B,KAAKL,GAAKK,KAAKL,UAAO,EAASK,KAAKL,KAAO,MAAQkB,EAAIb,KAAKa,QAAK,EAAQxC,EAAoC,OAA/BgB,EAAI,MAAQP,EAAIA,EAAElB,QAAK,GAAoBsC,EAAEnC,KAAKsB,EAAGP,EAAG4J,gBAAa,GAAWrJ,EAAIP,EAAElB,GAAIsC,EAAEnC,KAAKsB,EAAGP,EAAG4J,cAEtOrJ,EAAI,SAAWP,GAChB,IAAIoB,EAAGb,EACP,KAAMA,EAAIP,EAAE8C,MAAMhE,IAAK,MAAM,IAAIqc,MAAM,wCAA0Cnb,GACjF,OAAOoB,EAAI,CACT/B,KAAMkB,EAAE,IACP,MAAQA,EAAE,GAAKa,EAAE4b,SAAWzc,EAAE,GAAKa,EAAE6b,WAAa1c,EAAE,GAAI,MAAQA,EAAE,KAAOa,EAAE8b,UAAW,GAAK9b,GAC7FA,EAAID,SAAST,UAAUqD,MAAOjF,EAAI,6BAA8BkB,EAfrD,KAiBff,KAAKiC,MAAO,WACb,IAAIlB,EAAI,SAAWmd,EAAI/b,GACnB,SAAStC,IACPoC,KAAKF,YAAcmc,EAErB,IAAK,IAAI5d,KAAK6B,EAAGb,EAAEtB,KAAKmC,EAAG7B,KAAO4d,EAAG5d,GAAK6B,EAAE7B,IAC5C,OAAOT,EAAE4B,UAAYU,EAAEV,UAAWyc,EAAGzc,UAAY,IAAI5B,EAAKqe,EAAGC,UAAYhc,EAAEV,UAAWyc,GAExF5c,EAAI,GAAGI,eACTS,EAAE5B,OAAS,SAAUe,GACnB,SAASzB,IACPoC,KAAKoL,KAAO/M,EAEd,IAAIA,EACJ,OAAOS,EAAElB,EAAGyB,GAAIhB,EAAI,EAAGT,EAAEue,eAAiB,SAAUrd,GAClD,OAAOkB,KAAKoc,SAAS7R,KAAKS,MAAMlM,KAC/BlB,EAAE4B,UAAU6c,qBAAuB,SAAUvd,GAC9C,OAAOkB,KAAKF,eAAiB,MAAQhB,EAAIA,EAAEgB,iBAAc,IACxDlC,EAAE4B,UAAU8c,UAAY,SAAUxd,GACnC,OAAOkB,OAASlB,GACflB,EAAE4B,UAAU+c,QAAU,WACvB,IAAIzd,EAAGoB,EAAGb,EACV,OAAOP,EAAI,WACT,IAAIA,EAAGlB,EAAGS,EAEV,IAAK6B,KADoD7B,EAAI,GAA7DT,EAAI,OAASkB,EAAIkB,KAAKwc,yBAA2B1d,EAAI,GACxCO,EAAIzB,EAAEsC,GAAI7B,EAAEoE,KAAKvC,EAAI,IAAMb,GACxC,OAAOhB,GACPN,KAAKiC,MAAO,KAAOA,KAAKF,YAAY3B,KAAO,IAAM6B,KAAKoL,IAAMtM,EAAEsC,OAAS,IAAMtC,EAAEmD,KAAK,MAAQ,IAAM,KACnGrE,EAAE4B,UAAUgd,sBAAwB,aAAgB5e,EAAE4B,UAAUid,aAAe,WAChF,OAAOlS,KAAKC,UAAUxK,OACrBpC,EAAE4B,UAAUkd,cAAgB,WAC7B,OAAOxc,EAAEyc,YAAYC,IAAI5c,OACxBpC,EAAE4B,UAAUqd,YAAc,WAC3B,OAAO7c,KAAKoL,GAAGzJ,YACd/D,EAzBM,CA0BTsC,EAAE0b,cACJ7d,KAAKiC,MAAO,WACZE,EAAE4c,OAAS,SAAUhe,GACnB,IAAIoB,EAAGb,EACP,IAAKa,KAAKpB,EAAGO,EAAIP,EAAEoB,GAAIF,KAAKE,GAAKb,EACjC,OAAOW,OAETjC,KAAKiC,MAAO,WACZE,EAAE4c,OAAO,CACPC,MAAO,SAAeje,GACpB,OAAOmQ,WAAWnQ,EAAG,OAGzBf,KAAKiC,MAAO,WACZ,IAAIlB,EAAGO,EACPa,EAAE4c,OAAO,CACPE,gBAAiB,SAAyBle,GACxC,OAAOA,EAAEme,QAAQC,OAAO,GAAKhd,EAAEib,iBAAkB,KAAM,IAAI8B,QAAQC,OAAO,GAAKhd,EAAEkb,mBAAoB,KAAM,MAE7G+B,kBAAmB,SAA2Bre,GAC5C,OAAOA,EAAEme,QAAQ,QAAS,OAE5BG,2BAA4BF,OAAO,QAAUhd,EAAEkb,mBAAqB,KACpEiC,0BAA2B,SAAmCve,GAC5D,OAAOA,EAAEme,QAAQC,OAAO,GAAKhd,EAAEkd,2BAA2BE,OAAQ,KAAM,KAAKL,QAAQ,UAAW,MAElGM,sBAAuB,SAA+Bze,EAAGlB,GACvD,IAAIS,EAAGK,EAAGiB,EAAGkB,EACb,OAAO/B,EAAIoB,EAAEyc,YAAYC,IAAI9d,IAAIlB,EAAIsC,EAAEyc,YAAYC,IAAIhf,IAAMwD,OAAStC,EAAEsC,QAAuBP,GAAbnC,EAAIW,EAAEP,EAAGlB,IAAU,GAAIS,EAAIK,EAAE,KAAoBL,GAAbsB,EAAIN,EAAEzB,EAAGkB,IAAU,GAAI+B,EAAIlB,EAAE,IAAK,CACtJ6d,MAAOnf,EACPof,QAAS5c,MAGXxB,EAAI,SAAWqe,EAAI9f,GACrB,IAAIS,EAAGK,EAAGiB,EAAGkB,EAAGuP,EAChB,OAAOsN,EAAGpB,UAAU1e,GAAK,CAAC,GAAI,KAA+C+B,GAA1BkB,GAAdnC,EAAII,EAAE4e,EAAI9f,IAAU+f,YAAYvc,SAAiBgP,EAAI1R,EAAEkf,OAAWvf,EAAIqf,EAAGG,WAAW5a,MAAM,EAAGmN,GAAGiK,OAAOqD,EAAGG,WAAW5a,MAAMmN,EAAIvP,IAAK/B,EAAElB,EAAGsC,EAAEyc,YAAYmB,eAAezf,KAAOS,EAAElB,EAAG8f,GAAK,CAAChf,EAAEif,YAAYhc,WAAYhC,EAAEge,YAAYhc,cACpQ7C,EAAI,SAAWif,EAAK7d,GACrB,IAAIb,EAAGzB,EAAGS,EACV,IAAKgB,EAAI,EAAGzB,EAAImgB,EAAI3c,OAAQ/C,EAAI6B,EAAEkB,OAAQxD,EAAIyB,GAAK0e,EAAIC,OAAO3e,GAAGid,UAAUpc,EAAE8d,OAAO3e,KAAMA,IAC1F,KAAOzB,EAAIyB,EAAI,GAAK0e,EAAIC,OAAOpgB,EAAI,GAAG0e,UAAUpc,EAAE8d,OAAO3f,EAAI,KAAMT,IAAKS,IACxE,MAAO,CACLsf,YAAaI,EAAI9a,MAAM5D,EAAGzB,GAC1BggB,OAAQve,KAGZtB,KAAKiC,MAAO,WACZE,EAAE4c,OAAO,CACPmB,WAAY,SAAoBnf,GAC9B,IAAIoB,EAAGb,EAAGzB,EAEV,IAAKsC,KADL,MAAQpB,IAAMA,EAAI,IAAKO,EAAI,GACjBP,EAAGlB,EAAIkB,EAAEoB,GAAIb,EAAEa,GAAKtC,EAC9B,OAAOyB,GAET6e,gBAAiB,SAAyBpf,EAAGoB,GAC3C,IAAIb,EACJ,GAAI,MAAQP,IAAMA,EAAI,IAAK,MAAQoB,IAAMA,EAAI,IAAK5B,OAAO6f,KAAKrf,GAAGsC,SAAW9C,OAAO6f,KAAKje,GAAGkB,OAAQ,OAAO,EAC1G,IAAK/B,KAAKP,EAAG,GAAQA,EAAEO,KAAUa,EAAEb,GAAI,OAAO,EAC9C,OAAO,MAGXtB,KAAKiC,MAAO,WACZ,IAAIlB,EAAI,GAAGmE,MACX/C,EAAE4c,OAAO,CACPsB,eAAgB,SAAwBtf,EAAGoB,GACzC,IAAIb,EAAGzB,EAAGS,EACV,GAAI,MAAQS,IAAMA,EAAI,IAAK,MAAQoB,IAAMA,EAAI,IAAKpB,EAAEsC,SAAWlB,EAAEkB,OAAQ,OAAO,EAChF,IAAKxD,EAAIyB,EAAI,EAAGhB,EAAIS,EAAEsC,OAAQ/C,EAAIgB,EAAGzB,IAAMyB,EAAG,GAAQP,EAAElB,KAAUsC,EAAEtC,GAAI,OAAO,EAC/E,OAAO,GAETygB,gBAAiB,SAAyBvf,EAAGO,GAC3C,OAAO,MAAQP,IAAMA,EAAI,IAAK,MAAQO,IAAMA,EAAI,IAAKa,EAAEke,eAAetf,EAAEmE,MAAM,EAAG5D,EAAE+B,QAAS/B,IAE9Fif,YAAa,WACX,IAAIpe,EAAGb,EAAGzB,EACV,OAAOyB,EAAIqJ,UAAU,GAAIxI,EAAI,GAAKwI,UAAUtH,OAAStC,EAAEf,KAAK2K,UAAW,GAAK,IAAI9K,EAAIyB,EAAE4D,MAAM,IAAMyM,OAAO7M,MAAMjF,EAAGsC,GAAItC,GAExH2gB,qBAAsB,SAA8Bzf,EAAGoB,GACrD,IAAIb,EAAGzB,EAAGS,EAAGK,EAAGiB,EAAGkB,EAAGuP,EAAGnS,EAAGJ,EAAGkS,EAAGrQ,EAClC,IAAK,MAAQZ,IAAMA,EAAI,IAAK,MAAQoB,IAAMA,EAAI,IAAKb,EAAI,GAAI0Q,EAAI,GAAI1R,EAAI,IAAI+Q,IAAO1Q,EAAI,EAAG0R,EAAItR,EAAEsC,OAAQgP,EAAI1R,EAAGA,IAAKgB,EAAIZ,EAAEJ,GAAIL,EAAEoR,IAAI/P,GACnI,IAAK9B,EAAI,IAAIwR,IAAOzP,EAAI,EAAG1B,EAAIiC,EAAEkB,OAAQnD,EAAI0B,EAAGA,IAAKD,EAAIQ,EAAEP,GAAI/B,EAAE6R,IAAI/P,GAAIrB,EAAEkR,IAAI7P,IAAML,EAAEoD,KAAK/C,GAC5F,IAAKmB,EAAI,EAAGhD,EAAIiB,EAAEsC,OAAQvD,EAAIgD,EAAGA,IAAKnB,EAAIZ,EAAE+B,GAAIjD,EAAE2R,IAAI7P,IAAMqQ,EAAEtN,KAAK/C,GACnE,MAAO,CACL8d,MAAOne,EACPoe,QAAS1N,OAIfhS,KAAKiC,MAAO,WACZ,IAAIlB,EAAGO,EAAGzB,EAAGS,EACbS,EAAI,KAAMO,EAAI,KAAMhB,EAAI,KAAMT,EAAI,KAAMsC,EAAE4c,OAAO,CAC/C0B,qBAAsB,WACpB,OAAO,MAAQ1f,EAAIA,EAAIA,EAAIoB,EAAEue,wBAAwBpE,OAAOna,EAAEwe,2BAEhEC,eAAgB,SAAwB7f,GACtC,OAAOoB,EAAEyb,OAAOiD,gBAAgB9f,IAElC4f,uBAAwB,WACtB,OAAO,MAAQrf,EAAIA,EAAIA,EAAIf,OAAO6f,KAAKje,EAAEyb,OAAOiD,kBAElDC,cAAe,SAAuB/f,GACpC,OAAOoB,EAAEyb,OAAOmD,eAAehgB,IAEjC2f,sBAAuB,WACrB,OAAO,MAAQpgB,EAAIA,EAAIA,EAAIC,OAAO6f,KAAKje,EAAEyb,OAAOmD,iBAElDC,sBAAuB,WACrB,IAAIjgB,EAAGO,EACP,OAAO,MAAQzB,EAAIA,EAAIA,EAAI,WACzB,IAAIA,EAAGS,EAEP,IAAKS,KADyBT,EAAI,GAAlCT,EAAIsC,EAAEyb,OAAOiD,gBACwB,OAAxBvf,EAAIzB,EAAEkB,GAAGkgB,gBAA4B3gB,EAAEoE,KAAKpD,GACzD,OAAOhB,EAJkB,OAQ/BN,KAAKiC,MAAO,WACZ,IAAIlB,EACFO,EACAzB,EACAS,EACAK,EACAiB,EAAI,GAAG6P,SAAW,SAAU1Q,GAC1B,IAAK,IAAIoB,EAAI,EAAGb,EAAIW,KAAKoB,OAAQ/B,EAAIa,EAAGA,IAAK,GAAIA,KAAKF,MAAQA,KAAKE,KAAOpB,EAAG,OAAOoB,EACpF,OAAQ,GAEZpB,EAAIsJ,SAAS6W,gBAAiB5f,EAAI,OAASzB,EAAI,OAASS,EAAI,OAASK,EAAII,EAAEogB,iBAAmBxgB,EAAII,EAAEqgB,uBAAyB9gB,EAAIS,EAAEsgB,mBAAqBxhB,EAAIkB,EAAEugB,mBAAoBnf,EAAE4c,OAAO,CACzL5I,YAAa,SAAqB7U,EAAGzB,GACnC,IAAOc,EAAG4gB,EAAIze,EAAGuP,EAAGnS,EAAGJ,EAAGkS,EAAGrQ,EAAGxB,EAAGuU,EAAG1S,EACtC,OAA+B9B,GAAxB8R,EAAI,MAAQnS,EAAIA,EAAI,IAAU2hB,UAAWnP,EAAIL,EAAEyP,iBAAkBzf,EAAIgQ,EAAE0P,aAAc5e,EAAIkP,EAAE2P,QAAS7hB,EAAIkS,EAAE1B,eAAgBnQ,EAAI6R,EAAE4P,MAAOjhB,EAAI,MAAQT,EAAIA,EAAIa,EAAGY,EAAI0Q,EAAOrQ,EAAG0S,EAAI,cAAgB5R,GAAGye,EAAK,SAAWxgB,GACxN,IAAIO,EACJ,OAAO,MAAQnB,GAAK,MAAQA,GAAKohB,EAAGva,UAEhC,OAF2C1F,EAAIa,EAAE0f,2BAA2B9gB,EAAE4E,OAAQ,CACxF8b,iBAAkB9f,OACF,MAAQK,GAAKA,EAAEhC,KAAKsB,EAAGP,EAAGO,GAAIxB,GAAKiB,EAAEuP,sBAAmB,IACtEtJ,QAAU,WACd,OAAOrG,EAAEsV,oBAAoB3U,EAAGigB,EAAI7M,IACnC/T,EAAE6I,iBAAiBlI,EAAGigB,EAAI7M,GAAI6M,GAEnCO,gBAAiB,SAAyB/gB,EAAGO,GAC3C,OAAO,MAAQA,IAAMA,EAAI,IAAKA,EAAEsgB,MAAQ,EAAGzf,EAAEgU,YAAYpV,EAAGO,IAE9DygB,aAAc,SAAsBzgB,EAAGzB,GACrC,IAAIS,EAAGK,EAAGiB,EAAGkB,EAAGuP,EAAGnS,EAAGJ,EACtB,OAA+BI,GAAxBJ,EAAI,MAAQD,EAAIA,EAAI,IAAU2hB,UAAW7gB,EAAIb,EAAE+K,QAASjJ,EAAI9B,EAAEgL,WAAYxK,EAAIR,EAAE0L,WAAY1I,EAAI,MAAQ5C,EAAIA,EAAIa,EAAGJ,GAAU,IAANA,EAAUiB,GAAU,IAANA,GAAUyQ,EAAIhI,SAASW,YAAY,WAAaC,UAAU3J,EAAGX,EAAGiB,GAAI,MAAQtB,GAAK6B,EAAE4c,OAAO/e,KAAKqS,EAAG/R,GAAIwC,EAAEyH,cAAc8H,IAEpQ2P,uBAAwB,SAAgCjhB,EAAGoB,GACzD,OAAO,KAAO,MAAQpB,EAAIA,EAAEwX,cAAW,GAAUjX,EAAEtB,KAAKe,EAAGoB,QAAK,GAElE0f,2BAA4B,SAAoC9gB,EAAGO,GACjE,IAAIzB,EAAGS,EAAGK,EACV,IAA6Bd,GAAxBS,EAAI,MAAQgB,EAAIA,EAAI,IAAUmgB,iBAAkB9gB,EAAIL,EAAE2hB,UAAW,MAAQlhB,GAAKA,EAAEwX,WAAaC,KAAKC,cAAe1X,EAAIA,EAAEuN,WAC5H,GAAI,MAAQvN,EAAG,CACb,GAAI,MAAQlB,EAAG,OAAOkB,EACtB,GAAIA,EAAEmhB,SAAW,MAAQvhB,EAAG,OAAOI,EAAEmhB,QAAQriB,GAC7C,KAAOkB,GAAKA,IAAMJ,GAAI,CACpB,GAAIwB,EAAE6f,uBAAuBjhB,EAAGlB,GAAI,OAAOkB,EAC3CA,EAAIA,EAAEuN,cAIZ6T,iBAAkB,SAA0BphB,GAC1C,KAAO,MAAQA,EAAIA,EAAEsX,uBAAoB,GAAStX,EAAIA,EAAEsX,kBACxD,OAAOtX,GAETqhB,qBAAsB,SAA8BrhB,GAClD,OAAOsJ,SAASgY,gBAAkBthB,GAAKoB,EAAEmgB,oBAAoBvhB,EAAGsJ,SAASgY,gBAE3EC,oBAAqB,SAA6BvhB,EAAGoB,GACnD,GAAIpB,GAAKoB,EAAG,KAAOA,GAAI,CACrB,GAAIA,IAAMpB,EAAG,OAAO,EACpBoB,EAAIA,EAAEmM,aAGViU,+BAAgC,SAAwCxhB,EAAGoB,GACzE,IAAIb,EACJ,GAAIP,EAAG,OAAOA,EAAEwX,WAAaC,KAAKgK,UAAYzhB,EAAI,IAAMoB,EAAI,OAASb,EAAIP,EAAEuX,YAAchX,EAAIP,EAAIA,EAAE0hB,WAAWC,KAAKvgB,EAAI,IAEzHwgB,kCAAmC,SAA2C5hB,EAAGO,GAC/E,IAAIzB,EACJ,OAAOA,EAAIsC,EAAEogB,+BAA+BxhB,EAAGO,GAAIa,EAAE0f,2BAA2BhiB,IAElF+iB,qBAAsB,SAA8B7hB,GAClD,IAAIoB,EACJ,GAAI,MAAQpB,EAAIA,EAAEuN,gBAAa,EAAQ,CACrC,IAAKnM,EAAI,EAAGpB,EAAIA,EAAEqT,iBAAkBjS,IACpC,OAAOA,IAGX0gB,WAAY,SAAoB9hB,GAC9B,IAAIoB,EACJ,OAAO,MAAQpB,GAAK,OAASoB,EAAIpB,EAAEuN,YAAcnM,EAAEoM,YAAYxN,QAAK,GAEtE+hB,SAAU,SAAkB/hB,EAAGoB,GAC7B,IAAIb,EAAGzB,EAAGS,EAAGK,EAAGiB,EAChB,OAA+B/B,GAAxBS,EAAI,MAAQ6B,EAAIA,EAAI,IAAU4gB,gBAAiBpiB,EAAIL,EAAE0iB,YAAa1hB,EAAIhB,EAAE2iB,uBAAwBrhB,EAAI,WACzG,OAAQ/B,GACN,IAAK,UACH,OAAOqjB,WAAWC,aACpB,IAAK,OACH,OAAOD,WAAWE,UACpB,IAAK,UACH,OAAOF,WAAWG,aACpB,QACE,OAAOH,WAAWI,UATmF,GAWtGjZ,SAASkZ,iBAAiBxiB,EAAGa,EAAG,MAAQjB,EAAIA,EAAI,MAAY,IAANW,IAE7D6O,QAAS,SAAiBpP,GACxB,IAAIoB,EACJ,OAAO,MAAQpB,GAAK,OAASoB,EAAIpB,EAAEoP,SAAWhO,EAAE2Z,mBAAgB,GAElE0H,YAAa,SAAqBziB,EAAGoB,GACnC,IAAIb,EAAGzB,EAAGS,EAAGK,EAAGiB,EAAGkB,EAAGuP,EAAGnS,EAAGJ,EAAGkS,EAAGrQ,EAAGxB,EAAGuU,EAAG1S,EAC3C,GAAI,MAAQG,IAAMA,EAAI,IAAK,UAAYN,EAAQd,GAAaA,GAAPoB,EAAIpB,GAASoP,QAAWhO,EAAI,CAC/EqJ,WAAYrJ,GACX7B,EAAI+J,SAAS+D,cAAcrN,GAAI,MAAQoB,EAAEshB,WAAa,MAAQthB,EAAEqJ,aAAerJ,EAAEqJ,WAAa,IAAKrJ,EAAEqJ,WAAWkY,gBAAkBvhB,EAAEshB,UAAWthB,EAAEqJ,WAElJ,IAAK1I,KADLhD,EAAIqC,EAAEqJ,WACOxJ,EAAIlC,EAAEgD,GAAIxC,EAAEiQ,aAAazN,EAAGd,GAE3C,GAAIG,EAAE2O,MAEJ,IAAKhO,KADLkP,EAAI7P,EAAE2O,MACO9O,EAAIgQ,EAAElP,GAAIxC,EAAEwQ,MAAMhO,GAAKd,EAEtC,GAAIG,EAAE8S,KAEJ,IAAKnS,KADLnB,EAAIQ,EAAE8S,KACOjT,EAAIL,EAAEmB,GAAIxC,EAAEqjB,QAAQ7gB,GAAKd,EAExC,GAAIG,EAAEyhB,UAAW,IAAiCjjB,EAAI,EAAG0R,GAAnClS,EAAIgC,EAAEyhB,UAAUjK,MAAM,MAAmBtW,OAAQgP,EAAI1R,EAAGA,IAAKd,EAAIM,EAAEQ,GAAIL,EAAEujB,UAAUnS,IAAI7R,GAC7G,GAAIsC,EAAE2hB,cAAgBxjB,EAAEwjB,YAAc3hB,EAAE2hB,aAAc3hB,EAAEsgB,WAAY,IAAkC7gB,EAAI,EAAG1B,GAApCwU,EAAI,GAAG4H,OAAOna,EAAEsgB,aAA0Bpf,OAAQnD,EAAI0B,EAAGA,IAAKN,EAAIoT,EAAE9S,GAAItB,EAAE0Q,YAAY1P,GAC/J,OAAOhB,GAETyjB,iBAAkB,WAChB,IAAIhjB,EAAGO,EACP,OAAO,MAAQa,EAAE6hB,cAAgB7hB,EAAE6hB,cAAgB7hB,EAAE6hB,cAAgB,WACnE,IAAInkB,EAAGS,EAEP,IAAKS,KADyBT,EAAI,GAAlCT,EAAIsC,EAAEyb,OAAOiD,iBACAvf,EAAIzB,EAAEkB,GAAGoP,UAAc7P,EAAEoE,KAAKpD,GAC3C,OAAOhB,EAJ4D,IAOvE2jB,qBAAsB,SAA8BljB,GAClD,OAAOoB,EAAE+hB,wBAAwB,MAAQnjB,EAAIA,EAAEuX,gBAAa,IAE9D6L,6BAA8B,SAAsCpjB,GAClE,IAAIO,EAAGzB,EACP,OAAOyB,EAAIa,EAAEgO,QAAQpP,GAAIa,EAAE5B,KAAKmC,EAAE4hB,mBAAoBziB,IAAM,IAAMzB,EAAIsC,EAAEgO,QAAQpP,EAAEuX,YAAa1W,EAAE5B,KAAKmC,EAAE4hB,mBAAoBlkB,GAAK,IAEnIukB,iBAAkB,SAA0BrjB,EAAGO,GAE7C,OAAY,MAAQA,EAAIA,EAAI,CAC1B+iB,QAAQ,IACPA,OAAYliB,EAAE+hB,wBAAwBnjB,GAAKoB,EAAE+hB,wBAAwBnjB,KAAOoB,EAAE+hB,wBAAwBnjB,EAAEuX,aAAenW,EAAEgiB,6BAA6BpjB,IAE3JmjB,wBAAyB,SAAiCnjB,GACxD,OAAOoB,EAAEmiB,kBAAkBvjB,IAAM,WAAa,MAAQA,EAAIA,EAAEkU,UAAO,IAErEqP,kBAAmB,SAA2BvjB,GAC5C,OAAQ,MAAQA,EAAIA,EAAEwX,cAAW,KAAYC,KAAK+L,cAEpDC,mBAAoB,SAA4BzjB,EAAGO,GACjD,IAAIzB,EACJ,OAAOA,GAAK,MAAQyB,EAAIA,EAAI,IAAIlB,KAAMW,EAAIoB,EAAEsiB,eAAe1jB,GAAKA,EAAEkU,OAAS9S,EAAEib,kBAAmBvd,GAAIkB,EAAEuN,WAAWqV,QAAQe,mBAAqB7kB,OAAS,EAASsC,EAAEqiB,mBAAmBzjB,EAAEuX,iBAAc,GAEvMqM,wBAAyB,SAAiC5jB,GACxD,OAAOoB,EAAE6f,uBAAuBjhB,EAAGoB,EAAEyiB,eAAeC,qBAEtDC,oBAAqB,SAA6B/jB,GAChD,OAAOoB,EAAEsiB,eAAe1jB,IAAM,MAAQ,MAAQA,EAAIA,EAAEkU,UAAO,IAE7DwP,eAAgB,SAAwB1jB,GACtC,OAAQ,MAAQA,EAAIA,EAAEwX,cAAW,KAAYC,KAAKgK,cAGtDxiB,KAAKiC,MAAO,WACZ,IAAIlB,EAAGO,EAAGzB,EAAGS,EAAGK,EAChBI,EAAIoB,EAAE+d,WAAY5f,EAAI6B,EAAEge,gBAAiBhe,EAAE4c,OAAO,CAChDgG,eAAgBllB,EAAI,SAAWkB,GAC7B,IAAIoB,EACJ,GAAI,MAAQpB,EAAG,OAAOoK,MAAMC,QAAQrK,KAAOA,EAAI,CAACA,EAAGA,IAAK,CAACO,EAAEP,EAAE,IAAKO,EAAE,OAASa,EAAIpB,EAAE,IAAMoB,EAAIpB,EAAE,MAEjGikB,iBAAkB,SAA0BjkB,GAC1C,IAAIoB,EAAGb,EAAGhB,EACV,GAAI,MAAQS,EAAG,OAAiBT,GAAVgB,EAAIzB,EAAEkB,IAAU,GAAIoB,EAAIb,EAAE,GAAIX,EAAEL,EAAG6B,IAE3D8iB,eAAgB,SAAwBlkB,EAAGoB,GACzC,IAAIb,EAAGhB,EAAGsB,EAAGkB,EAAGuP,EAAGnS,EACnB,GAAI,MAAQa,GAAK,MAAQoB,EAAG,OAAiB7B,GAAVsB,EAAI/B,EAAEkB,IAAU,GAAIO,EAAIM,EAAE,GAAc1B,GAAV4C,EAAIjD,EAAEsC,IAAU,GAAIkQ,EAAIvP,EAAE,GAAInC,EAAEL,EAAGJ,IAAMS,EAAEW,EAAG+Q,MAE/G/Q,EAAI,SAAWa,GACjB,MAAO,iBAAmBA,EAAIA,EAAIpB,EAAEoB,IACnCxB,EAAI,SAAWI,EAAGoB,GACnB,MAAO,iBAAmBpB,EAAIA,IAAMoB,EAAI7B,EAAES,EAAGoB,KAE/CnC,KAAKiC,MAAO,WACZ,IAAIlB,EAAGO,EAAGzB,EAAGS,EAAGK,EAAGiB,EAAGkB,EACtBX,EAAE8Q,gBAAkB,SAAUlS,EAAGoB,GAC/B,IAAIb,EAAGzB,EACP,OAAO,MAAQsC,IAAMA,EAAI,IAAKpB,EAAIA,EAAE+a,cAAe3Z,EAAIW,EAAEX,IAAeb,GAAXzB,EAAI+B,EAAEO,IAAW+iB,qBAAuBrlB,EAAEqlB,WAAY5kB,EAAEgB,EAAGP,IAAKJ,EAAEI,EAAGlB,IACjIS,EAAI,SAAWS,EAAGoB,GAEnB,OAAWtC,EAAEsC,GAAM2hB,YAAc/iB,EAAEme,QAAQ,MAAO/c,IACjDtC,EAAI,SAAWsC,GAChB,IAAIb,EAAGzB,EACP,OAAOyB,EAAI+I,SAAS+D,cAAc,UAAYmC,aAAa,OAAQ,YAAajP,EAAEiP,aAAa,gBAAiBpO,EAAE2Z,gBAAiBjc,EAAIkB,MAAQO,EAAEiP,aAAa,QAAS1Q,GAAIwK,SAAS6B,KAAKiZ,aAAa7jB,EAAG+I,SAAS6B,KAAKoM,YAAahX,GACnOP,EAAI,WACL,IAAIA,EACJ,OAAQA,EAAIO,EAAE,mBAAqBA,EAAE,cAAgBP,EAAEoL,aAAa,gBAAa,GAChF7K,EAAI,SAAWP,GAChB,OAAOsJ,SAAS6B,KAAK5B,cAAc,aAAevJ,EAAI,MACrDa,EAAI,SAAWb,GAChB,IAAIoB,EAAGb,EAAGzB,EAEV,IAAKsC,KADLb,EAAI,GACMP,EAAGlB,EAAIkB,EAAEoB,GAAIb,EAAEa,GAAK,mBAAqBtC,EAAI,CACrDiB,MAAOjB,GACLA,EACJ,OAAOyB,GACNwB,EAAI,WACL,IAAI/B,EACJ,OAAOA,EAAI,SAAWqkB,GACpB,IAAIjjB,EAAGb,EAAGzB,EAAGS,EAAGK,EAChB,IAAKwB,EAAI,GAAiDb,EAAI,EAAGhB,GAApDK,EAAI,CAAC,aAAc,UAAW,eAA4B0C,OAAQ/C,EAAIgB,EAAGA,IAAea,EAAVtC,EAAIc,EAAEW,IAAW8jB,EAAIvlB,UAAWulB,EAAIvlB,GAC/H,OAAOsC,GACNC,OAAO4Q,eAAiB,SAAU7Q,GACnC,IAAIb,EAAGzB,EAAGS,EAAGK,EAAGiB,EAChB,OAAOA,EAAIb,EAAEoB,GAAI7B,EAAIsB,EAAEyjB,WAAY/jB,EAAIM,EAAE0jB,QAASzlB,EAAI+B,EAAEkU,WAAYxV,IAAMK,EAAIW,EAAGA,EAAI,WACnF,OAAOW,KAAKsjB,cAAgBtjB,KAAKsjB,aAAc,EAAIjlB,EAAEN,KAAKiC,OAAQ,MAAQtB,EAAIA,EAAEX,KAAKiC,WAAQ,IAC3FX,IAAMa,EAAEqjB,kBAAoBlkB,GAAIzB,IAAMsC,EAAEsjB,qBAAuB5lB,GAAIsC,GACrE,SAAUA,GACZ,IAAIb,EAAGzB,EAAGS,EAAGK,EACb,OAAiBL,GAAVK,EAAII,EAAEoB,IAAUkjB,WAAY/jB,EAAIX,EAAE2kB,QAASzlB,EAAIc,EAAEmV,WAAYxV,IAAM6B,EAAE8Y,gBAAkB3a,GAAIgB,IAAMa,EAAEiX,iBAAmB9X,GAAIzB,IAAMsC,EAAEkX,iBAAmBxZ,GAAIsC,GAb7J,GAeFxB,EACIyB,OAAO4Q,eAAiB,SAAUjS,EAAGoB,GAC1C,IAAIujB,EACJ,OAAOA,EAAM,WACX,MAAO,WAAgC,qBAAZC,QAA0B,YAAc9jB,EAAQ8jB,UAAYA,QAAQC,UAAUzK,YAAa,GAAIuK,GAAOvK,YAAYrW,MAAM7C,OAClJ1B,OAAOslB,eAAeH,EAAIjkB,UAAW0Z,YAAY1Z,WAAYlB,OAAOslB,eAAeH,EAAKvK,aAAc5a,OAAO0H,iBAAiByd,EAAIjkB,UAAWU,GAAIC,OAAO4Q,eAAe8S,OAAO/kB,EAAG2kB,GAAMA,GACxL,SAAU3kB,EAAGoB,GACf,IAAIb,EAAGzB,EACP,OAAOA,EAAIU,OAAOY,OAAOga,YAAY1Z,UAAWU,GAAIb,EAAI+I,SAAS4I,gBAAgBlS,EAAG,CAClFU,UAAW5B,IACTU,OAAOC,eAAeX,EAAG,cAAe,CAC1CiB,MAAOQ,IACLA,IAGRtB,KAAKiC,MAAO,WACZ,IAAIlB,EAAGO,EACPa,EAAE4c,OAAO,CACPgH,gBAAiB,WACf,IAAIhlB,EACJ,OAAOA,EAAIqB,OAAO4jB,gBAAkBC,WAAa,EAAIllB,OAAI,GAE3DmlB,YAAa,WACX,IAAI5kB,EAAGzB,EACP,OAAQyB,EAAI,OAASzB,EAAIsC,EAAE4jB,mBAAqBlmB,EAAEsmB,WAAW,QAAK,KAAYplB,EAAEO,GAAKA,OAAI,GAE3F8kB,YAAa,SAAqBrlB,GAChC,IAAIO,EACJ,OAAOA,EAAIc,OAAO4jB,gBAAkBK,kBAAmB/kB,EAAEglB,SAASvlB,GAAIoB,EAAEokB,wBAAwBC,YAEhGzlB,EAAI,SAAW0lB,GACjB,OAAOnlB,EAAEmlB,EAAIC,iBAAmBplB,EAAEmlB,EAAIE,eACrCrlB,EAAI,SAAWP,GAChB,OAAQR,OAAO+a,eAAeva,KAEhCf,KAAKiC,MAAO,WACZ,IAAIlB,EACJA,EAAI,CACF,uCAAwC,QACvCoB,EAAE4c,OAAO,CACV6H,wBAAyB,SAAiC7lB,GACxD,IAAIoB,EAAGb,EAAGzB,EACV,OAAOA,EAAIkB,EAAE8lB,QAAQ,cAAevlB,EAAIP,EAAE8lB,QAAQ,aAAchnB,GAAKyB,GAAKa,GAAI,IAAI2kB,WAAYC,gBAAgBzlB,EAAG,aAAa0lB,MAAQlD,cAAgBjkB,GAAKsC,EAAEmI,cAAc,UAAO,EAAU,MAAQzK,EAAIA,EAAEwD,YAAS,GAErN4jB,uBAAwB,SAAgC9kB,GACtD,IAAIb,EAAGzB,EACP,GAAI,OAAS,MAAQsC,EAAIA,EAAE+kB,aAAU,GAAS,CAC5C,IAAK5lB,KAAKP,EAAG,GAAIlB,EAAIkB,EAAEO,IAAK,WAC1B,IACE,OAAOa,EAAE+kB,QAAQ5lB,EAAGzB,GAAIsC,EAAE0kB,QAAQvlB,KAAOzB,EACzC,MAAOkB,KAHiB,GAIvB,OACL,OAAO,IAGXomB,0BACS,UAAU9iB,KAAKwQ,UAAUuS,UAAY,SAAUrmB,GACpD,OAAOA,EAAEsmB,SACP,SAAUtmB,GACZ,OAAOA,EAAEumB,YAIftnB,KAAKiC,MAAO,WACZE,EAAE4c,OAAO,CACPwI,YAAa,qVACbC,aAAc,WACZ,IAAIzmB,EAAGO,EAAGzB,EAAGS,EACb,OAAOgB,EAAIa,EAAEqhB,YAAY,QAAS,CAChCiE,IAAK,OACLrnB,KAAM,IACNsnB,QAAS,WACP3mB,EAAIoB,EAAEqhB,YAAY,SAAWxS,YAAY1P,GAAIzB,EAAI,WACnD,IACE,OAAO,IAAI8nB,SAAS5mB,GAAGyQ,IAAIlQ,EAAEomB,SAC7B,MAAOvlB,KAH0C,GAIhD7B,EAAI,WACP,IACE,OAAOgB,EAAEsmB,QAAQ,uBACjB,MAAO7mB,KAHF,GAIJlB,EAAI,SAAUsC,GACjB,OAAOb,EAAER,MAAQqB,EAAG,IAAIwlB,SAAS5mB,GAAGL,IAAIY,EAAEomB,UACxCpnB,EAAI,SAAUS,GAChB,OAAOO,EAAER,MAAQC,EAAGO,EAAEsmB,QAAQ,aAAe,MAAQ,OACnD,SAAU7mB,GACZ,IAAIO,EACJ,OAAOA,EAAIP,EAAE8mB,OAAO5H,OAAO,GAAI9d,EAAEolB,YAAYljB,KAAK/C,GAAK,MAAQ,OApBrD,MAwBhBtB,KAAKiC,MAAO,aAAejC,KAAKiC,MAAO,WACvC,IAAIlB,EACFO,EAAI,SAAWP,EAAGoB,GAChB,SAASb,IACPW,KAAKF,YAAchB,EAErB,IAAK,IAAIT,KAAK6B,EAAGtC,EAAEG,KAAKmC,EAAG7B,KAAOS,EAAET,GAAK6B,EAAE7B,IAC3C,OAAOgB,EAAEG,UAAYU,EAAEV,UAAWV,EAAEU,UAAY,IAAIH,EAAKP,EAAEod,UAAYhc,EAAEV,UAAWV,GAEtFlB,EAAI,GAAG6B,eACTX,EAAIoB,EAAEke,eAAgBle,EAAE2lB,KAAO,SAAUjoB,GACvC,SAASS,EAAES,GACT,MAAQA,IAAMA,EAAI,IAAKkB,KAAKsP,OAAS3P,EAAEb,GAAIT,EAAE6d,UAAUpc,YAAY+C,MAAM7C,KAAM0I,WAEjF,IAAIhK,EAAGiB,EAAGkB,EAAGuP,EAAGnS,EAChB,OAAOoB,EAAEhB,EAAGT,GAAIS,EAAEynB,8BAAgC,SAAUhnB,GAC1D,IAAIoB,EAAGb,EAAGzB,EAAGS,EAAGsB,EAAGkB,EACnB,GAAI,MAAQ/B,IAAMA,EAAI,KAAMA,EAAEsC,OAAQ,OAAO,IAAIpB,KACjD,IAAkBpC,GAAbsC,EAAIxB,EAAEI,EAAE,KAAWinB,UAA2B1mB,EAAI,EAAGhB,GAAvBwC,EAAI/B,EAAEmE,MAAM,IAAiB7B,OAAQ/C,EAAIgB,EAAGA,IAAKM,EAAIkB,EAAExB,GAAIzB,EAAIsC,EAAE8lB,oBAAoBtnB,EAAEiB,IAAKO,EAAIA,EAAE+C,MAAMrF,GAC3I,OAAOsC,GACN7B,EAAEue,IAAM,SAAU9d,GACnB,OAAOJ,EAAEI,IACRT,EAAEmB,UAAUiQ,IAAM,SAAU3Q,EAAGoB,GAChC,OAAOF,KAAKimB,MAAM7V,EAAEtR,EAAGoB,KACtB7B,EAAEmB,UAAU0mB,OAAS,SAAUpnB,GAChC,OAAO,IAAIoB,EAAE2lB,KAAKlmB,EAAEK,KAAKsP,OAAQxQ,KAChCT,EAAEmB,UAAUf,IAAM,SAAUK,GAC7B,OAAOkB,KAAKsP,OAAOxQ,IAClBT,EAAEmB,UAAU+P,IAAM,SAAUzQ,GAC7B,OAAOA,KAAKkB,KAAKsP,QAChBjR,EAAEmB,UAAUymB,MAAQ,SAAUnnB,GAC/B,OAAO,IAAIoB,EAAE2lB,KAAKhlB,EAAEb,KAAKsP,OAAQrR,EAAEa,MAClCT,EAAEmB,UAAUyD,MAAQ,SAAUnE,GAC/B,IAAIO,EAAGzB,EAAGS,EAAGK,EACb,IAAKA,EAAI,GAAIW,EAAI,EAAGhB,EAAIS,EAAEsC,OAAQ/C,EAAIgB,EAAGA,IAAKzB,EAAIkB,EAAEO,GAAIW,KAAKuP,IAAI3R,KAAOc,EAAEd,GAAKoC,KAAKsP,OAAO1R,IAC3F,OAAO,IAAIsC,EAAE2lB,KAAKnnB,IACjBL,EAAEmB,UAAUumB,QAAU,WACvB,OAAOznB,OAAO6f,KAAKne,KAAKsP,SACvBjR,EAAEmB,UAAUwmB,oBAAsB,SAAUlnB,GAC7C,IAAIoB,EAAGb,EAAGzB,EAAGS,EAAGsB,EAChB,IAAKb,EAAIJ,EAAEI,GAAwBa,EAAI,GAAIO,EAAI,EAAGtC,GAAnCS,EAAI2B,KAAK+lB,WAAgC3kB,OAAQxD,EAAIsC,EAAGA,IAAKb,EAAIhB,EAAE6B,GAAIF,KAAKsP,OAAOjQ,KAAOP,EAAEwQ,OAAOjQ,IAAMM,EAAE8C,KAAKpD,GAC/H,OAAOM,GACNtB,EAAEmB,UAAU8c,UAAY,SAAUpc,GACnC,OAAOpB,EAAEkB,KAAKmmB,UAAWznB,EAAEwB,GAAGimB,YAC7B9nB,EAAEmB,UAAU4mB,QAAU,WACvB,OAAO,IAAMpmB,KAAK+lB,UAAU3kB,QAC3B/C,EAAEmB,UAAU2mB,QAAU,WACvB,IAAIrnB,EAAGoB,EAAGb,EACV,OAAQ,MAAQW,KAAKqmB,MAAQrmB,KAAKqmB,MAAQrmB,KAAKqmB,MAAQ,WACrD,IAAIzoB,EAEJ,IAAKkB,KADLoB,EAAI,GAAItC,EAAIoC,KAAKsP,OACJjQ,EAAIzB,EAAEkB,GAAIoB,EAAEuC,KAAK3D,EAAGO,GACjC,OAAOa,GACPnC,KAAKiC,OAAOiD,MAAM,IACnB5E,EAAEmB,UAAU8mB,SAAW,WACxB,OAAO3mB,EAAEK,KAAKsP,SACbjR,EAAEmB,UAAUsL,OAAS,WACtB,OAAO9K,KAAKsmB,YACXjoB,EAAEmB,UAAUgd,sBAAwB,WACrC,MAAO,CACLlN,OAAQ/E,KAAKC,UAAUxK,KAAKsP,UAE7Bc,EAAI,SAAWtR,EAAGoB,GACnB,IAAIb,EACJ,OAAOA,EAAI,IAAMP,GAAKoB,EAAGb,GACxBwB,EAAI,SAAW/B,EAAGoB,GACnB,IAAIb,EAAGzB,EAAGS,EAEV,IAAKgB,KADLzB,EAAI+B,EAAEb,GACIoB,EAAG7B,EAAI6B,EAAEb,GAAIzB,EAAEyB,GAAKhB,EAC9B,OAAOT,GACN+B,EAAI,SAAWb,EAAGoB,GACnB,IAAIb,EAAGzB,EAAGS,EAAGK,EAAGiB,EAChB,IAAKjB,EAAI,GAAIiB,EAAIrB,OAAO6f,KAAKrf,GAAGuS,OAAQhS,EAAI,EAAGhB,EAAIsB,EAAEyB,OAAQ/C,EAAIgB,EAAGA,KAAKzB,EAAI+B,EAAEN,MAAUa,IAAMxB,EAAEd,GAAKkB,EAAElB,IACxG,OAAOc,GACNA,EAAI,SAAWI,GAChB,OAAOA,aAAaoB,EAAE2lB,KAAO/mB,EAAI,IAAIoB,EAAE2lB,KAAK/mB,IAC3Cb,EAAI,SAAWa,GAChB,OAAOA,aAAaoB,EAAE2lB,KAAO/mB,EAAEwQ,OAASxQ,GACvCT,EApE0B,CAqE7B6B,EAAE5B,SACJP,KAAKiC,MAAO,WACZE,EAAEqmB,YAAc,WACd,SAASznB,EAAEA,EAAGoB,GACZ,IAAIb,EAAGzB,EACPoC,KAAKwmB,QAAU,MAAQ1nB,EAAIA,EAAI,GAAIlB,EAAIsC,EAAEumB,OAAOpnB,EAAIa,EAAEwmB,UAAc1mB,KAAKymB,MAAQ7oB,EAAGoC,KAAKwmB,QAAUxmB,KAAKF,YAAY6mB,aAAa3mB,KAAKwmB,QAAS,CAC7IE,OAAQrnB,EACRonB,MAAOzmB,KAAKymB,MAAQ,KAGxB,OAAO3nB,EAAE6nB,aAAe,SAAU7nB,EAAGoB,GACnC,IAAIb,EAAGzB,EAAGS,EAAGK,EAAGiB,EAAGkB,EAAGuP,EAAGnS,EAAGJ,EAC5B,IAAK,MAAQiB,IAAMA,EAAI,IAA6BT,GAAxBR,EAAI,MAAQqC,EAAIA,EAAI,IAAUumB,OAAOpnB,EAAIxB,EAAE6oB,SAAa,MAAQroB,IAAMA,EAAI,GAAIJ,EAAI,GAAI0B,EAAI,EAAGkB,EAAI/B,EAAEsC,OAAQP,EAAIlB,EAAGA,IAAK,CACjJ,GAAIyQ,EAAItR,EAAEa,GAAIjB,EAAG,CACf,IAAK,mBAAqB0R,EAAEwW,aAAexW,EAAEwW,aAAavoB,QAAK,KAAY,mBAAsBT,EAAIc,EAAEA,EAAE0C,OAAS,IAAIylB,iBAAmBjpB,EAAEipB,iBAAiBzW,EAAG/R,QAAK,GAAS,CAC3KK,EAAE+D,KAAK2N,GACP,SAEFnS,EAAEwE,KAAK,IAAIzC,KAAKtB,EAAG,CACjB+nB,MAAOpoB,EACPqoB,OAAQrnB,KACLX,EAAI,MAEV,mBAAqB0R,EAAEwW,aAAexW,EAAEwW,aAAavoB,QAAK,GAAUK,EAAI,CAAC0R,GAAKnS,EAAEwE,KAAK2N,GAExF,OAAO1R,GAAKT,EAAEwE,KAAK,IAAIzC,KAAKtB,EAAG,CAC7B+nB,MAAOpoB,EACPqoB,OAAQrnB,KACLpB,GACJa,EAAEU,UAAUsnB,WAAa,WAC1B,OAAO9mB,KAAKwmB,SACX1nB,EAAEU,UAAUunB,SAAW,WACxB,OAAO/mB,KAAKymB,OACX3nB,EAAEU,UAAUqd,YAAc,WAC3B,IAAI/d,EAAGoB,EAAGb,EAAGzB,EAAGS,EAChB,IAAK6B,EAAI,CAAC,eAAuCpB,EAAI,EAAGO,GAA9BhB,EAAI2B,KAAK8mB,cAA2B1lB,OAAQ/B,EAAIP,EAAGA,IAAKlB,EAAIS,EAAES,GAAIoB,EAAEuC,KAAK7E,EAAEif,eACrG,OAAO3c,EAAE+B,KAAK,MACbnD,EAnCW,IAqChBf,KAAKiC,MAAO,WACZ,IAAIlB,EAAI,SAAWkoB,EAAK9mB,GACpB,SAAStC,IACPoC,KAAKF,YAAcknB,EAErB,IAAK,IAAI3oB,KAAK6B,EAAGb,EAAEtB,KAAKmC,EAAG7B,KAAO2oB,EAAI3oB,GAAK6B,EAAE7B,IAC7C,OAAOT,EAAE4B,UAAYU,EAAEV,UAAWwnB,EAAIxnB,UAAY,IAAI5B,EAAKopB,EAAI9K,UAAYhc,EAAEV,UAAWwnB,GAE1F3nB,EAAI,GAAGI,eACTS,EAAE+mB,UAAY,SAAU/mB,GACtB,SAASb,EAAEP,GACT,IAAIoB,EAAGb,EAAGzB,EAAGS,EAAGK,EAChB,IAAK,MAAQI,IAAMA,EAAI,IAAKkB,KAAKwmB,QAAU,GAAI5oB,EAAI,EAAGS,EAAIS,EAAEsC,OAAQ/C,EAAIT,EAAGA,IAAKc,EAAII,EAAElB,GAAIyB,EAAIkL,KAAKC,UAAU9L,GAAI,OAASwB,EAAIF,KAAKwmB,SAASnnB,KAAOa,EAAEb,GAAKX,GAE5J,OAAOI,EAAEO,EAAGa,GAAIb,EAAEG,UAAU0nB,KAAO,SAAUpoB,GAC3C,IAAIoB,EACJ,OAAOA,EAAIqK,KAAKC,UAAU1L,GAAIkB,KAAKwmB,QAAQtmB,IAC1Cb,EARS,CASZa,EAAE0b,cACJ7d,KAAKiC,MAAO,WACZE,EAAEinB,aAAe,WACf,SAASroB,EAAEA,GACTkB,KAAK+C,MAAMjE,GAEb,IAAIoB,EACJ,OAAOpB,EAAEU,UAAUiQ,IAAM,SAAU3Q,GACjC,IAAIO,EACJ,OAAOA,EAAIa,EAAEpB,GAAIkB,KAAKonB,SAAS/nB,GAAKP,GACnCA,EAAEU,UAAU0mB,OAAS,SAAUpnB,GAChC,IAAIO,EAAGzB,EACP,OAAOyB,EAAIa,EAAEpB,IAAKlB,EAAIoC,KAAKonB,SAAS/nB,YAAcW,KAAKonB,SAAS/nB,GAAIzB,QAAK,GACxEkB,EAAEU,UAAUuD,MAAQ,SAAUjE,GAC/B,IAAIoB,EAAGb,EAAGzB,EACV,IAAK,MAAQkB,IAAMA,EAAI,IAAKkB,KAAKonB,SAAW,GAAI/nB,EAAI,EAAGzB,EAAIkB,EAAEsC,OAAQxD,EAAIyB,EAAGA,IAAKa,EAAIpB,EAAEO,GAAIW,KAAKyP,IAAIvP,GACpG,OAAOpB,GACNoB,EAAI,SAAWpB,GAChB,OAAOA,EAAE4iB,QAAQ2F,cAChBvoB,EAjBY,IAmBjBf,KAAKiC,MAAO,aAAejC,KAAKiC,MAAO,WACvC,IAAIlB,EAAI,SAAWwoB,EAAKpnB,GACpB,SAAStC,IACPoC,KAAKF,YAAcwnB,EAErB,IAAK,IAAIjpB,KAAK6B,EAAGb,EAAEtB,KAAKmC,EAAG7B,KAAOipB,EAAIjpB,GAAK6B,EAAE7B,IAC7C,OAAOT,EAAE4B,UAAYU,EAAEV,UAAW8nB,EAAI9nB,UAAY,IAAI5B,EAAK0pB,EAAIpL,UAAYhc,EAAEV,UAAW8nB,GAE1FjoB,EAAI,GAAGI,eACTS,EAAEqnB,UAAY,SAAUrnB,GACtB,SAASb,IACP,OAAOA,EAAE6c,UAAUpc,YAAY+C,MAAM7C,KAAM0I,WAE7C,OAAO5J,EAAEO,EAAGa,GAAIb,EAAEG,UAAUgoB,aAAe,WACzC,OAA2B,IAApBxnB,KAAKynB,YACXpoB,EAAEG,UAAUkoB,aAAe,WAC5B,OAA0B,IAAnB1nB,KAAK2nB,WACXtoB,EAAEG,UAAUooB,aAAe,WAC5B,OAAO5nB,KAAK2nB,WAAa3nB,KAAK6nB,WAC7BxoB,EAAEG,UAAUsoB,UAAY,WACzB,OAAO9nB,KAAK2nB,YAAc3nB,KAAK6nB,WAC9BxoB,EAAEG,UAAUuoB,WAAa,WAC1B,OAAO,MAAQ/nB,KAAKkQ,QAAUlQ,KAAKkQ,QAAUlQ,KAAKkQ,QAAU,IAAIY,QAAQ,SAAUhS,GAChF,OAAO,SAAUoB,EAAGb,GAClB,OAAOP,EAAE2oB,YAAa,EAAI3oB,EAAEkpB,SAAQ,SAAUpqB,EAAGS,GAC/C,OAAOS,EAAE+oB,UAAYjqB,EAAGkB,EAAE2oB,YAAa,EAAI3oB,EAAE6oB,WAAY,EAAI7oB,EAAE+oB,UAAY3nB,EAAE7B,GAAKgB,EAAEhB,OAHlB,CAMtE2B,QACDX,EAAEG,UAAUwoB,QAAU,SAAUlpB,GACjC,OAAOA,GAAE,IACRO,EAAEG,UAAUyoB,QAAU,WACvB,IAAInpB,EACJ,OAAO,OAASA,EAAIkB,KAAKkQ,UAAY,mBAAqBpR,EAAEopB,QAAUppB,EAAEopB,SAAUloB,KAAKkQ,QAAU,KAAMlQ,KAAKynB,WAAa,KAAMznB,KAAK2nB,UAAY,KAAM3nB,KAAK6nB,UAAY,MACtKxoB,EAAEwc,YAAY,qBAAsBxc,EAAEwc,YAAY,sBAAuBxc,EAzBhE,CA0BZa,EAAE0b,cACJ7d,KAAKiC,MAAO,WACZ,IAAIlB,EACFO,EACAzB,EACAS,EACAK,EAQAmC,EAAI,GAAGpB,eACTS,EAAEyc,YAAc,SAAU7d,GACxB,SAASoB,EAAEpB,EAAGoB,GACZF,KAAKmoB,WAAarpB,EAAGkB,KAAK6d,WAAa3d,EAAGF,KAAKoB,OAASpB,KAAK6d,WAAWzc,OAAQpB,KAAKooB,WAAapoB,KAAKmoB,WAAW/mB,OAEpH,OAZI,SAAWtC,EAAGoB,GAChB,SAASb,IACPW,KAAKF,YAAchB,EAErB,IAAK,IAAIlB,KAAKsC,EAAGW,EAAE9C,KAAKmC,EAAGtC,KAAOkB,EAAElB,GAAKsC,EAAEtC,IACpCyB,EAAEG,UAAYU,EAAEV,UAAWV,EAAEU,UAAY,IAAIH,EAAKP,EAAEod,UAAYhc,EAAEV,UAOpEG,CAAEO,EAAGpB,GAAIoB,EAAE0c,IAAM,SAAU9d,GAChC,OAAO,MAAQA,IAAMA,EAAI,IAAKA,aAAakB,KAAOlB,EAAIkB,KAAKqoB,eAAe,MAAQvpB,EAAIA,EAAE6C,gBAAa,IACpGzB,EAAEmoB,eAAiB,SAAUvpB,GAC9B,OAAO,IAAIkB,KAAKlB,EAAGT,EAAES,KACpBoB,EAAE4d,eAAiB,SAAUhf,GAC9B,OAAO,IAAIkB,KAAKtB,EAAEI,GAAIA,IACrBoB,EAAEV,UAAU8oB,mBAAqB,SAAUxpB,GAC5C,OAAOJ,EAAEsB,KAAK6d,WAAW5a,MAAM,EAAGG,KAAKC,IAAI,EAAGvE,KAAKsC,QAClDlB,EAAEV,UAAU+oB,qBAAuB,SAAUzpB,GAC9C,OAAOT,EAAE2B,KAAKmoB,WAAWllB,MAAM,EAAGG,KAAKC,IAAI,EAAGvE,KAAKsC,QAClDlB,EAAEV,UAAUyD,MAAQ,WACrB,IAAInE,EACJ,OAAOkB,KAAKF,YAAYge,gBAAgBhf,EAAIkB,KAAK6d,YAAY5a,MAAMJ,MAAM/D,EAAG4J,aAC3ExI,EAAEV,UAAUwe,OAAS,SAAUlf,GAChC,OAAOkB,KAAKiD,MAAMnE,EAAGA,EAAI,IACxBoB,EAAEV,UAAU8c,UAAY,SAAUxd,GACnC,OAAOkB,KAAKF,YAAY8c,IAAI9d,GAAGqpB,aAAenoB,KAAKmoB,YAClDjoB,EAAEV,UAAUsL,OAAS,WACtB,OAAO9K,KAAKmoB,YACXjoB,EAAEV,UAAUqd,YAAc,WAC3B,OAAO7c,KAAKmoB,YACXjoB,EAAEV,UAAUmC,SAAW,WACxB,OAAO3B,KAAKmoB,YACXjoB,EA3BW,CA4BdA,EAAE0b,aAAc9c,EAAI,KAAO,mBAAqBoK,MAAM3F,KAAO2F,MAAM3F,KAAK,gBAAgBnC,YAAS,GAAS/B,EAAI,OAAS,kBAAqB,IAAImpB,YAAc,IAAIA,YAAY,QAAK,GAAS5qB,EAAI,mBAAqB,mBAAqB+E,OAAO8lB,cAAgB9lB,OAAO8lB,cAAc,GAAI,aAAU,GAASpqB,EAAIS,GAAKO,EAAI,SAAUP,GACpU,OAAOoK,MAAM3F,KAAKzE,GAAG4pB,KAAI,SAAU5pB,GACjC,OAAOA,EAAE0pB,YAAY,OAErB,SAAU1pB,GACZ,IAAIoB,EAAGb,EAAGzB,EAAGS,EAAGK,EAChB,IAAKL,EAAI,GAAI6B,EAAI,EAAGtC,EAAIkB,EAAEsC,OAAQxD,EAAIsC,IAAIxB,EAAII,EAAEmC,WAAWf,OAAW,OAAS,OAASxB,GAAKd,EAAIsC,IAA6B,SAAW,OAAlCb,EAAIP,EAAEmC,WAAWf,OAA8BxB,IAAM,KAAOA,IAAM,KAAO,KAAOW,GAAK,MAAQa,KAAM7B,EAAEoE,KAAK/D,GACjN,OAAOL,GACNK,EAAId,EAAI,SAAUkB,GACnB,OAAO6D,OAAO8lB,cAAc5lB,MAAMF,OAAQ7D,IACxC,SAAUA,GACZ,IAAOO,EAAGzB,EACV,OAAW,WACT,IAAIsC,EAAG7B,EAAGK,EACV,IAAKA,EAAI,GAAIwB,EAAI,EAAG7B,EAAIS,EAAEsC,OAAQ/C,EAAI6B,EAAGA,IAAKtC,EAAIkB,EAAEoB,GAAIb,EAAI,GAAIzB,EAAI,QAAUA,GAAK,MAAOyB,GAAKsD,OAAOC,aAAahF,IAAM,GAAK,KAAO,OAAQA,EAAI,MAAQ,KAAOA,GAAIc,EAAE+D,KAAKpD,EAAIsD,OAAOC,aAAahF,IACnM,OAAOc,EAHE,GAIJuD,KAAK,MAEdlE,KAAKiC,MAAO,aAAejC,KAAKiC,MAAO,aAAejC,KAAKiC,MAAO,WAClEE,EAAEyb,OAAOgN,KAAO,CACdC,YAAa,eACbC,KAAM,OACNC,QAAS,UACT,KAAQ,OACRtmB,MAAO,QACPumB,mBAAoB,sBACpBC,KAAM,OACNC,SAAU,UACVC,OAAQ,iBACRC,OAAQ,SACRC,KAAM,OACNC,QAAS,UACTC,QAAS,iBACTC,MAAO,QACPC,KAAM,OACNtD,OAAQ,SACRuD,OAAQ,gBACRC,KAAM,OACNC,OAAQ,SACRrgB,IAAK,MACLsgB,eAAgB,oBAChBC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,OAENlsB,KAAKiC,MAAO,WACZE,EAAEyb,OAAOuO,IAAM,CACbC,WAAY,aACZC,kBAAmB,sBACnBC,wBAAyB,6BACzBC,mBAAoB,uBACpBC,4BAA6B,iCAC7BC,eAAgB,mBAChBC,mBAAoB,uBACpBC,eAAgB,mBAChBC,kBAAmB,sBACnBC,kBAAmB,uBAErB7sB,KAAKiC,MAAO,WACZ,IAAIlB,EACJoB,EAAEyb,OAAOiD,gBAAkB9f,EAAI,CAC7B,QAAW,CACToP,QAAS,MACTlD,OAAO,GAETue,MAAO,CACLrb,QAAS,aACT2c,UAAU,GAEZ5B,SAAU,CACR/a,QAAS,KACT4c,UAAU,EACVC,eAAe,EACfnT,OAAO,GAEToR,KAAM,CACJ9a,QAAS,MACT4c,UAAU,EACVE,KAAM,CACJC,WAAW,IAGfC,WAAY,CACVhd,QAAS,KACTlD,OAAO,GAETmgB,OAAQ,CACNjd,QAAS,KACT8Q,cAAe,aACfpH,OAAO,EACPiT,UAAU,EACVzoB,KAAM,SAAc/C,GAClB,OAAOa,EAAEgO,QAAQ7O,EAAEgN,cAAgBvN,EAAEkB,KAAKgf,eAAe9Q,UAG7Dkd,WAAY,CACVld,QAAS,KACTlD,OAAO,GAETqgB,OAAQ,CACNnd,QAAS,KACT8Q,cAAe,aACfpH,OAAO,EACPiT,UAAU,EACVzoB,KAAM,SAAc/C,GAClB,OAAOa,EAAEgO,QAAQ7O,EAAEgN,cAAgBvN,EAAEkB,KAAKgf,eAAe9Q,UAG7D0c,kBAAmB,CACjB1c,QAAS,MACTod,WAAW,EACXR,UAAU,EACV9f,OAAO,EACP4M,OAAO,KAGX7Z,KAAKiC,MAAO,WACZ,IAAIlB,EAAGO,EACPP,EAAIoB,EAAEyb,OAAOgN,KAAMtpB,EAAI,CAACP,EAAE0D,MAAO1D,EAAEgrB,GAAIhrB,EAAEirB,GAAIjrB,EAAE+qB,GAAI/qB,EAAEmrB,GAAInrB,EAAEkrB,IAAK9pB,EAAEyb,OAAO4P,SAAW,CAClFC,OAAQ,MACRC,UAAW,EACXC,UAAW,SAAmBxrB,GAC5B,IAAItC,EAAGS,EACP,OAAQ6B,GACN,KAAK,EACH,MAAO,KAAOpB,EAAE0D,MAClB,KAAK,EACH,MAAO,KAAO1D,EAAQ,KACxB,QACE,OAAOlB,EAAI,WACT,OAAQoC,KAAKwrB,QACX,IAAK,KACH,OAAO,IACT,IAAK,MACH,OAAO,OAEXztB,KAAKiC,MAAO3B,EAAI+E,KAAKuoB,MAAMvoB,KAAKqV,IAAIvY,GAAKkD,KAAKqV,IAAI7a,KAASsC,EAAIkD,KAAKwoB,IAAIhuB,EAAGS,IAAUwtB,QAAQ7rB,KAAKyrB,WAAkBxO,QAAQ,MAAO,IAAIA,QAAQ,MAAO,IAAS,IAAM5d,EAAEhB,OAIjLN,KAAKiC,MAAO,WACZE,EAAEyb,OAAOmD,eAAiB,CACxB+J,KAAM,CACJ3a,QAAS,SACT4d,aAAa,EACbC,OAAQ,SAAgBjtB,GACtB,IAAIoB,EACJ,MAAuC,UAAhCA,EAAIC,OAAO6rB,iBAAiBltB,IAAiBmtB,YAAc/rB,EAAE+rB,YAAc,MAGtF9C,OAAQ,CACNjb,QAAS,KACT4d,aAAa,EACbC,OAAQ,SAAgBjtB,GAEtB,MAAuC,WAA5BqB,OAAO6rB,iBAAiBltB,GAAmBotB,YAG1DC,KAAM,CACJC,aAAc,IACdL,OAAQ,SAAgBjtB,GACtB,IAAOlB,EAAGS,EACV,OAAgDA,EAAI,SAAzC6B,EAAEyiB,eAAeC,mBAAuC,KAAMhlB,EAAIsC,EAAE0f,2BAA2B9gB,EAAG,CAC3G0gB,iBAAkBnhB,KACdT,EAAEsM,aAAa,aAAU,IAGnCuf,OAAQ,CACNvb,QAAS,MACT4d,aAAa,GAEfO,OAAQ,CACNxd,MAAO,CACLyd,gBAAiB,gBAIvBvuB,KAAKiC,MAAO,WACZ,IAAIlB,EAAGO,EAAMhB,EACsBA,EAAI,CAAC,kBAAmB,eAAgB,sBAAuB,oBAAqB,wBAAyB,YAAagB,EAAI,kCAAsDP,EAAI,IAAIoe,OAAO,qBAAgB,KAAMhd,EAAE4c,OAAO,CACnQyP,YAAa,CACX,mBAAoB,SAA0BztB,GAC5C,IAAIO,EACJ,GAAIP,aAAaoB,EAAEssB,SAAUntB,EAAIP,MAAO,CACtC,KAAMA,aAAaoa,aAAc,MAAM,IAAIe,MAAM,yBACjD5a,EAAIa,EAAEssB,SAASC,SAAS3tB,EAAE4tB,WAE5B,OAAOrtB,EAAEstB,yBAAyBlQ,gBAEpC,YAAa,SAAmB9c,GAC9B,IAAIkB,EAAGuP,EAAGnS,EAAGJ,EAAGkS,EAAGrQ,EAAGxB,EAAGuU,EAAG1S,EAAG/B,EAAG8U,EAAGC,EAAGjS,EAAGsQ,EAAGY,EAAGrR,EAAG6R,EACpD,GAAI7S,aAAaO,EAAEssB,SAAU3uB,EAAIqC,EAAE0sB,aAAaC,OAAOltB,OAAQ,CAC7D,KAAMA,aAAauZ,aAAc,MAAM,IAAIe,MAAM,yBACjDpc,EAAI8B,EAAEmtB,WAAU,GAElB,IAAgC/c,EAAI,EAAGhQ,GAAlCqR,EAAIvT,EAAEsP,iBAhBb,gCAgB+C/L,OAAQrB,EAAIgQ,EAAGA,IAAK9R,EAAImT,EAAErB,GAAI7P,EAAE0gB,WAAW3iB,GACxF,IAAKyB,EAAI,EAAG1B,EAAIK,EAAE+C,OAAQpD,EAAI0B,EAAGA,IAAK,IAAKmB,EAAIxC,EAAEqB,GAA2CxB,EAAI,EAAG4U,GAA9Cd,EAAInU,EAAEsP,iBAAiB,IAAMtM,EAAI,MAAmBO,OAAQ0R,EAAI5U,EAAGA,KAAKD,EAAI+T,EAAE9T,IAAMsQ,gBAAgB3N,GACzJ,IAAgC4R,EAAI,EAAGM,GAAlCpS,EAAI9C,EAAEsP,iBAlBuL,sCAkBrJ/L,OAAQ2R,EAAIN,EAAGA,IAAK,CAC/DxU,EAAI0C,EAAE8R,GACN,IAEE,IAAK3R,KADLsP,EAAI7F,KAAKS,MAAM/M,EAAEiM,aAAa7K,IAAKpB,EAAEuQ,gBAAgBnP,GAC3C+Q,EAAGoC,EAAIpC,EAAEtP,GAAI7C,EAAEqQ,aAAaxN,EAAG0R,GACzC,MAAOsF,KAEX,OAAOja,EAAE6uB,UAAUzP,QAAQne,EAAG,MAGlCiuB,cAAe,CACb,mBAAoB,SAA0BjuB,GAC5C,OAAOoB,EAAEssB,SAASrQ,eAAerd,IAEnC,YAAa,SAAmBA,GAC9B,OAAOoB,EAAEssB,SAASC,SAAS3tB,KAG/BkuB,uBAAwB,SAAgCluB,EAAGO,GACzD,IAAIzB,EACJ,GAAIA,EAAIsC,EAAEqsB,YAAYltB,GAAI,OAAOzB,EAAEkB,GACnC,MAAM,IAAImb,MAAM,yBAA2B5a,IAE7C4tB,2BAA4B,SAAoCnuB,EAAGO,GACjE,IAAIzB,EACJ,GAAIA,EAAIsC,EAAE6sB,cAAc1tB,GAAI,OAAOzB,EAAEkB,GACrC,MAAM,IAAImb,MAAM,yBAA2B5a,OAG/CtB,KAAKiC,MAAO,WACZ,IAAIlB,EACJA,EAAIoB,EAAEyb,OAAOgN,KAAMzoB,EAAEyb,OAAOuR,QAAU,CACpCC,eAAgB,WACd,MAAO,mRAAqRruB,EAAE+pB,KAAO,mBAAqB/pB,EAAE+pB,KAAO,6JAA+J/pB,EAAEqqB,OAAS,mBAAqBrqB,EAAEqqB,OAAS,2IAA6IrqB,EAAE2qB,OAAS,mBAAqB3qB,EAAE2qB,OAAS,iLAAmL3qB,EAAEsqB,KAAO,mBAAqBtqB,EAAEsqB,KAAO,qQAAuQtqB,EAAEmqB,SAAW,mBAAqBnqB,EAAEmqB,SAAW,yIAA2InqB,EAAEyqB,MAAQ,mBAAqBzqB,EAAEyqB,MAAQ,uIAAyIzqB,EAAEkqB,KAAO,mBAAqBlqB,EAAEkqB,KAAO,gJAAkJlqB,EAAEgqB,QAAU,mBAAqBhqB,EAAEgqB,QAAU,gJAAkJhqB,EAAEuqB,QAAU,mBAAqBvqB,EAAEuqB,QAAU,sKAAwKvqB,EAAEwqB,QAAU,mBAAqBxqB,EAAEwqB,QAAU,sKAAwKxqB,EAAEoqB,OAAS,mBAAqBpqB,EAAEoqB,OAAS,gQAAkQpqB,EAAE8pB,YAAc,mBAAqB9pB,EAAE8pB,YAAc,mUAAqU9pB,EAAE4qB,KAAO,mBAAqB5qB,EAAE4qB,KAAO,4JAA8J5qB,EAAE0qB,KAAO,mBAAqB1qB,EAAE0qB,KAAO,6TAA+T1qB,EAAE8qB,eAAiB,iBAAmB9qB,EAAEwK,IAAM,mJAAqJxK,EAAEsqB,KAAO,mHAAqHtqB,EAAE6qB,OAAS,uFAGt1H5rB,KAAKiC,MAAO,WACZE,EAAEyb,OAAOyR,aAAe,KACxBrvB,KAAKiC,MAAO,WACZE,EAAEyb,OAAO0R,YAAc,CACrBC,QAAS,CACPC,aAAc,UACdC,QAAS,CACPrvB,MAAM,EACN6I,MAAM,IAGVJ,KAAM,CACJ4mB,QAAS,CACPxmB,MAAM,MAIZjJ,KAAKiC,MAAO,WACZE,EAAEyb,OAAO8R,SAAW,CAClBC,EAAG,YACHC,EAAG,MACHC,GAAI,SACJC,GAAI,SACJC,GAAI,OACJC,GAAI,QACJC,GAAI,SACJC,GAAI,IACJC,GAAI,IACJC,GAAI,MAENpwB,KAAKiC,MAAO,WACZE,EAAEyb,OAAO5P,MAAQ,CACfqiB,eAAe,EACfC,SAAU,WACR,OAAOruB,KAAKouB,eAAiBluB,EAAEob,QAAQG,oBAAsB,EAAI,GAEnE6S,UAAW,SAAmBxvB,GAC5B,IAAIO,EACJ,OAAOA,EAAIa,EAAEqhB,YAAY,QAAS,CAChC/Y,KAAM,OACN+lB,UAAU,EACVC,QAAQ,EACRpjB,GAAIpL,KAAKyuB,eACLlnB,iBAAiB,UAAU,WAC/B,OAAOzI,EAAEO,EAAEgO,OAAQnN,EAAE0gB,WAAWvhB,MAC9Ba,EAAE0gB,WAAWxY,SAASsmB,eAAe1uB,KAAKyuB,cAAermB,SAAS2c,KAAKhW,YAAY1P,GAAIA,EAAEuP,SAE/F6f,YAAa,mBAAqBxd,KAAKC,MAAMvP,SAAS,MAExD5D,KAAKiC,MAAO,aAAejC,KAAKiC,MAAO,WACvCE,EAAE8Q,gBAAgB,eAAgB,CAChCiS,WAAY,4QACZG,WAAY,WACV,MAAO,KAAOpjB,KAAK0sB,UAAY1sB,KAAK0sB,UAAYxsB,EAAEyb,OAAOuR,QAAQC,sBAAmB,MAGxFpvB,KAAKiC,MAAO,WACZ,IAAIlB,EAAI,SAAW6vB,EAAKzuB,GACpB,SAAStC,IACPoC,KAAKF,YAAc6uB,EAErB,IAAK,IAAItwB,KAAK6B,EAAGb,EAAEtB,KAAKmC,EAAG7B,KAAOswB,EAAItwB,GAAK6B,EAAE7B,IAC7C,OAAOT,EAAE4B,UAAYU,EAAEV,UAAWmvB,EAAInvB,UAAY,IAAI5B,EAAK+wB,EAAIzS,UAAYhc,EAAEV,UAAWmvB,GAE1FtvB,EAAI,GAAGI,eACP7B,EAAI,GAAG4R,SAAW,SAAU1Q,GAC1B,IAAK,IAAIoB,EAAI,EAAGb,EAAIW,KAAKoB,OAAQ/B,EAAIa,EAAGA,IAAK,GAAIA,KAAKF,MAAQA,KAAKE,KAAOpB,EAAG,OAAOoB,EACpF,OAAQ,GAEZA,EAAE0uB,WAAa,SAAUvvB,GACvB,SAAShB,EAAES,EAAGoB,GACZF,KAAKV,OAASR,EAAGkB,KAAK4R,QAAU,MAAQ1R,EAAIA,EAAI,GAAIF,KAAK6uB,WAAa,GAAI7uB,KAAK8uB,SAAW9uB,KAE5F,OAAOlB,EAAET,EAAGgB,GAAIhB,EAAEmB,UAAUuvB,SAAW,WACrC,IAAIjwB,EAAGoB,EAAGb,EAAGzB,EAAGS,EAChB,IAAK,MAAQ2B,KAAKgvB,QAAUhvB,KAAKgvB,MAAQhvB,KAAKivB,eAAgC5wB,EAAI,GAAIS,EAAI,EAAGoB,GAA/BtC,EAAIoC,KAAKgvB,OAA4B5tB,OAAQlB,EAAIpB,EAAGA,IAAKO,EAAIzB,EAAEkB,GAAIT,EAAEoE,KAAKpD,EAAEytB,WAAU,IACpJ,OAAOzuB,GACNA,EAAEmB,UAAU0vB,WAAa,WAC1B,IAAIpwB,EACJ,OAAOkB,KAAKgvB,MAAQ,KAAMhvB,KAAK6uB,WAAa,GAAI,OAAS/vB,EAAIkB,KAAKmvB,YAAcrwB,EAAEowB,kBAAe,GAChG7wB,EAAEmB,UAAU4vB,wBAA0B,SAAUtwB,GACjD,IAAIoB,EACJ,OAAO,OAASA,EAAIF,KAAKqvB,kBAAkBvwB,IAAMoB,EAAEgvB,kBAAe,GACjE7wB,EAAEmB,UAAU8vB,4BAA8B,SAAUxwB,EAAGoB,GACxD,IAAIb,EACJ,OAAQA,EAAIW,KAAKuvB,uBAAuBrvB,IAAMF,KAAKwvB,gBAAgBnwB,IAAMA,EAAIW,KAAKyvB,gBAAgB5sB,MAAM7C,KAAM0I,WAAY1I,KAAK0vB,mBAAmBrwB,EAAGa,IAAKb,GACzJhB,EAAEmB,UAAUiwB,gBAAkB,SAAU3wB,EAAGO,EAAGzB,GAC/C,IAAIS,EACJ,OAAO,MAAQT,IAAMA,EAAI,IAAKyB,aAAaa,EAAEqmB,cAAgB3oB,EAAE+xB,UAAY7wB,EAAGA,EAAIoB,EAAE0vB,iBAAkBvxB,EAAI,IAAIS,EAAEO,EAAGzB,GAAIoC,KAAKwvB,gBAAgBnxB,IAC3IA,EAAEmB,UAAUgwB,gBAAkB,SAAU1wB,GACzC,OAAOA,EAAEqwB,WAAanvB,KAAMlB,EAAEgwB,SAAW9uB,KAAK8uB,SAAU9uB,KAAK6uB,WAAWpsB,KAAK3D,GAAIA,GAChFT,EAAEmB,UAAUqwB,iBAAmB,WAChC,IAAI/wB,EAAGoB,EAAGb,EAAGzB,EAAGS,EAChB,IAAKA,EAAI,GAAyB6B,EAAI,EAAGb,GAA5BzB,EAAIoC,KAAK6uB,YAAyBztB,OAAQ/B,EAAIa,EAAGA,IAAKpB,EAAIlB,EAAEsC,GAAI7B,EAAEoE,KAAK3D,GAAIT,EAAIA,EAAEgc,OAAOvb,EAAE+wB,oBACvG,OAAOxxB,GACNA,EAAEmB,UAAUyI,YAAc,WAC3B,OAAOjI,KAAK8vB,qBAAqB9vB,KAAKV,SACrCjB,EAAEmB,UAAUswB,qBAAuB,SAAUhxB,GAC9C,IAAIoB,EACJ,OAAQA,EAAI,MAAQpB,EAAIA,EAAEsM,QAAK,GAAUpL,KAAK8uB,SAASvmB,QAAQF,cAAc,kBAAoBnI,EAAI,WAAQ,GAC5G7B,EAAEmB,UAAU6vB,kBAAoB,SAAUvwB,GAC3C,IAAIoB,EAAGb,EAAGzB,EAAGS,EACb,IAAkC6B,EAAI,EAAGb,GAApCzB,EAAIoC,KAAK6vB,oBAAiCzuB,OAAQ/B,EAAIa,EAAGA,IAAK,IAAI7B,EAAIT,EAAEsC,IAAMZ,SAAWR,EAAG,OAAOT,GACvGA,EAAEmB,UAAUuwB,aAAe,WAC5B,OAAO/vB,KAAK8uB,WAAa9uB,KAAOA,KAAK8uB,SAASiB,eAAiB/vB,KAAKgwB,uBAAyB,MAAQhwB,KAAKiwB,UAAYjwB,KAAKiwB,UAAYjwB,KAAKiwB,UAAY,QAAK,GAC5J5xB,EAAEmB,UAAUwwB,qBAAuB,WACpC,OAAiC,IAA1BhwB,KAAKkwB,kBACX7xB,EAAEmB,UAAU2wB,kBAAoB,WACjC,OAAOnwB,KAAKkwB,kBAAmB,GAC9B7xB,EAAEmB,UAAU4wB,mBAAqB,WAClC,OAAOpwB,KAAKkwB,kBAAmB,GAC9B7xB,EAAEmB,UAAU+vB,uBAAyB,SAAUzwB,GAChD,IAAIoB,EACJ,OAAO,OAASA,EAAIF,KAAK+vB,gBAAkB7vB,EAAEpB,EAAE+d,oBAAiB,GAC/Dxe,EAAEmB,UAAUkwB,mBAAqB,SAAU5wB,EAAGoB,GAC/C,IAAIb,EACJ,OAAO,OAASA,EAAIW,KAAK+vB,gBAAkB1wB,EAAEa,EAAE2c,eAAiB/d,OAAI,GACnET,EAAEmB,UAAU6wB,0BAA4B,WACzC,IAAIvxB,EAAGoB,EAAGb,EAAGhB,EAAGK,EAAGiB,EACnB,GAAIb,EAAIkB,KAAK+vB,eAAgB,CAM3B,IAAK7vB,KALLP,EAAIK,KAAK6vB,mBAAmBxV,OAAOra,MAAOX,EAAI,WAC5C,IAAIP,EAAGoB,EAAGb,EACV,IAAKA,EAAI,GAAIP,EAAI,EAAGoB,EAAIP,EAAEyB,OAAQlB,EAAIpB,EAAGA,IAAKJ,EAAIiB,EAAEb,GAAIO,EAAEoD,KAAK/D,EAAEY,OAAOud,eACxE,OAAOxd,EAHqC,GAIzChB,EAAI,GACCS,EAAGlB,EAAEG,KAAKsB,EAAGa,GAAK,GAAK7B,EAAEoE,YAAY3D,EAAEoB,IACjD,OAAO7B,IAERA,EA3DU,CA4Db6B,EAAE0b,cACJ7d,KAAKiC,MAAO,WACZ,IAAIlB,EAAI,SAAWwxB,EAAKpwB,GACpB,SAAStC,IACPoC,KAAKF,YAAcwwB,EAErB,IAAK,IAAIjyB,KAAK6B,EAAGb,EAAEtB,KAAKmC,EAAG7B,KAAOiyB,EAAIjyB,GAAK6B,EAAE7B,IAC7C,OAAOT,EAAE4B,UAAYU,EAAEV,UAAW8wB,EAAI9wB,UAAY,IAAI5B,EAAK0yB,EAAIpU,UAAYhc,EAAEV,UAAW8wB,GAE1FjxB,EAAI,GAAGI,eACTS,EAAE0vB,gBAAkB,SAAU1vB,GAC5B,SAASb,IACPA,EAAE6c,UAAUpc,YAAY+C,MAAM7C,KAAM0I,WAAY1I,KAAKuwB,YAAcvwB,KAAKV,OAAQU,KAAK2vB,UAAY3vB,KAAK4R,QAAQ+d,iBAAkB3vB,KAAK4R,QAAQ+d,UAE/I,OAAO7wB,EAAEO,EAAGa,GAAIb,EAAEG,UAAUgxB,cAAgB,WAC1C,IAAI1xB,EAAGoB,EAAGb,EAAGzB,EACb,IAAKoC,KAAK6uB,WAAWztB,OAAQ,IAAwCtC,EAAI,EAAGoB,GAA1CtC,EAAIoC,KAAKuwB,YAAYzJ,cAA2B1lB,OAAQlB,EAAIpB,EAAGA,IAAKO,EAAIzB,EAAEkB,GAAIkB,KAAKsvB,4BAA4BtvB,KAAK2vB,UAAWtwB,EAAGW,KAAK4R,SACzK,OAAO5R,KAAK6uB,YACXxvB,EAAEG,UAAUyvB,YAAc,WAC3B,IAAInwB,EAAGoB,EAAGb,EAAGzB,EAAGS,EAAGK,EAAGiB,EAAGkB,EACzB,IAAK/B,EAAIkB,KAAKywB,yBAAoDvwB,EAAI,EAAGtC,GAAjC+B,EAAIK,KAAKwwB,iBAA8BpvB,OAAQxD,EAAIsC,EAAGA,IAAK,IAAiCb,EAAI,EAAGhB,GAAzBwC,EAANlB,EAAEO,GAAU6uB,YAAyB3tB,OAAQ/C,EAAIgB,EAAGA,IAAKX,EAAImC,EAAExB,GAAIP,EAAEiQ,YAAYrQ,GAC7L,MAAO,CAACI,IACPO,EAAEG,UAAUixB,uBAAyB,SAAU3xB,GAChD,OAAO,MAAQA,IAAMA,EAAIkB,KAAKuwB,YAAYxJ,YAAa/mB,KAAKwwB,gBAAgB,GAAGC,uBAAuB3xB,IACrGO,EAde,CAelBa,EAAE0uB,aACJ7wB,KAAKiC,MAAO,WACZ,IAAIlB,EAAI,SAAW4xB,EAAKxwB,GACpB,SAAStC,IACPoC,KAAKF,YAAc4wB,EAErB,IAAK,IAAIryB,KAAK6B,EAAGb,EAAEtB,KAAKmC,EAAG7B,KAAOqyB,EAAIryB,GAAK6B,EAAE7B,IAC7C,OAAOT,EAAE4B,UAAYU,EAAEV,UAAWkxB,EAAIlxB,UAAY,IAAI5B,EAAK8yB,EAAIxU,UAAYhc,EAAEV,UAAWkxB,GAE1FrxB,EAAI,GAAGI,eACTS,EAAEywB,WAAa,SAAUzwB,GACvB,SAASb,IACP,OAAOA,EAAE6c,UAAUpc,YAAY+C,MAAM7C,KAAM0I,WAE7C,OAAO5J,EAAEO,EAAGa,GAAIb,EAJH,CAKba,EAAE0b,cACJ7d,KAAKiC,MAAO,WACZ,IAAIlB,EACFO,EACAzB,EACAS,EACAK,EACAiB,EAMAyQ,EAAI,SAAWtR,EAAGoB,GAChB,SAASb,IACPW,KAAKF,YAAchB,EAErB,IAAK,IAAIlB,KAAKsC,EAAGjC,EAAEF,KAAKmC,EAAGtC,KAAOkB,EAAElB,GAAKsC,EAAEtC,IAC3C,OAAOyB,EAAEG,UAAYU,EAAEV,UAAWV,EAAEU,UAAY,IAAIH,EAAKP,EAAEod,UAAYhc,EAAEV,UAAWV,GAEtFb,EAAI,GAAGwB,eACP5B,EAAI,GAAG2R,SAAW,SAAU1Q,GAC1B,IAAK,IAAIoB,EAAI,EAAGb,EAAIW,KAAKoB,OAAQ/B,EAAIa,EAAGA,IAAK,GAAIA,KAAKF,MAAQA,KAAKE,KAAOpB,EAAG,OAAOoB,EACpF,OAAQ,GAEZpB,EAAIoB,EAAE0f,2BAA4BhiB,EAAIsC,EAAE2iB,oBAAqBxjB,EAAIa,EAAE+hB,wBAAyB5jB,EAAI6B,EAAE8c,gBAAiBte,EAAIwB,EAAEqd,sBAAuB5d,EAAIO,EAAEgO,QAAShO,EAAEyU,iBAAmB,SAAUzU,GAC5L,SAASjC,EAAEa,GACTkB,KAAKuI,QAAUzJ,EAAGkB,KAAK4wB,UAnBrB,SAAW9xB,EAAGoB,GAChB,OAAO,WACL,OAAOpB,EAAE+D,MAAM3C,EAAGwI,YAiBe7H,CAAEb,KAAK4wB,UAAW5wB,MAAOA,KAAKyR,SAAW,IAAItR,OAAOwU,iBAAiB3U,KAAK4wB,WAAY5wB,KAAK+H,QAEhI,IAAI8oB,EAAInxB,EAAM+S,EACd,OAAOrC,EAAEnS,EAAGiC,GAAiC,KAA7BR,EAAI,qBAAmC,IAAK+S,EAAI,CAC9DlJ,YAAY,EACZ8J,WAAW,EACXC,eAAe,EACfG,uBAAuB,EACvB5B,SAAS,GACR5T,EAAEuB,UAAUuI,MAAQ,WACrB,OAAO/H,KAAK+C,QAAS/C,KAAKyR,SAASyB,QAAQlT,KAAKuI,QAASkK,IACxDxU,EAAEuB,UAAUsxB,KAAO,WACpB,OAAO9wB,KAAKyR,SAASoC,cACpB5V,EAAEuB,UAAUoxB,UAAY,SAAU9xB,GACnC,IAAIoB,EAAGb,EACP,OAAQa,EAAIF,KAAK+wB,WAAWtuB,KAAKI,MAAM3C,EAAGF,KAAKgxB,yBAAyBlyB,IAAKkB,KAAK+wB,UAAU3vB,QAAU,OAAS/B,EAAIW,KAAKsL,WAAa,mBAAqBjM,EAAE4xB,kBAAoB5xB,EAAE4xB,iBAAiBjxB,KAAKkxB,sBAAuBlxB,KAAK+C,cAAW,GAC9O9E,EAAEuB,UAAUuD,MAAQ,WACrB,OAAO/C,KAAK+wB,UAAY,IACvB9yB,EAAEuB,UAAUwxB,yBAA2B,SAAUlyB,GAClD,IAAIoB,EAAGb,EAAGzB,EAAGS,EACb,IAAKA,EAAI,GAAI6B,EAAI,EAAGb,EAAIP,EAAEsC,OAAQ/B,EAAIa,EAAGA,IAAKtC,EAAIkB,EAAEoB,GAAIF,KAAKmxB,sBAAsBvzB,IAAMS,EAAEoE,KAAK7E,GAChG,OAAOS,GACNJ,EAAEuB,UAAU2xB,sBAAwB,SAAUryB,GAC/C,IAAIoB,EAAGb,EAAGzB,EAAGS,EACb,GAAI2B,KAAKoxB,cAActyB,EAAE4E,QAAS,OAAO,EACzC,IAA0CxD,EAAI,EAAGb,GAA5ChB,EAAI2B,KAAKqxB,wBAAwBvyB,IAAiBsC,OAAQ/B,EAAIa,EAAGA,IAAK,GAAItC,EAAIS,EAAE6B,GAAIF,KAAKsxB,kBAAkB1zB,GAAI,OAAO,EAC3H,OAAO,GACNK,EAAEuB,UAAU8xB,kBAAoB,SAAUxyB,GAC3C,OAAOA,IAAMkB,KAAKuI,UAAYvI,KAAKoxB,cAActyB,KAAOlB,EAAEkB,IACzDb,EAAEuB,UAAU4xB,cAAgB,SAAUlxB,GACvC,OAAOpB,EAAEoB,EAAG,CACVsf,iBA5ByC,yBA8B1CvhB,EAAEuB,UAAU6xB,wBAA0B,SAAUvyB,GACjD,IAAIoB,EACJ,OAAQA,EAAI,GAAIpB,EAAE0J,MAChB,IAAK,aACH1J,EAAEuT,gBAAkB3S,GAAKQ,EAAEuC,KAAK3D,EAAE4E,QAClC,MACF,IAAK,gBACHxD,EAAEuC,KAAK3D,EAAE4E,OAAO2I,YAAanM,EAAEuC,KAAK3D,EAAE4E,QACtC,MACF,IAAK,YACHxD,EAAEuC,KAAKI,MAAM3C,EAAGpB,EAAEmT,YAAa/R,EAAEuC,KAAKI,MAAM3C,EAAGpB,EAAEoT,cAErD,OAAOhS,GACNjC,EAAEuB,UAAU0xB,mBAAqB,WAClC,OAAOlxB,KAAKuxB,0BACXtzB,EAAEuB,UAAU+xB,uBAAyB,WACtC,IAAIzyB,EAAGoB,EAAGb,EAAGzB,EAAGS,EAAGK,EAAGiB,EAAGkB,EAAGuP,EAAGnS,EAAG8R,EAClC,IAAiD1Q,GAA5CwB,EAAIb,KAAKwxB,mCAAyCC,UAAWpzB,EAAIwC,EAAE6wB,UAAoEhzB,EAAI,EAAGiB,GAAxByQ,GAAxCL,EAAI/P,KAAK2xB,+BAAqCF,WAAwBrwB,OAAQzB,EAAIjB,EAAGA,IAAKwB,EAAIkQ,EAAE1R,GAAIb,EAAEE,KAAKsB,EAAGa,GAAK,GAAKb,EAAEoD,KAAKvC,GAClN,OAAO7B,EAAEoE,KAAKI,MAAMxE,EAAG0R,EAAE2hB,WAAYzzB,EAAI,IAAKa,EAAIO,EAAE4C,KAAK,OAAShE,EAAE2zB,UAAY9yB,IAAKlB,EAAIS,EAAE4D,KAAK,OAAShE,EAAE4zB,YAAcj0B,GAAIK,GAC5HA,EAAEuB,UAAUsyB,mBAAqB,SAAUhzB,GAC5C,IAAIoB,EAAGb,EAAGzB,EAAGS,EAAGK,EAChB,IAAyBA,EAAI,GAAIwB,EAAI,EAAGb,GAAnChB,EAAI2B,KAAK+wB,WAAgC3vB,OAAQ/B,EAAIa,EAAGA,KAAKtC,EAAIS,EAAE6B,IAAMsI,OAAS1J,GAAKJ,EAAE+D,KAAK7E,GACnG,OAAOc,GACNT,EAAEuB,UAAUmyB,4BAA8B,WAC3C,IAAI7yB,EAAGoB,EAAGtC,EAAGc,EAAGiB,EAAGkB,EAAGuP,EAAMvS,EAAG6B,EAAGxB,EAClC,IAAKY,EAAI,GAAIsR,EAAI,GAA8ClQ,EAAI,EAAGxB,GAAjDmC,EAAIb,KAAK8xB,mBAAmB,cAA2B1wB,OAAQ1C,EAAIwB,EAAGA,IAAKP,EAAIkB,EAAEX,GAAIpB,EAAE2D,KAAKI,MAAM/D,EAAGa,EAAEsS,YAAa7B,EAAE3N,KAAKI,MAAMuN,EAAGzQ,EAAEuS,cAC3J,OAAW,IAAMpT,EAAEsC,QAAU,IAAMgP,EAAEhP,QAAU/B,EAAE+Q,EAAE,KAAU1Q,EAAI,GAAIxB,EAAI,CAAC,QAAUwB,EAAImxB,EAAG/xB,GAAIZ,EAAI2yB,EAAGzgB,IAAK,CACzGqhB,UAAW,WACT,IAAI3yB,EAAGoB,EAAGb,EACV,IAAKA,EAAI,GAAIzB,EAAIkB,EAAI,EAAGoB,EAAIR,EAAE0B,OAAQlB,EAAIpB,EAAGlB,IAAMkB,GAAGjB,EAAI6B,EAAE9B,MAAUM,EAAEN,IAAMyB,EAAEoD,KAAKpE,EAAER,IACvF,OAAOwB,EAHE,GAKXqyB,UAAW,WACT,IAAI5yB,EAAGoB,EAAGb,EACV,IAAKA,EAAI,GAAIzB,EAAIkB,EAAI,EAAGoB,EAAIhC,EAAEkD,OAAQlB,EAAIpB,EAAGlB,IAAMkB,GAAGjB,EAAIK,EAAEN,MAAU8B,EAAE9B,IAAMyB,EAAEoD,KAAKpE,EAAER,IACvF,OAAOwB,EAHE,KAMZpB,EAAEuB,UAAUgyB,gCAAkC,WAC/C,IAAI1yB,EAAGoB,EAAGb,EAAGzB,EAAG+B,EAAGkB,EAAGuP,EAAGnS,EACzB,OAAOiC,EAAIF,KAAK8xB,mBAAmB,kBAAoB1wB,SAAWnD,EAAIiC,EAAE,GAAIb,EAAIa,EAAEA,EAAEkB,OAAS,GAAIzB,EAAItB,EAAEJ,EAAEsU,UAAW3U,EAAIS,EAAEgB,EAAEqE,OAAOsP,MAAoBlU,GAAb+B,EAAInC,EAAEiB,EAAG/B,IAAU4f,MAAOpN,EAAIvP,EAAE4c,SAAU,CAClLgU,UAAW3yB,EAAI,CAACA,GAAK,GACrB4yB,UAAWthB,EAAI,CAACA,GAAK,KAEtBygB,EAAK,SAAW/xB,GACjB,IAAIoB,EAAGb,EAAGzB,EAAGS,EACb,IAAK,MAAQS,IAAMA,EAAI,IAAKT,EAAI,GAAI6B,EAAI,EAAGb,EAAIP,EAAEsC,OAAQ/B,EAAIa,EAAGA,IAAK,OAAQtC,EAAIkB,EAAEoB,GAAItC,EAAE0Y,UACvF,KAAKC,KAAKgK,UACRliB,EAAEoE,KAAK7E,EAAEoV,MACT,MACF,KAAKuD,KAAKC,aACR,OAAS7W,EAAE/B,GAAKS,EAAEoE,KAAK,MAAQpE,EAAEoE,KAAKI,MAAMxE,EAAGwyB,EAAGjzB,EAAE4iB,aAExD,OAAOniB,GACNJ,EAzF+K,CA0FlLiC,EAAE0b,cACJ7d,KAAKiC,MAAO,WACZ,IAAIlB,EAAI,SAAWizB,EAAM7xB,GACrB,SAAStC,IACPoC,KAAKF,YAAciyB,EAErB,IAAK,IAAI1zB,KAAK6B,EAAGb,EAAEtB,KAAKmC,EAAG7B,KAAO0zB,EAAK1zB,GAAK6B,EAAE7B,IAC9C,OAAOT,EAAE4B,UAAYU,EAAEV,UAAWuyB,EAAKvyB,UAAY,IAAI5B,EAAKm0B,EAAK7V,UAAYhc,EAAEV,UAAWuyB,GAE5F1yB,EAAI,GAAGI,eACTS,EAAE8xB,0BAA4B,SAAU9xB,GACtC,SAASb,EAAEP,GACTkB,KAAK4G,KAAO9H,EAEd,OAAOA,EAAEO,EAAGa,GAAIb,EAAEG,UAAUwoB,QAAU,SAAUlpB,GAC9C,IAAIoB,EACJ,OAAOA,EAAI,IAAIoH,YAAgB2qB,QAAU,WACvC,OAAOnzB,GAAE,IACRoB,EAAEgyB,OAAS,SAAU7yB,GACtB,OAAO,WACLa,EAAE+xB,QAAU,KACZ,IACE/xB,EAAEiyB,QACF,MAAOv0B,IACT,OAAOkB,GAAE,EAAIO,EAAEuH,OANL,CAQZ5G,MAAOE,EAAE8H,kBAAkBhI,KAAK4G,OACjCvH,EAjByB,CAkB5Ba,EAAEqnB,YACJxpB,KAAKiC,MAAO,WACZ,IAAIlB,EACFO,EACAzB,EAAI,SAAWkB,EAAGoB,GAChB,SAASb,IACPW,KAAKF,YAAchB,EAErB,IAAK,IAAIlB,KAAKsC,EAAG7B,EAAEN,KAAKmC,EAAGtC,KAAOkB,EAAElB,GAAKsC,EAAEtC,IAC3C,OAAOyB,EAAEG,UAAYU,EAAEV,UAAWV,EAAEU,UAAY,IAAIH,EAAKP,EAAEod,UAAYhc,EAAEV,UAAWV,GAEtFT,EAAI,GAAGoB,eACTX,EAAIoB,EAAEgU,YAAa7U,EAAIa,EAAEigB,qBAAsBjgB,EAAEkyB,gBAAkB,SAAU/zB,GAC3E,SAASK,EAAEW,GACT,IAAIzB,EAEJ,IAAKA,KADLoC,KAAKuI,QAAUlJ,EAAGW,KAAKqyB,iBAAmB,IAAInyB,EAAEyU,iBAAiB3U,KAAKuI,SAAUvI,KAAKqyB,iBAAiB/mB,SAAWtL,KACvGA,KAAKsyB,OAAQxzB,EAAElB,EAAG,CAC1B2hB,UAAWvf,KAAKuI,QAChBkX,aAAczf,KAAKuyB,WAAW30B,KAGlC,OAAOA,EAAEc,EAAGL,GAAIK,EAAEc,UAAU8yB,OAAS,GAAI5zB,EAAEc,UAAUyxB,iBAAmB,aAAgBvyB,EAAEc,UAAUgzB,2BAA6B,WAC/H,OAAOxyB,KAAKqyB,iBAAiBvB,QAC5BpyB,EAAEc,UAAUizB,0BAA4B,WACzC,OAAOzyB,KAAKqyB,iBAAiBtqB,SAC5BrJ,EAAEc,UAAUkzB,cAAgB,WAC7B,IAAI5zB,EACJ,OAAO,OAASA,EAAIkB,KAAKsL,WAAa,mBAAqBxM,EAAE6zB,gCAAkC7zB,EAAE6zB,uCAAoC,GACpIj0B,EAAEc,UAAUozB,eAAiB,WAC9B,IAAI9zB,EACJ,OAAO,OAASA,EAAIkB,KAAKsL,WAAa,mBAAqBxM,EAAE+zB,kCAAoC/zB,EAAE+zB,mCAAoC7yB,KAAK0yB,iBAC3Ih0B,EAAEc,UAAUopB,YAAc,SAAU9pB,GACrC,IAAIO,EAAGzB,EACP,OAAOA,EAAI,WACT,IAAIA,EAAGS,EAAGK,EACV,IAAKA,EAAI,GAAId,EAAI,EAAGS,EAAIS,EAAEsC,OAAQ/C,EAAIT,EAAGA,IAAKyB,EAAIP,EAAElB,GAAIc,EAAE+D,KAAK,IAAIvC,EAAE8xB,0BAA0B3yB,IAC/F,OAAOX,EAHE,GAINoS,QAAQN,IAAI5S,GAAGuS,KAAK,SAAUrR,GACjC,OAAO,SAAUoB,GACf,OAAOpB,EAAEg0B,aAAY,WACnB,IAAIh0B,EAAGO,EACP,OAAO,OAASP,EAAIkB,KAAKsL,WAAaxM,EAAEi0B,iCAAkC,OAAS1zB,EAAIW,KAAKgzB,YAAc3zB,EAAE4zB,YAAY/yB,GAAIF,KAAK0yB,oBAJ9G,CAOvB1yB,QACDtB,EAAEc,UAAU+yB,WAAa,SAAUzzB,GACpC,OAAO,SAAUoB,GACf,OAAO,SAAUtC,GACf,OAAOA,EAAEgP,sBAAmB,EAAS1M,EAAE4yB,aAAY,WACjD,OAAOzzB,EAAEW,KAAKuI,cAAW,GAAUvI,KAAKkzB,UAAYp0B,EAAGkB,KAAKsyB,OAAOxzB,GAAGf,KAAKiC,KAAMpC,QAHhF,CAMLoC,OACDtB,EAAEc,UAAUszB,YAAc,SAAUh0B,GACrC,IAAIoB,EAAGb,EACP,IACE,OAAO,OAASa,EAAIF,KAAKsL,WAAapL,EAAEizB,iCAAkCr0B,EAAEf,KAAKiC,MACjF,QACA,OAASX,EAAIW,KAAKsL,WAAajM,EAAE+zB,kCAElC10B,EAAEc,UAAU6zB,eAAiB,SAAUv0B,EAAGoB,GAC3C,IAAIb,EACJ,OAAOA,EAAI+I,SAAS+D,cAAc,MAAQggB,KAAOrtB,EAAGO,EAAEwiB,YAAc,MAAQ3hB,EAAIA,EAAIpB,EAAGO,EAAEi0B,WACxF50B,EAnD8D,CAoDjEwB,EAAE0b,cACJ7d,KAAKiC,MAAO,WACZ,IAAIlB,EACFO,EACAzB,EACAS,EACAK,EACAiB,EACAkB,EACAuP,EACAnS,EACAJ,EACAkS,EACArQ,EAEA+S,EAAI,SAAW3T,EAAGoB,GAChB,SAASb,IACPW,KAAKF,YAAchB,EAErB,IAAK,IAAIlB,KAAKsC,EAAGH,EAAEhC,KAAKmC,EAAGtC,KAAOkB,EAAElB,GAAKsC,EAAEtC,IAC3C,OAAOyB,EAAEG,UAAYU,EAAEV,UAAWV,EAAEU,UAAY,IAAIH,EAAKP,EAAEod,UAAYhc,EAAEV,UAAWV,GAEtFiB,EAAI,GAAGN,eACPzB,EAAI,GAAGwR,SAAW,SAAU1Q,GAC1B,IAAK,IAAIoB,EAAI,EAAGb,EAAIW,KAAKoB,OAAQ/B,EAAIa,EAAGA,IAAK,GAAIA,KAAKF,MAAQA,KAAKE,KAAOpB,EAAG,OAAOoB,EACpF,OAAQ,GAEZjC,EAAIiC,EAAEqhB,YAAa1jB,EAAIqC,EAAEge,gBAAqBhe,EAAEgO,QAAS7O,EAAIa,EAAEob,QAASza,EAAIX,EAAEglB,0BAA2B7mB,EAAI6B,EAAE8kB,uBAAwBpnB,EAAIsC,EAAEykB,wBAAyBvU,EAAIlQ,EAAEyb,OAAO8R,SAAUvtB,EAAEqzB,sBAAwB,SAAUl0B,GAC/N,SAASM,IACPA,EAAEuc,UAAUpc,YAAY+C,MAAM7C,KAAM0I,WAAY1I,KAAKwzB,oBAEvD,IAAIt1B,EACJ,OAAOuU,EAAE9S,EAAGN,GAAInB,EAAI,EAAGyB,EAAEH,UAAUi0B,gBAAkB,SAAU30B,GAC7D,IAAIoB,EAAGb,EAEP,IAAKa,KADL,MAAQpB,IAAMA,EAAI,IAAKkB,KAAK0zB,aAAaR,UAAYlzB,KAAKkzB,UAChDp0B,EAAGO,EAAIP,EAAEoB,GAAIF,KAAK0zB,aAAaxzB,GAAKb,EAC9C,OAAOW,KAAK0zB,cACX/zB,EAAEH,UAAUg0B,kBAAoB,WACjC,OAAOxzB,KAAK0zB,aAAe,IAC1B/zB,EAAEH,UAAUuD,MAAQ,WACrB,OAAO/C,KAAKwzB,oBAAqBtzB,EAAEokB,wBAAwBvhB,SAC1DpD,EAAEH,UAAUyxB,iBAAmB,SAAUnyB,GAC1C,IAAIoB,EACJ,OAAOF,KAAK2zB,cAAgB,OAASzzB,EAAIF,KAAKsL,WAAa,mBAAqBpL,EAAE0zB,sCAAwC1zB,EAAE0zB,6CAA0C,EAAS5zB,KAAK8yB,aAAY,WAC9L,OAAO9yB,KAAKmxB,sBAAsBryB,KAAOkB,KAAK6zB,mBAAmB/0B,GAAKkB,KAAK0yB,gBAAkB1yB,KAAK4yB,kBAAmB5yB,KAAK+C,YAE3HpD,EAAEH,UAAUq0B,mBAAqB,SAAU/0B,GAC5C,IAAIoB,EAAGb,EAAGzB,EAAGS,EAAGK,EAAMmC,EAAGuP,EAAGnS,EAAGJ,EAC/B,OAAOgD,EAAI/B,EAAE8yB,UAAWxhB,EAAItR,EAAE+yB,cAAa7xB,KAAK0zB,aAAaI,iBAAuB5zB,EAAI,MAAQW,EAAIA,IAAMb,KAAK0zB,aAAa9B,WAAa5xB,KAAK0zB,aAAa9B,UAAWvyB,EAAI,MAAQ+Q,EAAIpQ,KAAK0zB,aAAaK,WAAa/zB,KAAK0zB,aAAaK,UAAkDl2B,EAAI,OAASuS,IAAM/Q,OAA1DpB,GAAK,OAAS4C,GAAK,QAAUA,KAAOX,KAAmCrC,GAAKA,IAAMI,KAASI,EAAI2B,KAAKg0B,sBAAwBp2B,EAAIK,EAAI4C,EAAEoc,QAAQ,MAAO,IAAI7b,SAAW,GAAK,MAAQP,EAAIA,EAAEO,YAAS,IAAW,EAAG,OAAS1C,EAAIsB,KAAKgzB,WAAat0B,EAAEu1B,qBAAqB51B,EAAE,GAAKT,QAAK,KAAesC,GAAKb,IACrhBM,EAAEH,UAAU2xB,sBAAwB,SAAUryB,GAC/C,IAAIoB,EAAGb,EAAGzB,EACV,OAAOA,EAAIU,OAAO6f,KAAKrf,GAAGsC,OAAS,EAAGlB,EAAI,MAAQ,OAASb,EAAIW,KAAKk0B,kBAAoB70B,EAAE80B,kBAAe,GAASv2B,IAAMsC,GACvHP,EAAEH,UAAU8yB,OAAS,CACtB8B,QAAS,SAAiBt1B,GACxB,IAAIO,EAAGzB,EAAGS,EAAGK,EAAGiB,EAAG1B,EAAGJ,EAAGkS,EAAGrQ,EAC5B,GAAIM,KAAK2zB,eAAiB3zB,KAAKwzB,oBAAqBxzB,KAAK0zB,aAAaW,UAAW,EAAI31B,EAAI0R,EAAEtR,EAAEw1B,SAAU,CACrG,IAAK12B,EAAIoC,KAAKme,KAA4C9f,EAAI,EAAGJ,GAA7C8R,EAAI,CAAC,OAAQ,MAAO,QAAS,SAAsB3O,OAAQnD,EAAII,EAAGA,IAAeS,GAAVjB,EAAIkS,EAAE1R,IAAU,SAAW,SAAWR,IAAMA,EAAI,WAAYD,EAAI,MAAQA,EAAIA,EAAEC,QAAK,GAC9K,OAAS,MAAQD,EAAIA,EAAEc,QAAK,KAAYsB,KAAKyzB,gBAAgB,CAC3Dc,QAAS71B,IACPwB,EAAEokB,wBAAwBvhB,QAASnF,EAAEc,GAAGX,KAAKiC,KAAMlB,IAEzD,OAAO+B,EAAE/B,KAAOO,EAAIsD,OAAOC,aAAa9D,EAAEw1B,SAASza,kBAAmBla,EAAI,WACxE,IAAIO,EAAGb,EAAGzB,EAAGS,EACb,IAA2BA,EAAI,GAAI6B,EAAI,EAAGb,GAArCzB,EAAI,CAAC,MAAO,UAA+BwD,OAAQ/B,EAAIa,EAAGA,IAAepB,GAAVjB,EAAID,EAAEsC,IAAU,QAAU7B,EAAEoE,KAAK5E,GACrG,OAAOQ,EAHiE,IAInEoE,KAAKpD,GAAI,OAASK,EAAIM,KAAKsL,UAAY5L,EAAE80B,yCAAyC70B,QAAK,GAAUb,EAAEuP,sBAAmB,GAE/HomB,SAAU,SAAkB31B,GAC1B,IAAIoB,EAAGb,EAAGzB,EACV,GAAI,MAAQoC,KAAK0zB,aAAaR,YAAcp0B,EAAEsmB,WAAatmB,EAAEumB,SAAWvmB,EAAE41B,QAAS,OAAQ92B,EAAI8B,EAAEZ,KAAO,OAASoB,EAAIF,KAAKsL,WAAapL,EAAEy0B,mCAAoC,OAASt1B,EAAIW,KAAKgzB,YAAc3zB,EAAEu1B,aAAah3B,GAAIoC,KAAKyzB,gBAAgB,CACnP7B,UAAWh0B,EACXm2B,UAAW/zB,KAAK60B,8BACZ,GAERC,UAAW,SAAmBh2B,GAC5B,IAAIoB,EAAGb,EAAGzB,EAAGS,EACb,OAAO6B,EAAIpB,EAAEkU,MAAM3U,EAAI2B,KAAK0zB,aAAa9B,YAAgBvzB,IAAM6B,GAAK7B,EAAE02B,gBAAkB70B,GAAKb,EAAIW,KAAKg0B,mBAAoBh0B,KAAKg1B,iBAAiB,CAAC31B,EAAE,GAAIA,EAAE,GAAKhB,EAAE+C,SAAU,OAASxD,EAAIoC,KAAKgzB,YAAcp1B,EAAEg3B,aAAa10B,GAAIF,KAAKyzB,gBAAgB,CAChP7B,UAAW1xB,IACTF,KAAKg1B,iBAAiB31B,SAAM,GAElC41B,UAAW,SAAmBn2B,GAC5B,OAAOA,EAAEuP,kBAEX6mB,UAAW,SAAmBp2B,GAC5B,IAAIoB,EACJ,OAAWpB,EAAE4E,OAAQ1D,KAAKm1B,iCAAiCr2B,EAAEs2B,cAAep1B,KAAKq1B,aAAer1B,KAAKg0B,mBAAoB,OAAS9zB,EAAIF,KAAKsL,WAAa,mBAAqBpL,EAAEo1B,4BAA8Bp1B,EAAEo1B,mCAAgC,GAEjPC,SAAU,SAAkBz2B,GAC1B,IAAIoB,EAAGb,EACP,OAAQW,KAAKq1B,eAAiBr1B,KAAKw1B,sBAAsB12B,EAAEs2B,gBAAkBt2B,EAAEuP,iBAAkBnO,EAAI,CACnGS,EAAG7B,EAAE22B,QACL1iB,EAAGjU,EAAE42B,SACJ73B,EAAEqC,EAAGF,KAAK21B,qBAAkB,GAAU31B,KAAK21B,cAAgBz1B,EAAG,OAASb,EAAIW,KAAKsL,WAAa,mBAAqBjM,EAAEu2B,uCAAyCv2B,EAAEu2B,uCAAuC51B,KAAK21B,oBAAiB,IAEjOE,QAAS,WACP,IAAI/2B,EACJ,OAAO,OAASA,EAAIkB,KAAKsL,WAAa,mBAAqBxM,EAAEg3B,8BAAgCh3B,EAAEg3B,+BAAgC91B,KAAKq1B,aAAe,KAAMr1B,KAAK21B,cAAgB,MAEhLI,KAAM,SAAcj3B,GAClB,IAAIO,EAAGzB,EAAGS,EAAGK,EAAGiB,EAAGkB,EAAGuP,EAAGnS,EAAGJ,EAC5B,OAAOiB,EAAEuP,iBAAkBhQ,EAAI,OAASsB,EAAIb,EAAEs2B,cAAgBz1B,EAAE0N,WAAQ,EAAQ3O,EAAI,CAClFiC,EAAG7B,EAAE22B,QACL1iB,EAAGjU,EAAE42B,SACJ,OAAS70B,EAAIb,KAAKgzB,YAAcnyB,EAAEm1B,+BAA+Bt3B,IAAK,MAAQL,EAAIA,EAAE+C,YAAS,GAAUpB,KAAK4oB,YAAYvqB,GAAK2B,KAAKq1B,cAAgB,OAASjlB,EAAIpQ,KAAKsL,WAAa8E,EAAE6lB,8BAA+B,OAASh4B,EAAI+B,KAAKgzB,YAAc/0B,EAAEi4B,kBAAkBl2B,KAAKq1B,cAAer1B,KAAKq1B,aAAe,KAAMr1B,KAAK0yB,kBAAoB90B,EAAIkB,EAAEs2B,aAAaxQ,QAAQ,kCAAoCvlB,EAAIa,EAAEssB,SAASrQ,eAAeve,GAAI,OAASC,EAAImC,KAAKgzB,YAAcn1B,EAAEs4B,eAAe92B,GAAIW,KAAK0yB,iBAAkB1yB,KAAKq1B,aAAe,KAAMr1B,KAAK21B,cAAgB,MAE9iBS,IAAK,SAAat3B,GAChB,IAAIoB,EAAGb,EACP,OAAQ,OAASa,EAAIF,KAAKgzB,WAAa9yB,EAAE20B,2BAAwB,KAAY70B,KAAKm1B,iCAAiCr2B,EAAEu3B,gBAAkBv3B,EAAEuP,iBAAkB,OAAShP,EAAIW,KAAKsL,WAAajM,EAAEi3B,6BAA8Bt2B,KAAKu2B,kBAAkB,YAAaz3B,EAAE8N,kBAAoB5M,KAAK0yB,qBAAkB,GAE7S8D,KAAM,SAAc13B,GAClB,IAAIoB,EACJ,OAAQ,OAASA,EAAIF,KAAKgzB,WAAa9yB,EAAE20B,2BAAwB,IAAW70B,KAAKm1B,iCAAiCr2B,EAAEu3B,eAAiBv3B,EAAEuP,sBAAmB,GAE5JooB,MAAO,SAAe33B,GACpB,IAAIO,EAAGhB,EAAGsB,EAAGkB,EAAGuP,EAAGnS,EAAGJ,EAAG6B,EAAG+S,EAAG1S,EAAG+S,EAAGC,EAAGjS,EAAGsQ,EAAGY,EAAGrR,EAAG6R,EAAGsF,EAAGM,EAAGse,EAAG91B,EAAG+1B,EAAGC,EACtE,OAAOv3B,EAAI,OAASK,EAAIZ,EAAEu3B,eAAiB32B,EAAIZ,EAAE+3B,kBAAmBh5B,EAAI,CACtEi5B,UAAWz3B,GACV,MAAQA,GAAK0Q,EAAEjR,QAAUkB,KAAK+2B,gCAAgC,SAAUj4B,GACzE,OAAO,SAAUoB,GACf,IAAIb,EAAGzB,EAAGS,EACV,OAAOR,EAAE2K,KAAO,YAAa3K,EAAEm5B,KAAO92B,EAAG,OAASb,EAAIP,EAAEwM,WAAajM,EAAE43B,yBAAyBp5B,GAAI,OAASD,EAAIkB,EAAEk0B,YAAcp1B,EAAEs5B,WAAWr5B,EAAEm5B,MAAOl4B,EAAE4zB,gBAAiB,OAASr0B,EAAIS,EAAEwM,UAAYjN,EAAE84B,wBAAwBt5B,QAAK,GAHvK,CAK/DmC,SAAWa,EAAIxB,EAAEulB,QAAQ,SAAW/mB,EAAE2K,KAAO,YAAaouB,GAAK34B,EAAIoB,EAAEulB,QAAQ,oBAAsB1kB,EAAEmd,0BAA0Bpf,GAAG2nB,OAAS/kB,EAAGhD,EAAEm5B,KAAOh3B,KAAKqzB,eAAexyB,EAAG+1B,GAAI,OAASnkB,EAAIzS,KAAKsL,WAAamH,EAAEwkB,yBAAyBp5B,GAAImC,KAAKyzB,gBAAgB,CACrQ7B,UAAWgF,EACX7C,UAAW/zB,KAAK60B,wBACd,OAAS7iB,EAAIhS,KAAKgzB,YAAchhB,EAAEklB,WAAWr5B,EAAEm5B,MAAOh3B,KAAK0yB,gBAAiB,OAAS/xB,EAAIX,KAAKsL,WAAa3K,EAAEw2B,wBAAwBt5B,IAAMD,EAAEyB,IAAMxB,EAAE2K,KAAO,aAAc3K,EAAEu5B,OAAS/3B,EAAEulB,QAAQ,cAAe,OAASpS,EAAIxS,KAAKsL,WAAakH,EAAEykB,yBAAyBp5B,GAAImC,KAAKyzB,gBAAgB,CACnS7B,UAAW/zB,EAAEu5B,OACbrD,UAAW/zB,KAAK60B,wBACd,OAAS/c,EAAI9X,KAAKgzB,YAAclb,EAAE8c,aAAa/2B,EAAEu5B,QAASp3B,KAAK0yB,gBAAiB,OAASta,EAAIpY,KAAKsL,WAAa8M,EAAE+e,wBAAwBt5B,KAAOuS,EAAI/Q,EAAEulB,QAAQ,eAAiB/mB,EAAE2K,KAAO,YAAa3K,EAAEm5B,KAAO5mB,EAAG,OAASsmB,EAAI12B,KAAKsL,WAAaorB,EAAEO,yBAAyBp5B,GAAI,OAAS+C,EAAIZ,KAAKgzB,YAAcpyB,EAAEs2B,WAAWr5B,EAAEm5B,MAAOh3B,KAAK0yB,gBAAiB,OAASiE,EAAI32B,KAAKsL,WAAaqrB,EAAEQ,wBAAwBt5B,IAAMG,EAAED,KAAKsB,EAAEg4B,MAAO,UAAY,IAAM13B,EAAI,OAASI,EAAIV,EAAEi4B,QAAU,OAASxkB,EAAI/S,EAAE,KAAO,mBAAqB+S,EAAEykB,UAAYzkB,EAAEykB,iBAAc,MAAa53B,EAAExB,OAASE,EAAIK,EAAEiB,MAAQA,EAAExB,KAAO,kBAAmBD,EAAI,IAAMG,GAAIR,EAAE2K,KAAO,OAAQ3K,EAAE+I,KAAOjH,EAAG,OAASoT,EAAI/S,KAAKsL,WAAayH,EAAEggB,iCAAkC,OAASjyB,EAAId,KAAKgzB,YAAclyB,EAAE02B,WAAW35B,EAAE+I,MAAO5G,KAAK0yB,gBAAiB,OAASthB,EAAIpR,KAAKsL,WAAa8F,EAAE+lB,wBAAwBt5B,IAAKiB,EAAEuP,mBAEp2BopB,iBAAkB,SAA0B34B,GAC1C,OAAOkB,KAAK03B,sBAAsB3vB,MAAMjJ,EAAEkU,OAE5C2kB,kBAAmB,SAA2B74B,GAC5C,OAAOkB,KAAK03B,sBAAsBnT,OAAOzlB,EAAEkU,OAE7C4kB,eAAgB,SAAwB94B,GACtC,OAAOkB,KAAK03B,sBAAsB3zB,IAAIjF,EAAEkU,OAE1C6kB,YAAa,WACX,OAAO73B,KAAK0zB,aAAaW,UAAW,GAEtCtoB,MAAO,SAAejN,GACpB,OAAOkB,KAAK0zB,aAAaW,UAAW,EAAIv1B,EAAEg5B,oBAE3Cn4B,EAAEH,UAAU2e,KAAO,CACpB4Z,UAAW,SAAmBj5B,GAC5B,IAAIoB,EACJ,OAAO,OAASA,EAAIF,KAAKsL,WAAapL,EAAEy0B,mCAAoC30B,KAAKu2B,kBAAkB,WAAYz3B,IAEjH,OAAU,SAAiBA,GACzB,IAAIoB,EACJ,OAAO,OAASA,EAAIF,KAAKsL,WAAapL,EAAEy0B,mCAAoC30B,KAAKu2B,kBAAkB,UAAWz3B,IAEhH,OAAU,WACR,IAAIA,EAAGoB,EACP,OAAOF,KAAKyzB,gBAAgB,CAC1BK,gBAAgB,IACd,OAASh1B,EAAIkB,KAAKsL,WAAaxM,EAAE61B,mCAAoC,OAASz0B,EAAIF,KAAKgzB,WAAa9yB,EAAE83B,uBAAoB,GAEhIC,IAAK,SAAan5B,GAChB,IAAIoB,EAAGb,EACP,OAAQ,OAASa,EAAIF,KAAKgzB,WAAa9yB,EAAEg4B,+BAA4B,IAAW,OAAS74B,EAAIW,KAAKgzB,YAAc3zB,EAAE84B,uBAAwBn4B,KAAK0yB,gBAAiB5zB,EAAEuP,uBAAoB,GAExL+pB,KAAM,SAAct5B,GAClB,IAAIoB,EACJ,OAAOF,KAAKq4B,6BAA+Bv5B,EAAEuP,iBAAkB,OAASnO,EAAIF,KAAKgzB,WAAa9yB,EAAEo4B,sBAAsB,iBAAc,QAAU,GAEhJC,MAAO,SAAez5B,GACpB,IAAIoB,EACJ,OAAOF,KAAKq4B,6BAA+Bv5B,EAAEuP,iBAAkB,OAASnO,EAAIF,KAAKgzB,WAAa9yB,EAAEo4B,sBAAsB,gBAAa,QAAU,GAE/IE,QAAS,CACPt6B,EAAG,SAAWY,GACZ,IAAIoB,EACJ,OAAO,OAASA,EAAIF,KAAKsL,WAAapL,EAAEy0B,mCAAoC30B,KAAKu2B,kBAAkB,UAAWz3B,IAEhHiR,EAAG,SAAWjR,GACZ,IAAIoB,EACJ,OAAO,OAASA,EAAIF,KAAKsL,WAAapL,EAAEy0B,mCAAoC30B,KAAKu2B,kBAAkB,WAAYz3B,IAEjHT,EAAG,SAAWS,GACZ,IAAIoB,EAAGb,EACP,OAAOP,EAAEuP,iBAAkB,OAASnO,EAAIF,KAAKsL,WAAapL,EAAEy0B,mCAAoC,OAASt1B,EAAIW,KAAKgzB,YAAc3zB,EAAEu1B,aAAa,KAAM,CACnJ6D,gBAAgB,IACdz4B,KAAK0yB,kBAGbhlB,MAAO,CACL,OAAU,SAAiB5O,GACzB,IAAIoB,EAAGb,EACP,OAAO,OAASa,EAAIF,KAAKsL,WAAapL,EAAEy0B,mCAAoC,OAASt1B,EAAIW,KAAKgzB,YAAc3zB,EAAEu1B,aAAa,MAAO50B,KAAK0yB,gBAAiB5zB,EAAEuP,kBAE5J4pB,IAAK,SAAan5B,GAChB,IAAIoB,EAAGb,EACP,OAAQ,OAASa,EAAIF,KAAKgzB,WAAa9yB,EAAEw4B,+BAA4B,IAAW,OAASr5B,EAAIW,KAAKgzB,YAAc3zB,EAAEs5B,uBAAwB34B,KAAK0yB,gBAAiB5zB,EAAEuP,uBAAoB,GAExL+pB,KAAM,SAAct5B,GAClB,OAAOkB,KAAKq4B,6BAA+Bv5B,EAAEuP,iBAAkBrO,KAAK44B,2BAA2B,kBAAe,GAEhHL,MAAO,SAAez5B,GACpB,OAAOkB,KAAKq4B,6BAA+Bv5B,EAAEuP,iBAAkBrO,KAAK44B,2BAA2B,iBAAc,IAGjHC,IAAK,CACHd,UAAW,WACT,IAAIj5B,EACJ,OAAOkB,KAAKyzB,gBAAgB,CAC1BK,gBAAgB,IACd,OAASh1B,EAAIkB,KAAKsL,UAAYxM,EAAE61B,wCAAqC,IAG7EmE,KAAM,CACJf,UAAW,WACT,IAAIj5B,EACJ,OAAOkB,KAAKyzB,gBAAgB,CAC1BK,gBAAgB,IACd,OAASh1B,EAAIkB,KAAKsL,UAAYxM,EAAE61B,wCAAqC,KAG5Eh1B,EAAEH,UAAUk4B,oBAAsB,WACnC,OAAO13B,KAAK2zB,cAAgB3zB,KAAKk0B,iBAAmBl0B,KAAKk0B,iBAAmB,IAAIp1B,EAAEkB,OACjFL,EAAEH,UAAUm0B,YAAc,WAC3B,OAAO,MAAQ3zB,KAAKk0B,mBAAqBl0B,KAAKk0B,iBAAiB6E,WAC9Dp5B,EAAEH,UAAU+2B,kBAAoB,SAAUz3B,EAAGoB,GAC9C,IAAIb,EACJ,OAA4E,KAApE,OAASA,EAAIW,KAAKgzB,WAAa3zB,EAAEk3B,kBAAkBz3B,QAAK,GAAiBkB,KAAKyzB,gBAAgB,CACpGM,WAAW,IACR7zB,GAAKA,EAAEmO,iBAAkBrO,KAAK0yB,sBAAmB,GACrD/yB,EAAEH,UAAU21B,iCAAmC,SAAUr2B,GAC1D,IAAIO,EAAGzB,EACP,GAAIS,EAAES,GAAI,OAAOO,EAAI,OAASzB,EAAIoC,KAAKgzB,WAAap1B,EAAEo7B,sBAAsBrM,8BAA2B,EAAQ7tB,EAAEmmB,QAAQ,8BAA+B1a,KAAKC,UAAUnL,IAAKP,EAAEmmB,QAAQ,YAAa/kB,EAAE0sB,aAAaC,OAAOxtB,GAAGqtB,WAAY5tB,EAAEmmB,QAAQ,aAAc5lB,EAAEsC,WAAWsb,QAAQ,MAAO,MAAM,GACjStd,EAAEH,UAAUg2B,sBAAwB,SAAU12B,GAC/C,IAAIoB,EAAGb,EAAGzB,EAAGS,EAAMsB,EACnB,IAAKA,EAAI,GAA6DO,EAAI,EAAGb,GAAhEhB,EAAI,OAAST,EAAI,MAAQkB,EAAIA,EAAEu4B,WAAQ,GAAUz5B,EAAI,IAAiBwD,OAAQ/B,EAAIa,EAAGA,IAAeP,EAANtB,EAAE6B,KAAW,EACxH,OAAOP,EAAEs5B,OAASt5B,EAAE,gCAAkCA,EAAE,cAAgBA,EAAE,eACzEA,EAAEH,UAAUu3B,gCAAkC,SAAUj4B,GACzD,IAAIO,EAAGzB,EAAGS,EACV,OAAOT,EAAIoC,KAAKg0B,mBAAoB31B,EAAI,CACtC66B,SAAU,WACVd,KAAMj4B,OAAOg5B,YAAc,KAC3BC,IAAKj5B,OAAOk5B,YAAc,KAC1BC,QAAS,GACRj6B,EAAIpB,EAAE,CACP4Q,MAAOxQ,EACP6P,QAAS,MACTsT,UAAU,IACRpZ,SAAS2c,KAAKhW,YAAY1P,GAAIA,EAAEsP,QAASoG,sBAAsB,SAAU1W,GAC3E,OAAO,WACL,IAAIK,EACJ,OAAOA,EAAIW,EAAEqtB,UAAWxsB,EAAE0gB,WAAWvhB,GAAIhB,EAAE22B,iBAAiBp3B,GAAIkB,EAAEJ,IAHH,CAKjEsB,QACDL,EAAEkc,YAAY,+BAAgClc,EAAEkc,YAAY,+BAAgClc,EAAEkc,YAAY,yCAA0Clc,EAAEkc,YAAY,wCAAyClc,EAAEkc,YAAY,kCAAmClc,EAlO1C,CAmOrNO,EAAEkyB,iBAAkB1zB,EAAI,SAAWI,GACnC,IAAIoB,EAAGb,EACP,OAAO,OAASa,EAAIpB,EAAE0J,OAAS,OAASnJ,EAAIa,EAAE0B,MAAM,aAAevC,EAAE,QAAK,GACzEM,EAAI,OAAS,kBAAqB,IAAI6oB,YAAc,IAAIA,YAAY,QAAK,GAAS9oB,EAAI,SAAWZ,GAClG,IAAIO,EACJ,OAAOP,EAAEK,KAAOQ,GAAKb,EAAEK,IAAIqpB,YAAY,KAAO1pB,EAAEw1B,QAAUx1B,EAAEK,KAAO,OAASL,EAAEy6B,MAAQl6B,EAAIP,EAAEw1B,QAAU,IAAMx1B,EAAEy6B,OAAS,IAAMz6B,EAAE06B,WAAan6B,EAAIP,EAAE06B,UAAW,MAAQn6B,GAAK,WAAa+Q,EAAE/Q,GAAKa,EAAEyc,YAAYmB,eAAe,CAACze,IAAIsC,gBAAa,IAC5OoO,EAAI,SAAWjR,GAChB,IAAIoB,EAAGb,EAAGzB,EAAGS,EAAGK,EAAGiB,EAAMyQ,EAAGnS,EAAGJ,EAC/B,GAAIuS,EAAItR,EAAEu3B,cAAe,CACvB,GAAIr4B,EAAED,KAAKqS,EAAEinB,MAAO,cAAgB,EAAG,CACrC,IAAkBz5B,EAAI,EAAG+B,GAApB1B,EAAImS,EAAEinB,OAAoBj2B,OAAQzB,EAAI/B,EAAGA,IAAK,GAAIC,EAAII,EAAEL,GAAIsC,EAAI,4BAA4BkC,KAAKvE,GAAIwB,EAAI,SAAS+C,KAAKvE,IAAMuS,EAAEwU,QAAQ/mB,GAAQqC,GAAKb,EAAG,OAAO,EACnK,OAAO,EAET,OAAOhB,EAAIL,EAAED,KAAKqS,EAAEinB,MAAO,yBAA2B,EAAG34B,EAAIV,EAAED,KAAKqS,EAAEinB,MAAO,wBAA0B,EAAGh5B,GAAKK,IAEhHI,EAAI,SAAUA,GACf,SAASoB,EAAEpB,GACT,IAAIoB,EACJF,KAAKy5B,gBAAkB36B,EAAGoB,EAAIF,KAAKy5B,gBAAiBz5B,KAAKgzB,UAAY9yB,EAAE8yB,UAAWhzB,KAAKsL,SAAWpL,EAAEoL,SAAUtL,KAAK0zB,aAAexzB,EAAEwzB,aAAc1zB,KAAKgT,KAAO,GAEhK,OAAOP,EAAEvS,EAAGpB,GAAIoB,EAAEV,UAAUuI,MAAQ,SAAUjJ,GAC5C,IAAIoB,EAAGb,EACP,OAAOW,KAAKgT,KAAKjL,MAAQjJ,EAAGkB,KAAK05B,iBAAmB,aAAe15B,KAAK0zB,aAAaR,WAAalzB,KAAK0zB,aAAa9B,WAAa,OAAS1xB,EAAIF,KAAKgzB,YAAc9yB,EAAEq2B,kBAAkB,QAASv2B,KAAK60B,wBAA0B70B,KAAK25B,oBAAqB35B,KAAK0yB,iBAAkB1yB,KAAK45B,MAAQ,OAASv6B,EAAIW,KAAKgzB,WAAa3zB,EAAE20B,wBAAqB,QAAU,GAC1V9zB,EAAEV,UAAU+kB,OAAS,SAAUzlB,GAChC,IAAIoB,EACJ,OAAOF,KAAKgT,KAAKuR,OAASzlB,EAAGkB,KAAK05B,kBAAoBx5B,EAAIF,KAAK65B,sBAAwB75B,KAAK85B,oBAAqB95B,KAAK45B,MAAQ15B,QAAK,GAClIA,EAAEV,UAAUuE,IAAM,SAAUjF,GAC7B,IAAIoB,EAAGb,EAAGzB,EAAGS,EACb,OAAO2B,KAAKgT,KAAKjP,IAAMjF,EAAGkB,KAAK05B,iBAAmB15B,KAAK85B,oBAAqB95B,KAAK+5B,sBAAwB/5B,KAAKyzB,gBAAgB,CAC5HK,gBAAgB,EAChBO,UAAU,IACR,OAASn0B,EAAIF,KAAKsL,WAAapL,EAAEy0B,mCAAoC,OAASt1B,EAAIW,KAAKgzB,YAAc3zB,EAAE21B,iBAAiBh1B,KAAK45B,OAAQ,OAASh8B,EAAIoC,KAAKgzB,YAAcp1B,EAAEg3B,aAAa50B,KAAKgT,KAAKjP,KAAM,OAAS1F,EAAI2B,KAAKgzB,WAAa30B,EAAE22B,iBAAiBh1B,KAAK45B,MAAM,GAAK55B,KAAKgT,KAAKjP,IAAI3C,aAAU,GAAU,MAAQpB,KAAKgT,KAAKjL,OAAS,MAAQ/H,KAAKgT,KAAKuR,QAAUvkB,KAAK4yB,iBAAkB5yB,KAAKy5B,gBAAgB12B,cAAW,GAAU/C,KAAKy5B,gBAAgB12B,SACxb7C,EAAEV,UAAU20B,WAAa,WAC1B,OAAOn0B,KAAKgT,KAAKjP,KAChB7D,EAAEV,UAAUu5B,QAAU,WACvB,OAAO,MAAQ/4B,KAAKm0B,cACnBj0B,EAAEV,UAAUk6B,cAAgB,WAC7B,OAAOr6B,EAAEkc,sBAAuBvb,KAAK0zB,aAAaW,UACjDn0B,EAAEV,UAAUu6B,mBAAqB,WAClC,IAAIj7B,EAAGoB,EACP,OAAO,KAAO,OAASpB,EAAIkB,KAAKgT,KAAKjL,OAASjJ,EAAEsC,YAAS,KAAY,OAASlB,EAAIF,KAAKgT,KAAKjP,KAAO7D,EAAEkB,YAAS,GAAU,GAAK,MAAQpB,KAAK45B,OACzI15B,EAAE2b,YAAY,mCAAoC3b,EAAE2b,YAAY,iCAAkC3b,EAAE2b,YAAY,kCAAmC3b,EAAE2b,YAAY,kCAAmC3b,EAAE2b,YAAY,gCAAiC3b,EAAE2b,YAAY,gCAAiC3b,EAAE2b,YAAY,gCAAiC3b,EA1B/U,CA2BLA,EAAE0b,cACJ7d,KAAKiC,MAAO,WACZ,IAAIlB,EACFO,EACAzB,EACAS,EAAI,SAAWS,EAAGoB,GAChB,OAAO,WACL,OAAOpB,EAAE+D,MAAM3C,EAAGwI,aAGtBhK,EAAI,SAAWI,EAAGoB,GAChB,SAASb,IACPW,KAAKF,YAAchB,EAErB,IAAK,IAAIlB,KAAKsC,EAAGP,EAAE5B,KAAKmC,EAAGtC,KAAOkB,EAAElB,GAAKsC,EAAEtC,IAC3C,OAAOyB,EAAEG,UAAYU,EAAEV,UAAWV,EAAEU,UAAY,IAAIH,EAAKP,EAAEod,UAAYhc,EAAEV,UAAWV,GAEtFa,EAAI,GAAGF,eACPoB,EAAI,GAAG2O,SAAW,SAAU1Q,GAC1B,IAAK,IAAIoB,EAAI,EAAGb,EAAIW,KAAKoB,OAAQ/B,EAAIa,EAAGA,IAAK,GAAIA,KAAKF,MAAQA,KAAKE,KAAOpB,EAAG,OAAOoB,EACpF,OAAQ,GAEZpB,EAAIoB,EAAEykB,wBAAyBtlB,EAAIa,EAAEglB,0BAA2BtnB,EAAIsC,EAAEge,gBAAiBhe,EAAE85B,sBAAwB,SAAUr6B,GACzH,SAASyQ,IACP,OAAOpQ,KAAK6sB,OAASxuB,EAAE2B,KAAK6sB,OAAQ7sB,MAAOoQ,EAAE8L,UAAUpc,YAAY+C,MAAM7C,KAAM0I,WAEjF,IAAIzK,EAAGJ,EAAGkS,EAAGrQ,EAAGxB,EAAGuU,EACnB,OAAO/T,EAAE0R,EAAGzQ,GAAIyQ,EAAE5Q,UAAUyxB,iBAAmB,WAC7C,IAAInyB,EACJ,OAAOkB,KAAKi6B,gBAAkBj6B,KAAKk6B,WAAa,OAASp7B,EAAIkB,KAAKsL,WAAa,mBAAqBxM,EAAE80B,sCAAwC90B,EAAE80B,6CAA0C,EAAS5zB,KAAKm6B,WACvM/pB,EAAE5Q,UAAU46B,eAAiB,WAC9B,OAAO,MAAQp6B,KAAKi6B,gBAAkBj6B,KAAKi6B,gBAAkBj6B,KAAKi6B,gBAAkBllB,sBAAsB/U,KAAK6sB,SAC9Gzc,EAAE5Q,UAAUqtB,OAAS,WACtB,IAAI/tB,EACJ,OAAOoW,qBAAqBlV,KAAKi6B,iBAAkBj6B,KAAKi6B,gBAAkB,KAAMj6B,KAAKk6B,WAAa,OAASp7B,EAAIkB,KAAKsL,WAAaxM,EAAE+tB,SAAU,mBAAqB7sB,KAAKq6B,aAAer6B,KAAKq6B,cAAer6B,KAAKq6B,YAAc,MAC5NjqB,EAAE5Q,UAAU26B,QAAU,WACvB,IAAIr7B,EACJ,OAAO,OAASA,EAAIkB,KAAKsL,UAAYxM,EAAEq7B,eAAY,GAClD/pB,EAAE5Q,UAAU8yB,OAAS,CACtB8B,QAAS,SAAiBt1B,GACxB,IAAIoB,EAAGtC,EAAGS,EAAGK,EACb,GAAIW,EAAEP,IACJ,GAAIoB,EAAIrC,EAAEiB,GAAI,OAASJ,EAAIsB,KAAKsL,UAAY5M,EAAE81B,yCAAyCt0B,QAAK,EAAQ,OAAOpB,EAAEuP,sBACxG,GAAIhQ,EAAIS,EAAEK,IAAKL,EAAE41B,SAAWr2B,GAAK,QAASS,EAAEw7B,WAAaj8B,GAAK,UAAWT,EAAIoC,KAAKme,KAAK9f,GAAI,OAAO2B,KAAKu6B,UAAUz7B,EAAGlB,IAE7H64B,MAAO,SAAe33B,GACpB,IAAIoB,EAAGb,EAAGzB,EAAGS,EAAGK,EAAGiB,EAAGkB,EAAGuP,EAAGnS,EAC5B,OAAO8R,EAAEjR,IAAMA,EAAEuP,iBAAkBrO,KAAK4oB,YAAY9pB,EAAEu3B,cAAchpB,QAAU3N,EAAEZ,IAAMA,EAAEuP,iBAAkBhP,EAAI,CAC5GmJ,KAAM,aACN4uB,OAAQt4B,EAAEu3B,cAAczR,QAAQ,eAC/B,OAAShnB,EAAIoC,KAAKsL,WAAa1N,EAAEq5B,yBAAyB53B,GAAI,OAAShB,EAAI2B,KAAKgzB,YAAc30B,EAAEu2B,aAAav1B,EAAE+3B,QAASp3B,KAAK6sB,SAAU,OAASnuB,EAAIsB,KAAKsL,UAAY5M,EAAEy4B,wBAAwB93B,QAAK,IAAWa,EAAI,OAASP,EAAIb,EAAEu3B,eAAiB12B,EAAEilB,QAAQ,YAAS,IAAW9lB,EAAEuP,iBAAkBhP,EAAI,CAC1SmJ,KAAM,YACNwuB,KAAMh3B,KAAKqzB,eAAenzB,IACzB,OAASW,EAAIb,KAAKsL,WAAazK,EAAEo2B,yBAAyB53B,GAAI,OAAS+Q,EAAIpQ,KAAKgzB,YAAc5iB,EAAE8mB,WAAW73B,EAAE23B,MAAOh3B,KAAK6sB,SAAU,OAAS5uB,EAAI+B,KAAKsL,UAAYrN,EAAEk5B,wBAAwB93B,QAAK,QAAU,GAE/Mw4B,YAAa,SAAqB/4B,GAChC,IAAIoB,EACJ,OAAQA,EAAIF,KAAKw6B,WAAW17B,EAAE27B,aAAez6B,KAAKu6B,UAAUz7B,EAAGoB,GAAIF,KAAKo6B,uBAAoB,GAE9FruB,MAAO,WACL,OAAO7L,EAAEokB,wBAAwBvhB,SAEnCmyB,UAAW,SAAmBp2B,GAC5B,IAAIoB,EAAGb,EACP,OAAQ,OAASa,EAAIF,KAAKgzB,WAAa9yB,EAAEw6B,oCAAiC,IAAW57B,EAAEs2B,aAAanQ,QAAQ,+BAA+B,GAAKjlB,KAAK26B,SAAW,CAC9Jf,MAAO,OAASv6B,EAAIW,KAAKgzB,WAAa3zB,EAAE20B,wBAAqB,EAC7D4G,MAAO18B,EAAEY,UACN,GAEPm2B,UAAW,SAAmBn2B,GAC5B,OAAOb,EAAEa,GAAKA,EAAEuP,sBAAmB,GAErCknB,SAAU,SAAkBz2B,GAC1B,IAAIoB,EAAGb,EACP,GAAIW,KAAK26B,UACP,GAAI77B,EAAEuP,iBAAkBnO,EAAIhC,EAAEY,IAAKlB,EAAEsC,EAAGF,KAAK26B,SAASC,OAAQ,OAAO56B,KAAK26B,SAASC,MAAQ16B,EAAG,OAASb,EAAIW,KAAKgzB,WAAa3zB,EAAE22B,+BAA+B91B,QAAK,OAC9J,GAAIjC,EAAEa,GAAI,OAAOA,EAAEuP,kBAE5B0nB,KAAM,SAAcj3B,GAClB,IAAIoB,EAAGb,EAAGzB,EAAGS,EACb,OAAO2B,KAAK26B,UAAY77B,EAAEuP,iBAAkB,OAAShP,EAAIW,KAAKsL,WAAajM,EAAE42B,8BAA+B,OAASr4B,EAAIoC,KAAKgzB,YAAcp1B,EAAEs4B,kBAAkBl2B,KAAK26B,SAASf,OAAQ55B,KAAK26B,SAAW,KAAM36B,KAAKo6B,kBAAoBn8B,EAAEa,IAAMA,EAAEuP,iBAAkBnO,EAAIhC,EAAEY,GAAI,OAAST,EAAI2B,KAAKgzB,YAAc30B,EAAE23B,+BAA+B91B,GAAIF,KAAK4oB,YAAY9pB,EAAEs2B,aAAa/nB,aAAU,GAE5XwoB,QAAS,WACP,IAAI/2B,EACJ,OAAOkB,KAAK26B,UAAY,OAAS77B,EAAIkB,KAAKgzB,YAAcl0B,EAAEk2B,iBAAiBh1B,KAAK26B,SAASf,OAAQ55B,KAAK26B,SAAW,WAAQ,GAE3H/C,eAAgB,WACd,OAAO53B,KAAKk6B,WAAal6B,KAAKk6B,WAAY,EAAIl6B,KAAKo6B,uBAAoB,IAExEhqB,EAAE5Q,UAAU2e,KAAO,CACpB0c,UAAW,WACT,IAAI/7B,EAAGoB,EACP,OAAQ,OAASpB,EAAIkB,KAAKgzB,WAAal0B,EAAEg8B,oCAAoC,iBAAc,IAAW96B,KAAKwH,MAAM6G,iBAAkB,OAASnO,EAAIF,KAAKgzB,WAAa9yB,EAAEo4B,sBAAsB,iBAAc,QAAU,GAEpNyC,WAAY,WACV,IAAIj8B,EAAGoB,EACP,OAAQ,OAASpB,EAAIkB,KAAKgzB,WAAal0B,EAAEg8B,oCAAoC,gBAAa,IAAW96B,KAAKwH,MAAM6G,iBAAkB,OAASnO,EAAIF,KAAKgzB,WAAa9yB,EAAEo4B,sBAAsB,gBAAa,QAAU,GAElN0C,UAAW,WACT,IAAIl8B,EAAGoB,EAAGb,EACV,OAAQ,OAASP,EAAIkB,KAAKgzB,WAAal0B,EAAEm8B,gCAAgC,iBAAc,IAAWj7B,KAAKwH,MAAM6G,iBAAkB,OAASnO,EAAIF,KAAKsL,WAAapL,EAAEy0B,mCAAoC,OAASt1B,EAAIW,KAAKgzB,YAAc3zB,EAAEk3B,kBAAkB,YAAav2B,KAAK6sB,eAAY,GAExRqO,IAAK,WACH,IAAIp8B,EAAGoB,EACP,OAAQ,OAASpB,EAAIkB,KAAKgzB,WAAal0B,EAAEo5B,+BAA4B,IAAWl4B,KAAKwH,MAAM6G,iBAAkB,OAASnO,EAAIF,KAAKgzB,YAAc9yB,EAAEi4B,uBAAwBn4B,KAAK6sB,eAAY,GAE1L,YAAa,WACX,IAAI/tB,EAAGoB,EACP,OAAQ,OAASpB,EAAIkB,KAAKgzB,WAAal0B,EAAE45B,+BAA4B,IAAW14B,KAAKwH,MAAM6G,iBAAkB,OAASnO,EAAIF,KAAKgzB,YAAc9yB,EAAEy4B,uBAAwB34B,KAAK6sB,eAAY,IAEzLzc,EAAE5Q,UAAUg7B,WAAa,CAC1BW,oBAAqB,WACnB,OAAOn7B,KAAKu2B,kBAAkB,WAAY,CACxC6E,iBAAiB,KAGrBC,YAAa,WACX,OAAOr7B,KAAKu2B,kBAAkB,aAEhC+E,aAAc,WACZ,OAAOt7B,KAAKwH,MAAM6G,iBAAkBrO,KAAKu7B,oBAAmB,WAC1D,IAAIz8B,EACJ,OAAOkB,KAAKw7B,kBAAoB,OAAS18B,EAAIkB,KAAKgzB,WAAal0B,EAAEk1B,wBAAqB,MAG1FyH,sBAAuB,WACrB,OAAOz7B,KAAKu2B,kBAAkB,WAAY,CACxC6E,iBAAiB,KAGrBM,cAAe,WACb,OAAO17B,KAAKu2B,kBAAkB,aAEhCoF,sBAAuB,WACrB,OAAO37B,KAAKu2B,kBAAkB,aAEhCqF,qBAAsB,WACpB,OAAO57B,KAAKu2B,kBAAkB,YAEhCsF,qBAAsB,WACpB,OAAO77B,KAAKu2B,kBAAkB,YAEhCuF,uBAAwB,WACtB,OAAO97B,KAAKu2B,kBAAkB,aAEhCwF,sBAAuB,WACrB,OAAO/7B,KAAKu2B,kBAAkB,YAEhCyF,uBAAwB,WACtB,OAAOh8B,KAAKu2B,kBAAkB,aAEhC0F,sBAAuB,WACrB,OAAOj8B,KAAKu2B,kBAAkB,YAEhC2F,mBAAoB,WAClB,OAAOl8B,KAAKu2B,kBAAkB,aAEhC4F,kBAAmB,WACjB,OAAOn8B,KAAKu2B,kBAAkB,YAEhC6F,gBAAiB,WACf,OAAOp8B,KAAKq8B,6BAA6B,kBAAmBr8B,KAAKwH,MAAMwL,OAEzEspB,WAAY,WACV,OAAOt8B,KAAKu8B,2BAA2B,SAEzCC,gBAAiB,WACf,OAAOx8B,KAAKq8B,6BAA6B,QAASr8B,KAAKwH,MAAMwL,OAE/DypB,eAAgB,WACd,OAAOz8B,KAAKq8B,6BAA6B,OAAQr8B,KAAKwH,MAAMwL,OAE9D0pB,aAAc,WACZ,IAAI59B,EACJ,OAAQ,OAASA,EAAIkB,KAAKgzB,WAAal0B,EAAEo5B,+BAA4B,GAAUl4B,KAAKu7B,oBAAmB,WACrG,IAAIz8B,EACJ,OAAO,OAASA,EAAIkB,KAAKgzB,WAAal0B,EAAEq5B,4BAAyB,UAC9D,GAEPwE,aAAc,WACZ,OAAO38B,KAAKu8B,2BAA2B,WAEzCK,oBAAqB,WACnB,OAAO58B,KAAKu8B,2BAA2B,kBAEzCM,kBAAmB,WACjB,OAAO78B,KAAKu8B,2BAA2B,gBAEzCO,kBAAmB,WACjB,OAAO98B,KAAKu8B,2BAA2B,gBAEzCQ,mBAAoB,WAClB,OAAO/8B,KAAKu8B,2BAA2B,iBAEzCS,cAAe,WACb,IAAIl+B,EACJ,OAAQ,OAASA,EAAIkB,KAAKgzB,WAAal0B,EAAE45B,+BAA4B,GAAU14B,KAAKu7B,oBAAmB,WACrG,IAAIz8B,EACJ,OAAO,OAASA,EAAIkB,KAAKgzB,WAAal0B,EAAE65B,4BAAyB,UAC9D,GAEPsE,aAAc,WACZ,OAAOj9B,KAAKu7B,oBAAmB,WAC7B,IAAIz8B,EAAGoB,EAAGb,EAAGzB,EAEb,IAAKkB,KADLlB,EAAI,GACM,OAASsC,EAAIF,KAAKgzB,WAAa9yB,EAAEg9B,4BAAyB,EAAQt/B,EAAE6E,KAAK,OAASpD,EAAIW,KAAKgzB,WAAa3zB,EAAE89B,uBAAuBr+B,QAAK,GAChJ,OAAOlB,MAGXw/B,4BAA6B,WAC3B,OAAOp9B,KAAKq8B,6BAA6B,WAAYr8B,KAAKwH,MAAMwL,OAElEqqB,6BAA8B,WAC5B,OAAOr9B,KAAKq8B,6BAA6B,UAAWr8B,KAAKwH,MAAMwL,OAEjEsqB,oBAAqB,WACnB,OAAOt9B,KAAKu8B,2BAA2B,WAEzCgB,gBAAiB,WACf,OAAOv9B,KAAKu8B,2BAA2B,QAEzCiB,kBAAmB,WACjB,OAAOx9B,KAAKu8B,2BAA2B,QAEzCkB,gBAAiB,WACf,OAAOz9B,KAAKu8B,2BAA2B,cAEzCmB,YAAa,WACX,IAAI5+B,EACJ,OAAO,OAASA,EAAIkB,KAAKsL,UAAYxM,EAAE6+B,sCAAmC,GAE5EC,YAAa,WACX,IAAI9+B,EACJ,OAAO,OAASA,EAAIkB,KAAKsL,UAAYxM,EAAE++B,sCAAmC,GAE5EC,sBAAuB,WACrB,OAAO99B,KAAKk6B,WAAY,EAAIl6B,KAAK40B,aAAa50B,KAAKwH,MAAMwL,OAE3D+qB,sBAAuB,WACrB,OAAO/9B,KAAKk6B,WAAY,EAAIl6B,KAAK40B,aAAa50B,KAAKwH,MAAMwL,OAE3DgrB,eAAgB,WACd,IAAIl/B,EAAGoB,EACP,OAAQpB,EAAIkB,KAAKw7B,oBAAsBx7B,KAAKw7B,kBAAoB,KAAM,OAASt7B,EAAIF,KAAKsL,WAAapL,EAAE+1B,8BAA+Bj2B,KAAKu7B,oBAAmB,WAC5J,IAAIr7B,EACJ,OAAO,OAASA,EAAIF,KAAKgzB,WAAa9yB,EAAEg2B,kBAAkBp3B,QAAK,WAC3D,GAERm/B,gBAAiB,WACf,IAAI5+B,EAAGzB,EAAGS,EAAGK,EAAGiB,EAAGkB,EAAGuP,EAAGnS,EAAGJ,EAAGkS,EAAGrQ,EAClC,OAAOL,EAAIW,KAAKwH,MAAM4tB,aAAcz1B,EAAI,CACtCy1B,aAAc/1B,IACZzB,EAAIyB,EAAEulB,QAAQ,SAAW5kB,KAAKwH,MAAM6G,iBAAkB1O,EAAE6I,KAAO,YAAa9I,GAAKhB,EAAIW,EAAEulB,QAAQ,oBAAsB1kB,EAAEmd,0BAA0B3e,GAAGknB,OAAShoB,EAAG+B,EAAEq3B,KAAOh3B,KAAKqzB,eAAez1B,EAAG8B,GAAI,OAASmB,EAAIb,KAAKsL,WAAazK,EAAEo2B,yBAAyBt3B,GAAIK,KAAKu7B,oBAAmB,WAC5R,IAAIz8B,EACJ,OAAO,OAASA,EAAIkB,KAAKgzB,WAAal0B,EAAEo4B,WAAWv3B,EAAEq3B,WAAQ,KAC3Dh3B,KAAKq6B,YAAc,SAAUv7B,GAC/B,OAAO,WACL,IAAIoB,EACJ,OAAO,OAASA,EAAIpB,EAAEwM,UAAYpL,EAAEi3B,wBAAwBx3B,QAAK,GAH9C,CAKrBK,OAASlB,EAAEO,IAAMM,EAAE6I,KAAO,aAAc7I,EAAEy3B,OAAS/3B,EAAEulB,QAAQ,cAAe,OAASxU,EAAIpQ,KAAKsL,WAAa8E,EAAE6mB,yBAAyBt3B,GAAIK,KAAKu7B,oBAAmB,WAClK,IAAIz8B,EACJ,OAAO,OAASA,EAAIkB,KAAKgzB,WAAal0B,EAAE81B,aAAaj1B,EAAEy3B,aAAU,KAC/Dp3B,KAAKq6B,YAAc,SAAUv7B,GAC/B,OAAO,WACL,IAAIoB,EACJ,OAAO,OAASA,EAAIpB,EAAEwM,UAAYpL,EAAEi3B,wBAAwBx3B,QAAK,GAH9C,CAKrBK,QAAU3B,EAAIgB,EAAEulB,QAAQ,eAAiB5kB,KAAKwH,MAAM6G,iBAAkB1O,EAAE6I,KAAO,YAAa7I,EAAEq3B,KAAO34B,EAAG,OAASJ,EAAI+B,KAAKsL,WAAarN,EAAEg5B,yBAAyBt3B,GAAIK,KAAKu7B,oBAAmB,WAC9L,IAAIz8B,EACJ,OAAO,OAASA,EAAIkB,KAAKgzB,WAAal0B,EAAEo4B,WAAWv3B,EAAEq3B,WAAQ,KAC3Dh3B,KAAKq6B,YAAc,SAAUv7B,GAC/B,OAAO,WACL,IAAIoB,EACJ,OAAO,OAASA,EAAIpB,EAAEwM,UAAYpL,EAAEi3B,wBAAwBx3B,QAAK,GAH9C,CAKrBK,QAAU,OAASnC,EAAIwB,EAAEgO,OAASxP,EAAEuD,YAAS,IAAWzB,EAAE6I,KAAO,OAAQ7I,EAAEiH,KAAOvH,EAAEgO,MAAM,GAAI,OAAS0C,EAAI/P,KAAKsL,WAAayE,EAAEknB,yBAAyBt3B,GAAIK,KAAKu7B,oBAAmB,WACpL,IAAIz8B,EACJ,OAAO,OAASA,EAAIkB,KAAKgzB,WAAal0B,EAAE04B,WAAW73B,EAAEiH,WAAQ,KAC3D5G,KAAKq6B,YAAc,SAAUv7B,GAC/B,OAAO,WACL,IAAIoB,EACJ,OAAO,OAASA,EAAIpB,EAAEwM,UAAYpL,EAAEi3B,wBAAwBx3B,QAAK,GAH9C,CAKrBK,YAAS,GAEbk+B,eAAgB,WACd,OAAOl+B,KAAK40B,aAAa50B,KAAKwH,MAAMwL,OAEtCglB,gBAAiB,WACf,OAAOh4B,KAAK40B,aAAa,OAE3BuJ,WAAY,WACV,OAAOn+B,KAAKq8B,6BAA6B,OAAQr8B,KAAKwH,MAAMwL,OAE9DorB,kBAAmB,WACjB,OAAOp+B,KAAKu8B,2BAA2B,WAEzC8B,gBAAiB,WACf,IAAIv/B,EACJ,OAAO,OAASA,EAAIkB,KAAKsL,WAAaxM,EAAE61B,mCAAoC30B,KAAKu7B,oBAAmB,WAClG,IAAIz8B,EACJ,OAAO,OAASA,EAAIkB,KAAKgzB,WAAal0B,EAAEk5B,uBAAoB,MAGhEsG,sBAAuB,WACrB,OAAOt+B,KAAK40B,aAAa50B,KAAKwH,MAAM4tB,aAAaxQ,QAAQ,cAAe,CACtE6T,gBAAgB,KAGpB8F,WAAY,WACV,IAAIz/B,EAAGoB,EACP,OAAOF,KAAK40B,aAAa,OAAS91B,EAAIkB,KAAKwH,MAAMwL,MAAQlU,EAAI,OAASoB,EAAIF,KAAKwH,MAAM4tB,cAAgBl1B,EAAE0kB,QAAQ,mBAAgB,IAEjI4Z,gBAAiB,WACf,OAAOx+B,KAAK40B,aAAa50B,KAAKwH,MAAMwL,OAEtCyrB,oBAAqB,WACnB,OAAOz+B,KAAKu8B,2BAA2B,YAExCnsB,EAAE5Q,UAAUo1B,aAAe,SAAU91B,EAAGoB,GACzC,IAAIb,EACJ,OAAO,MAAQP,IAAMA,EAAI,IAAK,OAASO,EAAIW,KAAKsL,WAAajM,EAAEs1B,mCAAoC30B,KAAKu7B,oBAAmB,WACzH,IAAIl8B,EACJ,OAAO,OAASA,EAAIW,KAAKgzB,WAAa3zB,EAAEu1B,aAAa91B,EAAGoB,QAAK,MAE9DkQ,EAAE5Q,UAAU+8B,2BAA6B,SAAUz9B,GACpD,IAAIO,EACJ,OAAOwB,EAAE9C,KAAKmC,EAAEse,uBAAwB1f,IAAM,GAAK,OAASO,EAAIW,KAAKsL,WAAajM,EAAEq/B,qCAAqC5/B,GAAIkB,KAAKu7B,oBAAmB,WACnJ,IAAIr7B,EACJ,OAAO,OAASA,EAAIF,KAAKgzB,WAAa9yB,EAAEy+B,uBAAuB7/B,QAAK,WAChE,GACLsR,EAAE5Q,UAAU68B,6BAA+B,SAAUv9B,EAAGO,GACzD,IAAIzB,EACJ,OAAOiD,EAAE9C,KAAKmC,EAAEse,uBAAwB1f,IAAM,GAAK,OAASlB,EAAIoC,KAAKsL,WAAa1N,EAAE8gC,qCAAqC5/B,GAAIkB,KAAKu7B,oBAAmB,WACnJ,IAAIr7B,EACJ,OAAO,OAASA,EAAIF,KAAKgzB,WAAa9yB,EAAE0+B,oBAAoB9/B,EAAGO,QAAK,WAChE,GACL+Q,EAAE5Q,UAAU+2B,kBAAoB,SAAUz3B,EAAGoB,GAC9C,IAAIb,EAAGzB,EAAMc,EACb,OAAY,MAAQwB,EAAIA,EAAI,CAC1Bk7B,iBAAiB,IAChBA,iBAAsB,OAAS18B,EAAIsB,KAAKsL,WAAa5M,EAAEi2B,mCAAoC/2B,EAAI,SAAUsC,GAC1G,OAAO,WACL,IAAIb,EACJ,OAAO,OAASA,EAAIa,EAAE8yB,WAAa3zB,EAAEk3B,kBAAkBz3B,QAAK,GAHkC,CAKhGkB,OAAQX,EAAIW,KAAK6+B,kBAAkB,CACnCC,UAAW,KACP9+B,KAAKu7B,mBAAmBl8B,EAAGzB,GAAKA,KACrCwS,EAAE5Q,UAAU+7B,mBAAqB,SAAUz8B,EAAGO,GAC/C,IAAIzB,EACJ,MAAO,mBAAqBkB,IAAMO,EAAIP,EAAGA,EAAIkB,KAAK6+B,qBAAsB//B,EAAI,OAASlB,EAAIoC,KAAKgzB,WAAap1B,EAAE29B,mBAAmBz8B,EAAGO,EAAED,KAAKY,YAAS,GAAUE,EAAEokB,wBAAwBvhB,QAAS1D,EAAEtB,KAAKiC,QACtMoQ,EAAE5Q,UAAUq/B,kBAAoB,SAAU//B,GAC3C,IAAIoB,EAAGb,EAAGzB,EAAGS,EACb,OAAOT,GAAK,MAAQkB,EAAIA,EAAI,CAC1BggC,UAAW,IACVA,WAAYzgC,EAAI,mBAAsB6B,EAAIF,KAAKwH,OAAOu3B,gBAAkB7+B,EAAE6+B,uBAAoB,IAAW1gC,EAAE+C,SAAW/B,EAAIoT,EAAEpU,EAAE,IAAK,IAAMT,GAAKyB,EAAEsC,WAAWP,QAAUxD,GAAKyB,OAAI,GAChLoT,EAAI,SAAW3T,GAChB,IAAIoB,EACJ,OAAOA,EAAIkI,SAAS42B,eAAiBC,SAASngC,EAAE2lB,eAAgB3lB,EAAEogC,aAAch/B,EAAEi/B,OAAOrgC,EAAE4lB,aAAc5lB,EAAEsgC,WAAYl/B,GACtHkQ,EAAE5Q,UAAU+6B,UAAY,SAAUz7B,EAAGoB,GACtC,IAAIb,EACJW,KAAKwH,MAAQ1I,EACb,IACEO,EAAIa,EAAEnC,KAAKiC,MACX,QACAA,KAAKwH,MAAQ,KAEf,OAAOnI,GACNpB,EAAI,SAAWa,GAChB,IAAIoB,EAAGb,EACP,OAAOwB,EAAE9C,KAAK,OAASmC,EAAI,OAASb,EAAIP,EAAEs2B,cAAgB/1B,EAAEg4B,WAAQ,GAAUn3B,EAAI,GAAI,UAAY,GACjG6P,EAAI,SAAWjR,GAChB,IAAIoB,EACJ,OAAQA,EAAIpB,EAAEu3B,eAAiBx1B,EAAE9C,KAAKmC,EAAEm3B,MAAO,UAAY,GAAK,IAAMn3B,EAAEm3B,MAAMj2B,QAAUlB,EAAEmN,MAAMjM,QAAU,OAAI,GAC7G1B,EAAI,SAAWZ,GAChB,IAAIoB,EACJ,OAAQA,EAAIpB,EAAEu3B,eAAiBx1B,EAAE9C,KAAKmC,EAAEm3B,MAAO,eAAiB,GAAK,IAAMn3B,EAAEm3B,MAAMj2B,YAAS,GAC3FvD,EAAI,SAAWiB,GAChB,IAAIoB,EACJ,OAAOA,EAAI,GAAIpB,EAAE41B,QAAUx0B,EAAEuC,KAAK,OAAQ3D,EAAEw7B,UAAYp6B,EAAEuC,KAAK,SAAUvC,EAAEuC,KAAK3D,EAAEK,KAAMe,GACvFhC,EAAI,SAAWY,GAChB,MAAO,CACL6B,EAAG7B,EAAE22B,QACL1iB,EAAGjU,EAAE42B,UAENtlB,EA7W4G,CA8W/GlQ,EAAEkyB,kBACJr0B,KAAKiC,MAAO,WACZ,IAAIlB,EACFO,EACAzB,EACAS,EACAK,EACAiB,EACAkB,EACAuP,EACAnS,EAAI,SAAWa,EAAGoB,GAChB,OAAO,WACL,OAAOpB,EAAE+D,MAAM3C,EAAGwI,aAGtB7K,EAAI,SAAWiB,EAAGoB,GAChB,SAASb,IACPW,KAAKF,YAAchB,EAErB,IAAK,IAAIlB,KAAKsC,EAAG6P,EAAEhS,KAAKmC,EAAGtC,KAAOkB,EAAElB,GAAKsC,EAAEtC,IAC3C,OAAOyB,EAAEG,UAAYU,EAAEV,UAAWV,EAAEU,UAAY,IAAIH,EAAKP,EAAEod,UAAYhc,EAAEV,UAAWV,GAEtFiR,EAAI,GAAGtQ,eACTJ,EAAIa,EAAE6c,MAAOnf,EAAIsC,EAAEgU,YAAavU,EAAIO,EAAEqhB,YAAanR,EAAIlQ,EAAEgO,QAASrN,EAAIX,EAAEyb,OAAQjd,EAAImC,EAAE8nB,KAAM7pB,EAAI+B,EAAEqpB,IAAK7rB,EAAIwC,EAAE4sB,SAAUvtB,EAAEm/B,2BAA6B,SAAUx+B,GAC9J,SAASkP,EAAEjR,EAAGoB,EAAGb,EAAGzB,GAClBoC,KAAKs/B,gBAAkBxgC,EAAGkB,KAAKuI,QAAUrI,EAAGF,KAAKu/B,UAAYlgC,EAAGW,KAAK4R,QAAU,MAAQhU,EAAIA,EAAI,GAAIoC,KAAKw/B,eAAiBvhC,EAAE+B,KAAKw/B,eAAgBx/B,MAAOA,KAAKy/B,iBAAmBxhC,EAAE+B,KAAKy/B,iBAAkBz/B,MAAOA,KAAK0/B,gBAAkBzhC,EAAE+B,KAAK0/B,gBAAiB1/B,MAAOA,KAAK2/B,kBAAoB1hC,EAAE+B,KAAK2/B,kBAAmB3/B,MAAOA,KAAK4/B,qBAAuB3hC,EAAE+B,KAAK4/B,qBAAsB5/B,MAAOA,KAAK6/B,gBAAkB5hC,EAAE+B,KAAK6/B,gBAAiB7/B,MAAOA,KAAKmqB,WAAanqB,KAAKs/B,gBAAgBnV,WAAY,MAAQ/Z,EAAEpQ,KAAKuI,WAAavI,KAAKuI,QAAUvI,KAAKuI,QAAQ8N,YAAarW,KAAK8/B,UAEpjB,IAAIpgC,EACJ,OAAO7B,EAAEkS,EAAGlP,GAAInB,EAAI,SAAWZ,GAC7B,OAAO,WACL,IAAIoB,EACJ,OAAOA,EAAIpB,EAAE+D,MAAM7C,KAAM0I,YAAkB,KAAK,MAAQ1I,KAAK+/B,QAAU//B,KAAK+/B,MAAQ,IAAK//B,KAAK+/B,MAAMt9B,KAAKvC,EAAEwpB,QAE5G3Z,EAAEvQ,UAAUsgC,QAAU,WACvB,OAAO9/B,KAAKggC,qBAAsBhgC,KAAKigC,aAAcjgC,KAAKmqB,WAAW+V,gBAAkBlgC,KAAKmgC,4BAAyB,GACpHpwB,EAAEvQ,UAAU4gC,UAAY,WACzB,IAAIthC,EAAGoB,EACP,IAAKF,KAAKqgC,qBAAsBngC,EAAIF,KAAK+/B,MAAMpoB,OAAQzX,IACvD,OAAO,OAASpB,EAAIkB,KAAKsL,UAAYxM,EAAEwhC,6BAA6BtgC,WAAQ,GAC3E+P,EAAEvQ,UAAU6gC,mBAAqB,WAClC,IAAIvhC,EAAGoB,EAAGb,EACV,OAAO,MAAQW,KAAKugC,gBAAkBzhC,EAAIkB,KAAKugC,eAAgBvgC,KAAKugC,eAAiB,KAAMzhC,EAAI,OAASoB,EAAIF,KAAKsL,WAAa,mBAAqBpL,EAAEsgC,0DAA4DtgC,EAAEsgC,0DAA0D,CAC3QhT,QAAS1uB,GACRkB,KAAKmqB,iBAAc,EAAS,OAAS9qB,EAAIW,KAAKsL,WAAa,mBAAqBjM,EAAEohC,yDAA2DphC,EAAEohC,yDAAyD,UAAWzgC,KAAKmqB,iBAAc,QAAU,GAClPpa,EAAEvQ,UAAUwgC,mBAAqBtgC,GAAE,WACpC,MAAO,CACL,GAAM,SAAUZ,GACd,OAAO,WACL,OAAOA,EAAEyJ,QAAQmZ,QAAQgf,aAAc,GAFrC,CAIJ1gC,MACF0pB,KAAM,SAAU5qB,GACd,OAAO,WACL,cAAcA,EAAEyJ,QAAQmZ,QAAQgf,aAF9B,CAIJ1gC,UAEF+P,EAAEvQ,UAAUygC,WAAavgC,GAAE,WAC7B,IAAIL,EACJ,OAAOA,EAAIM,EAAE,CACXuO,QAAS,MACTyT,UAAW7iB,EAAE6rB,kBACb3X,KAAM,CACJ0tB,aAAa,GAEflgB,WAAY7gB,EAAE,CACZuO,QAAS,MACTyT,UAAW,kBACXnB,WAAY7gB,EAAE,CACZuO,QAAS,OACTyT,UAAW,+CACXnB,WAAY7gB,EAAE,CACZuO,QAAS,SACTyT,UAAW,kCACXE,YAAanjB,EAAEwnB,OACf3c,WAAY,CACVo3B,MAAOjiC,EAAEwnB,QAEXlT,KAAM,CACJ4tB,WAAY,kBAKlB5gC,KAAKmqB,WAAW+V,iBAAmB7gC,EAAE0P,YAAYpP,EAAE,CACrDuO,QAAS,MACTyT,UAAW7iB,EAAEyrB,4BACb/J,WAAY7gB,EAAE,CACZuO,QAAS,OACTyT,UAAW7iB,EAAEwrB,mBACb9J,WAAY,CAAC7gB,EAAE,CACbuO,QAAS,OACTyT,UAAW7iB,EAAE0rB,eACb3I,YAAa7hB,KAAKmqB,WAAW0W,cAC7Bt3B,WAAY,CACVo3B,MAAO3gC,KAAKmqB,WAAW0W,iBAEvBlhC,EAAE,CACJuO,QAAS,OACTyT,UAAW7iB,EAAE4rB,eACb7I,YAAa7hB,KAAKmqB,WAAW2W,+BAG9BljC,EAAE,QAAS,CACd2hB,UAAWlgB,EACXogB,aAAczf,KAAK6/B,kBACjBjiC,EAAE,QAAS,CACb2hB,UAAWlgB,EACXmgB,iBAAkB,qBAClBC,aAAczf,KAAK4/B,uBACjB,CACF,GAAM,SAAU9gC,GACd,OAAO,WACL,OAAOA,EAAEyJ,QAAQwG,YAAY1P,IAF3B,CAIJW,MACF0pB,KACS,WACL,OAAOxpB,EAAE0gB,WAAWvhB,QAIxB0Q,EAAEvQ,UAAU2gC,qBAAuBzgC,GAAE,WACvC,IAAIrB,EAAGwC,EAAGuP,EAAGnS,EAAGJ,EAChB,OAAOI,EAAI0B,EAAE,CACXuO,QAAS,WACTyT,UAAW7iB,EAAEurB,wBACb9gB,WAAY,CACVw3B,YAAariC,EAAEqqB,oBAEjB/V,KAAM,CACJ0tB,aAAa,MAEX7hC,MAAQmB,KAAKs/B,gBAAgB0B,cAAcnjC,EAAII,EAAE6uB,aAAelL,UAAUnS,IAAI,yBAA0B5R,EAAEojC,UAAY,EAAG5iC,EAAI,WACjI,OAAOR,EAAEgB,MAAQZ,EAAEY,MAAOZ,EAAE4Q,MAAMqyB,OAASrjC,EAAEsjC,aAAe,MAC3DvjC,EAAE,QAAS,CACZ2hB,UAAWthB,EACXwhB,aAAcphB,IACZT,EAAE,QAAS,CACb2hB,UAAWthB,EACXwhB,aAAczf,KAAK0/B,kBACjB9hC,EAAE,UAAW,CACf2hB,UAAWthB,EACXwhB,aAAczf,KAAK2/B,oBACjB/hC,EAAE,SAAU,CACd2hB,UAAWthB,EACXwhB,aAAczf,KAAKy/B,mBACjB7hC,EAAE,OAAQ,CACZ2hB,UAAWthB,EACXwhB,aAAczf,KAAKw/B,iBACjBpvB,EAAIpQ,KAAKuI,QAAQF,cAAc,cAAexH,EAAIuP,EAAE0c,YAAa,CACnE,GAAM,SAAU5sB,GACd,OAAO,WACL,OAAOkQ,EAAEvB,MAAMC,QAAU,OAAQjO,EAAEkO,YAAY9Q,GAAI4C,EAAEkO,YAAYlR,GAAIgD,EAAE+gB,UAAUnS,IAAI3Q,EAAEsrB,kBAAoB,aAAcha,EAAEgxB,cAAcle,aAAariB,EAAGuP,GAAI/R,IAAK6B,EAAE0R,QAAQyvB,YAAchiC,GAAE,WAC1L,OAAOpB,EAAE0Q,gBACN,GAJH,CAMJ3O,MACF0pB,KAAM,WACJ,OAAOxpB,EAAE0gB,WAAW/f,GAAIuP,EAAEvB,MAAMC,QAAU,UAG5CiB,EAAEvQ,UAAUqgC,gBAAkB,SAAU/gC,GAC1C,OAAOA,EAAEuP,iBAAkBvP,EAAEg5B,mBAC5B/nB,EAAEvQ,UAAUogC,qBAAuB,SAAU9gC,GAC9C,IAAOO,EACP,OAAYP,EAAE4E,OAAOwG,aAAa,qBAChC,IAAK,SACH,OAAO,OAAS7K,EAAIW,KAAKsL,UAAYjM,EAAEiiC,8CAA8CthC,KAAKmqB,iBAAc,IAE3Gpa,EAAEvQ,UAAUmgC,kBAAoB,SAAU7gC,GAC3C,IAAIoB,EACJ,MAAO,WAAa7B,EAAES,EAAEw1B,UAAYx1B,EAAEuP,iBAAkBrO,KAAKqgC,qBAAsB,OAASngC,EAAIF,KAAKsL,WAAa,mBAAqBpL,EAAEqhC,gDAAkDrhC,EAAEqhC,gDAAgDvhC,KAAKmqB,iBAAc,QAAU,GACzQpa,EAAEvQ,UAAUkgC,gBAAkB,SAAU5gC,GACzC,OAAOkB,KAAKugC,eAAiBzhC,EAAE4E,OAAO7E,MAAMoe,QAAQ,MAAO,KAAK2I,QAC/D7V,EAAEvQ,UAAUigC,iBAAmB,WAChC,OAAOz/B,KAAKqgC,sBACXtwB,EAAEvQ,UAAUggC,eAAiB,WAC9B,OAAOx/B,KAAKqgC,sBACXtwB,EA5JiJ,CA6JpJ7P,EAAE0b,cACJ7d,KAAKiC,MAAO,WACZ,IAAIlB,EACFO,EACAzB,EACAS,EAAI,SAAWS,EAAGoB,GAChB,SAASb,IACPW,KAAKF,YAAchB,EAErB,IAAK,IAAIlB,KAAKsC,EAAGxB,EAAEX,KAAKmC,EAAGtC,KAAOkB,EAAElB,GAAKsC,EAAEtC,IAC3C,OAAOyB,EAAEG,UAAYU,EAAEV,UAAWV,EAAEU,UAAY,IAAIH,EAAKP,EAAEod,UAAYhc,EAAEV,UAAWV,GAEtFJ,EAAI,GAAGe,eACT7B,EAAIsC,EAAEqhB,YAAaziB,EAAIoB,EAAEyb,OAAOuO,IAAKhqB,EAAEyiB,eAAiB,SAAUjkB,GAChE,SAASiB,IACPA,EAAEuc,UAAUpc,YAAY+C,MAAM7C,KAAM0I,WAAY1I,KAAKmqB,WAAanqB,KAAKV,OAAQU,KAAKmqB,WAAWqX,uBAAyBxhC,KAAMA,KAAKs/B,gBAAkBt/B,KAAK4R,QAAQ6vB,MAEpK,IAAI5gC,EACJ,OAAOxC,EAAEsB,EAAGjB,GAAIiB,EAAEijB,mBAAqB,yBAA0BjjB,EAAEH,UAAUkiC,mBAAqB,WAChG,MAAO,IACN/hC,EAAEH,UAAUyvB,YAAc,WAC3B,IAAI/uB,EAAGb,EAAGhB,EAAGK,EAAGiB,EAAGyQ,EAAGnS,EACtB,GAAIiC,EAAIxB,EAAId,EAAE,CACZsQ,QAAS,SACTyT,UAAW3hB,KAAK2hC,eAChB3uB,KAAMhT,KAAK4kB,UACXpD,UAAU,KACPniB,EAAIW,KAAK4hC,aAAeljC,EAAId,EAAE,CACjCsQ,QAAS,IACTsT,UAAU,EACVjY,WAAY,CACV4iB,KAAM9sB,EACNwiC,UAAW,KAEX3hC,EAAE6O,YAAYrQ,IAAKsB,KAAKmqB,WAAW2X,aAAcpjC,EAAEguB,UAAY1sB,KAAKmqB,WAAW4X,kBAAkB,IAAoC1jC,EAAI,EAAGsB,GAAtC1B,EAAI+B,KAAK0hC,sBAAmCtgC,OAAQzB,EAAItB,EAAGA,IAAK+R,EAAInS,EAAEI,GAAIK,EAAEqQ,YAAYqB,GAClM,OAAO1R,EAAEqQ,YAAY/O,KAAKgiC,wBAAyBhiC,KAAKmqB,WAAW8X,cAAgBjiC,KAAKkiC,gBAAkBtkC,EAAE,CAC1GsQ,QAAS,WACT3E,WAAY,CACV,MAASzK,EAAE2rB,mBACX5rB,MAAOmB,KAAKmqB,WAAWgY,oBACvB9+B,IAAK,KAEP2P,KAAM,CACJ0tB,aAAa,EACbrZ,aAAc,CAAC,kBAAmBrnB,KAAKmqB,WAAW/e,IAAInJ,KAAK,QAE3D/B,EAAE6O,YAAY/O,KAAKkiC,kBAAmB,CAACrhC,EAAE,QAASX,EAAGW,EAAE,WAC1DlB,EAAEH,UAAUwiC,qBAAuB,WACpC,IAAI9hC,EAAGb,EAAGhB,EAAGK,EAAGiB,EAAGkB,EAAGuP,EACtB,OAAO/R,EAAIT,EAAE,CACXsQ,QAAS,aACTyT,UAAW7iB,EAAEsrB,qBACVlqB,EAAIF,KAAKs/B,gBAAgB0B,eAAiB3iC,EAAEujB,UAAUnS,IAAI3Q,EAAEsrB,kBAAoB,YAAa/rB,EAAEwjB,YAAc3hB,KAAMb,EAAIW,KAAKoiC,oBAAsBjkC,OAASO,EAAIsB,KAAKmqB,WAAW0W,eAAgBxhC,EAAE2H,OAASnG,EAAIb,KAAKmqB,WAAW2W,wBAAyBpiC,IAAMiB,EAAI/B,EAAE,CACtQsQ,QAAS,OACTyT,UAAW7iB,EAAE0rB,eACb3I,YAAanjB,IACXL,EAAE0Q,YAAYpP,IAAKkB,IAAMnC,GAAKL,EAAE0Q,YAAY3G,SAASi6B,eAAe,MAAOjyB,EAAIxS,EAAE,CACnFsQ,QAAS,OACTyT,UAAW7iB,EAAE4rB,eACb7I,YAAahhB,IACXxC,EAAE0Q,YAAYqB,KAAM/R,GACvBsB,EAAEH,UAAUmiC,aAAe,WAC5B,IAAIzhC,EAAGb,EACP,OAAOA,EAAI,CAACP,EAAEqrB,WAAYrrB,EAAEqrB,WAAa,KAAOnqB,KAAKmqB,WAAWmY,YAAapiC,EAAIF,KAAKmqB,WAAWoY,iBAAmBljC,EAAEoD,KAAK3D,EAAEqrB,WAAa,KAAOjqB,GAAIb,EAAE4C,KAAK,MAC3JtC,EAAEH,UAAUolB,QAAU,WACvB,IAAI9lB,EAAGoB,EACP,OAAOA,EAAI,CACTsiC,eAAgBj4B,KAAKC,UAAUxK,KAAKmqB,YACpCsY,gBAAiBziC,KAAKmqB,WAAWuY,iBACjCC,OAAQ3iC,KAAKmqB,WAAW/e,KACvBtM,EAAIkB,KAAKs/B,gBAAgB/1B,YAAc6c,YAAclmB,EAAE0iC,eAAiBr4B,KAAKC,UAAU1L,IAAKkB,KAAKmqB,WAAW8X,cAAgB/hC,EAAE2iC,eAAgB,GAAK3iC,GACrJP,EAAEH,UAAUoiC,QAAU,WACvB,OAAOviC,EAAEW,KAAKmqB,WAAW4X,aAAc,UAAO,EAAS/hC,KAAKmqB,WAAWyX,WACtEjiC,EAAEH,UAAU4iC,iBAAmB,WAChC,IAAItjC,EAAGO,EAAGzB,EACV,OAAOA,EAAIoC,KAAKmqB,WAAWmY,UAAWxjC,EAAIoB,EAAE+d,WAAW,OAAS5e,EAAIa,EAAEyb,OAAO0R,YAAYzvB,IAAMyB,EAAEmuB,aAAU,GAAS,SAAW5vB,IAAMkB,EAAEX,MAAO,GAAKW,GAClJa,EAAEH,UAAUsjC,oBAAsB,WACnC,IAAIhkC,EACJ,OAAO,OAASA,EAAIkB,KAAKiI,eAAiBnJ,EAAEuJ,cAAc,iBAAc,GACvExH,EAAI,SAAW/B,GAChB,OAAOlB,EAAE,CACPsQ,QAAS,OACT2T,YAAa3hB,EAAEib,iBACfnI,KAAM,CACJyP,iBAAkB3jB,EAClB+jC,eAAe,MAGlBljC,EAAEH,UAAUujC,kCAAoC,WACjD,IAAIjkC,EAAGoB,EACP,OAAOA,EAAIF,KAAKmqB,WAAWgY,oBAAqB,OAASrjC,EAAIkB,KAAK8iC,uBAAyBhkC,EAAED,MAAQqB,OAAI,GACxGP,EA9EmD,CA+EtDO,EAAE0uB,YAAavvB,EAAI,SAAWP,EAAGoB,GACjC,IAAIb,EACJ,OAAOA,EAAIzB,EAAE,OAAQyB,EAAEqtB,UAAY,MAAQ5tB,EAAIA,EAAI,GAAIO,EAAEgJ,cAAcnI,KAEzEnC,KAAKiC,MAAO,WACZ,IAAIlB,EACFO,EAAI,SAAWP,EAAGoB,GAChB,SAASb,IACPW,KAAKF,YAAchB,EAErB,IAAK,IAAIT,KAAK6B,EAAGtC,EAAEG,KAAKmC,EAAG7B,KAAOS,EAAET,GAAK6B,EAAE7B,IAC3C,OAAOgB,EAAEG,UAAYU,EAAEV,UAAWV,EAAEU,UAAY,IAAIH,EAAKP,EAAEod,UAAYhc,EAAEV,UAAWV,GAEtFlB,EAAI,GAAG6B,eACTX,EAAIoB,EAAEqhB,YAAarhB,EAAE8iC,0BAA4B,SAAUplC,GACzD,SAASS,IACPA,EAAE6d,UAAUpc,YAAY+C,MAAM7C,KAAM0I,WAAY1I,KAAKmqB,WAAW8Y,gBAAkBjjC,KAEpF,OAAOX,EAAEhB,EAAGT,GAAIS,EAAEmB,UAAUkiC,mBAAqB,WAC/C,OAAO1hC,KAAKkjC,MAAQpkC,EAAE,CACpBoP,QAAS,MACT3E,WAAY,CACV45B,IAAK,IAEPnwB,KAAM,CACJ0tB,aAAa,KAEb1gC,KAAKojC,QAAQpjC,KAAKkjC,OAAQ,CAACljC,KAAKkjC,QACnC7kC,EAAEmB,UAAUwiC,qBAAuB,WACpC,IAAIljC,EACJ,OAAOA,EAAIT,EAAE6d,UAAU8lB,qBAAqBn/B,MAAM7C,KAAM0I,YAAcmZ,aAAe/iB,EAAEwP,aAAa,wBAAyBpO,EAAEyb,OAAOgN,KAAKI,oBAAqBjqB,GAC/JT,EAAEmB,UAAU4jC,QAAU,SAAUtkC,GACjC,IAAIoB,EACJ,OAAO,MAAQpB,IAAMA,EAAI,OAASoB,EAAIF,KAAKiI,eAAiB/H,EAAEmI,cAAc,YAAS,GAASvJ,EAAIkB,KAAKqjC,yBAAyBvkC,QAAK,GACpIT,EAAEmB,UAAU6jC,yBAA2B,SAAUvkC,GAClD,IAAIoB,EAAGb,EAAGzB,EAAGS,EAAGK,EAAGiB,EACnB,OAAOjB,EAAIsB,KAAKmqB,WAAWmZ,SAAUjkC,EAAIW,KAAKmqB,WAAWoZ,gBAAiBzkC,EAAEqkC,IAAM9jC,GAAKX,EAAGW,IAAMX,EAAII,EAAE0P,gBAAgB,oCAAsC5Q,EAAI2M,KAAKC,UAAU,CAC7K24B,IAAKzkC,IACHI,EAAEwP,aAAa,kCAAmC1Q,IAAK+B,EAAIK,KAAKmqB,WAAWqZ,WAAYtjC,EAAIF,KAAKmqB,WAAWsZ,YAAa,MAAQ9jC,IAAMb,EAAE4kC,MAAQ/jC,GAAI,MAAQO,IAAMpB,EAAEoiC,OAAShhC,GAAI7B,EAAI,CAAC,eAAgB2B,KAAKmqB,WAAW/e,GAAItM,EAAEqkC,IAAKrkC,EAAE4kC,MAAO5kC,EAAEoiC,QAAQj/B,KAAK,KAAMnD,EAAE4iB,QAAQ2F,aAAehpB,GAC3RA,EAAEmB,UAAUmkC,8BAAgC,WAC7C,OAAO3jC,KAAKojC,QAAQpjC,KAAKkjC,OAAQljC,KAAKojC,WACrC/kC,EA3B4C,CA4B/C6B,EAAEyiB,iBACJ5kB,KAAKiC,MAAO,WACZ,IAAIlB,EACFO,EACAzB,EACAS,EAAI,SAAWS,EAAGoB,GAChB,SAASb,IACPW,KAAKF,YAAchB,EAErB,IAAK,IAAIlB,KAAKsC,EAAGxB,EAAEX,KAAKmC,EAAGtC,KAAOkB,EAAElB,GAAKsC,EAAEtC,IAC3C,OAAOyB,EAAEG,UAAYU,EAAEV,UAAWV,EAAEU,UAAY,IAAIH,EAAKP,EAAEod,UAAYhc,EAAEV,UAAWV,GAEtFJ,EAAI,GAAGe,eACT7B,EAAIsC,EAAEqhB,YAAaziB,EAAIoB,EAAEggB,iBAAkB7gB,EAAIa,EAAE2e,cAAe3e,EAAE0jC,UAAY,SAAUllC,GACtF,SAASiB,IACP,IAAIb,EACJa,EAAEuc,UAAUpc,YAAY+C,MAAM7C,KAAM0I,WAAY1I,KAAKyhC,MAAQzhC,KAAKV,OAAQU,KAAKuJ,WAAavJ,KAAKyhC,MAAMoC,gBAAiB/kC,EAAIkB,KAAK4R,QAAS5R,KAAK8jC,WAAahlC,EAAEglC,WAAY9jC,KAAK+jC,QAAUjlC,EAAEilC,QAAS/jC,KAAKyhC,MAAMtX,WAAanqB,KAAKmqB,WAAanqB,KAAKyhC,MAAMtX,WAAanqB,KAAKo3B,OAASp3B,KAAKyhC,MAAM9/B,WAEjS,IAAId,EACJ,OAAOxC,EAAEsB,EAAGjB,GAAIiB,EAAEH,UAAUyvB,YAAc,WACxC,IAAI/uB,EAAGb,EAAGzB,EAAGS,EAAGK,EAAGiB,EACnB,GAAIA,EAAIK,KAAKmqB,WAAanqB,KAAKgkC,wBAA0BhkC,KAAKikC,oBAAqB/jC,EAAIF,KAAKmM,gBAAiB,CAC3G,IAAKvO,EAAIkB,EAAEoB,GAAIb,EAAI,EAAGhB,EAAIsB,EAAEyB,OAAQ/C,EAAIgB,EAAGA,IAAKX,EAAIiB,EAAEN,GAAIzB,EAAEmR,YAAYrQ,GACxEiB,EAAI,CAACO,GAEP,OAAOP,GACNA,EAAEH,UAAUwkC,sBAAwB,WACrC,IAAIllC,EACJ,OAAOA,EAAIkB,KAAKmqB,WAAW+V,gBAAkBhgC,EAAE8iC,0BAA4B9iC,EAAEyiB,eAAoB3iB,KAAKyvB,gBAAgB3wB,EAAGkB,KAAKyhC,MAAMtX,WAAY,CAC9IsX,MAAOzhC,KAAKyhC,QACR1S,YACLpvB,EAAEH,UAAUykC,kBAAoB,WACjC,IAAInlC,EAAGoB,EAAGb,EAAGhB,EAAMsB,EAAGkB,EAAGuP,EAAGnS,EAAGJ,EAC/B,GAAI,OAASuS,EAAIpQ,KAAK8jC,YAAc1zB,EAAE6a,eAAY,EAAQ,MAAO,CAAC7iB,SAASi6B,eAAeriC,KAAKo3B,SAC/F,IAAKv2B,EAAI,GAAiCxB,EAAIa,EAAI,EAAG7B,GAAxCJ,EAAI+B,KAAKo3B,OAAO1f,MAAM,OAAwBtW,OAAQ/C,EAAI6B,EAAGb,IAAMa,EAAGrC,EAAII,EAAEoB,GAAIA,EAAI,IAAMP,EAAIlB,EAAE,MAAOiD,EAAE4B,KAAK3D,IAAUjB,EAAEuD,SAAYzB,EAAIyI,SAASi6B,eAAeriC,KAAKkkC,eAAermC,IAAKgD,EAAE4B,KAAK9C,IAC/M,OAAOkB,GACNlB,EAAEH,UAAU2M,cAAgB,WAC7B,IAAIrN,EAAGoB,EAAG7B,EAAGK,EAAGiB,EAAGkB,EAAGuP,EAAGnS,EAAGJ,EAE5B,IAAKa,KADLT,EAAI,GAAI4C,EAAIb,KAAKuJ,WACJ,GAAI1L,EAAIgD,EAAEnC,IAAKI,EAAIO,EAAEX,MAAQI,EAAEoP,UAAYvO,EAAI/B,EAAEkB,EAAEoP,SAAU7P,GAAKA,EAAE0Q,YAAYpP,GAAItB,EAAIsB,GAAKO,EAAI7B,EAAIsB,GAAIb,EAAEqlC,gBAAkBlmC,EAAEa,EAAEqlC,eAAiBtmC,GAAIiB,EAAE+P,OAEnK,IAAKnQ,KADL0R,EAAItR,EAAE+P,MACOhR,EAAIuS,EAAE1R,GAAIT,EAAES,GAAKb,EAEhC,GAAIS,OAAO6f,KAAKlgB,GAAGmD,OAEjB,IAAK1C,KADL,MAAQwB,IAAMA,EAAItC,EAAE,SACVK,EAAGJ,EAAII,EAAES,GAAIwB,EAAE2O,MAAMnQ,GAAKb,EAEtC,OAAOqC,GACNP,EAAEH,UAAUixB,uBAAyB,WACtC,IAAI3xB,EAAGoB,EAAG7B,EAAGK,EAAGiB,EAEhB,IAAKtB,KADLK,EAAIsB,KAAKuJ,WACI,GAAI5J,EAAIjB,EAAEL,IAAK6B,EAAIb,EAAEhB,KAAO6B,EAAEksB,aAAc,OAAOttB,EAAI,IAAMT,GAAKsB,EAAG/B,EAAEsC,EAAEksB,aAActtB,IACnG+B,EAAIX,EAAEkb,mBAAoBzb,EAAEH,UAAU0kC,eAAiB,SAAUplC,GAClE,OAAOkB,KAAK+jC,QAAQK,SAAWtlC,EAAIA,EAAEme,QAAQ,MAAOpc,IAAK/B,EAAIA,EAAEme,QAAQ,iBAAkB,MAAQpc,EAAI,OAAOoc,QAAQ,SAAUpc,EAAI,KAAKoc,QAAQ,SAAU,IAAMpc,IAAKb,KAAK+jC,QAAQM,SAAWrkC,KAAK+jC,QAAQO,qBAAuBxlC,EAAIA,EAAEme,QAAQ,MAAOpc,IAAK/B,GACzPa,EAzCyE,CA0C5EO,EAAE0uB,aACJ7wB,KAAKiC,MAAO,WACZ,IAAIlB,EAAI,SAAWylC,EAAMrkC,GACrB,SAAStC,IACPoC,KAAKF,YAAcykC,EAErB,IAAK,IAAIlmC,KAAK6B,EAAGb,EAAEtB,KAAKmC,EAAG7B,KAAOkmC,EAAKlmC,GAAK6B,EAAE7B,IAC9C,OAAOT,EAAE4B,UAAYU,EAAEV,UAAW+kC,EAAK/kC,UAAY,IAAI5B,EAAK2mC,EAAKroB,UAAYhc,EAAEV,UAAW+kC,GAE5FllC,EAAI,GAAGI,eACTS,EAAEskC,SAAW,SAAUnlC,GACrB,SAASzB,IACPA,EAAEse,UAAUpc,YAAY+C,MAAM7C,KAAM0I,WAAY1I,KAAKgrB,KAAOhrB,KAAKV,OAAQU,KAAK8jC,WAAa9jC,KAAK4R,QAAQkyB,WAE1G,IAAIzlC,EACJ,OAAOS,EAAElB,EAAGyB,GAAIzB,EAAE4B,UAAUyvB,YAAc,WACxC,IAAInwB,EAAGO,EAAGzB,EAAGc,EAAGiB,EAAGkB,EAAGuP,EAAGnS,EAAGJ,EAAGkS,EAC/B,IAAKlP,EAAI,GAAsDnC,GAAlDT,EAAIiC,EAAEqmB,YAAYI,aAAa3mB,KAAKykC,cAAoBrjC,OAAS,EAAGxD,EAAIyB,EAAI,EAAGM,EAAI1B,EAAEmD,OAAQzB,EAAIN,EAAGzB,IAAMyB,EAAG+Q,EAAInS,EAAEL,GAAIkB,EAAI,GAAI,IAAMlB,IAAMkB,EAAEulC,SAAU,GAAKzmC,IAAMc,IAAMI,EAAEslC,QAAS,GAAK/lC,EAAER,KAAOiB,EAAEwlC,mBAAoB,GAAKv0B,EAAI/P,KAAKsvB,4BAA4BpvB,EAAE0jC,UAAWxzB,EAAG,CAC5R0zB,WAAY9jC,KAAK8jC,WACjBC,QAASjlC,IACP+B,EAAE4B,KAAKI,MAAMhC,EAAGkP,EAAEgf,YAAalxB,EAAIuS,EACvC,OAAOvP,GACNjD,EAAE4B,UAAUilC,UAAY,WACzB,IAAI3lC,EAAGoB,EAAGb,EAAGzB,EAAGS,EAChB,IAAgCA,EAAI,GAAIS,EAAI,EAAGoB,GAA1CtC,EAAIoC,KAAKgrB,KAAKyZ,aAAkCrjC,OAAQlB,EAAIpB,EAAGA,KAAKO,EAAIzB,EAAEkB,IAAMsP,aAAa,eAAiB/P,EAAEoE,KAAKpD,GAC1H,OAAOhB,GACNA,EAAI,SAAWS,GAChB,MAAO,MAAMsD,KAAK,MAAQtD,EAAIA,EAAE6C,gBAAa,IAC5C/D,EAlBQ,CAmBXsC,EAAE0uB,aACJ7wB,KAAKiC,MAAO,WACZ,IAAIlB,EACFO,EACAzB,EACAS,EAAI,SAAWS,EAAGoB,GAChB,SAASb,IACPW,KAAKF,YAAchB,EAErB,IAAK,IAAIlB,KAAKsC,EAAGxB,EAAEX,KAAKmC,EAAGtC,KAAOkB,EAAElB,GAAKsC,EAAEtC,IAC3C,OAAOyB,EAAEG,UAAYU,EAAEV,UAAWV,EAAEU,UAAY,IAAIH,EAAKP,EAAEod,UAAYhc,EAAEV,UAAWV,GAEtFJ,EAAI,GAAGe,eACT7B,EAAIsC,EAAEqhB,YAAaliB,EAAIa,EAAEye,eAAgB7f,EAAIoB,EAAEyb,OAAOuO,IAAKhqB,EAAEwkC,UAAY,SAAUhmC,GACjF,SAASiB,IACPA,EAAEuc,UAAUpc,YAAY+C,MAAM7C,KAAM0I,WAAY1I,KAAK2kC,MAAQ3kC,KAAKV,OAAQU,KAAKuJ,WAAavJ,KAAK2kC,MAAMd,gBAEzG,OAAOxlC,EAAEsB,EAAGjB,GAAIiB,EAAEH,UAAUyvB,YAAc,WACxC,IAAInwB,EAAMJ,EAAGiB,EAAGkB,EAAGuP,EAAGnS,EAAGJ,EAAGkS,EAAGrQ,EAAGxB,EAClC,GAAyCD,EAAI,CAArCmK,SAASw8B,cAAc,UAAmB5kC,KAAK2kC,MAAMve,UAAYnoB,EAAEwE,KAAK7E,EAAE,QAAU8B,EAAI,OAAS7B,EAAIwB,EAAEW,KAAK2kC,MAAME,qBAAuBhnC,EAAEmtB,UAAO,EAAQ9sB,EAAI8B,KAAKsvB,4BAA4BpvB,EAAEskC,SAAUxkC,KAAK2kC,MAAM3Z,KAAM,CAClO8Y,WAAYpkC,IACVzB,EAAEwE,KAAKI,MAAM5E,EAAGC,EAAE6wB,YAAa/uB,KAAK8kC,gCAAkC7mC,EAAEwE,KAAK7E,EAAE,QAASoC,KAAKuJ,WAAWnI,OAAQ,OAAOnD,EAC3H,IAAK8R,EAAI7P,EAAEyb,OAAOiD,gBAAyB,QAAE1Q,QAASlO,KAAK2kC,MAAMI,UAAYjmC,EAAI,CAC/E0mB,IAAK,QACH9mB,EAAId,EAAE,CACRsQ,QAAS6B,EACTxG,WAAYzK,IACVa,EAAI,EAAGkB,EAAI5C,EAAEmD,OAAQP,EAAIlB,EAAGA,IAAKyQ,EAAInS,EAAE0B,GAAIjB,EAAEqQ,YAAYqB,GAC7D,MAAO,CAAC1R,IACPiB,EAAEH,UAAUixB,uBAAyB,SAAUvwB,GAChD,IAAI7B,EAAGK,EAAGiB,EAAGkB,EAAGuP,EAChB,OAAO/R,EAAI2B,KAAKuJ,WAAWrJ,GAAIkQ,EAAI/Q,EAAEhB,GAAG6P,QAAS,IAAMhO,GAAKF,KAAK2kC,MAAMI,UAAYrmC,EAAI,CACrF8mB,IAAK,QACH,sBAAwBnnB,IAAMwC,EAAIb,KAAK2kC,MAAMK,wBAAyBrlC,EAAIb,EAAE8rB,kBAAoB,IAAM9rB,EAAE8rB,kBAAoB,KAAO/pB,GAAIjD,EAAE,CAC3IsQ,QAASkC,EACTuR,UAAWhiB,EACX4J,WAAY7K,KAEbiB,EAAEH,UAAUslC,6BAA+B,WAC5C,MAAO,QAAQ1iC,KAAKpC,KAAK2kC,MAAMhjC,aAC9BhC,EA3BoE,CA4BvEO,EAAE0uB,aACJ7wB,KAAKiC,MAAO,WACZ,IAAIlB,EACFO,EACAzB,EAAI,SAAWkB,EAAGoB,GAChB,SAASb,IACPW,KAAKF,YAAchB,EAErB,IAAK,IAAIlB,KAAKsC,EAAG7B,EAAEN,KAAKmC,EAAGtC,KAAOkB,EAAElB,GAAKsC,EAAEtC,IAC3C,OAAOyB,EAAEG,UAAYU,EAAEV,UAAWV,EAAEU,UAAY,IAAIH,EAAKP,EAAEod,UAAYhc,EAAEV,UAAWV,GAEtFT,EAAI,GAAGoB,eACTX,EAAIoB,EAAE6c,MAAO1d,EAAIa,EAAEqhB,YAAarhB,EAAE0sB,aAAe,SAAUvuB,GACzD,SAASK,IACPA,EAAEwd,UAAUpc,YAAY+C,MAAM7C,KAAM0I,WAAY1I,KAAKuI,QAAUvI,KAAK4R,QAAQrJ,QAASvI,KAAKilC,aAAe,IAAI/kC,EAAEinB,aAAgBnnB,KAAKklC,YAAYllC,KAAKV,QAEvJ,IAAIK,EAAGkB,EAAGuP,EACV,OAAOxS,EAAEc,EAAGL,GAAIK,EAAEmuB,OAAS,SAAU/tB,GACnC,IAAIoB,EAAGtC,EACP,OAAqBA,EAAI,IAAIoC,KAAKlB,EAAG,CACnCyJ,QADKrI,EAAIb,EAAE,UAEPwtB,SAAUjvB,EAAEunC,OAAQjlC,GACzBxB,EAAEc,UAAU0lC,YAAc,SAAUpmC,GACrC,OAAOA,EAAEwd,UAAUtc,KAAKoI,eAAY,EAASpI,KAAKoI,SAAWpI,KAAKV,OAASR,GAC1EJ,EAAEc,UAAUqtB,OAAS,WACtB,IAAI/tB,EAAGlB,EAAGS,EAAGK,EAAGiB,EAAGkB,EAAGuP,EACtB,GAAIpQ,KAAK6uB,WAAa,GAAI7uB,KAAKolC,cAAgB/lC,EAAE,QAASW,KAAKoI,SAASge,UAAW,CACjF,IAEIvlB,EAAI,GAAI/B,EAAI,EAAGlB,GAFd+B,EAAIO,EAAEqmB,YAAYI,aAAa3mB,KAAKoI,SAASi9B,YAAa,CAC7D3e,QAAQ,KACetlB,OAAQxD,EAAIkB,EAAGA,IAAKJ,EAAIiB,EAAEb,GAAIsR,EAAIpQ,KAAKsvB,4BAA4BpvB,EAAEwkC,UAAWhmC,GAAImC,EAAE4B,KAAK,WAClH,IAAI3D,EAAGoB,EAAGb,EAAGzB,EACb,IAAuBA,EAAI,GAAIkB,EAAI,EAAGoB,GAAjCb,EAAI+Q,EAAE2e,YAAiC3tB,OAAQlB,EAAIpB,EAAGA,IAAKT,EAAIgB,EAAEP,GAAIlB,EAAE6E,KAAKzC,KAAKolC,cAAcr2B,YAAY1Q,IAChH,OAAOT,GACPG,KAAKiC,OACP,OAAOa,IAERnC,EAAEc,UAAU8lC,SAAW,WACxB,OAAO3lC,EAAEK,KAAKolC,cAAeplC,KAAKuI,UACjC7J,EAAEc,UAAU2lC,KAAO,WACpB,IAAIrmC,EACJ,IAAKA,EAAIkB,KAAKulC,gCAAiCvlC,KAAKuI,QAAQi9B,WAAYxlC,KAAKuI,QAAQ+D,YAAYtM,KAAKuI,QAAQi9B,WAC9G,OAAOxlC,KAAKuI,QAAQwG,YAAYjQ,GAAIkB,KAAKylC,WACxC/mC,EAAEc,UAAUimC,QAAU,WACvB,OAAOzlC,KAAKilC,aAAaliC,MAAMlC,EAAEb,KAAKuI,UAAWzJ,EAAE,SAAUA,GAC3D,OAAO,WACL,OAAOA,EAAEuxB,6BAFsC,CAIjDrwB,QACDtB,EAAEc,UAAU+lC,8BAAgC,WAC7C,IAAIzmC,EAAGoB,EAAGb,EAAGzB,EAAGS,EAAGK,EAAGiB,EAAGyQ,EAAGnS,EAAGJ,EAC/B,IAAKqC,EAAIkI,SAASs9B,yBAA6DrmC,EAAI,EAAGhB,GAA1C+R,EAAIpQ,KAAKolC,cAAc5kB,YAAyBpf,OAAQ/C,EAAIgB,EAAGA,IAAKM,EAAIyQ,EAAE/Q,GAAIa,EAAE6O,YAAYpP,EAAEmtB,WAAU,IACpJ,IAAelvB,EAAI,EAAGc,GAAjBT,EAAI4C,EAAEX,IAAiBkB,OAAQ1C,EAAId,EAAGA,IAAKkB,EAAIb,EAAEL,IAAKC,EAAImC,KAAKilC,aAAa/e,OAAOpnB,KAAOA,EAAEuN,WAAWs5B,aAAa9nC,EAAGiB,GAC5H,OAAOoB,GACNW,EAAI,SAAW/B,GAChB,OAAOA,EAAEqO,iBAAiB,0BACzBxN,EAAI,SAAWb,EAAGoB,GACnB,OAAOkQ,EAAEtR,EAAE4tB,aAAetc,EAAElQ,EAAEwsB,YAC7Btc,EAAI,SAAWtR,GAChB,OAAOA,EAAEme,QAAQ,UAAW,MAC3Bve,EA/C4C,CAgD/CwB,EAAE0uB,aACJ7wB,KAAKiC,MAAO,WACZ,IAAIlB,EACFO,EACAzB,EACAS,EACAK,EACAiB,EAAI,SAAWb,EAAGoB,GAChB,OAAO,WACL,OAAOpB,EAAE+D,MAAM3C,EAAGwI,aAGtB7H,EAAI,SAAW/B,EAAGoB,GAChB,SAASb,IACPW,KAAKF,YAAchB,EAErB,IAAK,IAAIlB,KAAKsC,EAAGkQ,EAAErS,KAAKmC,EAAGtC,KAAOkB,EAAElB,GAAKsC,EAAEtC,IAC3C,OAAOyB,EAAEG,UAAYU,EAAEV,UAAWV,EAAEU,UAAY,IAAIH,EAAKP,EAAEod,UAAYhc,EAAEV,UAAWV,GAEtFsR,EAAI,GAAG3Q,eACT7B,EAAIsC,EAAE0f,2BAA4BvhB,EAAI6B,EAAEgU,YAAaxV,EAAIwB,EAAEigB,qBAAsB9gB,EAAIa,EAAE6c,MAAOje,EAAIoB,EAAEyiB,eAAeC,mBAAoB1iB,EAAE0lC,sBAAwB,SAAUx1B,GACzK,SAASnS,EAAEoB,EAAGzB,GACZoC,KAAKuI,QAAUlJ,EAAGW,KAAK6lC,YAAcjoC,EAAGoC,KAAK8lC,mBAAqBnmC,EAAEK,KAAK8lC,mBAAoB9lC,MAAOA,KAAK+lC,QAAUpmC,EAAEK,KAAK+lC,QAAS/lC,MAAOA,KAAKgmC,SAAWrmC,EAAEK,KAAKgmC,SAAUhmC,MAAOA,KAAKimC,aAAe,IAAI/lC,EAAE0sB,aAAa5sB,KAAK6lC,YAAYz9B,SAAU,CAClPG,QAASvI,KAAKuI,UACZlK,EAAE,QAAS,CACbkhB,UAAWvf,KAAKuI,QAChBkX,aAAczf,KAAKgmC,WACjB3nC,EAAE,OAAQ,CACZkhB,UAAWvf,KAAKuI,QAChBkX,aAAczf,KAAK+lC,UACjB1nC,EAAE,QAAS,CACbkhB,UAAWvf,KAAKuI,QAChBiX,iBAAkB,2BAClBnR,gBAAgB,IACdhQ,EAAE,YAAa,CACjBkhB,UAAWvf,KAAKuI,QAChBiX,iBAAkB1gB,EAClB2gB,aAAczf,KAAK8lC,qBACjBznC,EAAE,QAAS,CACbkhB,UAAWvf,KAAKuI,QAChBiX,iBAAkB,IAAM1gB,EACxBuP,gBAAgB,IAGpB,OAAOxN,EAAE5C,EAAGmS,GAAInS,EAAEuB,UAAUwmC,SAAW,WACrC,IAAIlnC,EAAGoB,EAAGb,EACV,OAAOP,EAAI,SAAUA,GACnB,OAAO,WACL,IAAIoB,EACJ,OAAOpB,EAAEonC,aAAU,GAAUpnC,EAAEonC,SAAU,EAAI,OAAShmC,EAAIpB,EAAEwM,WAAa,mBAAqBpL,EAAEimC,8BAAgCjmC,EAAEimC,qCAAkC,IAH7J,CAKTnmC,MAAO,OAASE,EAAI,OAASb,EAAIW,KAAKomC,aAAe/mC,EAAE8Q,KAAKrR,QAAK,GAAUoB,EAAIpB,KAChFb,EAAEuB,UAAUumC,QAAU,WACvB,OAAO/lC,KAAKomC,YAAc,IAAIt1B,QAAQ,SAAUhS,GAC9C,OAAO,SAAUoB,GACf,OAAOb,GAAE,WACP,IAAIA,EACJ,OAAOX,EAAEI,EAAEyJ,WAAazJ,EAAEonC,QAAU,KAAM,OAAS7mC,EAAIP,EAAEwM,WAAa,mBAAqBjM,EAAEgnC,8BAAgChnC,EAAEgnC,gCAAiCvnC,EAAEsnC,YAAc,KAAMlmC,QAJtJ,CAOpCF,QACD/B,EAAEuB,UAAUsmC,mBAAqB,SAAUhnC,EAAGoB,GAC/C,IAAIb,EAAGhB,EAAGK,EACV,OAAOW,EAAIW,KAAKsmC,yBAAyBpmC,GAAI7B,EAAI,MAAQT,EAAEkB,EAAE4E,OAAQ,CACnE8b,iBAAkB,eAChB,OAAS9gB,EAAIsB,KAAKsL,WAAa,mBAAqB5M,EAAE6nC,yCAA2C7nC,EAAE6nC,yCAAyClnC,EAAG,CACjJgiC,YAAahjC,SACV,GACJJ,EAAEuB,UAAUgnC,uBAAyB,WACtC,OAAOxmC,KAAKymC,sBAAwBzmC,KAAKimC,aAAab,cAAgBplC,KAAKuI,SAC1EtK,EAAEuB,UAAUqtB,OAAS,WACtB,IAAI/tB,EAAGoB,EAAGb,EACV,OAAOW,KAAK0mC,WAAa1mC,KAAK6lC,YAAYa,WAAa1mC,KAAKimC,aAAaf,YAAYllC,KAAK6lC,YAAYz9B,UAAWpI,KAAKimC,aAAapZ,SAAU7sB,KAAK0mC,SAAW1mC,KAAK6lC,YAAYa,UAAW1mC,KAAK2mC,wBAA0B3mC,KAAKimC,aAAaX,aAAe,OAASxmC,EAAIkB,KAAKsL,WAAa,mBAAqBxM,EAAE8nC,2CAA6C9nC,EAAE8nC,4CAA6C5mC,KAAKimC,aAAad,OAAQ,OAASjlC,EAAIF,KAAKsL,WAAa,mBAAqBpL,EAAE2mC,0CAA4C3mC,EAAE2mC,4CAA6C,OAASxnC,EAAIW,KAAKsL,WAAa,mBAAqBjM,EAAEynC,+BAAiCznC,EAAEynC,sCAAmC,GACjrB7oC,EAAEuB,UAAUunC,sBAAwB,SAAUjoC,GAC/C,OAAOkB,KAAKovB,wBAAwBtwB,GAAIkB,KAAK6sB,UAC5C5uB,EAAEuB,UAAU4vB,wBAA0B,SAAUtwB,GACjD,OAAOkB,KAAKimC,aAAa7W,wBAAwBtwB,IAChDb,EAAEuB,UAAUwwB,qBAAuB,WACpC,OAAOhwB,KAAKimC,aAAajW,wBACxB/xB,EAAEuB,UAAU2wB,kBAAoB,WACjC,OAAOnwB,KAAKimC,aAAa9V,qBACxBlyB,EAAEuB,UAAU4wB,mBAAqB,WAClC,OAAOpwB,KAAKimC,aAAa7V,sBACxBnyB,EAAEuB,UAAUwnC,iBAAmB,WAChC,OAAOhnC,KAAKimC,aAAa5V,6BACxBpyB,EAAEuB,UAAUinC,oBAAsB,WACnC,OAAO,MAAQzmC,KAAKinC,kBACnBhpC,EAAEuB,UAAU0nC,qCAAuC,SAAUpoC,EAAGO,GACjE,IAAIzB,EAAGS,EAAGK,EACV,IAAK,OAASA,EAAIsB,KAAKinC,kBAAoBvoC,EAAEyrB,gBAAa,KAAYrrB,IAAMT,EAAI2B,KAAKimC,aAAanW,qBAAqBhxB,IAAK,OAAOkB,KAAKmnC,4BAA6BvpC,EAAIoC,KAAK6lC,YAAYz9B,SAASg/B,gCAAgCtoC,GAAIkB,KAAKinC,iBAAmB,IAAI/mC,EAAEm/B,2BAA2BzhC,EAAGS,EAAG2B,KAAKuI,QAASlJ,GAAIW,KAAKinC,iBAAiB37B,SAAWtL,MACxV/B,EAAEuB,UAAU2nC,0BAA4B,WACzC,IAAIroC,EACJ,OAAO,OAASA,EAAIkB,KAAKinC,kBAAoBnoC,EAAEshC,iBAAc,GAC5DniC,EAAEuB,UAAU8gC,6BAA+B,WAC5C,OAAOtgC,KAAKinC,iBAAmB,KAAMjnC,KAAK6sB,UACzC5uB,EAAEuB,UAAUghC,0DAA4D,SAAU1hC,EAAGoB,GACtF,IAAIb,EACJ,OAAO,OAASA,EAAIW,KAAKsL,WAAa,mBAAqBjM,EAAEgoC,2CAA6ChoC,EAAEgoC,0CAA0CnnC,GAAIF,KAAK6lC,YAAYyB,8BAA8BxoC,EAAGoB,IAC3MjC,EAAEuB,UAAUihC,yDAA2D,SAAU3hC,EAAGoB,GACrF,IAAIb,EACJ,OAAO,OAASA,EAAIW,KAAKsL,WAAa,mBAAqBjM,EAAEgoC,2CAA6ChoC,EAAEgoC,0CAA0CnnC,GAAIF,KAAK6lC,YAAY0B,6BAA6BzoC,EAAGoB,IAC1MjC,EAAEuB,UAAU8hC,8CAAgD,SAAUxiC,GACvE,IAAIoB,EACJ,OAAO,OAASA,EAAIF,KAAKsL,WAAa,mBAAqBpL,EAAEsnC,mDAAqDtnC,EAAEsnC,mDAAmD1oC,QAAK,GAC3Kb,EAAEuB,UAAU+hC,gDAAkD,SAAUziC,GACzE,IAAIoB,EACJ,OAAO,OAASA,EAAIF,KAAKsL,WAAa,mBAAqBpL,EAAEunC,qDAAuDvnC,EAAEunC,qDAAqD3oC,QAAK,GAC/Kb,EAAEuB,UAAUmnC,oBAAsB,WACnC,OAAQ3mC,KAAKymC,uBACZxoC,EAAEuB,UAAU8mC,yBAA2B,SAAUxnC,GAClD,OAAOkB,KAAK6lC,YAAYz9B,SAASs/B,kBAAkB7lC,SAAS/C,EAAE4iB,QAAQihB,OAAQ,MAC7E1kC,EA3F4J,CA4F/JiC,EAAE0b,cACJ7d,KAAKiC,MAAO,WACZ,IAAIlB,EACFO,EACAzB,EACAS,EAAI,SAAWS,EAAGoB,GAChB,OAAO,WACL,OAAOpB,EAAE+D,MAAM3C,EAAGwI,aAGtBhK,EAAI,SAAWI,EAAGoB,GAChB,SAASb,IACPW,KAAKF,YAAchB,EAErB,IAAK,IAAIlB,KAAKsC,EAAGP,EAAE5B,KAAKmC,EAAGtC,KAAOkB,EAAElB,GAAKsC,EAAEtC,IAC3C,OAAOyB,EAAEG,UAAYU,EAAEV,UAAWV,EAAEU,UAAY,IAAIH,EAAKP,EAAEod,UAAYhc,EAAEV,UAAWV,GAEtFa,EAAI,GAAGF,eACTJ,EAAIa,EAAEgU,YAAatW,EAAIsC,EAAE4f,aAAchhB,EAAIoB,EAAE0f,2BAA4B1f,EAAEynC,kBAAoB,SAAUznC,GACvG,SAASP,EAAEb,GACTkB,KAAKuI,QAAUzJ,EAAGkB,KAAK4nC,sBAAwBvpC,EAAE2B,KAAK4nC,sBAAuB5nC,MAAOA,KAAK6nC,qBAAuBxpC,EAAE2B,KAAK6nC,qBAAsB7nC,MAAOA,KAAK8nC,wBAA0BzpC,EAAE2B,KAAK8nC,wBAAyB9nC,MAAOA,KAAK4/B,qBAAuBvhC,EAAE2B,KAAK4/B,qBAAsB5/B,MAAOA,KAAKuJ,WAAa,GAAIvJ,KAAK+nC,QAAU,GAAI/nC,KAAKgoC,oBAAqB3oC,EAAE,YAAa,CAC1WkgB,UAAWvf,KAAKuI,QAChBiX,iBAAkB3e,EAClB4e,aAAczf,KAAK4/B,uBACjBvgC,EAAE,YAAa,CACjBkgB,UAAWvf,KAAKuI,QAChBiX,iBAAkBvhB,EAClBwhB,aAAczf,KAAK8nC,0BACjBzoC,EAAE,QAAS,CACbkgB,UAAWvf,KAAKuI,QAChBiX,iBAAkB1M,EAClBzE,gBAAgB,IACdhP,EAAE,QAAS,CACbkgB,UAAWvf,KAAKuI,QAChBiX,iBAAkB3hB,EAClB4hB,aAAczf,KAAK6nC,uBACjBxoC,EAAE,UAAW,CACfkgB,UAAWvf,KAAKuI,QAChBiX,iBAAkBzP,EAClB0P,aAAczf,KAAK4nC,wBAGvB,IAAI/mC,EAAM5C,EAAGJ,EAAGkS,EAAGrQ,EAAGxB,EAAGuU,EAAG1S,EAAG/B,EAAG8U,EAClC,OAAOpU,EAAEiB,EAAGO,GAA2D4S,GAAvD7U,EAAI,yBAA2D,MAAlC4C,EAAI,uBAAwCnB,EAAI,sBAA8B,qBAAsB7B,EAAI6B,EAAI,sBAAuBqQ,EAAIrQ,EAAI,qBAAsBC,EAAEH,UAAUogC,qBAAuB,SAAU9gC,EAAGoB,GAC5P,IAAIb,EAAGzB,EAAGS,EACV,OAAO,OAAST,EAAIoC,KAAKsL,WAAa1N,EAAEqqC,wBAAyBnpC,EAAEuP,iBAAkBhP,EAAInB,EAAEgC,GAAIF,KAAKkoC,UAAU7oC,GAAKW,KAAKmoC,aAAa9oC,GAAK,OAAShB,EAAI2B,KAAKsL,UAAYjN,EAAE+pC,uBAAuB/oC,QAAK,GACrMM,EAAEH,UAAUsoC,wBAA0B,SAAUhpC,EAAGoB,GACpD,IAAIb,EAAGzB,EAAGS,EACV,OAAO,OAAST,EAAIoC,KAAKsL,WAAa1N,EAAEqqC,wBAAyBnpC,EAAEuP,iBAAkBhP,EAAIoT,EAAEvS,GAAIF,KAAKkoC,UAAU7oC,GAAKW,KAAKmoC,aAAa9oC,GAAK,OAAShB,EAAI2B,KAAKsL,WAAajN,EAAEgqC,0BAA0BhpC,GAAIW,KAAKsoC,2BAC7M3oC,EAAEH,UAAUqoC,qBAAuB,SAAU3nC,EAAGb,GACjD,IAAIzB,EACJ,OAAOA,EAAIkB,EAAEO,EAAG,CACdmgB,iBAAkB9f,IACwBM,KAApCX,EAAE6K,aAAa,qBAA6BnM,KAAKiC,KAAMpC,IAC9D+B,EAAEH,UAAUooC,sBAAwB,SAAU9oC,EAAGoB,GAClD,IAAIb,EAAGzB,EACP,OAAO,KAAOkB,EAAEw1B,UAAYx1B,EAAEuP,iBAAkBhP,EAAIa,EAAEgK,aAAa,QAAStM,EAAIoC,KAAKkoC,UAAU7oC,GAAIW,KAAKsO,aAAa1Q,IAAK,KAAOkB,EAAEw1B,SAAWx1B,EAAEuP,iBAAkBrO,KAAKuoC,mBAAgB,GACtL5oC,EAAEH,UAAUgpC,cAAgB,SAAU1pC,GACvC,OAAOkB,KAAK+nC,QAAUjpC,EAAGkB,KAAKyoC,wBAC7B9oC,EAAEH,UAAUipC,qBAAuB,WACpC,OAAOzoC,KAAK0oC,iBAAiB,SAAU5pC,GACrC,OAAO,SAAUoB,EAAGb,GAClB,OAAOa,EAAEyI,UAA4B,IAAjB7J,EAAEipC,QAAQ1oC,IAFL,CAI3BW,QACDL,EAAEH,UAAUkpC,iBAAmB,SAAU5pC,GAC1C,IAAIoB,EAAGb,EAAGzB,EAAGS,EAAGK,EAChB,IAA2CA,EAAI,GAAIW,EAAI,EAAGzB,GAArDS,EAAI2B,KAAKuI,QAAQ4E,iBAAiBtM,IAAyBO,OAAQxD,EAAIyB,EAAGA,IAAKa,EAAI7B,EAAEgB,GAAIX,EAAE+D,KAAK3D,EAAEoB,EAAGhC,EAAEgC,KAC5G,OAAOxB,GACNiB,EAAEH,UAAUmpC,iBAAmB,SAAU7pC,GAC1C,OAAOkB,KAAKuJ,WAAazK,EAAGkB,KAAKsoC,2BAChC3oC,EAAEH,UAAU8oC,wBAA0B,WACvC,OAAOtoC,KAAK4oC,oBAAoB,SAAU9pC,GACxC,OAAO,SAAUoB,EAAGb,GAClB,OAAOa,EAAEyI,UAA+B,IAApB7J,EAAEyK,WAAWlK,GAAWP,EAAEyK,WAAWlK,IAAMP,EAAE+pC,gBAAgBxpC,IAAMa,EAAEoO,aAAa,mBAAoB,IAAKpO,EAAE0hB,UAAUnS,IAAI,iBAAmBvP,EAAEsO,gBAAgB,oBAAqBtO,EAAE0hB,UAAUsE,OAAO,iBAFhM,CAI9BlmB,QACDL,EAAEH,UAAUopC,oBAAsB,SAAU9pC,GAC7C,IAAIoB,EAAGb,EAAGzB,EAAGS,EAAGK,EAChB,IAA2CA,EAAI,GAAIW,EAAI,EAAGzB,GAArDS,EAAI2B,KAAKuI,QAAQ4E,iBAAiBlP,IAAyBmD,OAAQxD,EAAIyB,EAAGA,IAAKa,EAAI7B,EAAEgB,GAAIX,EAAE+D,KAAK3D,EAAEoB,EAAGuS,EAAEvS,KAC5G,OAAOxB,GACNiB,EAAEH,UAAUspC,qBAAuB,SAAUhqC,GAC9C,IAAIoB,EAAM7B,EAAGK,EAAGiB,EAAGkB,EAAGuP,EACtB,IAAKzQ,EAAI4K,KAAKC,UAAU1L,EAAEuS,QAA+D3S,EAAI,EAAGmC,GAA7DuP,EAAIpQ,KAAKuI,QAAQ4E,iBAAiB,oBAAiC/L,OAAQP,EAAInC,EAAGA,IAAK,GAAcL,GAAV6B,EAAIkQ,EAAE1R,IAAUwL,aAAa,iBAAiBwN,MAAM,KAAUnN,KAAKC,UAAUnM,EAAEgT,UAAe1R,EAAG,OAAO/B,EAAE,YAAa,CACnP2hB,UAAWrf,KACT,EACJ,OAAO,GACNP,EAAEH,UAAUqpC,gBAAkB,SAAU/pC,GACzC,IAAIoB,EACJ,OAAQA,EAAIF,KAAKkoC,UAAUppC,IAAMoB,EAAEkO,aAAa,yBAAsB,GACrEzO,EAAEH,UAAU2oC,aAAe,SAAUrpC,GACtC,OAAOkB,KAAK6oC,gBAAgB/pC,GAAKkB,KAAKuoC,aAAevoC,KAAK+oC,WAAWjqC,IACpEa,EAAEH,UAAUupC,WAAa,SAAUjqC,GACpC,IAAIoB,EAAMtC,EAAGS,EAAGK,EAAGiB,EAAGkB,EAAGuP,EAAGnS,EAAGJ,EAC/B,IAAKmC,KAAKuoC,aAAc,OAAS1nC,EAAIb,KAAKsL,WAAazK,EAAEmoC,yBAAyBprC,EAAIoC,KAAKkoC,UAAUppC,IAAMwP,aAAa,mBAAoB,IAAK1Q,EAAEgkB,UAAUnS,IAAI,eAA2DpR,EAAI,EAAGsB,GAAlDyQ,EAAIxS,EAAEuP,iBAAiB,oBAAiC/L,OAAQzB,EAAItB,EAAGA,IAAS+R,EAAE/R,GAAMmQ,gBAAgB,YACzR,OAAQtO,EAAIuS,EAAE7U,MAAQc,EAAIV,EAAEJ,EAAGkB,MAAQJ,EAAEG,MAAQ,OAASZ,EAAI+B,KAAKuJ,WAAWrJ,IAAMjC,EAAI,GAAIS,EAAEuqC,UAAW,OAASprC,EAAImC,KAAKsL,UAAYzN,EAAEqrC,qBAAqBpqC,QAAK,GAClKa,EAAEH,UAAU8O,aAAe,SAAUxP,GACtC,IAAIoB,EAAGb,EAAGzB,EACV,OAAOsC,EAAIuS,EAAE3T,IAAIO,EAAIrB,EAAEc,EAAGoB,IAAMipC,eAAiB9pC,EAAE+pC,iBAAmB/pC,EAAEiP,aAAa,qBAAsB,IAAKjP,EAAEuiB,UAAUnS,IAAI,iBAAkBpQ,EAAEsP,UAAY,OAAS/Q,EAAIoC,KAAKsL,WAAa1N,EAAEyrC,0BAA0BnpC,EAAGb,EAAER,OAAQmB,KAAKuoC,eAC5O5oC,EAAEH,UAAUgP,gBAAkB,SAAU1P,GACzC,IAAIoB,EAAGb,EACP,OAAOa,EAAIuS,EAAE3T,GAAI,OAASO,EAAIW,KAAKsL,WAAajM,EAAEiqC,0BAA0BppC,GAAIF,KAAKuoC,cACpF5oC,EAAEH,UAAU+oC,WAAa,WAC1B,IAAIzpC,EAAGoB,EACP,OAAQpB,EAAIkB,KAAKuI,QAAQF,cA7D4F3I,0CA6DvEZ,EAAE0P,gBAAgB,oBAAqB1P,EAAE8iB,UAAUsE,OAAO,eAAgBlmB,KAAKgoC,oBAAqB,OAAS9nC,EAAIF,KAAKsL,UAAYpL,EAAEqpC,qBAAqBxpC,EAAEjB,SAAM,QAAU,GACxNa,EAAEH,UAAUwoC,kBAAoB,WACjC,IAAIlpC,EAAGoB,EAAGb,EAAGzB,EAAGS,EAChB,IAA2CA,EAAI,GAAIS,EAAI,EAAGO,GAArDzB,EAAIoC,KAAKuI,QAAQ4E,iBAAiB4C,IAAyB3O,OAAQ/B,EAAIP,EAAGA,KAAKoB,EAAItC,EAAEkB,IAAMwP,aAAa,WAAY,YAAapO,EAAEsO,gBAAgB,sBAAuBnQ,EAAEoE,KAAKvC,EAAE0hB,UAAUsE,OAAO,kBACzM,OAAO7nB,GACNsB,EAAEH,UAAU0oC,UAAY,SAAUppC,GACnC,OAAOkB,KAAKuI,QAAQF,cAAc,qBAAuBvJ,EAAI,MAC5Dd,EAAI,SAAWc,EAAGoB,GACnB,OAAO,MAAQA,IAAMA,EAAIuS,EAAE3T,IAAKA,EAAEuJ,cAAc,2BAA6BnI,EAAI,OAChFhC,EAAI,SAAWY,GAChB,OAAOA,EAAEoL,aAAa,qBACrBuI,EAAI,SAAW3T,GAChB,IAAIoB,EACJ,OAAO,OAASA,EAAIpB,EAAEoL,aAAa,wBAA0BhK,EAAIpB,EAAEoL,aAAa,+BAC/EnK,EAAI,SAAWjB,GAChB,OAAOA,EAAEoL,aAAa,qBACrBvK,EAtG0F,CAuG7FO,EAAE0b,cACJ7d,KAAKiC,MAAO,WACZ,IAAIlB,EAAI,SAAW0qC,EAAMtpC,GACrB,SAAStC,IACPoC,KAAKF,YAAc0pC,EAErB,IAAK,IAAInrC,KAAK6B,EAAGb,EAAEtB,KAAKmC,EAAG7B,KAAOmrC,EAAKnrC,GAAK6B,EAAE7B,IAC9C,OAAOT,EAAE4B,UAAYU,EAAEV,UAAWgqC,EAAKhqC,UAAY,IAAI5B,EAAK4rC,EAAKttB,UAAYhc,EAAEV,UAAWgqC,GAE5FnqC,EAAI,GAAGI,eACTS,EAAEupC,sBAAwB,SAAUvpC,GAClC,SAASb,EAAEP,GACTkB,KAAKsJ,IAAMxK,EAEb,OAAOA,EAAEO,EAAGa,GAAIb,EAAEG,UAAUwoB,QAAU,SAAUlpB,GAC9C,IAAIoB,EACJ,OAAOA,EAAI,IAAIwpC,OAAWxX,OAAS,SAAU7yB,GAC3C,OAAO,WACL,OAAOa,EAAEwjC,MAAQrkC,EAAEqkC,MAAQxjC,EAAEypC,aAAczpC,EAAEghC,OAAS7hC,EAAE6hC,OAAShhC,EAAE0pC,cAAe9qC,GAAE,EAAIoB,IAFzD,CAIjCF,MAAOE,EAAE+xB,QAAU,WACnB,OAAOnzB,GAAE,IACRoB,EAAEijC,IAAMnjC,KAAKsJ,KACfjK,EAbqB,CAcxBa,EAAEqnB,YACJxpB,KAAKiC,MAAO,WACZ,IAAIlB,EAAI,SAAW+qC,EAAM3pC,GACrB,OAAO,WACL,OAAO2pC,EAAKhnC,MAAM3C,EAAGwI,aAGzBrJ,EAAI,SAAWP,EAAGoB,GAChB,SAASb,IACPW,KAAKF,YAAchB,EAErB,IAAK,IAAIT,KAAK6B,EAAGtC,EAAEG,KAAKmC,EAAG7B,KAAOS,EAAET,GAAK6B,EAAE7B,IAC3C,OAAOgB,EAAEG,UAAYU,EAAEV,UAAWV,EAAEU,UAAY,IAAIH,EAAKP,EAAEod,UAAYhc,EAAEV,UAAWV,GAEtFlB,EAAI,GAAG6B,eACTS,EAAE4pC,WAAa,SAAUlsC,GACvB,SAASS,EAAEgB,GACT,MAAQA,IAAMA,EAAI,IAAKW,KAAK+pC,YAAcjrC,EAAEkB,KAAK+pC,YAAa/pC,MAAO3B,EAAE6d,UAAUpc,YAAY+C,MAAM7C,KAAM0I,WAAY1I,KAAKuJ,WAAarJ,EAAE2lB,KAAKjJ,IAAIvd,GAAIW,KAAKgqC,sBAE7J,OAAO3qC,EAAEhB,EAAGT,GAAIS,EAAE4rC,mBAAqB,8BAA+B5rC,EAAE6rC,kBAAoB,SAAUprC,GACpG,IAAIoB,EACJ,OAAsCA,EAAI,IAAIF,KAAnCA,KAAKmqC,kBAAkBrrC,KAAuBsrC,QAAQtrC,GAAIoB,GACpE7B,EAAE8rC,kBAAoB,SAAUrrC,GACjC,OAAO,IAAIoB,EAAE2lB,KAAK,CAChBrc,SAAU1K,EAAEX,KACZksC,SAAUvrC,EAAEkI,KACZsjC,YAAaxrC,EAAE0J,QAEhBnK,EAAE+d,SAAW,SAAUtd,GACxB,OAAO,IAAIkB,KAAKlB,IACfT,EAAEmB,UAAU0K,aAAe,SAAUpL,GACtC,OAAOkB,KAAKuJ,WAAW9K,IAAIK,IAC1BT,EAAEmB,UAAU4O,aAAe,SAAUtP,GACtC,OAAOkB,KAAKuJ,WAAWgG,IAAIzQ,IAC1BT,EAAEmB,UAAUqkC,cAAgB,WAC7B,OAAO7jC,KAAKuJ,WAAW+c,YACtBjoB,EAAEmB,UAAU+qC,cAAgB,SAAUzrC,GACvC,IAAIoB,EAAGb,EAAGzB,EACV,OAAO,MAAQkB,IAAMA,EAAI,IAAKoB,EAAIF,KAAKuJ,WAAW0c,MAAMnnB,GAAIkB,KAAKuJ,WAAW+S,UAAUpc,QAAK,GAAUF,KAAKuJ,WAAarJ,EAAGF,KAAKgqC,sBAAuB,OAAS3qC,EAAIW,KAAKijC,kBAAoB,mBAAqB5jC,EAAEskC,+BAAiCtkC,EAAEskC,8BAA8B3jC,MAAO,OAASpC,EAAIoC,KAAKsL,WAAa,mBAAqB1N,EAAE+lC,8BAAgC/lC,EAAE+lC,8BAA8B3jC,WAAQ,IACxZ3B,EAAEmB,UAAUwqC,oBAAsB,WACnC,OAAOhqC,KAAKkgC,gBAAkBlgC,KAAKwqC,kBAAe,GACjDnsC,EAAEmB,UAAUyiC,UAAY,WACzB,OAAO,MAAQjiC,KAAK4G,QAAU5G,KAAKsjC,UAAYtjC,KAAK4hC,YACnDvjC,EAAEmB,UAAU0gC,cAAgB,WAC7B,OAAOlgC,KAAKuJ,WAAWgG,IAAI,eAAiBvP,KAAKuJ,WAAW9K,IAAI,eAAiBuB,KAAKF,YAAYmqC,mBAAmB7nC,KAAKpC,KAAK0iC,mBAC9HrkC,EAAEmB,UAAU8iC,QAAU,WACvB,OAAOtiC,KAAK8hC,aAAe,UAAY9hC,KAAKkgC,gBAAkB,UAAY,QACzE7hC,EAAEmB,UAAU8jC,OAAS,WACtB,OAAOtjC,KAAKuJ,WAAW9K,IAAI,QAC1BJ,EAAEmB,UAAUoiC,QAAU,WACvB,OAAO5hC,KAAKuJ,WAAW9K,IAAI,SAC1BJ,EAAEmB,UAAUqhC,YAAc,WAC3B,IAAI/hC,EACJ,OAAO,OAASA,EAAIkB,KAAKuJ,WAAW9K,IAAI,aAAeK,EAAI,IAC1DT,EAAEmB,UAAUirC,YAAc,WAC3B,OAAOzqC,KAAKuJ,WAAW9K,IAAI,aAC1BJ,EAAEmB,UAAUshC,qBAAuB,WACpC,IAAIhiC,EACJ,MAA4C,iBAArCA,EAAIkB,KAAKuJ,WAAW9K,IAAI,aAAoCyB,EAAEyb,OAAO4P,SAASG,UAAU5sB,GAAK,IACnGT,EAAEmB,UAAU+iC,aAAe,WAC5B,IAAIzjC,EACJ,OAAO,OAASA,EAAIkB,KAAK6gC,cAAcj/B,MAAM,aAAe9C,EAAE,GAAG+a,mBAAgB,GAChFxb,EAAEmB,UAAUkjC,eAAiB,WAC9B,OAAO1iC,KAAKuJ,WAAW9K,IAAI,gBAC1BJ,EAAEmB,UAAUsiC,WAAa,WAC1B,OAAO9hC,KAAKuJ,WAAWgG,IAAI,YAC1BlR,EAAEmB,UAAUuiC,WAAa,WAC1B,OAAO/hC,KAAKuJ,WAAW9K,IAAI,YAC1BJ,EAAEmB,UAAUgkC,SAAW,WACxB,OAAOxjC,KAAKuJ,WAAW9K,IAAI,UAC1BJ,EAAEmB,UAAUikC,UAAY,WACzB,OAAOzjC,KAAKuJ,WAAW9K,IAAI,WAC1BJ,EAAEmB,UAAUkrC,QAAU,WACvB,OAAO1qC,KAAK4G,MACXvI,EAAEmB,UAAU4qC,QAAU,SAAUtrC,GACjC,OAAOkB,KAAK4G,KAAO9H,EAAGkB,KAAKkgC,gBAAkBlgC,KAAK2qC,mBAAgB,GACjEtsC,EAAEmB,UAAUuqC,YAAc,WAC3B,OAAO/pC,KAAK4qC,uBAAwB5qC,KAAK4G,KAAO,MAC/CvI,EAAEmB,UAAU2iC,kBAAoB,WACjC,IAAIrjC,EACJ,OAAO,OAASA,EAAIkB,KAAK6qC,gBAAkB/rC,EAAI,GAC9CT,EAAEmB,UAAUsrC,kBAAoB,SAAUhsC,GAC3C,IAAIoB,EACJ,OAAOF,KAAK6qC,iBAAmB/rC,GAAKkB,KAAK6qC,eAAiB/rC,EAAG,OAASoB,EAAIF,KAAKwhC,yBAA2B,mBAAqBthC,EAAE6iC,kCAAoC7iC,EAAE6iC,kCAAkC/iC,WAAQ,QAAU,GAC1N3B,EAAEmB,UAAUsL,OAAS,WACtB,OAAO9K,KAAK6jC,iBACXxlC,EAAEmB,UAAUqd,YAAc,WAC3B,MAAO,CAACxe,EAAE6d,UAAUW,YAAYha,MAAM7C,KAAM0I,WAAY1I,KAAKuJ,WAAWsT,cAAe7c,KAAKujC,iBAAiBthC,KAAK,MACjH5D,EAAEmB,UAAU+jC,cAAgB,WAC7B,OAAOvjC,KAAK+qC,YAAc/qC,KAAKgrC,eAC9B3sC,EAAEmB,UAAUyrC,cAAgB,SAAUnsC,GACvC,IAAIoB,EAAGb,EACP,OAAOP,IAAMkB,KAAKujC,iBAAmBvjC,KAAK+qC,WAAajsC,EAAG,OAASoB,EAAIF,KAAKijC,kBAAoB,mBAAqB/iC,EAAEyjC,+BAAiCzjC,EAAEyjC,8BAA8B3jC,MAAO,OAASX,EAAIW,KAAKsL,WAAa,mBAAqBjM,EAAE6rC,8BAAgC7rC,EAAE6rC,8BAA8BlrC,WAAQ,QAAU,GACtU3B,EAAEmB,UAAUgrC,WAAa,WAC1B,OAAOxqC,KAAKmrC,QAAQnrC,KAAKsjC,SAAUtjC,KAAK+pC,cACvC1rC,EAAEmB,UAAUmrC,YAAc,WAC3B,OAAO3qC,KAAK4G,MAAQ5G,KAAKorC,cAAgB7zB,IAAI8zB,gBAAgBrrC,KAAK4G,MAAO5G,KAAKmrC,QAAQnrC,KAAKorC,qBAAkB,GAC5G/sC,EAAEmB,UAAUorC,qBAAuB,WACpC,OAAO5qC,KAAKorC,eAAiB7zB,IAAI+zB,gBAAgBtrC,KAAKorC,eAAgBprC,KAAKorC,cAAgB,WAAQ,GAClG/sC,EAAEmB,UAAU2rC,QAAU,SAAUrsC,EAAGO,GAEpC,OAAOP,GAAKA,IAAMkB,KAAKujC,iBAAmBvjC,KAAKgrC,cAAgBlsC,EAAO,IAAIoB,EAAEupC,sBAAsB3qC,GAAMqR,KAAK,SAAUjQ,GACrH,OAAO,SAAUtC,GACf,IAAIS,EAAGK,EACP,OAAOA,EAAId,EAAE8lC,MAAOrlC,EAAIT,EAAEsjC,OAAQhhC,EAAEsjC,YAActjC,EAAEujC,aAAevjC,EAAEqqC,cAAc,CACjF7G,MAAOhlC,EACPwiC,OAAQ7iC,IACN6B,EAAE8qC,cAAgB,KAAM9qC,EAAE+qC,cAAcnsC,GAAI,mBAAqBO,EAAIA,SAAM,GAN0B,CAQ3GW,OAAc,MAAE,SAAUlB,GAC1B,OAAO,WACL,OAAOA,EAAEksC,cAAgB,KAAM,mBAAqB3rC,EAAIA,SAAM,GAFhD,CAIhBW,aAAU,GACX3B,EAnGU,CAoGb6B,EAAE5B,SACJP,KAAKiC,MAAO,WACZ,IAAIlB,EAAI,SAAWysC,EAAMrrC,GACrB,SAAStC,IACPoC,KAAKF,YAAcyrC,EAErB,IAAK,IAAIltC,KAAK6B,EAAGb,EAAEtB,KAAKmC,EAAG7B,KAAOktC,EAAKltC,GAAK6B,EAAE7B,IAC9C,OAAOT,EAAE4B,UAAYU,EAAEV,UAAW+rC,EAAK/rC,UAAY,IAAI5B,EAAK2tC,EAAKrvB,UAAYhc,EAAEV,UAAW+rC,GAE5FlsC,EAAI,GAAGI,eACTS,EAAEsrC,MAAQ,SAAUnsC,GAClB,SAASzB,EAAEkB,EAAGO,GACZ,MAAQA,IAAMA,EAAI,IAAKzB,EAAEse,UAAUpc,YAAY+C,MAAM7C,KAAM0I,WAAY1I,KAAKuJ,WAAarJ,EAAE2lB,KAAKjJ,IAAIvd,GAEtG,OAAOP,EAAElB,EAAGyB,GAAIzB,EAAEy5B,MAAQ,GAAIz5B,EAAE6tC,aAAe,SAAU3sC,EAAGoB,GAC1D,OAAOA,EAAEsI,KAAO1J,EAAGkB,KAAKq3B,MAAMv4B,GAAKoB,GAClCtC,EAAEwe,SAAW,SAAUtd,GACxB,IAAIoB,EACJ,OAAQA,EAAIF,KAAKq3B,MAAMv4B,EAAE0J,OAAStI,EAAEkc,SAAStd,QAAK,GACjDlB,EAAE4B,UAAUksC,mBAAqB,SAAU5sC,GAC5C,OAAO,IAAIkB,KAAKF,YAAYE,KAAK2rC,WAAY7sC,IAC5ClB,EAAE4B,UAAUosC,6BAA+B,SAAU9sC,GACtD,OAAOkB,KAAK0rC,mBAAmB1rC,KAAKuJ,WAAW0c,MAAMnnB,KACpDlB,EAAE4B,UAAUqsC,qBAAuB,SAAU/sC,GAC9C,OAAOkB,KAAK0rC,mBAAmB1rC,KAAKuJ,WAAW2c,OAAOpnB,KACrDlB,EAAE4B,UAAUg3B,KAAO,WACpB,OAAOx2B,KAAK0rC,mBAAmB1rC,KAAKuJ,aACnC3L,EAAE4B,UAAU0K,aAAe,SAAUpL,GACtC,OAAOkB,KAAKuJ,WAAW9K,IAAIK,IAC1BlB,EAAE4B,UAAUssC,kBAAoB,WACjC,OAAO9rC,KAAKuJ,YACX3L,EAAE4B,UAAUqkC,cAAgB,WAC7B,OAAO7jC,KAAKuJ,WAAW+c,YACtB1oB,EAAE4B,UAAUusC,oBAAsB,WACnC,IAAIjtC,EAAGoB,EAAGb,EACV,OAAQA,EAAI2sC,UAAUC,gBAAgB,KAAOntC,EAAIO,EAAEkK,WAAYrJ,EAAIpB,EAAEinB,UAAWimB,UAAUE,WAAU,SAAU7sC,GAC5G,OAAOa,EAAIpB,EAAEknB,oBAAoB3mB,EAAEkK,YAAazK,EAAIA,EAAEmE,MAAM/C,MAC1DpB,EAAEwnB,YAAc,IACnB1oB,EAAE4B,UAAU4O,aAAe,SAAUtP,GACtC,OAAOkB,KAAKuJ,WAAWgG,IAAIzQ,IAC1BlB,EAAE4B,UAAU2sC,0BAA4B,SAAUrtC,GACnD,OAAO,MAAQA,GAAKkB,KAAK2B,aAAe7C,EAAE6C,YACzC/D,EAAE4B,UAAU4sC,yBAA2B,SAAUttC,GAClD,OAAO,MAAQA,IAAMkB,KAAKuJ,aAAezK,EAAEyK,YAAcvJ,KAAKuJ,WAAW+S,UAAUxd,EAAEyK,cACpF3L,EAAE4B,UAAU6sC,aAAe,WAC5B,OAAO,GACNzuC,EAAE4B,UAAU8c,UAAY,SAAUxd,GACnC,OAAOlB,EAAEse,UAAUI,UAAUzZ,MAAM7C,KAAM0I,YAAc1I,KAAKqc,qBAAqBvd,IAAMkB,KAAKmsC,0BAA0BrtC,IAAMkB,KAAKosC,yBAAyBttC,IACzJlB,EAAE4B,UAAU4mB,QAAU,WACvB,OAAO,IAAMpmB,KAAKoB,QACjBxD,EAAE4B,UAAU8sC,eAAiB,WAC9B,OAAO,GACN1uC,EAAE4B,UAAUsL,OAAS,WACtB,MAAO,CACLtC,KAAMxI,KAAKF,YAAY0I,KACvBe,WAAYvJ,KAAK6jC,kBAElBjmC,EAAE4B,UAAUgd,sBAAwB,WACrC,MAAO,CACLhU,KAAMxI,KAAKF,YAAY0I,KACvBe,WAAYvJ,KAAKuJ,WAAWgT,YAE7B3e,EAAE4B,UAAUonB,aAAe,WAC5B,OAAO5mB,KAAKoO,aAAa,SACxBxQ,EAAE4B,UAAUqnB,iBAAmB,SAAU/nB,GAC1C,OAAOkB,KAAKkK,aAAa,UAAYpL,EAAEoL,aAAa,SACnDtM,EAAE4B,UAAU+sC,UAAY,WACzB,OAAOvsC,KAAKoB,QACXxD,EAAE4B,UAAUgtC,sBAAwB,WACrC,OAAO,GACN5uC,EA5DK,CA6DRsC,EAAE5B,SACJP,KAAKiC,MAAO,WACZ,IAAIlB,EAAI,SAAW2tC,EAAMvsC,GACrB,SAAStC,IACPoC,KAAKF,YAAc2sC,EAErB,IAAK,IAAIpuC,KAAK6B,EAAGb,EAAEtB,KAAKmC,EAAG7B,KAAOouC,EAAKpuC,GAAK6B,EAAE7B,IAC9C,OAAOT,EAAE4B,UAAYU,EAAEV,UAAWitC,EAAKjtC,UAAY,IAAI5B,EAAK6uC,EAAKvwB,UAAYhc,EAAEV,UAAWitC,GAE5FptC,EAAI,GAAGI,eACTS,EAAEsrC,MAAMC,aAAa,aAAcvrC,EAAEwsC,gBAAkB,SAAUrtC,GAC/D,SAASzB,EAAEkB,GACTkB,KAAKmqB,WAAarrB,EAAGlB,EAAEse,UAAUpc,YAAY+C,MAAM7C,KAAM0I,WAAY1I,KAAKoB,OAAS,EAAGpB,KAAK2sC,wCAAwC,QAAS3sC,KAAKmqB,WAAW2X,cAAgB9hC,KAAK4sC,6BAEnL,OAAO9tC,EAAElB,EAAGyB,GAAIzB,EAAEwe,SAAW,SAAUtd,GACrC,OAAO,IAAIkB,KAAKE,EAAE4pC,WAAW1tB,SAAStd,EAAEqrB,YAAarrB,EAAEyK,aACtD3L,EAAEivC,oBAAsB,CAAC,UAAW,gBAAiBjvC,EAAE4B,UAAUmtC,wCAA0C,SAAU7tC,GACtH,OAAOkB,KAAKoO,aAAatP,IAAMkB,KAAKmqB,WAAW/b,aAAatP,IAAMkB,KAAKmqB,WAAWogB,cAAcvqC,KAAKuJ,WAAWtG,MAAMnE,IAAKkB,KAAKuJ,WAAavJ,KAAKuJ,WAAW2c,OAAOpnB,SAAM,GACzKlB,EAAE4B,UAAUotC,2BAA6B,WAC1C,IAAI9tC,EACJ,OAAOA,EAAIkB,KAAKuJ,WAAWtG,MAAMjD,KAAKF,YAAY+sC,sBAAwBvwB,UAAUtc,KAAKuJ,iBAAc,EAASvJ,KAAKuJ,WAAazK,GACjIlB,EAAE4B,UAAUmsC,SAAW,WACxB,OAAO3rC,KAAKmqB,YACXvsB,EAAE4B,UAAU8sC,eAAiB,WAC9B,OAAQtsC,KAAKmqB,WAAW8X,aACvBrkC,EAAE4B,UAAUwhC,WAAa,WAC1B,IAAIliC,EACJ,OAAO,OAASA,EAAIkB,KAAKuJ,WAAW9K,IAAI,YAAcK,EAAI,IACzDlB,EAAE4B,UAAU8c,UAAY,SAAUxd,GACnC,IAAIoB,EACJ,OAAOtC,EAAEse,UAAUI,UAAUzZ,MAAM7C,KAAM0I,YAAc1I,KAAKmqB,WAAW/e,MAAQ,MAAQtM,GAAK,OAASoB,EAAIpB,EAAEqrB,YAAcjqB,EAAEkL,QAAK,IAC/HxN,EAAE4B,UAAUmC,SAAW,WACxB,OAAOzB,EAAEmb,8BACRzd,EAAE4B,UAAUsL,OAAS,WACtB,IAAIhM,EACJ,OAAOA,EAAIlB,EAAEse,UAAUpR,OAAOjI,MAAM7C,KAAM0I,YAAcyhB,WAAanqB,KAAKmqB,WAAYrrB,GACrFlB,EAAE4B,UAAUqd,YAAc,WAC3B,MAAO,CAACjf,EAAEse,UAAUW,YAAYha,MAAM7C,KAAM0I,WAAY1I,KAAKmqB,WAAWtN,eAAe5a,KAAK,MAC3FrE,EAAE4B,UAAUstC,UAAY,WACzB,OAAOviC,KAAKC,UAAUxK,KAAK2B,aAC1B/D,EA9BkD,CA+BrDsC,EAAEsrC,SACJztC,KAAKiC,MAAO,WACZ,IAAIlB,EACFO,EAAI,SAAWP,EAAGoB,GAChB,SAASb,IACPW,KAAKF,YAAchB,EAErB,IAAK,IAAIT,KAAK6B,EAAGtC,EAAEG,KAAKmC,EAAG7B,KAAOS,EAAET,GAAK6B,EAAE7B,IAC3C,OAAOgB,EAAEG,UAAYU,EAAEV,UAAWV,EAAEU,UAAY,IAAIH,EAAKP,EAAEod,UAAYhc,EAAEV,UAAWV,GAEtFlB,EAAI,GAAG6B,eACTX,EAAIoB,EAAEid,kBAAmBjd,EAAEsrC,MAAMC,aAAa,SAAUvrC,EAAE6sC,YAAc,SAAU7sC,GAChF,SAAStC,EAAEsC,GACTtC,EAAEse,UAAUpc,YAAY+C,MAAM7C,KAAM0I,WAAY1I,KAAKo3B,OAASt4B,EAAEoB,GAAIF,KAAKoB,OAASpB,KAAKo3B,OAAOh2B,OAEhG,OAAO/B,EAAEzB,EAAGsC,GAAItC,EAAEwe,SAAW,SAAUtd,GACrC,OAAO,IAAIkB,KAAKlB,EAAEs4B,OAAQt4B,EAAEyK,aAC3B3L,EAAE4B,UAAUmsC,SAAW,WACxB,OAAO3rC,KAAKo3B,QACXx5B,EAAE4B,UAAUmC,SAAW,WACxB,OAAO3B,KAAKo3B,OAAOz1B,YAClB/D,EAAE4B,UAAU6sC,aAAe,WAC5B,MAAO,OAASrsC,KAAK2B,aAAkD,IAApC3B,KAAKkK,aAAa,eACpDtM,EAAE4B,UAAUsL,OAAS,WACtB,IAAIhM,EACJ,OAAOA,EAAIlB,EAAEse,UAAUpR,OAAOjI,MAAM7C,KAAM0I,YAAc0uB,OAASp3B,KAAKo3B,OAAQt4B,GAC7ElB,EAAE4B,UAAUgtC,sBAAwB,SAAU1tC,GAC/C,OAAO,MAAQA,GAAKkB,KAAKqc,qBAAqBvd,IAAMkB,KAAKosC,yBAAyBttC,IACjFlB,EAAE4B,UAAUwtC,gBAAkB,SAAUluC,GACzC,OAAO,IAAIkB,KAAKF,YAAYE,KAAK2B,WAAa7C,EAAE6C,WAAY3B,KAAKuJ,aAChE3L,EAAE4B,UAAUytC,cAAgB,SAAUnuC,GACvC,IAAIoB,EAAGb,EACP,OAAO,IAAMP,GAAKoB,EAAI,KAAMb,EAAIW,MAAQlB,IAAMkB,KAAKoB,QAAUlB,EAAIF,KAAMX,EAAI,OAASa,EAAI,IAAIF,KAAKF,YAAYE,KAAKo3B,OAAOn0B,MAAM,EAAGnE,GAAIkB,KAAKuJ,YAAalK,EAAI,IAAIW,KAAKF,YAAYE,KAAKo3B,OAAOn0B,MAAMnE,GAAIkB,KAAKuJ,aAAc,CAACrJ,EAAGb,IAC7NzB,EAAE4B,UAAUstC,UAAY,WACzB,IAAIhuC,EACJ,OAAOA,EAAIkB,KAAKo3B,QAAUh2B,OAAS,KAAOtC,EAAIA,EAAEmE,MAAM,EAAG,IAAM,UAAWsH,KAAKC,UAAU1L,EAAE6C,aAC1F/D,EAzBmE,CA0BtEsC,EAAEsrC,SACJztC,KAAKiC,MAAO,WACZ,IAAIlB,EACFO,EAAI,SAAWP,EAAGoB,GAChB,SAASb,IACPW,KAAKF,YAAchB,EAErB,IAAK,IAAIT,KAAK6B,EAAGtC,EAAEG,KAAKmC,EAAG7B,KAAOS,EAAET,GAAK6B,EAAE7B,IAC3C,OAAOgB,EAAEG,UAAYU,EAAEV,UAAWV,EAAEU,UAAY,IAAIH,EAAKP,EAAEod,UAAYhc,EAAEV,UAAWV,GAEtFlB,EAAI,GAAG6B,eACPpB,EAAI,GAAG4E,MACTnE,EAAIoB,EAAEoe,YAAape,EAAEgtC,eAAiB,SAAUhtC,GAC9C,SAAStC,EAAEkB,GACT,MAAQA,IAAMA,EAAI,IAAKlB,EAAEse,UAAUpc,YAAY+C,MAAM7C,KAAM0I,WAAY1I,KAAKwmB,QAAU1nB,EAAEmE,MAAM,GAAIjD,KAAKoB,OAASpB,KAAKwmB,QAAQplB,OAE/H,IAAI1C,EAAGiB,EAAGkB,EACV,OAAOxB,EAAEzB,EAAGsC,GAAItC,EAAEgf,IAAM,SAAU9d,GAChC,OAAOA,aAAakB,KAAOlB,EAAI,IAAIkB,KAAKlB,IACvClB,EAAE4B,UAAUgQ,QAAU,SAAU1Q,GACjC,OAAOkB,KAAKwmB,QAAQhX,QAAQ1Q,IAC3BlB,EAAE4B,UAAUkQ,OAAS,WACtB,IAAIxP,EACJ,OAAOA,EAAI,GAAKwI,UAAUtH,OAAS/C,EAAEN,KAAK2K,UAAW,GAAK,GAAI,IAAI1I,KAAKF,YAAYhB,EAAE+D,MAAM,KAAM,CAAC7C,KAAKwmB,SAASnM,OAAOhc,EAAEN,KAAKmC,OAC7HtC,EAAE4B,UAAU2tC,WAAa,SAAUruC,GACpC,IAAIoB,EAAGb,EAAGzB,EAAGS,EAAGK,EAAGiB,EACnB,IAAuBA,EAAI,GAAIN,EAAIa,EAAI,EAAGtC,GAArCc,EAAIsB,KAAKwmB,SAAkCplB,OAAQxD,EAAIsC,EAAGb,IAAMa,EAAG7B,EAAIK,EAAEW,GAAIM,EAAE8C,KAAK3D,EAAET,EAAGgB,IAC9F,OAAOM,GACN/B,EAAE4B,UAAU4tC,oBAAsB,SAAUtuC,EAAGoB,GAChD,OAAOF,KAAK0P,OAAOxP,EAAG,EAAGpB,IACxBlB,EAAE4B,UAAU6tC,4BAA8B,SAAUvuC,EAAGoB,GACxD,OAAOF,KAAK0P,OAAO7M,MAAM7C,KAAM,CAACE,EAAG,GAAGma,OAAOhc,EAAEN,KAAKe,EAAE0nB,YACrD5oB,EAAE4B,UAAU8tC,+BAAiC,SAAUxuC,EAAGoB,GAC3D,IAAIb,EAAGzB,EAAGS,EACV,OAA0CT,GAAnCS,EAAI2B,KAAKutC,sBAAsBrtC,IAAU,GAAIb,EAAIhB,EAAE,GAAI,IAAI2B,KAAKF,YAAYlC,GAAGyvC,4BAA4BvuC,EAAGO,IACpHzB,EAAE4B,UAAUguC,kBAAoB,SAAU1uC,EAAGoB,GAC9C,OAAOF,KAAKytC,qBAAqBvtC,EAAEF,KAAKwmB,QAAQ1nB,IAAKA,IACpDlB,EAAE4B,UAAUiuC,qBAAuB,SAAU3uC,EAAGoB,GACjD,OAAOF,KAAK0P,OAAOxP,EAAG,EAAGpB,IACxBlB,EAAE4B,UAAUkuC,oBAAsB,SAAU5uC,GAC7C,OAAOkB,KAAK0P,OAAO5Q,EAAG,IACrBlB,EAAE4B,UAAUmuC,iBAAmB,SAAU7uC,GAC1C,OAAOkB,KAAKwmB,QAAQ1nB,IACnBlB,EAAE4B,UAAUouC,yBAA2B,SAAU9uC,GAClD,IAAIoB,EAAGb,EAAGzB,EAAGS,EACb,OAAwCgB,GAAjCzB,EAAIoC,KAAK6tC,oBAAoB/uC,IAAU,GAAIoB,EAAItC,EAAE,GAAIS,EAAIT,EAAE,GAAI,IAAIoC,KAAKF,YAAYT,EAAE4D,MAAM/C,EAAG7B,EAAI,KACzGT,EAAE4B,UAAUsuC,qBAAuB,SAAUhvC,GAC9C,IAAIoB,EAAGb,EACP,OAAOA,EAAI,WACT,IAAIA,EAAGzB,EAAGS,EAAGK,EACb,IAAuBA,EAAI,GAAIW,EAAI,EAAGzB,GAAjCS,EAAI2B,KAAKwmB,SAA8BplB,OAAQxD,EAAIyB,EAAGA,IAAKa,EAAI7B,EAAEgB,GAAIP,EAAEoB,IAAMxB,EAAE+D,KAAKvC,GACzF,OAAOxB,GACPX,KAAKiC,MAAO,IAAIA,KAAKF,YAAYT,IAClCzB,EAAE4B,UAAUuuC,qBAAuB,SAAUjvC,GAC9C,IAAIoB,EAAGb,EAAGzB,EAAGS,EACb,OAAwCgB,GAAjCzB,EAAIoC,KAAK6tC,oBAAoB/uC,IAAU,GAAIoB,EAAItC,EAAE,GAAIS,EAAIT,EAAE,GAAI,IAAIoC,KAAKF,YAAYT,GAAGqQ,OAAOxP,EAAG7B,EAAI6B,EAAI,IAC/GtC,EAAE4B,UAAUwuC,wBAA0B,SAAUlvC,EAAGoB,GACpD,IAAIb,EAAGzB,EAAGS,EAAGK,EAAGiB,EAAGkB,EAAGuP,EACtB,OAAOzQ,EAAIK,KAAK6tC,oBAAoB/uC,GAAIJ,EAAIiB,EAAE,GAAI/B,EAAI+B,EAAE,GAAIkB,EAAIlB,EAAE,GAAIyQ,EAAI,WACxE,IAAItR,EAAGa,EAAGyQ,EACV,IAAKA,EAAI,GAAI/Q,EAAIP,EAAI,EAAGa,EAAIjB,EAAE0C,OAAQzB,EAAIb,EAAGO,IAAMP,EAAGT,EAAIK,EAAEW,GAAI+Q,EAAE3N,KAAKpD,GAAKzB,GAAKiD,GAAKxB,EAAIa,EAAE7B,GAAKA,GACjG,OAAO+R,EAHiE,GAIrE,IAAIpQ,KAAKF,YAAYsQ,IACzBxS,EAAE4B,UAAUquC,oBAAsB,SAAU/uC,GAC7C,IAAIoB,EAAGb,EAAGzB,EAAGS,EAAGsB,EAChB,OAA6CN,GAAtChB,EAAI2B,KAAKutC,sBAAsB1sC,EAAE/B,KAAW,GAAIoB,EAAI7B,EAAE,GAAIT,EAAIS,EAAE,GAAqF,CAApBgB,GAA7DM,EAAI,IAAIK,KAAKF,YAAYT,GAAGkuC,sBAAsB7uC,EAAEI,GAAKlB,IAAU,GAAkBsC,EAAVP,EAAE,GAAe,IACtK/B,EAAE4B,UAAUyuC,oBAAsB,SAAUnvC,GAC7C,IAAIoB,EAAMtC,EACV,OAAiDsC,GAA1CtC,EAAIoC,KAAKkuC,6BAA6BpvC,IAAUqvC,MAAWvwC,EAAEggB,OAAQ5d,KAAKwmB,QAAQtmB,IACxFtC,EAAE4B,UAAU+tC,sBAAwB,SAAUzuC,GAC/C,IAAIoB,EAAGb,EAAMhB,EAAGK,EAAGiB,EAAGkB,EAAGuP,EAAGnS,EAAGJ,EAC/B,OAAiDqC,GAA1CP,EAAIK,KAAKkuC,6BAA6BpvC,IAAUqvC,MAAOzvC,EAAIiB,EAAEie,OAAQvf,EAAI2B,KAAKwmB,QAAQvjB,MAAM,GAAI,MAAQ/C,EAAI,IAAMxB,GAAKT,EAAIiC,EAAGrC,EAAI,IAA4DwB,GAAxBwB,EAA1Bb,KAAK2tC,iBAAiBztC,GAAU+sC,cAAcvuC,IAAU,GAAI0R,EAAIvP,EAAE,GAAIxC,EAAEqR,OAAOxP,EAAG,EAAGb,EAAG+Q,GAAInS,EAAIiC,EAAI,EAAGrC,EAAIwB,EAAEktC,YAAc7tC,IAAMT,EAAII,EAAE+C,OAAQvD,EAAI,GAAI,CAACQ,EAAGJ,EAAGJ,IAChTD,EAAE4B,UAAU4uC,YAAc,WAC3B,IAAItvC,EAAGoB,EAAGb,EAAGzB,EAAGS,EAAGK,EACnB,IAAKd,EAAI,GAAIS,EAAI2B,KAAKwmB,QAAQ,GAA+B1nB,EAAI,EAAGoB,GAAlCxB,EAAIsB,KAAKwmB,QAAQvjB,MAAM,IAAiB7B,OAAQlB,EAAIpB,EAAGA,IAAKO,EAAIX,EAAEI,IAAK,mBAAqBT,EAAEmuC,sBAAwBnuC,EAAEmuC,sBAAsBntC,QAAK,GAAUhB,EAAIA,EAAE2uC,gBAAgB3tC,IAAMzB,EAAE6E,KAAKpE,GAAIA,EAAIgB,GAC1O,OAAO,MAAQhB,GAAKT,EAAE6E,KAAKpE,GAAI,IAAI2B,KAAKF,YAAYlC,IACnDA,EAAE4B,UAAU6uC,4BAA8B,SAAUvvC,EAAGoB,GACxD,IAAIb,EAAMX,EACV,OAAkCA,EAAvBsB,KAAKwmB,QAAQvjB,MAAM,GAAUA,MAAMnE,EAAGoB,EAAI,GAAIb,EAAI,IAAIW,KAAKF,YAAYpB,GAAG0vC,cAAcjoB,UAAWnmB,KAAK0P,OAAO7M,MAAM7C,KAAM,CAAClB,EAAGJ,EAAE0C,QAAQiZ,OAAOhc,EAAEN,KAAKsB,MACjKzB,EAAE4B,UAAU0uC,6BAA+B,SAAUpvC,GACtD,IAAIoB,EAAGb,EAAGzB,EAAGS,EAAGK,EAAMmC,EACtB,IAAKX,EAAI,EAAqBtC,EAAIyB,EAAI,EAAGhB,GAA7BwC,EAAIb,KAAKwmB,SAA0BplB,OAAQ/C,EAAIgB,EAAGzB,IAAMyB,EAAG,CACrE,GAAcX,EAAIwB,EAAVW,EAAEjD,GAAc2uC,YAAaztC,GAAKoB,GAAKxB,EAAII,EAAG,MAAO,CAC3DqvC,MAAOvwC,EACPggB,OAAQ9e,EAAIoB,GAEdA,EAAIxB,EAEN,MAAO,CACLyvC,MAAO,KACPvwB,OAAQ,OAEThgB,EAAE4B,UAAU8uC,6BAA+B,SAAUxvC,EAAGoB,GACzD,IAAIb,EAAGzB,EAAGS,EAAGK,EAAGiB,EAAGkB,EACnB,IAAKlB,EAAI,EAAqBN,EAAIzB,EAAI,EAAGS,GAA7BwC,EAAIb,KAAKwmB,SAA0BplB,OAAQ/C,EAAIT,EAAGyB,IAAMzB,EAAG,GAAIc,EAAImC,EAAExB,GAAIP,EAAIO,EAAGM,GAAKjB,EAAE6tC,iBAAiB,GAAIltC,IAAMP,EAAG,CAC/Ha,GAAKO,EACL,MAEF,OAAOP,GACN/B,EAAE4B,UAAU+uC,eAAiB,WAC9B,IAAIzvC,EAAGoB,EACP,OAAO,MAAQF,KAAKwuC,YAAcxuC,KAAKwuC,YAAcxuC,KAAKwuC,YAAc,WACtE,IAAInvC,EAAGzB,EAAGS,EACV,IAAK6B,EAAI,EAAqBb,EAAI,EAAGzB,GAAzBS,EAAI2B,KAAKwmB,SAAsBplB,OAAQxD,EAAIyB,EAAGA,IAAKP,EAAIT,EAAEgB,GAAIa,GAAKpB,EAAEytC,YAChF,OAAOrsC,GACPnC,KAAKiC,OACNpC,EAAE4B,UAAUmC,SAAW,WACxB,OAAO3B,KAAKwmB,QAAQvkB,KAAK,KACxBrE,EAAE4B,UAAU2mB,QAAU,WACvB,OAAOnmB,KAAKwmB,QAAQvjB,MAAM,IACzBrF,EAAE4B,UAAUsL,OAAS,WACtB,OAAO9K,KAAKmmB,WACXvoB,EAAE4B,UAAU8c,UAAY,SAAUxd,GACnC,OAAOlB,EAAEse,UAAUI,UAAUzZ,MAAM7C,KAAM0I,YAAc/I,EAAEK,KAAKwmB,QAAS,MAAQ1nB,EAAIA,EAAE0nB,aAAU,IAC9F7mB,EAAI,SAAWb,EAAGoB,GACnB,IAAIb,EAAGzB,EAAGS,EAAGK,EAAGiB,EAChB,GAAI,MAAQO,IAAMA,EAAI,IAAKpB,EAAEsC,SAAWlB,EAAEkB,OAAQ,OAAO,EACzD,IAAKzB,GAAI,EAAI/B,EAAIyB,EAAI,EAAGhB,EAAIS,EAAEsC,OAAQ/C,EAAIgB,EAAGzB,IAAMyB,EAAGX,EAAII,EAAElB,GAAI+B,IAAMjB,EAAE4d,UAAUpc,EAAEtC,MAAQ+B,GAAI,GAChG,OAAOA,GACN/B,EAAE4B,UAAUgd,sBAAwB,WACrC,IAAI1d,EACJ,MAAO,CACL0nB,QAAS,IAAM,WACb,IAAItmB,EAAGb,EAAGzB,EAAGS,EACb,IAAuBA,EAAI,GAAI6B,EAAI,EAAGb,GAAjCzB,EAAIoC,KAAKwmB,SAA8BplB,OAAQ/B,EAAIa,EAAGA,IAAKpB,EAAIlB,EAAEsC,GAAI7B,EAAEoE,KAAK3D,EAAEyd,WACnF,OAAOle,GACPN,KAAKiC,MAAMiC,KAAK,MAAQ,MAE3BpB,EAAI,SAAW/B,GAChB,OAAOA,EAAE,IACRJ,EAAI,SAAWI,GAChB,OAAOA,EAAE,IACRlB,EAxHiC,CAyHpCsC,EAAE5B,SACJP,KAAKiC,MAAO,WACZ,IAAIlB,EAAI,SAAW2vC,EAAMvuC,GACrB,SAAStC,IACPoC,KAAKF,YAAc2uC,EAErB,IAAK,IAAIpwC,KAAK6B,EAAGb,EAAEtB,KAAKmC,EAAG7B,KAAOowC,EAAKpwC,GAAK6B,EAAE7B,IAC9C,OAAOT,EAAE4B,UAAYU,EAAEV,UAAWivC,EAAKjvC,UAAY,IAAI5B,EAAK6wC,EAAKvyB,UAAYhc,EAAEV,UAAWivC,GAE5FpvC,EAAI,GAAGI,eACTS,EAAEwuC,KAAO,SAAUrvC,GACjB,SAASzB,EAAEkB,GACT,IAAIO,EACJ,MAAQP,IAAMA,EAAI,IAAKlB,EAAEse,UAAUpc,YAAY+C,MAAM7C,KAAM0I,WAAY1I,KAAKgsC,UAAY,IAAI9rC,EAAEgtC,eAAe,WAC3G,IAAIhtC,EAAGtC,EAAGS,EACV,IAAKA,EAAI,GAAI6B,EAAI,EAAGtC,EAAIkB,EAAEsC,OAAQxD,EAAIsC,EAAGA,KAAKb,EAAIP,EAAEoB,IAAMkmB,WAAa/nB,EAAEoE,KAAKpD,GAC9E,OAAOhB,EAHoG,IAM/G,OAAOS,EAAElB,EAAGyB,GAAIzB,EAAE+wC,gCAAkC,SAAU7vC,EAAGO,GAE/D,OAAwC,IAAIW,KAAK,CAAtC,IAAIE,EAAEwsC,gBAAgB5tC,EAAGO,MACnCzB,EAAEgxC,4BAA8B,SAAU9vC,EAAGO,GAE9C,OAAoC,IAAIW,KAAK,CAAlC,IAAIE,EAAE6sC,YAAYjuC,EAAGO,MAC/BzB,EAAEwe,SAAW,SAAUtd,GACxB,IAAIO,EACJ,OAIK,IAAIW,KAJE,WACT,IAAIpC,EAAGS,EAAGK,EACV,IAAKA,EAAI,GAAId,EAAI,EAAGS,EAAIS,EAAEsC,OAAQ/C,EAAIT,EAAGA,IAAKyB,EAAIP,EAAElB,GAAIc,EAAE+D,KAAKvC,EAAEsrC,MAAMpvB,SAAS/c,IAChF,OAAOX,EAHE,KAKVd,EAAE4B,UAAUg3B,KAAO,WACpB,OAAOx2B,KAAK6uC,kBAAkB7uC,KAAKgsC,YAClCpuC,EAAE4B,UAAUqvC,kBAAoB,SAAU/vC,GAC3C,OAAO,IAAIkB,KAAKF,YAAYhB,EAAEsvC,cAAcjoB,YAC3CvoB,EAAE4B,UAAUsvC,mBAAqB,SAAUhwC,GAC5C,IAAIoB,EAAGb,EACP,OAAOA,EAAI,WACT,IAAIA,EAAGzB,EAAGS,EAAGK,EAAGiB,EAChB,IAA2BA,EAAI,GAAIN,EAAI,EAAGzB,GAArCS,EAAI2B,KAAKykC,aAAkCrjC,OAAQxD,EAAIyB,EAAGA,IAAKa,EAAI7B,EAAEgB,GAAIM,EAAE8C,KAAK,OAAS/D,EAAII,EAAEooB,KAAKhnB,IAAMxB,EAAIwB,GACnH,OAAOP,GACP5B,KAAKiC,MAAO,IAAIA,KAAKF,YAAYT,IAClCzB,EAAE4B,UAAUuvC,WAAa,SAAUjwC,GACpC,OAAOkB,KAAKgvC,qBAAqBlwC,EAAGkB,KAAKusC,cACxC3uC,EAAE4B,UAAUwvC,qBAAuB,SAAUlwC,EAAGoB,GACjD,OAAOF,KAAK6uC,kBAAkB7uC,KAAKgsC,UAAUsB,+BAA+BxuC,EAAEktC,UAAW9rC,KACxFtC,EAAE4B,UAAUyvC,kBAAoB,SAAUnwC,GAC3C,OAAOkB,KAAK6uC,kBAAkB7uC,KAAKgsC,UAAU+B,qBAAqBjvC,KACjElB,EAAE4B,UAAU0vC,mBAAqB,SAAUpwC,EAAGoB,GAC/C,OAAOF,KAAKivC,kBAAkB/uC,GAAG8uC,qBAAqBlwC,EAAGoB,EAAE,KAC1DtC,EAAE4B,UAAU2vC,4BAA8B,SAAUrwC,EAAGoB,GACxD,IAAIb,EAAGzB,EACP,KAAMkB,EAAE,IAAMoB,GAAKA,GAAKpB,EAAE,IAAK,OAAmCO,GAA5BzB,EAAIoC,KAAKovC,eAAetwC,IAAUytC,YAAaztC,EAAE,GAAKoB,IAAMA,GAAKb,GAAIW,KAAKivC,kBAAkBnwC,GAAGkwC,qBAAqBpxC,EAAGsC,IAC5JtC,EAAE4B,UAAU6vC,oBAAsB,SAAUvwC,EAAGoB,EAAGb,GACnD,IAAIzB,EACJ,OAAOA,EAAI,IAAMkB,GAAKoB,EAAGF,KAAKsvC,qBAAqB1xC,EAAGyB,IACrDzB,EAAE4B,UAAU8vC,qBAAuB,SAAUxwC,EAAGoB,GACjD,OAAOF,KAAK6uC,kBAAkB7uC,KAAKgsC,UAAUgC,wBAAwB9tC,GAAG,SAAUA,GAChF,OAAOA,EAAE0rC,6BAA6B9sC,QAEvClB,EAAE4B,UAAU+vC,uBAAyB,SAAUzwC,EAAGoB,GACnD,OAAOF,KAAK6uC,kBAAkB7uC,KAAKgsC,UAAUgC,wBAAwB9tC,GAAG,SAAUA,GAChF,OAAOA,EAAE2rC,qBAAqB/sC,QAE/BlB,EAAE4B,UAAUgwC,qBAAuB,SAAU1wC,EAAGoB,GACjD,OAAOF,KAAK6uC,kBAAkB7uC,KAAKgsC,UAAUgC,wBAAwB9tC,GAAG,SAAUA,GAChF,OAAOA,EAAEwrC,mBAAmB5sC,QAE7BlB,EAAE4B,UAAUiwC,wBAA0B,SAAU3wC,GACjD,IAAIoB,EAAGb,EACP,OAAO,OAASa,EAAI,OAASb,EAAIW,KAAKgsC,UAAUiC,oBAAoBnvC,IAAMO,EAAEwkC,qBAAkB,GAAU3jC,EAAI,IAC3GtC,EAAE4B,UAAUusC,oBAAsB,WACnC,IAAIjtC,EAAGO,EACP,OAAOP,EAAI,WACT,IAAIA,EAAGoB,EAAGtC,EAAGS,EACb,IAAmCA,EAAI,GAAIS,EAAI,EAAGoB,GAA7CtC,EAAIoC,KAAKgsC,UAAU7lB,WAAgC/kB,OAAQlB,EAAIpB,EAAGA,IAAKO,EAAIzB,EAAEkB,GAAIT,EAAEoE,KAAKpD,EAAEwkC,iBAC/F,OAAOxlC,GACPN,KAAKiC,MAAOE,EAAE2lB,KAAKC,8BAA8BhnB,GAAGwnB,YACrD1oB,EAAE4B,UAAUkwC,2BAA6B,SAAU5wC,GACpD,IAAIoB,EACJ,OAAO,OAASA,EAAIF,KAAKovC,eAAetwC,GAAGitC,uBAAyB7rC,EAAI,IACvEtC,EAAE4B,UAAUmwC,qCAAuC,SAAU7wC,EAAGoB,GACjE,IAAIb,EAAGzB,EAAGS,EACV,IAAKgB,EAAIhB,EAAI6B,EAAGtC,EAAIoC,KAAKusC,YAAaltC,EAAI,GAAKW,KAAK0vC,2BAA2B,CAACrwC,EAAI,EAAGhB,IAAIS,IAAKO,IAChG,KAAOzB,EAAIS,GAAK2B,KAAK0vC,2BAA2B,CAACxvC,EAAG7B,EAAI,IAAIS,IAAKT,IACjE,MAAO,CAACgB,EAAGhB,IACVT,EAAE4B,UAAU4vC,eAAiB,SAAUtwC,GACxC,OAAOkB,KAAK6uC,kBAAkB7uC,KAAKgsC,UAAU4B,yBAAyB9uC,KACrElB,EAAE4B,UAAUowC,iBAAmB,SAAU9wC,GAC1C,OAAOkB,KAAKgsC,UAAU4B,yBAAyB9uC,GAAG6C,YACjD/D,EAAE4B,UAAUqwC,oBAAsB,SAAU/wC,GAC7C,OAAOkB,KAAK4vC,iBAAiB,CAAC9wC,EAAGA,EAAI,KACpClB,EAAE4B,UAAUswC,iBAAmB,SAAUhxC,GAC1C,OAAOkB,KAAK4vC,iBAAiB,CAAC,EAAG9wC,EAAEsC,WAAatC,GAC/ClB,EAAE4B,UAAUuwC,eAAiB,SAAUjxC,GACxC,IAAIoB,EACJ,OAAOA,EAAIF,KAAKusC,YAAavsC,KAAK4vC,iBAAiB,CAAC1vC,EAAIpB,EAAEsC,OAAQlB,MAAQpB,GACzElB,EAAE4B,UAAUwwC,oBAAsB,WACnC,IAAIlxC,EAAGoB,EAAGb,EAAGzB,EAAGS,EAChB,IAAmCA,EAAI,GAAIS,EAAI,EAAGoB,GAA7CtC,EAAIoC,KAAKgsC,UAAU7lB,WAAgC/kB,OAAQlB,EAAIpB,EAAGA,IAAe,OAAVO,EAAIzB,EAAEkB,IAAcqrB,YAAc9rB,EAAEoE,KAAKpD,GACrH,OAAOhB,GACNT,EAAE4B,UAAUywC,eAAiB,WAC9B,IAAInxC,EAAGoB,EAAGb,EAAGzB,EAAGS,EAChB,IAAqCA,EAAI,GAAIS,EAAI,EAAGoB,GAA/CtC,EAAIoC,KAAKgwC,uBAA4C5uC,OAAQlB,EAAIpB,EAAGA,IAAKO,EAAIzB,EAAEkB,GAAIT,EAAEoE,KAAKpD,EAAE8qB,YACjG,OAAO9rB,GACNT,EAAE4B,UAAU0wC,6BAA+B,SAAUpxC,GACtD,IAAIoB,EAAGb,EAAGzB,EAAGS,EAAGK,EAAGiB,EACnB,IAAKtB,EAAI,EAAiC6B,EAAI,EAAGb,GAArCX,EAAIsB,KAAKgsC,UAAU7lB,WAAwB/kB,OAAQ/B,EAAIa,EAAGA,IAAK,CACzE,IAAe,OAASP,GAApB/B,EAAIc,EAAEwB,IAAoBiqB,YAAcxqB,EAAEyL,QAAK,KAAYtM,EAAG,MAAO,CACvEqrB,WAAYvsB,EAAEusB,WACd+O,SAAU76B,GAEZA,GAAKT,EAAEwD,OAET,MAAO,CACL+oB,WAAY,KACZ+O,SAAU,OAEXt7B,EAAE4B,UAAUkoC,kBAAoB,SAAU5oC,GAC3C,IAAIoB,EAAMtC,EACV,OAAiDsC,GAA1CtC,EAAIoC,KAAKkwC,6BAA6BpxC,IAAUqrB,WAAgBvsB,EAAEs7B,SAAUh5B,GAClFtC,EAAE4B,UAAU2wC,qBAAuB,SAAUrxC,GAC9C,IAAIoB,EAAGb,EACP,OAAoDP,GAA7CO,EAAIW,KAAKkwC,6BAA6BpxC,EAAEsM,KAAW+e,WAAYjqB,EAAIb,EAAE65B,SAAU,MAAQp6B,EAAI,CAACoB,EAAGA,EAAI,QAAK,GAC9GtC,EAAE4B,UAAU8nC,8BAAgC,SAAUxoC,EAAGoB,GAC1D,IAAIb,EACJ,OAAQA,EAAIW,KAAKmwC,qBAAqBjwC,IAAMF,KAAKsvC,qBAAqBxwC,EAAGO,GAAKW,MAC7EpC,EAAE4B,UAAU+sC,UAAY,WACzB,OAAOvsC,KAAKgsC,UAAUuC,kBACrB3wC,EAAE4B,UAAU4mB,QAAU,WACvB,OAAO,IAAMpmB,KAAKusC,aACjB3uC,EAAE4B,UAAU8c,UAAY,SAAUxd,GACnC,IAAIoB,EACJ,OAAOtC,EAAEse,UAAUI,UAAUzZ,MAAM7C,KAAM0I,aAAe,MAAQ5J,GAAK,OAASoB,EAAIpB,EAAEktC,WAAa9rC,EAAEoc,UAAUtc,KAAKgsC,gBAAa,IAC9HpuC,EAAE4B,UAAU6sC,aAAe,WAC5B,OAAO,IAAMrsC,KAAKusC,aAAevsC,KAAKgsC,UAAU2B,iBAAiB,GAAGtB,gBACnEzuC,EAAE4B,UAAU0sC,UAAY,SAAUptC,GACnC,OAAOkB,KAAKgsC,UAAUmB,WAAWruC,IAChClB,EAAE4B,UAAUilC,UAAY,WACzB,OAAOzkC,KAAKgsC,UAAU7lB,WACrBvoB,EAAE4B,UAAU4wC,mBAAqB,SAAUtxC,GAC5C,OAAOkB,KAAKgsC,UAAUiC,oBAAoBnvC,IACzClB,EAAE4B,UAAUgd,sBAAwB,WACrC,MAAO,CACLwvB,UAAWhsC,KAAKgsC,UAAUzvB,YAE3B3e,EAAE4B,UAAU6wC,mBAAqB,WAClC,IAAIvxC,EACJ,OAAOA,EAAIkB,KAAKgsC,UAAU8B,sBAAqB,SAAUhvC,GACvD,OAAOA,EAAEwtC,oBACPtsC,KAAK6uC,kBAAkB/vC,IAC1BlB,EAAE4B,UAAUmC,SAAW,WACxB,OAAO3B,KAAKgsC,UAAUrqC,YACrB/D,EAAE4B,UAAUsL,OAAS,WACtB,OAAO9K,KAAKgsC,UAAUlhC,UACrBlN,EAAE4B,UAAUstC,UAAY,WACzB,IAAIhuC,EACJ,OAAOyL,KAAKC,UAAU,WACpB,IAAItK,EAAGb,EAAGzB,EAAGS,EACb,IAAmCA,EAAI,GAAI6B,EAAI,EAAGb,GAA7CzB,EAAIoC,KAAKgsC,UAAU7lB,WAAgC/kB,OAAQ/B,EAAIa,EAAGA,IAAKpB,EAAIlB,EAAEsC,GAAI7B,EAAEoE,KAAK8H,KAAKS,MAAMlM,EAAEguC,cAC1G,OAAOzuC,GACPN,KAAKiC,QACNpC,EAAE4B,UAAU+lB,aAAe,WAC5B,OAAOrlB,EAAEqlB,aAAavlB,KAAK2B,aAC1B/D,EAAE4B,UAAUulC,MAAQ,WACrB,MAAO,QAAU/kC,KAAKulB,gBACrB3nB,EA7JI,CA8JPsC,EAAE5B,SACJP,KAAKiC,MAAO,WACZ,IAAIlB,EAEFlB,EACAS,EACAK,EACAiB,EAAI,SAAWb,EAAGoB,GAChB,SAASb,IACPW,KAAKF,YAAchB,EAErB,IAAK,IAAIlB,KAAKsC,EAAGW,EAAE9C,KAAKmC,EAAGtC,KAAOkB,EAAElB,GAAKsC,EAAEtC,IAC3C,OAAOyB,EAAEG,UAAYU,EAAEV,UAAWV,EAAEU,UAAY,IAAIH,EAAKP,EAAEod,UAAYhc,EAAEV,UAAWV,GAEtF+B,EAAI,GAAGpB,eACP2Q,EAAI,GAAGZ,SAAW,SAAU1Q,GAC1B,IAAK,IAAIoB,EAAI,EAAGb,EAAIW,KAAKoB,OAAQ/B,EAAIa,EAAGA,IAAK,GAAIA,KAAKF,MAAQA,KAAKE,KAAOpB,EAAG,OAAOoB,EACpF,OAAQ,GAEVjC,EAAI,GAAGgF,MACTnE,EAAIoB,EAAEke,eAAgB1f,EAAIwB,EAAEoe,YAAa1gB,EAAIsC,EAAEye,eAAoBze,EAAEwe,uBAAwBrgB,EAAI6B,EAAE6e,sBAAuB7e,EAAEowC,MAAQ,SAAUjxC,GAC5I,SAASwB,EAAE/B,EAAGO,GACZ,MAAQP,IAAMA,EAAI,IAAIoB,EAAEwuC,MAAS,MAAQrvC,IAAMA,EAAI,IAAKwB,EAAEqb,UAAUpc,YAAY+C,MAAM7C,KAAM0I,WAAY1I,KAAKgrB,KAAOjb,EAAEjR,GAAIkB,KAAKuJ,WAAalK,EAE9I,IAAIxB,EAAGkS,EAAGrQ,EAAGxB,EAAGuU,EAAG1S,EAAG/B,EAAG8U,EAAGC,EAC5B,OAAOpT,EAAEkB,EAAGxB,GAAIwB,EAAEub,SAAW,SAAUtd,GAErC,OAAoC,IAAIkB,KAA7BE,EAAEwuC,KAAKtyB,SAAStd,EAAEksB,MAAmBlsB,EAAEyK,aACjD1I,EAAErB,UAAU4mB,QAAU,WACvB,OAAOpmB,KAAKgrB,KAAKqhB,gBAChBxrC,EAAErB,UAAU8c,UAAY,SAAUpc,GACnC,OAAOW,EAAEqb,UAAUI,UAAUzZ,MAAM7C,KAAM0I,YAAc1I,KAAKgrB,KAAK1O,UAAU,MAAQpc,EAAIA,EAAE8qB,UAAO,IAAWlsB,EAAEkB,KAAKuJ,WAAY,MAAQrJ,EAAIA,EAAEqJ,gBAAa,IACxJ1I,EAAErB,UAAU+wC,aAAe,SAAUzxC,GACtC,OAAO,IAAIkB,KAAKF,YAAYhB,EAAGkB,KAAKuJ,aACnC1I,EAAErB,UAAUgxC,gBAAkB,WAC/B,OAAOxwC,KAAKuwC,aAAa,OACxB1vC,EAAErB,UAAUksC,mBAAqB,SAAU5sC,GAC5C,OAAO,IAAIkB,KAAKF,YAAYE,KAAKgrB,KAAMlsB,IACtC+B,EAAErB,UAAUixC,sBAAwB,WACrC,OAAOzwC,KAAK0rC,mBAAmB,OAC9B7qC,EAAErB,UAAUsvC,mBAAqB,SAAUhwC,GAC5C,IAAIoB,EACJ,OAAOF,KAAKuwC,cAAcrwC,EAAIpB,EAAEooB,KAAKlnB,KAAKgrB,OAAS9qB,EAAIF,KAAKgrB,KAAK8jB,mBAAmBhwC,KACnF+B,EAAErB,UAAUkxC,aAAe,SAAU5xC,GACtC,IAAIoB,EACJ,OAAOA,EAAIF,KAAKuJ,WAAW8Q,OAAOnc,EAAEY,IAAKkB,KAAK0rC,mBAAmBxrC,IAChEW,EAAErB,UAAUgP,gBAAkB,SAAU1P,GACzC,IAAIoB,EAAGb,EACP,OAAOA,EAAIzB,EAAEkB,GAAGkgB,cAAe9e,EAAIH,EAAEA,EAAEC,KAAKuJ,WAAYzK,GAAIO,GAAIW,KAAK0rC,mBAAmBxrC,IACvFW,EAAErB,UAAUmxC,oBAAsB,WACnC,OAAO3wC,KAAKwO,gBAAgBxO,KAAK6kC,qBAChChkC,EAAErB,UAAUqlC,iBAAmB,WAChC,OAAOpyB,EAAEzS,KAAKuJ,aACb1I,EAAErB,UAAUqkC,cAAgB,WAC7B,OAAO7jC,KAAKuJ,WAAWtG,MAAM,IAC5BpC,EAAErB,UAAUoxC,kBAAoB,WACjC,OAAO5wC,KAAKuJ,WAAWnI,QACtBP,EAAErB,UAAUqxC,oBAAsB,SAAU/xC,GAC7C,OAAOkB,KAAKuJ,WAAWzK,EAAI,IAC1B+B,EAAErB,UAAU4O,aAAe,SAAUtP,GACtC,OAAOsR,EAAErS,KAAKiC,KAAKuJ,WAAYzK,IAAM,GACpC+B,EAAErB,UAAUsxC,cAAgB,WAC7B,OAAO9wC,KAAK4wC,oBAAsB,GACjC/vC,EAAErB,UAAUuxC,yBAA2B,WACxC,OAAOt+B,EAAEzS,KAAKgxC,0BACbnwC,EAAErB,UAAUwxC,sBAAwB,WACrC,IAAIlyC,EAAGoB,EAAGb,EAAGhB,EAAGK,EAChB,IAA0BA,EAAI,GAAIwB,EAAI,EAAGb,GAApChB,EAAI2B,KAAKuJ,YAAiCnI,OAAQ/B,EAAIa,EAAGA,IAAKpB,EAAIT,EAAE6B,GAAItC,EAAEkB,GAAG+rB,UAAYnsB,EAAE+D,KAAK3D,GACrG,OAAOJ,GACNmC,EAAErB,UAAUyxC,gBAAkB,WAC/B,OAAOjxC,KAAKgxC,wBAAwB5vC,QACnCP,EAAErB,UAAUm5B,qBAAuB,WACpC,IAAI75B,EACJ,OAAQA,EAAIkB,KAAK+wC,4BAA8B/wC,KAAKwO,gBAAgB1P,GAAKkB,MACxEa,EAAErB,UAAU24B,qBAAuB,WACpC,IAAIr5B,EAAGoB,EAAGb,EACV,OAAQP,EAAIkB,KAAK+wC,6BAA+B1xC,EAAIW,KAAKuJ,WAAW2nC,YAAYpyC,GAAIoB,EAAIxB,EAAEmE,MAAM,KAAM,CAAC7C,KAAKuJ,WAAYlK,EAAI,EAAG,GAAGgb,OAAOpc,EAAEF,KAAKG,EAAEY,MAAOkB,KAAK0rC,mBAAmBxrC,IAAMF,MACtLa,EAAErB,UAAU2xC,sBAAwB,WACrC,IAAIryC,EAAGoB,EAAGb,EAAGhB,EAAGK,EAChB,IAA0BA,EAAI,GAAIwB,EAAI,EAAGb,GAApChB,EAAI2B,KAAKuJ,YAAiCnI,OAAQ/B,EAAIa,EAAGA,IAAKpB,EAAIT,EAAE6B,GAAItC,EAAEkB,GAAGkgB,eAAiBtgB,EAAE+D,KAAK3D,GAC1G,OAAOJ,GACNmC,EAAErB,UAAU4xC,WAAa,WAC1B,IAAItyC,EACJ,OAAO,OAASA,EAAIlB,EAAEoC,KAAK6kC,qBAAuB/lC,EAAEkgB,mBAAgB,GACnEne,EAAErB,UAAU6xC,gBAAkB,WAC/B,IAAIvyC,EACJ,OAAO,OAASA,EAAIlB,EAAEoC,KAAK6kC,qBAAuB/lC,EAAEgsB,cAAW,GAC9DjqB,EAAErB,UAAU8xC,eAAiB,WAC9B,IAAIxyC,EACJ,OAAO,OAASA,EAAIlB,EAAEoC,KAAK6kC,qBAAuB/lC,EAAEisB,mBAAgB,GACnElqB,EAAErB,UAAU+xC,qCAAuC,SAAUzyC,EAAGoB,GACjE,IAAIb,EAAGzB,EACP,OAAOA,EAAIoC,KAAK2B,YAOV,KAPsBtC,EAAI,WAC9B,OAAQP,GACN,IAAK,UACH,OAAOlB,EAAE4R,QAAQ,KAAMtP,GACzB,IAAK,WACH,OAAOtC,EAAEqF,MAAM,EAAG/C,GAAGgxC,YAAY,OALP,IAOhB7xC,OAAI,GACnBwB,EAAErB,UAAUgd,sBAAwB,WACrC,MAAO,CACLwO,KAAMhrB,KAAKgrB,KAAKzO,UAChBhT,WAAYvJ,KAAKuJ,aAElB1I,EAAErB,UAAUmC,SAAW,WACxB,OAAO3B,KAAKgrB,KAAKrpB,YAChBd,EAAErB,UAAUsL,OAAS,WACtB,MAAO,CACLkgB,KAAMhrB,KAAKgrB,KACXzhB,WAAYvJ,KAAKuJ,aAElB1I,EAAErB,UAAU+lB,aAAe,WAC5B,OAAOvlB,KAAKgrB,KAAKzF,gBAChB1kB,EAAErB,UAAUulC,MAAQ,WACrB,OAAO/kC,KAAKgrB,KAAK+Z,SAChBlkC,EAAErB,UAAU+sC,UAAY,WACzB,OAAOvsC,KAAKgrB,KAAKuhB,aAChB1rC,EAAErB,UAAUgtC,sBAAwB,SAAU1tC,GAC/C,OAAQkB,KAAK8wC,kBAAoBhyC,EAAEgyC,iBAAmB9wC,KAAKulB,iBAAmBzmB,EAAEymB,gBAC/E1kB,EAAErB,UAAUwtC,gBAAkB,SAAUluC,GACzC,IAAIO,EAAGzB,EACP,OAAOyB,EAAIa,EAAEwuC,KAAKE,4BAA4B,MAAOhxC,EAAIoC,KAAKwxC,2BAA2BzC,WAAW1vC,GAAIW,KAAKuwC,aAAa3yC,EAAEmxC,WAAWjwC,EAAEksB,QACxInqB,EAAErB,UAAUytC,cAAgB,SAAUnuC,GACvC,IAAIoB,EAAGb,EACP,OAAO,IAAMP,GAAKoB,EAAI,KAAMb,EAAIW,MAAQlB,IAAMkB,KAAKusC,aAAersC,EAAIF,KAAMX,EAAI,OAASa,EAAIF,KAAKuwC,aAAavwC,KAAKgrB,KAAKokB,eAAe,CAAC,EAAGtwC,KAAMO,EAAIW,KAAKuwC,aAAavwC,KAAKgrB,KAAKokB,eAAe,CAACtwC,EAAGkB,KAAKusC,gBAAiB,CAACrsC,EAAGb,IAC9NwB,EAAErB,UAAUwlC,sBAAwB,WACrC,OAAOhlC,KAAKgrB,KAAKuhB,YAAc,GAC9B1rC,EAAErB,UAAUgyC,yBAA2B,WACxC,OAAOxzC,EAAEgC,KAAKgrB,MAAQhrB,KAAKgrB,KAAKokB,eAAe,CAAC,EAAGpvC,KAAKglC,0BAA4BhlC,KAAKgrB,KAAKwL,QAC7F31B,EAAErB,UAAUonB,aAAe,SAAU9nB,GACtC,OAAOkB,KAAKuJ,WAAWzK,IACtB+B,EAAErB,UAAUqnB,iBAAmB,SAAU/nB,EAAGoB,GAC7C,IAAIb,EAAGX,EAAGiB,EAAGkB,EACb,OAA8BnC,GAAvBiB,EAAIb,EAAE+kC,iBAAuB3jC,MAAIb,EAAIW,KAAKuJ,WAAWrJ,MAAYxB,IAAoB,IAAfd,EAAEyB,GAAGuY,QAAiB/W,EAAIlB,EAAEO,EAAI,GAAIkQ,EAAErS,KAAKM,IAAKwC,GAAK,IAAMb,KAAKulB,iBAAmBzmB,EAAEymB,iBAAmBzmB,EAAEsnB,YACtLrW,EAAI,SAAWjR,GAChB,OAAOA,EAAIiU,EAAEjU,GAAQjB,EAAEiB,IACtBiU,EAAI,SAAWjU,GAChB,IAAIO,EAAGzB,EAAGS,EAAGK,EAAGiB,EAAGkB,EACnB,OAAOnC,GAAI,EAAImC,EAAI/B,EAAE2lC,YAAa7mC,EAAI,GAAKiD,EAAEO,OAASnD,EAAEF,KAAK8C,EAAG,EAAGxB,EAAIwB,EAAEO,OAAS,IAAM/B,EAAI,EAAG,IAAiB,OAAZhB,EAAIwC,EAAExB,MAAkBP,GAAKlB,EAAI,WACnI,IAAIkB,EAAGoB,EAAGb,EACV,IAAKA,EAAI,GAAIP,EAAI,EAAGoB,EAAItC,EAAEwD,OAAQlB,EAAIpB,EAAGA,KAAKa,EAAI/B,EAAEkB,IAAMutC,gBAAkB3tC,GAAI,EAAIW,EAAEoD,KAAKqQ,EAAEnT,KAAON,EAAEoD,KAAK9C,GAC3G,OAAON,EAH4H,GAIhIX,EAAI,IAAIwB,EAAEwuC,KAAKzwC,EAAEF,KAAKH,GAAGyc,OAAO,CAAChc,KAAOS,IAC5CY,EAAIQ,EAAEwuC,KAAKE,4BAA4B,KAAM,CAC9C6C,YAAY,IACV5zC,EAAI,SAAWiB,GACjB,OAAOd,EAAEc,GAAKA,EAAIA,EAAEiwC,WAAWrvC,IAC9B1B,EAAI,SAAWc,GAChB,IAAOO,EACP,OAA0B,KAAnBA,EAAIP,EAAEytC,cAAiCztC,EAAEswC,eAAe,CAAC/vC,EAAI,EAAGA,IAAOgtC,gBAC7Ev5B,EAAI,SAAWhU,GAChB,OAAOA,EAAE+sC,qBAAqB,eAC7B3tC,EAAI,SAAWY,GAChB,IAAIoB,EACJ,OAA+B,OAAxBA,EAAItC,EAAEkB,GAAGkgB,eAA2B,CAAC9e,EAAGpB,GAAK,CAACA,IACpD2T,EAAI,SAAW3T,GAChB,OAAOA,EAAEmE,OAAO,GAAG,IAClBlD,EAAI,SAAWjB,EAAGoB,GACnB,IAAIb,EACJ,OAA8B,KAAvBA,EAAIP,EAAEoyC,YAAYhxC,IAAepB,EAAIJ,EAAEI,EAAGO,EAAG,IACnDwB,EA7I+H,CA8IlIX,EAAE5B,SACJP,KAAKiC,MAAO,WACZ,IAAIlB,EACFO,EACAzB,EACAS,EAAI,SAAWS,EAAGoB,GAChB,SAASb,IACPW,KAAKF,YAAchB,EAErB,IAAK,IAAIlB,KAAKsC,EAAGxB,EAAEX,KAAKmC,EAAGtC,KAAOkB,EAAElB,GAAKsC,EAAEtC,IAC3C,OAAOyB,EAAEG,UAAYU,EAAEV,UAAWV,EAAEU,UAAY,IAAIH,EAAKP,EAAEod,UAAYhc,EAAEV,UAAWV,GAEtFJ,EAAI,GAAGe,eACPE,EAAI,GAAG6P,SAAW,SAAU1Q,GAC1B,IAAK,IAAIoB,EAAI,EAAGb,EAAIW,KAAKoB,OAAQ/B,EAAIa,EAAGA,IAAK,GAAIA,KAAKF,MAAQA,KAAKE,KAAOpB,EAAG,OAAOoB,EACpF,OAAQ,GAEVW,EAAI,GAAGoC,MACT5D,EAAIa,EAAEgO,QAAStQ,EAAIsC,EAAE2gB,SAAU/hB,EAAIoB,EAAEwiB,wBAAyBxiB,EAAEwxC,cAAgB,SAAUhzC,GACxF,SAAS0R,EAAEtR,EAAGoB,GACZ,IAAIb,EACJA,EAAI,MAAQa,EAAIA,EAAI,GAAIF,KAAK2xC,kBAAoBtyC,EAAEsyC,kBAAmB3xC,KAAK4xC,mBAAqBvyC,EAAEuyC,mBAAoB5xC,KAAK6xC,kBAAoBxyC,EAAEwyC,kBAAmB,MAAQ7xC,KAAK2xC,oBAAsB3xC,KAAK2xC,kBAAoB1zC,GAAI,MAAQ+B,KAAK4xC,qBAAuB5xC,KAAK4xC,mBAAqB7hC,GAAI,MAAQ/P,KAAK6xC,oBAAsB7xC,KAAK6xC,kBAAoBh0C,GAAImC,KAAK+kB,KAAOrlB,EAAEZ,GAEtX,IAAIb,EAAGJ,EAAGkS,EAAGrQ,EACb,OAAOrB,EAAE+R,EAAG1R,GAAIT,EAAI,oCAAoCyZ,MAAM,KAAM3H,EAAI,cAAc2H,MAAM,KAAM7Z,EAAI,yBAAyB6Z,MAAM,KAAMtH,EAAE0hC,SAAW,SAAUhzC,EAAGoB,GACnK,IAAIb,EACJ,OAAOA,EAAI,IAAIW,KAAKlB,EAAGoB,IAAM4xC,WAAYzyC,GACxC+Q,EAAE5Q,UAAUsyC,SAAW,WACxB,OAAO9xC,KAAK+xC,mBAAoB/xC,KAAKgyC,+BACpC5hC,EAAE5Q,UAAUyyC,QAAU,WACvB,OAAOjyC,KAAK+kB,KAAK2H,WAChBtc,EAAE5Q,UAAU0yC,QAAU,WACvB,OAAOlyC,KAAK+kB,MACX3U,EAAE5Q,UAAUuyC,iBAAmB,WAChC,IAAIjzC,EAAGO,EAAGhB,EAAGK,EAAGiB,EAChB,IAAKA,EAAI/B,EAAEoC,KAAK+kB,MAAOrmB,EAAI,GAAIiB,EAAEwyC,YAAa,OAAQ9zC,EAAIsB,EAAEyyC,YAAa/zC,EAAEiY,UACzE,KAAKC,KAAKC,aACRxW,KAAKqyC,mBAAmBh0C,GAAKK,EAAE+D,KAAKpE,GAAK2B,KAAKsyC,gBAAgBj0C,GAC9D,MACF,KAAKkY,KAAK+L,aACR5jB,EAAE+D,KAAKpE,GAEX,IAAKS,EAAI,EAAGO,EAAIX,EAAE0C,OAAQ/B,EAAIP,EAAGA,IAAKT,EAAIK,EAAEI,GAAIoB,EAAE0gB,WAAWviB,GAC7D,OAAO2B,KAAK+kB,MACX3U,EAAE5Q,UAAU8yC,gBAAkB,SAAUxzC,GACzC,IAAIoB,EAAGb,EAAGzB,EAAGS,EAAGK,EAChB,IAAKI,EAAEsP,aAAa,UAAY/P,EAAIS,EAAEyzC,SAAU5yC,EAAE5B,KAAKiC,KAAK4xC,mBAAoBvzC,IAAM,GAAKS,EAAE0P,gBAAgB,SAAoCtO,EAAI,EAAGb,GAAjCX,EAAImC,EAAE9C,KAAKe,EAAEyK,aAA0BnI,OAAQ/B,EAAIa,EAAGA,IAAKtC,EAAIc,EAAEwB,GAAG/B,KAAMwB,EAAE5B,KAAKiC,KAAK2xC,kBAAmB/zC,IAAM,GAAK,IAAMA,EAAE4R,QAAQ,cAAgB1Q,EAAE0P,gBAAgB5Q,GAC7R,OAAOkB,GACNsR,EAAE5Q,UAAUwyC,4BAA8B,WAC3C,IAAIlzC,EAAGoB,EAAGtC,EAAGS,EAAGK,EAChB,IAAsDI,EAAI,EAAGoB,GAAxDxB,EAAImC,EAAE9C,KAAKiC,KAAK+kB,KAAK5X,iBAAiB,WAAwB/L,OAAQlB,EAAIpB,EAAGA,KAAgBT,GAAXT,EAAIc,EAAEI,IAAW0zC,yBAA2B,OAASnzC,EAAEhB,IAAMA,EAAE0Q,YAAYnR,GAClK,OAAOoC,KAAK+kB,MACX3U,EAAE5Q,UAAU6yC,mBAAqB,SAAUvzC,GAC5C,OAAQ,MAAQA,EAAIA,EAAEwX,cAAW,KAAYC,KAAKC,aAAexW,KAAKyyC,mBAAmB3zC,IAAMkB,KAAK0yC,wBAAwB5zC,QAAK,GAChIsR,EAAE5Q,UAAUizC,mBAAqB,SAAU3zC,GAC5C,IAAIoB,EACJ,OAAOA,EAAIb,EAAEP,GAAIa,EAAE5B,KAAKiC,KAAK6xC,kBAAmB3xC,IAAM,GACrDkQ,EAAE5Q,UAAUkzC,wBAA0B,SAAUxyC,GACjD,MAAO,UAAYA,EAAEgK,aAAa,yBAA2BpL,EAAEoB,IAC9DR,EAAI,SAAWZ,GAChB,IAAIoB,EAAGb,EAAGzB,EAAGS,EAAGK,EAChB,IAAK,MAAQI,IAAMA,EAAI,IAAKA,EAAIA,EAAEme,QAAQ,sBAAuB,YAAY/c,EAAIkI,SAASuqC,eAAeC,mBAAmB,KAAO3zB,gBAAgByN,UAAY5tB,EAAyClB,EAAI,EAAGS,GAA7CK,EAAIwB,EAAE+J,KAAKkD,iBAAiB,UAAuB/L,OAAQ/C,EAAIT,EAAGA,IAAKyB,EAAIX,EAAEd,GAAIsC,EAAE6kB,KAAKhW,YAAY1P,GACtQ,OAAOa,EAAE6kB,MACR3U,EA7C2E,CA8C9ElQ,EAAE0b,cACJ7d,KAAKiC,MAAO,WACZ,IAAIlB,EACFO,EACAzB,EACAS,EACAK,EACAiB,EACAkB,EACAuP,EACAnS,EACAJ,EACAkS,EACArQ,EAAI,SAAWZ,EAAGoB,GAChB,SAASb,IACPW,KAAKF,YAAchB,EAErB,IAAK,IAAIlB,KAAKsC,EAAGhC,EAAEH,KAAKmC,EAAGtC,KAAOkB,EAAElB,GAAKsC,EAAEtC,IAC3C,OAAOyB,EAAEG,UAAYU,EAAEV,UAAWV,EAAEU,UAAY,IAAIH,EAAKP,EAAEod,UAAYhc,EAAEV,UAAWV,GAEtFZ,EAAI,GAAGuB,eACPgT,EAAI,GAAGjD,SAAW,SAAU1Q,GAC1B,IAAK,IAAIoB,EAAI,EAAGb,EAAIW,KAAKoB,OAAQ/B,EAAIa,EAAGA,IAAK,GAAIA,KAAKF,MAAQA,KAAKE,KAAOpB,EAAG,OAAOoB,EACpF,OAAQ,GAEZpB,EAAIoB,EAAEke,eAAgBze,EAAIO,EAAEqhB,YAAa1jB,EAAIqC,EAAEgO,QAASxP,EAAIwB,EAAE4hB,iBAAkB/R,EAAI7P,EAAE2gB,SAAUxiB,EAAI6B,EAAE0f,2BAA4BhiB,EAAIsC,EAAEmgB,oBAAqBxf,EAAIX,EAAEwiB,wBAAyBtS,EAAIlQ,EAAE8c,gBAAiB3d,EAAIa,EAAEkd,2BAA4Bnf,EAAIiC,EAAEmd,0BAA2Bnd,EAAE2yC,WAAa,SAAU30C,GAC7S,SAAS6B,EAAEjB,EAAGoB,GACZF,KAAKg3B,KAAOl4B,EAAGkB,KAAK8yC,kBAAoB,MAAQ5yC,EAAIA,EAAI,IAAI4yC,iBAAkB9yC,KAAK+yC,OAAS,GAAI/yC,KAAKgzC,cAAgB,GAAIhzC,KAAKizC,kBAAoB,GAEpJ,IAAIj1C,EAAG8U,EAAGC,EAAGjS,EAAGsQ,EAAGY,EAAGrR,EAAG6R,EAAGsF,EAAGM,EAAGse,EAAG91B,EACrC,OAAOlB,EAAEK,EAAG7B,GAAI6B,EAAEiL,MAAQ,SAAUlM,EAAGoB,GACrC,IAAIb,EACJ,OAAOA,EAAI,IAAIW,KAAKlB,EAAGoB,IAAM8K,QAAS3L,GACrCU,EAAEP,UAAU0zC,YAAc,WAC3B,OAAOhzC,EAAEssB,SAASpQ,SAASpc,KAAK+yC,SAC/BhzC,EAAEP,UAAUwL,MAAQ,WACrB,IAAIlM,EAAGO,EACP,IACE,IAAKW,KAAKmzC,wBAAyBr0C,EAAIoB,EAAEwxC,cAAcI,SAAS9xC,KAAKg3B,MAAMib,UAAWjyC,KAAKozC,iBAAiB1mB,UAAY5tB,EAAGO,EAAI0Q,EAAE/P,KAAKozC,iBAAkB,CACtJryB,YAAapgB,IACXtB,EAAE8yC,YAAanyC,KAAKqzC,YAAYh0C,EAAE+yC,aACtC,OAAOpyC,KAAKszC,yCACZ,QACAtzC,KAAKuzC,0BAENxzC,EAAEP,UAAU2zC,sBAAwB,WACrC,OAAOnzC,KAAK8yC,kBAAoB9yC,KAAKozC,iBAAmBpzC,KAAK8yC,iBAAiBhmB,WAAU,GAAK9sB,KAAKozC,iBAAiB5kC,gBAAgB,MAAOxO,KAAKozC,iBAAiB9kC,aAAa,qBAAsB,IAAKtO,KAAKozC,iBAAiBvkC,MAAMC,QAAU,OAAQ9O,KAAK8yC,iBAAiBzmC,WAAW6W,aAAaljB,KAAKozC,iBAAkBpzC,KAAK8yC,iBAAiB1gC,eAAiBpS,KAAKozC,iBAAmBzzC,EAAE,CAC1XuO,QAAS,MACTW,MAAO,CACLC,QAAS,UAET1G,SAAS2c,KAAKhW,YAAY/O,KAAKozC,oBAClCrzC,EAAEP,UAAU+zC,sBAAwB,WACrC,OAAOrzC,EAAE0gB,WAAW5gB,KAAKozC,mBACxBzyC,EAAI,SAAW7B,GAChB,MAAO,UAAYjB,EAAEiB,GAAKmiB,WAAWuyB,cAAgBvyB,WAAWwyB,eAC/D1zC,EAAEP,UAAU6zC,YAAc,SAAUv0C,GACrC,OAAQA,EAAEwX,UACR,KAAKC,KAAKgK,UACR,IAAKvgB,KAAK0zC,wBAAwB50C,GAAI,OAAOkB,KAAK2zC,uBAAuB70C,GAAIkB,KAAK4zC,gBAAgB90C,GAClG,MACF,KAAKyX,KAAKC,aACR,OAAOxW,KAAK6zC,sBAAsB/0C,GAAIkB,KAAK8zC,eAAeh1C,KAE7DiB,EAAEP,UAAUm0C,uBAAyB,SAAUzzC,GAChD,IAAIb,EAAGzB,EAAGS,EACV,OAAOT,EAAIsC,EAAEmM,cAAkBrM,KAAK+zC,qBAAuB/zC,KAAKg0C,eAAe9zC,EAAEiS,iBAAmBnS,KAAKi0C,2BAA2B,MAAQr2C,IAAMoC,KAAKozC,mBAAqBpzC,KAAKg0C,eAAep2C,KAAOyB,EAAIW,KAAKk0C,mBAAmBt2C,GAAIkB,EAAEO,EAAG,OAAShB,EAAI2B,KAAKm0C,cAAgB91C,EAAEkL,gBAAa,SAAW,GAAUvJ,KAAKm0C,aAAen0C,KAAKo0C,oCAAoC/0C,EAAGzB,GAAIoC,KAAK+zC,oBAAsBn2C,IAChZmC,EAAEP,UAAUq0C,sBAAwB,SAAU3zC,GAC/C,IAAIb,EAAGhB,EAAGK,EAAGiB,EACb,GAAIjB,EAAIsB,KAAKg0C,eAAe9zC,GAAI7B,EAAIT,EAAEoC,KAAK+zC,oBAAqB7zC,GAAIxB,IAAMsB,KAAKg0C,eAAe9zC,EAAEmW,aAC9F,KAAMrW,KAAK0zC,wBAAwBxzC,EAAEmW,cAAgBrW,KAAKg0C,eAAe9zC,EAAEkW,sBAAwB/W,EAAIW,KAAKk0C,mBAAmBh0C,GAAIA,EAAEmW,YAAa,OAAOhY,GAAKS,EAAEO,EAAGW,KAAKm0C,aAAa5qC,YAAcvJ,KAAKi0C,2BAA2B,OAASj0C,KAAKm0C,aAAen0C,KAAKo0C,oCAAoC/0C,EAAGa,GAAIF,KAAK+zC,oBAAsB7zC,QACtU,GAAIF,KAAK+zC,sBAAwB11C,IAAMK,EAAG,OAAQiB,EAAIK,KAAKq0C,uBAAuBn0C,IAAMF,KAAK6zC,sBAAsBl0C,IAAMK,KAAKm0C,aAAen0C,KAAKs0C,mBAAoBt0C,KAAK+zC,oBAAsB,OACvMh0C,EAAEP,UAAU60C,uBAAyB,SAAUv1C,GAChD,IAAIoB,EACJ,IAAKA,EAAIpB,EAAEsiC,cAAelhC,GAAKA,IAAMF,KAAKozC,kBAAmB,CAC3D,GAAIpzC,KAAKg0C,eAAe9zC,IAAMuS,EAAE1U,KAAKiC,KAAKgzC,cAAe9yC,IAAM,EAAG,OAAOA,EACzEA,EAAIA,EAAEkhC,cAER,OAAO,MACNrhC,EAAEP,UAAUo0C,gBAAkB,SAAU90C,GACzC,IAAIoB,EAAGb,EACP,OAAOA,EAAIP,EAAEkU,KAAMF,EAAEhU,EAAEuN,cAAgBhN,EAAIpB,EAAEoB,GAAIq3B,EAAE,OAASx2B,EAAIpB,EAAEqT,iBAAmBjS,EAAE2hB,iBAAc,KAAYxiB,EAAI+R,EAAE/R,KAAMW,KAAKi0C,2BAA2B50C,EAAGW,KAAKu0C,kBAAkBz1C,EAAEuN,cACxLtM,EAAEP,UAAUs0C,eAAiB,SAAUh1C,GACxC,IAAIoB,EAAGb,EAAGzB,EAAGS,EAAGK,EAChB,GAAImC,EAAE/B,GAAI,OAAOoB,EAAIsS,EAAE1T,EAAG,cAAeR,OAAO6f,KAAKje,GAAGkB,SAAW/C,EAAI2B,KAAKu0C,kBAAkBz1C,GAAIkB,KAAKw0C,+BAA+Bt0C,EAAG7B,GAAIS,EAAE4tB,UAAY,IAAK1sB,KAAKizC,kBAAkBxwC,KAAK3D,GAC5L,OAAQjB,EAAEiB,IACR,IAAK,KACH,OAAOkB,KAAKy0C,UAAU31C,IAAMkB,KAAKg0C,eAAel1C,EAAEsT,cAAgBpS,KAAKi0C,2BAA2B,KAAMj0C,KAAKu0C,kBAAkBz1C,IAAKkB,KAAKizC,kBAAkBxwC,KAAK3D,GAClK,IAAK,MAKH,IAAKO,KAJLa,EAAI,CACFoJ,IAAKxK,EAAEoL,aAAa,OACpBogC,YAAa,SACZ1sC,EAAIkD,EAAEhC,GACIJ,EAAId,EAAEyB,GAAIa,EAAEb,GAAKX,EAC9B,OAAOsB,KAAKw0C,+BAA+Bt0C,EAAGF,KAAKu0C,kBAAkBz1C,IAAKkB,KAAKizC,kBAAkBxwC,KAAK3D,GACxG,IAAK,KACH,GAAIA,EAAEuN,WAAWgK,aAAevX,EAAG,OAAOkB,KAAKi0C,2BAA2B,MAC1E,MACF,IAAK,KACH,GAAIn1C,EAAEuN,WAAWgK,aAAevX,EAAG,OAAOkB,KAAKi0C,2BAA2B,SAE7El0C,EAAEP,UAAU40C,oCAAsC,SAAUt1C,EAAGoB,GAChE,IAAIb,EACJ,OAAOW,KAAKgzC,cAAcvwC,KAAKvC,GAAIb,EAAIrB,EAAEc,GAAIkB,KAAK+yC,OAAOtwC,KAAKpD,GAAIA,GACjEU,EAAEP,UAAU80C,iBAAmB,WAChC,OAAOt0C,KAAKo0C,oCAAoC,GAAI,OACnDr0C,EAAEP,UAAUy0C,2BAA6B,SAAUn1C,EAAGoB,GACvD,OAAOF,KAAK00C,YAAYt8B,EAAEtZ,EAAGoB,KAC5BH,EAAEP,UAAUg1C,+BAAiC,SAAU11C,EAAGoB,GAC3D,OAAOF,KAAK00C,YAAY58B,EAAEhZ,EAAGoB,KAC5BH,EAAEP,UAAUk1C,YAAc,SAAU51C,GACrC,OAAO,IAAMkB,KAAK+yC,OAAO3xC,QAAUpB,KAAKs0C,mBAAoBt0C,KAAK+yC,OAAO/yC,KAAK+yC,OAAO3xC,OAAS,GAAG4pB,KAAKvoB,KAAK3D,IACzGiB,EAAEP,UAAUm1C,0BAA4B,SAAU71C,EAAGoB,GACtD,IAAIb,EAAGzB,EACP,MAAqD,YAAc,OAAnCyB,GAAzBzB,EAAIoC,KAAK+yC,OAAO7yC,GAAG8qB,MAAYptB,EAAEwD,OAAS,IAA8B/B,EAAEmJ,UAAO,GAAUnJ,EAAE+3B,QAAUt4B,EAAIlB,EAAE6E,KAAK2V,EAAEtZ,KAC1HiB,EAAEP,UAAUo1C,2BAA6B,SAAU91C,EAAGoB,GACvD,IAAIb,EAAGzB,EACP,MAA0C,YAAc,OAAxByB,GAAzBzB,EAAIoC,KAAK+yC,OAAO7yC,GAAG8qB,MAAY,IAA8B3rB,EAAEmJ,UAAO,GAAUnJ,EAAE+3B,OAASt4B,EAAIO,EAAE+3B,OAASx5B,EAAEi3C,QAAQz8B,EAAEtZ,KAC5HsZ,EAAI,SAAWtZ,EAAGoB,GAEnB,OAAO,MAAQA,IAAMA,EAAI,IAAS,SAAoB,CACpDk3B,OAD0Ct4B,EAAIsR,EAAEtR,GAEhDyK,WAAYrJ,EACZsI,KAHgC,WAKjCsP,EAAI,SAAWhZ,EAAGoB,GAEnB,OAAO,MAAQA,IAAMA,EAAI,IAAS,aAAc,CAC9CiqB,WAAYrrB,EACZyK,WAAYrJ,EACZsI,KAHgC,eAKjCxK,EAAI,SAAWc,GAEhB,OAAO,MAAQA,IAAMA,EAAI,IAAa,CACpCksB,KADgC,GAEhCzhB,WAAYzK,IAEbiB,EAAEP,UAAU+0C,kBAAoB,SAAUz1C,GAC3C,IAAIO,EAAGzB,EAAGc,EAAGiB,EAAGyQ,EAAGnS,EAAGJ,EAAGkS,EAAGrQ,EAAGxB,EAAGuU,EAAG1S,EAErC,IAAKV,KADLX,EAAI,GAAIgB,EAAIQ,EAAEyb,OAAOmD,eACR,IAAI1O,EAAI1Q,EAAEL,IAAM6O,SAAW7P,EAAES,EAAG,CAC3C0gB,iBAAkBpP,EAAElC,QACpB8R,UAAWhgB,KAAKozC,mBACd10C,EAAEW,IAAK,OAAQ,GAAI+Q,EAAE2b,QACvB,GAAIhsB,EAAIqQ,EAAE2b,OAAOjtB,GAAI,CACnB,IAAKlB,GAAI,EAA2CK,EAAI,EAAG8R,GAA9C7R,EAAI8B,KAAK80C,0BAA0Bh2C,IAAiBsC,OAAQ2O,EAAI9R,EAAGA,IAAK,GAAI0B,EAAIzB,EAAED,GAAImS,EAAE2b,OAAOpsB,KAAOI,EAAG,CACpHnC,GAAI,EACJ,MAEFA,IAAMc,EAAEW,GAAKU,SAEVqQ,EAAE+zB,gBAAkBpkC,EAAIjB,EAAE+P,MAAMuB,EAAE+zB,kBAAoBzlC,EAAEW,GAAKU,GACpE,GAAIc,EAAE/B,GAEJ,IAAKjB,KADL4U,EAAID,EAAE1T,EAAG,cACIiB,EAAI0S,EAAE5U,GAAIa,EAAEb,GAAKkC,EAEhC,OAAOrB,GACNqB,EAAEP,UAAU00C,mBAAqB,SAAUp1C,GAC5C,IAAIO,EAAGzB,EAAGS,EAAGK,EACb,IAAKd,EAAI,GAAIkB,GAAKA,IAAMkB,KAAKozC,kBAAmB,CAE9C,IAAK/zC,KADLX,EAAIwB,EAAEyb,OAAOiD,iBACsB,KAAtBvgB,EAAIK,EAAEW,IAAM2L,OAAgBnN,EAAEiB,KAAOT,EAAE6P,WAAa,mBAAqB7P,EAAE+D,KAAO/D,EAAE+D,KAAKtD,QAAK,KAAYT,EAAE+D,QAAUxE,EAAE6E,KAAKpD,GAAIhB,EAAE2gB,eAAiBphB,EAAE6E,KAAKpE,EAAE2gB,gBAC1KlgB,EAAIA,EAAEuN,WAER,OAAOzO,EAAEm3C,WACRh1C,EAAEP,UAAUs1C,0BAA4B,SAAUh2C,GACnD,IAAIoB,EAAGb,EACP,IAAKa,EAAI,GAAIpB,GAAKA,IAAMkB,KAAKozC,kBAAmB/zC,EAAIxB,EAAEiB,GAAI2T,EAAE1U,KAAKW,IAAKW,IAAM,GAAKa,EAAEuC,KAAK3D,GAAIA,EAAIA,EAAEuN,WAClG,OAAOnM,GACNsS,EAAI,SAAW1T,EAAGoB,GACnB,IAAIb,EACJ,IACE,MAAyD,eAAlDA,EAAIkL,KAAKS,MAAMlM,EAAEoL,aAAa,aAAehK,KAAuBoqC,aAAejrC,EAAE4F,UAAY5F,EAAE4F,QAAUysC,cAAcI,SAASzyC,EAAE4F,SAASgtC,WAAY5yC,EAClK,MAAOzB,GACP,MAAO,KAERkD,EAAI,SAAWhC,GAChB,IAAIoB,EAAGb,EAAGzB,EACV,OAAOA,EAAIkB,EAAEoL,aAAa,SAAU7K,EAAIP,EAAEoL,aAAa,UAAWhK,EAAI,GAAItC,IAAMsC,EAAEwjC,MAAQ7hC,SAASjE,EAAG,KAAMyB,IAAMa,EAAEghC,OAASr/B,SAASxC,EAAG,KAAMa,GAC9IH,EAAEP,UAAUw0C,eAAiB,SAAUl1C,GACxC,IAAIoB,EACJ,IAAK,MAAQpB,EAAIA,EAAEwX,cAAW,KAAYC,KAAKC,eAAiB3V,EAAE/B,KAAOT,EAAES,EAAG,CAC5E0gB,iBAAkB,KAClBQ,UAAWhgB,KAAKozC,mBACd,OAAOlzC,EAAIrC,EAAEiB,GAAI2T,EAAE1U,KAAKW,IAAKwB,IAAM,GAAK,UAAYC,OAAO6rB,iBAAiBltB,GAAGgQ,SAClF/O,EAAEP,UAAUk0C,wBAA0B,SAAU50C,GACjD,IAAIoB,EAAGb,EAAGzB,EACV,IAAK,MAAQkB,EAAIA,EAAEwX,cAAW,KAAYC,KAAKgK,WAAa3f,EAAE9B,EAAEkU,QAAU3T,EAAIP,EAAEuN,WAAYzO,EAAIkB,EAAEqT,gBAAiBjS,EAAIpB,EAAEsT,cAAeJ,EAAE3S,EAAE8S,kBAAoBnS,KAAKg0C,eAAe30C,EAAE8S,oBAAsBW,EAAEzT,IAAK,OAAQzB,GAAKoC,KAAKg0C,eAAep2C,KAAOsC,GAAKF,KAAKg0C,eAAe9zC,IACnRH,EAAEP,UAAUi1C,UAAY,SAAU31C,GACnC,MAAO,OAASjB,EAAEiB,IAAMkB,KAAKg0C,eAAel1C,EAAEuN,aAAevN,EAAEuN,WAAWm5B,YAAc1mC,GACvFgU,EAAI,SAAWhU,GAChB,IAAIoB,EACJ,MAAkD,SAA3CA,EAAIC,OAAO6rB,iBAAiBltB,GAAGk2C,aAA2B,aAAe90C,GAAK,aAAeA,GACnG8R,EAAI,SAAWlT,GAChB,OAAOA,IAAM43B,EAAE53B,EAAE+iB,cAChB9hB,EAAEP,UAAU8zC,uCAAyC,WACtD,IAAOpzC,EAAGb,EAAGzB,EAAGS,EAAGK,EAAGiB,EAAGkB,EACzB,IAAKX,EAAIF,KAAKi1C,iCAAmDp0C,EAAI,GAAIjD,EAAIyB,EAAI,EAAGhB,GAApCsB,EAAIK,KAAK+yC,QAAiC3xC,OAAQ/C,EAAIgB,EAAGzB,IAAMyB,EAAOM,EAAE/B,IAAKc,EAAIsB,KAAKk1C,+BAA+Bt3C,MAAQc,EAAE06B,IAAM,EAAIl5B,EAAEk5B,KAAOp5B,KAAK40C,2BAA2B,KAAMh3C,GAAIiD,EAAE4B,KAAK/D,EAAEy2C,OAAS,EAAIj1C,EAAEi1C,OAASn1C,KAAK20C,0BAA0B,KAAM/2C,QAAK,IACvT,OAAOiD,GACNd,EAAEP,UAAU01C,+BAAiC,SAAUp2C,GACxD,IAAIoB,EAAGb,EACP,QAASa,EAAIF,KAAKgzC,cAAcl0C,MAAQoB,EAAE2hB,cAAgBxiB,EAAIxB,EAAEqC,GAAIuS,EAAE1U,KAAKW,IAAKW,IAAM,GAAKoT,EAAE1U,KAAKiC,KAAKizC,kBAAmB/yC,IAAM,QAAK,EAAS6S,EAAE7S,IAC/IH,EAAEP,UAAUy1C,+BAAiC,WAC9C,IAAIn2C,EACJ,OAAOA,EAAIa,EAAEO,EAAEyb,OAAOiD,gBAAyB,QAAE1Q,SAAUlO,KAAKozC,iBAAiBrkC,YAAYjQ,GAAIiU,EAAEjU,IAClGiU,EAAI,SAAWjU,GAChB,IAAIoB,EACJ,MAAuC,WAAhCA,EAAIC,OAAO6rB,iBAAiBltB,IAAkBgQ,QAAU,CAC7DsqB,IAAKv3B,SAAS3B,EAAEk1C,WAChBD,OAAQtzC,SAAS3B,EAAEm1C,oBACjB,GACHjkC,EAAI,SAAWtS,GAChB,OAAOA,EAAEme,QAAQC,OAAO,IAAM7d,EAAEie,OAAS,KAAM,KAC9C1c,EAAI,SAAW9B,GAChB,OAAOoe,OAAO,IAAM7d,EAAEie,OAAS,MAAMlb,KAAKtD,IACzC43B,EAAI,SAAW53B,GAChB,MAAO,MAAMsD,KAAKtD,IACjBiB,EAjMgS,CAkMnSG,EAAE0b,cACJ7d,KAAKiC,MAAO,WACZ,IAAIlB,EACFO,EACAzB,EACAS,EACAK,EAAI,SAAWI,EAAGoB,GAChB,SAASb,IACPW,KAAKF,YAAchB,EAErB,IAAK,IAAIlB,KAAKsC,EAAGP,EAAE5B,KAAKmC,EAAGtC,KAAOkB,EAAElB,GAAKsC,EAAEtC,IAC3C,OAAOyB,EAAEG,UAAYU,EAAEV,UAAWV,EAAEU,UAAY,IAAIH,EAAKP,EAAEod,UAAYhc,EAAEV,UAAWV,GAEtFa,EAAI,GAAGF,eACPoB,EAAI,GAAGoC,MACPmN,EAAI,GAAGZ,SAAW,SAAU1Q,GAC1B,IAAK,IAAIoB,EAAI,EAAGb,EAAIW,KAAKoB,OAAQ/B,EAAIa,EAAGA,IAAK,GAAIA,KAAKF,MAAQA,KAAKE,KAAOpB,EAAG,OAAOoB,EACpF,OAAQ,GAEZpB,EAAIoB,EAAEke,eAAgBxgB,EAAIsC,EAAE4iB,eAAgBzkB,EAAI6B,EAAE6iB,iBAAkB1jB,EAAIa,EAAEye,eAAgBze,EAAEssB,SAAW,SAAU7sB,GAC/G,SAAS1B,EAAEa,GACT,MAAQA,IAAMA,EAAI,IAAKb,EAAEie,UAAUpc,YAAY+C,MAAM7C,KAAM0I,WAAY,IAAM5J,EAAEsC,SAAWtC,EAAI,CAAC,IAAIoB,EAAEowC,QAAWtwC,KAAKs1C,UAAYp1C,EAAEgtC,eAAetwB,IAAI9d,GAExJ,IAAIjB,EACJ,OAAOa,EAAET,EAAG0B,GAAI1B,EAAEme,SAAW,SAAUtd,GACrC,IAAIO,EACJ,OAIK,IAAIW,KAJE,WACT,IAAIpC,EAAGS,EAAGK,EACV,IAAKA,EAAI,GAAId,EAAI,EAAGS,EAAIS,EAAEsC,OAAQ/C,EAAIT,EAAGA,IAAKyB,EAAIP,EAAElB,GAAIc,EAAE+D,KAAKvC,EAAEowC,MAAMl0B,SAAS/c,IAChF,OAAOX,EAHE,KAKVT,EAAEwuB,SAAW,SAAU3tB,EAAGO,GAC3B,OAAOa,EAAE2yC,WAAW7nC,MAAMlM,EAAGO,GAAG6zC,eAC/Bj1C,EAAEs3C,WAAa,SAAUz2C,EAAGO,GAC7B,IAAIzB,EACJ,OAAOA,EAAIsC,EAAEwuC,KAAKE,4BAA4B9vC,EAAGO,GAAI,IAAIW,KAAK,CAAC,IAAIE,EAAEowC,MAAM1yC,MAC1EK,EAAEuB,UAAU4mB,QAAU,WACvB,IAAItnB,EACJ,OAAO,IAAMkB,KAAKs1C,UAAUl0C,UAAWtC,EAAIkB,KAAKw1C,gBAAgB,IAAMpvB,YAActnB,EAAEgyC,kBACrF7yC,EAAEuB,UAAUg3B,KAAO,SAAU13B,GAC9B,IAAIoB,EACJ,OAAO,MAAQpB,IAAMA,EAAI,IAAKoB,EAAIpB,EAAE22C,kBAAoBz1C,KAAKs1C,UAAUlH,cAAcjoB,UAAYnmB,KAAKs1C,UAAUnvB,UAAW,IAAInmB,KAAKF,YAAYI,IAC/IjC,EAAEuB,UAAUk2C,6BAA+B,SAAU52C,GACtD,IAAIO,EACJ,OAAOA,EAAI,IAAIa,EAAE+mB,UAAUnoB,EAAEgoB,cAAe9mB,KAAK8uC,mBAAmBzvC,IACnEpB,EAAEuB,UAAUsvC,mBAAqB,SAAUhwC,GAC5C,IAAIoB,EAAGb,EAAGzB,EACV,OAAOyB,EAAI,WACT,IAAIA,EAAGhB,EAAGK,EAAGiB,EACb,IAA2BA,EAAI,GAAIN,EAAI,EAAGhB,GAArCK,EAAIsB,KAAKqlC,aAAkCjkC,OAAQ/C,EAAIgB,EAAGA,IAAKa,EAAIxB,EAAEW,GAAIM,EAAE8C,MAAM7E,EAAIkB,EAAEooB,KAAKhnB,IAAMtC,EAAIsC,EAAE4uC,mBAAmBhwC,IAChI,OAAOa,GACP5B,KAAKiC,MAAO,IAAIA,KAAKF,YAAYT,IAClCpB,EAAEuB,UAAUm2C,4BAA8B,SAAU72C,GACrD,IAAIoB,EAAGb,EAAGzB,EACV,OAAO,MAAQkB,IAAMA,EAAI,IAAKlB,EAAI,WAChC,IAAIA,EAAGS,EAAGK,EAAGiB,EACb,IAA2BA,EAAI,GAAI/B,EAAI,EAAGS,GAArCK,EAAIsB,KAAKqlC,aAAkCjkC,OAAQ/C,EAAIT,EAAGA,IAAKyB,EAAIX,EAAEd,GAAIsC,EAAIpB,EAAEub,OAAOhb,EAAEwkC,iBAAkBlkC,EAAE8C,KAAKpD,EAAEqsC,mBAAmBxrC,IAC3I,OAAOP,GACP5B,KAAKiC,MAAO,IAAIA,KAAKF,YAAYlC,IAClCK,EAAEuB,UAAUo2C,aAAe,SAAU92C,EAAGoB,GACzC,IAAIb,EACJ,OAAuC,KAAhCA,EAAIW,KAAKs1C,UAAU9lC,QAAQ1Q,IAAekB,KAAO,IAAIA,KAAKF,YAAYE,KAAKs1C,UAAU7H,qBAAqBvtC,EAAGb,KACnHpB,EAAEuB,UAAUq2C,sBAAwB,SAAU/2C,EAAGoB,GAClD,IAAIb,EAAGX,EAAGiB,EAAGkB,EAAGuP,EAAGnS,EAAGJ,EACtB,OAAOa,EAAII,EAAEw2C,UAAWllC,GAAKlQ,EAAItC,EAAEsC,IAAI,GAAsCP,GAAlC1B,EAAI+B,KAAK81C,qBAAqB1lC,IAAU+9B,MAAOttC,EAAI5C,EAAE2f,OAAQ/f,EAAImC,KAAMX,EAAIW,KAAK+1C,mBAAmB3lC,GAAI/R,EAAE6B,IAAMb,EAAE+mB,YAAc/mB,EAAEyxC,gBAAkBjzC,EAAI,IAAImC,KAAKF,YAAYjC,EAAEy3C,UAAU5H,oBAAoB/tC,IAAMN,EAAE2lC,0BAA4BnkC,GAAKuP,IAAKvS,EAAIA,EAAEoxC,kBAAkB/uC,GAAI,IAAIF,KAAKF,YAAYjC,EAAEy3C,UAAUhI,+BAA+B5uC,EAAG0R,KACnYnS,EAAEuB,UAAUw2C,qBAAuB,SAAU91C,EAAGb,GACjD,IAAIhB,EAAGK,EAAGiB,EAAGkB,EAAGuP,EAAGnS,EAAGJ,EAAGkS,EAAGrQ,EAAGxB,EAAGuU,EAAG1S,EACrC,OAAO0S,GAAKpT,EAAIzB,EAAEyB,IAAI,GAAInB,EAAI8B,KAAK81C,qBAAqBrjC,GAAI/T,EAAIsB,KAAKw1C,gBAAgBt3C,EAAEiwC,OAAOtK,gBAAiBxlC,EAAI6B,EAAE+1C,yBAA0Bl2C,EAAIrB,EAAEuE,OAAO5E,EAAE+C,QAAStC,EAAET,EAAG0B,IAAMlC,EAAIa,EAAEuE,MAAM,GAAI5E,EAAE+C,QAASnD,EAAIiC,EAAEy1C,4BAA4B93C,IAAMI,EAAIiC,EAAEs2B,KAAK,CAC9Pif,mBAAmB,IAClBE,4BAA4Bj3C,GAAIiB,EAAI1B,EAAEi4C,gBAAiBr1C,EAAI5C,EAAEu3C,gBAAgB,GAAI12C,EAAEJ,EAAGmC,EAAEgjC,kBAAoBzzB,EAAIvP,EAAE2wC,2BAA4B9xC,EAAIM,KAAKm2C,kBAAkB/lC,EAAG/Q,GAAIM,EAAI,IAAM1B,EAAI,IAAI+B,KAAKF,YAAY7B,EAAEonC,YAAYpiC,MAAM,IAAK8M,EAAI0C,EAAIrC,EAAEm8B,YAAa7sC,EAAIA,EAAEm2C,sBAAsB53C,EAAG8R,KAAOrQ,EAAIM,KAAK61C,sBAAsB53C,EAAGoB,GAAIK,GACjVzB,EAAEuB,UAAU22C,kBAAoB,SAAUr3C,EAAGoB,GAC9C,IAAIb,EAAGhB,EAAGK,EAAGiB,EAAGkB,EAChB,OAAOA,GAAKX,EAAItC,EAAEsC,IAAI,GAAsC7B,GAAlCsB,EAAIK,KAAK81C,qBAAqBj1C,IAAUstC,MAAOzvC,EAAIiB,EAAEie,OAAQve,EAAIW,KAAKivC,kBAAkB/uC,GAAI,IAAIF,KAAKF,YAAYT,EAAEi2C,UAAU9H,kBAAkBnvC,GAAG,SAAU6B,GACpL,OAAOA,EAAEqwC,aAAarwC,EAAE8qB,KAAKgkB,qBAAqBlwC,EAAGJ,SAEtDT,EAAEuB,UAAUyvC,kBAAoB,SAAUnwC,GAC3C,IAAIoB,EAAGb,EAAGX,EAAGiB,EAAGkB,EAAGuP,EAAGnS,EAAGJ,EAAGkS,EAAGrQ,EAAGxB,EAASF,EAAG8U,EAAGC,EAAGjS,EAAGsQ,EAAGY,EAAGrR,EAC7D,OAAqB9C,GAAd6B,EAAIZ,EAAIlB,EAAEkB,IAAU,GAAIsS,EAAI1R,EAAE,GAAIrB,EAAES,GAAKkB,MAA4CoQ,GAApClS,EAAI8B,KAAKo2C,uBAAuBt3C,IAAU,GAAIiU,EAAI7U,EAAE,GAAI2C,EAAIuP,EAAE+9B,MAAOlwC,EAAImS,EAAEwN,OAAQje,EAAIK,KAAKw1C,gBAAgB30C,GAAIiS,EAAIC,EAAEo7B,MAAOrtC,EAAIiS,EAAE6K,OAAQ5f,EAAIgC,KAAKw1C,gBAAgB1iC,GAAQ1B,EAAIvT,IAAM,GAAK8B,EAAEqlC,0BAA4B/mC,GAAKD,EAAEgnC,0BAA4BlkC,GAAK,OAAS9C,EAAEgtB,KAAK6kB,oBAAoB/uC,GAAQpC,EAAIsB,KAAKs1C,UAAU9H,kBAAkB16B,GAAG,SAAUhU,GACrZ,OAAOA,EAAEyxC,aAAazxC,EAAEksB,KAAKikB,kBAAkB,CAACnuC,EAAGA,EAAI,SACnDiP,EAAIpQ,EAAEqrB,KAAKokB,eAAe,CAAC,EAAGnxC,IAAK+T,EAAIhU,EAAEgtB,KAAKokB,eAAe,CAACtuC,EAAG9C,EAAEuuC,cAAe5rC,EAAIoP,EAAEg/B,WAAW/8B,GAAqF3S,EAA7EwB,IAAMiS,GAAK,IAAM7U,GAAY0B,EAAEixC,qBAAuB5yC,EAAE4yC,oBAA6B5yC,EAAEuyC,aAAa5vC,GAAKhB,EAAE4wC,aAAa5vC,GAAIT,EAAI4S,EAAI,EAAIjS,EAAGnC,EAAIsB,KAAKs1C,UAAU5lC,OAAO7O,EAAGX,EAAGb,IAAK,IAAIW,KAAKF,YAAYpB,KACrTT,EAAEuB,UAAU2vC,4BAA8B,SAAUrwC,EAAGoB,GACxD,IAAIb,EAAGhB,EAAGK,EAAGiB,EAAGyQ,EAAGnS,EAAGJ,EAAGkS,EAAGrQ,EAAGxB,EAC/B,OAAqBwB,GAAdzB,EAAIa,EAAIlB,EAAEkB,IAAU,GAAIJ,EAAIT,EAAE,GAAIiC,GAAKR,GAAKhB,GAAKwB,EAAIF,MAAQ3B,EAAI2B,KAAKq2C,mBAAmBv3C,GAAIiR,EAAI/P,KAAKivC,kBAAkBnwC,IAAIsR,EAAIlQ,EAAIR,KAASQ,GAAK7B,EAAEkuC,aAAiC5sC,GAAnB9B,EAAIQ,EAAEgnC,aAAmB,GAA2C,KAAvChmC,EAAI,GAAKxB,EAAEuD,OAASP,EAAE9C,KAAKF,EAAG,GAAK,IAAYuD,QAAUlD,EAAIyB,EAAE6xC,2BAA4BphC,IAAMlQ,GAAK,IAAMhC,EAAIyB,EAAEqrB,KAAMjb,EAAIA,EAAEomC,kBAAkBj4C,EAAGgC,GAAI,IAAMb,EAAE+B,OAAS2O,GAAK1R,EAAI,IAAI2B,KAAKF,YAAYT,GAAIa,GAAKhC,EAAEquC,YAAax8B,EAAE8lC,sBAAsBx3C,EAAG6B,MAC9bjC,EAAEuB,UAAU6vC,oBAAsB,SAAUvwC,EAAGoB,EAAGtC,GACnD,IAAIS,EACJ,OAAOA,EAAI2B,KAAKs1C,UAAWt1C,KAAKs2C,iBAAiB14C,GAAG,SAAUA,EAAGc,EAAGiB,GAClE,OAAOtB,EAAIA,EAAEmvC,kBAAkB7tC,GAAG,WAChC,OAAON,EAAEP,GAAKlB,EAAE8yC,aAAa5xC,EAAGoB,GAAKxB,EAAE,KAAOA,EAAE,GAAKd,EAAIA,EAAE2yC,aAAa3yC,EAAEotB,KAAKqkB,oBAAoBvwC,EAAGoB,EAAGxB,UAEzG,IAAIsB,KAAKF,YAAYzB,IACxBJ,EAAEuB,UAAUkxC,aAAe,SAAU5xC,EAAGoB,GACzC,IAAIb,EACJ,OAAOA,EAAIW,KAAKs1C,UAAWt1C,KAAKu2C,WAAU,SAAU34C,EAAGS,GACrD,OAAOgB,EAAIA,EAAEmuC,kBAAkBnvC,GAAG,WAChC,OAAOT,EAAE8yC,aAAa5xC,EAAGoB,SAEzB,IAAIF,KAAKF,YAAYT,IACxBpB,EAAEuB,UAAU+vC,uBAAyB,SAAUzwC,EAAGoB,GACnD,IAAItC,EACJ,OAAOA,EAAIoC,KAAKs1C,UAAWt1C,KAAKs2C,iBAAiBp2C,GAAG,SAAUA,EAAG7B,EAAGK,GAClE,OAAOW,EAAEP,GAAKlB,EAAIA,EAAE4vC,kBAAkB9uC,GAAG,WACvC,OAAOwB,EAAEsO,gBAAgB1P,MACtBT,EAAE,KAAOA,EAAE,GAAKT,EAAIA,EAAE4vC,kBAAkB9uC,GAAG,WAC9C,OAAOwB,EAAEqwC,aAAarwC,EAAE8qB,KAAKukB,uBAAuBzwC,EAAGT,YACpD,KACH,IAAI2B,KAAKF,YAAYlC,IACxBK,EAAEuB,UAAU8nC,8BAAgC,SAAUxoC,EAAGoB,GAC1D,IAAIb,EAAMhB,EAAGK,EACb,OAAOL,EAAS2B,KAAKmwC,qBAAqBjwC,GAAI,GAAIb,EAAIW,KAAK81C,qBAAqBz3C,GAAG8vC,MAAOzvC,EAAIsB,KAAKw2C,eAAen3C,GAAI,IAAIW,KAAKF,YAAYE,KAAKs1C,UAAU9H,kBAAkBnuC,GAAG,SAAUA,GACvL,OAAOA,EAAEkxC,aAAa7xC,EAAE4oC,8BAA8BxoC,EAAGoB,SAE1DjC,EAAEuB,UAAU+nC,6BAA+B,SAAUzoC,EAAGoB,GACzD,IAAIb,EACJ,OAAOA,EAAIW,KAAKmwC,qBAAqBjwC,GAAIF,KAAKuvC,uBAAuBzwC,EAAGO,IACvEpB,EAAEuB,UAAUi3C,wBAA0B,SAAU33C,GACjD,IAAIO,EAAGhB,EAAGK,EAAGiB,EACb,OAAOA,GAAKb,EAAIlB,EAAEkB,IAAI,GAAIJ,EAAIsB,KAAK81C,qBAAqBn2C,GAAGie,OAAQvf,EAAI2B,KAAKivC,kBAAkBnwC,GAAI,IAAMJ,IAAMW,EAAI,CAAC,IAAIa,EAAEowC,QAAW,IAAItwC,KAAKF,YAAYzB,EAAEi3C,UAAUhI,+BAA+B,IAAIptC,EAAEgtC,eAAe7tC,GAAIM,KAC5N1B,EAAEuB,UAAUk3C,2BAA6B,SAAU53C,EAAGoB,EAAGtC,GAC1D,IAAIS,EAAGK,EAAGiB,EAAGkB,EACb,OAA0DnC,GAAnDiB,EAAIK,KAAK22C,sCAAsC/4C,IAAUwK,SAAUxK,EAAI+B,EAAEi6B,OAAOv7B,EAAIgB,EAAEP,IAAMkgB,eAE/Fne,GAFgHnC,EAAIA,EAAEk4C,+BAA+Bh5C,EAAG,CAC1Ji5C,oBAAqB/3C,KACbg4C,sCAAsCl5C,GAAIc,EAAImC,EAAEuH,SAAUxK,EAAIiD,EAAE+4B,OAASl7B,EAAIL,EAAEitB,UAAY5sB,EAAEq4C,6BAA6Bn5C,GAAKS,EAAEysB,SAAWpsB,EAAEs4C,mCAAmCp5C,GAAKc,EAAEu4C,yBAAyBr5C,GAAIc,EAAE2wC,oBAAoBvwC,EAAGoB,EAAGtC,IAC1PK,EAAEuB,UAAUo3C,+BAAiC,SAAU93C,EAAGoB,GAC3D,IAAItC,EACJ,OAAO,MAAQsC,IAAMA,EAAI,IAAKtC,EAAIoC,KAAKs1C,UAAWt1C,KAAKs2C,iBAAiBx3C,GAAG,SAAUA,EAAGT,EAAGK,GACzF,IAAIiB,EACJ,IAAKA,EAAIb,EAAE+lC,qBAAuBxlC,EAAEM,GAAGqf,eAAiBrf,IAAMO,EAAE22C,oBAAqB,OAAOj5C,EAAIA,EAAE4vC,kBAAkB9uC,GAAG,WACrH,OAAOI,EAAE0P,gBAAgB7O,SAEzB,IAAIK,KAAKF,YAAYlC,IACxBK,EAAEuB,UAAUw3C,mCAAqC,SAAUl4C,GAC5D,IAAIoB,EACJ,OAAOA,EAAIF,KAAKs1C,UAAWt1C,KAAKs2C,iBAAiBx3C,GAAG,SAAUA,EAAGlB,EAAGS,GAClE,IAAIK,EACJ,IAAKA,EAAII,EAAE+lC,qBAAuBxlC,EAAEX,GAAGosB,SAAU,OAAO5qB,EAAIA,EAAEstC,kBAAkBnvC,GAAG,WACjF,OAAOS,EAAE0P,gBAAgB9P,SAEzB,IAAIsB,KAAKF,YAAYI,IACxBjC,EAAEuB,UAAUu3C,6BAA+B,SAAUj4C,GACtD,IAAIoB,EACJ,OAAOA,EAAIF,KAAKs1C,UAAWt1C,KAAKs2C,iBAAiBx3C,GAAG,SAAUA,EAAGO,EAAGzB,GAClE,OAAOkB,EAAEgyC,gBAAkB5wC,EAAIA,EAAEstC,kBAAkB5vC,GAAG,WACpD,OAAOkB,EAAE2xC,gCACN,KACH,IAAIzwC,KAAKF,YAAYI,IACxBjC,EAAEuB,UAAUm3C,sCAAwC,SAAU73C,GAC/D,IAAIoB,EAAGb,EAAGhB,EAAGK,EAAGiB,EAAGkB,EAAGuP,EAAGnS,EAAGJ,EAC5B,OAAqBA,GAAdgD,EAAI/B,EAAIlB,EAAEkB,IAAU,GAAIJ,EAAImC,EAAE,GAAI5C,EAAI+B,KAAK81C,qBAAqBj4C,GAAIQ,EAAI2B,KAAK81C,qBAAqBp3C,GAAc0R,GAAVlQ,EAAIF,MAAYw1C,gBAAgBv3C,EAAEkwC,OAAQ,OAASlwC,EAAE2f,OAASxN,EAAEmhC,qCAAqC,WAAYtzC,EAAE2f,WAAaje,EAAIO,EAAEg3C,qBAAqBj5C,GAAIiC,EAAIA,EAAEu2C,wBAAwB,CAAC92C,EAAGA,EAAI,IAAKtB,EAAE8vC,OAAS,EAAG9vC,EAAEuf,QAAU1d,EAAEs1C,gBAAgBv3C,EAAEkwC,OAAO5B,YAAatuC,EAAEkwC,OAAS,GAAIlwC,EAAE2f,OAAS,EAAG,IAAMvf,EAAEuf,QAAUvf,EAAE8vC,MAAQlwC,EAAEkwC,OAAS9vC,EAAE8vC,OAAS,EAAG9vC,EAAEuf,OAAS1d,EAAEs1C,gBAAgBn3C,EAAE8vC,OAAOnJ,0BAA4D,QAAhC3lC,EAAIa,EAAEs1C,gBAAgBn3C,EAAE8vC,QAAmBnjB,KAAK4kB,iBAAiB,CAACvxC,EAAEuf,OAAS,EAAGvf,EAAEuf,SAAWvf,EAAEuf,QAAU,EAAIvf,EAAEuf,OAASve,EAAEkyC,qCAAqC,UAAWlzC,EAAEuf,QAASvf,EAAEuf,SAAWve,EAAE2lC,0BAA4BrlC,EAAIO,EAAEg3C,qBAAqB74C,GAAI6B,EAAIA,EAAEu2C,wBAAwB,CAAC92C,EAAGA,EAAI,MAAO9B,EAAIqC,EAAEg3C,qBAAqBj5C,GAAIS,EAAIwB,EAAEg3C,qBAAqB74C,GAAmB,CACp4B+J,SAAUlI,EACV05B,MAFq3B96B,EAAIlB,EAAE,CAACC,EAAGa,MAIh4BT,EAAEuB,UAAUs3C,sCAAwC,SAAUh4C,GAC/D,IAAIoB,EAAGb,EAAGhB,EACV,OAAOgB,GAAKP,EAAIlB,EAAEkB,IAAI,GAAIT,EAAI2B,KAAK4vC,iBAAiB9wC,GAAGmE,MAAM,GAAI,GAAI/C,EAAIF,KAAM3B,EAAE4e,QAAQ,UAAU,SAAUne,GAC3G,OAAOO,GAAKP,EAAEsC,OAAQlB,EAAIA,EAAEu2C,wBAAwB,CAACp3C,EAAI,EAAGA,OAC1D,CACF+I,SAAUlI,EACV05B,MAAO96B,IAERb,EAAEuB,UAAUy3C,yBAA2B,SAAUn4C,GAClD,IAAIoB,EAAGb,EAAGhB,EAAGK,EAAGiB,EAChB,OAAqBA,GAAdtB,EAAIS,EAAIlB,EAAEkB,IAAU,GAAIO,EAAIhB,EAAE,GAAIK,EAAIsB,KAAK81C,qBAAqBn2C,GAAGwuC,MAAOjuC,EAAIF,KAAK81C,qBAAqBz2C,GAAG8uC,MAAO,IAAInuC,KAAKF,YAAYE,KAAKs1C,UAAUjH,4BAA4B3vC,EAAGwB,KAC3LjC,EAAEuB,UAAU62C,mBAAqB,SAAUv3C,GAC5C,IAAIoB,EACJ,OAAOpB,EAAIlB,EAAEkB,GAAIoB,EAAIF,KAAKs1C,UAAU1H,yBAAyB9uC,GAAGqnB,UAAW,IAAInmB,KAAKF,YAAYI,IAC/FjC,EAAEuB,UAAUowC,iBAAmB,SAAU9wC,GAC1C,IAAIoB,EAAM7B,EACV,OAAOA,EAAIS,EAAIlB,EAAEkB,IAAUT,EAAE+C,OAAS,KAAUpB,KAAKusC,cAAgBrsC,GAAK,GAAIF,KAAKq2C,mBAAmBv3C,GAAG6C,WAAWsB,MAAM,EAAG/C,IAC5HjC,EAAEuB,UAAUg2C,gBAAkB,SAAU12C,GACzC,OAAOkB,KAAKs1C,UAAU3H,iBAAiB7uC,IACtCb,EAAEuB,UAAUu2C,mBAAqB,SAAUj3C,GAC5C,IAAIoB,EACJ,OAAOA,EAAIF,KAAK81C,qBAAqBh3C,GAAGqvC,MAAOnuC,KAAKw1C,gBAAgBt1C,IACnEjC,EAAEuB,UAAUg3C,eAAiB,SAAU13C,GACxC,IAAIoB,EACJ,OAAO,OAASA,EAAIF,KAAKw1C,gBAAgB12C,IAAMoB,EAAE8qB,UAAO,GACvD/sB,EAAEuB,UAAU23C,kBAAoB,SAAUr4C,GAC3C,IAAIoB,EACJ,OAAOA,EAAIF,KAAK81C,qBAAqBh3C,GAAGqvC,MAAOnuC,KAAKw2C,eAAet2C,IAClEjC,EAAEuB,UAAU4wC,mBAAqB,SAAUtxC,GAC5C,IAAIoB,EAAGb,EAAGzB,EACV,OAAyCsC,GAAlCtC,EAAIoC,KAAK81C,qBAAqBh3C,IAAUqvC,MAAO9uC,EAAIzB,EAAEggB,OAAQ5d,KAAKw2C,eAAet2C,GAAGkwC,mBAAmB/wC,IAC7GpB,EAAEuB,UAAU43C,uBAAyB,SAAUt4C,GAChD,IAAIoB,EAAGb,EAAGzB,EACV,OAAyCsC,GAAlCtC,EAAIoC,KAAK81C,qBAAqBh3C,IAAUqvC,MAAO9uC,EAAIzB,EAAEggB,OAAQ5d,KAAKw2C,eAAet2C,GAAG0vC,iBAAiB,CAACvwC,EAAGA,EAAI,KACnHpB,EAAEuB,UAAU+sC,UAAY,WACzB,OAAOvsC,KAAKs1C,UAAU/G,kBACrBtwC,EAAEuB,UAAU6lC,UAAY,WACzB,OAAOrlC,KAAKs1C,UAAUnvB,WACrBloB,EAAEuB,UAAU02C,cAAgB,WAC7B,OAAOl2C,KAAKs1C,UAAUl0C,QACrBnD,EAAEuB,UAAU63C,aAAe,WAC5B,OAAOr3C,KAAKs3C,WACXr5C,EAAEuB,UAAU+2C,UAAY,SAAUz3C,GACnC,OAAOkB,KAAKs1C,UAAUnI,WAAWruC,IAChCb,EAAEuB,UAAU82C,iBAAmB,SAAUx3C,EAAGoB,GAC7C,IAAIb,EAAGhB,EAAGK,EAAGiB,EAAGkB,EAAGuP,EAAGnS,EAAGJ,EAAGkS,EAAGrQ,EAAGxB,EAAGuU,EACrC,GAAkBvU,GAAdkS,EAAItR,EAAIlB,EAAEkB,IAAU,GAAIJ,EAAI0R,EAAE,GAAI1Q,EAAIM,KAAK81C,qBAAqB53C,GAAIG,EAAI2B,KAAK81C,qBAAqBp3C,GAAIgB,EAAEyuC,QAAU9vC,EAAE8vC,MAAO,OAAO9uC,EAAIW,KAAKw1C,gBAAgB91C,EAAEyuC,OAAQ17B,EAAI,CAAC/S,EAAEke,OAAQvf,EAAEuf,QAAS1d,EAAEb,EAAGoT,EAAG/S,EAAEyuC,OAC7M,IAAKp+B,EAAI,GAAIlP,EAAIlB,EAAI1B,EAAIyB,EAAEyuC,MAAOtwC,EAAIQ,EAAE8vC,MAAOtwC,GAAKI,EAAIJ,GAAK8B,EAAIA,GAAK9B,EAAGgD,EAAIhD,GAAKI,IAAM0B,IAAMA,GAAIN,EAAIW,KAAKw1C,gBAAgB30C,KAAO4R,EAAI,WACpI,OAAQ5R,GACN,KAAKnB,EAAEyuC,MACL,MAAO,CAACzuC,EAAEke,OAAQve,EAAE2rB,KAAKuhB,aAC3B,KAAKluC,EAAE8vC,MACL,MAAO,CAAC,EAAG9vC,EAAEuf,QACf,QACE,MAAO,CAAC,EAAGve,EAAE2rB,KAAKuhB,cAP8G,GASjIx8B,EAAEtN,KAAKvC,EAAEb,EAAGoT,EAAG5R,KAAOkP,EAAEtN,UAAK,GAClC,OAAOsN,GACN9R,EAAEuB,UAAUkwC,2BAA6B,SAAU5wC,GACpD,IAAIO,EAAGX,EAAGiB,EACV,OAAOjB,GAAKI,EAAIlB,EAAEkB,IAAI,GAAIT,EAAES,GAAKkB,KAAKu3C,8BAA8B74C,IAAMiB,EAAI,GAAIN,EAAI,GAAIW,KAAKs2C,iBAAiBx3C,GAAG,SAAUA,EAAGoB,GAC9H,OAAOA,EAAE,KAAOA,EAAE,IAAMP,EAAE8C,KAAK3D,EAAEksB,KAAK0kB,2BAA2BxvC,IAAKb,EAAEoD,KAAK5E,EAAEiB,UAAO,KACpFoB,EAAE2lB,KAAKC,8BAA8BnmB,GAAGsmB,MAAM/lB,EAAE2lB,KAAKC,8BAA8BzmB,IAAIinB,aAC1FroB,EAAEuB,UAAU+3C,8BAAgC,SAAUz4C,GACvD,IAAIO,EAAGzB,EAAGS,EAAGK,EAAGiB,EAAGkB,EAAG5C,EAAG8R,EAAGrQ,EAAGxB,EAC/B,GAAsCyB,GAAlCD,EAAIM,KAAK81C,qBAAqBh3C,IAAUqvC,MAAOp+B,EAAIrQ,EAAEke,SAAQvf,EAAI2B,KAAKw1C,gBAAgB71C,IAAQ,MAAO,GAOzG,IAAK1B,KANLS,EAAIb,EAAEQ,GAAIgB,EAAIhB,EAAE2sB,KAAKykB,wBAAwB1/B,GAAInS,EAAIS,EAAE2sB,KAAKykB,wBAAwB1/B,EAAI,GAAIlP,EAAI,WAC9F,IAAI/B,EAAGO,EAEP,IAAKpB,KADwBoB,EAAI,GAAjCP,EAAIoB,EAAEyb,OAAOmD,gBACA5gB,EAAIY,EAAEb,IAAM6tB,aAAezsB,EAAEoD,KAAKxE,GAC/C,OAAOoB,EAJuF,GAMtFzB,IAAGM,EAAIN,EAAEK,MAAWoB,EAAEpB,IAAMmS,EAAErS,KAAK8C,EAAG5C,IAAM,KAAOS,EAAET,GAAKC,GACpE,OAAOQ,GACNT,EAAEuB,UAAUg4C,oCAAsC,SAAU14C,EAAGoB,GAChE,IAAIb,EAAGhB,EAAGK,EAAGiB,EAAGkB,EAAGuP,EAAGnS,EAAGJ,EACzB,OAAyCa,GAAlCmC,EAAIb,KAAK81C,qBAAqB51C,IAAUiuC,MAAOxuC,EAAIkB,EAAE+c,OAAsF/f,GAAlDuS,EAAxBpQ,KAAKw2C,eAAe93C,GAAUixC,qCAAqC7wC,EAAGa,IAAU,GAAItB,EAAI+R,EAAE,GAAInS,EAAI+B,KAAKk3C,qBAAqB,CAClM/I,MAAOzvC,EACPkf,OAAQ/f,IACNwB,EAAIW,KAAKk3C,qBAAqB,CAChC/I,MAAOzvC,EACPkf,OAAQvf,IACNT,EAAE,CAACK,EAAGoB,KACTpB,EAAEuB,UAAUy2C,uBAAyB,WACtC,IAAIn3C,EAAGoB,EAAGb,EAAGzB,EAAGS,EAAGK,EAAGiB,EACtB,IAAKb,EAAIkB,KAAKw1C,gBAAgB,GAAG3R,gBAAiBxkC,EAAIzB,EAAI,EAAG+B,EAAIK,KAAKk2C,gBAAiBv2C,GAAK,EAAIA,EAAI/B,EAAIA,EAAI+B,EAAGN,EAAIM,GAAK,IAAM/B,IAAMA,EAAGsC,EAAIF,KAAKw1C,gBAAgBn2C,GAAGwkC,gBAAiBnlC,EAAI0E,KAAKE,IAAIxE,EAAEsC,OAAQlB,EAAEkB,QAAStC,EAAI,WACxN,IAAIO,EAAGzB,EAAG+B,EACV,IAAKA,EAAI,GAAItB,EAAIgB,EAAI,EAAGzB,EAAIc,GAAId,GAAK,EAAIA,EAAIyB,EAAIA,EAAIzB,IAAMsC,EAAE7B,KAAOS,EAAET,GAAIA,EAAIT,GAAK,IAAMyB,IAAMA,EAAGM,EAAE8C,KAAKvC,EAAE7B,IAC3G,OAAOsB,EAHiN,GAK1N,OAAOb,GACNjB,EAAI,SAAWiB,GAChB,IAAIoB,EAAGb,EACP,OAAOA,EAAI,IAAKa,EAAIpB,EAAE+lC,sBAAwBxlC,EAAEa,IAAK,GAAKb,GACzDpB,EAAEuB,UAAUkoC,kBAAoB,SAAU5oC,GAC3C,IAAIoB,EAAGb,EAAGzB,EAAGS,EACb,IAAgCgB,EAAI,EAAGzB,GAAlCS,EAAI2B,KAAKiwC,kBAA+B7uC,OAAQxD,EAAIyB,EAAGA,IAAK,IAAIa,EAAI7B,EAAEgB,IAAM+L,KAAOtM,EAAG,OAAOoB,GACjGjC,EAAEuB,UAAUwwC,oBAAsB,WACnC,IAAIlxC,EACJ,OAAOA,EAAI,GAAIkB,KAAKs1C,UAAUnI,YAAW,SAAUjtC,GACjD,IAAIb,EACJ,OAAOA,EAAIa,EAAE8qB,KAAMlsB,EAAIA,EAAEub,OAAOhb,EAAE2wC,0BAChClxC,GACHb,EAAEuB,UAAUywC,eAAiB,WAC9B,IAAInxC,EAAGoB,EAAGb,EAAGzB,EAAGS,EAChB,IAAqCA,EAAI,GAAIS,EAAI,EAAGoB,GAA/CtC,EAAIoC,KAAKgwC,uBAA4C5uC,OAAQlB,EAAIpB,EAAGA,IAAKO,EAAIzB,EAAEkB,GAAIT,EAAEoE,KAAKpD,EAAE8qB,YACjG,OAAO9rB,GACNJ,EAAEuB,UAAU2wC,qBAAuB,SAAUrxC,GAC9C,IAAIoB,EAAGb,EAAGhB,EAAGK,EAAGiB,EAAGkB,EAAGuP,EACtB,IAAK1R,EAAI,EAAiCW,EAAIa,EAAI,EAAG7B,GAAzCsB,EAAIK,KAAKs1C,UAAUnvB,WAA4B/kB,OAAQ/C,EAAI6B,EAAGb,IAAMa,EAAG,CACjF,GAAmBkQ,GAAfvP,EAAIlB,EAAEN,GAAG2rB,MAAYmlB,qBAAqBrxC,GAAI,OAAOlB,EAAE,CAACc,EAAI0R,EAAE,GAAI1R,EAAI0R,EAAE,KAC5E1R,GAAKmC,EAAE0rC,cAERtuC,EAAEuB,UAAUi4C,6BAA+B,SAAU34C,GACtD,IAAIoB,EACJ,OAAOA,EAAIF,KAAKmwC,qBAAqBrxC,GAAIkB,KAAKo2C,uBAAuBl2C,IACpEjC,EAAEuB,UAAU4nC,gCAAkC,SAAUtoC,GACzD,IAAIoB,EAAGb,EAAGzB,EAAGS,EACb,IAAqC6B,EAAI,EAAGb,GAAvChB,EAAI2B,KAAKgwC,uBAAoC5uC,OAAQ/B,EAAIa,EAAGA,IAAK,IAAItC,EAAIS,EAAE6B,IAAMiqB,aAAerrB,EAAG,OAAOlB,GAC9GK,EAAEuB,UAAUk4C,4BAA8B,SAAU54C,GACrD,IAAIoB,EAAGb,EAAGzB,EAAGS,EAAGK,EAAGiB,EAAGkB,EACtB,IAAKnC,EAAI,EAAGiB,EAAI,GAA0BN,EAAI,EAAGzB,GAA7BiD,EAAIb,KAAKqlC,aAA0BjkC,OAAQxD,EAAIyB,EAAGA,IAAehB,GAAV6B,EAAIW,EAAExB,IAAUktC,YAAarsC,EAAEkO,aAAatP,IAAMa,EAAE8C,KAAK,CAAC/D,EAAGA,EAAIL,IAAKK,GAAKL,EACtJ,OAAOsB,GACN1B,EAAEuB,UAAUm4C,2BAA6B,SAAU74C,EAAGoB,GACvD,IAAIb,EAAGzB,EAAGS,EAAGK,EAAGiB,EAAGkB,EAAGuP,EAAGnS,EAAGJ,EAAGkS,EAC/B,IAAKA,GAAK,MAAQ7P,EAAIA,EAAI,IAAI03C,UAAW/2C,EAAI,EAAGuP,EAAI,GAAInS,EAAI,GAAIS,EAAI,SAAWwB,GAC7E,OAAO,MAAQ6P,EAAI7P,EAAEgK,aAAapL,KAAOiR,EAAI7P,EAAEkO,aAAatP,IACrCO,EAAI,EAAGzB,GAA7BC,EAAImC,KAAKykC,aAA0BrjC,OAAQxD,EAAIyB,EAAGA,IAAehB,GAAVsB,EAAI9B,EAAEwB,IAAUktC,YAAa7tC,EAAEiB,KAAOyQ,EAAE,KAAOvP,EAAIuP,EAAE,GAAKvP,EAAIxC,EAAIJ,EAAEwE,KAAK2N,EAAI,CAACvP,EAAGA,EAAIxC,KAAMwC,GAAKxC,EAC1J,OAAOJ,GACNA,EAAEuB,UAAUs2C,qBAAuB,SAAUh3C,GAC9C,IAAIoB,EAAGb,EACP,OAAwE,OAAjEA,EAAIW,KAAKs1C,UAAUpH,6BAA6B9qC,KAAKC,IAAI,EAAGvE,KAAeqvC,MAAQ9uC,EAA2B,CACnH8uC,OAD6FjuC,EAAIF,KAAKqlC,aAC7FjkC,OAAS,EAClBwc,OAAQ1d,EAAEA,EAAEkB,OAAS,GAAGmrC,cAEzBtuC,EAAEuB,UAAU03C,qBAAuB,SAAUp4C,GAC9C,OAAOkB,KAAKs1C,UAAUhH,6BAA6BxvC,EAAEqvC,MAAOrvC,EAAE8e,SAC7D3f,EAAEuB,UAAUq4C,0BAA4B,SAAU/4C,GACnD,OAAOlB,EAAEoC,KAAK81C,qBAAqBh3C,KAClCb,EAAEuB,UAAU42C,uBAAyB,SAAUt3C,GAChD,IAAIoB,EAAGb,EAAGhB,EAAGK,EACb,GAAII,EAAIlB,EAAEkB,GAAI,OAAOJ,EAAII,EAAE,GAAIO,EAAIP,EAAE,GAAIT,EAAI2B,KAAK81C,qBAAqBp3C,GAAIwB,EAAIF,KAAK81C,qBAAqBz2C,GAAIzB,EAAE,CAACS,EAAG6B,KAClHjC,EAAEuB,UAAUs4C,uBAAyB,SAAUh5C,GAChD,IAAIoB,EAAGb,EACP,OAAOP,EAAIlB,EAAEkB,GAAIoB,EAAIF,KAAKk3C,qBAAqBp4C,EAAE,IAAKT,EAAES,KAAOO,EAAIW,KAAKk3C,qBAAqBp4C,EAAE,KAAMlB,EAAE,CAACsC,EAAGb,KAC1GpB,EAAEuB,UAAU8c,UAAY,SAAUxd,GACnC,OAAOkB,KAAKs1C,UAAUh5B,UAAU,MAAQxd,EAAIA,EAAEw2C,eAAY,IACzDr3C,EAAEuB,UAAUu4C,SAAW,WACxB,IAAIj5C,EAAGoB,EAAGb,EAAGzB,EAAGS,EAChB,IAA2BA,EAAI,GAAI6B,EAAI,EAAGb,GAArCzB,EAAIoC,KAAKqlC,aAAkCjkC,OAAQ/B,EAAIa,EAAGA,IAAKpB,EAAIlB,EAAEsC,GAAI7B,EAAEoE,KAAK3D,EAAEksB,MACvF,OAAO3sB,GACNJ,EAAEuB,UAAUilC,UAAY,WACzB,IAAI3lC,EAAGoB,EAAGb,EAAGzB,EAAGS,EAChB,IAAKgB,EAAI,GAAyBP,EAAI,EAAGoB,GAA5BtC,EAAIoC,KAAK+3C,YAAyB32C,OAAQlB,EAAIpB,EAAGA,IAAKT,EAAIT,EAAEkB,GAAIO,EAAEoD,KAAKI,MAAMxD,EAAGhB,EAAEomC,aAC/F,OAAOplC,GACNpB,EAAEuB,UAAUsnB,WAAa,WAC1B,OAAO9mB,KAAKqlC,YAAYhrB,OAAOra,KAAK+3C,YAAY19B,OAAOra,KAAKykC,cAC3DxmC,EAAEuB,UAAUmtB,uBAAyB,WACtC,IAAI7tB,EACJ,OAAOA,EAAI,GAAIkB,KAAKs1C,UAAUnI,YAAW,SAAUjtC,GACjD,OAAOpB,EAAE2D,KAAKvC,EAAEqwC,aAAarwC,EAAE8qB,KAAKqlB,0BAClC,IAAIrwC,KAAKF,YAAYhB,IACxBb,EAAEuB,UAAUmC,SAAW,WACxB,OAAO3B,KAAKs1C,UAAU3zC,YACrB1D,EAAEuB,UAAUsL,OAAS,WACtB,OAAO9K,KAAKs1C,UAAUxqC,UACrB7M,EAAEuB,UAAUstC,UAAY,WACzB,IAAIhuC,EACJ,OAAOyL,KAAKC,UAAU,WACpB,IAAItK,EAAGb,EAAGzB,EAAGS,EACb,IAAmCA,EAAI,GAAI6B,EAAI,EAAGb,GAA7CzB,EAAIoC,KAAKs1C,UAAUnvB,WAAgC/kB,OAAQ/B,EAAIa,EAAGA,IAAKpB,EAAIlB,EAAEsC,GAAI7B,EAAEoE,KAAK8H,KAAKS,MAAMlM,EAAEksB,KAAK8hB,cAC/G,OAAOzuC,GACPN,KAAKiC,QACN/B,EAjTkG,CAkTrGiC,EAAE5B,SACJP,KAAKiC,MAAO,WACZE,EAAE83C,mBAAqB,WACrB,SAASl5C,EAAEA,GACT,IAAIoB,EACJF,KAAK6lC,YAAc/mC,EAAGkB,KAAKoI,SAAWpI,KAAK6lC,YAAYz9B,SAAUlI,EAAIF,KAAK6lC,YAAY7R,mBAAoBh0B,KAAKi4C,cAAgB/3C,EAAE,GAAIF,KAAKwuC,YAActuC,EAAE,GAAIF,KAAKk4C,cAAgBl4C,KAAKoI,SAAS0tC,qBAAqB91C,KAAKi4C,eAAgBj4C,KAAKm4C,YAAcn4C,KAAKoI,SAAS0tC,qBAAqB91C,KAAKwuC,aAAcxuC,KAAK2kC,MAAQ3kC,KAAKoI,SAASotC,gBAAgBx1C,KAAKm4C,YAAYhK,OAAQnuC,KAAKsxC,eAAiBtxC,KAAK2kC,MAAM2M,iBAAkBtxC,KAAKo4C,kBAAoBp4C,KAAK2kC,MAAM3Z,KAAK6kB,oBAAoB7vC,KAAKm4C,YAAYv6B,OAAS,GAAI5d,KAAKq4C,cAAgBr4C,KAAK2kC,MAAM3Z,KAAK6kB,oBAAoB7vC,KAAKm4C,YAAYv6B,QAEllB,OAAO9e,EAAEU,UAAU84C,uBAAyB,WAC1C,OAAOt4C,KAAK2kC,MAAMmM,iBAAmB9wC,KAAK2kC,MAAMyM,eAAiBpxC,KAAK2kC,MAAMve,UAAY,IAAMpmB,KAAKk4C,cAAct6B,OAAS5d,KAAKsxC,gBAAkB,OAAStxC,KAAKq4C,eAC9Jv5C,EAAEU,UAAU+4C,0BAA4B,WACzC,OAAOv4C,KAAK2kC,MAAMmM,kBAAoB9wC,KAAK2kC,MAAMyM,eAAiBpxC,KAAKsxC,gBAAkB,OAAStxC,KAAKq4C,eAAiB,OAASr4C,KAAKo4C,oBACrIt5C,EAAEU,UAAUg5C,wBAA0B,WACvC,OAAOx4C,KAAK2kC,MAAMmM,iBAAmB9wC,KAAK2kC,MAAMyM,cAAgBpxC,KAAK2kC,MAAMve,WAC1EtnB,EAAEU,UAAUi5C,sBAAwB,WACrC,OAAOz4C,KAAK2kC,MAAMyM,cAAgB,IAAMpxC,KAAKk4C,cAAct6B,SAAW5d,KAAK2kC,MAAMve,WAChFtnB,EAAEU,UAAUk5C,+BAAiC,WAC9C,OAAO14C,KAAK2kC,MAAMmM,kBAAoB9wC,KAAK2kC,MAAMyM,cAAgBpxC,KAAK2kC,MAAMve,WAC3EtnB,EAfkB,IAiBvBf,KAAKiC,MAAO,WACZ,IAAIlB,EACFO,EACAzB,EACAS,EACAK,EACAiB,EACAkB,EACAuP,EACAnS,EACAJ,EACAkS,EAAI,SAAWjR,EAAGoB,GAChB,SAASb,IACPW,KAAKF,YAAchB,EAErB,IAAK,IAAIlB,KAAKsC,EAAGR,EAAE3B,KAAKmC,EAAGtC,KAAOkB,EAAElB,GAAKsC,EAAEtC,IAC3C,OAAOyB,EAAEG,UAAYU,EAAEV,UAAWV,EAAEU,UAAY,IAAIH,EAAKP,EAAEod,UAAYhc,EAAEV,UAAWV,GAEtFY,EAAI,GAAGD,eACTE,EAAIO,EAAE4iB,eAAgB7kB,EAAIiC,EAAE8iB,eAAgB5S,EAAIlQ,EAAE6iB,iBAAkBliB,EAAIX,EAAEge,gBAAiBpf,EAAIoB,EAAEme,gBAAiBxgB,EAAIqC,EAAEqe,qBAAsB3gB,EAAIsC,EAAEse,qBAAsBngB,EAAI6B,EAAEye,eAAgBjgB,EAAIwB,EAAE2e,cAAexf,EAAIa,EAAE4c,OAAQ5c,EAAEy4C,YAAc,SAAUj5C,GAC3P,SAASxB,IACP8B,KAAKoI,SAAW,IAAIlI,EAAEssB,SAAYxsB,KAAKqtB,YAAc,GAAIrtB,KAAK44C,kBAAoB,GAAI54C,KAAK0mC,SAAW,EAGxG,OAAO32B,EAAE7R,EAAGwB,GAAIxB,EAAEsB,UAAU0lC,YAAc,SAAUpmC,GAClD,IAAIoB,EACJ,OAAOpB,EAAEwd,UAAUtc,KAAKoI,eAAY,GAAUpI,KAAKoI,SAAWtJ,EAAGkB,KAAK64C,qBAAsB74C,KAAK0mC,WAAY,OAASxmC,EAAIF,KAAKsL,WAAa,mBAAqBpL,EAAE44C,6BAA+B54C,EAAE44C,6BAA6Bh6C,QAAK,IACrOZ,EAAEsB,UAAUu5C,YAAc,WAC3B,MAAO,CACL3wC,SAAUpI,KAAKoI,SACf4wC,cAAeh5C,KAAKg0B,qBAErB91B,EAAEsB,UAAUy5C,aAAe,SAAUn6C,GACtC,IAAIO,EAAGzB,EAAGS,EAAGK,EACb,OAAOW,EAAIP,EAAEsJ,SAAU1J,EAAII,EAAEk6C,cAAe,OAASp7C,EAAIoC,KAAKsL,WAAa,mBAAqB1N,EAAEs7C,6BAA+Bt7C,EAAEs7C,8BAA+Bl5C,KAAKklC,YAAY,MAAQ7lC,EAAIA,EAAI,IAAIa,EAAEssB,UAAaxsB,KAAKm5C,aAAa,MAAQz6C,EAAIA,EAAI,CAAC,EAAG,IAAK,OAASL,EAAI2B,KAAKsL,WAAa,mBAAqBjN,EAAE+6C,2BAA6B/6C,EAAE+6C,kCAA+B,GACpXl7C,EAAEsB,UAAU++B,WAAa,SAAUz/B,EAAGoB,GACvC,IAAIb,EAAGzB,EAAGS,EAAGK,EACb,OAAOA,GAAK,MAAQwB,EAAIA,EAAI,CAC1Bu4B,gBAAgB,IACfA,eAAgB76B,EAAIoC,KAAKg0B,mBAAoBh0B,KAAKklC,YAAYllC,KAAKoI,SAAS+tC,kBAAkBr3C,EAAGlB,IAAeyB,GAAVhB,EAAIT,EAAE,IAAYkB,EAAEytC,YAAa7tC,GAAKsB,KAAKm5C,aAAa95C,GAAIW,KAAKq5C,iCAAiC,CAACh7C,EAAGgB,KAC9MnB,EAAEsB,UAAU85C,YAAc,SAAUx6C,GACrC,IAAIO,EACJ,OAAO,MAAQP,IAAMA,EAAI,IAAIoB,EAAEowC,OAAUjxC,EAAI,IAAIa,EAAEssB,SAAS,CAAC1tB,IAAKkB,KAAKm2B,eAAe92B,IACrFnB,EAAEsB,UAAU22B,eAAiB,SAAUr3B,GACxC,IAAIO,EAAGzB,EAAGS,EACV,OAAO,MAAQS,IAAMA,EAAI,IAAIoB,EAAEssB,UAAa5uB,EAAIoC,KAAKg0B,mBAAoBh0B,KAAKklC,YAAYllC,KAAKoI,SAASytC,sBAAsB/2C,EAAGlB,IAAeyB,GAAVhB,EAAIT,EAAE,IAAYkB,EAAEytC,YAAavsC,KAAKm5C,aAAa95C,GAAIW,KAAKq5C,iCAAiC,CAACh7C,EAAGgB,KACtOnB,EAAEsB,UAAUo1B,aAAe,SAAU91B,EAAGO,GACzC,IAAIzB,EAAGS,EACP,OAAOT,EAAIoC,KAAKu5C,2BAA4Bl7C,EAAI6B,EAAEwuC,KAAKE,4BAA4B9vC,EAAGlB,GAAIoC,KAAKu+B,WAAWlgC,EAAGgB,IAC5GnB,EAAEsB,UAAUg6C,iBAAmB,WAChC,IAAI16C,EAAGoB,EAAGb,EACV,OAAOa,EAAIF,KAAKg0B,mBAAoBh0B,KAAKklC,YAAYllC,KAAKoI,SAASquC,wBAAwBv2C,IAAepB,GAAVO,EAAIa,EAAE,IAAY,EAAGF,KAAKm5C,aAAar6C,GAAIkB,KAAKq5C,iCAAiC,CAACh6C,EAAGP,KACpLZ,EAAEsB,UAAUw4B,gBAAkB,WAC/B,IAAIl5B,EAAGO,EACP,OAAOA,EAAI,IAAIa,EAAE83C,mBAAmBh4C,OAASw4C,2BAA6Bx4C,KAAKy5C,oBAAqBz5C,KAAKm5C,aAAa95C,EAAE44C,gBAAkB54C,EAAEo5C,yBAA2B35C,EAAI,IAAIoB,EAAEssB,SAAS,CAACntB,EAAEslC,MAAM6L,oBAAqBxwC,KAAKm2B,eAAer3B,IAAMO,EAAEi5C,yBAA2Bt4C,KAAKw5C,mBAAqBn6C,EAAEq5C,iCAAmC14C,KAAK05C,2BAA6Br6C,EAAEk5C,4BAA8Bv4C,KAAK25C,oBAAoBt6C,GAAKW,KAAK40B,aAAa,OAC/b12B,EAAEsB,UAAU03B,WAAa,SAAUp4B,GACpC,IAAIO,EAAGzB,EAAGS,EAAGK,EACb,OAAOW,EAAIa,EAAEssB,SAASC,SAAS3tB,GAAIT,EAAI2B,KAAKg0B,mBAAoBh0B,KAAKklC,YAAYllC,KAAKoI,SAAS4tC,qBAAqB32C,EAAGhB,IAAeT,GAAVc,EAAIL,EAAE,IAAYgB,EAAEktC,YAAc,EAAGvsC,KAAKm5C,aAAav7C,GAAIoC,KAAKq5C,iCAAiC,CAAC36C,EAAGd,KAChOM,EAAEsB,UAAUo6C,YAAc,SAAU96C,GACrC,IAAIO,EAAGzB,EAAGS,EACV,OAAOgB,EAAIa,EAAEssB,SAASC,SAAS3tB,GAAG42C,6BAA6B11C,KAAKoI,UAAWxK,EAAIoC,KAAK65C,iBAAiB,CACvGz3B,QAAQ,IACN/jB,EAAI2B,KAAKoI,SAAS0vC,uBAAuBl6C,GAAIoC,KAAKklC,YAAY7lC,GAAIW,KAAKm5C,aAAa96C,IACvFH,EAAEsB,UAAUg4B,WAAa,SAAU14B,GACpC,OAAOkB,KAAKizB,YAAY,CAACn0B,KACxBZ,EAAEsB,UAAUyzB,YAAc,SAAUn0B,GACrC,IAAIO,EAAGzB,EAAGS,EAAGK,EAAGiB,EAAGkB,EACnB,IAAKjD,EAAI,GAAIc,EAAI,EAAGiB,EAAIb,EAAEsC,OAAQzB,EAAIjB,EAAGA,IAAKL,EAAIS,EAAEJ,IAAK,OAASmC,EAAIb,KAAKsL,UAAYzK,EAAEi5C,4BAA4Bz7C,QAAK,KAAYgB,EAAIa,EAAE4pC,WAAWI,kBAAkB7rC,GAAIT,EAAE6E,KAAKpD,IACpL,OAAOW,KAAK+5C,kBAAkBn8C,IAC7BM,EAAEsB,UAAUw6C,iBAAmB,SAAUl7C,GAC1C,OAAOkB,KAAK+5C,kBAAkB,CAACj7C,KAC9BZ,EAAEsB,UAAUu6C,kBAAoB,SAAUj7C,GAC3C,IAAIO,EAAGzB,EAAGS,EAAGK,EAAGiB,EAAGkB,EAAGuP,EAAGnS,EAAGJ,EAC5B,IAAKI,EAAI,IAAIiC,EAAEwuC,KAAQhwC,EAAI,EAAGiB,EAAIb,EAAEsC,OAAQzB,EAAIjB,EAAGA,IAAeb,GAAVwB,EAAIP,EAAEJ,IAAU4jC,UAAWzhC,EAAI,OAASuP,EAAIlQ,EAAEyb,OAAO0R,YAAYxvB,IAAMuS,EAAEmd,kBAAe,EAAQlvB,EAAI2B,KAAKu5C,2BAA4B14C,IAAMxC,EAAEkvB,aAAe1sB,GAAIjD,EAAIsC,EAAEwuC,KAAKC,gCAAgCtvC,EAAGhB,GAAIJ,EAAIA,EAAE8wC,WAAWnxC,GAC3R,OAAOoC,KAAKu+B,WAAWtgC,IACtBC,EAAEsB,UAAUy7B,gCAAkC,SAAUn8B,GACzD,IAAIoB,EACJ,GAAIA,EAAIF,KAAK65C,mBAAoBzpC,EAAElQ,GAAI,CACrC,GAAI,aAAepB,GAAK,IAAMoB,EAAE,GAAG0d,OAAQ,OAAO,EAClD,GAAI5d,KAAK86B,oCAAoCh8B,GAAI,OAAO,OACnD,GAAIoB,EAAE,GAAGiuC,QAAUjuC,EAAE,GAAGiuC,MAAO,OAAO,EAC7C,OAAO,GACNjwC,EAAEsB,UAAU+2B,kBAAoB,SAAUz3B,EAAGoB,GAC9C,IAAIb,EAAGzB,EAAGS,EAAGK,EAAGiB,EAAGkB,EAAG5C,EAAGJ,EACzB,OAAOa,GAAK,MAAQwB,EAAIA,EAAI,IAAIkB,OAAQzB,EAAIK,KAAK65C,mBAAoBh5C,EAAIb,KAAKg0B,oBAAoB/1B,EAAImS,EAAEvP,IAAQxC,EAAI,aAAeS,GAAK,IAAMa,EAAE,GAAGie,OAAS/f,EAAI8B,EAAE,GAAGwuC,QAAUxuC,EAAE,GAAGwuC,QAAO9vC,GAAK2B,KAAKi6C,mCAAqCr8C,EAAIoC,KAAKk6C,WAAYt8C,EAAEwzC,aAAepxC,KAAKy5C,oBAAsBz5C,KAAKm6C,8BAA+Bn6C,KAAKm5C,aAAat4C,EAAE,IAAKjD,EAAEwoB,cAAmBnoB,IAAM4C,EAAIb,KAAKo6C,4BAA4Bt7C,EAAG,CACzasC,OAAQ1C,IACN,aAAeI,IAAMO,EAAIW,KAAKq6C,qBAAqBx5C,KAAMxB,GAAKW,KAAKs6C,eAAej7C,IAAI,IAAOW,KAAKklC,YAAYllC,KAAKoI,SAAS6mC,kBAAkBpuC,IAAKb,KAAKm5C,aAAat4C,EAAE,KAAKxC,IAAKR,QAAS,KAC7LK,EAAEsB,UAAU02B,kBAAoB,SAAUp3B,GAC3C,IAAIoB,EACJ,OAAOA,EAAIF,KAAKg0B,mBAAmB,GAAIh0B,KAAKklC,YAAYllC,KAAKoI,SAAS+mC,4BAA4BrwC,EAAGoB,IAAKF,KAAKm5C,aAAaj5C,IAC3HhC,EAAEsB,UAAU+6C,iBAAmB,SAAUz7C,GAC1C,IAAIoB,EACJ,OAAQA,EAAIF,KAAKoI,SAAS+nC,qBAAqBrxC,KAAOkB,KAAKw6C,wBAAyBx6C,KAAKklC,YAAYllC,KAAKoI,SAAS6mC,kBAAkB/uC,IAAKF,KAAKm5C,aAAaj5C,EAAE,UAAO,GACpKhC,EAAEsB,UAAUk6C,yBAA2B,WACxC,IAAI56C,EAAGoB,EAAGb,EAAGzB,EACb,OAAoCA,GAA7ByB,EAAIW,KAAKg0B,oBAA0B,GAAI9zB,EAAIb,EAAE,GAAIP,EAAIkB,KAAKoI,SAAS2tC,mBAAmB71C,GAAIF,KAAKm9B,uBAAuBr+B,EAAE+lC,oBAAqB7kC,KAAKm5C,aAAav7C,IACjK,IAAKM,EAAEsB,UAAUm6B,kBAAoB,WAC1C,OAAO35B,KAAKy6C,oBAAsBz6C,KAAK06C,cAAe16C,KAAK40B,aADtD,MAEJ12B,EAAEsB,UAAUq6B,kBAAoB,WACjC,OAAO,MAAQ75B,KAAKy6C,qBAAuBz6C,KAAKg1B,iBAAiB,CAACh1B,KAAKy6C,oBAAqBz6C,KAAKy6C,oBAH5F,IAGoHr5C,SAAUpB,KAAKg0B,yBAAsB,GAC7J91B,EAAEsB,UAAUs6B,kBAAoB,WACjC,OAAO95B,KAAKy6C,oBAAsB,MACjCv8C,EAAEsB,UAAUm7C,oBAAsB,SAAU77C,GAC7C,IAAIoB,EACJ,OAAsC,OAA/BA,EAAIF,KAAK44C,kBAAkB95C,MAAuB,IAANoB,GAClDhC,EAAEsB,UAAUm/B,uBAAyB,SAAU7/B,GAChD,IAAIoB,EACJ,OAAQA,GAAKF,KAAK44C,kBAAkB95C,IAAMkB,KAAK4+B,oBAAoB9/B,EAAGoB,GAAKF,KAAKm9B,uBAAuBr+B,IACtGZ,EAAEsB,UAAUo7C,uBAAyB,SAAU97C,GAChD,OAAOT,EAAES,GAAKkB,KAAK66C,4BAA4B/7C,GAAKkB,KAAK86C,2BAA2Bh8C,IACnFZ,EAAEsB,UAAUs7C,2BAA6B,WAC1C,IAAO56C,EAAGb,EAAGzB,EAAGS,EAChB,GAAI6B,EAAIF,KAAKg5B,sBAAuB,CAClC,IAA6B35B,EAAI,EAAGzB,GAA/BS,EAAI6B,EAAE+vC,kBAA+B7uC,OAAQxD,EAAIyB,EAAGA,IAAK,IAAQhB,EAAEgB,GAAOyiC,aAAc,OAAO,EACpG,OAAO,IAER5jC,EAAEsB,UAAUq7C,4BAA8B,WAC3C,IAAI/7C,EACJ,GAAIA,EAAIkB,KAAKk6C,WAAY,OAAQp7C,EAAEuyC,mBAClCnzC,EAAEsB,UAAUo/B,oBAAsB,SAAU9/B,EAAGoB,GAChD,OAAO7B,EAAES,GAAKkB,KAAK+6C,kBAAkBj8C,EAAGoB,IAAMF,KAAKg7C,iBAAiBl8C,EAAGoB,GAAIF,KAAK44C,kBAAkB95C,GAAKoB,EAAGF,KAAKi7C,4CAC9G/8C,EAAEsB,UAAUw7C,iBAAmB,SAAUl8C,EAAGO,GAC7C,IAAOhB,EAAMsB,EACb,GAAItB,EAAI2B,KAAKg0B,mBAAoB,OAAW31B,EAAE,KAAQA,EAAE,GAAc2B,KAAKklC,YAAYllC,KAAKoI,SAASinC,oBAAoBvwC,EAAGO,EAAGhB,IAAM,SAAWS,GAAKa,EAAIO,EAAEwuC,KAAKE,4BAA4BvvC,EAAG,CAC7L8sB,KAAM9sB,IACJW,KAAKu+B,WAAW5+B,SAAM,GACzBzB,EAAEsB,UAAUu7C,kBAAoB,SAAUj8C,EAAGoB,GAC9C,IAAOtC,EACP,GAAIA,EAAIoC,KAAKg0B,mBAAoB,OAAOh0B,KAAK46C,uBAAuB97C,IAAUkB,KAAKk6C,WAAYl6C,KAAKklC,YAAYllC,KAAKoI,SAASsuC,2BAA2B53C,EAAGoB,EAAGtC,IAAKoC,KAAKm5C,aAAav7C,SAAM,GAC3LM,EAAEsB,UAAU29B,uBAAyB,SAAUr+B,GAChD,OAAOT,EAAES,IAAMkB,KAAKk7C,qBAAqBp8C,GAAIkB,KAAKm7C,4BAA8Bn7C,KAAKo7C,oBAAoBt8C,UAAWkB,KAAK44C,kBAAkB95C,GAAIkB,KAAKi7C,4CACnJ/8C,EAAEsB,UAAU47C,oBAAsB,SAAUt8C,GAC7C,IAAIoB,EACJ,GAAIA,EAAIF,KAAKg0B,mBAAoB,OAAOh0B,KAAKklC,YAAYllC,KAAKoI,SAASmnC,uBAAuBzwC,EAAGoB,KAChGhC,EAAEsB,UAAU07C,qBAAuB,SAAUp8C,GAC9C,IAAIoB,EACJ,GAAIA,EAAIF,KAAKg0B,mBAAoB,OAAOh0B,KAAKklC,YAAYllC,KAAKoI,SAASmnC,uBAAuBzwC,EAAGoB,KAChGhC,EAAEsB,UAAUk5B,wBAA0B,WACvC,IAAI55B,EACJ,OAAQ,OAASA,EAAIkB,KAAKk6C,YAAcp7C,EAAEmyC,uBAAoB,GAAU,GACvE/yC,EAAEsB,UAAU04B,wBAA0B,WACvC,IAAIh4B,EAAGb,EAAGzB,EACV,GAAIsC,EAAIF,KAAKk6C,WAAY,OAAQ,OAASt8C,EAAIS,EAAE6B,EAAE6wC,8BAA+BnzC,EAAEohB,eAAsB3f,EAAIW,KAAKq7C,oBAAsBv8C,EAAEO,EAAE8xC,wBAAyBjxC,EAAEixC,8BAA2B,EAASjxC,EAAE+wC,kBAAoB,GAChO/yC,EAAEsB,UAAUm5B,qBAAuB,WACpC,IAAI75B,EACJ,GAAIA,EAAIkB,KAAKk6C,WAAY,OAAOl6C,KAAKklC,YAAYllC,KAAKoI,SAASwtC,aAAa92C,EAAGA,EAAE65B,0BAChFz6B,EAAEsB,UAAU24B,qBAAuB,WACpC,IAAIr5B,EACJ,GAAIA,EAAIkB,KAAKk6C,WAAY,OAAOl6C,KAAKklC,YAAYllC,KAAKoI,SAASwtC,aAAa92C,EAAGA,EAAEq5B,0BAChFj6B,EAAEsB,UAAUy6C,+BAAiC,WAC9C,IAAIn7C,EACJ,OAAQ,OAASA,EAAIkB,KAAKk6C,YAAcp7C,EAAE8xC,yBAAsB,GAAU,GACzE1yC,EAAEsB,UAAU26C,4BAA8B,WAC3C,IAAIr7C,EAAGoB,EACP,OAAQpB,EAAI,OAASoB,EAAIF,KAAKk6C,YAAch6C,EAAE2kC,wBAAqB,GAAU7kC,KAAKm9B,uBAAuBr+B,QAAK,GAC7GZ,EAAEsB,UAAUi6C,kBAAoB,WACjC,IAAI36C,EAAGoB,EAAGb,EAAGzB,EAAGS,EAAGK,EACnB,IAAKA,EAAIsB,KAAKg0B,mBAAmB,GAAqD30B,EAAjDhB,EAAI2B,KAAKoI,SAAS0tC,qBAAqBp3C,GAAGyvC,MAAcrvC,EAAIkB,KAAKk6C,WAAWtJ,qBAAsB1wC,EAAIF,KAAKoI,SAASotC,gBAAgBn2C,EAAI,KAAOa,EAAEkxC,cAAgBlxC,EAAE0wC,oBAAsB9xC,GAAIO,IAClO,OAAOX,EAAIsB,KAAKoI,SAAS8uC,qBAAqB,CAC5C/I,MAAO9vC,EACPuf,OAAQ,IACNhgB,EAAIoC,KAAKoI,SAAS8uC,qBAAqB,CACzC/I,MAAO9uC,EACPue,OAAQ,IACN5d,KAAKklC,YAAYllC,KAAKoI,SAASwuC,+BAA+B,CAACl4C,EAAGd,MACrEM,EAAEsB,UAAU27C,wBAA0B,WACvC,IAAIr8C,EAAGoB,EAAGb,EAAGhB,EAAGK,EAAGiB,EACnB,GAAIA,EAAIK,KAAKg0B,iBAAiB,CAC5BsnB,YAAY,IACV,CACF,IAAKp7C,EAAIF,KAAKoI,SAASsnC,2BAA2B/vC,GAAaN,EAAI,EAAGhB,GAAhBK,EAAId,KAAkBwD,OAAQ/C,EAAIgB,EAAGA,IAAea,EAAVpB,EAAIJ,EAAEW,KAAYW,KAAK46C,uBAAuB97C,KAAOoB,EAAEpB,IAAK,GAC5J,IAAK+B,EAAEX,EAAGF,KAAK44C,mBAAoB,OAAO54C,KAAK44C,kBAAoB14C,EAAGF,KAAKi7C,4CAE5E/8C,EAAEsB,UAAU09B,qBAAuB,WACpC,OAAO79B,EAAEtB,KAAK,GAAIiC,KAAK44C,oBACtB16C,EAAEsB,UAAU+5C,yBAA2B,WACxC,IAAIz6C,EAAGoB,EAAGb,EAAGzB,EAEb,IAAKsC,KADLpB,EAAI,GAAIO,EAAIW,KAAK44C,mBACY,KAAhBh7C,EAAIyB,EAAEa,KAAgBxB,EAAEwB,KAAOpB,EAAEoB,GAAKtC,GACnD,OAAOkB,GACNZ,EAAEsB,UAAU+7C,gBAAkB,WAC/B,OAAOv7C,KAAK4+B,oBAAoB,UAAU,IACzC1gC,EAAEsB,UAAUg8C,cAAgB,WAC7B,OAAOx7C,KAAKm9B,uBAAuB,WAClCj/B,EAAEsB,UAAUi8C,mBAAqB,WAClC,OAAOz7C,KAAK26C,oBAAoB,WAC/Bz8C,EAAE2d,YAAY,uCAAwC3d,EAAE2d,YAAY,wDAAyD3d,EAAE2d,YAAY,yDAA0D3d,EAAE2d,YAAY,gDAAiD3d,EAAE2d,YAAY,6CAA8C3d,EAAE2d,YAAY,iCAAkC3d,EAAEsB,UAAU25C,aAAe,SAAUr6C,GACtZ,IAAIoB,EAAGb,EACP,OAAOa,EAAIF,KAAKoI,SAASguC,uBAAuBt3C,GAAI,OAASO,EAAIW,KAAKsL,UAAYjM,EAAEq8C,sDAAsDx7C,QAAK,GAC9IhC,EAAEsB,UAAUw0B,iBAAmB,WAChC,IAAIl1B,EACJ,OAAQA,EAAIkB,KAAK65C,oBAAsB75C,KAAKoI,SAAS0vC,uBAAuBh5C,QAAK,GAChFZ,EAAEsB,UAAUw1B,iBAAmB,SAAUl2B,GAC1C,IAAIoB,EACJ,OAAOA,EAAIF,KAAKoI,SAASguC,uBAAuBt3C,GAAIkB,KAAK27C,sBAAsBC,iBAAiB17C,IAC/FhC,EAAEsB,UAAUk7C,YAAc,WAC3B,IAAI57C,EACJ,OAAQA,EAAIkB,KAAK65C,oBAAsB75C,KAAKoI,SAAS8uC,qBAAqBp4C,EAAE,SAAM,GACjFZ,EAAEsB,UAAUq6C,iBAAmB,SAAU/6C,GAC1C,IAAIoB,EAAGb,EACP,OAAO,OAASa,EAAI,OAASb,EAAIW,KAAK67C,qBAAuBx8C,EAAIW,KAAK27C,sBAAsB9B,iBAAiB/6C,IAAMoB,EAAIP,EAAE,CACvHwuC,MAAO,EACPvwB,OAAQ,KAET1f,EAAEsB,UAAUs8C,wBAA0B,SAAUh9C,EAAGoB,GACpD,IAAIb,EACJW,KAAK67C,oBAAsB/8C,EAC3B,IACEO,EAAIa,IACJ,QACAF,KAAK67C,oBAAsB,KAE7B,OAAOx8C,GACNnB,EAAEsB,UAAUu8C,gBAAkB,SAAUj9C,EAAGoB,GAC5C,IAAIb,EACJ,OAAOA,EAAIW,KAAKoI,SAASguC,uBAAuBt3C,GAAIkB,KAAK87C,wBAAwBz8C,EAAGa,IACnFhC,EAAEsB,UAAU+7B,mBAAqB,SAAUz8B,EAAGoB,GAC/C,IAAIb,EACJ,OAAOA,EAAIW,KAAKg8C,gCAAgCl9C,EAAG,CACjDsjB,QAAQ,IACNpiB,KAAK87C,wBAAwBz8C,EAAGa,IACnChC,EAAEsB,UAAU46C,4BAA8B,SAAUt7C,EAAGoB,GACxD,IAAIb,EAAGzB,EAAGS,EAAGK,EACb,OAAOd,GAAK,MAAQsC,EAAIA,EAAI,IAAIkB,OAAqC1C,GAA7BL,EAAI2B,KAAKg0B,oBAA0B,GAAI30B,EAAIhB,EAAE,GAAI,aAAeS,EAAIlB,EAAIc,GAAKd,EAAIc,EAAIsB,KAAKi8C,iCAAiCv9C,GAAI,GAAKd,EAAIyB,GAAKzB,EAAIyB,EAAIW,KAAKi8C,iCAAiC58C,EAAG,GAAIM,EAAE,CAACjB,EAAGW,KAC/OnB,EAAEsB,UAAUs7B,oCAAsC,SAAUh8B,GAC7D,IAAIoB,EACJ,QAAOF,KAAKk8C,oBAA0Bh8C,EAAIF,KAAKo6C,4BAA4Bt7C,GAAI,MAAQkB,KAAKq6C,qBAAqBn6C,KAChHhC,EAAEsB,UAAU84B,sBAAwB,SAAUx5B,GAC/C,IAAIoB,EAAGb,EAAGzB,EAAGS,EACb,OAAO2B,KAAKk8C,kBAAoBt+C,EAAIoC,KAAKoI,SAAS+nC,qBAAqBnwC,KAAKk8C,oBAAsB79C,EAAI2B,KAAKg0B,mBAAoBp2B,EAAIoC,KAAKo6C,4BAA4Bt7C,GAAIO,GAAKpB,EAAEI,EAAGT,IAAKoC,KAAKg1B,iBAAiB,aAAel2B,EAAIlB,EAAE,GAAKA,EAAE,IAAKyB,IAAMa,EAAIF,KAAKq6C,qBAAqBz8C,IAAMoC,KAAKs6C,eAAep6C,QAAK,GAChThC,EAAEsB,UAAUo5B,2BAA6B,SAAU95B,EAAGoB,GACvD,IAAIb,EAAGzB,EACP,OAAOyB,GAAK,MAAQa,EAAIA,EAAI,IAAIkB,OAAQxD,EAAIoC,KAAKo6C,4BAA4Bt7C,EAAG,CAC9EsC,OAAQ/B,IACNW,KAAKg1B,iBAAiBp3B,IACzBM,EAAEsB,UAAU28C,0BAA4B,WACzC,OAAOn8C,KAAK26C,oBAAoB,QAAU36C,KAAKo8C,qCAAqC,aAAU,GAC7Fl+C,EAAEsB,UAAU48C,qCAAuC,SAAUt9C,GAC9D,IAAIoB,EAAGb,EACP,OAAOa,EAAIF,KAAK06C,cAAer7C,EAAIW,KAAKoI,SAASovC,oCAAoC14C,EAAGoB,GAAIF,KAAKg1B,iBAAiB31B,IACjHnB,EAAEsB,UAAUk7B,6BAA+B,WAC5C,IAAI57B,EACJ,OAAQ,OAASA,EAAIkB,KAAKq8C,0BAA4Bv9C,EAAEsC,YAAS,GAAU,GAC1ElD,EAAEsB,UAAU64B,0BAA4B,WACzC,OAAOr4B,KAAKk8C,mBAAqBl8C,KAAKs8C,uBAAuBt8C,KAAK06C,gBACjEx8C,EAAEsB,UAAU88C,uBAAyB,SAAUx9C,GAChD,IAAIoB,EACJ,OAAQA,EAAIF,KAAKoI,SAAS0tC,qBAAqBh3C,IAAMkB,KAAKu8C,uBAAuBr8C,QAAK,GACrFhC,EAAEsB,UAAUy0B,qBAAuB,SAAUn1B,GAC9C,IAAIoB,EACJ,OAAO,OAASA,EAAIF,KAAKoI,SAASgoC,mBAAmBtxC,IAAMoB,EAAEmsC,oBAAiB,GAC7EnuC,EAAEsB,UAAUw5B,oBAAsB,WACnC,IAAIl6B,EACJ,OAAQA,EAAIkB,KAAKg0B,oBAAsBh0B,KAAKoI,SAASiuC,mBAAmBv3C,QAAK,GAC5EZ,EAAEsB,UAAU68C,uBAAyB,WACtC,IAAIv9C,EACJ,OAAO,OAASA,EAAIkB,KAAKg5B,uBAAyBl6B,EAAEmxC,sBAAmB,GACtE/xC,EAAEsB,UAAUywC,eAAiB,WAC9B,OAAOjwC,KAAKqtB,YAAYpqB,MAAM,IAC7B/E,EAAEsB,UAAUq5C,mBAAqB,WAClC,IAAI/5C,EAAGoB,EAAGb,EAAGzB,EAAGS,EAAGK,EAAGiB,EAAGkB,EAAGuP,EAAGnS,EAAG8R,EAAGrQ,EACrC,IAAKL,EAAIW,KAAKoI,SAAS6nC,iBAA8CnxC,GAA5B+B,EAAIhD,EAAEmC,KAAKqtB,YAAahuB,IAAUme,MAAOzN,EAAIlP,EAAE4c,QAASzd,KAAKqtB,YAAchuB,EAAGzB,EAAI,EAAGc,EAAIqR,EAAE3O,OAAQ1C,EAAId,EAAGA,KAAKsC,EAAI6P,EAAEnS,IAAM0N,SAAW,KAAM,OAAS8E,EAAIpQ,KAAKsL,WAAa,mBAAqB8E,EAAEosC,gCAAkCpsC,EAAEosC,+BAA+Bt8C,GAC9S,IAAKR,EAAI,GAAIrB,EAAI,EAAGsB,EAAIb,EAAEsC,OAAQzB,EAAItB,EAAGA,KAAK6B,EAAIpB,EAAET,IAAMiN,SAAWtL,KAAMN,EAAE+C,KAAK,OAASxE,EAAI+B,KAAKsL,WAAa,mBAAqBrN,EAAEw+C,4BAA8Bx+C,EAAEw+C,4BAA4Bv8C,QAAK,GACzM,OAAOR,GACNxB,EAAEsB,UAAUmkC,8BAAgC,SAAU7kC,GACvD,IAAIoB,EACJ,OAAOF,KAAK0mC,WAAY,OAASxmC,EAAIF,KAAKsL,WAAa,mBAAqBpL,EAAEw8C,6BAA+Bx8C,EAAEw8C,6BAA6B59C,QAAK,GAChJZ,EAAEsB,UAAU0rC,8BAAgC,SAAUpsC,GACvD,IAAIoB,EACJ,OAAOF,KAAK0mC,WAAY,OAASxmC,EAAIF,KAAKsL,WAAa,mBAAqBpL,EAAEy8C,yCAA2Cz8C,EAAEy8C,yCAAyC79C,QAAK,GACxKZ,EAAEsB,UAAU86C,eAAiB,SAAUx7C,EAAGoB,GAC3C,IAAIb,EACJ,GAAIP,IAAMkB,KAAKk8C,kBAAmB,OAAOl8C,KAAKw6C,wBAAyBx6C,KAAKk8C,kBAAoBp9C,EAAG,OAASO,EAAIW,KAAKsL,WAAa,mBAAqBjM,EAAEu9C,qCAAuCv9C,EAAEu9C,qCAAqC58C,KAAKk8C,kBAAmBh8C,QAAK,GACnQhC,EAAEsB,UAAUg7C,sBAAwB,WACrC,IAAI17C,EACJ,GAAIkB,KAAKk8C,kBAAmB,OAAO,OAASp9C,EAAIkB,KAAKsL,WAAa,mBAAqBxM,EAAE+9C,qCAAuC/9C,EAAE+9C,oCAAoC78C,KAAKk8C,mBAAoBl8C,KAAKk8C,kBAAoB,MACvNh+C,EAAEsB,UAAU8nC,8BAAgC,SAAUxoC,EAAGoB,GAC1D,OAAOF,KAAKklC,YAAYllC,KAAKoI,SAASk/B,8BAA8BxoC,EAAGoB,KACtEhC,EAAEsB,UAAU+nC,6BAA+B,SAAUzoC,EAAGoB,GACzD,OAAOF,KAAKklC,YAAYllC,KAAKoI,SAASm/B,6BAA6BzoC,EAAGoB,KACrEhC,EAAEsB,UAAUm6C,oBAAsB,SAAU76C,GAC7C,IAAIO,EAAGzB,EAAGS,EAAGK,EAAGiB,EAChB,OAAO/B,EAAIkB,EAAEsJ,SAAU/I,EAAIP,EAAE6lC,MAA4BhlC,EAAI,EAAzBjB,EAAII,EAAEm5C,eAAwB,EAAGv5C,GAAIW,EAAE2lC,0BAA4BlmC,EAAEo5C,cAAct6B,QAAUve,EAAEiyC,kBAAoB,OAASxyC,EAAEu5C,cAAgB35C,GAAK,EAAId,EAAIA,EAAEqxC,kBAAkBtvC,GAAIA,EAAI,CAACjB,EAAGA,IAAM,OAASI,EAAEu5C,cAAgB,OAASv5C,EAAEs5C,kBAAoBz4C,EAAI,CAACjB,EAAI,EAAGA,EAAI,IAAMiB,EAAI,CAACjB,EAAGA,EAAI,GAAIA,GAAK,GAAKI,EAAEo5C,cAAct6B,OAAS,IAAM,IAAMlf,GAAK,GAAIL,EAAI,IAAI6B,EAAEssB,SAAS,CAACntB,EAAEsxC,sBAAsBH,oBAAqBxwC,KAAKklC,YAAYtnC,EAAEi4C,sBAAsBx3C,EAAGsB,IAAKK,KAAKm5C,aAAaz6C,IAChgBR,EAAEsB,UAAU67C,iBAAmB,WAChC,IAAIv8C,EAAGoB,EACP,OAAQA,EAAIF,KAAK65C,sBAAwB/6C,EAAIoB,EAAE,GAAGiuC,OAAW,EAAKnuC,KAAKoI,SAASotC,gBAAgB12C,EAAI,QAAK,GACxGZ,EAAEsB,UAAU06C,SAAW,WACxB,IAAIp7C,EACJ,OAAQA,EAAIkB,KAAK65C,oBAAsB75C,KAAKoI,SAASotC,gBAAgB12C,EAAE,GAAGqvC,YAAS,GAClFjwC,EAAEsB,UAAU66C,qBAAuB,SAAUv7C,GAC9C,IAAIO,EACJ,OAAOA,EAAIW,KAAKoI,SAASiuC,mBAAmBv3C,IAAM6C,aAAezB,EAAEmb,6BAA+B,KAAOhc,EAAE4wC,iBAAiB,QAAK,GAChI/xC,EAAEsB,UAAUy7C,wCAA0C,WACvD,IAAIn8C,EACJ,OAAO,OAASA,EAAIkB,KAAKsL,WAAa,mBAAqBxM,EAAEg+C,sCAAwCh+C,EAAEg+C,sCAAsC98C,KAAK44C,wBAAqB,GACtK16C,EAAEsB,UAAU65C,iCAAmC,SAAUv6C,GAC1D,IAAIoB,EACJ,OAAO,OAASA,EAAIF,KAAKsL,WAAa,mBAAqBpL,EAAE68C,sCAAwC78C,EAAE68C,sCAAsCj+C,QAAK,GACjJZ,EAAEsB,UAAUy8C,iCAAmC,SAAUn9C,EAAGoB,GAC7D,IAAIb,EAAGzB,EACP,OAA0CyB,GAAnCzB,EAAIoC,KAAKoI,SAASsU,iBAAuB6L,qBAAqBzpB,GAAIlB,EAAE0qB,mBAAmBjpB,EAAIa,IACjGhC,EA1R8O,CA2RjPgC,EAAE0b,cACJ7d,KAAKiC,MAAO,WACZ,IAAIlB,EAAI,SAAWk+C,EAAM98C,GACrB,SAAStC,IACPoC,KAAKF,YAAck9C,EAErB,IAAK,IAAI3+C,KAAK6B,EAAGb,EAAEtB,KAAKmC,EAAG7B,KAAO2+C,EAAK3+C,GAAK6B,EAAE7B,IAC9C,OAAOT,EAAE4B,UAAYU,EAAEV,UAAWw9C,EAAKx9C,UAAY,IAAI5B,EAAKo/C,EAAK9gC,UAAYhc,EAAEV,UAAWw9C,GAE5F39C,EAAI,GAAGI,eACTS,EAAE+8C,YAAc,SAAU/8C,GACxB,SAASb,EAAEP,GACTkB,KAAK6lC,YAAc/mC,EAAGkB,KAAKk9C,YAAc,GAAIl9C,KAAKm9C,YAAc,GAElE,IAAIv/C,EACJ,OAAOkB,EAAEO,EAAGa,GAAIb,EAAEG,UAAU47B,gBAAkB,SAAUt8B,EAAGoB,GACzD,IAAIb,EAAGhB,EAAGK,EAAGiB,EAAGkB,EAChB,OAA+BxC,GAAxBsB,EAAI,MAAQO,EAAIA,EAAI,IAAU6jC,QAAS1kC,EAAIM,EAAEy9C,eAAgB1+C,EAAIsB,KAAKk9C,YAAYj6C,OAAO,GAAG,GAAI5D,GAAKzB,EAAEc,EAAGI,EAAGT,QAAK,GAAUwC,EAAIb,KAAKq9C,YAAY,CACtJC,YAAax+C,EACbilC,QAAS1lC,IACP2B,KAAKk9C,YAAYz6C,KAAK5B,GAAIb,KAAKm9C,YAAc,KAChD99C,EAAEG,UAAUkqB,KAAO,WACpB,IAAI5qB,EAAGoB,EACP,OAAQA,EAAIF,KAAKk9C,YAAYvlC,QAAU7Y,EAAIkB,KAAKq9C,YAAYn9C,GAAIF,KAAKm9C,YAAY16C,KAAK3D,GAAIkB,KAAK6lC,YAAYoT,aAAa/4C,EAAEq9C,gBAAa,GACtIl+C,EAAEG,UAAUgqB,KAAO,WACpB,IAAI1qB,EAAGoB,EACP,OAAQpB,EAAIkB,KAAKm9C,YAAYxlC,QAAUzX,EAAIF,KAAKq9C,YAAYv+C,GAAIkB,KAAKk9C,YAAYz6C,KAAKvC,GAAIF,KAAK6lC,YAAYoT,aAAan6C,EAAEy+C,gBAAa,GACtIl+C,EAAEG,UAAUg+C,QAAU,WACvB,OAAOx9C,KAAKk9C,YAAY97C,OAAS,GAChC/B,EAAEG,UAAUi+C,QAAU,WACvB,OAAOz9C,KAAKm9C,YAAY/7C,OAAS,GAChC/B,EAAEG,UAAU69C,YAAc,SAAUv+C,GACrC,IAAIoB,EAAGb,EAAGzB,EACV,OAA+ByB,GAAxBzB,EAAI,MAAQkB,EAAIA,EAAI,IAAUw+C,YAAap9C,EAAItC,EAAEmmC,QAAS,CAC/DuZ,YAAa,MAAQj+C,EAAIA,EAAEsC,gBAAa,EACxCoiC,QAASx5B,KAAKC,UAAUtK,GACxBq9C,SAAUv9C,KAAK6lC,YAAYkT,gBAE5Bn7C,EAAI,SAAWkB,EAAGoB,EAAGb,GACtB,OAAQ,MAAQP,EAAIA,EAAEw+C,iBAAc,MAAa,MAAQp9C,EAAIA,EAAEyB,gBAAa,KAAY,MAAQ7C,EAAIA,EAAEilC,aAAU,KAAYx5B,KAAKC,UAAUnL,IAC1IA,EA9BW,CA+Bda,EAAE0b,cACJ7d,KAAKiC,MAAO,WACZ,IAAIlB,EACJoB,EAAEw9C,wBAA0B,SAAUx9C,GACpC,IAAIb,EACJ,OAAOA,EAAI,IAAIP,EAAEoB,IAAM8nB,UAAW3oB,EAAE05C,eACnCj6C,EAAI,WACL,SAASA,EAAEA,GACTkB,KAAKoI,SAAWtJ,EAAEsJ,SAAUpI,KAAKg5C,cAAgBl6C,EAAEk6C,cAErD,IAAI94C,EACJ,OAAOA,EAAI,oBAAyB,eAAoB,UAAWpB,EAAEU,UAAUwoB,QAAU,WACvF,OAAOhoB,KAAKk7C,uBAAwBl7C,KAAK29C,uBACxC7+C,EAAEU,UAAUu5C,YAAc,WAC3B,MAAO,CACL3wC,SAAUpI,KAAKoI,SACf4wC,cAAeh5C,KAAKg5C,gBAErBl6C,EAAEU,UAAU07C,qBAAuB,WACpC,IAAIp8C,EAAGO,EAAGzB,EAAGS,EAAGK,EAChB,IAAoCA,EAAI,GAAII,EAAI,EAAGO,GAA9ChB,EAAI2B,KAAK49C,sBAA2Cx8C,OAAQ/B,EAAIP,EAAGA,IAAKlB,EAAIS,EAAES,GAAIJ,EAAE+D,KAAKzC,KAAKoI,SAAWpI,KAAKoI,SAASmnC,uBAAuBrvC,EAAGtC,IACtJ,OAAOc,GACNI,EAAEU,UAAUm+C,oBAAsB,WACnC,IAAI7+C,EAAGO,EAAGzB,EAAGS,EAAGK,EAAGiB,EACnB,IAAK/B,EAAI,EAAkC+B,EAAI,GAAIb,EAAI,EAAGO,GAA9CX,EAAIsB,KAAK69C,sBAA2Cz8C,OAAQ/B,EAAIP,EAAGA,KAAKT,EAAIK,EAAEI,IAAM,GAAKT,EAAE,GAAK,IAAMA,EAAE,IAAMT,EAAGS,EAAE,IAAMT,EAAG,OAASoC,KAAKoI,SAASgvC,uBAAuB/4C,EAAE,MAAQ2B,KAAKoI,SAAWpI,KAAKoI,SAASquC,wBAAwBp4C,EAAE,IAAKA,EAAE,GAAK2B,KAAKg5C,cAAc,IAAMh5C,KAAK89C,2BAA4Bz/C,EAAE,KAAMT,KAAM,IAAMS,EAAE,IAAM,OAAS2B,KAAKoI,SAASgvC,uBAAuB/4C,EAAE,GAAK,KAAO2B,KAAKoI,SAAWpI,KAAKoI,SAASquC,wBAAwBp4C,EAAE,IAAKA,EAAE,GAAK2B,KAAKg5C,cAAc,IAAMh5C,KAAK89C,2BAA4Bz/C,EAAE,KAAMT,KAAM+B,EAAE8C,KAAKzC,KAAKoI,SAAWpI,KAAKoI,SAASsuC,2BAA2Bx2C,GAAG,EAAI7B,KACzmB,OAAOsB,GACNb,EAAEU,UAAUo+C,mBAAqB,WAClC,OAAO59C,KAAKoI,SAASsvC,4BAA4Bx3C,IAChDpB,EAAEU,UAAUq+C,mBAAqB,WAClC,OAAO79C,KAAKoI,SAASuvC,2BAlBa,eAkBiB,CACjDC,UAnBoD,aAqBrD94C,EAAEU,UAAUs+C,yBAA2B,WACxC,OAAO99C,KAAKg5C,cAAc,IAAM,EAAGh5C,KAAKg5C,cAAc,IAAM,GAC3Dl6C,EA5BE,IA8BPf,KAAKiC,MAAO,WAMZE,EAAE69C,OAAS,WACT,SAAS1+C,EAAEA,EAAGhB,EAAGK,GACfsB,KAAK6lC,YAAcxmC,EAAGW,KAAKg+C,iBAAmB3/C,EAAG2B,KAAKuI,QAAU7J,EAAGsB,KAAKizB,YAPpE,SAAWgrB,EAAM/9C,GACvB,OAAO,WACL,OAAO+9C,EAAKp7C,MAAM3C,EAAGwI,YAKiE5J,CAAEkB,KAAKizB,YAAajzB,MAAOA,KAAKk+C,YAAc,IAAIh+C,EAAE+8C,YAAYj9C,KAAK6lC,aAAc7lC,KAAKm+C,QAAUvgD,EAAEqF,MAAM,GAElM,IAAIrF,EACJ,OAAOA,EAAI,CAACsC,EAAEw9C,yBAA0Br+C,EAAEG,UAAU4+C,aAAe,SAAUt/C,GAC3E,OAAOkB,KAAKi5C,aAAa,CACvB7wC,SAAUtJ,EACVk6C,cAAe,CAAC,EAAG,MAEpB35C,EAAEG,UAAU6+C,SAAW,SAAUv/C,GAClC,OAAO,MAAQA,IAAMA,EAAI,IAAKkB,KAAKo+C,aAAal+C,EAAEssB,SAASC,SAAS3tB,EAAG,CACrEg0C,iBAAkB9yC,KAAKuI,YAExBlJ,EAAEG,UAAU8+C,SAAW,SAAUx/C,GAClC,IAAIO,EAAGzB,EACP,OAAOyB,EAAIP,EAAEsJ,SAAUxK,EAAIkB,EAAEk6C,cAAe35C,EAAIa,EAAEssB,SAASpQ,SAAS/c,GAAIW,KAAKi5C,aAAa,CACxF7wC,SAAU/I,EACV25C,cAAep7C,KAEhByB,EAAEG,UAAUy5C,aAAe,SAAUn6C,GACtC,OAAOkB,KAAKk+C,YAAc,IAAIh+C,EAAE+8C,YAAYj9C,KAAK6lC,aAAc7lC,KAAK6lC,YAAYoT,aAAan6C,IAC5FO,EAAEG,UAAU0zC,YAAc,WAC3B,OAAOlzC,KAAK6lC,YAAYz9B,UACvB/I,EAAEG,UAAUw5B,oBAAsB,WACnC,OAAOh5B,KAAK6lC,YAAY7M,uBACvB35B,EAAEG,UAAUu5C,YAAc,WAC3B,OAAO/4C,KAAK6lC,YAAYkT,eACvB15C,EAAEG,UAAUsL,OAAS,WACtB,OAAO9K,KAAK+4C,eACX15C,EAAEG,UAAU+2B,kBAAoB,SAAUz3B,GAC3C,OAAOkB,KAAK6lC,YAAYtP,kBAAkBz3B,IACzCO,EAAEG,UAAUw6C,iBAAmB,SAAUl7C,GAC1C,OAAOkB,KAAK6lC,YAAYmU,iBAAiBl7C,IACxCO,EAAEG,UAAUu6C,kBAAoB,SAAUj7C,GAC3C,OAAOkB,KAAK6lC,YAAYkU,kBAAkBj7C,IACzCO,EAAEG,UAAU22B,eAAiB,SAAUr3B,GACxC,OAAOkB,KAAK6lC,YAAY1P,eAAer3B,IACtCO,EAAEG,UAAUg4B,WAAa,SAAU14B,GACpC,OAAOkB,KAAK6lC,YAAYrO,WAAW14B,IAClCO,EAAEG,UAAUyzB,YAAc,SAAUn0B,GACrC,OAAOkB,KAAK6lC,YAAY5S,YAAYn0B,IACnCO,EAAEG,UAAU03B,WAAa,SAAUp4B,GACpC,OAAOkB,KAAK6lC,YAAY3O,WAAWp4B,IAClCO,EAAEG,UAAUo1B,aAAe,SAAU91B,GACtC,OAAOkB,KAAK6lC,YAAYjR,aAAa91B,IACpCO,EAAEG,UAAU++B,WAAa,SAAUz/B,GACpC,OAAOkB,KAAK6lC,YAAYtH,WAAWz/B,IAClCO,EAAEG,UAAUw4B,gBAAkB,WAC/B,OAAOh4B,KAAK6lC,YAAY7N,mBACvB34B,EAAEG,UAAUw0B,iBAAmB,WAChC,OAAOh0B,KAAK6lC,YAAY7R,oBACvB30B,EAAEG,UAAUk7C,YAAc,WAC3B,OAAO16C,KAAK6lC,YAAY6U,eACvBr7C,EAAEG,UAAU++C,wBAA0B,SAAUz/C,GACjD,IAAIoB,EACJ,OAAOA,EAAIF,KAAKkzC,cAAckD,uBAAuB,CAACt3C,EAAGA,EAAI,IAAKkB,KAAKg+C,iBAAiBQ,6BAA6Bt+C,IACpHb,EAAEG,UAAUo5B,2BAA6B,SAAU95B,GACpD,OAAOkB,KAAK6lC,YAAYjN,2BAA2B95B,IAClDO,EAAEG,UAAU84B,sBAAwB,SAAUx5B,GAC/C,OAAOkB,KAAK6lC,YAAYvN,sBAAsBx5B,IAC7CO,EAAEG,UAAUw1B,iBAAmB,SAAUl2B,GAC1C,OAAOkB,KAAK6lC,YAAY7Q,iBAAiBl2B,IACxCO,EAAEG,UAAUi/C,kBAAoB,SAAU3/C,EAAGoB,GAC9C,OAAO,MAAQA,IAAMA,GAAI,GAAKF,KAAK6lC,YAAYjH,oBAAoB9/B,EAAGoB,IACrEb,EAAEG,UAAUk/C,kBAAoB,SAAU5/C,GAC3C,OAAOkB,KAAK6lC,YAAY8U,oBAAoB77C,IAC3CO,EAAEG,UAAUm/C,qBAAuB,SAAU7/C,GAC9C,OAAOkB,KAAK6lC,YAAY+U,uBAAuB97C,IAC9CO,EAAEG,UAAUo/C,oBAAsB,SAAU9/C,GAC7C,OAAOkB,KAAK6lC,YAAY1I,uBAAuBr+B,IAC9CO,EAAEG,UAAUk5B,wBAA0B,WACvC,OAAO14B,KAAK6lC,YAAYnN,2BACvBr5B,EAAEG,UAAU04B,wBAA0B,WACvC,OAAOl4B,KAAK6lC,YAAY3N,2BACvB74B,EAAEG,UAAUm5B,qBAAuB,WACpC,OAAO34B,KAAK04B,0BAA4B14B,KAAK6lC,YAAYlN,4BAAyB,GACjFt5B,EAAEG,UAAU24B,qBAAuB,WACpC,OAAOn4B,KAAKk4B,0BAA4Bl4B,KAAK6lC,YAAY1N,4BAAyB,GACjF94B,EAAEG,UAAUi+C,QAAU,WACvB,OAAOz9C,KAAKk+C,YAAYT,WACvBp+C,EAAEG,UAAUg+C,QAAU,WACvB,OAAOx9C,KAAKk+C,YAAYV,WACvBn+C,EAAEG,UAAU47B,gBAAkB,SAAUt8B,EAAGoB,GAC5C,IAAIb,EAAGzB,EAAGS,EACV,OAA+BT,GAAxBS,EAAI,MAAQ6B,EAAIA,EAAI,IAAU6jC,QAAS1kC,EAAIhB,EAAE++C,eAAgBp9C,KAAKk+C,YAAY9iB,gBAAgBt8B,EAAG,CACtGilC,QAASnmC,EACTw/C,eAAgB/9C,KAEjBA,EAAEG,UAAUgqB,KAAO,WACpB,OAAOxpB,KAAKy9C,UAAYz9C,KAAKk+C,YAAY10B,YAAS,GACjDnqB,EAAEG,UAAUkqB,KAAO,WACpB,OAAO1pB,KAAKw9C,UAAYx9C,KAAKk+C,YAAYx0B,YAAS,GACjDrqB,EA7FM,IA+FXtB,KAAKiC,MAAO,WACZ,IAAIlB,EAAI,SAAW+/C,EAAM3+C,GACrB,SAAStC,IACPoC,KAAKF,YAAc++C,EAErB,IAAK,IAAIxgD,KAAK6B,EAAGb,EAAEtB,KAAKmC,EAAG7B,KAAOwgD,EAAKxgD,GAAK6B,EAAE7B,IAC9C,OAAOT,EAAE4B,UAAYU,EAAEV,UAAWq/C,EAAKr/C,UAAY,IAAI5B,EAAKihD,EAAK3iC,UAAYhc,EAAEV,UAAWq/C,GAE5Fx/C,EAAI,GAAGI,eACTS,EAAE4+C,kBAAoB,SAAU5+C,GAC9B,SAASb,EAAEP,EAAGoB,GACZ,IAAIb,EACJW,KAAK++C,kBAAoBjgD,EAAGkB,KAAKmqB,WAAajqB,EAAGb,EAAIW,KAAKmqB,WAAYnqB,KAAKoL,GAAK/L,EAAE+L,GAAIpL,KAAK4G,KAAOvH,EAAEuH,KAEtG,OAAO9H,EAAEO,EAAGa,GAAIb,EAAEG,UAAU0mB,OAAS,WACnC,OAAOlmB,KAAK++C,kBAAkBC,2BAA2Bh/C,KAAKmqB,aAC7D9qB,EAAEwc,YAAY,2BAA4Bxc,EAAEwc,YAAY,2BAA4Bxc,EAAEwc,YAAY,2BAA4Bxc,EAAEwc,YAAY,4BAA6Bxc,EAAEwc,YAAY,4BAA6Bxc,EAAEwc,YAAY,wBAAyBxc,EAAEwc,YAAY,4BAA6Bxc,EAAEwc,YAAY,qBAAsBxc,EAAEwc,YAAY,sBAAuBxc,EAAEwc,YAAY,0BAA2Bxc,EAAEwc,YAAY,0BAA2Bxc,EAAEwc,YAAY,mCAAoCxc,EAAEwc,YAAY,2BAA4Bxc,EAAEwc,YAAY,6BAA8Bxc,EAAEwc,YAAY,sBAAuBxc,EAAEwc,YAAY,sBAAuBxc,EAAEwc,YAAY,0BAA2Bxc,EAAEwc,YAAY,gCAAiCxc,EAAEwc,YAAY,gCAAiCxc,EAPzwB,CAQpBa,EAAE0b,cACJ7d,KAAKiC,MAAO,WACZ,IAAIlB,EAAI,SAAWmgD,EAAM/+C,GACrB,SAAStC,IACPoC,KAAKF,YAAcm/C,EAErB,IAAK,IAAI5gD,KAAK6B,EAAGb,EAAEtB,KAAKmC,EAAG7B,KAAO4gD,EAAK5gD,GAAK6B,EAAE7B,IAC9C,OAAOT,EAAE4B,UAAYU,EAAEV,UAAWy/C,EAAKz/C,UAAY,IAAI5B,EAAKqhD,EAAK/iC,UAAYhc,EAAEV,UAAWy/C,GAE5F5/C,EAAI,GAAGI,eACTS,EAAEg/C,kBAAoB,SAAU7/C,GAC9B,SAASzB,EAAEkB,GACT,IAAIoB,EAAGb,EAAGzB,EACV,IAAK,MAAQkB,IAAMA,EAAI,IAAKkB,KAAKm/C,mBAAqB,GAAI9/C,EAAI,EAAGzB,EAAIkB,EAAEsC,OAAQxD,EAAIyB,EAAGA,IAAKa,EAAIpB,EAAEO,GAAIW,KAAKo/C,iBAAiBl/C,GAE7H,OAAOpB,EAAElB,EAAGyB,GAAIzB,EAAE4B,UAAUywC,eAAiB,WAC3C,IAAInxC,EAAGoB,EAAGb,EAAGzB,EAEb,IAAKsC,KADwBtC,EAAI,GAAjCyB,EAAIW,KAAKm/C,mBACIrgD,EAAIO,EAAEa,GAAItC,EAAE6E,KAAK3D,GAC9B,OAAOlB,GACNA,EAAE4B,UAAU4/C,iBAAmB,SAAUtgD,GAC1C,IAAIO,EAAGzB,EACP,OAAO,OAASyB,EAAIW,KAAKm/C,oBAAoBvhD,EAAIkB,EAAEsM,IAAM/L,EAAEzB,GAAKyB,EAAEzB,GAAK,IAAIsC,EAAE4+C,kBAAkB9+C,KAAMlB,IACpGlB,EAAE4B,UAAU6/C,oBAAsB,SAAUvgD,GAC7C,OAAOA,EAAEsM,MAAMpL,KAAKm/C,oBACnBvhD,EAAE4B,UAAUw/C,2BAA6B,SAAUlgD,GACpD,IAAIoB,EACJ,OAAOF,KAAKq/C,oBAAoBvgD,IAAM,OAASoB,EAAIF,KAAKsL,WAAa,mBAAqBpL,EAAEo/C,+CAAiDp/C,EAAEo/C,+CAA+CxgD,QAAK,GAClMlB,EAAE4B,UAAU+/C,mBAAqB,SAAUzgD,GAC5C,IAAIoB,EACJ,OAAOA,EAAIF,KAAKm/C,mBAAmBrgD,EAAEsM,WAAYpL,KAAKm/C,mBAAmBrgD,EAAEsM,IAAKlL,GAC/EtC,EArBiB,CAsBpBsC,EAAE0b,cACJ7d,KAAKiC,MAAO,WACZ,IAAIlB,EAAGO,EAAGzB,EAAGS,EAAGK,EAAGiB,EAAGkB,EAAGuP,EAAGnS,EAAGJ,EAAGkS,EAClCjR,EAAIoB,EAAEmgB,oBAAqBhhB,EAAIa,EAAEygB,qBAAsBjiB,EAAIwB,EAAEiiB,iBAAkBxiB,EAAIO,EAAE+hB,wBAAyB5jB,EAAI6B,EAAE8hB,qBAAsBnhB,EAAIX,EAAEqiB,mBAAoBnS,EAAIlQ,EAAE2iB,oBAAqB5kB,EAAIiC,EAAEsiB,eAAgB5kB,EAAIsC,EAAEwiB,wBAAyB7kB,EAAIqC,EAAEgO,QAAS6B,EAAI7P,EAAE2gB,SAAU3gB,EAAEs/C,eAAiB,WACpS,SAASt/C,EAAEpB,GACTkB,KAAKuI,QAAUzJ,EAEjB,IAAIY,EAAGxB,EAAGuU,EAAG1S,EACb,OAAOG,EAAEV,UAAUigD,mCAAqC,SAAUv/C,EAAGtC,EAAGS,GACtE,IAAIsB,EAAGyQ,EAAGvS,EAAG6B,EAAGK,EAAG/B,EAAG8U,EACtB,IAAK9U,GAAK,MAAQK,EAAIA,EAAI,CACxB+jB,QAAQ,IACPA,OAAQhS,EAAI,EAAGvS,GAAI,EAAI6B,EAAI,CAC5ByuC,MAAO,EACPvwB,OAAQ,IACNje,EAAIK,KAAK0/C,mCAAmCx/C,MAAQA,EAAIP,EAAE0M,WAAYzO,EAAIyB,EAAEM,IAAKmT,EAAI/C,EAAE/P,KAAKuI,QAAS,CACvGwY,YAAatO,IACXK,EAAEq/B,YAAa,CACjB,IAAIpyC,EAAI+S,EAAEs/B,eAAmBlyC,GAAKjC,EAAEiC,GAAI,CACtCW,EAAEd,KAAOL,EAAEke,QAAUhgB,GACrB,MAEF,GAAImC,EAAEsM,aAAenM,GACnB,GAAIkQ,MAAQxS,EAAG,WACV,IAAKkB,EAAEoB,EAAGH,IAAMqQ,EAAI,EAAG,MAC9B1R,EAAEqB,EAAG,CACHqiB,OAAQpkB,KACJH,GAAK6B,EAAEyuC,QAASzuC,EAAEke,OAAS,EAAG/f,GAAI,GAAM6B,EAAEke,QAAU1f,EAAE6B,GAE9D,OAAOL,GACNQ,EAAEV,UAAUmgD,mCAAqC,SAAU7gD,GAC5D,IAAIoB,EAAGtC,EAAG+B,EAAGyQ,EAAGvS,EAChB,GAAI,IAAMiB,EAAEqvC,OAAS,IAAMrvC,EAAE8e,OAAQ,CACnC,IAAK1d,EAAIF,KAAKuI,QAAS6H,EAAI,EAAGlQ,EAAEmW,YAAa,GAAInW,EAAIA,EAAEmW,WAAYhY,EAAE6B,GAAI,CACvEkQ,EAAI,EACJ,MAEF,MAAO,CAAClQ,EAAGkQ,GAEb,GAA+CxS,GAA3CC,EAAImC,KAAK4/C,8BAA8B9gD,IAAU,GAAIa,EAAI9B,EAAE,GAAID,EAAG,CACpE,GAAIK,EAAEL,GAAI,IAAMM,EAAEN,IAAMsC,EAAItC,EAAEyO,WAAWA,WAAY+D,EAAI/Q,EAAEzB,EAAEyO,YAAaxL,EAAEjD,EAAG,CAC7EO,KAAM,WACFiS,MAAQlQ,EAAItC,EAAGwS,EAAItR,EAAE8e,OAASje,OAAQ,CAC1C,GAAIO,EAAItC,EAAEyO,YAAa3N,EAAEd,EAAEuU,mBAAqB9T,EAAE6B,GAAI,KAAOtC,IAAMsC,EAAEslC,YAAc5nC,EAAIsC,EAAGA,EAAIA,EAAEmM,YAAahO,EAAE6B,MAC/GkQ,EAAI/Q,EAAEzB,GAAI,IAAMkB,EAAE8e,QAAUxN,IAE9B,MAAO,CAAClQ,EAAGkQ,KAEZlQ,EAAEV,UAAUogD,8BAAgC,SAAU9gD,GACvD,IAAIoB,EAAGb,EAAGzB,EAAGS,EAAGK,EAAGiB,EAAGyQ,EAAGvS,EACzB,IAAKuS,EAAI,EAAkD/Q,EAAI,EAAGzB,GAAtDC,EAAImC,KAAK6/C,4BAA4B/gD,EAAEqvC,QAAqB/sC,OAAQxD,EAAIyB,EAAGA,IAAK,CAC1F,GAAIa,EAAIrC,EAAEwB,GAAIhB,EAAIH,EAAEgC,GAAIpB,EAAE8e,QAAUxN,EAAI/R,EAAG,GAAIJ,EAAEiC,IAC/C,GAAIxB,EAAIwB,EAAGP,EAAIyQ,EAAGtR,EAAE8e,SAAWje,GAAKkB,EAAEnC,GAAI,WACrCA,IAAMA,EAAIwB,EAAGP,EAAIyQ,GACxB,IAAIA,GAAK/R,GAAOS,EAAE8e,OAAQ,MAE5B,MAAO,CAAClf,EAAGiB,IACVO,EAAEV,UAAUkgD,mCAAqC,SAAU5gD,GAC5D,KAAOA,GAAKA,IAAMkB,KAAKuI,SAAU,CAC/B,GAAI3K,EAAEkB,GAAI,OAAOA,EACjBA,EAAIA,EAAEuN,aAEPnM,EAAEV,UAAUqgD,4BAA8B,SAAU/gD,GACrD,IAAIoB,EAAGb,EAAGzB,EAAGS,EAAGK,EAChB,IAAKd,EAAI,GAAIc,EAAIqR,EAAE/P,KAAKuI,QAAS,CAC/BwY,YAAarhB,IACXrB,GAAI,EAAIK,EAAEyzC,YAAa,GAAI9yC,EAAIX,EAAE0zC,YAAazyC,EAAEN,IAClD,GAAI,oBAAsBa,GAAK,OAASA,EAAIA,IAAMA,EAAI,EAAGA,IAAMpB,EAAGT,GAAI,OAAQ,GAAIA,EAAG,WAChFA,GAAKT,EAAE6E,KAAKpD,GACnB,OAAOzB,GACNM,EAAI,SAAWY,GAEhB,OAAOA,EAAEwX,WAAaC,KAAKgK,UAAY1f,EAAE/B,GAAK,EAASA,EAAE+iB,YAAezgB,OAAU,OAASvD,EAAEiB,IAAMlB,EAAEkB,GAAK,EAAI,GAC7GY,EAAI,SAAWZ,GAChB,OAAOiB,EAAEjB,KAAOmiB,WAAWwyB,cAAgBhhC,EAAE3T,GAAKmiB,WAAWuyB,eAC5DzzC,EAAI,SAAWjB,GAChB,OAAOsR,EAAEtR,GAAKmiB,WAAWuyB,cAAgBvyB,WAAWwyB,eACnDhhC,EAAI,SAAW3T,GAChB,OAAOlB,EAAEkB,EAAEuN,YAAc4U,WAAWuyB,cAAgBvyB,WAAWwyB,eAC9DvzC,EA5EiS,IA8EtSnC,KAAKiC,MAAO,WACZ,IAAIlB,EACFO,EACAzB,EAAI,GAAGqF,MACTnE,EAAIoB,EAAE+jB,YAAa5kB,EAAIa,EAAEikB,YAAajkB,EAAE4/C,YAAc,WACpD,SAAS5/C,KACT,OAAOA,EAAEV,UAAUugD,wBAA0B,SAAU7/C,GACrD,IAAItC,EAAGS,EAAGK,EAAGiB,EAAGkB,EAAGuP,EAAGnS,EAAGJ,EACzB,GAAII,EAAIiC,EAAES,EAAG9C,EAAIqC,EAAE6S,EAAG3K,SAAS43C,uBAAwB,OAAkDthD,GAA3CmC,EAAIuH,SAAS43C,uBAAuB/hD,EAAGJ,IAAUoiD,WAAY5hD,EAAIwC,EAAE+c,QAAQhgB,EAAIwK,SAAS42B,eAAiBC,SAASvgC,EAAGL,GAAIT,EACvL,GAAIwK,SAAS83C,oBAAqB,OAAO93C,SAAS83C,oBAAoBjiD,EAAGJ,GACzE,GAAIuK,SAAS2c,KAAKo7B,gBAAiB,CACjCxgD,EAAIb,IACJ,KACEsR,EAAIhI,SAAS2c,KAAKo7B,mBAAqBC,YAAYniD,EAAGJ,GAAIuS,EAAE64B,SAC5D,MAAOl5B,IACT,OAAOnS,EAAIkB,IAAKO,EAAEM,GAAI/B,IAEvBsC,EAAEV,UAAU6gD,0BAA4B,SAAUvhD,GACnD,IAAOO,EACP,MAAsE,EAA/DA,EAAIzB,EAAEG,KAAKe,EAAEwhD,mBAAyB,GAAQjhD,EAAEA,EAAE+B,OAAS,KACjElB,EAhBiD,IAkBtDnC,KAAKiC,MAAO,WACZ,IAAIlB,EACFO,EAAI,SAAWP,EAAGoB,GAChB,OAAO,WACL,OAAOpB,EAAE+D,MAAM3C,EAAGwI,aAGtB9K,EAAI,SAAWkB,EAAGoB,GAChB,SAASb,IACPW,KAAKF,YAAchB,EAErB,IAAK,IAAIlB,KAAKsC,EAAG7B,EAAEN,KAAKmC,EAAGtC,KAAOkB,EAAElB,GAAKsC,EAAEtC,IAC3C,OAAOyB,EAAEG,UAAYU,EAAEV,UAAWV,EAAEU,UAAY,IAAIH,EAAKP,EAAEod,UAAYhc,EAAEV,UAAWV,GAEtFT,EAAI,GAAGoB,eACPf,EAAI,GAAG8Q,SAAW,SAAU1Q,GAC1B,IAAK,IAAIoB,EAAI,EAAGb,EAAIW,KAAKoB,OAAQ/B,EAAIa,EAAGA,IAAK,GAAIA,KAAKF,MAAQA,KAAKE,KAAOpB,EAAG,OAAOoB,EACpF,OAAQ,GAEZpB,EAAIoB,EAAE+jB,YAAa/jB,EAAEqgD,wBAA0B,SAAUrgD,GACvD,SAAS7B,IACP2B,KAAKwgD,IAAMnhD,EAAEW,KAAKwgD,IAAKxgD,MAAOA,KAAKukB,OAASllB,EAAEW,KAAKukB,OAAQvkB,MAAOA,KAAKygD,kBAAoB,GAE7F,IAAI9gD,EACJ,OAAO/B,EAAES,EAAG6B,GAAI7B,EAAEmB,UAAUuI,MAAQ,WAClC,OAAO/H,KAAK8N,aAAU,GAAU9N,KAAK8N,SAAU,EAAI,sBAAuB1F,SAAWA,SAASb,iBAAiB,kBAAmBvH,KAAKukB,QAAQ,GAAMvkB,KAAKwgD,QACzJniD,EAAEmB,UAAUsxB,KAAO,WACpB,OAAO9wB,KAAK8N,SAAW9N,KAAK8N,SAAU,EAAI1F,SAAS4L,oBAAoB,kBAAmBhU,KAAKukB,QAAQ,SAAO,GAC7GlmB,EAAEmB,UAAUkhD,yBAA2B,SAAU5hD,GAClD,OAAOJ,EAAEX,KAAKiC,KAAKygD,kBAAmB3hD,GAAK,GAAKkB,KAAKygD,kBAAkBh+C,KAAK3D,GAAIkB,KAAK+H,cAAW,GAC/F1J,EAAEmB,UAAUmhD,2BAA6B,SAAU7hD,GACpD,IAAIoB,EACJ,OAAOF,KAAKygD,kBAAoB,WAC9B,IAAIphD,EAAGzB,EAAGS,EAAGK,EACb,IAAiCA,EAAI,GAAIW,EAAI,EAAGzB,GAA3CS,EAAI2B,KAAKygD,mBAAwCr/C,OAAQxD,EAAIyB,EAAGA,KAAKa,EAAI7B,EAAEgB,MAAUP,GAAKJ,EAAE+D,KAAKvC,GACtG,OAAOxB,GACPX,KAAKiC,MAAO,IAAMA,KAAKygD,kBAAkBr/C,OAASpB,KAAK8wB,YAAS,GACjEzyB,EAAEmB,UAAUohD,yCAA2C,WACxD,IAAI9hD,EAAGoB,EAAGb,EAAGzB,EAAGS,EAChB,IAAiCT,EAAI,GAAIkB,EAAI,EAAGoB,GAA3Cb,EAAIW,KAAKygD,mBAAwCr/C,OAAQlB,EAAIpB,EAAGA,IAAKT,EAAIgB,EAAEP,GAAIlB,EAAE6E,KAAKpE,EAAEwiD,sBAC7F,OAAOjjD,GACNS,EAAEmB,UAAU+kB,OAAS,WACtB,IAAIrkB,EACJ,OAAOA,EAAIpB,IAAKa,EAAEO,EAAGF,KAAK8gD,eAAY,GAAU9gD,KAAK8gD,SAAW5gD,EAAGF,KAAK4gD,6CACvEviD,EAAEmB,UAAUuD,MAAQ,WACrB,OAAO/C,KAAK8gD,SAAW,KAAM9gD,KAAKukB,UACjClmB,EAAEmB,UAAUghD,IAAM,WACnB,OAAOxgD,KAAK8N,SAAW9N,KAAKukB,SAAUxP,sBAAsB/U,KAAKwgD,WAAQ,GACxE7gD,EAAI,SAAWb,EAAGoB,GACnB,OAAQ,MAAQpB,EAAIA,EAAE2lB,oBAAiB,MAAa,MAAQvkB,EAAIA,EAAEukB,oBAAiB,KAAY,MAAQ3lB,EAAIA,EAAEogC,iBAAc,MAAa,MAAQh/B,EAAIA,EAAEg/B,iBAAc,KAAY,MAAQpgC,EAAIA,EAAE4lB,kBAAe,MAAa,MAAQxkB,EAAIA,EAAEwkB,kBAAe,KAAY,MAAQ5lB,EAAIA,EAAEsgC,eAAY,MAAa,MAAQl/B,EAAIA,EAAEk/B,eAAY,IACnU/gC,EA/B0C,CAgC7C6B,EAAE0b,aAAc,MAAQ1b,EAAEokB,0BAA4BpkB,EAAEokB,wBAA0B,IAAIpkB,EAAEqgD,0BAC1FxiD,KAAKiC,MAAO,WACZ,IAAIlB,EACFO,EACAzB,EACAS,EACAK,EACAiB,EACAkB,EACAuP,EACAnS,EACAJ,EACAkS,EAAI,SAAWjR,EAAGoB,GAChB,OAAO,WACL,OAAOpB,EAAE+D,MAAM3C,EAAGwI,aAGtBhJ,EAAI,SAAWZ,EAAGoB,GAChB,SAASb,IACPW,KAAKF,YAAchB,EAErB,IAAK,IAAIlB,KAAKsC,EAAGhC,EAAEH,KAAKmC,EAAGtC,KAAOkB,EAAElB,GAAKsC,EAAEtC,IAC3C,OAAOyB,EAAEG,UAAYU,EAAEV,UAAWV,EAAEU,UAAY,IAAIH,EAAKP,EAAEod,UAAYhc,EAAEV,UAAWV,GAEtFZ,EAAI,GAAGuB,eACT7B,EAAIsC,EAAE4jB,gBAAiBzkB,EAAIa,EAAE+jB,YAAapmB,EAAIqC,EAAEikB,YAAarlB,EAAIoB,EAAEmgB,oBAAqB1gB,EAAIO,EAAEqiB,mBAAoB7jB,EAAIwB,EAAEigB,qBAAsB9hB,EAAI6B,EAAEgU,YAAarT,EAAIX,EAAE4iB,eAAgB1S,EAAIlQ,EAAE6iB,iBAAkB9kB,EAAIiC,EAAE8iB,eAAgB9iB,EAAE6gD,iBAAmB,SAAU7iD,GAClQ,SAASuU,EAAE3T,GACTkB,KAAKuI,QAAUzJ,EAAGkB,KAAK6gD,mBAAqB9wC,EAAE/P,KAAK6gD,mBAAoB7gD,MAAOA,KAAKghD,aAAejxC,EAAE/P,KAAKghD,aAAchhD,MAAOA,KAAKihD,eAAiB,IAAI/gD,EAAEs/C,eAAex/C,KAAKuI,SAAUvI,KAAKkhD,YAAc,IAAIhhD,EAAE4/C,YAAe9/C,KAAKmhD,UAAY,EAAG9iD,EAAE,YAAa,CACjQkhB,UAAWvf,KAAKuI,QAChBkX,aAAczf,KAAKghD,eAGvB,OAAOthD,EAAE+S,EAAGvU,GAAIuU,EAAEjT,UAAUq6C,iBAAmB,SAAU/6C,GACvD,IAAOlB,EACP,OAAO,MAAQkB,IAAMA,EAAI,KAAsB,IAAbA,EAAEsjB,OAAgBpiB,KAAKg8C,gCAAgC38C,IAAK,CAC5F+iB,QAAQ,IACLtjB,EAAEw8C,WAAat7C,KAAKohD,qBAAuB,OAASxjD,EAAIoC,KAAKqhD,qBAAuBzjD,EAAIoC,KAAKohD,sBACjG3uC,EAAEjT,UAAUo8C,iBAAmB,SAAU98C,GAC1C,IAAIoB,EACJ,IAAKF,KAAKqhD,oBAAqB,OAAOviD,EAAI+B,EAAE/B,IAAKoB,EAAIF,KAAKshD,gCAAgCxiD,KAAOjB,EAAEqC,GAAIF,KAAKuhD,2BAA2BziD,SAAM,GAC5I2T,EAAEjT,UAAUw2B,+BAAiC,SAAUl3B,GACxD,IAAIoB,EAAGb,EACP,OAAOP,EAAI+B,EAAE/B,GAAIO,EAAIW,KAAKwhD,mBAAmB1iD,EAAE,IAAKoB,EAAIF,KAAKwhD,mBAAmB1iD,EAAE,IAAKkB,KAAK47C,iBAAiB,CAACv8C,EAAGa,KAChHuS,EAAEjT,UAAUg/C,6BAA+B,SAAU1/C,GACtD,IAAIoB,EACJ,OAAQA,EAAIF,KAAKshD,gCAAgCxiD,IAAMkB,KAAKqgD,0BAA0BngD,GAAG,QAAK,GAC7FuS,EAAEjT,UAAU+8C,uBAAyB,SAAUz9C,GAChD,IAAIoB,EAAMtC,EACV,OAAkDsC,GAA3CtC,EAAIoC,KAAK4/C,8BAA8B9gD,IAAU,GAAQlB,EAAE,GAAI+B,EAAEO,IACvEuS,EAAEjT,UAAUiiD,KAAO,WACpB,OAAO,IAAMzhD,KAAKmhD,aAAenhD,KAAKuhD,6BAA8BvhD,KAAKqhD,oBAAsBrhD,KAAK65C,yBAAsB,GACzHpnC,EAAEjT,UAAUkiD,OAAS,WACtB,IAAI5iD,EACJ,OAAO,MAAQkB,KAAKmhD,YAAcriD,EAAIkB,KAAKqhD,oBAAqBrhD,KAAKqhD,oBAAsB,KAAM,MAAQviD,GAAKkB,KAAK47C,iBAAiB98C,QAAK,GACxI2T,EAAEjT,UAAUmiD,eAAiB,WAC9B,IAAI7iD,EACJ,OAAO,OAASA,EAAIlB,KAAOkB,EAAEslB,uBAAoB,GAChD3R,EAAEjT,UAAUoiD,qBAAuB,WACpC,IAAI9iD,EACJ,OAAsD,KAA9C,OAASA,EAAIO,KAAOP,EAAE+iD,eAAY,IACzCpvC,EAAEjT,UAAUq1B,oBAAsB,WACnC,OAAQ70B,KAAK4hD,wBACZnvC,EAAEjT,UAAUw8C,gCAAkC,SAAUl9C,EAAGoB,GAC5D,IAAIb,EAAGzB,EACP,GAAI,MAAQkB,GAAKkB,KAAK8hD,sBAAsBhjD,KAAOlB,EAAIoC,KAAKy/C,mCAAmC3gD,EAAE2lB,eAAgB3lB,EAAEogC,YAAah/B,IAAK,OAAOpB,EAAE+iD,YAAcxiD,EAAIW,KAAKy/C,mCAAmC3gD,EAAE4lB,aAAc5lB,EAAEsgC,UAAWl/B,IAAKW,EAAE,CAACjD,EAAGyB,KAC/OoT,EAAEoJ,YAAY,qDAAsDpJ,EAAEoJ,YAAY,qDAAsDpJ,EAAEoJ,YAAY,gDAAiDpJ,EAAEoJ,YAAY,uCAAwCpJ,EAAEoJ,YAAY,yCAA0CpJ,EAAEjT,UAAUwhD,aAAe,WACjV,OAAOhhD,KAAK+hD,oBACXtvC,EAAEjT,UAAUuiD,iBAAmB,WAChC,IAAI7hD,EAAGb,EAAGzB,EAAGc,EACb,OAAOsB,KAAKgiD,QAAS,EAAI3iD,EAAI,SAAUa,GACrC,OAAO,WACL,IAAO7B,EAAGsB,EACV,IAAKO,EAAE8hD,QAAS,EAAI3sC,aAAa3W,GAAIL,EAAI,EAAGsB,EAAI/B,EAAEwD,OAAQzB,EAAItB,EAAGA,IAAST,EAAES,GAAM0G,UAClF,OAAOjG,EAAEsJ,SAAUlI,EAAEqI,SAAWrI,EAAE2gD,0BAAuB,GAJhC,CAM3B7gD,MAAOtB,EAAIuQ,WAAW5P,EAAG,KAAMzB,EAAI,WACnC,IAAIkB,EAAGlB,EAAGc,EAAGiB,EACb,IAAmCA,EAAI,GAAIb,EAAI,EAAGlB,GAA7Cc,EAAI,CAAC,YAAa,YAAiC0C,OAAQxD,EAAIkB,EAAGA,IAAKoB,EAAIxB,EAAEI,GAAIa,EAAE8C,KAAKpE,EAAE6B,EAAG,CAChGqf,UAAWnX,SACXqX,aAAcpgB,KAEhB,OAAOM,EAN4B,IAQpC8S,EAAEjT,UAAUqhD,mBAAqB,WAClC,OAAO7gD,KAAKgiD,QAAUtjD,EAAEsB,KAAKuI,cAAW,EAASvI,KAAKuhD,8BACrD9uC,EAAEjT,UAAU+hD,2BAA6B,SAAUziD,GACpD,IAAIoB,EACJ,OAAQ,MAAQpB,EAAIA,EAAIA,EAAIkB,KAAKg8C,gCAAgC38C,QAAUpB,EAAEa,EAAGkB,KAAKohD,uBAAyBphD,KAAKohD,qBAAuBtiD,EAAG,OAASoB,EAAIF,KAAKsL,WAAa,mBAAqBpL,EAAE+hD,uBAAyB/hD,EAAE+hD,uBAAuBjiD,KAAKohD,qBAAqBn+C,MAAM,SAAM,QAAU,GACpSwP,EAAEjT,UAAU8hD,gCAAkC,SAAUxiD,GACzD,IAAIoB,EAAGb,EAAGzB,EAAGS,EACb,OAAOT,EAAIoC,KAAK2/C,mCAAmC7gD,EAAE,IAAKO,EAAI+Q,EAAEtR,GAAKlB,EAAI,OAASS,EAAI2B,KAAK2/C,mCAAmC7gD,EAAE,KAAOT,EAAIT,EAAG,MAAQA,GAAK,MAAQyB,IAAKa,EAAIkI,SAAS42B,eAAiBC,SAASp8B,MAAM3C,EAAGtC,GAAIsC,EAAEi/B,OAAOt8B,MAAM3C,EAAGb,GAAIa,QAAK,GACtPuS,EAAEjT,UAAUgiD,mBAAqB,SAAU1iD,GAC5C,IAAIoB,EAAGb,EACP,OAAQa,EAAIF,KAAK+/C,wBAAwBjhD,KAAO,OAASO,EAAIW,KAAKg8C,gCAAgC97C,IAAMb,EAAE,QAAK,GAC9GoT,EAAEjT,UAAUsiD,sBAAwB,SAAU5hD,GAC/C,OAAOA,EAAE2hD,UAAY/iD,EAAEkB,KAAKuI,QAASrI,EAAEukB,gBAAkB3lB,EAAEkB,KAAKuI,QAASrI,EAAEukB,iBAAmB3lB,EAAEkB,KAAKuI,QAASrI,EAAEwkB,eAC/GjS,EAvEqP,CAwExPvS,EAAE0b,cACJ7d,KAAKiC,MAAO,WACZ,IAAIlB,EACFO,EACAzB,EACAS,EACAK,EAAI,SAAWI,EAAGoB,GAChB,SAASb,IACPW,KAAKF,YAAchB,EAErB,IAAK,IAAIlB,KAAKsC,EAAGP,EAAE5B,KAAKmC,EAAGtC,KAAOkB,EAAElB,GAAKsC,EAAEtC,IAC3C,OAAOyB,EAAEG,UAAYU,EAAEV,UAAWV,EAAEU,UAAY,IAAIH,EAAKP,EAAEod,UAAYhc,EAAEV,UAAWV,GAEtFa,EAAI,GAAGF,eACPoB,EAAI,GAAGoC,MACTrF,EAAIsC,EAAE6iB,iBAAkB1kB,EAAI6B,EAAE8iB,eAAgB3jB,EAAIa,EAAEge,gBAAiBpf,EAAIoB,EAAEye,eAAgBze,EAAEgiD,iBAAmB,SAAUviD,GACxH,SAASyQ,EAAEtR,GACT,IAAIO,EAAGzB,EACPoC,KAAKmiD,cAAgBrjD,EAAEqjD,cAAe9iD,EAAIP,EAAEsJ,SAAUxK,EAAIkB,EAAEk4B,KAAMh3B,KAAKg+C,iBAAmB,IAAI99C,EAAE6gD,iBAAiB/gD,KAAKmiD,eAAgBniD,KAAKg+C,iBAAiB1yC,SAAWtL,KAAMA,KAAK6lC,YAAc,IAAI3lC,EAAEy4C,YAAe34C,KAAK6lC,YAAYv6B,SAAWtL,KAAMA,KAAK++C,kBAAoB,IAAI7+C,EAAEg/C,kBAAkBl/C,KAAK6lC,YAAYoK,kBAAmBjwC,KAAK++C,kBAAkBzzC,SAAWtL,KAAMA,KAAKy5B,gBAAkB,IAAIv5B,EAAE,QAAUA,EAAEyb,OAAO5P,MAAMsiB,WAAa,oBAAmBruB,KAAKmiD,eAAgBniD,KAAKy5B,gBAAgBnuB,SAAWtL,KAAMA,KAAKy5B,gBAAgBzG,UAAYhzB,KAAK6lC,YAAa7lC,KAAKoiD,sBAAwB,IAAIliD,EAAE0lC,sBAAsB5lC,KAAKmiD,cAAeniD,KAAK6lC,aAAc7lC,KAAKoiD,sBAAsB92C,SAAWtL,KAAMA,KAAKqiD,kBAAoB,IAAIniD,EAAEynC,kBAAkB3nC,KAAKmiD,cAAcG,gBAAiBtiD,KAAKqiD,kBAAkB/2C,SAAWtL,KAAMA,KAAKuiD,OAAS,IAAIriD,EAAE69C,OAAO/9C,KAAK6lC,YAAa7lC,KAAKg+C,iBAAkBh+C,KAAKmiD,eAAgB,MAAQ9iD,EAAIW,KAAKuiD,OAAOnE,aAAa/+C,GAAKW,KAAKuiD,OAAOlE,SAASzgD,GAE39B,IAAIK,EACJ,OAAOS,EAAE0R,EAAGzQ,GAAIyQ,EAAE5Q,UAAUkhD,yBAA2B,WACrD,OAAOxgD,EAAEokB,wBAAwBo8B,yBAAyB1gD,KAAKg+C,mBAC9D5tC,EAAE5Q,UAAUmhD,2BAA6B,WAC1C,OAAOzgD,EAAEokB,wBAAwBq8B,2BAA2B3gD,KAAKg+C,mBAChE5tC,EAAE5Q,UAAUqtB,OAAS,WACtB,OAAO7sB,KAAKoiD,sBAAsBv1B,UACjCzc,EAAE5Q,UAAU26B,QAAU,WACvB,OAAOn6B,KAAK6lC,YAAY+T,YAAY55C,KAAKmiD,cAAcz1B,YACtDtc,EAAE5Q,UAAUs5C,6BAA+B,WAC5C,OAAO94C,KAAKwiD,oBAAoB,mBAAoBxiD,KAAKyiD,mBAAgB,EAASziD,KAAK6sB,UACtFzc,EAAE5Q,UAAUs9C,sCAAwC,SAAUh+C,GAC/D,OAAOkB,KAAK44C,kBAAoB95C,EAAGkB,KAAKqiD,kBAAkB1Z,iBAAiB3oC,KAAK44C,mBAAoB54C,KAAK0iD,uBAAwB1iD,KAAKwiD,oBAAoB,oBAAqB,CAC7Kj5C,WAAYvJ,KAAK44C,qBAElBxoC,EAAE5Q,UAAUu9C,sCAAwC,SAAUj+C,GAC/D,OAAOkB,KAAK2iD,QAAU3iD,KAAK4iD,YAAc9jD,OAAI,GAC5CsR,EAAE5Q,UAAUs6C,4BAA8B,SAAUh7C,GACrD,OAAOkB,KAAKwiD,oBAAoB,cAAe,CAC7C57C,KAAM9H,KAEPsR,EAAE5Q,UAAUi9C,4BAA8B,SAAU39C,GACrD,IAAIoB,EACJ,OAAOA,EAAIF,KAAK++C,kBAAkBK,iBAAiBtgD,GAAIkB,KAAKwiD,oBAAoB,iBAAkB,CAChGr4B,WAAYjqB,KAEbkQ,EAAE5Q,UAAUk9C,6BAA+B,SAAU59C,GACtD,IAAIoB,EACJ,OAAOF,KAAKoiD,sBAAsBrb,sBAAsBjoC,GAAIoB,EAAIF,KAAK++C,kBAAkBK,iBAAiBtgD,GAAIkB,KAAKwiD,oBAAoB,kBAAmB,CACtJr4B,WAAYjqB,IACVF,KAAKwiD,oBAAoB,WAC5BpyC,EAAE5Q,UAAUm9C,yCAA2C,SAAU79C,GAClE,OAAOkB,KAAKoiD,sBAAsBhzB,wBAAwBtwB,GAAIkB,KAAKwiD,oBAAoB,WACtFpyC,EAAE5Q,UAAUg9C,+BAAiC,SAAU19C,GACxD,IAAIoB,EACJ,OAAOA,EAAIF,KAAK++C,kBAAkBQ,mBAAmBzgD,GAAIkB,KAAKwiD,oBAAoB,oBAAqB,CACrGr4B,WAAYjqB,KAEbkQ,EAAE5Q,UAAUo9C,qCAAuC,SAAU99C,EAAGoB,GACjE,OAAOF,KAAK6iD,wBAA0B7iD,KAAK6lC,YAAYz9B,SAASqvC,6BAA6B34C,GAAIkB,KAAKoiD,sBAAsBlb,qCAAqCpoC,EAAGoB,GAAIF,KAAKg+C,iBAAiBpC,iBAAiB57C,KAAK6iD,0BACnNzyC,EAAE5Q,UAAUq9C,oCAAsC,WACnD,OAAO78C,KAAKoiD,sBAAsBjb,4BAA6BnnC,KAAK6iD,wBAA0B,MAC7FzyC,EAAE5Q,UAAUk8C,sDAAwD,SAAU58C,GAC/E,OAAQkB,KAAK8iD,iBAAmB9iD,KAAK+iD,aAAe/iD,KAAKgjD,uBAAyBlkD,EAAGkB,KAAKijD,8CAAgDjjD,KAAK6lC,YAAYa,SAAU1mC,KAAKyiD,mBAAgB,EAASziD,KAAK6sB,eAAY,GACnNzc,EAAE5Q,UAAU05C,4BAA8B,WAC3C,OAAOl5C,KAAK8iD,iBAAkB,GAC7B1yC,EAAE5Q,UAAU45C,2BAA6B,WAC1C,OAAOp5C,KAAKoiD,sBAAsBpb,mBAAoBhnC,KAAK6sB,SAAU7sB,KAAK8iD,iBAAkB,GAC3F1yC,EAAE5Q,UAAUm8C,oBAAsB,WACnC,OAAO37C,KAAKg+C,kBACX5tC,EAAEyL,YAAY,0CAA2CzL,EAAEyL,YAAY,0CAA2CzL,EAAE5Q,UAAU8/C,+CAAiD,SAAUxgD,GAC1L,OAAOkB,KAAKu6C,iBAAiBz7C,IAC5BsR,EAAE5Q,UAAUonC,0CAA4C,WACzD,OAAO5mC,KAAKy5B,gBAAgBjH,6BAA8BxyB,KAAKg+C,iBAAiByD,OAAQzhD,KAAKg+C,iBAAiB2D,kBAC7GvxC,EAAE5Q,UAAUqnC,yCAA2C,WACxD,OAAO7mC,KAAKy5B,gBAAgBhH,4BAA6BzyB,KAAKg+C,iBAAiB0D,SAAU1hD,KAAK0iD,uBAAwB1iD,KAAKwiD,oBAAoB,SAC9IpyC,EAAE5Q,UAAUsnC,+BAAiC,WAC9C,OAAO,MAAQ9mC,KAAKgjD,yBAA2BhjD,KAAKijD,gDAAkDjjD,KAAK6lC,YAAYa,UAAY1mC,KAAKg+C,iBAAiBpC,iBAAiB57C,KAAKgjD,wBAAyBhjD,KAAKgjD,uBAAyB,KAAMhjD,KAAKijD,8CAAgD,MAAOjjD,KAAKkjD,8BAAgCljD,KAAK6lC,YAAYa,WAAa1mC,KAAKmjD,mBAAoBnjD,KAAK6lC,YAAYsV,0BAA2Bn7C,KAAKwiD,oBAAoB,WAAYxiD,KAAKkjD,4BAA8BljD,KAAK6lC,YAAYa,UACxgBt2B,EAAE5Q,UAAU2mC,8BAAgC,WAC7C,OAAOnmC,KAAKojD,sBAAwBpjD,KAAK47C,iBAAiB,CACxDzN,MAAO,EACPvwB,OAAQ,IACN5d,KAAKqiD,kBAAkB9Z,aAAcvoC,KAAKwiD,oBAAoB,UACjEpyC,EAAE5Q,UAAU6mC,6BAA+B,WAC5C,OAAOrmC,KAAKwiD,oBAAoB,SAC/BpyC,EAAE5Q,UAAU+mC,yCAA2C,SAAUznC,EAAGoB,GACrE,OAAOF,KAAKqiD,kBAAkB9Z,aAAcvoC,KAAK6lC,YAAYyU,eAAex7C,EAAGoB,IAC9EkQ,EAAE5Q,UAAUioC,qDAAuD,SAAU3oC,GAC9E,IAAIoB,EAAGb,EACP,OAAOa,EAAI,OAASb,EAAIW,KAAK6iD,yBAA2BxjD,EAAIW,KAAK6lC,YAAYz9B,SAASqvC,6BAA6B34C,GAAIkB,KAAKg+C,iBAAiBpC,iBAAiB17C,EAAE,KAC/JkQ,EAAE5Q,UAAU6nC,0CAA4C,SAAUvoC,GACnE,OAAOkB,KAAKuiD,OAAOnnB,gBAAgB,kBAAmB,CACpD2I,QAASjlC,EAAEsM,GACXgyC,gBAAgB,KAEjBhtC,EAAE5Q,UAAUgoC,mDAAqD,SAAU1oC,GAC5E,OAAOkB,KAAKu6C,iBAAiBz7C,IAC5BsR,EAAE5Q,UAAU2zB,+BAAiC,WAC9C,OAAOnzB,KAAKyiD,eAAgB,EAAIziD,KAAKqjD,iBAAkB,GACtDjzC,EAAE5Q,UAAUmzB,gCAAkC,WAC/C,OAAO3yB,KAAKqjD,iBAAkB,GAC7BjzC,EAAE5Q,UAAU4zB,8BAAgC,WAC7C,OAAOpzB,KAAKyiD,eAAgB,EAAIziD,KAAKqjD,iBAAmBrjD,KAAKqjD,iBAAkB,EAAIrjD,KAAK6sB,eAAY,GACnGzc,EAAE5Q,UAAUo0B,sCAAwC,WACrD,OAAO5zB,KAAKwiD,oBAAoB,WAC/BpyC,EAAE5Q,UAAUqzB,iCAAmC,WAChD,OAAO7yB,KAAKm6B,WACX/pB,EAAE5Q,UAAUm1B,iCAAmC,WAChD,OAAO30B,KAAKsjD,yBACXlzC,EAAE5Q,UAAUk/B,qCAAuC,SAAU5/B,GAC9D,OAAOkB,KAAKujD,0BAA0BzkD,IACrCsR,EAAE5Q,UAAU82B,2BAA6B,WAC1C,OAAOt2B,KAAKuiD,OAAOnnB,gBAAgB,QAClChrB,EAAE5Q,UAAUy3B,yBAA2B,SAAUn4B,GAClD,OAAOkB,KAAKuiD,OAAOnnB,gBAAgB,SAAUp7B,KAAK2iD,SAAU,EAAI3iD,KAAKwiD,oBAAoB,eAAgB,CACvG/rB,MAAO33B,KAERsR,EAAE5Q,UAAU23B,wBAA0B,SAAUr4B,GACjD,OAAOA,EAAE86B,MAAQ55B,KAAK4iD,YAAa5iD,KAAK4iD,YAAc,KAAM5iD,KAAK2iD,QAAU,KAAM3iD,KAAKwiD,oBAAoB,QAAS,CACjH/rB,MAAO33B,KAERsR,EAAE5Q,UAAUy2B,4BAA8B,WAC3C,OAAOj2B,KAAKuiD,OAAOnnB,gBAAgB,SAClChrB,EAAE5Q,UAAUuzB,+BAAiC,WAC9C,OAAO/yB,KAAKuiD,OAAOnnB,gBAAgB,eAClChrB,EAAE5Q,UAAUq+B,+BAAiC,WAC9C,OAAO79B,KAAKuiD,OAAO74B,QAClBtZ,EAAE5Q,UAAUm+B,+BAAiC,WAC9C,OAAO39B,KAAKuiD,OAAO/4B,QAClBpZ,EAAE5Q,UAAUg1B,yCAA2C,SAAU11B,GAClE,OAAOkB,KAAKqiD,kBAAkBvZ,qBAAqBhqC,IAClDsR,EAAE5Q,UAAU81B,4BAA8B,WAC3C,OAAOt1B,KAAKwjD,wBAA0BxjD,KAAKg+C,iBAAiBnE,oBAC3DzpC,EAAE5Q,UAAUo2B,uCAAyC,SAAU92B,GAChE,OAAOkB,KAAKg+C,iBAAiBhoB,+BAA+Bl3B,IAC3DsR,EAAE5Q,UAAUs2B,6BAA+B,WAC5C,OAAO91B,KAAKg+C,iBAAiBpC,iBAAiB57C,KAAKwjD,yBAA0BxjD,KAAKwjD,wBAA0B,MAC3GpzC,EAAE5Q,UAAUyiD,uBAAyB,SAAUnjD,GAChD,OAAOkB,KAAK6lC,YAAYsV,0BAA2Bn7C,KAAK0iD,uBAAwB1iD,KAAK6iD,0BAA4BxkD,EAAE2B,KAAK6iD,wBAAyB/jD,IAAMkB,KAAK6lC,YAAY2U,wBAAyBx6C,KAAKwiD,oBAAoB,qBACzNpyC,EAAE5Q,UAAUyoC,sBAAwB,WACrC,OAAOjoC,KAAK65C,wBAAqB,EAAS75C,KAAK47C,iBAAiB,CAC9DzN,MAAO,EACPvwB,OAAQ,KAETxN,EAAE5Q,UAAU4oC,uBAAyB,SAAUtpC,GAChD,OAAOkB,KAAKyjD,aAAa3kD,IACxBsR,EAAE5Q,UAAU6oC,0BAA4B,SAAUvpC,GACnD,OAAOkB,KAAKujD,0BAA0BzkD,GAAIkB,KAAK6lC,YAAYlH,uBAAuB7/B,GAAIkB,KAAK6sB,SAAU7sB,KAAK0jD,qBAAkB,EAAS1jD,KAAKmiD,cAAcxzC,SACvJyB,EAAE5Q,UAAU6pC,0BAA4B,SAAUvqC,EAAGoB,GACtD,OAAOF,KAAKujD,0BAA0BzkD,GAAIkB,KAAK6lC,YAAYjH,oBAAoB9/B,EAAGoB,GAAIF,KAAK6sB,SAAU7sB,KAAK0jD,qBAAkB,EAAS1jD,KAAKmiD,cAAcxzC,SACvJyB,EAAE5Q,UAAU8pC,0BAA4B,SAAUxqC,GACnD,OAAOkB,KAAKujD,0BAA0BzkD,GAAIkB,KAAK6lC,YAAY1I,uBAAuBr+B,GAAIkB,KAAK6sB,SAAU7sB,KAAK0jD,qBAAkB,EAAS1jD,KAAKmiD,cAAcxzC,SACvJyB,EAAE5Q,UAAUwpC,sBAAwB,WACrC,OAAOhpC,KAAK6lC,YAAYsW,4BAA6Bn8C,KAAKu7C,mBACzDnrC,EAAE5Q,UAAU0pC,qBAAuB,SAAUpqC,GAC9C,OAAOkB,KAAKwiD,oBAAoB,sBAAuB,CACrDmB,WAAY7kD,KAEbsR,EAAE5Q,UAAU+pC,qBAAuB,SAAUzqC,GAC9C,OAAOkB,KAAKw7C,gBAAiBx7C,KAAKmiD,cAAcxzC,QAAS3O,KAAKwiD,oBAAoB,sBAAuB,CACvGmB,WAAY7kD,KAEbsR,EAAE5Q,UAAU+7C,gBAAkB,WAC/B,OAAOv7C,KAAK0jD,qBAAkB,GAAU1jD,KAAKg+C,iBAAiByD,OAAQzhD,KAAK6lC,YAAY0V,kBAAmBv7C,KAAK0jD,iBAAkB,EAAI1jD,KAAK6sB,WACzIzc,EAAE5Q,UAAUg8C,cAAgB,WAC7B,OAAOx7C,KAAK0jD,iBAAmB1jD,KAAK6lC,YAAY2V,gBAAiBx7C,KAAKg+C,iBAAiB0D,SAAU1hD,KAAK0jD,iBAAkB,EAAI1jD,KAAK6sB,eAAY,GAC5Izc,EAAE5Q,UAAUuoC,QAAU,CACvBre,KAAM,CACJtnB,KAAM,WACJ,OAAOpC,KAAKuiD,OAAO/E,WAErBx1B,QAAS,WACP,OAAOhoB,KAAKuiD,OAAO74B,SAGvBF,KAAM,CACJpnB,KAAM,WACJ,OAAOpC,KAAKuiD,OAAO9E,WAErBz1B,QAAS,WACP,OAAOhoB,KAAKuiD,OAAO/4B,SAGvBJ,KAAM,CACJhnB,KAAM,WACJ,OAAOpC,KAAKuiD,OAAO5D,qBAAqB,UAG5CxmB,qBAAsB,CACpB/1B,KAAM,WACJ,OAAOpC,KAAKuiD,OAAOrqB,2BAErBlQ,QAAS,WACP,OAAOhoB,KAAKuiD,OAAOpqB,wBAA0Bn4B,KAAK6sB,WAGtD8L,qBAAsB,CACpBv2B,KAAM,WACJ,OAAOpC,KAAKuiD,OAAO7pB,2BAErB1Q,QAAS,WACP,OAAOhoB,KAAKuiD,OAAO5pB,wBAA0B34B,KAAK6sB,WAGtDjE,YAAa,CACXxmB,KAAM,WACJ,OAAO,GAET4lB,QAAS,WACP,OAAO9nB,EAAEyb,OAAO5P,MAAMuiB,UAAUtuB,KAAKuiD,OAAOtvB,gBAG/C7iB,EAAE5Q,UAAUokD,gBAAkB,SAAU9kD,GACzC,IAAIoB,EAAGb,EACP,QAAOW,KAAK6jD,iBAAiB/kD,OAAa,OAASoB,EAAIF,KAAK+nC,QAAQjpC,KAAO,OAASO,EAAIa,EAAEkC,MAAQ/C,EAAEtB,KAAKiC,WAAQ,IAChHoQ,EAAE5Q,UAAUikD,aAAe,SAAU3kD,GACtC,IAAIoB,EAAGb,EACP,OAAOW,KAAK6jD,iBAAiB/kD,GAAKkB,KAAKwiD,oBAAoB,gBAAiB,CAC1EsB,WAAYhlD,IACT,OAASoB,EAAIF,KAAK+nC,QAAQjpC,KAAO,OAASO,EAAIa,EAAE8nB,SAAW3oB,EAAEtB,KAAKiC,WAAQ,GAC9EoQ,EAAE5Q,UAAUqkD,iBAAmB,SAAU/kD,GAC1C,MAAO,OAAOsD,KAAKtD,IAClBsR,EAAE5Q,UAAUukD,kBAAoB,WACjC,IAAIjlD,EAAGoB,EAEP,IAAKpB,KADLoB,EAAI,GACMF,KAAK+nC,QAAS7nC,EAAEpB,GAAKkB,KAAK4jD,gBAAgB9kD,GACpD,OAAOoB,GACNkQ,EAAE5Q,UAAUkjD,qBAAuB,WACpC,IAAI5jD,EACJ,OAAOA,EAAIkB,KAAK+jD,oBAAqB1kD,EAAEP,EAAGkB,KAAKgkD,qBAAkB,GAAUhkD,KAAKgkD,eAAiBllD,EAAGkB,KAAKqiD,kBAAkB7Z,cAAcxoC,KAAKgkD,gBAAiBhkD,KAAKwiD,oBAAoB,iBAAkB,CACxMza,QAAS/nC,KAAKgkD,mBAEf5zC,EAAE5Q,UAAU2jD,iBAAmB,WAChC,IAAIrkD,EAAGoB,EAAGb,EAAGzB,EAAGS,EAAGK,EAAGiB,EAAGkB,EACzB,IAAKA,EAAIb,KAAK6lC,YAAYkT,cAAwC15C,EAAI,EAAGzB,GAAhCS,EAAI2B,KAAKuiD,OAAOpE,SAAsB/8C,OAAQxD,EAAIyB,EAAGA,IAAKa,EAAI7B,EAAEgB,GAAIP,EAAI+B,EAAEuH,SAAUzI,EAAIkB,EAAEm4C,cAAkE,OAAnDn4C,EAAI,OAASnC,EAAIwB,EAAEnC,KAAKiC,KAAKuiD,OAAQ1hD,IAAMnC,EAAI,IAAc0J,WAAavH,EAAEuH,SAAWtJ,GAAI,MAAQ+B,EAAEm4C,gBAAkBn4C,EAAEm4C,cAAgBr5C,GAC3R,OAAO1B,EAAE4C,EAAGb,KAAK6lC,YAAYkT,oBAAiB,EAAS/4C,KAAK6lC,YAAYoT,aAAap4C,IACpF5C,EAAI,SAAWa,EAAGoB,GACnB,OAAO7B,EAAES,EAAEk6C,cAAe94C,EAAE84C,gBAAkBl6C,EAAEsJ,SAASkU,UAAUpc,EAAEkI,WACpEgI,EAAE5Q,UAAUykD,mBAAqB,WAClC,IAAInlD,EAAGO,EACP,OAAOP,EAAIkB,KAAKoiD,sBAAsB5b,yBAA0BnnC,EAAIa,EAAE8sB,uBAAuBluB,EAAG,aAAckB,KAAKmiD,cAAc+B,qBAAqB7kD,IACrJ+Q,EAAE5Q,UAAUgjD,oBAAsB,SAAU1jD,EAAGoB,GAChD,OAAQpB,GACN,IAAK,kBACHkB,KAAKmkD,gCAAiC,EACtC,MACF,IAAK,SACHnkD,KAAKmkD,iCAAmCnkD,KAAKmkD,gCAAiC,EAAInkD,KAAKwiD,oBAAoB,WAC3G,MACF,IAAK,SACL,IAAK,iBACL,IAAK,kBACL,IAAK,oBACHxiD,KAAKikD,qBAET,OAAOjkD,KAAKmiD,cAAc32C,OAAO1M,EAAGoB,IACnCkQ,EAAE5Q,UAAU+6C,iBAAmB,SAAUz7C,GAC1C,OAAOkB,KAAKuiD,OAAOnnB,gBAAgB,qBAAsBp7B,KAAK6lC,YAAY0U,iBAAiBz7C,GAAIkB,KAAK6sB,UACnGzc,EAAE5Q,UAAU+jD,0BAA4B,SAAUrjD,GACnD,IAAIb,EAAGhB,EACP,OAAOgB,EAAIP,EAAEoB,GAAI7B,EAAI2B,KAAKg+C,iBAAiBnE,mBAAoBx6C,IAAMzB,EAAES,GAAK2B,KAAKuiD,OAAOnnB,gBAAgB,aAAc,CACpH2I,QAAS/jC,KAAKokD,iBACdhH,gBAAgB,SACb,GACJhtC,EAAE5Q,UAAU8jD,sBAAwB,WACrC,OAAOtjD,KAAKuiD,OAAOnnB,gBAAgB,SAAU,CAC3C2I,QAAS/jC,KAAKokD,eAAepkD,KAAK44C,mBAClCwE,gBAAgB,KAEjBhtC,EAAE5Q,UAAU4kD,eAAiB,WAC9B,IAAItlD,EACJ,OAAOA,EAAI,GAAK4J,UAAUtH,OAASP,EAAE9C,KAAK2K,UAAW,GAAK,GAAI,CAAC1I,KAAKqkD,qBAAsBrkD,KAAKskD,kBAAkBjqC,OAAOxZ,EAAE9C,KAAKe,KAC9HsR,EAAE5Q,UAAU6kD,mBAAqB,WAClC,IAAIvlD,EACJ,OAAOA,EAAIkB,KAAKg+C,iBAAiBnE,mBAAoBj8C,EAAEkB,GAAKA,EAAE,GAAGqvC,MAAQrvC,GACxEsR,EAAE5Q,UAAU8kD,eAAiB,WAC9B,OAAOpkD,EAAEyb,OAAOyR,aAAe,EAAIhqB,KAAKuoB,OAAM,IAAI1a,MAAOszC,UAAYrkD,EAAEyb,OAAOyR,cAAgB,GAC7Fhd,EAAE5Q,UAAUujD,UAAY,WACzB,IAAIjkD,EACJ,OAAOkB,KAAKmiD,iBAAmB,OAASrjD,EAAIkB,KAAKmiD,cAAcqC,eAAiB1lD,EAAEshB,mBAAgB,IACjGhQ,EAAE5Q,UAAU4jD,mBAAqB,WAClC,OAAOpjD,KAAK+iD,cAAgB/iD,KAAK65C,oBAChCzpC,EA3Q2G,CA4Q9GlQ,EAAEywB,aACJ5yB,KAAKiC,MAAO,WACZ,IAAIlB,EACFO,EACAzB,EACAS,EACAK,EACAiB,EACAkB,EAMI5C,EAAGJ,EAAGkS,EAAGrQ,EAAGxB,EAAGuU,EAAG1S,EAAG/B,EAAG8U,EAL5B1C,EAAI,GAAGZ,SAAW,SAAU1Q,GAC1B,IAAK,IAAIoB,EAAI,EAAGb,EAAIW,KAAKoB,OAAQ/B,EAAIa,EAAGA,IAAK,GAAIA,KAAKF,MAAQA,KAAKE,KAAOpB,EAAG,OAAOoB,EACpF,OAAQ,GAEZb,EAAIa,EAAEob,QAAS3b,EAAIO,EAAEqhB,YAAa1gB,EAAIX,EAAE4f,aAAczhB,EAAI6B,EAAEgU,YAAaxV,EAAIwB,EAAE2f,gBAAiBjiB,EAAIsC,EAAE0f,2BAA4B9gB,EAAIoB,EAAEyiB,eAAeC,mBAAoB1iB,EAAE8Q,gBAAgB,eAEpLjR,EAAI,EAAGlC,EAAI,SAAWiB,GAC3B,OAAQsJ,SAASC,cAAc,WAAavJ,EAAEsP,aAAa,cAAgBhG,SAASC,cAAc,iBAAmBvJ,EAAIA,EAAE6P,aAAU,GACpI3Q,EAAI,SAAWc,GAChB,OAAOA,EAAEsP,aAAa,wBAAqB,GAAUtP,EAAEwP,aAAa,kBAAmB,IAAK5P,EAAE,QAAS,CACrG6gB,UAAWzgB,EACX2gB,aAAc,WACZ,OAAO1P,EAAEjR,QAGZiR,EAAI,SAAWjR,GAChB,OAAOZ,EAAEY,GAAIgU,EAAEhU,IACdZ,EAAI,SAAWY,GAChB,OAAQ,mBAAqBsJ,SAASq8C,sBAAwBr8C,SAASq8C,sBAAsB,6BAA0B,IAAWr8C,SAASs8C,YAAY,wBAAwB,GAAI,GAAKrmD,EAAE,kBAAmB,CAC3MkhB,UAAWzgB,EACXuP,gBAAgB,UACZ,GACLyE,EAAI,WACL,IAAIhU,EACJ,QAAQ,mBAAqBsJ,SAASq8C,sBAAwBr8C,SAASq8C,sBAAsB,kCAA+B,IAA6D,SAAjD3lD,EAAIoB,EAAEyb,OAAOiD,gBAAyB,QAAE1Q,UAAwB,MAAQpP,OAAgE,EAA3DsJ,SAASs8C,YAAY,6BAA6B,EAAI5lD,IAC1Qb,EAAI,SAAWa,GAChB,OAAOA,EAAEsP,aAAa,aAAU,EAAStP,EAAEwP,aAAa,OAAQ,YAC/DmE,EAAI,SAAW3T,GAChB,IAAIoB,EACJ,IAAKpB,EAAEsP,aAAa,gBAAkBtP,EAAEsP,aAAa,mBAAoB,OAAQlO,EAAI,WACnF,IAAIA,EAAGb,EAAGzB,EACV,OAAOA,EAAI,WACT,IAAIyB,EAAGzB,EAAGS,EAAGK,EACb,IAAmBA,EAAI,GAAIW,EAAI,EAAGzB,GAA7BS,EAAIS,EAAE6lD,QAA6BvjD,OAAQxD,EAAIyB,EAAGA,IAAKa,EAAI7B,EAAEgB,GAAIa,EAAE0kD,SAAS9lD,IAAMJ,EAAE+D,KAAKvC,EAAE2hB,aAChG,OAAOnjB,EAHE,IAILW,EAAIzB,EAAEqE,KAAK,MAAQnD,EAAEwP,aAAa,aAAcjP,GAAKP,EAAE0P,gBAAgB,kBACzEnQ,EAAE,QAAS,CACfkhB,UAAWzgB,EACX2gB,aAAcvf,KAEfR,EACML,EAAEmc,qBAAuB,CAC9B1M,QAAS,SACT40B,MAAO,QACL,CACF50B,QAAS,eACT40B,MAAO,OAEN,CACHzgB,WAAY,+QAAiRnkB,EAAI,oDAAsDA,EAAI,sHAAwHA,EAAI,oKAAsKY,EAAEoP,QAAU,0BAA4BpP,EAAEgkC,MAAQ,kUAC/qBf,OAAQ,CACNlkC,IAAK,WACH,OAAOuB,KAAKoO,aAAa,WAAapO,KAAKkK,aAAa,YAAclK,KAAKsO,aAAa,YAAavO,GAAIC,KAAK2iC,UAGlHgiB,OAAQ,CACNlmD,IAAK,WACH,IAAIK,EAAGoB,EAAGb,EACV,OAAOa,EAAI,GAAIF,KAAKoL,IAAMpL,KAAKwkD,eAAiBtkD,EAAEuC,KAAKI,MAAM3C,EAAGF,KAAKwkD,cAAcr3C,iBAAiB,cAAgBnN,KAAKoL,GAAK,QAAStM,EAAIlB,EAAEoC,KAAM,CACjJwf,iBAAkB,cACXngB,EAAIP,EAAE05B,WAAax4B,MAAQ,OAASX,IAAMa,EAAEuC,KAAK3D,GAAIoB,IAGlEoiD,eAAgB,CACd7jD,IAAK,WACH,IAAIK,EAAGoB,EAAGb,EACV,OAAOW,KAAKoO,aAAa,WAAa,OAASlO,EAAIF,KAAKwkD,eAAiBtkD,EAAEwuB,eAAe1uB,KAAKkK,aAAa,iBAAc,EAASlK,KAAKqM,YAAchN,EAAI,gBAAkBW,KAAK2iC,OAAQ3iC,KAAKsO,aAAa,UAAWjP,GAAIP,EAAIa,EAAE,eAAgB,CAC9OyL,GAAI/L,IACFW,KAAKqM,WAAW6W,aAAapkB,EAAGkB,MAAOlB,QAAK,IAGpD+lD,aAAc,CACZpmD,IAAK,WACH,IAAIK,EAAGoB,EAAGb,EACV,OAAOW,KAAKoO,aAAa,SAAW,OAAS/O,EAAIW,KAAKwkD,eAAiBnlD,EAAEqvB,eAAe1uB,KAAKkK,aAAa,eAAY,EAASlK,KAAKqM,YAAcnM,EAAI,cAAgBF,KAAK2iC,OAAQ3iC,KAAKsO,aAAa,QAASpO,GAAIpB,EAAIa,EAAE,QAAS,CAC/N6I,KAAM,SACN4C,GAAIlL,IACFF,KAAKqM,WAAW6W,aAAapkB,EAAGkB,KAAKyW,oBAAqB3X,QAAK,IAGvEyjD,OAAQ,CACN9jD,IAAK,WACH,IAAIK,EACJ,OAAO,OAASA,EAAIkB,KAAK8kD,kBAAoBhmD,EAAEyjD,YAAS,IAG5DpkD,KAAM,CACJM,IAAK,WACH,IAAIK,EACJ,OAAO,OAASA,EAAIkB,KAAK6kD,cAAgB/lD,EAAEX,UAAO,IAGtDU,MAAO,CACLJ,IAAK,WACH,IAAIK,EACJ,OAAO,OAASA,EAAIkB,KAAK6kD,cAAgB/lD,EAAED,WAAQ,GAErDoF,IAAK,SAAanF,GAChB,IAAIoB,EACJ,OAAOF,KAAK+kD,aAAejmD,EAAG,OAASoB,EAAIF,KAAKuiD,QAAUriD,EAAEm+C,SAASr+C,KAAK+kD,mBAAgB,IAG9Fv5C,OAAQ,SAAgB1M,EAAGoB,GACzB,OAAOF,KAAK8kD,iBAAmBjkD,EAAE,QAAU/B,EAAG,CAC5CygB,UAAWvf,KACXuJ,WAAYrJ,SACT,GAEPgkD,qBAAsB,SAA8BplD,GAClD,IAAIoB,EACJ,OAAO,OAASA,EAAIF,KAAK6kD,cAAgB3kD,EAAErB,MAAQC,OAAI,GAEzDskB,WAAY,WACV,OAAOpjB,KAAKoO,aAAa,2BAAwB,GAAUpQ,EAAEgC,MAAO/B,EAAE+B,MAAOyS,EAAEzS,QAEjFqjB,QAAS,WACP,OAAOrjB,KAAKoO,aAAa,2BAAwB,GAAUpO,KAAK8kD,mBAAqBjkD,EAAE,yBAA0B,CAC/G0e,UAAWvf,OACTA,KAAK8kD,iBAAmB,IAAI5kD,EAAEgiD,iBAAiB,CACjDC,cAAeniD,KACfg3B,KAAMh3B,KAAK+kD,aAAe/kD,KAAKnB,QAC7BkW,sBAAsB,SAAUjW,GAClC,OAAO,WACL,OAAO+B,EAAE,kBAAmB,CAC1B0e,UAAWzgB,KAHS,CAMxBkB,QAASA,KAAK8kD,iBAAiBpE,2BAA4B1gD,KAAKglD,wBAAyBhlD,KAAKilD,wBAAyBpnD,EAAEmC,QAE7H6T,WAAY,WACV,IAAI/U,EACJ,OAAO,OAASA,EAAIkB,KAAK8kD,mBAAqBhmD,EAAE6hD,6BAA8B3gD,KAAKklD,0BAA2BllD,KAAKmlD,2BAErHH,sBAAuB,WACrB,OAAOhlD,KAAKolD,cAAgBplD,KAAKqlD,aAAajmD,KAAKY,MAAOG,OAAOoH,iBAAiB,QAASvH,KAAKolD,eAAe,IAEjHF,wBAAyB,WACvB,OAAO/kD,OAAO6T,oBAAoB,QAAShU,KAAKolD,eAAe,IAEjEH,sBAAuB,WACrB,OAAOjlD,KAAKslD,cAAgBtlD,KAAKulD,aAAanmD,KAAKY,MAAOG,OAAOoH,iBAAiB,QAASvH,KAAKslD,eAAe,IAEjHH,wBAAyB,WACvB,OAAOhlD,OAAO6T,oBAAoB,QAAShU,KAAKslD,eAAe,IAEjED,aAAc,SAAsBvmD,GAClC,IAAIoB,EACJ,IAAKpB,EAAE8N,kBAAoB9N,EAAE4E,UAAY,OAASxD,EAAIF,KAAK6kD,cAAgB3kD,EAAE+M,UAAO,GAAS,OAAOjN,KAAK+C,SAE3GwiD,aAAc,SAAsBzmD,GAClC,IAAIoB,EACJ,KAAMpB,EAAE8N,kBAAoB5M,KAAK4kD,SAAS9lD,EAAE4E,WAAaxD,EAAItC,EAAEkB,EAAE4E,OAAQ,CACvE8b,iBAAkB,YACbpP,EAAErS,KAAKiC,KAAK2kD,OAAQzkD,GAAK,GAAI,OAAOF,KAAK2O,SAElD5L,MAAO,WACL,OAAO/C,KAAKnB,MAAQmB,KAAK+kD,kBAI/BhnD,KAAKiC,MAAO,aAAejC,KAAKiC,QACjCjC,KAAKiC,MAAO,UAA2DJ,EAAQjC,IAAYA,EAAOD,QAAUC,EAAOD,QAAUwC,OAAyD,2BAAR,KAAQ,mCACzLnC,KAAKiC,Q,uDCj+LP,qFACI6C,EAAQ5C,SAAST,UAAUqD,MAe/B,SAAS2iD,EAAQp6C,EAAIq6C,GACnBzlD,KAAK0lD,IAAMt6C,EACXpL,KAAK2lD,SAAWF,EAblB/nD,EAAQuR,WAAa,WACnB,OAAO,IAAIu2C,EAAQ3iD,EAAM9E,KAAKkR,WAAY22C,EAAOl9C,WAAY2M,eAE/D3X,EAAQmoD,YAAc,WACpB,OAAO,IAAIL,EAAQ3iD,EAAM9E,KAAK8nD,YAAaD,EAAOl9C,WAAYo9C,gBAEhEpoD,EAAQ2X,aAAe3X,EAAQooD,cAAgB,SAAUC,GACnDA,GACFA,EAAQC,SAOZR,EAAQhmD,UAAUymD,MAAQT,EAAQhmD,UAAU0mD,IAAM,aAClDV,EAAQhmD,UAAUwmD,MAAQ,WACxBhmD,KAAK2lD,SAAS5nD,KAAK6nD,EAAO5lD,KAAK0lD,MAIjChoD,EAAQyoD,OAAS,SAAU1lC,EAAM2lC,GAC/B/wC,aAAaoL,EAAK4lC,gBAClB5lC,EAAK6lC,aAAeF,GAEtB1oD,EAAQ6oD,SAAW,SAAU9lC,GAC3BpL,aAAaoL,EAAK4lC,gBAClB5lC,EAAK6lC,cAAgB,GAEvB5oD,EAAQ8oD,aAAe9oD,EAAQ+oD,OAAS,SAAUhmC,GAChDpL,aAAaoL,EAAK4lC,gBAClB,IAAID,EAAQ3lC,EAAK6lC,aACbF,GAAS,IACX3lC,EAAK4lC,eAAiBp3C,YAAW,WAC3BwR,EAAKimC,YAAYjmC,EAAKimC,eACzBN,KAKP,EAAQ,GAIR1oD,EAAQ2S,aAA+B,qBAATwE,MAAwBA,KAAKxE,cAAkC,qBAAXs2C,GAA0BA,EAAOt2C,cAAgBrQ,MAAQA,KAAKqQ,aAChJ3S,EAAQkpD,eAAiC,qBAAT/xC,MAAwBA,KAAK+xC,gBAAoC,qBAAXD,GAA0BA,EAAOC,gBAAkB5mD,MAAQA,KAAK4mD,iB,kCClDtJ,6BACE,aAEA,IAAID,EAAOt2C,aAAX,CAGA,IAIIw2C,EAoHE7vB,EAVA8vB,EAhBAC,EACAC,EA/FFC,EAAa,EACbC,EAAgB,GAChBC,GAAwB,EACxBC,EAAMT,EAAOv+C,SA0Ibi/C,EAAW/oD,OAAO+a,gBAAkB/a,OAAO+a,eAAestC,GAC9DU,EAAWA,GAAYA,EAASp4C,WAAao4C,EAAWV,EAGf,qBAArC,GAAGhlD,SAAS5D,KAAK4oD,EAAOW,SA5E1BT,EAAoB,SAA2BU,GAC7CD,EAAQE,UAAS,WACfC,EAAaF,QAInB,WAGE,GAAIZ,EAAO1zC,cAAgB0zC,EAAOe,cAAe,CAC/C,IAAIC,GAA4B,EAC5BC,EAAejB,EAAOkB,UAM1B,OALAlB,EAAOkB,UAAY,WACjBF,GAA4B,GAE9BhB,EAAO1zC,YAAY,GAAI,KACvB0zC,EAAOkB,UAAYD,EACZD,GA8DAG,GAGAnB,EAAOoB,iBAzCZjB,EAAU,IAAIiB,gBACVC,MAAMH,UAAY,SAAUrgD,GAElCigD,EADajgD,EAAMwL,OAGrB6zC,EAAoB,SAA2BU,GAC7CT,EAAQmB,MAAMh1C,YAAYs0C,KAsCnBH,GAAO,uBAAwBA,EAAIj7C,cAAc,WAlCtD6qB,EAAOowB,EAAInoC,gBACf4nC,EAAoB,SAA2BU,GAG7C,IAAIW,EAASd,EAAIj7C,cAAc,UAC/B+7C,EAAOC,mBAAqB,WAC1BV,EAAaF,GACbW,EAAOC,mBAAqB,KAC5BnxB,EAAK1qB,YAAY47C,GACjBA,EAAS,MAEXlxB,EAAKjoB,YAAYm5C,KAInBrB,EAAoB,SAA2BU,GAC7Ct4C,WAAWw4C,EAAc,EAAGF,KA1C1BR,EAAgB,gBAAkB3jD,KAAK+N,SAAW,IAClD61C,EAAkB,SAAyBx/C,GACzCA,EAAM8V,SAAWqpC,GAAgC,kBAAfn/C,EAAMwL,MAA2D,IAAtCxL,EAAMwL,KAAKxD,QAAQu3C,IAClFU,GAAcjgD,EAAMwL,KAAK/P,MAAM8jD,EAAc3lD,UAG7CulD,EAAOp/C,iBACTo/C,EAAOp/C,iBAAiB,UAAWy/C,GAAiB,GAEpDL,EAAO3rC,YAAY,YAAagsC,GAElCH,EAAoB,SAA2BU,GAC7CZ,EAAO1zC,YAAY8zC,EAAgBQ,EAAQ,OAuD/CF,EAASh3C,aA5JT,SAAsBnJ,GAEI,oBAAbA,IACTA,EAAW,IAAIjH,SAAS,GAAKiH,IAI/B,IADA,IAAIkhD,EAAO,IAAIl/C,MAAMR,UAAUtH,OAAS,GAC/BxD,EAAI,EAAGA,EAAIwqD,EAAKhnD,OAAQxD,IAC/BwqD,EAAKxqD,GAAK8K,UAAU9K,EAAI,GAG1B,IAAIyqD,EAAO,CACTnhD,SAAUA,EACVkhD,KAAMA,GAIR,OAFAlB,EAAcD,GAAcoB,EAC5BxB,EAAkBI,GACXA,KA4ITI,EAAST,eAAiBA,EA1I1B,SAASA,EAAeW,UACfL,EAAcK,GAuBvB,SAASE,EAAaF,GAGpB,GAAIJ,EAGFl4C,WAAWw4C,EAAc,EAAGF,OACvB,CACL,IAAIc,EAAOnB,EAAcK,GACzB,GAAIc,EAAM,CACRlB,GAAwB,EACxB,KAhCN,SAAakB,GACX,IAAInhD,EAAWmhD,EAAKnhD,SAChBkhD,EAAOC,EAAKD,KAChB,OAAQA,EAAKhnD,QACX,KAAK,EACH8F,IACA,MACF,KAAK,EACHA,EAASkhD,EAAK,IACd,MACF,KAAK,EACHlhD,EAASkhD,EAAK,GAAIA,EAAK,IACvB,MACF,KAAK,EACHlhD,EAASkhD,EAAK,GAAIA,EAAK,GAAIA,EAAK,IAChC,MACF,QACElhD,EAASrE,WAlDjB,EAkDkCulD,IAgBxB5H,CAAI6H,GACJ,QACAzB,EAAeW,GACfJ,GAAwB,MArElC,CAyKmB,qBAATtyC,KAAyC,qBAAX8xC,EAAyB3mD,KAAO2mD,EAAS9xC,Q,oCCxKjF,IAOIyzC,EACAC,EARAjB,EAAU3pD,EAAOD,QAAU,GAS/B,SAAS8qD,IACP,MAAM,IAAIvuC,MAAM,mCAElB,SAASwuC,IACP,MAAM,IAAIxuC,MAAM,qCAsBlB,SAASyuC,EAAWC,GAClB,GAAIL,IAAqBr5C,WAEvB,OAAOA,WAAW05C,EAAK,GAGzB,IAAKL,IAAqBE,IAAqBF,IAAqBr5C,WAElE,OADAq5C,EAAmBr5C,WACZA,WAAW05C,EAAK,GAEzB,IAEE,OAAOL,EAAiBK,EAAK,GAC7B,MAAOzoD,GACP,IAEE,OAAOooD,EAAiBvqD,KAAK,KAAM4qD,EAAK,GACxC,MAAOzoD,GAEP,OAAOooD,EAAiBvqD,KAAKiC,KAAM2oD,EAAK,MAvC9C,WACE,IAEIL,EADwB,oBAAfr5C,WACUA,WAEAu5C,EAErB,MAAOtoD,GACPooD,EAAmBE,EAErB,IAEID,EAD0B,oBAAjBlzC,aACYA,aAEAozC,EAEvB,MAAOvoD,GACPqoD,EAAqBE,GAjBzB,GAmEA,IAEIG,EAFAC,EAAQ,GACRC,GAAW,EAEXC,GAAc,EAClB,SAASC,IACFF,GAAaF,IAGlBE,GAAW,EACPF,EAAaxnD,OACfynD,EAAQD,EAAavuC,OAAOwuC,GAE5BE,GAAc,EAEZF,EAAMznD,QACR6nD,KAGJ,SAASA,IACP,IAAIH,EAAJ,CAGA,IAAI/C,EAAU2C,EAAWM,GACzBF,GAAW,EAEX,IADA,IAAII,EAAML,EAAMznD,OACT8nD,GAAK,CAGV,IAFAN,EAAeC,EACfA,EAAQ,KACCE,EAAaG,GAChBN,GACFA,EAAaG,GAAYvI,MAG7BuI,GAAc,EACdG,EAAML,EAAMznD,OAEdwnD,EAAe,KACfE,GAAW,EA7Db,SAAyBK,GACvB,GAAIZ,IAAuBlzC,aAEzB,OAAOA,aAAa8zC,GAGtB,IAAKZ,IAAuBE,IAAwBF,IAAuBlzC,aAEzE,OADAkzC,EAAqBlzC,aACdA,aAAa8zC,GAEtB,IAESZ,EAAmBY,GAC1B,MAAOjpD,GACP,IAEE,OAAOqoD,EAAmBxqD,KAAK,KAAMorD,GACrC,MAAOjpD,GAGP,OAAOqoD,EAAmBxqD,KAAKiC,KAAMmpD,KA0CzCC,CAAgBrD,IAgBlB,SAASsD,EAAKV,EAAKtiC,GACjBrmB,KAAK2oD,IAAMA,EACX3oD,KAAKqmB,MAAQA,EAWf,SAASijC,KA3BThC,EAAQE,SAAW,SAAUmB,GAC3B,IAAIP,EAAO,IAAIl/C,MAAMR,UAAUtH,OAAS,GACxC,GAAIsH,UAAUtH,OAAS,EACrB,IAAK,IAAIxD,EAAI,EAAGA,EAAI8K,UAAUtH,OAAQxD,IACpCwqD,EAAKxqD,EAAI,GAAK8K,UAAU9K,GAG5BirD,EAAMpmD,KAAK,IAAI4mD,EAAKV,EAAKP,IACJ,IAAjBS,EAAMznD,QAAiB0nD,GACzBJ,EAAWO,IASfI,EAAK7pD,UAAUghD,IAAM,WACnBxgD,KAAK2oD,IAAI9lD,MAAM,KAAM7C,KAAKqmB,QAE5BihC,EAAQ3mB,MAAQ,UAChB2mB,EAAQhsC,SAAU,EAClBgsC,EAAQiC,IAAM,GACdjC,EAAQkC,KAAO,GACflC,EAAQmC,QAAU,GAClBnC,EAAQoC,SAAW,GAEnBpC,EAAQqC,GAAKL,EACbhC,EAAQsC,YAAcN,EACtBhC,EAAQuC,KAAOP,EACfhC,EAAQwC,IAAMR,EACdhC,EAAQyC,eAAiBT,EACzBhC,EAAQ0C,mBAAqBV,EAC7BhC,EAAQ2C,KAAOX,EACfhC,EAAQ4C,gBAAkBZ,EAC1BhC,EAAQ6C,oBAAsBb,EAC9BhC,EAAQ8C,UAAY,SAAUjsD,GAC5B,MAAO,IAETmpD,EAAQ+C,QAAU,SAAUlsD,GAC1B,MAAM,IAAI8b,MAAM,qCAElBqtC,EAAQgD,IAAM,WACZ,MAAO,KAEThD,EAAQiD,MAAQ,SAAU/kC,GACxB,MAAM,IAAIvL,MAAM,mCAElBqtC,EAAQkD,MAAQ,WACd,OAAO,I,cC7KT7sD,EAAOD,QAAU,SAAUC,GAoBzB,OAnBKA,EAAO8sD,kBACV9sD,EAAO+sD,UAAY,aACnB/sD,EAAOgtD,MAAQ,GAEVhtD,EAAOitD,WAAUjtD,EAAOitD,SAAW,IACxCtsD,OAAOC,eAAeZ,EAAQ,SAAU,CACtCa,YAAY,EACZC,IAAK,WACH,OAAOd,EAAOE,KAGlBS,OAAOC,eAAeZ,EAAQ,KAAM,CAClCa,YAAY,EACZC,IAAK,WACH,OAAOd,EAAOC,KAGlBD,EAAO8sD,gBAAkB,GAEpB9sD,I,+CCpBT,SAASiC,EAAQvB,GAAgC,OAAOuB,EAAU,mBAAqBjB,QAAU,iBAAmBA,OAAOkB,SAAW,SAAUxB,GAAK,cAAcA,GAAO,SAAUA,GAAK,OAAOA,GAAK,mBAAqBM,QAAUN,EAAEyB,cAAgBnB,QAAUN,IAAMM,OAAOa,UAAY,gBAAkBnB,IAAcA,GAEzT,SAASwsD,EAAkB3qD,EAAGxB,GAAK,IAAK,IAAII,EAAI,EAAGA,EAAIJ,EAAE0C,OAAQtC,IAAK,CAAE,IAAIT,EAAIK,EAAEI,GAAIT,EAAEG,WAAaH,EAAEG,aAAc,EAAIH,EAAE8H,cAAe,EAAI,UAAW9H,IAAMA,EAAE+H,UAAW,GAAK9H,OAAOC,eAAe2B,EAAG4qD,EAAezsD,EAAEc,KAAMd,IAEjO,SAASysD,EAAehsD,GAAK,IAAIlB,EACjC,SAAsBkB,EAAGJ,GAAK,GAAI,UAAYkB,EAAQd,KAAOA,EAAG,OAAOA,EAAG,IAAIoB,EAAIpB,EAAEH,OAAOosD,aAAc,QAAI,IAAW7qD,EAAG,CAAE,IAAItC,EAAIsC,EAAEnC,KAAKe,EAAGJ,GAAK,WAAY,GAAI,UAAYkB,EAAQhC,GAAI,OAAOA,EAAG,MAAM,IAAIkI,UAAU,gDAAmD,OAAQ,WAAapH,EAAIiE,OAASqoD,QAAQlsD,GADlRmsD,CAAansD,EAAG,UAAW,MAAO,UAAYc,EAAQhC,GAAKA,EAAIA,EAAI,GAGjG,IAAI,EAAgC,WAOzC,OAXoBsC,EAKpB,SAASgrD,EAAiB/gC,EAAY5hB,IAPxC,SAAyB1H,EAAGxB,GAAK,KAAMwB,aAAaxB,GAAI,MAAM,IAAIyG,UAAU,qCAQxEqlD,CAAgBnrD,KAAMkrD,GACtBlrD,KAAKmqB,WAAaA,EAClBnqB,KAAKuI,QAAUA,EACfvI,KAAKgM,aAAe,IAAI,eAAame,EAAWvjB,KAAM5G,KAAKorD,gBAAiBprD,QATvDtB,EAWe,CAAC,CACrCS,IAAK,QACLN,MAAO,WACLmB,KAAKgM,aAAa9M,OAAOc,KAAKqrD,wBAAwBjsD,KAAKY,SAE5D,CACDb,IAAK,mCACLN,MAAO,SAA0C8K,GAC/C,IAAIxC,EAAQnH,KACZ2J,EAAI8B,OAAOlE,iBAAiB,YAAY,SAAUC,GAChD,IAAIiF,EAAWjF,EAAMkF,OAASlF,EAAMmF,MAAQ,IAC5CxF,EAAMgjB,WAAW2gB,kBAAkBr+B,QAGtC,CACDtN,IAAK,0BACLN,MAAO,SAAiC0M,EAAOhC,GAC7C,GAAIgC,EACF,MAAM,IAAI0O,MAAM,yBAAyBI,OAAO9O,IAElDvL,KAAKmqB,WAAWogB,cAAc,CAC5B+gB,KAAM/hD,EAAWgiD,gBACjBjiD,IAAKtJ,KAAKwrD,cAAcjiD,EAAWiD,UAAWjD,EAAWC,cAG5D,CACDrK,IAAK,gBACLN,MAAO,SAAuB4sD,EAAUjiD,GACtC,OAAOxJ,KAAK0rD,gBAAgBzuC,QAAQ,aAAcwuC,GAAUxuC,QAAQ,YAAa3a,mBAAmBkH,MAErG,CACDrK,IAAK,kBACLV,IAAK,WACH,OAAOuB,KAAKuI,QAAQmZ,QAAQ0pC,kBAE7B,CACDjsD,IAAK,kBACLV,IAAK,WACH,OAAOuB,KAAKuI,QAAQmZ,QAAQgqC,qBAjDWb,EAAkB3qD,EAAEV,UAAWd,GAAII,GAAK+rD,EAAkB3qD,EAAGpB,GAAIR,OAAOC,eAAe2B,EAAG,YAAa,CAAEkG,UAAU,IAAOlG,EAAvK,IAAsBA,EAAGxB,EAAGI,EAIe,GCN3CyI,iBAAiB,uBAAuB,SAAUC,GAChD,IAAI2iB,EAAa3iB,EAAM2iB,WACrBzmB,EAAS8D,EAAM9D,OACbymB,EAAWvjB,MACA,IAAI,EAAiBujB,EAAYzmB,GACvCqE","file":"js/application-23005579ecffef9cafd2.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 2);\n","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar g;\n\n// This works in non-strict mode\ng = function () {\n return this;\n}();\ntry {\n // This works if eval is allowed (see CSP)\n g = g || new Function(\"return this\")();\n} catch (e) {\n // This works if the window reference is available\n if ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === \"object\" && typeof module !== \"undefined\" ? factory(exports) : typeof define === \"function\" && define.amd ? define([\"exports\"], factory) : factory(global.ActiveStorage = {});\n})(this, function (exports) {\n \"use strict\";\n\n function createCommonjsModule(fn, module) {\n return module = {\n exports: {}\n }, fn(module, module.exports), module.exports;\n }\n var sparkMd5 = createCommonjsModule(function (module, exports) {\n (function (factory) {\n {\n module.exports = factory();\n }\n })(function (undefined) {\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],\n b = x[1],\n c = x[2],\n 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 = [],\n 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 = [],\n 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,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n 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,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n 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 = \"\",\n 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,\n begin = clamp(from, length),\n end = length,\n num,\n target,\n targetArray,\n sourceArray;\n if (to !== undefined) {\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,\n buff = new ArrayBuffer(length),\n arr = new Uint8Array(buff),\n 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 = [],\n length = hex.length,\n 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,\n 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,\n length = buff.length,\n i,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n 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\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,\n tmp,\n lo,\n 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),\n 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),\n length = buff.length,\n 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,\n length = buff.length,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n i,\n 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)),\n ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n return SparkMD5;\n });\n });\n var classCallCheck = function classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n };\n var createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n var fileSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice;\n var FileChecksum = function () {\n createClass(FileChecksum, null, [{\n key: \"create\",\n value: function create(file, callback) {\n var instance = new FileChecksum(file);\n instance.create(callback);\n }\n }]);\n function FileChecksum(file) {\n classCallCheck(this, FileChecksum);\n this.file = file;\n this.chunkSize = 2097152;\n this.chunkCount = Math.ceil(this.file.size / this.chunkSize);\n this.chunkIndex = 0;\n }\n createClass(FileChecksum, [{\n key: \"create\",\n value: function create(callback) {\n var _this = this;\n this.callback = callback;\n this.md5Buffer = new sparkMd5.ArrayBuffer();\n this.fileReader = new FileReader();\n this.fileReader.addEventListener(\"load\", function (event) {\n return _this.fileReaderDidLoad(event);\n });\n this.fileReader.addEventListener(\"error\", function (event) {\n return _this.fileReaderDidError(event);\n });\n this.readNextChunk();\n }\n }, {\n key: \"fileReaderDidLoad\",\n value: function fileReaderDidLoad(event) {\n this.md5Buffer.append(event.target.result);\n if (!this.readNextChunk()) {\n var binaryDigest = this.md5Buffer.end(true);\n var base64digest = btoa(binaryDigest);\n this.callback(null, base64digest);\n }\n }\n }, {\n key: \"fileReaderDidError\",\n value: function fileReaderDidError(event) {\n this.callback(\"Error reading \" + this.file.name);\n }\n }, {\n key: \"readNextChunk\",\n value: function readNextChunk() {\n if (this.chunkIndex < this.chunkCount || this.chunkIndex == 0 && this.chunkCount == 0) {\n var start = this.chunkIndex * this.chunkSize;\n var end = Math.min(start + this.chunkSize, this.file.size);\n var 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 return FileChecksum;\n }();\n function getMetaValue(name) {\n var element = findElement(document.head, 'meta[name=\"' + name + '\"]');\n if (element) {\n return element.getAttribute(\"content\");\n }\n }\n function findElements(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n var elements = root.querySelectorAll(selector);\n return toArray$1(elements);\n }\n function findElement(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n return root.querySelector(selector);\n }\n function dispatchEvent(element, type) {\n var eventInit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var disabled = element.disabled;\n var bubbles = eventInit.bubbles,\n cancelable = eventInit.cancelable,\n detail = eventInit.detail;\n var 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 function toArray$1(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 var BlobRecord = function () {\n function BlobRecord(file, checksum, url) {\n var _this = this;\n classCallCheck(this, BlobRecord);\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 var csrfToken = getMetaValue(\"csrf-token\");\n if (csrfToken != undefined) {\n this.xhr.setRequestHeader(\"X-CSRF-Token\", csrfToken);\n }\n this.xhr.addEventListener(\"load\", function (event) {\n return _this.requestDidLoad(event);\n });\n this.xhr.addEventListener(\"error\", function (event) {\n return _this.requestDidError(event);\n });\n }\n createClass(BlobRecord, [{\n key: \"create\",\n value: function create(callback) {\n this.callback = callback;\n this.xhr.send(JSON.stringify({\n blob: this.attributes\n }));\n }\n }, {\n key: \"requestDidLoad\",\n value: function requestDidLoad(event) {\n if (this.status >= 200 && this.status < 300) {\n var response = this.response;\n var direct_upload = response.direct_upload;\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 }, {\n key: \"requestDidError\",\n value: function requestDidError(event) {\n this.callback('Error creating Blob for \"' + this.file.name + '\". Status: ' + this.status);\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var result = {};\n for (var key in this.attributes) {\n result[key] = this.attributes[key];\n }\n return result;\n }\n }, {\n key: \"status\",\n get: function get$$1() {\n return this.xhr.status;\n }\n }, {\n key: \"response\",\n get: function get$$1() {\n var _xhr = this.xhr,\n responseType = _xhr.responseType,\n response = _xhr.response;\n if (responseType == \"json\") {\n return response;\n } else {\n return JSON.parse(response);\n }\n }\n }]);\n return BlobRecord;\n }();\n var BlobUpload = function () {\n function BlobUpload(blob) {\n var _this = this;\n classCallCheck(this, BlobUpload);\n this.blob = blob;\n this.file = blob.file;\n var _blob$directUploadDat = blob.directUploadData,\n url = _blob$directUploadDat.url,\n headers = _blob$directUploadDat.headers;\n this.xhr = new XMLHttpRequest();\n this.xhr.open(\"PUT\", url, true);\n this.xhr.responseType = \"text\";\n for (var key in headers) {\n this.xhr.setRequestHeader(key, headers[key]);\n }\n this.xhr.addEventListener(\"load\", function (event) {\n return _this.requestDidLoad(event);\n });\n this.xhr.addEventListener(\"error\", function (event) {\n return _this.requestDidError(event);\n });\n }\n createClass(BlobUpload, [{\n key: \"create\",\n value: function create(callback) {\n this.callback = callback;\n this.xhr.send(this.file.slice());\n }\n }, {\n key: \"requestDidLoad\",\n value: function requestDidLoad(event) {\n var _xhr = this.xhr,\n status = _xhr.status,\n response = _xhr.response;\n if (status >= 200 && status < 300) {\n this.callback(null, response);\n } else {\n this.requestDidError(event);\n }\n }\n }, {\n key: \"requestDidError\",\n value: function requestDidError(event) {\n this.callback('Error storing \"' + this.file.name + '\". Status: ' + this.xhr.status);\n }\n }]);\n return BlobUpload;\n }();\n var id = 0;\n var DirectUpload = function () {\n function DirectUpload(file, url, delegate) {\n classCallCheck(this, DirectUpload);\n this.id = ++id;\n this.file = file;\n this.url = url;\n this.delegate = delegate;\n }\n createClass(DirectUpload, [{\n key: \"create\",\n value: function create(callback) {\n var _this = this;\n FileChecksum.create(this.file, function (error, checksum) {\n if (error) {\n callback(error);\n return;\n }\n var blob = new BlobRecord(_this.file, checksum, _this.url);\n notify(_this.delegate, \"directUploadWillCreateBlobWithXHR\", blob.xhr);\n blob.create(function (error) {\n if (error) {\n callback(error);\n } else {\n var upload = new BlobUpload(blob);\n notify(_this.delegate, \"directUploadWillStoreFileWithXHR\", upload.xhr);\n upload.create(function (error) {\n if (error) {\n callback(error);\n } else {\n callback(null, blob.toJSON());\n }\n });\n }\n });\n });\n }\n }]);\n return DirectUpload;\n }();\n function notify(object, methodName) {\n if (object && typeof object[methodName] == \"function\") {\n for (var _len = arguments.length, messages = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n messages[_key - 2] = arguments[_key];\n }\n return object[methodName].apply(object, messages);\n }\n }\n var DirectUploadController = function () {\n function DirectUploadController(input, file) {\n classCallCheck(this, DirectUploadController);\n this.input = input;\n this.file = file;\n this.directUpload = new DirectUpload(this.file, this.url, this);\n this.dispatch(\"initialize\");\n }\n createClass(DirectUploadController, [{\n key: \"start\",\n value: function start(callback) {\n var _this = this;\n var 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(function (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 }, {\n key: \"uploadRequestDidProgress\",\n value: function uploadRequestDidProgress(event) {\n var progress = event.loaded / event.total * 100;\n if (progress) {\n this.dispatch(\"progress\", {\n progress: progress\n });\n }\n }\n }, {\n key: \"dispatch\",\n value: function dispatch(name) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\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 }, {\n key: \"dispatchError\",\n value: function dispatchError(error) {\n var event = this.dispatch(\"error\", {\n error: error\n });\n if (!event.defaultPrevented) {\n alert(error);\n }\n }\n }, {\n key: \"directUploadWillCreateBlobWithXHR\",\n value: function directUploadWillCreateBlobWithXHR(xhr) {\n this.dispatch(\"before-blob-request\", {\n xhr: xhr\n });\n }\n }, {\n key: \"directUploadWillStoreFileWithXHR\",\n value: function directUploadWillStoreFileWithXHR(xhr) {\n var _this2 = this;\n this.dispatch(\"before-storage-request\", {\n xhr: xhr\n });\n xhr.upload.addEventListener(\"progress\", function (event) {\n return _this2.uploadRequestDidProgress(event);\n });\n }\n }, {\n key: \"url\",\n get: function get$$1() {\n return this.input.getAttribute(\"data-direct-upload-url\");\n }\n }]);\n return DirectUploadController;\n }();\n var inputSelector = \"input[type=file][data-direct-upload-url]:not([disabled])\";\n var DirectUploadsController = function () {\n function DirectUploadsController(form) {\n classCallCheck(this, DirectUploadsController);\n this.form = form;\n this.inputs = findElements(form, inputSelector).filter(function (input) {\n return input.files.length;\n });\n }\n createClass(DirectUploadsController, [{\n key: \"start\",\n value: function start(callback) {\n var _this = this;\n var controllers = this.createDirectUploadControllers();\n var startNextController = function startNextController() {\n var controller = controllers.shift();\n if (controller) {\n controller.start(function (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 }, {\n key: \"createDirectUploadControllers\",\n value: function createDirectUploadControllers() {\n var controllers = [];\n this.inputs.forEach(function (input) {\n toArray$1(input.files).forEach(function (file) {\n var controller = new DirectUploadController(input, file);\n controllers.push(controller);\n });\n });\n return controllers;\n }\n }, {\n key: \"dispatch\",\n value: function dispatch(name) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return dispatchEvent(this.form, \"direct-uploads:\" + name, {\n detail: detail\n });\n }\n }]);\n return DirectUploadsController;\n }();\n var processingAttribute = \"data-direct-uploads-processing\";\n var submitButtonsByForm = new WeakMap();\n var started = false;\n function start() {\n if (!started) {\n started = true;\n document.addEventListener(\"click\", didClick, true);\n document.addEventListener(\"submit\", didSubmitForm);\n document.addEventListener(\"ajax:before\", didSubmitRemoteElement);\n }\n }\n function didClick(event) {\n var target = event.target;\n if ((target.tagName == \"INPUT\" || target.tagName == \"BUTTON\") && target.type == \"submit\" && target.form) {\n submitButtonsByForm.set(target.form, target);\n }\n }\n function didSubmitForm(event) {\n handleFormSubmissionEvent(event);\n }\n function didSubmitRemoteElement(event) {\n if (event.target.tagName == \"FORM\") {\n handleFormSubmissionEvent(event);\n }\n }\n function handleFormSubmissionEvent(event) {\n var form = event.target;\n if (form.hasAttribute(processingAttribute)) {\n event.preventDefault();\n return;\n }\n var controller = new DirectUploadsController(form);\n var inputs = controller.inputs;\n if (inputs.length) {\n event.preventDefault();\n form.setAttribute(processingAttribute, \"\");\n inputs.forEach(disable);\n controller.start(function (error) {\n form.removeAttribute(processingAttribute);\n if (error) {\n inputs.forEach(enable);\n } else {\n submitForm(form);\n }\n });\n }\n }\n function submitForm(form) {\n var button = submitButtonsByForm.get(form) || findElement(form, \"input[type=submit], button[type=submit]\");\n if (button) {\n var _button = button,\n disabled = _button.disabled;\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 function disable(input) {\n input.disabled = true;\n }\n function enable(input) {\n input.disabled = false;\n }\n function autostart() {\n if (window.ActiveStorage) {\n start();\n }\n }\n setTimeout(autostart, 1);\n exports.start = start;\n exports.DirectUpload = DirectUpload;\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n});","/* eslint no-console:0 */\n// This file is automatically compiled by Webpack, along with any other files\n// present in this directory. You're encouraged to place your actual application logic in\n// a relevant structure within app/javascript and only use these pack files to reference\n// that code so it'll be compiled.\n//\n// To reference this file, add <%= javascript_pack_tag 'application' %> to the appropriate\n// layout file, like app/views/layouts/application.html.erb\n\n// console.log('Hello World from Webpacker')\n\nrequire(\"trix\")\nrequire(\"@rails/actiontext\")","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\n/*\nTrix 1.3.2\nCopyright © 2024 Basecamp, LLC\nhttp://trix-editor.org/\n */\n(function () {}).call(this), function () {\n var t;\n null == window.Set && (window.Set = t = function () {\n function t() {\n this.clear();\n }\n return t.prototype.clear = function () {\n return this.values = [];\n }, t.prototype.has = function (t) {\n return -1 !== this.values.indexOf(t);\n }, t.prototype.add = function (t) {\n return this.has(t) || this.values.push(t), this;\n }, t.prototype[\"delete\"] = function (t) {\n var e;\n return -1 === (e = this.values.indexOf(t)) ? !1 : (this.values.splice(e, 1), !0);\n }, t.prototype.forEach = function () {\n var t;\n return (t = this.values).forEach.apply(t, arguments);\n }, t;\n }());\n}.call(this), function (t) {\n function e() {}\n function n(t, e) {\n return function () {\n t.apply(e, arguments);\n };\n }\n function i(t) {\n if (\"object\" != _typeof(this)) throw new TypeError(\"Promises must be constructed via new\");\n if (\"function\" != typeof t) throw new TypeError(\"not a function\");\n this._state = 0, this._handled = !1, this._value = void 0, this._deferreds = [], c(t, this);\n }\n function o(t, e) {\n for (; 3 === t._state;) t = t._value;\n return 0 === t._state ? void t._deferreds.push(e) : (t._handled = !0, void h(function () {\n var n = 1 === t._state ? e.onFulfilled : e.onRejected;\n if (null === n) return void (1 === t._state ? r : s)(e.promise, t._value);\n var i;\n try {\n i = n(t._value);\n } catch (o) {\n return void s(e.promise, o);\n }\n r(e.promise, i);\n }));\n }\n function r(t, e) {\n try {\n if (e === t) throw new TypeError(\"A promise cannot be resolved with itself.\");\n if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) {\n var o = e.then;\n if (e instanceof i) return t._state = 3, t._value = e, void a(t);\n if (\"function\" == typeof o) return void c(n(o, e), t);\n }\n t._state = 1, t._value = e, a(t);\n } catch (r) {\n s(t, r);\n }\n }\n function s(t, e) {\n t._state = 2, t._value = e, a(t);\n }\n function a(t) {\n 2 === t._state && 0 === t._deferreds.length && setTimeout(function () {\n t._handled || p(t._value);\n }, 1);\n for (var e = 0, n = t._deferreds.length; n > e; e++) o(t, t._deferreds[e]);\n t._deferreds = null;\n }\n function u(t, e, n) {\n this.onFulfilled = \"function\" == typeof t ? t : null, this.onRejected = \"function\" == typeof e ? e : null, this.promise = n;\n }\n function c(t, e) {\n var n = !1;\n try {\n t(function (t) {\n n || (n = !0, r(e, t));\n }, function (t) {\n n || (n = !0, s(e, t));\n });\n } catch (i) {\n if (n) return;\n n = !0, s(e, i);\n }\n }\n var l = setTimeout,\n h = \"function\" == typeof setImmediate && setImmediate || function (t) {\n l(t, 1);\n },\n p = function p(t) {\n \"undefined\" != typeof console && console && console.warn(\"Possible Unhandled Promise Rejection:\", t);\n };\n i.prototype[\"catch\"] = function (t) {\n return this.then(null, t);\n }, i.prototype.then = function (t, n) {\n var r = new i(e);\n return o(this, new u(t, n, r)), r;\n }, i.all = function (t) {\n var e = Array.prototype.slice.call(t);\n return new i(function (t, n) {\n function i(r, s) {\n try {\n if (s && (\"object\" == _typeof(s) || \"function\" == typeof s)) {\n var a = s.then;\n if (\"function\" == typeof a) return void a.call(s, function (t) {\n i(r, t);\n }, n);\n }\n e[r] = s, 0 === --o && t(e);\n } catch (u) {\n n(u);\n }\n }\n if (0 === e.length) return t([]);\n for (var o = e.length, r = 0; r < e.length; r++) i(r, e[r]);\n });\n }, i.resolve = function (t) {\n return t && \"object\" == _typeof(t) && t.constructor === i ? t : new i(function (e) {\n e(t);\n });\n }, i.reject = function (t) {\n return new i(function (e, n) {\n n(t);\n });\n }, i.race = function (t) {\n return new i(function (e, n) {\n for (var i = 0, o = t.length; o > i; i++) t[i].then(e, n);\n });\n }, i._setImmediateFn = function (t) {\n h = t;\n }, i._setUnhandledRejectionFn = function (t) {\n p = t;\n }, \"undefined\" != typeof module && module.exports ? module.exports = i : t.Promise || (t.Promise = i);\n}(this), function () {\n var t = \"object\" == _typeof(window.customElements),\n e = \"function\" == typeof document.registerElement,\n n = t || e;\n n || (\n /**\n * @license\n * Copyright (c) 2014 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt\n */\n \"undefined\" == typeof WeakMap && !function () {\n var t = Object.defineProperty,\n e = Date.now() % 1e9,\n n = function n() {\n this.name = \"__st\" + (1e9 * Math.random() >>> 0) + (e++ + \"__\");\n };\n n.prototype = {\n set: function set(e, n) {\n var i = e[this.name];\n return i && i[0] === e ? i[1] = n : t(e, this.name, {\n value: [e, n],\n writable: !0\n }), this;\n },\n get: function get(t) {\n var e;\n return (e = t[this.name]) && e[0] === t ? e[1] : void 0;\n },\n \"delete\": function _delete(t) {\n var e = t[this.name];\n return e && e[0] === t ? (e[0] = e[1] = void 0, !0) : !1;\n },\n has: function has(t) {\n var e = t[this.name];\n return e ? e[0] === t : !1;\n }\n }, window.WeakMap = n;\n }(), function (t) {\n function e(t) {\n A.push(t), b || (b = !0, g(i));\n }\n function n(t) {\n return window.ShadowDOMPolyfill && window.ShadowDOMPolyfill.wrapIfNeeded(t) || t;\n }\n function i() {\n b = !1;\n var t = A;\n A = [], t.sort(function (t, e) {\n return t.uid_ - e.uid_;\n });\n var e = !1;\n t.forEach(function (t) {\n var n = t.takeRecords();\n o(t), n.length && (t.callback_(n, t), e = !0);\n }), e && i();\n }\n function o(t) {\n t.nodes_.forEach(function (e) {\n var n = m.get(e);\n n && n.forEach(function (e) {\n e.observer === t && e.removeTransientObservers();\n });\n });\n }\n function r(t, e) {\n for (var n = t; n; n = n.parentNode) {\n var i = m.get(n);\n if (i) for (var o = 0; o < i.length; o++) {\n var r = i[o],\n s = r.options;\n if (n === t || s.subtree) {\n var a = e(s);\n a && r.enqueue(a);\n }\n }\n }\n }\n function s(t) {\n this.callback_ = t, this.nodes_ = [], this.records_ = [], this.uid_ = ++C;\n }\n function a(t, e) {\n this.type = t, this.target = e, this.addedNodes = [], this.removedNodes = [], this.previousSibling = null, this.nextSibling = null, this.attributeName = null, this.attributeNamespace = null, this.oldValue = null;\n }\n function u(t) {\n var e = new a(t.type, t.target);\n return e.addedNodes = t.addedNodes.slice(), e.removedNodes = t.removedNodes.slice(), e.previousSibling = t.previousSibling, e.nextSibling = t.nextSibling, e.attributeName = t.attributeName, e.attributeNamespace = t.attributeNamespace, e.oldValue = t.oldValue, e;\n }\n function c(t, e) {\n return x = new a(t, e);\n }\n function l(t) {\n return w ? w : (w = u(x), w.oldValue = t, w);\n }\n function h() {\n x = w = void 0;\n }\n function p(t) {\n return t === w || t === x;\n }\n function d(t, e) {\n return t === e ? t : w && p(t) ? w : null;\n }\n function f(t, e, n) {\n this.observer = t, this.target = e, this.options = n, this.transientObservedNodes = [];\n }\n if (!t.JsMutationObserver) {\n var g,\n m = new WeakMap();\n if (/Trident|Edge/.test(navigator.userAgent)) g = setTimeout;else if (window.setImmediate) g = window.setImmediate;else {\n var v = [],\n y = String(Math.random());\n window.addEventListener(\"message\", function (t) {\n if (t.data === y) {\n var e = v;\n v = [], e.forEach(function (t) {\n t();\n });\n }\n }), g = function g(t) {\n v.push(t), window.postMessage(y, \"*\");\n };\n }\n var b = !1,\n A = [],\n C = 0;\n s.prototype = {\n observe: function observe(t, e) {\n if (t = n(t), !e.childList && !e.attributes && !e.characterData || e.attributeOldValue && !e.attributes || e.attributeFilter && e.attributeFilter.length && !e.attributes || e.characterDataOldValue && !e.characterData) throw new SyntaxError();\n var i = m.get(t);\n i || m.set(t, i = []);\n for (var o, r = 0; r < i.length; r++) if (i[r].observer === this) {\n o = i[r], o.removeListeners(), o.options = e;\n break;\n }\n o || (o = new f(this, t, e), i.push(o), this.nodes_.push(t)), o.addListeners();\n },\n disconnect: function disconnect() {\n this.nodes_.forEach(function (t) {\n for (var e = m.get(t), n = 0; n < e.length; n++) {\n var i = e[n];\n if (i.observer === this) {\n i.removeListeners(), e.splice(n, 1);\n break;\n }\n }\n }, this), this.records_ = [];\n },\n takeRecords: function takeRecords() {\n var t = this.records_;\n return this.records_ = [], t;\n }\n };\n var x, w;\n f.prototype = {\n enqueue: function enqueue(t) {\n var n = this.observer.records_,\n i = n.length;\n if (n.length > 0) {\n var o = n[i - 1],\n r = d(o, t);\n if (r) return void (n[i - 1] = r);\n } else e(this.observer);\n n[i] = t;\n },\n addListeners: function addListeners() {\n this.addListeners_(this.target);\n },\n addListeners_: function addListeners_(t) {\n var e = this.options;\n e.attributes && t.addEventListener(\"DOMAttrModified\", this, !0), e.characterData && t.addEventListener(\"DOMCharacterDataModified\", this, !0), e.childList && t.addEventListener(\"DOMNodeInserted\", this, !0), (e.childList || e.subtree) && t.addEventListener(\"DOMNodeRemoved\", this, !0);\n },\n removeListeners: function removeListeners() {\n this.removeListeners_(this.target);\n },\n removeListeners_: function removeListeners_(t) {\n var e = this.options;\n e.attributes && t.removeEventListener(\"DOMAttrModified\", this, !0), e.characterData && t.removeEventListener(\"DOMCharacterDataModified\", this, !0), e.childList && t.removeEventListener(\"DOMNodeInserted\", this, !0), (e.childList || e.subtree) && t.removeEventListener(\"DOMNodeRemoved\", this, !0);\n },\n addTransientObserver: function addTransientObserver(t) {\n if (t !== this.target) {\n this.addListeners_(t), this.transientObservedNodes.push(t);\n var e = m.get(t);\n e || m.set(t, e = []), e.push(this);\n }\n },\n removeTransientObservers: function removeTransientObservers() {\n var t = this.transientObservedNodes;\n this.transientObservedNodes = [], t.forEach(function (t) {\n this.removeListeners_(t);\n for (var e = m.get(t), n = 0; n < e.length; n++) if (e[n] === this) {\n e.splice(n, 1);\n break;\n }\n }, this);\n },\n handleEvent: function handleEvent(t) {\n switch (t.stopImmediatePropagation(), t.type) {\n case \"DOMAttrModified\":\n var e = t.attrName,\n n = t.relatedNode.namespaceURI,\n i = t.target,\n o = new c(\"attributes\", i);\n o.attributeName = e, o.attributeNamespace = n;\n var s = t.attrChange === MutationEvent.ADDITION ? null : t.prevValue;\n r(i, function (t) {\n return !t.attributes || t.attributeFilter && t.attributeFilter.length && -1 === t.attributeFilter.indexOf(e) && -1 === t.attributeFilter.indexOf(n) ? void 0 : t.attributeOldValue ? l(s) : o;\n });\n break;\n case \"DOMCharacterDataModified\":\n var i = t.target,\n o = c(\"characterData\", i),\n s = t.prevValue;\n r(i, function (t) {\n return t.characterData ? t.characterDataOldValue ? l(s) : o : void 0;\n });\n break;\n case \"DOMNodeRemoved\":\n this.addTransientObserver(t.target);\n case \"DOMNodeInserted\":\n var a,\n u,\n p = t.target;\n \"DOMNodeInserted\" === t.type ? (a = [p], u = []) : (a = [], u = [p]);\n var d = p.previousSibling,\n f = p.nextSibling,\n o = c(\"childList\", t.target.parentNode);\n o.addedNodes = a, o.removedNodes = u, o.previousSibling = d, o.nextSibling = f, r(t.relatedNode, function (t) {\n return t.childList ? o : void 0;\n });\n }\n h();\n }\n }, t.JsMutationObserver = s, t.MutationObserver || (t.MutationObserver = s, s._isPolyfilled = !0);\n }\n }(self), function () {\n \"use strict\";\n\n if (!window.performance || !window.performance.now) {\n var t = Date.now();\n window.performance = {\n now: function now() {\n return Date.now() - t;\n }\n };\n }\n window.requestAnimationFrame || (window.requestAnimationFrame = function () {\n var t = window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame;\n return t ? function (e) {\n return t(function () {\n e(performance.now());\n });\n } : function (t) {\n return window.setTimeout(t, 1e3 / 60);\n };\n }()), window.cancelAnimationFrame || (window.cancelAnimationFrame = function () {\n return window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || function (t) {\n clearTimeout(t);\n };\n }());\n var e = function () {\n var t = document.createEvent(\"Event\");\n return t.initEvent(\"foo\", !0, !0), t.preventDefault(), t.defaultPrevented;\n }();\n if (!e) {\n var n = Event.prototype.preventDefault;\n Event.prototype.preventDefault = function () {\n this.cancelable && (n.call(this), Object.defineProperty(this, \"defaultPrevented\", {\n get: function get() {\n return !0;\n },\n configurable: !0\n }));\n };\n }\n var i = /Trident/.test(navigator.userAgent);\n if ((!window.CustomEvent || i && \"function\" != typeof window.CustomEvent) && (window.CustomEvent = function (t, e) {\n e = e || {};\n var n = document.createEvent(\"CustomEvent\");\n return n.initCustomEvent(t, Boolean(e.bubbles), Boolean(e.cancelable), e.detail), n;\n }, window.CustomEvent.prototype = window.Event.prototype), !window.Event || i && \"function\" != typeof window.Event) {\n var o = window.Event;\n window.Event = function (t, e) {\n e = e || {};\n var n = document.createEvent(\"Event\");\n return n.initEvent(t, Boolean(e.bubbles), Boolean(e.cancelable)), n;\n }, window.Event.prototype = o.prototype;\n }\n }(window.WebComponents), window.CustomElements = window.CustomElements || {\n flags: {}\n }, function (t) {\n var e = t.flags,\n n = [],\n i = function i(t) {\n n.push(t);\n },\n o = function o() {\n n.forEach(function (e) {\n e(t);\n });\n };\n t.addModule = i, t.initializeModules = o, t.hasNative = Boolean(document.registerElement), t.isIE = /Trident/.test(navigator.userAgent), t.useNative = !e.register && t.hasNative && !window.ShadowDOMPolyfill && (!window.HTMLImports || window.HTMLImports.useNative);\n }(window.CustomElements), window.CustomElements.addModule(function (t) {\n function e(t, e) {\n n(t, function (t) {\n return e(t) ? !0 : void i(t, e);\n }), i(t, e);\n }\n function n(t, e, i) {\n var o = t.firstElementChild;\n if (!o) for (o = t.firstChild; o && o.nodeType !== Node.ELEMENT_NODE;) o = o.nextSibling;\n for (; o;) e(o, i) !== !0 && n(o, e, i), o = o.nextElementSibling;\n return null;\n }\n function i(t, n) {\n for (var i = t.shadowRoot; i;) e(i, n), i = i.olderShadowRoot;\n }\n function o(t, e) {\n r(t, e, []);\n }\n function r(t, e, n) {\n if (t = window.wrap(t), !(n.indexOf(t) >= 0)) {\n n.push(t);\n for (var i, o = t.querySelectorAll(\"link[rel=\" + s + \"]\"), a = 0, u = o.length; u > a && (i = o[a]); a++) i[\"import\"] && r(i[\"import\"], e, n);\n e(t);\n }\n }\n var s = window.HTMLImports ? window.HTMLImports.IMPORT_LINK_TYPE : \"none\";\n t.forDocumentTree = o, t.forSubtree = e;\n }), window.CustomElements.addModule(function (t) {\n function e(t, e) {\n return n(t, e) || i(t, e);\n }\n function n(e, n) {\n return t.upgrade(e, n) ? !0 : void (n && s(e));\n }\n function i(t, e) {\n b(t, function (t) {\n return n(t, e) ? !0 : void 0;\n });\n }\n function o(t) {\n w.push(t), x || (x = !0, setTimeout(r));\n }\n function r() {\n x = !1;\n for (var t, e = w, n = 0, i = e.length; i > n && (t = e[n]); n++) t();\n w = [];\n }\n function s(t) {\n C ? o(function () {\n a(t);\n }) : a(t);\n }\n function a(t) {\n t.__upgraded__ && !t.__attached && (t.__attached = !0, t.attachedCallback && t.attachedCallback());\n }\n function u(t) {\n c(t), b(t, function (t) {\n c(t);\n });\n }\n function c(t) {\n C ? o(function () {\n l(t);\n }) : l(t);\n }\n function l(t) {\n t.__upgraded__ && t.__attached && (t.__attached = !1, t.detachedCallback && t.detachedCallback());\n }\n function h(t) {\n for (var e = t, n = window.wrap(document); e;) {\n if (e == n) return !0;\n e = e.parentNode || e.nodeType === Node.DOCUMENT_FRAGMENT_NODE && e.host;\n }\n }\n function p(t) {\n if (t.shadowRoot && !t.shadowRoot.__watched) {\n y.dom && console.log(\"watching shadow-root for: \", t.localName);\n for (var e = t.shadowRoot; e;) g(e), e = e.olderShadowRoot;\n }\n }\n function d(t, n) {\n if (y.dom) {\n var i = n[0];\n if (i && \"childList\" === i.type && i.addedNodes && i.addedNodes) {\n for (var o = i.addedNodes[0]; o && o !== document && !o.host;) o = o.parentNode;\n var r = o && (o.URL || o._URL || o.host && o.host.localName) || \"\";\n r = r.split(\"/?\").shift().split(\"/\").pop();\n }\n console.group(\"mutations (%d) [%s]\", n.length, r || \"\");\n }\n var s = h(t);\n n.forEach(function (t) {\n \"childList\" === t.type && (E(t.addedNodes, function (t) {\n t.localName && e(t, s);\n }), E(t.removedNodes, function (t) {\n t.localName && u(t);\n }));\n }), y.dom && console.groupEnd();\n }\n function f(t) {\n for (t = window.wrap(t), t || (t = window.wrap(document)); t.parentNode;) t = t.parentNode;\n var e = t.__observer;\n e && (d(t, e.takeRecords()), r());\n }\n function g(t) {\n if (!t.__observer) {\n var e = new MutationObserver(d.bind(this, t));\n e.observe(t, {\n childList: !0,\n subtree: !0\n }), t.__observer = e;\n }\n }\n function m(t) {\n t = window.wrap(t), y.dom && console.group(\"upgradeDocument: \", t.baseURI.split(\"/\").pop());\n var n = t === window.wrap(document);\n e(t, n), g(t), y.dom && console.groupEnd();\n }\n function v(t) {\n A(t, m);\n }\n var y = t.flags,\n b = t.forSubtree,\n A = t.forDocumentTree,\n C = window.MutationObserver._isPolyfilled && y[\"throttle-attached\"];\n t.hasPolyfillMutations = C, t.hasThrottledAttached = C;\n var x = !1,\n w = [],\n E = Array.prototype.forEach.call.bind(Array.prototype.forEach),\n S = Element.prototype.createShadowRoot;\n S && (Element.prototype.createShadowRoot = function () {\n var t = S.call(this);\n return window.CustomElements.watchShadow(this), t;\n }), t.watchShadow = p, t.upgradeDocumentTree = v, t.upgradeDocument = m, t.upgradeSubtree = i, t.upgradeAll = e, t.attached = s, t.takeRecords = f;\n }), window.CustomElements.addModule(function (t) {\n function e(e, i) {\n if (\"template\" === e.localName && window.HTMLTemplateElement && HTMLTemplateElement.decorate && HTMLTemplateElement.decorate(e), !e.__upgraded__ && e.nodeType === Node.ELEMENT_NODE) {\n var o = e.getAttribute(\"is\"),\n r = t.getRegisteredDefinition(e.localName) || t.getRegisteredDefinition(o);\n if (r && (o && r.tag == e.localName || !o && !r[\"extends\"])) return n(e, r, i);\n }\n }\n function n(e, n, o) {\n return s.upgrade && console.group(\"upgrade:\", e.localName), n.is && e.setAttribute(\"is\", n.is), i(e, n), e.__upgraded__ = !0, r(e), o && t.attached(e), t.upgradeSubtree(e, o), s.upgrade && console.groupEnd(), e;\n }\n function i(t, e) {\n Object.__proto__ ? t.__proto__ = e.prototype : (o(t, e.prototype, e[\"native\"]), t.__proto__ = e.prototype);\n }\n function o(t, e, n) {\n for (var i = {}, o = e; o !== n && o !== HTMLElement.prototype;) {\n for (var r, s = Object.getOwnPropertyNames(o), a = 0; r = s[a]; a++) i[r] || (Object.defineProperty(t, r, Object.getOwnPropertyDescriptor(o, r)), i[r] = 1);\n o = Object.getPrototypeOf(o);\n }\n }\n function r(t) {\n t.createdCallback && t.createdCallback();\n }\n var s = t.flags;\n t.upgrade = e, t.upgradeWithDefinition = n, t.implementPrototype = i;\n }), window.CustomElements.addModule(function (t) {\n function e(e, i) {\n var u = i || {};\n if (!e) throw new Error(\"document.registerElement: first argument `name` must not be empty\");\n if (e.indexOf(\"-\") < 0) throw new Error(\"document.registerElement: first argument ('name') must contain a dash ('-'). Argument provided was '\" + String(e) + \"'.\");\n if (o(e)) throw new Error(\"Failed to execute 'registerElement' on 'Document': Registration failed for type '\" + String(e) + \"'. The type name is invalid.\");\n if (c(e)) throw new Error(\"DuplicateDefinitionError: a type with name '\" + String(e) + \"' is already registered\");\n return u.prototype || (u.prototype = Object.create(HTMLElement.prototype)), u.__name = e.toLowerCase(), u[\"extends\"] && (u[\"extends\"] = u[\"extends\"].toLowerCase()), u.lifecycle = u.lifecycle || {}, u.ancestry = r(u[\"extends\"]), s(u), a(u), n(u.prototype), l(u.__name, u), u.ctor = h(u), u.ctor.prototype = u.prototype, u.prototype.constructor = u.ctor, t.ready && m(document), u.ctor;\n }\n function n(t) {\n if (!t.setAttribute._polyfilled) {\n var e = t.setAttribute;\n t.setAttribute = function (t, n) {\n i.call(this, t, n, e);\n };\n var n = t.removeAttribute;\n t.removeAttribute = function (t) {\n i.call(this, t, null, n);\n }, t.setAttribute._polyfilled = !0;\n }\n }\n function i(t, e, n) {\n t = t.toLowerCase();\n var i = this.getAttribute(t);\n n.apply(this, arguments);\n var o = this.getAttribute(t);\n this.attributeChangedCallback && o !== i && this.attributeChangedCallback(t, i, o);\n }\n function o(t) {\n for (var e = 0; e < C.length; e++) if (t === C[e]) return !0;\n }\n function r(t) {\n var e = c(t);\n return e ? r(e[\"extends\"]).concat([e]) : [];\n }\n function s(t) {\n for (var e, n = t[\"extends\"], i = 0; e = t.ancestry[i]; i++) n = e.is && e.tag;\n t.tag = n || t.__name, n && (t.is = t.__name);\n }\n function a(t) {\n if (!Object.__proto__) {\n var e = HTMLElement.prototype;\n if (t.is) {\n var n = document.createElement(t.tag);\n e = Object.getPrototypeOf(n);\n }\n for (var i, o = t.prototype, r = !1; o;) o == e && (r = !0), i = Object.getPrototypeOf(o), i && (o.__proto__ = i), o = i;\n r || console.warn(t.tag + \" prototype not found in prototype chain for \" + t.is), t[\"native\"] = e;\n }\n }\n function u(t) {\n return y(E(t.tag), t);\n }\n function c(t) {\n return t ? x[t.toLowerCase()] : void 0;\n }\n function l(t, e) {\n x[t] = e;\n }\n function h(t) {\n return function () {\n return u(t);\n };\n }\n function p(t, e, n) {\n return t === w ? d(e, n) : S(t, e);\n }\n function d(t, e) {\n t && (t = t.toLowerCase()), e && (e = e.toLowerCase());\n var n = c(e || t);\n if (n) {\n if (t == n.tag && e == n.is) return new n.ctor();\n if (!e && !n.is) return new n.ctor();\n }\n var i;\n return e ? (i = d(t), i.setAttribute(\"is\", e), i) : (i = E(t), t.indexOf(\"-\") >= 0 && b(i, HTMLElement), i);\n }\n function f(t, e) {\n var n = t[e];\n t[e] = function () {\n var t = n.apply(this, arguments);\n return v(t), t;\n };\n }\n var g,\n m = (t.isIE, t.upgradeDocumentTree),\n v = t.upgradeAll,\n y = t.upgradeWithDefinition,\n b = t.implementPrototype,\n A = t.useNative,\n C = [\"annotation-xml\", \"color-profile\", \"font-face\", \"font-face-src\", \"font-face-uri\", \"font-face-format\", \"font-face-name\", \"missing-glyph\"],\n x = {},\n w = \"http://www.w3.org/1999/xhtml\",\n E = document.createElement.bind(document),\n S = document.createElementNS.bind(document);\n g = Object.__proto__ || A ? function (t, e) {\n return t instanceof e;\n } : function (t, e) {\n if (t instanceof e) return !0;\n for (var n = t; n;) {\n if (n === e.prototype) return !0;\n n = n.__proto__;\n }\n return !1;\n }, f(Node.prototype, \"cloneNode\"), f(document, \"importNode\"), document.registerElement = e, document.createElement = d, document.createElementNS = p, t.registry = x, t[\"instanceof\"] = g, t.reservedTagList = C, t.getRegisteredDefinition = c, document.register = document.registerElement;\n }), function (t) {\n function e() {\n r(window.wrap(document)), window.CustomElements.ready = !0;\n var t = window.requestAnimationFrame || function (t) {\n setTimeout(t, 16);\n };\n t(function () {\n setTimeout(function () {\n window.CustomElements.readyTime = Date.now(), window.HTMLImports && (window.CustomElements.elapsed = window.CustomElements.readyTime - window.HTMLImports.readyTime), document.dispatchEvent(new CustomEvent(\"WebComponentsReady\", {\n bubbles: !0\n }));\n });\n });\n }\n var n = t.useNative,\n i = t.initializeModules;\n if (t.isIE, n) {\n var o = function o() {};\n t.watchShadow = o, t.upgrade = o, t.upgradeAll = o, t.upgradeDocumentTree = o, t.upgradeSubtree = o, t.takeRecords = o, t[\"instanceof\"] = function (t, e) {\n return t instanceof e;\n };\n } else i();\n var r = t.upgradeDocumentTree,\n s = t.upgradeDocument;\n if (window.wrap || (window.ShadowDOMPolyfill ? (window.wrap = window.ShadowDOMPolyfill.wrapIfNeeded, window.unwrap = window.ShadowDOMPolyfill.unwrapIfNeeded) : window.wrap = window.unwrap = function (t) {\n return t;\n }), window.HTMLImports && (window.HTMLImports.__importsParsingHook = function (t) {\n t[\"import\"] && s(wrap(t[\"import\"]));\n }), \"complete\" === document.readyState || t.flags.eager) e();else if (\"interactive\" !== document.readyState || window.attachEvent || window.HTMLImports && !window.HTMLImports.ready) {\n var a = window.HTMLImports && !window.HTMLImports.ready ? \"HTMLImportsLoaded\" : \"DOMContentLoaded\";\n window.addEventListener(a, e);\n } else e();\n }(window.CustomElements));\n}.call(this), function () {}.call(this), function () {\n var t = this;\n (function () {\n (function () {\n this.Trix = {\n VERSION: \"1.3.2\",\n ZERO_WIDTH_SPACE: \"\\uFEFF\",\n NON_BREAKING_SPACE: \"\\xa0\",\n OBJECT_REPLACEMENT_CHARACTER: \"\\uFFFC\",\n browser: {\n composesExistingText: /Android.*Chrome/.test(navigator.userAgent),\n forcesObjectResizing: /Trident.*rv:11/.test(navigator.userAgent),\n supportsInputEvents: function () {\n var t, e, n, i;\n if (\"undefined\" == typeof InputEvent) return !1;\n for (i = [\"data\", \"getTargetRanges\", \"inputType\"], t = 0, e = i.length; e > t; t++) if (n = i[t], !(n in InputEvent.prototype)) return !1;\n return !0;\n }()\n },\n config: {}\n };\n }).call(this);\n }).call(t);\n var e = t.Trix;\n (function () {\n (function () {\n e.BasicObject = function () {\n function t() {}\n var e, n, i;\n return t.proxyMethod = function (t) {\n var i, o, r, s, a;\n return r = n(t), i = r.name, s = r.toMethod, a = r.toProperty, o = r.optional, this.prototype[i] = function () {\n var t, n;\n return t = null != s ? o ? \"function\" == typeof this[s] ? this[s]() : void 0 : this[s]() : null != a ? this[a] : void 0, o ? (n = null != t ? t[i] : void 0, null != n ? e.call(n, t, arguments) : void 0) : (n = t[i], e.call(n, t, arguments));\n };\n }, n = function n(t) {\n var e, n;\n if (!(n = t.match(i))) throw new Error(\"can't parse @proxyMethod expression: \" + t);\n return e = {\n name: n[4]\n }, null != n[2] ? e.toMethod = n[1] : e.toProperty = n[1], null != n[3] && (e.optional = !0), e;\n }, e = Function.prototype.apply, i = /^(.+?)(\\(\\))?(\\?)?\\.(.+?)$/, t;\n }();\n }).call(this), function () {\n var t = function t(_t, e) {\n function i() {\n this.constructor = _t;\n }\n for (var o in e) n.call(e, o) && (_t[o] = e[o]);\n return i.prototype = e.prototype, _t.prototype = new i(), _t.__super__ = e.prototype, _t;\n },\n n = {}.hasOwnProperty;\n e.Object = function (n) {\n function i() {\n this.id = ++o;\n }\n var o;\n return t(i, n), o = 0, i.fromJSONString = function (t) {\n return this.fromJSON(JSON.parse(t));\n }, i.prototype.hasSameConstructorAs = function (t) {\n return this.constructor === (null != t ? t.constructor : void 0);\n }, i.prototype.isEqualTo = function (t) {\n return this === t;\n }, i.prototype.inspect = function () {\n var t, e, n;\n return t = function () {\n var t, i, o;\n i = null != (t = this.contentsForInspection()) ? t : {}, o = [];\n for (e in i) n = i[e], o.push(e + \"=\" + n);\n return o;\n }.call(this), \"#<\" + this.constructor.name + \":\" + this.id + (t.length ? \" \" + t.join(\", \") : \"\") + \">\";\n }, i.prototype.contentsForInspection = function () {}, i.prototype.toJSONString = function () {\n return JSON.stringify(this);\n }, i.prototype.toUTF16String = function () {\n return e.UTF16String.box(this);\n }, i.prototype.getCacheKey = function () {\n return this.id.toString();\n }, i;\n }(e.BasicObject);\n }.call(this), function () {\n e.extend = function (t) {\n var e, n;\n for (e in t) n = t[e], this[e] = n;\n return this;\n };\n }.call(this), function () {\n e.extend({\n defer: function defer(t) {\n return setTimeout(t, 1);\n }\n });\n }.call(this), function () {\n var t, n;\n e.extend({\n normalizeSpaces: function normalizeSpaces(t) {\n return t.replace(RegExp(\"\" + e.ZERO_WIDTH_SPACE, \"g\"), \"\").replace(RegExp(\"\" + e.NON_BREAKING_SPACE, \"g\"), \" \");\n },\n normalizeNewlines: function normalizeNewlines(t) {\n return t.replace(/\\r\\n/g, \"\\n\");\n },\n breakableWhitespacePattern: RegExp(\"[^\\\\S\" + e.NON_BREAKING_SPACE + \"]\"),\n squishBreakableWhitespace: function squishBreakableWhitespace(t) {\n return t.replace(RegExp(\"\" + e.breakableWhitespacePattern.source, \"g\"), \" \").replace(/\\ {2,}/g, \" \");\n },\n summarizeStringChange: function summarizeStringChange(t, i) {\n var o, r, s, a;\n return t = e.UTF16String.box(t), i = e.UTF16String.box(i), i.length < t.length ? (r = n(t, i), a = r[0], o = r[1]) : (s = n(i, t), o = s[0], a = s[1]), {\n added: o,\n removed: a\n };\n }\n }), n = function n(_n, i) {\n var o, r, s, a, u;\n return _n.isEqualTo(i) ? [\"\", \"\"] : (r = t(_n, i), a = r.utf16String.length, s = a ? (u = r.offset, r, o = _n.codepoints.slice(0, u).concat(_n.codepoints.slice(u + a)), t(i, e.UTF16String.fromCodepoints(o))) : t(i, _n), [r.utf16String.toString(), s.utf16String.toString()]);\n }, t = function t(_t2, e) {\n var n, i, o;\n for (n = 0, i = _t2.length, o = e.length; i > n && _t2.charAt(n).isEqualTo(e.charAt(n));) n++;\n for (; i > n + 1 && _t2.charAt(i - 1).isEqualTo(e.charAt(o - 1));) i--, o--;\n return {\n utf16String: _t2.slice(n, i),\n offset: n\n };\n };\n }.call(this), function () {\n e.extend({\n copyObject: function copyObject(t) {\n var e, n, i;\n null == t && (t = {}), n = {};\n for (e in t) i = t[e], n[e] = i;\n return n;\n },\n objectsAreEqual: function objectsAreEqual(t, e) {\n var n, i;\n if (null == t && (t = {}), null == e && (e = {}), Object.keys(t).length !== Object.keys(e).length) return !1;\n for (n in t) if (i = t[n], i !== e[n]) return !1;\n return !0;\n }\n });\n }.call(this), function () {\n var t = [].slice;\n e.extend({\n arraysAreEqual: function arraysAreEqual(t, e) {\n var n, i, o, r;\n if (null == t && (t = []), null == e && (e = []), t.length !== e.length) return !1;\n for (i = n = 0, o = t.length; o > n; i = ++n) if (r = t[i], r !== e[i]) return !1;\n return !0;\n },\n arrayStartsWith: function arrayStartsWith(t, n) {\n return null == t && (t = []), null == n && (n = []), e.arraysAreEqual(t.slice(0, n.length), n);\n },\n spliceArray: function spliceArray() {\n var e, n, i;\n return n = arguments[0], e = 2 <= arguments.length ? t.call(arguments, 1) : [], i = n.slice(0), i.splice.apply(i, e), i;\n },\n summarizeArrayChange: function summarizeArrayChange(t, e) {\n var n, i, o, r, s, a, u, c, l, h, p;\n for (null == t && (t = []), null == e && (e = []), n = [], h = [], o = new Set(), r = 0, u = t.length; u > r; r++) p = t[r], o.add(p);\n for (i = new Set(), s = 0, c = e.length; c > s; s++) p = e[s], i.add(p), o.has(p) || n.push(p);\n for (a = 0, l = t.length; l > a; a++) p = t[a], i.has(p) || h.push(p);\n return {\n added: n,\n removed: h\n };\n }\n });\n }.call(this), function () {\n var t, n, i, o;\n t = null, n = null, o = null, i = null, e.extend({\n getAllAttributeNames: function getAllAttributeNames() {\n return null != t ? t : t = e.getTextAttributeNames().concat(e.getBlockAttributeNames());\n },\n getBlockConfig: function getBlockConfig(t) {\n return e.config.blockAttributes[t];\n },\n getBlockAttributeNames: function getBlockAttributeNames() {\n return null != n ? n : n = Object.keys(e.config.blockAttributes);\n },\n getTextConfig: function getTextConfig(t) {\n return e.config.textAttributes[t];\n },\n getTextAttributeNames: function getTextAttributeNames() {\n return null != o ? o : o = Object.keys(e.config.textAttributes);\n },\n getListAttributeNames: function getListAttributeNames() {\n var t, n;\n return null != i ? i : i = function () {\n var i, o;\n i = e.config.blockAttributes, o = [];\n for (t in i) n = i[t].listAttribute, null != n && o.push(n);\n return o;\n }();\n }\n });\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n return -1;\n };\n t = document.documentElement, n = null != (i = null != (o = null != (r = t.matchesSelector) ? r : t.webkitMatchesSelector) ? o : t.msMatchesSelector) ? i : t.mozMatchesSelector, e.extend({\n handleEvent: function handleEvent(n, i) {\n var o, r, _s, a, u, c, l, h, p, d, f, g;\n return h = null != i ? i : {}, c = h.onElement, u = h.matchingSelector, g = h.withCallback, a = h.inPhase, l = h.preventDefault, d = h.times, r = null != c ? c : t, p = u, o = g, f = \"capturing\" === a, _s = function s(t) {\n var n;\n return null != d && 0 === --d && _s.destroy(), n = e.findClosestElementFromNode(t.target, {\n matchingSelector: p\n }), null != n && (null != g && g.call(n, t, n), l) ? t.preventDefault() : void 0;\n }, _s.destroy = function () {\n return r.removeEventListener(n, _s, f);\n }, r.addEventListener(n, _s, f), _s;\n },\n handleEventOnce: function handleEventOnce(t, n) {\n return null == n && (n = {}), n.times = 1, e.handleEvent(t, n);\n },\n triggerEvent: function triggerEvent(n, i) {\n var o, r, s, a, u, c, l;\n return l = null != i ? i : {}, c = l.onElement, r = l.bubbles, s = l.cancelable, o = l.attributes, a = null != c ? c : t, r = r !== !1, s = s !== !1, u = document.createEvent(\"Events\"), u.initEvent(n, r, s), null != o && e.extend.call(u, o), a.dispatchEvent(u);\n },\n elementMatchesSelector: function elementMatchesSelector(t, e) {\n return 1 === (null != t ? t.nodeType : void 0) ? n.call(t, e) : void 0;\n },\n findClosestElementFromNode: function findClosestElementFromNode(t, n) {\n var i, o, r;\n for (o = null != n ? n : {}, i = o.matchingSelector, r = o.untilNode; null != t && t.nodeType !== Node.ELEMENT_NODE;) t = t.parentNode;\n if (null != t) {\n if (null == i) return t;\n if (t.closest && null == r) return t.closest(i);\n for (; t && t !== r;) {\n if (e.elementMatchesSelector(t, i)) return t;\n t = t.parentNode;\n }\n }\n },\n findInnerElement: function findInnerElement(t) {\n for (; null != t ? t.firstElementChild : void 0;) t = t.firstElementChild;\n return t;\n },\n innerElementIsActive: function innerElementIsActive(t) {\n return document.activeElement !== t && e.elementContainsNode(t, document.activeElement);\n },\n elementContainsNode: function elementContainsNode(t, e) {\n if (t && e) for (; e;) {\n if (e === t) return !0;\n e = e.parentNode;\n }\n },\n findNodeFromContainerAndOffset: function findNodeFromContainerAndOffset(t, e) {\n var n;\n if (t) return t.nodeType === Node.TEXT_NODE ? t : 0 === e ? null != (n = t.firstChild) ? n : t : t.childNodes.item(e - 1);\n },\n findElementFromContainerAndOffset: function findElementFromContainerAndOffset(t, n) {\n var i;\n return i = e.findNodeFromContainerAndOffset(t, n), e.findClosestElementFromNode(i);\n },\n findChildIndexOfNode: function findChildIndexOfNode(t) {\n var e;\n if (null != t ? t.parentNode : void 0) {\n for (e = 0; t = t.previousSibling;) e++;\n return e;\n }\n },\n removeNode: function removeNode(t) {\n var e;\n return null != t && null != (e = t.parentNode) ? e.removeChild(t) : void 0;\n },\n walkTree: function walkTree(t, e) {\n var n, i, o, r, s;\n return o = null != e ? e : {}, i = o.onlyNodesOfType, r = o.usingFilter, n = o.expandEntityReferences, s = function () {\n switch (i) {\n case \"element\":\n return NodeFilter.SHOW_ELEMENT;\n case \"text\":\n return NodeFilter.SHOW_TEXT;\n case \"comment\":\n return NodeFilter.SHOW_COMMENT;\n default:\n return NodeFilter.SHOW_ALL;\n }\n }(), document.createTreeWalker(t, s, null != r ? r : null, n === !0);\n },\n tagName: function tagName(t) {\n var e;\n return null != t && null != (e = t.tagName) ? e.toLowerCase() : void 0;\n },\n makeElement: function makeElement(t, e) {\n var n, i, o, r, s, a, u, c, l, h, p, d, f, g;\n if (null == e && (e = {}), \"object\" == _typeof(t) ? (e = t, t = e.tagName) : e = {\n attributes: e\n }, o = document.createElement(t), null != e.editable && (null == e.attributes && (e.attributes = {}), e.attributes.contenteditable = e.editable), e.attributes) {\n l = e.attributes;\n for (a in l) g = l[a], o.setAttribute(a, g);\n }\n if (e.style) {\n h = e.style;\n for (a in h) g = h[a], o.style[a] = g;\n }\n if (e.data) {\n p = e.data;\n for (a in p) g = p[a], o.dataset[a] = g;\n }\n if (e.className) for (d = e.className.split(\" \"), r = 0, u = d.length; u > r; r++) i = d[r], o.classList.add(i);\n if (e.textContent && (o.textContent = e.textContent), e.childNodes) for (f = [].concat(e.childNodes), s = 0, c = f.length; c > s; s++) n = f[s], o.appendChild(n);\n return o;\n },\n getBlockTagNames: function getBlockTagNames() {\n var t, n;\n return null != e.blockTagNames ? e.blockTagNames : e.blockTagNames = function () {\n var i, o;\n i = e.config.blockAttributes, o = [];\n for (t in i) n = i[t].tagName, n && o.push(n);\n return o;\n }();\n },\n nodeIsBlockContainer: function nodeIsBlockContainer(t) {\n return e.nodeIsBlockStartComment(null != t ? t.firstChild : void 0);\n },\n nodeProbablyIsBlockContainer: function nodeProbablyIsBlockContainer(t) {\n var n, i;\n return n = e.tagName(t), s.call(e.getBlockTagNames(), n) >= 0 && (i = e.tagName(t.firstChild), s.call(e.getBlockTagNames(), i) < 0);\n },\n nodeIsBlockStart: function nodeIsBlockStart(t, n) {\n var i;\n return i = (null != n ? n : {\n strict: !0\n }).strict, i ? e.nodeIsBlockStartComment(t) : e.nodeIsBlockStartComment(t) || !e.nodeIsBlockStartComment(t.firstChild) && e.nodeProbablyIsBlockContainer(t);\n },\n nodeIsBlockStartComment: function nodeIsBlockStartComment(t) {\n return e.nodeIsCommentNode(t) && \"block\" === (null != t ? t.data : void 0);\n },\n nodeIsCommentNode: function nodeIsCommentNode(t) {\n return (null != t ? t.nodeType : void 0) === Node.COMMENT_NODE;\n },\n nodeIsCursorTarget: function nodeIsCursorTarget(t, n) {\n var i;\n return i = (null != n ? n : {}).name, t ? e.nodeIsTextNode(t) ? t.data === e.ZERO_WIDTH_SPACE ? i ? t.parentNode.dataset.trixCursorTarget === i : !0 : void 0 : e.nodeIsCursorTarget(t.firstChild) : void 0;\n },\n nodeIsAttachmentElement: function nodeIsAttachmentElement(t) {\n return e.elementMatchesSelector(t, e.AttachmentView.attachmentSelector);\n },\n nodeIsEmptyTextNode: function nodeIsEmptyTextNode(t) {\n return e.nodeIsTextNode(t) && \"\" === (null != t ? t.data : void 0);\n },\n nodeIsTextNode: function nodeIsTextNode(t) {\n return (null != t ? t.nodeType : void 0) === Node.TEXT_NODE;\n }\n });\n }.call(this), function () {\n var t, n, i, o, r;\n t = e.copyObject, o = e.objectsAreEqual, e.extend({\n normalizeRange: i = function i(t) {\n var e;\n if (null != t) return Array.isArray(t) || (t = [t, t]), [n(t[0]), n(null != (e = t[1]) ? e : t[0])];\n },\n rangeIsCollapsed: function rangeIsCollapsed(t) {\n var e, n, o;\n if (null != t) return n = i(t), o = n[0], e = n[1], r(o, e);\n },\n rangesAreEqual: function rangesAreEqual(t, e) {\n var n, o, s, a, u, c;\n if (null != t && null != e) return s = i(t), o = s[0], n = s[1], a = i(e), c = a[0], u = a[1], r(o, c) && r(n, u);\n }\n }), n = function n(e) {\n return \"number\" == typeof e ? e : t(e);\n }, r = function r(t, e) {\n return \"number\" == typeof t ? t === e : o(t, e);\n };\n }.call(this), function () {\n var t, n, i, o, r, s, a;\n e.registerElement = function (t, e) {\n var n, i;\n return null == e && (e = {}), t = t.toLowerCase(), e = a(e), i = s(e), (n = i.defaultCSS) && (delete i.defaultCSS, o(n, t)), r(t, i);\n }, o = function o(t, e) {\n var n;\n return n = i(e), n.textContent = t.replace(/%t/g, e);\n }, i = function i(e) {\n var n, i;\n return n = document.createElement(\"style\"), n.setAttribute(\"type\", \"text/css\"), n.setAttribute(\"data-tag-name\", e.toLowerCase()), (i = t()) && n.setAttribute(\"nonce\", i), document.head.insertBefore(n, document.head.firstChild), n;\n }, t = function t() {\n var t;\n return (t = n(\"trix-csp-nonce\") || n(\"csp-nonce\")) ? t.getAttribute(\"content\") : void 0;\n }, n = function n(t) {\n return document.head.querySelector(\"meta[name=\" + t + \"]\");\n }, s = function s(t) {\n var e, n, i;\n n = {};\n for (e in t) i = t[e], n[e] = \"function\" == typeof i ? {\n value: i\n } : i;\n return n;\n }, a = function () {\n var t;\n return t = function t(_t3) {\n var e, n, i, o, r;\n for (e = {}, r = [\"initialize\", \"connect\", \"disconnect\"], n = 0, o = r.length; o > n; n++) i = r[n], e[i] = _t3[i], delete _t3[i];\n return e;\n }, window.customElements ? function (e) {\n var n, i, o, r, s;\n return s = t(e), o = s.initialize, n = s.connect, i = s.disconnect, o && (r = n, n = function n() {\n return this.initialized || (this.initialized = !0, o.call(this)), null != r ? r.call(this) : void 0;\n }), n && (e.connectedCallback = n), i && (e.disconnectedCallback = i), e;\n } : function (e) {\n var n, i, o, r;\n return r = t(e), o = r.initialize, n = r.connect, i = r.disconnect, o && (e.createdCallback = o), n && (e.attachedCallback = n), i && (e.detachedCallback = i), e;\n };\n }(), r = function () {\n return window.customElements ? function (t, e) {\n var _n2;\n return _n2 = function n() {\n return \"object\" == (typeof Reflect === \"undefined\" ? \"undefined\" : _typeof(Reflect)) ? Reflect.construct(HTMLElement, [], _n2) : HTMLElement.apply(this);\n }, Object.setPrototypeOf(_n2.prototype, HTMLElement.prototype), Object.setPrototypeOf(_n2, HTMLElement), Object.defineProperties(_n2.prototype, e), window.customElements.define(t, _n2), _n2;\n } : function (t, e) {\n var n, i;\n return i = Object.create(HTMLElement.prototype, e), n = document.registerElement(t, {\n prototype: i\n }), Object.defineProperty(i, \"constructor\", {\n value: n\n }), n;\n };\n }();\n }.call(this), function () {\n var t, n;\n e.extend({\n getDOMSelection: function getDOMSelection() {\n var t;\n return t = window.getSelection(), t.rangeCount > 0 ? t : void 0;\n },\n getDOMRange: function getDOMRange() {\n var n, i;\n return (n = null != (i = e.getDOMSelection()) ? i.getRangeAt(0) : void 0) && !t(n) ? n : void 0;\n },\n setDOMRange: function setDOMRange(t) {\n var n;\n return n = window.getSelection(), n.removeAllRanges(), n.addRange(t), e.selectionChangeObserver.update();\n }\n }), t = function t(_t4) {\n return n(_t4.startContainer) || n(_t4.endContainer);\n }, n = function n(t) {\n return !Object.getPrototypeOf(t);\n };\n }.call(this), function () {\n var t;\n t = {\n \"application/x-trix-feature-detection\": \"test\"\n }, e.extend({\n dataTransferIsPlainText: function dataTransferIsPlainText(t) {\n var e, n, i;\n return i = t.getData(\"text/plain\"), n = t.getData(\"text/html\"), i && n ? (e = new DOMParser().parseFromString(n, \"text/html\").body, e.textContent === i ? !e.querySelector(\"*\") : void 0) : null != i ? i.length : void 0;\n },\n dataTransferIsWritable: function dataTransferIsWritable(e) {\n var n, i;\n if (null != (null != e ? e.setData : void 0)) {\n for (n in t) if (i = t[n], !function () {\n try {\n return e.setData(n, i), e.getData(n) === i;\n } catch (t) {}\n }()) return;\n return !0;\n }\n },\n keyEventIsKeyboardCommand: function () {\n return /Mac|^iP/.test(navigator.platform) ? function (t) {\n return t.metaKey;\n } : function (t) {\n return t.ctrlKey;\n };\n }()\n });\n }.call(this), function () {\n e.extend({\n RTL_PATTERN: /[\\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]/,\n getDirection: function () {\n var t, n, i, o;\n return n = e.makeElement(\"input\", {\n dir: \"auto\",\n name: \"x\",\n dirName: \"x.dir\"\n }), t = e.makeElement(\"form\"), t.appendChild(n), i = function () {\n try {\n return new FormData(t).has(n.dirName);\n } catch (e) {}\n }(), o = function () {\n try {\n return n.matches(\":dir(ltr),:dir(rtl)\");\n } catch (t) {}\n }(), i ? function (e) {\n return n.value = e, new FormData(t).get(n.dirName);\n } : o ? function (t) {\n return n.value = t, n.matches(\":dir(rtl)\") ? \"rtl\" : \"ltr\";\n } : function (t) {\n var n;\n return n = t.trim().charAt(0), e.RTL_PATTERN.test(n) ? \"rtl\" : \"ltr\";\n };\n }()\n });\n }.call(this), function () {}.call(this), function () {\n var t,\n n = function n(t, e) {\n function n() {\n this.constructor = t;\n }\n for (var o in e) i.call(e, o) && (t[o] = e[o]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty;\n t = e.arraysAreEqual, e.Hash = function (i) {\n function o(t) {\n null == t && (t = {}), this.values = s(t), o.__super__.constructor.apply(this, arguments);\n }\n var r, s, a, u, c;\n return n(o, i), o.fromCommonAttributesOfObjects = function (t) {\n var e, n, i, o, s, a;\n if (null == t && (t = []), !t.length) return new this();\n for (e = r(t[0]), i = e.getKeys(), a = t.slice(1), n = 0, o = a.length; o > n; n++) s = a[n], i = e.getKeysCommonToHash(r(s)), e = e.slice(i);\n return e;\n }, o.box = function (t) {\n return r(t);\n }, o.prototype.add = function (t, e) {\n return this.merge(u(t, e));\n }, o.prototype.remove = function (t) {\n return new e.Hash(s(this.values, t));\n }, o.prototype.get = function (t) {\n return this.values[t];\n }, o.prototype.has = function (t) {\n return t in this.values;\n }, o.prototype.merge = function (t) {\n return new e.Hash(a(this.values, c(t)));\n }, o.prototype.slice = function (t) {\n var n, i, o, r;\n for (r = {}, n = 0, o = t.length; o > n; n++) i = t[n], this.has(i) && (r[i] = this.values[i]);\n return new e.Hash(r);\n }, o.prototype.getKeys = function () {\n return Object.keys(this.values);\n }, o.prototype.getKeysCommonToHash = function (t) {\n var e, n, i, o, s;\n for (t = r(t), o = this.getKeys(), s = [], e = 0, i = o.length; i > e; e++) n = o[e], this.values[n] === t.values[n] && s.push(n);\n return s;\n }, o.prototype.isEqualTo = function (e) {\n return t(this.toArray(), r(e).toArray());\n }, o.prototype.isEmpty = function () {\n return 0 === this.getKeys().length;\n }, o.prototype.toArray = function () {\n var t, e, n;\n return (null != this.array ? this.array : this.array = function () {\n var i;\n e = [], i = this.values;\n for (t in i) n = i[t], e.push(t, n);\n return e;\n }.call(this)).slice(0);\n }, o.prototype.toObject = function () {\n return s(this.values);\n }, o.prototype.toJSON = function () {\n return this.toObject();\n }, o.prototype.contentsForInspection = function () {\n return {\n values: JSON.stringify(this.values)\n };\n }, u = function u(t, e) {\n var n;\n return n = {}, n[t] = e, n;\n }, a = function a(t, e) {\n var n, i, o;\n i = s(t);\n for (n in e) o = e[n], i[n] = o;\n return i;\n }, s = function s(t, e) {\n var n, i, o, r, s;\n for (r = {}, s = Object.keys(t).sort(), n = 0, o = s.length; o > n; n++) i = s[n], i !== e && (r[i] = t[i]);\n return r;\n }, r = function r(t) {\n return t instanceof e.Hash ? t : new e.Hash(t);\n }, c = function c(t) {\n return t instanceof e.Hash ? t.values : t;\n }, o;\n }(e.Object);\n }.call(this), function () {\n e.ObjectGroup = function () {\n function t(t, e) {\n var n, i;\n this.objects = null != t ? t : [], i = e.depth, n = e.asTree, n && (this.depth = i, this.objects = this.constructor.groupObjects(this.objects, {\n asTree: n,\n depth: this.depth + 1\n }));\n }\n return t.groupObjects = function (t, e) {\n var n, i, o, r, s, a, u, c, l;\n for (null == t && (t = []), l = null != e ? e : {}, o = l.depth, n = l.asTree, n && null == o && (o = 0), c = [], s = 0, a = t.length; a > s; s++) {\n if (u = t[s], r) {\n if ((\"function\" == typeof u.canBeGrouped ? u.canBeGrouped(o) : void 0) && (\"function\" == typeof (i = r[r.length - 1]).canBeGroupedWith ? i.canBeGroupedWith(u, o) : void 0)) {\n r.push(u);\n continue;\n }\n c.push(new this(r, {\n depth: o,\n asTree: n\n })), r = null;\n }\n (\"function\" == typeof u.canBeGrouped ? u.canBeGrouped(o) : void 0) ? r = [u] : c.push(u);\n }\n return r && c.push(new this(r, {\n depth: o,\n asTree: n\n })), c;\n }, t.prototype.getObjects = function () {\n return this.objects;\n }, t.prototype.getDepth = function () {\n return this.depth;\n }, t.prototype.getCacheKey = function () {\n var t, e, n, i, o;\n for (e = [\"objectGroup\"], o = this.getObjects(), t = 0, n = o.length; n > t; t++) i = o[t], e.push(i.getCacheKey());\n return e.join(\"/\");\n }, t;\n }();\n }.call(this), function () {\n var t = function t(_t5, e) {\n function i() {\n this.constructor = _t5;\n }\n for (var o in e) n.call(e, o) && (_t5[o] = e[o]);\n return i.prototype = e.prototype, _t5.prototype = new i(), _t5.__super__ = e.prototype, _t5;\n },\n n = {}.hasOwnProperty;\n e.ObjectMap = function (e) {\n function n(t) {\n var e, n, i, o, r;\n for (null == t && (t = []), this.objects = {}, i = 0, o = t.length; o > i; i++) r = t[i], n = JSON.stringify(r), null == (e = this.objects)[n] && (e[n] = r);\n }\n return t(n, e), n.prototype.find = function (t) {\n var e;\n return e = JSON.stringify(t), this.objects[e];\n }, n;\n }(e.BasicObject);\n }.call(this), function () {\n e.ElementStore = function () {\n function t(t) {\n this.reset(t);\n }\n var e;\n return t.prototype.add = function (t) {\n var n;\n return n = e(t), this.elements[n] = t;\n }, t.prototype.remove = function (t) {\n var n, i;\n return n = e(t), (i = this.elements[n]) ? (delete this.elements[n], i) : void 0;\n }, t.prototype.reset = function (t) {\n var e, n, i;\n for (null == t && (t = []), this.elements = {}, n = 0, i = t.length; i > n; n++) e = t[n], this.add(e);\n return t;\n }, e = function e(t) {\n return t.dataset.trixStoreKey;\n }, t;\n }();\n }.call(this), function () {}.call(this), function () {\n var t = function t(_t6, e) {\n function i() {\n this.constructor = _t6;\n }\n for (var o in e) n.call(e, o) && (_t6[o] = e[o]);\n return i.prototype = e.prototype, _t6.prototype = new i(), _t6.__super__ = e.prototype, _t6;\n },\n n = {}.hasOwnProperty;\n e.Operation = function (e) {\n function n() {\n return n.__super__.constructor.apply(this, arguments);\n }\n return t(n, e), n.prototype.isPerforming = function () {\n return this.performing === !0;\n }, n.prototype.hasPerformed = function () {\n return this.performed === !0;\n }, n.prototype.hasSucceeded = function () {\n return this.performed && this.succeeded;\n }, n.prototype.hasFailed = function () {\n return this.performed && !this.succeeded;\n }, n.prototype.getPromise = function () {\n return null != this.promise ? this.promise : this.promise = new Promise(function (t) {\n return function (e, n) {\n return t.performing = !0, t.perform(function (i, o) {\n return t.succeeded = i, t.performing = !1, t.performed = !0, t.succeeded ? e(o) : n(o);\n });\n };\n }(this));\n }, n.prototype.perform = function (t) {\n return t(!1);\n }, n.prototype.release = function () {\n var t;\n return null != (t = this.promise) && \"function\" == typeof t.cancel && t.cancel(), this.promise = null, this.performing = null, this.performed = null, this.succeeded = null;\n }, n.proxyMethod(\"getPromise().then\"), n.proxyMethod(\"getPromise().catch\"), n;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s = function s(t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) a.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n a = {}.hasOwnProperty;\n e.UTF16String = function (t) {\n function e(t, e) {\n this.ucs2String = t, this.codepoints = e, this.length = this.codepoints.length, this.ucs2Length = this.ucs2String.length;\n }\n return s(e, t), e.box = function (t) {\n return null == t && (t = \"\"), t instanceof this ? t : this.fromUCS2String(null != t ? t.toString() : void 0);\n }, e.fromUCS2String = function (t) {\n return new this(t, o(t));\n }, e.fromCodepoints = function (t) {\n return new this(r(t), t);\n }, e.prototype.offsetToUCS2Offset = function (t) {\n return r(this.codepoints.slice(0, Math.max(0, t))).length;\n }, e.prototype.offsetFromUCS2Offset = function (t) {\n return o(this.ucs2String.slice(0, Math.max(0, t))).length;\n }, e.prototype.slice = function () {\n var t;\n return this.constructor.fromCodepoints((t = this.codepoints).slice.apply(t, arguments));\n }, e.prototype.charAt = function (t) {\n return this.slice(t, t + 1);\n }, e.prototype.isEqualTo = function (t) {\n return this.constructor.box(t).ucs2String === this.ucs2String;\n }, e.prototype.toJSON = function () {\n return this.ucs2String;\n }, e.prototype.getCacheKey = function () {\n return this.ucs2String;\n }, e.prototype.toString = function () {\n return this.ucs2String;\n }, e;\n }(e.BasicObject), t = 1 === (\"function\" == typeof Array.from ? Array.from(\"\\uD83D\\uDC7C\").length : void 0), n = null != (\"function\" == typeof \" \".codePointAt ? \" \".codePointAt(0) : void 0), i = \" \\uD83D\\uDC7C\" === (\"function\" == typeof String.fromCodePoint ? String.fromCodePoint(32, 128124) : void 0), o = t && n ? function (t) {\n return Array.from(t).map(function (t) {\n return t.codePointAt(0);\n });\n } : function (t) {\n var e, n, i, o, r;\n for (o = [], e = 0, i = t.length; i > e;) r = t.charCodeAt(e++), r >= 55296 && 56319 >= r && i > e && (n = t.charCodeAt(e++), 56320 === (64512 & n) ? r = ((1023 & r) << 10) + (1023 & n) + 65536 : e--), o.push(r);\n return o;\n }, r = i ? function (t) {\n return String.fromCodePoint.apply(String, t);\n } : function (t) {\n var e, n, i;\n return e = function () {\n var e, o, r;\n for (r = [], e = 0, o = t.length; o > e; e++) i = t[e], n = \"\", i > 65535 && (i -= 65536, n += String.fromCharCode(i >>> 10 & 1023 | 55296), i = 56320 | 1023 & i), r.push(n + String.fromCharCode(i));\n return r;\n }(), e.join(\"\");\n };\n }.call(this), function () {}.call(this), function () {}.call(this), function () {\n e.config.lang = {\n attachFiles: \"Attach Files\",\n bold: \"Bold\",\n bullets: \"Bullets\",\n \"byte\": \"Byte\",\n bytes: \"Bytes\",\n captionPlaceholder: \"Add a caption\\u2026\",\n code: \"Code\",\n heading1: \"Heading\",\n indent: \"Increase Level\",\n italic: \"Italic\",\n link: \"Link\",\n numbers: \"Numbers\",\n outdent: \"Decrease Level\",\n quote: \"Quote\",\n redo: \"Redo\",\n remove: \"Remove\",\n strike: \"Strikethrough\",\n undo: \"Undo\",\n unlink: \"Unlink\",\n url: \"URL\",\n urlPlaceholder: \"Enter a URL\\u2026\",\n GB: \"GB\",\n KB: \"KB\",\n MB: \"MB\",\n PB: \"PB\",\n TB: \"TB\"\n };\n }.call(this), function () {\n e.config.css = {\n attachment: \"attachment\",\n attachmentCaption: \"attachment__caption\",\n attachmentCaptionEditor: \"attachment__caption-editor\",\n attachmentMetadata: \"attachment__metadata\",\n attachmentMetadataContainer: \"attachment__metadata-container\",\n attachmentName: \"attachment__name\",\n attachmentProgress: \"attachment__progress\",\n attachmentSize: \"attachment__size\",\n attachmentToolbar: \"attachment__toolbar\",\n attachmentGallery: \"attachment-gallery\"\n };\n }.call(this), function () {\n var t;\n e.config.blockAttributes = t = {\n \"default\": {\n tagName: \"div\",\n parse: !1\n },\n quote: {\n tagName: \"blockquote\",\n nestable: !0\n },\n heading1: {\n tagName: \"h1\",\n terminal: !0,\n breakOnReturn: !0,\n group: !1\n },\n code: {\n tagName: \"pre\",\n terminal: !0,\n text: {\n plaintext: !0\n }\n },\n bulletList: {\n tagName: \"ul\",\n parse: !1\n },\n bullet: {\n tagName: \"li\",\n listAttribute: \"bulletList\",\n group: !1,\n nestable: !0,\n test: function test(n) {\n return e.tagName(n.parentNode) === t[this.listAttribute].tagName;\n }\n },\n numberList: {\n tagName: \"ol\",\n parse: !1\n },\n number: {\n tagName: \"li\",\n listAttribute: \"numberList\",\n group: !1,\n nestable: !0,\n test: function test(n) {\n return e.tagName(n.parentNode) === t[this.listAttribute].tagName;\n }\n },\n attachmentGallery: {\n tagName: \"div\",\n exclusive: !0,\n terminal: !0,\n parse: !1,\n group: !1\n }\n };\n }.call(this), function () {\n var t, n;\n t = e.config.lang, n = [t.bytes, t.KB, t.MB, t.GB, t.TB, t.PB], e.config.fileSize = {\n prefix: \"IEC\",\n precision: 2,\n formatter: function formatter(e) {\n var i, o, r, s, a;\n switch (e) {\n case 0:\n return \"0 \" + t.bytes;\n case 1:\n return \"1 \" + t[\"byte\"];\n default:\n return i = function () {\n switch (this.prefix) {\n case \"SI\":\n return 1e3;\n case \"IEC\":\n return 1024;\n }\n }.call(this), o = Math.floor(Math.log(e) / Math.log(i)), r = e / Math.pow(i, o), s = r.toFixed(this.precision), a = s.replace(/0*$/, \"\").replace(/\\.$/, \"\"), a + \" \" + n[o];\n }\n }\n };\n }.call(this), function () {\n e.config.textAttributes = {\n bold: {\n tagName: \"strong\",\n inheritable: !0,\n parser: function parser(t) {\n var e;\n return e = window.getComputedStyle(t), \"bold\" === e.fontWeight || e.fontWeight >= 600;\n }\n },\n italic: {\n tagName: \"em\",\n inheritable: !0,\n parser: function parser(t) {\n var e;\n return e = window.getComputedStyle(t), \"italic\" === e.fontStyle;\n }\n },\n href: {\n groupTagName: \"a\",\n parser: function parser(t) {\n var n, i, o;\n return n = e.AttachmentView.attachmentSelector, o = \"a:not(\" + n + \")\", (i = e.findClosestElementFromNode(t, {\n matchingSelector: o\n })) ? i.getAttribute(\"href\") : void 0;\n }\n },\n strike: {\n tagName: \"del\",\n inheritable: !0\n },\n frozen: {\n style: {\n backgroundColor: \"highlight\"\n }\n }\n };\n }.call(this), function () {\n var t, n, i, o, r;\n r = \"[data-trix-serialize=false]\", o = [\"contenteditable\", \"data-trix-id\", \"data-trix-store-key\", \"data-trix-mutable\", \"data-trix-placeholder\", \"tabindex\"], n = \"data-trix-serialized-attributes\", i = \"[\" + n + \"]\", t = new RegExp(\"\", \"g\"), e.extend({\n serializers: {\n \"application/json\": function application_json(t) {\n var n;\n if (t instanceof e.Document) n = t;else {\n if (!(t instanceof HTMLElement)) throw new Error(\"unserializable object\");\n n = e.Document.fromHTML(t.innerHTML);\n }\n return n.toSerializableDocument().toJSONString();\n },\n \"text/html\": function text_html(s) {\n var a, u, c, l, h, p, d, f, g, m, v, y, b, A, C, x, w;\n if (s instanceof e.Document) l = e.DocumentView.render(s);else {\n if (!(s instanceof HTMLElement)) throw new Error(\"unserializable object\");\n l = s.cloneNode(!0);\n }\n for (A = l.querySelectorAll(r), h = 0, g = A.length; g > h; h++) c = A[h], e.removeNode(c);\n for (p = 0, m = o.length; m > p; p++) for (a = o[p], C = l.querySelectorAll(\"[\" + a + \"]\"), d = 0, v = C.length; v > d; d++) c = C[d], c.removeAttribute(a);\n for (x = l.querySelectorAll(i), f = 0, y = x.length; y > f; f++) {\n c = x[f];\n try {\n u = JSON.parse(c.getAttribute(n)), c.removeAttribute(n);\n for (b in u) w = u[b], c.setAttribute(b, w);\n } catch (E) {}\n }\n return l.innerHTML.replace(t, \"\");\n }\n },\n deserializers: {\n \"application/json\": function application_json(t) {\n return e.Document.fromJSONString(t);\n },\n \"text/html\": function text_html(t) {\n return e.Document.fromHTML(t);\n }\n },\n serializeToContentType: function serializeToContentType(t, n) {\n var i;\n if (i = e.serializers[n]) return i(t);\n throw new Error(\"unknown content type: \" + n);\n },\n deserializeFromContentType: function deserializeFromContentType(t, n) {\n var i;\n if (i = e.deserializers[n]) return i(t);\n throw new Error(\"unknown content type: \" + n);\n }\n });\n }.call(this), function () {\n var t;\n t = e.config.lang, e.config.toolbar = {\n getDefaultHTML: function getDefaultHTML() {\n return '
\\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n\\n \\n\\n \\n \\n \\n \\n
\\n\\n
\\n
\\n \\n
\\n
';\n }\n };\n }.call(this), function () {\n e.config.undoInterval = 5e3;\n }.call(this), function () {\n e.config.attachments = {\n preview: {\n presentation: \"gallery\",\n caption: {\n name: !0,\n size: !0\n }\n },\n file: {\n caption: {\n size: !0\n }\n }\n };\n }.call(this), function () {\n e.config.keyNames = {\n 8: \"backspace\",\n 9: \"tab\",\n 13: \"return\",\n 27: \"escape\",\n 37: \"left\",\n 39: \"right\",\n 46: \"delete\",\n 68: \"d\",\n 72: \"h\",\n 79: \"o\"\n };\n }.call(this), function () {\n e.config.input = {\n level2Enabled: !0,\n getLevel: function getLevel() {\n return this.level2Enabled && e.browser.supportsInputEvents ? 2 : 0;\n },\n pickFiles: function pickFiles(t) {\n var n;\n return n = e.makeElement(\"input\", {\n type: \"file\",\n multiple: !0,\n hidden: !0,\n id: this.fileInputId\n }), n.addEventListener(\"change\", function () {\n return t(n.files), e.removeNode(n);\n }), e.removeNode(document.getElementById(this.fileInputId)), document.body.appendChild(n), n.click();\n },\n fileInputId: \"trix-file-input-\" + Date.now().toString(16)\n };\n }.call(this), function () {}.call(this), function () {\n e.registerElement(\"trix-toolbar\", {\n defaultCSS: \"%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}\",\n initialize: function initialize() {\n return \"\" === this.innerHTML ? this.innerHTML = e.config.toolbar.getDefaultHTML() : void 0;\n }\n });\n }.call(this), function () {\n var t = function t(_t7, e) {\n function i() {\n this.constructor = _t7;\n }\n for (var o in e) n.call(e, o) && (_t7[o] = e[o]);\n return i.prototype = e.prototype, _t7.prototype = new i(), _t7.__super__ = e.prototype, _t7;\n },\n n = {}.hasOwnProperty,\n i = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n return -1;\n };\n e.ObjectView = function (n) {\n function o(t, e) {\n this.object = t, this.options = null != e ? e : {}, this.childViews = [], this.rootView = this;\n }\n return t(o, n), o.prototype.getNodes = function () {\n var t, e, n, i, o;\n for (null == this.nodes && (this.nodes = this.createNodes()), i = this.nodes, o = [], t = 0, e = i.length; e > t; t++) n = i[t], o.push(n.cloneNode(!0));\n return o;\n }, o.prototype.invalidate = function () {\n var t;\n return this.nodes = null, this.childViews = [], null != (t = this.parentView) ? t.invalidate() : void 0;\n }, o.prototype.invalidateViewForObject = function (t) {\n var e;\n return null != (e = this.findViewForObject(t)) ? e.invalidate() : void 0;\n }, o.prototype.findOrCreateCachedChildView = function (t, e) {\n var n;\n return (n = this.getCachedViewForObject(e)) ? this.recordChildView(n) : (n = this.createChildView.apply(this, arguments), this.cacheViewForObject(n, e)), n;\n }, o.prototype.createChildView = function (t, n, i) {\n var o;\n return null == i && (i = {}), n instanceof e.ObjectGroup && (i.viewClass = t, t = e.ObjectGroupView), o = new t(n, i), this.recordChildView(o);\n }, o.prototype.recordChildView = function (t) {\n return t.parentView = this, t.rootView = this.rootView, this.childViews.push(t), t;\n }, o.prototype.getAllChildViews = function () {\n var t, e, n, i, o;\n for (o = [], i = this.childViews, e = 0, n = i.length; n > e; e++) t = i[e], o.push(t), o = o.concat(t.getAllChildViews());\n return o;\n }, o.prototype.findElement = function () {\n return this.findElementForObject(this.object);\n }, o.prototype.findElementForObject = function (t) {\n var e;\n return (e = null != t ? t.id : void 0) ? this.rootView.element.querySelector(\"[data-trix-id='\" + e + \"']\") : void 0;\n }, o.prototype.findViewForObject = function (t) {\n var e, n, i, o;\n for (i = this.getAllChildViews(), e = 0, n = i.length; n > e; e++) if (o = i[e], o.object === t) return o;\n }, o.prototype.getViewCache = function () {\n return this.rootView !== this ? this.rootView.getViewCache() : this.isViewCachingEnabled() ? null != this.viewCache ? this.viewCache : this.viewCache = {} : void 0;\n }, o.prototype.isViewCachingEnabled = function () {\n return this.shouldCacheViews !== !1;\n }, o.prototype.enableViewCaching = function () {\n return this.shouldCacheViews = !0;\n }, o.prototype.disableViewCaching = function () {\n return this.shouldCacheViews = !1;\n }, o.prototype.getCachedViewForObject = function (t) {\n var e;\n return null != (e = this.getViewCache()) ? e[t.getCacheKey()] : void 0;\n }, o.prototype.cacheViewForObject = function (t, e) {\n var n;\n return null != (n = this.getViewCache()) ? n[e.getCacheKey()] = t : void 0;\n }, o.prototype.garbageCollectCachedViews = function () {\n var t, e, n, o, r, s;\n if (t = this.getViewCache()) {\n s = this.getAllChildViews().concat(this), n = function () {\n var t, e, n;\n for (n = [], t = 0, e = s.length; e > t; t++) r = s[t], n.push(r.object.getCacheKey());\n return n;\n }(), o = [];\n for (e in t) i.call(n, e) < 0 && o.push(delete t[e]);\n return o;\n }\n }, o;\n }(e.BasicObject);\n }.call(this), function () {\n var t = function t(_t8, e) {\n function i() {\n this.constructor = _t8;\n }\n for (var o in e) n.call(e, o) && (_t8[o] = e[o]);\n return i.prototype = e.prototype, _t8.prototype = new i(), _t8.__super__ = e.prototype, _t8;\n },\n n = {}.hasOwnProperty;\n e.ObjectGroupView = function (e) {\n function n() {\n n.__super__.constructor.apply(this, arguments), this.objectGroup = this.object, this.viewClass = this.options.viewClass, delete this.options.viewClass;\n }\n return t(n, e), n.prototype.getChildViews = function () {\n var t, e, n, i;\n if (!this.childViews.length) for (i = this.objectGroup.getObjects(), t = 0, e = i.length; e > t; t++) n = i[t], this.findOrCreateCachedChildView(this.viewClass, n, this.options);\n return this.childViews;\n }, n.prototype.createNodes = function () {\n var t, e, n, i, o, r, s, a, u;\n for (t = this.createContainerElement(), s = this.getChildViews(), e = 0, i = s.length; i > e; e++) for (u = s[e], a = u.getNodes(), n = 0, o = a.length; o > n; n++) r = a[n], t.appendChild(r);\n return [t];\n }, n.prototype.createContainerElement = function (t) {\n return null == t && (t = this.objectGroup.getDepth()), this.getChildViews()[0].createContainerElement(t);\n }, n;\n }(e.ObjectView);\n }.call(this), function () {\n var t = function t(_t9, e) {\n function i() {\n this.constructor = _t9;\n }\n for (var o in e) n.call(e, o) && (_t9[o] = e[o]);\n return i.prototype = e.prototype, _t9.prototype = new i(), _t9.__super__ = e.prototype, _t9;\n },\n n = {}.hasOwnProperty;\n e.Controller = function (e) {\n function n() {\n return n.__super__.constructor.apply(this, arguments);\n }\n return t(n, e), n;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a = function a(t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n u = function u(t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) c.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n c = {}.hasOwnProperty,\n l = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n return -1;\n };\n t = e.findClosestElementFromNode, i = e.nodeIsEmptyTextNode, n = e.nodeIsBlockStartComment, o = e.normalizeSpaces, r = e.summarizeStringChange, s = e.tagName, e.MutationObserver = function (e) {\n function c(t) {\n this.element = t, this.didMutate = a(this.didMutate, this), this.observer = new window.MutationObserver(this.didMutate), this.start();\n }\n var _h, p, d, f;\n return u(c, e), p = \"data-trix-mutable\", d = \"[\" + p + \"]\", f = {\n attributes: !0,\n childList: !0,\n characterData: !0,\n characterDataOldValue: !0,\n subtree: !0\n }, c.prototype.start = function () {\n return this.reset(), this.observer.observe(this.element, f);\n }, c.prototype.stop = function () {\n return this.observer.disconnect();\n }, c.prototype.didMutate = function (t) {\n var e, n;\n return (e = this.mutations).push.apply(e, this.findSignificantMutations(t)), this.mutations.length ? (null != (n = this.delegate) && \"function\" == typeof n.elementDidMutate && n.elementDidMutate(this.getMutationSummary()), this.reset()) : void 0;\n }, c.prototype.reset = function () {\n return this.mutations = [];\n }, c.prototype.findSignificantMutations = function (t) {\n var e, n, i, o;\n for (o = [], e = 0, n = t.length; n > e; e++) i = t[e], this.mutationIsSignificant(i) && o.push(i);\n return o;\n }, c.prototype.mutationIsSignificant = function (t) {\n var e, n, i, o;\n if (this.nodeIsMutable(t.target)) return !1;\n for (o = this.nodesModifiedByMutation(t), e = 0, n = o.length; n > e; e++) if (i = o[e], this.nodeIsSignificant(i)) return !0;\n return !1;\n }, c.prototype.nodeIsSignificant = function (t) {\n return t !== this.element && !this.nodeIsMutable(t) && !i(t);\n }, c.prototype.nodeIsMutable = function (e) {\n return t(e, {\n matchingSelector: d\n });\n }, c.prototype.nodesModifiedByMutation = function (t) {\n var e;\n switch (e = [], t.type) {\n case \"attributes\":\n t.attributeName !== p && e.push(t.target);\n break;\n case \"characterData\":\n e.push(t.target.parentNode), e.push(t.target);\n break;\n case \"childList\":\n e.push.apply(e, t.addedNodes), e.push.apply(e, t.removedNodes);\n }\n return e;\n }, c.prototype.getMutationSummary = function () {\n return this.getTextMutationSummary();\n }, c.prototype.getTextMutationSummary = function () {\n var t, e, n, i, o, r, s, a, u, c, h;\n for (a = this.getTextChangesFromCharacterData(), n = a.additions, o = a.deletions, h = this.getTextChangesFromChildList(), u = h.additions, r = 0, s = u.length; s > r; r++) e = u[r], l.call(n, e) < 0 && n.push(e);\n return o.push.apply(o, h.deletions), c = {}, (t = n.join(\"\")) && (c.textAdded = t), (i = o.join(\"\")) && (c.textDeleted = i), c;\n }, c.prototype.getMutationsByType = function (t) {\n var e, n, i, o, r;\n for (o = this.mutations, r = [], e = 0, n = o.length; n > e; e++) i = o[e], i.type === t && r.push(i);\n return r;\n }, c.prototype.getTextChangesFromChildList = function () {\n var t, e, i, r, s, a, u, c, l, p, d;\n for (t = [], u = [], a = this.getMutationsByType(\"childList\"), e = 0, r = a.length; r > e; e++) s = a[e], t.push.apply(t, s.addedNodes), u.push.apply(u, s.removedNodes);\n return c = 0 === t.length && 1 === u.length && n(u[0]), c ? (p = [], d = [\"\\n\"]) : (p = _h(t), d = _h(u)), {\n additions: function () {\n var t, e, n;\n for (n = [], i = t = 0, e = p.length; e > t; i = ++t) l = p[i], l !== d[i] && n.push(o(l));\n return n;\n }(),\n deletions: function () {\n var t, e, n;\n for (n = [], i = t = 0, e = d.length; e > t; i = ++t) l = d[i], l !== p[i] && n.push(o(l));\n return n;\n }()\n };\n }, c.prototype.getTextChangesFromCharacterData = function () {\n var t, e, n, i, s, a, u, c;\n return e = this.getMutationsByType(\"characterData\"), e.length && (c = e[0], n = e[e.length - 1], s = o(c.oldValue), i = o(n.target.data), a = r(s, i), t = a.added, u = a.removed), {\n additions: t ? [t] : [],\n deletions: u ? [u] : []\n };\n }, _h = function h(t) {\n var e, n, i, o;\n for (null == t && (t = []), o = [], e = 0, n = t.length; n > e; e++) switch (i = t[e], i.nodeType) {\n case Node.TEXT_NODE:\n o.push(i.data);\n break;\n case Node.ELEMENT_NODE:\n \"br\" === s(i) ? o.push(\"\\n\") : o.push.apply(o, _h(i.childNodes));\n }\n return o;\n }, c;\n }(e.BasicObject);\n }.call(this), function () {\n var t = function t(_t10, e) {\n function i() {\n this.constructor = _t10;\n }\n for (var o in e) n.call(e, o) && (_t10[o] = e[o]);\n return i.prototype = e.prototype, _t10.prototype = new i(), _t10.__super__ = e.prototype, _t10;\n },\n n = {}.hasOwnProperty;\n e.FileVerificationOperation = function (e) {\n function n(t) {\n this.file = t;\n }\n return t(n, e), n.prototype.perform = function (t) {\n var e;\n return e = new FileReader(), e.onerror = function () {\n return t(!1);\n }, e.onload = function (n) {\n return function () {\n e.onerror = null;\n try {\n e.abort();\n } catch (i) {}\n return t(!0, n.file);\n };\n }(this), e.readAsArrayBuffer(this.file);\n }, n;\n }(e.Operation);\n }.call(this), function () {\n var t,\n n,\n i = function i(t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) o.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n o = {}.hasOwnProperty;\n t = e.handleEvent, n = e.innerElementIsActive, e.InputController = function (o) {\n function r(n) {\n var i;\n this.element = n, this.mutationObserver = new e.MutationObserver(this.element), this.mutationObserver.delegate = this;\n for (i in this.events) t(i, {\n onElement: this.element,\n withCallback: this.handlerFor(i)\n });\n }\n return i(r, o), r.prototype.events = {}, r.prototype.elementDidMutate = function () {}, r.prototype.editorWillSyncDocumentView = function () {\n return this.mutationObserver.stop();\n }, r.prototype.editorDidSyncDocumentView = function () {\n return this.mutationObserver.start();\n }, r.prototype.requestRender = function () {\n var t;\n return null != (t = this.delegate) && \"function\" == typeof t.inputControllerDidRequestRender ? t.inputControllerDidRequestRender() : void 0;\n }, r.prototype.requestReparse = function () {\n var t;\n return null != (t = this.delegate) && \"function\" == typeof t.inputControllerDidRequestReparse && t.inputControllerDidRequestReparse(), this.requestRender();\n }, r.prototype.attachFiles = function (t) {\n var n, i;\n return i = function () {\n var i, o, r;\n for (r = [], i = 0, o = t.length; o > i; i++) n = t[i], r.push(new e.FileVerificationOperation(n));\n return r;\n }(), Promise.all(i).then(function (t) {\n return function (e) {\n return t.handleInput(function () {\n var t, n;\n return null != (t = this.delegate) && t.inputControllerWillAttachFiles(), null != (n = this.responder) && n.insertFiles(e), this.requestRender();\n });\n };\n }(this));\n }, r.prototype.handlerFor = function (t) {\n return function (e) {\n return function (i) {\n return i.defaultPrevented ? void 0 : e.handleInput(function () {\n return n(this.element) ? void 0 : (this.eventName = t, this.events[t].call(this, i));\n });\n };\n }(this);\n }, r.prototype.handleInput = function (t) {\n var e, n;\n try {\n return null != (e = this.delegate) && e.inputControllerWillHandleInput(), t.call(this);\n } finally {\n null != (n = this.delegate) && n.inputControllerDidHandleInput();\n }\n }, r.prototype.createLinkHTML = function (t, e) {\n var n;\n return n = document.createElement(\"a\"), n.href = t, n.textContent = null != e ? e : t, n.outerHTML;\n }, r;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a,\n u,\n c,\n l,\n h,\n p,\n d,\n f = function f(t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) g.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n g = {}.hasOwnProperty,\n m = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n return -1;\n };\n c = e.makeElement, l = e.objectsAreEqual, d = e.tagName, n = e.browser, a = e.keyEventIsKeyboardCommand, o = e.dataTransferIsWritable, i = e.dataTransferIsPlainText, u = e.config.keyNames, e.Level0InputController = function (n) {\n function s() {\n s.__super__.constructor.apply(this, arguments), this.resetInputSummary();\n }\n var d;\n return f(s, n), d = 0, s.prototype.setInputSummary = function (t) {\n var e, n;\n null == t && (t = {}), this.inputSummary.eventName = this.eventName;\n for (e in t) n = t[e], this.inputSummary[e] = n;\n return this.inputSummary;\n }, s.prototype.resetInputSummary = function () {\n return this.inputSummary = {};\n }, s.prototype.reset = function () {\n return this.resetInputSummary(), e.selectionChangeObserver.reset();\n }, s.prototype.elementDidMutate = function (t) {\n var e;\n return this.isComposing() ? null != (e = this.delegate) && \"function\" == typeof e.inputControllerDidAllowUnhandledInput ? e.inputControllerDidAllowUnhandledInput() : void 0 : this.handleInput(function () {\n return this.mutationIsSignificant(t) && (this.mutationIsExpected(t) ? this.requestRender() : this.requestReparse()), this.reset();\n });\n }, s.prototype.mutationIsExpected = function (t) {\n var e, n, i, o, r, s, a, u, c, l;\n return a = t.textAdded, u = t.textDeleted, this.inputSummary.preferDocument ? !0 : (e = null != a ? a === this.inputSummary.textAdded : !this.inputSummary.textAdded, n = null != u ? this.inputSummary.didDelete : !this.inputSummary.didDelete, c = (\"\\n\" === a || \" \\n\" === a) && !e, l = \"\\n\" === u && !n, s = c && !l || l && !c, s && (o = this.getSelectedRange()) && (i = c ? a.replace(/\\n$/, \"\").length || -1 : (null != a ? a.length : void 0) || 1, null != (r = this.responder) ? r.positionIsBlockBreak(o[1] + i) : void 0) ? !0 : e && n);\n }, s.prototype.mutationIsSignificant = function (t) {\n var e, n, i;\n return i = Object.keys(t).length > 0, e = \"\" === (null != (n = this.compositionInput) ? n.getEndData() : void 0), i || !e;\n }, s.prototype.events = {\n keydown: function keydown(t) {\n var n, i, o, r, s, c, l, h, p;\n if (this.isComposing() || this.resetInputSummary(), this.inputSummary.didInput = !0, r = u[t.keyCode]) {\n for (i = this.keys, h = [\"ctrl\", \"alt\", \"shift\", \"meta\"], o = 0, c = h.length; c > o; o++) l = h[o], t[l + \"Key\"] && (\"ctrl\" === l && (l = \"control\"), i = null != i ? i[l] : void 0);\n null != (null != i ? i[r] : void 0) && (this.setInputSummary({\n keyName: r\n }), e.selectionChangeObserver.reset(), i[r].call(this, t));\n }\n return a(t) && (n = String.fromCharCode(t.keyCode).toLowerCase()) && (s = function () {\n var e, n, i, o;\n for (i = [\"alt\", \"shift\"], o = [], e = 0, n = i.length; n > e; e++) l = i[e], t[l + \"Key\"] && o.push(l);\n return o;\n }(), s.push(n), null != (p = this.delegate) ? p.inputControllerDidReceiveKeyboardCommand(s) : void 0) ? t.preventDefault() : void 0;\n },\n keypress: function keypress(t) {\n var e, n, i;\n if (null == this.inputSummary.eventName && !t.metaKey && (!t.ctrlKey || t.altKey)) return (i = p(t)) ? (null != (e = this.delegate) && e.inputControllerWillPerformTyping(), null != (n = this.responder) && n.insertString(i), this.setInputSummary({\n textAdded: i,\n didDelete: this.selectionIsExpanded()\n })) : void 0;\n },\n textInput: function textInput(t) {\n var e, n, i, o;\n return e = t.data, o = this.inputSummary.textAdded, o && o !== e && o.toUpperCase() === e ? (n = this.getSelectedRange(), this.setSelectedRange([n[0], n[1] + o.length]), null != (i = this.responder) && i.insertString(e), this.setInputSummary({\n textAdded: e\n }), this.setSelectedRange(n)) : void 0;\n },\n dragenter: function dragenter(t) {\n return t.preventDefault();\n },\n dragstart: function dragstart(t) {\n var e, n;\n return n = t.target, this.serializeSelectionToDataTransfer(t.dataTransfer), this.draggedRange = this.getSelectedRange(), null != (e = this.delegate) && \"function\" == typeof e.inputControllerDidStartDrag ? e.inputControllerDidStartDrag() : void 0;\n },\n dragover: function dragover(t) {\n var e, n;\n return !this.draggedRange && !this.canAcceptDataTransfer(t.dataTransfer) || (t.preventDefault(), e = {\n x: t.clientX,\n y: t.clientY\n }, l(e, this.draggingPoint)) ? void 0 : (this.draggingPoint = e, null != (n = this.delegate) && \"function\" == typeof n.inputControllerDidReceiveDragOverPoint ? n.inputControllerDidReceiveDragOverPoint(this.draggingPoint) : void 0);\n },\n dragend: function dragend() {\n var t;\n return null != (t = this.delegate) && \"function\" == typeof t.inputControllerDidCancelDrag && t.inputControllerDidCancelDrag(), this.draggedRange = null, this.draggingPoint = null;\n },\n drop: function drop(t) {\n var n, i, o, r, s, a, u, c, l;\n return t.preventDefault(), o = null != (s = t.dataTransfer) ? s.files : void 0, r = {\n x: t.clientX,\n y: t.clientY\n }, null != (a = this.responder) && a.setLocationRangeFromPointRange(r), (null != o ? o.length : void 0) ? this.attachFiles(o) : this.draggedRange ? (null != (u = this.delegate) && u.inputControllerWillMoveText(), null != (c = this.responder) && c.moveTextFromRange(this.draggedRange), this.draggedRange = null, this.requestRender()) : (i = t.dataTransfer.getData(\"application/x-trix-document\")) && (n = e.Document.fromJSONString(i), null != (l = this.responder) && l.insertDocument(n), this.requestRender()), this.draggedRange = null, this.draggingPoint = null;\n },\n cut: function cut(t) {\n var e, n;\n return (null != (e = this.responder) ? e.selectionIsExpanded() : void 0) && (this.serializeSelectionToDataTransfer(t.clipboardData) && t.preventDefault(), null != (n = this.delegate) && n.inputControllerWillCutText(), this.deleteInDirection(\"backward\"), t.defaultPrevented) ? this.requestRender() : void 0;\n },\n copy: function copy(t) {\n var e;\n return (null != (e = this.responder) ? e.selectionIsExpanded() : void 0) && this.serializeSelectionToDataTransfer(t.clipboardData) ? t.preventDefault() : void 0;\n },\n paste: function paste(t) {\n var n, o, s, a, u, c, l, p, f, g, v, y, b, A, C, x, w, E, S, R, k, D, L;\n return n = null != (p = t.clipboardData) ? p : t.testClipboardData, l = {\n clipboard: n\n }, null == n || h(t) ? void this.getPastedHTMLUsingHiddenElement(function (t) {\n return function (e) {\n var n, i, o;\n return l.type = \"text/html\", l.html = e, null != (n = t.delegate) && n.inputControllerWillPaste(l), null != (i = t.responder) && i.insertHTML(l.html), t.requestRender(), null != (o = t.delegate) ? o.inputControllerDidPaste(l) : void 0;\n };\n }(this)) : ((a = n.getData(\"URL\")) ? (l.type = \"text/html\", L = (c = n.getData(\"public.url-name\")) ? e.squishBreakableWhitespace(c).trim() : a, l.html = this.createLinkHTML(a, L), null != (f = this.delegate) && f.inputControllerWillPaste(l), this.setInputSummary({\n textAdded: L,\n didDelete: this.selectionIsExpanded()\n }), null != (C = this.responder) && C.insertHTML(l.html), this.requestRender(), null != (x = this.delegate) && x.inputControllerDidPaste(l)) : i(n) ? (l.type = \"text/plain\", l.string = n.getData(\"text/plain\"), null != (w = this.delegate) && w.inputControllerWillPaste(l), this.setInputSummary({\n textAdded: l.string,\n didDelete: this.selectionIsExpanded()\n }), null != (E = this.responder) && E.insertString(l.string), this.requestRender(), null != (S = this.delegate) && S.inputControllerDidPaste(l)) : (u = n.getData(\"text/html\")) ? (l.type = \"text/html\", l.html = u, null != (R = this.delegate) && R.inputControllerWillPaste(l), null != (k = this.responder) && k.insertHTML(l.html), this.requestRender(), null != (D = this.delegate) && D.inputControllerDidPaste(l)) : m.call(n.types, \"Files\") >= 0 && (s = null != (g = n.items) && null != (v = g[0]) && \"function\" == typeof v.getAsFile ? v.getAsFile() : void 0) && (!s.name && (o = r(s)) && (s.name = \"pasted-file-\" + ++d + \".\" + o), l.type = \"File\", l.file = s, null != (y = this.delegate) && y.inputControllerWillAttachFiles(), null != (b = this.responder) && b.insertFile(l.file), this.requestRender(), null != (A = this.delegate) && A.inputControllerDidPaste(l)), t.preventDefault());\n },\n compositionstart: function compositionstart(t) {\n return this.getCompositionInput().start(t.data);\n },\n compositionupdate: function compositionupdate(t) {\n return this.getCompositionInput().update(t.data);\n },\n compositionend: function compositionend(t) {\n return this.getCompositionInput().end(t.data);\n },\n beforeinput: function beforeinput() {\n return this.inputSummary.didInput = !0;\n },\n input: function input(t) {\n return this.inputSummary.didInput = !0, t.stopPropagation();\n }\n }, s.prototype.keys = {\n backspace: function backspace(t) {\n var e;\n return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), this.deleteInDirection(\"backward\", t);\n },\n \"delete\": function _delete(t) {\n var e;\n return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), this.deleteInDirection(\"forward\", t);\n },\n \"return\": function _return() {\n var t, e;\n return this.setInputSummary({\n preferDocument: !0\n }), null != (t = this.delegate) && t.inputControllerWillPerformTyping(), null != (e = this.responder) ? e.insertLineBreak() : void 0;\n },\n tab: function tab(t) {\n var e, n;\n return (null != (e = this.responder) ? e.canIncreaseNestingLevel() : void 0) ? (null != (n = this.responder) && n.increaseNestingLevel(), this.requestRender(), t.preventDefault()) : void 0;\n },\n left: function left(t) {\n var e;\n return this.selectionIsInCursorTarget() ? (t.preventDefault(), null != (e = this.responder) ? e.moveCursorInDirection(\"backward\") : void 0) : void 0;\n },\n right: function right(t) {\n var e;\n return this.selectionIsInCursorTarget() ? (t.preventDefault(), null != (e = this.responder) ? e.moveCursorInDirection(\"forward\") : void 0) : void 0;\n },\n control: {\n d: function d(t) {\n var e;\n return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), this.deleteInDirection(\"forward\", t);\n },\n h: function h(t) {\n var e;\n return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), this.deleteInDirection(\"backward\", t);\n },\n o: function o(t) {\n var e, n;\n return t.preventDefault(), null != (e = this.delegate) && e.inputControllerWillPerformTyping(), null != (n = this.responder) && n.insertString(\"\\n\", {\n updatePosition: !1\n }), this.requestRender();\n }\n },\n shift: {\n \"return\": function _return(t) {\n var e, n;\n return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), null != (n = this.responder) && n.insertString(\"\\n\"), this.requestRender(), t.preventDefault();\n },\n tab: function tab(t) {\n var e, n;\n return (null != (e = this.responder) ? e.canDecreaseNestingLevel() : void 0) ? (null != (n = this.responder) && n.decreaseNestingLevel(), this.requestRender(), t.preventDefault()) : void 0;\n },\n left: function left(t) {\n return this.selectionIsInCursorTarget() ? (t.preventDefault(), this.expandSelectionInDirection(\"backward\")) : void 0;\n },\n right: function right(t) {\n return this.selectionIsInCursorTarget() ? (t.preventDefault(), this.expandSelectionInDirection(\"forward\")) : void 0;\n }\n },\n alt: {\n backspace: function backspace() {\n var t;\n return this.setInputSummary({\n preferDocument: !1\n }), null != (t = this.delegate) ? t.inputControllerWillPerformTyping() : void 0;\n }\n },\n meta: {\n backspace: function backspace() {\n var t;\n return this.setInputSummary({\n preferDocument: !1\n }), null != (t = this.delegate) ? t.inputControllerWillPerformTyping() : void 0;\n }\n }\n }, s.prototype.getCompositionInput = function () {\n return this.isComposing() ? this.compositionInput : this.compositionInput = new t(this);\n }, s.prototype.isComposing = function () {\n return null != this.compositionInput && !this.compositionInput.isEnded();\n }, s.prototype.deleteInDirection = function (t, e) {\n var n;\n return (null != (n = this.responder) ? n.deleteInDirection(t) : void 0) !== !1 ? this.setInputSummary({\n didDelete: !0\n }) : e ? (e.preventDefault(), this.requestRender()) : void 0;\n }, s.prototype.serializeSelectionToDataTransfer = function (t) {\n var n, i;\n if (o(t)) return n = null != (i = this.responder) ? i.getSelectedDocument().toSerializableDocument() : void 0, t.setData(\"application/x-trix-document\", JSON.stringify(n)), t.setData(\"text/html\", e.DocumentView.render(n).innerHTML), t.setData(\"text/plain\", n.toString().replace(/\\n$/, \"\")), !0;\n }, s.prototype.canAcceptDataTransfer = function (t) {\n var e, n, i, o, r, s;\n for (s = {}, o = null != (i = null != t ? t.types : void 0) ? i : [], e = 0, n = o.length; n > e; e++) r = o[e], s[r] = !0;\n return s.Files || s[\"application/x-trix-document\"] || s[\"text/html\"] || s[\"text/plain\"];\n }, s.prototype.getPastedHTMLUsingHiddenElement = function (t) {\n var n, i, o;\n return i = this.getSelectedRange(), o = {\n position: \"absolute\",\n left: window.pageXOffset + \"px\",\n top: window.pageYOffset + \"px\",\n opacity: 0\n }, n = c({\n style: o,\n tagName: \"div\",\n editable: !0\n }), document.body.appendChild(n), n.focus(), requestAnimationFrame(function (o) {\n return function () {\n var r;\n return r = n.innerHTML, e.removeNode(n), o.setSelectedRange(i), t(r);\n };\n }(this));\n }, s.proxyMethod(\"responder?.getSelectedRange\"), s.proxyMethod(\"responder?.setSelectedRange\"), s.proxyMethod(\"responder?.expandSelectionInDirection\"), s.proxyMethod(\"responder?.selectionIsInCursorTarget\"), s.proxyMethod(\"responder?.selectionIsExpanded\"), s;\n }(e.InputController), r = function r(t) {\n var e, n;\n return null != (e = t.type) && null != (n = e.match(/\\/(\\w+)$/)) ? n[1] : void 0;\n }, s = null != (\"function\" == typeof \" \".codePointAt ? \" \".codePointAt(0) : void 0), p = function p(t) {\n var n;\n return t.key && s && t.key.codePointAt(0) === t.keyCode ? t.key : (null === t.which ? n = t.keyCode : 0 !== t.which && 0 !== t.charCode && (n = t.charCode), null != n && \"escape\" !== u[n] ? e.UTF16String.fromCodepoints([n]).toString() : void 0);\n }, h = function h(t) {\n var e, n, i, o, r, s, a, u, c, l;\n if (u = t.clipboardData) {\n if (m.call(u.types, \"text/html\") >= 0) {\n for (c = u.types, i = 0, s = c.length; s > i; i++) if (l = c[i], e = /^CorePasteboardFlavorType/.test(l), n = /^dyn\\./.test(l) && u.getData(l), a = e || n) return !0;\n return !1;\n }\n return o = m.call(u.types, \"com.apple.webarchive\") >= 0, r = m.call(u.types, \"com.apple.flat-rtfd\") >= 0, o || r;\n }\n }, t = function (t) {\n function e(t) {\n var e;\n this.inputController = t, e = this.inputController, this.responder = e.responder, this.delegate = e.delegate, this.inputSummary = e.inputSummary, this.data = {};\n }\n return f(e, t), e.prototype.start = function (t) {\n var e, n;\n return this.data.start = t, this.isSignificant() ? (\"keypress\" === this.inputSummary.eventName && this.inputSummary.textAdded && null != (e = this.responder) && e.deleteInDirection(\"left\"), this.selectionIsExpanded() || (this.insertPlaceholder(), this.requestRender()), this.range = null != (n = this.responder) ? n.getSelectedRange() : void 0) : void 0;\n }, e.prototype.update = function (t) {\n var e;\n return this.data.update = t, this.isSignificant() && (e = this.selectPlaceholder()) ? (this.forgetPlaceholder(), this.range = e) : void 0;\n }, e.prototype.end = function (t) {\n var e, n, i, o;\n return this.data.end = t, this.isSignificant() ? (this.forgetPlaceholder(), this.canApplyToDocument() ? (this.setInputSummary({\n preferDocument: !0,\n didInput: !1\n }), null != (e = this.delegate) && e.inputControllerWillPerformTyping(), null != (n = this.responder) && n.setSelectedRange(this.range), null != (i = this.responder) && i.insertString(this.data.end), null != (o = this.responder) ? o.setSelectedRange(this.range[0] + this.data.end.length) : void 0) : null != this.data.start || null != this.data.update ? (this.requestReparse(), this.inputController.reset()) : void 0) : this.inputController.reset();\n }, e.prototype.getEndData = function () {\n return this.data.end;\n }, e.prototype.isEnded = function () {\n return null != this.getEndData();\n }, e.prototype.isSignificant = function () {\n return n.composesExistingText ? this.inputSummary.didInput : !0;\n }, e.prototype.canApplyToDocument = function () {\n var t, e;\n return 0 === (null != (t = this.data.start) ? t.length : void 0) && (null != (e = this.data.end) ? e.length : void 0) > 0 && null != this.range;\n }, e.proxyMethod(\"inputController.setInputSummary\"), e.proxyMethod(\"inputController.requestRender\"), e.proxyMethod(\"inputController.requestReparse\"), e.proxyMethod(\"responder?.selectionIsExpanded\"), e.proxyMethod(\"responder?.insertPlaceholder\"), e.proxyMethod(\"responder?.selectPlaceholder\"), e.proxyMethod(\"responder?.forgetPlaceholder\"), e;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o = function o(t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n r = function r(t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) s.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n s = {}.hasOwnProperty,\n a = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n return -1;\n };\n t = e.dataTransferIsPlainText, n = e.keyEventIsKeyboardCommand, i = e.objectsAreEqual, e.Level2InputController = function (s) {\n function u() {\n return this.render = o(this.render, this), u.__super__.constructor.apply(this, arguments);\n }\n var c, l, h, p, d, f;\n return r(u, s), u.prototype.elementDidMutate = function () {\n var t;\n return this.scheduledRender ? this.composing && null != (t = this.delegate) && \"function\" == typeof t.inputControllerDidAllowUnhandledInput ? t.inputControllerDidAllowUnhandledInput() : void 0 : this.reparse();\n }, u.prototype.scheduleRender = function () {\n return null != this.scheduledRender ? this.scheduledRender : this.scheduledRender = requestAnimationFrame(this.render);\n }, u.prototype.render = function () {\n var t;\n return cancelAnimationFrame(this.scheduledRender), this.scheduledRender = null, this.composing || null != (t = this.delegate) && t.render(), \"function\" == typeof this.afterRender && this.afterRender(), this.afterRender = null;\n }, u.prototype.reparse = function () {\n var t;\n return null != (t = this.delegate) ? t.reparse() : void 0;\n }, u.prototype.events = {\n keydown: function keydown(t) {\n var e, i, o, r;\n if (n(t)) {\n if (e = l(t), null != (r = this.delegate) ? r.inputControllerDidReceiveKeyboardCommand(e) : void 0) return t.preventDefault();\n } else if (o = t.key, t.altKey && (o += \"+Alt\"), t.shiftKey && (o += \"+Shift\"), i = this.keys[o]) return this.withEvent(t, i);\n },\n paste: function paste(t) {\n var e, n, i, o, r, s, a, u, c;\n return h(t) ? (t.preventDefault(), this.attachFiles(t.clipboardData.files)) : p(t) ? (t.preventDefault(), n = {\n type: \"text/plain\",\n string: t.clipboardData.getData(\"text/plain\")\n }, null != (i = this.delegate) && i.inputControllerWillPaste(n), null != (o = this.responder) && o.insertString(n.string), this.render(), null != (r = this.delegate) ? r.inputControllerDidPaste(n) : void 0) : (e = null != (s = t.clipboardData) ? s.getData(\"URL\") : void 0) ? (t.preventDefault(), n = {\n type: \"text/html\",\n html: this.createLinkHTML(e)\n }, null != (a = this.delegate) && a.inputControllerWillPaste(n), null != (u = this.responder) && u.insertHTML(n.html), this.render(), null != (c = this.delegate) ? c.inputControllerDidPaste(n) : void 0) : void 0;\n },\n beforeinput: function beforeinput(t) {\n var e;\n return (e = this.inputTypes[t.inputType]) ? (this.withEvent(t, e), this.scheduleRender()) : void 0;\n },\n input: function input() {\n return e.selectionChangeObserver.reset();\n },\n dragstart: function dragstart(t) {\n var e, n;\n return (null != (e = this.responder) ? e.selectionContainsAttachments() : void 0) ? (t.dataTransfer.setData(\"application/x-trix-dragging\", !0), this.dragging = {\n range: null != (n = this.responder) ? n.getSelectedRange() : void 0,\n point: d(t)\n }) : void 0;\n },\n dragenter: function dragenter(t) {\n return c(t) ? t.preventDefault() : void 0;\n },\n dragover: function dragover(t) {\n var e, n;\n if (this.dragging) {\n if (t.preventDefault(), e = d(t), !i(e, this.dragging.point)) return this.dragging.point = e, null != (n = this.responder) ? n.setLocationRangeFromPointRange(e) : void 0;\n } else if (c(t)) return t.preventDefault();\n },\n drop: function drop(t) {\n var e, n, i, o;\n return this.dragging ? (t.preventDefault(), null != (n = this.delegate) && n.inputControllerWillMoveText(), null != (i = this.responder) && i.moveTextFromRange(this.dragging.range), this.dragging = null, this.scheduleRender()) : c(t) ? (t.preventDefault(), e = d(t), null != (o = this.responder) && o.setLocationRangeFromPointRange(e), this.attachFiles(t.dataTransfer.files)) : void 0;\n },\n dragend: function dragend() {\n var t;\n return this.dragging ? (null != (t = this.responder) && t.setSelectedRange(this.dragging.range), this.dragging = null) : void 0;\n },\n compositionend: function compositionend() {\n return this.composing ? (this.composing = !1, this.scheduleRender()) : void 0;\n }\n }, u.prototype.keys = {\n ArrowLeft: function ArrowLeft() {\n var t, e;\n return (null != (t = this.responder) ? t.shouldManageMovingCursorInDirection(\"backward\") : void 0) ? (this.event.preventDefault(), null != (e = this.responder) ? e.moveCursorInDirection(\"backward\") : void 0) : void 0;\n },\n ArrowRight: function ArrowRight() {\n var t, e;\n return (null != (t = this.responder) ? t.shouldManageMovingCursorInDirection(\"forward\") : void 0) ? (this.event.preventDefault(), null != (e = this.responder) ? e.moveCursorInDirection(\"forward\") : void 0) : void 0;\n },\n Backspace: function Backspace() {\n var t, e, n;\n return (null != (t = this.responder) ? t.shouldManageDeletingInDirection(\"backward\") : void 0) ? (this.event.preventDefault(), null != (e = this.delegate) && e.inputControllerWillPerformTyping(), null != (n = this.responder) && n.deleteInDirection(\"backward\"), this.render()) : void 0;\n },\n Tab: function Tab() {\n var t, e;\n return (null != (t = this.responder) ? t.canIncreaseNestingLevel() : void 0) ? (this.event.preventDefault(), null != (e = this.responder) && e.increaseNestingLevel(), this.render()) : void 0;\n },\n \"Tab+Shift\": function TabShift() {\n var t, e;\n return (null != (t = this.responder) ? t.canDecreaseNestingLevel() : void 0) ? (this.event.preventDefault(), null != (e = this.responder) && e.decreaseNestingLevel(), this.render()) : void 0;\n }\n }, u.prototype.inputTypes = {\n deleteByComposition: function deleteByComposition() {\n return this.deleteInDirection(\"backward\", {\n recordUndoEntry: !1\n });\n },\n deleteByCut: function deleteByCut() {\n return this.deleteInDirection(\"backward\");\n },\n deleteByDrag: function deleteByDrag() {\n return this.event.preventDefault(), this.withTargetDOMRange(function () {\n var t;\n return this.deleteByDragRange = null != (t = this.responder) ? t.getSelectedRange() : void 0;\n });\n },\n deleteCompositionText: function deleteCompositionText() {\n return this.deleteInDirection(\"backward\", {\n recordUndoEntry: !1\n });\n },\n deleteContent: function deleteContent() {\n return this.deleteInDirection(\"backward\");\n },\n deleteContentBackward: function deleteContentBackward() {\n return this.deleteInDirection(\"backward\");\n },\n deleteContentForward: function deleteContentForward() {\n return this.deleteInDirection(\"forward\");\n },\n deleteEntireSoftLine: function deleteEntireSoftLine() {\n return this.deleteInDirection(\"forward\");\n },\n deleteHardLineBackward: function deleteHardLineBackward() {\n return this.deleteInDirection(\"backward\");\n },\n deleteHardLineForward: function deleteHardLineForward() {\n return this.deleteInDirection(\"forward\");\n },\n deleteSoftLineBackward: function deleteSoftLineBackward() {\n return this.deleteInDirection(\"backward\");\n },\n deleteSoftLineForward: function deleteSoftLineForward() {\n return this.deleteInDirection(\"forward\");\n },\n deleteWordBackward: function deleteWordBackward() {\n return this.deleteInDirection(\"backward\");\n },\n deleteWordForward: function deleteWordForward() {\n return this.deleteInDirection(\"forward\");\n },\n formatBackColor: function formatBackColor() {\n return this.activateAttributeIfSupported(\"backgroundColor\", this.event.data);\n },\n formatBold: function formatBold() {\n return this.toggleAttributeIfSupported(\"bold\");\n },\n formatFontColor: function formatFontColor() {\n return this.activateAttributeIfSupported(\"color\", this.event.data);\n },\n formatFontName: function formatFontName() {\n return this.activateAttributeIfSupported(\"font\", this.event.data);\n },\n formatIndent: function formatIndent() {\n var t;\n return (null != (t = this.responder) ? t.canIncreaseNestingLevel() : void 0) ? this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.increaseNestingLevel() : void 0;\n }) : void 0;\n },\n formatItalic: function formatItalic() {\n return this.toggleAttributeIfSupported(\"italic\");\n },\n formatJustifyCenter: function formatJustifyCenter() {\n return this.toggleAttributeIfSupported(\"justifyCenter\");\n },\n formatJustifyFull: function formatJustifyFull() {\n return this.toggleAttributeIfSupported(\"justifyFull\");\n },\n formatJustifyLeft: function formatJustifyLeft() {\n return this.toggleAttributeIfSupported(\"justifyLeft\");\n },\n formatJustifyRight: function formatJustifyRight() {\n return this.toggleAttributeIfSupported(\"justifyRight\");\n },\n formatOutdent: function formatOutdent() {\n var t;\n return (null != (t = this.responder) ? t.canDecreaseNestingLevel() : void 0) ? this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.decreaseNestingLevel() : void 0;\n }) : void 0;\n },\n formatRemove: function formatRemove() {\n return this.withTargetDOMRange(function () {\n var t, e, n, i;\n i = [];\n for (t in null != (e = this.responder) ? e.getCurrentAttributes() : void 0) i.push(null != (n = this.responder) ? n.removeCurrentAttribute(t) : void 0);\n return i;\n });\n },\n formatSetBlockTextDirection: function formatSetBlockTextDirection() {\n return this.activateAttributeIfSupported(\"blockDir\", this.event.data);\n },\n formatSetInlineTextDirection: function formatSetInlineTextDirection() {\n return this.activateAttributeIfSupported(\"textDir\", this.event.data);\n },\n formatStrikeThrough: function formatStrikeThrough() {\n return this.toggleAttributeIfSupported(\"strike\");\n },\n formatSubscript: function formatSubscript() {\n return this.toggleAttributeIfSupported(\"sub\");\n },\n formatSuperscript: function formatSuperscript() {\n return this.toggleAttributeIfSupported(\"sup\");\n },\n formatUnderline: function formatUnderline() {\n return this.toggleAttributeIfSupported(\"underline\");\n },\n historyRedo: function historyRedo() {\n var t;\n return null != (t = this.delegate) ? t.inputControllerWillPerformRedo() : void 0;\n },\n historyUndo: function historyUndo() {\n var t;\n return null != (t = this.delegate) ? t.inputControllerWillPerformUndo() : void 0;\n },\n insertCompositionText: function insertCompositionText() {\n return this.composing = !0, this.insertString(this.event.data);\n },\n insertFromComposition: function insertFromComposition() {\n return this.composing = !1, this.insertString(this.event.data);\n },\n insertFromDrop: function insertFromDrop() {\n var t, e;\n return (t = this.deleteByDragRange) ? (this.deleteByDragRange = null, null != (e = this.delegate) && e.inputControllerWillMoveText(), this.withTargetDOMRange(function () {\n var e;\n return null != (e = this.responder) ? e.moveTextFromRange(t) : void 0;\n })) : void 0;\n },\n insertFromPaste: function insertFromPaste() {\n var n, i, o, r, s, a, u, c, l, h, p;\n return n = this.event.dataTransfer, s = {\n dataTransfer: n\n }, (i = n.getData(\"URL\")) ? (this.event.preventDefault(), s.type = \"text/html\", p = (r = n.getData(\"public.url-name\")) ? e.squishBreakableWhitespace(r).trim() : i, s.html = this.createLinkHTML(i, p), null != (a = this.delegate) && a.inputControllerWillPaste(s), this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.insertHTML(s.html) : void 0;\n }), this.afterRender = function (t) {\n return function () {\n var e;\n return null != (e = t.delegate) ? e.inputControllerDidPaste(s) : void 0;\n };\n }(this)) : t(n) ? (s.type = \"text/plain\", s.string = n.getData(\"text/plain\"), null != (u = this.delegate) && u.inputControllerWillPaste(s), this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.insertString(s.string) : void 0;\n }), this.afterRender = function (t) {\n return function () {\n var e;\n return null != (e = t.delegate) ? e.inputControllerDidPaste(s) : void 0;\n };\n }(this)) : (o = n.getData(\"text/html\")) ? (this.event.preventDefault(), s.type = \"text/html\", s.html = o, null != (c = this.delegate) && c.inputControllerWillPaste(s), this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.insertHTML(s.html) : void 0;\n }), this.afterRender = function (t) {\n return function () {\n var e;\n return null != (e = t.delegate) ? e.inputControllerDidPaste(s) : void 0;\n };\n }(this)) : (null != (l = n.files) ? l.length : void 0) ? (s.type = \"File\", s.file = n.files[0], null != (h = this.delegate) && h.inputControllerWillPaste(s), this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.insertFile(s.file) : void 0;\n }), this.afterRender = function (t) {\n return function () {\n var e;\n return null != (e = t.delegate) ? e.inputControllerDidPaste(s) : void 0;\n };\n }(this)) : void 0;\n },\n insertFromYank: function insertFromYank() {\n return this.insertString(this.event.data);\n },\n insertLineBreak: function insertLineBreak() {\n return this.insertString(\"\\n\");\n },\n insertLink: function insertLink() {\n return this.activateAttributeIfSupported(\"href\", this.event.data);\n },\n insertOrderedList: function insertOrderedList() {\n return this.toggleAttributeIfSupported(\"number\");\n },\n insertParagraph: function insertParagraph() {\n var t;\n return null != (t = this.delegate) && t.inputControllerWillPerformTyping(), this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.insertLineBreak() : void 0;\n });\n },\n insertReplacementText: function insertReplacementText() {\n return this.insertString(this.event.dataTransfer.getData(\"text/plain\"), {\n updatePosition: !1\n });\n },\n insertText: function insertText() {\n var t, e;\n return this.insertString(null != (t = this.event.data) ? t : null != (e = this.event.dataTransfer) ? e.getData(\"text/plain\") : void 0);\n },\n insertTranspose: function insertTranspose() {\n return this.insertString(this.event.data);\n },\n insertUnorderedList: function insertUnorderedList() {\n return this.toggleAttributeIfSupported(\"bullet\");\n }\n }, u.prototype.insertString = function (t, e) {\n var n;\n return null == t && (t = \"\"), null != (n = this.delegate) && n.inputControllerWillPerformTyping(), this.withTargetDOMRange(function () {\n var n;\n return null != (n = this.responder) ? n.insertString(t, e) : void 0;\n });\n }, u.prototype.toggleAttributeIfSupported = function (t) {\n var n;\n return a.call(e.getAllAttributeNames(), t) >= 0 ? (null != (n = this.delegate) && n.inputControllerWillPerformFormatting(t), this.withTargetDOMRange(function () {\n var e;\n return null != (e = this.responder) ? e.toggleCurrentAttribute(t) : void 0;\n })) : void 0;\n }, u.prototype.activateAttributeIfSupported = function (t, n) {\n var i;\n return a.call(e.getAllAttributeNames(), t) >= 0 ? (null != (i = this.delegate) && i.inputControllerWillPerformFormatting(t), this.withTargetDOMRange(function () {\n var e;\n return null != (e = this.responder) ? e.setCurrentAttribute(t, n) : void 0;\n })) : void 0;\n }, u.prototype.deleteInDirection = function (t, e) {\n var n, i, o, r;\n return o = (null != e ? e : {\n recordUndoEntry: !0\n }).recordUndoEntry, o && null != (r = this.delegate) && r.inputControllerWillPerformTyping(), i = function (e) {\n return function () {\n var n;\n return null != (n = e.responder) ? n.deleteInDirection(t) : void 0;\n };\n }(this), (n = this.getTargetDOMRange({\n minLength: 2\n })) ? this.withTargetDOMRange(n, i) : i();\n }, u.prototype.withTargetDOMRange = function (t, n) {\n var i;\n return \"function\" == typeof t && (n = t, t = this.getTargetDOMRange()), t ? null != (i = this.responder) ? i.withTargetDOMRange(t, n.bind(this)) : void 0 : (e.selectionChangeObserver.reset(), n.call(this));\n }, u.prototype.getTargetDOMRange = function (t) {\n var e, n, i, o;\n return i = (null != t ? t : {\n minLength: 0\n }).minLength, (o = \"function\" == typeof (e = this.event).getTargetRanges ? e.getTargetRanges() : void 0) && o.length && (n = f(o[0]), 0 === i || n.toString().length >= i) ? n : void 0;\n }, f = function f(t) {\n var e;\n return e = document.createRange(), e.setStart(t.startContainer, t.startOffset), e.setEnd(t.endContainer, t.endOffset), e;\n }, u.prototype.withEvent = function (t, e) {\n var n;\n this.event = t;\n try {\n n = e.call(this);\n } finally {\n this.event = null;\n }\n return n;\n }, c = function c(t) {\n var e, n;\n return a.call(null != (e = null != (n = t.dataTransfer) ? n.types : void 0) ? e : [], \"Files\") >= 0;\n }, h = function h(t) {\n var e;\n return (e = t.clipboardData) ? a.call(e.types, \"Files\") >= 0 && 1 === e.types.length && e.files.length >= 1 : void 0;\n }, p = function p(t) {\n var e;\n return (e = t.clipboardData) ? a.call(e.types, \"text/plain\") >= 0 && 1 === e.types.length : void 0;\n }, l = function l(t) {\n var e;\n return e = [], t.altKey && e.push(\"alt\"), t.shiftKey && e.push(\"shift\"), e.push(t.key), e;\n }, d = function d(t) {\n return {\n x: t.clientX,\n y: t.clientY\n };\n }, u;\n }(e.InputController);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a,\n u,\n c = function c(t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n l = function l(t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) h.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n h = {}.hasOwnProperty;\n n = e.defer, i = e.handleEvent, s = e.makeElement, u = e.tagName, a = e.config, r = a.lang, t = a.css, o = a.keyNames, e.AttachmentEditorController = function (a) {\n function h(t, e, n, i) {\n this.attachmentPiece = t, this.element = e, this.container = n, this.options = null != i ? i : {}, this.didBlurCaption = c(this.didBlurCaption, this), this.didChangeCaption = c(this.didChangeCaption, this), this.didInputCaption = c(this.didInputCaption, this), this.didKeyDownCaption = c(this.didKeyDownCaption, this), this.didClickActionButton = c(this.didClickActionButton, this), this.didClickToolbar = c(this.didClickToolbar, this), this.attachment = this.attachmentPiece.attachment, \"a\" === u(this.element) && (this.element = this.element.firstChild), this.install();\n }\n var p;\n return l(h, a), p = function p(t) {\n return function () {\n var e;\n return e = t.apply(this, arguments), e[\"do\"](), null == this.undos && (this.undos = []), this.undos.push(e.undo);\n };\n }, h.prototype.install = function () {\n return this.makeElementMutable(), this.addToolbar(), this.attachment.isPreviewable() ? this.installCaptionEditor() : void 0;\n }, h.prototype.uninstall = function () {\n var t, e;\n for (this.savePendingCaption(); e = this.undos.pop();) e();\n return null != (t = this.delegate) ? t.didUninstallAttachmentEditor(this) : void 0;\n }, h.prototype.savePendingCaption = function () {\n var t, e, n;\n return null != this.pendingCaption ? (t = this.pendingCaption, this.pendingCaption = null, t ? null != (e = this.delegate) && \"function\" == typeof e.attachmentEditorDidRequestUpdatingAttributesForAttachment ? e.attachmentEditorDidRequestUpdatingAttributesForAttachment({\n caption: t\n }, this.attachment) : void 0 : null != (n = this.delegate) && \"function\" == typeof n.attachmentEditorDidRequestRemovingAttributeForAttachment ? n.attachmentEditorDidRequestRemovingAttributeForAttachment(\"caption\", this.attachment) : void 0) : void 0;\n }, h.prototype.makeElementMutable = p(function () {\n return {\n \"do\": function (t) {\n return function () {\n return t.element.dataset.trixMutable = !0;\n };\n }(this),\n undo: function (t) {\n return function () {\n return delete t.element.dataset.trixMutable;\n };\n }(this)\n };\n }), h.prototype.addToolbar = p(function () {\n var n;\n return n = s({\n tagName: \"div\",\n className: t.attachmentToolbar,\n data: {\n trixMutable: !0\n },\n childNodes: s({\n tagName: \"div\",\n className: \"trix-button-row\",\n childNodes: s({\n tagName: \"span\",\n className: \"trix-button-group trix-button-group--actions\",\n childNodes: s({\n tagName: \"button\",\n className: \"trix-button trix-button--remove\",\n textContent: r.remove,\n attributes: {\n title: r.remove\n },\n data: {\n trixAction: \"remove\"\n }\n })\n })\n })\n }), this.attachment.isPreviewable() && n.appendChild(s({\n tagName: \"div\",\n className: t.attachmentMetadataContainer,\n childNodes: s({\n tagName: \"span\",\n className: t.attachmentMetadata,\n childNodes: [s({\n tagName: \"span\",\n className: t.attachmentName,\n textContent: this.attachment.getFilename(),\n attributes: {\n title: this.attachment.getFilename()\n }\n }), s({\n tagName: \"span\",\n className: t.attachmentSize,\n textContent: this.attachment.getFormattedFilesize()\n })]\n })\n })), i(\"click\", {\n onElement: n,\n withCallback: this.didClickToolbar\n }), i(\"click\", {\n onElement: n,\n matchingSelector: \"[data-trix-action]\",\n withCallback: this.didClickActionButton\n }), {\n \"do\": function (t) {\n return function () {\n return t.element.appendChild(n);\n };\n }(this),\n undo: function () {\n return function () {\n return e.removeNode(n);\n };\n }(this)\n };\n }), h.prototype.installCaptionEditor = p(function () {\n var o, a, u, c, l;\n return c = s({\n tagName: \"textarea\",\n className: t.attachmentCaptionEditor,\n attributes: {\n placeholder: r.captionPlaceholder\n },\n data: {\n trixMutable: !0\n }\n }), c.value = this.attachmentPiece.getCaption(), l = c.cloneNode(), l.classList.add(\"trix-autoresize-clone\"), l.tabIndex = -1, o = function o() {\n return l.value = c.value, c.style.height = l.scrollHeight + \"px\";\n }, i(\"input\", {\n onElement: c,\n withCallback: o\n }), i(\"input\", {\n onElement: c,\n withCallback: this.didInputCaption\n }), i(\"keydown\", {\n onElement: c,\n withCallback: this.didKeyDownCaption\n }), i(\"change\", {\n onElement: c,\n withCallback: this.didChangeCaption\n }), i(\"blur\", {\n onElement: c,\n withCallback: this.didBlurCaption\n }), u = this.element.querySelector(\"figcaption\"), a = u.cloneNode(), {\n \"do\": function (e) {\n return function () {\n return u.style.display = \"none\", a.appendChild(c), a.appendChild(l), a.classList.add(t.attachmentCaption + \"--editing\"), u.parentElement.insertBefore(a, u), o(), e.options.editCaption ? n(function () {\n return c.focus();\n }) : void 0;\n };\n }(this),\n undo: function undo() {\n return e.removeNode(a), u.style.display = null;\n }\n };\n }), h.prototype.didClickToolbar = function (t) {\n return t.preventDefault(), t.stopPropagation();\n }, h.prototype.didClickActionButton = function (t) {\n var e, n;\n switch (e = t.target.getAttribute(\"data-trix-action\")) {\n case \"remove\":\n return null != (n = this.delegate) ? n.attachmentEditorDidRequestRemovalOfAttachment(this.attachment) : void 0;\n }\n }, h.prototype.didKeyDownCaption = function (t) {\n var e;\n return \"return\" === o[t.keyCode] ? (t.preventDefault(), this.savePendingCaption(), null != (e = this.delegate) && \"function\" == typeof e.attachmentEditorDidRequestDeselectingAttachment ? e.attachmentEditorDidRequestDeselectingAttachment(this.attachment) : void 0) : void 0;\n }, h.prototype.didInputCaption = function (t) {\n return this.pendingCaption = t.target.value.replace(/\\s/g, \" \").trim();\n }, h.prototype.didChangeCaption = function () {\n return this.savePendingCaption();\n }, h.prototype.didBlurCaption = function () {\n return this.savePendingCaption();\n }, h;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o = function o(t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) r.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n r = {}.hasOwnProperty;\n i = e.makeElement, t = e.config.css, e.AttachmentView = function (r) {\n function s() {\n s.__super__.constructor.apply(this, arguments), this.attachment = this.object, this.attachment.uploadProgressDelegate = this, this.attachmentPiece = this.options.piece;\n }\n var a;\n return o(s, r), s.attachmentSelector = \"[data-trix-attachment]\", s.prototype.createContentNodes = function () {\n return [];\n }, s.prototype.createNodes = function () {\n var e, n, o, r, s, u, c;\n if (e = r = i({\n tagName: \"figure\",\n className: this.getClassName(),\n data: this.getData(),\n editable: !1\n }), (n = this.getHref()) && (r = i({\n tagName: \"a\",\n editable: !1,\n attributes: {\n href: n,\n tabindex: -1\n }\n }), e.appendChild(r)), this.attachment.hasContent()) r.innerHTML = this.attachment.getContent();else for (c = this.createContentNodes(), o = 0, s = c.length; s > o; o++) u = c[o], r.appendChild(u);\n return r.appendChild(this.createCaptionElement()), this.attachment.isPending() && (this.progressElement = i({\n tagName: \"progress\",\n attributes: {\n \"class\": t.attachmentProgress,\n value: this.attachment.getUploadProgress(),\n max: 100\n },\n data: {\n trixMutable: !0,\n trixStoreKey: [\"progressElement\", this.attachment.id].join(\"/\")\n }\n }), e.appendChild(this.progressElement)), [a(\"left\"), e, a(\"right\")];\n }, s.prototype.createCaptionElement = function () {\n var e, n, o, r, s, a, u;\n return o = i({\n tagName: \"figcaption\",\n className: t.attachmentCaption\n }), (e = this.attachmentPiece.getCaption()) ? (o.classList.add(t.attachmentCaption + \"--edited\"), o.textContent = e) : (n = this.getCaptionConfig(), n.name && (r = this.attachment.getFilename()), n.size && (a = this.attachment.getFormattedFilesize()), r && (s = i({\n tagName: \"span\",\n className: t.attachmentName,\n textContent: r\n }), o.appendChild(s)), a && (r && o.appendChild(document.createTextNode(\" \")), u = i({\n tagName: \"span\",\n className: t.attachmentSize,\n textContent: a\n }), o.appendChild(u))), o;\n }, s.prototype.getClassName = function () {\n var e, n;\n return n = [t.attachment, t.attachment + \"--\" + this.attachment.getType()], (e = this.attachment.getExtension()) && n.push(t.attachment + \"--\" + e), n.join(\" \");\n }, s.prototype.getData = function () {\n var t, e;\n return e = {\n trixAttachment: JSON.stringify(this.attachment),\n trixContentType: this.attachment.getContentType(),\n trixId: this.attachment.id\n }, t = this.attachmentPiece.attributes, t.isEmpty() || (e.trixAttributes = JSON.stringify(t)), this.attachment.isPending() && (e.trixSerialize = !1), e;\n }, s.prototype.getHref = function () {\n return n(this.attachment.getContent(), \"a\") ? void 0 : this.attachment.getHref();\n }, s.prototype.getCaptionConfig = function () {\n var t, n, i;\n return i = this.attachment.getType(), t = e.copyObject(null != (n = e.config.attachments[i]) ? n.caption : void 0), \"file\" === i && (t.name = !0), t;\n }, s.prototype.findProgressElement = function () {\n var t;\n return null != (t = this.findElement()) ? t.querySelector(\"progress\") : void 0;\n }, a = function a(t) {\n return i({\n tagName: \"span\",\n textContent: e.ZERO_WIDTH_SPACE,\n data: {\n trixCursorTarget: t,\n trixSerialize: !1\n }\n });\n }, s.prototype.attachmentDidChangeUploadProgress = function () {\n var t, e;\n return e = this.attachment.getUploadProgress(), null != (t = this.findProgressElement()) ? t.value = e : void 0;\n }, s;\n }(e.ObjectView), n = function n(t, e) {\n var n;\n return n = i(\"div\"), n.innerHTML = null != t ? t : \"\", n.querySelector(e);\n };\n }.call(this), function () {\n var t,\n n = function n(t, e) {\n function n() {\n this.constructor = t;\n }\n for (var o in e) i.call(e, o) && (t[o] = e[o]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty;\n t = e.makeElement, e.PreviewableAttachmentView = function (i) {\n function o() {\n o.__super__.constructor.apply(this, arguments), this.attachment.previewDelegate = this;\n }\n return n(o, i), o.prototype.createContentNodes = function () {\n return this.image = t({\n tagName: \"img\",\n attributes: {\n src: \"\"\n },\n data: {\n trixMutable: !0\n }\n }), this.refresh(this.image), [this.image];\n }, o.prototype.createCaptionElement = function () {\n var t;\n return t = o.__super__.createCaptionElement.apply(this, arguments), t.textContent || t.setAttribute(\"data-trix-placeholder\", e.config.lang.captionPlaceholder), t;\n }, o.prototype.refresh = function (t) {\n var e;\n return null == t && (t = null != (e = this.findElement()) ? e.querySelector(\"img\") : void 0), t ? this.updateAttributesForImage(t) : void 0;\n }, o.prototype.updateAttributesForImage = function (t) {\n var e, n, i, o, r, s;\n return r = this.attachment.getURL(), n = this.attachment.getPreviewURL(), t.src = n || r, n === r ? t.removeAttribute(\"data-trix-serialized-attributes\") : (i = JSON.stringify({\n src: r\n }), t.setAttribute(\"data-trix-serialized-attributes\", i)), s = this.attachment.getWidth(), e = this.attachment.getHeight(), null != s && (t.width = s), null != e && (t.height = e), o = [\"imageElement\", this.attachment.id, t.src, t.width, t.height].join(\"/\"), t.dataset.trixStoreKey = o;\n }, o.prototype.attachmentDidChangeAttributes = function () {\n return this.refresh(this.image), this.refresh();\n }, o;\n }(e.AttachmentView);\n }.call(this), function () {\n var t,\n n,\n i,\n o = function o(t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) r.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n r = {}.hasOwnProperty;\n i = e.makeElement, t = e.findInnerElement, n = e.getTextConfig, e.PieceView = function (r) {\n function s() {\n var t;\n s.__super__.constructor.apply(this, arguments), this.piece = this.object, this.attributes = this.piece.getAttributes(), t = this.options, this.textConfig = t.textConfig, this.context = t.context, this.piece.attachment ? this.attachment = this.piece.attachment : this.string = this.piece.toString();\n }\n var a;\n return o(s, r), s.prototype.createNodes = function () {\n var e, n, i, o, r, s;\n if (s = this.attachment ? this.createAttachmentNodes() : this.createStringNodes(), e = this.createElement()) {\n for (i = t(e), n = 0, o = s.length; o > n; n++) r = s[n], i.appendChild(r);\n s = [e];\n }\n return s;\n }, s.prototype.createAttachmentNodes = function () {\n var t, n;\n return t = this.attachment.isPreviewable() ? e.PreviewableAttachmentView : e.AttachmentView, n = this.createChildView(t, this.piece.attachment, {\n piece: this.piece\n }), n.getNodes();\n }, s.prototype.createStringNodes = function () {\n var t, e, n, o, r, s, a, u, c, l;\n if (null != (u = this.textConfig) ? u.plaintext : void 0) return [document.createTextNode(this.string)];\n for (a = [], c = this.string.split(\"\\n\"), n = e = 0, o = c.length; o > e; n = ++e) l = c[n], n > 0 && (t = i(\"br\"), a.push(t)), (r = l.length) && (s = document.createTextNode(this.preserveSpaces(l)), a.push(s));\n return a;\n }, s.prototype.createElement = function () {\n var t, e, o, r, s, a, u, c, l;\n c = {}, a = this.attributes;\n for (r in a) if (l = a[r], (t = n(r)) && (t.tagName && (s = i(t.tagName), o ? (o.appendChild(s), o = s) : e = o = s), t.styleProperty && (c[t.styleProperty] = l), t.style)) {\n u = t.style;\n for (r in u) l = u[r], c[r] = l;\n }\n if (Object.keys(c).length) {\n null == e && (e = i(\"span\"));\n for (r in c) l = c[r], e.style[r] = l;\n }\n return e;\n }, s.prototype.createContainerElement = function () {\n var t, e, o, r, s;\n r = this.attributes;\n for (o in r) if (s = r[o], (e = n(o)) && e.groupTagName) return t = {}, t[o] = s, i(e.groupTagName, t);\n }, a = e.NON_BREAKING_SPACE, s.prototype.preserveSpaces = function (t) {\n return this.context.isLast && (t = t.replace(/\\ $/, a)), t = t.replace(/(\\S)\\ {3}(\\S)/g, \"$1 \" + a + \" $2\").replace(/\\ {2}/g, a + \" \").replace(/\\ {2}/g, \" \" + a), (this.context.isFirst || this.context.followsWhitespace) && (t = t.replace(/^\\ /, a)), t;\n }, s;\n }(e.ObjectView);\n }.call(this), function () {\n var t = function t(_t11, e) {\n function i() {\n this.constructor = _t11;\n }\n for (var o in e) n.call(e, o) && (_t11[o] = e[o]);\n return i.prototype = e.prototype, _t11.prototype = new i(), _t11.__super__ = e.prototype, _t11;\n },\n n = {}.hasOwnProperty;\n e.TextView = function (n) {\n function i() {\n i.__super__.constructor.apply(this, arguments), this.text = this.object, this.textConfig = this.options.textConfig;\n }\n var o;\n return t(i, n), i.prototype.createNodes = function () {\n var t, n, i, r, s, a, u, c, l, h;\n for (a = [], c = e.ObjectGroup.groupObjects(this.getPieces()), r = c.length - 1, i = n = 0, s = c.length; s > n; i = ++n) u = c[i], t = {}, 0 === i && (t.isFirst = !0), i === r && (t.isLast = !0), o(l) && (t.followsWhitespace = !0), h = this.findOrCreateCachedChildView(e.PieceView, u, {\n textConfig: this.textConfig,\n context: t\n }), a.push.apply(a, h.getNodes()), l = u;\n return a;\n }, i.prototype.getPieces = function () {\n var t, e, n, i, o;\n for (i = this.text.getPieces(), o = [], t = 0, e = i.length; e > t; t++) n = i[t], n.hasAttribute(\"blockBreak\") || o.push(n);\n return o;\n }, o = function o(t) {\n return /\\s$/.test(null != t ? t.toString() : void 0);\n }, i;\n }(e.ObjectView);\n }.call(this), function () {\n var t,\n n,\n i,\n o = function o(t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) r.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n r = {}.hasOwnProperty;\n i = e.makeElement, n = e.getBlockConfig, t = e.config.css, e.BlockView = function (r) {\n function s() {\n s.__super__.constructor.apply(this, arguments), this.block = this.object, this.attributes = this.block.getAttributes();\n }\n return o(s, r), s.prototype.createNodes = function () {\n var t, o, r, s, a, u, c, l, h, p, d;\n if (o = document.createComment(\"block\"), c = [o], this.block.isEmpty() ? c.push(i(\"br\")) : (p = null != (l = n(this.block.getLastAttribute())) ? l.text : void 0, d = this.findOrCreateCachedChildView(e.TextView, this.block.text, {\n textConfig: p\n }), c.push.apply(c, d.getNodes()), this.shouldAddExtraNewlineElement() && c.push(i(\"br\"))), this.attributes.length) return c;\n for (h = e.config.blockAttributes[\"default\"].tagName, this.block.isRTL() && (t = {\n dir: \"rtl\"\n }), r = i({\n tagName: h,\n attributes: t\n }), s = 0, a = c.length; a > s; s++) u = c[s], r.appendChild(u);\n return [r];\n }, s.prototype.createContainerElement = function (e) {\n var o, r, s, a, u;\n return o = this.attributes[e], u = n(o).tagName, 0 === e && this.block.isRTL() && (r = {\n dir: \"rtl\"\n }), \"attachmentGallery\" === o && (a = this.block.getBlockBreakPosition(), s = t.attachmentGallery + \" \" + t.attachmentGallery + \"--\" + a), i({\n tagName: u,\n className: s,\n attributes: r\n });\n }, s.prototype.shouldAddExtraNewlineElement = function () {\n return /\\n\\n$/.test(this.block.toString());\n }, s;\n }(e.ObjectView);\n }.call(this), function () {\n var t,\n n,\n i = function i(t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) o.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n o = {}.hasOwnProperty;\n t = e.defer, n = e.makeElement, e.DocumentView = function (o) {\n function r() {\n r.__super__.constructor.apply(this, arguments), this.element = this.options.element, this.elementStore = new e.ElementStore(), this.setDocument(this.object);\n }\n var s, a, u;\n return i(r, o), r.render = function (t) {\n var e, i;\n return e = n(\"div\"), i = new this(t, {\n element: e\n }), i.render(), i.sync(), e;\n }, r.prototype.setDocument = function (t) {\n return t.isEqualTo(this.document) ? void 0 : this.document = this.object = t;\n }, r.prototype.render = function () {\n var t, i, o, r, s, a, u;\n if (this.childViews = [], this.shadowElement = n(\"div\"), !this.document.isEmpty()) {\n for (s = e.ObjectGroup.groupObjects(this.document.getBlocks(), {\n asTree: !0\n }), a = [], t = 0, i = s.length; i > t; t++) r = s[t], u = this.findOrCreateCachedChildView(e.BlockView, r), a.push(function () {\n var t, e, n, i;\n for (n = u.getNodes(), i = [], t = 0, e = n.length; e > t; t++) o = n[t], i.push(this.shadowElement.appendChild(o));\n return i;\n }.call(this));\n return a;\n }\n }, r.prototype.isSynced = function () {\n return s(this.shadowElement, this.element);\n }, r.prototype.sync = function () {\n var t;\n for (t = this.createDocumentFragmentForSync(); this.element.lastChild;) this.element.removeChild(this.element.lastChild);\n return this.element.appendChild(t), this.didSync();\n }, r.prototype.didSync = function () {\n return this.elementStore.reset(a(this.element)), t(function (t) {\n return function () {\n return t.garbageCollectCachedViews();\n };\n }(this));\n }, r.prototype.createDocumentFragmentForSync = function () {\n var t, e, n, i, o, r, s, u, c, l;\n for (e = document.createDocumentFragment(), u = this.shadowElement.childNodes, n = 0, o = u.length; o > n; n++) s = u[n], e.appendChild(s.cloneNode(!0));\n for (c = a(e), i = 0, r = c.length; r > i; i++) t = c[i], (l = this.elementStore.remove(t)) && t.parentNode.replaceChild(l, t);\n return e;\n }, a = function a(t) {\n return t.querySelectorAll(\"[data-trix-store-key]\");\n }, s = function s(t, e) {\n return u(t.innerHTML) === u(e.innerHTML);\n }, u = function u(t) {\n return t.replace(/ /g, \" \");\n }, r;\n }(e.ObjectView);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s = function s(t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n a = function a(t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) u.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n u = {}.hasOwnProperty;\n i = e.findClosestElementFromNode, o = e.handleEvent, r = e.innerElementIsActive, n = e.defer, t = e.AttachmentView.attachmentSelector, e.CompositionController = function (u) {\n function c(n, i) {\n this.element = n, this.composition = i, this.didClickAttachment = s(this.didClickAttachment, this), this.didBlur = s(this.didBlur, this), this.didFocus = s(this.didFocus, this), this.documentView = new e.DocumentView(this.composition.document, {\n element: this.element\n }), o(\"focus\", {\n onElement: this.element,\n withCallback: this.didFocus\n }), o(\"blur\", {\n onElement: this.element,\n withCallback: this.didBlur\n }), o(\"click\", {\n onElement: this.element,\n matchingSelector: \"a[contenteditable=false]\",\n preventDefault: !0\n }), o(\"mousedown\", {\n onElement: this.element,\n matchingSelector: t,\n withCallback: this.didClickAttachment\n }), o(\"click\", {\n onElement: this.element,\n matchingSelector: \"a\" + t,\n preventDefault: !0\n });\n }\n return a(c, u), c.prototype.didFocus = function () {\n var t, e, n;\n return t = function (t) {\n return function () {\n var e;\n return t.focused ? void 0 : (t.focused = !0, null != (e = t.delegate) && \"function\" == typeof e.compositionControllerDidFocus ? e.compositionControllerDidFocus() : void 0);\n };\n }(this), null != (e = null != (n = this.blurPromise) ? n.then(t) : void 0) ? e : t();\n }, c.prototype.didBlur = function () {\n return this.blurPromise = new Promise(function (t) {\n return function (e) {\n return n(function () {\n var n;\n return r(t.element) || (t.focused = null, null != (n = t.delegate) && \"function\" == typeof n.compositionControllerDidBlur && n.compositionControllerDidBlur()), t.blurPromise = null, e();\n });\n };\n }(this));\n }, c.prototype.didClickAttachment = function (t, e) {\n var n, o, r;\n return n = this.findAttachmentForElement(e), o = null != i(t.target, {\n matchingSelector: \"figcaption\"\n }), null != (r = this.delegate) && \"function\" == typeof r.compositionControllerDidSelectAttachment ? r.compositionControllerDidSelectAttachment(n, {\n editCaption: o\n }) : void 0;\n }, c.prototype.getSerializableElement = function () {\n return this.isEditingAttachment() ? this.documentView.shadowElement : this.element;\n }, c.prototype.render = function () {\n var t, e, n;\n return 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 != (t = this.delegate) && \"function\" == typeof t.compositionControllerWillSyncDocumentView && t.compositionControllerWillSyncDocumentView(), this.documentView.sync(), null != (e = this.delegate) && \"function\" == typeof e.compositionControllerDidSyncDocumentView && e.compositionControllerDidSyncDocumentView()), null != (n = this.delegate) && \"function\" == typeof n.compositionControllerDidRender ? n.compositionControllerDidRender() : void 0;\n }, c.prototype.rerenderViewForObject = function (t) {\n return this.invalidateViewForObject(t), this.render();\n }, c.prototype.invalidateViewForObject = function (t) {\n return this.documentView.invalidateViewForObject(t);\n }, c.prototype.isViewCachingEnabled = function () {\n return this.documentView.isViewCachingEnabled();\n }, c.prototype.enableViewCaching = function () {\n return this.documentView.enableViewCaching();\n }, c.prototype.disableViewCaching = function () {\n return this.documentView.disableViewCaching();\n }, c.prototype.refreshViewCache = function () {\n return this.documentView.garbageCollectCachedViews();\n }, c.prototype.isEditingAttachment = function () {\n return null != this.attachmentEditor;\n }, c.prototype.installAttachmentEditorForAttachment = function (t, n) {\n var i, o, r;\n if ((null != (r = this.attachmentEditor) ? r.attachment : void 0) !== t && (o = this.documentView.findElementForObject(t))) return this.uninstallAttachmentEditor(), i = this.composition.document.getAttachmentPieceForAttachment(t), this.attachmentEditor = new e.AttachmentEditorController(i, o, this.element, n), this.attachmentEditor.delegate = this;\n }, c.prototype.uninstallAttachmentEditor = function () {\n var t;\n return null != (t = this.attachmentEditor) ? t.uninstall() : void 0;\n }, c.prototype.didUninstallAttachmentEditor = function () {\n return this.attachmentEditor = null, this.render();\n }, c.prototype.attachmentEditorDidRequestUpdatingAttributesForAttachment = function (t, e) {\n var n;\n return null != (n = this.delegate) && \"function\" == typeof n.compositionControllerWillUpdateAttachment && n.compositionControllerWillUpdateAttachment(e), this.composition.updateAttributesForAttachment(t, e);\n }, c.prototype.attachmentEditorDidRequestRemovingAttributeForAttachment = function (t, e) {\n var n;\n return null != (n = this.delegate) && \"function\" == typeof n.compositionControllerWillUpdateAttachment && n.compositionControllerWillUpdateAttachment(e), this.composition.removeAttributeForAttachment(t, e);\n }, c.prototype.attachmentEditorDidRequestRemovalOfAttachment = function (t) {\n var e;\n return null != (e = this.delegate) && \"function\" == typeof e.compositionControllerDidRequestRemovalOfAttachment ? e.compositionControllerDidRequestRemovalOfAttachment(t) : void 0;\n }, c.prototype.attachmentEditorDidRequestDeselectingAttachment = function (t) {\n var e;\n return null != (e = this.delegate) && \"function\" == typeof e.compositionControllerDidRequestDeselectingAttachment ? e.compositionControllerDidRequestDeselectingAttachment(t) : void 0;\n }, c.prototype.canSyncDocumentView = function () {\n return !this.isEditingAttachment();\n }, c.prototype.findAttachmentForElement = function (t) {\n return this.composition.document.getAttachmentById(parseInt(t.dataset.trixId, 10));\n }, c;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o = function o(t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n r = function r(t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) s.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n s = {}.hasOwnProperty;\n n = e.handleEvent, i = e.triggerEvent, t = e.findClosestElementFromNode, e.ToolbarController = function (e) {\n function s(t) {\n this.element = t, this.didKeyDownDialogInput = o(this.didKeyDownDialogInput, this), this.didClickDialogButton = o(this.didClickDialogButton, this), this.didClickAttributeButton = o(this.didClickAttributeButton, this), this.didClickActionButton = o(this.didClickActionButton, this), this.attributes = {}, this.actions = {}, this.resetDialogInputs(), n(\"mousedown\", {\n onElement: this.element,\n matchingSelector: a,\n withCallback: this.didClickActionButton\n }), n(\"mousedown\", {\n onElement: this.element,\n matchingSelector: c,\n withCallback: this.didClickAttributeButton\n }), n(\"click\", {\n onElement: this.element,\n matchingSelector: v,\n preventDefault: !0\n }), n(\"click\", {\n onElement: this.element,\n matchingSelector: l,\n withCallback: this.didClickDialogButton\n }), n(\"keydown\", {\n onElement: this.element,\n matchingSelector: h,\n withCallback: this.didKeyDownDialogInput\n });\n }\n var a, u, c, l, h, p, d, f, g, m, v;\n return r(s, e), c = \"[data-trix-attribute]\", a = \"[data-trix-action]\", v = c + \", \" + a, p = \"[data-trix-dialog]\", u = p + \"[data-trix-active]\", l = p + \" [data-trix-method]\", h = p + \" [data-trix-input]\", s.prototype.didClickActionButton = function (t, e) {\n var n, i, o;\n return null != (i = this.delegate) && i.toolbarDidClickButton(), t.preventDefault(), n = d(e), this.getDialog(n) ? this.toggleDialog(n) : null != (o = this.delegate) ? o.toolbarDidInvokeAction(n) : void 0;\n }, s.prototype.didClickAttributeButton = function (t, e) {\n var n, i, o;\n return null != (i = this.delegate) && i.toolbarDidClickButton(), t.preventDefault(), n = f(e), this.getDialog(n) ? this.toggleDialog(n) : null != (o = this.delegate) && o.toolbarDidToggleAttribute(n), this.refreshAttributeButtons();\n }, s.prototype.didClickDialogButton = function (e, n) {\n var i, o;\n return i = t(n, {\n matchingSelector: p\n }), o = n.getAttribute(\"data-trix-method\"), this[o].call(this, i);\n }, s.prototype.didKeyDownDialogInput = function (t, e) {\n var n, i;\n return 13 === t.keyCode && (t.preventDefault(), n = e.getAttribute(\"name\"), i = this.getDialog(n), this.setAttribute(i)), 27 === t.keyCode ? (t.preventDefault(), this.hideDialog()) : void 0;\n }, s.prototype.updateActions = function (t) {\n return this.actions = t, this.refreshActionButtons();\n }, s.prototype.refreshActionButtons = function () {\n return this.eachActionButton(function (t) {\n return function (e, n) {\n return e.disabled = t.actions[n] === !1;\n };\n }(this));\n }, s.prototype.eachActionButton = function (t) {\n var e, n, i, o, r;\n for (o = this.element.querySelectorAll(a), r = [], n = 0, i = o.length; i > n; n++) e = o[n], r.push(t(e, d(e)));\n return r;\n }, s.prototype.updateAttributes = function (t) {\n return this.attributes = t, this.refreshAttributeButtons();\n }, s.prototype.refreshAttributeButtons = function () {\n return this.eachAttributeButton(function (t) {\n return function (e, n) {\n return e.disabled = t.attributes[n] === !1, t.attributes[n] || t.dialogIsVisible(n) ? (e.setAttribute(\"data-trix-active\", \"\"), e.classList.add(\"trix-active\")) : (e.removeAttribute(\"data-trix-active\"), e.classList.remove(\"trix-active\"));\n };\n }(this));\n }, s.prototype.eachAttributeButton = function (t) {\n var e, n, i, o, r;\n for (o = this.element.querySelectorAll(c), r = [], n = 0, i = o.length; i > n; n++) e = o[n], r.push(t(e, f(e)));\n return r;\n }, s.prototype.applyKeyboardCommand = function (t) {\n var e, n, o, r, s, a, u;\n for (s = JSON.stringify(t.sort()), u = this.element.querySelectorAll(\"[data-trix-key]\"), r = 0, a = u.length; a > r; r++) if (e = u[r], o = e.getAttribute(\"data-trix-key\").split(\"+\"), n = JSON.stringify(o.sort()), n === s) return i(\"mousedown\", {\n onElement: e\n }), !0;\n return !1;\n }, s.prototype.dialogIsVisible = function (t) {\n var e;\n return (e = this.getDialog(t)) ? e.hasAttribute(\"data-trix-active\") : void 0;\n }, s.prototype.toggleDialog = function (t) {\n return this.dialogIsVisible(t) ? this.hideDialog() : this.showDialog(t);\n }, s.prototype.showDialog = function (t) {\n var e, n, i, o, r, s, a, u, c, l;\n for (this.hideDialog(), null != (a = this.delegate) && a.toolbarWillShowDialog(), i = this.getDialog(t), i.setAttribute(\"data-trix-active\", \"\"), i.classList.add(\"trix-active\"), u = i.querySelectorAll(\"input[disabled]\"), o = 0, s = u.length; s > o; o++) n = u[o], n.removeAttribute(\"disabled\");\n return (e = f(i)) && (r = m(i, t)) && (r.value = null != (c = this.attributes[e]) ? c : \"\", r.select()), null != (l = this.delegate) ? l.toolbarDidShowDialog(t) : void 0;\n }, s.prototype.setAttribute = function (t) {\n var e, n, i;\n return e = f(t), n = m(t, e), n.willValidate && !n.checkValidity() ? (n.setAttribute(\"data-trix-validate\", \"\"), n.classList.add(\"trix-validate\"), n.focus()) : (null != (i = this.delegate) && i.toolbarDidUpdateAttribute(e, n.value), this.hideDialog());\n }, s.prototype.removeAttribute = function (t) {\n var e, n;\n return e = f(t), null != (n = this.delegate) && n.toolbarDidRemoveAttribute(e), this.hideDialog();\n }, s.prototype.hideDialog = function () {\n var t, e;\n return (t = this.element.querySelector(u)) ? (t.removeAttribute(\"data-trix-active\"), t.classList.remove(\"trix-active\"), this.resetDialogInputs(), null != (e = this.delegate) ? e.toolbarDidHideDialog(g(t)) : void 0) : void 0;\n }, s.prototype.resetDialogInputs = function () {\n var t, e, n, i, o;\n for (i = this.element.querySelectorAll(h), o = [], t = 0, n = i.length; n > t; t++) e = i[t], e.setAttribute(\"disabled\", \"disabled\"), e.removeAttribute(\"data-trix-validate\"), o.push(e.classList.remove(\"trix-validate\"));\n return o;\n }, s.prototype.getDialog = function (t) {\n return this.element.querySelector(\"[data-trix-dialog=\" + t + \"]\");\n }, m = function m(t, e) {\n return null == e && (e = f(t)), t.querySelector(\"[data-trix-input][name='\" + e + \"']\");\n }, d = function d(t) {\n return t.getAttribute(\"data-trix-action\");\n }, f = function f(t) {\n var e;\n return null != (e = t.getAttribute(\"data-trix-attribute\")) ? e : t.getAttribute(\"data-trix-dialog-attribute\");\n }, g = function g(t) {\n return t.getAttribute(\"data-trix-dialog\");\n }, s;\n }(e.BasicObject);\n }.call(this), function () {\n var t = function t(_t12, e) {\n function i() {\n this.constructor = _t12;\n }\n for (var o in e) n.call(e, o) && (_t12[o] = e[o]);\n return i.prototype = e.prototype, _t12.prototype = new i(), _t12.__super__ = e.prototype, _t12;\n },\n n = {}.hasOwnProperty;\n e.ImagePreloadOperation = function (e) {\n function n(t) {\n this.url = t;\n }\n return t(n, e), n.prototype.perform = function (t) {\n var e;\n return e = new Image(), e.onload = function (n) {\n return function () {\n return e.width = n.width = e.naturalWidth, e.height = n.height = e.naturalHeight, t(!0, e);\n };\n }(this), e.onerror = function () {\n return t(!1);\n }, e.src = this.url;\n }, n;\n }(e.Operation);\n }.call(this), function () {\n var t = function t(_t13, e) {\n return function () {\n return _t13.apply(e, arguments);\n };\n },\n n = function n(t, e) {\n function n() {\n this.constructor = t;\n }\n for (var o in e) i.call(e, o) && (t[o] = e[o]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty;\n e.Attachment = function (i) {\n function o(n) {\n null == n && (n = {}), this.releaseFile = t(this.releaseFile, this), o.__super__.constructor.apply(this, arguments), this.attributes = e.Hash.box(n), this.didChangeAttributes();\n }\n return n(o, i), o.previewablePattern = /^image(\\/(gif|png|jpe?g)|$)/, o.attachmentForFile = function (t) {\n var e, n;\n return n = this.attributesForFile(t), e = new this(n), e.setFile(t), e;\n }, o.attributesForFile = function (t) {\n return new e.Hash({\n filename: t.name,\n filesize: t.size,\n contentType: t.type\n });\n }, o.fromJSON = function (t) {\n return new this(t);\n }, o.prototype.getAttribute = function (t) {\n return this.attributes.get(t);\n }, o.prototype.hasAttribute = function (t) {\n return this.attributes.has(t);\n }, o.prototype.getAttributes = function () {\n return this.attributes.toObject();\n }, o.prototype.setAttributes = function (t) {\n var e, n, i;\n return null == t && (t = {}), e = this.attributes.merge(t), this.attributes.isEqualTo(e) ? void 0 : (this.attributes = e, this.didChangeAttributes(), null != (n = this.previewDelegate) && \"function\" == typeof n.attachmentDidChangeAttributes && n.attachmentDidChangeAttributes(this), null != (i = this.delegate) && \"function\" == typeof i.attachmentDidChangeAttributes ? i.attachmentDidChangeAttributes(this) : void 0);\n }, o.prototype.didChangeAttributes = function () {\n return this.isPreviewable() ? this.preloadURL() : void 0;\n }, o.prototype.isPending = function () {\n return null != this.file && !(this.getURL() || this.getHref());\n }, o.prototype.isPreviewable = function () {\n return this.attributes.has(\"previewable\") ? this.attributes.get(\"previewable\") : this.constructor.previewablePattern.test(this.getContentType());\n }, o.prototype.getType = function () {\n return this.hasContent() ? \"content\" : this.isPreviewable() ? \"preview\" : \"file\";\n }, o.prototype.getURL = function () {\n return this.attributes.get(\"url\");\n }, o.prototype.getHref = function () {\n return this.attributes.get(\"href\");\n }, o.prototype.getFilename = function () {\n var t;\n return null != (t = this.attributes.get(\"filename\")) ? t : \"\";\n }, o.prototype.getFilesize = function () {\n return this.attributes.get(\"filesize\");\n }, o.prototype.getFormattedFilesize = function () {\n var t;\n return t = this.attributes.get(\"filesize\"), \"number\" == typeof t ? e.config.fileSize.formatter(t) : \"\";\n }, o.prototype.getExtension = function () {\n var t;\n return null != (t = this.getFilename().match(/\\.(\\w+)$/)) ? t[1].toLowerCase() : void 0;\n }, o.prototype.getContentType = function () {\n return this.attributes.get(\"contentType\");\n }, o.prototype.hasContent = function () {\n return this.attributes.has(\"content\");\n }, o.prototype.getContent = function () {\n return this.attributes.get(\"content\");\n }, o.prototype.getWidth = function () {\n return this.attributes.get(\"width\");\n }, o.prototype.getHeight = function () {\n return this.attributes.get(\"height\");\n }, o.prototype.getFile = function () {\n return this.file;\n }, o.prototype.setFile = function (t) {\n return this.file = t, this.isPreviewable() ? this.preloadFile() : void 0;\n }, o.prototype.releaseFile = function () {\n return this.releasePreloadedFile(), this.file = null;\n }, o.prototype.getUploadProgress = function () {\n var t;\n return null != (t = this.uploadProgress) ? t : 0;\n }, o.prototype.setUploadProgress = function (t) {\n var e;\n return this.uploadProgress !== t ? (this.uploadProgress = t, null != (e = this.uploadProgressDelegate) && \"function\" == typeof e.attachmentDidChangeUploadProgress ? e.attachmentDidChangeUploadProgress(this) : void 0) : void 0;\n }, o.prototype.toJSON = function () {\n return this.getAttributes();\n }, o.prototype.getCacheKey = function () {\n return [o.__super__.getCacheKey.apply(this, arguments), this.attributes.getCacheKey(), this.getPreviewURL()].join(\"/\");\n }, o.prototype.getPreviewURL = function () {\n return this.previewURL || this.preloadingURL;\n }, o.prototype.setPreviewURL = function (t) {\n var e, n;\n return t !== this.getPreviewURL() ? (this.previewURL = t, null != (e = this.previewDelegate) && \"function\" == typeof e.attachmentDidChangeAttributes && e.attachmentDidChangeAttributes(this), null != (n = this.delegate) && \"function\" == typeof n.attachmentDidChangePreviewURL ? n.attachmentDidChangePreviewURL(this) : void 0) : void 0;\n }, o.prototype.preloadURL = function () {\n return this.preload(this.getURL(), this.releaseFile);\n }, o.prototype.preloadFile = function () {\n return this.file ? (this.fileObjectURL = URL.createObjectURL(this.file), this.preload(this.fileObjectURL)) : void 0;\n }, o.prototype.releasePreloadedFile = function () {\n return this.fileObjectURL ? (URL.revokeObjectURL(this.fileObjectURL), this.fileObjectURL = null) : void 0;\n }, o.prototype.preload = function (t, n) {\n var i;\n return t && t !== this.getPreviewURL() ? (this.preloadingURL = t, i = new e.ImagePreloadOperation(t), i.then(function (e) {\n return function (i) {\n var o, r;\n return r = i.width, o = i.height, e.getWidth() && e.getHeight() || e.setAttributes({\n width: r,\n height: o\n }), e.preloadingURL = null, e.setPreviewURL(t), \"function\" == typeof n ? n() : void 0;\n };\n }(this))[\"catch\"](function (t) {\n return function () {\n return t.preloadingURL = null, \"function\" == typeof n ? n() : void 0;\n };\n }(this))) : void 0;\n }, o;\n }(e.Object);\n }.call(this), function () {\n var t = function t(_t14, e) {\n function i() {\n this.constructor = _t14;\n }\n for (var o in e) n.call(e, o) && (_t14[o] = e[o]);\n return i.prototype = e.prototype, _t14.prototype = new i(), _t14.__super__ = e.prototype, _t14;\n },\n n = {}.hasOwnProperty;\n e.Piece = function (n) {\n function i(t, n) {\n null == n && (n = {}), i.__super__.constructor.apply(this, arguments), this.attributes = e.Hash.box(n);\n }\n return t(i, n), i.types = {}, i.registerType = function (t, e) {\n return e.type = t, this.types[t] = e;\n }, i.fromJSON = function (t) {\n var e;\n return (e = this.types[t.type]) ? e.fromJSON(t) : void 0;\n }, i.prototype.copyWithAttributes = function (t) {\n return new this.constructor(this.getValue(), t);\n }, i.prototype.copyWithAdditionalAttributes = function (t) {\n return this.copyWithAttributes(this.attributes.merge(t));\n }, i.prototype.copyWithoutAttribute = function (t) {\n return this.copyWithAttributes(this.attributes.remove(t));\n }, i.prototype.copy = function () {\n return this.copyWithAttributes(this.attributes);\n }, i.prototype.getAttribute = function (t) {\n return this.attributes.get(t);\n }, i.prototype.getAttributesHash = function () {\n return this.attributes;\n }, i.prototype.getAttributes = function () {\n return this.attributes.toObject();\n }, i.prototype.getCommonAttributes = function () {\n var t, e, n;\n return (n = pieceList.getPieceAtIndex(0)) ? (t = n.attributes, e = t.getKeys(), pieceList.eachPiece(function (n) {\n return e = t.getKeysCommonToHash(n.attributes), t = t.slice(e);\n }), t.toObject()) : {};\n }, i.prototype.hasAttribute = function (t) {\n return this.attributes.has(t);\n }, i.prototype.hasSameStringValueAsPiece = function (t) {\n return null != t && this.toString() === t.toString();\n }, i.prototype.hasSameAttributesAsPiece = function (t) {\n return null != t && (this.attributes === t.attributes || this.attributes.isEqualTo(t.attributes));\n }, i.prototype.isBlockBreak = function () {\n return !1;\n }, i.prototype.isEqualTo = function (t) {\n return i.__super__.isEqualTo.apply(this, arguments) || this.hasSameConstructorAs(t) && this.hasSameStringValueAsPiece(t) && this.hasSameAttributesAsPiece(t);\n }, i.prototype.isEmpty = function () {\n return 0 === this.length;\n }, i.prototype.isSerializable = function () {\n return !0;\n }, i.prototype.toJSON = function () {\n return {\n type: this.constructor.type,\n attributes: this.getAttributes()\n };\n }, i.prototype.contentsForInspection = function () {\n return {\n type: this.constructor.type,\n attributes: this.attributes.inspect()\n };\n }, i.prototype.canBeGrouped = function () {\n return this.hasAttribute(\"href\");\n }, i.prototype.canBeGroupedWith = function (t) {\n return this.getAttribute(\"href\") === t.getAttribute(\"href\");\n }, i.prototype.getLength = function () {\n return this.length;\n }, i.prototype.canBeConsolidatedWith = function () {\n return !1;\n }, i;\n }(e.Object);\n }.call(this), function () {\n var t = function t(_t15, e) {\n function i() {\n this.constructor = _t15;\n }\n for (var o in e) n.call(e, o) && (_t15[o] = e[o]);\n return i.prototype = e.prototype, _t15.prototype = new i(), _t15.__super__ = e.prototype, _t15;\n },\n n = {}.hasOwnProperty;\n e.Piece.registerType(\"attachment\", e.AttachmentPiece = function (n) {\n function i(t) {\n this.attachment = t, i.__super__.constructor.apply(this, arguments), this.length = 1, this.ensureAttachmentExclusivelyHasAttribute(\"href\"), this.attachment.hasContent() || this.removeProhibitedAttributes();\n }\n return t(i, n), i.fromJSON = function (t) {\n return new this(e.Attachment.fromJSON(t.attachment), t.attributes);\n }, i.permittedAttributes = [\"caption\", \"presentation\"], i.prototype.ensureAttachmentExclusivelyHasAttribute = function (t) {\n return this.hasAttribute(t) ? (this.attachment.hasAttribute(t) || this.attachment.setAttributes(this.attributes.slice(t)), this.attributes = this.attributes.remove(t)) : void 0;\n }, i.prototype.removeProhibitedAttributes = function () {\n var t;\n return t = this.attributes.slice(this.constructor.permittedAttributes), t.isEqualTo(this.attributes) ? void 0 : this.attributes = t;\n }, i.prototype.getValue = function () {\n return this.attachment;\n }, i.prototype.isSerializable = function () {\n return !this.attachment.isPending();\n }, i.prototype.getCaption = function () {\n var t;\n return null != (t = this.attributes.get(\"caption\")) ? t : \"\";\n }, i.prototype.isEqualTo = function (t) {\n var e;\n return i.__super__.isEqualTo.apply(this, arguments) && this.attachment.id === (null != t && null != (e = t.attachment) ? e.id : void 0);\n }, i.prototype.toString = function () {\n return e.OBJECT_REPLACEMENT_CHARACTER;\n }, i.prototype.toJSON = function () {\n var t;\n return t = i.__super__.toJSON.apply(this, arguments), t.attachment = this.attachment, t;\n }, i.prototype.getCacheKey = function () {\n return [i.__super__.getCacheKey.apply(this, arguments), this.attachment.getCacheKey()].join(\"/\");\n }, i.prototype.toConsole = function () {\n return JSON.stringify(this.toString());\n }, i;\n }(e.Piece));\n }.call(this), function () {\n var t,\n n = function n(t, e) {\n function n() {\n this.constructor = t;\n }\n for (var o in e) i.call(e, o) && (t[o] = e[o]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty;\n t = e.normalizeNewlines, e.Piece.registerType(\"string\", e.StringPiece = function (e) {\n function i(e) {\n i.__super__.constructor.apply(this, arguments), this.string = t(e), this.length = this.string.length;\n }\n return n(i, e), i.fromJSON = function (t) {\n return new this(t.string, t.attributes);\n }, i.prototype.getValue = function () {\n return this.string;\n }, i.prototype.toString = function () {\n return this.string.toString();\n }, i.prototype.isBlockBreak = function () {\n return \"\\n\" === this.toString() && this.getAttribute(\"blockBreak\") === !0;\n }, i.prototype.toJSON = function () {\n var t;\n return t = i.__super__.toJSON.apply(this, arguments), t.string = this.string, t;\n }, i.prototype.canBeConsolidatedWith = function (t) {\n return null != t && this.hasSameConstructorAs(t) && this.hasSameAttributesAsPiece(t);\n }, i.prototype.consolidateWith = function (t) {\n return new this.constructor(this.toString() + t.toString(), this.attributes);\n }, i.prototype.splitAtOffset = function (t) {\n var e, n;\n return 0 === t ? (e = null, n = this) : t === this.length ? (e = this, n = null) : (e = new this.constructor(this.string.slice(0, t), this.attributes), n = new this.constructor(this.string.slice(t), this.attributes)), [e, n];\n }, i.prototype.toConsole = function () {\n var t;\n return t = this.string, t.length > 15 && (t = t.slice(0, 14) + \"\\u2026\"), JSON.stringify(t.toString());\n }, i;\n }(e.Piece));\n }.call(this), function () {\n var t,\n n = function n(t, e) {\n function n() {\n this.constructor = t;\n }\n for (var o in e) i.call(e, o) && (t[o] = e[o]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty,\n o = [].slice;\n t = e.spliceArray, e.SplittableList = function (e) {\n function i(t) {\n null == t && (t = []), i.__super__.constructor.apply(this, arguments), this.objects = t.slice(0), this.length = this.objects.length;\n }\n var r, s, a;\n return n(i, e), i.box = function (t) {\n return t instanceof this ? t : new this(t);\n }, i.prototype.indexOf = function (t) {\n return this.objects.indexOf(t);\n }, i.prototype.splice = function () {\n var e;\n return e = 1 <= arguments.length ? o.call(arguments, 0) : [], new this.constructor(t.apply(null, [this.objects].concat(o.call(e))));\n }, i.prototype.eachObject = function (t) {\n var e, n, i, o, r, s;\n for (r = this.objects, s = [], n = e = 0, i = r.length; i > e; n = ++e) o = r[n], s.push(t(o, n));\n return s;\n }, i.prototype.insertObjectAtIndex = function (t, e) {\n return this.splice(e, 0, t);\n }, i.prototype.insertSplittableListAtIndex = function (t, e) {\n return this.splice.apply(this, [e, 0].concat(o.call(t.objects)));\n }, i.prototype.insertSplittableListAtPosition = function (t, e) {\n var n, i, o;\n return o = this.splitObjectAtPosition(e), i = o[0], n = o[1], new this.constructor(i).insertSplittableListAtIndex(t, n);\n }, i.prototype.editObjectAtIndex = function (t, e) {\n return this.replaceObjectAtIndex(e(this.objects[t]), t);\n }, i.prototype.replaceObjectAtIndex = function (t, e) {\n return this.splice(e, 1, t);\n }, i.prototype.removeObjectAtIndex = function (t) {\n return this.splice(t, 1);\n }, i.prototype.getObjectAtIndex = function (t) {\n return this.objects[t];\n }, i.prototype.getSplittableListInRange = function (t) {\n var e, n, i, o;\n return i = this.splitObjectsAtRange(t), n = i[0], e = i[1], o = i[2], new this.constructor(n.slice(e, o + 1));\n }, i.prototype.selectSplittableList = function (t) {\n var e, n;\n return n = function () {\n var n, i, o, r;\n for (o = this.objects, r = [], n = 0, i = o.length; i > n; n++) e = o[n], t(e) && r.push(e);\n return r;\n }.call(this), new this.constructor(n);\n }, i.prototype.removeObjectsInRange = function (t) {\n var e, n, i, o;\n return i = this.splitObjectsAtRange(t), n = i[0], e = i[1], o = i[2], new this.constructor(n).splice(e, o - e + 1);\n }, i.prototype.transformObjectsInRange = function (t, e) {\n var n, i, o, r, s, a, u;\n return s = this.splitObjectsAtRange(t), r = s[0], i = s[1], a = s[2], u = function () {\n var t, s, u;\n for (u = [], n = t = 0, s = r.length; s > t; n = ++t) o = r[n], u.push(n >= i && a >= n ? e(o) : o);\n return u;\n }(), new this.constructor(u);\n }, i.prototype.splitObjectsAtRange = function (t) {\n var e, n, i, o, s, u;\n return o = this.splitObjectAtPosition(a(t)), n = o[0], e = o[1], i = o[2], s = new this.constructor(n).splitObjectAtPosition(r(t) + i), n = s[0], u = s[1], [n, e, u - 1];\n }, i.prototype.getObjectAtPosition = function (t) {\n var e, n, i;\n return i = this.findIndexAndOffsetAtPosition(t), e = i.index, n = i.offset, this.objects[e];\n }, i.prototype.splitObjectAtPosition = function (t) {\n var e, n, i, o, r, s, a, u, c, l;\n return s = this.findIndexAndOffsetAtPosition(t), e = s.index, r = s.offset, o = this.objects.slice(0), null != e ? 0 === r ? (c = e, l = 0) : (i = this.getObjectAtIndex(e), a = i.splitAtOffset(r), n = a[0], u = a[1], o.splice(e, 1, n, u), c = e + 1, l = n.getLength() - r) : (c = o.length, l = 0), [o, c, l];\n }, i.prototype.consolidate = function () {\n var t, e, n, i, o, r;\n for (i = [], o = this.objects[0], r = this.objects.slice(1), t = 0, e = r.length; e > t; t++) n = r[t], (\"function\" == typeof o.canBeConsolidatedWith ? o.canBeConsolidatedWith(n) : void 0) ? o = o.consolidateWith(n) : (i.push(o), o = n);\n return null != o && i.push(o), new this.constructor(i);\n }, i.prototype.consolidateFromIndexToIndex = function (t, e) {\n var n, i, r;\n return i = this.objects.slice(0), r = i.slice(t, e + 1), n = new this.constructor(r).consolidate().toArray(), this.splice.apply(this, [t, r.length].concat(o.call(n)));\n }, i.prototype.findIndexAndOffsetAtPosition = function (t) {\n var e, n, i, o, r, s, a;\n for (e = 0, a = this.objects, i = n = 0, o = a.length; o > n; i = ++n) {\n if (s = a[i], r = e + s.getLength(), t >= e && r > t) return {\n index: i,\n offset: t - e\n };\n e = r;\n }\n return {\n index: null,\n offset: null\n };\n }, i.prototype.findPositionAtIndexAndOffset = function (t, e) {\n var n, i, o, r, s, a;\n for (s = 0, a = this.objects, n = i = 0, o = a.length; o > i; n = ++i) if (r = a[n], t > n) s += r.getLength();else if (n === t) {\n s += e;\n break;\n }\n return s;\n }, i.prototype.getEndPosition = function () {\n var t, e;\n return null != this.endPosition ? this.endPosition : this.endPosition = function () {\n var n, i, o;\n for (e = 0, o = this.objects, n = 0, i = o.length; i > n; n++) t = o[n], e += t.getLength();\n return e;\n }.call(this);\n }, i.prototype.toString = function () {\n return this.objects.join(\"\");\n }, i.prototype.toArray = function () {\n return this.objects.slice(0);\n }, i.prototype.toJSON = function () {\n return this.toArray();\n }, i.prototype.isEqualTo = function (t) {\n return i.__super__.isEqualTo.apply(this, arguments) || s(this.objects, null != t ? t.objects : void 0);\n }, s = function s(t, e) {\n var n, i, o, r, s;\n if (null == e && (e = []), t.length !== e.length) return !1;\n for (s = !0, i = n = 0, o = t.length; o > n; i = ++n) r = t[i], s && !r.isEqualTo(e[i]) && (s = !1);\n return s;\n }, i.prototype.contentsForInspection = function () {\n var t;\n return {\n objects: \"[\" + function () {\n var e, n, i, o;\n for (i = this.objects, o = [], e = 0, n = i.length; n > e; e++) t = i[e], o.push(t.inspect());\n return o;\n }.call(this).join(\", \") + \"]\"\n };\n }, a = function a(t) {\n return t[0];\n }, r = function r(t) {\n return t[1];\n }, i;\n }(e.Object);\n }.call(this), function () {\n var t = function t(_t16, e) {\n function i() {\n this.constructor = _t16;\n }\n for (var o in e) n.call(e, o) && (_t16[o] = e[o]);\n return i.prototype = e.prototype, _t16.prototype = new i(), _t16.__super__ = e.prototype, _t16;\n },\n n = {}.hasOwnProperty;\n e.Text = function (n) {\n function i(t) {\n var n;\n null == t && (t = []), i.__super__.constructor.apply(this, arguments), this.pieceList = new e.SplittableList(function () {\n var e, i, o;\n for (o = [], e = 0, i = t.length; i > e; e++) n = t[e], n.isEmpty() || o.push(n);\n return o;\n }());\n }\n return t(i, n), i.textForAttachmentWithAttributes = function (t, n) {\n var i;\n return i = new e.AttachmentPiece(t, n), new this([i]);\n }, i.textForStringWithAttributes = function (t, n) {\n var i;\n return i = new e.StringPiece(t, n), new this([i]);\n }, i.fromJSON = function (t) {\n var n, i;\n return i = function () {\n var i, o, r;\n for (r = [], i = 0, o = t.length; o > i; i++) n = t[i], r.push(e.Piece.fromJSON(n));\n return r;\n }(), new this(i);\n }, i.prototype.copy = function () {\n return this.copyWithPieceList(this.pieceList);\n }, i.prototype.copyWithPieceList = function (t) {\n return new this.constructor(t.consolidate().toArray());\n }, i.prototype.copyUsingObjectMap = function (t) {\n var e, n;\n return n = function () {\n var n, i, o, r, s;\n for (o = this.getPieces(), s = [], n = 0, i = o.length; i > n; n++) e = o[n], s.push(null != (r = t.find(e)) ? r : e);\n return s;\n }.call(this), new this.constructor(n);\n }, i.prototype.appendText = function (t) {\n return this.insertTextAtPosition(t, this.getLength());\n }, i.prototype.insertTextAtPosition = function (t, e) {\n return this.copyWithPieceList(this.pieceList.insertSplittableListAtPosition(t.pieceList, e));\n }, i.prototype.removeTextAtRange = function (t) {\n return this.copyWithPieceList(this.pieceList.removeObjectsInRange(t));\n }, i.prototype.replaceTextAtRange = function (t, e) {\n return this.removeTextAtRange(e).insertTextAtPosition(t, e[0]);\n }, i.prototype.moveTextFromRangeToPosition = function (t, e) {\n var n, i;\n if (!(t[0] <= e && e <= t[1])) return i = this.getTextAtRange(t), n = i.getLength(), t[0] < e && (e -= n), this.removeTextAtRange(t).insertTextAtPosition(i, e);\n }, i.prototype.addAttributeAtRange = function (t, e, n) {\n var i;\n return i = {}, i[t] = e, this.addAttributesAtRange(i, n);\n }, i.prototype.addAttributesAtRange = function (t, e) {\n return this.copyWithPieceList(this.pieceList.transformObjectsInRange(e, function (e) {\n return e.copyWithAdditionalAttributes(t);\n }));\n }, i.prototype.removeAttributeAtRange = function (t, e) {\n return this.copyWithPieceList(this.pieceList.transformObjectsInRange(e, function (e) {\n return e.copyWithoutAttribute(t);\n }));\n }, i.prototype.setAttributesAtRange = function (t, e) {\n return this.copyWithPieceList(this.pieceList.transformObjectsInRange(e, function (e) {\n return e.copyWithAttributes(t);\n }));\n }, i.prototype.getAttributesAtPosition = function (t) {\n var e, n;\n return null != (e = null != (n = this.pieceList.getObjectAtPosition(t)) ? n.getAttributes() : void 0) ? e : {};\n }, i.prototype.getCommonAttributes = function () {\n var t, n;\n return t = function () {\n var t, e, i, o;\n for (i = this.pieceList.toArray(), o = [], t = 0, e = i.length; e > t; t++) n = i[t], o.push(n.getAttributes());\n return o;\n }.call(this), e.Hash.fromCommonAttributesOfObjects(t).toObject();\n }, i.prototype.getCommonAttributesAtRange = function (t) {\n var e;\n return null != (e = this.getTextAtRange(t).getCommonAttributes()) ? e : {};\n }, i.prototype.getExpandedRangeForAttributeAtOffset = function (t, e) {\n var n, i, o;\n for (n = o = e, i = this.getLength(); n > 0 && this.getCommonAttributesAtRange([n - 1, o])[t];) n--;\n for (; i > o && this.getCommonAttributesAtRange([e, o + 1])[t];) o++;\n return [n, o];\n }, i.prototype.getTextAtRange = function (t) {\n return this.copyWithPieceList(this.pieceList.getSplittableListInRange(t));\n }, i.prototype.getStringAtRange = function (t) {\n return this.pieceList.getSplittableListInRange(t).toString();\n }, i.prototype.getStringAtPosition = function (t) {\n return this.getStringAtRange([t, t + 1]);\n }, i.prototype.startsWithString = function (t) {\n return this.getStringAtRange([0, t.length]) === t;\n }, i.prototype.endsWithString = function (t) {\n var e;\n return e = this.getLength(), this.getStringAtRange([e - t.length, e]) === t;\n }, i.prototype.getAttachmentPieces = function () {\n var t, e, n, i, o;\n for (i = this.pieceList.toArray(), o = [], t = 0, e = i.length; e > t; t++) n = i[t], null != n.attachment && o.push(n);\n return o;\n }, i.prototype.getAttachments = function () {\n var t, e, n, i, o;\n for (i = this.getAttachmentPieces(), o = [], t = 0, e = i.length; e > t; t++) n = i[t], o.push(n.attachment);\n return o;\n }, i.prototype.getAttachmentAndPositionById = function (t) {\n var e, n, i, o, r, s;\n for (o = 0, r = this.pieceList.toArray(), e = 0, n = r.length; n > e; e++) {\n if (i = r[e], (null != (s = i.attachment) ? s.id : void 0) === t) return {\n attachment: i.attachment,\n position: o\n };\n o += i.length;\n }\n return {\n attachment: null,\n position: null\n };\n }, i.prototype.getAttachmentById = function (t) {\n var e, n, i;\n return i = this.getAttachmentAndPositionById(t), e = i.attachment, n = i.position, e;\n }, i.prototype.getRangeOfAttachment = function (t) {\n var e, n;\n return n = this.getAttachmentAndPositionById(t.id), t = n.attachment, e = n.position, null != t ? [e, e + 1] : void 0;\n }, i.prototype.updateAttributesForAttachment = function (t, e) {\n var n;\n return (n = this.getRangeOfAttachment(e)) ? this.addAttributesAtRange(t, n) : this;\n }, i.prototype.getLength = function () {\n return this.pieceList.getEndPosition();\n }, i.prototype.isEmpty = function () {\n return 0 === this.getLength();\n }, i.prototype.isEqualTo = function (t) {\n var e;\n return i.__super__.isEqualTo.apply(this, arguments) || (null != t && null != (e = t.pieceList) ? e.isEqualTo(this.pieceList) : void 0);\n }, i.prototype.isBlockBreak = function () {\n return 1 === this.getLength() && this.pieceList.getObjectAtIndex(0).isBlockBreak();\n }, i.prototype.eachPiece = function (t) {\n return this.pieceList.eachObject(t);\n }, i.prototype.getPieces = function () {\n return this.pieceList.toArray();\n }, i.prototype.getPieceAtPosition = function (t) {\n return this.pieceList.getObjectAtPosition(t);\n }, i.prototype.contentsForInspection = function () {\n return {\n pieceList: this.pieceList.inspect()\n };\n }, i.prototype.toSerializableText = function () {\n var t;\n return t = this.pieceList.selectSplittableList(function (t) {\n return t.isSerializable();\n }), this.copyWithPieceList(t);\n }, i.prototype.toString = function () {\n return this.pieceList.toString();\n }, i.prototype.toJSON = function () {\n return this.pieceList.toJSON();\n }, i.prototype.toConsole = function () {\n var t;\n return JSON.stringify(function () {\n var e, n, i, o;\n for (i = this.pieceList.toArray(), o = [], e = 0, n = i.length; n > e; e++) t = i[e], o.push(JSON.parse(t.toConsole()));\n return o;\n }.call(this));\n }, i.prototype.getDirection = function () {\n return e.getDirection(this.toString());\n }, i.prototype.isRTL = function () {\n return \"rtl\" === this.getDirection();\n }, i;\n }(e.Object);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s = function s(t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) a.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n a = {}.hasOwnProperty,\n u = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n return -1;\n },\n c = [].slice;\n t = e.arraysAreEqual, r = e.spliceArray, i = e.getBlockConfig, n = e.getBlockAttributeNames, o = e.getListAttributeNames, e.Block = function (n) {\n function a(t, n) {\n null == t && (t = new e.Text()), null == n && (n = []), a.__super__.constructor.apply(this, arguments), this.text = h(t), this.attributes = n;\n }\n var l, h, p, d, f, g, m, v, y;\n return s(a, n), a.fromJSON = function (t) {\n var n;\n return n = e.Text.fromJSON(t.text), new this(n, t.attributes);\n }, a.prototype.isEmpty = function () {\n return this.text.isBlockBreak();\n }, a.prototype.isEqualTo = function (e) {\n return a.__super__.isEqualTo.apply(this, arguments) || this.text.isEqualTo(null != e ? e.text : void 0) && t(this.attributes, null != e ? e.attributes : void 0);\n }, a.prototype.copyWithText = function (t) {\n return new this.constructor(t, this.attributes);\n }, a.prototype.copyWithoutText = function () {\n return this.copyWithText(null);\n }, a.prototype.copyWithAttributes = function (t) {\n return new this.constructor(this.text, t);\n }, a.prototype.copyWithoutAttributes = function () {\n return this.copyWithAttributes(null);\n }, a.prototype.copyUsingObjectMap = function (t) {\n var e;\n return this.copyWithText((e = t.find(this.text)) ? e : this.text.copyUsingObjectMap(t));\n }, a.prototype.addAttribute = function (t) {\n var e;\n return e = this.attributes.concat(d(t)), this.copyWithAttributes(e);\n }, a.prototype.removeAttribute = function (t) {\n var e, n;\n return n = i(t).listAttribute, e = g(g(this.attributes, t), n), this.copyWithAttributes(e);\n }, a.prototype.removeLastAttribute = function () {\n return this.removeAttribute(this.getLastAttribute());\n }, a.prototype.getLastAttribute = function () {\n return f(this.attributes);\n }, a.prototype.getAttributes = function () {\n return this.attributes.slice(0);\n }, a.prototype.getAttributeLevel = function () {\n return this.attributes.length;\n }, a.prototype.getAttributeAtLevel = function (t) {\n return this.attributes[t - 1];\n }, a.prototype.hasAttribute = function (t) {\n return u.call(this.attributes, t) >= 0;\n }, a.prototype.hasAttributes = function () {\n return this.getAttributeLevel() > 0;\n }, a.prototype.getLastNestableAttribute = function () {\n return f(this.getNestableAttributes());\n }, a.prototype.getNestableAttributes = function () {\n var t, e, n, o, r;\n for (o = this.attributes, r = [], e = 0, n = o.length; n > e; e++) t = o[e], i(t).nestable && r.push(t);\n return r;\n }, a.prototype.getNestingLevel = function () {\n return this.getNestableAttributes().length;\n }, a.prototype.decreaseNestingLevel = function () {\n var t;\n return (t = this.getLastNestableAttribute()) ? this.removeAttribute(t) : this;\n }, a.prototype.increaseNestingLevel = function () {\n var t, e, n;\n return (t = this.getLastNestableAttribute()) ? (n = this.attributes.lastIndexOf(t), e = r.apply(null, [this.attributes, n + 1, 0].concat(c.call(d(t)))), this.copyWithAttributes(e)) : this;\n }, a.prototype.getListItemAttributes = function () {\n var t, e, n, o, r;\n for (o = this.attributes, r = [], e = 0, n = o.length; n > e; e++) t = o[e], i(t).listAttribute && r.push(t);\n return r;\n }, a.prototype.isListItem = function () {\n var t;\n return null != (t = i(this.getLastAttribute())) ? t.listAttribute : void 0;\n }, a.prototype.isTerminalBlock = function () {\n var t;\n return null != (t = i(this.getLastAttribute())) ? t.terminal : void 0;\n }, a.prototype.breaksOnReturn = function () {\n var t;\n return null != (t = i(this.getLastAttribute())) ? t.breakOnReturn : void 0;\n }, a.prototype.findLineBreakInDirectionFromPosition = function (t, e) {\n var n, i;\n return i = this.toString(), n = function () {\n switch (t) {\n case \"forward\":\n return i.indexOf(\"\\n\", e);\n case \"backward\":\n return i.slice(0, e).lastIndexOf(\"\\n\");\n }\n }(), -1 !== n ? n : void 0;\n }, a.prototype.contentsForInspection = function () {\n return {\n text: this.text.inspect(),\n attributes: this.attributes\n };\n }, a.prototype.toString = function () {\n return this.text.toString();\n }, a.prototype.toJSON = function () {\n return {\n text: this.text,\n attributes: this.attributes\n };\n }, a.prototype.getDirection = function () {\n return this.text.getDirection();\n }, a.prototype.isRTL = function () {\n return this.text.isRTL();\n }, a.prototype.getLength = function () {\n return this.text.getLength();\n }, a.prototype.canBeConsolidatedWith = function (t) {\n return !this.hasAttributes() && !t.hasAttributes() && this.getDirection() === t.getDirection();\n }, a.prototype.consolidateWith = function (t) {\n var n, i;\n return n = e.Text.textForStringWithAttributes(\"\\n\"), i = this.getTextWithoutBlockBreak().appendText(n), this.copyWithText(i.appendText(t.text));\n }, a.prototype.splitAtOffset = function (t) {\n var e, n;\n return 0 === t ? (e = null, n = this) : t === this.getLength() ? (e = this, n = null) : (e = this.copyWithText(this.text.getTextAtRange([0, t])), n = this.copyWithText(this.text.getTextAtRange([t, this.getLength()]))), [e, n];\n }, a.prototype.getBlockBreakPosition = function () {\n return this.text.getLength() - 1;\n }, a.prototype.getTextWithoutBlockBreak = function () {\n return m(this.text) ? this.text.getTextAtRange([0, this.getBlockBreakPosition()]) : this.text.copy();\n }, a.prototype.canBeGrouped = function (t) {\n return this.attributes[t];\n }, a.prototype.canBeGroupedWith = function (t, e) {\n var n, r, s, a;\n return s = t.getAttributes(), r = s[e], n = this.attributes[e], !(n !== r || i(n).group === !1 && (a = s[e + 1], u.call(o(), a) < 0) || this.getDirection() !== t.getDirection() && !t.isEmpty());\n }, h = function h(t) {\n return t = y(t), t = l(t);\n }, y = function y(t) {\n var n, i, o, r, s, a;\n return r = !1, a = t.getPieces(), i = 2 <= a.length ? c.call(a, 0, n = a.length - 1) : (n = 0, []), o = a[n++], null == o ? t : (i = function () {\n var t, e, n;\n for (n = [], t = 0, e = i.length; e > t; t++) s = i[t], s.isBlockBreak() ? (r = !0, n.push(v(s))) : n.push(s);\n return n;\n }(), r ? new e.Text(c.call(i).concat([o])) : t);\n }, p = e.Text.textForStringWithAttributes(\"\\n\", {\n blockBreak: !0\n }), l = function l(t) {\n return m(t) ? t : t.appendText(p);\n }, m = function m(t) {\n var e, n;\n return n = t.getLength(), 0 === n ? !1 : (e = t.getTextAtRange([n - 1, n]), e.isBlockBreak());\n }, v = function v(t) {\n return t.copyWithoutAttribute(\"blockBreak\");\n }, d = function d(t) {\n var e;\n return e = i(t).listAttribute, null != e ? [e, t] : [t];\n }, f = function f(t) {\n return t.slice(-1)[0];\n }, g = function g(t, e) {\n var n;\n return n = t.lastIndexOf(e), -1 === n ? t : r(t, n, 1);\n }, a;\n }(e.Object);\n }.call(this), function () {\n var t,\n n,\n i,\n o = function o(t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) r.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n r = {}.hasOwnProperty,\n s = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n return -1;\n },\n a = [].slice;\n n = e.tagName, i = e.walkTree, t = e.nodeIsAttachmentElement, e.HTMLSanitizer = function (r) {\n function u(t, e) {\n var n;\n n = null != e ? e : {}, this.allowedAttributes = n.allowedAttributes, this.forbiddenProtocols = n.forbiddenProtocols, this.forbiddenElements = n.forbiddenElements, null == this.allowedAttributes && (this.allowedAttributes = c), null == this.forbiddenProtocols && (this.forbiddenProtocols = h), null == this.forbiddenElements && (this.forbiddenElements = l), this.body = p(t);\n }\n var c, l, h, p;\n return o(u, r), c = \"style href src width height class\".split(\" \"), h = \"javascript:\".split(\" \"), l = \"script iframe noscript\".split(\" \"), u.sanitize = function (t, e) {\n var n;\n return n = new this(t, e), n.sanitize(), n;\n }, u.prototype.sanitize = function () {\n return this.sanitizeElements(), this.normalizeListElementNesting();\n }, u.prototype.getHTML = function () {\n return this.body.innerHTML;\n }, u.prototype.getBody = function () {\n return this.body;\n }, u.prototype.sanitizeElements = function () {\n var t, n, o, r, s;\n for (s = i(this.body), r = []; s.nextNode();) switch (o = s.currentNode, o.nodeType) {\n case Node.ELEMENT_NODE:\n this.elementIsRemovable(o) ? r.push(o) : this.sanitizeElement(o);\n break;\n case Node.COMMENT_NODE:\n r.push(o);\n }\n for (t = 0, n = r.length; n > t; t++) o = r[t], e.removeNode(o);\n return this.body;\n }, u.prototype.sanitizeElement = function (t) {\n var e, n, i, o, r;\n for (t.hasAttribute(\"href\") && (o = t.protocol, s.call(this.forbiddenProtocols, o) >= 0 && t.removeAttribute(\"href\")), r = a.call(t.attributes), e = 0, n = r.length; n > e; e++) i = r[e].name, s.call(this.allowedAttributes, i) >= 0 || 0 === i.indexOf(\"data-trix\") || t.removeAttribute(i);\n return t;\n }, u.prototype.normalizeListElementNesting = function () {\n var t, e, i, o, r;\n for (r = a.call(this.body.querySelectorAll(\"ul,ol\")), t = 0, e = r.length; e > t; t++) i = r[t], (o = i.previousElementSibling) && \"li\" === n(o) && o.appendChild(i);\n return this.body;\n }, u.prototype.elementIsRemovable = function (t) {\n return (null != t ? t.nodeType : void 0) === Node.ELEMENT_NODE ? this.elementIsForbidden(t) || this.elementIsntSerializable(t) : void 0;\n }, u.prototype.elementIsForbidden = function (t) {\n var e;\n return e = n(t), s.call(this.forbiddenElements, e) >= 0;\n }, u.prototype.elementIsntSerializable = function (e) {\n return \"false\" === e.getAttribute(\"data-trix-serialize\") && !t(e);\n }, p = function p(t) {\n var e, n, i, o, r;\n for (null == t && (t = \"\"), t = t.replace(/<\\/html[^>]*>[^]*$/i, \"\"), e = document.implementation.createHTMLDocument(\"\"), e.documentElement.innerHTML = t, r = e.head.querySelectorAll(\"style\"), i = 0, o = r.length; o > i; i++) n = r[i], e.body.appendChild(n);\n return e.body;\n }, u;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a,\n u,\n c,\n l,\n h,\n p = function p(t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) d.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n d = {}.hasOwnProperty,\n f = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n return -1;\n };\n t = e.arraysAreEqual, s = e.makeElement, l = e.tagName, r = e.getBlockTagNames, h = e.walkTree, o = e.findClosestElementFromNode, i = e.elementContainsNode, a = e.nodeIsAttachmentElement, u = e.normalizeSpaces, n = e.breakableWhitespacePattern, c = e.squishBreakableWhitespace, e.HTMLParser = function (d) {\n function g(t, e) {\n this.html = t, this.referenceElement = (null != e ? e : {}).referenceElement, this.blocks = [], this.blockElements = [], this.processedElements = [];\n }\n var m, v, y, b, A, C, x, w, E, S, R, k;\n return p(g, d), g.parse = function (t, e) {\n var n;\n return n = new this(t, e), n.parse(), n;\n }, g.prototype.getDocument = function () {\n return e.Document.fromJSON(this.blocks);\n }, g.prototype.parse = function () {\n var t, n;\n try {\n for (this.createHiddenContainer(), t = e.HTMLSanitizer.sanitize(this.html).getHTML(), this.containerElement.innerHTML = t, n = h(this.containerElement, {\n usingFilter: x\n }); n.nextNode();) this.processNode(n.currentNode);\n return this.translateBlockElementMarginsToNewlines();\n } finally {\n this.removeHiddenContainer();\n }\n }, g.prototype.createHiddenContainer = function () {\n 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 = s({\n tagName: \"div\",\n style: {\n display: \"none\"\n }\n }), document.body.appendChild(this.containerElement));\n }, g.prototype.removeHiddenContainer = function () {\n return e.removeNode(this.containerElement);\n }, x = function x(t) {\n return \"style\" === l(t) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;\n }, g.prototype.processNode = function (t) {\n switch (t.nodeType) {\n case Node.TEXT_NODE:\n if (!this.isInsignificantTextNode(t)) return this.appendBlockForTextNode(t), this.processTextNode(t);\n break;\n case Node.ELEMENT_NODE:\n return this.appendBlockForElement(t), this.processElement(t);\n }\n }, g.prototype.appendBlockForTextNode = function (e) {\n var n, i, o;\n return i = e.parentNode, i === this.currentBlockElement && this.isBlockElement(e.previousSibling) ? this.appendStringWithAttributes(\"\\n\") : i !== this.containerElement && !this.isBlockElement(i) || (n = this.getBlockAttributes(i), t(n, null != (o = this.currentBlock) ? o.attributes : void 0)) ? void 0 : (this.currentBlock = this.appendBlockForAttributesWithElement(n, i), this.currentBlockElement = i);\n }, g.prototype.appendBlockForElement = function (e) {\n var n, o, r, s;\n if (r = this.isBlockElement(e), o = i(this.currentBlockElement, e), r && !this.isBlockElement(e.firstChild)) {\n if ((!this.isInsignificantTextNode(e.firstChild) || !this.isBlockElement(e.firstElementChild)) && (n = this.getBlockAttributes(e), e.firstChild)) return o && t(n, this.currentBlock.attributes) ? this.appendStringWithAttributes(\"\\n\") : (this.currentBlock = this.appendBlockForAttributesWithElement(n, e), this.currentBlockElement = e);\n } else if (this.currentBlockElement && !o && !r) return (s = this.findParentBlockElement(e)) ? this.appendBlockForElement(s) : (this.currentBlock = this.appendEmptyBlock(), this.currentBlockElement = null);\n }, g.prototype.findParentBlockElement = function (t) {\n var e;\n for (e = t.parentElement; e && e !== this.containerElement;) {\n if (this.isBlockElement(e) && f.call(this.blockElements, e) >= 0) return e;\n e = e.parentElement;\n }\n return null;\n }, g.prototype.processTextNode = function (t) {\n var e, n;\n return n = t.data, v(t.parentNode) || (n = c(n), R(null != (e = t.previousSibling) ? e.textContent : void 0) && (n = A(n))), this.appendStringWithAttributes(n, this.getTextAttributes(t.parentNode));\n }, g.prototype.processElement = function (t) {\n var e, n, i, o, r;\n if (a(t)) return e = w(t, \"attachment\"), Object.keys(e).length && (o = this.getTextAttributes(t), this.appendAttachmentWithAttributes(e, o), t.innerHTML = \"\"), this.processedElements.push(t);\n switch (l(t)) {\n case \"br\":\n return this.isExtraBR(t) || this.isBlockElement(t.nextSibling) || this.appendStringWithAttributes(\"\\n\", this.getTextAttributes(t)), this.processedElements.push(t);\n case \"img\":\n e = {\n url: t.getAttribute(\"src\"),\n contentType: \"image\"\n }, i = b(t);\n for (n in i) r = i[n], e[n] = r;\n return this.appendAttachmentWithAttributes(e, this.getTextAttributes(t)), this.processedElements.push(t);\n case \"tr\":\n if (t.parentNode.firstChild !== t) return this.appendStringWithAttributes(\"\\n\");\n break;\n case \"td\":\n if (t.parentNode.firstChild !== t) return this.appendStringWithAttributes(\" | \");\n }\n }, g.prototype.appendBlockForAttributesWithElement = function (t, e) {\n var n;\n return this.blockElements.push(e), n = m(t), this.blocks.push(n), n;\n }, g.prototype.appendEmptyBlock = function () {\n return this.appendBlockForAttributesWithElement([], null);\n }, g.prototype.appendStringWithAttributes = function (t, e) {\n return this.appendPiece(S(t, e));\n }, g.prototype.appendAttachmentWithAttributes = function (t, e) {\n return this.appendPiece(E(t, e));\n }, g.prototype.appendPiece = function (t) {\n return 0 === this.blocks.length && this.appendEmptyBlock(), this.blocks[this.blocks.length - 1].text.push(t);\n }, g.prototype.appendStringToTextAtIndex = function (t, e) {\n var n, i;\n return i = this.blocks[e].text, n = i[i.length - 1], \"string\" === (null != n ? n.type : void 0) ? n.string += t : i.push(S(t));\n }, g.prototype.prependStringToTextAtIndex = function (t, e) {\n var n, i;\n return i = this.blocks[e].text, n = i[0], \"string\" === (null != n ? n.type : void 0) ? n.string = t + n.string : i.unshift(S(t));\n }, S = function S(t, e) {\n var n;\n return null == e && (e = {}), n = \"string\", t = u(t), {\n string: t,\n attributes: e,\n type: n\n };\n }, E = function E(t, e) {\n var n;\n return null == e && (e = {}), n = \"attachment\", {\n attachment: t,\n attributes: e,\n type: n\n };\n }, m = function m(t) {\n var e;\n return null == t && (t = {}), e = [], {\n text: e,\n attributes: t\n };\n }, g.prototype.getTextAttributes = function (t) {\n var n, i, r, s, u, c, l, h, p, d, f, g;\n r = {}, p = e.config.textAttributes;\n for (n in p) if (u = p[n], u.tagName && o(t, {\n matchingSelector: u.tagName,\n untilNode: this.containerElement\n })) r[n] = !0;else if (u.parser) {\n if (g = u.parser(t)) {\n for (i = !1, d = this.findBlockElementAncestors(t), c = 0, h = d.length; h > c; c++) if (s = d[c], u.parser(s) === g) {\n i = !0;\n break;\n }\n i || (r[n] = g);\n }\n } else u.styleProperty && (g = t.style[u.styleProperty]) && (r[n] = g);\n if (a(t)) {\n f = w(t, \"attributes\");\n for (l in f) g = f[l], r[l] = g;\n }\n return r;\n }, g.prototype.getBlockAttributes = function (t) {\n var n, i, o, r;\n for (i = []; t && t !== this.containerElement;) {\n r = e.config.blockAttributes;\n for (n in r) o = r[n], o.parse !== !1 && l(t) === o.tagName && ((\"function\" == typeof o.test ? o.test(t) : void 0) || !o.test) && (i.push(n), o.listAttribute && i.push(o.listAttribute));\n t = t.parentNode;\n }\n return i.reverse();\n }, g.prototype.findBlockElementAncestors = function (t) {\n var e, n;\n for (e = []; t && t !== this.containerElement;) n = l(t), f.call(r(), n) >= 0 && e.push(t), t = t.parentNode;\n return e;\n }, w = function w(t, e) {\n var n;\n try {\n return n = JSON.parse(t.getAttribute(\"data-trix-\" + e)), \"text/html\" === n.contentType && n.content && (n.content = HTMLSanitizer.sanitize(n.content).getHTML()), n;\n } catch (i) {\n return {};\n }\n }, b = function b(t) {\n var e, n, i;\n return i = t.getAttribute(\"width\"), n = t.getAttribute(\"height\"), e = {}, i && (e.width = parseInt(i, 10)), n && (e.height = parseInt(n, 10)), e;\n }, g.prototype.isBlockElement = function (t) {\n var e;\n if ((null != t ? t.nodeType : void 0) === Node.ELEMENT_NODE && !a(t) && !o(t, {\n matchingSelector: \"td\",\n untilNode: this.containerElement\n })) return e = l(t), f.call(r(), e) >= 0 || \"block\" === window.getComputedStyle(t).display;\n }, g.prototype.isInsignificantTextNode = function (t) {\n var e, n, i;\n if ((null != t ? t.nodeType : void 0) === Node.TEXT_NODE && k(t.data) && (n = t.parentNode, i = t.previousSibling, e = t.nextSibling, (!C(n.previousSibling) || this.isBlockElement(n.previousSibling)) && !v(n))) return !i || this.isBlockElement(i) || !e || this.isBlockElement(e);\n }, g.prototype.isExtraBR = function (t) {\n return \"br\" === l(t) && this.isBlockElement(t.parentNode) && t.parentNode.lastChild === t;\n }, v = function v(t) {\n var e;\n return e = window.getComputedStyle(t).whiteSpace, \"pre\" === e || \"pre-wrap\" === e || \"pre-line\" === e;\n }, C = function C(t) {\n return t && !R(t.textContent);\n }, g.prototype.translateBlockElementMarginsToNewlines = function () {\n var t, e, n, i, o, r, s, a;\n for (e = this.getMarginOfDefaultBlockElement(), s = this.blocks, a = [], i = n = 0, o = s.length; o > n; i = ++n) t = s[i], (r = this.getMarginOfBlockElementAtIndex(i)) && (r.top > 2 * e.top && this.prependStringToTextAtIndex(\"\\n\", i), a.push(r.bottom > 2 * e.bottom ? this.appendStringToTextAtIndex(\"\\n\", i) : void 0));\n return a;\n }, g.prototype.getMarginOfBlockElementAtIndex = function (t) {\n var e, n;\n return !(e = this.blockElements[t]) || !e.textContent || (n = l(e), f.call(r(), n) >= 0 || f.call(this.processedElements, e) >= 0) ? void 0 : y(e);\n }, g.prototype.getMarginOfDefaultBlockElement = function () {\n var t;\n return t = s(e.config.blockAttributes[\"default\"].tagName), this.containerElement.appendChild(t), y(t);\n }, y = function y(t) {\n var e;\n return e = window.getComputedStyle(t), \"block\" === e.display ? {\n top: parseInt(e.marginTop),\n bottom: parseInt(e.marginBottom)\n } : void 0;\n }, A = function A(t) {\n return t.replace(RegExp(\"^\" + n.source + \"+\"), \"\");\n }, k = function k(t) {\n return RegExp(\"^\" + n.source + \"*$\").test(t);\n }, R = function R(t) {\n return /\\s$/.test(t);\n }, g;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r = function r(t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) s.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n s = {}.hasOwnProperty,\n a = [].slice,\n u = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n return -1;\n };\n t = e.arraysAreEqual, i = e.normalizeRange, o = e.rangeIsCollapsed, n = e.getBlockConfig, e.Document = function (s) {\n function c(t) {\n null == t && (t = []), c.__super__.constructor.apply(this, arguments), 0 === t.length && (t = [new e.Block()]), this.blockList = e.SplittableList.box(t);\n }\n var l;\n return r(c, s), c.fromJSON = function (t) {\n var n, i;\n return i = function () {\n var i, o, r;\n for (r = [], i = 0, o = t.length; o > i; i++) n = t[i], r.push(e.Block.fromJSON(n));\n return r;\n }(), new this(i);\n }, c.fromHTML = function (t, n) {\n return e.HTMLParser.parse(t, n).getDocument();\n }, c.fromString = function (t, n) {\n var i;\n return i = e.Text.textForStringWithAttributes(t, n), new this([new e.Block(i)]);\n }, c.prototype.isEmpty = function () {\n var t;\n return 1 === this.blockList.length && (t = this.getBlockAtIndex(0), t.isEmpty() && !t.hasAttributes());\n }, c.prototype.copy = function (t) {\n var e;\n return null == t && (t = {}), e = t.consolidateBlocks ? this.blockList.consolidate().toArray() : this.blockList.toArray(), new this.constructor(e);\n }, c.prototype.copyUsingObjectsFromDocument = function (t) {\n var n;\n return n = new e.ObjectMap(t.getObjects()), this.copyUsingObjectMap(n);\n }, c.prototype.copyUsingObjectMap = function (t) {\n var e, n, i;\n return n = function () {\n var n, o, r, s;\n for (r = this.getBlocks(), s = [], n = 0, o = r.length; o > n; n++) e = r[n], s.push((i = t.find(e)) ? i : e.copyUsingObjectMap(t));\n return s;\n }.call(this), new this.constructor(n);\n }, c.prototype.copyWithBaseBlockAttributes = function (t) {\n var e, n, i;\n return null == t && (t = []), i = function () {\n var i, o, r, s;\n for (r = this.getBlocks(), s = [], i = 0, o = r.length; o > i; i++) n = r[i], e = t.concat(n.getAttributes()), s.push(n.copyWithAttributes(e));\n return s;\n }.call(this), new this.constructor(i);\n }, c.prototype.replaceBlock = function (t, e) {\n var n;\n return n = this.blockList.indexOf(t), -1 === n ? this : new this.constructor(this.blockList.replaceObjectAtIndex(e, n));\n }, c.prototype.insertDocumentAtRange = function (t, e) {\n var n, r, s, a, u, c, l;\n return r = t.blockList, u = (e = i(e))[0], c = this.locationFromPosition(u), s = c.index, a = c.offset, l = this, n = this.getBlockAtPosition(u), o(e) && n.isEmpty() && !n.hasAttributes() ? l = new this.constructor(l.blockList.removeObjectAtIndex(s)) : n.getBlockBreakPosition() === a && u++, l = l.removeTextAtRange(e), new this.constructor(l.blockList.insertSplittableListAtPosition(r, u));\n }, c.prototype.mergeDocumentAtRange = function (e, n) {\n var o, r, s, a, u, c, l, h, p, d, f, g;\n return f = (n = i(n))[0], d = this.locationFromPosition(f), r = this.getBlockAtIndex(d.index).getAttributes(), o = e.getBaseBlockAttributes(), g = r.slice(-o.length), t(o, g) ? (l = r.slice(0, -o.length), c = e.copyWithBaseBlockAttributes(l)) : c = e.copy({\n consolidateBlocks: !0\n }).copyWithBaseBlockAttributes(r), s = c.getBlockCount(), a = c.getBlockAtIndex(0), t(r, a.getAttributes()) ? (u = a.getTextWithoutBlockBreak(), p = this.insertTextAtRange(u, n), s > 1 && (c = new this.constructor(c.getBlocks().slice(1)), h = f + u.getLength(), p = p.insertDocumentAtRange(c, h))) : p = this.insertDocumentAtRange(c, n), p;\n }, c.prototype.insertTextAtRange = function (t, e) {\n var n, o, r, s, a;\n return a = (e = i(e))[0], s = this.locationFromPosition(a), o = s.index, r = s.offset, n = this.removeTextAtRange(e), new this.constructor(n.blockList.editObjectAtIndex(o, function (e) {\n return e.copyWithText(e.text.insertTextAtPosition(t, r));\n }));\n }, c.prototype.removeTextAtRange = function (t) {\n var e, n, r, s, a, u, c, l, h, p, d, f, g, m, v, y, b, A, C, x, w;\n return p = t = i(t), l = p[0], A = p[1], o(t) ? this : (d = this.locationRangeFromRange(t), u = d[0], y = d[1], a = u.index, c = u.offset, s = this.getBlockAtIndex(a), v = y.index, b = y.offset, m = this.getBlockAtIndex(v), f = A - l === 1 && s.getBlockBreakPosition() === c && m.getBlockBreakPosition() !== b && \"\\n\" === m.text.getStringAtPosition(b), f ? r = this.blockList.editObjectAtIndex(v, function (t) {\n return t.copyWithText(t.text.removeTextAtRange([b, b + 1]));\n }) : (h = s.text.getTextAtRange([0, c]), C = m.text.getTextAtRange([b, m.getLength()]), x = h.appendText(C), g = a !== v && 0 === c, w = g && s.getAttributeLevel() >= m.getAttributeLevel(), n = w ? m.copyWithText(x) : s.copyWithText(x), e = v + 1 - a, r = this.blockList.splice(a, e, n)), new this.constructor(r));\n }, c.prototype.moveTextFromRangeToPosition = function (t, e) {\n var n, o, r, s, u, c, l, h, p, d;\n return c = t = i(t), p = c[0], r = c[1], e >= p && r >= e ? this : (o = this.getDocumentAtRange(t), h = this.removeTextAtRange(t), u = e > p, u && (e -= o.getLength()), l = o.getBlocks(), s = l[0], n = 2 <= l.length ? a.call(l, 1) : [], 0 === n.length ? (d = s.getTextWithoutBlockBreak(), u && (e += 1)) : d = s.text, h = h.insertTextAtRange(d, e), 0 === n.length ? h : (o = new this.constructor(n), e += d.getLength(), h.insertDocumentAtRange(o, e)));\n }, c.prototype.addAttributeAtRange = function (t, e, i) {\n var o;\n return o = this.blockList, this.eachBlockAtRange(i, function (i, r, s) {\n return o = o.editObjectAtIndex(s, function () {\n return n(t) ? i.addAttribute(t, e) : r[0] === r[1] ? i : i.copyWithText(i.text.addAttributeAtRange(t, e, r));\n });\n }), new this.constructor(o);\n }, c.prototype.addAttribute = function (t, e) {\n var n;\n return n = this.blockList, this.eachBlock(function (i, o) {\n return n = n.editObjectAtIndex(o, function () {\n return i.addAttribute(t, e);\n });\n }), new this.constructor(n);\n }, c.prototype.removeAttributeAtRange = function (t, e) {\n var i;\n return i = this.blockList, this.eachBlockAtRange(e, function (e, o, r) {\n return n(t) ? i = i.editObjectAtIndex(r, function () {\n return e.removeAttribute(t);\n }) : o[0] !== o[1] ? i = i.editObjectAtIndex(r, function () {\n return e.copyWithText(e.text.removeAttributeAtRange(t, o));\n }) : void 0;\n }), new this.constructor(i);\n }, c.prototype.updateAttributesForAttachment = function (t, e) {\n var n, i, o, r;\n return o = (i = this.getRangeOfAttachment(e))[0], n = this.locationFromPosition(o).index, r = this.getTextAtIndex(n), new this.constructor(this.blockList.editObjectAtIndex(n, function (n) {\n return n.copyWithText(r.updateAttributesForAttachment(t, e));\n }));\n }, c.prototype.removeAttributeForAttachment = function (t, e) {\n var n;\n return n = this.getRangeOfAttachment(e), this.removeAttributeAtRange(t, n);\n }, c.prototype.insertBlockBreakAtRange = function (t) {\n var n, o, r, s;\n return s = (t = i(t))[0], r = this.locationFromPosition(s).offset, o = this.removeTextAtRange(t), 0 === r && (n = [new e.Block()]), new this.constructor(o.blockList.insertSplittableListAtPosition(new e.SplittableList(n), s));\n }, c.prototype.applyBlockAttributeAtRange = function (t, e, i) {\n var o, r, s, a;\n return s = this.expandRangeToLineBreaksAndSplitBlocks(i), r = s.document, i = s.range, o = n(t), o.listAttribute ? (r = r.removeLastListAttributeAtRange(i, {\n exceptAttributeName: t\n }), a = r.convertLineBreaksToBlockBreaksInRange(i), r = a.document, i = a.range) : r = o.exclusive ? r.removeBlockAttributesAtRange(i) : o.terminal ? r.removeLastTerminalAttributeAtRange(i) : r.consolidateBlocksAtRange(i), r.addAttributeAtRange(t, e, i);\n }, c.prototype.removeLastListAttributeAtRange = function (t, e) {\n var i;\n return null == e && (e = {}), i = this.blockList, this.eachBlockAtRange(t, function (t, o, r) {\n var s;\n if ((s = t.getLastAttribute()) && n(s).listAttribute && s !== e.exceptAttributeName) return i = i.editObjectAtIndex(r, function () {\n return t.removeAttribute(s);\n });\n }), new this.constructor(i);\n }, c.prototype.removeLastTerminalAttributeAtRange = function (t) {\n var e;\n return e = this.blockList, this.eachBlockAtRange(t, function (t, i, o) {\n var r;\n if ((r = t.getLastAttribute()) && n(r).terminal) return e = e.editObjectAtIndex(o, function () {\n return t.removeAttribute(r);\n });\n }), new this.constructor(e);\n }, c.prototype.removeBlockAttributesAtRange = function (t) {\n var e;\n return e = this.blockList, this.eachBlockAtRange(t, function (t, n, i) {\n return t.hasAttributes() ? e = e.editObjectAtIndex(i, function () {\n return t.copyWithoutAttributes();\n }) : void 0;\n }), new this.constructor(e);\n }, c.prototype.expandRangeToLineBreaksAndSplitBlocks = function (t) {\n var e, n, o, r, s, a, u, c, l;\n return a = t = i(t), l = a[0], r = a[1], c = this.locationFromPosition(l), o = this.locationFromPosition(r), e = this, u = e.getBlockAtIndex(c.index), null != (c.offset = u.findLineBreakInDirectionFromPosition(\"backward\", c.offset)) && (s = e.positionFromLocation(c), e = e.insertBlockBreakAtRange([s, s + 1]), o.index += 1, o.offset -= e.getBlockAtIndex(c.index).getLength(), c.index += 1), c.offset = 0, 0 === o.offset && o.index > c.index ? (o.index -= 1, o.offset = e.getBlockAtIndex(o.index).getBlockBreakPosition()) : (n = e.getBlockAtIndex(o.index), \"\\n\" === n.text.getStringAtRange([o.offset - 1, o.offset]) ? o.offset -= 1 : o.offset = n.findLineBreakInDirectionFromPosition(\"forward\", o.offset), o.offset !== n.getBlockBreakPosition() && (s = e.positionFromLocation(o), e = e.insertBlockBreakAtRange([s, s + 1]))), l = e.positionFromLocation(c), r = e.positionFromLocation(o), t = i([l, r]), {\n document: e,\n range: t\n };\n }, c.prototype.convertLineBreaksToBlockBreaksInRange = function (t) {\n var e, n, o;\n return n = (t = i(t))[0], o = this.getStringAtRange(t).slice(0, -1), e = this, o.replace(/.*?\\n/g, function (t) {\n return n += t.length, e = e.insertBlockBreakAtRange([n - 1, n]);\n }), {\n document: e,\n range: t\n };\n }, c.prototype.consolidateBlocksAtRange = function (t) {\n var e, n, o, r, s;\n return o = t = i(t), s = o[0], n = o[1], r = this.locationFromPosition(s).index, e = this.locationFromPosition(n).index, new this.constructor(this.blockList.consolidateFromIndexToIndex(r, e));\n }, c.prototype.getDocumentAtRange = function (t) {\n var e;\n return t = i(t), e = this.blockList.getSplittableListInRange(t).toArray(), new this.constructor(e);\n }, c.prototype.getStringAtRange = function (t) {\n var e, n, o;\n return o = t = i(t), n = o[o.length - 1], n !== this.getLength() && (e = -1), this.getDocumentAtRange(t).toString().slice(0, e);\n }, c.prototype.getBlockAtIndex = function (t) {\n return this.blockList.getObjectAtIndex(t);\n }, c.prototype.getBlockAtPosition = function (t) {\n var e;\n return e = this.locationFromPosition(t).index, this.getBlockAtIndex(e);\n }, c.prototype.getTextAtIndex = function (t) {\n var e;\n return null != (e = this.getBlockAtIndex(t)) ? e.text : void 0;\n }, c.prototype.getTextAtPosition = function (t) {\n var e;\n return e = this.locationFromPosition(t).index, this.getTextAtIndex(e);\n }, c.prototype.getPieceAtPosition = function (t) {\n var e, n, i;\n return i = this.locationFromPosition(t), e = i.index, n = i.offset, this.getTextAtIndex(e).getPieceAtPosition(n);\n }, c.prototype.getCharacterAtPosition = function (t) {\n var e, n, i;\n return i = this.locationFromPosition(t), e = i.index, n = i.offset, this.getTextAtIndex(e).getStringAtRange([n, n + 1]);\n }, c.prototype.getLength = function () {\n return this.blockList.getEndPosition();\n }, c.prototype.getBlocks = function () {\n return this.blockList.toArray();\n }, c.prototype.getBlockCount = function () {\n return this.blockList.length;\n }, c.prototype.getEditCount = function () {\n return this.editCount;\n }, c.prototype.eachBlock = function (t) {\n return this.blockList.eachObject(t);\n }, c.prototype.eachBlockAtRange = function (t, e) {\n var n, o, r, s, a, u, c, l, h, p, d, f;\n if (u = t = i(t), d = u[0], r = u[1], p = this.locationFromPosition(d), o = this.locationFromPosition(r), p.index === o.index) return n = this.getBlockAtIndex(p.index), f = [p.offset, o.offset], e(n, f, p.index);\n for (h = [], a = s = c = p.index, l = o.index; l >= c ? l >= s : s >= l; a = l >= c ? ++s : --s) (n = this.getBlockAtIndex(a)) ? (f = function () {\n switch (a) {\n case p.index:\n return [p.offset, n.text.getLength()];\n case o.index:\n return [0, o.offset];\n default:\n return [0, n.text.getLength()];\n }\n }(), h.push(e(n, f, a))) : h.push(void 0);\n return h;\n }, c.prototype.getCommonAttributesAtRange = function (t) {\n var n, r, s;\n return r = (t = i(t))[0], o(t) ? this.getCommonAttributesAtPosition(r) : (s = [], n = [], this.eachBlockAtRange(t, function (t, e) {\n return e[0] !== e[1] ? (s.push(t.text.getCommonAttributesAtRange(e)), n.push(l(t))) : void 0;\n }), e.Hash.fromCommonAttributesOfObjects(s).merge(e.Hash.fromCommonAttributesOfObjects(n)).toObject());\n }, c.prototype.getCommonAttributesAtPosition = function (t) {\n var n, i, o, r, s, a, c, h, p, d;\n if (p = this.locationFromPosition(t), s = p.index, h = p.offset, o = this.getBlockAtIndex(s), !o) return {};\n r = l(o), n = o.text.getAttributesAtPosition(h), i = o.text.getAttributesAtPosition(h - 1), a = function () {\n var t, n;\n t = e.config.textAttributes, n = [];\n for (c in t) d = t[c], d.inheritable && n.push(c);\n return n;\n }();\n for (c in i) d = i[c], (d === n[c] || u.call(a, c) >= 0) && (r[c] = d);\n return r;\n }, c.prototype.getRangeOfCommonAttributeAtPosition = function (t, e) {\n var n, o, r, s, a, u, c, l, h;\n return a = this.locationFromPosition(e), r = a.index, s = a.offset, h = this.getTextAtIndex(r), u = h.getExpandedRangeForAttributeAtOffset(t, s), l = u[0], o = u[1], c = this.positionFromLocation({\n index: r,\n offset: l\n }), n = this.positionFromLocation({\n index: r,\n offset: o\n }), i([c, n]);\n }, c.prototype.getBaseBlockAttributes = function () {\n var t, e, n, i, o, r, s;\n for (t = this.getBlockAtIndex(0).getAttributes(), n = i = 1, s = this.getBlockCount(); s >= 1 ? s > i : i > s; n = s >= 1 ? ++i : --i) e = this.getBlockAtIndex(n).getAttributes(), r = Math.min(t.length, e.length), t = function () {\n var n, i, s;\n for (s = [], o = n = 0, i = r; (i >= 0 ? i > n : n > i) && e[o] === t[o]; o = i >= 0 ? ++n : --n) s.push(e[o]);\n return s;\n }();\n return t;\n }, l = function l(t) {\n var e, n;\n return n = {}, (e = t.getLastAttribute()) && (n[e] = !0), n;\n }, c.prototype.getAttachmentById = function (t) {\n var e, n, i, o;\n for (o = this.getAttachments(), n = 0, i = o.length; i > n; n++) if (e = o[n], e.id === t) return e;\n }, c.prototype.getAttachmentPieces = function () {\n var t;\n return t = [], this.blockList.eachObject(function (e) {\n var n;\n return n = e.text, t = t.concat(n.getAttachmentPieces());\n }), t;\n }, c.prototype.getAttachments = function () {\n var t, e, n, i, o;\n for (i = this.getAttachmentPieces(), o = [], t = 0, e = i.length; e > t; t++) n = i[t], o.push(n.attachment);\n return o;\n }, c.prototype.getRangeOfAttachment = function (t) {\n var e, n, o, r, s, a, u;\n for (r = 0, s = this.blockList.toArray(), n = e = 0, o = s.length; o > e; n = ++e) {\n if (a = s[n].text, u = a.getRangeOfAttachment(t)) return i([r + u[0], r + u[1]]);\n r += a.getLength();\n }\n }, c.prototype.getLocationRangeOfAttachment = function (t) {\n var e;\n return e = this.getRangeOfAttachment(t), this.locationRangeFromRange(e);\n }, c.prototype.getAttachmentPieceForAttachment = function (t) {\n var e, n, i, o;\n for (o = this.getAttachmentPieces(), e = 0, n = o.length; n > e; e++) if (i = o[e], i.attachment === t) return i;\n }, c.prototype.findRangesForBlockAttribute = function (t) {\n var e, n, i, o, r, s, a;\n for (r = 0, s = [], a = this.getBlocks(), n = 0, i = a.length; i > n; n++) e = a[n], o = e.getLength(), e.hasAttribute(t) && s.push([r, r + o]), r += o;\n return s;\n }, c.prototype.findRangesForTextAttribute = function (t, e) {\n var n, i, o, r, s, a, u, c, l, h;\n for (h = (null != e ? e : {}).withValue, a = 0, u = [], c = [], r = function r(e) {\n return null != h ? e.getAttribute(t) === h : e.hasAttribute(t);\n }, l = this.getPieces(), n = 0, i = l.length; i > n; n++) s = l[n], o = s.getLength(), r(s) && (u[1] === a ? u[1] = a + o : c.push(u = [a, a + o])), a += o;\n return c;\n }, c.prototype.locationFromPosition = function (t) {\n var e, n;\n return n = this.blockList.findIndexAndOffsetAtPosition(Math.max(0, t)), null != n.index ? n : (e = this.getBlocks(), {\n index: e.length - 1,\n offset: e[e.length - 1].getLength()\n });\n }, c.prototype.positionFromLocation = function (t) {\n return this.blockList.findPositionAtIndexAndOffset(t.index, t.offset);\n }, c.prototype.locationRangeFromPosition = function (t) {\n return i(this.locationFromPosition(t));\n }, c.prototype.locationRangeFromRange = function (t) {\n var e, n, o, r;\n if (t = i(t)) return r = t[0], n = t[1], o = this.locationFromPosition(r), e = this.locationFromPosition(n), i([o, e]);\n }, c.prototype.rangeFromLocationRange = function (t) {\n var e, n;\n return t = i(t), e = this.positionFromLocation(t[0]), o(t) || (n = this.positionFromLocation(t[1])), i([e, n]);\n }, c.prototype.isEqualTo = function (t) {\n return this.blockList.isEqualTo(null != t ? t.blockList : void 0);\n }, c.prototype.getTexts = function () {\n var t, e, n, i, o;\n for (i = this.getBlocks(), o = [], e = 0, n = i.length; n > e; e++) t = i[e], o.push(t.text);\n return o;\n }, c.prototype.getPieces = function () {\n var t, e, n, i, o;\n for (n = [], i = this.getTexts(), t = 0, e = i.length; e > t; t++) o = i[t], n.push.apply(n, o.getPieces());\n return n;\n }, c.prototype.getObjects = function () {\n return this.getBlocks().concat(this.getTexts()).concat(this.getPieces());\n }, c.prototype.toSerializableDocument = function () {\n var t;\n return t = [], this.blockList.eachObject(function (e) {\n return t.push(e.copyWithText(e.text.toSerializableText()));\n }), new this.constructor(t);\n }, c.prototype.toString = function () {\n return this.blockList.toString();\n }, c.prototype.toJSON = function () {\n return this.blockList.toJSON();\n }, c.prototype.toConsole = function () {\n var t;\n return JSON.stringify(function () {\n var e, n, i, o;\n for (i = this.blockList.toArray(), o = [], e = 0, n = i.length; n > e; e++) t = i[e], o.push(JSON.parse(t.text.toConsole()));\n return o;\n }.call(this));\n }, c;\n }(e.Object);\n }.call(this), function () {\n e.LineBreakInsertion = function () {\n function t(t) {\n var e;\n this.composition = t, this.document = this.composition.document, 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);\n }\n return t.prototype.shouldInsertBlockBreak = function () {\n return this.block.hasAttributes() && this.block.isListItem() && !this.block.isEmpty() ? 0 !== this.startLocation.offset : this.breaksOnReturn && \"\\n\" !== this.nextCharacter;\n }, t.prototype.shouldBreakFormattedBlock = function () {\n return this.block.hasAttributes() && !this.block.isListItem() && (this.breaksOnReturn && \"\\n\" === this.nextCharacter || \"\\n\" === this.previousCharacter);\n }, t.prototype.shouldDecreaseListLevel = function () {\n return this.block.hasAttributes() && this.block.isListItem() && this.block.isEmpty();\n }, t.prototype.shouldPrependListItem = function () {\n return this.block.isListItem() && 0 === this.startLocation.offset && !this.block.isEmpty();\n }, t.prototype.shouldRemoveLastBlockAttribute = function () {\n return this.block.hasAttributes() && !this.block.isListItem() && this.block.isEmpty();\n }, t;\n }();\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a,\n u,\n c,\n l,\n h = function h(t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) p.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n p = {}.hasOwnProperty;\n s = e.normalizeRange, c = e.rangesAreEqual, u = e.rangeIsCollapsed, a = e.objectsAreEqual, t = e.arrayStartsWith, l = e.summarizeArrayChange, i = e.getAllAttributeNames, o = e.getBlockConfig, r = e.getTextConfig, n = e.extend, e.Composition = function (p) {\n function d() {\n this.document = new e.Document(), this.attachments = [], this.currentAttributes = {}, this.revision = 0;\n }\n var f;\n return h(d, p), d.prototype.setDocument = function (t) {\n var e;\n return t.isEqualTo(this.document) ? void 0 : (this.document = t, this.refreshAttachments(), this.revision++, null != (e = this.delegate) && \"function\" == typeof e.compositionDidChangeDocument ? e.compositionDidChangeDocument(t) : void 0);\n }, d.prototype.getSnapshot = function () {\n return {\n document: this.document,\n selectedRange: this.getSelectedRange()\n };\n }, d.prototype.loadSnapshot = function (t) {\n var n, i, o, r;\n return n = t.document, r = t.selectedRange, null != (i = this.delegate) && \"function\" == typeof i.compositionWillLoadSnapshot && i.compositionWillLoadSnapshot(), this.setDocument(null != n ? n : new e.Document()), this.setSelection(null != r ? r : [0, 0]), null != (o = this.delegate) && \"function\" == typeof o.compositionDidLoadSnapshot ? o.compositionDidLoadSnapshot() : void 0;\n }, d.prototype.insertText = function (t, e) {\n var n, i, o, r;\n return r = (null != e ? e : {\n updatePosition: !0\n }).updatePosition, i = this.getSelectedRange(), this.setDocument(this.document.insertTextAtRange(t, i)), o = i[0], n = o + t.getLength(), r && this.setSelection(n), this.notifyDelegateOfInsertionAtRange([o, n]);\n }, d.prototype.insertBlock = function (t) {\n var n;\n return null == t && (t = new e.Block()), n = new e.Document([t]), this.insertDocument(n);\n }, d.prototype.insertDocument = function (t) {\n var n, i, o;\n return null == t && (t = new e.Document()), i = this.getSelectedRange(), this.setDocument(this.document.insertDocumentAtRange(t, i)), o = i[0], n = o + t.getLength(), this.setSelection(n), this.notifyDelegateOfInsertionAtRange([o, n]);\n }, d.prototype.insertString = function (t, n) {\n var i, o;\n return i = this.getCurrentTextAttributes(), o = e.Text.textForStringWithAttributes(t, i), this.insertText(o, n);\n }, d.prototype.insertBlockBreak = function () {\n var t, e, n;\n return e = this.getSelectedRange(), this.setDocument(this.document.insertBlockBreakAtRange(e)), n = e[0], t = n + 1, this.setSelection(t), this.notifyDelegateOfInsertionAtRange([n, t]);\n }, d.prototype.insertLineBreak = function () {\n var t, n;\n return n = new e.LineBreakInsertion(this), n.shouldDecreaseListLevel() ? (this.decreaseListLevel(), this.setSelection(n.startPosition)) : n.shouldPrependListItem() ? (t = new e.Document([n.block.copyWithoutText()]), this.insertDocument(t)) : n.shouldInsertBlockBreak() ? this.insertBlockBreak() : n.shouldRemoveLastBlockAttribute() ? this.removeLastBlockAttribute() : n.shouldBreakFormattedBlock() ? this.breakFormattedBlock(n) : this.insertString(\"\\n\");\n }, d.prototype.insertHTML = function (t) {\n var n, i, o, r;\n return n = e.Document.fromHTML(t), o = this.getSelectedRange(), this.setDocument(this.document.mergeDocumentAtRange(n, o)), r = o[0], i = r + n.getLength() - 1, this.setSelection(i), this.notifyDelegateOfInsertionAtRange([r, i]);\n }, d.prototype.replaceHTML = function (t) {\n var n, i, o;\n return n = e.Document.fromHTML(t).copyUsingObjectsFromDocument(this.document), i = this.getLocationRange({\n strict: !1\n }), o = this.document.rangeFromLocationRange(i), this.setDocument(n), this.setSelection(o);\n }, d.prototype.insertFile = function (t) {\n return this.insertFiles([t]);\n }, d.prototype.insertFiles = function (t) {\n var n, i, o, r, s, a;\n for (i = [], r = 0, s = t.length; s > r; r++) o = t[r], (null != (a = this.delegate) ? a.compositionShouldAcceptFile(o) : void 0) && (n = e.Attachment.attachmentForFile(o), i.push(n));\n return this.insertAttachments(i);\n }, d.prototype.insertAttachment = function (t) {\n return this.insertAttachments([t]);\n }, d.prototype.insertAttachments = function (t) {\n var n, i, o, r, s, a, u, c, l;\n for (c = new e.Text(), r = 0, s = t.length; s > r; r++) n = t[r], l = n.getType(), a = null != (u = e.config.attachments[l]) ? u.presentation : void 0, o = this.getCurrentTextAttributes(), a && (o.presentation = a), i = e.Text.textForAttachmentWithAttributes(n, o), c = c.appendText(i);\n return this.insertText(c);\n }, d.prototype.shouldManageDeletingInDirection = function (t) {\n var e;\n if (e = this.getLocationRange(), u(e)) {\n if (\"backward\" === t && 0 === e[0].offset) return !0;\n if (this.shouldManageMovingCursorInDirection(t)) return !0;\n } else if (e[0].index !== e[1].index) return !0;\n return !1;\n }, d.prototype.deleteInDirection = function (t, e) {\n var n, i, o, r, s, a, c, l;\n return r = (null != e ? e : {}).length, s = this.getLocationRange(), a = this.getSelectedRange(), c = u(a), c ? o = \"backward\" === t && 0 === s[0].offset : l = s[0].index !== s[1].index, o && this.canDecreaseBlockAttributeLevel() && (i = this.getBlock(), i.isListItem() ? this.decreaseListLevel() : this.decreaseBlockAttributeLevel(), this.setSelection(a[0]), i.isEmpty()) ? !1 : (c && (a = this.getExpandedRangeInDirection(t, {\n length: r\n }), \"backward\" === t && (n = this.getAttachmentAtRange(a))), n ? (this.editAttachment(n), !1) : (this.setDocument(this.document.removeTextAtRange(a)), this.setSelection(a[0]), o || l ? !1 : void 0));\n }, d.prototype.moveTextFromRange = function (t) {\n var e;\n return e = this.getSelectedRange()[0], this.setDocument(this.document.moveTextFromRangeToPosition(t, e)), this.setSelection(e);\n }, d.prototype.removeAttachment = function (t) {\n var e;\n return (e = this.document.getRangeOfAttachment(t)) ? (this.stopEditingAttachment(), this.setDocument(this.document.removeTextAtRange(e)), this.setSelection(e[0])) : void 0;\n }, d.prototype.removeLastBlockAttribute = function () {\n var t, e, n, i;\n return n = this.getSelectedRange(), i = n[0], e = n[1], t = this.document.getBlockAtPosition(e), this.removeCurrentAttribute(t.getLastAttribute()), this.setSelection(i);\n }, f = \" \", d.prototype.insertPlaceholder = function () {\n return this.placeholderPosition = this.getPosition(), this.insertString(f);\n }, d.prototype.selectPlaceholder = function () {\n return null != this.placeholderPosition ? (this.setSelectedRange([this.placeholderPosition, this.placeholderPosition + f.length]), this.getSelectedRange()) : void 0;\n }, d.prototype.forgetPlaceholder = function () {\n return this.placeholderPosition = null;\n }, d.prototype.hasCurrentAttribute = function (t) {\n var e;\n return e = this.currentAttributes[t], null != e && e !== !1;\n }, d.prototype.toggleCurrentAttribute = function (t) {\n var e;\n return (e = !this.currentAttributes[t]) ? this.setCurrentAttribute(t, e) : this.removeCurrentAttribute(t);\n }, d.prototype.canSetCurrentAttribute = function (t) {\n return o(t) ? this.canSetCurrentBlockAttribute(t) : this.canSetCurrentTextAttribute(t);\n }, d.prototype.canSetCurrentTextAttribute = function () {\n var t, e, n, i, o;\n if (e = this.getSelectedDocument()) {\n for (o = e.getAttachments(), n = 0, i = o.length; i > n; n++) if (t = o[n], !t.hasContent()) return !1;\n return !0;\n }\n }, d.prototype.canSetCurrentBlockAttribute = function () {\n var t;\n if (t = this.getBlock()) return !t.isTerminalBlock();\n }, d.prototype.setCurrentAttribute = function (t, e) {\n return o(t) ? this.setBlockAttribute(t, e) : (this.setTextAttribute(t, e), this.currentAttributes[t] = e, this.notifyDelegateOfCurrentAttributesChange());\n }, d.prototype.setTextAttribute = function (t, n) {\n var i, o, r, s;\n if (o = this.getSelectedRange()) return r = o[0], i = o[1], r !== i ? this.setDocument(this.document.addAttributeAtRange(t, n, o)) : \"href\" === t ? (s = e.Text.textForStringWithAttributes(n, {\n href: n\n }), this.insertText(s)) : void 0;\n }, d.prototype.setBlockAttribute = function (t, e) {\n var n, i;\n if (i = this.getSelectedRange()) return this.canSetCurrentAttribute(t) ? (n = this.getBlock(), this.setDocument(this.document.applyBlockAttributeAtRange(t, e, i)), this.setSelection(i)) : void 0;\n }, d.prototype.removeCurrentAttribute = function (t) {\n return o(t) ? (this.removeBlockAttribute(t), this.updateCurrentAttributes()) : (this.removeTextAttribute(t), delete this.currentAttributes[t], this.notifyDelegateOfCurrentAttributesChange());\n }, d.prototype.removeTextAttribute = function (t) {\n var e;\n if (e = this.getSelectedRange()) return this.setDocument(this.document.removeAttributeAtRange(t, e));\n }, d.prototype.removeBlockAttribute = function (t) {\n var e;\n if (e = this.getSelectedRange()) return this.setDocument(this.document.removeAttributeAtRange(t, e));\n }, d.prototype.canDecreaseNestingLevel = function () {\n var t;\n return (null != (t = this.getBlock()) ? t.getNestingLevel() : void 0) > 0;\n }, d.prototype.canIncreaseNestingLevel = function () {\n var e, n, i;\n if (e = this.getBlock()) return (null != (i = o(e.getLastNestableAttribute())) ? i.listAttribute : 0) ? (n = this.getPreviousBlock()) ? t(n.getListItemAttributes(), e.getListItemAttributes()) : void 0 : e.getNestingLevel() > 0;\n }, d.prototype.decreaseNestingLevel = function () {\n var t;\n if (t = this.getBlock()) return this.setDocument(this.document.replaceBlock(t, t.decreaseNestingLevel()));\n }, d.prototype.increaseNestingLevel = function () {\n var t;\n if (t = this.getBlock()) return this.setDocument(this.document.replaceBlock(t, t.increaseNestingLevel()));\n }, d.prototype.canDecreaseBlockAttributeLevel = function () {\n var t;\n return (null != (t = this.getBlock()) ? t.getAttributeLevel() : void 0) > 0;\n }, d.prototype.decreaseBlockAttributeLevel = function () {\n var t, e;\n return (t = null != (e = this.getBlock()) ? e.getLastAttribute() : void 0) ? this.removeCurrentAttribute(t) : void 0;\n }, d.prototype.decreaseListLevel = function () {\n var t, e, n, i, o, r;\n for (r = this.getSelectedRange()[0], o = this.document.locationFromPosition(r).index, n = o, t = this.getBlock().getAttributeLevel(); (e = this.document.getBlockAtIndex(n + 1)) && e.isListItem() && e.getAttributeLevel() > t;) n++;\n return r = this.document.positionFromLocation({\n index: o,\n offset: 0\n }), i = this.document.positionFromLocation({\n index: n,\n offset: 0\n }), this.setDocument(this.document.removeLastListAttributeAtRange([r, i]));\n }, d.prototype.updateCurrentAttributes = function () {\n var t, e, n, o, r, s;\n if (s = this.getSelectedRange({\n ignoreLock: !0\n })) {\n for (e = this.document.getCommonAttributesAtRange(s), r = i(), n = 0, o = r.length; o > n; n++) t = r[n], e[t] || this.canSetCurrentAttribute(t) || (e[t] = !1);\n if (!a(e, this.currentAttributes)) return this.currentAttributes = e, this.notifyDelegateOfCurrentAttributesChange();\n }\n }, d.prototype.getCurrentAttributes = function () {\n return n.call({}, this.currentAttributes);\n }, d.prototype.getCurrentTextAttributes = function () {\n var t, e, n, i;\n t = {}, n = this.currentAttributes;\n for (e in n) i = n[e], i !== !1 && r(e) && (t[e] = i);\n return t;\n }, d.prototype.freezeSelection = function () {\n return this.setCurrentAttribute(\"frozen\", !0);\n }, d.prototype.thawSelection = function () {\n return this.removeCurrentAttribute(\"frozen\");\n }, d.prototype.hasFrozenSelection = function () {\n return this.hasCurrentAttribute(\"frozen\");\n }, d.proxyMethod(\"getSelectionManager().getPointRange\"), d.proxyMethod(\"getSelectionManager().setLocationRangeFromPointRange\"), d.proxyMethod(\"getSelectionManager().createLocationRangeFromDOMRange\"), d.proxyMethod(\"getSelectionManager().locationIsCursorTarget\"), d.proxyMethod(\"getSelectionManager().selectionIsExpanded\"), d.proxyMethod(\"delegate?.getSelectionManager\"), d.prototype.setSelection = function (t) {\n var e, n;\n return e = this.document.locationRangeFromRange(t), null != (n = this.delegate) ? n.compositionDidRequestChangingSelectionToLocationRange(e) : void 0;\n }, d.prototype.getSelectedRange = function () {\n var t;\n return (t = this.getLocationRange()) ? this.document.rangeFromLocationRange(t) : void 0;\n }, d.prototype.setSelectedRange = function (t) {\n var e;\n return e = this.document.locationRangeFromRange(t), this.getSelectionManager().setLocationRange(e);\n }, d.prototype.getPosition = function () {\n var t;\n return (t = this.getLocationRange()) ? this.document.positionFromLocation(t[0]) : void 0;\n }, d.prototype.getLocationRange = function (t) {\n var e, n;\n return null != (e = null != (n = this.targetLocationRange) ? n : this.getSelectionManager().getLocationRange(t)) ? e : s({\n index: 0,\n offset: 0\n });\n }, d.prototype.withTargetLocationRange = function (t, e) {\n var n;\n this.targetLocationRange = t;\n try {\n n = e();\n } finally {\n this.targetLocationRange = null;\n }\n return n;\n }, d.prototype.withTargetRange = function (t, e) {\n var n;\n return n = this.document.locationRangeFromRange(t), this.withTargetLocationRange(n, e);\n }, d.prototype.withTargetDOMRange = function (t, e) {\n var n;\n return n = this.createLocationRangeFromDOMRange(t, {\n strict: !1\n }), this.withTargetLocationRange(n, e);\n }, d.prototype.getExpandedRangeInDirection = function (t, e) {\n var n, i, o, r;\n return i = (null != e ? e : {}).length, o = this.getSelectedRange(), r = o[0], n = o[1], \"backward\" === t ? i ? r -= i : r = this.translateUTF16PositionFromOffset(r, -1) : i ? n += i : n = this.translateUTF16PositionFromOffset(n, 1), s([r, n]);\n }, d.prototype.shouldManageMovingCursorInDirection = function (t) {\n var e;\n return this.editingAttachment ? !0 : (e = this.getExpandedRangeInDirection(t), null != this.getAttachmentAtRange(e));\n }, d.prototype.moveCursorInDirection = function (t) {\n var e, n, i, o;\n return this.editingAttachment ? i = this.document.getRangeOfAttachment(this.editingAttachment) : (o = this.getSelectedRange(), i = this.getExpandedRangeInDirection(t), n = !c(o, i)), this.setSelectedRange(\"backward\" === t ? i[0] : i[1]), n && (e = this.getAttachmentAtRange(i)) ? this.editAttachment(e) : void 0;\n }, d.prototype.expandSelectionInDirection = function (t, e) {\n var n, i;\n return n = (null != e ? e : {}).length, i = this.getExpandedRangeInDirection(t, {\n length: n\n }), this.setSelectedRange(i);\n }, d.prototype.expandSelectionForEditing = function () {\n return this.hasCurrentAttribute(\"href\") ? this.expandSelectionAroundCommonAttribute(\"href\") : void 0;\n }, d.prototype.expandSelectionAroundCommonAttribute = function (t) {\n var e, n;\n return e = this.getPosition(), n = this.document.getRangeOfCommonAttributeAtPosition(t, e), this.setSelectedRange(n);\n }, d.prototype.selectionContainsAttachments = function () {\n var t;\n return (null != (t = this.getSelectedAttachments()) ? t.length : void 0) > 0;\n }, d.prototype.selectionIsInCursorTarget = function () {\n return this.editingAttachment || this.positionIsCursorTarget(this.getPosition());\n }, d.prototype.positionIsCursorTarget = function (t) {\n var e;\n return (e = this.document.locationFromPosition(t)) ? this.locationIsCursorTarget(e) : void 0;\n }, d.prototype.positionIsBlockBreak = function (t) {\n var e;\n return null != (e = this.document.getPieceAtPosition(t)) ? e.isBlockBreak() : void 0;\n }, d.prototype.getSelectedDocument = function () {\n var t;\n return (t = this.getSelectedRange()) ? this.document.getDocumentAtRange(t) : void 0;\n }, d.prototype.getSelectedAttachments = function () {\n var t;\n return null != (t = this.getSelectedDocument()) ? t.getAttachments() : void 0;\n }, d.prototype.getAttachments = function () {\n return this.attachments.slice(0);\n }, d.prototype.refreshAttachments = function () {\n var t, e, n, i, o, r, s, a, u, c, h, p;\n for (n = this.document.getAttachments(), a = l(this.attachments, n), t = a.added, h = a.removed, this.attachments = n, i = 0, r = h.length; r > i; i++) e = h[i], e.delegate = null, null != (u = this.delegate) && \"function\" == typeof u.compositionDidRemoveAttachment && u.compositionDidRemoveAttachment(e);\n for (p = [], o = 0, s = t.length; s > o; o++) e = t[o], e.delegate = this, p.push(null != (c = this.delegate) && \"function\" == typeof c.compositionDidAddAttachment ? c.compositionDidAddAttachment(e) : void 0);\n return p;\n }, d.prototype.attachmentDidChangeAttributes = function (t) {\n var e;\n return this.revision++, null != (e = this.delegate) && \"function\" == typeof e.compositionDidEditAttachment ? e.compositionDidEditAttachment(t) : void 0;\n }, d.prototype.attachmentDidChangePreviewURL = function (t) {\n var e;\n return this.revision++, null != (e = this.delegate) && \"function\" == typeof e.compositionDidChangeAttachmentPreviewURL ? e.compositionDidChangeAttachmentPreviewURL(t) : void 0;\n }, d.prototype.editAttachment = function (t, e) {\n var n;\n if (t !== this.editingAttachment) return this.stopEditingAttachment(), this.editingAttachment = t, null != (n = this.delegate) && \"function\" == typeof n.compositionDidStartEditingAttachment ? n.compositionDidStartEditingAttachment(this.editingAttachment, e) : void 0;\n }, d.prototype.stopEditingAttachment = function () {\n var t;\n if (this.editingAttachment) return null != (t = this.delegate) && \"function\" == typeof t.compositionDidStopEditingAttachment && t.compositionDidStopEditingAttachment(this.editingAttachment), this.editingAttachment = null;\n }, d.prototype.updateAttributesForAttachment = function (t, e) {\n return this.setDocument(this.document.updateAttributesForAttachment(t, e));\n }, d.prototype.removeAttributeForAttachment = function (t, e) {\n return this.setDocument(this.document.removeAttributeForAttachment(t, e));\n }, d.prototype.breakFormattedBlock = function (t) {\n var n, i, o, r, s;\n return i = t.document, n = t.block, r = t.startPosition, s = [r - 1, r], n.getBlockBreakPosition() === t.startLocation.offset ? (n.breaksOnReturn() && \"\\n\" === t.nextCharacter ? r += 1 : i = i.removeTextAtRange(s), s = [r, r]) : \"\\n\" === t.nextCharacter ? \"\\n\" === t.previousCharacter ? s = [r - 1, r + 1] : (s = [r, r + 1], r += 1) : t.startLocation.offset - 1 !== 0 && (r += 1), o = new e.Document([n.removeLastAttribute().copyWithoutText()]), this.setDocument(i.insertDocumentAtRange(o, s)), this.setSelection(r);\n }, d.prototype.getPreviousBlock = function () {\n var t, e;\n return (e = this.getLocationRange()) && (t = e[0].index, t > 0) ? this.document.getBlockAtIndex(t - 1) : void 0;\n }, d.prototype.getBlock = function () {\n var t;\n return (t = this.getLocationRange()) ? this.document.getBlockAtIndex(t[0].index) : void 0;\n }, d.prototype.getAttachmentAtRange = function (t) {\n var n;\n return n = this.document.getDocumentAtRange(t), n.toString() === e.OBJECT_REPLACEMENT_CHARACTER + \"\\n\" ? n.getAttachments()[0] : void 0;\n }, d.prototype.notifyDelegateOfCurrentAttributesChange = function () {\n var t;\n return null != (t = this.delegate) && \"function\" == typeof t.compositionDidChangeCurrentAttributes ? t.compositionDidChangeCurrentAttributes(this.currentAttributes) : void 0;\n }, d.prototype.notifyDelegateOfInsertionAtRange = function (t) {\n var e;\n return null != (e = this.delegate) && \"function\" == typeof e.compositionDidPerformInsertionAtRange ? e.compositionDidPerformInsertionAtRange(t) : void 0;\n }, d.prototype.translateUTF16PositionFromOffset = function (t, e) {\n var n, i;\n return i = this.document.toUTF16String(), n = i.offsetFromUCS2Offset(t), i.offsetToUCS2Offset(n + e);\n }, d;\n }(e.BasicObject);\n }.call(this), function () {\n var t = function t(_t17, e) {\n function i() {\n this.constructor = _t17;\n }\n for (var o in e) n.call(e, o) && (_t17[o] = e[o]);\n return i.prototype = e.prototype, _t17.prototype = new i(), _t17.__super__ = e.prototype, _t17;\n },\n n = {}.hasOwnProperty;\n e.UndoManager = function (e) {\n function n(t) {\n this.composition = t, this.undoEntries = [], this.redoEntries = [];\n }\n var i;\n return t(n, e), n.prototype.recordUndoEntry = function (t, e) {\n var n, o, r, s, a;\n return s = null != e ? e : {}, o = s.context, n = s.consolidatable, r = this.undoEntries.slice(-1)[0], n && i(r, t, o) ? void 0 : (a = this.createEntry({\n description: t,\n context: o\n }), this.undoEntries.push(a), this.redoEntries = []);\n }, n.prototype.undo = function () {\n var t, e;\n return (e = this.undoEntries.pop()) ? (t = this.createEntry(e), this.redoEntries.push(t), this.composition.loadSnapshot(e.snapshot)) : void 0;\n }, n.prototype.redo = function () {\n var t, e;\n return (t = this.redoEntries.pop()) ? (e = this.createEntry(t), this.undoEntries.push(e), this.composition.loadSnapshot(t.snapshot)) : void 0;\n }, n.prototype.canUndo = function () {\n return this.undoEntries.length > 0;\n }, n.prototype.canRedo = function () {\n return this.redoEntries.length > 0;\n }, n.prototype.createEntry = function (t) {\n var e, n, i;\n return i = null != t ? t : {}, n = i.description, e = i.context, {\n description: null != n ? n.toString() : void 0,\n context: JSON.stringify(e),\n snapshot: this.composition.getSnapshot()\n };\n }, i = function i(t, e, n) {\n return (null != t ? t.description : void 0) === (null != e ? e.toString() : void 0) && (null != t ? t.context : void 0) === JSON.stringify(n);\n }, n;\n }(e.BasicObject);\n }.call(this), function () {\n var t;\n e.attachmentGalleryFilter = function (e) {\n var n;\n return n = new t(e), n.perform(), n.getSnapshot();\n }, t = function () {\n function t(t) {\n this.document = t.document, this.selectedRange = t.selectedRange;\n }\n var e, n, i;\n return e = \"attachmentGallery\", n = \"presentation\", i = \"gallery\", t.prototype.perform = function () {\n return this.removeBlockAttribute(), this.applyBlockAttribute();\n }, t.prototype.getSnapshot = function () {\n return {\n document: this.document,\n selectedRange: this.selectedRange\n };\n }, t.prototype.removeBlockAttribute = function () {\n var t, n, i, o, r;\n for (o = this.findRangesOfBlocks(), r = [], t = 0, n = o.length; n > t; t++) i = o[t], r.push(this.document = this.document.removeAttributeAtRange(e, i));\n return r;\n }, t.prototype.applyBlockAttribute = function () {\n var t, n, i, o, r, s;\n for (i = 0, r = this.findRangesOfPieces(), s = [], t = 0, n = r.length; n > t; t++) o = r[t], o[1] - o[0] > 1 && (o[0] += i, o[1] += i, \"\\n\" !== this.document.getCharacterAtPosition(o[1]) && (this.document = this.document.insertBlockBreakAtRange(o[1]), o[1] < this.selectedRange[1] && this.moveSelectedRangeForward(), o[1]++, i++), 0 !== o[0] && \"\\n\" !== this.document.getCharacterAtPosition(o[0] - 1) && (this.document = this.document.insertBlockBreakAtRange(o[0]), o[0] < this.selectedRange[0] && this.moveSelectedRangeForward(), o[0]++, i++), s.push(this.document = this.document.applyBlockAttributeAtRange(e, !0, o)));\n return s;\n }, t.prototype.findRangesOfBlocks = function () {\n return this.document.findRangesForBlockAttribute(e);\n }, t.prototype.findRangesOfPieces = function () {\n return this.document.findRangesForTextAttribute(n, {\n withValue: i\n });\n }, t.prototype.moveSelectedRangeForward = function () {\n return this.selectedRange[0] += 1, this.selectedRange[1] += 1;\n }, t;\n }();\n }.call(this), function () {\n var t = function t(_t18, e) {\n return function () {\n return _t18.apply(e, arguments);\n };\n };\n e.Editor = function () {\n function n(n, o, r) {\n this.composition = n, this.selectionManager = o, this.element = r, this.insertFiles = t(this.insertFiles, this), this.undoManager = new e.UndoManager(this.composition), this.filters = i.slice(0);\n }\n var i;\n return i = [e.attachmentGalleryFilter], n.prototype.loadDocument = function (t) {\n return this.loadSnapshot({\n document: t,\n selectedRange: [0, 0]\n });\n }, n.prototype.loadHTML = function (t) {\n return null == t && (t = \"\"), this.loadDocument(e.Document.fromHTML(t, {\n referenceElement: this.element\n }));\n }, n.prototype.loadJSON = function (t) {\n var n, i;\n return n = t.document, i = t.selectedRange, n = e.Document.fromJSON(n), this.loadSnapshot({\n document: n,\n selectedRange: i\n });\n }, n.prototype.loadSnapshot = function (t) {\n return this.undoManager = new e.UndoManager(this.composition), this.composition.loadSnapshot(t);\n }, n.prototype.getDocument = function () {\n return this.composition.document;\n }, n.prototype.getSelectedDocument = function () {\n return this.composition.getSelectedDocument();\n }, n.prototype.getSnapshot = function () {\n return this.composition.getSnapshot();\n }, n.prototype.toJSON = function () {\n return this.getSnapshot();\n }, n.prototype.deleteInDirection = function (t) {\n return this.composition.deleteInDirection(t);\n }, n.prototype.insertAttachment = function (t) {\n return this.composition.insertAttachment(t);\n }, n.prototype.insertAttachments = function (t) {\n return this.composition.insertAttachments(t);\n }, n.prototype.insertDocument = function (t) {\n return this.composition.insertDocument(t);\n }, n.prototype.insertFile = function (t) {\n return this.composition.insertFile(t);\n }, n.prototype.insertFiles = function (t) {\n return this.composition.insertFiles(t);\n }, n.prototype.insertHTML = function (t) {\n return this.composition.insertHTML(t);\n }, n.prototype.insertString = function (t) {\n return this.composition.insertString(t);\n }, n.prototype.insertText = function (t) {\n return this.composition.insertText(t);\n }, n.prototype.insertLineBreak = function () {\n return this.composition.insertLineBreak();\n }, n.prototype.getSelectedRange = function () {\n return this.composition.getSelectedRange();\n }, n.prototype.getPosition = function () {\n return this.composition.getPosition();\n }, n.prototype.getClientRectAtPosition = function (t) {\n var e;\n return e = this.getDocument().locationRangeFromRange([t, t + 1]), this.selectionManager.getClientRectAtLocationRange(e);\n }, n.prototype.expandSelectionInDirection = function (t) {\n return this.composition.expandSelectionInDirection(t);\n }, n.prototype.moveCursorInDirection = function (t) {\n return this.composition.moveCursorInDirection(t);\n }, n.prototype.setSelectedRange = function (t) {\n return this.composition.setSelectedRange(t);\n }, n.prototype.activateAttribute = function (t, e) {\n return null == e && (e = !0), this.composition.setCurrentAttribute(t, e);\n }, n.prototype.attributeIsActive = function (t) {\n return this.composition.hasCurrentAttribute(t);\n }, n.prototype.canActivateAttribute = function (t) {\n return this.composition.canSetCurrentAttribute(t);\n }, n.prototype.deactivateAttribute = function (t) {\n return this.composition.removeCurrentAttribute(t);\n }, n.prototype.canDecreaseNestingLevel = function () {\n return this.composition.canDecreaseNestingLevel();\n }, n.prototype.canIncreaseNestingLevel = function () {\n return this.composition.canIncreaseNestingLevel();\n }, n.prototype.decreaseNestingLevel = function () {\n return this.canDecreaseNestingLevel() ? this.composition.decreaseNestingLevel() : void 0;\n }, n.prototype.increaseNestingLevel = function () {\n return this.canIncreaseNestingLevel() ? this.composition.increaseNestingLevel() : void 0;\n }, n.prototype.canRedo = function () {\n return this.undoManager.canRedo();\n }, n.prototype.canUndo = function () {\n return this.undoManager.canUndo();\n }, n.prototype.recordUndoEntry = function (t, e) {\n var n, i, o;\n return o = null != e ? e : {}, i = o.context, n = o.consolidatable, this.undoManager.recordUndoEntry(t, {\n context: i,\n consolidatable: n\n });\n }, n.prototype.redo = function () {\n return this.canRedo() ? this.undoManager.redo() : void 0;\n }, n.prototype.undo = function () {\n return this.canUndo() ? this.undoManager.undo() : void 0;\n }, n;\n }();\n }.call(this), function () {\n var t = function t(_t19, e) {\n function i() {\n this.constructor = _t19;\n }\n for (var o in e) n.call(e, o) && (_t19[o] = e[o]);\n return i.prototype = e.prototype, _t19.prototype = new i(), _t19.__super__ = e.prototype, _t19;\n },\n n = {}.hasOwnProperty;\n e.ManagedAttachment = function (e) {\n function n(t, e) {\n var n;\n this.attachmentManager = t, this.attachment = e, n = this.attachment, this.id = n.id, this.file = n.file;\n }\n return t(n, e), n.prototype.remove = function () {\n return this.attachmentManager.requestRemovalOfAttachment(this.attachment);\n }, n.proxyMethod(\"attachment.getAttribute\"), n.proxyMethod(\"attachment.hasAttribute\"), n.proxyMethod(\"attachment.setAttribute\"), n.proxyMethod(\"attachment.getAttributes\"), n.proxyMethod(\"attachment.setAttributes\"), n.proxyMethod(\"attachment.isPending\"), n.proxyMethod(\"attachment.isPreviewable\"), n.proxyMethod(\"attachment.getURL\"), n.proxyMethod(\"attachment.getHref\"), n.proxyMethod(\"attachment.getFilename\"), n.proxyMethod(\"attachment.getFilesize\"), n.proxyMethod(\"attachment.getFormattedFilesize\"), n.proxyMethod(\"attachment.getExtension\"), n.proxyMethod(\"attachment.getContentType\"), n.proxyMethod(\"attachment.getFile\"), n.proxyMethod(\"attachment.setFile\"), n.proxyMethod(\"attachment.releaseFile\"), n.proxyMethod(\"attachment.getUploadProgress\"), n.proxyMethod(\"attachment.setUploadProgress\"), n;\n }(e.BasicObject);\n }.call(this), function () {\n var t = function t(_t20, e) {\n function i() {\n this.constructor = _t20;\n }\n for (var o in e) n.call(e, o) && (_t20[o] = e[o]);\n return i.prototype = e.prototype, _t20.prototype = new i(), _t20.__super__ = e.prototype, _t20;\n },\n n = {}.hasOwnProperty;\n e.AttachmentManager = function (n) {\n function i(t) {\n var e, n, i;\n for (null == t && (t = []), this.managedAttachments = {}, n = 0, i = t.length; i > n; n++) e = t[n], this.manageAttachment(e);\n }\n return t(i, n), i.prototype.getAttachments = function () {\n var t, e, n, i;\n n = this.managedAttachments, i = [];\n for (e in n) t = n[e], i.push(t);\n return i;\n }, i.prototype.manageAttachment = function (t) {\n var n, i;\n return null != (n = this.managedAttachments)[i = t.id] ? n[i] : n[i] = new e.ManagedAttachment(this, t);\n }, i.prototype.attachmentIsManaged = function (t) {\n return t.id in this.managedAttachments;\n }, i.prototype.requestRemovalOfAttachment = function (t) {\n var e;\n return this.attachmentIsManaged(t) && null != (e = this.delegate) && \"function\" == typeof e.attachmentManagerDidRequestRemovalOfAttachment ? e.attachmentManagerDidRequestRemovalOfAttachment(t) : void 0;\n }, i.prototype.unmanageAttachment = function (t) {\n var e;\n return e = this.managedAttachments[t.id], delete this.managedAttachments[t.id], e;\n }, i;\n }(e.BasicObject);\n }.call(this), function () {\n var t, n, i, o, r, s, a, u, c, l, h;\n t = e.elementContainsNode, n = e.findChildIndexOfNode, r = e.nodeIsBlockStart, s = e.nodeIsBlockStartComment, o = e.nodeIsBlockContainer, a = e.nodeIsCursorTarget, u = e.nodeIsEmptyTextNode, c = e.nodeIsTextNode, i = e.nodeIsAttachmentElement, l = e.tagName, h = e.walkTree, e.LocationMapper = function () {\n function e(t) {\n this.element = t;\n }\n var p, d, f, g;\n return e.prototype.findLocationFromContainerAndOffset = function (e, i, o) {\n var s, u, l, p, g, m, v;\n for (m = (null != o ? o : {\n strict: !0\n }).strict, u = 0, l = !1, p = {\n index: 0,\n offset: 0\n }, (s = this.findAttachmentElementParentForNode(e)) && (e = s.parentNode, i = n(s)), v = h(this.element, {\n usingFilter: f\n }); v.nextNode();) {\n if (g = v.currentNode, g === e && c(e)) {\n a(g) || (p.offset += i);\n break;\n }\n if (g.parentNode === e) {\n if (u++ === i) break;\n } else if (!t(e, g) && u > 0) break;\n r(g, {\n strict: m\n }) ? (l && p.index++, p.offset = 0, l = !0) : p.offset += d(g);\n }\n return p;\n }, e.prototype.findContainerAndOffsetFromLocation = function (t) {\n var e, i, s, u, l;\n if (0 === t.index && 0 === t.offset) {\n for (e = this.element, u = 0; e.firstChild;) if (e = e.firstChild, o(e)) {\n u = 1;\n break;\n }\n return [e, u];\n }\n if (l = this.findNodeAndOffsetFromLocation(t), i = l[0], s = l[1], i) {\n if (c(i)) 0 === d(i) ? (e = i.parentNode.parentNode, u = n(i.parentNode), a(i, {\n name: \"right\"\n }) && u++) : (e = i, u = t.offset - s);else {\n if (e = i.parentNode, !r(i.previousSibling) && !o(e)) for (; i === e.lastChild && (i = e, e = e.parentNode, !o(e)););\n u = n(i), 0 !== t.offset && u++;\n }\n return [e, u];\n }\n }, e.prototype.findNodeAndOffsetFromLocation = function (t) {\n var e, n, i, o, r, s, u, l;\n for (u = 0, l = this.getSignificantNodesForIndex(t.index), n = 0, i = l.length; i > n; n++) {\n if (e = l[n], o = d(e), t.offset <= u + o) if (c(e)) {\n if (r = e, s = u, t.offset === s && a(r)) break;\n } else r || (r = e, s = u);\n if (u += o, u > t.offset) break;\n }\n return [r, s];\n }, e.prototype.findAttachmentElementParentForNode = function (t) {\n for (; t && t !== this.element;) {\n if (i(t)) return t;\n t = t.parentNode;\n }\n }, e.prototype.getSignificantNodesForIndex = function (t) {\n var e, n, i, o, r;\n for (i = [], r = h(this.element, {\n usingFilter: p\n }), o = !1; r.nextNode();) if (n = r.currentNode, s(n)) {\n if (\"undefined\" != typeof e && null !== e ? e++ : e = 0, e === t) o = !0;else if (o) break;\n } else o && i.push(n);\n return i;\n }, d = function d(t) {\n var e;\n return t.nodeType === Node.TEXT_NODE ? a(t) ? 0 : (e = t.textContent, e.length) : \"br\" === l(t) || i(t) ? 1 : 0;\n }, p = function p(t) {\n return g(t) === NodeFilter.FILTER_ACCEPT ? f(t) : NodeFilter.FILTER_REJECT;\n }, g = function g(t) {\n return u(t) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;\n }, f = function f(t) {\n return i(t.parentNode) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;\n }, e;\n }();\n }.call(this), function () {\n var t,\n n,\n i = [].slice;\n t = e.getDOMRange, n = e.setDOMRange, e.PointMapper = function () {\n function e() {}\n return e.prototype.createDOMRangeFromPoint = function (e) {\n var i, o, r, s, a, u, c, l;\n if (c = e.x, l = e.y, document.caretPositionFromPoint) return a = document.caretPositionFromPoint(c, l), r = a.offsetNode, o = a.offset, i = document.createRange(), i.setStart(r, o), i;\n if (document.caretRangeFromPoint) return document.caretRangeFromPoint(c, l);\n if (document.body.createTextRange) {\n s = t();\n try {\n u = document.body.createTextRange(), u.moveToPoint(c, l), u.select();\n } catch (h) {}\n return i = t(), n(s), i;\n }\n }, e.prototype.getClientRectsForDOMRange = function (t) {\n var e, n, o;\n return n = i.call(t.getClientRects()), o = n[0], e = n[n.length - 1], [o, e];\n }, e;\n }();\n }.call(this), function () {\n var t,\n n = function n(t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n i = function i(t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) o.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n o = {}.hasOwnProperty,\n r = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n return -1;\n };\n t = e.getDOMRange, e.SelectionChangeObserver = function (e) {\n function o() {\n this.run = n(this.run, this), this.update = n(this.update, this), this.selectionManagers = [];\n }\n var s;\n return i(o, e), o.prototype.start = function () {\n return this.started ? void 0 : (this.started = !0, \"onselectionchange\" in document ? document.addEventListener(\"selectionchange\", this.update, !0) : this.run());\n }, o.prototype.stop = function () {\n return this.started ? (this.started = !1, document.removeEventListener(\"selectionchange\", this.update, !0)) : void 0;\n }, o.prototype.registerSelectionManager = function (t) {\n return r.call(this.selectionManagers, t) < 0 ? (this.selectionManagers.push(t), this.start()) : void 0;\n }, o.prototype.unregisterSelectionManager = function (t) {\n var e;\n return this.selectionManagers = function () {\n var n, i, o, r;\n for (o = this.selectionManagers, r = [], n = 0, i = o.length; i > n; n++) e = o[n], e !== t && r.push(e);\n return r;\n }.call(this), 0 === this.selectionManagers.length ? this.stop() : void 0;\n }, o.prototype.notifySelectionManagersOfSelectionChange = function () {\n var t, e, n, i, o;\n for (n = this.selectionManagers, i = [], t = 0, e = n.length; e > t; t++) o = n[t], i.push(o.selectionDidChange());\n return i;\n }, o.prototype.update = function () {\n var e;\n return e = t(), s(e, this.domRange) ? void 0 : (this.domRange = e, this.notifySelectionManagersOfSelectionChange());\n }, o.prototype.reset = function () {\n return this.domRange = null, this.update();\n }, o.prototype.run = function () {\n return this.started ? (this.update(), requestAnimationFrame(this.run)) : void 0;\n }, s = function s(t, e) {\n return (null != t ? t.startContainer : void 0) === (null != e ? e.startContainer : void 0) && (null != t ? t.startOffset : void 0) === (null != e ? e.startOffset : void 0) && (null != t ? t.endContainer : void 0) === (null != e ? e.endContainer : void 0) && (null != t ? t.endOffset : void 0) === (null != e ? e.endOffset : void 0);\n }, o;\n }(e.BasicObject), null == e.selectionChangeObserver && (e.selectionChangeObserver = new e.SelectionChangeObserver());\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a,\n u,\n c,\n l,\n h = function h(t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n p = function p(t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) d.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n d = {}.hasOwnProperty;\n i = e.getDOMSelection, n = e.getDOMRange, l = e.setDOMRange, t = e.elementContainsNode, s = e.nodeIsCursorTarget, r = e.innerElementIsActive, o = e.handleEvent, a = e.normalizeRange, u = e.rangeIsCollapsed, c = e.rangesAreEqual, e.SelectionManager = function (d) {\n function f(t) {\n this.element = t, this.selectionDidChange = h(this.selectionDidChange, this), this.didMouseDown = h(this.didMouseDown, this), this.locationMapper = new e.LocationMapper(this.element), this.pointMapper = new e.PointMapper(), this.lockCount = 0, o(\"mousedown\", {\n onElement: this.element,\n withCallback: this.didMouseDown\n });\n }\n return p(f, d), f.prototype.getLocationRange = function (t) {\n var e, i;\n return null == t && (t = {}), e = t.strict === !1 ? this.createLocationRangeFromDOMRange(n(), {\n strict: !1\n }) : t.ignoreLock ? this.currentLocationRange : null != (i = this.lockedLocationRange) ? i : this.currentLocationRange;\n }, f.prototype.setLocationRange = function (t) {\n var e;\n if (!this.lockedLocationRange) return t = a(t), (e = this.createDOMRangeFromLocationRange(t)) ? (l(e), this.updateCurrentLocationRange(t)) : void 0;\n }, f.prototype.setLocationRangeFromPointRange = function (t) {\n var e, n;\n return t = a(t), n = this.getLocationAtPoint(t[0]), e = this.getLocationAtPoint(t[1]), this.setLocationRange([n, e]);\n }, f.prototype.getClientRectAtLocationRange = function (t) {\n var e;\n return (e = this.createDOMRangeFromLocationRange(t)) ? this.getClientRectsForDOMRange(e)[1] : void 0;\n }, f.prototype.locationIsCursorTarget = function (t) {\n var e, n, i;\n return i = this.findNodeAndOffsetFromLocation(t), e = i[0], n = i[1], s(e);\n }, f.prototype.lock = function () {\n return 0 === this.lockCount++ ? (this.updateCurrentLocationRange(), this.lockedLocationRange = this.getLocationRange()) : void 0;\n }, f.prototype.unlock = function () {\n var t;\n return 0 === --this.lockCount && (t = this.lockedLocationRange, this.lockedLocationRange = null, null != t) ? this.setLocationRange(t) : void 0;\n }, f.prototype.clearSelection = function () {\n var t;\n return null != (t = i()) ? t.removeAllRanges() : void 0;\n }, f.prototype.selectionIsCollapsed = function () {\n var t;\n return (null != (t = n()) ? t.collapsed : void 0) === !0;\n }, f.prototype.selectionIsExpanded = function () {\n return !this.selectionIsCollapsed();\n }, f.prototype.createLocationRangeFromDOMRange = function (t, e) {\n var n, i;\n if (null != t && this.domRangeWithinElement(t) && (i = this.findLocationFromContainerAndOffset(t.startContainer, t.startOffset, e))) return t.collapsed || (n = this.findLocationFromContainerAndOffset(t.endContainer, t.endOffset, e)), a([i, n]);\n }, f.proxyMethod(\"locationMapper.findLocationFromContainerAndOffset\"), f.proxyMethod(\"locationMapper.findContainerAndOffsetFromLocation\"), f.proxyMethod(\"locationMapper.findNodeAndOffsetFromLocation\"), f.proxyMethod(\"pointMapper.createDOMRangeFromPoint\"), f.proxyMethod(\"pointMapper.getClientRectsForDOMRange\"), f.prototype.didMouseDown = function () {\n return this.pauseTemporarily();\n }, f.prototype.pauseTemporarily = function () {\n var e, n, i, r;\n return this.paused = !0, n = function (e) {\n return function () {\n var n, o, s;\n for (e.paused = !1, clearTimeout(r), o = 0, s = i.length; s > o; o++) n = i[o], n.destroy();\n return t(document, e.element) ? e.selectionDidChange() : void 0;\n };\n }(this), r = setTimeout(n, 200), i = function () {\n var t, i, r, s;\n for (r = [\"mousemove\", \"keydown\"], s = [], t = 0, i = r.length; i > t; t++) e = r[t], s.push(o(e, {\n onElement: document,\n withCallback: n\n }));\n return s;\n }();\n }, f.prototype.selectionDidChange = function () {\n return this.paused || r(this.element) ? void 0 : this.updateCurrentLocationRange();\n }, f.prototype.updateCurrentLocationRange = function (t) {\n var e;\n return (null != t ? t : t = this.createLocationRangeFromDOMRange(n())) && !c(t, this.currentLocationRange) ? (this.currentLocationRange = t, null != (e = this.delegate) && \"function\" == typeof e.locationRangeDidChange ? e.locationRangeDidChange(this.currentLocationRange.slice(0)) : void 0) : void 0;\n }, f.prototype.createDOMRangeFromLocationRange = function (t) {\n var e, n, i, o;\n return i = this.findContainerAndOffsetFromLocation(t[0]), n = u(t) ? i : null != (o = this.findContainerAndOffsetFromLocation(t[1])) ? o : i, null != i && null != n ? (e = document.createRange(), e.setStart.apply(e, i), e.setEnd.apply(e, n), e) : void 0;\n }, f.prototype.getLocationAtPoint = function (t) {\n var e, n;\n return (e = this.createDOMRangeFromPoint(t)) && null != (n = this.createLocationRangeFromDOMRange(e)) ? n[0] : void 0;\n }, f.prototype.domRangeWithinElement = function (e) {\n return e.collapsed ? t(this.element, e.startContainer) : t(this.element, e.startContainer) && t(this.element, e.endContainer);\n }, f;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r = function r(t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) s.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n s = {}.hasOwnProperty,\n a = [].slice;\n i = e.rangeIsCollapsed, o = e.rangesAreEqual, n = e.objectsAreEqual, t = e.getBlockConfig, e.EditorController = function (s) {\n function u(t) {\n var n, i;\n this.editorElement = t.editorElement, n = t.document, i = t.html, this.selectionManager = new e.SelectionManager(this.editorElement), this.selectionManager.delegate = this, this.composition = new e.Composition(), this.composition.delegate = this, this.attachmentManager = new e.AttachmentManager(this.composition.getAttachments()), this.attachmentManager.delegate = this, this.inputController = new e[\"Level\" + e.config.input.getLevel() + \"InputController\"](this.editorElement), this.inputController.delegate = this, this.inputController.responder = this.composition, this.compositionController = new e.CompositionController(this.editorElement, this.composition), this.compositionController.delegate = this, this.toolbarController = new e.ToolbarController(this.editorElement.toolbarElement), this.toolbarController.delegate = this, this.editor = new e.Editor(this.composition, this.selectionManager, this.editorElement), null != n ? this.editor.loadDocument(n) : this.editor.loadHTML(i);\n }\n var c;\n return r(u, s), u.prototype.registerSelectionManager = function () {\n return e.selectionChangeObserver.registerSelectionManager(this.selectionManager);\n }, u.prototype.unregisterSelectionManager = function () {\n return e.selectionChangeObserver.unregisterSelectionManager(this.selectionManager);\n }, u.prototype.render = function () {\n return this.compositionController.render();\n }, u.prototype.reparse = function () {\n return this.composition.replaceHTML(this.editorElement.innerHTML);\n }, u.prototype.compositionDidChangeDocument = function () {\n return this.notifyEditorElement(\"document-change\"), this.handlingInput ? void 0 : this.render();\n }, u.prototype.compositionDidChangeCurrentAttributes = function (t) {\n return this.currentAttributes = t, this.toolbarController.updateAttributes(this.currentAttributes), this.updateCurrentActions(), this.notifyEditorElement(\"attributes-change\", {\n attributes: this.currentAttributes\n });\n }, u.prototype.compositionDidPerformInsertionAtRange = function (t) {\n return this.pasting ? this.pastedRange = t : void 0;\n }, u.prototype.compositionShouldAcceptFile = function (t) {\n return this.notifyEditorElement(\"file-accept\", {\n file: t\n });\n }, u.prototype.compositionDidAddAttachment = function (t) {\n var e;\n return e = this.attachmentManager.manageAttachment(t), this.notifyEditorElement(\"attachment-add\", {\n attachment: e\n });\n }, u.prototype.compositionDidEditAttachment = function (t) {\n var e;\n return this.compositionController.rerenderViewForObject(t), e = this.attachmentManager.manageAttachment(t), this.notifyEditorElement(\"attachment-edit\", {\n attachment: e\n }), this.notifyEditorElement(\"change\");\n }, u.prototype.compositionDidChangeAttachmentPreviewURL = function (t) {\n return this.compositionController.invalidateViewForObject(t), this.notifyEditorElement(\"change\");\n }, u.prototype.compositionDidRemoveAttachment = function (t) {\n var e;\n return e = this.attachmentManager.unmanageAttachment(t), this.notifyEditorElement(\"attachment-remove\", {\n attachment: e\n });\n }, u.prototype.compositionDidStartEditingAttachment = function (t, e) {\n return this.attachmentLocationRange = this.composition.document.getLocationRangeOfAttachment(t), this.compositionController.installAttachmentEditorForAttachment(t, e), this.selectionManager.setLocationRange(this.attachmentLocationRange);\n }, u.prototype.compositionDidStopEditingAttachment = function () {\n return this.compositionController.uninstallAttachmentEditor(), this.attachmentLocationRange = null;\n }, u.prototype.compositionDidRequestChangingSelectionToLocationRange = function (t) {\n return !this.loadingSnapshot || this.isFocused() ? (this.requestedLocationRange = t, this.compositionRevisionWhenLocationRangeRequested = this.composition.revision, this.handlingInput ? void 0 : this.render()) : void 0;\n }, u.prototype.compositionWillLoadSnapshot = function () {\n return this.loadingSnapshot = !0;\n }, u.prototype.compositionDidLoadSnapshot = function () {\n return this.compositionController.refreshViewCache(), this.render(), this.loadingSnapshot = !1;\n }, u.prototype.getSelectionManager = function () {\n return this.selectionManager;\n }, u.proxyMethod(\"getSelectionManager().setLocationRange\"), u.proxyMethod(\"getSelectionManager().getLocationRange\"), u.prototype.attachmentManagerDidRequestRemovalOfAttachment = function (t) {\n return this.removeAttachment(t);\n }, u.prototype.compositionControllerWillSyncDocumentView = function () {\n return this.inputController.editorWillSyncDocumentView(), this.selectionManager.lock(), this.selectionManager.clearSelection();\n }, u.prototype.compositionControllerDidSyncDocumentView = function () {\n return this.inputController.editorDidSyncDocumentView(), this.selectionManager.unlock(), this.updateCurrentActions(), this.notifyEditorElement(\"sync\");\n }, u.prototype.compositionControllerDidRender = function () {\n return null != 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;\n }, u.prototype.compositionControllerDidFocus = function () {\n return this.isFocusedInvisibly() && this.setLocationRange({\n index: 0,\n offset: 0\n }), this.toolbarController.hideDialog(), this.notifyEditorElement(\"focus\");\n }, u.prototype.compositionControllerDidBlur = function () {\n return this.notifyEditorElement(\"blur\");\n }, u.prototype.compositionControllerDidSelectAttachment = function (t, e) {\n return this.toolbarController.hideDialog(), this.composition.editAttachment(t, e);\n }, u.prototype.compositionControllerDidRequestDeselectingAttachment = function (t) {\n var e, n;\n return e = null != (n = this.attachmentLocationRange) ? n : this.composition.document.getLocationRangeOfAttachment(t), this.selectionManager.setLocationRange(e[1]);\n }, u.prototype.compositionControllerWillUpdateAttachment = function (t) {\n return this.editor.recordUndoEntry(\"Edit Attachment\", {\n context: t.id,\n consolidatable: !0\n });\n }, u.prototype.compositionControllerDidRequestRemovalOfAttachment = function (t) {\n return this.removeAttachment(t);\n }, u.prototype.inputControllerWillHandleInput = function () {\n return this.handlingInput = !0, this.requestedRender = !1;\n }, u.prototype.inputControllerDidRequestRender = function () {\n return this.requestedRender = !0;\n }, u.prototype.inputControllerDidHandleInput = function () {\n return this.handlingInput = !1, this.requestedRender ? (this.requestedRender = !1, this.render()) : void 0;\n }, u.prototype.inputControllerDidAllowUnhandledInput = function () {\n return this.notifyEditorElement(\"change\");\n }, u.prototype.inputControllerDidRequestReparse = function () {\n return this.reparse();\n }, u.prototype.inputControllerWillPerformTyping = function () {\n return this.recordTypingUndoEntry();\n }, u.prototype.inputControllerWillPerformFormatting = function (t) {\n return this.recordFormattingUndoEntry(t);\n }, u.prototype.inputControllerWillCutText = function () {\n return this.editor.recordUndoEntry(\"Cut\");\n }, u.prototype.inputControllerWillPaste = function (t) {\n return this.editor.recordUndoEntry(\"Paste\"), this.pasting = !0, this.notifyEditorElement(\"before-paste\", {\n paste: t\n });\n }, u.prototype.inputControllerDidPaste = function (t) {\n return t.range = this.pastedRange, this.pastedRange = null, this.pasting = null, this.notifyEditorElement(\"paste\", {\n paste: t\n });\n }, u.prototype.inputControllerWillMoveText = function () {\n return this.editor.recordUndoEntry(\"Move\");\n }, u.prototype.inputControllerWillAttachFiles = function () {\n return this.editor.recordUndoEntry(\"Drop Files\");\n }, u.prototype.inputControllerWillPerformUndo = function () {\n return this.editor.undo();\n }, u.prototype.inputControllerWillPerformRedo = function () {\n return this.editor.redo();\n }, u.prototype.inputControllerDidReceiveKeyboardCommand = function (t) {\n return this.toolbarController.applyKeyboardCommand(t);\n }, u.prototype.inputControllerDidStartDrag = function () {\n return this.locationRangeBeforeDrag = this.selectionManager.getLocationRange();\n }, u.prototype.inputControllerDidReceiveDragOverPoint = function (t) {\n return this.selectionManager.setLocationRangeFromPointRange(t);\n }, u.prototype.inputControllerDidCancelDrag = function () {\n return this.selectionManager.setLocationRange(this.locationRangeBeforeDrag), this.locationRangeBeforeDrag = null;\n }, u.prototype.locationRangeDidChange = function (t) {\n return this.composition.updateCurrentAttributes(), this.updateCurrentActions(), this.attachmentLocationRange && !o(this.attachmentLocationRange, t) && this.composition.stopEditingAttachment(), this.notifyEditorElement(\"selection-change\");\n }, u.prototype.toolbarDidClickButton = function () {\n return this.getLocationRange() ? void 0 : this.setLocationRange({\n index: 0,\n offset: 0\n });\n }, u.prototype.toolbarDidInvokeAction = function (t) {\n return this.invokeAction(t);\n }, u.prototype.toolbarDidToggleAttribute = function (t) {\n return this.recordFormattingUndoEntry(t), this.composition.toggleCurrentAttribute(t), this.render(), this.selectionFrozen ? void 0 : this.editorElement.focus();\n }, u.prototype.toolbarDidUpdateAttribute = function (t, e) {\n return this.recordFormattingUndoEntry(t), this.composition.setCurrentAttribute(t, e), this.render(), this.selectionFrozen ? void 0 : this.editorElement.focus();\n }, u.prototype.toolbarDidRemoveAttribute = function (t) {\n return this.recordFormattingUndoEntry(t), this.composition.removeCurrentAttribute(t), this.render(), this.selectionFrozen ? void 0 : this.editorElement.focus();\n }, u.prototype.toolbarWillShowDialog = function () {\n return this.composition.expandSelectionForEditing(), this.freezeSelection();\n }, u.prototype.toolbarDidShowDialog = function (t) {\n return this.notifyEditorElement(\"toolbar-dialog-show\", {\n dialogName: t\n });\n }, u.prototype.toolbarDidHideDialog = function (t) {\n return this.thawSelection(), this.editorElement.focus(), this.notifyEditorElement(\"toolbar-dialog-hide\", {\n dialogName: t\n });\n }, u.prototype.freezeSelection = function () {\n return this.selectionFrozen ? void 0 : (this.selectionManager.lock(), this.composition.freezeSelection(), this.selectionFrozen = !0, this.render());\n }, u.prototype.thawSelection = function () {\n return this.selectionFrozen ? (this.composition.thawSelection(), this.selectionManager.unlock(), this.selectionFrozen = !1, this.render()) : void 0;\n }, u.prototype.actions = {\n undo: {\n test: function test() {\n return this.editor.canUndo();\n },\n perform: function perform() {\n return this.editor.undo();\n }\n },\n redo: {\n test: function test() {\n return this.editor.canRedo();\n },\n perform: function perform() {\n return this.editor.redo();\n }\n },\n link: {\n test: function test() {\n return this.editor.canActivateAttribute(\"href\");\n }\n },\n increaseNestingLevel: {\n test: function test() {\n return this.editor.canIncreaseNestingLevel();\n },\n perform: function perform() {\n return this.editor.increaseNestingLevel() && this.render();\n }\n },\n decreaseNestingLevel: {\n test: function test() {\n return this.editor.canDecreaseNestingLevel();\n },\n perform: function perform() {\n return this.editor.decreaseNestingLevel() && this.render();\n }\n },\n attachFiles: {\n test: function test() {\n return !0;\n },\n perform: function perform() {\n return e.config.input.pickFiles(this.editor.insertFiles);\n }\n }\n }, u.prototype.canInvokeAction = function (t) {\n var e, n;\n return this.actionIsExternal(t) ? !0 : !!(null != (e = this.actions[t]) && null != (n = e.test) ? n.call(this) : void 0);\n }, u.prototype.invokeAction = function (t) {\n var e, n;\n return this.actionIsExternal(t) ? this.notifyEditorElement(\"action-invoke\", {\n actionName: t\n }) : null != (e = this.actions[t]) && null != (n = e.perform) ? n.call(this) : void 0;\n }, u.prototype.actionIsExternal = function (t) {\n return /^x-./.test(t);\n }, u.prototype.getCurrentActions = function () {\n var t, e;\n e = {};\n for (t in this.actions) e[t] = this.canInvokeAction(t);\n return e;\n }, u.prototype.updateCurrentActions = function () {\n var t;\n return t = this.getCurrentActions(), n(t, this.currentActions) ? void 0 : (this.currentActions = t, this.toolbarController.updateActions(this.currentActions), this.notifyEditorElement(\"actions-change\", {\n actions: this.currentActions\n }));\n }, u.prototype.runEditorFilters = function () {\n var t, e, n, i, o, r, s, a;\n for (a = this.composition.getSnapshot(), o = this.editor.filters, n = 0, i = o.length; i > n; n++) e = o[n], t = a.document, s = a.selectedRange, a = null != (r = e.call(this.editor, a)) ? r : {}, null == a.document && (a.document = t), null == a.selectedRange && (a.selectedRange = s);\n return c(a, this.composition.getSnapshot()) ? void 0 : this.composition.loadSnapshot(a);\n }, c = function c(t, e) {\n return o(t.selectedRange, e.selectedRange) && t.document.isEqualTo(e.document);\n }, u.prototype.updateInputElement = function () {\n var t, n;\n return t = this.compositionController.getSerializableElement(), n = e.serializeToContentType(t, \"text/html\"), this.editorElement.setInputElementValue(n);\n }, u.prototype.notifyEditorElement = function (t, e) {\n switch (t) {\n case \"document-change\":\n this.documentChangedSinceLastRender = !0;\n break;\n case \"render\":\n this.documentChangedSinceLastRender && (this.documentChangedSinceLastRender = !1, this.notifyEditorElement(\"change\"));\n break;\n case \"change\":\n case \"attachment-add\":\n case \"attachment-edit\":\n case \"attachment-remove\":\n this.updateInputElement();\n }\n return this.editorElement.notify(t, e);\n }, u.prototype.removeAttachment = function (t) {\n return this.editor.recordUndoEntry(\"Delete Attachment\"), this.composition.removeAttachment(t), this.render();\n }, u.prototype.recordFormattingUndoEntry = function (e) {\n var n, o;\n return n = t(e), o = this.selectionManager.getLocationRange(), n || !i(o) ? this.editor.recordUndoEntry(\"Formatting\", {\n context: this.getUndoContext(),\n consolidatable: !0\n }) : void 0;\n }, u.prototype.recordTypingUndoEntry = function () {\n return this.editor.recordUndoEntry(\"Typing\", {\n context: this.getUndoContext(this.currentAttributes),\n consolidatable: !0\n });\n }, u.prototype.getUndoContext = function () {\n var t;\n return t = 1 <= arguments.length ? a.call(arguments, 0) : [], [this.getLocationContext(), this.getTimeContext()].concat(a.call(t));\n }, u.prototype.getLocationContext = function () {\n var t;\n return t = this.selectionManager.getLocationRange(), i(t) ? t[0].index : t;\n }, u.prototype.getTimeContext = function () {\n return e.config.undoInterval > 0 ? Math.floor(new Date().getTime() / e.config.undoInterval) : 0;\n }, u.prototype.isFocused = function () {\n var t;\n return this.editorElement === (null != (t = this.editorElement.ownerDocument) ? t.activeElement : void 0);\n }, u.prototype.isFocusedInvisibly = function () {\n return this.isFocused() && !this.getLocationRange();\n }, u;\n }(e.Controller);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a,\n u = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n return -1;\n };\n n = e.browser, s = e.makeElement, a = e.triggerEvent, o = e.handleEvent, r = e.handleEventOnce, i = e.findClosestElementFromNode, t = e.AttachmentView.attachmentSelector, e.registerElement(\"trix-editor\", function () {\n var c, l, h, p, d, f, g, m, v;\n return g = 0, l = function l(t) {\n return !document.querySelector(\":focus\") && t.hasAttribute(\"autofocus\") && document.querySelector(\"[autofocus]\") === t ? t.focus() : void 0;\n }, m = function m(t) {\n return t.hasAttribute(\"contenteditable\") ? void 0 : (t.setAttribute(\"contenteditable\", \"\"), r(\"focus\", {\n onElement: t,\n withCallback: function withCallback() {\n return h(t);\n }\n }));\n }, h = function h(t) {\n return d(t), v(t);\n }, d = function d(t) {\n return (\"function\" == typeof document.queryCommandSupported ? document.queryCommandSupported(\"enableObjectResizing\") : void 0) ? (document.execCommand(\"enableObjectResizing\", !1, !1), o(\"mscontrolselect\", {\n onElement: t,\n preventDefault: !0\n })) : void 0;\n }, v = function v() {\n var t;\n return (\"function\" == typeof document.queryCommandSupported ? document.queryCommandSupported(\"DefaultParagraphSeparator\") : void 0) && (t = e.config.blockAttributes[\"default\"].tagName, \"div\" === t || \"p\" === t) ? document.execCommand(\"DefaultParagraphSeparator\", !1, t) : void 0;\n }, c = function c(t) {\n return t.hasAttribute(\"role\") ? void 0 : t.setAttribute(\"role\", \"textbox\");\n }, f = function f(t) {\n var e;\n if (!t.hasAttribute(\"aria-label\") && !t.hasAttribute(\"aria-labelledby\")) return (e = function e() {\n var e, n, i;\n return i = function () {\n var n, i, o, r;\n for (o = t.labels, r = [], n = 0, i = o.length; i > n; n++) e = o[n], e.contains(t) || r.push(e.textContent);\n return r;\n }(), (n = i.join(\" \")) ? t.setAttribute(\"aria-label\", n) : t.removeAttribute(\"aria-label\");\n })(), o(\"focus\", {\n onElement: t,\n withCallback: e\n });\n }, p = function () {\n return n.forcesObjectResizing ? {\n display: \"inline\",\n width: \"auto\"\n } : {\n display: \"inline-block\",\n width: \"1px\"\n };\n }(), {\n defaultCSS: \"%t {\\n display: block;\\n}\\n\\n%t:empty:not(:focus)::before {\\n content: attr(placeholder);\\n color: graytext;\\n cursor: text;\\n pointer-events: none;\\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 \" + t + \" figcaption textarea {\\n resize: none;\\n}\\n\\n%t \" + t + \" figcaption textarea.trix-autoresize-clone {\\n position: absolute;\\n left: -9999px;\\n max-height: 0px;\\n}\\n\\n%t \" + t + \" 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: \" + p.display + \" !important;\\n width: \" + p.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}\",\n trixId: {\n get: function get() {\n return this.hasAttribute(\"trix-id\") ? this.getAttribute(\"trix-id\") : (this.setAttribute(\"trix-id\", ++g), this.trixId);\n }\n },\n labels: {\n get: function get() {\n var t, e, n;\n return e = [], this.id && this.ownerDocument && e.push.apply(e, this.ownerDocument.querySelectorAll(\"label[for='\" + this.id + \"']\")), (t = i(this, {\n matchingSelector: \"label\"\n })) && ((n = t.control) === this || null === n) && e.push(t), e;\n }\n },\n toolbarElement: {\n get: function get() {\n var t, e, n;\n return this.hasAttribute(\"toolbar\") ? null != (e = this.ownerDocument) ? e.getElementById(this.getAttribute(\"toolbar\")) : void 0 : this.parentNode ? (n = \"trix-toolbar-\" + this.trixId, this.setAttribute(\"toolbar\", n), t = s(\"trix-toolbar\", {\n id: n\n }), this.parentNode.insertBefore(t, this), t) : void 0;\n }\n },\n inputElement: {\n get: function get() {\n var t, e, n;\n return this.hasAttribute(\"input\") ? null != (n = this.ownerDocument) ? n.getElementById(this.getAttribute(\"input\")) : void 0 : this.parentNode ? (e = \"trix-input-\" + this.trixId, this.setAttribute(\"input\", e), t = s(\"input\", {\n type: \"hidden\",\n id: e\n }), this.parentNode.insertBefore(t, this.nextElementSibling), t) : void 0;\n }\n },\n editor: {\n get: function get() {\n var t;\n return null != (t = this.editorController) ? t.editor : void 0;\n }\n },\n name: {\n get: function get() {\n var t;\n return null != (t = this.inputElement) ? t.name : void 0;\n }\n },\n value: {\n get: function get() {\n var t;\n return null != (t = this.inputElement) ? t.value : void 0;\n },\n set: function set(t) {\n var e;\n return this.defaultValue = t, null != (e = this.editor) ? e.loadHTML(this.defaultValue) : void 0;\n }\n },\n notify: function notify(t, e) {\n return this.editorController ? a(\"trix-\" + t, {\n onElement: this,\n attributes: e\n }) : void 0;\n },\n setInputElementValue: function setInputElementValue(t) {\n var e;\n return null != (e = this.inputElement) ? e.value = t : void 0;\n },\n initialize: function initialize() {\n return this.hasAttribute(\"data-trix-internal\") ? void 0 : (m(this), c(this), f(this));\n },\n connect: function connect() {\n return this.hasAttribute(\"data-trix-internal\") ? void 0 : (this.editorController || (a(\"trix-before-initialize\", {\n onElement: this\n }), this.editorController = new e.EditorController({\n editorElement: this,\n html: this.defaultValue = this.value\n }), requestAnimationFrame(function (t) {\n return function () {\n return a(\"trix-initialize\", {\n onElement: t\n });\n };\n }(this))), this.editorController.registerSelectionManager(), this.registerResetListener(), this.registerClickListener(), l(this));\n },\n disconnect: function disconnect() {\n var t;\n return null != (t = this.editorController) && t.unregisterSelectionManager(), this.unregisterResetListener(), this.unregisterClickListener();\n },\n registerResetListener: function registerResetListener() {\n return this.resetListener = this.resetBubbled.bind(this), window.addEventListener(\"reset\", this.resetListener, !1);\n },\n unregisterResetListener: function unregisterResetListener() {\n return window.removeEventListener(\"reset\", this.resetListener, !1);\n },\n registerClickListener: function registerClickListener() {\n return this.clickListener = this.clickBubbled.bind(this), window.addEventListener(\"click\", this.clickListener, !1);\n },\n unregisterClickListener: function unregisterClickListener() {\n return window.removeEventListener(\"click\", this.clickListener, !1);\n },\n resetBubbled: function resetBubbled(t) {\n var e;\n if (!t.defaultPrevented && t.target === (null != (e = this.inputElement) ? e.form : void 0)) return this.reset();\n },\n clickBubbled: function clickBubbled(t) {\n var e;\n if (!(t.defaultPrevented || this.contains(t.target) || !(e = i(t.target, {\n matchingSelector: \"label\"\n })) || u.call(this.labels, e) < 0)) return this.focus();\n },\n reset: function reset() {\n return this.value = this.defaultValue;\n }\n };\n }());\n }.call(this), function () {}.call(this);\n }).call(this), \"object\" == (typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) && module.exports ? module.exports = e : \"function\" == typeof define && define.amd && define(e);\n}.call(this);","var scope = typeof global !== \"undefined\" && global || typeof self !== \"undefined\" && self || window;\nvar apply = Function.prototype.apply;\n\n// DOM APIs, for completeness\n\nexports.setTimeout = function () {\n return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);\n};\nexports.setInterval = function () {\n return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);\n};\nexports.clearTimeout = exports.clearInterval = function (timeout) {\n if (timeout) {\n timeout.close();\n }\n};\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\nTimeout.prototype.unref = Timeout.prototype.ref = function () {};\nTimeout.prototype.close = function () {\n this._clearFn.call(scope, this._id);\n};\n\n// Does not start the time, just sets up the members needed.\nexports.enroll = function (item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\nexports.unenroll = function (item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\nexports._unrefActive = exports.active = function (item) {\n clearTimeout(item._idleTimeoutId);\n var msecs = item._idleTimeout;\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout) item._onTimeout();\n }, msecs);\n }\n};\n\n// setimmediate attaches itself to the global object\nrequire(\"setimmediate\");\n// On some exotic environments, it's not clear which object `setimmediate` was\n// able to install onto. Search each possibility in the same order as the\n// `setimmediate` library.\nexports.setImmediate = typeof self !== \"undefined\" && self.setImmediate || typeof global !== \"undefined\" && global.setImmediate || this && this.setImmediate;\nexports.clearImmediate = typeof self !== \"undefined\" && self.clearImmediate || typeof global !== \"undefined\" && global.clearImmediate || this && this.clearImmediate;","(function (global, undefined) {\n \"use strict\";\n\n if (global.setImmediate) {\n return;\n }\n var nextHandle = 1; // Spec says greater than zero\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n function setImmediate(callback) {\n // Callback can either be a function or a string\n if (typeof callback !== \"function\") {\n callback = new Function(\"\" + callback);\n }\n // Copy function arguments\n var args = new Array(arguments.length - 1);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n }\n // Store and register the task\n var task = {\n callback: callback,\n args: args\n };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n switch (args.length) {\n case 0:\n callback();\n break;\n case 1:\n callback(args[0]);\n break;\n case 2:\n callback(args[0], args[1]);\n break;\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n default:\n callback.apply(undefined, args);\n break;\n }\n }\n function runIfPresent(handle) {\n // From the spec: \"Wait until any invocations of this algorithm started before this one have completed.\"\n // So if we're currently running a task, we'll need to delay this invocation.\n if (currentlyRunningATask) {\n // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n // \"too much recursion\" error.\n setTimeout(runIfPresent, 0, handle);\n } else {\n var task = tasksByHandle[handle];\n if (task) {\n currentlyRunningATask = true;\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n function installNextTickImplementation() {\n registerImmediate = function registerImmediate(handle) {\n process.nextTick(function () {\n runIfPresent(handle);\n });\n };\n }\n function canUsePostMessage() {\n // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n // where `global.postMessage` means something completely different and can't be used for this purpose.\n if (global.postMessage && !global.importScripts) {\n var postMessageIsAsynchronous = true;\n var oldOnMessage = global.onmessage;\n global.onmessage = function () {\n postMessageIsAsynchronous = false;\n };\n global.postMessage(\"\", \"*\");\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\n }\n function installPostMessageImplementation() {\n // Installs an event handler on `global` for the `message` event: see\n // * https://developer.mozilla.org/en/DOM/window.postMessage\n // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n\n var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n var onGlobalMessage = function onGlobalMessage(event) {\n if (event.source === global && typeof event.data === \"string\" && event.data.indexOf(messagePrefix) === 0) {\n runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n if (global.addEventListener) {\n global.addEventListener(\"message\", onGlobalMessage, false);\n } else {\n global.attachEvent(\"onmessage\", onGlobalMessage);\n }\n registerImmediate = function registerImmediate(handle) {\n global.postMessage(messagePrefix + handle, \"*\");\n };\n }\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n channel.port1.onmessage = function (event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n registerImmediate = function registerImmediate(handle) {\n channel.port2.postMessage(handle);\n };\n }\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n registerImmediate = function registerImmediate(handle) {\n // Create a