{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/@rails/activestorage/app/assets/javascripts/activestorage.js","webpack:///(webpack)/buildin/module.js","webpack:///(webpack)/buildin/global.js","webpack:///./app/javascript/images/apps/apple-store.png","webpack:///./app/javascript/images/apps/google-play.png","webpack:///./app/javascript/images/apps/google-play-lg.png","webpack:///./app/javascript/images/icons/info.svg","webpack:///./app/javascript/images/instruction/step-four.svg","webpack:///./app/javascript/images/instruction/step-one.svg","webpack:///./app/javascript/images/instruction/step-three.svg","webpack:///./app/javascript/images/instruction/step-two.svg","webpack:///./app/javascript/images/logos/bg.png","webpack:///./app/javascript/images/logos/bg-cta.jpg","webpack:///./app/javascript/images/logos/bg-lg.png","webpack:///./app/javascript/images/logos/bg-logo-light.png","webpack:///./app/javascript/images/logos/bg-md.png","webpack:///./app/javascript/images/logos/c-map.png","webpack:///./app/javascript/images/logos/c-map-cta.jpg","webpack:///./app/javascript/images/logos/c-map-logo-light.png","webpack:///./app/javascript/images/logos/c-map-md.png","webpack:///./app/javascript/images/logos/lowrance.png","webpack:///./app/javascript/images/logos/lowrance-cta.jpg","webpack:///./app/javascript/images/logos/lowrance-lg.png","webpack:///./app/javascript/images/logos/lowrance-logo-light.png","webpack:///./app/javascript/images/logos/lowrance-md.png","webpack:///./app/javascript/images/logos/mrzen-logo.svg","webpack:///./app/javascript/images/logos/mrzen-logo-full.svg","webpack:///./app/javascript/images/logos/navico.png","webpack:///./app/javascript/images/logos/navico-md.png","webpack:///./app/javascript/images/logos/simrad.png","webpack:///./app/javascript/images/logos/simrad-cta.jpg","webpack:///./app/javascript/images/logos/simrad-lg.png","webpack:///./app/javascript/images/logos/simrad-md.png","webpack:///./app/javascript/images/navico_logo.png","webpack:///./node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js","webpack:///./app/javascript/channels/index.js","webpack:///./app/javascript/channels sync _channel\\.js$","webpack:///./app/javascript/lib/additional.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:///./app/javascript/images sync ^\\.\\/.*$","webpack:///./app/javascript/images/favicon.ico","webpack:///./node_modules/@popperjs/core/lib/enums.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getWindow.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/applyStyles.js","webpack:///./node_modules/@popperjs/core/lib/utils/getBasePlacement.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/contains.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","webpack:///./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","webpack:///./node_modules/@popperjs/core/lib/utils/math.js","webpack:///./node_modules/@popperjs/core/lib/utils/within.js","webpack:///./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","webpack:///./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","webpack:///./node_modules/@popperjs/core/lib/utils/expandToHashMap.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/arrow.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/computeStyles.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/eventListeners.js","webpack:///./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","webpack:///./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","webpack:///./node_modules/@popperjs/core/lib/utils/rectToClientRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","webpack:///./node_modules/@popperjs/core/lib/utils/getVariation.js","webpack:///./node_modules/@popperjs/core/lib/utils/computeOffsets.js","webpack:///./node_modules/@popperjs/core/lib/utils/detectOverflow.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/flip.js","webpack:///./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/hide.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/offset.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","webpack:///./node_modules/@popperjs/core/lib/utils/getAltAxis.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","webpack:///./node_modules/@popperjs/core/lib/utils/orderModifiers.js","webpack:///./node_modules/@popperjs/core/lib/createPopper.js","webpack:///./node_modules/@popperjs/core/lib/utils/debounce.js","webpack:///./node_modules/@popperjs/core/lib/utils/mergeByName.js","webpack:///./node_modules/bootstrap/dist/js/bootstrap.esm.js","webpack:///./node_modules/@popperjs/core/lib/popper.js","webpack:///./node_modules/@popperjs/core/lib/popper-lite.js","webpack:///./app/javascript/packs/application.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","factory","_typeof","iterator","obj","constructor","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","md51_array","subarray","Uint8Array","rhex","j","hex","join","toUtf8","str","test","unescape","encodeURIComponent","utf8Str2ArrayBuffer","returnUInt8Array","buff","ArrayBuffer","arr","arrayBuffer2Utf8Str","String","fromCharCode","apply","concatenateArrayBuffers","first","second","result","byteLength","set","buffer","hexToBinaryString","bytes","push","substr","SparkMD5","this","reset","slice","clamp","val","Math","max","min","from","to","num","target","targetArray","sourceArray","begin","end","append","appendBinary","contents","_buff","_length","_hash","raw","ret","_finish","getState","hash","setState","destroy","hashBinary","content","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","processingAttribute","submitButtonsByForm","WeakMap","started","didClick","didSubmitForm","didSubmitRemoteElement","tagName","handleFormSubmissionEvent","hasAttribute","preventDefault","setAttribute","disable","removeAttribute","enable","button","focus","click","style","display","appendChild","delete","submitForm","setTimeout","window","ActiveStorage","webpackPolyfill","deprecate","paths","children","g","Function","e","Rails","linkClickSelector","buttonClickSelector","exclude","inputChangeSelector","formSubmitSelector","formInputClickSelector","formDisableSelector","formEnableSelector","fileInputSelector","linkDisableSelector","buttonDisableSelector","nonce","loadCSPNonce","ref","cspNonce","Element","matches","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","getData","setData","$","csrfParam","meta","CSRFProtection","token","refreshCSRFTokens","param","CustomEvent","fire","params","evt","initCustomEvent","Event","data","stopEverything","stopPropagation","stopImmediatePropagation","eventType","handler","AcceptHeaders","createXHR","prepareOptions","processResponse","text","html","xml","json","script","ajax","options","responseText","getResponseHeader","floor","success","statusText","complete","beforeSend","readyState","OPENED","location","href","toUpperCase","indexOf","dataType","accept","done","crossDomain","withCredentials","onreadystatechange","DONE","parser","DOMParser","replace","parseFromString","isCrossDomain","originAnchor","urlAnchor","protocol","host","toArray","serializeElement","additionalParam","elements","option","selected","checked","map","formElements","el","allowAction","handleConfirm","confirm","message","answer","disableFormElement","disableFormElements","disableLinkElement","enableFormElement","enableFormElements","enableLinkElement","isXhrRedirect","handleDisabledElement","enableElement","disableElement","replacement","innerHTML","originalText","removeEventListener","handleMethod","formContent","link","method","action","body","isRemote","handleRemote","enctype","FormData","args","formSubmitButtonClick","formNoValidate","preventInsignificantClick","insignificantMetaClick","metaKey","ctrlKey","jQuery","rails","Error","ajaxPrefilter","originalOptions","_rails_loaded","channels","require","keys","webpackEmptyContext","req","code","resolve","validateSubmitButton","btn","attrs","setAttributes","gloVar","adError","invalid","zenError","isRequired","zenRequire","zenCheckbx","subSection","_body","getElementById","_submitBtn","_termsCheck","_submission","_subCountry","_formSubmission","defRequireMs","dataset","required_text","chkRequireMs","required_checkbox_text","_countrySelVal","selectedIndex","_parent","removeClass","_invalidContainer","closest","hasClass","addClass","_formReqfields","field","validate","section","_checkbox","className","required","_errFound","_s2invfields","scrollIntoView","behavior","submit","cl","regex","RegExp","parentElement","nodeType","Set","clear","values","has","add","splice","_state","_handled","_value","_deferreds","h","onFulfilled","onRejected","promise","then","u","setImmediate","console","warn","all","reject","race","_setImmediateFn","_setUnhandledRejectionFn","Promise","customElements","registerElement","Date","now","random","A","sort","uid_","takeRecords","nodes_","observer","removeTransientObservers","callback_","subtree","enqueue","records_","C","addedNodes","removedNodes","previousSibling","nextSibling","attributeName","attributeNamespace","oldValue","w","f","transientObservedNodes","JsMutationObserver","navigator","userAgent","v","y","postMessage","observe","ShadowDOMPolyfill","wrapIfNeeded","childList","characterData","attributeOldValue","attributeFilter","characterDataOldValue","SyntaxError","removeListeners","addListeners","disconnect","addListeners_","removeListeners_","addTransientObserver","handleEvent","attrName","relatedNode","namespaceURI","attrChange","MutationEvent","ADDITION","prevValue","MutationObserver","_isPolyfilled","self","performance","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","cancelAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","clearTimeout","Boolean","WebComponents","CustomElements","flags","addModule","initializeModules","hasNative","isIE","useNative","register","HTMLImports","firstElementChild","firstChild","Node","ELEMENT_NODE","nextElementSibling","shadowRoot","olderShadowRoot","wrap","import","IMPORT_LINK_TYPE","forDocumentTree","forSubtree","upgrade","__upgraded__","__attached","attachedCallback","detachedCallback","dom","URL","_URL","localName","split","pop","group","DOCUMENT_FRAGMENT_NODE","E","groupEnd","__observer","baseURI","hasPolyfillMutations","hasThrottledAttached","S","createShadowRoot","watchShadow","__watched","log","upgradeDocumentTree","upgradeDocument","upgradeSubtree","upgradeAll","attached","is","createdCallback","__proto__","HTMLElement","getOwnPropertyNames","getOwnPropertyDescriptor","getPrototypeOf","native","HTMLTemplateElement","decorate","getRegisteredDefinition","tag","extends","upgradeWithDefinition","implementPrototype","_polyfilled","toLowerCase","attributeChangedCallback","concat","ctor","createElementNS","__name","lifecycle","ancestry","ready","registry","instanceof","reservedTagList","readyTime","elapsed","unwrap","unwrapIfNeeded","__importsParsingHook","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","normalizeNewlines","breakableWhitespacePattern","squishBreakableWhitespace","source","summarizeStringChange","added","removed","_n","utf16String","offset","codepoints","fromCodepoints","_t2","charAt","copyObject","objectsAreEqual","arraysAreEqual","arrayStartsWith","spliceArray","summarizeArrayChange","getAllAttributeNames","getTextAttributeNames","getBlockAttributeNames","getBlockConfig","blockAttributes","getTextConfig","textAttributes","getListAttributeNames","listAttribute","documentElement","_s","onElement","matchingSelector","withCallback","inPhase","times","findClosestElementFromNode","handleEventOnce","triggerEvent","elementMatchesSelector","untilNode","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","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","dataTransferIsWritable","keyEventIsKeyboardCommand","platform","RTL_PATTERN","getDirection","dir","dirName","trim","Hash","fromCommonAttributesOfObjects","getKeys","getKeysCommonToHash","merge","remove","isEmpty","array","toObject","ObjectGroup","objects","depth","asTree","groupObjects","canBeGrouped","canBeGroupedWith","getObjects","getDepth","_t5","ObjectMap","find","ElementStore","trixStoreKey","_t6","Operation","isPerforming","performing","hasPerformed","performed","hasSucceeded","succeeded","hasFailed","getPromise","perform","release","cancel","ucs2String","ucs2Length","fromUCS2String","offsetToUCS2Offset","offsetFromUCS2Offset","codePointAt","fromCodePoint","lang","attachFiles","bold","bullets","captionPlaceholder","heading1","indent","italic","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","plaintext","bulletList","bullet","numberList","number","exclusive","fileSize","prefix","precision","formatter","byte","pow","toFixed","inheritable","getComputedStyle","fontWeight","fontStyle","groupTagName","frozen","backgroundColor","serializers","Document","fromHTML","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","_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","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","inputControllerWillPaste","insertHTML","inputControllerDidPaste","string","types","items","getAsFile","insertFile","compositionstart","getCompositionInput","compositionupdate","compositionend","beforeinput","backspace","insertLineBreak","tab","canIncreaseNestingLevel","increaseNestingLevel","left","selectionIsInCursorTarget","moveCursorInDirection","right","control","updatePosition","canDecreaseNestingLevel","decreaseNestingLevel","expandSelectionInDirection","alt","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","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","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","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","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","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","webpackContext","webpackContextResolve","auto","basePlacements","viewport","variationPlacements","reduce","acc","placement","beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite","modifierPhases","getNodeName","nodeName","getWindow","node","defaultView","isElement","isHTMLElement","isShadowRoot","ShadowRoot","enabled","phase","_ref","styles","assign","effect","_ref2","initialStyles","popper","strategy","margin","arrow","reference","attribute","requires","getBasePlacement","getBoundingClientRect","rect","getLayoutRect","clientRect","offsetWidth","offsetHeight","abs","offsetLeft","offsetTop","parent","child","rootNode","getRootNode","next","isSameNode","isTableElement","getDocumentElement","getParentNode","assignedSlot","getTrueOffsetParent","offsetParent","getOffsetParent","isFirefox","transform","perspective","contain","willChange","getContainingBlock","getMainAxisFromPlacement","round","within","mergePaddingObject","paddingObject","expandToHashMap","hashMap","_state$modifiersData$","arrowElement","popperOffsets","modifiersData","basePlacement","axis","padding","rects","arrowRect","minProp","maxProp","endDiff","startDiff","arrowOffsetParent","clientSize","clientHeight","clientWidth","centerToReference","center","axisProp","centerOffset","_options$element","requiresIfExists","unsetSides","mapToStyles","_Object$assign2","popperRect","offsets","gpuAcceleration","adaptive","roundOffsets","_ref3","dpr","devicePixelRatio","roundOffsetsByDPR","_ref3$x","_ref3$y","hasX","hasY","sideX","sideY","win","heightProp","widthProp","_Object$assign","commonStyles","_ref4","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","passive","_options$scroll","scroll","_options$resize","resize","scrollParents","scrollParent","getOppositePlacement","matched","getOppositeVariationPlacement","getWindowScroll","scrollLeft","scrollTop","getWindowScrollBarX","isScrollParent","_getComputedStyle","overflow","overflowX","overflowY","getScrollParent","listScrollParents","list","_element$ownerDocumen","isBody","visualViewport","updatedList","rectToClientRect","getClientRectFromMixedType","clippingParent","getViewportRect","clientTop","clientLeft","getInnerBoundingClientRect","winScroll","scrollWidth","direction","getDocumentRect","getClippingRect","boundary","rootBoundary","mainClippingParents","clippingParents","clipperElement","getClippingParents","firstClippingParent","clippingRect","accRect","getVariation","computeOffsets","variation","commonX","commonY","mainAxis","detectOverflow","_options","_options$placement","_options$boundary","_options$rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","altContext","clippingClientRect","contextElement","referenceClientRect","popperClientRect","elementClientRect","overflowOffsets","offsetData","multiply","_skip","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","flipVariations","allowedAutoPlacements","preferredPlacement","oppositePlacement","getExpandedFallbackPlacements","placements","_options$allowedAutoP","allowedPlacements","overflows","computeAutoPlacement","referenceRect","checksMap","Map","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","isVertical","mainVariationSide","altVariationSide","checks","every","check","_loop","_i","fittingPlacement","getSideOffsets","preventedOffsets","isAnySideFullyClipped","some","side","preventOverflow","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","_options$offset","invertDistance","skidding","distance","distanceAndSkiddingToXY","_data$state$placement","_options$tether","tether","_options$tetherOffset","tetherOffset","isBasePlacement","tetherOffsetValue","mainSide","altSide","additive","minLen","maxLen","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","clientOffset","offsetModifierValue","tetherMin","tetherMax","preventedOffset","_mainSide","_altSide","_offset","_min","_max","_preventedOffset","getCompositeRect","elementOrVirtualElement","isFixed","isOffsetParentAnElement","order","modifiers","visited","modifier","dep","depModifier","DEFAULT_OPTIONS","areValidElements","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","defaultOptions","pending","orderedModifiers","effectCleanupFns","isDestroyed","setOptions","cleanupModifierEffects","orderModifiers","merged","current","existing","mergeByName","_ref3$options","cleanupFn","noopFn","forceUpdate","_state$elements","_state$orderedModifie","_state$orderedModifie2","onFirstUpdate","_KEY_TO_DIRECTION","eventListeners","_get","receiver","base","_getPrototypeOf","_superPropBase","desc","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","sym","_objectSpread","_defineProperty","getOwnPropertyDescriptors","_inherits","subClass","superClass","_setPrototypeOf","_createSuper","Derived","hasNativeReflectConstruct","sham","Proxy","valueOf","_isNativeReflectConstruct","Super","NewTarget","_possibleConstructorReturn","ReferenceError","_assertThisInitialized","_classCallCheck","_defineProperties","_createClass","_slicedToArray","_arrayWithHoles","_e","_arr","_d","err","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_toConsumableArray","_arrayLikeToArray","_arrayWithoutHoles","iter","_iterableToArray","_nonIterableSpread","arr2","SelectorEngine","parents","ancestor","previous","TRANSITION_END","getUID","getSelector","hrefAttr","includes","startsWith","getSelectorFromElement","getElementFromSelector","getTransitionDurationFromElement","_window$getComputedSt","transitionDuration","transitionDelay","floatTransitionDuration","Number","parseFloat","floatTransitionDelay","triggerTransitionEnd","jquery","getElement","typeCheckConfig","componentName","configTypes","expectedTypes","valueType","isVisible","getPropertyValue","isDisabled","findShadowRoot","attachShadow","reflow","getjQuery","DOMContentLoadedCallbacks","defineJQueryPlugin","plugin","NAME","JQUERY_NO_CONFLICT","jQueryInterface","noConflict","execute","executeAfterTransition","transitionElement","waitForTransition","durationPadding","emulatedDuration","called","getNextActiveElement","shouldGetNext","isCycleAllowed","listLength","namespaceRegex","stripNameRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","customEventsRegex","nativeEvents","getUidEvent","uid","getEvent","findHandler","delegationSelector","uidEventList","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","getTypeEvent","addHandler","oneOff","wrapFn","relatedTarget","delegateTarget","_normalizeParams2","handlers","previousFn","domElements","EventHandler","bootstrapDelegationHandler","bootstrapHandler","removeHandler","one","_normalizeParams4","inNamespace","isNamespace","elementEvent","namespace","storeElementEvent","handlerKey","removeNamespacedHandlers","keyHandlers","trigger","jQueryEvent","isNative","nativeDispatch","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","elementMap","Data","instanceMap","BaseComponent","_element","DATA_KEY","EVENT_KEY","propertyName","isAnimated","getInstance","EVENT_KEY$b","EVENT_CLOSE","EVENT_CLOSED","EVENT_CLICK_DATA_API$7","Alert","_BaseComponent","_super","rootElement","_getRootElement","customEvent","_triggerCloseEvent","_removeElement","_queueCallback","_destroyElement","each","getOrCreateInstance","alertInstance","handleDismiss","EVENT_KEY$a","SELECTOR_DATA_TOGGLE$5","EVENT_CLICK_DATA_API$6","Button","_BaseComponent2","_super2","toggle","normalizeData","normalizeDataKey","chr","Manipulator","setDataAttribute","removeDataAttribute","getDataAttributes","pureKey","getDataAttribute","NAME$a","EVENT_KEY$9","DATA_API_KEY$6","Default$9","interval","keyboard","slide","pause","touch","DefaultType$9","ORDER_NEXT","ORDER_PREV","DIRECTION_LEFT","DIRECTION_RIGHT","KEY_TO_DIRECTION","EVENT_SLIDE","EVENT_SLID","EVENT_KEYDOWN","EVENT_MOUSEENTER","EVENT_MOUSELEAVE","EVENT_TOUCHSTART","EVENT_TOUCHMOVE","EVENT_TOUCHEND","EVENT_POINTERDOWN","EVENT_POINTERUP","EVENT_DRAG_START","EVENT_LOAD_DATA_API$2","EVENT_CLICK_DATA_API$5","CLASS_NAME_ACTIVE$2","SELECTOR_ACTIVE_ITEM","POINTER_TYPE_TOUCH","Carousel","_BaseComponent3","_super3","_this3","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","maxTouchPoints","_pointerEvent","PointerEvent","_addEventListeners","_slide","cycle","_updateInterval","visibilityState","nextWhenVisible","_this4","activeIndex","_getItemIndex","absDeltax","_this5","_keydown","_addTouchEventListeners","_this6","pointerType","touches","_handleSwipe","itemImg","move","isNext","eventDirectionName","targetIndex","fromIndex","activeIndicator","indicators","elementInterval","defaultInterval","directionOrOrder","_this7","_directionToOrder","activeElementIndex","nextElement","_getItemByOrder","nextElementIndex","isCycling","directionalClassName","orderClassName","_orderToDirection","_triggerSlideEvent","_setActiveIndicatorElement","triggerSlidEvent","ride","carouselInterface","slideIndex","dataApiClickHandler","carousels","NAME$9","DATA_KEY$8","EVENT_KEY$8","Default$8","DefaultType$8","EVENT_SHOW$5","EVENT_SHOWN$5","EVENT_HIDE$5","EVENT_HIDDEN$5","EVENT_CLICK_DATA_API$4","CLASS_NAME_SHOW$8","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_COLLAPSED","WIDTH","SELECTOR_DATA_TOGGLE$4","Collapse","_BaseComponent4","_super4","_this8","_isTransitioning","_triggerArray","toggleList","elem","filterElement","foundElem","_selector","_getParent","_addAriaAndCollapsedClass","hide","show","_this9","actives","activesData","tempActiveData","elemActive","collapseInterface","dimension","_getDimension","setTransitioning","capitalizedDimension","scrollSize","_this10","triggerArrayLength","isTransitioning","_this11","triggerArray","isOpen","triggerData","NAME$8","EVENT_KEY$7","DATA_API_KEY$4","ESCAPE_KEY$2","SPACE_KEY","ARROW_UP_KEY","ARROW_DOWN_KEY","REGEXP_KEYDOWN","EVENT_HIDE$4","EVENT_HIDDEN$4","EVENT_SHOW$4","EVENT_SHOWN$4","EVENT_CLICK","EVENT_CLICK_DATA_API$3","EVENT_KEYDOWN_DATA_API","EVENT_KEYUP_DATA_API","CLASS_NAME_SHOW$7","SELECTOR_DATA_TOGGLE$3","SELECTOR_MENU","PLACEMENT_TOP","PLACEMENT_TOPEND","PLACEMENT_BOTTOM","PLACEMENT_BOTTOMEND","PLACEMENT_RIGHT","PLACEMENT_LEFT","Default$7","popperConfig","autoClose","DefaultType$7","_BaseComponent5","Dropdown","_super5","_this12","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","getParentFromElement","_getPopperConfig","isDisplayStatic","_completeHide","_this13","_ref5","Default","DefaultType","parentDropdown","isEnd","_this14","popperData","defaultBsPopperConfig","_getPlacement","_getOffset","_ref6","dropdownInterface","toggles","composedPath","isMenuTarget","clickEvent","_this15","isActive","getToggleButton","clearMenus","_selectMenuItem","dataApiKeydownHandler","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","ScrollBarHelper","documentWidth","innerWidth","_disableOverFlow","_setElementAttributes","calculatedValue","_saveInitialAttribute","styleProp","_this16","scrollbarWidth","_applyManipulationCallback","_resetElementAttributes","actualValue","removeProperty","callBack","Default$6","clickCallback","DefaultType$6","NAME$7","CLASS_NAME_SHOW$6","EVENT_MOUSEDOWN","Backdrop","_isAppended","_append","_getElement","_emulateAnimation","_this17","dispose","backdrop","_this18","NAME$6","EVENT_KEY$6","ESCAPE_KEY$1","Default$5","DefaultType$5","EVENT_HIDE$3","EVENT_HIDE_PREVENTED","EVENT_HIDDEN$3","EVENT_SHOW$3","EVENT_SHOWN$3","EVENT_FOCUSIN$2","EVENT_RESIZE","EVENT_CLICK_DISMISS$2","EVENT_KEYDOWN_DISMISS$1","EVENT_MOUSEUP_DISMISS","EVENT_MOUSEDOWN_DISMISS","EVENT_CLICK_DATA_API$2","CLASS_NAME_OPEN","CLASS_NAME_SHOW$5","CLASS_NAME_STATIC","Modal","_BaseComponent6","_super6","_this19","_dialog","_backdrop","_initializeBackDrop","_isShown","_ignoreBackdropClick","_scrollBar","_this20","_isAnimated","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","_this21","_hideModal","htmlElement","_this22","modalBody","_enforceFocus","_this23","_this24","_triggerBackdropTransition","_this25","_this26","_resetAdjustments","_this27","currentTarget","_this28","_this$_element","isModalOverflowing","isBodyOverflowing","paddingLeft","paddingRight","_this29","showEvent","NAME$5","EVENT_KEY$5","DATA_API_KEY$2","EVENT_LOAD_DATA_API$1","Default$4","DefaultType$4","CLASS_NAME_SHOW$4","OPEN_SELECTOR","EVENT_SHOW$2","EVENT_SHOWN$2","EVENT_HIDE$2","EVENT_HIDDEN$2","EVENT_FOCUSIN$1","EVENT_CLICK_DATA_API$1","EVENT_CLICK_DISMISS$1","EVENT_KEYDOWN_DISMISS","Offcanvas","_BaseComponent7","_super7","_this30","_this31","visibility","_enforceFocusOnElement","_this32","blur","_this33","_this34","_this35","allReadyOpen","uriAttrs","SAFE_URL_PATTERN","DATA_URL_PATTERN","DefaultAllowlist","area","br","col","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","pre","small","span","sub","sup","strong","ul","sanitizeHtml","unsafeHtml","allowList","sanitizeFn","_ref7","createdDocument","allowlistKeys","_ref8","elName","attributeList","attr","allowedAttributeList","nodeValue","regExp","attrRegex","allowedAttribute","NAME$4","EVENT_KEY$4","CLASS_PREFIX$1","BSCLS_PREFIX_REGEX$1","DISALLOWED_ATTRIBUTES","DefaultType$3","animation","template","delay","customClass","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","Default$3","Event$2","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","CLASS_NAME_FADE$3","CLASS_NAME_MODAL","CLASS_NAME_SHOW$3","HOVER_STATE_SHOW","HOVER_STATE_OUT","TRIGGER_HOVER","TRIGGER_FOCUS","_BaseComponent8","Tooltip","_super8","_this36","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","_initializeOnDelegatedTarget","_isWithActiveTrigger","_enter","_leave","getTipElement","_hideModalHandler","_this37","isWithContent","isInTheDom","tipId","setContent","_getAttachment","_addAttachmentClass","_tip$classList","_ref9","prevHoverState","_this38","_ref10","_cleanTipClass","getTitle","setElementContent","dataKey","_getDelegateConfig","_this39","_this40","_handlePopperPlacementChange","updateAttachment","_this41","eventIn","eventOut","_fixTitle","originalTitleType","dataAttributes","dataAttr","tabClass","tClass","EVENT_KEY$3","CLASS_PREFIX","BSCLS_PREFIX_REGEX","Default$2","DefaultType$2","Event$1","SELECTOR_TITLE","SELECTOR_CONTENT","_Tooltip","Popover","_super9","_getContent","NAME$2","EVENT_KEY$2","Default$1","DefaultType$1","EVENT_ACTIVATE","EVENT_SCROLL","EVENT_LOAD_DATA_API","CLASS_NAME_DROPDOWN_ITEM","CLASS_NAME_ACTIVE$1","SELECTOR_NAV_LINKS","SELECTOR_LIST_ITEMS","METHOD_POSITION","ScrollSpy","_BaseComponent9","_super10","_this42","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","_this43","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targetSelector","targetBCR","innerHeight","maxScroll","_getOffsetHeight","_activate","_clear","queries","listGroup","navItem","spy","EVENT_KEY$1","EVENT_HIDE$1","EVENT_HIDDEN$1","EVENT_SHOW$1","EVENT_SHOWN$1","EVENT_CLICK_DATA_API","CLASS_NAME_ACTIVE","CLASS_NAME_FADE$1","CLASS_NAME_SHOW$1","SELECTOR_ACTIVE","SELECTOR_ACTIVE_UL","_BaseComponent10","_super11","_this44","listElement","itemSelector","hideEvent","_this45","_transitionComplete","dropdownChild","dropdownElement","dropdown","EVENT_CLICK_DISMISS","EVENT_MOUSEOVER","EVENT_MOUSEOUT","EVENT_FOCUSIN","EVENT_FOCUSOUT","EVENT_HIDE","EVENT_HIDDEN","EVENT_SHOW","EVENT_SHOWN","CLASS_NAME_HIDE","CLASS_NAME_SHOW","CLASS_NAME_SHOWING","autohide","_BaseComponent11","Toast","_super12","_this46","_hasMouseInteraction","_hasKeyboardInteraction","_this47","_clearTimeout","_maybeScheduleHide","_this48","_this49","isInteracting","_this50","_onInteraction","AttachmentUpload","directUploadUrl","directUploadDidComplete","sgid","attachable_sgid","createBlobUrl","signedId","blobUrlTemplate"],"mappings":"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","file":"js/application-8482ab03894f0816b1f6.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 = 46);\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\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\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\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\n function md5blk(s) {\n var md5blks = [],\n i;\n\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\n return md5blks;\n }\n\n function md5blk_array(a) {\n var md5blks = [],\n i;\n\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\n return md5blks;\n }\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\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk(s.substring(i - 64, i)));\n }\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\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= s.charCodeAt(i) << (i % 4 << 3);\n }\n\n tail[i >> 2] |= 128 << (i % 4 << 3);\n\n if (i > 55) {\n md5cycle(state, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\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\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\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk_array(a.subarray(i - 64, i)));\n }\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\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= a[i] << (i % 4 << 3);\n }\n\n tail[i >> 2] |= 128 << (i % 4 << 3);\n\n if (i > 55) {\n md5cycle(state, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\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\n function rhex(n) {\n var s = \"\",\n j;\n\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\n return s;\n }\n\n function hex(x) {\n var i;\n\n for (i = 0; i < x.length; i += 1) {\n x[i] = rhex(x[i]);\n }\n\n return x.join(\"\");\n }\n\n if (hex(md51(\"hello\")) !== \"5d41402abc4b2a76b9719d911017c592\") ;\n\n if (typeof ArrayBuffer !== \"undefined\" && !ArrayBuffer.prototype.slice) {\n (function () {\n function clamp(val, length) {\n val = val | 0 || 0;\n\n if (val < 0) {\n return Math.max(val + length, 0);\n }\n\n return Math.min(val, length);\n }\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\n if (to !== undefined) {\n end = clamp(to, length);\n }\n\n if (begin > end) {\n return new ArrayBuffer(0);\n }\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\n function toUtf8(str) {\n if (/[\\u0080-\\uFFFF]/.test(str)) {\n str = unescape(encodeURIComponent(str));\n }\n\n return str;\n }\n\n function utf8Str2ArrayBuffer(str, returnUInt8Array) {\n var length = str.length,\n buff = new ArrayBuffer(length),\n arr = new Uint8Array(buff),\n i;\n\n for (i = 0; i < length; i += 1) {\n arr[i] = str.charCodeAt(i);\n }\n\n return returnUInt8Array ? arr : buff;\n }\n\n function arrayBuffer2Utf8Str(buff) {\n return String.fromCharCode.apply(null, new Uint8Array(buff));\n }\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\n function hexToBinaryString(hex) {\n var bytes = [],\n length = hex.length,\n x;\n\n for (x = 0; x < length - 1; x += 2) {\n bytes.push(parseInt(hex.substr(x, 2), 16));\n }\n\n return String.fromCharCode.apply(String, bytes);\n }\n\n function SparkMD5() {\n this.reset();\n }\n\n SparkMD5.prototype.append = function (str) {\n this.appendBinary(toUtf8(str));\n return this;\n };\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\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk(this._buff.substring(i - 64, i)));\n }\n\n this._buff = this._buff.substring(i - 64);\n return this;\n };\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\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff.charCodeAt(i) << (i % 4 << 3);\n }\n\n this._finish(tail, length);\n\n ret = hex(this._hash);\n\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n\n this.reset();\n return ret;\n };\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\n SparkMD5.prototype.getState = function () {\n return {\n buff: this._buff,\n length: this._length,\n hash: this._hash\n };\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\n SparkMD5.prototype.destroy = function () {\n delete this._hash;\n delete this._buff;\n delete this._length;\n };\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\n if (i > 55) {\n md5cycle(this._hash, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\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\n SparkMD5.hash = function (str, raw) {\n return SparkMD5.hashBinary(toUtf8(str), raw);\n };\n\n SparkMD5.hashBinary = function (content, raw) {\n var hash = md51(content),\n ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n\n SparkMD5.ArrayBuffer = function () {\n this.reset();\n };\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\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk_array(buff.subarray(i - 64, i)));\n }\n\n this._buff = i - 64 < length ? new Uint8Array(buff.buffer.slice(i - 64)) : new Uint8Array(0);\n return this;\n };\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\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff[i] << (i % 4 << 3);\n }\n\n this._finish(tail, length);\n\n ret = hex(this._hash);\n\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n\n this.reset();\n return ret;\n };\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\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\n SparkMD5.ArrayBuffer.prototype.setState = function (state) {\n state.buff = utf8Str2ArrayBuffer(state.buff, true);\n return SparkMD5.prototype.setState.call(this, state);\n };\n\n SparkMD5.ArrayBuffer.prototype.destroy = SparkMD5.prototype.destroy;\n SparkMD5.ArrayBuffer.prototype._finish = SparkMD5.prototype._finish;\n\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\n return SparkMD5;\n });\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\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\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\n var fileSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice;\n\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\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\n createClass(FileChecksum, [{\n key: \"create\",\n value: function create(callback) {\n var _this = this;\n\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\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\n function getMetaValue(name) {\n var element = findElement(document.head, 'meta[name=\"' + name + '\"]');\n\n if (element) {\n return element.getAttribute(\"content\");\n }\n }\n\n function findElements(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n\n var elements = root.querySelectorAll(selector);\n return toArray$1(elements);\n }\n\n function findElement(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n\n return root.querySelector(selector);\n }\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\n try {\n element.disabled = false;\n element.dispatchEvent(event);\n } finally {\n element.disabled = disabled;\n }\n\n return event;\n }\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\n var BlobRecord = function () {\n function BlobRecord(file, checksum, url) {\n var _this = this;\n\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\n if (csrfToken != undefined) {\n this.xhr.setRequestHeader(\"X-CSRF-Token\", csrfToken);\n }\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\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\n for (var key in this.attributes) {\n result[key] = this.attributes[key];\n }\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\n if (responseType == \"json\") {\n return response;\n } else {\n return JSON.parse(response);\n }\n }\n }]);\n return BlobRecord;\n }();\n\n var BlobUpload = function () {\n function BlobUpload(blob) {\n var _this = this;\n\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\n for (var key in headers) {\n this.xhr.setRequestHeader(key, headers[key]);\n }\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\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\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\n var id = 0;\n\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\n createClass(DirectUpload, [{\n key: \"create\",\n value: function create(callback) {\n var _this = this;\n\n FileChecksum.create(this.file, function (error, checksum) {\n if (error) {\n callback(error);\n return;\n }\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\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\n return object[methodName].apply(object, messages);\n }\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\n createClass(DirectUploadController, [{\n key: \"start\",\n value: function start(callback) {\n var _this = this;\n\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\n _this.dispatchError(error);\n } else {\n hiddenInput.value = attributes.signed_id;\n }\n\n _this.dispatch(\"end\");\n\n callback(error);\n });\n }\n }, {\n key: \"uploadRequestDidProgress\",\n value: function uploadRequestDidProgress(event) {\n var progress = event.loaded / event.total * 100;\n\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\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\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\n var inputSelector = \"input[type=file][data-direct-upload-url]:not([disabled])\";\n\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\n createClass(DirectUploadsController, [{\n key: \"start\",\n value: function start(callback) {\n var _this = this;\n\n var controllers = this.createDirectUploadControllers();\n\n var startNextController = function startNextController() {\n var controller = controllers.shift();\n\n if (controller) {\n controller.start(function (error) {\n if (error) {\n callback(error);\n\n _this.dispatch(\"end\");\n } else {\n startNextController();\n }\n });\n } else {\n callback();\n\n _this.dispatch(\"end\");\n }\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\n var processingAttribute = \"data-direct-uploads-processing\";\n var submitButtonsByForm = new WeakMap();\n var started = false;\n\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\n function didClick(event) {\n var target = event.target;\n\n if ((target.tagName == \"INPUT\" || target.tagName == \"BUTTON\") && target.type == \"submit\" && target.form) {\n submitButtonsByForm.set(target.form, target);\n }\n }\n\n function didSubmitForm(event) {\n handleFormSubmissionEvent(event);\n }\n\n function didSubmitRemoteElement(event) {\n if (event.target.tagName == \"FORM\") {\n handleFormSubmissionEvent(event);\n }\n }\n\n function handleFormSubmissionEvent(event) {\n var form = event.target;\n\n if (form.hasAttribute(processingAttribute)) {\n event.preventDefault();\n return;\n }\n\n var controller = new DirectUploadsController(form);\n var inputs = controller.inputs;\n\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\n if (error) {\n inputs.forEach(enable);\n } else {\n submitForm(form);\n }\n });\n }\n }\n\n function submitForm(form) {\n var button = submitButtonsByForm.get(form) || findElement(form, \"input[type=submit], button[type=submit]\");\n\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\n submitButtonsByForm.delete(form);\n }\n\n function disable(input) {\n input.disabled = true;\n }\n\n function enable(input) {\n input.disabled = false;\n }\n\n function autostart() {\n if (window.ActiveStorage) {\n start();\n }\n }\n\n setTimeout(autostart, 1);\n exports.start = start;\n exports.DirectUpload = DirectUpload;\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n});","module.exports = function (module) {\n if (!module.webpackPolyfill) {\n module.deprecate = function () {};\n\n module.paths = []; // module.parent = undefined by default\n\n if (!module.children) module.children = [];\n Object.defineProperty(module, \"loaded\", {\n enumerable: true,\n get: function get() {\n return module.l;\n }\n });\n Object.defineProperty(module, \"id\", {\n enumerable: true,\n get: function get() {\n return module.i;\n }\n });\n module.webpackPolyfill = 1;\n }\n\n return module;\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar g; // This works in non-strict mode\n\ng = function () {\n return this;\n}();\n\ntry {\n // This works if eval is allowed (see CSP)\n g = g || new Function(\"return this\")();\n} catch (e) {\n // This works if the window reference is available\n if ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === \"object\") g = window;\n} // g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\n\nmodule.exports = g;","module.exports = __webpack_public_path__ + \"media/images/apps/apple-store-1e72e6d9fba05acd5470571db00a4764.png\";","module.exports = __webpack_public_path__ + \"media/images/apps/google-play-5093468f9e9f4ab7f05473515518ed5e.png\";","module.exports = __webpack_public_path__ + \"media/images/apps/google-play-lg-c3c1e4bf97156a0693dfb1c83eab2d7c.png\";","module.exports = __webpack_public_path__ + \"media/images/icons/info-91d27a7ba6355a578d87c82cb3f5a86b.svg\";","module.exports = __webpack_public_path__ + \"media/images/instruction/step-four-5de7c2dab37941ce5aa72d82f354b1c7.svg\";","module.exports = __webpack_public_path__ + \"media/images/instruction/step-one-94f921f0dd4d6b1ab722e7d0fcf46d71.svg\";","module.exports = __webpack_public_path__ + \"media/images/instruction/step-three-975c1ccc9cfc5ef99b0237f069f5d914.svg\";","module.exports = __webpack_public_path__ + \"media/images/instruction/step-two-f498f41bf06151ca995b46bf54336a41.svg\";","module.exports = __webpack_public_path__ + \"media/images/logos/bg-a1fe665685dca20b98e13a28ddfc602d.png\";","module.exports = __webpack_public_path__ + \"media/images/logos/bg-cta-6e0de62f5c8af58cccc61bd9d5651547.jpg\";","module.exports = __webpack_public_path__ + \"media/images/logos/bg-lg-f0171dc4de980d258a05d6f907a02c10.png\";","module.exports = __webpack_public_path__ + \"media/images/logos/bg-logo-light-3467209134964a771aa1d263d2caf04a.png\";","module.exports = __webpack_public_path__ + \"media/images/logos/bg-md-1455c60c37b6223aa370184ccfff3771.png\";","module.exports = __webpack_public_path__ + \"media/images/logos/c-map-b14c10c03fe1354f05eb34440482b8fb.png\";","module.exports = __webpack_public_path__ + \"media/images/logos/c-map-cta-5f93b1d9d6014a6fdf9d136574a354e6.jpg\";","module.exports = __webpack_public_path__ + \"media/images/logos/c-map-logo-light-cc77d33817a5c6c9929c60a1b498626c.png\";","module.exports = __webpack_public_path__ + \"media/images/logos/c-map-md-1768044f4b9d376db751037c64ddaed9.png\";","module.exports = __webpack_public_path__ + \"media/images/logos/lowrance-da996827d0333abd313cd3bbb3f9b2ad.png\";","module.exports = __webpack_public_path__ + \"media/images/logos/lowrance-cta-42c645eec2f9f5904f4da5930ad3ffd9.jpg\";","module.exports = __webpack_public_path__ + \"media/images/logos/lowrance-lg-abfac78165a6b1f4d24d505510ebe15d.png\";","module.exports = __webpack_public_path__ + \"media/images/logos/lowrance-logo-light-6276cc871eff14126cca658ad7adc999.png\";","module.exports = __webpack_public_path__ + \"media/images/logos/lowrance-md-1940cc9e2b6dd2f4a26275837f3fb437.png\";","module.exports = __webpack_public_path__ + \"media/images/logos/mrzen-logo-47bd524687b2fbcc2bced3f23d6e3655.svg\";","module.exports = __webpack_public_path__ + \"media/images/logos/mrzen-logo-full-f36205605e9d802b4b8a5feda457c460.svg\";","module.exports = __webpack_public_path__ + \"media/images/logos/navico-9bd33f3f50229edbedcf4cdc8d7e73f1.png\";","module.exports = __webpack_public_path__ + \"media/images/logos/navico-md-eca43bdb7284910318105cdd6b1bbf5d.png\";","module.exports = __webpack_public_path__ + \"media/images/logos/simrad-d744efa9f3b13a7288bb118b4d82a471.png\";","module.exports = __webpack_public_path__ + \"media/images/logos/simrad-cta-317f29ed9c03a258237e345035f82fb7.jpg\";","module.exports = __webpack_public_path__ + \"media/images/logos/simrad-lg-cfb27ef51b3b8c54aef0faafb7c8a739.png\";","module.exports = __webpack_public_path__ + \"media/images/logos/simrad-md-0dc4a2e9c8b886701ccbe785bc0e44c8.png\";","module.exports = __webpack_public_path__ + \"media/images/navico_logo-9fcf6a30796c0e666cddf1d3f0edb3e0.png\";","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*\nUnobtrusive JavaScript\nhttps://github.com/rails/rails/blob/main/actionview/app/assets/javascripts\nReleased under the MIT license\n */\n;\n(function () {\n var context = this;\n (function () {\n (function () {\n this.Rails = {\n linkClickSelector: 'a[data-confirm], a[data-method], a[data-remote]:not([disabled]), a[data-disable-with], a[data-disable]',\n buttonClickSelector: {\n selector: 'button[data-remote]:not([form]), button[data-confirm]:not([form])',\n exclude: 'form button'\n },\n inputChangeSelector: 'select[data-remote], input[data-remote], textarea[data-remote]',\n formSubmitSelector: 'form',\n formInputClickSelector: 'form input[type=submit], form input[type=image], form button[type=submit], form button:not([type]), input[type=submit][form], input[type=image][form], button[type=submit][form], button[form]:not([type])',\n formDisableSelector: 'input[data-disable-with]:enabled, button[data-disable-with]:enabled, textarea[data-disable-with]:enabled, input[data-disable]:enabled, button[data-disable]:enabled, textarea[data-disable]:enabled',\n formEnableSelector: 'input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled, input[data-disable]:disabled, button[data-disable]:disabled, textarea[data-disable]:disabled',\n fileInputSelector: 'input[name][type=file]:not([disabled])',\n linkDisableSelector: 'a[data-disable-with], a[data-disable]',\n buttonDisableSelector: 'button[data-remote][data-disable-with], button[data-remote][data-disable]'\n };\n }).call(this);\n }).call(context);\n var Rails = context.Rails;\n (function () {\n (function () {\n var nonce;\n nonce = null;\n\n Rails.loadCSPNonce = function () {\n var ref;\n return nonce = (ref = document.querySelector(\"meta[name=csp-nonce]\")) != null ? ref.content : void 0;\n };\n\n Rails.cspNonce = function () {\n return nonce != null ? nonce : Rails.loadCSPNonce();\n };\n }).call(this);\n (function () {\n var expando, m;\n m = Element.prototype.matches || Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector;\n\n Rails.matches = function (element, selector) {\n if (selector.exclude != null) {\n return m.call(element, selector.selector) && !m.call(element, selector.exclude);\n } else {\n return m.call(element, selector);\n }\n };\n\n expando = '_ujsData';\n\n Rails.getData = function (element, key) {\n var ref;\n return (ref = element[expando]) != null ? ref[key] : void 0;\n };\n\n Rails.setData = function (element, key, value) {\n if (element[expando] == null) {\n element[expando] = {};\n }\n\n return element[expando][key] = value;\n };\n\n Rails.$ = function (selector) {\n return Array.prototype.slice.call(document.querySelectorAll(selector));\n };\n }).call(this);\n (function () {\n var $, csrfParam, csrfToken;\n $ = Rails.$;\n\n csrfToken = Rails.csrfToken = function () {\n var meta;\n meta = document.querySelector('meta[name=csrf-token]');\n return meta && meta.content;\n };\n\n csrfParam = Rails.csrfParam = function () {\n var meta;\n meta = document.querySelector('meta[name=csrf-param]');\n return meta && meta.content;\n };\n\n Rails.CSRFProtection = function (xhr) {\n var token;\n token = csrfToken();\n\n if (token != null) {\n return xhr.setRequestHeader('X-CSRF-Token', token);\n }\n };\n\n Rails.refreshCSRFTokens = function () {\n var param, token;\n token = csrfToken();\n param = csrfParam();\n\n if (token != null && param != null) {\n return $('form input[name=\"' + param + '\"]').forEach(function (input) {\n return input.value = token;\n });\n }\n };\n }).call(this);\n (function () {\n var CustomEvent, fire, matches, preventDefault;\n matches = Rails.matches;\n CustomEvent = window.CustomEvent;\n\n if (typeof CustomEvent !== 'function') {\n CustomEvent = function CustomEvent(event, params) {\n var evt;\n evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n };\n\n CustomEvent.prototype = window.Event.prototype;\n preventDefault = CustomEvent.prototype.preventDefault;\n\n CustomEvent.prototype.preventDefault = function () {\n var result;\n result = preventDefault.call(this);\n\n if (this.cancelable && !this.defaultPrevented) {\n Object.defineProperty(this, 'defaultPrevented', {\n get: function get() {\n return true;\n }\n });\n }\n\n return result;\n };\n }\n\n fire = Rails.fire = function (obj, name, data) {\n var event;\n event = new CustomEvent(name, {\n bubbles: true,\n cancelable: true,\n detail: data\n });\n obj.dispatchEvent(event);\n return !event.defaultPrevented;\n };\n\n Rails.stopEverything = function (e) {\n fire(e.target, 'ujs:everythingStopped');\n e.preventDefault();\n e.stopPropagation();\n return e.stopImmediatePropagation();\n };\n\n Rails.delegate = function (element, selector, eventType, handler) {\n return element.addEventListener(eventType, function (e) {\n var target;\n target = e.target;\n\n while (!(!(target instanceof Element) || matches(target, selector))) {\n target = target.parentNode;\n }\n\n if (target instanceof Element && handler.call(target, e) === false) {\n e.preventDefault();\n return e.stopPropagation();\n }\n });\n };\n }).call(this);\n (function () {\n var AcceptHeaders, CSRFProtection, createXHR, cspNonce, fire, prepareOptions, processResponse;\n cspNonce = Rails.cspNonce, CSRFProtection = Rails.CSRFProtection, fire = Rails.fire;\n AcceptHeaders = {\n '*': '*/*',\n text: 'text/plain',\n html: 'text/html',\n xml: 'application/xml, text/xml',\n json: 'application/json, text/javascript',\n script: 'text/javascript, application/javascript, application/ecmascript, application/x-ecmascript'\n };\n\n Rails.ajax = function (options) {\n var xhr;\n options = prepareOptions(options);\n xhr = createXHR(options, function () {\n var ref, response;\n response = processResponse((ref = xhr.response) != null ? ref : xhr.responseText, xhr.getResponseHeader('Content-Type'));\n\n if (Math.floor(xhr.status / 100) === 2) {\n if (typeof options.success === \"function\") {\n options.success(response, xhr.statusText, xhr);\n }\n } else {\n if (typeof options.error === \"function\") {\n options.error(response, xhr.statusText, xhr);\n }\n }\n\n return typeof options.complete === \"function\" ? options.complete(xhr, xhr.statusText) : void 0;\n });\n\n if (options.beforeSend != null && !options.beforeSend(xhr, options)) {\n return false;\n }\n\n if (xhr.readyState === XMLHttpRequest.OPENED) {\n return xhr.send(options.data);\n }\n };\n\n prepareOptions = function prepareOptions(options) {\n options.url = options.url || location.href;\n options.type = options.type.toUpperCase();\n\n if (options.type === 'GET' && options.data) {\n if (options.url.indexOf('?') < 0) {\n options.url += '?' + options.data;\n } else {\n options.url += '&' + options.data;\n }\n }\n\n if (AcceptHeaders[options.dataType] == null) {\n options.dataType = '*';\n }\n\n options.accept = AcceptHeaders[options.dataType];\n\n if (options.dataType !== '*') {\n options.accept += ', */*; q=0.01';\n }\n\n return options;\n };\n\n createXHR = function createXHR(options, done) {\n var xhr;\n xhr = new XMLHttpRequest();\n xhr.open(options.type, options.url, true);\n xhr.setRequestHeader('Accept', options.accept);\n\n if (typeof options.data === 'string') {\n xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');\n }\n\n if (!options.crossDomain) {\n xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n CSRFProtection(xhr);\n }\n\n xhr.withCredentials = !!options.withCredentials;\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === XMLHttpRequest.DONE) {\n return done(xhr);\n }\n };\n\n return xhr;\n };\n\n processResponse = function processResponse(response, type) {\n var parser, script;\n\n if (typeof response === 'string' && typeof type === 'string') {\n if (type.match(/\\bjson\\b/)) {\n try {\n response = JSON.parse(response);\n } catch (error) {}\n } else if (type.match(/\\b(?:java|ecma)script\\b/)) {\n script = document.createElement('script');\n script.setAttribute('nonce', cspNonce());\n script.text = response;\n document.head.appendChild(script).parentNode.removeChild(script);\n } else if (type.match(/\\b(xml|html|svg)\\b/)) {\n parser = new DOMParser();\n type = type.replace(/;.+/, '');\n\n try {\n response = parser.parseFromString(response, type);\n } catch (error) {}\n }\n }\n\n return response;\n };\n\n Rails.href = function (element) {\n return element.href;\n };\n\n Rails.isCrossDomain = function (url) {\n var e, originAnchor, urlAnchor;\n originAnchor = document.createElement('a');\n originAnchor.href = location.href;\n urlAnchor = document.createElement('a');\n\n try {\n urlAnchor.href = url;\n return !((!urlAnchor.protocol || urlAnchor.protocol === ':') && !urlAnchor.host || originAnchor.protocol + '//' + originAnchor.host === urlAnchor.protocol + '//' + urlAnchor.host);\n } catch (error) {\n e = error;\n return true;\n }\n };\n }).call(this);\n (function () {\n var matches, toArray;\n matches = Rails.matches;\n\n toArray = function toArray(e) {\n return Array.prototype.slice.call(e);\n };\n\n Rails.serializeElement = function (element, additionalParam) {\n var inputs, params;\n inputs = [element];\n\n if (matches(element, 'form')) {\n inputs = toArray(element.elements);\n }\n\n params = [];\n inputs.forEach(function (input) {\n if (!input.name || input.disabled) {\n return;\n }\n\n if (matches(input, 'fieldset[disabled] *')) {\n return;\n }\n\n if (matches(input, 'select')) {\n return toArray(input.options).forEach(function (option) {\n if (option.selected) {\n return params.push({\n name: input.name,\n value: option.value\n });\n }\n });\n } else if (input.checked || ['radio', 'checkbox', 'submit'].indexOf(input.type) === -1) {\n return params.push({\n name: input.name,\n value: input.value\n });\n }\n });\n\n if (additionalParam) {\n params.push(additionalParam);\n }\n\n return params.map(function (param) {\n if (param.name != null) {\n return encodeURIComponent(param.name) + \"=\" + encodeURIComponent(param.value);\n } else {\n return param;\n }\n }).join('&');\n };\n\n Rails.formElements = function (form, selector) {\n if (matches(form, 'form')) {\n return toArray(form.elements).filter(function (el) {\n return matches(el, selector);\n });\n } else {\n return toArray(form.querySelectorAll(selector));\n }\n };\n }).call(this);\n (function () {\n var allowAction, fire, stopEverything;\n fire = Rails.fire, stopEverything = Rails.stopEverything;\n\n Rails.handleConfirm = function (e) {\n if (!allowAction(this)) {\n return stopEverything(e);\n }\n };\n\n Rails.confirm = function (message, element) {\n return confirm(message);\n };\n\n allowAction = function allowAction(element) {\n var answer, callback, message;\n message = element.getAttribute('data-confirm');\n\n if (!message) {\n return true;\n }\n\n answer = false;\n\n if (fire(element, 'confirm')) {\n try {\n answer = Rails.confirm(message, element);\n } catch (error) {}\n\n callback = fire(element, 'confirm:complete', [answer]);\n }\n\n return answer && callback;\n };\n }).call(this);\n (function () {\n var disableFormElement, disableFormElements, disableLinkElement, enableFormElement, enableFormElements, enableLinkElement, formElements, getData, isXhrRedirect, matches, setData, stopEverything;\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, stopEverything = Rails.stopEverything, formElements = Rails.formElements;\n\n Rails.handleDisabledElement = function (e) {\n var element;\n element = this;\n\n if (element.disabled) {\n return stopEverything(e);\n }\n };\n\n Rails.enableElement = function (e) {\n var element;\n\n if (e instanceof Event) {\n if (isXhrRedirect(e)) {\n return;\n }\n\n element = e.target;\n } else {\n element = e;\n }\n\n if (matches(element, Rails.linkDisableSelector)) {\n return enableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formEnableSelector)) {\n return enableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return enableFormElements(element);\n }\n };\n\n Rails.disableElement = function (e) {\n var element;\n element = e instanceof Event ? e.target : e;\n\n if (matches(element, Rails.linkDisableSelector)) {\n return disableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formDisableSelector)) {\n return disableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return disableFormElements(element);\n }\n };\n\n disableLinkElement = function disableLinkElement(element) {\n var replacement;\n\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n\n replacement = element.getAttribute('data-disable-with');\n\n if (replacement != null) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n }\n\n element.addEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', true);\n };\n\n enableLinkElement = function enableLinkElement(element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n\n if (originalText != null) {\n element.innerHTML = originalText;\n setData(element, 'ujs:enable-with', null);\n }\n\n element.removeEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', null);\n };\n\n disableFormElements = function disableFormElements(form) {\n return formElements(form, Rails.formDisableSelector).forEach(disableFormElement);\n };\n\n disableFormElement = function disableFormElement(element) {\n var replacement;\n\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n\n replacement = element.getAttribute('data-disable-with');\n\n if (replacement != null) {\n if (matches(element, 'button')) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n } else {\n setData(element, 'ujs:enable-with', element.value);\n element.value = replacement;\n }\n }\n\n element.disabled = true;\n return setData(element, 'ujs:disabled', true);\n };\n\n enableFormElements = function enableFormElements(form) {\n return formElements(form, Rails.formEnableSelector).forEach(enableFormElement);\n };\n\n enableFormElement = function enableFormElement(element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n\n if (originalText != null) {\n if (matches(element, 'button')) {\n element.innerHTML = originalText;\n } else {\n element.value = originalText;\n }\n\n setData(element, 'ujs:enable-with', null);\n }\n\n element.disabled = false;\n return setData(element, 'ujs:disabled', null);\n };\n\n isXhrRedirect = function isXhrRedirect(event) {\n var ref, xhr;\n xhr = (ref = event.detail) != null ? ref[0] : void 0;\n return (xhr != null ? xhr.getResponseHeader(\"X-Xhr-Redirect\") : void 0) != null;\n };\n }).call(this);\n (function () {\n var stopEverything;\n stopEverything = Rails.stopEverything;\n\n Rails.handleMethod = function (e) {\n var csrfParam, csrfToken, form, formContent, href, link, method;\n link = this;\n method = link.getAttribute('data-method');\n\n if (!method) {\n return;\n }\n\n href = Rails.href(link);\n csrfToken = Rails.csrfToken();\n csrfParam = Rails.csrfParam();\n form = document.createElement('form');\n formContent = \"\";\n\n if (csrfParam != null && csrfToken != null && !Rails.isCrossDomain(href)) {\n formContent += \"\";\n }\n\n formContent += '';\n form.method = 'post';\n form.action = href;\n form.target = link.target;\n form.innerHTML = formContent;\n form.style.display = 'none';\n document.body.appendChild(form);\n form.querySelector('[type=\"submit\"]').click();\n return stopEverything(e);\n };\n }).call(this);\n (function () {\n var ajax,\n fire,\n getData,\n isCrossDomain,\n isRemote,\n matches,\n serializeElement,\n setData,\n stopEverything,\n slice = [].slice;\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, fire = Rails.fire, stopEverything = Rails.stopEverything, ajax = Rails.ajax, isCrossDomain = Rails.isCrossDomain, serializeElement = Rails.serializeElement;\n\n isRemote = function isRemote(element) {\n var value;\n value = element.getAttribute('data-remote');\n return value != null && value !== 'false';\n };\n\n Rails.handleRemote = function (e) {\n var button, data, dataType, element, method, url, withCredentials;\n element = this;\n\n if (!isRemote(element)) {\n return true;\n }\n\n if (!fire(element, 'ajax:before')) {\n fire(element, 'ajax:stopped');\n return false;\n }\n\n withCredentials = element.getAttribute('data-with-credentials');\n dataType = element.getAttribute('data-type') || 'script';\n\n if (matches(element, Rails.formSubmitSelector)) {\n button = getData(element, 'ujs:submit-button');\n method = getData(element, 'ujs:submit-button-formmethod') || element.method;\n url = getData(element, 'ujs:submit-button-formaction') || element.getAttribute('action') || location.href;\n\n if (method.toUpperCase() === 'GET') {\n url = url.replace(/\\?.*$/, '');\n }\n\n if (element.enctype === 'multipart/form-data') {\n data = new FormData(element);\n\n if (button != null) {\n data.append(button.name, button.value);\n }\n } else {\n data = serializeElement(element, button);\n }\n\n setData(element, 'ujs:submit-button', null);\n setData(element, 'ujs:submit-button-formmethod', null);\n setData(element, 'ujs:submit-button-formaction', null);\n } else if (matches(element, Rails.buttonClickSelector) || matches(element, Rails.inputChangeSelector)) {\n method = element.getAttribute('data-method');\n url = element.getAttribute('data-url');\n data = serializeElement(element, element.getAttribute('data-params'));\n } else {\n method = element.getAttribute('data-method');\n url = Rails.href(element);\n data = element.getAttribute('data-params');\n }\n\n ajax({\n type: method || 'GET',\n url: url,\n data: data,\n dataType: dataType,\n beforeSend: function beforeSend(xhr, options) {\n if (fire(element, 'ajax:beforeSend', [xhr, options])) {\n return fire(element, 'ajax:send', [xhr]);\n } else {\n fire(element, 'ajax:stopped');\n return false;\n }\n },\n success: function success() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:success', args);\n },\n error: function error() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:error', args);\n },\n complete: function complete() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:complete', args);\n },\n crossDomain: isCrossDomain(url),\n withCredentials: withCredentials != null && withCredentials !== 'false'\n });\n return stopEverything(e);\n };\n\n Rails.formSubmitButtonClick = function (e) {\n var button, form;\n button = this;\n form = button.form;\n\n if (!form) {\n return;\n }\n\n if (button.name) {\n setData(form, 'ujs:submit-button', {\n name: button.name,\n value: button.value\n });\n }\n\n setData(form, 'ujs:formnovalidate-button', button.formNoValidate);\n setData(form, 'ujs:submit-button-formaction', button.getAttribute('formaction'));\n return setData(form, 'ujs:submit-button-formmethod', button.getAttribute('formmethod'));\n };\n\n Rails.preventInsignificantClick = function (e) {\n var data, insignificantMetaClick, link, metaClick, method, nonPrimaryMouseClick;\n link = this;\n method = (link.getAttribute('data-method') || 'GET').toUpperCase();\n data = link.getAttribute('data-params');\n metaClick = e.metaKey || e.ctrlKey;\n insignificantMetaClick = metaClick && method === 'GET' && !data;\n nonPrimaryMouseClick = e.button != null && e.button !== 0;\n\n if (nonPrimaryMouseClick || insignificantMetaClick) {\n return e.stopImmediatePropagation();\n }\n };\n }).call(this);\n (function () {\n var $, CSRFProtection, delegate, disableElement, enableElement, fire, formSubmitButtonClick, getData, handleConfirm, handleDisabledElement, handleMethod, handleRemote, loadCSPNonce, preventInsignificantClick, refreshCSRFTokens;\n fire = Rails.fire, delegate = Rails.delegate, getData = Rails.getData, $ = Rails.$, refreshCSRFTokens = Rails.refreshCSRFTokens, CSRFProtection = Rails.CSRFProtection, loadCSPNonce = Rails.loadCSPNonce, enableElement = Rails.enableElement, disableElement = Rails.disableElement, handleDisabledElement = Rails.handleDisabledElement, handleConfirm = Rails.handleConfirm, preventInsignificantClick = Rails.preventInsignificantClick, handleRemote = Rails.handleRemote, formSubmitButtonClick = Rails.formSubmitButtonClick, handleMethod = Rails.handleMethod;\n\n if (typeof jQuery !== \"undefined\" && jQuery !== null && jQuery.ajax != null) {\n if (jQuery.rails) {\n throw new Error('If you load both jquery_ujs and rails-ujs, use rails-ujs only.');\n }\n\n jQuery.rails = Rails;\n jQuery.ajaxPrefilter(function (options, originalOptions, xhr) {\n if (!options.crossDomain) {\n return CSRFProtection(xhr);\n }\n });\n }\n\n Rails.start = function () {\n if (window._rails_loaded) {\n throw new Error('rails-ujs has already been loaded!');\n }\n\n window.addEventListener('pageshow', function () {\n $(Rails.formEnableSelector).forEach(function (el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n return $(Rails.linkDisableSelector).forEach(function (el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n });\n delegate(document, Rails.linkDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.linkDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.linkClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.linkClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.linkClickSelector, 'click', handleConfirm);\n delegate(document, Rails.linkClickSelector, 'click', disableElement);\n delegate(document, Rails.linkClickSelector, 'click', handleRemote);\n delegate(document, Rails.linkClickSelector, 'click', handleMethod);\n delegate(document, Rails.buttonClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.buttonClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleConfirm);\n delegate(document, Rails.buttonClickSelector, 'click', disableElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleRemote);\n delegate(document, Rails.inputChangeSelector, 'change', handleDisabledElement);\n delegate(document, Rails.inputChangeSelector, 'change', handleConfirm);\n delegate(document, Rails.inputChangeSelector, 'change', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', handleDisabledElement);\n delegate(document, Rails.formSubmitSelector, 'submit', handleConfirm);\n delegate(document, Rails.formSubmitSelector, 'submit', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', function (e) {\n return setTimeout(function () {\n return disableElement(e);\n }, 13);\n });\n delegate(document, Rails.formSubmitSelector, 'ajax:send', disableElement);\n delegate(document, Rails.formSubmitSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.formInputClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.formInputClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.formInputClickSelector, 'click', handleConfirm);\n delegate(document, Rails.formInputClickSelector, 'click', formSubmitButtonClick);\n document.addEventListener('DOMContentLoaded', refreshCSRFTokens);\n document.addEventListener('DOMContentLoaded', loadCSPNonce);\n return window._rails_loaded = true;\n };\n\n if (window.Rails === Rails && fire(document, 'rails:attachBindings')) {\n Rails.start();\n }\n }).call(this);\n }).call(this);\n\n if ((typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) === \"object\" && module.exports) {\n module.exports = Rails;\n } else if (typeof define === \"function\" && define.amd) {\n define(Rails);\n }\n}).call(this);","// Load all the channels within this directory and all subdirectories.\n// Channel files must be named *_channel.js.\n\nconst channels = require.context('.', true, /_channel\\.js$/)\nchannels.keys().forEach(channels)\n","function webpackEmptyContext(req) {\n\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\te.code = 'MODULE_NOT_FOUND';\n\tthrow e;\n}\nwebpackEmptyContext.keys = function() { return []; };\nwebpackEmptyContext.resolve = webpackEmptyContext;\nmodule.exports = webpackEmptyContext;\nwebpackEmptyContext.id = 36;","/*==============================================================================\n// File: submissions.js\n// Package: Ruby on Rails / Mr Zen\n// Synopsis: Form Submission Controls\n//============================================================================*/\n\ndocument.addEventListener(\"DOMContentLoaded\", function() {\n // Global variables.\n //\n var gloVar = {\n adError: \"error\",\n invalid: \"invalid\",\n zenError: \"zen-error\",\n isRequired: \"is-required\",\n zenRequire: \"zen-required\",\n zenCheckbx: \".js-check-confirm\",\n subSection: \".zen-submission__section\",\n // Standard JS selectors.\n //\n _body: document.getElementById(\"body\"),\n _submitBtn: document.getElementById(\"submit-btn\"),\n _termsCheck: document.getElementById(\"terms-confirm\"),\n _submission: document.getElementById(\"zenSubmission\"),\n _subCountry: document.getElementById(\"submission_country\"),\n _formSubmission: document.getElementById(\"new_submission\")\n };\n\n if (gloVar._submission !== null) {\n var defRequireMs = gloVar._submission.dataset.required_text,\n chkRequireMs = gloVar._submission.dataset.required_checkbox_text;\n }\n\n function sectionCheckboxes(section) {\n var _checkbox = section.querySelectorAll(gloVar.zenCheckbx);\n Array.prototype.forEach.call(_checkbox, function(input, response) {\n var _parent = input.parentNode;\n response = document.createElement(\"span\");\n response.className = gloVar.zenError;\n response.innerHTML = chkRequireMs;\n if (input.checked === true) {\n removeClass(_parent, gloVar.isRequired);\n var required = _parent.querySelector(\".\" + gloVar.zenError);\n if (required !== null) {\n required.parentNode.removeChild(required);\n }\n }\n else {\n if (!hasClass(_parent, gloVar.isRequired)) {\n addClass(_parent, gloVar.isRequired);\n _parent.appendChild(response);\n }\n }\n });\n }\n\n if (gloVar._termsCheck !== null) {\n validateSubmitButton(gloVar._termsCheck, gloVar._submitBtn);\n gloVar._termsCheck.addEventListener(\"change\", function() {\n validateSubmitButton(gloVar._termsCheck, gloVar._submitBtn);\n });\n }\n\n if (gloVar._subCountry !== null) {\n // Country select.\n //\n gloVar._subCountry.addEventListener(\"change\", function() {\n var _countrySelVal = gloVar._subCountry.options[gloVar._subCountry.selectedIndex],\n _parent = gloVar._subCountry.parentNode;\n if (_countrySelVal.value.length > 0) {\n removeClass(gloVar._subCountry, gloVar.invalid);\n removeClass(gloVar._subCountry.parentNode, gloVar.isRequired);\n var _invalidContainer = _parent.querySelector(\".\" + gloVar.zenError);\n if (_invalidContainer !== null) {\n _invalidContainer.parentNode.removeChild(_invalidContainer);\n }\n if (gloVar._subCountry.closest(gloVar.subSection).querySelectorAll(\".\" + gloVar.invalid).length === 0) {\n removeClass(gloVar._subCountry.closest(gloVar.subSection), gloVar.adError);\n }\n }\n else {\n if (!hasClass(gloVar._subCountry, gloVar.invalid)) {\n addClass(gloVar._subCountry, gloVar.invalid);\n }\n }\n });\n }\n\n if (gloVar._submission !== null) {\n var _formReqfields = gloVar._submission.querySelectorAll(\".\" + gloVar.zenRequire);\n Array.prototype.forEach.call(_formReqfields, function (field) {\n var _parent = field.parentNode;\n var validate = function () {\n if (field.value.length > 0) {\n removeClass(field, gloVar.invalid);\n removeClass(_parent, gloVar.isRequired);\n var _invalidContainer = _parent.querySelector(\".\" + gloVar.zenError);\n if (_invalidContainer !== null) {\n _invalidContainer.parentNode.removeChild(_invalidContainer);\n }\n if (field.closest(gloVar.subSection).querySelectorAll(\".\" + gloVar.invalid).length === 0) {\n removeClass(field.closest(gloVar.subSection), gloVar.adError);\n }\n } else {\n if (!hasClass(field, gloVar.invalid)) {\n addClass(field, gloVar.invalid);\n }\n }\n };\n if (field.value.length > 0) {\n removeClass(field, gloVar.invalid);\n removeClass(_parent, gloVar.isRequired);\n }\n field.addEventListener('keyup', validate);\n field.addEventListener('change', validate);\n });\n }\n\n if (gloVar._formSubmission !== null) {\n // Prevent form validation.\n //\n gloVar._formSubmission.setAttribute(\"novalidate\", true);\n // Manage form submission.\n //\n gloVar._submitBtn.addEventListener(\"click\", function(element) {\n sectionCheckboxes(gloVar._submission)\n validateSubmitButton(gloVar._termsCheck, gloVar._submitBtn)\n var _errFound = gloVar._submission.querySelectorAll(\".\" + gloVar.zenError),\n _s2invfields = document.querySelectorAll(\".\" + gloVar.invalid);\n if (_s2invfields.length > 0 || _errFound.length > 0) {\n element.preventDefault();\n element.stopPropagation();\n Array.prototype.forEach.call(_s2invfields, function(field, response) {\n var _parent = field.parentNode;\n response = document.createElement(\"span\");\n response.className = gloVar.zenError;\n response.innerHTML = defRequireMs;\n if (!hasClass(_parent, gloVar.isRequired)) {\n addClass(_parent, gloVar.isRequired);\n _parent.appendChild(response);\n }\n if (!hasClass(field.closest(gloVar.subSection), gloVar.adError)) {\n addClass(field.closest(gloVar.subSection), gloVar.adError);\n }\n document.querySelector(\".\" + gloVar.adError).scrollIntoView({\n behavior: \"smooth\"\n });\n });\n }\n else {\n // Reset form validation.\n //\n gloVar._formSubmission.removeAttribute(\"novalidate\");\n setTimeout(function(){\n gloVar._formSubmission.submit();\n gloVar._body.scrollIntoView({\n behavior: \"smooth\"\n });\n }, 200);\n }\n });\n }\n});\n\n/*------------------------------------------------------------------------------\n// Class Management & Other Functions\n//----------------------------------------------------------------------------*/\n\nfunction validateSubmitButton(target, btn) {\n if (target.checked === true) {\n btn.removeAttribute(\"disabled\");\n }\n else {\n setAttributes(btn, {\n \"disabled\": \"disabled\"\n });\n }\n}\n\nfunction setAttributes(el, attrs) {\n for(var key in attrs) {\n if(attrs.hasOwnProperty(key)) {\n el.setAttribute(key, attrs[key]);\n }\n }\n}\n\nvar hasClass = function (el, cl) {\n var regex = new RegExp(\"(?:\\\\s|^)\" + cl + \"(?:\\\\s|$)\");\n return !!el.className.match(regex);\n},\naddClass = function (el, cl) {\n el.className += \" \" + cl;\n},\nremoveClass = function (el, cl) {\n var regex = new RegExp(\"(?:\\\\s|^)\" + cl + \"(?:\\\\s|$)\");\n el.className = el.className.replace(regex, \" \");\n},\ntoggleClass = function (el, cl) {\n return hasClass(el, cl) ? removeClass(el, cl) : addClass(el, cl);\n};\n\n/*------------------------------------------------------------------------------\n// Polyfill\n//----------------------------------------------------------------------------*/\n\nif (!Element.prototype.matches) {\n Element.prototype.matches =\n Element.prototype.msMatchesSelector ||\n Element.prototype.webkitMatchesSelector;\n}\n\nif (!Element.prototype.closest) {\n Element.prototype.closest = function(s) {\n var el = this;\n\n do {\n if (Element.prototype.matches.call(el, s)) return el;\n el = el.parentElement || el.parentNode;\n } while (el !== null && el.nodeType === 1);\n return null;\n };\n}\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*\nTrix 1.3.1\nCopyright © 2020 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\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\n function n(t, e) {\n return function () {\n t.apply(e, arguments);\n };\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\n function o(t, e) {\n for (; 3 === t._state;) {\n t = t._value;\n }\n\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\n try {\n i = n(t._value);\n } catch (o) {\n return void s(e.promise, o);\n }\n\n r(e.promise, i);\n }));\n }\n\n function r(t, e) {\n try {\n if (e === t) throw new TypeError(\"A promise cannot be resolved with itself.\");\n\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\n t._state = 1, t._value = e, a(t);\n } catch (r) {\n s(t, r);\n }\n }\n\n function s(t, e) {\n t._state = 2, t._value = e, a(t);\n }\n\n function a(t) {\n 2 === t._state && 0 === t._deferreds.length && setTimeout(function () {\n t._handled || p(t._value);\n }, 1);\n\n for (var e = 0, n = t._deferreds.length; n > e; e++) {\n o(t, t._deferreds[e]);\n }\n\n t._deferreds = null;\n }\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\n function c(t, e) {\n var n = !1;\n\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\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\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\n e[r] = s, 0 === --o && t(e);\n } catch (u) {\n n(u);\n }\n }\n\n if (0 === e.length) return t([]);\n\n for (var o = e.length, r = 0; r < e.length; r++) {\n i(r, e[r]);\n }\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++) {\n t[i].then(e, n);\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 /**\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 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\n function n(t) {\n return window.ShadowDOMPolyfill && window.ShadowDOMPolyfill.wrapIfNeeded(t) || t;\n }\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\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\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\n if (n === t || s.subtree) {\n var a = e(s);\n a && r.enqueue(a);\n }\n }\n }\n }\n\n function s(t) {\n this.callback_ = t, this.nodes_ = [], this.records_ = [], this.uid_ = ++C;\n }\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\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\n function c(t, e) {\n return x = new a(t, e);\n }\n\n function l(t) {\n return w ? w : (w = u(x), w.oldValue = t, w);\n }\n\n function h() {\n x = w = void 0;\n }\n\n function p(t) {\n return t === w || t === x;\n }\n\n function d(t, e) {\n return t === e ? t : w && p(t) ? w : null;\n }\n\n function f(t, e, n) {\n this.observer = t, this.target = e, this.options = n, this.transientObservedNodes = [];\n }\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\n for (var o, r = 0; r < i.length; r++) {\n if (i[r].observer === this) {\n o = i[r], o.removeListeners(), o.options = e;\n break;\n }\n }\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\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\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 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\n for (var e = m.get(t), n = 0; n < e.length; n++) {\n if (e[n] === this) {\n e.splice(n, 1);\n break;\n }\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\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\n case \"DOMNodeRemoved\":\n this.addTransientObserver(t.target);\n\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\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\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\n var e = function () {\n var t = document.createEvent(\"Event\");\n return t.initEvent(\"foo\", !0, !0), t.preventDefault(), t.defaultPrevented;\n }();\n\n if (!e) {\n var n = Event.prototype.preventDefault;\n\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\n var i = /Trident/.test(navigator.userAgent);\n\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\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\n function n(t, e, i) {\n var o = t.firstElementChild;\n if (!o) for (o = t.firstChild; o && o.nodeType !== Node.ELEMENT_NODE;) {\n o = o.nextSibling;\n }\n\n for (; o;) {\n e(o, i) !== !0 && n(o, e, i), o = o.nextElementSibling;\n }\n\n return null;\n }\n\n function i(t, n) {\n for (var i = t.shadowRoot; i;) {\n e(i, n), i = i.olderShadowRoot;\n }\n }\n\n function o(t, e) {\n r(t, e, []);\n }\n\n function r(t, e, n) {\n if (t = window.wrap(t), !(n.indexOf(t) >= 0)) {\n n.push(t);\n\n for (var i, o = t.querySelectorAll(\"link[rel=\" + s + \"]\"), a = 0, u = o.length; u > a && (i = o[a]); a++) {\n i.import && r(i.import, e, n);\n }\n\n e(t);\n }\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\n function n(e, n) {\n return t.upgrade(e, n) ? !0 : void (n && s(e));\n }\n\n function i(t, e) {\n b(t, function (t) {\n return n(t, e) ? !0 : void 0;\n });\n }\n\n function o(t) {\n w.push(t), x || (x = !0, setTimeout(r));\n }\n\n function r() {\n x = !1;\n\n for (var t, e = w, n = 0, i = e.length; i > n && (t = e[n]); n++) {\n t();\n }\n\n w = [];\n }\n\n function s(t) {\n C ? o(function () {\n a(t);\n }) : a(t);\n }\n\n function a(t) {\n t.__upgraded__ && !t.__attached && (t.__attached = !0, t.attachedCallback && t.attachedCallback());\n }\n\n function u(t) {\n c(t), b(t, function (t) {\n c(t);\n });\n }\n\n function c(t) {\n C ? o(function () {\n l(t);\n }) : l(t);\n }\n\n function l(t) {\n t.__upgraded__ && t.__attached && (t.__attached = !1, t.detachedCallback && t.detachedCallback());\n }\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\n function p(t) {\n if (t.shadowRoot && !t.shadowRoot.__watched) {\n y.dom && console.log(\"watching shadow-root for: \", t.localName);\n\n for (var e = t.shadowRoot; e;) {\n g(e), e = e.olderShadowRoot;\n }\n }\n }\n\n function d(t, n) {\n if (y.dom) {\n var i = n[0];\n\n if (i && \"childList\" === i.type && i.addedNodes && i.addedNodes) {\n for (var o = i.addedNodes[0]; o && o !== document && !o.host;) {\n o = o.parentNode;\n }\n\n var r = o && (o.URL || o._URL || o.host && o.host.localName) || \"\";\n r = r.split(\"/?\").shift().split(\"/\").pop();\n }\n\n console.group(\"mutations (%d) [%s]\", n.length, r || \"\");\n }\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\n function f(t) {\n for (t = window.wrap(t), t || (t = window.wrap(document)); t.parentNode;) {\n t = t.parentNode;\n }\n\n var e = t.__observer;\n e && (d(t, e.takeRecords()), r());\n }\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\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\n function v(t) {\n A(t, m);\n }\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\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\n function i(t, e) {\n Object.__proto__ ? t.__proto__ = e.prototype : (o(t, e.prototype, e.native), t.__proto__ = e.prototype);\n }\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++) {\n i[r] || (Object.defineProperty(t, r, Object.getOwnPropertyDescriptor(o, r)), i[r] = 1);\n }\n\n o = Object.getPrototypeOf(o);\n }\n }\n\n function r(t) {\n t.createdCallback && t.createdCallback();\n }\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\n function n(t) {\n if (!t.setAttribute._polyfilled) {\n var e = t.setAttribute;\n\n t.setAttribute = function (t, n) {\n i.call(this, t, n, e);\n };\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\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\n function o(t) {\n for (var e = 0; e < C.length; e++) {\n if (t === C[e]) return !0;\n }\n }\n\n function r(t) {\n var e = c(t);\n return e ? r(e.extends).concat([e]) : [];\n }\n\n function s(t) {\n for (var e, n = t.extends, i = 0; e = t.ancestry[i]; i++) {\n n = e.is && e.tag;\n }\n\n t.tag = n || t.__name, n && (t.is = t.__name);\n }\n\n function a(t) {\n if (!Object.__proto__) {\n var e = HTMLElement.prototype;\n\n if (t.is) {\n var n = document.createElement(t.tag);\n e = Object.getPrototypeOf(n);\n }\n\n for (var i, o = t.prototype, r = !1; o;) {\n o == e && (r = !0), i = Object.getPrototypeOf(o), i && (o.__proto__ = i), o = i;\n }\n\n r || console.warn(t.tag + \" prototype not found in prototype chain for \" + t.is), t.native = e;\n }\n }\n\n function u(t) {\n return y(E(t.tag), t);\n }\n\n function c(t) {\n return t ? x[t.toLowerCase()] : void 0;\n }\n\n function l(t, e) {\n x[t] = e;\n }\n\n function h(t) {\n return function () {\n return u(t);\n };\n }\n\n function p(t, e, n) {\n return t === w ? d(e, n) : S(t, e);\n }\n\n function d(t, e) {\n t && (t = t.toLowerCase()), e && (e = e.toLowerCase());\n var n = c(e || t);\n\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\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\n function f(t, e) {\n var n = t[e];\n\n t[e] = function () {\n var t = n.apply(this, arguments);\n return v(t), t;\n };\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\n for (var n = t; n;) {\n if (n === e.prototype) return !0;\n n = n.__proto__;\n }\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\n var t = window.requestAnimationFrame || function (t) {\n setTimeout(t, 16);\n };\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\n var n = t.useNative,\n i = t.initializeModules;\n\n if (t.isIE, n) {\n var o = function o() {};\n\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\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.1\",\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\n for (i = [\"data\", \"getTargetRanges\", \"inputType\"], t = 0, e = i.length; e > t; t++) {\n if (n = i[t], !(n in InputEvent.prototype)) return !1;\n }\n\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\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\n for (var o in e) {\n n.call(e, o) && (_t[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t.prototype = new i(), _t.__super__ = e.prototype, _t;\n },\n n = {}.hasOwnProperty;\n\n e.Object = function (n) {\n function i() {\n this.id = ++o;\n }\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\n for (e in i) {\n n = i[e], o.push(e + \"=\" + n);\n }\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\n for (e in t) {\n n = t[e], this[e] = n;\n }\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\n for (n = 0, i = _t2.length, o = e.length; i > n && _t2.charAt(n).isEqualTo(e.charAt(n));) {\n n++;\n }\n\n for (; i > n + 1 && _t2.charAt(i - 1).isEqualTo(e.charAt(o - 1));) {\n i--, o--;\n }\n\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\n for (e in t) {\n i = t[e], n[e] = i;\n }\n\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\n for (n in t) {\n if (i = t[n], i !== e[n]) return !1;\n }\n\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\n for (i = n = 0, o = t.length; o > n; i = ++n) {\n if (r = t[i], r !== e[i]) return !1;\n }\n\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\n for (null == t && (t = []), null == e && (e = []), n = [], h = [], o = new Set(), r = 0, u = t.length; u > r; r++) {\n p = t[r], o.add(p);\n }\n\n for (i = new Set(), s = 0, c = e.length; c > s; s++) {\n p = e[s], i.add(p), o.has(p) || n.push(p);\n }\n\n for (a = 0, l = t.length; l > a; a++) {\n p = t[a], i.has(p) || h.push(p);\n }\n\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\n for (t in i) {\n n = i[t].listAttribute, null != n && o.push(n);\n }\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++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\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\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\n for (o = null != n ? n : {}, i = o.matchingSelector, r = o.untilNode; null != t && t.nodeType !== Node.ELEMENT_NODE;) {\n t = t.parentNode;\n }\n\n if (null != t) {\n if (null == i) return t;\n if (t.closest && null == r) return t.closest(i);\n\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;) {\n t = t.firstElementChild;\n }\n\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\n if (null != t ? t.parentNode : void 0) {\n for (e = 0; t = t.previousSibling;) {\n e++;\n }\n\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\n case \"text\":\n return NodeFilter.SHOW_TEXT;\n\n case \"comment\":\n return NodeFilter.SHOW_COMMENT;\n\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\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\n for (a in l) {\n g = l[a], o.setAttribute(a, g);\n }\n }\n\n if (e.style) {\n h = e.style;\n\n for (a in h) {\n g = h[a], o.style[a] = g;\n }\n }\n\n if (e.data) {\n p = e.data;\n\n for (a in p) {\n g = p[a], o.dataset[a] = g;\n }\n }\n\n if (e.className) for (d = e.className.split(\" \"), r = 0, u = d.length; u > r; r++) {\n i = d[r], o.classList.add(i);\n }\n if (e.textContent && (o.textContent = e.textContent), e.childNodes) for (f = [].concat(e.childNodes), s = 0, c = f.length; c > s; s++) {\n n = f[s], o.appendChild(n);\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\n for (t in i) {\n n = i[t].tagName, n && o.push(n);\n }\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\n for (e in t) {\n i = t[e], n[e] = \"function\" == typeof i ? {\n value: i\n } : i;\n }\n\n return n;\n }, a = function () {\n var t;\n return t = function t(_t3) {\n var e, n, i, o, r;\n\n for (e = {}, r = [\"initialize\", \"connect\", \"disconnect\"], n = 0, o = r.length; o > n; n++) {\n i = r[n], e[i] = _t3[i], delete _t3[i];\n }\n\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\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\n if (null != (null != e ? e.setData : void 0)) {\n for (n in t) {\n if (i = t[n], !function () {\n try {\n return e.setData(n, i), e.getData(n) === i;\n } catch (t) {}\n }()) return;\n }\n\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\n for (var o in e) {\n i.call(e, o) && (t[o] = e[o]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty;\n\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\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\n for (e = r(t[0]), i = e.getKeys(), a = t.slice(1), n = 0, o = a.length; o > n; n++) {\n s = a[n], i = e.getKeysCommonToHash(r(s)), e = e.slice(i);\n }\n\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\n for (r = {}, n = 0, o = t.length; o > n; n++) {\n i = t[n], this.has(i) && (r[i] = this.values[i]);\n }\n\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\n for (t = r(t), o = this.getKeys(), s = [], e = 0, i = o.length; i > e; e++) {\n n = o[e], this.values[n] === t.values[n] && s.push(n);\n }\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\n for (t in i) {\n n = i[t], e.push(t, n);\n }\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\n for (n in e) {\n o = e[n], i[n] = o;\n }\n\n return i;\n }, s = function s(t, e) {\n var n, i, o, r, s;\n\n for (r = {}, s = Object.keys(t).sort(), n = 0, o = s.length; o > n; n++) {\n i = s[n], i !== e && (r[i] = t[i]);\n }\n\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\n return t.groupObjects = function (t, e) {\n var n, i, o, r, s, a, u, c, l;\n\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\n c.push(new this(r, {\n depth: o,\n asTree: n\n })), r = null;\n }\n\n (\"function\" == typeof u.canBeGrouped ? u.canBeGrouped(o) : void 0) ? r = [u] : c.push(u);\n }\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\n for (e = [\"objectGroup\"], o = this.getObjects(), t = 0, n = o.length; n > t; t++) {\n i = o[t], e.push(i.getCacheKey());\n }\n\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\n for (var o in e) {\n n.call(e, o) && (_t5[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t5.prototype = new i(), _t5.__super__ = e.prototype, _t5;\n },\n n = {}.hasOwnProperty;\n\n e.ObjectMap = function (e) {\n function n(t) {\n var e, n, i, o, r;\n\n for (null == t && (t = []), this.objects = {}, i = 0, o = t.length; o > i; i++) {\n r = t[i], n = JSON.stringify(r), null == (e = this.objects)[n] && (e[n] = r);\n }\n }\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\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\n for (null == t && (t = []), this.elements = {}, n = 0, i = t.length; i > n; n++) {\n e = t[n], this.add(e);\n }\n\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\n for (var o in e) {\n n.call(e, o) && (_t6[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t6.prototype = new i(), _t6.__super__ = e.prototype, _t6;\n },\n n = {}.hasOwnProperty;\n\n e.Operation = function (e) {\n function n() {\n return n.__super__.constructor.apply(this, arguments);\n }\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\n for (var i in e) {\n a.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n a = {}.hasOwnProperty;\n\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\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\n for (o = [], e = 0, i = t.length; i > e;) {\n 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 }\n\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\n for (r = [], e = 0, o = t.length; o > e; e++) {\n 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 }\n\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\n switch (e) {\n case 0:\n return \"0 \" + t.bytes;\n\n case 1:\n return \"1 \" + t.byte;\n\n default:\n return i = function () {\n switch (this.prefix) {\n case \"SI\":\n return 1e3;\n\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 applicationJson(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 textHtml(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\n for (A = l.querySelectorAll(r), h = 0, g = A.length; g > h; h++) {\n c = A[h], e.removeNode(c);\n }\n\n for (p = 0, m = o.length; m > p; p++) {\n for (a = o[p], C = l.querySelectorAll(\"[\" + a + \"]\"), d = 0, v = C.length; v > d; d++) {\n c = C[d], c.removeAttribute(a);\n }\n }\n\n for (x = l.querySelectorAll(i), f = 0, y = x.length; y > f; f++) {\n c = x[f];\n\n try {\n u = JSON.parse(c.getAttribute(n)), c.removeAttribute(n);\n\n for (b in u) {\n w = u[b], c.setAttribute(b, w);\n }\n } catch (E) {}\n }\n\n return l.innerHTML.replace(t, \"\");\n }\n },\n deserializers: {\n \"application/json\": function applicationJson(t) {\n return e.Document.fromJSONString(t);\n },\n \"text/html\": function textHtml(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\n for (var o in e) {\n n.call(e, o) && (_t7[o] = e[o]);\n }\n\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++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\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\n return t(o, n), o.prototype.getNodes = function () {\n var t, e, n, i, o;\n\n for (null == this.nodes && (this.nodes = this.createNodes()), i = this.nodes, o = [], t = 0, e = i.length; e > t; t++) {\n n = i[t], o.push(n.cloneNode(!0));\n }\n\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\n for (o = [], i = this.childViews, e = 0, n = i.length; n > e; e++) {\n t = i[e], o.push(t), o = o.concat(t.getAllChildViews());\n }\n\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\n for (i = this.getAllChildViews(), e = 0, n = i.length; n > e; e++) {\n if (o = i[e], o.object === t) return o;\n }\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\n if (t = this.getViewCache()) {\n s = this.getAllChildViews().concat(this), n = function () {\n var t, e, n;\n\n for (n = [], t = 0, e = s.length; e > t; t++) {\n r = s[t], n.push(r.object.getCacheKey());\n }\n\n return n;\n }(), o = [];\n\n for (e in t) {\n i.call(n, e) < 0 && o.push(delete t[e]);\n }\n\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\n for (var o in e) {\n n.call(e, o) && (_t8[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t8.prototype = new i(), _t8.__super__ = e.prototype, _t8;\n },\n n = {}.hasOwnProperty;\n\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\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 n = i[t], this.findOrCreateCachedChildView(this.viewClass, n, this.options);\n }\n return this.childViews;\n }, n.prototype.createNodes = function () {\n var t, e, n, i, o, r, s, a, u;\n\n for (t = this.createContainerElement(), s = this.getChildViews(), e = 0, i = s.length; i > e; e++) {\n for (u = s[e], a = u.getNodes(), n = 0, o = a.length; o > n; n++) {\n r = a[n], t.appendChild(r);\n }\n }\n\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\n for (var o in e) {\n n.call(e, o) && (_t9[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t9.prototype = new i(), _t9.__super__ = e.prototype, _t9;\n },\n n = {}.hasOwnProperty;\n\n e.Controller = function (e) {\n function n() {\n return n.__super__.constructor.apply(this, arguments);\n }\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\n for (var i in e) {\n c.call(e, i) && (t[i] = e[i]);\n }\n\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++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\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\n var _h, p, d, f;\n\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\n for (o = [], e = 0, n = t.length; n > e; e++) {\n i = t[e], this.mutationIsSignificant(i) && o.push(i);\n }\n\n return o;\n }, c.prototype.mutationIsSignificant = function (t) {\n var e, n, i, o;\n if (this.nodeIsMutable(t.target)) return !1;\n\n for (o = this.nodesModifiedByMutation(t), e = 0, n = o.length; n > e; e++) {\n if (i = o[e], this.nodeIsSignificant(i)) return !0;\n }\n\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\n switch (e = [], t.type) {\n case \"attributes\":\n t.attributeName !== p && e.push(t.target);\n break;\n\n case \"characterData\":\n e.push(t.target.parentNode), e.push(t.target);\n break;\n\n case \"childList\":\n e.push.apply(e, t.addedNodes), e.push.apply(e, t.removedNodes);\n }\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\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++) {\n e = u[r], l.call(n, e) < 0 && n.push(e);\n }\n\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\n for (o = this.mutations, r = [], e = 0, n = o.length; n > e; e++) {\n i = o[e], i.type === t && r.push(i);\n }\n\n return r;\n }, c.prototype.getTextChangesFromChildList = function () {\n var t, e, i, r, s, a, u, c, l, p, d;\n\n for (t = [], u = [], a = this.getMutationsByType(\"childList\"), e = 0, r = a.length; r > e; e++) {\n s = a[e], t.push.apply(t, s.addedNodes), u.push.apply(u, s.removedNodes);\n }\n\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\n for (n = [], i = t = 0, e = p.length; e > t; i = ++t) {\n l = p[i], l !== d[i] && n.push(o(l));\n }\n\n return n;\n }(),\n deletions: function () {\n var t, e, n;\n\n for (n = [], i = t = 0, e = d.length; e > t; i = ++t) {\n l = d[i], l !== p[i] && n.push(o(l));\n }\n\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\n for (null == t && (t = []), o = [], e = 0, n = t.length; n > e; e++) {\n switch (i = t[e], i.nodeType) {\n case Node.TEXT_NODE:\n o.push(i.data);\n break;\n\n case Node.ELEMENT_NODE:\n \"br\" === s(i) ? o.push(\"\\n\") : o.push.apply(o, _h(i.childNodes));\n }\n }\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\n for (var o in e) {\n n.call(e, o) && (_t10[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t10.prototype = new i(), _t10.__super__ = e.prototype, _t10;\n },\n n = {}.hasOwnProperty;\n\n e.FileVerificationOperation = function (e) {\n function n(t) {\n this.file = t;\n }\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\n try {\n e.abort();\n } catch (i) {}\n\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\n for (var i in e) {\n o.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n o = {}.hasOwnProperty;\n\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\n for (i in this.events) {\n t(i, {\n onElement: this.element,\n withCallback: this.handlerFor(i)\n });\n }\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\n for (r = [], i = 0, o = t.length; o > i; i++) {\n n = t[i], r.push(new e.FileVerificationOperation(n));\n }\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\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\n for (var i in e) {\n g.call(e, i) && (t[i] = e[i]);\n }\n\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++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\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\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\n for (e in t) {\n n = t[e], this.inputSummary[e] = n;\n }\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\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++) {\n l = h[o], t[l + \"Key\"] && (\"ctrl\" === l && (l = \"control\"), i = null != i ? i[l] : void 0);\n }\n\n null != (null != i ? i[r] : void 0) && (this.setInputSummary({\n keyName: r\n }), e.selectionChangeObserver.reset(), i[r].call(this, t));\n }\n\n return a(t) && (n = String.fromCharCode(t.keyCode).toLowerCase()) && (s = function () {\n var e, n, i, o;\n\n for (i = [\"alt\", \"shift\"], o = [], e = 0, n = i.length; n > e; e++) {\n l = i[e], t[l + \"Key\"] && o.push(l);\n }\n\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\n for (s = {}, o = null != (i = null != t ? t.types : void 0) ? i : [], e = 0, n = o.length; n > e; e++) {\n r = o[e], s[r] = !0;\n }\n\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\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++) {\n if (l = c[i], e = /^CorePasteboardFlavorType/.test(l), n = /^dyn\\./.test(l) && u.getData(l), a = e || n) return !0;\n }\n\n return !1;\n }\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\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\n for (var i in e) {\n s.call(e, i) && (t[i] = e[i]);\n }\n\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++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\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\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\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\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\n for (t in null != (e = this.responder) ? e.getCurrentAttributes() : void 0) {\n i.push(null != (n = this.responder) ? n.removeCurrentAttribute(t) : void 0);\n }\n\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\n try {\n n = e.call(this);\n } finally {\n this.event = null;\n }\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\n for (var i in e) {\n h.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n h = {}.hasOwnProperty;\n\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\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\n for (this.savePendingCaption(); e = this.undos.pop();) {\n e();\n }\n\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\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\n for (var i in e) {\n r.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n r = {}.hasOwnProperty;\n\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\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++) {\n u = c[o], r.appendChild(u);\n }\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\n for (var o in e) {\n i.call(e, o) && (t[o] = e[o]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty;\n\n t = e.makeElement, e.PreviewableAttachmentView = function (i) {\n function o() {\n o.__super__.constructor.apply(this, arguments), this.attachment.previewDelegate = this;\n }\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\n for (var i in e) {\n r.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n r = {}.hasOwnProperty;\n\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\n var a;\n return o(s, r), s.prototype.createNodes = function () {\n var e, n, i, o, r, s;\n\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++) {\n r = s[n], i.appendChild(r);\n }\n\n s = [e];\n }\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\n for (a = [], c = this.string.split(\"\\n\"), n = e = 0, o = c.length; o > e; n = ++e) {\n l = c[n], n > 0 && (t = i(\"br\"), a.push(t)), (r = l.length) && (s = document.createTextNode(this.preserveSpaces(l)), a.push(s));\n }\n\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\n for (r in a) {\n 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\n for (r in u) {\n l = u[r], c[r] = l;\n }\n }\n }\n\n if (Object.keys(c).length) {\n null == e && (e = i(\"span\"));\n\n for (r in c) {\n l = c[r], e.style[r] = l;\n }\n }\n\n return e;\n }, s.prototype.createContainerElement = function () {\n var t, e, o, r, s;\n r = this.attributes;\n\n for (o in r) {\n if (s = r[o], (e = n(o)) && e.groupTagName) return t = {}, t[o] = s, i(e.groupTagName, t);\n }\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\n for (var o in e) {\n n.call(e, o) && (_t11[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t11.prototype = new i(), _t11.__super__ = e.prototype, _t11;\n },\n n = {}.hasOwnProperty;\n\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\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\n for (a = [], c = e.ObjectGroup.groupObjects(this.getPieces()), r = c.length - 1, i = n = 0, s = c.length; s > n; i = ++n) {\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 }\n\n return a;\n }, i.prototype.getPieces = function () {\n var t, e, n, i, o;\n\n for (i = this.text.getPieces(), o = [], t = 0, e = i.length; e > t; t++) {\n n = i[t], n.hasAttribute(\"blockBreak\") || o.push(n);\n }\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\n for (var i in e) {\n r.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n r = {}.hasOwnProperty;\n\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\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\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++) {\n u = c[s], r.appendChild(u);\n }\n\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\n for (var i in e) {\n o.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n o = {}.hasOwnProperty;\n\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\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\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++) {\n r = s[t], u = this.findOrCreateCachedChildView(e.BlockView, r), a.push(function () {\n var t, e, n, i;\n\n for (n = u.getNodes(), i = [], t = 0, e = n.length; e > t; t++) {\n o = n[t], i.push(this.shadowElement.appendChild(o));\n }\n\n return i;\n }.call(this));\n }\n\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\n for (t = this.createDocumentFragmentForSync(); this.element.lastChild;) {\n this.element.removeChild(this.element.lastChild);\n }\n\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\n for (e = document.createDocumentFragment(), u = this.shadowElement.childNodes, n = 0, o = u.length; o > n; n++) {\n s = u[n], e.appendChild(s.cloneNode(!0));\n }\n\n for (c = a(e), i = 0, r = c.length; r > i; i++) {\n t = c[i], (l = this.elementStore.remove(t)) && t.parentNode.replaceChild(l, t);\n }\n\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\n for (var i in e) {\n u.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n u = {}.hasOwnProperty;\n\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\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\n for (var i in e) {\n s.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n s = {}.hasOwnProperty;\n\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\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\n for (o = this.element.querySelectorAll(a), r = [], n = 0, i = o.length; i > n; n++) {\n e = o[n], r.push(t(e, d(e)));\n }\n\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\n for (o = this.element.querySelectorAll(c), r = [], n = 0, i = o.length; i > n; n++) {\n e = o[n], r.push(t(e, f(e)));\n }\n\n return r;\n }, s.prototype.applyKeyboardCommand = function (t) {\n var e, n, o, r, s, a, u;\n\n for (s = JSON.stringify(t.sort()), u = this.element.querySelectorAll(\"[data-trix-key]\"), r = 0, a = u.length; a > r; r++) {\n 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 }\n\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\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 n = u[o], n.removeAttribute(\"disabled\");\n }\n\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\n for (i = this.element.querySelectorAll(h), o = [], t = 0, n = i.length; n > t; t++) {\n e = i[t], e.setAttribute(\"disabled\", \"disabled\"), e.removeAttribute(\"data-trix-validate\"), o.push(e.classList.remove(\"trix-validate\"));\n }\n\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\n for (var o in e) {\n n.call(e, o) && (_t12[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t12.prototype = new i(), _t12.__super__ = e.prototype, _t12;\n },\n n = {}.hasOwnProperty;\n\n e.ImagePreloadOperation = function (e) {\n function n(t) {\n this.url = t;\n }\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\n for (var o in e) {\n i.call(e, o) && (t[o] = e[o]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty;\n\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\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\n for (var o in e) {\n n.call(e, o) && (_t14[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t14.prototype = new i(), _t14.__super__ = e.prototype, _t14;\n },\n n = {}.hasOwnProperty;\n\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\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\n for (var o in e) {\n n.call(e, o) && (_t15[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t15.prototype = new i(), _t15.__super__ = e.prototype, _t15;\n },\n n = {}.hasOwnProperty;\n\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\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\n for (var o in e) {\n i.call(e, o) && (t[o] = e[o]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty;\n\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\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\n for (var o in e) {\n i.call(e, o) && (t[o] = e[o]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty,\n o = [].slice;\n\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\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\n for (r = this.objects, s = [], n = e = 0, i = r.length; i > e; n = ++e) {\n o = r[n], s.push(t(o, n));\n }\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\n for (o = this.objects, r = [], n = 0, i = o.length; i > n; n++) {\n e = o[n], t(e) && r.push(e);\n }\n\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\n for (u = [], n = t = 0, s = r.length; s > t; n = ++t) {\n o = r[n], u.push(n >= i && a >= n ? e(o) : o);\n }\n\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\n for (i = [], o = this.objects[0], r = this.objects.slice(1), t = 0, e = r.length; e > t; t++) {\n n = r[t], (\"function\" == typeof o.canBeConsolidatedWith ? o.canBeConsolidatedWith(n) : void 0) ? o = o.consolidateWith(n) : (i.push(o), o = n);\n }\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\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\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\n for (s = 0, a = this.objects, n = i = 0, o = a.length; o > i; n = ++i) {\n if (r = a[n], t > n) s += r.getLength();else if (n === t) {\n s += e;\n break;\n }\n }\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\n for (e = 0, o = this.objects, n = 0, i = o.length; i > n; n++) {\n t = o[n], e += t.getLength();\n }\n\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\n for (s = !0, i = n = 0, o = t.length; o > n; i = ++n) {\n r = t[i], s && !r.isEqualTo(e[i]) && (s = !1);\n }\n\n return s;\n }, i.prototype.contentsForInspection = function () {\n var t;\n return {\n objects: \"[\" + function () {\n var e, n, i, o;\n\n for (i = this.objects, o = [], e = 0, n = i.length; n > e; e++) {\n t = i[e], o.push(t.inspect());\n }\n\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\n for (var o in e) {\n n.call(e, o) && (_t16[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t16.prototype = new i(), _t16.__super__ = e.prototype, _t16;\n },\n n = {}.hasOwnProperty;\n\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\n for (o = [], e = 0, i = t.length; i > e; e++) {\n n = t[e], n.isEmpty() || o.push(n);\n }\n\n return o;\n }());\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\n for (r = [], i = 0, o = t.length; o > i; i++) {\n n = t[i], r.push(e.Piece.fromJSON(n));\n }\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\n for (o = this.getPieces(), s = [], n = 0, i = o.length; i > n; n++) {\n e = o[n], s.push(null != (r = t.find(e)) ? r : e);\n }\n\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\n for (i = this.pieceList.toArray(), o = [], t = 0, e = i.length; e > t; t++) {\n n = i[t], o.push(n.getAttributes());\n }\n\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\n for (n = o = e, i = this.getLength(); n > 0 && this.getCommonAttributesAtRange([n - 1, o])[t];) {\n n--;\n }\n\n for (; i > o && this.getCommonAttributesAtRange([e, o + 1])[t];) {\n o++;\n }\n\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\n for (i = this.pieceList.toArray(), o = [], t = 0, e = i.length; e > t; t++) {\n n = i[t], null != n.attachment && o.push(n);\n }\n\n return o;\n }, i.prototype.getAttachments = function () {\n var t, e, n, i, o;\n\n for (i = this.getAttachmentPieces(), o = [], t = 0, e = i.length; e > t; t++) {\n n = i[t], o.push(n.attachment);\n }\n\n return o;\n }, i.prototype.getAttachmentAndPositionById = function (t) {\n var e, n, i, o, r, s;\n\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\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\n for (i = this.pieceList.toArray(), o = [], e = 0, n = i.length; n > e; e++) {\n t = i[e], o.push(JSON.parse(t.toConsole()));\n }\n\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\n for (var i in e) {\n a.call(e, i) && (t[i] = e[i]);\n }\n\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++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n },\n c = [].slice;\n\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\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\n for (o = this.attributes, r = [], e = 0, n = o.length; n > e; e++) {\n t = o[e], i(t).nestable && r.push(t);\n }\n\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\n for (o = this.attributes, r = [], e = 0, n = o.length; n > e; e++) {\n t = o[e], i(t).listAttribute && r.push(t);\n }\n\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\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\n for (n = [], t = 0, e = i.length; e > t; t++) {\n s = i[t], s.isBlockBreak() ? (r = !0, n.push(v(s))) : n.push(s);\n }\n\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\n for (var i in e) {\n r.call(e, i) && (t[i] = e[i]);\n }\n\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++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n },\n a = [].slice;\n\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\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\".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\n for (s = i(this.body), r = []; s.nextNode();) {\n switch (o = s.currentNode, o.nodeType) {\n case Node.ELEMENT_NODE:\n this.elementIsRemovable(o) ? r.push(o) : this.sanitizeElement(o);\n break;\n\n case Node.COMMENT_NODE:\n r.push(o);\n }\n }\n\n for (t = 0, n = r.length; n > t; t++) {\n o = r[t], e.removeNode(o);\n }\n\n return this.body;\n }, u.prototype.sanitizeElement = function (t) {\n var e, n, i, o, r;\n\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++) {\n i = r[e].name, s.call(this.allowedAttributes, i) >= 0 || 0 === i.indexOf(\"data-trix\") || t.removeAttribute(i);\n }\n\n return t;\n }, u.prototype.normalizeListElementNesting = function () {\n var t, e, i, o, r;\n\n for (r = a.call(this.body.querySelectorAll(\"ul,ol\")), t = 0, e = r.length; e > t; t++) {\n i = r[t], (o = i.previousElementSibling) && \"li\" === n(o) && o.appendChild(i);\n }\n\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\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 n = r[i], e.body.appendChild(n);\n }\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\n for (var i in e) {\n d.call(e, i) && (t[i] = e[i]);\n }\n\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++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\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\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\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();) {\n this.processNode(n.currentNode);\n }\n\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\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\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\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\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\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\n case \"img\":\n e = {\n url: t.getAttribute(\"src\"),\n contentType: \"image\"\n }, i = b(t);\n\n for (n in i) {\n r = i[n], e[n] = r;\n }\n\n return this.appendAttachmentWithAttributes(e, this.getTextAttributes(t)), this.processedElements.push(t);\n\n case \"tr\":\n if (t.parentNode.firstChild !== t) return this.appendStringWithAttributes(\"\\n\");\n break;\n\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\n for (n in p) {\n 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++) {\n if (s = d[c], u.parser(s) === g) {\n i = !0;\n break;\n }\n }\n\n i || (r[n] = g);\n }\n } else u.styleProperty && (g = t.style[u.styleProperty]) && (r[n] = g);\n }\n\n if (a(t)) {\n f = w(t, \"attributes\");\n\n for (l in f) {\n g = f[l], r[l] = g;\n }\n }\n\n return r;\n }, g.prototype.getBlockAttributes = function (t) {\n var n, i, o, r;\n\n for (i = []; t && t !== this.containerElement;) {\n r = e.config.blockAttributes;\n\n for (n in r) {\n 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 }\n\n t = t.parentNode;\n }\n\n return i.reverse();\n }, g.prototype.findBlockElementAncestors = function (t) {\n var e, n;\n\n for (e = []; t && t !== this.containerElement;) {\n n = l(t), f.call(r(), n) >= 0 && e.push(t), t = t.parentNode;\n }\n\n return e;\n }, w = function w(t, e) {\n try {\n return JSON.parse(t.getAttribute(\"data-trix-\" + e));\n } catch (n) {\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\n for (e = this.getMarginOfDefaultBlockElement(), s = this.blocks, a = [], i = n = 0, o = s.length; o > n; i = ++n) {\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 }\n\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\n for (var i in e) {\n s.call(e, i) && (t[i] = e[i]);\n }\n\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++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\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\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\n for (r = [], i = 0, o = t.length; o > i; i++) {\n n = t[i], r.push(e.Block.fromJSON(n));\n }\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\n for (r = this.getBlocks(), s = [], n = 0, o = r.length; o > n; n++) {\n e = r[n], s.push((i = t.find(e)) ? i : e.copyUsingObjectMap(t));\n }\n\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\n for (r = this.getBlocks(), s = [], i = 0, o = r.length; o > i; i++) {\n n = r[i], e = t.concat(n.getAttributes()), s.push(n.copyWithAttributes(e));\n }\n\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\n for (h = [], a = s = c = p.index, l = o.index; l >= c ? l >= s : s >= l; a = l >= c ? ++s : --s) {\n (n = this.getBlockAtIndex(a)) ? (f = function () {\n switch (a) {\n case p.index:\n return [p.offset, n.text.getLength()];\n\n case o.index:\n return [0, o.offset];\n\n default:\n return [0, n.text.getLength()];\n }\n }(), h.push(e(n, f, a))) : h.push(void 0);\n }\n\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\n for (c in t) {\n d = t[c], d.inheritable && n.push(c);\n }\n\n return n;\n }();\n\n for (c in i) {\n d = i[c], (d === n[c] || u.call(a, c) >= 0) && (r[c] = d);\n }\n\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\n for (t = this.getBlockAtIndex(0).getAttributes(), n = i = 1, s = this.getBlockCount(); s >= 1 ? s > i : i > s; n = s >= 1 ? ++i : --i) {\n e = this.getBlockAtIndex(n).getAttributes(), r = Math.min(t.length, e.length), t = function () {\n var n, i, s;\n\n for (s = [], o = n = 0, i = r; (i >= 0 ? i > n : n > i) && e[o] === t[o]; o = i >= 0 ? ++n : --n) {\n s.push(e[o]);\n }\n\n return s;\n }();\n }\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\n for (o = this.getAttachments(), n = 0, i = o.length; i > n; n++) {\n if (e = o[n], e.id === t) return e;\n }\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\n for (i = this.getAttachmentPieces(), o = [], t = 0, e = i.length; e > t; t++) {\n n = i[t], o.push(n.attachment);\n }\n\n return o;\n }, c.prototype.getRangeOfAttachment = function (t) {\n var e, n, o, r, s, a, u;\n\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\n for (o = this.getAttachmentPieces(), e = 0, n = o.length; n > e; e++) {\n if (i = o[e], i.attachment === t) return i;\n }\n }, c.prototype.findRangesForBlockAttribute = function (t) {\n var e, n, i, o, r, s, a;\n\n for (r = 0, s = [], a = this.getBlocks(), n = 0, i = a.length; i > n; n++) {\n e = a[n], o = e.getLength(), e.hasAttribute(t) && s.push([r, r + o]), r += o;\n }\n\n return s;\n }, c.prototype.findRangesForTextAttribute = function (t, e) {\n var n, i, o, r, s, a, u, c, l, h;\n\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++) {\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 }\n\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\n for (i = this.getBlocks(), o = [], e = 0, n = i.length; n > e; e++) {\n t = i[e], o.push(t.text);\n }\n\n return o;\n }, c.prototype.getPieces = function () {\n var t, e, n, i, o;\n\n for (n = [], i = this.getTexts(), t = 0, e = i.length; e > t; t++) {\n o = i[t], n.push.apply(n, o.getPieces());\n }\n\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\n for (i = this.blockList.toArray(), o = [], e = 0, n = i.length; n > e; e++) {\n t = i[e], o.push(JSON.parse(t.text.toConsole()));\n }\n\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\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\n for (var i in e) {\n p.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n p = {}.hasOwnProperty;\n\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\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\n for (i = [], r = 0, s = t.length; s > r; r++) {\n o = t[r], (null != (a = this.delegate) ? a.compositionShouldAcceptFile(o) : void 0) && (n = e.Attachment.attachmentForFile(o), i.push(n));\n }\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\n for (c = new e.Text(), r = 0, s = t.length; s > r; r++) {\n 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 }\n\n return this.insertText(c);\n }, d.prototype.shouldManageDeletingInDirection = function (t) {\n var e;\n\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\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\n if (e = this.getSelectedDocument()) {\n for (o = e.getAttachments(), n = 0, i = o.length; i > n; n++) {\n if (t = o[n], !t.hasContent()) return !1;\n }\n\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\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++;\n }\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\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++) {\n t = r[n], e[t] || this.canSetCurrentAttribute(t) || (e[t] = !1);\n }\n\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\n for (e in n) {\n i = n[e], i !== !1 && r(e) && (t[e] = i);\n }\n\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\n try {\n n = e();\n } finally {\n this.targetLocationRange = null;\n }\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\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++) {\n e = h[i], e.delegate = null, null != (u = this.delegate) && \"function\" == typeof u.compositionDidRemoveAttachment && u.compositionDidRemoveAttachment(e);\n }\n\n for (p = [], o = 0, s = t.length; s > o; o++) {\n e = t[o], e.delegate = this, p.push(null != (c = this.delegate) && \"function\" == typeof c.compositionDidAddAttachment ? c.compositionDidAddAttachment(e) : void 0);\n }\n\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\n for (var o in e) {\n n.call(e, o) && (_t17[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t17.prototype = new i(), _t17.__super__ = e.prototype, _t17;\n },\n n = {}.hasOwnProperty;\n\n e.UndoManager = function (e) {\n function n(t) {\n this.composition = t, this.undoEntries = [], this.redoEntries = [];\n }\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\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\n for (o = this.findRangesOfBlocks(), r = [], t = 0, n = o.length; n > t; t++) {\n i = o[t], r.push(this.document = this.document.removeAttributeAtRange(e, i));\n }\n\n return r;\n }, t.prototype.applyBlockAttribute = function () {\n var t, n, i, o, r, s;\n\n for (i = 0, r = this.findRangesOfPieces(), s = [], t = 0, n = r.length; n > t; t++) {\n 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 }\n\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\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\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\n for (var o in e) {\n n.call(e, o) && (_t19[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t19.prototype = new i(), _t19.__super__ = e.prototype, _t19;\n },\n n = {}.hasOwnProperty;\n\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\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\n for (var o in e) {\n n.call(e, o) && (_t20[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t20.prototype = new i(), _t20.__super__ = e.prototype, _t20;\n },\n n = {}.hasOwnProperty;\n\n e.AttachmentManager = function (n) {\n function i(t) {\n var e, n, i;\n\n for (null == t && (t = []), this.managedAttachments = {}, n = 0, i = t.length; i > n; n++) {\n e = t[n], this.manageAttachment(e);\n }\n }\n\n return t(i, n), i.prototype.getAttachments = function () {\n var t, e, n, i;\n n = this.managedAttachments, i = [];\n\n for (e in n) {\n t = n[e], i.push(t);\n }\n\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\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\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\n if (g.parentNode === e) {\n if (u++ === i) break;\n } else if (!t(e, g) && u > 0) break;\n\n r(g, {\n strict: m\n }) ? (l && p.index++, p.offset = 0, l = !0) : p.offset += d(g);\n }\n\n return p;\n }, e.prototype.findContainerAndOffsetFromLocation = function (t) {\n var e, i, s, u, l;\n\n if (0 === t.index && 0 === t.offset) {\n for (e = this.element, u = 0; e.firstChild;) {\n if (e = e.firstChild, o(e)) {\n u = 1;\n break;\n }\n }\n\n return [e, u];\n }\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 ;\n }\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\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\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\n for (i = [], r = h(this.element, {\n usingFilter: p\n }), o = !1; r.nextNode();) {\n 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 }\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\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\n if (document.body.createTextRange) {\n s = t();\n\n try {\n u = document.body.createTextRange(), u.moveToPoint(c, l), u.select();\n } catch (h) {}\n\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\n for (var i in e) {\n o.call(e, i) && (t[i] = e[i]);\n }\n\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++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\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\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\n for (o = this.selectionManagers, r = [], n = 0, i = o.length; i > n; n++) {\n e = o[n], e !== t && r.push(e);\n }\n\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\n for (n = this.selectionManagers, i = [], t = 0, e = n.length; e > t; t++) {\n o = n[t], i.push(o.selectionDidChange());\n }\n\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\n for (var i in e) {\n d.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n d = {}.hasOwnProperty;\n\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\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\n for (e.paused = !1, clearTimeout(r), o = 0, s = i.length; s > o; o++) {\n n = i[o], n.destroy();\n }\n\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\n for (r = [\"mousemove\", \"keydown\"], s = [], t = 0, i = r.length; i > t; t++) {\n e = r[t], s.push(o(e, {\n onElement: document,\n withCallback: n\n }));\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\n for (var i in e) {\n s.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n s = {}.hasOwnProperty,\n a = [].slice;\n\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\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\n for (t in this.actions) {\n e[t] = this.canInvokeAction(t);\n }\n\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\n for (a = this.composition.getSnapshot(), o = this.editor.filters, n = 0, i = o.length; i > n; 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 }\n\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\n case \"render\":\n this.documentChangedSinceLastRender && (this.documentChangedSinceLastRender = !1, this.notifyEditorElement(\"change\"));\n break;\n\n case \"change\":\n case \"attachment-add\":\n case \"attachment-edit\":\n case \"attachment-remove\":\n this.updateInputElement();\n }\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++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\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\n for (o = t.labels, r = [], n = 0, i = o.length; i > n; n++) {\n e = o[n], e.contains(t) || r.push(e.textContent);\n }\n\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; // DOM APIs, for completeness\n\nexports.setTimeout = function () {\n return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);\n};\n\nexports.setInterval = function () {\n return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);\n};\n\nexports.clearTimeout = exports.clearInterval = function (timeout) {\n if (timeout) {\n timeout.close();\n }\n};\n\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\n\nTimeout.prototype.unref = Timeout.prototype.ref = function () {};\n\nTimeout.prototype.close = function () {\n this._clearFn.call(scope, this._id);\n}; // Does not start the time, just sets up the members needed.\n\n\nexports.enroll = function (item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\n\nexports.unenroll = function (item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\n\nexports._unrefActive = exports.active = function (item) {\n clearTimeout(item._idleTimeoutId);\n var msecs = item._idleTimeout;\n\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout) item._onTimeout();\n }, msecs);\n }\n}; // setimmediate attaches itself to the global object\n\n\nrequire(\"setimmediate\"); // 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.\n\n\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\n var nextHandle = 1; // Spec says greater than zero\n\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n\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 } // Copy function arguments\n\n\n var args = new Array(arguments.length - 1);\n\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n } // Store and register the task\n\n\n var task = {\n callback: callback,\n args: args\n };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n\n switch (args.length) {\n case 0:\n callback();\n break;\n\n case 1:\n callback(args[0]);\n break;\n\n case 2:\n callback(args[0], args[1]);\n break;\n\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n\n default:\n callback.apply(undefined, args);\n break;\n }\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\n if (task) {\n currentlyRunningATask = true;\n\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n\n function installNextTickImplementation() {\n registerImmediate = function registerImmediate(handle) {\n process.nextTick(function () {\n runIfPresent(handle);\n });\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\n global.onmessage = function () {\n postMessageIsAsynchronous = false;\n };\n\n global.postMessage(\"\", \"*\");\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\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 var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n\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\n if (global.addEventListener) {\n global.addEventListener(\"message\", onGlobalMessage, false);\n } else {\n global.attachEvent(\"onmessage\", onGlobalMessage);\n }\n\n registerImmediate = function registerImmediate(handle) {\n global.postMessage(messagePrefix + handle, \"*\");\n };\n }\n\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n\n channel.port1.onmessage = function (event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n\n registerImmediate = function registerImmediate(handle) {\n channel.port2.postMessage(handle);\n };\n }\n\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n\n registerImmediate = function registerImmediate(handle) {\n // Create a