{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/jquery/src/core.js","webpack:///./node_modules/jquery/src/var/isFunction.js","webpack:///./node_modules/jquery/src/var/document.js","webpack:///./node_modules/jquery/src/selector.js","webpack:///./node_modules/jquery/src/core/init.js","webpack:///./node_modules/jquery/src/var/arr.js","webpack:///./node_modules/jquery/src/core/nodeName.js","webpack:///./node_modules/jquery/src/data/var/dataPriv.js","webpack:///./node_modules/jquery/src/var/rnothtmlwhite.js","webpack:///./node_modules/jquery/src/var/support.js","webpack:///./node_modules/jquery/src/core/access.js","webpack:///./node_modules/jquery/src/ajax.js","webpack:///./node_modules/jquery/src/core/toType.js","webpack:///./node_modules/jquery/src/traversing.js","webpack:///./node_modules/jquery/src/deferred.js","webpack:///./node_modules/jquery/src/var/slice.js","webpack:///./node_modules/jquery/src/var/isWindow.js","webpack:///./node_modules/jquery/src/core/camelCase.js","webpack:///./node_modules/jquery/src/event.js","webpack:///./node_modules/jquery/src/css.js","webpack:///./node_modules/trix/dist/trix.js","webpack:///./node_modules/jquery/src/var/indexOf.js","webpack:///./node_modules/jquery/src/var/class2type.js","webpack:///./node_modules/jquery/src/var/hasOwn.js","webpack:///./node_modules/jquery/src/data/var/acceptData.js","webpack:///./node_modules/jquery/src/core/isAttached.js","webpack:///./node_modules/jquery/src/var/documentElement.js","webpack:///./node_modules/jquery/src/manipulation.js","webpack:///./node_modules/jquery/src/var/push.js","webpack:///./node_modules/jquery/src/callbacks.js","webpack:///./node_modules/jquery/src/queue.js","webpack:///./node_modules/jquery/src/effects.js","webpack:///./node_modules/jquery/src/var/rcssNum.js","webpack:///./node_modules/jquery/src/css/var/cssExpand.js","webpack:///./node_modules/jquery/src/var/rcheckableType.js","webpack:///./node_modules/jquery/src/css/var/rnumnonpx.js","webpack:///./node_modules/jquery/src/css/support.js","webpack:///./node_modules/jquery/src/attributes/support.js","webpack:///./node_modules/jquery/src/core/stripAndCollapse.js","webpack:///./node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js","webpack:///./node_modules/@rails/activestorage/app/assets/javascripts/activestorage.js","webpack:///./node_modules/jquery/src/jquery.js","webpack:///./node_modules/jquery/src/var/getProto.js","webpack:///./node_modules/jquery/src/var/flat.js","webpack:///./node_modules/jquery/src/var/toString.js","webpack:///./node_modules/jquery/src/var/fnToString.js","webpack:///./node_modules/jquery/src/core/DOMEval.js","webpack:///./node_modules/jquery/src/var/whitespace.js","webpack:///./node_modules/jquery/src/var/rtrimCSS.js","webpack:///./node_modules/jquery/src/selector/contains.js","webpack:///./node_modules/jquery/src/traversing/var/rneedsContext.js","webpack:///./node_modules/jquery/src/core/var/rsingleTag.js","webpack:///./node_modules/jquery/src/traversing/findFilter.js","webpack:///./node_modules/jquery/src/core/ready.js","webpack:///./node_modules/jquery/src/data/Data.js","webpack:///./node_modules/jquery/src/data/var/dataUser.js","webpack:///./node_modules/jquery/src/var/pnum.js","webpack:///./node_modules/jquery/src/css/var/isHiddenWithinTree.js","webpack:///./node_modules/jquery/src/css/adjustCSS.js","webpack:///./node_modules/jquery/src/manipulation/var/rtagName.js","webpack:///./node_modules/jquery/src/manipulation/var/rscriptType.js","webpack:///./node_modules/jquery/src/manipulation/wrapMap.js","webpack:///./node_modules/jquery/src/manipulation/support.js","webpack:///./node_modules/jquery/src/manipulation/getAll.js","webpack:///./node_modules/jquery/src/manipulation/setGlobalEval.js","webpack:///./node_modules/jquery/src/manipulation/buildFragment.js","webpack:///./node_modules/jquery/src/css/var/rcustomProp.js","webpack:///./node_modules/jquery/src/css/var/getStyles.js","webpack:///./node_modules/jquery/src/css/curCSS.js","webpack:///./node_modules/jquery/src/css/addGetHookIf.js","webpack:///./node_modules/jquery/src/css/finalPropName.js","webpack:///./node_modules/jquery/src/attributes/prop.js","webpack:///./node_modules/jquery/src/ajax/var/nonce.js","webpack:///./node_modules/jquery/src/ajax/var/rquery.js","webpack:///./node_modules/jquery/src/core/parseXML.js","webpack:///./node_modules/jquery/src/event/trigger.js","webpack:///./node_modules/jquery/src/serialize.js","webpack:///./node_modules/jquery/src/core/parseHTML.js","webpack:///(webpack)/buildin/global.js","webpack:///./app/javascript/packs/application.js","webpack:///./node_modules/jquery/src/var/ObjectFunctionString.js","webpack:///./node_modules/jquery/src/var/pop.js","webpack:///./node_modules/jquery/src/var/sort.js","webpack:///./node_modules/jquery/src/var/splice.js","webpack:///./node_modules/jquery/src/selector/escapeSelector.js","webpack:///./node_modules/jquery/src/traversing/var/dir.js","webpack:///./node_modules/jquery/src/traversing/var/siblings.js","webpack:///./node_modules/jquery/src/deferred/exceptionHook.js","webpack:///./node_modules/jquery/src/core/readyException.js","webpack:///./node_modules/jquery/src/data.js","webpack:///./node_modules/jquery/src/queue/delay.js","webpack:///./node_modules/jquery/src/css/showHide.js","webpack:///./node_modules/jquery/src/css/var/swap.js","webpack:///./node_modules/jquery/src/css/var/rboxStyle.js","webpack:///./node_modules/jquery/src/effects/Tween.js","webpack:///./node_modules/jquery/src/attributes.js","webpack:///./node_modules/jquery/src/attributes/attr.js","webpack:///./node_modules/jquery/src/attributes/classes.js","webpack:///./node_modules/jquery/src/attributes/val.js","webpack:///./node_modules/jquery/src/manipulation/_evalUrl.js","webpack:///./node_modules/jquery/src/ajax/var/location.js","webpack:///./node_modules/jquery/src/wrap.js","webpack:///./node_modules/jquery/src/css/hiddenVisibleSelectors.js","webpack:///./node_modules/jquery/src/ajax/xhr.js","webpack:///./node_modules/jquery/src/ajax/script.js","webpack:///./node_modules/jquery/src/ajax/jsonp.js","webpack:///./node_modules/jquery/src/ajax/load.js","webpack:///./node_modules/jquery/src/core/support.js","webpack:///./node_modules/jquery/src/effects/animatedSelector.js","webpack:///./node_modules/jquery/src/offset.js","webpack:///./node_modules/jquery/src/dimensions.js","webpack:///./node_modules/jquery/src/deprecated.js","webpack:///./node_modules/jquery/src/deprecated/ajax-event-alias.js","webpack:///./node_modules/jquery/src/deprecated/event.js","webpack:///./node_modules/jquery/src/exports/amd.js","webpack:///./node_modules/jquery/src/exports/global.js","webpack:///./node_modules/turbolinks/dist/turbolinks.js","webpack:///./app/javascript/channels/index.js","webpack:///./app/javascript/channels sync _channel\\.js$","webpack:///./node_modules/noty/lib/noty.js","webpack:///./node_modules/timers-browserify/main.js","webpack:///./node_modules/setimmediate/setImmediate.js","webpack:///./node_modules/process/browser.js","webpack:///./app/javascript/youtube.js","webpack:///./node_modules/bulma-tagsinput/dist/js/bulma-tagsinput.min.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","arr","getProto","slice","flat","push","indexOf","class2type","toString","hasOwn","fnToString","ObjectFunctionString","support","isFunction","isWindow","DOMEval","toType","rhtmlSuffix","jQuery","selector","context","fn","init","isArrayLike","obj","length","type","jquery","constructor","toArray","this","num","pushStack","elems","ret","merge","prevObject","each","callback","map","elem","apply","arguments","first","eq","last","even","grep","_elem","odd","len","j","end","sort","splice","extend","options","src","copy","copyIsArray","clone","target","deep","isPlainObject","Array","isArray","undefined","expando","Math","random","replace","isReady","error","msg","Error","noop","proto","Ctor","isEmptyObject","globalEval","code","doc","nonce","text","node","nodeType","textContent","documentElement","nodeValue","makeArray","results","inArray","isXMLDoc","namespace","namespaceURI","docElem","ownerDocument","test","nodeName","second","invert","matches","callbackExpect","arg","guid","iterator","split","_i","toLowerCase","item","window","document","pop","whitespace","rtrimCSS","preferredDoc","pushNative","Expr","outermostContext","sortInput","hasDuplicate","documentIsHTML","rbuggyQSA","dirruns","done","classCache","createCache","tokenCache","compilerCache","nonnativeSelectorCache","sortOrder","a","b","booleans","identifier","attributes","pseudos","rwhitespace","RegExp","rcomma","rleadingCombinator","rdescend","rpseudo","ridentifier","matchExpr","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","rinputs","rheader","rquickExpr","rsibling","runescape","funescape","escape","nonHex","high","String","fromCharCode","unloadHandler","setDocument","inDisabledFieldset","addCombinator","disabled","dir","next","childNodes","e","els","find","seed","nid","match","groups","newSelector","newContext","exec","getElementById","id","contains","getElementsByTagName","getElementsByClassName","testContext","parentNode","scope","getAttribute","escapeSelector","setAttribute","tokenize","toSelector","join","querySelectorAll","qsaError","removeAttribute","select","keys","cache","cacheLength","shift","markFunction","assert","el","createElement","removeChild","createInputPseudo","createButtonPseudo","createDisabledPseudo","isDisabled","createPositionalPseudo","argument","matchIndexes","subWindow","webkitMatchesSelector","msMatchesSelector","defaultView","top","addEventListener","getById","appendChild","getElementsByName","disconnectedMatch","cssHas","querySelector","filter","attrId","getAttributeNode","tag","className","input","innerHTML","compare","compareDocumentPosition","sortDetached","expr","elements","matchesSelector","attr","attrHandle","val","uniqueSort","duplicates","sortStable","createPseudo","relative","preFilter","excess","unquoted","nodeNameSelector","expectedNodeName","pattern","operator","check","result","what","_argument","simple","forward","ofType","_context","xml","outerCache","nodeIndex","start","parent","useCache","diff","firstChild","lastChild","pseudo","args","setFilters","idx","matched","not","matcher","compile","unmatched","has","lang","elemLang","hash","location","root","focus","activeElement","err","safeActiveElement","hasFocus","href","tabIndex","enabled","checked","selected","selectedIndex","empty","nextSibling","header","button","_matchIndexes","lt","gt","nth","radio","checkbox","file","password","image","submit","reset","parseOnly","tokens","soFar","preFilters","cached","combinator","base","skip","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","matcherOut","preMap","postMap","preexisting","contexts","multipleContexts","matcherIn","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","concat","setMatchers","elementMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","matcherFromGroupMatchers","token","compiled","filters","unique","getText","isXML","selectors","rsingleTag","rootjQuery","parseHTML","ready","Data","access","chainable","emptyGet","raw","bulk","_key","rnothtmlwhite","rquery","r20","rhash","rantiCache","rheaders","rnoContent","rprotocol","prefilters","transports","allTypes","originAnchor","addToPrefiltersOrTransports","structure","dataTypeExpression","func","dataType","dataTypes","unshift","inspectPrefiltersOrTransports","originalOptions","jqXHR","inspected","seekingTransport","inspect","_","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","active","lastModified","etag","url","isLocal","protocol","global","processData","async","contentType","accepts","html","json","contents","responseFields","converters","JSON","parse","parseXML","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","transport","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","urlAnchor","completed","fireGlobals","uncached","callbackContext","globalEventContext","event","deferred","Deferred","completeDeferred","Callbacks","statusCode","requestHeaders","requestHeadersNames","strAbort","readyState","getResponseHeader","getAllResponseHeaders","setRequestHeader","overrideMimeType","mimeType","always","status","abort","statusText","finalText","promise","method","crossDomain","host","data","param","traditional","trigger","toUpperCase","hasContent","ifModified","headers","beforeSend","add","complete","success","fail","timeout","setTimeout","send","nativeStatusText","responses","isSuccess","response","modified","clearTimeout","ct","finalDataType","firstDataType","ajaxHandleResponses","conv2","current","conv","tmp","prev","dataFilter","throws","state","ajaxConvert","resolveWith","rejectWith","fireWith","getJSON","getScript","siblings","rneedsContext","rparentsprev","guaranteedUnique","children","sibling","cur","targets","closest","index","prevAll","addBack","parents","parentsUntil","until","nextAll","nextUntil","prevUntil","contentDocument","content","reverse","Identity","v","Thrower","ex","adoptValue","resolve","reject","noValue","then","tuples","pipe","fns","newDefer","tuple","returned","progress","notify","onFulfilled","onRejected","onProgress","maxDepth","depth","handler","special","that","mightThrow","TypeError","notifyWith","process","exceptionHook","getErrorHook","getStackHook","list","stateString","disable","lock","fire","when","singleValue","remaining","resolveContexts","resolveValues","primary","updateFunc","rmsPrefix","rdashAlpha","fcamelCase","_all","letter","string","rcheckableType","acceptData","dataPriv","rtypenamespace","returnTrue","returnFalse","on","types","one","origFn","off","leverageNative","isSetup","set","saved","isTrigger","delegateType","stopPropagation","stopImmediatePropagation","preventDefault","isImmediatePropagationStopped","handleObjIn","eventHandle","events","handleObj","handlers","namespaces","origType","elemData","handle","triggered","dispatch","bindType","delegateCount","setup","remove","mappedTypes","origCount","hasData","teardown","removeEvent","nativeEvent","handlerQueue","fix","delegateTarget","preDispatch","isPropagationStopped","currentTarget","rnamespace","postDispatch","sel","matchedHandlers","matchedSelectors","addProp","hook","Event","configurable","originalEvent","writable","load","noBubble","click","_default","beforeunload","returnValue","removeEventListener","props","isDefaultPrevented","defaultPrevented","relatedTarget","timeStamp","Date","now","isSimulated","altKey","bubbles","cancelable","changedTouches","ctrlKey","detail","eventPhase","metaKey","pageX","pageY","shiftKey","view","charCode","keyCode","buttons","clientX","clientY","offsetX","offsetY","pointerId","pointerType","screenX","screenY","targetTouches","toElement","touches","which","blur","focusMappedHandler","documentMode","simulate","attaches","dataHolder","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","camelCase","rcssNum","rnumnonpx","rcustomProp","cssExpand","getStyles","swap","curCSS","adjustCSS","addGetHookIf","finalPropName","rdisplayswap","cssShow","position","visibility","display","cssNormalTransform","letterSpacing","fontWeight","setPositiveNumber","subtract","max","boxModelAdjustment","dimension","box","isBorderBox","styles","computedVal","extra","delta","marginDelta","css","ceil","getWidthOrHeight","boxSizingReliable","valueIsBorderBox","offsetProp","reliableTrDimensions","parseFloat","getClientRects","cssHooks","opacity","computed","cssNumber","animationIterationCount","aspectRatio","borderImageSlice","columnCount","flexGrow","flexShrink","gridArea","gridColumn","gridColumnEnd","gridColumnStart","gridRow","gridRowEnd","gridRowStart","lineHeight","order","orphans","scale","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeMiterlimit","strokeOpacity","cssProps","style","hooks","origName","isCustomProp","clearCloneStyle","setProperty","isFinite","getBoundingClientRect","width","scrollboxSizeBuggy","scrollboxSize","marginLeft","reliableMarginLeft","left","margin","padding","border","prefix","suffix","expand","expanded","parts","Set","clear","values","forEach","_state","_handled","_value","_deferreds","h","u","setImmediate","console","warn","all","race","_setImmediateFn","_setUnhandledRejectionFn","Promise","customElements","registerElement","WeakMap","A","g","uid_","takeRecords","nodes_","observer","removeTransientObservers","callback_","subtree","enqueue","records_","C","addedNodes","removedNodes","previousSibling","attributeName","attributeNamespace","oldValue","x","w","f","transientObservedNodes","JsMutationObserver","navigator","userAgent","y","postMessage","observe","ShadowDOMPolyfill","wrapIfNeeded","childList","characterData","attributeOldValue","attributeFilter","characterDataOldValue","SyntaxError","removeListeners","addListeners","disconnect","addListeners_","removeListeners_","addTransientObserver","handleEvent","attrName","relatedNode","attrChange","MutationEvent","ADDITION","prevValue","MutationObserver","_isPolyfilled","self","performance","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","cancelAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","createEvent","initEvent","CustomEvent","initCustomEvent","Boolean","WebComponents","CustomElements","flags","addModule","initializeModules","hasNative","isIE","useNative","register","HTMLImports","firstElementChild","Node","ELEMENT_NODE","nextElementSibling","shadowRoot","olderShadowRoot","IMPORT_LINK_TYPE","forDocumentTree","wrap","import","forSubtree","upgrade","__upgraded__","__attached","attachedCallback","detachedCallback","dom","URL","_URL","localName","group","DOCUMENT_FRAGMENT_NODE","E","groupEnd","__observer","baseURI","hasPolyfillMutations","hasThrottledAttached","S","Element","createShadowRoot","watchShadow","__watched","log","upgradeDocumentTree","upgradeDocument","upgradeSubtree","upgradeAll","attached","is","createdCallback","__proto__","HTMLElement","getOwnPropertyNames","getOwnPropertyDescriptor","getPrototypeOf","native","HTMLTemplateElement","decorate","getRegisteredDefinition","extends","upgradeWithDefinition","implementPrototype","_polyfilled","attributeChangedCallback","ctor","createElementNS","__name","lifecycle","ancestry","registry","instanceof","reservedTagList","readyTime","elapsed","dispatchEvent","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","Function","__super__","fromJSONString","fromJSON","hasSameConstructorAs","isEqualTo","contentsForInspection","toJSONString","stringify","toUTF16String","UTF16String","getCacheKey","defer","normalizeSpaces","normalizeNewlines","breakableWhitespacePattern","squishBreakableWhitespace","source","summarizeStringChange","added","removed","utf16String","offset","codepoints","fromCodepoints","charAt","copyObject","objectsAreEqual","arraysAreEqual","arrayStartsWith","spliceArray","summarizeArrayChange","getAllAttributeNames","getTextAttributeNames","getBlockAttributeNames","getBlockConfig","blockAttributes","getTextConfig","textAttributes","getListAttributeNames","listAttribute","mozMatchesSelector","onElement","matchingSelector","withCallback","inPhase","times","destroy","findClosestElementFromNode","handleEventOnce","triggerEvent","elementMatchesSelector","untilNode","findInnerElement","innerElementIsActive","elementContainsNode","findNodeFromContainerAndOffset","TEXT_NODE","findElementFromContainerAndOffset","findChildIndexOfNode","removeNode","walkTree","onlyNodesOfType","usingFilter","expandEntityReferences","NodeFilter","SHOW_ELEMENT","SHOW_TEXT","SHOW_COMMENT","SHOW_ALL","createTreeWalker","tagName","makeElement","editable","contenteditable","dataset","classList","getBlockTagNames","blockTagNames","nodeIsBlockContainer","nodeIsBlockStartComment","nodeProbablyIsBlockContainer","nodeIsBlockStart","strict","nodeIsCommentNode","COMMENT_NODE","nodeIsCursorTarget","nodeIsTextNode","trixCursorTarget","nodeIsAttachmentElement","AttachmentView","attachmentSelector","nodeIsEmptyTextNode","normalizeRange","rangeIsCollapsed","rangesAreEqual","defaultCSS","head","insertBefore","initialize","connect","initialized","connectedCallback","disconnectedCallback","Reflect","construct","setPrototypeOf","defineProperties","define","getDOMSelection","getSelection","rangeCount","getDOMRange","getRangeAt","setDOMRange","removeAllRanges","addRange","selectionChangeObserver","update","startContainer","endContainer","dataTransferIsPlainText","getData","DOMParser","parseFromString","body","dataTransferIsWritable","setData","keyEventIsKeyboardCommand","platform","RTL_PATTERN","getDirection","dirName","FormData","trim","Hash","fromCommonAttributesOfObjects","getKeys","getKeysCommonToHash","isEmpty","array","toObject","toJSON","ObjectGroup","objects","asTree","groupObjects","canBeGrouped","canBeGroupedWith","getObjects","getDepth","ObjectMap","ElementStore","trixStoreKey","Operation","isPerforming","performing","hasPerformed","performed","hasSucceeded","succeeded","hasFailed","getPromise","perform","release","cancel","ucs2String","ucs2Length","fromUCS2String","offsetToUCS2Offset","offsetFromUCS2Offset","from","codePointAt","fromCodePoint","charCodeAt","attachFiles","bold","bullets","bytes","captionPlaceholder","heading1","indent","italic","link","numbers","outdent","quote","redo","strike","undo","unlink","urlPlaceholder","GB","KB","MB","PB","TB","attachment","attachmentCaption","attachmentCaptionEditor","attachmentMetadata","attachmentMetadataContainer","attachmentName","attachmentProgress","attachmentSize","attachmentToolbar","attachmentGallery","nestable","terminal","breakOnReturn","plaintext","bulletList","bullet","numberList","number","exclusive","fileSize","precision","formatter","byte","floor","pow","toFixed","inheritable","parser","getComputedStyle","fontStyle","groupTagName","frozen","backgroundColor","serializers","Document","fromHTML","toSerializableDocument","DocumentView","render","cloneNode","deserializers","serializeToContentType","deserializeFromContentType","toolbar","getDefaultHTML","undoInterval","attachments","preview","presentation","caption","size","keyNames","8","9","13","27","37","39","46","68","72","79","level2Enabled","getLevel","pickFiles","multiple","hidden","fileInputId","files","ObjectView","childViews","rootView","getNodes","nodes","createNodes","invalidate","parentView","invalidateViewForObject","findViewForObject","findOrCreateCachedChildView","getCachedViewForObject","recordChildView","createChildView","cacheViewForObject","viewClass","ObjectGroupView","getAllChildViews","findElement","findElementForObject","element","getViewCache","isViewCachingEnabled","viewCache","shouldCacheViews","enableViewCaching","disableViewCaching","garbageCollectCachedViews","objectGroup","getChildViews","createContainerElement","Controller","didMutate","stop","mutations","findSignificantMutations","delegate","elementDidMutate","getMutationSummary","mutationIsSignificant","nodeIsMutable","nodesModifiedByMutation","nodeIsSignificant","getTextMutationSummary","getTextChangesFromCharacterData","additions","deletions","getTextChangesFromChildList","textAdded","textDeleted","getMutationsByType","FileVerificationOperation","FileReader","onerror","onload","readAsArrayBuffer","InputController","mutationObserver","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","keyName","inputControllerDidReceiveKeyboardCommand","keypress","inputControllerWillPerformTyping","insertString","selectionIsExpanded","textInput","setSelectedRange","dragenter","dragstart","serializeSelectionToDataTransfer","dataTransfer","draggedRange","inputControllerDidStartDrag","dragover","canAcceptDataTransfer","draggingPoint","inputControllerDidReceiveDragOverPoint","dragend","inputControllerDidCancelDrag","drop","setLocationRangeFromPointRange","inputControllerWillMoveText","moveTextFromRange","insertDocument","cut","clipboardData","inputControllerWillCutText","deleteInDirection","paste","R","k","D","L","testClipboardData","clipboard","getPastedHTMLUsingHiddenElement","inputControllerWillPaste","insertHTML","inputControllerDidPaste","items","getAsFile","insertFile","compositionstart","getCompositionInput","compositionupdate","compositionend","beforeinput","backspace","insertLineBreak","tab","canIncreaseNestingLevel","increaseNestingLevel","selectionIsInCursorTarget","moveCursorInDirection","right","control","updatePosition","canDecreaseNestingLevel","decreaseNestingLevel","expandSelectionInDirection","alt","meta","isEnded","getSelectedDocument","Files","pageXOffset","pageYOffset","inputController","isSignificant","insertPlaceholder","range","selectPlaceholder","forgetPlaceholder","canApplyToDocument","Level2InputController","scheduledRender","composing","reparse","scheduleRender","afterRender","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","height","scrollHeight","parentElement","editCaption","attachmentEditorDidRequestRemovalOfAttachment","attachmentEditorDidRequestDeselectingAttachment","uploadProgressDelegate","piece","createContentNodes","getClassName","getHref","tabindex","HTMLSanitizer","setHTML","getContent","createCaptionElement","isPending","progressElement","getUploadProgress","getCaptionConfig","createTextNode","getType","getExtension","trixAttachment","trixContentType","getContentType","trixId","trixAttributes","trixSerialize","findProgressElement","attachmentDidChangeUploadProgress","PreviewableAttachmentView","previewDelegate","refresh","updateAttributesForImage","getURL","getPreviewURL","getWidth","getHeight","attachmentDidChangeAttributes","PieceView","getAttributes","textConfig","createAttachmentNodes","createStringNodes","preserveSpaces","styleProperty","isLast","isFirst","followsWhitespace","TextView","getPieces","hasAttribute","BlockView","block","createComment","getLastAttribute","shouldAddExtraNewlineElement","isRTL","getBlockBreakPosition","elementStore","sync","shadowElement","getBlocks","isSynced","createDocumentFragmentForSync","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","parseInt","ToolbarController","didKeyDownDialogInput","didClickDialogButton","didClickAttributeButton","actions","resetDialogInputs","toolbarDidClickButton","getDialog","toggleDialog","toolbarDidInvokeAction","toolbarDidToggleAttribute","refreshAttributeButtons","hideDialog","updateActions","refreshActionButtons","eachActionButton","updateAttributes","eachAttributeButton","dialogIsVisible","applyKeyboardCommand","showDialog","toolbarWillShowDialog","toolbarDidShowDialog","willValidate","checkValidity","toolbarDidUpdateAttribute","toolbarDidRemoveAttribute","toolbarDidHideDialog","ImagePreloadOperation","Image","naturalWidth","naturalHeight","Attachment","releaseFile","didChangeAttributes","previewablePattern","attachmentForFile","attributesForFile","setFile","filename","filesize","setAttributes","preloadURL","getFilesize","getFile","preloadFile","releasePreloadedFile","uploadProgress","setUploadProgress","previewURL","preloadingURL","setPreviewURL","attachmentDidChangePreviewURL","preload","fileObjectURL","createObjectURL","revokeObjectURL","Piece","registerType","copyWithAttributes","getValue","copyWithAdditionalAttributes","copyWithoutAttribute","getAttributesHash","getCommonAttributes","pieceList","getPieceAtIndex","eachPiece","hasSameStringValueAsPiece","hasSameAttributesAsPiece","isBlockBreak","isSerializable","getLength","canBeConsolidatedWith","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","consolidate","consolidateFromIndexToIndex","findPositionAtIndexAndOffset","getEndPosition","endPosition","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","allowedAttributes","forbiddenProtocols","forbiddenElements","sanitize","getHTML","sanitizeElements","normalizeListElementNesting","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","findBlockElementAncestors","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","min","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","UndoManager","undoEntries","redoEntries","consolidatable","createEntry","description","snapshot","canUndo","canRedo","attachmentGalleryFilter","applyBlockAttribute","findRangesOfBlocks","findRangesOfPieces","moveSelectedRangeForward","Editor","selectionManager","undoManager","loadDocument","loadHTML","loadJSON","getClientRectAtPosition","getClientRectAtLocationRange","activateAttribute","attributeIsActive","canActivateAttribute","deactivateAttribute","ManagedAttachment","attachmentManager","requestRemovalOfAttachment","AttachmentManager","managedAttachments","manageAttachment","attachmentIsManaged","attachmentManagerDidRequestRemovalOfAttachment","unmanageAttachment","LocationMapper","findLocationFromContainerAndOffset","findAttachmentElementParentForNode","findContainerAndOffsetFromLocation","findNodeAndOffsetFromLocation","getSignificantNodesForIndex","PointMapper","createDOMRangeFromPoint","caretPositionFromPoint","offsetNode","caretRangeFromPoint","createTextRange","moveToPoint","getClientRectsForDOMRange","SelectionChangeObserver","run","selectionManagers","started","registerSelectionManager","unregisterSelectionManager","notifySelectionManagersOfSelectionChange","selectionDidChange","domRange","SelectionManager","didMouseDown","locationMapper","pointMapper","lockCount","currentLocationRange","lockedLocationRange","createDOMRangeFromLocationRange","updateCurrentLocationRange","getLocationAtPoint","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","queryCommandSupported","execCommand","labels","inputElement","editorController","defaultValue","registerResetListener","registerClickListener","unregisterResetListener","unregisterClickListener","resetListener","resetBubbled","clickListener","clickBubbled","form","owner","isAttached","composed","getRootNode","rtagName","rscriptType","wrapMap","getAll","setGlobalEval","buildFragment","dataUser","rnoInnerhtml","rchecked","rcleanScript","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","dest","udataOld","udataCur","fixInput","domManip","collection","ignored","fragment","scripts","hasScripts","iNoClone","valueIsFunction","checkClone","_evalUrl","noModule","keepData","cleanData","htmlPrefilter","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","noCloneChecked","detach","append","prepend","before","after","replaceWith","appendTo","prependTo","insertAfter","replaceAll","original","insert","flag","createOptions","firing","memory","fired","locked","queue","firingIndex","once","stopOnFalse","dequeue","startLength","_queueHooks","setter","clearQueue","count","isHiddenWithinTree","showHide","fxNow","inProgress","rfxtypes","rrun","schedule","fx","interval","tick","createFxNow","genFx","includeWidth","attrs","createTween","prop","animation","tween","Animation","tweeners","properties","stopped","currentTime","startTime","duration","percent","tweens","opts","specialEasing","easing","originalProperties","Tween","gotoEnd","propFilter","timer","anim","tweener","toggle","oldfire","propTween","restoreDisplay","isBox","dataShow","unqueued","overflow","overflowX","overflowY","prefilter","speed","opt","speeds","old","fadeTo","to","show","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","slow","fast","pnum","computeStyleTests","div","cssText","divStyle","pixelPositionVal","reliableMarginLeftVal","roundPixelMeasures","pixelBoxStylesVal","boxSizingReliableVal","scrollboxSizeVal","offsetWidth","measure","round","reliableTrDimensionsVal","backgroundClip","pixelBoxStyles","pixelPosition","table","tr","trChild","trStyle","borderTopWidth","borderBottomWidth","offsetHeight","checkOn","optSelected","radioValue","Rails","linkClickSelector","buttonClickSelector","exclude","inputChangeSelector","formSubmitSelector","formInputClickSelector","formDisableSelector","formEnableSelector","fileInputSelector","linkDisableSelector","buttonDisableSelector","loadCSPNonce","ref","cspNonce","oMatchesSelector","isContentEditable","isEditable","$","csrfParam","csrfToken","CSRFProtection","xhr","refreshCSRFTokens","params","evt","stopEverything","eventType","AcceptHeaders","createXHR","prepareOptions","processResponse","script","responseText","XMLHttpRequest","OPENED","accept","open","withCredentials","onreadystatechange","DONE","isCrossDomain","serializeElement","additionalParam","inputs","option","encodeURIComponent","formElements","allowAction","handleConfirm","confirm","message","answer","disableFormElement","disableFormElements","disableLinkElement","enableFormElement","enableFormElements","enableLinkElement","isXhrRedirect","handleDisabledElement","enableElement","disableElement","replacement","originalText","handleMethod","formContent","action","isRemote","handleRemote","enctype","formSubmitButtonClick","formNoValidate","preventInsignificantClick","insignificantMetaClick","rails","_rails_loaded","sparkMd5","createCommonjsModule","hex_chr","md5cycle","md5blk","md5blks","md5blk_array","md51","tail","lo","hi","substring","rhex","hex","toUtf8","str","unescape","hexToBinaryString","substr","SparkMD5","ArrayBuffer","clamp","targetArray","sourceArray","byteLength","begin","Uint8Array","appendBinary","_buff","_length","_hash","buff","_finish","getState","setState","hashBinary","returnUInt8Array","buffer","subarray","utf8Str2ArrayBuffer","md51_array","factory","classCallCheck","instance","Constructor","createClass","descriptor","protoProps","staticProps","fileSlice","File","mozSlice","webkitSlice","FileChecksum","chunkSize","chunkCount","chunkIndex","_this","md5Buffer","fileReader","fileReaderDidLoad","fileReaderDidError","readNextChunk","binaryDigest","base64digest","btoa","eventInit","toArray$1","BlobRecord","checksum","content_type","byte_size","responseType","getMetaValue","requestDidLoad","requestDidError","blob","direct_upload","directUploadData","_xhr","BlobUpload","_blob$directUploadDat","DirectUpload","upload","methodName","_len","messages","DirectUploadController","directUpload","hiddenInput","insertAdjacentElement","dispatchError","signed_id","loaded","total","alert","_this2","uploadRequestDidProgress","DirectUploadsController","controllers","createDirectUploadControllers","startNextController","controller","submitButtonsByForm","didClick","didSubmitForm","didSubmitRemoteElement","handleFormSubmissionEvent","enable","delete","submitForm","ActiveStorage","preservedScriptAttributes","bup","winnow","qualifier","readyList","catch","readyException","readyWait","wait","doScroll","uid","valueParts","adjusted","maxIterations","currentValue","initial","unit","initialInUnit","thead","col","td","tbody","tfoot","colgroup","th","optgroup","refElements","rhtml","selection","opener","rboxStyle","minWidth","maxWidth","getPropertyValue","conditionFn","hookFn","cssPrefixes","emptyStyle","vendorProps","final","capName","vendorPropName","rfocusable","rclickable","removeProp","propFix","nType","propHooks","parserErrorElem","rfocusMorph","stopPropagationCallback","onlyHandlers","bubbleType","ontype","lastElement","eventPath","parentWindow","triggerHandler","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","valueOrFunction","serialize","serializeArray","keepScripts","parsed","require","Noty","bulmaTagsInput","rcssescape","fcssescape","ch","asCodePoint","truncate","rerrorNames","asyncError","stack","rbrace","rmultiDash","dataAttr","removeData","_data","_removeData","delay","time","defaultDisplayMap","getDefaultDisplay","hide","eased","pos","step","scrollTop","scrollLeft","linear","swing","cos","PI","boolHook","removeAttr","attrHooks","attrNames","lowercaseName","stripAndCollapse","getClass","classesToArray","addClass","classNames","curValue","finalValue","removeClass","toggleClass","stateVal","isValidValue","hasClass","rreturn","valHooks","optionSet","wrapAll","wrapInner","htmlIsFunction","visible","xhrSuccessStatus","0","1223","xhrSupported","cors","errorCallback","username","xhrFields","onabort","ontimeout","binary","scriptAttrs","charset","scriptCharset","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","animated","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","curElem","using","rect","win","offsetParent","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","rtrim","proxy","holdReady","hold","parseJSON","isNumeric","isNaN","unbind","undelegate","hover","fnOver","fnOut","_jQuery","_$","noConflict","noGlobal","Turbolinks","supported","history","pushState","visit","clearCache","setProgressBarDelay","throttle","uuid","Location","absoluteURL","requestURL","anchor","getOrigin","getPath","getPathComponents","getLastPathComponent","isHTML","isPrefixedBy","toCacheKey","valueOf","HttpRequest","requestCanceled","requestTimedOut","requestFailed","requestLoaded","requestProgressed","referrer","NETWORK_FAILURE","TIMEOUT_FAILURE","sent","notifyApplicationBeforeRequestStart","setProgress","requestStarted","lengthComputable","endRequest","requestCompletedWithResponse","failed","requestFailedWithStatusCode","notifyApplicationAfterRequestEnd","onprogress","requestFinished","ProgressBar","trickle","stylesheetElement","createStylesheetElement","createProgressElement","installStylesheetElement","installProgressElement","startTrickling","hiding","fadeProgressElement","uninstallProgressElement","stopTrickling","setValue","trickleInterval","setInterval","clearInterval","BrowserAdapter","showProgressBar","progressBar","visitProposedToLocationWithAction","startVisitToLocationWithAction","visitStarted","issueRequest","changeHistory","loadCachedSnapshot","visitRequestStarted","hasCachedSnapshot","showProgressBarAfterDelay","visitRequestProgressed","visitRequestCompleted","loadResponse","visitRequestFailedWithStatusCode","reload","visitRequestFinished","hideProgressBar","visitCompleted","followRedirect","pageInvalidated","progressBarTimeout","progressBarDelay","History","onPageLoad","onPopState","shouldHandlePopState","turbolinks","restorationIdentifier","historyPoppedToLocationWithRestorationIdentifier","pageLoaded","pageIsLoaded","HeadDetails","tracked","fromHeadElement","hasElementWithKey","getTrackedElementSignature","getScriptElementsNotInDetails","getElementsMatchingTypeNotInDetails","getStylesheetElementsNotInDetails","getProvisionalElements","findMetaElementByName","Snapshot","headDetails","bodyElement","fromHTMLString","fromHTMLElement","getRootLocation","getSetting","getCacheControlValue","getElementForAnchor","getPermanentElements","getPermanentElementById","getPermanentElementsPresentInSnapshot","findFirstAutofocusableElement","hasAnchor","isCacheable","isVisitable","Renderer","renderView","viewWillRender","newBody","viewRendered","invalidateView","viewInvalidated","createScriptElement","SnapshotRenderer","currentSnapshot","newSnapshot","isPreview","currentHeadDetails","newHeadDetails","currentBody","shouldRender","mergeHead","replaceBody","focusFirstAutofocusableElement","copyNewHeadStylesheetElements","copyNewHeadScriptElements","removeCurrentHeadProvisionalElements","copyNewHeadProvisionalElements","relocateCurrentBodyPermanentElements","activateNewBodyScriptElements","assignNewBody","replacePlaceholderElementsWithClonedPermanentElements","trackedElementsAreIdentical","getNewHeadStylesheetElements","getNewHeadScriptElements","getCurrentHeadProvisionalElements","getNewHeadProvisionalElements","getCurrentBodyPermanentElements","permanentElement","getNewBodyScriptElements","ErrorRenderer","newHead","replaceHeadAndBody","activateBodyScriptElements","getScriptElements","View","htmlElement","markAsPreview","renderSnapshot","renderError","ScrollManager","onScroll","scrollToElement","scrollIntoView","scrollToPosition","scrollPositionChanged","SnapshotCache","snapshots","read","touch","put","write","Visit","performScroll","adapter","timingMetrics","recordTimingMetric","request","cancelRender","visitFailed","historyChanged","shouldIssueRequest","getCachedSnapshot","getCachedSnapshotForLocation","cacheSnapshot","visitRendered","redirectedToLocation","followedRedirect","replaceHistoryWithLocationAndRestorationIdentifier","scrolled","scrollToRestoredPosition","scrollToTop","scrollToAnchor","restorationData","scrollPosition","getTimingMetrics","snapshotCached","frame","clickCaptured","scrollManager","startHistory","stopHistory","applicationAllowsVisitingLocation","locationIsVisitable","getRestorationDataForIdentifier","startVisit","pushHistoryWithLocationAndRestorationIdentifier","shouldCacheSnapshot","notifyApplicationBeforeCachingSnapshot","lastRenderedLocation","getCurrentRestorationData","notifyApplicationBeforeRender","currentVisit","notifyApplicationAfterRender","notifyApplicationAfterPageLoad","clickEventIsSignificant","getVisitableLinkForNode","getVisitableLocationForLink","applicationAllowsFollowingLinkToLocation","getActionForLink","notifyApplicationAfterClickingLinkToLocation","notifyApplicationBeforeVisitingLocation","notifyApplicationAfterVisitingLocation","timing","createVisit","nodeIsVisitable","currentScript","channels","webpackEmptyContext","req","deepExtend","animationEndEvents","_typeof","needle","haystack","argStrict","cancelBubble","generateID","outerHeight","addListener","oldList","newList","visibilityChangeFlow","visibilityChange","handleVisibilityChange","API","PageHidden","Store","visibilityControl","resume","queueRenderAll","msHidden","webkitHidden","createAudioElements","hasSound","audioElement","sounds","sources","barDom","volume","soundPlayed","play","onended","newObj","default","_interopRequireWildcard","cb","useCapture","out","getStyleProp","vendorName","getVendorProp","applyCss","Defaults","Queues","DefaultMaxVisible","docTitle","DocModalCount","getQueueCounts","queueName","maxVisible","closed","addToQueue","removeFromQueue","queueRender","ghostFix","ghostID","Utils","ghost","insertAdjacentHTML","build","layoutDom","layoutID","layout","findOrCreateContainer","markup","hasButtons","btn","buildButtons","theme","handleModal","modal","handleModalClose","queueClose","dequeueClose","openFlow","closeFlow","closing","titleCount","conditions","decrement","DocTitleProps","originalTitle","changed","increment","_update","_clear","noty","progressDom","transition","closeTimer","close","listeners","closeWith","force","killer","callbacks","beforeShow","onShow","afterShow","onClose","afterClose","onClick","onHover","onTemplate","NotyButton","_classCallCheck","classes","propertyName","_createClass","Push","workerPath","subData","onPermissionGranted","onPermissionDenied","onSubscriptionSuccess","onSubscriptionCancel","onWorkerError","onWorkerSuccess","onWorkerNotSupported","Notification","webkitNotifications","mozNotification","external","msIsSiteMode","perm","permissionLevel","checkPermission","permission","subscription","endpoint","subscriptionId","serviceWorker","getRegistrations","registrations","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","unregister","return","userVisibleOnly","getPermissionStatus","serviceWorkerRegistration","pushManager","subscribe","getKey","getEndpoint","p256dh","auth","unregisterWorker","requestPermission","vertxNext","customSchedulerFn","asap","flush","scheduleFlush","browserWindow","browserGlobal","BrowserMutationObserver","WebKitMutationObserver","isNode","isWorker","Uint8ClampedArray","importScripts","MessageChannel","useSetTimeout","globalSetTimeout","channel","iterations","onFulfillment","onRejection","_arguments","child","PROMISE_ID","makePromise","invokeCallback","_result","resolve$1","nextTick","port1","onmessage","port2","vertx","runOnLoop","runOnContext","attemptVertx","GET_THEN_ERROR","ErrorObject","getThen","handleMaybeThenable","maybeThenable","then$$1","thenable","fulfill","reason","handleOwnThenable","sealed","fulfillmentHandler","rejectionHandler","tryThen","_label","handleForeignThenable","publishRejection","_onerror","publish","_subscribers","subscribers","settled","TRY_CATCH_ERROR","hasCallback","tryCatch","Enumerator$1","_instanceConstructor","_remaining","_enumerate","Promise$2","resolver","needsResolver","initializePromise","needsNew","_eachEntry","entry","resolve$$1","_then","_settledAt","_willSettleAt","enumerator","entries","_setScheduler","scheduleFn","_setAsap","asapFn","_asap","polyfill","local","P","promiseToString","cast","_es6Promise","_es6Promise2","_button","_push","showing","shown","killable","promises","closeAll","queueCounts","closeButton","_t","_setTimeout","_x","ms","optionsOverride","_this3","_this4","amount","innerHtml","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","marker","runClearTimeout","Item","env","argv","version","versions","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","binding","cwd","chdir","umask","eval","Timeout","clearFn","_id","_clearFn","unref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","_onTimeout","clearImmediate","registerImmediate","messagePrefix","onGlobalMessage","nextHandle","tasksByHandle","currentlyRunningATask","attachTo","runIfPresent","postMessageIsAsynchronous","oldOnMessage","canUsePostMessage","task","EmbedController","hrefElement","embedContainerElement","embedElement","installEventHandlers","embed","fetch","showEmbed","currentEmbed","assign","ReferenceError","_clickEvents","lowercase","tags","savePartial","caretAtStart","setInputWidth","delimiter","save","refocus","addTag","uppercase","allowDelete","innerText","offsetLeft","selectionStart","selectionEnd","_listeners","Map","_middlewares","removeMiddleware","middleware","directUploadUrl","directUploadDidComplete","sgid","attachable_sgid","createBlobUrl","signedId","blobUrlTemplate"],"mappings":"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","file":"js/application-2becc0ee0ce5ae706e0a.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 = \"//d1ah9kpwblllio.cloudfront.net/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 79);\n","/* global Symbol */\n// Defining this global in .eslintrc.json would create a danger of using the global\n// unguarded in another place, it seems safer to define global only for this module\n\ndefine([\"./var/arr\", \"./var/getProto\", \"./var/slice\", \"./var/flat\", \"./var/push\", \"./var/indexOf\", \"./var/class2type\", \"./var/toString\", \"./var/hasOwn\", \"./var/fnToString\", \"./var/ObjectFunctionString\", \"./var/support\", \"./var/isFunction\", \"./var/isWindow\", \"./core/DOMEval\", \"./core/toType\"], function (arr, getProto, slice, flat, push, indexOf, class2type, toString, hasOwn, fnToString, ObjectFunctionString, support, isFunction, isWindow, DOMEval, toType) {\n \"use strict\";\n\n var version = \"3.7.1\",\n rhtmlSuffix = /HTML$/i,\n // Define a local copy of jQuery\n jQuery = function (selector, context) {\n // The jQuery object is actually just the init constructor 'enhanced'\n // Need init if jQuery is called (just allow error to be thrown if not included)\n return new jQuery.fn.init(selector, context);\n };\n jQuery.fn = jQuery.prototype = {\n // The current version of jQuery being used\n jquery: version,\n constructor: jQuery,\n // The default length of a jQuery object is 0\n length: 0,\n toArray: function () {\n return slice.call(this);\n },\n // Get the Nth element in the matched element set OR\n // Get the whole matched element set as a clean array\n get: function (num) {\n // Return all the elements in a clean array\n if (num == null) {\n return slice.call(this);\n }\n\n // Return just the one element from the set\n return num < 0 ? this[num + this.length] : this[num];\n },\n // Take an array of elements and push it onto the stack\n // (returning the new matched element set)\n pushStack: function (elems) {\n // Build a new jQuery matched element set\n var ret = jQuery.merge(this.constructor(), elems);\n\n // Add the old object onto the stack (as a reference)\n ret.prevObject = this;\n\n // Return the newly-formed element set\n return ret;\n },\n // Execute a callback for every element in the matched set.\n each: function (callback) {\n return jQuery.each(this, callback);\n },\n map: function (callback) {\n return this.pushStack(jQuery.map(this, function (elem, i) {\n return callback.call(elem, i, elem);\n }));\n },\n slice: function () {\n return this.pushStack(slice.apply(this, arguments));\n },\n first: function () {\n return this.eq(0);\n },\n last: function () {\n return this.eq(-1);\n },\n even: function () {\n return this.pushStack(jQuery.grep(this, function (_elem, i) {\n return (i + 1) % 2;\n }));\n },\n odd: function () {\n return this.pushStack(jQuery.grep(this, function (_elem, i) {\n return i % 2;\n }));\n },\n eq: function (i) {\n var len = this.length,\n j = +i + (i < 0 ? len : 0);\n return this.pushStack(j >= 0 && j < len ? [this[j]] : []);\n },\n end: function () {\n return this.prevObject || this.constructor();\n },\n // For internal use only.\n // Behaves like an Array's method, not like a jQuery method.\n push: push,\n sort: arr.sort,\n splice: arr.splice\n };\n jQuery.extend = jQuery.fn.extend = function () {\n var options,\n name,\n src,\n copy,\n copyIsArray,\n clone,\n target = arguments[0] || {},\n i = 1,\n length = arguments.length,\n deep = false;\n\n // Handle a deep copy situation\n if (typeof target === \"boolean\") {\n deep = target;\n\n // Skip the boolean and the target\n target = arguments[i] || {};\n i++;\n }\n\n // Handle case when target is a string or something (possible in deep copy)\n if (typeof target !== \"object\" && !isFunction(target)) {\n target = {};\n }\n\n // Extend jQuery itself if only one argument is passed\n if (i === length) {\n target = this;\n i--;\n }\n for (; i < length; i++) {\n // Only deal with non-null/undefined values\n if ((options = arguments[i]) != null) {\n // Extend the base object\n for (name in options) {\n copy = options[name];\n\n // Prevent Object.prototype pollution\n // Prevent never-ending loop\n if (name === \"__proto__\" || target === copy) {\n continue;\n }\n\n // Recurse if we're merging plain objects or arrays\n if (deep && copy && (jQuery.isPlainObject(copy) || (copyIsArray = Array.isArray(copy)))) {\n src = target[name];\n\n // Ensure proper type for the source value\n if (copyIsArray && !Array.isArray(src)) {\n clone = [];\n } else if (!copyIsArray && !jQuery.isPlainObject(src)) {\n clone = {};\n } else {\n clone = src;\n }\n copyIsArray = false;\n\n // Never move original objects, clone them\n target[name] = jQuery.extend(deep, clone, copy);\n\n // Don't bring in undefined values\n } else if (copy !== undefined) {\n target[name] = copy;\n }\n }\n }\n }\n\n // Return the modified object\n return target;\n };\n jQuery.extend({\n // Unique for each copy of jQuery on the page\n expando: \"jQuery\" + (version + Math.random()).replace(/\\D/g, \"\"),\n // Assume jQuery is ready without the ready module\n isReady: true,\n error: function (msg) {\n throw new Error(msg);\n },\n noop: function () {},\n isPlainObject: function (obj) {\n var proto, Ctor;\n\n // Detect obvious negatives\n // Use toString instead of jQuery.type to catch host objects\n if (!obj || toString.call(obj) !== \"[object Object]\") {\n return false;\n }\n proto = getProto(obj);\n\n // Objects with no prototype (e.g., `Object.create( null )`) are plain\n if (!proto) {\n return true;\n }\n\n // Objects with prototype are plain iff they were constructed by a global Object function\n Ctor = hasOwn.call(proto, \"constructor\") && proto.constructor;\n return typeof Ctor === \"function\" && fnToString.call(Ctor) === ObjectFunctionString;\n },\n isEmptyObject: function (obj) {\n var name;\n for (name in obj) {\n return false;\n }\n return true;\n },\n // Evaluates a script in a provided context; falls back to the global one\n // if not specified.\n globalEval: function (code, options, doc) {\n DOMEval(code, {\n nonce: options && options.nonce\n }, doc);\n },\n each: function (obj, callback) {\n var length,\n i = 0;\n if (isArrayLike(obj)) {\n length = obj.length;\n for (; i < length; i++) {\n if (callback.call(obj[i], i, obj[i]) === false) {\n break;\n }\n }\n } else {\n for (i in obj) {\n if (callback.call(obj[i], i, obj[i]) === false) {\n break;\n }\n }\n }\n return obj;\n },\n // Retrieve the text value of an array of DOM nodes\n text: function (elem) {\n var node,\n ret = \"\",\n i = 0,\n nodeType = elem.nodeType;\n if (!nodeType) {\n // If no nodeType, this is expected to be an array\n while (node = elem[i++]) {\n // Do not traverse comment nodes\n ret += jQuery.text(node);\n }\n }\n if (nodeType === 1 || nodeType === 11) {\n return elem.textContent;\n }\n if (nodeType === 9) {\n return elem.documentElement.textContent;\n }\n if (nodeType === 3 || nodeType === 4) {\n return elem.nodeValue;\n }\n\n // Do not include comment or processing instruction nodes\n\n return ret;\n },\n // results is for internal usage only\n makeArray: function (arr, results) {\n var ret = results || [];\n if (arr != null) {\n if (isArrayLike(Object(arr))) {\n jQuery.merge(ret, typeof arr === \"string\" ? [arr] : arr);\n } else {\n push.call(ret, arr);\n }\n }\n return ret;\n },\n inArray: function (elem, arr, i) {\n return arr == null ? -1 : indexOf.call(arr, elem, i);\n },\n isXMLDoc: function (elem) {\n var namespace = elem && elem.namespaceURI,\n docElem = elem && (elem.ownerDocument || elem).documentElement;\n\n // Assume HTML when documentElement doesn't yet exist, such as inside\n // document fragments.\n return !rhtmlSuffix.test(namespace || docElem && docElem.nodeName || \"HTML\");\n },\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n merge: function (first, second) {\n var len = +second.length,\n j = 0,\n i = first.length;\n for (; j < len; j++) {\n first[i++] = second[j];\n }\n first.length = i;\n return first;\n },\n grep: function (elems, callback, invert) {\n var callbackInverse,\n matches = [],\n i = 0,\n length = elems.length,\n callbackExpect = !invert;\n\n // Go through the array, only saving the items\n // that pass the validator function\n for (; i < length; i++) {\n callbackInverse = !callback(elems[i], i);\n if (callbackInverse !== callbackExpect) {\n matches.push(elems[i]);\n }\n }\n return matches;\n },\n // arg is for internal usage only\n map: function (elems, callback, arg) {\n var length,\n value,\n i = 0,\n ret = [];\n\n // Go through the array, translating each of the items to their new values\n if (isArrayLike(elems)) {\n length = elems.length;\n for (; i < length; i++) {\n value = callback(elems[i], i, arg);\n if (value != null) {\n ret.push(value);\n }\n }\n\n // Go through every key on the object,\n } else {\n for (i in elems) {\n value = callback(elems[i], i, arg);\n if (value != null) {\n ret.push(value);\n }\n }\n }\n\n // Flatten any nested arrays\n return flat(ret);\n },\n // A global GUID counter for objects\n guid: 1,\n // jQuery.support is not used in Core but other projects attach their\n // properties to it so it needs to exist.\n support: support\n });\n if (typeof Symbol === \"function\") {\n jQuery.fn[Symbol.iterator] = arr[Symbol.iterator];\n }\n\n // Populate the class2type map\n jQuery.each(\"Boolean Number String Function Array Date RegExp Object Error Symbol\".split(\" \"), function (_i, name) {\n class2type[\"[object \" + name + \"]\"] = name.toLowerCase();\n });\n function isArrayLike(obj) {\n // Support: real iOS 8.2 only (not reproducible in simulator)\n // `in` check used to prevent JIT error (gh-2145)\n // hasOwn isn't used here due to false negatives\n // regarding Nodelist length in IE\n var length = !!obj && \"length\" in obj && obj.length,\n type = toType(obj);\n if (isFunction(obj) || isWindow(obj)) {\n return false;\n }\n return type === \"array\" || length === 0 || typeof length === \"number\" && length > 0 && length - 1 in obj;\n }\n return jQuery;\n});","define(function () {\n \"use strict\";\n\n return function isFunction(obj) {\n // Support: Chrome <=57, Firefox <=52\n // In some browsers, typeof returns \"function\" for HTML elements\n // (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n // We don't want to classify *any* DOM node as a function.\n // Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5\n // Plus for old WebKit, typeof returns \"function\" for HTML collections\n // (e.g., `typeof document.getElementsByTagName(\"div\") === \"function\"`). (gh-4756)\n return typeof obj === \"function\" && typeof obj.nodeType !== \"number\" && typeof obj.item !== \"function\";\n };\n});","define(function () {\n \"use strict\";\n\n return window.document;\n});","define([\"./core\", \"./core/nodeName\", \"./var/arr\", \"./var/document\", \"./var/indexOf\", \"./var/hasOwn\", \"./var/pop\", \"./var/push\", \"./var/slice\", \"./var/sort\", \"./var/splice\", \"./var/whitespace\", \"./var/rtrimCSS\", \"./var/support\",\n// The following utils are attached directly to the jQuery object.\n\"./selector/contains\", \"./selector/escapeSelector\"], function (jQuery, nodeName, arr, document, indexOf, hasOwn, pop, push, slice, sort, splice, whitespace, rtrimCSS, support) {\n \"use strict\";\n\n var preferredDoc = document,\n pushNative = push;\n (function () {\n var i,\n Expr,\n outermostContext,\n sortInput,\n hasDuplicate,\n push = pushNative,\n // Local document vars\n document,\n documentElement,\n documentIsHTML,\n rbuggyQSA,\n matches,\n // Instance-specific data\n expando = jQuery.expando,\n dirruns = 0,\n done = 0,\n classCache = createCache(),\n tokenCache = createCache(),\n compilerCache = createCache(),\n nonnativeSelectorCache = createCache(),\n sortOrder = function (a, b) {\n if (a === b) {\n hasDuplicate = true;\n }\n return 0;\n },\n booleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|\" + \"loop|multiple|open|readonly|required|scoped\",\n // Regular expressions\n\n // https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n identifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n // Attribute selectors: https://www.w3.org/TR/selectors/#attribute-selectors\n attributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n // Operator (capture 2)\n \"*([*^$|!~]?=)\" + whitespace +\n // \"Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]\"\n \"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" + whitespace + \"*\\\\]\",\n pseudos = \":(\" + identifier + \")(?:\\\\((\" +\n // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n // 1. quoted (capture 3; capture 4 or capture 5)\n \"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n // 2. simple (capture 6)\n \"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n // 3. anything else (capture 2)\n \".*\" + \")\\\\)|)\",\n // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n rwhitespace = new RegExp(whitespace + \"+\", \"g\"),\n rcomma = new RegExp(\"^\" + whitespace + \"*,\" + whitespace + \"*\"),\n rleadingCombinator = new RegExp(\"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace + \"*\"),\n rdescend = new RegExp(whitespace + \"|>\"),\n rpseudo = new RegExp(pseudos),\n ridentifier = new RegExp(\"^\" + identifier + \"$\"),\n matchExpr = {\n ID: new RegExp(\"^#(\" + identifier + \")\"),\n CLASS: new RegExp(\"^\\\\.(\" + identifier + \")\"),\n TAG: new RegExp(\"^(\" + identifier + \"|[*])\"),\n ATTR: new RegExp(\"^\" + attributes),\n PSEUDO: new RegExp(\"^\" + pseudos),\n CHILD: new RegExp(\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" + whitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" + whitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\"),\n bool: new RegExp(\"^(?:\" + booleans + \")$\", \"i\"),\n // For use in libraries implementing .is()\n // We use this for POS matching in `select`\n needsContext: new RegExp(\"^\" + whitespace + \"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace + \"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\")\n },\n rinputs = /^(?:input|select|textarea|button)$/i,\n rheader = /^h\\d$/i,\n // Easily-parseable/retrievable ID or TAG or CLASS selectors\n rquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n rsibling = /[+~]/,\n // CSS escapes\n // https://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n runescape = new RegExp(\"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\"),\n funescape = function (escape, nonHex) {\n var high = \"0x\" + escape.slice(1) - 0x10000;\n if (nonHex) {\n // Strip the backslash prefix from a non-hex escape sequence\n return nonHex;\n }\n\n // Replace a hexadecimal escape sequence with the encoded Unicode code point\n // Support: IE <=11+\n // For values outside the Basic Multilingual Plane (BMP), manually construct a\n // surrogate pair\n return high < 0 ? String.fromCharCode(high + 0x10000) : String.fromCharCode(high >> 10 | 0xD800, high & 0x3FF | 0xDC00);\n },\n // Used for iframes; see `setDocument`.\n // Support: IE 9 - 11+, Edge 12 - 18+\n // Removing the function wrapper causes a \"Permission Denied\"\n // error in IE/Edge.\n unloadHandler = function () {\n setDocument();\n },\n inDisabledFieldset = addCombinator(function (elem) {\n return elem.disabled === true && nodeName(elem, \"fieldset\");\n }, {\n dir: \"parentNode\",\n next: \"legend\"\n });\n\n // Support: IE <=9 only\n // Accessing document.activeElement can throw unexpectedly\n // https://bugs.jquery.com/ticket/13393\n function safeActiveElement() {\n try {\n return document.activeElement;\n } catch (err) {}\n }\n\n // Optimize for push.apply( _, NodeList )\n try {\n push.apply(arr = slice.call(preferredDoc.childNodes), preferredDoc.childNodes);\n\n // Support: Android <=4.0\n // Detect silently failing push.apply\n // eslint-disable-next-line no-unused-expressions\n arr[preferredDoc.childNodes.length].nodeType;\n } catch (e) {\n push = {\n apply: function (target, els) {\n pushNative.apply(target, slice.call(els));\n },\n call: function (target) {\n pushNative.apply(target, slice.call(arguments, 1));\n }\n };\n }\n function find(selector, context, results, seed) {\n var m,\n i,\n elem,\n nid,\n match,\n groups,\n newSelector,\n newContext = context && context.ownerDocument,\n // nodeType defaults to 9, since context defaults to document\n nodeType = context ? context.nodeType : 9;\n results = results || [];\n\n // Return early from calls with invalid selector or context\n if (typeof selector !== \"string\" || !selector || nodeType !== 1 && nodeType !== 9 && nodeType !== 11) {\n return results;\n }\n\n // Try to shortcut find operations (as opposed to filters) in HTML documents\n if (!seed) {\n setDocument(context);\n context = context || document;\n if (documentIsHTML) {\n // If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n // (excepting DocumentFragment context, where the methods don't exist)\n if (nodeType !== 11 && (match = rquickExpr.exec(selector))) {\n // ID selector\n if (m = match[1]) {\n // Document context\n if (nodeType === 9) {\n if (elem = context.getElementById(m)) {\n // Support: IE 9 only\n // getElementById can match elements by name instead of ID\n if (elem.id === m) {\n push.call(results, elem);\n return results;\n }\n } else {\n return results;\n }\n\n // Element context\n } else {\n // Support: IE 9 only\n // getElementById can match elements by name instead of ID\n if (newContext && (elem = newContext.getElementById(m)) && find.contains(context, elem) && elem.id === m) {\n push.call(results, elem);\n return results;\n }\n }\n\n // Type selector\n } else if (match[2]) {\n push.apply(results, context.getElementsByTagName(selector));\n return results;\n\n // Class selector\n } else if ((m = match[3]) && context.getElementsByClassName) {\n push.apply(results, context.getElementsByClassName(m));\n return results;\n }\n }\n\n // Take advantage of querySelectorAll\n if (!nonnativeSelectorCache[selector + \" \"] && (!rbuggyQSA || !rbuggyQSA.test(selector))) {\n newSelector = selector;\n newContext = context;\n\n // qSA considers elements outside a scoping root when evaluating child or\n // descendant combinators, which is not what we want.\n // In such cases, we work around the behavior by prefixing every selector in the\n // list with an ID selector referencing the scope context.\n // The technique has to be used as well when a leading combinator is used\n // as such selectors are not recognized by querySelectorAll.\n // Thanks to Andrew Dupont for this technique.\n if (nodeType === 1 && (rdescend.test(selector) || rleadingCombinator.test(selector))) {\n // Expand context for sibling selectors\n newContext = rsibling.test(selector) && testContext(context.parentNode) || context;\n\n // We can use :scope instead of the ID hack if the browser\n // supports it & if we're not changing the context.\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when\n // strict-comparing two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if (newContext != context || !support.scope) {\n // Capture the context ID, setting it first if necessary\n if (nid = context.getAttribute(\"id\")) {\n nid = jQuery.escapeSelector(nid);\n } else {\n context.setAttribute(\"id\", nid = expando);\n }\n }\n\n // Prefix every selector in the list\n groups = tokenize(selector);\n i = groups.length;\n while (i--) {\n groups[i] = (nid ? \"#\" + nid : \":scope\") + \" \" + toSelector(groups[i]);\n }\n newSelector = groups.join(\",\");\n }\n try {\n push.apply(results, newContext.querySelectorAll(newSelector));\n return results;\n } catch (qsaError) {\n nonnativeSelectorCache(selector, true);\n } finally {\n if (nid === expando) {\n context.removeAttribute(\"id\");\n }\n }\n }\n }\n }\n\n // All others\n return select(selector.replace(rtrimCSS, \"$1\"), context, results, seed);\n }\n\n /**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\n function createCache() {\n var keys = [];\n function cache(key, value) {\n // Use (key + \" \") to avoid collision with native prototype properties\n // (see https://github.com/jquery/sizzle/issues/157)\n if (keys.push(key + \" \") > Expr.cacheLength) {\n // Only keep the most recent entries\n delete cache[keys.shift()];\n }\n return cache[key + \" \"] = value;\n }\n return cache;\n }\n\n /**\n * Mark a function for special use by jQuery selector module\n * @param {Function} fn The function to mark\n */\n function markFunction(fn) {\n fn[expando] = true;\n return fn;\n }\n\n /**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\n function assert(fn) {\n var el = document.createElement(\"fieldset\");\n try {\n return !!fn(el);\n } catch (e) {\n return false;\n } finally {\n // Remove from its parent by default\n if (el.parentNode) {\n el.parentNode.removeChild(el);\n }\n\n // release memory in IE\n el = null;\n }\n }\n\n /**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\n function createInputPseudo(type) {\n return function (elem) {\n return nodeName(elem, \"input\") && elem.type === type;\n };\n }\n\n /**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\n function createButtonPseudo(type) {\n return function (elem) {\n return (nodeName(elem, \"input\") || nodeName(elem, \"button\")) && elem.type === type;\n };\n }\n\n /**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\n function createDisabledPseudo(disabled) {\n // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n return function (elem) {\n // Only certain elements can match :enabled or :disabled\n // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n if (\"form\" in elem) {\n // Check for inherited disabledness on relevant non-disabled elements:\n // * listed form-associated elements in a disabled fieldset\n // https://html.spec.whatwg.org/multipage/forms.html#category-listed\n // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n // * option elements in a disabled optgroup\n // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n // All such elements have a \"form\" property.\n if (elem.parentNode && elem.disabled === false) {\n // Option elements defer to a parent optgroup if present\n if (\"label\" in elem) {\n if (\"label\" in elem.parentNode) {\n return elem.parentNode.disabled === disabled;\n } else {\n return elem.disabled === disabled;\n }\n }\n\n // Support: IE 6 - 11+\n // Use the isDisabled shortcut property to check for disabled fieldset ancestors\n return elem.isDisabled === disabled ||\n // Where there is no isDisabled, check manually\n elem.isDisabled !== !disabled && inDisabledFieldset(elem) === disabled;\n }\n return elem.disabled === disabled;\n\n // Try to winnow out elements that can't be disabled before trusting the disabled property.\n // Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n // even exist on them, let alone have a boolean value.\n } else if (\"label\" in elem) {\n return elem.disabled === disabled;\n }\n\n // Remaining elements are neither :enabled nor :disabled\n return false;\n };\n }\n\n /**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\n function createPositionalPseudo(fn) {\n return markFunction(function (argument) {\n argument = +argument;\n return markFunction(function (seed, matches) {\n var j,\n matchIndexes = fn([], seed.length, argument),\n i = matchIndexes.length;\n\n // Match elements found at the specified indexes\n while (i--) {\n if (seed[j = matchIndexes[i]]) {\n seed[j] = !(matches[j] = seed[j]);\n }\n }\n });\n });\n }\n\n /**\n * Checks a node for validity as a jQuery selector context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\n function testContext(context) {\n return context && typeof context.getElementsByTagName !== \"undefined\" && context;\n }\n\n /**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [node] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\n function setDocument(node) {\n var subWindow,\n doc = node ? node.ownerDocument || node : preferredDoc;\n\n // Return early if doc is invalid or already selected\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if (doc == document || doc.nodeType !== 9 || !doc.documentElement) {\n return document;\n }\n\n // Update global variables\n document = doc;\n documentElement = document.documentElement;\n documentIsHTML = !jQuery.isXMLDoc(document);\n\n // Support: iOS 7 only, IE 9 - 11+\n // Older browsers didn't support unprefixed `matches`.\n matches = documentElement.matches || documentElement.webkitMatchesSelector || documentElement.msMatchesSelector;\n\n // Support: IE 9 - 11+, Edge 12 - 18+\n // Accessing iframe documents after unload throws \"permission denied\" errors\n // (see trac-13936).\n // Limit the fix to IE & Edge Legacy; despite Edge 15+ implementing `matches`,\n // all IE 9+ and Edge Legacy versions implement `msMatchesSelector` as well.\n if (documentElement.msMatchesSelector &&\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n preferredDoc != document && (subWindow = document.defaultView) && subWindow.top !== subWindow) {\n // Support: IE 9 - 11+, Edge 12 - 18+\n subWindow.addEventListener(\"unload\", unloadHandler);\n }\n\n // Support: IE <10\n // Check if getElementById returns elements by name\n // The broken getElementById methods don't pick up programmatically-set names,\n // so use a roundabout getElementsByName test\n support.getById = assert(function (el) {\n documentElement.appendChild(el).id = jQuery.expando;\n return !document.getElementsByName || !document.getElementsByName(jQuery.expando).length;\n });\n\n // Support: IE 9 only\n // Check to see if it's possible to do matchesSelector\n // on a disconnected node.\n support.disconnectedMatch = assert(function (el) {\n return matches.call(el, \"*\");\n });\n\n // Support: IE 9 - 11+, Edge 12 - 18+\n // IE/Edge don't support the :scope pseudo-class.\n support.scope = assert(function () {\n return document.querySelectorAll(\":scope\");\n });\n\n // Support: Chrome 105 - 111 only, Safari 15.4 - 16.3 only\n // Make sure the `:has()` argument is parsed unforgivingly.\n // We include `*` in the test to detect buggy implementations that are\n // _selectively_ forgiving (specifically when the list includes at least\n // one valid selector).\n // Note that we treat complete lack of support for `:has()` as if it were\n // spec-compliant support, which is fine because use of `:has()` in such\n // environments will fail in the qSA path and fall back to jQuery traversal\n // anyway.\n support.cssHas = assert(function () {\n try {\n document.querySelector(\":has(*,:jqfake)\");\n return false;\n } catch (e) {\n return true;\n }\n });\n\n // ID filter and find\n if (support.getById) {\n Expr.filter.ID = function (id) {\n var attrId = id.replace(runescape, funescape);\n return function (elem) {\n return elem.getAttribute(\"id\") === attrId;\n };\n };\n Expr.find.ID = function (id, context) {\n if (typeof context.getElementById !== \"undefined\" && documentIsHTML) {\n var elem = context.getElementById(id);\n return elem ? [elem] : [];\n }\n };\n } else {\n Expr.filter.ID = function (id) {\n var attrId = id.replace(runescape, funescape);\n return function (elem) {\n var node = typeof elem.getAttributeNode !== \"undefined\" && elem.getAttributeNode(\"id\");\n return node && node.value === attrId;\n };\n };\n\n // Support: IE 6 - 7 only\n // getElementById is not reliable as a find shortcut\n Expr.find.ID = function (id, context) {\n if (typeof context.getElementById !== \"undefined\" && documentIsHTML) {\n var node,\n i,\n elems,\n elem = context.getElementById(id);\n if (elem) {\n // Verify the id attribute\n node = elem.getAttributeNode(\"id\");\n if (node && node.value === id) {\n return [elem];\n }\n\n // Fall back on getElementsByName\n elems = context.getElementsByName(id);\n i = 0;\n while (elem = elems[i++]) {\n node = elem.getAttributeNode(\"id\");\n if (node && node.value === id) {\n return [elem];\n }\n }\n }\n return [];\n }\n };\n }\n\n // Tag\n Expr.find.TAG = function (tag, context) {\n if (typeof context.getElementsByTagName !== \"undefined\") {\n return context.getElementsByTagName(tag);\n\n // DocumentFragment nodes don't have gEBTN\n } else {\n return context.querySelectorAll(tag);\n }\n };\n\n // Class\n Expr.find.CLASS = function (className, context) {\n if (typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML) {\n return context.getElementsByClassName(className);\n }\n };\n\n /* QSA/matchesSelector\n ---------------------------------------------------------------------- */\n\n // QSA and matchesSelector support\n\n rbuggyQSA = [];\n\n // Build QSA regex\n // Regex strategy adopted from Diego Perini\n assert(function (el) {\n var input;\n documentElement.appendChild(el).innerHTML = \"\" + \"\";\n\n // Support: iOS <=7 - 8 only\n // Boolean attributes and \"value\" are not treated correctly in some XML documents\n if (!el.querySelectorAll(\"[selected]\").length) {\n rbuggyQSA.push(\"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\");\n }\n\n // Support: iOS <=7 - 8 only\n if (!el.querySelectorAll(\"[id~=\" + expando + \"-]\").length) {\n rbuggyQSA.push(\"~=\");\n }\n\n // Support: iOS 8 only\n // https://bugs.webkit.org/show_bug.cgi?id=136851\n // In-page `selector#id sibling-combinator selector` fails\n if (!el.querySelectorAll(\"a#\" + expando + \"+*\").length) {\n rbuggyQSA.push(\".#.+[+~]\");\n }\n\n // Support: Chrome <=105+, Firefox <=104+, Safari <=15.4+\n // In some of the document kinds, these selectors wouldn't work natively.\n // This is probably OK but for backwards compatibility we want to maintain\n // handling them through jQuery traversal in jQuery 3.x.\n if (!el.querySelectorAll(\":checked\").length) {\n rbuggyQSA.push(\":checked\");\n }\n\n // Support: Windows 8 Native Apps\n // The type and name attributes are restricted during .innerHTML assignment\n input = document.createElement(\"input\");\n input.setAttribute(\"type\", \"hidden\");\n el.appendChild(input).setAttribute(\"name\", \"D\");\n\n // Support: IE 9 - 11+\n // IE's :disabled selector does not pick up the children of disabled fieldsets\n // Support: Chrome <=105+, Firefox <=104+, Safari <=15.4+\n // In some of the document kinds, these selectors wouldn't work natively.\n // This is probably OK but for backwards compatibility we want to maintain\n // handling them through jQuery traversal in jQuery 3.x.\n documentElement.appendChild(el).disabled = true;\n if (el.querySelectorAll(\":disabled\").length !== 2) {\n rbuggyQSA.push(\":enabled\", \":disabled\");\n }\n\n // Support: IE 11+, Edge 15 - 18+\n // IE 11/Edge don't find elements on a `[name='']` query in some cases.\n // Adding a temporary attribute to the document before the selection works\n // around the issue.\n // Interestingly, IE 10 & older don't seem to have the issue.\n input = document.createElement(\"input\");\n input.setAttribute(\"name\", \"\");\n el.appendChild(input);\n if (!el.querySelectorAll(\"[name='']\").length) {\n rbuggyQSA.push(\"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" + whitespace + \"*(?:''|\\\"\\\")\");\n }\n });\n if (!support.cssHas) {\n // Support: Chrome 105 - 110+, Safari 15.4 - 16.3+\n // Our regular `try-catch` mechanism fails to detect natively-unsupported\n // pseudo-classes inside `:has()` (such as `:has(:contains(\"Foo\"))`)\n // in browsers that parse the `:has()` argument as a forgiving selector list.\n // https://drafts.csswg.org/selectors/#relational now requires the argument\n // to be parsed unforgivingly, but browsers have not yet fully adjusted.\n rbuggyQSA.push(\":has\");\n }\n rbuggyQSA = rbuggyQSA.length && new RegExp(rbuggyQSA.join(\"|\"));\n\n /* Sorting\n ---------------------------------------------------------------------- */\n\n // Document order sorting\n sortOrder = function (a, b) {\n // Flag for duplicate removal\n if (a === b) {\n hasDuplicate = true;\n return 0;\n }\n\n // Sort on method existence if only one input has compareDocumentPosition\n var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n if (compare) {\n return compare;\n }\n\n // Calculate position if both inputs belong to the same document\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n compare = (a.ownerDocument || a) == (b.ownerDocument || b) ? a.compareDocumentPosition(b) :\n // Otherwise we know they are disconnected\n 1;\n\n // Disconnected nodes\n if (compare & 1 || !support.sortDetached && b.compareDocumentPosition(a) === compare) {\n // Choose the first element that is related to our preferred document\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if (a === document || a.ownerDocument == preferredDoc && find.contains(preferredDoc, a)) {\n return -1;\n }\n\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if (b === document || b.ownerDocument == preferredDoc && find.contains(preferredDoc, b)) {\n return 1;\n }\n\n // Maintain original order\n return sortInput ? indexOf.call(sortInput, a) - indexOf.call(sortInput, b) : 0;\n }\n return compare & 4 ? -1 : 1;\n };\n return document;\n }\n find.matches = function (expr, elements) {\n return find(expr, null, null, elements);\n };\n find.matchesSelector = function (elem, expr) {\n setDocument(elem);\n if (documentIsHTML && !nonnativeSelectorCache[expr + \" \"] && (!rbuggyQSA || !rbuggyQSA.test(expr))) {\n try {\n var ret = matches.call(elem, expr);\n\n // IE 9's matchesSelector returns false on disconnected nodes\n if (ret || support.disconnectedMatch ||\n // As well, disconnected nodes are said to be in a document\n // fragment in IE 9\n elem.document && elem.document.nodeType !== 11) {\n return ret;\n }\n } catch (e) {\n nonnativeSelectorCache(expr, true);\n }\n }\n return find(expr, document, null, [elem]).length > 0;\n };\n find.contains = function (context, elem) {\n // Set document vars if needed\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if ((context.ownerDocument || context) != document) {\n setDocument(context);\n }\n return jQuery.contains(context, elem);\n };\n find.attr = function (elem, name) {\n // Set document vars if needed\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if ((elem.ownerDocument || elem) != document) {\n setDocument(elem);\n }\n var fn = Expr.attrHandle[name.toLowerCase()],\n // Don't get fooled by Object.prototype properties (see trac-13807)\n val = fn && hasOwn.call(Expr.attrHandle, name.toLowerCase()) ? fn(elem, name, !documentIsHTML) : undefined;\n if (val !== undefined) {\n return val;\n }\n return elem.getAttribute(name);\n };\n find.error = function (msg) {\n throw new Error(\"Syntax error, unrecognized expression: \" + msg);\n };\n\n /**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\n jQuery.uniqueSort = function (results) {\n var elem,\n duplicates = [],\n j = 0,\n i = 0;\n\n // Unless we *know* we can detect duplicates, assume their presence\n //\n // Support: Android <=4.0+\n // Testing for detecting duplicates is unpredictable so instead assume we can't\n // depend on duplicate detection in all browsers without a stable sort.\n hasDuplicate = !support.sortStable;\n sortInput = !support.sortStable && slice.call(results, 0);\n sort.call(results, sortOrder);\n if (hasDuplicate) {\n while (elem = results[i++]) {\n if (elem === results[i]) {\n j = duplicates.push(i);\n }\n }\n while (j--) {\n splice.call(results, duplicates[j], 1);\n }\n }\n\n // Clear input after sorting to release objects\n // See https://github.com/jquery/sizzle/pull/225\n sortInput = null;\n return results;\n };\n jQuery.fn.uniqueSort = function () {\n return this.pushStack(jQuery.uniqueSort(slice.apply(this)));\n };\n Expr = jQuery.expr = {\n // Can be adjusted by the user\n cacheLength: 50,\n createPseudo: markFunction,\n match: matchExpr,\n attrHandle: {},\n find: {},\n relative: {\n \">\": {\n dir: \"parentNode\",\n first: true\n },\n \" \": {\n dir: \"parentNode\"\n },\n \"+\": {\n dir: \"previousSibling\",\n first: true\n },\n \"~\": {\n dir: \"previousSibling\"\n }\n },\n preFilter: {\n ATTR: function (match) {\n match[1] = match[1].replace(runescape, funescape);\n\n // Move the given value to match[3] whether quoted or unquoted\n match[3] = (match[3] || match[4] || match[5] || \"\").replace(runescape, funescape);\n if (match[2] === \"~=\") {\n match[3] = \" \" + match[3] + \" \";\n }\n return match.slice(0, 4);\n },\n CHILD: function (match) {\n /* matches from matchExpr[\"CHILD\"]\n \t1 type (only|nth|...)\n \t2 what (child|of-type)\n \t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n \t4 xn-component of xn+y argument ([+-]?\\d*n|)\n \t5 sign of xn-component\n \t6 x of xn-component\n \t7 sign of y-component\n \t8 y of y-component\n */\n match[1] = match[1].toLowerCase();\n if (match[1].slice(0, 3) === \"nth\") {\n // nth-* requires argument\n if (!match[3]) {\n find.error(match[0]);\n }\n\n // numeric x and y parameters for Expr.filter.CHILD\n // remember that false/true cast respectively to 0/1\n match[4] = +(match[4] ? match[5] + (match[6] || 1) : 2 * (match[3] === \"even\" || match[3] === \"odd\"));\n match[5] = +(match[7] + match[8] || match[3] === \"odd\");\n\n // other types prohibit arguments\n } else if (match[3]) {\n find.error(match[0]);\n }\n return match;\n },\n PSEUDO: function (match) {\n var excess,\n unquoted = !match[6] && match[2];\n if (matchExpr.CHILD.test(match[0])) {\n return null;\n }\n\n // Accept quoted arguments as-is\n if (match[3]) {\n match[2] = match[4] || match[5] || \"\";\n\n // Strip excess characters from unquoted arguments\n } else if (unquoted && rpseudo.test(unquoted) && (\n // Get excess from tokenize (recursively)\n excess = tokenize(unquoted, true)) && (\n // advance to the next closing parenthesis\n excess = unquoted.indexOf(\")\", unquoted.length - excess) - unquoted.length)) {\n // excess is a negative index\n match[0] = match[0].slice(0, excess);\n match[2] = unquoted.slice(0, excess);\n }\n\n // Return only captures needed by the pseudo filter method (type and argument)\n return match.slice(0, 3);\n }\n },\n filter: {\n TAG: function (nodeNameSelector) {\n var expectedNodeName = nodeNameSelector.replace(runescape, funescape).toLowerCase();\n return nodeNameSelector === \"*\" ? function () {\n return true;\n } : function (elem) {\n return nodeName(elem, expectedNodeName);\n };\n },\n CLASS: function (className) {\n var pattern = classCache[className + \" \"];\n return pattern || (pattern = new RegExp(\"(^|\" + whitespace + \")\" + className + \"(\" + whitespace + \"|$)\")) && classCache(className, function (elem) {\n return pattern.test(typeof elem.className === \"string\" && elem.className || typeof elem.getAttribute !== \"undefined\" && elem.getAttribute(\"class\") || \"\");\n });\n },\n ATTR: function (name, operator, check) {\n return function (elem) {\n var result = find.attr(elem, name);\n if (result == null) {\n return operator === \"!=\";\n }\n if (!operator) {\n return true;\n }\n result += \"\";\n if (operator === \"=\") {\n return result === check;\n }\n if (operator === \"!=\") {\n return result !== check;\n }\n if (operator === \"^=\") {\n return check && result.indexOf(check) === 0;\n }\n if (operator === \"*=\") {\n return check && result.indexOf(check) > -1;\n }\n if (operator === \"$=\") {\n return check && result.slice(-check.length) === check;\n }\n if (operator === \"~=\") {\n return (\" \" + result.replace(rwhitespace, \" \") + \" \").indexOf(check) > -1;\n }\n if (operator === \"|=\") {\n return result === check || result.slice(0, check.length + 1) === check + \"-\";\n }\n return false;\n };\n },\n CHILD: function (type, what, _argument, first, last) {\n var simple = type.slice(0, 3) !== \"nth\",\n forward = type.slice(-4) !== \"last\",\n ofType = what === \"of-type\";\n return first === 1 && last === 0 ?\n // Shortcut for :nth-*(n)\n function (elem) {\n return !!elem.parentNode;\n } : function (elem, _context, xml) {\n var cache,\n outerCache,\n node,\n nodeIndex,\n start,\n dir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n parent = elem.parentNode,\n name = ofType && elem.nodeName.toLowerCase(),\n useCache = !xml && !ofType,\n diff = false;\n if (parent) {\n // :(first|last|only)-(child|of-type)\n if (simple) {\n while (dir) {\n node = elem;\n while (node = node[dir]) {\n if (ofType ? nodeName(node, name) : node.nodeType === 1) {\n return false;\n }\n }\n\n // Reverse direction for :only-* (if we haven't yet done so)\n start = dir = type === \"only\" && !start && \"nextSibling\";\n }\n return true;\n }\n start = [forward ? parent.firstChild : parent.lastChild];\n\n // non-xml :nth-child(...) stores cache data on `parent`\n if (forward && useCache) {\n // Seek `elem` from a previously-cached index\n outerCache = parent[expando] || (parent[expando] = {});\n cache = outerCache[type] || [];\n nodeIndex = cache[0] === dirruns && cache[1];\n diff = nodeIndex && cache[2];\n node = nodeIndex && parent.childNodes[nodeIndex];\n while (node = ++nodeIndex && node && node[dir] || (\n // Fallback to seeking `elem` from the start\n diff = nodeIndex = 0) || start.pop()) {\n // When found, cache indexes on `parent` and break\n if (node.nodeType === 1 && ++diff && node === elem) {\n outerCache[type] = [dirruns, nodeIndex, diff];\n break;\n }\n }\n } else {\n // Use previously-cached element index if available\n if (useCache) {\n outerCache = elem[expando] || (elem[expando] = {});\n cache = outerCache[type] || [];\n nodeIndex = cache[0] === dirruns && cache[1];\n diff = nodeIndex;\n }\n\n // xml :nth-child(...)\n // or :nth-last-child(...) or :nth(-last)?-of-type(...)\n if (diff === false) {\n // Use the same loop as above to seek `elem` from the start\n while (node = ++nodeIndex && node && node[dir] || (diff = nodeIndex = 0) || start.pop()) {\n if ((ofType ? nodeName(node, name) : node.nodeType === 1) && ++diff) {\n // Cache the index of each encountered element\n if (useCache) {\n outerCache = node[expando] || (node[expando] = {});\n outerCache[type] = [dirruns, diff];\n }\n if (node === elem) {\n break;\n }\n }\n }\n }\n }\n\n // Incorporate the offset, then check against cycle size\n diff -= last;\n return diff === first || diff % first === 0 && diff / first >= 0;\n }\n };\n },\n PSEUDO: function (pseudo, argument) {\n // pseudo-class names are case-insensitive\n // https://www.w3.org/TR/selectors/#pseudo-classes\n // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n // Remember that setFilters inherits from pseudos\n var args,\n fn = Expr.pseudos[pseudo] || Expr.setFilters[pseudo.toLowerCase()] || find.error(\"unsupported pseudo: \" + pseudo);\n\n // The user may use createPseudo to indicate that\n // arguments are needed to create the filter function\n // just as jQuery does\n if (fn[expando]) {\n return fn(argument);\n }\n\n // But maintain support for old signatures\n if (fn.length > 1) {\n args = [pseudo, pseudo, \"\", argument];\n return Expr.setFilters.hasOwnProperty(pseudo.toLowerCase()) ? markFunction(function (seed, matches) {\n var idx,\n matched = fn(seed, argument),\n i = matched.length;\n while (i--) {\n idx = indexOf.call(seed, matched[i]);\n seed[idx] = !(matches[idx] = matched[i]);\n }\n }) : function (elem) {\n return fn(elem, 0, args);\n };\n }\n return fn;\n }\n },\n pseudos: {\n // Potentially complex pseudos\n not: markFunction(function (selector) {\n // Trim the selector passed to compile\n // to avoid treating leading and trailing\n // spaces as combinators\n var input = [],\n results = [],\n matcher = compile(selector.replace(rtrimCSS, \"$1\"));\n return matcher[expando] ? markFunction(function (seed, matches, _context, xml) {\n var elem,\n unmatched = matcher(seed, null, xml, []),\n i = seed.length;\n\n // Match elements unmatched by `matcher`\n while (i--) {\n if (elem = unmatched[i]) {\n seed[i] = !(matches[i] = elem);\n }\n }\n }) : function (elem, _context, xml) {\n input[0] = elem;\n matcher(input, null, xml, results);\n\n // Don't keep the element\n // (see https://github.com/jquery/sizzle/issues/299)\n input[0] = null;\n return !results.pop();\n };\n }),\n has: markFunction(function (selector) {\n return function (elem) {\n return find(selector, elem).length > 0;\n };\n }),\n contains: markFunction(function (text) {\n text = text.replace(runescape, funescape);\n return function (elem) {\n return (elem.textContent || jQuery.text(elem)).indexOf(text) > -1;\n };\n }),\n // \"Whether an element is represented by a :lang() selector\n // is based solely on the element's language value\n // being equal to the identifier C,\n // or beginning with the identifier C immediately followed by \"-\".\n // The matching of C against the element's language value is performed case-insensitively.\n // The identifier C does not have to be a valid language name.\"\n // https://www.w3.org/TR/selectors/#lang-pseudo\n lang: markFunction(function (lang) {\n // lang value must be a valid identifier\n if (!ridentifier.test(lang || \"\")) {\n find.error(\"unsupported lang: \" + lang);\n }\n lang = lang.replace(runescape, funescape).toLowerCase();\n return function (elem) {\n var elemLang;\n do {\n if (elemLang = documentIsHTML ? elem.lang : elem.getAttribute(\"xml:lang\") || elem.getAttribute(\"lang\")) {\n elemLang = elemLang.toLowerCase();\n return elemLang === lang || elemLang.indexOf(lang + \"-\") === 0;\n }\n } while ((elem = elem.parentNode) && elem.nodeType === 1);\n return false;\n };\n }),\n // Miscellaneous\n target: function (elem) {\n var hash = window.location && window.location.hash;\n return hash && hash.slice(1) === elem.id;\n },\n root: function (elem) {\n return elem === documentElement;\n },\n focus: function (elem) {\n return elem === safeActiveElement() && document.hasFocus() && !!(elem.type || elem.href || ~elem.tabIndex);\n },\n // Boolean properties\n enabled: createDisabledPseudo(false),\n disabled: createDisabledPseudo(true),\n checked: function (elem) {\n // In CSS3, :checked should return both checked and selected elements\n // https://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n return nodeName(elem, \"input\") && !!elem.checked || nodeName(elem, \"option\") && !!elem.selected;\n },\n selected: function (elem) {\n // Support: IE <=11+\n // Accessing the selectedIndex property\n // forces the browser to treat the default option as\n // selected when in an optgroup.\n if (elem.parentNode) {\n // eslint-disable-next-line no-unused-expressions\n elem.parentNode.selectedIndex;\n }\n return elem.selected === true;\n },\n // Contents\n empty: function (elem) {\n // https://www.w3.org/TR/selectors/#empty-pseudo\n // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n // but not by others (comment: 8; processing instruction: 7; etc.)\n // nodeType < 6 works because attributes (2) do not appear as children\n for (elem = elem.firstChild; elem; elem = elem.nextSibling) {\n if (elem.nodeType < 6) {\n return false;\n }\n }\n return true;\n },\n parent: function (elem) {\n return !Expr.pseudos.empty(elem);\n },\n // Element/input types\n header: function (elem) {\n return rheader.test(elem.nodeName);\n },\n input: function (elem) {\n return rinputs.test(elem.nodeName);\n },\n button: function (elem) {\n return nodeName(elem, \"input\") && elem.type === \"button\" || nodeName(elem, \"button\");\n },\n text: function (elem) {\n var attr;\n return nodeName(elem, \"input\") && elem.type === \"text\" && (\n // Support: IE <10 only\n // New HTML5 attribute values (e.g., \"search\") appear\n // with elem.type === \"text\"\n (attr = elem.getAttribute(\"type\")) == null || attr.toLowerCase() === \"text\");\n },\n // Position-in-collection\n first: createPositionalPseudo(function () {\n return [0];\n }),\n last: createPositionalPseudo(function (_matchIndexes, length) {\n return [length - 1];\n }),\n eq: createPositionalPseudo(function (_matchIndexes, length, argument) {\n return [argument < 0 ? argument + length : argument];\n }),\n even: createPositionalPseudo(function (matchIndexes, length) {\n var i = 0;\n for (; i < length; i += 2) {\n matchIndexes.push(i);\n }\n return matchIndexes;\n }),\n odd: createPositionalPseudo(function (matchIndexes, length) {\n var i = 1;\n for (; i < length; i += 2) {\n matchIndexes.push(i);\n }\n return matchIndexes;\n }),\n lt: createPositionalPseudo(function (matchIndexes, length, argument) {\n var i;\n if (argument < 0) {\n i = argument + length;\n } else if (argument > length) {\n i = length;\n } else {\n i = argument;\n }\n for (; --i >= 0;) {\n matchIndexes.push(i);\n }\n return matchIndexes;\n }),\n gt: createPositionalPseudo(function (matchIndexes, length, argument) {\n var i = argument < 0 ? argument + length : argument;\n for (; ++i < length;) {\n matchIndexes.push(i);\n }\n return matchIndexes;\n })\n }\n };\n Expr.pseudos.nth = Expr.pseudos.eq;\n\n // Add button/input type pseudos\n for (i in {\n radio: true,\n checkbox: true,\n file: true,\n password: true,\n image: true\n }) {\n Expr.pseudos[i] = createInputPseudo(i);\n }\n for (i in {\n submit: true,\n reset: true\n }) {\n Expr.pseudos[i] = createButtonPseudo(i);\n }\n\n // Easy API for creating new setFilters\n function setFilters() {}\n setFilters.prototype = Expr.filters = Expr.pseudos;\n Expr.setFilters = new setFilters();\n function tokenize(selector, parseOnly) {\n var matched,\n match,\n tokens,\n type,\n soFar,\n groups,\n preFilters,\n cached = tokenCache[selector + \" \"];\n if (cached) {\n return parseOnly ? 0 : cached.slice(0);\n }\n soFar = selector;\n groups = [];\n preFilters = Expr.preFilter;\n while (soFar) {\n // Comma and first run\n if (!matched || (match = rcomma.exec(soFar))) {\n if (match) {\n // Don't consume trailing commas as valid\n soFar = soFar.slice(match[0].length) || soFar;\n }\n groups.push(tokens = []);\n }\n matched = false;\n\n // Combinators\n if (match = rleadingCombinator.exec(soFar)) {\n matched = match.shift();\n tokens.push({\n value: matched,\n // Cast descendant combinators to space\n type: match[0].replace(rtrimCSS, \" \")\n });\n soFar = soFar.slice(matched.length);\n }\n\n // Filters\n for (type in Expr.filter) {\n if ((match = matchExpr[type].exec(soFar)) && (!preFilters[type] || (match = preFilters[type](match)))) {\n matched = match.shift();\n tokens.push({\n value: matched,\n type: type,\n matches: match\n });\n soFar = soFar.slice(matched.length);\n }\n }\n if (!matched) {\n break;\n }\n }\n\n // Return the length of the invalid excess\n // if we're just parsing\n // Otherwise, throw an error or return tokens\n if (parseOnly) {\n return soFar.length;\n }\n return soFar ? find.error(selector) :\n // Cache the tokens\n tokenCache(selector, groups).slice(0);\n }\n function toSelector(tokens) {\n var i = 0,\n len = tokens.length,\n selector = \"\";\n for (; i < len; i++) {\n selector += tokens[i].value;\n }\n return selector;\n }\n function addCombinator(matcher, combinator, base) {\n var dir = combinator.dir,\n skip = combinator.next,\n key = skip || dir,\n checkNonElements = base && key === \"parentNode\",\n doneName = done++;\n return combinator.first ?\n // Check against closest ancestor/preceding element\n function (elem, context, xml) {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n return matcher(elem, context, xml);\n }\n }\n return false;\n } :\n // Check against all ancestor/preceding elements\n function (elem, context, xml) {\n var oldCache,\n outerCache,\n newCache = [dirruns, doneName];\n\n // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n if (xml) {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n if (matcher(elem, context, xml)) {\n return true;\n }\n }\n }\n } else {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n outerCache = elem[expando] || (elem[expando] = {});\n if (skip && nodeName(elem, skip)) {\n elem = elem[dir] || elem;\n } else if ((oldCache = outerCache[key]) && oldCache[0] === dirruns && oldCache[1] === doneName) {\n // Assign to newCache so results back-propagate to previous elements\n return newCache[2] = oldCache[2];\n } else {\n // Reuse newcache so results back-propagate to previous elements\n outerCache[key] = newCache;\n\n // A match means we're done; a fail means we have to keep checking\n if (newCache[2] = matcher(elem, context, xml)) {\n return true;\n }\n }\n }\n }\n }\n return false;\n };\n }\n function elementMatcher(matchers) {\n return matchers.length > 1 ? function (elem, context, xml) {\n var i = matchers.length;\n while (i--) {\n if (!matchers[i](elem, context, xml)) {\n return false;\n }\n }\n return true;\n } : matchers[0];\n }\n function multipleContexts(selector, contexts, results) {\n var i = 0,\n len = contexts.length;\n for (; i < len; i++) {\n find(selector, contexts[i], results);\n }\n return results;\n }\n function condense(unmatched, map, filter, context, xml) {\n var elem,\n newUnmatched = [],\n i = 0,\n len = unmatched.length,\n mapped = map != null;\n for (; i < len; i++) {\n if (elem = unmatched[i]) {\n if (!filter || filter(elem, context, xml)) {\n newUnmatched.push(elem);\n if (mapped) {\n map.push(i);\n }\n }\n }\n }\n return newUnmatched;\n }\n function setMatcher(preFilter, selector, matcher, postFilter, postFinder, postSelector) {\n if (postFilter && !postFilter[expando]) {\n postFilter = setMatcher(postFilter);\n }\n if (postFinder && !postFinder[expando]) {\n postFinder = setMatcher(postFinder, postSelector);\n }\n return markFunction(function (seed, results, context, xml) {\n var temp,\n i,\n elem,\n matcherOut,\n preMap = [],\n postMap = [],\n preexisting = results.length,\n // Get initial elements from seed or context\n elems = seed || multipleContexts(selector || \"*\", context.nodeType ? [context] : context, []),\n // Prefilter to get matcher input, preserving a map for seed-results synchronization\n matcherIn = preFilter && (seed || !selector) ? condense(elems, preMap, preFilter, context, xml) : elems;\n if (matcher) {\n // If we have a postFinder, or filtered seed, or non-seed postFilter\n // or preexisting results,\n matcherOut = postFinder || (seed ? preFilter : preexisting || postFilter) ?\n // ...intermediate processing is necessary\n [] :\n // ...otherwise use results directly\n results;\n\n // Find primary matches\n matcher(matcherIn, matcherOut, context, xml);\n } else {\n matcherOut = matcherIn;\n }\n\n // Apply postFilter\n if (postFilter) {\n temp = condense(matcherOut, postMap);\n postFilter(temp, [], context, xml);\n\n // Un-match failing elements by moving them back to matcherIn\n i = temp.length;\n while (i--) {\n if (elem = temp[i]) {\n matcherOut[postMap[i]] = !(matcherIn[postMap[i]] = elem);\n }\n }\n }\n if (seed) {\n if (postFinder || preFilter) {\n if (postFinder) {\n // Get the final matcherOut by condensing this intermediate into postFinder contexts\n temp = [];\n i = matcherOut.length;\n while (i--) {\n if (elem = matcherOut[i]) {\n // Restore matcherIn since elem is not yet a final match\n temp.push(matcherIn[i] = elem);\n }\n }\n postFinder(null, matcherOut = [], temp, xml);\n }\n\n // Move matched elements from seed to results to keep them synchronized\n i = matcherOut.length;\n while (i--) {\n if ((elem = matcherOut[i]) && (temp = postFinder ? indexOf.call(seed, elem) : preMap[i]) > -1) {\n seed[temp] = !(results[temp] = elem);\n }\n }\n }\n\n // Add elements to results, through postFinder if defined\n } else {\n matcherOut = condense(matcherOut === results ? matcherOut.splice(preexisting, matcherOut.length) : matcherOut);\n if (postFinder) {\n postFinder(null, results, matcherOut, xml);\n } else {\n push.apply(results, matcherOut);\n }\n }\n });\n }\n function matcherFromTokens(tokens) {\n var checkContext,\n matcher,\n j,\n len = tokens.length,\n leadingRelative = Expr.relative[tokens[0].type],\n implicitRelative = leadingRelative || Expr.relative[\" \"],\n i = leadingRelative ? 1 : 0,\n // The foundational matcher ensures that elements are reachable from top-level context(s)\n matchContext = addCombinator(function (elem) {\n return elem === checkContext;\n }, implicitRelative, true),\n matchAnyContext = addCombinator(function (elem) {\n return indexOf.call(checkContext, elem) > -1;\n }, implicitRelative, true),\n matchers = [function (elem, context, xml) {\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n var ret = !leadingRelative && (xml || context != outermostContext) || ((checkContext = context).nodeType ? matchContext(elem, context, xml) : matchAnyContext(elem, context, xml));\n\n // Avoid hanging onto element\n // (see https://github.com/jquery/sizzle/issues/299)\n checkContext = null;\n return ret;\n }];\n for (; i < len; i++) {\n if (matcher = Expr.relative[tokens[i].type]) {\n matchers = [addCombinator(elementMatcher(matchers), matcher)];\n } else {\n matcher = Expr.filter[tokens[i].type].apply(null, tokens[i].matches);\n\n // Return special upon seeing a positional matcher\n if (matcher[expando]) {\n // Find the next relative operator (if any) for proper handling\n j = ++i;\n for (; j < len; j++) {\n if (Expr.relative[tokens[j].type]) {\n break;\n }\n }\n return setMatcher(i > 1 && elementMatcher(matchers), i > 1 && toSelector(\n // If the preceding token was a descendant combinator, insert an implicit any-element `*`\n tokens.slice(0, i - 1).concat({\n value: tokens[i - 2].type === \" \" ? \"*\" : \"\"\n })).replace(rtrimCSS, \"$1\"), matcher, i < j && matcherFromTokens(tokens.slice(i, j)), j < len && matcherFromTokens(tokens = tokens.slice(j)), j < len && toSelector(tokens));\n }\n matchers.push(matcher);\n }\n }\n return elementMatcher(matchers);\n }\n function matcherFromGroupMatchers(elementMatchers, setMatchers) {\n var bySet = setMatchers.length > 0,\n byElement = elementMatchers.length > 0,\n superMatcher = function (seed, context, xml, results, outermost) {\n var elem,\n j,\n matcher,\n matchedCount = 0,\n i = \"0\",\n unmatched = seed && [],\n setMatched = [],\n contextBackup = outermostContext,\n // We must always have either seed elements or outermost context\n elems = seed || byElement && Expr.find.TAG(\"*\", outermost),\n // Use integer dirruns iff this is the outermost matcher\n dirrunsUnique = dirruns += contextBackup == null ? 1 : Math.random() || 0.1,\n len = elems.length;\n if (outermost) {\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n outermostContext = context == document || context || outermost;\n }\n\n // Add elements passing elementMatchers directly to results\n // Support: iOS <=7 - 9 only\n // Tolerate NodeList properties (IE: \"length\"; Safari: ) matching\n // elements by id. (see trac-14142)\n for (; i !== len && (elem = elems[i]) != null; i++) {\n if (byElement && elem) {\n j = 0;\n\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if (!context && elem.ownerDocument != document) {\n setDocument(elem);\n xml = !documentIsHTML;\n }\n while (matcher = elementMatchers[j++]) {\n if (matcher(elem, context || document, xml)) {\n push.call(results, elem);\n break;\n }\n }\n if (outermost) {\n dirruns = dirrunsUnique;\n }\n }\n\n // Track unmatched elements for set filters\n if (bySet) {\n // They will have gone through all possible matchers\n if (elem = !matcher && elem) {\n matchedCount--;\n }\n\n // Lengthen the array for every element, matched or not\n if (seed) {\n unmatched.push(elem);\n }\n }\n }\n\n // `i` is now the count of elements visited above, and adding it to `matchedCount`\n // makes the latter nonnegative.\n matchedCount += i;\n\n // Apply set filters to unmatched elements\n // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n // equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n // no element matchers and no seed.\n // Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n // case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n // numerically zero.\n if (bySet && i !== matchedCount) {\n j = 0;\n while (matcher = setMatchers[j++]) {\n matcher(unmatched, setMatched, context, xml);\n }\n if (seed) {\n // Reintegrate element matches to eliminate the need for sorting\n if (matchedCount > 0) {\n while (i--) {\n if (!(unmatched[i] || setMatched[i])) {\n setMatched[i] = pop.call(results);\n }\n }\n }\n\n // Discard index placeholder values to get only actual matches\n setMatched = condense(setMatched);\n }\n\n // Add matches to results\n push.apply(results, setMatched);\n\n // Seedless set matches succeeding multiple successful matchers stipulate sorting\n if (outermost && !seed && setMatched.length > 0 && matchedCount + setMatchers.length > 1) {\n jQuery.uniqueSort(results);\n }\n }\n\n // Override manipulation of globals by nested matchers\n if (outermost) {\n dirruns = dirrunsUnique;\n outermostContext = contextBackup;\n }\n return unmatched;\n };\n return bySet ? markFunction(superMatcher) : superMatcher;\n }\n function compile(selector, match /* Internal Use Only */) {\n var i,\n setMatchers = [],\n elementMatchers = [],\n cached = compilerCache[selector + \" \"];\n if (!cached) {\n // Generate a function of recursive functions that can be used to check each element\n if (!match) {\n match = tokenize(selector);\n }\n i = match.length;\n while (i--) {\n cached = matcherFromTokens(match[i]);\n if (cached[expando]) {\n setMatchers.push(cached);\n } else {\n elementMatchers.push(cached);\n }\n }\n\n // Cache the compiled function\n cached = compilerCache(selector, matcherFromGroupMatchers(elementMatchers, setMatchers));\n\n // Save selector and tokenization\n cached.selector = selector;\n }\n return cached;\n }\n\n /**\n * A low-level selection function that works with jQuery's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with jQuery selector compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\n function select(selector, context, results, seed) {\n var i,\n tokens,\n token,\n type,\n find,\n compiled = typeof selector === \"function\" && selector,\n match = !seed && tokenize(selector = compiled.selector || selector);\n results = results || [];\n\n // Try to minimize operations if there is only one selector in the list and no seed\n // (the latter of which guarantees us context)\n if (match.length === 1) {\n // Reduce context if the leading compound selector is an ID\n tokens = match[0] = match[0].slice(0);\n if (tokens.length > 2 && (token = tokens[0]).type === \"ID\" && context.nodeType === 9 && documentIsHTML && Expr.relative[tokens[1].type]) {\n context = (Expr.find.ID(token.matches[0].replace(runescape, funescape), context) || [])[0];\n if (!context) {\n return results;\n\n // Precompiled matchers will still verify ancestry, so step up a level\n } else if (compiled) {\n context = context.parentNode;\n }\n selector = selector.slice(tokens.shift().value.length);\n }\n\n // Fetch a seed set for right-to-left matching\n i = matchExpr.needsContext.test(selector) ? 0 : tokens.length;\n while (i--) {\n token = tokens[i];\n\n // Abort if we hit a combinator\n if (Expr.relative[type = token.type]) {\n break;\n }\n if (find = Expr.find[type]) {\n // Search, expanding context for leading sibling combinators\n if (seed = find(token.matches[0].replace(runescape, funescape), rsibling.test(tokens[0].type) && testContext(context.parentNode) || context)) {\n // If seed is empty or no tokens remain, we can return early\n tokens.splice(i, 1);\n selector = seed.length && toSelector(tokens);\n if (!selector) {\n push.apply(results, seed);\n return results;\n }\n break;\n }\n }\n }\n }\n\n // Compile and execute a filtering function if one is not provided\n // Provide `match` to avoid retokenization if we modified the selector above\n (compiled || compile(selector, match))(seed, context, !documentIsHTML, results, !context || rsibling.test(selector) && testContext(context.parentNode) || context);\n return results;\n }\n\n // One-time assignments\n\n // Support: Android <=4.0 - 4.1+\n // Sort stability\n support.sortStable = expando.split(\"\").sort(sortOrder).join(\"\") === expando;\n\n // Initialize against the default document\n setDocument();\n\n // Support: Android <=4.0 - 4.1+\n // Detached nodes confoundingly follow *each other*\n support.sortDetached = assert(function (el) {\n // Should return 1, but returns 4 (following)\n return el.compareDocumentPosition(document.createElement(\"fieldset\")) & 1;\n });\n jQuery.find = find;\n\n // Deprecated\n jQuery.expr[\":\"] = jQuery.expr.pseudos;\n jQuery.unique = jQuery.uniqueSort;\n\n // These have always been private, but they used to be documented as part of\n // Sizzle so let's maintain them for now for backwards compatibility purposes.\n find.compile = compile;\n find.select = select;\n find.setDocument = setDocument;\n find.tokenize = tokenize;\n find.escape = jQuery.escapeSelector;\n find.getText = jQuery.text;\n find.isXML = jQuery.isXMLDoc;\n find.selectors = jQuery.expr;\n find.support = jQuery.support;\n find.uniqueSort = jQuery.uniqueSort;\n\n /* eslint-enable */\n })();\n});","// Initialize a jQuery object\ndefine([\"../core\", \"../var/document\", \"../var/isFunction\", \"./var/rsingleTag\", \"../traversing/findFilter\"], function (jQuery, document, isFunction, rsingleTag) {\n \"use strict\";\n\n // A central reference to the root jQuery(document)\n var rootjQuery,\n // A simple way to check for HTML strings\n // Prioritize #id over to avoid XSS via location.hash (trac-9521)\n // Strict HTML recognition (trac-11290: must start with <)\n // Shortcut simple #id case for speed\n rquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n init = jQuery.fn.init = function (selector, context, root) {\n var match, elem;\n\n // HANDLE: $(\"\"), $(null), $(undefined), $(false)\n if (!selector) {\n return this;\n }\n\n // Method init() accepts an alternate rootjQuery\n // so migrate can support jQuery.sub (gh-2101)\n root = root || rootjQuery;\n\n // Handle HTML strings\n if (typeof selector === \"string\") {\n if (selector[0] === \"<\" && selector[selector.length - 1] === \">\" && selector.length >= 3) {\n // Assume that strings that start and end with <> are HTML and skip the regex check\n match = [null, selector, null];\n } else {\n match = rquickExpr.exec(selector);\n }\n\n // Match html or make sure no context is specified for #id\n if (match && (match[1] || !context)) {\n // HANDLE: $(html) -> $(array)\n if (match[1]) {\n context = context instanceof jQuery ? context[0] : context;\n\n // Option to run scripts is true for back-compat\n // Intentionally let the error be thrown if parseHTML is not present\n jQuery.merge(this, jQuery.parseHTML(match[1], context && context.nodeType ? context.ownerDocument || context : document, true));\n\n // HANDLE: $(html, props)\n if (rsingleTag.test(match[1]) && jQuery.isPlainObject(context)) {\n for (match in context) {\n // Properties of context are called as methods if possible\n if (isFunction(this[match])) {\n this[match](context[match]);\n\n // ...and otherwise set as attributes\n } else {\n this.attr(match, context[match]);\n }\n }\n }\n return this;\n\n // HANDLE: $(#id)\n } else {\n elem = document.getElementById(match[2]);\n if (elem) {\n // Inject the element directly into the jQuery object\n this[0] = elem;\n this.length = 1;\n }\n return this;\n }\n\n // HANDLE: $(expr, $(...))\n } else if (!context || context.jquery) {\n return (context || root).find(selector);\n\n // HANDLE: $(expr, context)\n // (which is just equivalent to: $(context).find(expr)\n } else {\n return this.constructor(context).find(selector);\n }\n\n // HANDLE: $(DOMElement)\n } else if (selector.nodeType) {\n this[0] = selector;\n this.length = 1;\n return this;\n\n // HANDLE: $(function)\n // Shortcut for document ready\n } else if (isFunction(selector)) {\n return root.ready !== undefined ? root.ready(selector) :\n // Execute immediately if ready is not present\n selector(jQuery);\n }\n return jQuery.makeArray(selector, this);\n };\n\n // Give the init function the jQuery prototype for later instantiation\n init.prototype = jQuery.fn;\n\n // Initialize central reference\n rootjQuery = jQuery(document);\n return init;\n});","define(function () {\n \"use strict\";\n\n return [];\n});","define(function () {\n \"use strict\";\n\n function nodeName(elem, name) {\n return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n }\n return nodeName;\n});","define([\"../Data\"], function (Data) {\n \"use strict\";\n\n return new Data();\n});","define(function () {\n \"use strict\";\n\n // Only count HTML whitespace\n // Other whitespace should count in values\n // https://infra.spec.whatwg.org/#ascii-whitespace\n return /[^\\x20\\t\\r\\n\\f]+/g;\n});","define(function () {\n \"use strict\";\n\n // All support tests are defined in their respective modules.\n return {};\n});","define([\"../core\", \"../core/toType\", \"../var/isFunction\"], function (jQuery, toType, isFunction) {\n \"use strict\";\n\n // Multifunctional method to get and set values of a collection\n // The value/s can optionally be executed if it's a function\n var access = function (elems, fn, key, value, chainable, emptyGet, raw) {\n var i = 0,\n len = elems.length,\n bulk = key == null;\n\n // Sets many values\n if (toType(key) === \"object\") {\n chainable = true;\n for (i in key) {\n access(elems, fn, i, key[i], true, emptyGet, raw);\n }\n\n // Sets one value\n } else if (value !== undefined) {\n chainable = true;\n if (!isFunction(value)) {\n raw = true;\n }\n if (bulk) {\n // Bulk operations run against the entire set\n if (raw) {\n fn.call(elems, value);\n fn = null;\n\n // ...except when executing function values\n } else {\n bulk = fn;\n fn = function (elem, _key, value) {\n return bulk.call(jQuery(elem), value);\n };\n }\n }\n if (fn) {\n for (; i < len; i++) {\n fn(elems[i], key, raw ? value : value.call(elems[i], i, fn(elems[i], key)));\n }\n }\n }\n if (chainable) {\n return elems;\n }\n\n // Gets\n if (bulk) {\n return fn.call(elems);\n }\n return len ? fn(elems[0], key) : emptyGet;\n };\n return access;\n});","define([\"./core\", \"./var/document\", \"./var/isFunction\", \"./var/rnothtmlwhite\", \"./ajax/var/location\", \"./ajax/var/nonce\", \"./ajax/var/rquery\", \"./core/init\", \"./core/parseXML\", \"./event/trigger\", \"./deferred\", \"./serialize\" // jQuery.param\n], function (jQuery, document, isFunction, rnothtmlwhite, location, nonce, rquery) {\n \"use strict\";\n\n var r20 = /%20/g,\n rhash = /#.*$/,\n rantiCache = /([?&])_=[^&]*/,\n rheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n // trac-7653, trac-8125, trac-8152: local protocol detection\n rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n rnoContent = /^(?:GET|HEAD)$/,\n rprotocol = /^\\/\\//,\n /* Prefilters\n * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n * 2) These are called:\n * - BEFORE asking for a transport\n * - AFTER param serialization (s.data is a string if s.processData is true)\n * 3) key is the dataType\n * 4) the catchall symbol \"*\" can be used\n * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n */\n prefilters = {},\n /* Transports bindings\n * 1) key is the dataType\n * 2) the catchall symbol \"*\" can be used\n * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n */\n transports = {},\n // Avoid comment-prolog char sequence (trac-10098); must appease lint and evade compression\n allTypes = \"*/\".concat(\"*\"),\n // Anchor tag for parsing the document origin\n originAnchor = document.createElement(\"a\");\n originAnchor.href = location.href;\n\n // Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\n function addToPrefiltersOrTransports(structure) {\n // dataTypeExpression is optional and defaults to \"*\"\n return function (dataTypeExpression, func) {\n if (typeof dataTypeExpression !== \"string\") {\n func = dataTypeExpression;\n dataTypeExpression = \"*\";\n }\n var dataType,\n i = 0,\n dataTypes = dataTypeExpression.toLowerCase().match(rnothtmlwhite) || [];\n if (isFunction(func)) {\n // For each dataType in the dataTypeExpression\n while (dataType = dataTypes[i++]) {\n // Prepend if requested\n if (dataType[0] === \"+\") {\n dataType = dataType.slice(1) || \"*\";\n (structure[dataType] = structure[dataType] || []).unshift(func);\n\n // Otherwise append\n } else {\n (structure[dataType] = structure[dataType] || []).push(func);\n }\n }\n }\n };\n }\n\n // Base inspection function for prefilters and transports\n function inspectPrefiltersOrTransports(structure, options, originalOptions, jqXHR) {\n var inspected = {},\n seekingTransport = structure === transports;\n function inspect(dataType) {\n var selected;\n inspected[dataType] = true;\n jQuery.each(structure[dataType] || [], function (_, prefilterOrFactory) {\n var dataTypeOrTransport = prefilterOrFactory(options, originalOptions, jqXHR);\n if (typeof dataTypeOrTransport === \"string\" && !seekingTransport && !inspected[dataTypeOrTransport]) {\n options.dataTypes.unshift(dataTypeOrTransport);\n inspect(dataTypeOrTransport);\n return false;\n } else if (seekingTransport) {\n return !(selected = dataTypeOrTransport);\n }\n });\n return selected;\n }\n return inspect(options.dataTypes[0]) || !inspected[\"*\"] && inspect(\"*\");\n }\n\n // A special extend for ajax options\n // that takes \"flat\" options (not to be deep extended)\n // Fixes trac-9887\n function ajaxExtend(target, src) {\n var key,\n deep,\n flatOptions = jQuery.ajaxSettings.flatOptions || {};\n for (key in src) {\n if (src[key] !== undefined) {\n (flatOptions[key] ? target : deep || (deep = {}))[key] = src[key];\n }\n }\n if (deep) {\n jQuery.extend(true, target, deep);\n }\n return target;\n }\n\n /* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\n function ajaxHandleResponses(s, jqXHR, responses) {\n var ct,\n type,\n finalDataType,\n firstDataType,\n contents = s.contents,\n dataTypes = s.dataTypes;\n\n // Remove auto dataType and get content-type in the process\n while (dataTypes[0] === \"*\") {\n dataTypes.shift();\n if (ct === undefined) {\n ct = s.mimeType || jqXHR.getResponseHeader(\"Content-Type\");\n }\n }\n\n // Check if we're dealing with a known content-type\n if (ct) {\n for (type in contents) {\n if (contents[type] && contents[type].test(ct)) {\n dataTypes.unshift(type);\n break;\n }\n }\n }\n\n // Check to see if we have a response for the expected dataType\n if (dataTypes[0] in responses) {\n finalDataType = dataTypes[0];\n } else {\n // Try convertible dataTypes\n for (type in responses) {\n if (!dataTypes[0] || s.converters[type + \" \" + dataTypes[0]]) {\n finalDataType = type;\n break;\n }\n if (!firstDataType) {\n firstDataType = type;\n }\n }\n\n // Or just use first one\n finalDataType = finalDataType || firstDataType;\n }\n\n // If we found a dataType\n // We add the dataType to the list if needed\n // and return the corresponding response\n if (finalDataType) {\n if (finalDataType !== dataTypes[0]) {\n dataTypes.unshift(finalDataType);\n }\n return responses[finalDataType];\n }\n }\n\n /* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\n function ajaxConvert(s, response, jqXHR, isSuccess) {\n var conv2,\n current,\n conv,\n tmp,\n prev,\n converters = {},\n // Work with a copy of dataTypes in case we need to modify it for conversion\n dataTypes = s.dataTypes.slice();\n\n // Create converters map with lowercased keys\n if (dataTypes[1]) {\n for (conv in s.converters) {\n converters[conv.toLowerCase()] = s.converters[conv];\n }\n }\n current = dataTypes.shift();\n\n // Convert to each sequential dataType\n while (current) {\n if (s.responseFields[current]) {\n jqXHR[s.responseFields[current]] = response;\n }\n\n // Apply the dataFilter if provided\n if (!prev && isSuccess && s.dataFilter) {\n response = s.dataFilter(response, s.dataType);\n }\n prev = current;\n current = dataTypes.shift();\n if (current) {\n // There's only work to do if current dataType is non-auto\n if (current === \"*\") {\n current = prev;\n\n // Convert response if prev dataType is non-auto and differs from current\n } else if (prev !== \"*\" && prev !== current) {\n // Seek a direct converter\n conv = converters[prev + \" \" + current] || converters[\"* \" + current];\n\n // If none found, seek a pair\n if (!conv) {\n for (conv2 in converters) {\n // If conv2 outputs current\n tmp = conv2.split(\" \");\n if (tmp[1] === current) {\n // If prev can be converted to accepted input\n conv = converters[prev + \" \" + tmp[0]] || converters[\"* \" + tmp[0]];\n if (conv) {\n // Condense equivalence converters\n if (conv === true) {\n conv = converters[conv2];\n\n // Otherwise, insert the intermediate dataType\n } else if (converters[conv2] !== true) {\n current = tmp[0];\n dataTypes.unshift(tmp[1]);\n }\n break;\n }\n }\n }\n }\n\n // Apply converter (if not an equivalence)\n if (conv !== true) {\n // Unless errors are allowed to bubble, catch and return them\n if (conv && s.throws) {\n response = conv(response);\n } else {\n try {\n response = conv(response);\n } catch (e) {\n return {\n state: \"parsererror\",\n error: conv ? e : \"No conversion from \" + prev + \" to \" + current\n };\n }\n }\n }\n }\n }\n }\n return {\n state: \"success\",\n data: response\n };\n }\n jQuery.extend({\n // Counter for holding the number of active queries\n active: 0,\n // Last-Modified header cache for next request\n lastModified: {},\n etag: {},\n ajaxSettings: {\n url: location.href,\n type: \"GET\",\n isLocal: rlocalProtocol.test(location.protocol),\n global: true,\n processData: true,\n async: true,\n contentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n /*\n timeout: 0,\n data: null,\n dataType: null,\n username: null,\n password: null,\n cache: null,\n throws: false,\n traditional: false,\n headers: {},\n */\n\n accepts: {\n \"*\": allTypes,\n text: \"text/plain\",\n html: \"text/html\",\n xml: \"application/xml, text/xml\",\n json: \"application/json, text/javascript\"\n },\n contents: {\n xml: /\\bxml\\b/,\n html: /\\bhtml/,\n json: /\\bjson\\b/\n },\n responseFields: {\n xml: \"responseXML\",\n text: \"responseText\",\n json: \"responseJSON\"\n },\n // Data converters\n // Keys separate source (or catchall \"*\") and destination types with a single space\n converters: {\n // Convert anything to text\n \"* text\": String,\n // Text to html (true = no transformation)\n \"text html\": true,\n // Evaluate text as a json expression\n \"text json\": JSON.parse,\n // Parse text as xml\n \"text xml\": jQuery.parseXML\n },\n // For options that shouldn't be deep extended:\n // you can add your own custom options here if\n // and when you create one that shouldn't be\n // deep extended (see ajaxExtend)\n flatOptions: {\n url: true,\n context: true\n }\n },\n // Creates a full fledged settings object into target\n // with both ajaxSettings and settings fields.\n // If target is omitted, writes into ajaxSettings.\n ajaxSetup: function (target, settings) {\n return settings ?\n // Building a settings object\n ajaxExtend(ajaxExtend(target, jQuery.ajaxSettings), settings) :\n // Extending ajaxSettings\n ajaxExtend(jQuery.ajaxSettings, target);\n },\n ajaxPrefilter: addToPrefiltersOrTransports(prefilters),\n ajaxTransport: addToPrefiltersOrTransports(transports),\n // Main method\n ajax: function (url, options) {\n // If url is an object, simulate pre-1.5 signature\n if (typeof url === \"object\") {\n options = url;\n url = undefined;\n }\n\n // Force options to be an object\n options = options || {};\n var transport,\n // URL without anti-cache param\n cacheURL,\n // Response headers\n responseHeadersString,\n responseHeaders,\n // timeout handle\n timeoutTimer,\n // Url cleanup var\n urlAnchor,\n // Request state (becomes false upon send and true upon completion)\n completed,\n // To know if global events are to be dispatched\n fireGlobals,\n // Loop variable\n i,\n // uncached part of the url\n uncached,\n // Create the final options object\n s = jQuery.ajaxSetup({}, options),\n // Callbacks context\n callbackContext = s.context || s,\n // Context for global events is callbackContext if it is a DOM node or jQuery collection\n globalEventContext = s.context && (callbackContext.nodeType || callbackContext.jquery) ? jQuery(callbackContext) : jQuery.event,\n // Deferreds\n deferred = jQuery.Deferred(),\n completeDeferred = jQuery.Callbacks(\"once memory\"),\n // Status-dependent callbacks\n statusCode = s.statusCode || {},\n // Headers (they are sent all at once)\n requestHeaders = {},\n requestHeadersNames = {},\n // Default abort message\n strAbort = \"canceled\",\n // Fake xhr\n jqXHR = {\n readyState: 0,\n // Builds headers hashtable if needed\n getResponseHeader: function (key) {\n var match;\n if (completed) {\n if (!responseHeaders) {\n responseHeaders = {};\n while (match = rheaders.exec(responseHeadersString)) {\n responseHeaders[match[1].toLowerCase() + \" \"] = (responseHeaders[match[1].toLowerCase() + \" \"] || []).concat(match[2]);\n }\n }\n match = responseHeaders[key.toLowerCase() + \" \"];\n }\n return match == null ? null : match.join(\", \");\n },\n // Raw string\n getAllResponseHeaders: function () {\n return completed ? responseHeadersString : null;\n },\n // Caches the header\n setRequestHeader: function (name, value) {\n if (completed == null) {\n name = requestHeadersNames[name.toLowerCase()] = requestHeadersNames[name.toLowerCase()] || name;\n requestHeaders[name] = value;\n }\n return this;\n },\n // Overrides response content-type header\n overrideMimeType: function (type) {\n if (completed == null) {\n s.mimeType = type;\n }\n return this;\n },\n // Status-dependent callbacks\n statusCode: function (map) {\n var code;\n if (map) {\n if (completed) {\n // Execute the appropriate callbacks\n jqXHR.always(map[jqXHR.status]);\n } else {\n // Lazy-add the new callbacks in a way that preserves old ones\n for (code in map) {\n statusCode[code] = [statusCode[code], map[code]];\n }\n }\n }\n return this;\n },\n // Cancel the request\n abort: function (statusText) {\n var finalText = statusText || strAbort;\n if (transport) {\n transport.abort(finalText);\n }\n done(0, finalText);\n return this;\n }\n };\n\n // Attach deferreds\n deferred.promise(jqXHR);\n\n // Add protocol if not provided (prefilters might expect it)\n // Handle falsy url in the settings object (trac-10093: consistency with old signature)\n // We also use the url parameter if available\n s.url = ((url || s.url || location.href) + \"\").replace(rprotocol, location.protocol + \"//\");\n\n // Alias method option to type as per ticket trac-12004\n s.type = options.method || options.type || s.method || s.type;\n\n // Extract dataTypes list\n s.dataTypes = (s.dataType || \"*\").toLowerCase().match(rnothtmlwhite) || [\"\"];\n\n // A cross-domain request is in order when the origin doesn't match the current origin.\n if (s.crossDomain == null) {\n urlAnchor = document.createElement(\"a\");\n\n // Support: IE <=8 - 11, Edge 12 - 15\n // IE throws exception on accessing the href property if url is malformed,\n // e.g. http://example.com:80x/\n try {\n urlAnchor.href = s.url;\n\n // Support: IE <=8 - 11 only\n // Anchor's host property isn't correctly set when s.url is relative\n urlAnchor.href = urlAnchor.href;\n s.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !== urlAnchor.protocol + \"//\" + urlAnchor.host;\n } catch (e) {\n // If there is an error parsing the URL, assume it is crossDomain,\n // it can be rejected by the transport if it is invalid\n s.crossDomain = true;\n }\n }\n\n // Convert data if not already a string\n if (s.data && s.processData && typeof s.data !== \"string\") {\n s.data = jQuery.param(s.data, s.traditional);\n }\n\n // Apply prefilters\n inspectPrefiltersOrTransports(prefilters, s, options, jqXHR);\n\n // If request was aborted inside a prefilter, stop there\n if (completed) {\n return jqXHR;\n }\n\n // We can fire global events as of now if asked to\n // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (trac-15118)\n fireGlobals = jQuery.event && s.global;\n\n // Watch for a new set of requests\n if (fireGlobals && jQuery.active++ === 0) {\n jQuery.event.trigger(\"ajaxStart\");\n }\n\n // Uppercase the type\n s.type = s.type.toUpperCase();\n\n // Determine if request has content\n s.hasContent = !rnoContent.test(s.type);\n\n // Save the URL in case we're toying with the If-Modified-Since\n // and/or If-None-Match header later on\n // Remove hash to simplify url manipulation\n cacheURL = s.url.replace(rhash, \"\");\n\n // More options handling for requests with no content\n if (!s.hasContent) {\n // Remember the hash so we can put it back\n uncached = s.url.slice(cacheURL.length);\n\n // If data is available and should be processed, append data to url\n if (s.data && (s.processData || typeof s.data === \"string\")) {\n cacheURL += (rquery.test(cacheURL) ? \"&\" : \"?\") + s.data;\n\n // trac-9682: remove data so that it's not used in an eventual retry\n delete s.data;\n }\n\n // Add or update anti-cache param if needed\n if (s.cache === false) {\n cacheURL = cacheURL.replace(rantiCache, \"$1\");\n uncached = (rquery.test(cacheURL) ? \"&\" : \"?\") + \"_=\" + nonce.guid++ + uncached;\n }\n\n // Put hash and anti-cache on the URL that will be requested (gh-1732)\n s.url = cacheURL + uncached;\n\n // Change '%20' to '+' if this is encoded form body content (gh-2658)\n } else if (s.data && s.processData && (s.contentType || \"\").indexOf(\"application/x-www-form-urlencoded\") === 0) {\n s.data = s.data.replace(r20, \"+\");\n }\n\n // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n if (s.ifModified) {\n if (jQuery.lastModified[cacheURL]) {\n jqXHR.setRequestHeader(\"If-Modified-Since\", jQuery.lastModified[cacheURL]);\n }\n if (jQuery.etag[cacheURL]) {\n jqXHR.setRequestHeader(\"If-None-Match\", jQuery.etag[cacheURL]);\n }\n }\n\n // Set the correct header, if data is being sent\n if (s.data && s.hasContent && s.contentType !== false || options.contentType) {\n jqXHR.setRequestHeader(\"Content-Type\", s.contentType);\n }\n\n // Set the Accepts header for the server, depending on the dataType\n jqXHR.setRequestHeader(\"Accept\", s.dataTypes[0] && s.accepts[s.dataTypes[0]] ? s.accepts[s.dataTypes[0]] + (s.dataTypes[0] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\") : s.accepts[\"*\"]);\n\n // Check for headers option\n for (i in s.headers) {\n jqXHR.setRequestHeader(i, s.headers[i]);\n }\n\n // Allow custom headers/mimetypes and early abort\n if (s.beforeSend && (s.beforeSend.call(callbackContext, jqXHR, s) === false || completed)) {\n // Abort if not done already and return\n return jqXHR.abort();\n }\n\n // Aborting is no longer a cancellation\n strAbort = \"abort\";\n\n // Install callbacks on deferreds\n completeDeferred.add(s.complete);\n jqXHR.done(s.success);\n jqXHR.fail(s.error);\n\n // Get transport\n transport = inspectPrefiltersOrTransports(transports, s, options, jqXHR);\n\n // If no transport, we auto-abort\n if (!transport) {\n done(-1, \"No Transport\");\n } else {\n jqXHR.readyState = 1;\n\n // Send global event\n if (fireGlobals) {\n globalEventContext.trigger(\"ajaxSend\", [jqXHR, s]);\n }\n\n // If request was aborted inside ajaxSend, stop there\n if (completed) {\n return jqXHR;\n }\n\n // Timeout\n if (s.async && s.timeout > 0) {\n timeoutTimer = window.setTimeout(function () {\n jqXHR.abort(\"timeout\");\n }, s.timeout);\n }\n try {\n completed = false;\n transport.send(requestHeaders, done);\n } catch (e) {\n // Rethrow post-completion exceptions\n if (completed) {\n throw e;\n }\n\n // Propagate others as results\n done(-1, e);\n }\n }\n\n // Callback for when everything is done\n function done(status, nativeStatusText, responses, headers) {\n var isSuccess,\n success,\n error,\n response,\n modified,\n statusText = nativeStatusText;\n\n // Ignore repeat invocations\n if (completed) {\n return;\n }\n completed = true;\n\n // Clear timeout if it exists\n if (timeoutTimer) {\n window.clearTimeout(timeoutTimer);\n }\n\n // Dereference transport for early garbage collection\n // (no matter how long the jqXHR object will be used)\n transport = undefined;\n\n // Cache response headers\n responseHeadersString = headers || \"\";\n\n // Set readyState\n jqXHR.readyState = status > 0 ? 4 : 0;\n\n // Determine if successful\n isSuccess = status >= 200 && status < 300 || status === 304;\n\n // Get response data\n if (responses) {\n response = ajaxHandleResponses(s, jqXHR, responses);\n }\n\n // Use a noop converter for missing script but not if jsonp\n if (!isSuccess && jQuery.inArray(\"script\", s.dataTypes) > -1 && jQuery.inArray(\"json\", s.dataTypes) < 0) {\n s.converters[\"text script\"] = function () {};\n }\n\n // Convert no matter what (that way responseXXX fields are always set)\n response = ajaxConvert(s, response, jqXHR, isSuccess);\n\n // If successful, handle type chaining\n if (isSuccess) {\n // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n if (s.ifModified) {\n modified = jqXHR.getResponseHeader(\"Last-Modified\");\n if (modified) {\n jQuery.lastModified[cacheURL] = modified;\n }\n modified = jqXHR.getResponseHeader(\"etag\");\n if (modified) {\n jQuery.etag[cacheURL] = modified;\n }\n }\n\n // if no content\n if (status === 204 || s.type === \"HEAD\") {\n statusText = \"nocontent\";\n\n // if not modified\n } else if (status === 304) {\n statusText = \"notmodified\";\n\n // If we have data, let's convert it\n } else {\n statusText = response.state;\n success = response.data;\n error = response.error;\n isSuccess = !error;\n }\n } else {\n // Extract error from statusText and normalize for non-aborts\n error = statusText;\n if (status || !statusText) {\n statusText = \"error\";\n if (status < 0) {\n status = 0;\n }\n }\n }\n\n // Set data for the fake xhr object\n jqXHR.status = status;\n jqXHR.statusText = (nativeStatusText || statusText) + \"\";\n\n // Success/Error\n if (isSuccess) {\n deferred.resolveWith(callbackContext, [success, statusText, jqXHR]);\n } else {\n deferred.rejectWith(callbackContext, [jqXHR, statusText, error]);\n }\n\n // Status-dependent callbacks\n jqXHR.statusCode(statusCode);\n statusCode = undefined;\n if (fireGlobals) {\n globalEventContext.trigger(isSuccess ? \"ajaxSuccess\" : \"ajaxError\", [jqXHR, s, isSuccess ? success : error]);\n }\n\n // Complete\n completeDeferred.fireWith(callbackContext, [jqXHR, statusText]);\n if (fireGlobals) {\n globalEventContext.trigger(\"ajaxComplete\", [jqXHR, s]);\n\n // Handle the global AJAX counter\n if (! --jQuery.active) {\n jQuery.event.trigger(\"ajaxStop\");\n }\n }\n }\n return jqXHR;\n },\n getJSON: function (url, data, callback) {\n return jQuery.get(url, data, callback, \"json\");\n },\n getScript: function (url, callback) {\n return jQuery.get(url, undefined, callback, \"script\");\n }\n });\n jQuery.each([\"get\", \"post\"], function (_i, method) {\n jQuery[method] = function (url, data, callback, type) {\n // Shift arguments if data argument was omitted\n if (isFunction(data)) {\n type = type || callback;\n callback = data;\n data = undefined;\n }\n\n // The url can be an options object (which then must have .url)\n return jQuery.ajax(jQuery.extend({\n url: url,\n type: method,\n dataType: type,\n data: data,\n success: callback\n }, jQuery.isPlainObject(url) && url));\n };\n });\n jQuery.ajaxPrefilter(function (s) {\n var i;\n for (i in s.headers) {\n if (i.toLowerCase() === \"content-type\") {\n s.contentType = s.headers[i] || \"\";\n }\n }\n });\n return jQuery;\n});","define([\"../var/class2type\", \"../var/toString\"], function (class2type, toString) {\n \"use strict\";\n\n function toType(obj) {\n if (obj == null) {\n return obj + \"\";\n }\n\n // Support: Android <=2.3 only (functionish RegExp)\n return typeof obj === \"object\" || typeof obj === \"function\" ? class2type[toString.call(obj)] || \"object\" : typeof obj;\n }\n return toType;\n});","define([\"./core\", \"./var/getProto\", \"./var/indexOf\", \"./traversing/var/dir\", \"./traversing/var/siblings\", \"./traversing/var/rneedsContext\", \"./core/nodeName\", \"./core/init\", \"./traversing/findFilter\", \"./selector\"], function (jQuery, getProto, indexOf, dir, siblings, rneedsContext, nodeName) {\n \"use strict\";\n\n var rparentsprev = /^(?:parents|prev(?:Until|All))/,\n // Methods guaranteed to produce a unique set when starting from a unique set\n guaranteedUnique = {\n children: true,\n contents: true,\n next: true,\n prev: true\n };\n jQuery.fn.extend({\n has: function (target) {\n var targets = jQuery(target, this),\n l = targets.length;\n return this.filter(function () {\n var i = 0;\n for (; i < l; i++) {\n if (jQuery.contains(this, targets[i])) {\n return true;\n }\n }\n });\n },\n closest: function (selectors, context) {\n var cur,\n i = 0,\n l = this.length,\n matched = [],\n targets = typeof selectors !== \"string\" && jQuery(selectors);\n\n // Positional selectors never match, since there's no _selection_ context\n if (!rneedsContext.test(selectors)) {\n for (; i < l; i++) {\n for (cur = this[i]; cur && cur !== context; cur = cur.parentNode) {\n // Always skip document fragments\n if (cur.nodeType < 11 && (targets ? targets.index(cur) > -1 :\n // Don't pass non-elements to jQuery#find\n cur.nodeType === 1 && jQuery.find.matchesSelector(cur, selectors))) {\n matched.push(cur);\n break;\n }\n }\n }\n }\n return this.pushStack(matched.length > 1 ? jQuery.uniqueSort(matched) : matched);\n },\n // Determine the position of an element within the set\n index: function (elem) {\n // No argument, return index in parent\n if (!elem) {\n return this[0] && this[0].parentNode ? this.first().prevAll().length : -1;\n }\n\n // Index in selector\n if (typeof elem === \"string\") {\n return indexOf.call(jQuery(elem), this[0]);\n }\n\n // Locate the position of the desired element\n return indexOf.call(this,\n // If it receives a jQuery object, the first element is used\n elem.jquery ? elem[0] : elem);\n },\n add: function (selector, context) {\n return this.pushStack(jQuery.uniqueSort(jQuery.merge(this.get(), jQuery(selector, context))));\n },\n addBack: function (selector) {\n return this.add(selector == null ? this.prevObject : this.prevObject.filter(selector));\n }\n });\n function sibling(cur, dir) {\n while ((cur = cur[dir]) && cur.nodeType !== 1) {}\n return cur;\n }\n jQuery.each({\n parent: function (elem) {\n var parent = elem.parentNode;\n return parent && parent.nodeType !== 11 ? parent : null;\n },\n parents: function (elem) {\n return dir(elem, \"parentNode\");\n },\n parentsUntil: function (elem, _i, until) {\n return dir(elem, \"parentNode\", until);\n },\n next: function (elem) {\n return sibling(elem, \"nextSibling\");\n },\n prev: function (elem) {\n return sibling(elem, \"previousSibling\");\n },\n nextAll: function (elem) {\n return dir(elem, \"nextSibling\");\n },\n prevAll: function (elem) {\n return dir(elem, \"previousSibling\");\n },\n nextUntil: function (elem, _i, until) {\n return dir(elem, \"nextSibling\", until);\n },\n prevUntil: function (elem, _i, until) {\n return dir(elem, \"previousSibling\", until);\n },\n siblings: function (elem) {\n return siblings((elem.parentNode || {}).firstChild, elem);\n },\n children: function (elem) {\n return siblings(elem.firstChild);\n },\n contents: function (elem) {\n if (elem.contentDocument != null &&\n // Support: IE 11+\n // elements with no `data` attribute has an object\n // `contentDocument` with a `null` prototype.\n getProto(elem.contentDocument)) {\n return elem.contentDocument;\n }\n\n // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n // Treat the template element as a regular one in browsers that\n // don't support it.\n if (nodeName(elem, \"template\")) {\n elem = elem.content || elem;\n }\n return jQuery.merge([], elem.childNodes);\n }\n }, function (name, fn) {\n jQuery.fn[name] = function (until, selector) {\n var matched = jQuery.map(this, fn, until);\n if (name.slice(-5) !== \"Until\") {\n selector = until;\n }\n if (selector && typeof selector === \"string\") {\n matched = jQuery.filter(selector, matched);\n }\n if (this.length > 1) {\n // Remove duplicates\n if (!guaranteedUnique[name]) {\n jQuery.uniqueSort(matched);\n }\n\n // Reverse order for parents* and prev-derivatives\n if (rparentsprev.test(name)) {\n matched.reverse();\n }\n }\n return this.pushStack(matched);\n };\n });\n return jQuery;\n});","define([\"./core\", \"./var/isFunction\", \"./var/slice\", \"./callbacks\"], function (jQuery, isFunction, slice) {\n \"use strict\";\n\n function Identity(v) {\n return v;\n }\n function Thrower(ex) {\n throw ex;\n }\n function adoptValue(value, resolve, reject, noValue) {\n var method;\n try {\n // Check for promise aspect first to privilege synchronous behavior\n if (value && isFunction(method = value.promise)) {\n method.call(value).done(resolve).fail(reject);\n\n // Other thenables\n } else if (value && isFunction(method = value.then)) {\n method.call(value, resolve, reject);\n\n // Other non-thenables\n } else {\n // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n // * false: [ value ].slice( 0 ) => resolve( value )\n // * true: [ value ].slice( 1 ) => resolve()\n resolve.apply(undefined, [value].slice(noValue));\n }\n\n // For Promises/A+, convert exceptions into rejections\n // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n // Deferred#then to conditionally suppress rejection.\n } catch (value) {\n // Support: Android 4.0 only\n // Strict mode functions invoked without .call/.apply get global-object context\n reject.apply(undefined, [value]);\n }\n }\n jQuery.extend({\n Deferred: function (func) {\n var tuples = [\n // action, add listener, callbacks,\n // ... .then handlers, argument index, [final state]\n [\"notify\", \"progress\", jQuery.Callbacks(\"memory\"), jQuery.Callbacks(\"memory\"), 2], [\"resolve\", \"done\", jQuery.Callbacks(\"once memory\"), jQuery.Callbacks(\"once memory\"), 0, \"resolved\"], [\"reject\", \"fail\", jQuery.Callbacks(\"once memory\"), jQuery.Callbacks(\"once memory\"), 1, \"rejected\"]],\n state = \"pending\",\n promise = {\n state: function () {\n return state;\n },\n always: function () {\n deferred.done(arguments).fail(arguments);\n return this;\n },\n \"catch\": function (fn) {\n return promise.then(null, fn);\n },\n // Keep pipe for back-compat\n pipe: function /* fnDone, fnFail, fnProgress */\n () {\n var fns = arguments;\n return jQuery.Deferred(function (newDefer) {\n jQuery.each(tuples, function (_i, tuple) {\n // Map tuples (progress, done, fail) to arguments (done, fail, progress)\n var fn = isFunction(fns[tuple[4]]) && fns[tuple[4]];\n\n // deferred.progress(function() { bind to newDefer or newDefer.notify })\n // deferred.done(function() { bind to newDefer or newDefer.resolve })\n // deferred.fail(function() { bind to newDefer or newDefer.reject })\n deferred[tuple[1]](function () {\n var returned = fn && fn.apply(this, arguments);\n if (returned && isFunction(returned.promise)) {\n returned.promise().progress(newDefer.notify).done(newDefer.resolve).fail(newDefer.reject);\n } else {\n newDefer[tuple[0] + \"With\"](this, fn ? [returned] : arguments);\n }\n });\n });\n fns = null;\n }).promise();\n },\n then: function (onFulfilled, onRejected, onProgress) {\n var maxDepth = 0;\n function resolve(depth, deferred, handler, special) {\n return function () {\n var that = this,\n args = arguments,\n mightThrow = function () {\n var returned, then;\n\n // Support: Promises/A+ section 2.3.3.3.3\n // https://promisesaplus.com/#point-59\n // Ignore double-resolution attempts\n if (depth < maxDepth) {\n return;\n }\n returned = handler.apply(that, args);\n\n // Support: Promises/A+ section 2.3.1\n // https://promisesaplus.com/#point-48\n if (returned === deferred.promise()) {\n throw new TypeError(\"Thenable self-resolution\");\n }\n\n // Support: Promises/A+ sections 2.3.3.1, 3.5\n // https://promisesaplus.com/#point-54\n // https://promisesaplus.com/#point-75\n // Retrieve `then` only once\n then = returned && (\n // Support: Promises/A+ section 2.3.4\n // https://promisesaplus.com/#point-64\n // Only check objects and functions for thenability\n typeof returned === \"object\" || typeof returned === \"function\") && returned.then;\n\n // Handle a returned thenable\n if (isFunction(then)) {\n // Special processors (notify) just wait for resolution\n if (special) {\n then.call(returned, resolve(maxDepth, deferred, Identity, special), resolve(maxDepth, deferred, Thrower, special));\n\n // Normal processors (resolve) also hook into progress\n } else {\n // ...and disregard older resolution values\n maxDepth++;\n then.call(returned, resolve(maxDepth, deferred, Identity, special), resolve(maxDepth, deferred, Thrower, special), resolve(maxDepth, deferred, Identity, deferred.notifyWith));\n }\n\n // Handle all other returned values\n } else {\n // Only substitute handlers pass on context\n // and multiple values (non-spec behavior)\n if (handler !== Identity) {\n that = undefined;\n args = [returned];\n }\n\n // Process the value(s)\n // Default process is resolve\n (special || deferred.resolveWith)(that, args);\n }\n },\n // Only normal processors (resolve) catch and reject exceptions\n process = special ? mightThrow : function () {\n try {\n mightThrow();\n } catch (e) {\n if (jQuery.Deferred.exceptionHook) {\n jQuery.Deferred.exceptionHook(e, process.error);\n }\n\n // Support: Promises/A+ section 2.3.3.3.4.1\n // https://promisesaplus.com/#point-61\n // Ignore post-resolution exceptions\n if (depth + 1 >= maxDepth) {\n // Only substitute handlers pass on context\n // and multiple values (non-spec behavior)\n if (handler !== Thrower) {\n that = undefined;\n args = [e];\n }\n deferred.rejectWith(that, args);\n }\n }\n };\n\n // Support: Promises/A+ section 2.3.3.3.1\n // https://promisesaplus.com/#point-57\n // Re-resolve promises immediately to dodge false rejection from\n // subsequent errors\n if (depth) {\n process();\n } else {\n // Call an optional hook to record the error, in case of exception\n // since it's otherwise lost when execution goes async\n if (jQuery.Deferred.getErrorHook) {\n process.error = jQuery.Deferred.getErrorHook();\n\n // The deprecated alias of the above. While the name suggests\n // returning the stack, not an error instance, jQuery just passes\n // it directly to `console.warn` so both will work; an instance\n // just better cooperates with source maps.\n } else if (jQuery.Deferred.getStackHook) {\n process.error = jQuery.Deferred.getStackHook();\n }\n window.setTimeout(process);\n }\n };\n }\n return jQuery.Deferred(function (newDefer) {\n // progress_handlers.add( ... )\n tuples[0][3].add(resolve(0, newDefer, isFunction(onProgress) ? onProgress : Identity, newDefer.notifyWith));\n\n // fulfilled_handlers.add( ... )\n tuples[1][3].add(resolve(0, newDefer, isFunction(onFulfilled) ? onFulfilled : Identity));\n\n // rejected_handlers.add( ... )\n tuples[2][3].add(resolve(0, newDefer, isFunction(onRejected) ? onRejected : Thrower));\n }).promise();\n },\n // Get a promise for this deferred\n // If obj is provided, the promise aspect is added to the object\n promise: function (obj) {\n return obj != null ? jQuery.extend(obj, promise) : promise;\n }\n },\n deferred = {};\n\n // Add list-specific methods\n jQuery.each(tuples, function (i, tuple) {\n var list = tuple[2],\n stateString = tuple[5];\n\n // promise.progress = list.add\n // promise.done = list.add\n // promise.fail = list.add\n promise[tuple[1]] = list.add;\n\n // Handle state\n if (stateString) {\n list.add(function () {\n // state = \"resolved\" (i.e., fulfilled)\n // state = \"rejected\"\n state = stateString;\n },\n // rejected_callbacks.disable\n // fulfilled_callbacks.disable\n tuples[3 - i][2].disable,\n // rejected_handlers.disable\n // fulfilled_handlers.disable\n tuples[3 - i][3].disable,\n // progress_callbacks.lock\n tuples[0][2].lock,\n // progress_handlers.lock\n tuples[0][3].lock);\n }\n\n // progress_handlers.fire\n // fulfilled_handlers.fire\n // rejected_handlers.fire\n list.add(tuple[3].fire);\n\n // deferred.notify = function() { deferred.notifyWith(...) }\n // deferred.resolve = function() { deferred.resolveWith(...) }\n // deferred.reject = function() { deferred.rejectWith(...) }\n deferred[tuple[0]] = function () {\n deferred[tuple[0] + \"With\"](this === deferred ? undefined : this, arguments);\n return this;\n };\n\n // deferred.notifyWith = list.fireWith\n // deferred.resolveWith = list.fireWith\n // deferred.rejectWith = list.fireWith\n deferred[tuple[0] + \"With\"] = list.fireWith;\n });\n\n // Make the deferred a promise\n promise.promise(deferred);\n\n // Call given func if any\n if (func) {\n func.call(deferred, deferred);\n }\n\n // All done!\n return deferred;\n },\n // Deferred helper\n when: function (singleValue) {\n var\n // count of uncompleted subordinates\n remaining = arguments.length,\n // count of unprocessed arguments\n i = remaining,\n // subordinate fulfillment data\n resolveContexts = Array(i),\n resolveValues = slice.call(arguments),\n // the primary Deferred\n primary = jQuery.Deferred(),\n // subordinate callback factory\n updateFunc = function (i) {\n return function (value) {\n resolveContexts[i] = this;\n resolveValues[i] = arguments.length > 1 ? slice.call(arguments) : value;\n if (! --remaining) {\n primary.resolveWith(resolveContexts, resolveValues);\n }\n };\n };\n\n // Single- and empty arguments are adopted like Promise.resolve\n if (remaining <= 1) {\n adoptValue(singleValue, primary.done(updateFunc(i)).resolve, primary.reject, !remaining);\n\n // Use .then() to unwrap secondary thenables (cf. gh-3000)\n if (primary.state() === \"pending\" || isFunction(resolveValues[i] && resolveValues[i].then)) {\n return primary.then();\n }\n }\n\n // Multiple arguments are aggregated like Promise.all array elements\n while (i--) {\n adoptValue(resolveValues[i], updateFunc(i), primary.reject);\n }\n return primary.promise();\n }\n });\n return jQuery;\n});","define([\"./arr\"], function (arr) {\n \"use strict\";\n\n return arr.slice;\n});","define(function () {\n \"use strict\";\n\n return function isWindow(obj) {\n return obj != null && obj === obj.window;\n };\n});","define([], function () {\n \"use strict\";\n\n // Matches dashed string for camelizing\n var rmsPrefix = /^-ms-/,\n rdashAlpha = /-([a-z])/g;\n\n // Used by camelCase as callback to replace()\n function fcamelCase(_all, letter) {\n return letter.toUpperCase();\n }\n\n // Convert dashed to camelCase; used by the css and data modules\n // Support: IE <=9 - 11, Edge 12 - 15\n // Microsoft forgot to hump their vendor prefix (trac-9572)\n function camelCase(string) {\n return string.replace(rmsPrefix, \"ms-\").replace(rdashAlpha, fcamelCase);\n }\n return camelCase;\n});","define([\"./core\", \"./var/document\", \"./var/documentElement\", \"./var/isFunction\", \"./var/rnothtmlwhite\", \"./var/rcheckableType\", \"./var/slice\", \"./data/var/acceptData\", \"./data/var/dataPriv\", \"./core/nodeName\", \"./core/init\", \"./selector\"], function (jQuery, document, documentElement, isFunction, rnothtmlwhite, rcheckableType, slice, acceptData, dataPriv, nodeName) {\n \"use strict\";\n\n var rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n function returnTrue() {\n return true;\n }\n function returnFalse() {\n return false;\n }\n function on(elem, types, selector, data, fn, one) {\n var origFn, type;\n\n // Types can be a map of types/handlers\n if (typeof types === \"object\") {\n // ( types-Object, selector, data )\n if (typeof selector !== \"string\") {\n // ( types-Object, data )\n data = data || selector;\n selector = undefined;\n }\n for (type in types) {\n on(elem, type, selector, data, types[type], one);\n }\n return elem;\n }\n if (data == null && fn == null) {\n // ( types, fn )\n fn = selector;\n data = selector = undefined;\n } else if (fn == null) {\n if (typeof selector === \"string\") {\n // ( types, selector, fn )\n fn = data;\n data = undefined;\n } else {\n // ( types, data, fn )\n fn = data;\n data = selector;\n selector = undefined;\n }\n }\n if (fn === false) {\n fn = returnFalse;\n } else if (!fn) {\n return elem;\n }\n if (one === 1) {\n origFn = fn;\n fn = function (event) {\n // Can use an empty set, since event contains the info\n jQuery().off(event);\n return origFn.apply(this, arguments);\n };\n\n // Use same guid so caller can remove using origFn\n fn.guid = origFn.guid || (origFn.guid = jQuery.guid++);\n }\n return elem.each(function () {\n jQuery.event.add(this, types, fn, data, selector);\n });\n }\n\n /*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\n jQuery.event = {\n global: {},\n add: function (elem, types, handler, data, selector) {\n var handleObjIn,\n eventHandle,\n tmp,\n events,\n t,\n handleObj,\n special,\n handlers,\n type,\n namespaces,\n origType,\n elemData = dataPriv.get(elem);\n\n // Only attach events to objects that accept data\n if (!acceptData(elem)) {\n return;\n }\n\n // Caller can pass in an object of custom data in lieu of the handler\n if (handler.handler) {\n handleObjIn = handler;\n handler = handleObjIn.handler;\n selector = handleObjIn.selector;\n }\n\n // Ensure that invalid selectors throw exceptions at attach time\n // Evaluate against documentElement in case elem is a non-element node (e.g., document)\n if (selector) {\n jQuery.find.matchesSelector(documentElement, selector);\n }\n\n // Make sure that the handler has a unique ID, used to find/remove it later\n if (!handler.guid) {\n handler.guid = jQuery.guid++;\n }\n\n // Init the element's event structure and main handler, if this is the first\n if (!(events = elemData.events)) {\n events = elemData.events = Object.create(null);\n }\n if (!(eventHandle = elemData.handle)) {\n eventHandle = elemData.handle = function (e) {\n // Discard the second event of a jQuery.event.trigger() and\n // when an event is called after a page has unloaded\n return typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ? jQuery.event.dispatch.apply(elem, arguments) : undefined;\n };\n }\n\n // Handle multiple events separated by a space\n types = (types || \"\").match(rnothtmlwhite) || [\"\"];\n t = types.length;\n while (t--) {\n tmp = rtypenamespace.exec(types[t]) || [];\n type = origType = tmp[1];\n namespaces = (tmp[2] || \"\").split(\".\").sort();\n\n // There *must* be a type, no attaching namespace-only handlers\n if (!type) {\n continue;\n }\n\n // If event changes its type, use the special event handlers for the changed type\n special = jQuery.event.special[type] || {};\n\n // If selector defined, determine special event api type, otherwise given type\n type = (selector ? special.delegateType : special.bindType) || type;\n\n // Update special based on newly reset type\n special = jQuery.event.special[type] || {};\n\n // handleObj is passed to all event handlers\n handleObj = jQuery.extend({\n type: type,\n origType: origType,\n data: data,\n handler: handler,\n guid: handler.guid,\n selector: selector,\n needsContext: selector && jQuery.expr.match.needsContext.test(selector),\n namespace: namespaces.join(\".\")\n }, handleObjIn);\n\n // Init the event handler queue if we're the first\n if (!(handlers = events[type])) {\n handlers = events[type] = [];\n handlers.delegateCount = 0;\n\n // Only use addEventListener if the special events handler returns false\n if (!special.setup || special.setup.call(elem, data, namespaces, eventHandle) === false) {\n if (elem.addEventListener) {\n elem.addEventListener(type, eventHandle);\n }\n }\n }\n if (special.add) {\n special.add.call(elem, handleObj);\n if (!handleObj.handler.guid) {\n handleObj.handler.guid = handler.guid;\n }\n }\n\n // Add to the element's handler list, delegates in front\n if (selector) {\n handlers.splice(handlers.delegateCount++, 0, handleObj);\n } else {\n handlers.push(handleObj);\n }\n\n // Keep track of which events have ever been used, for event optimization\n jQuery.event.global[type] = true;\n }\n },\n // Detach an event or set of events from an element\n remove: function (elem, types, handler, selector, mappedTypes) {\n var j,\n origCount,\n tmp,\n events,\n t,\n handleObj,\n special,\n handlers,\n type,\n namespaces,\n origType,\n elemData = dataPriv.hasData(elem) && dataPriv.get(elem);\n if (!elemData || !(events = elemData.events)) {\n return;\n }\n\n // Once for each type.namespace in types; type may be omitted\n types = (types || \"\").match(rnothtmlwhite) || [\"\"];\n t = types.length;\n while (t--) {\n tmp = rtypenamespace.exec(types[t]) || [];\n type = origType = tmp[1];\n namespaces = (tmp[2] || \"\").split(\".\").sort();\n\n // Unbind all events (on this namespace, if provided) for the element\n if (!type) {\n for (type in events) {\n jQuery.event.remove(elem, type + types[t], handler, selector, true);\n }\n continue;\n }\n special = jQuery.event.special[type] || {};\n type = (selector ? special.delegateType : special.bindType) || type;\n handlers = events[type] || [];\n tmp = tmp[2] && new RegExp(\"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\");\n\n // Remove matching events\n origCount = j = handlers.length;\n while (j--) {\n handleObj = handlers[j];\n if ((mappedTypes || origType === handleObj.origType) && (!handler || handler.guid === handleObj.guid) && (!tmp || tmp.test(handleObj.namespace)) && (!selector || selector === handleObj.selector || selector === \"**\" && handleObj.selector)) {\n handlers.splice(j, 1);\n if (handleObj.selector) {\n handlers.delegateCount--;\n }\n if (special.remove) {\n special.remove.call(elem, handleObj);\n }\n }\n }\n\n // Remove generic event handler if we removed something and no more handlers exist\n // (avoids potential for endless recursion during removal of special event handlers)\n if (origCount && !handlers.length) {\n if (!special.teardown || special.teardown.call(elem, namespaces, elemData.handle) === false) {\n jQuery.removeEvent(elem, type, elemData.handle);\n }\n delete events[type];\n }\n }\n\n // Remove data and the expando if it's no longer used\n if (jQuery.isEmptyObject(events)) {\n dataPriv.remove(elem, \"handle events\");\n }\n },\n dispatch: function (nativeEvent) {\n var i,\n j,\n ret,\n matched,\n handleObj,\n handlerQueue,\n args = new Array(arguments.length),\n // Make a writable jQuery.Event from the native event object\n event = jQuery.event.fix(nativeEvent),\n handlers = (dataPriv.get(this, \"events\") || Object.create(null))[event.type] || [],\n special = jQuery.event.special[event.type] || {};\n\n // Use the fix-ed jQuery.Event rather than the (read-only) native event\n args[0] = event;\n for (i = 1; i < arguments.length; i++) {\n args[i] = arguments[i];\n }\n event.delegateTarget = this;\n\n // Call the preDispatch hook for the mapped type, and let it bail if desired\n if (special.preDispatch && special.preDispatch.call(this, event) === false) {\n return;\n }\n\n // Determine handlers\n handlerQueue = jQuery.event.handlers.call(this, event, handlers);\n\n // Run delegates first; they may want to stop propagation beneath us\n i = 0;\n while ((matched = handlerQueue[i++]) && !event.isPropagationStopped()) {\n event.currentTarget = matched.elem;\n j = 0;\n while ((handleObj = matched.handlers[j++]) && !event.isImmediatePropagationStopped()) {\n // If the event is namespaced, then each handler is only invoked if it is\n // specially universal or its namespaces are a superset of the event's.\n if (!event.rnamespace || handleObj.namespace === false || event.rnamespace.test(handleObj.namespace)) {\n event.handleObj = handleObj;\n event.data = handleObj.data;\n ret = ((jQuery.event.special[handleObj.origType] || {}).handle || handleObj.handler).apply(matched.elem, args);\n if (ret !== undefined) {\n if ((event.result = ret) === false) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n }\n }\n }\n\n // Call the postDispatch hook for the mapped type\n if (special.postDispatch) {\n special.postDispatch.call(this, event);\n }\n return event.result;\n },\n handlers: function (event, handlers) {\n var i,\n handleObj,\n sel,\n matchedHandlers,\n matchedSelectors,\n handlerQueue = [],\n delegateCount = handlers.delegateCount,\n cur = event.target;\n\n // Find delegate handlers\n if (delegateCount &&\n // Support: IE <=9\n // Black-hole SVG instance trees (trac-13180)\n cur.nodeType &&\n // Support: Firefox <=42\n // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n // Support: IE 11 only\n // ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n !(event.type === \"click\" && event.button >= 1)) {\n for (; cur !== this; cur = cur.parentNode || this) {\n // Don't check non-elements (trac-13208)\n // Don't process clicks on disabled elements (trac-6911, trac-8165, trac-11382, trac-11764)\n if (cur.nodeType === 1 && !(event.type === \"click\" && cur.disabled === true)) {\n matchedHandlers = [];\n matchedSelectors = {};\n for (i = 0; i < delegateCount; i++) {\n handleObj = handlers[i];\n\n // Don't conflict with Object.prototype properties (trac-13203)\n sel = handleObj.selector + \" \";\n if (matchedSelectors[sel] === undefined) {\n matchedSelectors[sel] = handleObj.needsContext ? jQuery(sel, this).index(cur) > -1 : jQuery.find(sel, this, null, [cur]).length;\n }\n if (matchedSelectors[sel]) {\n matchedHandlers.push(handleObj);\n }\n }\n if (matchedHandlers.length) {\n handlerQueue.push({\n elem: cur,\n handlers: matchedHandlers\n });\n }\n }\n }\n }\n\n // Add the remaining (directly-bound) handlers\n cur = this;\n if (delegateCount < handlers.length) {\n handlerQueue.push({\n elem: cur,\n handlers: handlers.slice(delegateCount)\n });\n }\n return handlerQueue;\n },\n addProp: function (name, hook) {\n Object.defineProperty(jQuery.Event.prototype, name, {\n enumerable: true,\n configurable: true,\n get: isFunction(hook) ? function () {\n if (this.originalEvent) {\n return hook(this.originalEvent);\n }\n } : function () {\n if (this.originalEvent) {\n return this.originalEvent[name];\n }\n },\n set: function (value) {\n Object.defineProperty(this, name, {\n enumerable: true,\n configurable: true,\n writable: true,\n value: value\n });\n }\n });\n },\n fix: function (originalEvent) {\n return originalEvent[jQuery.expando] ? originalEvent : new jQuery.Event(originalEvent);\n },\n special: {\n load: {\n // Prevent triggered image.load events from bubbling to window.load\n noBubble: true\n },\n click: {\n // Utilize native event to ensure correct state for checkable inputs\n setup: function (data) {\n // For mutual compressibility with _default, replace `this` access with a local var.\n // `|| data` is dead code meant only to preserve the variable through minification.\n var el = this || data;\n\n // Claim the first handler\n if (rcheckableType.test(el.type) && el.click && nodeName(el, \"input\")) {\n // dataPriv.set( el, \"click\", ... )\n leverageNative(el, \"click\", true);\n }\n\n // Return false to allow normal processing in the caller\n return false;\n },\n trigger: function (data) {\n // For mutual compressibility with _default, replace `this` access with a local var.\n // `|| data` is dead code meant only to preserve the variable through minification.\n var el = this || data;\n\n // Force setup before triggering a click\n if (rcheckableType.test(el.type) && el.click && nodeName(el, \"input\")) {\n leverageNative(el, \"click\");\n }\n\n // Return non-false to allow normal event-path propagation\n return true;\n },\n // For cross-browser consistency, suppress native .click() on links\n // Also prevent it if we're currently inside a leveraged native-event stack\n _default: function (event) {\n var target = event.target;\n return rcheckableType.test(target.type) && target.click && nodeName(target, \"input\") && dataPriv.get(target, \"click\") || nodeName(target, \"a\");\n }\n },\n beforeunload: {\n postDispatch: function (event) {\n // Support: Firefox 20+\n // Firefox doesn't alert if the returnValue field is not set.\n if (event.result !== undefined && event.originalEvent) {\n event.originalEvent.returnValue = event.result;\n }\n }\n }\n }\n };\n\n // Ensure the presence of an event listener that handles manually-triggered\n // synthetic events by interrupting progress until reinvoked in response to\n // *native* events that it fires directly, ensuring that state changes have\n // already occurred before other listeners are invoked.\n function leverageNative(el, type, isSetup) {\n // Missing `isSetup` indicates a trigger call, which must force setup through jQuery.event.add\n if (!isSetup) {\n if (dataPriv.get(el, type) === undefined) {\n jQuery.event.add(el, type, returnTrue);\n }\n return;\n }\n\n // Register the controller as a special universal handler for all event namespaces\n dataPriv.set(el, type, false);\n jQuery.event.add(el, type, {\n namespace: false,\n handler: function (event) {\n var result,\n saved = dataPriv.get(this, type);\n if (event.isTrigger & 1 && this[type]) {\n // Interrupt processing of the outer synthetic .trigger()ed event\n if (!saved) {\n // Store arguments for use when handling the inner native event\n // There will always be at least one argument (an event object), so this array\n // will not be confused with a leftover capture object.\n saved = slice.call(arguments);\n dataPriv.set(this, type, saved);\n\n // Trigger the native event and capture its result\n this[type]();\n result = dataPriv.get(this, type);\n dataPriv.set(this, type, false);\n if (saved !== result) {\n // Cancel the outer synthetic event\n event.stopImmediatePropagation();\n event.preventDefault();\n return result;\n }\n\n // If this is an inner synthetic event for an event with a bubbling surrogate\n // (focus or blur), assume that the surrogate already propagated from triggering\n // the native event and prevent that from happening again here.\n // This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n // bubbling surrogate propagates *after* the non-bubbling base), but that seems\n // less bad than duplication.\n } else if ((jQuery.event.special[type] || {}).delegateType) {\n event.stopPropagation();\n }\n\n // If this is a native event triggered above, everything is now in order\n // Fire an inner synthetic event with the original arguments\n } else if (saved) {\n // ...and capture the result\n dataPriv.set(this, type, jQuery.event.trigger(saved[0], saved.slice(1), this));\n\n // Abort handling of the native event by all jQuery handlers while allowing\n // native handlers on the same element to run. On target, this is achieved\n // by stopping immediate propagation just on the jQuery event. However,\n // the native event is re-wrapped by a jQuery one on each level of the\n // propagation so the only way to stop it for jQuery is to stop it for\n // everyone via native `stopPropagation()`. This is not a problem for\n // focus/blur which don't bubble, but it does also stop click on checkboxes\n // and radios. We accept this limitation.\n event.stopPropagation();\n event.isImmediatePropagationStopped = returnTrue;\n }\n }\n });\n }\n jQuery.removeEvent = function (elem, type, handle) {\n // This \"if\" is needed for plain objects\n if (elem.removeEventListener) {\n elem.removeEventListener(type, handle);\n }\n };\n jQuery.Event = function (src, props) {\n // Allow instantiation without the 'new' keyword\n if (!(this instanceof jQuery.Event)) {\n return new jQuery.Event(src, props);\n }\n\n // Event object\n if (src && src.type) {\n this.originalEvent = src;\n this.type = src.type;\n\n // Events bubbling up the document may have been marked as prevented\n // by a handler lower down the tree; reflect the correct value.\n this.isDefaultPrevented = src.defaultPrevented || src.defaultPrevented === undefined &&\n // Support: Android <=2.3 only\n src.returnValue === false ? returnTrue : returnFalse;\n\n // Create target properties\n // Support: Safari <=6 - 7 only\n // Target should not be a text node (trac-504, trac-13143)\n this.target = src.target && src.target.nodeType === 3 ? src.target.parentNode : src.target;\n this.currentTarget = src.currentTarget;\n this.relatedTarget = src.relatedTarget;\n\n // Event type\n } else {\n this.type = src;\n }\n\n // Put explicitly provided properties onto the event object\n if (props) {\n jQuery.extend(this, props);\n }\n\n // Create a timestamp if incoming event doesn't have one\n this.timeStamp = src && src.timeStamp || Date.now();\n\n // Mark it as fixed\n this[jQuery.expando] = true;\n };\n\n // jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n // https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\n jQuery.Event.prototype = {\n constructor: jQuery.Event,\n isDefaultPrevented: returnFalse,\n isPropagationStopped: returnFalse,\n isImmediatePropagationStopped: returnFalse,\n isSimulated: false,\n preventDefault: function () {\n var e = this.originalEvent;\n this.isDefaultPrevented = returnTrue;\n if (e && !this.isSimulated) {\n e.preventDefault();\n }\n },\n stopPropagation: function () {\n var e = this.originalEvent;\n this.isPropagationStopped = returnTrue;\n if (e && !this.isSimulated) {\n e.stopPropagation();\n }\n },\n stopImmediatePropagation: function () {\n var e = this.originalEvent;\n this.isImmediatePropagationStopped = returnTrue;\n if (e && !this.isSimulated) {\n e.stopImmediatePropagation();\n }\n this.stopPropagation();\n }\n };\n\n // Includes all common event props including KeyEvent and MouseEvent specific props\n jQuery.each({\n altKey: true,\n bubbles: true,\n cancelable: true,\n changedTouches: true,\n ctrlKey: true,\n detail: true,\n eventPhase: true,\n metaKey: true,\n pageX: true,\n pageY: true,\n shiftKey: true,\n view: true,\n \"char\": true,\n code: true,\n charCode: true,\n key: true,\n keyCode: true,\n button: true,\n buttons: true,\n clientX: true,\n clientY: true,\n offsetX: true,\n offsetY: true,\n pointerId: true,\n pointerType: true,\n screenX: true,\n screenY: true,\n targetTouches: true,\n toElement: true,\n touches: true,\n which: true\n }, jQuery.event.addProp);\n jQuery.each({\n focus: \"focusin\",\n blur: \"focusout\"\n }, function (type, delegateType) {\n function focusMappedHandler(nativeEvent) {\n if (document.documentMode) {\n // Support: IE 11+\n // Attach a single focusin/focusout handler on the document while someone wants\n // focus/blur. This is because the former are synchronous in IE while the latter\n // are async. In other browsers, all those handlers are invoked synchronously.\n\n // `handle` from private data would already wrap the event, but we need\n // to change the `type` here.\n var handle = dataPriv.get(this, \"handle\"),\n event = jQuery.event.fix(nativeEvent);\n event.type = nativeEvent.type === \"focusin\" ? \"focus\" : \"blur\";\n event.isSimulated = true;\n\n // First, handle focusin/focusout\n handle(nativeEvent);\n\n // ...then, handle focus/blur\n //\n // focus/blur don't bubble while focusin/focusout do; simulate the former by only\n // invoking the handler at the lower level.\n if (event.target === event.currentTarget) {\n // The setup part calls `leverageNative`, which, in turn, calls\n // `jQuery.event.add`, so event handle will already have been set\n // by this point.\n handle(event);\n }\n } else {\n // For non-IE browsers, attach a single capturing handler on the document\n // while someone wants focusin/focusout.\n jQuery.event.simulate(delegateType, nativeEvent.target, jQuery.event.fix(nativeEvent));\n }\n }\n jQuery.event.special[type] = {\n // Utilize native event if possible so blur/focus sequence is correct\n setup: function () {\n var attaches;\n\n // Claim the first handler\n // dataPriv.set( this, \"focus\", ... )\n // dataPriv.set( this, \"blur\", ... )\n leverageNative(this, type, true);\n if (document.documentMode) {\n // Support: IE 9 - 11+\n // We use the same native handler for focusin & focus (and focusout & blur)\n // so we need to coordinate setup & teardown parts between those events.\n // Use `delegateType` as the key as `type` is already used by `leverageNative`.\n attaches = dataPriv.get(this, delegateType);\n if (!attaches) {\n this.addEventListener(delegateType, focusMappedHandler);\n }\n dataPriv.set(this, delegateType, (attaches || 0) + 1);\n } else {\n // Return false to allow normal processing in the caller\n return false;\n }\n },\n trigger: function () {\n // Force setup before trigger\n leverageNative(this, type);\n\n // Return non-false to allow normal event-path propagation\n return true;\n },\n teardown: function () {\n var attaches;\n if (document.documentMode) {\n attaches = dataPriv.get(this, delegateType) - 1;\n if (!attaches) {\n this.removeEventListener(delegateType, focusMappedHandler);\n dataPriv.remove(this, delegateType);\n } else {\n dataPriv.set(this, delegateType, attaches);\n }\n } else {\n // Return false to indicate standard teardown should be applied\n return false;\n }\n },\n // Suppress native focus or blur if we're currently inside\n // a leveraged native-event stack\n _default: function (event) {\n return dataPriv.get(event.target, type);\n },\n delegateType: delegateType\n };\n\n // Support: Firefox <=44\n // Firefox doesn't have focus(in | out) events\n // Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n //\n // Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n // focus(in | out) events fire after focus & blur events,\n // which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n // Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\n //\n // Support: IE 9 - 11+\n // To preserve relative focusin/focus & focusout/blur event order guaranteed on the 3.x branch,\n // attach a single handler for both events in IE.\n jQuery.event.special[delegateType] = {\n setup: function () {\n // Handle: regular nodes (via `this.ownerDocument`), window\n // (via `this.document`) & document (via `this`).\n var doc = this.ownerDocument || this.document || this,\n dataHolder = document.documentMode ? this : doc,\n attaches = dataPriv.get(dataHolder, delegateType);\n\n // Support: IE 9 - 11+\n // We use the same native handler for focusin & focus (and focusout & blur)\n // so we need to coordinate setup & teardown parts between those events.\n // Use `delegateType` as the key as `type` is already used by `leverageNative`.\n if (!attaches) {\n if (document.documentMode) {\n this.addEventListener(delegateType, focusMappedHandler);\n } else {\n doc.addEventListener(type, focusMappedHandler, true);\n }\n }\n dataPriv.set(dataHolder, delegateType, (attaches || 0) + 1);\n },\n teardown: function () {\n var doc = this.ownerDocument || this.document || this,\n dataHolder = document.documentMode ? this : doc,\n attaches = dataPriv.get(dataHolder, delegateType) - 1;\n if (!attaches) {\n if (document.documentMode) {\n this.removeEventListener(delegateType, focusMappedHandler);\n } else {\n doc.removeEventListener(type, focusMappedHandler, true);\n }\n dataPriv.remove(dataHolder, delegateType);\n } else {\n dataPriv.set(dataHolder, delegateType, attaches);\n }\n }\n };\n });\n\n // Create mouseenter/leave events using mouseover/out and event-time checks\n // so that event delegation works in jQuery.\n // Do the same for pointerenter/pointerleave and pointerover/pointerout\n //\n // Support: Safari 7 only\n // Safari sends mouseenter too often; see:\n // https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n // for the description of the bug (it existed in older Chrome versions as well).\n jQuery.each({\n mouseenter: \"mouseover\",\n mouseleave: \"mouseout\",\n pointerenter: \"pointerover\",\n pointerleave: \"pointerout\"\n }, function (orig, fix) {\n jQuery.event.special[orig] = {\n delegateType: fix,\n bindType: fix,\n handle: function (event) {\n var ret,\n target = this,\n related = event.relatedTarget,\n handleObj = event.handleObj;\n\n // For mouseenter/leave call the handler if related is outside the target.\n // NB: No relatedTarget if the mouse left/entered the browser window\n if (!related || related !== target && !jQuery.contains(target, related)) {\n event.type = handleObj.origType;\n ret = handleObj.handler.apply(this, arguments);\n event.type = fix;\n }\n return ret;\n }\n };\n });\n jQuery.fn.extend({\n on: function (types, selector, data, fn) {\n return on(this, types, selector, data, fn);\n },\n one: function (types, selector, data, fn) {\n return on(this, types, selector, data, fn, 1);\n },\n off: function (types, selector, fn) {\n var handleObj, type;\n if (types && types.preventDefault && types.handleObj) {\n // ( event ) dispatched jQuery.Event\n handleObj = types.handleObj;\n jQuery(types.delegateTarget).off(handleObj.namespace ? handleObj.origType + \".\" + handleObj.namespace : handleObj.origType, handleObj.selector, handleObj.handler);\n return this;\n }\n if (typeof types === \"object\") {\n // ( types-object [, selector] )\n for (type in types) {\n this.off(type, selector, types[type]);\n }\n return this;\n }\n if (selector === false || typeof selector === \"function\") {\n // ( types [, fn] )\n fn = selector;\n selector = undefined;\n }\n if (fn === false) {\n fn = returnFalse;\n }\n return this.each(function () {\n jQuery.event.remove(this, types, fn, selector);\n });\n }\n });\n return jQuery;\n});","define([\"./core\", \"./core/access\", \"./core/camelCase\", \"./core/nodeName\", \"./var/rcssNum\", \"./css/var/rnumnonpx\", \"./css/var/rcustomProp\", \"./css/var/cssExpand\", \"./css/var/getStyles\", \"./css/var/swap\", \"./css/curCSS\", \"./css/adjustCSS\", \"./css/addGetHookIf\", \"./css/support\", \"./css/finalPropName\", \"./core/init\", \"./core/ready\", \"./selector\" // contains\n], function (jQuery, access, camelCase, nodeName, rcssNum, rnumnonpx, rcustomProp, cssExpand, getStyles, swap, curCSS, adjustCSS, addGetHookIf, support, finalPropName) {\n \"use strict\";\n\n var\n // Swappable if display is none or starts with table\n // except \"table\", \"table-cell\", or \"table-caption\"\n // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n rdisplayswap = /^(none|table(?!-c[ea]).+)/,\n cssShow = {\n position: \"absolute\",\n visibility: \"hidden\",\n display: \"block\"\n },\n cssNormalTransform = {\n letterSpacing: \"0\",\n fontWeight: \"400\"\n };\n function setPositiveNumber(_elem, value, subtract) {\n // Any relative (+/-) values have already been\n // normalized at this point\n var matches = rcssNum.exec(value);\n return matches ?\n // Guard against undefined \"subtract\", e.g., when used as in cssHooks\n Math.max(0, matches[2] - (subtract || 0)) + (matches[3] || \"px\") : value;\n }\n function boxModelAdjustment(elem, dimension, box, isBorderBox, styles, computedVal) {\n var i = dimension === \"width\" ? 1 : 0,\n extra = 0,\n delta = 0,\n marginDelta = 0;\n\n // Adjustment may not be necessary\n if (box === (isBorderBox ? \"border\" : \"content\")) {\n return 0;\n }\n for (; i < 4; i += 2) {\n // Both box models exclude margin\n // Count margin delta separately to only add it after scroll gutter adjustment.\n // This is needed to make negative margins work with `outerHeight( true )` (gh-3982).\n if (box === \"margin\") {\n marginDelta += jQuery.css(elem, box + cssExpand[i], true, styles);\n }\n\n // If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n if (!isBorderBox) {\n // Add padding\n delta += jQuery.css(elem, \"padding\" + cssExpand[i], true, styles);\n\n // For \"border\" or \"margin\", add border\n if (box !== \"padding\") {\n delta += jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles);\n\n // But still keep track of it otherwise\n } else {\n extra += jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles);\n }\n\n // If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n // \"padding\" or \"margin\"\n } else {\n // For \"content\", subtract padding\n if (box === \"content\") {\n delta -= jQuery.css(elem, \"padding\" + cssExpand[i], true, styles);\n }\n\n // For \"content\" or \"padding\", subtract border\n if (box !== \"margin\") {\n delta -= jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles);\n }\n }\n }\n\n // Account for positive content-box scroll gutter when requested by providing computedVal\n if (!isBorderBox && computedVal >= 0) {\n // offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n // Assuming integer scroll gutter, subtract the rest and round down\n delta += Math.max(0, Math.ceil(elem[\"offset\" + dimension[0].toUpperCase() + dimension.slice(1)] - computedVal - delta - extra - 0.5\n\n // If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n // Use an explicit zero to avoid NaN (gh-3964)\n )) || 0;\n }\n return delta + marginDelta;\n }\n function getWidthOrHeight(elem, dimension, extra) {\n // Start with computed style\n var styles = getStyles(elem),\n // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n // Fake content-box until we know it's needed to know the true value.\n boxSizingNeeded = !support.boxSizingReliable() || extra,\n isBorderBox = boxSizingNeeded && jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\",\n valueIsBorderBox = isBorderBox,\n val = curCSS(elem, dimension, styles),\n offsetProp = \"offset\" + dimension[0].toUpperCase() + dimension.slice(1);\n\n // Support: Firefox <=54\n // Return a confounding non-pixel value or feign ignorance, as appropriate.\n if (rnumnonpx.test(val)) {\n if (!extra) {\n return val;\n }\n val = \"auto\";\n }\n\n // Support: IE 9 - 11 only\n // Use offsetWidth/offsetHeight for when box sizing is unreliable.\n // In those cases, the computed value can be trusted to be border-box.\n if ((!support.boxSizingReliable() && isBorderBox ||\n // Support: IE 10 - 11+, Edge 15 - 18+\n // IE/Edge misreport `getComputedStyle` of table rows with width/height\n // set in CSS while `offset*` properties report correct values.\n // Interestingly, in some cases IE 9 doesn't suffer from this issue.\n !support.reliableTrDimensions() && nodeName(elem, \"tr\") ||\n // Fall back to offsetWidth/offsetHeight when value is \"auto\"\n // This happens for inline elements with no explicit setting (gh-3571)\n val === \"auto\" ||\n // Support: Android <=4.1 - 4.3 only\n // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n !parseFloat(val) && jQuery.css(elem, \"display\", false, styles) === \"inline\") &&\n // Make sure the element is visible & connected\n elem.getClientRects().length) {\n isBorderBox = jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\";\n\n // Where available, offsetWidth/offsetHeight approximate border box dimensions.\n // Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n // retrieved value as a content box dimension.\n valueIsBorderBox = offsetProp in elem;\n if (valueIsBorderBox) {\n val = elem[offsetProp];\n }\n }\n\n // Normalize \"\" and auto\n val = parseFloat(val) || 0;\n\n // Adjust for the element's box model\n return val + boxModelAdjustment(elem, dimension, extra || (isBorderBox ? \"border\" : \"content\"), valueIsBorderBox, styles,\n // Provide the current computed size to request scroll gutter calculation (gh-3589)\n val) + \"px\";\n }\n jQuery.extend({\n // Add in style property hooks for overriding the default\n // behavior of getting and setting a style property\n cssHooks: {\n opacity: {\n get: function (elem, computed) {\n if (computed) {\n // We should always get a number back from opacity\n var ret = curCSS(elem, \"opacity\");\n return ret === \"\" ? \"1\" : ret;\n }\n }\n }\n },\n // Don't automatically add \"px\" to these possibly-unitless properties\n cssNumber: {\n animationIterationCount: true,\n aspectRatio: true,\n borderImageSlice: true,\n columnCount: true,\n flexGrow: true,\n flexShrink: true,\n fontWeight: true,\n gridArea: true,\n gridColumn: true,\n gridColumnEnd: true,\n gridColumnStart: true,\n gridRow: true,\n gridRowEnd: true,\n gridRowStart: true,\n lineHeight: true,\n opacity: true,\n order: true,\n orphans: true,\n scale: true,\n widows: true,\n zIndex: true,\n zoom: true,\n // SVG-related\n fillOpacity: true,\n floodOpacity: true,\n stopOpacity: true,\n strokeMiterlimit: true,\n strokeOpacity: true\n },\n // Add in properties whose names you wish to fix before\n // setting or getting the value\n cssProps: {},\n // Get and set the style property on a DOM Node\n style: function (elem, name, value, extra) {\n // Don't set styles on text and comment nodes\n if (!elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style) {\n return;\n }\n\n // Make sure that we're working with the right name\n var ret,\n type,\n hooks,\n origName = camelCase(name),\n isCustomProp = rcustomProp.test(name),\n style = elem.style;\n\n // Make sure that we're working with the right name. We don't\n // want to query the value if it is a CSS custom property\n // since they are user-defined.\n if (!isCustomProp) {\n name = finalPropName(origName);\n }\n\n // Gets hook for the prefixed version, then unprefixed version\n hooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName];\n\n // Check if we're setting a value\n if (value !== undefined) {\n type = typeof value;\n\n // Convert \"+=\" or \"-=\" to relative numbers (trac-7345)\n if (type === \"string\" && (ret = rcssNum.exec(value)) && ret[1]) {\n value = adjustCSS(elem, name, ret);\n\n // Fixes bug trac-9237\n type = \"number\";\n }\n\n // Make sure that null and NaN values aren't set (trac-7116)\n if (value == null || value !== value) {\n return;\n }\n\n // If a number was passed in, add the unit (except for certain CSS properties)\n // The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n // \"px\" to a few hardcoded values.\n if (type === \"number\" && !isCustomProp) {\n value += ret && ret[3] || (jQuery.cssNumber[origName] ? \"\" : \"px\");\n }\n\n // background-* props affect original clone's values\n if (!support.clearCloneStyle && value === \"\" && name.indexOf(\"background\") === 0) {\n style[name] = \"inherit\";\n }\n\n // If a hook was provided, use that value, otherwise just set the specified value\n if (!hooks || !(\"set\" in hooks) || (value = hooks.set(elem, value, extra)) !== undefined) {\n if (isCustomProp) {\n style.setProperty(name, value);\n } else {\n style[name] = value;\n }\n }\n } else {\n // If a hook was provided get the non-computed value from there\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, false, extra)) !== undefined) {\n return ret;\n }\n\n // Otherwise just get the value from the style object\n return style[name];\n }\n },\n css: function (elem, name, extra, styles) {\n var val,\n num,\n hooks,\n origName = camelCase(name),\n isCustomProp = rcustomProp.test(name);\n\n // Make sure that we're working with the right name. We don't\n // want to modify the value if it is a CSS custom property\n // since they are user-defined.\n if (!isCustomProp) {\n name = finalPropName(origName);\n }\n\n // Try prefixed name followed by the unprefixed name\n hooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName];\n\n // If a hook was provided get the computed value from there\n if (hooks && \"get\" in hooks) {\n val = hooks.get(elem, true, extra);\n }\n\n // Otherwise, if a way to get the computed value exists, use that\n if (val === undefined) {\n val = curCSS(elem, name, styles);\n }\n\n // Convert \"normal\" to computed value\n if (val === \"normal\" && name in cssNormalTransform) {\n val = cssNormalTransform[name];\n }\n\n // Make numeric if forced or a qualifier was provided and val looks numeric\n if (extra === \"\" || extra) {\n num = parseFloat(val);\n return extra === true || isFinite(num) ? num || 0 : val;\n }\n return val;\n }\n });\n jQuery.each([\"height\", \"width\"], function (_i, dimension) {\n jQuery.cssHooks[dimension] = {\n get: function (elem, computed, extra) {\n if (computed) {\n // Certain elements can have dimension info if we invisibly show them\n // but it must have a current display style that would benefit\n return rdisplayswap.test(jQuery.css(elem, \"display\")) && (\n // Support: Safari 8+\n // Table columns in Safari have non-zero offsetWidth & zero\n // getBoundingClientRect().width unless display is changed.\n // Support: IE <=11 only\n // Running getBoundingClientRect on a disconnected node\n // in IE throws an error.\n !elem.getClientRects().length || !elem.getBoundingClientRect().width) ? swap(elem, cssShow, function () {\n return getWidthOrHeight(elem, dimension, extra);\n }) : getWidthOrHeight(elem, dimension, extra);\n }\n },\n set: function (elem, value, extra) {\n var matches,\n styles = getStyles(elem),\n // Only read styles.position if the test has a chance to fail\n // to avoid forcing a reflow.\n scrollboxSizeBuggy = !support.scrollboxSize() && styles.position === \"absolute\",\n // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n boxSizingNeeded = scrollboxSizeBuggy || extra,\n isBorderBox = boxSizingNeeded && jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\",\n subtract = extra ? boxModelAdjustment(elem, dimension, extra, isBorderBox, styles) : 0;\n\n // Account for unreliable border-box dimensions by comparing offset* to computed and\n // faking a content-box to get border and padding (gh-3699)\n if (isBorderBox && scrollboxSizeBuggy) {\n subtract -= Math.ceil(elem[\"offset\" + dimension[0].toUpperCase() + dimension.slice(1)] - parseFloat(styles[dimension]) - boxModelAdjustment(elem, dimension, \"border\", false, styles) - 0.5);\n }\n\n // Convert to pixels if value adjustment is needed\n if (subtract && (matches = rcssNum.exec(value)) && (matches[3] || \"px\") !== \"px\") {\n elem.style[dimension] = value;\n value = jQuery.css(elem, dimension);\n }\n return setPositiveNumber(elem, value, subtract);\n }\n };\n });\n jQuery.cssHooks.marginLeft = addGetHookIf(support.reliableMarginLeft, function (elem, computed) {\n if (computed) {\n return (parseFloat(curCSS(elem, \"marginLeft\")) || elem.getBoundingClientRect().left - swap(elem, {\n marginLeft: 0\n }, function () {\n return elem.getBoundingClientRect().left;\n })) + \"px\";\n }\n });\n\n // These hooks are used by animate to expand properties\n jQuery.each({\n margin: \"\",\n padding: \"\",\n border: \"Width\"\n }, function (prefix, suffix) {\n jQuery.cssHooks[prefix + suffix] = {\n expand: function (value) {\n var i = 0,\n expanded = {},\n // Assumes a single number if not a string\n parts = typeof value === \"string\" ? value.split(\" \") : [value];\n for (; i < 4; i++) {\n expanded[prefix + cssExpand[i] + suffix] = parts[i] || parts[i - 2] || parts[0];\n }\n return expanded;\n }\n };\n if (prefix !== \"margin\") {\n jQuery.cssHooks[prefix + suffix].set = setPositiveNumber;\n }\n });\n jQuery.fn.extend({\n css: function (name, value) {\n return access(this, function (elem, name, value) {\n var styles,\n len,\n map = {},\n i = 0;\n if (Array.isArray(name)) {\n styles = getStyles(elem);\n len = name.length;\n for (; i < len; i++) {\n map[name[i]] = jQuery.css(elem, name[i], false, styles);\n }\n return map;\n }\n return value !== undefined ? jQuery.style(elem, name, value) : jQuery.css(elem, name);\n }, name, value, arguments.length > 1);\n }\n });\n return jQuery;\n});","/*\nTrix 1.3.5\nCopyright © 2024 37signals, LLC\nhttp://trix-editor.org/\n */\n(function () {}).call(this), function () {\n var t;\n null == window.Set && (window.Set = t = function () {\n function t() {\n this.clear();\n }\n return t.prototype.clear = function () {\n return this.values = [];\n }, t.prototype.has = function (t) {\n return -1 !== this.values.indexOf(t);\n }, t.prototype.add = function (t) {\n return this.has(t) || this.values.push(t), this;\n }, t.prototype[\"delete\"] = function (t) {\n var e;\n return -1 === (e = this.values.indexOf(t)) ? !1 : (this.values.splice(e, 1), !0);\n }, t.prototype.forEach = function () {\n var t;\n return (t = this.values).forEach.apply(t, arguments);\n }, t;\n }());\n}.call(this), function (t) {\n function e() {}\n function n(t, e) {\n return function () {\n t.apply(e, arguments);\n };\n }\n function i(t) {\n if (\"object\" != typeof this) throw new TypeError(\"Promises must be constructed via new\");\n if (\"function\" != typeof t) throw new TypeError(\"not a function\");\n this._state = 0, this._handled = !1, this._value = void 0, this._deferreds = [], c(t, this);\n }\n function o(t, e) {\n for (; 3 === t._state;) t = t._value;\n return 0 === t._state ? void t._deferreds.push(e) : (t._handled = !0, void h(function () {\n var n = 1 === t._state ? e.onFulfilled : e.onRejected;\n if (null === n) return void (1 === t._state ? r : s)(e.promise, t._value);\n var i;\n try {\n i = n(t._value);\n } catch (o) {\n return void s(e.promise, o);\n }\n r(e.promise, i);\n }));\n }\n function r(t, e) {\n try {\n if (e === t) throw new TypeError(\"A promise cannot be resolved with itself.\");\n if (e && (\"object\" == typeof e || \"function\" == typeof e)) {\n var o = e.then;\n if (e instanceof i) return t._state = 3, t._value = e, void a(t);\n if (\"function\" == typeof o) return void c(n(o, e), t);\n }\n t._state = 1, t._value = e, a(t);\n } catch (r) {\n s(t, r);\n }\n }\n function s(t, e) {\n t._state = 2, t._value = e, a(t);\n }\n function a(t) {\n 2 === t._state && 0 === t._deferreds.length && setTimeout(function () {\n t._handled || p(t._value);\n }, 1);\n for (var e = 0, n = t._deferreds.length; n > e; e++) o(t, t._deferreds[e]);\n t._deferreds = null;\n }\n function u(t, e, n) {\n this.onFulfilled = \"function\" == typeof t ? t : null, this.onRejected = \"function\" == typeof e ? e : null, this.promise = n;\n }\n function c(t, e) {\n var n = !1;\n try {\n t(function (t) {\n n || (n = !0, r(e, t));\n }, function (t) {\n n || (n = !0, s(e, t));\n });\n } catch (i) {\n if (n) return;\n n = !0, s(e, i);\n }\n }\n var l = setTimeout,\n h = \"function\" == typeof setImmediate && setImmediate || function (t) {\n l(t, 1);\n },\n p = function (t) {\n \"undefined\" != typeof console && console && console.warn(\"Possible Unhandled Promise Rejection:\", t);\n };\n i.prototype[\"catch\"] = function (t) {\n return this.then(null, t);\n }, i.prototype.then = function (t, n) {\n var r = new i(e);\n return o(this, new u(t, n, r)), r;\n }, i.all = function (t) {\n var e = Array.prototype.slice.call(t);\n return new i(function (t, n) {\n function i(r, s) {\n try {\n if (s && (\"object\" == typeof s || \"function\" == typeof s)) {\n var a = s.then;\n if (\"function\" == typeof a) return void a.call(s, function (t) {\n i(r, t);\n }, n);\n }\n e[r] = s, 0 === --o && t(e);\n } catch (u) {\n n(u);\n }\n }\n if (0 === e.length) return t([]);\n for (var o = e.length, r = 0; r < e.length; r++) i(r, e[r]);\n });\n }, i.resolve = function (t) {\n return t && \"object\" == typeof t && t.constructor === i ? t : new i(function (e) {\n e(t);\n });\n }, i.reject = function (t) {\n return new i(function (e, n) {\n n(t);\n });\n }, i.race = function (t) {\n return new i(function (e, n) {\n for (var i = 0, o = t.length; o > i; i++) t[i].then(e, n);\n });\n }, i._setImmediateFn = function (t) {\n h = t;\n }, i._setUnhandledRejectionFn = function (t) {\n p = t;\n }, \"undefined\" != typeof module && module.exports ? module.exports = i : t.Promise || (t.Promise = i);\n}(this), function () {\n var t = \"object\" == typeof window.customElements,\n e = \"function\" == typeof document.registerElement,\n n = t || e;\n n || (\n /**\n * @license\n * Copyright (c) 2014 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt\n */\n \"undefined\" == typeof WeakMap && !function () {\n var t = Object.defineProperty,\n e = Date.now() % 1e9,\n n = function () {\n this.name = \"__st\" + (1e9 * Math.random() >>> 0) + (e++ + \"__\");\n };\n n.prototype = {\n set: function (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 (t) {\n var e;\n return (e = t[this.name]) && e[0] === t ? e[1] : void 0;\n },\n \"delete\": function (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 (t) {\n var e = t[this.name];\n return e ? e[0] === t : !1;\n }\n }, window.WeakMap = n;\n }(), function (t) {\n function e(t) {\n A.push(t), b || (b = !0, g(i));\n }\n function n(t) {\n return window.ShadowDOMPolyfill && window.ShadowDOMPolyfill.wrapIfNeeded(t) || t;\n }\n function i() {\n b = !1;\n var t = A;\n A = [], t.sort(function (t, e) {\n return t.uid_ - e.uid_;\n });\n var e = !1;\n t.forEach(function (t) {\n var n = t.takeRecords();\n o(t), n.length && (t.callback_(n, t), e = !0);\n }), e && i();\n }\n function o(t) {\n t.nodes_.forEach(function (e) {\n var n = m.get(e);\n n && n.forEach(function (e) {\n e.observer === t && e.removeTransientObservers();\n });\n });\n }\n function r(t, e) {\n for (var n = t; n; n = n.parentNode) {\n var i = m.get(n);\n if (i) for (var o = 0; o < i.length; o++) {\n var r = i[o],\n s = r.options;\n if (n === t || s.subtree) {\n var a = e(s);\n a && r.enqueue(a);\n }\n }\n }\n }\n function s(t) {\n this.callback_ = t, this.nodes_ = [], this.records_ = [], this.uid_ = ++C;\n }\n function a(t, e) {\n this.type = t, this.target = e, this.addedNodes = [], this.removedNodes = [], this.previousSibling = null, this.nextSibling = null, this.attributeName = null, this.attributeNamespace = null, this.oldValue = null;\n }\n function u(t) {\n var e = new a(t.type, t.target);\n return e.addedNodes = t.addedNodes.slice(), e.removedNodes = t.removedNodes.slice(), e.previousSibling = t.previousSibling, e.nextSibling = t.nextSibling, e.attributeName = t.attributeName, e.attributeNamespace = t.attributeNamespace, e.oldValue = t.oldValue, e;\n }\n function c(t, e) {\n return x = new a(t, e);\n }\n function l(t) {\n return w ? w : (w = u(x), w.oldValue = t, w);\n }\n function h() {\n x = w = void 0;\n }\n function p(t) {\n return t === w || t === x;\n }\n function d(t, e) {\n return t === e ? t : w && p(t) ? w : null;\n }\n function f(t, e, n) {\n this.observer = t, this.target = e, this.options = n, this.transientObservedNodes = [];\n }\n if (!t.JsMutationObserver) {\n var g,\n m = new WeakMap();\n if (/Trident|Edge/.test(navigator.userAgent)) g = setTimeout;else if (window.setImmediate) g = window.setImmediate;else {\n var v = [],\n y = String(Math.random());\n window.addEventListener(\"message\", function (t) {\n if (t.data === y) {\n var e = v;\n v = [], e.forEach(function (t) {\n t();\n });\n }\n }), g = function (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 (t, e) {\n if (t = n(t), !e.childList && !e.attributes && !e.characterData || e.attributeOldValue && !e.attributes || e.attributeFilter && e.attributeFilter.length && !e.attributes || e.characterDataOldValue && !e.characterData) throw new SyntaxError();\n var i = m.get(t);\n i || m.set(t, i = []);\n for (var o, r = 0; r < i.length; r++) if (i[r].observer === this) {\n o = i[r], o.removeListeners(), o.options = e;\n break;\n }\n o || (o = new f(this, t, e), i.push(o), this.nodes_.push(t)), o.addListeners();\n },\n disconnect: function () {\n this.nodes_.forEach(function (t) {\n for (var e = m.get(t), n = 0; n < e.length; n++) {\n var i = e[n];\n if (i.observer === this) {\n i.removeListeners(), e.splice(n, 1);\n break;\n }\n }\n }, this), this.records_ = [];\n },\n takeRecords: function () {\n var t = this.records_;\n return this.records_ = [], t;\n }\n };\n var x, w;\n f.prototype = {\n enqueue: function (t) {\n var n = this.observer.records_,\n i = n.length;\n if (n.length > 0) {\n var o = n[i - 1],\n r = d(o, t);\n if (r) return void (n[i - 1] = r);\n } else e(this.observer);\n n[i] = t;\n },\n addListeners: function () {\n this.addListeners_(this.target);\n },\n addListeners_: function (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 () {\n this.removeListeners_(this.target);\n },\n removeListeners_: function (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 (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 () {\n var t = this.transientObservedNodes;\n this.transientObservedNodes = [], t.forEach(function (t) {\n this.removeListeners_(t);\n for (var e = m.get(t), n = 0; n < e.length; n++) if (e[n] === this) {\n e.splice(n, 1);\n break;\n }\n }, this);\n },\n handleEvent: function (t) {\n switch (t.stopImmediatePropagation(), t.type) {\n case \"DOMAttrModified\":\n var e = t.attrName,\n n = t.relatedNode.namespaceURI,\n i = t.target,\n o = new c(\"attributes\", i);\n o.attributeName = e, o.attributeNamespace = n;\n var s = t.attrChange === MutationEvent.ADDITION ? null : t.prevValue;\n r(i, function (t) {\n return !t.attributes || t.attributeFilter && t.attributeFilter.length && -1 === t.attributeFilter.indexOf(e) && -1 === t.attributeFilter.indexOf(n) ? void 0 : t.attributeOldValue ? l(s) : o;\n });\n break;\n case \"DOMCharacterDataModified\":\n var i = t.target,\n o = c(\"characterData\", i),\n s = t.prevValue;\n r(i, function (t) {\n return t.characterData ? t.characterDataOldValue ? l(s) : o : void 0;\n });\n break;\n case \"DOMNodeRemoved\":\n this.addTransientObserver(t.target);\n case \"DOMNodeInserted\":\n var a,\n u,\n p = t.target;\n \"DOMNodeInserted\" === t.type ? (a = [p], u = []) : (a = [], u = [p]);\n var d = p.previousSibling,\n f = p.nextSibling,\n o = c(\"childList\", t.target.parentNode);\n o.addedNodes = a, o.removedNodes = u, o.previousSibling = d, o.nextSibling = f, r(t.relatedNode, function (t) {\n return t.childList ? o : void 0;\n });\n }\n h();\n }\n }, t.JsMutationObserver = s, t.MutationObserver || (t.MutationObserver = s, s._isPolyfilled = !0);\n }\n }(self), function () {\n \"use strict\";\n\n if (!window.performance || !window.performance.now) {\n var t = Date.now();\n window.performance = {\n now: function () {\n return Date.now() - t;\n }\n };\n }\n window.requestAnimationFrame || (window.requestAnimationFrame = function () {\n var t = window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame;\n return t ? function (e) {\n return t(function () {\n e(performance.now());\n });\n } : function (t) {\n return window.setTimeout(t, 1e3 / 60);\n };\n }()), window.cancelAnimationFrame || (window.cancelAnimationFrame = function () {\n return window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || function (t) {\n clearTimeout(t);\n };\n }());\n var e = function () {\n var t = document.createEvent(\"Event\");\n return t.initEvent(\"foo\", !0, !0), t.preventDefault(), t.defaultPrevented;\n }();\n if (!e) {\n var n = Event.prototype.preventDefault;\n Event.prototype.preventDefault = function () {\n this.cancelable && (n.call(this), Object.defineProperty(this, \"defaultPrevented\", {\n get: function () {\n return !0;\n },\n configurable: !0\n }));\n };\n }\n var i = /Trident/.test(navigator.userAgent);\n if ((!window.CustomEvent || i && \"function\" != typeof window.CustomEvent) && (window.CustomEvent = function (t, e) {\n e = e || {};\n var n = document.createEvent(\"CustomEvent\");\n return n.initCustomEvent(t, Boolean(e.bubbles), Boolean(e.cancelable), e.detail), n;\n }, window.CustomEvent.prototype = window.Event.prototype), !window.Event || i && \"function\" != typeof window.Event) {\n var o = window.Event;\n window.Event = function (t, e) {\n e = e || {};\n var n = document.createEvent(\"Event\");\n return n.initEvent(t, Boolean(e.bubbles), Boolean(e.cancelable)), n;\n }, window.Event.prototype = o.prototype;\n }\n }(window.WebComponents), window.CustomElements = window.CustomElements || {\n flags: {}\n }, function (t) {\n var e = t.flags,\n n = [],\n i = function (t) {\n n.push(t);\n },\n o = function () {\n n.forEach(function (e) {\n e(t);\n });\n };\n t.addModule = i, t.initializeModules = o, t.hasNative = Boolean(document.registerElement), t.isIE = /Trident/.test(navigator.userAgent), t.useNative = !e.register && t.hasNative && !window.ShadowDOMPolyfill && (!window.HTMLImports || window.HTMLImports.useNative);\n }(window.CustomElements), window.CustomElements.addModule(function (t) {\n function e(t, e) {\n n(t, function (t) {\n return e(t) ? !0 : void i(t, e);\n }), i(t, e);\n }\n function n(t, e, i) {\n var o = t.firstElementChild;\n if (!o) for (o = t.firstChild; o && o.nodeType !== Node.ELEMENT_NODE;) o = o.nextSibling;\n for (; o;) e(o, i) !== !0 && n(o, e, i), o = o.nextElementSibling;\n return null;\n }\n function i(t, n) {\n for (var i = t.shadowRoot; i;) e(i, n), i = i.olderShadowRoot;\n }\n function o(t, e) {\n r(t, e, []);\n }\n function r(t, e, n) {\n if (t = window.wrap(t), !(n.indexOf(t) >= 0)) {\n n.push(t);\n for (var i, o = t.querySelectorAll(\"link[rel=\" + s + \"]\"), a = 0, u = o.length; u > a && (i = o[a]); a++) i.import && r(i.import, e, n);\n e(t);\n }\n }\n var s = window.HTMLImports ? window.HTMLImports.IMPORT_LINK_TYPE : \"none\";\n t.forDocumentTree = o, t.forSubtree = e;\n }), window.CustomElements.addModule(function (t) {\n function e(t, e) {\n return n(t, e) || i(t, e);\n }\n function n(e, n) {\n return t.upgrade(e, n) ? !0 : void (n && s(e));\n }\n function i(t, e) {\n b(t, function (t) {\n return n(t, e) ? !0 : void 0;\n });\n }\n function o(t) {\n w.push(t), x || (x = !0, setTimeout(r));\n }\n function r() {\n x = !1;\n for (var t, e = w, n = 0, i = e.length; i > n && (t = e[n]); n++) t();\n w = [];\n }\n function s(t) {\n C ? o(function () {\n a(t);\n }) : a(t);\n }\n function a(t) {\n t.__upgraded__ && !t.__attached && (t.__attached = !0, t.attachedCallback && t.attachedCallback());\n }\n function u(t) {\n c(t), b(t, function (t) {\n c(t);\n });\n }\n function c(t) {\n C ? o(function () {\n l(t);\n }) : l(t);\n }\n function l(t) {\n t.__upgraded__ && t.__attached && (t.__attached = !1, t.detachedCallback && t.detachedCallback());\n }\n function h(t) {\n for (var e = t, n = window.wrap(document); e;) {\n if (e == n) return !0;\n e = e.parentNode || e.nodeType === Node.DOCUMENT_FRAGMENT_NODE && e.host;\n }\n }\n function p(t) {\n if (t.shadowRoot && !t.shadowRoot.__watched) {\n y.dom && console.log(\"watching shadow-root for: \", t.localName);\n for (var e = t.shadowRoot; e;) g(e), e = e.olderShadowRoot;\n }\n }\n function d(t, n) {\n if (y.dom) {\n var i = n[0];\n if (i && \"childList\" === i.type && i.addedNodes && i.addedNodes) {\n for (var o = i.addedNodes[0]; o && o !== document && !o.host;) o = o.parentNode;\n var r = o && (o.URL || o._URL || o.host && o.host.localName) || \"\";\n r = r.split(\"/?\").shift().split(\"/\").pop();\n }\n console.group(\"mutations (%d) [%s]\", n.length, r || \"\");\n }\n var s = h(t);\n n.forEach(function (t) {\n \"childList\" === t.type && (E(t.addedNodes, function (t) {\n t.localName && e(t, s);\n }), E(t.removedNodes, function (t) {\n t.localName && u(t);\n }));\n }), y.dom && console.groupEnd();\n }\n function f(t) {\n for (t = window.wrap(t), t || (t = window.wrap(document)); t.parentNode;) t = t.parentNode;\n var e = t.__observer;\n e && (d(t, e.takeRecords()), r());\n }\n function g(t) {\n if (!t.__observer) {\n var e = new MutationObserver(d.bind(this, t));\n e.observe(t, {\n childList: !0,\n subtree: !0\n }), t.__observer = e;\n }\n }\n function m(t) {\n t = window.wrap(t), y.dom && console.group(\"upgradeDocument: \", t.baseURI.split(\"/\").pop());\n var n = t === window.wrap(document);\n e(t, n), g(t), y.dom && console.groupEnd();\n }\n function v(t) {\n A(t, m);\n }\n var y = t.flags,\n b = t.forSubtree,\n A = t.forDocumentTree,\n C = window.MutationObserver._isPolyfilled && y[\"throttle-attached\"];\n t.hasPolyfillMutations = C, t.hasThrottledAttached = C;\n var x = !1,\n w = [],\n E = Array.prototype.forEach.call.bind(Array.prototype.forEach),\n S = Element.prototype.createShadowRoot;\n S && (Element.prototype.createShadowRoot = function () {\n var t = S.call(this);\n return window.CustomElements.watchShadow(this), t;\n }), t.watchShadow = p, t.upgradeDocumentTree = v, t.upgradeDocument = m, t.upgradeSubtree = i, t.upgradeAll = e, t.attached = s, t.takeRecords = f;\n }), window.CustomElements.addModule(function (t) {\n function e(e, i) {\n if (\"template\" === e.localName && window.HTMLTemplateElement && HTMLTemplateElement.decorate && HTMLTemplateElement.decorate(e), !e.__upgraded__ && e.nodeType === Node.ELEMENT_NODE) {\n var o = e.getAttribute(\"is\"),\n r = t.getRegisteredDefinition(e.localName) || t.getRegisteredDefinition(o);\n if (r && (o && r.tag == e.localName || !o && !r.extends)) return n(e, r, i);\n }\n }\n function n(e, n, o) {\n return s.upgrade && console.group(\"upgrade:\", e.localName), n.is && e.setAttribute(\"is\", n.is), i(e, n), e.__upgraded__ = !0, r(e), o && t.attached(e), t.upgradeSubtree(e, o), s.upgrade && console.groupEnd(), e;\n }\n function i(t, e) {\n Object.__proto__ ? t.__proto__ = e.prototype : (o(t, e.prototype, e.native), t.__proto__ = e.prototype);\n }\n function o(t, e, n) {\n for (var i = {}, o = e; o !== n && o !== HTMLElement.prototype;) {\n for (var r, s = Object.getOwnPropertyNames(o), a = 0; r = s[a]; a++) i[r] || (Object.defineProperty(t, r, Object.getOwnPropertyDescriptor(o, r)), i[r] = 1);\n o = Object.getPrototypeOf(o);\n }\n }\n function r(t) {\n t.createdCallback && t.createdCallback();\n }\n var s = t.flags;\n t.upgrade = e, t.upgradeWithDefinition = n, t.implementPrototype = i;\n }), window.CustomElements.addModule(function (t) {\n function e(e, i) {\n var u = i || {};\n if (!e) throw new Error(\"document.registerElement: first argument `name` must not be empty\");\n if (e.indexOf(\"-\") < 0) throw new Error(\"document.registerElement: first argument ('name') must contain a dash ('-'). Argument provided was '\" + String(e) + \"'.\");\n if (o(e)) throw new Error(\"Failed to execute 'registerElement' on 'Document': Registration failed for type '\" + String(e) + \"'. The type name is invalid.\");\n if (c(e)) throw new Error(\"DuplicateDefinitionError: a type with name '\" + String(e) + \"' is already registered\");\n return u.prototype || (u.prototype = Object.create(HTMLElement.prototype)), u.__name = e.toLowerCase(), u.extends && (u.extends = u.extends.toLowerCase()), u.lifecycle = u.lifecycle || {}, u.ancestry = r(u.extends), s(u), a(u), n(u.prototype), l(u.__name, u), u.ctor = h(u), u.ctor.prototype = u.prototype, u.prototype.constructor = u.ctor, t.ready && m(document), u.ctor;\n }\n function n(t) {\n if (!t.setAttribute._polyfilled) {\n var e = t.setAttribute;\n t.setAttribute = function (t, n) {\n i.call(this, t, n, e);\n };\n var n = t.removeAttribute;\n t.removeAttribute = function (t) {\n i.call(this, t, null, n);\n }, t.setAttribute._polyfilled = !0;\n }\n }\n function i(t, e, n) {\n t = t.toLowerCase();\n var i = this.getAttribute(t);\n n.apply(this, arguments);\n var o = this.getAttribute(t);\n this.attributeChangedCallback && o !== i && this.attributeChangedCallback(t, i, o);\n }\n function o(t) {\n for (var e = 0; e < C.length; e++) if (t === C[e]) return !0;\n }\n function r(t) {\n var e = c(t);\n return e ? r(e.extends).concat([e]) : [];\n }\n function s(t) {\n for (var e, n = t.extends, i = 0; e = t.ancestry[i]; i++) n = e.is && e.tag;\n t.tag = n || t.__name, n && (t.is = t.__name);\n }\n function a(t) {\n if (!Object.__proto__) {\n var e = HTMLElement.prototype;\n if (t.is) {\n var n = document.createElement(t.tag);\n e = Object.getPrototypeOf(n);\n }\n for (var i, o = t.prototype, r = !1; o;) o == e && (r = !0), i = Object.getPrototypeOf(o), i && (o.__proto__ = i), o = i;\n r || console.warn(t.tag + \" prototype not found in prototype chain for \" + t.is), t.native = e;\n }\n }\n function u(t) {\n return y(E(t.tag), t);\n }\n function c(t) {\n return t ? x[t.toLowerCase()] : void 0;\n }\n function l(t, e) {\n x[t] = e;\n }\n function h(t) {\n return function () {\n return u(t);\n };\n }\n function p(t, e, n) {\n return t === w ? d(e, n) : S(t, e);\n }\n function d(t, e) {\n t && (t = t.toLowerCase()), e && (e = e.toLowerCase());\n var n = c(e || t);\n if (n) {\n if (t == n.tag && e == n.is) return new n.ctor();\n if (!e && !n.is) return new n.ctor();\n }\n var i;\n return e ? (i = d(t), i.setAttribute(\"is\", e), i) : (i = E(t), t.indexOf(\"-\") >= 0 && b(i, HTMLElement), i);\n }\n function f(t, e) {\n var n = t[e];\n t[e] = function () {\n var t = n.apply(this, arguments);\n return v(t), t;\n };\n }\n var g,\n m = (t.isIE, t.upgradeDocumentTree),\n v = t.upgradeAll,\n y = t.upgradeWithDefinition,\n b = t.implementPrototype,\n A = t.useNative,\n C = [\"annotation-xml\", \"color-profile\", \"font-face\", \"font-face-src\", \"font-face-uri\", \"font-face-format\", \"font-face-name\", \"missing-glyph\"],\n x = {},\n w = \"http://www.w3.org/1999/xhtml\",\n E = document.createElement.bind(document),\n S = document.createElementNS.bind(document);\n g = Object.__proto__ || A ? function (t, e) {\n return t instanceof e;\n } : function (t, e) {\n if (t instanceof e) return !0;\n for (var n = t; n;) {\n if (n === e.prototype) return !0;\n n = n.__proto__;\n }\n return !1;\n }, f(Node.prototype, \"cloneNode\"), f(document, \"importNode\"), document.registerElement = e, document.createElement = d, document.createElementNS = p, t.registry = x, t.instanceof = g, t.reservedTagList = C, t.getRegisteredDefinition = c, document.register = document.registerElement;\n }), function (t) {\n function e() {\n r(window.wrap(document)), window.CustomElements.ready = !0;\n var t = window.requestAnimationFrame || function (t) {\n setTimeout(t, 16);\n };\n t(function () {\n setTimeout(function () {\n window.CustomElements.readyTime = Date.now(), window.HTMLImports && (window.CustomElements.elapsed = window.CustomElements.readyTime - window.HTMLImports.readyTime), document.dispatchEvent(new CustomEvent(\"WebComponentsReady\", {\n bubbles: !0\n }));\n });\n });\n }\n var n = t.useNative,\n i = t.initializeModules;\n if (t.isIE, n) {\n var o = function () {};\n t.watchShadow = o, t.upgrade = o, t.upgradeAll = o, t.upgradeDocumentTree = o, t.upgradeSubtree = o, t.takeRecords = o, t.instanceof = function (t, e) {\n return t instanceof e;\n };\n } else i();\n var r = t.upgradeDocumentTree,\n s = t.upgradeDocument;\n if (window.wrap || (window.ShadowDOMPolyfill ? (window.wrap = window.ShadowDOMPolyfill.wrapIfNeeded, window.unwrap = window.ShadowDOMPolyfill.unwrapIfNeeded) : window.wrap = window.unwrap = function (t) {\n return t;\n }), window.HTMLImports && (window.HTMLImports.__importsParsingHook = function (t) {\n t.import && s(wrap(t.import));\n }), \"complete\" === document.readyState || t.flags.eager) e();else if (\"interactive\" !== document.readyState || window.attachEvent || window.HTMLImports && !window.HTMLImports.ready) {\n var a = window.HTMLImports && !window.HTMLImports.ready ? \"HTMLImportsLoaded\" : \"DOMContentLoaded\";\n window.addEventListener(a, e);\n } else e();\n }(window.CustomElements));\n}.call(this), function () {}.call(this), function () {\n var t = this;\n (function () {\n (function () {\n this.Trix = {\n VERSION: \"1.3.5\",\n ZERO_WIDTH_SPACE: \"\\ufeff\",\n NON_BREAKING_SPACE: \"\\xa0\",\n OBJECT_REPLACEMENT_CHARACTER: \"\\ufffc\",\n browser: {\n composesExistingText: /Android.*Chrome/.test(navigator.userAgent),\n forcesObjectResizing: /Trident.*rv:11/.test(navigator.userAgent),\n supportsInputEvents: function () {\n var t, e, n, i;\n if (\"undefined\" == typeof InputEvent) return !1;\n for (i = [\"data\", \"getTargetRanges\", \"inputType\"], t = 0, e = i.length; e > t; t++) if (n = i[t], !(n in InputEvent.prototype)) return !1;\n return !0;\n }()\n },\n config: {}\n };\n }).call(this);\n }).call(t);\n var e = t.Trix;\n (function () {\n (function () {\n e.BasicObject = function () {\n function t() {}\n var e, n, i;\n return t.proxyMethod = function (t) {\n var i, o, r, s, a;\n return r = n(t), i = r.name, s = r.toMethod, a = r.toProperty, o = r.optional, this.prototype[i] = function () {\n var t, n;\n return t = null != s ? o ? \"function\" == typeof this[s] ? this[s]() : void 0 : this[s]() : null != a ? this[a] : void 0, o ? (n = null != t ? t[i] : void 0, null != n ? e.call(n, t, arguments) : void 0) : (n = t[i], e.call(n, t, arguments));\n };\n }, n = function (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, e) {\n function i() {\n this.constructor = t;\n }\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n e.Object = function (n) {\n function i() {\n this.id = ++o;\n }\n var o;\n return t(i, n), o = 0, i.fromJSONString = function (t) {\n return this.fromJSON(JSON.parse(t));\n }, i.prototype.hasSameConstructorAs = function (t) {\n return this.constructor === (null != t ? t.constructor : void 0);\n }, i.prototype.isEqualTo = function (t) {\n return this === t;\n }, i.prototype.inspect = function () {\n var t, e, n;\n return t = function () {\n var t, i, o;\n i = null != (t = this.contentsForInspection()) ? t : {}, o = [];\n for (e in i) n = i[e], o.push(e + \"=\" + n);\n return o;\n }.call(this), \"#<\" + this.constructor.name + \":\" + this.id + (t.length ? \" \" + t.join(\", \") : \"\") + \">\";\n }, i.prototype.contentsForInspection = function () {}, i.prototype.toJSONString = function () {\n return JSON.stringify(this);\n }, i.prototype.toUTF16String = function () {\n return e.UTF16String.box(this);\n }, i.prototype.getCacheKey = function () {\n return this.id.toString();\n }, i;\n }(e.BasicObject);\n }.call(this), function () {\n e.extend = function (t) {\n var e, n;\n for (e in t) n = t[e], this[e] = n;\n return this;\n };\n }.call(this), function () {\n e.extend({\n defer: function (t) {\n return setTimeout(t, 1);\n }\n });\n }.call(this), function () {\n var t, n;\n e.extend({\n normalizeSpaces: function (t) {\n return t.replace(RegExp(\"\" + e.ZERO_WIDTH_SPACE, \"g\"), \"\").replace(RegExp(\"\" + e.NON_BREAKING_SPACE, \"g\"), \" \");\n },\n normalizeNewlines: function (t) {\n return t.replace(/\\r\\n/g, \"\\n\");\n },\n breakableWhitespacePattern: RegExp(\"[^\\\\S\" + e.NON_BREAKING_SPACE + \"]\"),\n squishBreakableWhitespace: function (t) {\n return t.replace(RegExp(\"\" + e.breakableWhitespacePattern.source, \"g\"), \" \").replace(/\\ {2,}/g, \" \");\n },\n summarizeStringChange: function (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, 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, e) {\n var n, i, o;\n for (n = 0, i = t.length, o = e.length; i > n && t.charAt(n).isEqualTo(e.charAt(n));) n++;\n for (; i > n + 1 && t.charAt(i - 1).isEqualTo(e.charAt(o - 1));) i--, o--;\n return {\n utf16String: t.slice(n, i),\n offset: n\n };\n };\n }.call(this), function () {\n e.extend({\n copyObject: function (t) {\n var e, n, i;\n null == t && (t = {}), n = {};\n for (e in t) i = t[e], n[e] = i;\n return n;\n },\n objectsAreEqual: function (t, e) {\n var n, i;\n if (null == t && (t = {}), null == e && (e = {}), Object.keys(t).length !== Object.keys(e).length) return !1;\n for (n in t) if (i = t[n], i !== e[n]) return !1;\n return !0;\n }\n });\n }.call(this), function () {\n var t = [].slice;\n e.extend({\n arraysAreEqual: function (t, e) {\n var n, i, o, r;\n if (null == t && (t = []), null == e && (e = []), t.length !== e.length) return !1;\n for (i = n = 0, o = t.length; o > n; i = ++n) if (r = t[i], r !== e[i]) return !1;\n return !0;\n },\n arrayStartsWith: function (t, n) {\n return null == t && (t = []), null == n && (n = []), e.arraysAreEqual(t.slice(0, n.length), n);\n },\n spliceArray: function () {\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 (t, e) {\n var n, i, o, r, s, a, u, c, l, h, p;\n for (null == t && (t = []), null == e && (e = []), n = [], h = [], o = new Set(), r = 0, u = t.length; u > r; r++) p = t[r], o.add(p);\n for (i = new Set(), s = 0, c = e.length; c > s; s++) p = e[s], i.add(p), o.has(p) || n.push(p);\n for (a = 0, l = t.length; l > a; a++) p = t[a], i.has(p) || h.push(p);\n return {\n added: n,\n removed: h\n };\n }\n });\n }.call(this), function () {\n var t, n, i, o;\n t = null, n = null, o = null, i = null, e.extend({\n getAllAttributeNames: function () {\n return null != t ? t : t = e.getTextAttributeNames().concat(e.getBlockAttributeNames());\n },\n getBlockConfig: function (t) {\n return e.config.blockAttributes[t];\n },\n getBlockAttributeNames: function () {\n return null != n ? n : n = Object.keys(e.config.blockAttributes);\n },\n getTextConfig: function (t) {\n return e.config.textAttributes[t];\n },\n getTextAttributeNames: function () {\n return null != o ? o : o = Object.keys(e.config.textAttributes);\n },\n getListAttributeNames: function () {\n var t, n;\n return null != i ? i : i = function () {\n var i, o;\n i = e.config.blockAttributes, o = [];\n for (t in i) n = i[t].listAttribute, null != n && o.push(n);\n return o;\n }();\n }\n });\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n return -1;\n };\n t = document.documentElement, n = null != (i = null != (o = null != (r = t.matchesSelector) ? r : t.webkitMatchesSelector) ? o : t.msMatchesSelector) ? i : t.mozMatchesSelector, e.extend({\n handleEvent: function (n, i) {\n var o, r, s, a, u, c, l, h, p, d, f, g;\n return h = null != i ? i : {}, c = h.onElement, u = h.matchingSelector, g = h.withCallback, a = h.inPhase, l = h.preventDefault, d = h.times, r = null != c ? c : t, p = u, o = g, f = \"capturing\" === a, s = function (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 (t, n) {\n return null == n && (n = {}), n.times = 1, e.handleEvent(t, n);\n },\n triggerEvent: function (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 (t, e) {\n return 1 === (null != t ? t.nodeType : void 0) ? n.call(t, e) : void 0;\n },\n findClosestElementFromNode: function (t, n) {\n var i, o, r;\n for (o = null != n ? n : {}, i = o.matchingSelector, r = o.untilNode; null != t && t.nodeType !== Node.ELEMENT_NODE;) t = t.parentNode;\n if (null != t) {\n if (null == i) return t;\n if (t.closest && null == r) return t.closest(i);\n for (; t && t !== r;) {\n if (e.elementMatchesSelector(t, i)) return t;\n t = t.parentNode;\n }\n }\n },\n findInnerElement: function (t) {\n for (; null != t ? t.firstElementChild : void 0;) t = t.firstElementChild;\n return t;\n },\n innerElementIsActive: function (t) {\n return document.activeElement !== t && e.elementContainsNode(t, document.activeElement);\n },\n elementContainsNode: function (t, e) {\n if (t && e) for (; e;) {\n if (e === t) return !0;\n e = e.parentNode;\n }\n },\n findNodeFromContainerAndOffset: function (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 (t, n) {\n var i;\n return i = e.findNodeFromContainerAndOffset(t, n), e.findClosestElementFromNode(i);\n },\n findChildIndexOfNode: function (t) {\n var e;\n if (null != t ? t.parentNode : void 0) {\n for (e = 0; t = t.previousSibling;) e++;\n return e;\n }\n },\n removeNode: function (t) {\n var e;\n return null != t && null != (e = t.parentNode) ? e.removeChild(t) : void 0;\n },\n walkTree: function (t, e) {\n var n, i, o, r, s;\n return o = null != e ? e : {}, i = o.onlyNodesOfType, r = o.usingFilter, n = o.expandEntityReferences, s = function () {\n switch (i) {\n case \"element\":\n return NodeFilter.SHOW_ELEMENT;\n case \"text\":\n return NodeFilter.SHOW_TEXT;\n case \"comment\":\n return NodeFilter.SHOW_COMMENT;\n default:\n return NodeFilter.SHOW_ALL;\n }\n }(), document.createTreeWalker(t, s, null != r ? r : null, n === !0);\n },\n tagName: function (t) {\n var e;\n return null != t && null != (e = t.tagName) ? e.toLowerCase() : void 0;\n },\n makeElement: function (t, e) {\n var n, i, o, r, s, a, u, c, l, h, p, d, f, g;\n if (null == e && (e = {}), \"object\" == typeof t ? (e = t, t = e.tagName) : e = {\n attributes: e\n }, o = document.createElement(t), null != e.editable && (null == e.attributes && (e.attributes = {}), e.attributes.contenteditable = e.editable), e.attributes) {\n l = e.attributes;\n for (a in l) g = l[a], o.setAttribute(a, g);\n }\n if (e.style) {\n h = e.style;\n for (a in h) g = h[a], o.style[a] = g;\n }\n if (e.data) {\n p = e.data;\n for (a in p) g = p[a], o.dataset[a] = g;\n }\n if (e.className) for (d = e.className.split(\" \"), r = 0, u = d.length; u > r; r++) i = d[r], o.classList.add(i);\n if (e.textContent && (o.textContent = e.textContent), e.childNodes) for (f = [].concat(e.childNodes), s = 0, c = f.length; c > s; s++) n = f[s], o.appendChild(n);\n return o;\n },\n getBlockTagNames: function () {\n var t, n;\n return null != e.blockTagNames ? e.blockTagNames : e.blockTagNames = function () {\n var i, o;\n i = e.config.blockAttributes, o = [];\n for (t in i) n = i[t].tagName, n && o.push(n);\n return o;\n }();\n },\n nodeIsBlockContainer: function (t) {\n return e.nodeIsBlockStartComment(null != t ? t.firstChild : void 0);\n },\n nodeProbablyIsBlockContainer: function (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 (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 (t) {\n return e.nodeIsCommentNode(t) && \"block\" === (null != t ? t.data : void 0);\n },\n nodeIsCommentNode: function (t) {\n return (null != t ? t.nodeType : void 0) === Node.COMMENT_NODE;\n },\n nodeIsCursorTarget: function (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 (t) {\n return e.elementMatchesSelector(t, e.AttachmentView.attachmentSelector);\n },\n nodeIsEmptyTextNode: function (t) {\n return e.nodeIsTextNode(t) && \"\" === (null != t ? t.data : void 0);\n },\n nodeIsTextNode: function (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 (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 (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 (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 (e) {\n return \"number\" == typeof e ? e : t(e);\n }, r = function (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 (t, e) {\n var n;\n return n = i(e), n.textContent = t.replace(/%t/g, e);\n }, i = function (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 () {\n var t;\n return (t = n(\"trix-csp-nonce\") || n(\"csp-nonce\")) ? t.getAttribute(\"content\") : void 0;\n }, n = function (t) {\n return document.head.querySelector(\"meta[name=\" + t + \"]\");\n }, s = function (t) {\n var e, n, i;\n n = {};\n for (e in t) i = t[e], n[e] = \"function\" == typeof i ? {\n value: i\n } : i;\n return n;\n }, a = function () {\n var t;\n return t = function (t) {\n var e, n, i, o, r;\n for (e = {}, r = [\"initialize\", \"connect\", \"disconnect\"], n = 0, o = r.length; o > n; n++) i = r[n], e[i] = t[i], delete t[i];\n return e;\n }, window.customElements ? function (e) {\n var n, i, o, r, s;\n return s = t(e), o = s.initialize, n = s.connect, i = s.disconnect, o && (r = n, n = function () {\n 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 n;\n return n = function () {\n return \"object\" == typeof Reflect ? Reflect.construct(HTMLElement, [], n) : HTMLElement.apply(this);\n }, Object.setPrototypeOf(n.prototype, HTMLElement.prototype), Object.setPrototypeOf(n, HTMLElement), Object.defineProperties(n.prototype, e), window.customElements.define(t, n), n;\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 () {\n var t;\n return t = window.getSelection(), t.rangeCount > 0 ? t : void 0;\n },\n getDOMRange: function () {\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 (t) {\n var n;\n return n = window.getSelection(), n.removeAllRanges(), n.addRange(t), e.selectionChangeObserver.update();\n }\n }), t = function (t) {\n return n(t.startContainer) || n(t.endContainer);\n }, n = function (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 (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 (e) {\n var n, i;\n if (null != (null != e ? e.setData : void 0)) {\n for (n in t) if (i = t[n], !function () {\n try {\n return e.setData(n, i), e.getData(n) === i;\n } catch (t) {}\n }()) return;\n return !0;\n }\n },\n keyEventIsKeyboardCommand: function () {\n return /Mac|^iP/.test(navigator.platform) ? function (t) {\n return t.metaKey;\n } : function (t) {\n return t.ctrlKey;\n };\n }()\n });\n }.call(this), function () {\n e.extend({\n RTL_PATTERN: /[\\u05BE\\u05C0\\u05C3\\u05D0-\\u05EA\\u05F0-\\u05F4\\u061B\\u061F\\u0621-\\u063A\\u0640-\\u064A\\u066D\\u0671-\\u06B7\\u06BA-\\u06BE\\u06C0-\\u06CE\\u06D0-\\u06D5\\u06E5\\u06E6\\u200F\\u202B\\u202E\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE72\\uFE74\\uFE76-\\uFEFC]/,\n getDirection: function () {\n var t, n, i, o;\n return n = e.makeElement(\"input\", {\n dir: \"auto\",\n name: \"x\",\n dirName: \"x.dir\"\n }), t = e.makeElement(\"form\"), t.appendChild(n), i = function () {\n try {\n return new FormData(t).has(n.dirName);\n } catch (e) {}\n }(), o = function () {\n try {\n return n.matches(\":dir(ltr),:dir(rtl)\");\n } catch (t) {}\n }(), i ? function (e) {\n return n.value = e, new FormData(t).get(n.dirName);\n } : o ? function (t) {\n return n.value = t, n.matches(\":dir(rtl)\") ? \"rtl\" : \"ltr\";\n } : function (t) {\n var n;\n return n = t.trim().charAt(0), e.RTL_PATTERN.test(n) ? \"rtl\" : \"ltr\";\n };\n }()\n });\n }.call(this), function () {}.call(this), function () {\n var t,\n n = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var o in e) i.call(e, o) && (t[o] = e[o]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty;\n t = e.arraysAreEqual, e.Hash = function (i) {\n function o(t) {\n null == t && (t = {}), this.values = s(t), o.__super__.constructor.apply(this, arguments);\n }\n var r, s, a, u, c;\n return n(o, i), o.fromCommonAttributesOfObjects = function (t) {\n var e, n, i, o, s, a;\n if (null == t && (t = []), !t.length) return new this();\n for (e = r(t[0]), i = e.getKeys(), a = t.slice(1), n = 0, o = a.length; o > n; n++) s = a[n], i = e.getKeysCommonToHash(r(s)), e = e.slice(i);\n return e;\n }, o.box = function (t) {\n return r(t);\n }, o.prototype.add = function (t, e) {\n return this.merge(u(t, e));\n }, o.prototype.remove = function (t) {\n return new e.Hash(s(this.values, t));\n }, o.prototype.get = function (t) {\n return this.values[t];\n }, o.prototype.has = function (t) {\n return t in this.values;\n }, o.prototype.merge = function (t) {\n return new e.Hash(a(this.values, c(t)));\n }, o.prototype.slice = function (t) {\n var n, i, o, r;\n for (r = {}, n = 0, o = t.length; o > n; n++) i = t[n], this.has(i) && (r[i] = this.values[i]);\n return new e.Hash(r);\n }, o.prototype.getKeys = function () {\n return Object.keys(this.values);\n }, o.prototype.getKeysCommonToHash = function (t) {\n var e, n, i, o, s;\n for (t = r(t), o = this.getKeys(), s = [], e = 0, i = o.length; i > e; e++) n = o[e], this.values[n] === t.values[n] && s.push(n);\n return s;\n }, o.prototype.isEqualTo = function (e) {\n return t(this.toArray(), r(e).toArray());\n }, o.prototype.isEmpty = function () {\n return 0 === this.getKeys().length;\n }, o.prototype.toArray = function () {\n var t, e, n;\n return (null != this.array ? this.array : this.array = function () {\n var i;\n e = [], i = this.values;\n for (t in i) n = i[t], e.push(t, n);\n return e;\n }.call(this)).slice(0);\n }, o.prototype.toObject = function () {\n return s(this.values);\n }, o.prototype.toJSON = function () {\n return this.toObject();\n }, o.prototype.contentsForInspection = function () {\n return {\n values: JSON.stringify(this.values)\n };\n }, u = function (t, e) {\n var n;\n return n = {}, n[t] = e, n;\n }, a = function (t, e) {\n var n, i, o;\n i = s(t);\n for (n in e) o = e[n], i[n] = o;\n return i;\n }, s = function (t, e) {\n var n, i, o, r, s;\n for (r = {}, s = Object.keys(t).sort(), n = 0, o = s.length; o > n; n++) i = s[n], i !== e && (r[i] = t[i]);\n return r;\n }, r = function (t) {\n return t instanceof e.Hash ? t : new e.Hash(t);\n }, c = function (t) {\n return t instanceof e.Hash ? t.values : t;\n }, o;\n }(e.Object);\n }.call(this), function () {\n e.ObjectGroup = function () {\n function t(t, e) {\n var n, i;\n this.objects = null != t ? t : [], i = e.depth, n = e.asTree, n && (this.depth = i, this.objects = this.constructor.groupObjects(this.objects, {\n asTree: n,\n depth: this.depth + 1\n }));\n }\n return t.groupObjects = function (t, e) {\n var n, i, o, r, s, a, u, c, l;\n for (null == t && (t = []), l = null != e ? e : {}, o = l.depth, n = l.asTree, n && null == o && (o = 0), c = [], s = 0, a = t.length; a > s; s++) {\n if (u = t[s], r) {\n if ((\"function\" == typeof u.canBeGrouped ? u.canBeGrouped(o) : void 0) && (\"function\" == typeof (i = r[r.length - 1]).canBeGroupedWith ? i.canBeGroupedWith(u, o) : void 0)) {\n r.push(u);\n continue;\n }\n c.push(new this(r, {\n depth: o,\n asTree: n\n })), r = null;\n }\n (\"function\" == typeof u.canBeGrouped ? u.canBeGrouped(o) : void 0) ? r = [u] : c.push(u);\n }\n return r && c.push(new this(r, {\n depth: o,\n asTree: n\n })), c;\n }, t.prototype.getObjects = function () {\n return this.objects;\n }, t.prototype.getDepth = function () {\n return this.depth;\n }, t.prototype.getCacheKey = function () {\n var t, e, n, i, o;\n for (e = [\"objectGroup\"], o = this.getObjects(), t = 0, n = o.length; n > t; t++) i = o[t], e.push(i.getCacheKey());\n return e.join(\"/\");\n }, t;\n }();\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n e.ObjectMap = function (e) {\n function n(t) {\n var e, n, i, o, r;\n for (null == t && (t = []), this.objects = {}, i = 0, o = t.length; o > i; i++) r = t[i], n = JSON.stringify(r), null == (e = this.objects)[n] && (e[n] = r);\n }\n return t(n, e), n.prototype.find = function (t) {\n var e;\n return e = JSON.stringify(t), this.objects[e];\n }, n;\n }(e.BasicObject);\n }.call(this), function () {\n e.ElementStore = function () {\n function t(t) {\n this.reset(t);\n }\n var e;\n return t.prototype.add = function (t) {\n var n;\n return n = e(t), this.elements[n] = t;\n }, t.prototype.remove = function (t) {\n var n, i;\n return n = e(t), (i = this.elements[n]) ? (delete this.elements[n], i) : void 0;\n }, t.prototype.reset = function (t) {\n var e, n, i;\n for (null == t && (t = []), this.elements = {}, n = 0, i = t.length; i > n; n++) e = t[n], this.add(e);\n return t;\n }, e = function (t) {\n return t.dataset.trixStoreKey;\n }, t;\n }();\n }.call(this), function () {}.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n e.Operation = function (e) {\n function n() {\n return n.__super__.constructor.apply(this, arguments);\n }\n return t(n, e), n.prototype.isPerforming = function () {\n return this.performing === !0;\n }, n.prototype.hasPerformed = function () {\n return this.performed === !0;\n }, n.prototype.hasSucceeded = function () {\n return this.performed && this.succeeded;\n }, n.prototype.hasFailed = function () {\n return this.performed && !this.succeeded;\n }, n.prototype.getPromise = function () {\n return null != this.promise ? this.promise : this.promise = new Promise(function (t) {\n return function (e, n) {\n return t.performing = !0, t.perform(function (i, o) {\n return t.succeeded = i, t.performing = !1, t.performed = !0, t.succeeded ? e(o) : n(o);\n });\n };\n }(this));\n }, n.prototype.perform = function (t) {\n return t(!1);\n }, n.prototype.release = function () {\n var t;\n return null != (t = this.promise) && \"function\" == typeof t.cancel && t.cancel(), this.promise = null, this.performing = null, this.performed = null, this.succeeded = null;\n }, n.proxyMethod(\"getPromise().then\"), n.proxyMethod(\"getPromise().catch\"), n;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) a.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n a = {}.hasOwnProperty;\n e.UTF16String = function (t) {\n function e(t, e) {\n this.ucs2String = t, this.codepoints = e, this.length = this.codepoints.length, this.ucs2Length = this.ucs2String.length;\n }\n return s(e, t), e.box = function (t) {\n return null == t && (t = \"\"), t instanceof this ? t : this.fromUCS2String(null != t ? t.toString() : void 0);\n }, e.fromUCS2String = function (t) {\n return new this(t, o(t));\n }, e.fromCodepoints = function (t) {\n return new this(r(t), t);\n }, e.prototype.offsetToUCS2Offset = function (t) {\n return r(this.codepoints.slice(0, Math.max(0, t))).length;\n }, e.prototype.offsetFromUCS2Offset = function (t) {\n return o(this.ucs2String.slice(0, Math.max(0, t))).length;\n }, e.prototype.slice = function () {\n var t;\n return this.constructor.fromCodepoints((t = this.codepoints).slice.apply(t, arguments));\n }, e.prototype.charAt = function (t) {\n return this.slice(t, t + 1);\n }, e.prototype.isEqualTo = function (t) {\n return this.constructor.box(t).ucs2String === this.ucs2String;\n }, e.prototype.toJSON = function () {\n return this.ucs2String;\n }, e.prototype.getCacheKey = function () {\n return this.ucs2String;\n }, e.prototype.toString = function () {\n return this.ucs2String;\n }, e;\n }(e.BasicObject), t = 1 === (\"function\" == typeof Array.from ? Array.from(\"\\ud83d\\udc7c\").length : void 0), n = null != (\"function\" == typeof \" \".codePointAt ? \" \".codePointAt(0) : void 0), i = \" \\ud83d\\udc7c\" === (\"function\" == typeof String.fromCodePoint ? String.fromCodePoint(32, 128124) : void 0), o = t && n ? function (t) {\n return Array.from(t).map(function (t) {\n return t.codePointAt(0);\n });\n } : function (t) {\n var e, n, i, o, r;\n for (o = [], e = 0, i = t.length; i > e;) r = t.charCodeAt(e++), r >= 55296 && 56319 >= r && i > e && (n = t.charCodeAt(e++), 56320 === (64512 & n) ? r = ((1023 & r) << 10) + (1023 & n) + 65536 : e--), o.push(r);\n return o;\n }, r = i ? function (t) {\n return String.fromCodePoint.apply(String, t);\n } : function (t) {\n var e, n, i;\n return e = function () {\n var e, o, r;\n for (r = [], e = 0, o = t.length; o > e; e++) i = t[e], n = \"\", i > 65535 && (i -= 65536, n += String.fromCharCode(i >>> 10 & 1023 | 55296), i = 56320 | 1023 & i), r.push(n + String.fromCharCode(i));\n return r;\n }(), e.join(\"\");\n };\n }.call(this), function () {}.call(this), function () {}.call(this), function () {\n e.config.lang = {\n attachFiles: \"Attach Files\",\n bold: \"Bold\",\n bullets: \"Bullets\",\n \"byte\": \"Byte\",\n bytes: \"Bytes\",\n captionPlaceholder: \"Add a caption\\u2026\",\n code: \"Code\",\n heading1: \"Heading\",\n indent: \"Increase Level\",\n italic: \"Italic\",\n link: \"Link\",\n numbers: \"Numbers\",\n outdent: \"Decrease Level\",\n quote: \"Quote\",\n redo: \"Redo\",\n remove: \"Remove\",\n strike: \"Strikethrough\",\n undo: \"Undo\",\n unlink: \"Unlink\",\n url: \"URL\",\n urlPlaceholder: \"Enter a URL\\u2026\",\n GB: \"GB\",\n KB: \"KB\",\n MB: \"MB\",\n PB: \"PB\",\n TB: \"TB\"\n };\n }.call(this), function () {\n e.config.css = {\n attachment: \"attachment\",\n attachmentCaption: \"attachment__caption\",\n attachmentCaptionEditor: \"attachment__caption-editor\",\n attachmentMetadata: \"attachment__metadata\",\n attachmentMetadataContainer: \"attachment__metadata-container\",\n attachmentName: \"attachment__name\",\n attachmentProgress: \"attachment__progress\",\n attachmentSize: \"attachment__size\",\n attachmentToolbar: \"attachment__toolbar\",\n attachmentGallery: \"attachment-gallery\"\n };\n }.call(this), function () {\n var t;\n e.config.blockAttributes = t = {\n \"default\": {\n tagName: \"div\",\n parse: !1\n },\n quote: {\n tagName: \"blockquote\",\n nestable: !0\n },\n heading1: {\n tagName: \"h1\",\n terminal: !0,\n breakOnReturn: !0,\n group: !1\n },\n code: {\n tagName: \"pre\",\n terminal: !0,\n text: {\n plaintext: !0\n }\n },\n bulletList: {\n tagName: \"ul\",\n parse: !1\n },\n bullet: {\n tagName: \"li\",\n listAttribute: \"bulletList\",\n group: !1,\n nestable: !0,\n test: function (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 (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 (e) {\n var i, o, r, s, a;\n switch (e) {\n case 0:\n return \"0 \" + t.bytes;\n case 1:\n return \"1 \" + t.byte;\n default:\n return i = function () {\n switch (this.prefix) {\n case \"SI\":\n return 1e3;\n case \"IEC\":\n return 1024;\n }\n }.call(this), o = Math.floor(Math.log(e) / Math.log(i)), r = e / Math.pow(i, o), s = r.toFixed(this.precision), a = s.replace(/0*$/, \"\").replace(/\\.$/, \"\"), a + \" \" + n[o];\n }\n }\n };\n }.call(this), function () {\n e.config.textAttributes = {\n bold: {\n tagName: \"strong\",\n inheritable: !0,\n parser: function (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 (t) {\n var e;\n return e = window.getComputedStyle(t), \"italic\" === e.fontStyle;\n }\n },\n href: {\n groupTagName: \"a\",\n parser: function (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 (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 (s) {\n var a, u, c, l, h, p, d, f, g, m, v, y, b, A, C, x, w;\n if (s instanceof e.Document) l = e.DocumentView.render(s);else {\n if (!(s instanceof HTMLElement)) throw new Error(\"unserializable object\");\n l = s.cloneNode(!0);\n }\n for (A = l.querySelectorAll(r), h = 0, g = A.length; g > h; h++) c = A[h], e.removeNode(c);\n for (p = 0, m = o.length; m > p; p++) for (a = o[p], C = l.querySelectorAll(\"[\" + a + \"]\"), d = 0, v = C.length; v > d; d++) c = C[d], c.removeAttribute(a);\n for (x = l.querySelectorAll(i), f = 0, y = x.length; y > f; f++) {\n c = x[f];\n try {\n u = JSON.parse(c.getAttribute(n)), c.removeAttribute(n);\n for (b in u) w = u[b], c.setAttribute(b, w);\n } catch (E) {}\n }\n return l.innerHTML.replace(t, \"\");\n }\n },\n deserializers: {\n \"application/json\": function (t) {\n return e.Document.fromJSONString(t);\n },\n \"text/html\": function (t) {\n return e.Document.fromHTML(t);\n }\n },\n serializeToContentType: function (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 (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 () {\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 () {\n return this.level2Enabled && e.browser.supportsInputEvents ? 2 : 0;\n },\n pickFiles: function (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 () {\n return \"\" === this.innerHTML ? this.innerHTML = e.config.toolbar.getDefaultHTML() : void 0;\n }\n });\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty,\n i = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n return -1;\n };\n e.ObjectView = function (n) {\n function o(t, e) {\n this.object = t, this.options = null != e ? e : {}, this.childViews = [], this.rootView = this;\n }\n return t(o, n), o.prototype.getNodes = function () {\n var t, e, n, i, o;\n for (null == this.nodes && (this.nodes = this.createNodes()), i = this.nodes, o = [], t = 0, e = i.length; e > t; t++) n = i[t], o.push(n.cloneNode(!0));\n return o;\n }, o.prototype.invalidate = function () {\n var t;\n return this.nodes = null, this.childViews = [], null != (t = this.parentView) ? t.invalidate() : void 0;\n }, o.prototype.invalidateViewForObject = function (t) {\n var e;\n return null != (e = this.findViewForObject(t)) ? e.invalidate() : void 0;\n }, o.prototype.findOrCreateCachedChildView = function (t, e) {\n var n;\n return (n = this.getCachedViewForObject(e)) ? this.recordChildView(n) : (n = this.createChildView.apply(this, arguments), this.cacheViewForObject(n, e)), n;\n }, o.prototype.createChildView = function (t, n, i) {\n var o;\n return null == i && (i = {}), n instanceof e.ObjectGroup && (i.viewClass = t, t = e.ObjectGroupView), o = new t(n, i), this.recordChildView(o);\n }, o.prototype.recordChildView = function (t) {\n return t.parentView = this, t.rootView = this.rootView, this.childViews.push(t), t;\n }, o.prototype.getAllChildViews = function () {\n var t, e, n, i, o;\n for (o = [], i = this.childViews, e = 0, n = i.length; n > e; e++) t = i[e], o.push(t), o = o.concat(t.getAllChildViews());\n return o;\n }, o.prototype.findElement = function () {\n return this.findElementForObject(this.object);\n }, o.prototype.findElementForObject = function (t) {\n var e;\n return (e = null != t ? t.id : void 0) ? this.rootView.element.querySelector(\"[data-trix-id='\" + e + \"']\") : void 0;\n }, o.prototype.findViewForObject = function (t) {\n var e, n, i, o;\n for (i = this.getAllChildViews(), e = 0, n = i.length; n > e; e++) if (o = i[e], o.object === t) return o;\n }, o.prototype.getViewCache = function () {\n return this.rootView !== this ? this.rootView.getViewCache() : this.isViewCachingEnabled() ? null != this.viewCache ? this.viewCache : this.viewCache = {} : void 0;\n }, o.prototype.isViewCachingEnabled = function () {\n return this.shouldCacheViews !== !1;\n }, o.prototype.enableViewCaching = function () {\n return this.shouldCacheViews = !0;\n }, o.prototype.disableViewCaching = function () {\n return this.shouldCacheViews = !1;\n }, o.prototype.getCachedViewForObject = function (t) {\n var e;\n return null != (e = this.getViewCache()) ? e[t.getCacheKey()] : void 0;\n }, o.prototype.cacheViewForObject = function (t, e) {\n var n;\n return null != (n = this.getViewCache()) ? n[e.getCacheKey()] = t : void 0;\n }, o.prototype.garbageCollectCachedViews = function () {\n var t, e, n, o, r, s;\n if (t = this.getViewCache()) {\n s = this.getAllChildViews().concat(this), n = function () {\n var t, e, n;\n for (n = [], t = 0, e = s.length; e > t; t++) r = s[t], n.push(r.object.getCacheKey());\n return n;\n }(), o = [];\n for (e in t) i.call(n, e) < 0 && o.push(delete t[e]);\n return o;\n }\n }, o;\n }(e.BasicObject);\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n e.ObjectGroupView = function (e) {\n function n() {\n n.__super__.constructor.apply(this, arguments), this.objectGroup = this.object, this.viewClass = this.options.viewClass, delete this.options.viewClass;\n }\n return t(n, e), n.prototype.getChildViews = function () {\n var t, e, n, i;\n if (!this.childViews.length) for (i = this.objectGroup.getObjects(), t = 0, e = i.length; e > t; t++) n = i[t], this.findOrCreateCachedChildView(this.viewClass, n, this.options);\n return this.childViews;\n }, n.prototype.createNodes = function () {\n var t, e, n, i, o, r, s, a, u;\n for (t = this.createContainerElement(), s = this.getChildViews(), e = 0, i = s.length; i > e; e++) for (u = s[e], a = u.getNodes(), n = 0, o = a.length; o > n; n++) r = a[n], t.appendChild(r);\n return [t];\n }, n.prototype.createContainerElement = function (t) {\n return null == t && (t = this.objectGroup.getDepth()), this.getChildViews()[0].createContainerElement(t);\n }, n;\n }(e.ObjectView);\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n e.Controller = function (e) {\n function n() {\n return n.__super__.constructor.apply(this, arguments);\n }\n return t(n, e), n;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a = function (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n u = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) c.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n c = {}.hasOwnProperty,\n l = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n return -1;\n };\n t = e.findClosestElementFromNode, i = e.nodeIsEmptyTextNode, n = e.nodeIsBlockStartComment, o = e.normalizeSpaces, r = e.summarizeStringChange, s = e.tagName, e.MutationObserver = function (e) {\n function c(t) {\n this.element = t, this.didMutate = a(this.didMutate, this), this.observer = new window.MutationObserver(this.didMutate), this.start();\n }\n var h, p, d, f;\n return u(c, e), p = \"data-trix-mutable\", d = \"[\" + p + \"]\", f = {\n attributes: !0,\n childList: !0,\n characterData: !0,\n characterDataOldValue: !0,\n subtree: !0\n }, c.prototype.start = function () {\n return this.reset(), this.observer.observe(this.element, f);\n }, c.prototype.stop = function () {\n return this.observer.disconnect();\n }, c.prototype.didMutate = function (t) {\n var e, n;\n return (e = this.mutations).push.apply(e, this.findSignificantMutations(t)), this.mutations.length ? (null != (n = this.delegate) && \"function\" == typeof n.elementDidMutate && n.elementDidMutate(this.getMutationSummary()), this.reset()) : void 0;\n }, c.prototype.reset = function () {\n return this.mutations = [];\n }, c.prototype.findSignificantMutations = function (t) {\n var e, n, i, o;\n for (o = [], e = 0, n = t.length; n > e; e++) i = t[e], this.mutationIsSignificant(i) && o.push(i);\n return o;\n }, c.prototype.mutationIsSignificant = function (t) {\n var e, n, i, o;\n if (this.nodeIsMutable(t.target)) return !1;\n for (o = this.nodesModifiedByMutation(t), e = 0, n = o.length; n > e; e++) if (i = o[e], this.nodeIsSignificant(i)) return !0;\n return !1;\n }, c.prototype.nodeIsSignificant = function (t) {\n return t !== this.element && !this.nodeIsMutable(t) && !i(t);\n }, c.prototype.nodeIsMutable = function (e) {\n return t(e, {\n matchingSelector: d\n });\n }, c.prototype.nodesModifiedByMutation = function (t) {\n var e;\n switch (e = [], t.type) {\n case \"attributes\":\n t.attributeName !== p && e.push(t.target);\n break;\n case \"characterData\":\n e.push(t.target.parentNode), e.push(t.target);\n break;\n case \"childList\":\n e.push.apply(e, t.addedNodes), e.push.apply(e, t.removedNodes);\n }\n return e;\n }, c.prototype.getMutationSummary = function () {\n return this.getTextMutationSummary();\n }, c.prototype.getTextMutationSummary = function () {\n var t, e, n, i, o, r, s, a, u, c, h;\n for (a = this.getTextChangesFromCharacterData(), n = a.additions, o = a.deletions, h = this.getTextChangesFromChildList(), u = h.additions, r = 0, s = u.length; s > r; r++) e = u[r], l.call(n, e) < 0 && n.push(e);\n return o.push.apply(o, h.deletions), c = {}, (t = n.join(\"\")) && (c.textAdded = t), (i = o.join(\"\")) && (c.textDeleted = i), c;\n }, c.prototype.getMutationsByType = function (t) {\n var e, n, i, o, r;\n for (o = this.mutations, r = [], e = 0, n = o.length; n > e; e++) i = o[e], i.type === t && r.push(i);\n return r;\n }, c.prototype.getTextChangesFromChildList = function () {\n var t, e, i, r, s, a, u, c, l, p, d;\n for (t = [], u = [], a = this.getMutationsByType(\"childList\"), e = 0, r = a.length; r > e; e++) s = a[e], t.push.apply(t, s.addedNodes), u.push.apply(u, s.removedNodes);\n return c = 0 === t.length && 1 === u.length && n(u[0]), c ? (p = [], d = [\"\\n\"]) : (p = h(t), d = h(u)), {\n additions: function () {\n var t, e, n;\n for (n = [], i = t = 0, e = p.length; e > t; i = ++t) l = p[i], l !== d[i] && n.push(o(l));\n return n;\n }(),\n deletions: function () {\n var t, e, n;\n for (n = [], i = t = 0, e = d.length; e > t; i = ++t) l = d[i], l !== p[i] && n.push(o(l));\n return n;\n }()\n };\n }, c.prototype.getTextChangesFromCharacterData = function () {\n var t, e, n, i, s, a, u, c;\n return e = this.getMutationsByType(\"characterData\"), e.length && (c = e[0], n = e[e.length - 1], s = o(c.oldValue), i = o(n.target.data), a = r(s, i), t = a.added, u = a.removed), {\n additions: t ? [t] : [],\n deletions: u ? [u] : []\n };\n }, h = function (t) {\n var e, n, i, o;\n for (null == t && (t = []), o = [], e = 0, n = t.length; n > e; e++) switch (i = t[e], i.nodeType) {\n case Node.TEXT_NODE:\n o.push(i.data);\n break;\n case Node.ELEMENT_NODE:\n \"br\" === s(i) ? o.push(\"\\n\") : o.push.apply(o, h(i.childNodes));\n }\n return o;\n }, c;\n }(e.BasicObject);\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n e.FileVerificationOperation = function (e) {\n function n(t) {\n this.file = t;\n }\n return t(n, e), n.prototype.perform = function (t) {\n var e;\n return e = new FileReader(), e.onerror = function () {\n return t(!1);\n }, e.onload = function (n) {\n return function () {\n e.onerror = null;\n try {\n e.abort();\n } catch (i) {}\n return t(!0, n.file);\n };\n }(this), e.readAsArrayBuffer(this.file);\n }, n;\n }(e.Operation);\n }.call(this), function () {\n var t,\n n,\n i = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) o.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n o = {}.hasOwnProperty;\n t = e.handleEvent, n = e.innerElementIsActive, e.InputController = function (o) {\n function r(n) {\n var i;\n this.element = n, this.mutationObserver = new e.MutationObserver(this.element), this.mutationObserver.delegate = this;\n for (i in this.events) t(i, {\n onElement: this.element,\n withCallback: this.handlerFor(i)\n });\n }\n return i(r, o), r.prototype.events = {}, r.prototype.elementDidMutate = function () {}, r.prototype.editorWillSyncDocumentView = function () {\n return this.mutationObserver.stop();\n }, r.prototype.editorDidSyncDocumentView = function () {\n return this.mutationObserver.start();\n }, r.prototype.requestRender = function () {\n var t;\n return null != (t = this.delegate) && \"function\" == typeof t.inputControllerDidRequestRender ? t.inputControllerDidRequestRender() : void 0;\n }, r.prototype.requestReparse = function () {\n var t;\n return null != (t = this.delegate) && \"function\" == typeof t.inputControllerDidRequestReparse && t.inputControllerDidRequestReparse(), this.requestRender();\n }, r.prototype.attachFiles = function (t) {\n var n, i;\n return i = function () {\n var i, o, r;\n for (r = [], i = 0, o = t.length; o > i; i++) n = t[i], r.push(new e.FileVerificationOperation(n));\n return r;\n }(), Promise.all(i).then(function (t) {\n return function (e) {\n return t.handleInput(function () {\n var t, n;\n return null != (t = this.delegate) && t.inputControllerWillAttachFiles(), null != (n = this.responder) && n.insertFiles(e), this.requestRender();\n });\n };\n }(this));\n }, r.prototype.handlerFor = function (t) {\n return function (e) {\n return function (i) {\n return i.defaultPrevented ? void 0 : e.handleInput(function () {\n return n(this.element) ? void 0 : (this.eventName = t, this.events[t].call(this, i));\n });\n };\n }(this);\n }, r.prototype.handleInput = function (t) {\n var e, n;\n try {\n return null != (e = this.delegate) && e.inputControllerWillHandleInput(), t.call(this);\n } finally {\n null != (n = this.delegate) && n.inputControllerDidHandleInput();\n }\n }, r.prototype.createLinkHTML = function (t, e) {\n var n;\n return n = document.createElement(\"a\"), n.href = t, n.textContent = null != e ? e : t, n.outerHTML;\n }, r;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a,\n u,\n c,\n l,\n h,\n p,\n d,\n f = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) g.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n g = {}.hasOwnProperty,\n m = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n return -1;\n };\n c = e.makeElement, l = e.objectsAreEqual, d = e.tagName, n = e.browser, a = e.keyEventIsKeyboardCommand, o = e.dataTransferIsWritable, i = e.dataTransferIsPlainText, u = e.config.keyNames, e.Level0InputController = function (n) {\n function s() {\n s.__super__.constructor.apply(this, arguments), this.resetInputSummary();\n }\n var d;\n return f(s, n), d = 0, s.prototype.setInputSummary = function (t) {\n var e, n;\n null == t && (t = {}), this.inputSummary.eventName = this.eventName;\n for (e in t) n = t[e], this.inputSummary[e] = n;\n return this.inputSummary;\n }, s.prototype.resetInputSummary = function () {\n return this.inputSummary = {};\n }, s.prototype.reset = function () {\n return this.resetInputSummary(), e.selectionChangeObserver.reset();\n }, s.prototype.elementDidMutate = function (t) {\n var e;\n return this.isComposing() ? null != (e = this.delegate) && \"function\" == typeof e.inputControllerDidAllowUnhandledInput ? e.inputControllerDidAllowUnhandledInput() : void 0 : this.handleInput(function () {\n return this.mutationIsSignificant(t) && (this.mutationIsExpected(t) ? this.requestRender() : this.requestReparse()), this.reset();\n });\n }, s.prototype.mutationIsExpected = function (t) {\n var e, n, i, o, r, s, a, u, c, l;\n return a = t.textAdded, u = t.textDeleted, this.inputSummary.preferDocument ? !0 : (e = null != a ? a === this.inputSummary.textAdded : !this.inputSummary.textAdded, n = null != u ? this.inputSummary.didDelete : !this.inputSummary.didDelete, c = (\"\\n\" === a || \" \\n\" === a) && !e, l = \"\\n\" === u && !n, s = c && !l || l && !c, s && (o = this.getSelectedRange()) && (i = c ? a.replace(/\\n$/, \"\").length || -1 : (null != a ? a.length : void 0) || 1, null != (r = this.responder) ? r.positionIsBlockBreak(o[1] + i) : void 0) ? !0 : e && n);\n }, s.prototype.mutationIsSignificant = function (t) {\n var e, n, i;\n return i = Object.keys(t).length > 0, e = \"\" === (null != (n = this.compositionInput) ? n.getEndData() : void 0), i || !e;\n }, s.prototype.events = {\n keydown: function (t) {\n var n, i, o, r, s, c, l, h, p;\n if (this.isComposing() || this.resetInputSummary(), this.inputSummary.didInput = !0, r = u[t.keyCode]) {\n for (i = this.keys, h = [\"ctrl\", \"alt\", \"shift\", \"meta\"], o = 0, c = h.length; c > o; o++) l = h[o], t[l + \"Key\"] && (\"ctrl\" === l && (l = \"control\"), i = null != i ? i[l] : void 0);\n null != (null != i ? i[r] : void 0) && (this.setInputSummary({\n keyName: r\n }), e.selectionChangeObserver.reset(), i[r].call(this, t));\n }\n return a(t) && (n = String.fromCharCode(t.keyCode).toLowerCase()) && (s = function () {\n var e, n, i, o;\n for (i = [\"alt\", \"shift\"], o = [], e = 0, n = i.length; n > e; e++) l = i[e], t[l + \"Key\"] && o.push(l);\n return o;\n }(), s.push(n), null != (p = this.delegate) ? p.inputControllerDidReceiveKeyboardCommand(s) : void 0) ? t.preventDefault() : void 0;\n },\n keypress: function (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 (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 (t) {\n return t.preventDefault();\n },\n dragstart: function (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 (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 () {\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 (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 (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 (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 (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 (t) {\n return this.getCompositionInput().start(t.data);\n },\n compositionupdate: function (t) {\n return this.getCompositionInput().update(t.data);\n },\n compositionend: function (t) {\n return this.getCompositionInput().end(t.data);\n },\n beforeinput: function () {\n return this.inputSummary.didInput = !0;\n },\n input: function (t) {\n return this.inputSummary.didInput = !0, t.stopPropagation();\n }\n }, s.prototype.keys = {\n backspace: function (t) {\n var e;\n return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), this.deleteInDirection(\"backward\", t);\n },\n \"delete\": function (t) {\n var e;\n return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), this.deleteInDirection(\"forward\", t);\n },\n \"return\": function () {\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 (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 (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 (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 (t) {\n var e;\n return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), this.deleteInDirection(\"forward\", t);\n },\n h: function (t) {\n var e;\n return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), this.deleteInDirection(\"backward\", t);\n },\n o: function (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 (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 (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 (t) {\n return this.selectionIsInCursorTarget() ? (t.preventDefault(), this.expandSelectionInDirection(\"backward\")) : void 0;\n },\n right: function (t) {\n return this.selectionIsInCursorTarget() ? (t.preventDefault(), this.expandSelectionInDirection(\"forward\")) : void 0;\n }\n },\n alt: {\n backspace: function () {\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 () {\n var t;\n return this.setInputSummary({\n preferDocument: !1\n }), null != (t = this.delegate) ? t.inputControllerWillPerformTyping() : void 0;\n }\n }\n }, s.prototype.getCompositionInput = function () {\n return this.isComposing() ? this.compositionInput : this.compositionInput = new t(this);\n }, s.prototype.isComposing = function () {\n return null != this.compositionInput && !this.compositionInput.isEnded();\n }, s.prototype.deleteInDirection = function (t, e) {\n var n;\n return (null != (n = this.responder) ? n.deleteInDirection(t) : void 0) !== !1 ? this.setInputSummary({\n didDelete: !0\n }) : e ? (e.preventDefault(), this.requestRender()) : void 0;\n }, s.prototype.serializeSelectionToDataTransfer = function (t) {\n var n, i;\n if (o(t)) return n = null != (i = this.responder) ? i.getSelectedDocument().toSerializableDocument() : void 0, t.setData(\"application/x-trix-document\", JSON.stringify(n)), t.setData(\"text/html\", e.DocumentView.render(n).innerHTML), t.setData(\"text/plain\", n.toString().replace(/\\n$/, \"\")), !0;\n }, s.prototype.canAcceptDataTransfer = function (t) {\n var e, n, i, o, r, s;\n for (s = {}, o = null != (i = null != t ? t.types : void 0) ? i : [], e = 0, n = o.length; n > e; e++) r = o[e], s[r] = !0;\n return s.Files || s[\"application/x-trix-document\"] || s[\"text/html\"] || s[\"text/plain\"];\n }, s.prototype.getPastedHTMLUsingHiddenElement = function (t) {\n var n, i, o;\n return i = this.getSelectedRange(), o = {\n position: \"absolute\",\n left: window.pageXOffset + \"px\",\n top: window.pageYOffset + \"px\",\n opacity: 0\n }, n = c({\n style: o,\n tagName: \"div\",\n editable: !0\n }), document.body.appendChild(n), n.focus(), requestAnimationFrame(function (o) {\n return function () {\n var r;\n return r = n.innerHTML, e.removeNode(n), o.setSelectedRange(i), t(r);\n };\n }(this));\n }, s.proxyMethod(\"responder?.getSelectedRange\"), s.proxyMethod(\"responder?.setSelectedRange\"), s.proxyMethod(\"responder?.expandSelectionInDirection\"), s.proxyMethod(\"responder?.selectionIsInCursorTarget\"), s.proxyMethod(\"responder?.selectionIsExpanded\"), s;\n }(e.InputController), r = function (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 (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 (t) {\n var e, n, i, o, r, s, a, u, c, l;\n if (u = t.clipboardData) {\n if (m.call(u.types, \"text/html\") >= 0) {\n for (c = u.types, i = 0, s = c.length; s > i; i++) if (l = c[i], e = /^CorePasteboardFlavorType/.test(l), n = /^dyn\\./.test(l) && u.getData(l), a = e || n) return !0;\n return !1;\n }\n return o = m.call(u.types, \"com.apple.webarchive\") >= 0, r = m.call(u.types, \"com.apple.flat-rtfd\") >= 0, o || r;\n }\n }, t = function (t) {\n function e(t) {\n var e;\n this.inputController = t, e = this.inputController, this.responder = e.responder, this.delegate = e.delegate, this.inputSummary = e.inputSummary, this.data = {};\n }\n return f(e, t), e.prototype.start = function (t) {\n var e, n;\n return this.data.start = t, this.isSignificant() ? (\"keypress\" === this.inputSummary.eventName && this.inputSummary.textAdded && null != (e = this.responder) && e.deleteInDirection(\"left\"), this.selectionIsExpanded() || (this.insertPlaceholder(), this.requestRender()), this.range = null != (n = this.responder) ? n.getSelectedRange() : void 0) : void 0;\n }, e.prototype.update = function (t) {\n var e;\n return this.data.update = t, this.isSignificant() && (e = this.selectPlaceholder()) ? (this.forgetPlaceholder(), this.range = e) : void 0;\n }, e.prototype.end = function (t) {\n var e, n, i, o;\n return this.data.end = t, this.isSignificant() ? (this.forgetPlaceholder(), this.canApplyToDocument() ? (this.setInputSummary({\n preferDocument: !0,\n didInput: !1\n }), null != (e = this.delegate) && e.inputControllerWillPerformTyping(), null != (n = this.responder) && n.setSelectedRange(this.range), null != (i = this.responder) && i.insertString(this.data.end), null != (o = this.responder) ? o.setSelectedRange(this.range[0] + this.data.end.length) : void 0) : null != this.data.start || null != this.data.update ? (this.requestReparse(), this.inputController.reset()) : void 0) : this.inputController.reset();\n }, e.prototype.getEndData = function () {\n return this.data.end;\n }, e.prototype.isEnded = function () {\n return null != this.getEndData();\n }, e.prototype.isSignificant = function () {\n return n.composesExistingText ? this.inputSummary.didInput : !0;\n }, e.prototype.canApplyToDocument = function () {\n var t, e;\n return 0 === (null != (t = this.data.start) ? t.length : void 0) && (null != (e = this.data.end) ? e.length : void 0) > 0 && null != this.range;\n }, e.proxyMethod(\"inputController.setInputSummary\"), e.proxyMethod(\"inputController.requestRender\"), e.proxyMethod(\"inputController.requestReparse\"), e.proxyMethod(\"responder?.selectionIsExpanded\"), e.proxyMethod(\"responder?.insertPlaceholder\"), e.proxyMethod(\"responder?.selectPlaceholder\"), e.proxyMethod(\"responder?.forgetPlaceholder\"), e;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o = function (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n r = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) s.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n s = {}.hasOwnProperty,\n a = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n return -1;\n };\n t = e.dataTransferIsPlainText, n = e.keyEventIsKeyboardCommand, i = e.objectsAreEqual, e.Level2InputController = function (s) {\n function u() {\n return this.render = o(this.render, this), u.__super__.constructor.apply(this, arguments);\n }\n var c, l, h, p, d, f;\n return r(u, s), u.prototype.elementDidMutate = function () {\n var t;\n return this.scheduledRender ? this.composing && null != (t = this.delegate) && \"function\" == typeof t.inputControllerDidAllowUnhandledInput ? t.inputControllerDidAllowUnhandledInput() : void 0 : this.reparse();\n }, u.prototype.scheduleRender = function () {\n return null != this.scheduledRender ? this.scheduledRender : this.scheduledRender = requestAnimationFrame(this.render);\n }, u.prototype.render = function () {\n var t;\n return cancelAnimationFrame(this.scheduledRender), this.scheduledRender = null, this.composing || null != (t = this.delegate) && t.render(), \"function\" == typeof this.afterRender && this.afterRender(), this.afterRender = null;\n }, u.prototype.reparse = function () {\n var t;\n return null != (t = this.delegate) ? t.reparse() : void 0;\n }, u.prototype.events = {\n keydown: function (t) {\n var e, i, o, r;\n if (n(t)) {\n if (e = l(t), null != (r = this.delegate) ? r.inputControllerDidReceiveKeyboardCommand(e) : void 0) return t.preventDefault();\n } else if (o = t.key, t.altKey && (o += \"+Alt\"), t.shiftKey && (o += \"+Shift\"), i = this.keys[o]) return this.withEvent(t, i);\n },\n paste: function (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 (t) {\n var e;\n return (e = this.inputTypes[t.inputType]) ? (this.withEvent(t, e), this.scheduleRender()) : void 0;\n },\n input: function () {\n return e.selectionChangeObserver.reset();\n },\n dragstart: function (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 (t) {\n return c(t) ? t.preventDefault() : void 0;\n },\n dragover: function (t) {\n var e, n;\n if (this.dragging) {\n if (t.preventDefault(), e = d(t), !i(e, this.dragging.point)) return this.dragging.point = e, null != (n = this.responder) ? n.setLocationRangeFromPointRange(e) : void 0;\n } else if (c(t)) return t.preventDefault();\n },\n drop: function (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 () {\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 () {\n return this.composing ? (this.composing = !1, this.scheduleRender()) : void 0;\n }\n }, u.prototype.keys = {\n ArrowLeft: function () {\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 () {\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 () {\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 () {\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 () {\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 () {\n return this.deleteInDirection(\"backward\", {\n recordUndoEntry: !1\n });\n },\n deleteByCut: function () {\n return this.deleteInDirection(\"backward\");\n },\n deleteByDrag: function () {\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 () {\n return this.deleteInDirection(\"backward\", {\n recordUndoEntry: !1\n });\n },\n deleteContent: function () {\n return this.deleteInDirection(\"backward\");\n },\n deleteContentBackward: function () {\n return this.deleteInDirection(\"backward\");\n },\n deleteContentForward: function () {\n return this.deleteInDirection(\"forward\");\n },\n deleteEntireSoftLine: function () {\n return this.deleteInDirection(\"forward\");\n },\n deleteHardLineBackward: function () {\n return this.deleteInDirection(\"backward\");\n },\n deleteHardLineForward: function () {\n return this.deleteInDirection(\"forward\");\n },\n deleteSoftLineBackward: function () {\n return this.deleteInDirection(\"backward\");\n },\n deleteSoftLineForward: function () {\n return this.deleteInDirection(\"forward\");\n },\n deleteWordBackward: function () {\n return this.deleteInDirection(\"backward\");\n },\n deleteWordForward: function () {\n return this.deleteInDirection(\"forward\");\n },\n formatBackColor: function () {\n return this.activateAttributeIfSupported(\"backgroundColor\", this.event.data);\n },\n formatBold: function () {\n return this.toggleAttributeIfSupported(\"bold\");\n },\n formatFontColor: function () {\n return this.activateAttributeIfSupported(\"color\", this.event.data);\n },\n formatFontName: function () {\n return this.activateAttributeIfSupported(\"font\", this.event.data);\n },\n formatIndent: function () {\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 () {\n return this.toggleAttributeIfSupported(\"italic\");\n },\n formatJustifyCenter: function () {\n return this.toggleAttributeIfSupported(\"justifyCenter\");\n },\n formatJustifyFull: function () {\n return this.toggleAttributeIfSupported(\"justifyFull\");\n },\n formatJustifyLeft: function () {\n return this.toggleAttributeIfSupported(\"justifyLeft\");\n },\n formatJustifyRight: function () {\n return this.toggleAttributeIfSupported(\"justifyRight\");\n },\n formatOutdent: function () {\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 () {\n return this.withTargetDOMRange(function () {\n var t, e, n, i;\n i = [];\n for (t in null != (e = this.responder) ? e.getCurrentAttributes() : void 0) i.push(null != (n = this.responder) ? n.removeCurrentAttribute(t) : void 0);\n return i;\n });\n },\n formatSetBlockTextDirection: function () {\n return this.activateAttributeIfSupported(\"blockDir\", this.event.data);\n },\n formatSetInlineTextDirection: function () {\n return this.activateAttributeIfSupported(\"textDir\", this.event.data);\n },\n formatStrikeThrough: function () {\n return this.toggleAttributeIfSupported(\"strike\");\n },\n formatSubscript: function () {\n return this.toggleAttributeIfSupported(\"sub\");\n },\n formatSuperscript: function () {\n return this.toggleAttributeIfSupported(\"sup\");\n },\n formatUnderline: function () {\n return this.toggleAttributeIfSupported(\"underline\");\n },\n historyRedo: function () {\n var t;\n return null != (t = this.delegate) ? t.inputControllerWillPerformRedo() : void 0;\n },\n historyUndo: function () {\n var t;\n return null != (t = this.delegate) ? t.inputControllerWillPerformUndo() : void 0;\n },\n insertCompositionText: function () {\n return this.composing = !0, this.insertString(this.event.data);\n },\n insertFromComposition: function () {\n return this.composing = !1, this.insertString(this.event.data);\n },\n insertFromDrop: function () {\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 () {\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 () {\n return this.insertString(this.event.data);\n },\n insertLineBreak: function () {\n return this.insertString(\"\\n\");\n },\n insertLink: function () {\n return this.activateAttributeIfSupported(\"href\", this.event.data);\n },\n insertOrderedList: function () {\n return this.toggleAttributeIfSupported(\"number\");\n },\n insertParagraph: function () {\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 () {\n return this.insertString(this.event.dataTransfer.getData(\"text/plain\"), {\n updatePosition: !1\n });\n },\n insertText: function () {\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 () {\n return this.insertString(this.event.data);\n },\n insertUnorderedList: function () {\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 (t) {\n var e;\n return e = document.createRange(), e.setStart(t.startContainer, t.startOffset), e.setEnd(t.endContainer, t.endOffset), e;\n }, u.prototype.withEvent = function (t, e) {\n var n;\n this.event = t;\n try {\n n = e.call(this);\n } finally {\n this.event = null;\n }\n return n;\n }, c = function (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 (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 (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 (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 (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 (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n l = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) h.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n h = {}.hasOwnProperty;\n n = e.defer, i = e.handleEvent, s = e.makeElement, u = e.tagName, a = e.config, r = a.lang, t = a.css, o = a.keyNames, e.AttachmentEditorController = function (a) {\n function h(t, e, n, i) {\n this.attachmentPiece = t, this.element = e, this.container = n, this.options = null != i ? i : {}, this.didBlurCaption = c(this.didBlurCaption, this), this.didChangeCaption = c(this.didChangeCaption, this), this.didInputCaption = c(this.didInputCaption, this), this.didKeyDownCaption = c(this.didKeyDownCaption, this), this.didClickActionButton = c(this.didClickActionButton, this), this.didClickToolbar = c(this.didClickToolbar, this), this.attachment = this.attachmentPiece.attachment, \"a\" === u(this.element) && (this.element = this.element.firstChild), this.install();\n }\n var p;\n return l(h, a), p = function (t) {\n return function () {\n var e;\n return e = t.apply(this, arguments), e[\"do\"](), null == this.undos && (this.undos = []), this.undos.push(e.undo);\n };\n }, h.prototype.install = function () {\n return this.makeElementMutable(), this.addToolbar(), this.attachment.isPreviewable() ? this.installCaptionEditor() : void 0;\n }, h.prototype.uninstall = function () {\n var t, e;\n for (this.savePendingCaption(); e = this.undos.pop();) e();\n return null != (t = this.delegate) ? t.didUninstallAttachmentEditor(this) : void 0;\n }, h.prototype.savePendingCaption = function () {\n var t, e, n;\n return null != this.pendingCaption ? (t = this.pendingCaption, this.pendingCaption = null, t ? null != (e = this.delegate) && \"function\" == typeof e.attachmentEditorDidRequestUpdatingAttributesForAttachment ? e.attachmentEditorDidRequestUpdatingAttributesForAttachment({\n caption: t\n }, this.attachment) : void 0 : null != (n = this.delegate) && \"function\" == typeof n.attachmentEditorDidRequestRemovingAttributeForAttachment ? n.attachmentEditorDidRequestRemovingAttributeForAttachment(\"caption\", this.attachment) : void 0) : void 0;\n }, h.prototype.makeElementMutable = p(function () {\n return {\n \"do\": function (t) {\n return function () {\n return t.element.dataset.trixMutable = !0;\n };\n }(this),\n undo: function (t) {\n return function () {\n return delete t.element.dataset.trixMutable;\n };\n }(this)\n };\n }), h.prototype.addToolbar = p(function () {\n var n;\n return n = s({\n tagName: \"div\",\n className: t.attachmentToolbar,\n data: {\n trixMutable: !0\n },\n childNodes: s({\n tagName: \"div\",\n className: \"trix-button-row\",\n childNodes: s({\n tagName: \"span\",\n className: \"trix-button-group trix-button-group--actions\",\n childNodes: s({\n tagName: \"button\",\n className: \"trix-button trix-button--remove\",\n textContent: r.remove,\n attributes: {\n title: r.remove\n },\n data: {\n trixAction: \"remove\"\n }\n })\n })\n })\n }), this.attachment.isPreviewable() && n.appendChild(s({\n tagName: \"div\",\n className: t.attachmentMetadataContainer,\n childNodes: s({\n tagName: \"span\",\n className: t.attachmentMetadata,\n childNodes: [s({\n tagName: \"span\",\n className: t.attachmentName,\n textContent: this.attachment.getFilename(),\n attributes: {\n title: this.attachment.getFilename()\n }\n }), s({\n tagName: \"span\",\n className: t.attachmentSize,\n textContent: this.attachment.getFormattedFilesize()\n })]\n })\n })), i(\"click\", {\n onElement: n,\n withCallback: this.didClickToolbar\n }), i(\"click\", {\n onElement: n,\n matchingSelector: \"[data-trix-action]\",\n withCallback: this.didClickActionButton\n }), {\n \"do\": function (t) {\n return function () {\n return t.element.appendChild(n);\n };\n }(this),\n undo: function () {\n return function () {\n return e.removeNode(n);\n };\n }(this)\n };\n }), h.prototype.installCaptionEditor = p(function () {\n var o, a, u, c, l;\n return c = s({\n tagName: \"textarea\",\n className: t.attachmentCaptionEditor,\n attributes: {\n placeholder: r.captionPlaceholder\n },\n data: {\n trixMutable: !0\n }\n }), c.value = this.attachmentPiece.getCaption(), l = c.cloneNode(), l.classList.add(\"trix-autoresize-clone\"), l.tabIndex = -1, o = function () {\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 () {\n return e.removeNode(a), u.style.display = null;\n }\n };\n }), h.prototype.didClickToolbar = function (t) {\n return t.preventDefault(), t.stopPropagation();\n }, h.prototype.didClickActionButton = function (t) {\n var e, n;\n switch (e = t.target.getAttribute(\"data-trix-action\")) {\n case \"remove\":\n return null != (n = this.delegate) ? n.attachmentEditorDidRequestRemovalOfAttachment(this.attachment) : void 0;\n }\n }, h.prototype.didKeyDownCaption = function (t) {\n var e;\n return \"return\" === o[t.keyCode] ? (t.preventDefault(), this.savePendingCaption(), null != (e = this.delegate) && \"function\" == typeof e.attachmentEditorDidRequestDeselectingAttachment ? e.attachmentEditorDidRequestDeselectingAttachment(this.attachment) : void 0) : void 0;\n }, h.prototype.didInputCaption = function (t) {\n return this.pendingCaption = t.target.value.replace(/\\s/g, \" \").trim();\n }, h.prototype.didChangeCaption = function () {\n return this.savePendingCaption();\n }, h.prototype.didBlurCaption = function () {\n return this.savePendingCaption();\n }, h;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) r.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n r = {}.hasOwnProperty;\n i = e.makeElement, t = e.config.css, e.AttachmentView = function (r) {\n function s() {\n s.__super__.constructor.apply(this, arguments), this.attachment = this.object, this.attachment.uploadProgressDelegate = this, this.attachmentPiece = this.options.piece;\n }\n var a;\n return o(s, r), s.attachmentSelector = \"[data-trix-attachment]\", s.prototype.createContentNodes = function () {\n return [];\n }, s.prototype.createNodes = function () {\n var n, o, r, s, u, c, l;\n if (n = s = i({\n tagName: \"figure\",\n className: this.getClassName(),\n data: this.getData(),\n editable: !1\n }), (o = this.getHref()) && (s = i({\n tagName: \"a\",\n editable: !1,\n attributes: {\n href: o,\n tabindex: -1\n }\n }), n.appendChild(s)), this.attachment.hasContent()) e.HTMLSanitizer.setHTML(s, this.attachment.getContent());else for (l = this.createContentNodes(), r = 0, u = l.length; u > r; r++) c = l[r], s.appendChild(c);\n return s.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 }), n.appendChild(this.progressElement)), [a(\"left\"), n, 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 (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 (t, n) {\n var o;\n return o = i(\"div\"), e.HTMLSanitizer.setHTML(o, t || \"\"), o.querySelector(n);\n };\n }.call(this), function () {\n var t,\n n = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var o in e) i.call(e, o) && (t[o] = e[o]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty;\n t = e.makeElement, e.PreviewableAttachmentView = function (i) {\n function o() {\n o.__super__.constructor.apply(this, arguments), this.attachment.previewDelegate = this;\n }\n return n(o, i), o.prototype.createContentNodes = function () {\n return this.image = t({\n tagName: \"img\",\n attributes: {\n src: \"\"\n },\n data: {\n trixMutable: !0\n }\n }), this.refresh(this.image), [this.image];\n }, o.prototype.createCaptionElement = function () {\n var t;\n return t = o.__super__.createCaptionElement.apply(this, arguments), t.textContent || t.setAttribute(\"data-trix-placeholder\", e.config.lang.captionPlaceholder), t;\n }, o.prototype.refresh = function (t) {\n var e;\n return null == t && (t = null != (e = this.findElement()) ? e.querySelector(\"img\") : void 0), t ? this.updateAttributesForImage(t) : void 0;\n }, o.prototype.updateAttributesForImage = function (t) {\n var e, n, i, o, r, s;\n return r = this.attachment.getURL(), n = this.attachment.getPreviewURL(), t.src = n || r, n === r ? t.removeAttribute(\"data-trix-serialized-attributes\") : (i = JSON.stringify({\n src: r\n }), t.setAttribute(\"data-trix-serialized-attributes\", i)), s = this.attachment.getWidth(), e = this.attachment.getHeight(), null != s && (t.width = s), null != e && (t.height = e), o = [\"imageElement\", this.attachment.id, t.src, t.width, t.height].join(\"/\"), t.dataset.trixStoreKey = o;\n }, o.prototype.attachmentDidChangeAttributes = function () {\n return this.refresh(this.image), this.refresh();\n }, o;\n }(e.AttachmentView);\n }.call(this), function () {\n var t,\n n,\n i,\n o = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) r.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n r = {}.hasOwnProperty;\n i = e.makeElement, t = e.findInnerElement, n = e.getTextConfig, e.PieceView = function (r) {\n function s() {\n var t;\n s.__super__.constructor.apply(this, arguments), this.piece = this.object, this.attributes = this.piece.getAttributes(), t = this.options, this.textConfig = t.textConfig, this.context = t.context, this.piece.attachment ? this.attachment = this.piece.attachment : this.string = this.piece.toString();\n }\n var a;\n return o(s, r), s.prototype.createNodes = function () {\n var e, n, i, o, r, s;\n if (s = this.attachment ? this.createAttachmentNodes() : this.createStringNodes(), e = this.createElement()) {\n for (i = t(e), n = 0, o = s.length; o > n; n++) r = s[n], i.appendChild(r);\n s = [e];\n }\n return s;\n }, s.prototype.createAttachmentNodes = function () {\n var t, n;\n return t = this.attachment.isPreviewable() ? e.PreviewableAttachmentView : e.AttachmentView, n = this.createChildView(t, this.piece.attachment, {\n piece: this.piece\n }), n.getNodes();\n }, s.prototype.createStringNodes = function () {\n var t, e, n, o, r, s, a, u, c, l;\n if (null != (u = this.textConfig) ? u.plaintext : void 0) return [document.createTextNode(this.string)];\n for (a = [], c = this.string.split(\"\\n\"), n = e = 0, o = c.length; o > e; n = ++e) l = c[n], n > 0 && (t = i(\"br\"), a.push(t)), (r = l.length) && (s = document.createTextNode(this.preserveSpaces(l)), a.push(s));\n return a;\n }, s.prototype.createElement = function () {\n var t, e, o, r, s, a, u, c, l;\n c = {}, a = this.attributes;\n for (r in a) if (l = a[r], (t = n(r)) && (t.tagName && (s = i(t.tagName), o ? (o.appendChild(s), o = s) : e = o = s), t.styleProperty && (c[t.styleProperty] = l), t.style)) {\n u = t.style;\n for (r in u) l = u[r], c[r] = l;\n }\n if (Object.keys(c).length) {\n null == e && (e = i(\"span\"));\n for (r in c) l = c[r], e.style[r] = l;\n }\n return e;\n }, s.prototype.createContainerElement = function () {\n var t, e, o, r, s;\n r = this.attributes;\n for (o in r) if (s = r[o], (e = n(o)) && e.groupTagName) return t = {}, t[o] = s, i(e.groupTagName, t);\n }, a = e.NON_BREAKING_SPACE, s.prototype.preserveSpaces = function (t) {\n return this.context.isLast && (t = t.replace(/\\ $/, a)), t = t.replace(/(\\S)\\ {3}(\\S)/g, \"$1 \" + a + \" $2\").replace(/\\ {2}/g, a + \" \").replace(/\\ {2}/g, \" \" + a), (this.context.isFirst || this.context.followsWhitespace) && (t = t.replace(/^\\ /, a)), t;\n }, s;\n }(e.ObjectView);\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n e.TextView = function (n) {\n function i() {\n i.__super__.constructor.apply(this, arguments), this.text = this.object, this.textConfig = this.options.textConfig;\n }\n var o;\n return t(i, n), i.prototype.createNodes = function () {\n var t, n, i, r, s, a, u, c, l, h;\n for (a = [], c = e.ObjectGroup.groupObjects(this.getPieces()), r = c.length - 1, i = n = 0, s = c.length; s > n; i = ++n) u = c[i], t = {}, 0 === i && (t.isFirst = !0), i === r && (t.isLast = !0), o(l) && (t.followsWhitespace = !0), h = this.findOrCreateCachedChildView(e.PieceView, u, {\n textConfig: this.textConfig,\n context: t\n }), a.push.apply(a, h.getNodes()), l = u;\n return a;\n }, i.prototype.getPieces = function () {\n var t, e, n, i, o;\n for (i = this.text.getPieces(), o = [], t = 0, e = i.length; e > t; t++) n = i[t], n.hasAttribute(\"blockBreak\") || o.push(n);\n return o;\n }, o = function (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 (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) r.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n r = {}.hasOwnProperty;\n i = e.makeElement, n = e.getBlockConfig, t = e.config.css, e.BlockView = function (r) {\n function s() {\n s.__super__.constructor.apply(this, arguments), this.block = this.object, this.attributes = this.block.getAttributes();\n }\n return o(s, r), s.prototype.createNodes = function () {\n var t, o, r, s, a, u, c, l, h, p, d;\n if (o = document.createComment(\"block\"), c = [o], this.block.isEmpty() ? c.push(i(\"br\")) : (p = null != (l = n(this.block.getLastAttribute())) ? l.text : void 0, d = this.findOrCreateCachedChildView(e.TextView, this.block.text, {\n textConfig: p\n }), c.push.apply(c, d.getNodes()), this.shouldAddExtraNewlineElement() && c.push(i(\"br\"))), this.attributes.length) return c;\n for (h = e.config.blockAttributes[\"default\"].tagName, this.block.isRTL() && (t = {\n dir: \"rtl\"\n }), r = i({\n tagName: h,\n attributes: t\n }), s = 0, a = c.length; a > s; s++) u = c[s], r.appendChild(u);\n return [r];\n }, s.prototype.createContainerElement = function (e) {\n var o, r, s, a, u;\n return o = this.attributes[e], u = n(o).tagName, 0 === e && this.block.isRTL() && (r = {\n dir: \"rtl\"\n }), \"attachmentGallery\" === o && (a = this.block.getBlockBreakPosition(), s = t.attachmentGallery + \" \" + t.attachmentGallery + \"--\" + a), i({\n tagName: u,\n className: s,\n attributes: r\n });\n }, s.prototype.shouldAddExtraNewlineElement = function () {\n return /\\n\\n$/.test(this.block.toString());\n }, s;\n }(e.ObjectView);\n }.call(this), function () {\n var t,\n n,\n i = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) o.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n o = {}.hasOwnProperty;\n t = e.defer, n = e.makeElement, e.DocumentView = function (o) {\n function r() {\n r.__super__.constructor.apply(this, arguments), this.element = this.options.element, this.elementStore = new e.ElementStore(), this.setDocument(this.object);\n }\n var s, a, u;\n return i(r, o), r.render = function (t) {\n var e, i;\n return e = n(\"div\"), i = new this(t, {\n element: e\n }), i.render(), i.sync(), e;\n }, r.prototype.setDocument = function (t) {\n return t.isEqualTo(this.document) ? void 0 : this.document = this.object = t;\n }, r.prototype.render = function () {\n var t, i, o, r, s, a, u;\n if (this.childViews = [], this.shadowElement = n(\"div\"), !this.document.isEmpty()) {\n for (s = e.ObjectGroup.groupObjects(this.document.getBlocks(), {\n asTree: !0\n }), a = [], t = 0, i = s.length; i > t; t++) r = s[t], u = this.findOrCreateCachedChildView(e.BlockView, r), a.push(function () {\n var t, e, n, i;\n for (n = u.getNodes(), i = [], t = 0, e = n.length; e > t; t++) o = n[t], i.push(this.shadowElement.appendChild(o));\n return i;\n }.call(this));\n return a;\n }\n }, r.prototype.isSynced = function () {\n return s(this.shadowElement, this.element);\n }, r.prototype.sync = function () {\n var t;\n for (t = this.createDocumentFragmentForSync(); this.element.lastChild;) this.element.removeChild(this.element.lastChild);\n return this.element.appendChild(t), this.didSync();\n }, r.prototype.didSync = function () {\n return this.elementStore.reset(a(this.element)), t(function (t) {\n return function () {\n return t.garbageCollectCachedViews();\n };\n }(this));\n }, r.prototype.createDocumentFragmentForSync = function () {\n var t, e, n, i, o, r, s, u, c, l;\n for (e = document.createDocumentFragment(), u = this.shadowElement.childNodes, n = 0, o = u.length; o > n; n++) s = u[n], e.appendChild(s.cloneNode(!0));\n for (c = a(e), i = 0, r = c.length; r > i; i++) t = c[i], (l = this.elementStore.remove(t)) && t.parentNode.replaceChild(l, t);\n return e;\n }, a = function (t) {\n return t.querySelectorAll(\"[data-trix-store-key]\");\n }, s = function (t, e) {\n return u(t.innerHTML) === u(e.innerHTML);\n }, u = function (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 (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n a = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) u.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n u = {}.hasOwnProperty;\n i = e.findClosestElementFromNode, o = e.handleEvent, r = e.innerElementIsActive, n = e.defer, t = e.AttachmentView.attachmentSelector, e.CompositionController = function (u) {\n function c(n, i) {\n this.element = n, this.composition = i, this.didClickAttachment = s(this.didClickAttachment, this), this.didBlur = s(this.didBlur, this), this.didFocus = s(this.didFocus, this), this.documentView = new e.DocumentView(this.composition.document, {\n element: this.element\n }), o(\"focus\", {\n onElement: this.element,\n withCallback: this.didFocus\n }), o(\"blur\", {\n onElement: this.element,\n withCallback: this.didBlur\n }), o(\"click\", {\n onElement: this.element,\n matchingSelector: \"a[contenteditable=false]\",\n preventDefault: !0\n }), o(\"mousedown\", {\n onElement: this.element,\n matchingSelector: t,\n withCallback: this.didClickAttachment\n }), o(\"click\", {\n onElement: this.element,\n matchingSelector: \"a\" + t,\n preventDefault: !0\n });\n }\n return a(c, u), c.prototype.didFocus = function () {\n var t, e, n;\n return t = function (t) {\n return function () {\n var e;\n return t.focused ? void 0 : (t.focused = !0, null != (e = t.delegate) && \"function\" == typeof e.compositionControllerDidFocus ? e.compositionControllerDidFocus() : void 0);\n };\n }(this), null != (e = null != (n = this.blurPromise) ? n.then(t) : void 0) ? e : t();\n }, c.prototype.didBlur = function () {\n return this.blurPromise = new Promise(function (t) {\n return function (e) {\n return n(function () {\n var n;\n return r(t.element) || (t.focused = null, null != (n = t.delegate) && \"function\" == typeof n.compositionControllerDidBlur && n.compositionControllerDidBlur()), t.blurPromise = null, e();\n });\n };\n }(this));\n }, c.prototype.didClickAttachment = function (t, e) {\n var n, o, r;\n return n = this.findAttachmentForElement(e), o = null != i(t.target, {\n matchingSelector: \"figcaption\"\n }), null != (r = this.delegate) && \"function\" == typeof r.compositionControllerDidSelectAttachment ? r.compositionControllerDidSelectAttachment(n, {\n editCaption: o\n }) : void 0;\n }, c.prototype.getSerializableElement = function () {\n return this.isEditingAttachment() ? this.documentView.shadowElement : this.element;\n }, c.prototype.render = function () {\n var t, e, n;\n return this.revision !== this.composition.revision && (this.documentView.setDocument(this.composition.document), this.documentView.render(), this.revision = this.composition.revision), this.canSyncDocumentView() && !this.documentView.isSynced() && (null != (t = this.delegate) && \"function\" == typeof t.compositionControllerWillSyncDocumentView && t.compositionControllerWillSyncDocumentView(), this.documentView.sync(), null != (e = this.delegate) && \"function\" == typeof e.compositionControllerDidSyncDocumentView && e.compositionControllerDidSyncDocumentView()), null != (n = this.delegate) && \"function\" == typeof n.compositionControllerDidRender ? n.compositionControllerDidRender() : void 0;\n }, c.prototype.rerenderViewForObject = function (t) {\n return this.invalidateViewForObject(t), this.render();\n }, c.prototype.invalidateViewForObject = function (t) {\n return this.documentView.invalidateViewForObject(t);\n }, c.prototype.isViewCachingEnabled = function () {\n return this.documentView.isViewCachingEnabled();\n }, c.prototype.enableViewCaching = function () {\n return this.documentView.enableViewCaching();\n }, c.prototype.disableViewCaching = function () {\n return this.documentView.disableViewCaching();\n }, c.prototype.refreshViewCache = function () {\n return this.documentView.garbageCollectCachedViews();\n }, c.prototype.isEditingAttachment = function () {\n return null != this.attachmentEditor;\n }, c.prototype.installAttachmentEditorForAttachment = function (t, n) {\n var i, o, r;\n if ((null != (r = this.attachmentEditor) ? r.attachment : void 0) !== t && (o = this.documentView.findElementForObject(t))) return this.uninstallAttachmentEditor(), i = this.composition.document.getAttachmentPieceForAttachment(t), this.attachmentEditor = new e.AttachmentEditorController(i, o, this.element, n), this.attachmentEditor.delegate = this;\n }, c.prototype.uninstallAttachmentEditor = function () {\n var t;\n return null != (t = this.attachmentEditor) ? t.uninstall() : void 0;\n }, c.prototype.didUninstallAttachmentEditor = function () {\n return this.attachmentEditor = null, this.render();\n }, c.prototype.attachmentEditorDidRequestUpdatingAttributesForAttachment = function (t, e) {\n var n;\n return null != (n = this.delegate) && \"function\" == typeof n.compositionControllerWillUpdateAttachment && n.compositionControllerWillUpdateAttachment(e), this.composition.updateAttributesForAttachment(t, e);\n }, c.prototype.attachmentEditorDidRequestRemovingAttributeForAttachment = function (t, e) {\n var n;\n return null != (n = this.delegate) && \"function\" == typeof n.compositionControllerWillUpdateAttachment && n.compositionControllerWillUpdateAttachment(e), this.composition.removeAttributeForAttachment(t, e);\n }, c.prototype.attachmentEditorDidRequestRemovalOfAttachment = function (t) {\n var e;\n return null != (e = this.delegate) && \"function\" == typeof e.compositionControllerDidRequestRemovalOfAttachment ? e.compositionControllerDidRequestRemovalOfAttachment(t) : void 0;\n }, c.prototype.attachmentEditorDidRequestDeselectingAttachment = function (t) {\n var e;\n return null != (e = this.delegate) && \"function\" == typeof e.compositionControllerDidRequestDeselectingAttachment ? e.compositionControllerDidRequestDeselectingAttachment(t) : void 0;\n }, c.prototype.canSyncDocumentView = function () {\n return !this.isEditingAttachment();\n }, c.prototype.findAttachmentForElement = function (t) {\n return this.composition.document.getAttachmentById(parseInt(t.dataset.trixId, 10));\n }, c;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o = function (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n r = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) s.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n s = {}.hasOwnProperty;\n n = e.handleEvent, i = e.triggerEvent, t = e.findClosestElementFromNode, e.ToolbarController = function (e) {\n function s(t) {\n this.element = t, this.didKeyDownDialogInput = o(this.didKeyDownDialogInput, this), this.didClickDialogButton = o(this.didClickDialogButton, this), this.didClickAttributeButton = o(this.didClickAttributeButton, this), this.didClickActionButton = o(this.didClickActionButton, this), this.attributes = {}, this.actions = {}, this.resetDialogInputs(), n(\"mousedown\", {\n onElement: this.element,\n matchingSelector: a,\n withCallback: this.didClickActionButton\n }), n(\"mousedown\", {\n onElement: this.element,\n matchingSelector: c,\n withCallback: this.didClickAttributeButton\n }), n(\"click\", {\n onElement: this.element,\n matchingSelector: v,\n preventDefault: !0\n }), n(\"click\", {\n onElement: this.element,\n matchingSelector: l,\n withCallback: this.didClickDialogButton\n }), n(\"keydown\", {\n onElement: this.element,\n matchingSelector: h,\n withCallback: this.didKeyDownDialogInput\n });\n }\n var a, u, c, l, h, p, d, f, g, m, v;\n return r(s, e), c = \"[data-trix-attribute]\", a = \"[data-trix-action]\", v = c + \", \" + a, p = \"[data-trix-dialog]\", u = p + \"[data-trix-active]\", l = p + \" [data-trix-method]\", h = p + \" [data-trix-input]\", s.prototype.didClickActionButton = function (t, e) {\n var n, i, o;\n return null != (i = this.delegate) && i.toolbarDidClickButton(), t.preventDefault(), n = d(e), this.getDialog(n) ? this.toggleDialog(n) : null != (o = this.delegate) ? o.toolbarDidInvokeAction(n) : void 0;\n }, s.prototype.didClickAttributeButton = function (t, e) {\n var n, i, o;\n return null != (i = this.delegate) && i.toolbarDidClickButton(), t.preventDefault(), n = f(e), this.getDialog(n) ? this.toggleDialog(n) : null != (o = this.delegate) && o.toolbarDidToggleAttribute(n), this.refreshAttributeButtons();\n }, s.prototype.didClickDialogButton = function (e, n) {\n var i, o;\n return i = t(n, {\n matchingSelector: p\n }), o = n.getAttribute(\"data-trix-method\"), this[o].call(this, i);\n }, s.prototype.didKeyDownDialogInput = function (t, e) {\n var n, i;\n return 13 === t.keyCode && (t.preventDefault(), n = e.getAttribute(\"name\"), i = this.getDialog(n), this.setAttribute(i)), 27 === t.keyCode ? (t.preventDefault(), this.hideDialog()) : void 0;\n }, s.prototype.updateActions = function (t) {\n return this.actions = t, this.refreshActionButtons();\n }, s.prototype.refreshActionButtons = function () {\n return this.eachActionButton(function (t) {\n return function (e, n) {\n return e.disabled = t.actions[n] === !1;\n };\n }(this));\n }, s.prototype.eachActionButton = function (t) {\n var e, n, i, o, r;\n for (o = this.element.querySelectorAll(a), r = [], n = 0, i = o.length; i > n; n++) e = o[n], r.push(t(e, d(e)));\n return r;\n }, s.prototype.updateAttributes = function (t) {\n return this.attributes = t, this.refreshAttributeButtons();\n }, s.prototype.refreshAttributeButtons = function () {\n return this.eachAttributeButton(function (t) {\n return function (e, n) {\n return e.disabled = t.attributes[n] === !1, t.attributes[n] || t.dialogIsVisible(n) ? (e.setAttribute(\"data-trix-active\", \"\"), e.classList.add(\"trix-active\")) : (e.removeAttribute(\"data-trix-active\"), e.classList.remove(\"trix-active\"));\n };\n }(this));\n }, s.prototype.eachAttributeButton = function (t) {\n var e, n, i, o, r;\n for (o = this.element.querySelectorAll(c), r = [], n = 0, i = o.length; i > n; n++) e = o[n], r.push(t(e, f(e)));\n return r;\n }, s.prototype.applyKeyboardCommand = function (t) {\n var e, n, o, r, s, a, u;\n for (s = JSON.stringify(t.sort()), u = this.element.querySelectorAll(\"[data-trix-key]\"), r = 0, a = u.length; a > r; r++) if (e = u[r], o = e.getAttribute(\"data-trix-key\").split(\"+\"), n = JSON.stringify(o.sort()), n === s) return i(\"mousedown\", {\n onElement: e\n }), !0;\n return !1;\n }, s.prototype.dialogIsVisible = function (t) {\n var e;\n return (e = this.getDialog(t)) ? e.hasAttribute(\"data-trix-active\") : void 0;\n }, s.prototype.toggleDialog = function (t) {\n return this.dialogIsVisible(t) ? this.hideDialog() : this.showDialog(t);\n }, s.prototype.showDialog = function (t) {\n var e, n, i, o, r, s, a, u, c, l;\n for (this.hideDialog(), null != (a = this.delegate) && a.toolbarWillShowDialog(), i = this.getDialog(t), i.setAttribute(\"data-trix-active\", \"\"), i.classList.add(\"trix-active\"), u = i.querySelectorAll(\"input[disabled]\"), o = 0, s = u.length; s > o; o++) n = u[o], n.removeAttribute(\"disabled\");\n return (e = f(i)) && (r = m(i, t)) && (r.value = null != (c = this.attributes[e]) ? c : \"\", r.select()), null != (l = this.delegate) ? l.toolbarDidShowDialog(t) : void 0;\n }, s.prototype.setAttribute = function (t) {\n var e, n, i;\n return e = f(t), n = m(t, e), n.willValidate && !n.checkValidity() ? (n.setAttribute(\"data-trix-validate\", \"\"), n.classList.add(\"trix-validate\"), n.focus()) : (null != (i = this.delegate) && i.toolbarDidUpdateAttribute(e, n.value), this.hideDialog());\n }, s.prototype.removeAttribute = function (t) {\n var e, n;\n return e = f(t), null != (n = this.delegate) && n.toolbarDidRemoveAttribute(e), this.hideDialog();\n }, s.prototype.hideDialog = function () {\n var t, e;\n return (t = this.element.querySelector(u)) ? (t.removeAttribute(\"data-trix-active\"), t.classList.remove(\"trix-active\"), this.resetDialogInputs(), null != (e = this.delegate) ? e.toolbarDidHideDialog(g(t)) : void 0) : void 0;\n }, s.prototype.resetDialogInputs = function () {\n var t, e, n, i, o;\n for (i = this.element.querySelectorAll(h), o = [], t = 0, n = i.length; n > t; t++) e = i[t], e.setAttribute(\"disabled\", \"disabled\"), e.removeAttribute(\"data-trix-validate\"), o.push(e.classList.remove(\"trix-validate\"));\n return o;\n }, s.prototype.getDialog = function (t) {\n return this.element.querySelector(\"[data-trix-dialog=\" + t + \"]\");\n }, m = function (t, e) {\n return null == e && (e = f(t)), t.querySelector(\"[data-trix-input][name='\" + e + \"']\");\n }, d = function (t) {\n return t.getAttribute(\"data-trix-action\");\n }, f = function (t) {\n var e;\n return null != (e = t.getAttribute(\"data-trix-attribute\")) ? e : t.getAttribute(\"data-trix-dialog-attribute\");\n }, g = function (t) {\n return t.getAttribute(\"data-trix-dialog\");\n }, s;\n }(e.BasicObject);\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n e.ImagePreloadOperation = function (e) {\n function n(t) {\n this.url = t;\n }\n return t(n, e), n.prototype.perform = function (t) {\n var e;\n return e = new Image(), e.onload = function (n) {\n return function () {\n return e.width = n.width = e.naturalWidth, e.height = n.height = e.naturalHeight, t(!0, e);\n };\n }(this), e.onerror = function () {\n return t(!1);\n }, e.src = this.url;\n }, n;\n }(e.Operation);\n }.call(this), function () {\n var t = function (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n n = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var o in e) i.call(e, o) && (t[o] = e[o]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty;\n e.Attachment = function (i) {\n function o(n) {\n null == n && (n = {}), this.releaseFile = t(this.releaseFile, this), o.__super__.constructor.apply(this, arguments), this.attributes = e.Hash.box(n), this.didChangeAttributes();\n }\n return n(o, i), o.previewablePattern = /^image(\\/(gif|png|jpe?g)|$)/, o.attachmentForFile = function (t) {\n var e, n;\n return n = this.attributesForFile(t), e = new this(n), e.setFile(t), e;\n }, o.attributesForFile = function (t) {\n return new e.Hash({\n filename: t.name,\n filesize: t.size,\n contentType: t.type\n });\n }, o.fromJSON = function (t) {\n return new this(t);\n }, o.prototype.getAttribute = function (t) {\n return this.attributes.get(t);\n }, o.prototype.hasAttribute = function (t) {\n return this.attributes.has(t);\n }, o.prototype.getAttributes = function () {\n return this.attributes.toObject();\n }, o.prototype.setAttributes = function (t) {\n var e, n, i;\n return null == t && (t = {}), e = this.attributes.merge(t), this.attributes.isEqualTo(e) ? void 0 : (this.attributes = e, this.didChangeAttributes(), null != (n = this.previewDelegate) && \"function\" == typeof n.attachmentDidChangeAttributes && n.attachmentDidChangeAttributes(this), null != (i = this.delegate) && \"function\" == typeof i.attachmentDidChangeAttributes ? i.attachmentDidChangeAttributes(this) : void 0);\n }, o.prototype.didChangeAttributes = function () {\n return this.isPreviewable() ? this.preloadURL() : void 0;\n }, o.prototype.isPending = function () {\n return null != this.file && !(this.getURL() || this.getHref());\n }, o.prototype.isPreviewable = function () {\n return this.attributes.has(\"previewable\") ? this.attributes.get(\"previewable\") : this.constructor.previewablePattern.test(this.getContentType());\n }, o.prototype.getType = function () {\n return this.hasContent() ? \"content\" : this.isPreviewable() ? \"preview\" : \"file\";\n }, o.prototype.getURL = function () {\n return this.attributes.get(\"url\");\n }, o.prototype.getHref = function () {\n return this.attributes.get(\"href\");\n }, o.prototype.getFilename = function () {\n var t;\n return null != (t = this.attributes.get(\"filename\")) ? t : \"\";\n }, o.prototype.getFilesize = function () {\n return this.attributes.get(\"filesize\");\n }, o.prototype.getFormattedFilesize = function () {\n var t;\n return t = this.attributes.get(\"filesize\"), \"number\" == typeof t ? e.config.fileSize.formatter(t) : \"\";\n }, o.prototype.getExtension = function () {\n var t;\n return null != (t = this.getFilename().match(/\\.(\\w+)$/)) ? t[1].toLowerCase() : void 0;\n }, o.prototype.getContentType = function () {\n return this.attributes.get(\"contentType\");\n }, o.prototype.hasContent = function () {\n return this.attributes.has(\"content\");\n }, o.prototype.getContent = function () {\n return this.attributes.get(\"content\");\n }, o.prototype.getWidth = function () {\n return this.attributes.get(\"width\");\n }, o.prototype.getHeight = function () {\n return this.attributes.get(\"height\");\n }, o.prototype.getFile = function () {\n return this.file;\n }, o.prototype.setFile = function (t) {\n return this.file = t, this.isPreviewable() ? this.preloadFile() : void 0;\n }, o.prototype.releaseFile = function () {\n return this.releasePreloadedFile(), this.file = null;\n }, o.prototype.getUploadProgress = function () {\n var t;\n return null != (t = this.uploadProgress) ? t : 0;\n }, o.prototype.setUploadProgress = function (t) {\n var e;\n return this.uploadProgress !== t ? (this.uploadProgress = t, null != (e = this.uploadProgressDelegate) && \"function\" == typeof e.attachmentDidChangeUploadProgress ? e.attachmentDidChangeUploadProgress(this) : void 0) : void 0;\n }, o.prototype.toJSON = function () {\n return this.getAttributes();\n }, o.prototype.getCacheKey = function () {\n return [o.__super__.getCacheKey.apply(this, arguments), this.attributes.getCacheKey(), this.getPreviewURL()].join(\"/\");\n }, o.prototype.getPreviewURL = function () {\n return this.previewURL || this.preloadingURL;\n }, o.prototype.setPreviewURL = function (t) {\n var e, n;\n return t !== this.getPreviewURL() ? (this.previewURL = t, null != (e = this.previewDelegate) && \"function\" == typeof e.attachmentDidChangeAttributes && e.attachmentDidChangeAttributes(this), null != (n = this.delegate) && \"function\" == typeof n.attachmentDidChangePreviewURL ? n.attachmentDidChangePreviewURL(this) : void 0) : void 0;\n }, o.prototype.preloadURL = function () {\n return this.preload(this.getURL(), this.releaseFile);\n }, o.prototype.preloadFile = function () {\n return this.file ? (this.fileObjectURL = URL.createObjectURL(this.file), this.preload(this.fileObjectURL)) : void 0;\n }, o.prototype.releasePreloadedFile = function () {\n return this.fileObjectURL ? (URL.revokeObjectURL(this.fileObjectURL), this.fileObjectURL = null) : void 0;\n }, o.prototype.preload = function (t, n) {\n var i;\n return t && t !== this.getPreviewURL() ? (this.preloadingURL = t, i = new e.ImagePreloadOperation(t), i.then(function (e) {\n return function (i) {\n var o, r;\n return r = i.width, o = i.height, e.getWidth() && e.getHeight() || e.setAttributes({\n width: r,\n height: o\n }), e.preloadingURL = null, e.setPreviewURL(t), \"function\" == typeof n ? n() : void 0;\n };\n }(this))[\"catch\"](function (t) {\n return function () {\n return t.preloadingURL = null, \"function\" == typeof n ? n() : void 0;\n };\n }(this))) : void 0;\n }, o;\n }(e.Object);\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n e.Piece = function (n) {\n function i(t, n) {\n null == n && (n = {}), i.__super__.constructor.apply(this, arguments), this.attributes = e.Hash.box(n);\n }\n return t(i, n), i.types = {}, i.registerType = function (t, e) {\n return e.type = t, this.types[t] = e;\n }, i.fromJSON = function (t) {\n var e;\n return (e = this.types[t.type]) ? e.fromJSON(t) : void 0;\n }, i.prototype.copyWithAttributes = function (t) {\n return new this.constructor(this.getValue(), t);\n }, i.prototype.copyWithAdditionalAttributes = function (t) {\n return this.copyWithAttributes(this.attributes.merge(t));\n }, i.prototype.copyWithoutAttribute = function (t) {\n return this.copyWithAttributes(this.attributes.remove(t));\n }, i.prototype.copy = function () {\n return this.copyWithAttributes(this.attributes);\n }, i.prototype.getAttribute = function (t) {\n return this.attributes.get(t);\n }, i.prototype.getAttributesHash = function () {\n return this.attributes;\n }, i.prototype.getAttributes = function () {\n return this.attributes.toObject();\n }, i.prototype.getCommonAttributes = function () {\n var t, e, n;\n return (n = pieceList.getPieceAtIndex(0)) ? (t = n.attributes, e = t.getKeys(), pieceList.eachPiece(function (n) {\n return e = t.getKeysCommonToHash(n.attributes), t = t.slice(e);\n }), t.toObject()) : {};\n }, i.prototype.hasAttribute = function (t) {\n return this.attributes.has(t);\n }, i.prototype.hasSameStringValueAsPiece = function (t) {\n return null != t && this.toString() === t.toString();\n }, i.prototype.hasSameAttributesAsPiece = function (t) {\n return null != t && (this.attributes === t.attributes || this.attributes.isEqualTo(t.attributes));\n }, i.prototype.isBlockBreak = function () {\n return !1;\n }, i.prototype.isEqualTo = function (t) {\n return i.__super__.isEqualTo.apply(this, arguments) || this.hasSameConstructorAs(t) && this.hasSameStringValueAsPiece(t) && this.hasSameAttributesAsPiece(t);\n }, i.prototype.isEmpty = function () {\n return 0 === this.length;\n }, i.prototype.isSerializable = function () {\n return !0;\n }, i.prototype.toJSON = function () {\n return {\n type: this.constructor.type,\n attributes: this.getAttributes()\n };\n }, i.prototype.contentsForInspection = function () {\n return {\n type: this.constructor.type,\n attributes: this.attributes.inspect()\n };\n }, i.prototype.canBeGrouped = function () {\n return this.hasAttribute(\"href\");\n }, i.prototype.canBeGroupedWith = function (t) {\n return this.getAttribute(\"href\") === t.getAttribute(\"href\");\n }, i.prototype.getLength = function () {\n return this.length;\n }, i.prototype.canBeConsolidatedWith = function () {\n return !1;\n }, i;\n }(e.Object);\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n e.Piece.registerType(\"attachment\", e.AttachmentPiece = function (n) {\n function i(t) {\n this.attachment = t, i.__super__.constructor.apply(this, arguments), this.length = 1, this.ensureAttachmentExclusivelyHasAttribute(\"href\"), this.attachment.hasContent() || this.removeProhibitedAttributes();\n }\n return t(i, n), i.fromJSON = function (t) {\n return new this(e.Attachment.fromJSON(t.attachment), t.attributes);\n }, i.permittedAttributes = [\"caption\", \"presentation\"], i.prototype.ensureAttachmentExclusivelyHasAttribute = function (t) {\n return this.hasAttribute(t) ? (this.attachment.hasAttribute(t) || this.attachment.setAttributes(this.attributes.slice(t)), this.attributes = this.attributes.remove(t)) : void 0;\n }, i.prototype.removeProhibitedAttributes = function () {\n var t;\n return t = this.attributes.slice(this.constructor.permittedAttributes), t.isEqualTo(this.attributes) ? void 0 : this.attributes = t;\n }, i.prototype.getValue = function () {\n return this.attachment;\n }, i.prototype.isSerializable = function () {\n return !this.attachment.isPending();\n }, i.prototype.getCaption = function () {\n var t;\n return null != (t = this.attributes.get(\"caption\")) ? t : \"\";\n }, i.prototype.isEqualTo = function (t) {\n var e;\n return i.__super__.isEqualTo.apply(this, arguments) && this.attachment.id === (null != t && null != (e = t.attachment) ? e.id : void 0);\n }, i.prototype.toString = function () {\n return e.OBJECT_REPLACEMENT_CHARACTER;\n }, i.prototype.toJSON = function () {\n var t;\n return t = i.__super__.toJSON.apply(this, arguments), t.attachment = this.attachment, t;\n }, i.prototype.getCacheKey = function () {\n return [i.__super__.getCacheKey.apply(this, arguments), this.attachment.getCacheKey()].join(\"/\");\n }, i.prototype.toConsole = function () {\n return JSON.stringify(this.toString());\n }, i;\n }(e.Piece));\n }.call(this), function () {\n var t,\n n = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var o in e) i.call(e, o) && (t[o] = e[o]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty;\n t = e.normalizeNewlines, e.Piece.registerType(\"string\", e.StringPiece = function (e) {\n function i(e) {\n i.__super__.constructor.apply(this, arguments), this.string = t(e), this.length = this.string.length;\n }\n return n(i, e), i.fromJSON = function (t) {\n return new this(t.string, t.attributes);\n }, i.prototype.getValue = function () {\n return this.string;\n }, i.prototype.toString = function () {\n return this.string.toString();\n }, i.prototype.isBlockBreak = function () {\n return \"\\n\" === this.toString() && this.getAttribute(\"blockBreak\") === !0;\n }, i.prototype.toJSON = function () {\n var t;\n return t = i.__super__.toJSON.apply(this, arguments), t.string = this.string, t;\n }, i.prototype.canBeConsolidatedWith = function (t) {\n return null != t && this.hasSameConstructorAs(t) && this.hasSameAttributesAsPiece(t);\n }, i.prototype.consolidateWith = function (t) {\n return new this.constructor(this.toString() + t.toString(), this.attributes);\n }, i.prototype.splitAtOffset = function (t) {\n var e, n;\n return 0 === t ? (e = null, n = this) : t === this.length ? (e = this, n = null) : (e = new this.constructor(this.string.slice(0, t), this.attributes), n = new this.constructor(this.string.slice(t), this.attributes)), [e, n];\n }, i.prototype.toConsole = function () {\n var t;\n return t = this.string, t.length > 15 && (t = t.slice(0, 14) + \"\\u2026\"), JSON.stringify(t.toString());\n }, i;\n }(e.Piece));\n }.call(this), function () {\n var t,\n n = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var o in e) i.call(e, o) && (t[o] = e[o]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty,\n o = [].slice;\n t = e.spliceArray, e.SplittableList = function (e) {\n function i(t) {\n null == t && (t = []), i.__super__.constructor.apply(this, arguments), this.objects = t.slice(0), this.length = this.objects.length;\n }\n var r, s, a;\n return n(i, e), i.box = function (t) {\n return t instanceof this ? t : new this(t);\n }, i.prototype.indexOf = function (t) {\n return this.objects.indexOf(t);\n }, i.prototype.splice = function () {\n var e;\n return e = 1 <= arguments.length ? o.call(arguments, 0) : [], new this.constructor(t.apply(null, [this.objects].concat(o.call(e))));\n }, i.prototype.eachObject = function (t) {\n var e, n, i, o, r, s;\n for (r = this.objects, s = [], n = e = 0, i = r.length; i > e; n = ++e) o = r[n], s.push(t(o, n));\n return s;\n }, i.prototype.insertObjectAtIndex = function (t, e) {\n return this.splice(e, 0, t);\n }, i.prototype.insertSplittableListAtIndex = function (t, e) {\n return this.splice.apply(this, [e, 0].concat(o.call(t.objects)));\n }, i.prototype.insertSplittableListAtPosition = function (t, e) {\n var n, i, o;\n return o = this.splitObjectAtPosition(e), i = o[0], n = o[1], new this.constructor(i).insertSplittableListAtIndex(t, n);\n }, i.prototype.editObjectAtIndex = function (t, e) {\n return this.replaceObjectAtIndex(e(this.objects[t]), t);\n }, i.prototype.replaceObjectAtIndex = function (t, e) {\n return this.splice(e, 1, t);\n }, i.prototype.removeObjectAtIndex = function (t) {\n return this.splice(t, 1);\n }, i.prototype.getObjectAtIndex = function (t) {\n return this.objects[t];\n }, i.prototype.getSplittableListInRange = function (t) {\n var e, n, i, o;\n return i = this.splitObjectsAtRange(t), n = i[0], e = i[1], o = i[2], new this.constructor(n.slice(e, o + 1));\n }, i.prototype.selectSplittableList = function (t) {\n var e, n;\n return n = function () {\n var n, i, o, r;\n for (o = this.objects, r = [], n = 0, i = o.length; i > n; n++) e = o[n], t(e) && r.push(e);\n return r;\n }.call(this), new this.constructor(n);\n }, i.prototype.removeObjectsInRange = function (t) {\n var e, n, i, o;\n return i = this.splitObjectsAtRange(t), n = i[0], e = i[1], o = i[2], new this.constructor(n).splice(e, o - e + 1);\n }, i.prototype.transformObjectsInRange = function (t, e) {\n var n, i, o, r, s, a, u;\n return s = this.splitObjectsAtRange(t), r = s[0], i = s[1], a = s[2], u = function () {\n var t, s, u;\n for (u = [], n = t = 0, s = r.length; s > t; n = ++t) o = r[n], u.push(n >= i && a >= n ? e(o) : o);\n return u;\n }(), new this.constructor(u);\n }, i.prototype.splitObjectsAtRange = function (t) {\n var e, n, i, o, s, u;\n return o = this.splitObjectAtPosition(a(t)), n = o[0], e = o[1], i = o[2], s = new this.constructor(n).splitObjectAtPosition(r(t) + i), n = s[0], u = s[1], [n, e, u - 1];\n }, i.prototype.getObjectAtPosition = function (t) {\n var e, n, i;\n return i = this.findIndexAndOffsetAtPosition(t), e = i.index, n = i.offset, this.objects[e];\n }, i.prototype.splitObjectAtPosition = function (t) {\n var e, n, i, o, r, s, a, u, c, l;\n return s = this.findIndexAndOffsetAtPosition(t), e = s.index, r = s.offset, o = this.objects.slice(0), null != e ? 0 === r ? (c = e, l = 0) : (i = this.getObjectAtIndex(e), a = i.splitAtOffset(r), n = a[0], u = a[1], o.splice(e, 1, n, u), c = e + 1, l = n.getLength() - r) : (c = o.length, l = 0), [o, c, l];\n }, i.prototype.consolidate = function () {\n var t, e, n, i, o, r;\n for (i = [], o = this.objects[0], r = this.objects.slice(1), t = 0, e = r.length; e > t; t++) n = r[t], (\"function\" == typeof o.canBeConsolidatedWith ? o.canBeConsolidatedWith(n) : void 0) ? o = o.consolidateWith(n) : (i.push(o), o = n);\n return null != o && i.push(o), new this.constructor(i);\n }, i.prototype.consolidateFromIndexToIndex = function (t, e) {\n var n, i, r;\n return i = this.objects.slice(0), r = i.slice(t, e + 1), n = new this.constructor(r).consolidate().toArray(), this.splice.apply(this, [t, r.length].concat(o.call(n)));\n }, i.prototype.findIndexAndOffsetAtPosition = function (t) {\n var e, n, i, o, r, s, a;\n for (e = 0, a = this.objects, i = n = 0, o = a.length; o > n; i = ++n) {\n if (s = a[i], r = e + s.getLength(), t >= e && r > t) return {\n index: i,\n offset: t - e\n };\n e = r;\n }\n return {\n index: null,\n offset: null\n };\n }, i.prototype.findPositionAtIndexAndOffset = function (t, e) {\n var n, i, o, r, s, a;\n for (s = 0, a = this.objects, n = i = 0, o = a.length; o > i; n = ++i) if (r = a[n], t > n) s += r.getLength();else if (n === t) {\n s += e;\n break;\n }\n return s;\n }, i.prototype.getEndPosition = function () {\n var t, e;\n return null != this.endPosition ? this.endPosition : this.endPosition = function () {\n var n, i, o;\n for (e = 0, o = this.objects, n = 0, i = o.length; i > n; n++) t = o[n], e += t.getLength();\n return e;\n }.call(this);\n }, i.prototype.toString = function () {\n return this.objects.join(\"\");\n }, i.prototype.toArray = function () {\n return this.objects.slice(0);\n }, i.prototype.toJSON = function () {\n return this.toArray();\n }, i.prototype.isEqualTo = function (t) {\n return i.__super__.isEqualTo.apply(this, arguments) || s(this.objects, null != t ? t.objects : void 0);\n }, s = function (t, e) {\n var n, i, o, r, s;\n if (null == e && (e = []), t.length !== e.length) return !1;\n for (s = !0, i = n = 0, o = t.length; o > n; i = ++n) r = t[i], s && !r.isEqualTo(e[i]) && (s = !1);\n return s;\n }, i.prototype.contentsForInspection = function () {\n var t;\n return {\n objects: \"[\" + function () {\n var e, n, i, o;\n for (i = this.objects, o = [], e = 0, n = i.length; n > e; e++) t = i[e], o.push(t.inspect());\n return o;\n }.call(this).join(\", \") + \"]\"\n };\n }, a = function (t) {\n return t[0];\n }, r = function (t) {\n return t[1];\n }, i;\n }(e.Object);\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n e.Text = function (n) {\n function i(t) {\n var n;\n null == t && (t = []), i.__super__.constructor.apply(this, arguments), this.pieceList = new e.SplittableList(function () {\n var e, i, o;\n for (o = [], e = 0, i = t.length; i > e; e++) n = t[e], n.isEmpty() || o.push(n);\n return o;\n }());\n }\n return t(i, n), i.textForAttachmentWithAttributes = function (t, n) {\n var i;\n return i = new e.AttachmentPiece(t, n), new this([i]);\n }, i.textForStringWithAttributes = function (t, n) {\n var i;\n return i = new e.StringPiece(t, n), new this([i]);\n }, i.fromJSON = function (t) {\n var n, i;\n return i = function () {\n var i, o, r;\n for (r = [], i = 0, o = t.length; o > i; i++) n = t[i], r.push(e.Piece.fromJSON(n));\n return r;\n }(), new this(i);\n }, i.prototype.copy = function () {\n return this.copyWithPieceList(this.pieceList);\n }, i.prototype.copyWithPieceList = function (t) {\n return new this.constructor(t.consolidate().toArray());\n }, i.prototype.copyUsingObjectMap = function (t) {\n var e, n;\n return n = function () {\n var n, i, o, r, s;\n for (o = this.getPieces(), s = [], n = 0, i = o.length; i > n; n++) e = o[n], s.push(null != (r = t.find(e)) ? r : e);\n return s;\n }.call(this), new this.constructor(n);\n }, i.prototype.appendText = function (t) {\n return this.insertTextAtPosition(t, this.getLength());\n }, i.prototype.insertTextAtPosition = function (t, e) {\n return this.copyWithPieceList(this.pieceList.insertSplittableListAtPosition(t.pieceList, e));\n }, i.prototype.removeTextAtRange = function (t) {\n return this.copyWithPieceList(this.pieceList.removeObjectsInRange(t));\n }, i.prototype.replaceTextAtRange = function (t, e) {\n return this.removeTextAtRange(e).insertTextAtPosition(t, e[0]);\n }, i.prototype.moveTextFromRangeToPosition = function (t, e) {\n var n, i;\n if (!(t[0] <= e && e <= t[1])) return i = this.getTextAtRange(t), n = i.getLength(), t[0] < e && (e -= n), this.removeTextAtRange(t).insertTextAtPosition(i, e);\n }, i.prototype.addAttributeAtRange = function (t, e, n) {\n var i;\n return i = {}, i[t] = e, this.addAttributesAtRange(i, n);\n }, i.prototype.addAttributesAtRange = function (t, e) {\n return this.copyWithPieceList(this.pieceList.transformObjectsInRange(e, function (e) {\n return e.copyWithAdditionalAttributes(t);\n }));\n }, i.prototype.removeAttributeAtRange = function (t, e) {\n return this.copyWithPieceList(this.pieceList.transformObjectsInRange(e, function (e) {\n return e.copyWithoutAttribute(t);\n }));\n }, i.prototype.setAttributesAtRange = function (t, e) {\n return this.copyWithPieceList(this.pieceList.transformObjectsInRange(e, function (e) {\n return e.copyWithAttributes(t);\n }));\n }, i.prototype.getAttributesAtPosition = function (t) {\n var e, n;\n return null != (e = null != (n = this.pieceList.getObjectAtPosition(t)) ? n.getAttributes() : void 0) ? e : {};\n }, i.prototype.getCommonAttributes = function () {\n var t, n;\n return t = function () {\n var t, e, i, o;\n for (i = this.pieceList.toArray(), o = [], t = 0, e = i.length; e > t; t++) n = i[t], o.push(n.getAttributes());\n return o;\n }.call(this), e.Hash.fromCommonAttributesOfObjects(t).toObject();\n }, i.prototype.getCommonAttributesAtRange = function (t) {\n var e;\n return null != (e = this.getTextAtRange(t).getCommonAttributes()) ? e : {};\n }, i.prototype.getExpandedRangeForAttributeAtOffset = function (t, e) {\n var n, i, o;\n for (n = o = e, i = this.getLength(); n > 0 && this.getCommonAttributesAtRange([n - 1, o])[t];) n--;\n for (; i > o && this.getCommonAttributesAtRange([e, o + 1])[t];) o++;\n return [n, o];\n }, i.prototype.getTextAtRange = function (t) {\n return this.copyWithPieceList(this.pieceList.getSplittableListInRange(t));\n }, i.prototype.getStringAtRange = function (t) {\n return this.pieceList.getSplittableListInRange(t).toString();\n }, i.prototype.getStringAtPosition = function (t) {\n return this.getStringAtRange([t, t + 1]);\n }, i.prototype.startsWithString = function (t) {\n return this.getStringAtRange([0, t.length]) === t;\n }, i.prototype.endsWithString = function (t) {\n var e;\n return e = this.getLength(), this.getStringAtRange([e - t.length, e]) === t;\n }, i.prototype.getAttachmentPieces = function () {\n var t, e, n, i, o;\n for (i = this.pieceList.toArray(), o = [], t = 0, e = i.length; e > t; t++) n = i[t], null != n.attachment && o.push(n);\n return o;\n }, i.prototype.getAttachments = function () {\n var t, e, n, i, o;\n for (i = this.getAttachmentPieces(), o = [], t = 0, e = i.length; e > t; t++) n = i[t], o.push(n.attachment);\n return o;\n }, i.prototype.getAttachmentAndPositionById = function (t) {\n var e, n, i, o, r, s;\n for (o = 0, r = this.pieceList.toArray(), e = 0, n = r.length; n > e; e++) {\n if (i = r[e], (null != (s = i.attachment) ? s.id : void 0) === t) return {\n attachment: i.attachment,\n position: o\n };\n o += i.length;\n }\n return {\n attachment: null,\n position: null\n };\n }, i.prototype.getAttachmentById = function (t) {\n var e, n, i;\n return i = this.getAttachmentAndPositionById(t), e = i.attachment, n = i.position, e;\n }, i.prototype.getRangeOfAttachment = function (t) {\n var e, n;\n return n = this.getAttachmentAndPositionById(t.id), t = n.attachment, e = n.position, null != t ? [e, e + 1] : void 0;\n }, i.prototype.updateAttributesForAttachment = function (t, e) {\n var n;\n return (n = this.getRangeOfAttachment(e)) ? this.addAttributesAtRange(t, n) : this;\n }, i.prototype.getLength = function () {\n return this.pieceList.getEndPosition();\n }, i.prototype.isEmpty = function () {\n return 0 === this.getLength();\n }, i.prototype.isEqualTo = function (t) {\n var e;\n return i.__super__.isEqualTo.apply(this, arguments) || (null != t && null != (e = t.pieceList) ? e.isEqualTo(this.pieceList) : void 0);\n }, i.prototype.isBlockBreak = function () {\n return 1 === this.getLength() && this.pieceList.getObjectAtIndex(0).isBlockBreak();\n }, i.prototype.eachPiece = function (t) {\n return this.pieceList.eachObject(t);\n }, i.prototype.getPieces = function () {\n return this.pieceList.toArray();\n }, i.prototype.getPieceAtPosition = function (t) {\n return this.pieceList.getObjectAtPosition(t);\n }, i.prototype.contentsForInspection = function () {\n return {\n pieceList: this.pieceList.inspect()\n };\n }, i.prototype.toSerializableText = function () {\n var t;\n return t = this.pieceList.selectSplittableList(function (t) {\n return t.isSerializable();\n }), this.copyWithPieceList(t);\n }, i.prototype.toString = function () {\n return this.pieceList.toString();\n }, i.prototype.toJSON = function () {\n return this.pieceList.toJSON();\n }, i.prototype.toConsole = function () {\n var t;\n return JSON.stringify(function () {\n var e, n, i, o;\n for (i = this.pieceList.toArray(), o = [], e = 0, n = i.length; n > e; e++) t = i[e], o.push(JSON.parse(t.toConsole()));\n return o;\n }.call(this));\n }, i.prototype.getDirection = function () {\n return e.getDirection(this.toString());\n }, i.prototype.isRTL = function () {\n return \"rtl\" === this.getDirection();\n }, i;\n }(e.Object);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) a.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n a = {}.hasOwnProperty,\n u = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n return -1;\n },\n c = [].slice;\n t = e.arraysAreEqual, r = e.spliceArray, i = e.getBlockConfig, n = e.getBlockAttributeNames, o = e.getListAttributeNames, e.Block = function (n) {\n function a(t, n) {\n null == t && (t = new e.Text()), null == n && (n = []), a.__super__.constructor.apply(this, arguments), this.text = h(t), this.attributes = n;\n }\n var l, h, p, d, f, g, m, v, y;\n return s(a, n), a.fromJSON = function (t) {\n var n;\n return n = e.Text.fromJSON(t.text), new this(n, t.attributes);\n }, a.prototype.isEmpty = function () {\n return this.text.isBlockBreak();\n }, a.prototype.isEqualTo = function (e) {\n return a.__super__.isEqualTo.apply(this, arguments) || this.text.isEqualTo(null != e ? e.text : void 0) && t(this.attributes, null != e ? e.attributes : void 0);\n }, a.prototype.copyWithText = function (t) {\n return new this.constructor(t, this.attributes);\n }, a.prototype.copyWithoutText = function () {\n return this.copyWithText(null);\n }, a.prototype.copyWithAttributes = function (t) {\n return new this.constructor(this.text, t);\n }, a.prototype.copyWithoutAttributes = function () {\n return this.copyWithAttributes(null);\n }, a.prototype.copyUsingObjectMap = function (t) {\n var e;\n return this.copyWithText((e = t.find(this.text)) ? e : this.text.copyUsingObjectMap(t));\n }, a.prototype.addAttribute = function (t) {\n var e;\n return e = this.attributes.concat(d(t)), this.copyWithAttributes(e);\n }, a.prototype.removeAttribute = function (t) {\n var e, n;\n return n = i(t).listAttribute, e = g(g(this.attributes, t), n), this.copyWithAttributes(e);\n }, a.prototype.removeLastAttribute = function () {\n return this.removeAttribute(this.getLastAttribute());\n }, a.prototype.getLastAttribute = function () {\n return f(this.attributes);\n }, a.prototype.getAttributes = function () {\n return this.attributes.slice(0);\n }, a.prototype.getAttributeLevel = function () {\n return this.attributes.length;\n }, a.prototype.getAttributeAtLevel = function (t) {\n return this.attributes[t - 1];\n }, a.prototype.hasAttribute = function (t) {\n return u.call(this.attributes, t) >= 0;\n }, a.prototype.hasAttributes = function () {\n return this.getAttributeLevel() > 0;\n }, a.prototype.getLastNestableAttribute = function () {\n return f(this.getNestableAttributes());\n }, a.prototype.getNestableAttributes = function () {\n var t, e, n, o, r;\n for (o = this.attributes, r = [], e = 0, n = o.length; n > e; e++) t = o[e], i(t).nestable && r.push(t);\n return r;\n }, a.prototype.getNestingLevel = function () {\n return this.getNestableAttributes().length;\n }, a.prototype.decreaseNestingLevel = function () {\n var t;\n return (t = this.getLastNestableAttribute()) ? this.removeAttribute(t) : this;\n }, a.prototype.increaseNestingLevel = function () {\n var t, e, n;\n return (t = this.getLastNestableAttribute()) ? (n = this.attributes.lastIndexOf(t), e = r.apply(null, [this.attributes, n + 1, 0].concat(c.call(d(t)))), this.copyWithAttributes(e)) : this;\n }, a.prototype.getListItemAttributes = function () {\n var t, e, n, o, r;\n for (o = this.attributes, r = [], e = 0, n = o.length; n > e; e++) t = o[e], i(t).listAttribute && r.push(t);\n return r;\n }, a.prototype.isListItem = function () {\n var t;\n return null != (t = i(this.getLastAttribute())) ? t.listAttribute : void 0;\n }, a.prototype.isTerminalBlock = function () {\n var t;\n return null != (t = i(this.getLastAttribute())) ? t.terminal : void 0;\n }, a.prototype.breaksOnReturn = function () {\n var t;\n return null != (t = i(this.getLastAttribute())) ? t.breakOnReturn : void 0;\n }, a.prototype.findLineBreakInDirectionFromPosition = function (t, e) {\n var n, i;\n return i = this.toString(), n = function () {\n switch (t) {\n case \"forward\":\n return i.indexOf(\"\\n\", e);\n case \"backward\":\n return i.slice(0, e).lastIndexOf(\"\\n\");\n }\n }(), -1 !== n ? n : void 0;\n }, a.prototype.contentsForInspection = function () {\n return {\n text: this.text.inspect(),\n attributes: this.attributes\n };\n }, a.prototype.toString = function () {\n return this.text.toString();\n }, a.prototype.toJSON = function () {\n return {\n text: this.text,\n attributes: this.attributes\n };\n }, a.prototype.getDirection = function () {\n return this.text.getDirection();\n }, a.prototype.isRTL = function () {\n return this.text.isRTL();\n }, a.prototype.getLength = function () {\n return this.text.getLength();\n }, a.prototype.canBeConsolidatedWith = function (t) {\n return !this.hasAttributes() && !t.hasAttributes() && this.getDirection() === t.getDirection();\n }, a.prototype.consolidateWith = function (t) {\n var n, i;\n return n = e.Text.textForStringWithAttributes(\"\\n\"), i = this.getTextWithoutBlockBreak().appendText(n), this.copyWithText(i.appendText(t.text));\n }, a.prototype.splitAtOffset = function (t) {\n var e, n;\n return 0 === t ? (e = null, n = this) : t === this.getLength() ? (e = this, n = null) : (e = this.copyWithText(this.text.getTextAtRange([0, t])), n = this.copyWithText(this.text.getTextAtRange([t, this.getLength()]))), [e, n];\n }, a.prototype.getBlockBreakPosition = function () {\n return this.text.getLength() - 1;\n }, a.prototype.getTextWithoutBlockBreak = function () {\n return m(this.text) ? this.text.getTextAtRange([0, this.getBlockBreakPosition()]) : this.text.copy();\n }, a.prototype.canBeGrouped = function (t) {\n return this.attributes[t];\n }, a.prototype.canBeGroupedWith = function (t, e) {\n var n, r, s, a;\n return s = t.getAttributes(), r = s[e], n = this.attributes[e], !(n !== r || i(n).group === !1 && (a = s[e + 1], u.call(o(), a) < 0) || this.getDirection() !== t.getDirection() && !t.isEmpty());\n }, h = function (t) {\n return t = y(t), t = l(t);\n }, y = function (t) {\n var n, i, o, r, s, a;\n return r = !1, a = t.getPieces(), i = 2 <= a.length ? c.call(a, 0, n = a.length - 1) : (n = 0, []), o = a[n++], null == o ? t : (i = function () {\n var t, e, n;\n for (n = [], t = 0, e = i.length; e > t; t++) s = i[t], s.isBlockBreak() ? (r = !0, n.push(v(s))) : n.push(s);\n return n;\n }(), r ? new e.Text(c.call(i).concat([o])) : t);\n }, p = e.Text.textForStringWithAttributes(\"\\n\", {\n blockBreak: !0\n }), l = function (t) {\n return m(t) ? t : t.appendText(p);\n }, m = function (t) {\n var e, n;\n return n = t.getLength(), 0 === n ? !1 : (e = t.getTextAtRange([n - 1, n]), e.isBlockBreak());\n }, v = function (t) {\n return t.copyWithoutAttribute(\"blockBreak\");\n }, d = function (t) {\n var e;\n return e = i(t).listAttribute, null != e ? [e, t] : [t];\n }, f = function (t) {\n return t.slice(-1)[0];\n }, g = function (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 (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) r.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n r = {}.hasOwnProperty,\n s = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n return -1;\n },\n a = [].slice;\n n = e.tagName, i = e.walkTree, t = e.nodeIsAttachmentElement, e.HTMLSanitizer = function (r) {\n function u(t, e) {\n var n;\n n = null != e ? e : {}, this.allowedAttributes = n.allowedAttributes, this.forbiddenProtocols = n.forbiddenProtocols, this.forbiddenElements = n.forbiddenElements, null == this.allowedAttributes && (this.allowedAttributes = c), null == this.forbiddenProtocols && (this.forbiddenProtocols = h), null == this.forbiddenElements && (this.forbiddenElements = l), this.body = p(t);\n }\n var c, l, h, p;\n return o(u, r), c = \"style href src width height class\".split(\" \"), h = \"javascript:\".split(\" \"), l = \"script iframe form noscript embed math\".split(\" \"), u.setHTML = function (t, e) {\n var n, i, o;\n return o = new this(e), n = o.sanitize(), i = null != n.getHTML ? n.getHTML() : n.outerHTML, t.innerHTML = i;\n }, u.sanitize = function (t, e) {\n var n;\n return n = new this(t, e), n.sanitize(), n;\n }, u.prototype.sanitize = function () {\n return this.sanitizeElements(), this.normalizeListElementNesting();\n }, u.prototype.getHTML = function () {\n return this.body.innerHTML;\n }, u.prototype.getBody = function () {\n return this.body;\n }, u.prototype.sanitizeElements = function () {\n var t, n, o, r, s;\n for (s = i(this.body), r = []; s.nextNode();) switch (o = s.currentNode, o.nodeType) {\n case Node.ELEMENT_NODE:\n this.elementIsRemovable(o) ? r.push(o) : this.sanitizeElement(o);\n break;\n case Node.COMMENT_NODE:\n r.push(o);\n }\n for (t = 0, n = r.length; n > t; t++) o = r[t], e.removeNode(o);\n return this.body;\n }, u.prototype.sanitizeElement = function (t) {\n var e, n, i, o, r;\n for (t.hasAttribute(\"href\") && (o = t.protocol, s.call(this.forbiddenProtocols, o) >= 0 && t.removeAttribute(\"href\")), r = a.call(t.attributes), e = 0, n = r.length; n > e; e++) i = r[e].name, s.call(this.allowedAttributes, i) >= 0 || 0 === i.indexOf(\"data-trix\") || t.removeAttribute(i);\n return t;\n }, u.prototype.normalizeListElementNesting = function () {\n var t, e, i, o, r;\n for (r = a.call(this.body.querySelectorAll(\"ul,ol\")), t = 0, e = r.length; e > t; t++) i = r[t], (o = i.previousElementSibling) && \"li\" === n(o) && o.appendChild(i);\n return this.body;\n }, u.prototype.elementIsRemovable = function (t) {\n return (null != t ? t.nodeType : void 0) === Node.ELEMENT_NODE ? this.elementIsForbidden(t) || this.elementIsntSerializable(t) : void 0;\n }, u.prototype.elementIsForbidden = function (t) {\n var e;\n return e = n(t), s.call(this.forbiddenElements, e) >= 0;\n }, u.prototype.elementIsntSerializable = function (e) {\n return \"false\" === e.getAttribute(\"data-trix-serialize\") && !t(e);\n }, p = function (t) {\n var e, n, i, o, r;\n for (null == t && (t = \"\"), t = t.replace(/<\\/html[^>]*>[^]*$/i, \"\"), e = document.implementation.createHTMLDocument(\"\"), e.documentElement.innerHTML = t, r = e.head.querySelectorAll(\"style\"), i = 0, o = r.length; o > i; i++) n = r[i], e.body.appendChild(n);\n return e.body;\n }, u;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a,\n u,\n c,\n l,\n h,\n p = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) d.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n d = {}.hasOwnProperty,\n f = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n return -1;\n };\n t = e.arraysAreEqual, s = e.makeElement, l = e.tagName, r = e.getBlockTagNames, h = e.walkTree, o = e.findClosestElementFromNode, i = e.elementContainsNode, a = e.nodeIsAttachmentElement, u = e.normalizeSpaces, n = e.breakableWhitespacePattern, c = e.squishBreakableWhitespace, e.HTMLParser = function (d) {\n function g(t, e) {\n this.html = t, this.referenceElement = (null != e ? e : {}).referenceElement, this.blocks = [], this.blockElements = [], this.processedElements = [];\n }\n var m, v, y, b, A, C, x, w, E, S, R, k;\n return p(g, d), g.parse = function (t, e) {\n var n;\n return n = new this(t, e), n.parse(), n;\n }, g.prototype.getDocument = function () {\n return e.Document.fromJSON(this.blocks);\n }, g.prototype.parse = function () {\n var t;\n try {\n for (this.createHiddenContainer(), e.HTMLSanitizer.setHTML(this.containerElement, this.html), t = h(this.containerElement, {\n usingFilter: x\n }); t.nextNode();) this.processNode(t.currentNode);\n return this.translateBlockElementMarginsToNewlines();\n } finally {\n this.removeHiddenContainer();\n }\n }, g.prototype.createHiddenContainer = function () {\n return this.referenceElement ? (this.containerElement = this.referenceElement.cloneNode(!1), this.containerElement.removeAttribute(\"id\"), this.containerElement.setAttribute(\"data-trix-internal\", \"\"), this.containerElement.style.display = \"none\", this.referenceElement.parentNode.insertBefore(this.containerElement, this.referenceElement.nextSibling)) : (this.containerElement = s({\n tagName: \"div\",\n style: {\n display: \"none\"\n }\n }), document.body.appendChild(this.containerElement));\n }, g.prototype.removeHiddenContainer = function () {\n return e.removeNode(this.containerElement);\n }, x = function (t) {\n return \"style\" === l(t) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;\n }, g.prototype.processNode = function (t) {\n switch (t.nodeType) {\n case Node.TEXT_NODE:\n if (!this.isInsignificantTextNode(t)) return this.appendBlockForTextNode(t), this.processTextNode(t);\n break;\n case Node.ELEMENT_NODE:\n return this.appendBlockForElement(t), this.processElement(t);\n }\n }, g.prototype.appendBlockForTextNode = function (e) {\n var n, i, o;\n return i = e.parentNode, i === this.currentBlockElement && this.isBlockElement(e.previousSibling) ? this.appendStringWithAttributes(\"\\n\") : i !== this.containerElement && !this.isBlockElement(i) || (n = this.getBlockAttributes(i), t(n, null != (o = this.currentBlock) ? o.attributes : void 0)) ? void 0 : (this.currentBlock = this.appendBlockForAttributesWithElement(n, i), this.currentBlockElement = i);\n }, g.prototype.appendBlockForElement = function (e) {\n var n, o, r, s;\n if (r = this.isBlockElement(e), o = i(this.currentBlockElement, e), r && !this.isBlockElement(e.firstChild)) {\n if ((!this.isInsignificantTextNode(e.firstChild) || !this.isBlockElement(e.firstElementChild)) && (n = this.getBlockAttributes(e), e.firstChild)) return o && t(n, this.currentBlock.attributes) ? this.appendStringWithAttributes(\"\\n\") : (this.currentBlock = this.appendBlockForAttributesWithElement(n, e), this.currentBlockElement = e);\n } else if (this.currentBlockElement && !o && !r) return (s = this.findParentBlockElement(e)) ? this.appendBlockForElement(s) : (this.currentBlock = this.appendEmptyBlock(), this.currentBlockElement = null);\n }, g.prototype.findParentBlockElement = function (t) {\n var e;\n for (e = t.parentElement; e && e !== this.containerElement;) {\n if (this.isBlockElement(e) && f.call(this.blockElements, e) >= 0) return e;\n e = e.parentElement;\n }\n return null;\n }, g.prototype.processTextNode = function (t) {\n var e, n;\n return n = t.data, v(t.parentNode) || (n = c(n), R(null != (e = t.previousSibling) ? e.textContent : void 0) && (n = A(n))), this.appendStringWithAttributes(n, this.getTextAttributes(t.parentNode));\n }, g.prototype.processElement = function (t) {\n var e, n, i, o, r;\n if (a(t)) return e = w(t, \"attachment\"), Object.keys(e).length && (o = this.getTextAttributes(t), this.appendAttachmentWithAttributes(e, o), t.innerHTML = \"\"), this.processedElements.push(t);\n switch (l(t)) {\n case \"br\":\n return this.isExtraBR(t) || this.isBlockElement(t.nextSibling) || this.appendStringWithAttributes(\"\\n\", this.getTextAttributes(t)), this.processedElements.push(t);\n case \"img\":\n e = {\n url: t.getAttribute(\"src\"),\n contentType: \"image\"\n }, i = b(t);\n for (n in i) r = i[n], e[n] = r;\n return this.appendAttachmentWithAttributes(e, this.getTextAttributes(t)), this.processedElements.push(t);\n case \"tr\":\n if (t.parentNode.firstChild !== t) return this.appendStringWithAttributes(\"\\n\");\n break;\n case \"td\":\n if (t.parentNode.firstChild !== t) return this.appendStringWithAttributes(\" | \");\n }\n }, g.prototype.appendBlockForAttributesWithElement = function (t, e) {\n var n;\n return this.blockElements.push(e), n = m(t), this.blocks.push(n), n;\n }, g.prototype.appendEmptyBlock = function () {\n return this.appendBlockForAttributesWithElement([], null);\n }, g.prototype.appendStringWithAttributes = function (t, e) {\n return this.appendPiece(S(t, e));\n }, g.prototype.appendAttachmentWithAttributes = function (t, e) {\n return this.appendPiece(E(t, e));\n }, g.prototype.appendPiece = function (t) {\n return 0 === this.blocks.length && this.appendEmptyBlock(), this.blocks[this.blocks.length - 1].text.push(t);\n }, g.prototype.appendStringToTextAtIndex = function (t, e) {\n var n, i;\n return i = this.blocks[e].text, n = i[i.length - 1], \"string\" === (null != n ? n.type : void 0) ? n.string += t : i.push(S(t));\n }, g.prototype.prependStringToTextAtIndex = function (t, e) {\n var n, i;\n return i = this.blocks[e].text, n = i[0], \"string\" === (null != n ? n.type : void 0) ? n.string = t + n.string : i.unshift(S(t));\n }, S = function (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 (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 (t) {\n var e;\n return null == t && (t = {}), e = [], {\n text: e,\n attributes: t\n };\n }, g.prototype.getTextAttributes = function (t) {\n var n, i, r, s, u, c, l, h, p, d, f, g;\n r = {}, p = e.config.textAttributes;\n for (n in p) if (u = p[n], u.tagName && o(t, {\n matchingSelector: u.tagName,\n untilNode: this.containerElement\n })) r[n] = !0;else if (u.parser) {\n if (g = u.parser(t)) {\n for (i = !1, d = this.findBlockElementAncestors(t), c = 0, h = d.length; h > c; c++) if (s = d[c], u.parser(s) === g) {\n i = !0;\n break;\n }\n i || (r[n] = g);\n }\n } else u.styleProperty && (g = t.style[u.styleProperty]) && (r[n] = g);\n if (a(t)) {\n f = w(t, \"attributes\");\n for (l in f) g = f[l], r[l] = g;\n }\n return r;\n }, g.prototype.getBlockAttributes = function (t) {\n var n, i, o, r;\n for (i = []; t && t !== this.containerElement;) {\n r = e.config.blockAttributes;\n for (n in r) o = r[n], o.parse !== !1 && l(t) === o.tagName && ((\"function\" == typeof o.test ? o.test(t) : void 0) || !o.test) && (i.push(n), o.listAttribute && i.push(o.listAttribute));\n t = t.parentNode;\n }\n return i.reverse();\n }, g.prototype.findBlockElementAncestors = function (t) {\n var e, n;\n for (e = []; t && t !== this.containerElement;) n = l(t), f.call(r(), n) >= 0 && e.push(t), t = t.parentNode;\n return e;\n }, w = function (t, e) {\n try {\n return JSON.parse(t.getAttribute(\"data-trix-\" + e));\n } catch (n) {\n return {};\n }\n }, b = function (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 (t) {\n var e;\n return e = window.getComputedStyle(t).whiteSpace, \"pre\" === e || \"pre-wrap\" === e || \"pre-line\" === e;\n }, C = function (t) {\n return t && !R(t.textContent);\n }, g.prototype.translateBlockElementMarginsToNewlines = function () {\n var t, e, n, i, o, r, s, a;\n for (e = this.getMarginOfDefaultBlockElement(), s = this.blocks, a = [], i = n = 0, o = s.length; o > n; i = ++n) t = s[i], (r = this.getMarginOfBlockElementAtIndex(i)) && (r.top > 2 * e.top && this.prependStringToTextAtIndex(\"\\n\", i), a.push(r.bottom > 2 * e.bottom ? this.appendStringToTextAtIndex(\"\\n\", i) : void 0));\n return a;\n }, g.prototype.getMarginOfBlockElementAtIndex = function (t) {\n var e, n;\n return !(e = this.blockElements[t]) || !e.textContent || (n = l(e), f.call(r(), n) >= 0 || f.call(this.processedElements, e) >= 0) ? void 0 : y(e);\n }, g.prototype.getMarginOfDefaultBlockElement = function () {\n var t;\n return t = s(e.config.blockAttributes[\"default\"].tagName), this.containerElement.appendChild(t), y(t);\n }, y = function (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 (t) {\n return t.replace(RegExp(\"^\" + n.source + \"+\"), \"\");\n }, k = function (t) {\n return RegExp(\"^\" + n.source + \"*$\").test(t);\n }, R = function (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 (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) s.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n s = {}.hasOwnProperty,\n a = [].slice,\n u = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n return -1;\n };\n t = e.arraysAreEqual, i = e.normalizeRange, o = e.rangeIsCollapsed, n = e.getBlockConfig, e.Document = function (s) {\n function c(t) {\n null == t && (t = []), c.__super__.constructor.apply(this, arguments), 0 === t.length && (t = [new e.Block()]), this.blockList = e.SplittableList.box(t);\n }\n var l;\n return r(c, s), c.fromJSON = function (t) {\n var n, i;\n return i = function () {\n var i, o, r;\n for (r = [], i = 0, o = t.length; o > i; i++) n = t[i], r.push(e.Block.fromJSON(n));\n return r;\n }(), new this(i);\n }, c.fromHTML = function (t, n) {\n return e.HTMLParser.parse(t, n).getDocument();\n }, c.fromString = function (t, n) {\n var i;\n return i = e.Text.textForStringWithAttributes(t, n), new this([new e.Block(i)]);\n }, c.prototype.isEmpty = function () {\n var t;\n return 1 === this.blockList.length && (t = this.getBlockAtIndex(0), t.isEmpty() && !t.hasAttributes());\n }, c.prototype.copy = function (t) {\n var e;\n return null == t && (t = {}), e = t.consolidateBlocks ? this.blockList.consolidate().toArray() : this.blockList.toArray(), new this.constructor(e);\n }, c.prototype.copyUsingObjectsFromDocument = function (t) {\n var n;\n return n = new e.ObjectMap(t.getObjects()), this.copyUsingObjectMap(n);\n }, c.prototype.copyUsingObjectMap = function (t) {\n var e, n, i;\n return n = function () {\n var n, o, r, s;\n for (r = this.getBlocks(), s = [], n = 0, o = r.length; o > n; n++) e = r[n], s.push((i = t.find(e)) ? i : e.copyUsingObjectMap(t));\n return s;\n }.call(this), new this.constructor(n);\n }, c.prototype.copyWithBaseBlockAttributes = function (t) {\n var e, n, i;\n return null == t && (t = []), i = function () {\n var i, o, r, s;\n for (r = this.getBlocks(), s = [], i = 0, o = r.length; o > i; i++) n = r[i], e = t.concat(n.getAttributes()), s.push(n.copyWithAttributes(e));\n return s;\n }.call(this), new this.constructor(i);\n }, c.prototype.replaceBlock = function (t, e) {\n var n;\n return n = this.blockList.indexOf(t), -1 === n ? this : new this.constructor(this.blockList.replaceObjectAtIndex(e, n));\n }, c.prototype.insertDocumentAtRange = function (t, e) {\n var n, r, s, a, u, c, l;\n return r = t.blockList, u = (e = i(e))[0], c = this.locationFromPosition(u), s = c.index, a = c.offset, l = this, n = this.getBlockAtPosition(u), o(e) && n.isEmpty() && !n.hasAttributes() ? l = new this.constructor(l.blockList.removeObjectAtIndex(s)) : n.getBlockBreakPosition() === a && u++, l = l.removeTextAtRange(e), new this.constructor(l.blockList.insertSplittableListAtPosition(r, u));\n }, c.prototype.mergeDocumentAtRange = function (e, n) {\n var o, r, s, a, u, c, l, h, p, d, f, g;\n return f = (n = i(n))[0], d = this.locationFromPosition(f), r = this.getBlockAtIndex(d.index).getAttributes(), o = e.getBaseBlockAttributes(), g = r.slice(-o.length), t(o, g) ? (l = r.slice(0, -o.length), c = e.copyWithBaseBlockAttributes(l)) : c = e.copy({\n consolidateBlocks: !0\n }).copyWithBaseBlockAttributes(r), s = c.getBlockCount(), a = c.getBlockAtIndex(0), t(r, a.getAttributes()) ? (u = a.getTextWithoutBlockBreak(), p = this.insertTextAtRange(u, n), s > 1 && (c = new this.constructor(c.getBlocks().slice(1)), h = f + u.getLength(), p = p.insertDocumentAtRange(c, h))) : p = this.insertDocumentAtRange(c, n), p;\n }, c.prototype.insertTextAtRange = function (t, e) {\n var n, o, r, s, a;\n return a = (e = i(e))[0], s = this.locationFromPosition(a), o = s.index, r = s.offset, n = this.removeTextAtRange(e), new this.constructor(n.blockList.editObjectAtIndex(o, function (e) {\n return e.copyWithText(e.text.insertTextAtPosition(t, r));\n }));\n }, c.prototype.removeTextAtRange = function (t) {\n var e, n, r, s, a, u, c, l, h, p, d, f, g, m, v, y, b, A, C, x, w;\n return p = t = i(t), l = p[0], A = p[1], o(t) ? this : (d = this.locationRangeFromRange(t), u = d[0], y = d[1], a = u.index, c = u.offset, s = this.getBlockAtIndex(a), v = y.index, b = y.offset, m = this.getBlockAtIndex(v), f = A - l === 1 && s.getBlockBreakPosition() === c && m.getBlockBreakPosition() !== b && \"\\n\" === m.text.getStringAtPosition(b), f ? r = this.blockList.editObjectAtIndex(v, function (t) {\n return t.copyWithText(t.text.removeTextAtRange([b, b + 1]));\n }) : (h = s.text.getTextAtRange([0, c]), C = m.text.getTextAtRange([b, m.getLength()]), x = h.appendText(C), g = a !== v && 0 === c, w = g && s.getAttributeLevel() >= m.getAttributeLevel(), n = w ? m.copyWithText(x) : s.copyWithText(x), e = v + 1 - a, r = this.blockList.splice(a, e, n)), new this.constructor(r));\n }, c.prototype.moveTextFromRangeToPosition = function (t, e) {\n var n, o, r, s, u, c, l, h, p, d;\n return c = t = i(t), p = c[0], r = c[1], e >= p && r >= e ? this : (o = this.getDocumentAtRange(t), h = this.removeTextAtRange(t), u = e > p, u && (e -= o.getLength()), l = o.getBlocks(), s = l[0], n = 2 <= l.length ? a.call(l, 1) : [], 0 === n.length ? (d = s.getTextWithoutBlockBreak(), u && (e += 1)) : d = s.text, h = h.insertTextAtRange(d, e), 0 === n.length ? h : (o = new this.constructor(n), e += d.getLength(), h.insertDocumentAtRange(o, e)));\n }, c.prototype.addAttributeAtRange = function (t, e, i) {\n var o;\n return o = this.blockList, this.eachBlockAtRange(i, function (i, r, s) {\n return o = o.editObjectAtIndex(s, function () {\n return n(t) ? i.addAttribute(t, e) : r[0] === r[1] ? i : i.copyWithText(i.text.addAttributeAtRange(t, e, r));\n });\n }), new this.constructor(o);\n }, c.prototype.addAttribute = function (t, e) {\n var n;\n return n = this.blockList, this.eachBlock(function (i, o) {\n return n = n.editObjectAtIndex(o, function () {\n return i.addAttribute(t, e);\n });\n }), new this.constructor(n);\n }, c.prototype.removeAttributeAtRange = function (t, e) {\n var i;\n return i = this.blockList, this.eachBlockAtRange(e, function (e, o, r) {\n return n(t) ? i = i.editObjectAtIndex(r, function () {\n return e.removeAttribute(t);\n }) : o[0] !== o[1] ? i = i.editObjectAtIndex(r, function () {\n return e.copyWithText(e.text.removeAttributeAtRange(t, o));\n }) : void 0;\n }), new this.constructor(i);\n }, c.prototype.updateAttributesForAttachment = function (t, e) {\n var n, i, o, r;\n return o = (i = this.getRangeOfAttachment(e))[0], n = this.locationFromPosition(o).index, r = this.getTextAtIndex(n), new this.constructor(this.blockList.editObjectAtIndex(n, function (n) {\n return n.copyWithText(r.updateAttributesForAttachment(t, e));\n }));\n }, c.prototype.removeAttributeForAttachment = function (t, e) {\n var n;\n return n = this.getRangeOfAttachment(e), this.removeAttributeAtRange(t, n);\n }, c.prototype.insertBlockBreakAtRange = function (t) {\n var n, o, r, s;\n return s = (t = i(t))[0], r = this.locationFromPosition(s).offset, o = this.removeTextAtRange(t), 0 === r && (n = [new e.Block()]), new this.constructor(o.blockList.insertSplittableListAtPosition(new e.SplittableList(n), s));\n }, c.prototype.applyBlockAttributeAtRange = function (t, e, i) {\n var o, r, s, a;\n return s = this.expandRangeToLineBreaksAndSplitBlocks(i), r = s.document, i = s.range, o = n(t), o.listAttribute ? (r = r.removeLastListAttributeAtRange(i, {\n exceptAttributeName: t\n }), a = r.convertLineBreaksToBlockBreaksInRange(i), r = a.document, i = a.range) : r = o.exclusive ? r.removeBlockAttributesAtRange(i) : o.terminal ? r.removeLastTerminalAttributeAtRange(i) : r.consolidateBlocksAtRange(i), r.addAttributeAtRange(t, e, i);\n }, c.prototype.removeLastListAttributeAtRange = function (t, e) {\n var i;\n return null == e && (e = {}), i = this.blockList, this.eachBlockAtRange(t, function (t, o, r) {\n var s;\n if ((s = t.getLastAttribute()) && n(s).listAttribute && s !== e.exceptAttributeName) return i = i.editObjectAtIndex(r, function () {\n return t.removeAttribute(s);\n });\n }), new this.constructor(i);\n }, c.prototype.removeLastTerminalAttributeAtRange = function (t) {\n var e;\n return e = this.blockList, this.eachBlockAtRange(t, function (t, i, o) {\n var r;\n if ((r = t.getLastAttribute()) && n(r).terminal) return e = e.editObjectAtIndex(o, function () {\n return t.removeAttribute(r);\n });\n }), new this.constructor(e);\n }, c.prototype.removeBlockAttributesAtRange = function (t) {\n var e;\n return e = this.blockList, this.eachBlockAtRange(t, function (t, n, i) {\n return t.hasAttributes() ? e = e.editObjectAtIndex(i, function () {\n return t.copyWithoutAttributes();\n }) : void 0;\n }), new this.constructor(e);\n }, c.prototype.expandRangeToLineBreaksAndSplitBlocks = function (t) {\n var e, n, o, r, s, a, u, c, l;\n return a = t = i(t), l = a[0], r = a[1], c = this.locationFromPosition(l), o = this.locationFromPosition(r), e = this, u = e.getBlockAtIndex(c.index), null != (c.offset = u.findLineBreakInDirectionFromPosition(\"backward\", c.offset)) && (s = e.positionFromLocation(c), e = e.insertBlockBreakAtRange([s, s + 1]), o.index += 1, o.offset -= e.getBlockAtIndex(c.index).getLength(), c.index += 1), c.offset = 0, 0 === o.offset && o.index > c.index ? (o.index -= 1, o.offset = e.getBlockAtIndex(o.index).getBlockBreakPosition()) : (n = e.getBlockAtIndex(o.index), \"\\n\" === n.text.getStringAtRange([o.offset - 1, o.offset]) ? o.offset -= 1 : o.offset = n.findLineBreakInDirectionFromPosition(\"forward\", o.offset), o.offset !== n.getBlockBreakPosition() && (s = e.positionFromLocation(o), e = e.insertBlockBreakAtRange([s, s + 1]))), l = e.positionFromLocation(c), r = e.positionFromLocation(o), t = i([l, r]), {\n document: e,\n range: t\n };\n }, c.prototype.convertLineBreaksToBlockBreaksInRange = function (t) {\n var e, n, o;\n return n = (t = i(t))[0], o = this.getStringAtRange(t).slice(0, -1), e = this, o.replace(/.*?\\n/g, function (t) {\n return n += t.length, e = e.insertBlockBreakAtRange([n - 1, n]);\n }), {\n document: e,\n range: t\n };\n }, c.prototype.consolidateBlocksAtRange = function (t) {\n var e, n, o, r, s;\n return o = t = i(t), s = o[0], n = o[1], r = this.locationFromPosition(s).index, e = this.locationFromPosition(n).index, new this.constructor(this.blockList.consolidateFromIndexToIndex(r, e));\n }, c.prototype.getDocumentAtRange = function (t) {\n var e;\n return t = i(t), e = this.blockList.getSplittableListInRange(t).toArray(), new this.constructor(e);\n }, c.prototype.getStringAtRange = function (t) {\n var e, n, o;\n return o = t = i(t), n = o[o.length - 1], n !== this.getLength() && (e = -1), this.getDocumentAtRange(t).toString().slice(0, e);\n }, c.prototype.getBlockAtIndex = function (t) {\n return this.blockList.getObjectAtIndex(t);\n }, c.prototype.getBlockAtPosition = function (t) {\n var e;\n return e = this.locationFromPosition(t).index, this.getBlockAtIndex(e);\n }, c.prototype.getTextAtIndex = function (t) {\n var e;\n return null != (e = this.getBlockAtIndex(t)) ? e.text : void 0;\n }, c.prototype.getTextAtPosition = function (t) {\n var e;\n return e = this.locationFromPosition(t).index, this.getTextAtIndex(e);\n }, c.prototype.getPieceAtPosition = function (t) {\n var e, n, i;\n return i = this.locationFromPosition(t), e = i.index, n = i.offset, this.getTextAtIndex(e).getPieceAtPosition(n);\n }, c.prototype.getCharacterAtPosition = function (t) {\n var e, n, i;\n return i = this.locationFromPosition(t), e = i.index, n = i.offset, this.getTextAtIndex(e).getStringAtRange([n, n + 1]);\n }, c.prototype.getLength = function () {\n return this.blockList.getEndPosition();\n }, c.prototype.getBlocks = function () {\n return this.blockList.toArray();\n }, c.prototype.getBlockCount = function () {\n return this.blockList.length;\n }, c.prototype.getEditCount = function () {\n return this.editCount;\n }, c.prototype.eachBlock = function (t) {\n return this.blockList.eachObject(t);\n }, c.prototype.eachBlockAtRange = function (t, e) {\n var n, o, r, s, a, u, c, l, h, p, d, f;\n if (u = t = i(t), d = u[0], r = u[1], p = this.locationFromPosition(d), o = this.locationFromPosition(r), p.index === o.index) return n = this.getBlockAtIndex(p.index), f = [p.offset, o.offset], e(n, f, p.index);\n for (h = [], a = s = c = p.index, l = o.index; l >= c ? l >= s : s >= l; a = l >= c ? ++s : --s) (n = this.getBlockAtIndex(a)) ? (f = function () {\n switch (a) {\n case p.index:\n return [p.offset, n.text.getLength()];\n case o.index:\n return [0, o.offset];\n default:\n return [0, n.text.getLength()];\n }\n }(), h.push(e(n, f, a))) : h.push(void 0);\n return h;\n }, c.prototype.getCommonAttributesAtRange = function (t) {\n var n, r, s;\n return r = (t = i(t))[0], o(t) ? this.getCommonAttributesAtPosition(r) : (s = [], n = [], this.eachBlockAtRange(t, function (t, e) {\n return e[0] !== e[1] ? (s.push(t.text.getCommonAttributesAtRange(e)), n.push(l(t))) : void 0;\n }), e.Hash.fromCommonAttributesOfObjects(s).merge(e.Hash.fromCommonAttributesOfObjects(n)).toObject());\n }, c.prototype.getCommonAttributesAtPosition = function (t) {\n var n, i, o, r, s, a, c, h, p, d;\n if (p = this.locationFromPosition(t), s = p.index, h = p.offset, o = this.getBlockAtIndex(s), !o) return {};\n r = l(o), n = o.text.getAttributesAtPosition(h), i = o.text.getAttributesAtPosition(h - 1), a = function () {\n var t, n;\n t = e.config.textAttributes, n = [];\n for (c in t) d = t[c], d.inheritable && n.push(c);\n return n;\n }();\n for (c in i) d = i[c], (d === n[c] || u.call(a, c) >= 0) && (r[c] = d);\n return r;\n }, c.prototype.getRangeOfCommonAttributeAtPosition = function (t, e) {\n var n, o, r, s, a, u, c, l, h;\n return a = this.locationFromPosition(e), r = a.index, s = a.offset, h = this.getTextAtIndex(r), u = h.getExpandedRangeForAttributeAtOffset(t, s), l = u[0], o = u[1], c = this.positionFromLocation({\n index: r,\n offset: l\n }), n = this.positionFromLocation({\n index: r,\n offset: o\n }), i([c, n]);\n }, c.prototype.getBaseBlockAttributes = function () {\n var t, e, n, i, o, r, s;\n for (t = this.getBlockAtIndex(0).getAttributes(), n = i = 1, s = this.getBlockCount(); s >= 1 ? s > i : i > s; n = s >= 1 ? ++i : --i) e = this.getBlockAtIndex(n).getAttributes(), r = Math.min(t.length, e.length), t = function () {\n var n, i, s;\n for (s = [], o = n = 0, i = r; (i >= 0 ? i > n : n > i) && e[o] === t[o]; o = i >= 0 ? ++n : --n) s.push(e[o]);\n return s;\n }();\n return t;\n }, l = function (t) {\n var e, n;\n return n = {}, (e = t.getLastAttribute()) && (n[e] = !0), n;\n }, c.prototype.getAttachmentById = function (t) {\n var e, n, i, o;\n for (o = this.getAttachments(), n = 0, i = o.length; i > n; n++) if (e = o[n], e.id === t) return e;\n }, c.prototype.getAttachmentPieces = function () {\n var t;\n return t = [], this.blockList.eachObject(function (e) {\n var n;\n return n = e.text, t = t.concat(n.getAttachmentPieces());\n }), t;\n }, c.prototype.getAttachments = function () {\n var t, e, n, i, o;\n for (i = this.getAttachmentPieces(), o = [], t = 0, e = i.length; e > t; t++) n = i[t], o.push(n.attachment);\n return o;\n }, c.prototype.getRangeOfAttachment = function (t) {\n var e, n, o, r, s, a, u;\n for (r = 0, s = this.blockList.toArray(), n = e = 0, o = s.length; o > e; n = ++e) {\n if (a = s[n].text, u = a.getRangeOfAttachment(t)) return i([r + u[0], r + u[1]]);\n r += a.getLength();\n }\n }, c.prototype.getLocationRangeOfAttachment = function (t) {\n var e;\n return e = this.getRangeOfAttachment(t), this.locationRangeFromRange(e);\n }, c.prototype.getAttachmentPieceForAttachment = function (t) {\n var e, n, i, o;\n for (o = this.getAttachmentPieces(), e = 0, n = o.length; n > e; e++) if (i = o[e], i.attachment === t) return i;\n }, c.prototype.findRangesForBlockAttribute = function (t) {\n var e, n, i, o, r, s, a;\n for (r = 0, s = [], a = this.getBlocks(), n = 0, i = a.length; i > n; n++) e = a[n], o = e.getLength(), e.hasAttribute(t) && s.push([r, r + o]), r += o;\n return s;\n }, c.prototype.findRangesForTextAttribute = function (t, e) {\n var n, i, o, r, s, a, u, c, l, h;\n for (h = (null != e ? e : {}).withValue, a = 0, u = [], c = [], r = function (e) {\n return null != h ? e.getAttribute(t) === h : e.hasAttribute(t);\n }, l = this.getPieces(), n = 0, i = l.length; i > n; n++) s = l[n], o = s.getLength(), r(s) && (u[1] === a ? u[1] = a + o : c.push(u = [a, a + o])), a += o;\n return c;\n }, c.prototype.locationFromPosition = function (t) {\n var e, n;\n return n = this.blockList.findIndexAndOffsetAtPosition(Math.max(0, t)), null != n.index ? n : (e = this.getBlocks(), {\n index: e.length - 1,\n offset: e[e.length - 1].getLength()\n });\n }, c.prototype.positionFromLocation = function (t) {\n return this.blockList.findPositionAtIndexAndOffset(t.index, t.offset);\n }, c.prototype.locationRangeFromPosition = function (t) {\n return i(this.locationFromPosition(t));\n }, c.prototype.locationRangeFromRange = function (t) {\n var e, n, o, r;\n if (t = i(t)) return r = t[0], n = t[1], o = this.locationFromPosition(r), e = this.locationFromPosition(n), i([o, e]);\n }, c.prototype.rangeFromLocationRange = function (t) {\n var e, n;\n return t = i(t), e = this.positionFromLocation(t[0]), o(t) || (n = this.positionFromLocation(t[1])), i([e, n]);\n }, c.prototype.isEqualTo = function (t) {\n return this.blockList.isEqualTo(null != t ? t.blockList : void 0);\n }, c.prototype.getTexts = function () {\n var t, e, n, i, o;\n for (i = this.getBlocks(), o = [], e = 0, n = i.length; n > e; e++) t = i[e], o.push(t.text);\n return o;\n }, c.prototype.getPieces = function () {\n var t, e, n, i, o;\n for (n = [], i = this.getTexts(), t = 0, e = i.length; e > t; t++) o = i[t], n.push.apply(n, o.getPieces());\n return n;\n }, c.prototype.getObjects = function () {\n return this.getBlocks().concat(this.getTexts()).concat(this.getPieces());\n }, c.prototype.toSerializableDocument = function () {\n var t;\n return t = [], this.blockList.eachObject(function (e) {\n return t.push(e.copyWithText(e.text.toSerializableText()));\n }), new this.constructor(t);\n }, c.prototype.toString = function () {\n return this.blockList.toString();\n }, c.prototype.toJSON = function () {\n return this.blockList.toJSON();\n }, c.prototype.toConsole = function () {\n var t;\n return JSON.stringify(function () {\n var e, n, i, o;\n for (i = this.blockList.toArray(), o = [], e = 0, n = i.length; n > e; e++) t = i[e], o.push(JSON.parse(t.text.toConsole()));\n return o;\n }.call(this));\n }, c;\n }(e.Object);\n }.call(this), function () {\n e.LineBreakInsertion = function () {\n function t(t) {\n var e;\n this.composition = t, this.document = this.composition.document, e = this.composition.getSelectedRange(), this.startPosition = e[0], this.endPosition = e[1], this.startLocation = this.document.locationFromPosition(this.startPosition), this.endLocation = this.document.locationFromPosition(this.endPosition), this.block = this.document.getBlockAtIndex(this.endLocation.index), this.breaksOnReturn = this.block.breaksOnReturn(), this.previousCharacter = this.block.text.getStringAtPosition(this.endLocation.offset - 1), this.nextCharacter = this.block.text.getStringAtPosition(this.endLocation.offset);\n }\n return t.prototype.shouldInsertBlockBreak = function () {\n return this.block.hasAttributes() && this.block.isListItem() && !this.block.isEmpty() ? 0 !== this.startLocation.offset : this.breaksOnReturn && \"\\n\" !== this.nextCharacter;\n }, t.prototype.shouldBreakFormattedBlock = function () {\n return this.block.hasAttributes() && !this.block.isListItem() && (this.breaksOnReturn && \"\\n\" === this.nextCharacter || \"\\n\" === this.previousCharacter);\n }, t.prototype.shouldDecreaseListLevel = function () {\n return this.block.hasAttributes() && this.block.isListItem() && this.block.isEmpty();\n }, t.prototype.shouldPrependListItem = function () {\n return this.block.isListItem() && 0 === this.startLocation.offset && !this.block.isEmpty();\n }, t.prototype.shouldRemoveLastBlockAttribute = function () {\n return this.block.hasAttributes() && !this.block.isListItem() && this.block.isEmpty();\n }, t;\n }();\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a,\n u,\n c,\n l,\n h = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) p.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n p = {}.hasOwnProperty;\n s = e.normalizeRange, c = e.rangesAreEqual, u = e.rangeIsCollapsed, a = e.objectsAreEqual, t = e.arrayStartsWith, l = e.summarizeArrayChange, i = e.getAllAttributeNames, o = e.getBlockConfig, r = e.getTextConfig, n = e.extend, e.Composition = function (p) {\n function d() {\n this.document = new e.Document(), this.attachments = [], this.currentAttributes = {}, this.revision = 0;\n }\n var f;\n return h(d, p), d.prototype.setDocument = function (t) {\n var e;\n return t.isEqualTo(this.document) ? void 0 : (this.document = t, this.refreshAttachments(), this.revision++, null != (e = this.delegate) && \"function\" == typeof e.compositionDidChangeDocument ? e.compositionDidChangeDocument(t) : void 0);\n }, d.prototype.getSnapshot = function () {\n return {\n document: this.document,\n selectedRange: this.getSelectedRange()\n };\n }, d.prototype.loadSnapshot = function (t) {\n var n, i, o, r;\n return n = t.document, r = t.selectedRange, null != (i = this.delegate) && \"function\" == typeof i.compositionWillLoadSnapshot && i.compositionWillLoadSnapshot(), this.setDocument(null != n ? n : new e.Document()), this.setSelection(null != r ? r : [0, 0]), null != (o = this.delegate) && \"function\" == typeof o.compositionDidLoadSnapshot ? o.compositionDidLoadSnapshot() : void 0;\n }, d.prototype.insertText = function (t, e) {\n var n, i, o, r;\n return r = (null != e ? e : {\n updatePosition: !0\n }).updatePosition, i = this.getSelectedRange(), this.setDocument(this.document.insertTextAtRange(t, i)), o = i[0], n = o + t.getLength(), r && this.setSelection(n), this.notifyDelegateOfInsertionAtRange([o, n]);\n }, d.prototype.insertBlock = function (t) {\n var n;\n return null == t && (t = new e.Block()), n = new e.Document([t]), this.insertDocument(n);\n }, d.prototype.insertDocument = function (t) {\n var n, i, o;\n return null == t && (t = new e.Document()), i = this.getSelectedRange(), this.setDocument(this.document.insertDocumentAtRange(t, i)), o = i[0], n = o + t.getLength(), this.setSelection(n), this.notifyDelegateOfInsertionAtRange([o, n]);\n }, d.prototype.insertString = function (t, n) {\n var i, o;\n return i = this.getCurrentTextAttributes(), o = e.Text.textForStringWithAttributes(t, i), this.insertText(o, n);\n }, d.prototype.insertBlockBreak = function () {\n var t, e, n;\n return e = this.getSelectedRange(), this.setDocument(this.document.insertBlockBreakAtRange(e)), n = e[0], t = n + 1, this.setSelection(t), this.notifyDelegateOfInsertionAtRange([n, t]);\n }, d.prototype.insertLineBreak = function () {\n var t, n;\n return n = new e.LineBreakInsertion(this), n.shouldDecreaseListLevel() ? (this.decreaseListLevel(), this.setSelection(n.startPosition)) : n.shouldPrependListItem() ? (t = new e.Document([n.block.copyWithoutText()]), this.insertDocument(t)) : n.shouldInsertBlockBreak() ? this.insertBlockBreak() : n.shouldRemoveLastBlockAttribute() ? this.removeLastBlockAttribute() : n.shouldBreakFormattedBlock() ? this.breakFormattedBlock(n) : this.insertString(\"\\n\");\n }, d.prototype.insertHTML = function (t) {\n var n, i, o, r;\n return n = e.Document.fromHTML(t), o = this.getSelectedRange(), this.setDocument(this.document.mergeDocumentAtRange(n, o)), r = o[0], i = r + n.getLength() - 1, this.setSelection(i), this.notifyDelegateOfInsertionAtRange([r, i]);\n }, d.prototype.replaceHTML = function (t) {\n var n, i, o;\n return n = e.Document.fromHTML(t).copyUsingObjectsFromDocument(this.document), i = this.getLocationRange({\n strict: !1\n }), o = this.document.rangeFromLocationRange(i), this.setDocument(n), this.setSelection(o);\n }, d.prototype.insertFile = function (t) {\n return this.insertFiles([t]);\n }, d.prototype.insertFiles = function (t) {\n var n, i, o, r, s, a;\n for (i = [], r = 0, s = t.length; s > r; r++) o = t[r], (null != (a = this.delegate) ? a.compositionShouldAcceptFile(o) : void 0) && (n = e.Attachment.attachmentForFile(o), i.push(n));\n return this.insertAttachments(i);\n }, d.prototype.insertAttachment = function (t) {\n return this.insertAttachments([t]);\n }, d.prototype.insertAttachments = function (t) {\n var n, i, o, r, s, a, u, c, l;\n for (c = new e.Text(), r = 0, s = t.length; s > r; r++) n = t[r], l = n.getType(), a = null != (u = e.config.attachments[l]) ? u.presentation : void 0, o = this.getCurrentTextAttributes(), a && (o.presentation = a), i = e.Text.textForAttachmentWithAttributes(n, o), c = c.appendText(i);\n return this.insertText(c);\n }, d.prototype.shouldManageDeletingInDirection = function (t) {\n var e;\n if (e = this.getLocationRange(), u(e)) {\n if (\"backward\" === t && 0 === e[0].offset) return !0;\n if (this.shouldManageMovingCursorInDirection(t)) return !0;\n } else if (e[0].index !== e[1].index) return !0;\n return !1;\n }, d.prototype.deleteInDirection = function (t, e) {\n var n, i, o, r, s, a, c, l;\n return r = (null != e ? e : {}).length, s = this.getLocationRange(), a = this.getSelectedRange(), c = u(a), c ? o = \"backward\" === t && 0 === s[0].offset : l = s[0].index !== s[1].index, o && this.canDecreaseBlockAttributeLevel() && (i = this.getBlock(), i.isListItem() ? this.decreaseListLevel() : this.decreaseBlockAttributeLevel(), this.setSelection(a[0]), i.isEmpty()) ? !1 : (c && (a = this.getExpandedRangeInDirection(t, {\n length: r\n }), \"backward\" === t && (n = this.getAttachmentAtRange(a))), n ? (this.editAttachment(n), !1) : (this.setDocument(this.document.removeTextAtRange(a)), this.setSelection(a[0]), o || l ? !1 : void 0));\n }, d.prototype.moveTextFromRange = function (t) {\n var e;\n return e = this.getSelectedRange()[0], this.setDocument(this.document.moveTextFromRangeToPosition(t, e)), this.setSelection(e);\n }, d.prototype.removeAttachment = function (t) {\n var e;\n return (e = this.document.getRangeOfAttachment(t)) ? (this.stopEditingAttachment(), this.setDocument(this.document.removeTextAtRange(e)), this.setSelection(e[0])) : void 0;\n }, d.prototype.removeLastBlockAttribute = function () {\n var t, e, n, i;\n return n = this.getSelectedRange(), i = n[0], e = n[1], t = this.document.getBlockAtPosition(e), this.removeCurrentAttribute(t.getLastAttribute()), this.setSelection(i);\n }, f = \" \", d.prototype.insertPlaceholder = function () {\n return this.placeholderPosition = this.getPosition(), this.insertString(f);\n }, d.prototype.selectPlaceholder = function () {\n return null != this.placeholderPosition ? (this.setSelectedRange([this.placeholderPosition, this.placeholderPosition + f.length]), this.getSelectedRange()) : void 0;\n }, d.prototype.forgetPlaceholder = function () {\n return this.placeholderPosition = null;\n }, d.prototype.hasCurrentAttribute = function (t) {\n var e;\n return e = this.currentAttributes[t], null != e && e !== !1;\n }, d.prototype.toggleCurrentAttribute = function (t) {\n var e;\n return (e = !this.currentAttributes[t]) ? this.setCurrentAttribute(t, e) : this.removeCurrentAttribute(t);\n }, d.prototype.canSetCurrentAttribute = function (t) {\n return o(t) ? this.canSetCurrentBlockAttribute(t) : this.canSetCurrentTextAttribute(t);\n }, d.prototype.canSetCurrentTextAttribute = function () {\n var t, e, n, i, o;\n if (e = this.getSelectedDocument()) {\n for (o = e.getAttachments(), n = 0, i = o.length; i > n; n++) if (t = o[n], !t.hasContent()) return !1;\n return !0;\n }\n }, d.prototype.canSetCurrentBlockAttribute = function () {\n var t;\n if (t = this.getBlock()) return !t.isTerminalBlock();\n }, d.prototype.setCurrentAttribute = function (t, e) {\n return o(t) ? this.setBlockAttribute(t, e) : (this.setTextAttribute(t, e), this.currentAttributes[t] = e, this.notifyDelegateOfCurrentAttributesChange());\n }, d.prototype.setTextAttribute = function (t, n) {\n var i, o, r, s;\n if (o = this.getSelectedRange()) return r = o[0], i = o[1], r !== i ? this.setDocument(this.document.addAttributeAtRange(t, n, o)) : \"href\" === t ? (s = e.Text.textForStringWithAttributes(n, {\n href: n\n }), this.insertText(s)) : void 0;\n }, d.prototype.setBlockAttribute = function (t, e) {\n var n, i;\n if (i = this.getSelectedRange()) return this.canSetCurrentAttribute(t) ? (n = this.getBlock(), this.setDocument(this.document.applyBlockAttributeAtRange(t, e, i)), this.setSelection(i)) : void 0;\n }, d.prototype.removeCurrentAttribute = function (t) {\n return o(t) ? (this.removeBlockAttribute(t), this.updateCurrentAttributes()) : (this.removeTextAttribute(t), delete this.currentAttributes[t], this.notifyDelegateOfCurrentAttributesChange());\n }, d.prototype.removeTextAttribute = function (t) {\n var e;\n if (e = this.getSelectedRange()) return this.setDocument(this.document.removeAttributeAtRange(t, e));\n }, d.prototype.removeBlockAttribute = function (t) {\n var e;\n if (e = this.getSelectedRange()) return this.setDocument(this.document.removeAttributeAtRange(t, e));\n }, d.prototype.canDecreaseNestingLevel = function () {\n var t;\n return (null != (t = this.getBlock()) ? t.getNestingLevel() : void 0) > 0;\n }, d.prototype.canIncreaseNestingLevel = function () {\n var e, n, i;\n if (e = this.getBlock()) return (null != (i = o(e.getLastNestableAttribute())) ? i.listAttribute : 0) ? (n = this.getPreviousBlock()) ? t(n.getListItemAttributes(), e.getListItemAttributes()) : void 0 : e.getNestingLevel() > 0;\n }, d.prototype.decreaseNestingLevel = function () {\n var t;\n if (t = this.getBlock()) return this.setDocument(this.document.replaceBlock(t, t.decreaseNestingLevel()));\n }, d.prototype.increaseNestingLevel = function () {\n var t;\n if (t = this.getBlock()) return this.setDocument(this.document.replaceBlock(t, t.increaseNestingLevel()));\n }, d.prototype.canDecreaseBlockAttributeLevel = function () {\n var t;\n return (null != (t = this.getBlock()) ? t.getAttributeLevel() : void 0) > 0;\n }, d.prototype.decreaseBlockAttributeLevel = function () {\n var t, e;\n return (t = null != (e = this.getBlock()) ? e.getLastAttribute() : void 0) ? this.removeCurrentAttribute(t) : void 0;\n }, d.prototype.decreaseListLevel = function () {\n var t, e, n, i, o, r;\n for (r = this.getSelectedRange()[0], o = this.document.locationFromPosition(r).index, n = o, t = this.getBlock().getAttributeLevel(); (e = this.document.getBlockAtIndex(n + 1)) && e.isListItem() && e.getAttributeLevel() > t;) n++;\n return r = this.document.positionFromLocation({\n index: o,\n offset: 0\n }), i = this.document.positionFromLocation({\n index: n,\n offset: 0\n }), this.setDocument(this.document.removeLastListAttributeAtRange([r, i]));\n }, d.prototype.updateCurrentAttributes = function () {\n var t, e, n, o, r, s;\n if (s = this.getSelectedRange({\n ignoreLock: !0\n })) {\n for (e = this.document.getCommonAttributesAtRange(s), r = i(), n = 0, o = r.length; o > n; n++) t = r[n], e[t] || this.canSetCurrentAttribute(t) || (e[t] = !1);\n if (!a(e, this.currentAttributes)) return this.currentAttributes = e, this.notifyDelegateOfCurrentAttributesChange();\n }\n }, d.prototype.getCurrentAttributes = function () {\n return n.call({}, this.currentAttributes);\n }, d.prototype.getCurrentTextAttributes = function () {\n var t, e, n, i;\n t = {}, n = this.currentAttributes;\n for (e in n) i = n[e], i !== !1 && r(e) && (t[e] = i);\n return t;\n }, d.prototype.freezeSelection = function () {\n return this.setCurrentAttribute(\"frozen\", !0);\n }, d.prototype.thawSelection = function () {\n return this.removeCurrentAttribute(\"frozen\");\n }, d.prototype.hasFrozenSelection = function () {\n return this.hasCurrentAttribute(\"frozen\");\n }, d.proxyMethod(\"getSelectionManager().getPointRange\"), d.proxyMethod(\"getSelectionManager().setLocationRangeFromPointRange\"), d.proxyMethod(\"getSelectionManager().createLocationRangeFromDOMRange\"), d.proxyMethod(\"getSelectionManager().locationIsCursorTarget\"), d.proxyMethod(\"getSelectionManager().selectionIsExpanded\"), d.proxyMethod(\"delegate?.getSelectionManager\"), d.prototype.setSelection = function (t) {\n var e, n;\n return e = this.document.locationRangeFromRange(t), null != (n = this.delegate) ? n.compositionDidRequestChangingSelectionToLocationRange(e) : void 0;\n }, d.prototype.getSelectedRange = function () {\n var t;\n return (t = this.getLocationRange()) ? this.document.rangeFromLocationRange(t) : void 0;\n }, d.prototype.setSelectedRange = function (t) {\n var e;\n return e = this.document.locationRangeFromRange(t), this.getSelectionManager().setLocationRange(e);\n }, d.prototype.getPosition = function () {\n var t;\n return (t = this.getLocationRange()) ? this.document.positionFromLocation(t[0]) : void 0;\n }, d.prototype.getLocationRange = function (t) {\n var e, n;\n return null != (e = null != (n = this.targetLocationRange) ? n : this.getSelectionManager().getLocationRange(t)) ? e : s({\n index: 0,\n offset: 0\n });\n }, d.prototype.withTargetLocationRange = function (t, e) {\n var n;\n this.targetLocationRange = t;\n try {\n n = e();\n } finally {\n this.targetLocationRange = null;\n }\n return n;\n }, d.prototype.withTargetRange = function (t, e) {\n var n;\n return n = this.document.locationRangeFromRange(t), this.withTargetLocationRange(n, e);\n }, d.prototype.withTargetDOMRange = function (t, e) {\n var n;\n return n = this.createLocationRangeFromDOMRange(t, {\n strict: !1\n }), this.withTargetLocationRange(n, e);\n }, d.prototype.getExpandedRangeInDirection = function (t, e) {\n var n, i, o, r;\n return i = (null != e ? e : {}).length, o = this.getSelectedRange(), r = o[0], n = o[1], \"backward\" === t ? i ? r -= i : r = this.translateUTF16PositionFromOffset(r, -1) : i ? n += i : n = this.translateUTF16PositionFromOffset(n, 1), s([r, n]);\n }, d.prototype.shouldManageMovingCursorInDirection = function (t) {\n var e;\n return this.editingAttachment ? !0 : (e = this.getExpandedRangeInDirection(t), null != this.getAttachmentAtRange(e));\n }, d.prototype.moveCursorInDirection = function (t) {\n var e, n, i, o;\n return this.editingAttachment ? i = this.document.getRangeOfAttachment(this.editingAttachment) : (o = this.getSelectedRange(), i = this.getExpandedRangeInDirection(t), n = !c(o, i)), this.setSelectedRange(\"backward\" === t ? i[0] : i[1]), n && (e = this.getAttachmentAtRange(i)) ? this.editAttachment(e) : void 0;\n }, d.prototype.expandSelectionInDirection = function (t, e) {\n var n, i;\n return n = (null != e ? e : {}).length, i = this.getExpandedRangeInDirection(t, {\n length: n\n }), this.setSelectedRange(i);\n }, d.prototype.expandSelectionForEditing = function () {\n return this.hasCurrentAttribute(\"href\") ? this.expandSelectionAroundCommonAttribute(\"href\") : void 0;\n }, d.prototype.expandSelectionAroundCommonAttribute = function (t) {\n var e, n;\n return e = this.getPosition(), n = this.document.getRangeOfCommonAttributeAtPosition(t, e), this.setSelectedRange(n);\n }, d.prototype.selectionContainsAttachments = function () {\n var t;\n return (null != (t = this.getSelectedAttachments()) ? t.length : void 0) > 0;\n }, d.prototype.selectionIsInCursorTarget = function () {\n return this.editingAttachment || this.positionIsCursorTarget(this.getPosition());\n }, d.prototype.positionIsCursorTarget = function (t) {\n var e;\n return (e = this.document.locationFromPosition(t)) ? this.locationIsCursorTarget(e) : void 0;\n }, d.prototype.positionIsBlockBreak = function (t) {\n var e;\n return null != (e = this.document.getPieceAtPosition(t)) ? e.isBlockBreak() : void 0;\n }, d.prototype.getSelectedDocument = function () {\n var t;\n return (t = this.getSelectedRange()) ? this.document.getDocumentAtRange(t) : void 0;\n }, d.prototype.getSelectedAttachments = function () {\n var t;\n return null != (t = this.getSelectedDocument()) ? t.getAttachments() : void 0;\n }, d.prototype.getAttachments = function () {\n return this.attachments.slice(0);\n }, d.prototype.refreshAttachments = function () {\n var t, e, n, i, o, r, s, a, u, c, h, p;\n for (n = this.document.getAttachments(), a = l(this.attachments, n), t = a.added, h = a.removed, this.attachments = n, i = 0, r = h.length; r > i; i++) e = h[i], e.delegate = null, null != (u = this.delegate) && \"function\" == typeof u.compositionDidRemoveAttachment && u.compositionDidRemoveAttachment(e);\n for (p = [], o = 0, s = t.length; s > o; o++) e = t[o], e.delegate = this, p.push(null != (c = this.delegate) && \"function\" == typeof c.compositionDidAddAttachment ? c.compositionDidAddAttachment(e) : void 0);\n return p;\n }, d.prototype.attachmentDidChangeAttributes = function (t) {\n var e;\n return this.revision++, null != (e = this.delegate) && \"function\" == typeof e.compositionDidEditAttachment ? e.compositionDidEditAttachment(t) : void 0;\n }, d.prototype.attachmentDidChangePreviewURL = function (t) {\n var e;\n return this.revision++, null != (e = this.delegate) && \"function\" == typeof e.compositionDidChangeAttachmentPreviewURL ? e.compositionDidChangeAttachmentPreviewURL(t) : void 0;\n }, d.prototype.editAttachment = function (t, e) {\n var n;\n if (t !== this.editingAttachment) return this.stopEditingAttachment(), this.editingAttachment = t, null != (n = this.delegate) && \"function\" == typeof n.compositionDidStartEditingAttachment ? n.compositionDidStartEditingAttachment(this.editingAttachment, e) : void 0;\n }, d.prototype.stopEditingAttachment = function () {\n var t;\n if (this.editingAttachment) return null != (t = this.delegate) && \"function\" == typeof t.compositionDidStopEditingAttachment && t.compositionDidStopEditingAttachment(this.editingAttachment), this.editingAttachment = null;\n }, d.prototype.updateAttributesForAttachment = function (t, e) {\n return this.setDocument(this.document.updateAttributesForAttachment(t, e));\n }, d.prototype.removeAttributeForAttachment = function (t, e) {\n return this.setDocument(this.document.removeAttributeForAttachment(t, e));\n }, d.prototype.breakFormattedBlock = function (t) {\n var n, i, o, r, s;\n return i = t.document, n = t.block, r = t.startPosition, s = [r - 1, r], n.getBlockBreakPosition() === t.startLocation.offset ? (n.breaksOnReturn() && \"\\n\" === t.nextCharacter ? r += 1 : i = i.removeTextAtRange(s), s = [r, r]) : \"\\n\" === t.nextCharacter ? \"\\n\" === t.previousCharacter ? s = [r - 1, r + 1] : (s = [r, r + 1], r += 1) : t.startLocation.offset - 1 !== 0 && (r += 1), o = new e.Document([n.removeLastAttribute().copyWithoutText()]), this.setDocument(i.insertDocumentAtRange(o, s)), this.setSelection(r);\n }, d.prototype.getPreviousBlock = function () {\n var t, e;\n return (e = this.getLocationRange()) && (t = e[0].index, t > 0) ? this.document.getBlockAtIndex(t - 1) : void 0;\n }, d.prototype.getBlock = function () {\n var t;\n return (t = this.getLocationRange()) ? this.document.getBlockAtIndex(t[0].index) : void 0;\n }, d.prototype.getAttachmentAtRange = function (t) {\n var n;\n return n = this.document.getDocumentAtRange(t), n.toString() === e.OBJECT_REPLACEMENT_CHARACTER + \"\\n\" ? n.getAttachments()[0] : void 0;\n }, d.prototype.notifyDelegateOfCurrentAttributesChange = function () {\n var t;\n return null != (t = this.delegate) && \"function\" == typeof t.compositionDidChangeCurrentAttributes ? t.compositionDidChangeCurrentAttributes(this.currentAttributes) : void 0;\n }, d.prototype.notifyDelegateOfInsertionAtRange = function (t) {\n var e;\n return null != (e = this.delegate) && \"function\" == typeof e.compositionDidPerformInsertionAtRange ? e.compositionDidPerformInsertionAtRange(t) : void 0;\n }, d.prototype.translateUTF16PositionFromOffset = function (t, e) {\n var n, i;\n return i = this.document.toUTF16String(), n = i.offsetFromUCS2Offset(t), i.offsetToUCS2Offset(n + e);\n }, d;\n }(e.BasicObject);\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n e.UndoManager = function (e) {\n function n(t) {\n this.composition = t, this.undoEntries = [], this.redoEntries = [];\n }\n var i;\n return t(n, e), n.prototype.recordUndoEntry = function (t, e) {\n var n, o, r, s, a;\n return s = null != e ? e : {}, o = s.context, n = s.consolidatable, r = this.undoEntries.slice(-1)[0], n && i(r, t, o) ? void 0 : (a = this.createEntry({\n description: t,\n context: o\n }), this.undoEntries.push(a), this.redoEntries = []);\n }, n.prototype.undo = function () {\n var t, e;\n return (e = this.undoEntries.pop()) ? (t = this.createEntry(e), this.redoEntries.push(t), this.composition.loadSnapshot(e.snapshot)) : void 0;\n }, n.prototype.redo = function () {\n var t, e;\n return (t = this.redoEntries.pop()) ? (e = this.createEntry(t), this.undoEntries.push(e), this.composition.loadSnapshot(t.snapshot)) : void 0;\n }, n.prototype.canUndo = function () {\n return this.undoEntries.length > 0;\n }, n.prototype.canRedo = function () {\n return this.redoEntries.length > 0;\n }, n.prototype.createEntry = function (t) {\n var e, n, i;\n return i = null != t ? t : {}, n = i.description, e = i.context, {\n description: null != n ? n.toString() : void 0,\n context: JSON.stringify(e),\n snapshot: this.composition.getSnapshot()\n };\n }, i = function (t, e, n) {\n return (null != t ? t.description : void 0) === (null != e ? e.toString() : void 0) && (null != t ? t.context : void 0) === JSON.stringify(n);\n }, n;\n }(e.BasicObject);\n }.call(this), function () {\n var t;\n e.attachmentGalleryFilter = function (e) {\n var n;\n return n = new t(e), n.perform(), n.getSnapshot();\n }, t = function () {\n function t(t) {\n this.document = t.document, this.selectedRange = t.selectedRange;\n }\n var e, n, i;\n return e = \"attachmentGallery\", n = \"presentation\", i = \"gallery\", t.prototype.perform = function () {\n return this.removeBlockAttribute(), this.applyBlockAttribute();\n }, t.prototype.getSnapshot = function () {\n return {\n document: this.document,\n selectedRange: this.selectedRange\n };\n }, t.prototype.removeBlockAttribute = function () {\n var t, n, i, o, r;\n for (o = this.findRangesOfBlocks(), r = [], t = 0, n = o.length; n > t; t++) i = o[t], r.push(this.document = this.document.removeAttributeAtRange(e, i));\n return r;\n }, t.prototype.applyBlockAttribute = function () {\n var t, n, i, o, r, s;\n for (i = 0, r = this.findRangesOfPieces(), s = [], t = 0, n = r.length; n > t; t++) o = r[t], o[1] - o[0] > 1 && (o[0] += i, o[1] += i, \"\\n\" !== this.document.getCharacterAtPosition(o[1]) && (this.document = this.document.insertBlockBreakAtRange(o[1]), o[1] < this.selectedRange[1] && this.moveSelectedRangeForward(), o[1]++, i++), 0 !== o[0] && \"\\n\" !== this.document.getCharacterAtPosition(o[0] - 1) && (this.document = this.document.insertBlockBreakAtRange(o[0]), o[0] < this.selectedRange[0] && this.moveSelectedRangeForward(), o[0]++, i++), s.push(this.document = this.document.applyBlockAttributeAtRange(e, !0, o)));\n return s;\n }, t.prototype.findRangesOfBlocks = function () {\n return this.document.findRangesForBlockAttribute(e);\n }, t.prototype.findRangesOfPieces = function () {\n return this.document.findRangesForTextAttribute(n, {\n withValue: i\n });\n }, t.prototype.moveSelectedRangeForward = function () {\n return this.selectedRange[0] += 1, this.selectedRange[1] += 1;\n }, t;\n }();\n }.call(this), function () {\n var t = function (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n };\n e.Editor = function () {\n function n(n, o, r) {\n this.composition = n, this.selectionManager = o, this.element = r, this.insertFiles = t(this.insertFiles, this), this.undoManager = new e.UndoManager(this.composition), this.filters = i.slice(0);\n }\n var i;\n return i = [e.attachmentGalleryFilter], n.prototype.loadDocument = function (t) {\n return this.loadSnapshot({\n document: t,\n selectedRange: [0, 0]\n });\n }, n.prototype.loadHTML = function (t) {\n return null == t && (t = \"\"), this.loadDocument(e.Document.fromHTML(t, {\n referenceElement: this.element\n }));\n }, n.prototype.loadJSON = function (t) {\n var n, i;\n return n = t.document, i = t.selectedRange, n = e.Document.fromJSON(n), this.loadSnapshot({\n document: n,\n selectedRange: i\n });\n }, n.prototype.loadSnapshot = function (t) {\n return this.undoManager = new e.UndoManager(this.composition), this.composition.loadSnapshot(t);\n }, n.prototype.getDocument = function () {\n return this.composition.document;\n }, n.prototype.getSelectedDocument = function () {\n return this.composition.getSelectedDocument();\n }, n.prototype.getSnapshot = function () {\n return this.composition.getSnapshot();\n }, n.prototype.toJSON = function () {\n return this.getSnapshot();\n }, n.prototype.deleteInDirection = function (t) {\n return this.composition.deleteInDirection(t);\n }, n.prototype.insertAttachment = function (t) {\n return this.composition.insertAttachment(t);\n }, n.prototype.insertAttachments = function (t) {\n return this.composition.insertAttachments(t);\n }, n.prototype.insertDocument = function (t) {\n return this.composition.insertDocument(t);\n }, n.prototype.insertFile = function (t) {\n return this.composition.insertFile(t);\n }, n.prototype.insertFiles = function (t) {\n return this.composition.insertFiles(t);\n }, n.prototype.insertHTML = function (t) {\n return this.composition.insertHTML(t);\n }, n.prototype.insertString = function (t) {\n return this.composition.insertString(t);\n }, n.prototype.insertText = function (t) {\n return this.composition.insertText(t);\n }, n.prototype.insertLineBreak = function () {\n return this.composition.insertLineBreak();\n }, n.prototype.getSelectedRange = function () {\n return this.composition.getSelectedRange();\n }, n.prototype.getPosition = function () {\n return this.composition.getPosition();\n }, n.prototype.getClientRectAtPosition = function (t) {\n var e;\n return e = this.getDocument().locationRangeFromRange([t, t + 1]), this.selectionManager.getClientRectAtLocationRange(e);\n }, n.prototype.expandSelectionInDirection = function (t) {\n return this.composition.expandSelectionInDirection(t);\n }, n.prototype.moveCursorInDirection = function (t) {\n return this.composition.moveCursorInDirection(t);\n }, n.prototype.setSelectedRange = function (t) {\n return this.composition.setSelectedRange(t);\n }, n.prototype.activateAttribute = function (t, e) {\n return null == e && (e = !0), this.composition.setCurrentAttribute(t, e);\n }, n.prototype.attributeIsActive = function (t) {\n return this.composition.hasCurrentAttribute(t);\n }, n.prototype.canActivateAttribute = function (t) {\n return this.composition.canSetCurrentAttribute(t);\n }, n.prototype.deactivateAttribute = function (t) {\n return this.composition.removeCurrentAttribute(t);\n }, n.prototype.canDecreaseNestingLevel = function () {\n return this.composition.canDecreaseNestingLevel();\n }, n.prototype.canIncreaseNestingLevel = function () {\n return this.composition.canIncreaseNestingLevel();\n }, n.prototype.decreaseNestingLevel = function () {\n return this.canDecreaseNestingLevel() ? this.composition.decreaseNestingLevel() : void 0;\n }, n.prototype.increaseNestingLevel = function () {\n return this.canIncreaseNestingLevel() ? this.composition.increaseNestingLevel() : void 0;\n }, n.prototype.canRedo = function () {\n return this.undoManager.canRedo();\n }, n.prototype.canUndo = function () {\n return this.undoManager.canUndo();\n }, n.prototype.recordUndoEntry = function (t, e) {\n var n, i, o;\n return o = null != e ? e : {}, i = o.context, n = o.consolidatable, this.undoManager.recordUndoEntry(t, {\n context: i,\n consolidatable: n\n });\n }, n.prototype.redo = function () {\n return this.canRedo() ? this.undoManager.redo() : void 0;\n }, n.prototype.undo = function () {\n return this.canUndo() ? this.undoManager.undo() : void 0;\n }, n;\n }();\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n e.ManagedAttachment = function (e) {\n function n(t, e) {\n var n;\n this.attachmentManager = t, this.attachment = e, n = this.attachment, this.id = n.id, this.file = n.file;\n }\n return t(n, e), n.prototype.remove = function () {\n return this.attachmentManager.requestRemovalOfAttachment(this.attachment);\n }, n.proxyMethod(\"attachment.getAttribute\"), n.proxyMethod(\"attachment.hasAttribute\"), n.proxyMethod(\"attachment.setAttribute\"), n.proxyMethod(\"attachment.getAttributes\"), n.proxyMethod(\"attachment.setAttributes\"), n.proxyMethod(\"attachment.isPending\"), n.proxyMethod(\"attachment.isPreviewable\"), n.proxyMethod(\"attachment.getURL\"), n.proxyMethod(\"attachment.getHref\"), n.proxyMethod(\"attachment.getFilename\"), n.proxyMethod(\"attachment.getFilesize\"), n.proxyMethod(\"attachment.getFormattedFilesize\"), n.proxyMethod(\"attachment.getExtension\"), n.proxyMethod(\"attachment.getContentType\"), n.proxyMethod(\"attachment.getFile\"), n.proxyMethod(\"attachment.setFile\"), n.proxyMethod(\"attachment.releaseFile\"), n.proxyMethod(\"attachment.getUploadProgress\"), n.proxyMethod(\"attachment.setUploadProgress\"), n;\n }(e.BasicObject);\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n e.AttachmentManager = function (n) {\n function i(t) {\n var e, n, i;\n for (null == t && (t = []), this.managedAttachments = {}, n = 0, i = t.length; i > n; n++) e = t[n], this.manageAttachment(e);\n }\n return t(i, n), i.prototype.getAttachments = function () {\n var t, e, n, i;\n n = this.managedAttachments, i = [];\n for (e in n) t = n[e], i.push(t);\n return i;\n }, i.prototype.manageAttachment = function (t) {\n var n, i;\n return null != (n = this.managedAttachments)[i = t.id] ? n[i] : n[i] = new e.ManagedAttachment(this, t);\n }, i.prototype.attachmentIsManaged = function (t) {\n return t.id in this.managedAttachments;\n }, i.prototype.requestRemovalOfAttachment = function (t) {\n var e;\n return this.attachmentIsManaged(t) && null != (e = this.delegate) && \"function\" == typeof e.attachmentManagerDidRequestRemovalOfAttachment ? e.attachmentManagerDidRequestRemovalOfAttachment(t) : void 0;\n }, i.prototype.unmanageAttachment = function (t) {\n var e;\n return e = this.managedAttachments[t.id], delete this.managedAttachments[t.id], e;\n }, i;\n }(e.BasicObject);\n }.call(this), function () {\n var t, n, i, o, r, s, a, u, c, l, h;\n t = e.elementContainsNode, n = e.findChildIndexOfNode, r = e.nodeIsBlockStart, s = e.nodeIsBlockStartComment, o = e.nodeIsBlockContainer, a = e.nodeIsCursorTarget, u = e.nodeIsEmptyTextNode, c = e.nodeIsTextNode, i = e.nodeIsAttachmentElement, l = e.tagName, h = e.walkTree, e.LocationMapper = function () {\n function e(t) {\n this.element = t;\n }\n var p, d, f, g;\n return e.prototype.findLocationFromContainerAndOffset = function (e, i, o) {\n var s, u, l, p, g, m, v;\n for (m = (null != o ? o : {\n strict: !0\n }).strict, u = 0, l = !1, p = {\n index: 0,\n offset: 0\n }, (s = this.findAttachmentElementParentForNode(e)) && (e = s.parentNode, i = n(s)), v = h(this.element, {\n usingFilter: f\n }); v.nextNode();) {\n if (g = v.currentNode, g === e && c(e)) {\n a(g) || (p.offset += i);\n break;\n }\n if (g.parentNode === e) {\n if (u++ === i) break;\n } else if (!t(e, g) && u > 0) break;\n r(g, {\n strict: m\n }) ? (l && p.index++, p.offset = 0, l = !0) : p.offset += d(g);\n }\n return p;\n }, e.prototype.findContainerAndOffsetFromLocation = function (t) {\n var e, i, s, u, l;\n if (0 === t.index && 0 === t.offset) {\n for (e = this.element, u = 0; e.firstChild;) if (e = e.firstChild, o(e)) {\n u = 1;\n break;\n }\n return [e, u];\n }\n if (l = this.findNodeAndOffsetFromLocation(t), i = l[0], s = l[1], i) {\n if (c(i)) 0 === d(i) ? (e = i.parentNode.parentNode, u = n(i.parentNode), a(i, {\n name: \"right\"\n }) && u++) : (e = i, u = t.offset - s);else {\n if (e = i.parentNode, !r(i.previousSibling) && !o(e)) for (; i === e.lastChild && (i = e, e = e.parentNode, !o(e)););\n u = n(i), 0 !== t.offset && u++;\n }\n return [e, u];\n }\n }, e.prototype.findNodeAndOffsetFromLocation = function (t) {\n var e, n, i, o, r, s, u, l;\n for (u = 0, l = this.getSignificantNodesForIndex(t.index), n = 0, i = l.length; i > n; n++) {\n if (e = l[n], o = d(e), t.offset <= u + o) if (c(e)) {\n if (r = e, s = u, t.offset === s && a(r)) break;\n } else r || (r = e, s = u);\n if (u += o, u > t.offset) break;\n }\n return [r, s];\n }, e.prototype.findAttachmentElementParentForNode = function (t) {\n for (; t && t !== this.element;) {\n if (i(t)) return t;\n t = t.parentNode;\n }\n }, e.prototype.getSignificantNodesForIndex = function (t) {\n var e, n, i, o, r;\n for (i = [], r = h(this.element, {\n usingFilter: p\n }), o = !1; r.nextNode();) if (n = r.currentNode, s(n)) {\n if (\"undefined\" != typeof e && null !== e ? e++ : e = 0, e === t) o = !0;else if (o) break;\n } else o && i.push(n);\n return i;\n }, d = function (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 (t) {\n return g(t) === NodeFilter.FILTER_ACCEPT ? f(t) : NodeFilter.FILTER_REJECT;\n }, g = function (t) {\n return u(t) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;\n }, f = function (t) {\n return i(t.parentNode) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;\n }, e;\n }();\n }.call(this), function () {\n var t,\n n,\n i = [].slice;\n t = e.getDOMRange, n = e.setDOMRange, e.PointMapper = function () {\n function e() {}\n return e.prototype.createDOMRangeFromPoint = function (e) {\n var i, o, r, s, a, u, c, l;\n if (c = e.x, l = e.y, document.caretPositionFromPoint) return a = document.caretPositionFromPoint(c, l), r = a.offsetNode, o = a.offset, i = document.createRange(), i.setStart(r, o), i;\n if (document.caretRangeFromPoint) return document.caretRangeFromPoint(c, l);\n if (document.body.createTextRange) {\n s = t();\n try {\n u = document.body.createTextRange(), u.moveToPoint(c, l), u.select();\n } catch (h) {}\n return i = t(), n(s), i;\n }\n }, e.prototype.getClientRectsForDOMRange = function (t) {\n var e, n, o;\n return n = i.call(t.getClientRects()), o = n[0], e = n[n.length - 1], [o, e];\n }, e;\n }();\n }.call(this), function () {\n var t,\n n = function (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n i = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) o.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n o = {}.hasOwnProperty,\n r = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n return -1;\n };\n t = e.getDOMRange, e.SelectionChangeObserver = function (e) {\n function o() {\n this.run = n(this.run, this), this.update = n(this.update, this), this.selectionManagers = [];\n }\n var s;\n return i(o, e), o.prototype.start = function () {\n return this.started ? void 0 : (this.started = !0, \"onselectionchange\" in document ? document.addEventListener(\"selectionchange\", this.update, !0) : this.run());\n }, o.prototype.stop = function () {\n return this.started ? (this.started = !1, document.removeEventListener(\"selectionchange\", this.update, !0)) : void 0;\n }, o.prototype.registerSelectionManager = function (t) {\n return r.call(this.selectionManagers, t) < 0 ? (this.selectionManagers.push(t), this.start()) : void 0;\n }, o.prototype.unregisterSelectionManager = function (t) {\n var e;\n return this.selectionManagers = function () {\n var n, i, o, r;\n for (o = this.selectionManagers, r = [], n = 0, i = o.length; i > n; n++) e = o[n], e !== t && r.push(e);\n return r;\n }.call(this), 0 === this.selectionManagers.length ? this.stop() : void 0;\n }, o.prototype.notifySelectionManagersOfSelectionChange = function () {\n var t, e, n, i, o;\n for (n = this.selectionManagers, i = [], t = 0, e = n.length; e > t; t++) o = n[t], i.push(o.selectionDidChange());\n return i;\n }, o.prototype.update = function () {\n var e;\n return e = t(), s(e, this.domRange) ? void 0 : (this.domRange = e, this.notifySelectionManagersOfSelectionChange());\n }, o.prototype.reset = function () {\n return this.domRange = null, this.update();\n }, o.prototype.run = function () {\n return this.started ? (this.update(), requestAnimationFrame(this.run)) : void 0;\n }, s = function (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 (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n p = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) d.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n d = {}.hasOwnProperty;\n i = e.getDOMSelection, n = e.getDOMRange, l = e.setDOMRange, t = e.elementContainsNode, s = e.nodeIsCursorTarget, r = e.innerElementIsActive, o = e.handleEvent, a = e.normalizeRange, u = e.rangeIsCollapsed, c = e.rangesAreEqual, e.SelectionManager = function (d) {\n function f(t) {\n this.element = t, this.selectionDidChange = h(this.selectionDidChange, this), this.didMouseDown = h(this.didMouseDown, this), this.locationMapper = new e.LocationMapper(this.element), this.pointMapper = new e.PointMapper(), this.lockCount = 0, o(\"mousedown\", {\n onElement: this.element,\n withCallback: this.didMouseDown\n });\n }\n return p(f, d), f.prototype.getLocationRange = function (t) {\n var e, i;\n return null == t && (t = {}), e = t.strict === !1 ? this.createLocationRangeFromDOMRange(n(), {\n strict: !1\n }) : t.ignoreLock ? this.currentLocationRange : null != (i = this.lockedLocationRange) ? i : this.currentLocationRange;\n }, f.prototype.setLocationRange = function (t) {\n var e;\n if (!this.lockedLocationRange) return t = a(t), (e = this.createDOMRangeFromLocationRange(t)) ? (l(e), this.updateCurrentLocationRange(t)) : void 0;\n }, f.prototype.setLocationRangeFromPointRange = function (t) {\n var e, n;\n return t = a(t), n = this.getLocationAtPoint(t[0]), e = this.getLocationAtPoint(t[1]), this.setLocationRange([n, e]);\n }, f.prototype.getClientRectAtLocationRange = function (t) {\n var e;\n return (e = this.createDOMRangeFromLocationRange(t)) ? this.getClientRectsForDOMRange(e)[1] : void 0;\n }, f.prototype.locationIsCursorTarget = function (t) {\n var e, n, i;\n return i = this.findNodeAndOffsetFromLocation(t), e = i[0], n = i[1], s(e);\n }, f.prototype.lock = function () {\n return 0 === this.lockCount++ ? (this.updateCurrentLocationRange(), this.lockedLocationRange = this.getLocationRange()) : void 0;\n }, f.prototype.unlock = function () {\n var t;\n return 0 === --this.lockCount && (t = this.lockedLocationRange, this.lockedLocationRange = null, null != t) ? this.setLocationRange(t) : void 0;\n }, f.prototype.clearSelection = function () {\n var t;\n return null != (t = i()) ? t.removeAllRanges() : void 0;\n }, f.prototype.selectionIsCollapsed = function () {\n var t;\n return (null != (t = n()) ? t.collapsed : void 0) === !0;\n }, f.prototype.selectionIsExpanded = function () {\n return !this.selectionIsCollapsed();\n }, f.prototype.createLocationRangeFromDOMRange = function (t, e) {\n var n, i;\n if (null != t && this.domRangeWithinElement(t) && (i = this.findLocationFromContainerAndOffset(t.startContainer, t.startOffset, e))) return t.collapsed || (n = this.findLocationFromContainerAndOffset(t.endContainer, t.endOffset, e)), a([i, n]);\n }, f.proxyMethod(\"locationMapper.findLocationFromContainerAndOffset\"), f.proxyMethod(\"locationMapper.findContainerAndOffsetFromLocation\"), f.proxyMethod(\"locationMapper.findNodeAndOffsetFromLocation\"), f.proxyMethod(\"pointMapper.createDOMRangeFromPoint\"), f.proxyMethod(\"pointMapper.getClientRectsForDOMRange\"), f.prototype.didMouseDown = function () {\n return this.pauseTemporarily();\n }, f.prototype.pauseTemporarily = function () {\n var e, n, i, r;\n return this.paused = !0, n = function (e) {\n return function () {\n var n, o, s;\n for (e.paused = !1, clearTimeout(r), o = 0, s = i.length; s > o; o++) n = i[o], n.destroy();\n return t(document, e.element) ? e.selectionDidChange() : void 0;\n };\n }(this), r = setTimeout(n, 200), i = function () {\n var t, i, r, s;\n for (r = [\"mousemove\", \"keydown\"], s = [], t = 0, i = r.length; i > t; t++) e = r[t], s.push(o(e, {\n onElement: document,\n withCallback: n\n }));\n return s;\n }();\n }, f.prototype.selectionDidChange = function () {\n return this.paused || r(this.element) ? void 0 : this.updateCurrentLocationRange();\n }, f.prototype.updateCurrentLocationRange = function (t) {\n var e;\n return (null != t ? t : t = this.createLocationRangeFromDOMRange(n())) && !c(t, this.currentLocationRange) ? (this.currentLocationRange = t, null != (e = this.delegate) && \"function\" == typeof e.locationRangeDidChange ? e.locationRangeDidChange(this.currentLocationRange.slice(0)) : void 0) : void 0;\n }, f.prototype.createDOMRangeFromLocationRange = function (t) {\n var e, n, i, o;\n return i = this.findContainerAndOffsetFromLocation(t[0]), n = u(t) ? i : null != (o = this.findContainerAndOffsetFromLocation(t[1])) ? o : i, null != i && null != n ? (e = document.createRange(), e.setStart.apply(e, i), e.setEnd.apply(e, n), e) : void 0;\n }, f.prototype.getLocationAtPoint = function (t) {\n var e, n;\n return (e = this.createDOMRangeFromPoint(t)) && null != (n = this.createLocationRangeFromDOMRange(e)) ? n[0] : void 0;\n }, f.prototype.domRangeWithinElement = function (e) {\n return e.collapsed ? t(this.element, e.startContainer) : t(this.element, e.startContainer) && t(this.element, e.endContainer);\n }, f;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) s.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n s = {}.hasOwnProperty,\n a = [].slice;\n i = e.rangeIsCollapsed, o = e.rangesAreEqual, n = e.objectsAreEqual, t = e.getBlockConfig, e.EditorController = function (s) {\n function u(t) {\n var n, i;\n this.editorElement = t.editorElement, n = t.document, i = t.html, this.selectionManager = new e.SelectionManager(this.editorElement), this.selectionManager.delegate = this, this.composition = new e.Composition(), this.composition.delegate = this, this.attachmentManager = new e.AttachmentManager(this.composition.getAttachments()), this.attachmentManager.delegate = this, this.inputController = new e[\"Level\" + e.config.input.getLevel() + \"InputController\"](this.editorElement), this.inputController.delegate = this, this.inputController.responder = this.composition, this.compositionController = new e.CompositionController(this.editorElement, this.composition), this.compositionController.delegate = this, this.toolbarController = new e.ToolbarController(this.editorElement.toolbarElement), this.toolbarController.delegate = this, this.editor = new e.Editor(this.composition, this.selectionManager, this.editorElement), null != n ? this.editor.loadDocument(n) : this.editor.loadHTML(i);\n }\n var c;\n return r(u, s), u.prototype.registerSelectionManager = function () {\n return e.selectionChangeObserver.registerSelectionManager(this.selectionManager);\n }, u.prototype.unregisterSelectionManager = function () {\n return e.selectionChangeObserver.unregisterSelectionManager(this.selectionManager);\n }, u.prototype.render = function () {\n return this.compositionController.render();\n }, u.prototype.reparse = function () {\n return this.composition.replaceHTML(this.editorElement.innerHTML);\n }, u.prototype.compositionDidChangeDocument = function () {\n return this.notifyEditorElement(\"document-change\"), this.handlingInput ? void 0 : this.render();\n }, u.prototype.compositionDidChangeCurrentAttributes = function (t) {\n return this.currentAttributes = t, this.toolbarController.updateAttributes(this.currentAttributes), this.updateCurrentActions(), this.notifyEditorElement(\"attributes-change\", {\n attributes: this.currentAttributes\n });\n }, u.prototype.compositionDidPerformInsertionAtRange = function (t) {\n return this.pasting ? this.pastedRange = t : void 0;\n }, u.prototype.compositionShouldAcceptFile = function (t) {\n return this.notifyEditorElement(\"file-accept\", {\n file: t\n });\n }, u.prototype.compositionDidAddAttachment = function (t) {\n var e;\n return e = this.attachmentManager.manageAttachment(t), this.notifyEditorElement(\"attachment-add\", {\n attachment: e\n });\n }, u.prototype.compositionDidEditAttachment = function (t) {\n var e;\n return this.compositionController.rerenderViewForObject(t), e = this.attachmentManager.manageAttachment(t), this.notifyEditorElement(\"attachment-edit\", {\n attachment: e\n }), this.notifyEditorElement(\"change\");\n }, u.prototype.compositionDidChangeAttachmentPreviewURL = function (t) {\n return this.compositionController.invalidateViewForObject(t), this.notifyEditorElement(\"change\");\n }, u.prototype.compositionDidRemoveAttachment = function (t) {\n var e;\n return e = this.attachmentManager.unmanageAttachment(t), this.notifyEditorElement(\"attachment-remove\", {\n attachment: e\n });\n }, u.prototype.compositionDidStartEditingAttachment = function (t, e) {\n return this.attachmentLocationRange = this.composition.document.getLocationRangeOfAttachment(t), this.compositionController.installAttachmentEditorForAttachment(t, e), this.selectionManager.setLocationRange(this.attachmentLocationRange);\n }, u.prototype.compositionDidStopEditingAttachment = function () {\n return this.compositionController.uninstallAttachmentEditor(), this.attachmentLocationRange = null;\n }, u.prototype.compositionDidRequestChangingSelectionToLocationRange = function (t) {\n return !this.loadingSnapshot || this.isFocused() ? (this.requestedLocationRange = t, this.compositionRevisionWhenLocationRangeRequested = this.composition.revision, this.handlingInput ? void 0 : this.render()) : void 0;\n }, u.prototype.compositionWillLoadSnapshot = function () {\n return this.loadingSnapshot = !0;\n }, u.prototype.compositionDidLoadSnapshot = function () {\n return this.compositionController.refreshViewCache(), this.render(), this.loadingSnapshot = !1;\n }, u.prototype.getSelectionManager = function () {\n return this.selectionManager;\n }, u.proxyMethod(\"getSelectionManager().setLocationRange\"), u.proxyMethod(\"getSelectionManager().getLocationRange\"), u.prototype.attachmentManagerDidRequestRemovalOfAttachment = function (t) {\n return this.removeAttachment(t);\n }, u.prototype.compositionControllerWillSyncDocumentView = function () {\n return this.inputController.editorWillSyncDocumentView(), this.selectionManager.lock(), this.selectionManager.clearSelection();\n }, u.prototype.compositionControllerDidSyncDocumentView = function () {\n return this.inputController.editorDidSyncDocumentView(), this.selectionManager.unlock(), this.updateCurrentActions(), this.notifyEditorElement(\"sync\");\n }, u.prototype.compositionControllerDidRender = function () {\n return null != this.requestedLocationRange && (this.compositionRevisionWhenLocationRangeRequested === this.composition.revision && this.selectionManager.setLocationRange(this.requestedLocationRange), this.requestedLocationRange = null, this.compositionRevisionWhenLocationRangeRequested = null), this.renderedCompositionRevision !== this.composition.revision && (this.runEditorFilters(), this.composition.updateCurrentAttributes(), this.notifyEditorElement(\"render\")), this.renderedCompositionRevision = this.composition.revision;\n }, u.prototype.compositionControllerDidFocus = function () {\n return this.isFocusedInvisibly() && this.setLocationRange({\n index: 0,\n offset: 0\n }), this.toolbarController.hideDialog(), this.notifyEditorElement(\"focus\");\n }, u.prototype.compositionControllerDidBlur = function () {\n return this.notifyEditorElement(\"blur\");\n }, u.prototype.compositionControllerDidSelectAttachment = function (t, e) {\n return this.toolbarController.hideDialog(), this.composition.editAttachment(t, e);\n }, u.prototype.compositionControllerDidRequestDeselectingAttachment = function (t) {\n var e, n;\n return e = null != (n = this.attachmentLocationRange) ? n : this.composition.document.getLocationRangeOfAttachment(t), this.selectionManager.setLocationRange(e[1]);\n }, u.prototype.compositionControllerWillUpdateAttachment = function (t) {\n return this.editor.recordUndoEntry(\"Edit Attachment\", {\n context: t.id,\n consolidatable: !0\n });\n }, u.prototype.compositionControllerDidRequestRemovalOfAttachment = function (t) {\n return this.removeAttachment(t);\n }, u.prototype.inputControllerWillHandleInput = function () {\n return this.handlingInput = !0, this.requestedRender = !1;\n }, u.prototype.inputControllerDidRequestRender = function () {\n return this.requestedRender = !0;\n }, u.prototype.inputControllerDidHandleInput = function () {\n return this.handlingInput = !1, this.requestedRender ? (this.requestedRender = !1, this.render()) : void 0;\n }, u.prototype.inputControllerDidAllowUnhandledInput = function () {\n return this.notifyEditorElement(\"change\");\n }, u.prototype.inputControllerDidRequestReparse = function () {\n return this.reparse();\n }, u.prototype.inputControllerWillPerformTyping = function () {\n return this.recordTypingUndoEntry();\n }, u.prototype.inputControllerWillPerformFormatting = function (t) {\n return this.recordFormattingUndoEntry(t);\n }, u.prototype.inputControllerWillCutText = function () {\n return this.editor.recordUndoEntry(\"Cut\");\n }, u.prototype.inputControllerWillPaste = function (t) {\n return this.editor.recordUndoEntry(\"Paste\"), this.pasting = !0, this.notifyEditorElement(\"before-paste\", {\n paste: t\n });\n }, u.prototype.inputControllerDidPaste = function (t) {\n return t.range = this.pastedRange, this.pastedRange = null, this.pasting = null, this.notifyEditorElement(\"paste\", {\n paste: t\n });\n }, u.prototype.inputControllerWillMoveText = function () {\n return this.editor.recordUndoEntry(\"Move\");\n }, u.prototype.inputControllerWillAttachFiles = function () {\n return this.editor.recordUndoEntry(\"Drop Files\");\n }, u.prototype.inputControllerWillPerformUndo = function () {\n return this.editor.undo();\n }, u.prototype.inputControllerWillPerformRedo = function () {\n return this.editor.redo();\n }, u.prototype.inputControllerDidReceiveKeyboardCommand = function (t) {\n return this.toolbarController.applyKeyboardCommand(t);\n }, u.prototype.inputControllerDidStartDrag = function () {\n return this.locationRangeBeforeDrag = this.selectionManager.getLocationRange();\n }, u.prototype.inputControllerDidReceiveDragOverPoint = function (t) {\n return this.selectionManager.setLocationRangeFromPointRange(t);\n }, u.prototype.inputControllerDidCancelDrag = function () {\n return this.selectionManager.setLocationRange(this.locationRangeBeforeDrag), this.locationRangeBeforeDrag = null;\n }, u.prototype.locationRangeDidChange = function (t) {\n return this.composition.updateCurrentAttributes(), this.updateCurrentActions(), this.attachmentLocationRange && !o(this.attachmentLocationRange, t) && this.composition.stopEditingAttachment(), this.notifyEditorElement(\"selection-change\");\n }, u.prototype.toolbarDidClickButton = function () {\n return this.getLocationRange() ? void 0 : this.setLocationRange({\n index: 0,\n offset: 0\n });\n }, u.prototype.toolbarDidInvokeAction = function (t) {\n return this.invokeAction(t);\n }, u.prototype.toolbarDidToggleAttribute = function (t) {\n return this.recordFormattingUndoEntry(t), this.composition.toggleCurrentAttribute(t), this.render(), this.selectionFrozen ? void 0 : this.editorElement.focus();\n }, u.prototype.toolbarDidUpdateAttribute = function (t, e) {\n return this.recordFormattingUndoEntry(t), this.composition.setCurrentAttribute(t, e), this.render(), this.selectionFrozen ? void 0 : this.editorElement.focus();\n }, u.prototype.toolbarDidRemoveAttribute = function (t) {\n return this.recordFormattingUndoEntry(t), this.composition.removeCurrentAttribute(t), this.render(), this.selectionFrozen ? void 0 : this.editorElement.focus();\n }, u.prototype.toolbarWillShowDialog = function () {\n return this.composition.expandSelectionForEditing(), this.freezeSelection();\n }, u.prototype.toolbarDidShowDialog = function (t) {\n return this.notifyEditorElement(\"toolbar-dialog-show\", {\n dialogName: t\n });\n }, u.prototype.toolbarDidHideDialog = function (t) {\n return this.thawSelection(), this.editorElement.focus(), this.notifyEditorElement(\"toolbar-dialog-hide\", {\n dialogName: t\n });\n }, u.prototype.freezeSelection = function () {\n return this.selectionFrozen ? void 0 : (this.selectionManager.lock(), this.composition.freezeSelection(), this.selectionFrozen = !0, this.render());\n }, u.prototype.thawSelection = function () {\n return this.selectionFrozen ? (this.composition.thawSelection(), this.selectionManager.unlock(), this.selectionFrozen = !1, this.render()) : void 0;\n }, u.prototype.actions = {\n undo: {\n test: function () {\n return this.editor.canUndo();\n },\n perform: function () {\n return this.editor.undo();\n }\n },\n redo: {\n test: function () {\n return this.editor.canRedo();\n },\n perform: function () {\n return this.editor.redo();\n }\n },\n link: {\n test: function () {\n return this.editor.canActivateAttribute(\"href\");\n }\n },\n increaseNestingLevel: {\n test: function () {\n return this.editor.canIncreaseNestingLevel();\n },\n perform: function () {\n return this.editor.increaseNestingLevel() && this.render();\n }\n },\n decreaseNestingLevel: {\n test: function () {\n return this.editor.canDecreaseNestingLevel();\n },\n perform: function () {\n return this.editor.decreaseNestingLevel() && this.render();\n }\n },\n attachFiles: {\n test: function () {\n return !0;\n },\n perform: function () {\n return e.config.input.pickFiles(this.editor.insertFiles);\n }\n }\n }, u.prototype.canInvokeAction = function (t) {\n var e, n;\n return this.actionIsExternal(t) ? !0 : !!(null != (e = this.actions[t]) && null != (n = e.test) ? n.call(this) : void 0);\n }, u.prototype.invokeAction = function (t) {\n var e, n;\n return this.actionIsExternal(t) ? this.notifyEditorElement(\"action-invoke\", {\n actionName: t\n }) : null != (e = this.actions[t]) && null != (n = e.perform) ? n.call(this) : void 0;\n }, u.prototype.actionIsExternal = function (t) {\n return /^x-./.test(t);\n }, u.prototype.getCurrentActions = function () {\n var t, e;\n e = {};\n for (t in this.actions) e[t] = this.canInvokeAction(t);\n return e;\n }, u.prototype.updateCurrentActions = function () {\n var t;\n return t = this.getCurrentActions(), n(t, this.currentActions) ? void 0 : (this.currentActions = t, this.toolbarController.updateActions(this.currentActions), this.notifyEditorElement(\"actions-change\", {\n actions: this.currentActions\n }));\n }, u.prototype.runEditorFilters = function () {\n var t, e, n, i, o, r, s, a;\n for (a = this.composition.getSnapshot(), o = this.editor.filters, n = 0, i = o.length; i > n; n++) e = o[n], t = a.document, s = a.selectedRange, a = null != (r = e.call(this.editor, a)) ? r : {}, null == a.document && (a.document = t), null == a.selectedRange && (a.selectedRange = s);\n return c(a, this.composition.getSnapshot()) ? void 0 : this.composition.loadSnapshot(a);\n }, c = function (t, e) {\n return o(t.selectedRange, e.selectedRange) && t.document.isEqualTo(e.document);\n }, u.prototype.updateInputElement = function () {\n var t, n;\n return t = this.compositionController.getSerializableElement(), n = e.serializeToContentType(t, \"text/html\"), this.editorElement.setInputElementValue(n);\n }, u.prototype.notifyEditorElement = function (t, e) {\n switch (t) {\n case \"document-change\":\n this.documentChangedSinceLastRender = !0;\n break;\n case \"render\":\n this.documentChangedSinceLastRender && (this.documentChangedSinceLastRender = !1, this.notifyEditorElement(\"change\"));\n break;\n case \"change\":\n case \"attachment-add\":\n case \"attachment-edit\":\n case \"attachment-remove\":\n this.updateInputElement();\n }\n return this.editorElement.notify(t, e);\n }, u.prototype.removeAttachment = function (t) {\n return this.editor.recordUndoEntry(\"Delete Attachment\"), this.composition.removeAttachment(t), this.render();\n }, u.prototype.recordFormattingUndoEntry = function (e) {\n var n, o;\n return n = t(e), o = this.selectionManager.getLocationRange(), n || !i(o) ? this.editor.recordUndoEntry(\"Formatting\", {\n context: this.getUndoContext(),\n consolidatable: !0\n }) : void 0;\n }, u.prototype.recordTypingUndoEntry = function () {\n return this.editor.recordUndoEntry(\"Typing\", {\n context: this.getUndoContext(this.currentAttributes),\n consolidatable: !0\n });\n }, u.prototype.getUndoContext = function () {\n var t;\n return t = 1 <= arguments.length ? a.call(arguments, 0) : [], [this.getLocationContext(), this.getTimeContext()].concat(a.call(t));\n }, u.prototype.getLocationContext = function () {\n var t;\n return t = this.selectionManager.getLocationRange(), i(t) ? t[0].index : t;\n }, u.prototype.getTimeContext = function () {\n return e.config.undoInterval > 0 ? Math.floor(new Date().getTime() / e.config.undoInterval) : 0;\n }, u.prototype.isFocused = function () {\n var t;\n return this.editorElement === (null != (t = this.editorElement.ownerDocument) ? t.activeElement : void 0);\n }, u.prototype.isFocusedInvisibly = function () {\n return this.isFocused() && !this.getLocationRange();\n }, u;\n }(e.Controller);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a,\n u = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n return -1;\n };\n n = e.browser, s = e.makeElement, a = e.triggerEvent, o = e.handleEvent, r = e.handleEventOnce, i = e.findClosestElementFromNode, t = e.AttachmentView.attachmentSelector, e.registerElement(\"trix-editor\", function () {\n var c, l, h, p, d, f, g, m, v;\n return g = 0, l = function (t) {\n return !document.querySelector(\":focus\") && t.hasAttribute(\"autofocus\") && document.querySelector(\"[autofocus]\") === t ? t.focus() : void 0;\n }, m = function (t) {\n return t.hasAttribute(\"contenteditable\") ? void 0 : (t.setAttribute(\"contenteditable\", \"\"), r(\"focus\", {\n onElement: t,\n withCallback: function () {\n return h(t);\n }\n }));\n }, h = function (t) {\n return d(t), v(t);\n }, d = function (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 () {\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 (t) {\n return t.hasAttribute(\"role\") ? void 0 : t.setAttribute(\"role\", \"textbox\");\n }, f = function (t) {\n var e;\n if (!t.hasAttribute(\"aria-label\") && !t.hasAttribute(\"aria-labelledby\")) return (e = function () {\n var e, n, i;\n return i = function () {\n var n, i, o, r;\n for (o = t.labels, r = [], n = 0, i = o.length; i > n; n++) e = o[n], e.contains(t) || r.push(e.textContent);\n return r;\n }(), (n = i.join(\" \")) ? t.setAttribute(\"aria-label\", n) : t.removeAttribute(\"aria-label\");\n })(), o(\"focus\", {\n onElement: t,\n withCallback: e\n });\n }, p = function () {\n return n.forcesObjectResizing ? {\n display: \"inline\",\n width: \"auto\"\n } : {\n display: \"inline-block\",\n width: \"1px\"\n };\n }(), {\n defaultCSS: \"%t {\\n display: block;\\n}\\n\\n%t:empty:not(:focus)::before {\\n content: attr(placeholder);\\n color: graytext;\\n cursor: text;\\n pointer-events: none;\\n}\\n\\n%t a[contenteditable=false] {\\n cursor: text;\\n}\\n\\n%t img {\\n max-width: 100%;\\n height: auto;\\n}\\n\\n%t \" + t + \" figcaption textarea {\\n resize: none;\\n}\\n\\n%t \" + t + \" figcaption textarea.trix-autoresize-clone {\\n position: absolute;\\n left: -9999px;\\n max-height: 0px;\\n}\\n\\n%t \" + t + \" figcaption[data-trix-placeholder]:empty::before {\\n content: attr(data-trix-placeholder);\\n color: graytext;\\n}\\n\\n%t [data-trix-cursor-target] {\\n display: \" + p.display + \" !important;\\n width: \" + p.width + \" !important;\\n padding: 0 !important;\\n margin: 0 !important;\\n border: none !important;\\n}\\n\\n%t [data-trix-cursor-target=left] {\\n vertical-align: top !important;\\n margin-left: -1px !important;\\n}\\n\\n%t [data-trix-cursor-target=right] {\\n vertical-align: bottom !important;\\n margin-right: -1px !important;\\n}\",\n trixId: {\n get: function () {\n return this.hasAttribute(\"trix-id\") ? this.getAttribute(\"trix-id\") : (this.setAttribute(\"trix-id\", ++g), this.trixId);\n }\n },\n labels: {\n get: function () {\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 () {\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 () {\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 () {\n var t;\n return null != (t = this.editorController) ? t.editor : void 0;\n }\n },\n name: {\n get: function () {\n var t;\n return null != (t = this.inputElement) ? t.name : void 0;\n }\n },\n value: {\n get: function () {\n var t;\n return null != (t = this.inputElement) ? t.value : void 0;\n },\n set: function (t) {\n var e;\n return this.defaultValue = t, null != (e = this.editor) ? e.loadHTML(this.defaultValue) : void 0;\n }\n },\n notify: function (t, e) {\n return this.editorController ? a(\"trix-\" + t, {\n onElement: this,\n attributes: e\n }) : void 0;\n },\n setInputElementValue: function (t) {\n var e;\n return null != (e = this.inputElement) ? e.value = t : void 0;\n },\n initialize: function () {\n return this.hasAttribute(\"data-trix-internal\") ? void 0 : (m(this), c(this), f(this));\n },\n connect: function () {\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 () {\n var t;\n return null != (t = this.editorController) && t.unregisterSelectionManager(), this.unregisterResetListener(), this.unregisterClickListener();\n },\n registerResetListener: function () {\n return this.resetListener = this.resetBubbled.bind(this), window.addEventListener(\"reset\", this.resetListener, !1);\n },\n unregisterResetListener: function () {\n return window.removeEventListener(\"reset\", this.resetListener, !1);\n },\n registerClickListener: function () {\n return this.clickListener = this.clickBubbled.bind(this), window.addEventListener(\"click\", this.clickListener, !1);\n },\n unregisterClickListener: function () {\n return window.removeEventListener(\"click\", this.clickListener, !1);\n },\n resetBubbled: function (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 (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 () {\n return this.value = this.defaultValue;\n }\n };\n }());\n }.call(this), function () {}.call(this);\n }).call(this), \"object\" == typeof module && module.exports ? module.exports = e : \"function\" == typeof define && define.amd && define(e);\n}.call(this);","define([\"./arr\"], function (arr) {\n \"use strict\";\n\n return arr.indexOf;\n});","define(function () {\n \"use strict\";\n\n // [[Class]] -> type pairs\n return {};\n});","define([\"./class2type\"], function (class2type) {\n \"use strict\";\n\n return class2type.hasOwnProperty;\n});","define(function () {\n \"use strict\";\n\n /**\n * Determines whether an object can have data\n */\n return function (owner) {\n // Accepts only:\n // - Node\n // - Node.ELEMENT_NODE\n // - Node.DOCUMENT_NODE\n // - Object\n // - Any\n return owner.nodeType === 1 || owner.nodeType === 9 || !+owner.nodeType;\n };\n});","define([\"../core\", \"../var/documentElement\", \"../selector/contains\" // jQuery.contains\n], function (jQuery, documentElement) {\n \"use strict\";\n\n var isAttached = function (elem) {\n return jQuery.contains(elem.ownerDocument, elem);\n },\n composed = {\n composed: true\n };\n\n // Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n // Check attachment across shadow DOM boundaries when possible (gh-3504)\n // Support: iOS 10.0-10.2 only\n // Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n // leading to errors. We need to check for `getRootNode`.\n if (documentElement.getRootNode) {\n isAttached = function (elem) {\n return jQuery.contains(elem.ownerDocument, elem) || elem.getRootNode(composed) === elem.ownerDocument;\n };\n }\n return isAttached;\n});","define([\"./document\"], function (document) {\n \"use strict\";\n\n return document.documentElement;\n});","define([\"./core\", \"./core/isAttached\", \"./var/flat\", \"./var/isFunction\", \"./var/push\", \"./var/rcheckableType\", \"./core/access\", \"./manipulation/var/rtagName\", \"./manipulation/var/rscriptType\", \"./manipulation/wrapMap\", \"./manipulation/getAll\", \"./manipulation/setGlobalEval\", \"./manipulation/buildFragment\", \"./manipulation/support\", \"./data/var/dataPriv\", \"./data/var/dataUser\", \"./data/var/acceptData\", \"./core/DOMEval\", \"./core/nodeName\", \"./core/init\", \"./traversing\", \"./selector\", \"./event\"], function (jQuery, isAttached, flat, isFunction, push, rcheckableType, access, rtagName, rscriptType, wrapMap, getAll, setGlobalEval, buildFragment, support, dataPriv, dataUser, acceptData, DOMEval, nodeName) {\n \"use strict\";\n\n var\n // Support: IE <=10 - 11, Edge 12 - 13 only\n // In IE/Edge using regex groups here causes severe slowdowns.\n // See https://connect.microsoft.com/IE/feedback/details/1736512/\n rnoInnerhtml = /\\s*$/g;\n\n // Prefer a tbody over its parent table for containing new rows\n function manipulationTarget(elem, content) {\n if (nodeName(elem, \"table\") && nodeName(content.nodeType !== 11 ? content : content.firstChild, \"tr\")) {\n return jQuery(elem).children(\"tbody\")[0] || elem;\n }\n return elem;\n }\n\n // Replace/restore the type attribute of script elements for safe DOM manipulation\n function disableScript(elem) {\n elem.type = (elem.getAttribute(\"type\") !== null) + \"/\" + elem.type;\n return elem;\n }\n function restoreScript(elem) {\n if ((elem.type || \"\").slice(0, 5) === \"true/\") {\n elem.type = elem.type.slice(5);\n } else {\n elem.removeAttribute(\"type\");\n }\n return elem;\n }\n function cloneCopyEvent(src, dest) {\n var i, l, type, pdataOld, udataOld, udataCur, events;\n if (dest.nodeType !== 1) {\n return;\n }\n\n // 1. Copy private data: events, handlers, etc.\n if (dataPriv.hasData(src)) {\n pdataOld = dataPriv.get(src);\n events = pdataOld.events;\n if (events) {\n dataPriv.remove(dest, \"handle events\");\n for (type in events) {\n for (i = 0, l = events[type].length; i < l; i++) {\n jQuery.event.add(dest, type, events[type][i]);\n }\n }\n }\n }\n\n // 2. Copy user data\n if (dataUser.hasData(src)) {\n udataOld = dataUser.access(src);\n udataCur = jQuery.extend({}, udataOld);\n dataUser.set(dest, udataCur);\n }\n }\n\n // Fix IE bugs, see support tests\n function fixInput(src, dest) {\n var nodeName = dest.nodeName.toLowerCase();\n\n // Fails to persist the checked state of a cloned checkbox or radio button.\n if (nodeName === \"input\" && rcheckableType.test(src.type)) {\n dest.checked = src.checked;\n\n // Fails to return the selected option to the default selected state when cloning options\n } else if (nodeName === \"input\" || nodeName === \"textarea\") {\n dest.defaultValue = src.defaultValue;\n }\n }\n function domManip(collection, args, callback, ignored) {\n // Flatten any nested arrays\n args = flat(args);\n var fragment,\n first,\n scripts,\n hasScripts,\n node,\n doc,\n i = 0,\n l = collection.length,\n iNoClone = l - 1,\n value = args[0],\n valueIsFunction = isFunction(value);\n\n // We can't cloneNode fragments that contain checked, in WebKit\n if (valueIsFunction || l > 1 && typeof value === \"string\" && !support.checkClone && rchecked.test(value)) {\n return collection.each(function (index) {\n var self = collection.eq(index);\n if (valueIsFunction) {\n args[0] = value.call(this, index, self.html());\n }\n domManip(self, args, callback, ignored);\n });\n }\n if (l) {\n fragment = buildFragment(args, collection[0].ownerDocument, false, collection, ignored);\n first = fragment.firstChild;\n if (fragment.childNodes.length === 1) {\n fragment = first;\n }\n\n // Require either new content or an interest in ignored elements to invoke the callback\n if (first || ignored) {\n scripts = jQuery.map(getAll(fragment, \"script\"), disableScript);\n hasScripts = scripts.length;\n\n // Use the original fragment for the last item\n // instead of the first because it can end up\n // being emptied incorrectly in certain situations (trac-8070).\n for (; i < l; i++) {\n node = fragment;\n if (i !== iNoClone) {\n node = jQuery.clone(node, true, true);\n\n // Keep references to cloned scripts for later restoration\n if (hasScripts) {\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n jQuery.merge(scripts, getAll(node, \"script\"));\n }\n }\n callback.call(collection[i], node, i);\n }\n if (hasScripts) {\n doc = scripts[scripts.length - 1].ownerDocument;\n\n // Re-enable scripts\n jQuery.map(scripts, restoreScript);\n\n // Evaluate executable scripts on first document insertion\n for (i = 0; i < hasScripts; i++) {\n node = scripts[i];\n if (rscriptType.test(node.type || \"\") && !dataPriv.access(node, \"globalEval\") && jQuery.contains(doc, node)) {\n if (node.src && (node.type || \"\").toLowerCase() !== \"module\") {\n // Optional AJAX dependency, but won't run scripts if not present\n if (jQuery._evalUrl && !node.noModule) {\n jQuery._evalUrl(node.src, {\n nonce: node.nonce || node.getAttribute(\"nonce\")\n }, doc);\n }\n } else {\n // Unwrap a CDATA section containing script contents. This shouldn't be\n // needed as in XML documents they're already not visible when\n // inspecting element contents and in HTML documents they have no\n // meaning but we're preserving that logic for backwards compatibility.\n // This will be removed completely in 4.0. See gh-4904.\n DOMEval(node.textContent.replace(rcleanScript, \"\"), node, doc);\n }\n }\n }\n }\n }\n }\n return collection;\n }\n function remove(elem, selector, keepData) {\n var node,\n nodes = selector ? jQuery.filter(selector, elem) : elem,\n i = 0;\n for (; (node = nodes[i]) != null; i++) {\n if (!keepData && node.nodeType === 1) {\n jQuery.cleanData(getAll(node));\n }\n if (node.parentNode) {\n if (keepData && isAttached(node)) {\n setGlobalEval(getAll(node, \"script\"));\n }\n node.parentNode.removeChild(node);\n }\n }\n return elem;\n }\n jQuery.extend({\n htmlPrefilter: function (html) {\n return html;\n },\n clone: function (elem, dataAndEvents, deepDataAndEvents) {\n var i,\n l,\n srcElements,\n destElements,\n clone = elem.cloneNode(true),\n inPage = isAttached(elem);\n\n // Fix IE cloning issues\n if (!support.noCloneChecked && (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem)) {\n // We eschew jQuery#find here for performance reasons:\n // https://jsperf.com/getall-vs-sizzle/2\n destElements = getAll(clone);\n srcElements = getAll(elem);\n for (i = 0, l = srcElements.length; i < l; i++) {\n fixInput(srcElements[i], destElements[i]);\n }\n }\n\n // Copy the events from the original to the clone\n if (dataAndEvents) {\n if (deepDataAndEvents) {\n srcElements = srcElements || getAll(elem);\n destElements = destElements || getAll(clone);\n for (i = 0, l = srcElements.length; i < l; i++) {\n cloneCopyEvent(srcElements[i], destElements[i]);\n }\n } else {\n cloneCopyEvent(elem, clone);\n }\n }\n\n // Preserve script evaluation history\n destElements = getAll(clone, \"script\");\n if (destElements.length > 0) {\n setGlobalEval(destElements, !inPage && getAll(elem, \"script\"));\n }\n\n // Return the cloned set\n return clone;\n },\n cleanData: function (elems) {\n var data,\n elem,\n type,\n special = jQuery.event.special,\n i = 0;\n for (; (elem = elems[i]) !== undefined; i++) {\n if (acceptData(elem)) {\n if (data = elem[dataPriv.expando]) {\n if (data.events) {\n for (type in data.events) {\n if (special[type]) {\n jQuery.event.remove(elem, type);\n\n // This is a shortcut to avoid jQuery.event.remove's overhead\n } else {\n jQuery.removeEvent(elem, type, data.handle);\n }\n }\n }\n\n // Support: Chrome <=35 - 45+\n // Assign undefined instead of using delete, see Data#remove\n elem[dataPriv.expando] = undefined;\n }\n if (elem[dataUser.expando]) {\n // Support: Chrome <=35 - 45+\n // Assign undefined instead of using delete, see Data#remove\n elem[dataUser.expando] = undefined;\n }\n }\n }\n }\n });\n jQuery.fn.extend({\n detach: function (selector) {\n return remove(this, selector, true);\n },\n remove: function (selector) {\n return remove(this, selector);\n },\n text: function (value) {\n return access(this, function (value) {\n return value === undefined ? jQuery.text(this) : this.empty().each(function () {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n this.textContent = value;\n }\n });\n }, null, value, arguments.length);\n },\n append: function () {\n return domManip(this, arguments, function (elem) {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n var target = manipulationTarget(this, elem);\n target.appendChild(elem);\n }\n });\n },\n prepend: function () {\n return domManip(this, arguments, function (elem) {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n var target = manipulationTarget(this, elem);\n target.insertBefore(elem, target.firstChild);\n }\n });\n },\n before: function () {\n return domManip(this, arguments, function (elem) {\n if (this.parentNode) {\n this.parentNode.insertBefore(elem, this);\n }\n });\n },\n after: function () {\n return domManip(this, arguments, function (elem) {\n if (this.parentNode) {\n this.parentNode.insertBefore(elem, this.nextSibling);\n }\n });\n },\n empty: function () {\n var elem,\n i = 0;\n for (; (elem = this[i]) != null; i++) {\n if (elem.nodeType === 1) {\n // Prevent memory leaks\n jQuery.cleanData(getAll(elem, false));\n\n // Remove any remaining nodes\n elem.textContent = \"\";\n }\n }\n return this;\n },\n clone: function (dataAndEvents, deepDataAndEvents) {\n dataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n return this.map(function () {\n return jQuery.clone(this, dataAndEvents, deepDataAndEvents);\n });\n },\n html: function (value) {\n return access(this, function (value) {\n var elem = this[0] || {},\n i = 0,\n l = this.length;\n if (value === undefined && elem.nodeType === 1) {\n return elem.innerHTML;\n }\n\n // See if we can take a shortcut and just use innerHTML\n if (typeof value === \"string\" && !rnoInnerhtml.test(value) && !wrapMap[(rtagName.exec(value) || [\"\", \"\"])[1].toLowerCase()]) {\n value = jQuery.htmlPrefilter(value);\n try {\n for (; i < l; i++) {\n elem = this[i] || {};\n\n // Remove element nodes and prevent memory leaks\n if (elem.nodeType === 1) {\n jQuery.cleanData(getAll(elem, false));\n elem.innerHTML = value;\n }\n }\n elem = 0;\n\n // If using innerHTML throws an exception, use the fallback method\n } catch (e) {}\n }\n if (elem) {\n this.empty().append(value);\n }\n }, null, value, arguments.length);\n },\n replaceWith: function () {\n var ignored = [];\n\n // Make the changes, replacing each non-ignored context element with the new content\n return domManip(this, arguments, function (elem) {\n var parent = this.parentNode;\n if (jQuery.inArray(this, ignored) < 0) {\n jQuery.cleanData(getAll(this));\n if (parent) {\n parent.replaceChild(elem, this);\n }\n }\n\n // Force callback invocation\n }, ignored);\n }\n });\n jQuery.each({\n appendTo: \"append\",\n prependTo: \"prepend\",\n insertBefore: \"before\",\n insertAfter: \"after\",\n replaceAll: \"replaceWith\"\n }, function (name, original) {\n jQuery.fn[name] = function (selector) {\n var elems,\n ret = [],\n insert = jQuery(selector),\n last = insert.length - 1,\n i = 0;\n for (; i <= last; i++) {\n elems = i === last ? this : this.clone(true);\n jQuery(insert[i])[original](elems);\n\n // Support: Android <=4.0 only, PhantomJS 1 only\n // .get() because push.apply(_, arraylike) throws on ancient WebKit\n push.apply(ret, elems.get());\n }\n return this.pushStack(ret);\n };\n });\n return jQuery;\n});","define([\"./arr\"], function (arr) {\n \"use strict\";\n\n return arr.push;\n});","define([\"./core\", \"./core/toType\", \"./var/isFunction\", \"./var/rnothtmlwhite\"], function (jQuery, toType, isFunction, rnothtmlwhite) {\n \"use strict\";\n\n // Convert String-formatted options into Object-formatted ones\n function createOptions(options) {\n var object = {};\n jQuery.each(options.match(rnothtmlwhite) || [], function (_, flag) {\n object[flag] = true;\n });\n return object;\n }\n\n /*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\n jQuery.Callbacks = function (options) {\n // Convert options from String-formatted to Object-formatted if needed\n // (we check in cache first)\n options = typeof options === \"string\" ? createOptions(options) : jQuery.extend({}, options);\n var\n // Flag to know if list is currently firing\n firing,\n // Last fire value for non-forgettable lists\n memory,\n // Flag to know if list was already fired\n fired,\n // Flag to prevent firing\n locked,\n // Actual callback list\n list = [],\n // Queue of execution data for repeatable lists\n queue = [],\n // Index of currently firing callback (modified by add/remove as needed)\n firingIndex = -1,\n // Fire callbacks\n fire = function () {\n // Enforce single-firing\n locked = locked || options.once;\n\n // Execute callbacks for all pending executions,\n // respecting firingIndex overrides and runtime changes\n fired = firing = true;\n for (; queue.length; firingIndex = -1) {\n memory = queue.shift();\n while (++firingIndex < list.length) {\n // Run callback and check for early termination\n if (list[firingIndex].apply(memory[0], memory[1]) === false && options.stopOnFalse) {\n // Jump to end and forget the data so .add doesn't re-fire\n firingIndex = list.length;\n memory = false;\n }\n }\n }\n\n // Forget the data if we're done with it\n if (!options.memory) {\n memory = false;\n }\n firing = false;\n\n // Clean up if we're done firing for good\n if (locked) {\n // Keep an empty list if we have data for future add calls\n if (memory) {\n list = [];\n\n // Otherwise, this object is spent\n } else {\n list = \"\";\n }\n }\n },\n // Actual Callbacks object\n self = {\n // Add a callback or a collection of callbacks to the list\n add: function () {\n if (list) {\n // If we have memory from a past run, we should fire after adding\n if (memory && !firing) {\n firingIndex = list.length - 1;\n queue.push(memory);\n }\n (function add(args) {\n jQuery.each(args, function (_, arg) {\n if (isFunction(arg)) {\n if (!options.unique || !self.has(arg)) {\n list.push(arg);\n }\n } else if (arg && arg.length && toType(arg) !== \"string\") {\n // Inspect recursively\n add(arg);\n }\n });\n })(arguments);\n if (memory && !firing) {\n fire();\n }\n }\n return this;\n },\n // Remove a callback from the list\n remove: function () {\n jQuery.each(arguments, function (_, arg) {\n var index;\n while ((index = jQuery.inArray(arg, list, index)) > -1) {\n list.splice(index, 1);\n\n // Handle firing indexes\n if (index <= firingIndex) {\n firingIndex--;\n }\n }\n });\n return this;\n },\n // Check if a given callback is in the list.\n // If no argument is given, return whether or not list has callbacks attached.\n has: function (fn) {\n return fn ? jQuery.inArray(fn, list) > -1 : list.length > 0;\n },\n // Remove all callbacks from the list\n empty: function () {\n if (list) {\n list = [];\n }\n return this;\n },\n // Disable .fire and .add\n // Abort any current/pending executions\n // Clear all callbacks and values\n disable: function () {\n locked = queue = [];\n list = memory = \"\";\n return this;\n },\n disabled: function () {\n return !list;\n },\n // Disable .fire\n // Also disable .add unless we have memory (since it would have no effect)\n // Abort any pending executions\n lock: function () {\n locked = queue = [];\n if (!memory && !firing) {\n list = memory = \"\";\n }\n return this;\n },\n locked: function () {\n return !!locked;\n },\n // Call all callbacks with the given context and arguments\n fireWith: function (context, args) {\n if (!locked) {\n args = args || [];\n args = [context, args.slice ? args.slice() : args];\n queue.push(args);\n if (!firing) {\n fire();\n }\n }\n return this;\n },\n // Call all the callbacks with the given arguments\n fire: function () {\n self.fireWith(this, arguments);\n return this;\n },\n // To know if the callbacks have already been called at least once\n fired: function () {\n return !!fired;\n }\n };\n return self;\n };\n return jQuery;\n});","define([\"./core\", \"./data/var/dataPriv\", \"./deferred\", \"./callbacks\"], function (jQuery, dataPriv) {\n \"use strict\";\n\n jQuery.extend({\n queue: function (elem, type, data) {\n var queue;\n if (elem) {\n type = (type || \"fx\") + \"queue\";\n queue = dataPriv.get(elem, type);\n\n // Speed up dequeue by getting out quickly if this is just a lookup\n if (data) {\n if (!queue || Array.isArray(data)) {\n queue = dataPriv.access(elem, type, jQuery.makeArray(data));\n } else {\n queue.push(data);\n }\n }\n return queue || [];\n }\n },\n dequeue: function (elem, type) {\n type = type || \"fx\";\n var queue = jQuery.queue(elem, type),\n startLength = queue.length,\n fn = queue.shift(),\n hooks = jQuery._queueHooks(elem, type),\n next = function () {\n jQuery.dequeue(elem, type);\n };\n\n // If the fx queue is dequeued, always remove the progress sentinel\n if (fn === \"inprogress\") {\n fn = queue.shift();\n startLength--;\n }\n if (fn) {\n // Add a progress sentinel to prevent the fx queue from being\n // automatically dequeued\n if (type === \"fx\") {\n queue.unshift(\"inprogress\");\n }\n\n // Clear up the last queue stop function\n delete hooks.stop;\n fn.call(elem, next, hooks);\n }\n if (!startLength && hooks) {\n hooks.empty.fire();\n }\n },\n // Not public - generate a queueHooks object, or return the current one\n _queueHooks: function (elem, type) {\n var key = type + \"queueHooks\";\n return dataPriv.get(elem, key) || dataPriv.access(elem, key, {\n empty: jQuery.Callbacks(\"once memory\").add(function () {\n dataPriv.remove(elem, [type + \"queue\", key]);\n })\n });\n }\n });\n jQuery.fn.extend({\n queue: function (type, data) {\n var setter = 2;\n if (typeof type !== \"string\") {\n data = type;\n type = \"fx\";\n setter--;\n }\n if (arguments.length < setter) {\n return jQuery.queue(this[0], type);\n }\n return data === undefined ? this : this.each(function () {\n var queue = jQuery.queue(this, type, data);\n\n // Ensure a hooks for this queue\n jQuery._queueHooks(this, type);\n if (type === \"fx\" && queue[0] !== \"inprogress\") {\n jQuery.dequeue(this, type);\n }\n });\n },\n dequeue: function (type) {\n return this.each(function () {\n jQuery.dequeue(this, type);\n });\n },\n clearQueue: function (type) {\n return this.queue(type || \"fx\", []);\n },\n // Get a promise resolved when queues of a certain type\n // are emptied (fx is the type by default)\n promise: function (type, obj) {\n var tmp,\n count = 1,\n defer = jQuery.Deferred(),\n elements = this,\n i = this.length,\n resolve = function () {\n if (! --count) {\n defer.resolveWith(elements, [elements]);\n }\n };\n if (typeof type !== \"string\") {\n obj = type;\n type = undefined;\n }\n type = type || \"fx\";\n while (i--) {\n tmp = dataPriv.get(elements[i], type + \"queueHooks\");\n if (tmp && tmp.empty) {\n count++;\n tmp.empty.add(resolve);\n }\n }\n resolve();\n return defer.promise(obj);\n }\n });\n return jQuery;\n});","define([\"./core\", \"./core/camelCase\", \"./var/document\", \"./var/isFunction\", \"./var/rcssNum\", \"./var/rnothtmlwhite\", \"./css/var/cssExpand\", \"./css/var/isHiddenWithinTree\", \"./css/adjustCSS\", \"./data/var/dataPriv\", \"./css/showHide\", \"./core/init\", \"./queue\", \"./deferred\", \"./traversing\", \"./manipulation\", \"./css\", \"./effects/Tween\"], function (jQuery, camelCase, document, isFunction, rcssNum, rnothtmlwhite, cssExpand, isHiddenWithinTree, adjustCSS, dataPriv, showHide) {\n \"use strict\";\n\n var fxNow,\n inProgress,\n rfxtypes = /^(?:toggle|show|hide)$/,\n rrun = /queueHooks$/;\n function schedule() {\n if (inProgress) {\n if (document.hidden === false && window.requestAnimationFrame) {\n window.requestAnimationFrame(schedule);\n } else {\n window.setTimeout(schedule, jQuery.fx.interval);\n }\n jQuery.fx.tick();\n }\n }\n\n // Animations created synchronously will run synchronously\n function createFxNow() {\n window.setTimeout(function () {\n fxNow = undefined;\n });\n return fxNow = Date.now();\n }\n\n // Generate parameters to create a standard animation\n function genFx(type, includeWidth) {\n var which,\n i = 0,\n attrs = {\n height: type\n };\n\n // If we include width, step value is 1 to do all cssExpand values,\n // otherwise step value is 2 to skip over Left and Right\n includeWidth = includeWidth ? 1 : 0;\n for (; i < 4; i += 2 - includeWidth) {\n which = cssExpand[i];\n attrs[\"margin\" + which] = attrs[\"padding\" + which] = type;\n }\n if (includeWidth) {\n attrs.opacity = attrs.width = type;\n }\n return attrs;\n }\n function createTween(value, prop, animation) {\n var tween,\n collection = (Animation.tweeners[prop] || []).concat(Animation.tweeners[\"*\"]),\n index = 0,\n length = collection.length;\n for (; index < length; index++) {\n if (tween = collection[index].call(animation, prop, value)) {\n // We're done with this property\n return tween;\n }\n }\n }\n function defaultPrefilter(elem, props, opts) {\n var prop,\n value,\n toggle,\n hooks,\n oldfire,\n propTween,\n restoreDisplay,\n display,\n isBox = \"width\" in props || \"height\" in props,\n anim = this,\n orig = {},\n style = elem.style,\n hidden = elem.nodeType && isHiddenWithinTree(elem),\n dataShow = dataPriv.get(elem, \"fxshow\");\n\n // Queue-skipping animations hijack the fx hooks\n if (!opts.queue) {\n hooks = jQuery._queueHooks(elem, \"fx\");\n if (hooks.unqueued == null) {\n hooks.unqueued = 0;\n oldfire = hooks.empty.fire;\n hooks.empty.fire = function () {\n if (!hooks.unqueued) {\n oldfire();\n }\n };\n }\n hooks.unqueued++;\n anim.always(function () {\n // Ensure the complete handler is called before this completes\n anim.always(function () {\n hooks.unqueued--;\n if (!jQuery.queue(elem, \"fx\").length) {\n hooks.empty.fire();\n }\n });\n });\n }\n\n // Detect show/hide animations\n for (prop in props) {\n value = props[prop];\n if (rfxtypes.test(value)) {\n delete props[prop];\n toggle = toggle || value === \"toggle\";\n if (value === (hidden ? \"hide\" : \"show\")) {\n // Pretend to be hidden if this is a \"show\" and\n // there is still data from a stopped show/hide\n if (value === \"show\" && dataShow && dataShow[prop] !== undefined) {\n hidden = true;\n\n // Ignore all other no-op show/hide data\n } else {\n continue;\n }\n }\n orig[prop] = dataShow && dataShow[prop] || jQuery.style(elem, prop);\n }\n }\n\n // Bail out if this is a no-op like .hide().hide()\n propTween = !jQuery.isEmptyObject(props);\n if (!propTween && jQuery.isEmptyObject(orig)) {\n return;\n }\n\n // Restrict \"overflow\" and \"display\" styles during box animations\n if (isBox && elem.nodeType === 1) {\n // Support: IE <=9 - 11, Edge 12 - 15\n // Record all 3 overflow attributes because IE does not infer the shorthand\n // from identically-valued overflowX and overflowY and Edge just mirrors\n // the overflowX value there.\n opts.overflow = [style.overflow, style.overflowX, style.overflowY];\n\n // Identify a display type, preferring old show/hide data over the CSS cascade\n restoreDisplay = dataShow && dataShow.display;\n if (restoreDisplay == null) {\n restoreDisplay = dataPriv.get(elem, \"display\");\n }\n display = jQuery.css(elem, \"display\");\n if (display === \"none\") {\n if (restoreDisplay) {\n display = restoreDisplay;\n } else {\n // Get nonempty value(s) by temporarily forcing visibility\n showHide([elem], true);\n restoreDisplay = elem.style.display || restoreDisplay;\n display = jQuery.css(elem, \"display\");\n showHide([elem]);\n }\n }\n\n // Animate inline elements as inline-block\n if (display === \"inline\" || display === \"inline-block\" && restoreDisplay != null) {\n if (jQuery.css(elem, \"float\") === \"none\") {\n // Restore the original display value at the end of pure show/hide animations\n if (!propTween) {\n anim.done(function () {\n style.display = restoreDisplay;\n });\n if (restoreDisplay == null) {\n display = style.display;\n restoreDisplay = display === \"none\" ? \"\" : display;\n }\n }\n style.display = \"inline-block\";\n }\n }\n }\n if (opts.overflow) {\n style.overflow = \"hidden\";\n anim.always(function () {\n style.overflow = opts.overflow[0];\n style.overflowX = opts.overflow[1];\n style.overflowY = opts.overflow[2];\n });\n }\n\n // Implement show/hide animations\n propTween = false;\n for (prop in orig) {\n // General show/hide setup for this element animation\n if (!propTween) {\n if (dataShow) {\n if (\"hidden\" in dataShow) {\n hidden = dataShow.hidden;\n }\n } else {\n dataShow = dataPriv.access(elem, \"fxshow\", {\n display: restoreDisplay\n });\n }\n\n // Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n if (toggle) {\n dataShow.hidden = !hidden;\n }\n\n // Show elements before animating them\n if (hidden) {\n showHide([elem], true);\n }\n\n /* eslint-disable no-loop-func */\n\n anim.done(function () {\n /* eslint-enable no-loop-func */\n\n // The final step of a \"hide\" animation is actually hiding the element\n if (!hidden) {\n showHide([elem]);\n }\n dataPriv.remove(elem, \"fxshow\");\n for (prop in orig) {\n jQuery.style(elem, prop, orig[prop]);\n }\n });\n }\n\n // Per-property setup\n propTween = createTween(hidden ? dataShow[prop] : 0, prop, anim);\n if (!(prop in dataShow)) {\n dataShow[prop] = propTween.start;\n if (hidden) {\n propTween.end = propTween.start;\n propTween.start = 0;\n }\n }\n }\n }\n function propFilter(props, specialEasing) {\n var index, name, easing, value, hooks;\n\n // camelCase, specialEasing and expand cssHook pass\n for (index in props) {\n name = camelCase(index);\n easing = specialEasing[name];\n value = props[index];\n if (Array.isArray(value)) {\n easing = value[1];\n value = props[index] = value[0];\n }\n if (index !== name) {\n props[name] = value;\n delete props[index];\n }\n hooks = jQuery.cssHooks[name];\n if (hooks && \"expand\" in hooks) {\n value = hooks.expand(value);\n delete props[name];\n\n // Not quite $.extend, this won't overwrite existing keys.\n // Reusing 'index' because we have the correct \"name\"\n for (index in value) {\n if (!(index in props)) {\n props[index] = value[index];\n specialEasing[index] = easing;\n }\n }\n } else {\n specialEasing[name] = easing;\n }\n }\n }\n function Animation(elem, properties, options) {\n var result,\n stopped,\n index = 0,\n length = Animation.prefilters.length,\n deferred = jQuery.Deferred().always(function () {\n // Don't match elem in the :animated selector\n delete tick.elem;\n }),\n tick = function () {\n if (stopped) {\n return false;\n }\n var currentTime = fxNow || createFxNow(),\n remaining = Math.max(0, animation.startTime + animation.duration - currentTime),\n // Support: Android 2.3 only\n // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (trac-12497)\n temp = remaining / animation.duration || 0,\n percent = 1 - temp,\n index = 0,\n length = animation.tweens.length;\n for (; index < length; index++) {\n animation.tweens[index].run(percent);\n }\n deferred.notifyWith(elem, [animation, percent, remaining]);\n\n // If there's more to do, yield\n if (percent < 1 && length) {\n return remaining;\n }\n\n // If this was an empty animation, synthesize a final progress notification\n if (!length) {\n deferred.notifyWith(elem, [animation, 1, 0]);\n }\n\n // Resolve the animation and report its conclusion\n deferred.resolveWith(elem, [animation]);\n return false;\n },\n animation = deferred.promise({\n elem: elem,\n props: jQuery.extend({}, properties),\n opts: jQuery.extend(true, {\n specialEasing: {},\n easing: jQuery.easing._default\n }, options),\n originalProperties: properties,\n originalOptions: options,\n startTime: fxNow || createFxNow(),\n duration: options.duration,\n tweens: [],\n createTween: function (prop, end) {\n var tween = jQuery.Tween(elem, animation.opts, prop, end, animation.opts.specialEasing[prop] || animation.opts.easing);\n animation.tweens.push(tween);\n return tween;\n },\n stop: function (gotoEnd) {\n var index = 0,\n // If we are going to the end, we want to run all the tweens\n // otherwise we skip this part\n length = gotoEnd ? animation.tweens.length : 0;\n if (stopped) {\n return this;\n }\n stopped = true;\n for (; index < length; index++) {\n animation.tweens[index].run(1);\n }\n\n // Resolve when we played the last frame; otherwise, reject\n if (gotoEnd) {\n deferred.notifyWith(elem, [animation, 1, 0]);\n deferred.resolveWith(elem, [animation, gotoEnd]);\n } else {\n deferred.rejectWith(elem, [animation, gotoEnd]);\n }\n return this;\n }\n }),\n props = animation.props;\n propFilter(props, animation.opts.specialEasing);\n for (; index < length; index++) {\n result = Animation.prefilters[index].call(animation, elem, props, animation.opts);\n if (result) {\n if (isFunction(result.stop)) {\n jQuery._queueHooks(animation.elem, animation.opts.queue).stop = result.stop.bind(result);\n }\n return result;\n }\n }\n jQuery.map(props, createTween, animation);\n if (isFunction(animation.opts.start)) {\n animation.opts.start.call(elem, animation);\n }\n\n // Attach callbacks from options\n animation.progress(animation.opts.progress).done(animation.opts.done, animation.opts.complete).fail(animation.opts.fail).always(animation.opts.always);\n jQuery.fx.timer(jQuery.extend(tick, {\n elem: elem,\n anim: animation,\n queue: animation.opts.queue\n }));\n return animation;\n }\n jQuery.Animation = jQuery.extend(Animation, {\n tweeners: {\n \"*\": [function (prop, value) {\n var tween = this.createTween(prop, value);\n adjustCSS(tween.elem, prop, rcssNum.exec(value), tween);\n return tween;\n }]\n },\n tweener: function (props, callback) {\n if (isFunction(props)) {\n callback = props;\n props = [\"*\"];\n } else {\n props = props.match(rnothtmlwhite);\n }\n var prop,\n index = 0,\n length = props.length;\n for (; index < length; index++) {\n prop = props[index];\n Animation.tweeners[prop] = Animation.tweeners[prop] || [];\n Animation.tweeners[prop].unshift(callback);\n }\n },\n prefilters: [defaultPrefilter],\n prefilter: function (callback, prepend) {\n if (prepend) {\n Animation.prefilters.unshift(callback);\n } else {\n Animation.prefilters.push(callback);\n }\n }\n });\n jQuery.speed = function (speed, easing, fn) {\n var opt = speed && typeof speed === \"object\" ? jQuery.extend({}, speed) : {\n complete: fn || !fn && easing || isFunction(speed) && speed,\n duration: speed,\n easing: fn && easing || easing && !isFunction(easing) && easing\n };\n\n // Go to the end state if fx are off\n if (jQuery.fx.off) {\n opt.duration = 0;\n } else {\n if (typeof opt.duration !== \"number\") {\n if (opt.duration in jQuery.fx.speeds) {\n opt.duration = jQuery.fx.speeds[opt.duration];\n } else {\n opt.duration = jQuery.fx.speeds._default;\n }\n }\n }\n\n // Normalize opt.queue - true/undefined/null -> \"fx\"\n if (opt.queue == null || opt.queue === true) {\n opt.queue = \"fx\";\n }\n\n // Queueing\n opt.old = opt.complete;\n opt.complete = function () {\n if (isFunction(opt.old)) {\n opt.old.call(this);\n }\n if (opt.queue) {\n jQuery.dequeue(this, opt.queue);\n }\n };\n return opt;\n };\n jQuery.fn.extend({\n fadeTo: function (speed, to, easing, callback) {\n // Show any hidden elements after setting opacity to 0\n return this.filter(isHiddenWithinTree).css(\"opacity\", 0).show()\n\n // Animate to the value specified\n .end().animate({\n opacity: to\n }, speed, easing, callback);\n },\n animate: function (prop, speed, easing, callback) {\n var empty = jQuery.isEmptyObject(prop),\n optall = jQuery.speed(speed, easing, callback),\n doAnimation = function () {\n // Operate on a copy of prop so per-property easing won't be lost\n var anim = Animation(this, jQuery.extend({}, prop), optall);\n\n // Empty animations, or finishing resolves immediately\n if (empty || dataPriv.get(this, \"finish\")) {\n anim.stop(true);\n }\n };\n doAnimation.finish = doAnimation;\n return empty || optall.queue === false ? this.each(doAnimation) : this.queue(optall.queue, doAnimation);\n },\n stop: function (type, clearQueue, gotoEnd) {\n var stopQueue = function (hooks) {\n var stop = hooks.stop;\n delete hooks.stop;\n stop(gotoEnd);\n };\n if (typeof type !== \"string\") {\n gotoEnd = clearQueue;\n clearQueue = type;\n type = undefined;\n }\n if (clearQueue) {\n this.queue(type || \"fx\", []);\n }\n return this.each(function () {\n var dequeue = true,\n index = type != null && type + \"queueHooks\",\n timers = jQuery.timers,\n data = dataPriv.get(this);\n if (index) {\n if (data[index] && data[index].stop) {\n stopQueue(data[index]);\n }\n } else {\n for (index in data) {\n if (data[index] && data[index].stop && rrun.test(index)) {\n stopQueue(data[index]);\n }\n }\n }\n for (index = timers.length; index--;) {\n if (timers[index].elem === this && (type == null || timers[index].queue === type)) {\n timers[index].anim.stop(gotoEnd);\n dequeue = false;\n timers.splice(index, 1);\n }\n }\n\n // Start the next in the queue if the last step wasn't forced.\n // Timers currently will call their complete callbacks, which\n // will dequeue but only if they were gotoEnd.\n if (dequeue || !gotoEnd) {\n jQuery.dequeue(this, type);\n }\n });\n },\n finish: function (type) {\n if (type !== false) {\n type = type || \"fx\";\n }\n return this.each(function () {\n var index,\n data = dataPriv.get(this),\n queue = data[type + \"queue\"],\n hooks = data[type + \"queueHooks\"],\n timers = jQuery.timers,\n length = queue ? queue.length : 0;\n\n // Enable finishing flag on private data\n data.finish = true;\n\n // Empty the queue first\n jQuery.queue(this, type, []);\n if (hooks && hooks.stop) {\n hooks.stop.call(this, true);\n }\n\n // Look for any active animations, and finish them\n for (index = timers.length; index--;) {\n if (timers[index].elem === this && timers[index].queue === type) {\n timers[index].anim.stop(true);\n timers.splice(index, 1);\n }\n }\n\n // Look for any animations in the old queue and finish them\n for (index = 0; index < length; index++) {\n if (queue[index] && queue[index].finish) {\n queue[index].finish.call(this);\n }\n }\n\n // Turn off finishing flag\n delete data.finish;\n });\n }\n });\n jQuery.each([\"toggle\", \"show\", \"hide\"], function (_i, name) {\n var cssFn = jQuery.fn[name];\n jQuery.fn[name] = function (speed, easing, callback) {\n return speed == null || typeof speed === \"boolean\" ? cssFn.apply(this, arguments) : this.animate(genFx(name, true), speed, easing, callback);\n };\n });\n\n // Generate shortcuts for custom animations\n jQuery.each({\n slideDown: genFx(\"show\"),\n slideUp: genFx(\"hide\"),\n slideToggle: genFx(\"toggle\"),\n fadeIn: {\n opacity: \"show\"\n },\n fadeOut: {\n opacity: \"hide\"\n },\n fadeToggle: {\n opacity: \"toggle\"\n }\n }, function (name, props) {\n jQuery.fn[name] = function (speed, easing, callback) {\n return this.animate(props, speed, easing, callback);\n };\n });\n jQuery.timers = [];\n jQuery.fx.tick = function () {\n var timer,\n i = 0,\n timers = jQuery.timers;\n fxNow = Date.now();\n for (; i < timers.length; i++) {\n timer = timers[i];\n\n // Run the timer and safely remove it when done (allowing for external removal)\n if (!timer() && timers[i] === timer) {\n timers.splice(i--, 1);\n }\n }\n if (!timers.length) {\n jQuery.fx.stop();\n }\n fxNow = undefined;\n };\n jQuery.fx.timer = function (timer) {\n jQuery.timers.push(timer);\n jQuery.fx.start();\n };\n jQuery.fx.interval = 13;\n jQuery.fx.start = function () {\n if (inProgress) {\n return;\n }\n inProgress = true;\n schedule();\n };\n jQuery.fx.stop = function () {\n inProgress = null;\n };\n jQuery.fx.speeds = {\n slow: 600,\n fast: 200,\n // Default speed\n _default: 400\n };\n return jQuery;\n});","define([\"../var/pnum\"], function (pnum) {\n \"use strict\";\n\n return new RegExp(\"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\");\n});","define(function () {\n \"use strict\";\n\n return [\"Top\", \"Right\", \"Bottom\", \"Left\"];\n});","define(function () {\n \"use strict\";\n\n return /^(?:checkbox|radio)$/i;\n});","define([\"../../var/pnum\"], function (pnum) {\n \"use strict\";\n\n return new RegExp(\"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\");\n});","define([\"../core\", \"../var/document\", \"../var/documentElement\", \"../var/support\"], function (jQuery, document, documentElement, support) {\n \"use strict\";\n\n (function () {\n // Executing both pixelPosition & boxSizingReliable tests require only one layout\n // so they're executed at the same time to save the second computation.\n function computeStyleTests() {\n // This is a singleton, we need to execute it only once\n if (!div) {\n return;\n }\n container.style.cssText = \"position:absolute;left:-11111px;width:60px;\" + \"margin-top:1px;padding:0;border:0\";\n div.style.cssText = \"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" + \"margin:auto;border:1px;padding:1px;\" + \"width:60%;top:1%\";\n documentElement.appendChild(container).appendChild(div);\n var divStyle = window.getComputedStyle(div);\n pixelPositionVal = divStyle.top !== \"1%\";\n\n // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n reliableMarginLeftVal = roundPixelMeasures(divStyle.marginLeft) === 12;\n\n // Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n // Some styles come back with percentage values, even though they shouldn't\n div.style.right = \"60%\";\n pixelBoxStylesVal = roundPixelMeasures(divStyle.right) === 36;\n\n // Support: IE 9 - 11 only\n // Detect misreporting of content dimensions for box-sizing:border-box elements\n boxSizingReliableVal = roundPixelMeasures(divStyle.width) === 36;\n\n // Support: IE 9 only\n // Detect overflow:scroll screwiness (gh-3699)\n // Support: Chrome <=64\n // Don't get tricked when zoom affects offsetWidth (gh-4029)\n div.style.position = \"absolute\";\n scrollboxSizeVal = roundPixelMeasures(div.offsetWidth / 3) === 12;\n documentElement.removeChild(container);\n\n // Nullify the div so it wouldn't be stored in the memory and\n // it will also be a sign that checks already performed\n div = null;\n }\n function roundPixelMeasures(measure) {\n return Math.round(parseFloat(measure));\n }\n var pixelPositionVal,\n boxSizingReliableVal,\n scrollboxSizeVal,\n pixelBoxStylesVal,\n reliableTrDimensionsVal,\n reliableMarginLeftVal,\n container = document.createElement(\"div\"),\n div = document.createElement(\"div\");\n\n // Finish early in limited (non-browser) environments\n if (!div.style) {\n return;\n }\n\n // Support: IE <=9 - 11 only\n // Style of cloned element affects source element cloned (trac-8908)\n div.style.backgroundClip = \"content-box\";\n div.cloneNode(true).style.backgroundClip = \"\";\n support.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n jQuery.extend(support, {\n boxSizingReliable: function () {\n computeStyleTests();\n return boxSizingReliableVal;\n },\n pixelBoxStyles: function () {\n computeStyleTests();\n return pixelBoxStylesVal;\n },\n pixelPosition: function () {\n computeStyleTests();\n return pixelPositionVal;\n },\n reliableMarginLeft: function () {\n computeStyleTests();\n return reliableMarginLeftVal;\n },\n scrollboxSize: function () {\n computeStyleTests();\n return scrollboxSizeVal;\n },\n // Support: IE 9 - 11+, Edge 15 - 18+\n // IE/Edge misreport `getComputedStyle` of table rows with width/height\n // set in CSS while `offset*` properties report correct values.\n // Behavior in IE 9 is more subtle than in newer versions & it passes\n // some versions of this test; make sure not to make it pass there!\n //\n // Support: Firefox 70+\n // Only Firefox includes border widths\n // in computed dimensions. (gh-4529)\n reliableTrDimensions: function () {\n var table, tr, trChild, trStyle;\n if (reliableTrDimensionsVal == null) {\n table = document.createElement(\"table\");\n tr = document.createElement(\"tr\");\n trChild = document.createElement(\"div\");\n table.style.cssText = \"position:absolute;left:-11111px;border-collapse:separate\";\n tr.style.cssText = \"box-sizing:content-box;border:1px solid\";\n\n // Support: Chrome 86+\n // Height set through cssText does not get applied.\n // Computed height then comes back as 0.\n tr.style.height = \"1px\";\n trChild.style.height = \"9px\";\n\n // Support: Android 8 Chrome 86+\n // In our bodyBackground.html iframe,\n // display for all div elements is set to \"inline\",\n // which causes a problem only in Android 8 Chrome 86.\n // Ensuring the div is `display: block`\n // gets around this issue.\n trChild.style.display = \"block\";\n documentElement.appendChild(table).appendChild(tr).appendChild(trChild);\n trStyle = window.getComputedStyle(tr);\n reliableTrDimensionsVal = parseInt(trStyle.height, 10) + parseInt(trStyle.borderTopWidth, 10) + parseInt(trStyle.borderBottomWidth, 10) === tr.offsetHeight;\n documentElement.removeChild(table);\n }\n return reliableTrDimensionsVal;\n }\n });\n })();\n return support;\n});","define([\"../var/document\", \"../var/support\"], function (document, support) {\n \"use strict\";\n\n (function () {\n var input = document.createElement(\"input\"),\n select = document.createElement(\"select\"),\n opt = select.appendChild(document.createElement(\"option\"));\n input.type = \"checkbox\";\n\n // Support: Android <=4.3 only\n // Default value for a checkbox should be \"on\"\n support.checkOn = input.value !== \"\";\n\n // Support: IE <=11 only\n // Must access selectedIndex to make default options select\n support.optSelected = opt.selected;\n\n // Support: IE <=11 only\n // An input loses its value after becoming a radio\n input = document.createElement(\"input\");\n input.value = \"t\";\n input.type = \"radio\";\n support.radioValue = input.value === \"t\";\n })();\n return support;\n});","define([\"../var/rnothtmlwhite\"], function (rnothtmlwhite) {\n \"use strict\";\n\n // Strip and collapse whitespace according to HTML spec\n // https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n function stripAndCollapse(value) {\n var tokens = value.match(rnothtmlwhite) || [];\n return tokens.join(\" \");\n }\n return stripAndCollapse;\n});","/*\nUnobtrusive JavaScript\nhttps://github.com/rails/rails/blob/main/actionview/app/assets/javascripts\nReleased under the MIT license\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:not([data-turbo=true])',\n formInputClickSelector: 'form:not([data-turbo=true]) input[type=submit], form:not([data-turbo=true]) input[type=image], form:not([data-turbo=true]) button[type=submit], form:not([data-turbo=true]) 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 Rails.loadCSPNonce = function () {\n var ref;\n return nonce = (ref = document.querySelector(\"meta[name=csp-nonce]\")) != null ? ref.content : void 0;\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 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 expando = '_ujsData';\n Rails.getData = function (element, key) {\n var ref;\n return (ref = element[expando]) != null ? ref[key] : void 0;\n };\n Rails.setData = function (element, key, value) {\n if (element[expando] == null) {\n element[expando] = {};\n }\n return element[expando][key] = value;\n };\n Rails.isContentEditable = function (element) {\n var isEditable;\n isEditable = false;\n while (true) {\n if (element.isContentEditable) {\n isEditable = true;\n break;\n }\n element = element.parentElement;\n if (!element) {\n break;\n }\n }\n return isEditable;\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 csrfToken = Rails.csrfToken = function () {\n var meta;\n meta = document.querySelector('meta[name=csrf-token]');\n return meta && meta.content;\n };\n csrfParam = Rails.csrfParam = function () {\n var meta;\n meta = document.querySelector('meta[name=csrf-param]');\n return meta && meta.content;\n };\n Rails.CSRFProtection = function (xhr) {\n var token;\n token = csrfToken();\n if (token != null) {\n return xhr.setRequestHeader('X-CSRF-Token', token);\n }\n };\n Rails.refreshCSRFTokens = function () {\n var param, token;\n token = csrfToken();\n param = csrfParam();\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 if (typeof CustomEvent !== 'function') {\n CustomEvent = function (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 CustomEvent.prototype = window.Event.prototype;\n preventDefault = CustomEvent.prototype.preventDefault;\n CustomEvent.prototype.preventDefault = function () {\n var result;\n result = preventDefault.call(this);\n if (this.cancelable && !this.defaultPrevented) {\n Object.defineProperty(this, 'defaultPrevented', {\n get: function () {\n return true;\n }\n });\n }\n return result;\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 Rails.stopEverything = function (e) {\n fire(e.target, 'ujs:everythingStopped');\n e.preventDefault();\n e.stopPropagation();\n return e.stopImmediatePropagation();\n };\n Rails.delegate = function (element, selector, eventType, handler) {\n return element.addEventListener(eventType, function (e) {\n var target;\n target = e.target;\n while (!(!(target instanceof Element) || matches(target, selector))) {\n target = target.parentNode;\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 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 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 return typeof options.complete === \"function\" ? options.complete(xhr, xhr.statusText) : void 0;\n });\n if (options.beforeSend != null && !options.beforeSend(xhr, options)) {\n return false;\n }\n if (xhr.readyState === XMLHttpRequest.OPENED) {\n return xhr.send(options.data);\n }\n };\n prepareOptions = function (options) {\n options.url = options.url || location.href;\n options.type = options.type.toUpperCase();\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 if (AcceptHeaders[options.dataType] == null) {\n options.dataType = '*';\n }\n options.accept = AcceptHeaders[options.dataType];\n if (options.dataType !== '*') {\n options.accept += ', */*; q=0.01';\n }\n return options;\n };\n createXHR = function (options, done) {\n var xhr;\n xhr = new XMLHttpRequest();\n xhr.open(options.type, options.url, true);\n xhr.setRequestHeader('Accept', options.accept);\n if (typeof options.data === 'string') {\n xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');\n }\n if (!options.crossDomain) {\n xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n CSRFProtection(xhr);\n }\n xhr.withCredentials = !!options.withCredentials;\n xhr.onreadystatechange = function () {\n if (xhr.readyState === XMLHttpRequest.DONE) {\n return done(xhr);\n }\n };\n return xhr;\n };\n processResponse = function (response, type) {\n var parser, script;\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 try {\n response = parser.parseFromString(response, type);\n } catch (error) {}\n }\n }\n return response;\n };\n Rails.href = function (element) {\n return element.href;\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 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 toArray = function (e) {\n return Array.prototype.slice.call(e);\n };\n Rails.serializeElement = function (element, additionalParam) {\n var inputs, params;\n inputs = [element];\n if (matches(element, 'form')) {\n inputs = toArray(element.elements);\n }\n params = [];\n inputs.forEach(function (input) {\n if (!input.name || input.disabled) {\n return;\n }\n if (matches(input, 'fieldset[disabled] *')) {\n return;\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 if (additionalParam) {\n params.push(additionalParam);\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 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 Rails.handleConfirm = function (e) {\n if (!allowAction(this)) {\n return stopEverything(e);\n }\n };\n Rails.confirm = function (message, element) {\n return confirm(message);\n };\n allowAction = function (element) {\n var answer, callback, message;\n message = element.getAttribute('data-confirm');\n if (!message) {\n return true;\n }\n answer = false;\n if (fire(element, 'confirm')) {\n try {\n answer = Rails.confirm(message, element);\n } catch (error) {}\n callback = fire(element, 'confirm:complete', [answer]);\n }\n return answer && callback;\n };\n }).call(this);\n (function () {\n var disableFormElement, disableFormElements, disableLinkElement, enableFormElement, enableFormElements, enableLinkElement, formElements, getData, isContentEditable, isXhrRedirect, matches, setData, stopEverything;\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, stopEverything = Rails.stopEverything, formElements = Rails.formElements, isContentEditable = Rails.isContentEditable;\n Rails.handleDisabledElement = function (e) {\n var element;\n element = this;\n if (element.disabled) {\n return stopEverything(e);\n }\n };\n Rails.enableElement = function (e) {\n var element;\n if (e instanceof Event) {\n if (isXhrRedirect(e)) {\n return;\n }\n element = e.target;\n } else {\n element = e;\n }\n if (isContentEditable(element)) {\n return;\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 Rails.disableElement = function (e) {\n var element;\n element = e instanceof Event ? e.target : e;\n if (isContentEditable(element)) {\n return;\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 disableLinkElement = function (element) {\n var replacement;\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n replacement = element.getAttribute('data-disable-with');\n if (replacement != null) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n }\n element.addEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', true);\n };\n enableLinkElement = function (element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n if (originalText != null) {\n element.innerHTML = originalText;\n setData(element, 'ujs:enable-with', null);\n }\n element.removeEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', null);\n };\n disableFormElements = function (form) {\n return formElements(form, Rails.formDisableSelector).forEach(disableFormElement);\n };\n disableFormElement = function (element) {\n var replacement;\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n replacement = element.getAttribute('data-disable-with');\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 element.disabled = true;\n return setData(element, 'ujs:disabled', true);\n };\n enableFormElements = function (form) {\n return formElements(form, Rails.formEnableSelector).forEach(enableFormElement);\n };\n enableFormElement = function (element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n if (originalText != null) {\n if (matches(element, 'button')) {\n element.innerHTML = originalText;\n } else {\n element.value = originalText;\n }\n setData(element, 'ujs:enable-with', null);\n }\n element.disabled = false;\n return setData(element, 'ujs:disabled', null);\n };\n isXhrRedirect = function (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 isContentEditable, stopEverything;\n stopEverything = Rails.stopEverything;\n isContentEditable = Rails.isContentEditable;\n Rails.handleMethod = function (e) {\n var csrfParam, csrfToken, form, formContent, href, link, method;\n link = this;\n method = link.getAttribute('data-method');\n if (!method) {\n return;\n }\n if (isContentEditable(this)) {\n return;\n }\n href = Rails.href(link);\n csrfToken = Rails.csrfToken();\n csrfParam = Rails.csrfParam();\n form = document.createElement('form');\n formContent = \"\";\n if (csrfParam != null && csrfToken != null && !Rails.isCrossDomain(href)) {\n formContent += \"\";\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 isContentEditable,\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, isContentEditable = Rails.isContentEditable;\n isRemote = function (element) {\n var value;\n value = element.getAttribute('data-remote');\n return value != null && value !== 'false';\n };\n Rails.handleRemote = function (e) {\n var button, data, dataType, element, method, url, withCredentials;\n element = this;\n if (!isRemote(element)) {\n return true;\n }\n if (!fire(element, 'ajax:before')) {\n fire(element, 'ajax:stopped');\n return false;\n }\n if (isContentEditable(element)) {\n fire(element, 'ajax:stopped');\n return false;\n }\n withCredentials = element.getAttribute('data-with-credentials');\n dataType = element.getAttribute('data-type') || 'script';\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 if (method.toUpperCase() === 'GET') {\n url = url.replace(/\\?.*$/, '');\n }\n if (element.enctype === 'multipart/form-data') {\n data = new FormData(element);\n if (button != null) {\n data.append(button.name, button.value);\n }\n } else {\n data = serializeElement(element, button);\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 ajax({\n type: method || 'GET',\n url: url,\n data: data,\n dataType: dataType,\n beforeSend: function (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 () {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:success', args);\n },\n error: function () {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:error', args);\n },\n complete: function () {\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 Rails.formSubmitButtonClick = function (e) {\n var button, form;\n button = this;\n form = button.form;\n if (!form) {\n return;\n }\n if (button.name) {\n setData(form, 'ujs:submit-button', {\n name: button.name,\n value: button.value\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 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 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 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 jQuery.rails = Rails;\n jQuery.ajaxPrefilter(function (options, originalOptions, xhr) {\n if (!options.crossDomain) {\n return CSRFProtection(xhr);\n }\n });\n }\n Rails.start = function () {\n if (window._rails_loaded) {\n throw new Error('rails-ujs has already been loaded!');\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 if (window.Rails === Rails && fire(document, 'rails:attachBindings')) {\n Rails.start();\n }\n }).call(this);\n }).call(this);\n if (typeof module === \"object\" && module.exports) {\n module.exports = Rails;\n } else if (typeof define === \"function\" && define.amd) {\n define(Rails);\n }\n}).call(this);","(function (global, factory) {\n typeof exports === \"object\" && typeof module !== \"undefined\" ? factory(exports) : typeof define === \"function\" && define.amd ? define([\"exports\"], factory) : factory(global.ActiveStorage = {});\n})(this, function (exports) {\n \"use strict\";\n\n function createCommonjsModule(fn, module) {\n return module = {\n exports: {}\n }, fn(module, module.exports), module.exports;\n }\n var sparkMd5 = createCommonjsModule(function (module, exports) {\n (function (factory) {\n {\n module.exports = factory();\n }\n })(function (undefined) {\n var hex_chr = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\"];\n function md5cycle(x, k) {\n var a = x[0],\n b = x[1],\n c = x[2],\n d = x[3];\n a += (b & c | ~b & d) + k[0] - 680876936 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[1] - 389564586 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[2] + 606105819 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[3] - 1044525330 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[4] - 176418897 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[5] + 1200080426 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[6] - 1473231341 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[7] - 45705983 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[8] + 1770035416 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[9] - 1958414417 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[10] - 42063 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[11] - 1990404162 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[12] + 1804603682 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[13] - 40341101 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[14] - 1502002290 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[15] + 1236535329 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & d | c & ~d) + k[1] - 165796510 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[6] - 1069501632 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[11] + 643717713 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[0] - 373897302 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[5] - 701558691 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[10] + 38016083 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[15] - 660478335 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[4] - 405537848 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[9] + 568446438 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[14] - 1019803690 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[3] - 187363961 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[8] + 1163531501 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[13] - 1444681467 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[2] - 51403784 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[7] + 1735328473 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[12] - 1926607734 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b ^ c ^ d) + k[5] - 378558 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[8] - 2022574463 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[11] + 1839030562 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[14] - 35309556 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[1] - 1530992060 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[4] + 1272893353 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[7] - 155497632 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[10] - 1094730640 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[13] + 681279174 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[0] - 358537222 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[3] - 722521979 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[6] + 76029189 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[9] - 640364487 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[12] - 421815835 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[15] + 530742520 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[2] - 995338651 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (c ^ (b | ~d)) + k[0] - 198630844 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[7] + 1126891415 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[14] - 1416354905 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[5] - 57434055 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[12] + 1700485571 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[3] - 1894986606 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[10] - 1051523 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[1] - 2054922799 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[8] + 1873313359 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[15] - 30611744 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[6] - 1560198380 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[13] + 1309151649 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[4] - 145523070 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[11] - 1120210379 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[2] + 718787259 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[9] - 343485551 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n x[0] = a + x[0] | 0;\n x[1] = b + x[1] | 0;\n x[2] = c + x[2] | 0;\n x[3] = d + x[3] | 0;\n }\n function md5blk(s) {\n var md5blks = [],\n i;\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) << 24);\n }\n return md5blks;\n }\n function md5blk_array(a) {\n var md5blks = [],\n i;\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = a[i] + (a[i + 1] << 8) + (a[i + 2] << 16) + (a[i + 3] << 24);\n }\n return md5blks;\n }\n function md51(s) {\n var n = s.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk(s.substring(i - 64, i)));\n }\n s = s.substring(i - 64);\n length = s.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= s.charCodeAt(i) << (i % 4 << 3);\n }\n tail[i >> 2] |= 128 << (i % 4 << 3);\n if (i > 55) {\n md5cycle(state, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n function md51_array(a) {\n var n = a.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk_array(a.subarray(i - 64, i)));\n }\n a = i - 64 < n ? a.subarray(i - 64) : new Uint8Array(0);\n length = a.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= a[i] << (i % 4 << 3);\n }\n tail[i >> 2] |= 128 << (i % 4 << 3);\n if (i > 55) {\n md5cycle(state, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n function rhex(n) {\n var s = \"\",\n j;\n for (j = 0; j < 4; j += 1) {\n s += hex_chr[n >> j * 8 + 4 & 15] + hex_chr[n >> j * 8 & 15];\n }\n return s;\n }\n function hex(x) {\n var i;\n for (i = 0; i < x.length; i += 1) {\n x[i] = rhex(x[i]);\n }\n return x.join(\"\");\n }\n if (hex(md51(\"hello\")) !== \"5d41402abc4b2a76b9719d911017c592\") ;\n if (typeof ArrayBuffer !== \"undefined\" && !ArrayBuffer.prototype.slice) {\n (function () {\n function clamp(val, length) {\n val = val | 0 || 0;\n if (val < 0) {\n return Math.max(val + length, 0);\n }\n return Math.min(val, length);\n }\n ArrayBuffer.prototype.slice = function (from, to) {\n var length = this.byteLength,\n begin = clamp(from, length),\n end = length,\n num,\n target,\n targetArray,\n sourceArray;\n if (to !== undefined) {\n end = clamp(to, length);\n }\n if (begin > end) {\n return new ArrayBuffer(0);\n }\n num = end - begin;\n target = new ArrayBuffer(num);\n targetArray = new Uint8Array(target);\n sourceArray = new Uint8Array(this, begin, num);\n targetArray.set(sourceArray);\n return target;\n };\n })();\n }\n function toUtf8(str) {\n if (/[\\u0080-\\uFFFF]/.test(str)) {\n str = unescape(encodeURIComponent(str));\n }\n return str;\n }\n function utf8Str2ArrayBuffer(str, returnUInt8Array) {\n var length = str.length,\n buff = new ArrayBuffer(length),\n arr = new Uint8Array(buff),\n i;\n for (i = 0; i < length; i += 1) {\n arr[i] = str.charCodeAt(i);\n }\n return returnUInt8Array ? arr : buff;\n }\n function arrayBuffer2Utf8Str(buff) {\n return String.fromCharCode.apply(null, new Uint8Array(buff));\n }\n function concatenateArrayBuffers(first, second, returnUInt8Array) {\n var result = new Uint8Array(first.byteLength + second.byteLength);\n result.set(new Uint8Array(first));\n result.set(new Uint8Array(second), first.byteLength);\n return returnUInt8Array ? result : result.buffer;\n }\n function hexToBinaryString(hex) {\n var bytes = [],\n length = hex.length,\n x;\n for (x = 0; x < length - 1; x += 2) {\n bytes.push(parseInt(hex.substr(x, 2), 16));\n }\n return String.fromCharCode.apply(String, bytes);\n }\n function SparkMD5() {\n this.reset();\n }\n SparkMD5.prototype.append = function (str) {\n this.appendBinary(toUtf8(str));\n return this;\n };\n SparkMD5.prototype.appendBinary = function (contents) {\n this._buff += contents;\n this._length += contents.length;\n var length = this._buff.length,\n i;\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk(this._buff.substring(i - 64, i)));\n }\n this._buff = this._buff.substring(i - 64);\n return this;\n };\n SparkMD5.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n i,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n ret;\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff.charCodeAt(i) << (i % 4 << 3);\n }\n this._finish(tail, length);\n ret = hex(this._hash);\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n this.reset();\n return ret;\n };\n SparkMD5.prototype.reset = function () {\n this._buff = \"\";\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n return this;\n };\n SparkMD5.prototype.getState = function () {\n return {\n buff: this._buff,\n length: this._length,\n hash: this._hash\n };\n };\n SparkMD5.prototype.setState = function (state) {\n this._buff = state.buff;\n this._length = state.length;\n this._hash = state.hash;\n return this;\n };\n SparkMD5.prototype.destroy = function () {\n delete this._hash;\n delete this._buff;\n delete this._length;\n };\n SparkMD5.prototype._finish = function (tail, length) {\n var i = length,\n tmp,\n lo,\n hi;\n tail[i >> 2] |= 128 << (i % 4 << 3);\n if (i > 55) {\n md5cycle(this._hash, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n tmp = this._length * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(this._hash, tail);\n };\n SparkMD5.hash = function (str, raw) {\n return SparkMD5.hashBinary(toUtf8(str), raw);\n };\n SparkMD5.hashBinary = function (content, raw) {\n var hash = md51(content),\n ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n SparkMD5.ArrayBuffer = function () {\n this.reset();\n };\n SparkMD5.ArrayBuffer.prototype.append = function (arr) {\n var buff = concatenateArrayBuffers(this._buff.buffer, arr, true),\n length = buff.length,\n i;\n this._length += arr.byteLength;\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk_array(buff.subarray(i - 64, i)));\n }\n this._buff = i - 64 < length ? new Uint8Array(buff.buffer.slice(i - 64)) : new Uint8Array(0);\n return this;\n };\n SparkMD5.ArrayBuffer.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n i,\n ret;\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff[i] << (i % 4 << 3);\n }\n this._finish(tail, length);\n ret = hex(this._hash);\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n this.reset();\n return ret;\n };\n SparkMD5.ArrayBuffer.prototype.reset = function () {\n this._buff = new Uint8Array(0);\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n return this;\n };\n SparkMD5.ArrayBuffer.prototype.getState = function () {\n var state = SparkMD5.prototype.getState.call(this);\n state.buff = arrayBuffer2Utf8Str(state.buff);\n return state;\n };\n SparkMD5.ArrayBuffer.prototype.setState = function (state) {\n state.buff = utf8Str2ArrayBuffer(state.buff, true);\n return SparkMD5.prototype.setState.call(this, state);\n };\n SparkMD5.ArrayBuffer.prototype.destroy = SparkMD5.prototype.destroy;\n SparkMD5.ArrayBuffer.prototype._finish = SparkMD5.prototype._finish;\n SparkMD5.ArrayBuffer.hash = function (arr, raw) {\n var hash = md51_array(new Uint8Array(arr)),\n ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n return SparkMD5;\n });\n });\n var classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n };\n var createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n var fileSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice;\n var FileChecksum = function () {\n createClass(FileChecksum, null, [{\n key: \"create\",\n value: function create(file, callback) {\n var instance = new FileChecksum(file);\n instance.create(callback);\n }\n }]);\n function FileChecksum(file) {\n classCallCheck(this, FileChecksum);\n this.file = file;\n this.chunkSize = 2097152;\n this.chunkCount = Math.ceil(this.file.size / this.chunkSize);\n this.chunkIndex = 0;\n }\n createClass(FileChecksum, [{\n key: \"create\",\n value: function create(callback) {\n var _this = this;\n this.callback = callback;\n this.md5Buffer = new sparkMd5.ArrayBuffer();\n this.fileReader = new FileReader();\n this.fileReader.addEventListener(\"load\", function (event) {\n return _this.fileReaderDidLoad(event);\n });\n this.fileReader.addEventListener(\"error\", function (event) {\n return _this.fileReaderDidError(event);\n });\n this.readNextChunk();\n }\n }, {\n key: \"fileReaderDidLoad\",\n value: function fileReaderDidLoad(event) {\n this.md5Buffer.append(event.target.result);\n if (!this.readNextChunk()) {\n var binaryDigest = this.md5Buffer.end(true);\n var base64digest = btoa(binaryDigest);\n this.callback(null, base64digest);\n }\n }\n }, {\n key: \"fileReaderDidError\",\n value: function fileReaderDidError(event) {\n this.callback(\"Error reading \" + this.file.name);\n }\n }, {\n key: \"readNextChunk\",\n value: function readNextChunk() {\n if (this.chunkIndex < this.chunkCount || this.chunkIndex == 0 && this.chunkCount == 0) {\n var start = this.chunkIndex * this.chunkSize;\n var end = Math.min(start + this.chunkSize, this.file.size);\n var bytes = fileSlice.call(this.file, start, end);\n this.fileReader.readAsArrayBuffer(bytes);\n this.chunkIndex++;\n return true;\n } else {\n return false;\n }\n }\n }]);\n return FileChecksum;\n }();\n function getMetaValue(name) {\n var element = findElement(document.head, 'meta[name=\"' + name + '\"]');\n if (element) {\n return element.getAttribute(\"content\");\n }\n }\n function findElements(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n var elements = root.querySelectorAll(selector);\n return toArray$1(elements);\n }\n function findElement(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n return root.querySelector(selector);\n }\n function dispatchEvent(element, type) {\n var eventInit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var disabled = element.disabled;\n var bubbles = eventInit.bubbles,\n cancelable = eventInit.cancelable,\n detail = eventInit.detail;\n var event = document.createEvent(\"Event\");\n event.initEvent(type, bubbles || true, cancelable || true);\n event.detail = detail || {};\n try {\n element.disabled = false;\n element.dispatchEvent(event);\n } finally {\n element.disabled = disabled;\n }\n return event;\n }\n function toArray$1(value) {\n if (Array.isArray(value)) {\n return value;\n } else if (Array.from) {\n return Array.from(value);\n } else {\n return [].slice.call(value);\n }\n }\n var BlobRecord = function () {\n function BlobRecord(file, checksum, url) {\n var _this = this;\n classCallCheck(this, BlobRecord);\n this.file = file;\n this.attributes = {\n filename: file.name,\n content_type: file.type || \"application/octet-stream\",\n byte_size: file.size,\n checksum: checksum\n };\n this.xhr = new XMLHttpRequest();\n this.xhr.open(\"POST\", url, true);\n this.xhr.responseType = \"json\";\n this.xhr.setRequestHeader(\"Content-Type\", \"application/json\");\n this.xhr.setRequestHeader(\"Accept\", \"application/json\");\n this.xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n var csrfToken = getMetaValue(\"csrf-token\");\n if (csrfToken != undefined) {\n this.xhr.setRequestHeader(\"X-CSRF-Token\", csrfToken);\n }\n this.xhr.addEventListener(\"load\", function (event) {\n return _this.requestDidLoad(event);\n });\n this.xhr.addEventListener(\"error\", function (event) {\n return _this.requestDidError(event);\n });\n }\n createClass(BlobRecord, [{\n key: \"create\",\n value: function create(callback) {\n this.callback = callback;\n this.xhr.send(JSON.stringify({\n blob: this.attributes\n }));\n }\n }, {\n key: \"requestDidLoad\",\n value: function requestDidLoad(event) {\n if (this.status >= 200 && this.status < 300) {\n var response = this.response;\n var direct_upload = response.direct_upload;\n delete response.direct_upload;\n this.attributes = response;\n this.directUploadData = direct_upload;\n this.callback(null, this.toJSON());\n } else {\n this.requestDidError(event);\n }\n }\n }, {\n key: \"requestDidError\",\n value: function requestDidError(event) {\n this.callback('Error creating Blob for \"' + this.file.name + '\". Status: ' + this.status);\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var result = {};\n for (var key in this.attributes) {\n result[key] = this.attributes[key];\n }\n return result;\n }\n }, {\n key: \"status\",\n get: function get$$1() {\n return this.xhr.status;\n }\n }, {\n key: \"response\",\n get: function get$$1() {\n var _xhr = this.xhr,\n responseType = _xhr.responseType,\n response = _xhr.response;\n if (responseType == \"json\") {\n return response;\n } else {\n return JSON.parse(response);\n }\n }\n }]);\n return BlobRecord;\n }();\n var BlobUpload = function () {\n function BlobUpload(blob) {\n var _this = this;\n classCallCheck(this, BlobUpload);\n this.blob = blob;\n this.file = blob.file;\n var _blob$directUploadDat = blob.directUploadData,\n url = _blob$directUploadDat.url,\n headers = _blob$directUploadDat.headers;\n this.xhr = new XMLHttpRequest();\n this.xhr.open(\"PUT\", url, true);\n this.xhr.responseType = \"text\";\n for (var key in headers) {\n this.xhr.setRequestHeader(key, headers[key]);\n }\n this.xhr.addEventListener(\"load\", function (event) {\n return _this.requestDidLoad(event);\n });\n this.xhr.addEventListener(\"error\", function (event) {\n return _this.requestDidError(event);\n });\n }\n createClass(BlobUpload, [{\n key: \"create\",\n value: function create(callback) {\n this.callback = callback;\n this.xhr.send(this.file.slice());\n }\n }, {\n key: \"requestDidLoad\",\n value: function requestDidLoad(event) {\n var _xhr = this.xhr,\n status = _xhr.status,\n response = _xhr.response;\n if (status >= 200 && status < 300) {\n this.callback(null, response);\n } else {\n this.requestDidError(event);\n }\n }\n }, {\n key: \"requestDidError\",\n value: function requestDidError(event) {\n this.callback('Error storing \"' + this.file.name + '\". Status: ' + this.xhr.status);\n }\n }]);\n return BlobUpload;\n }();\n var id = 0;\n var DirectUpload = function () {\n function DirectUpload(file, url, delegate) {\n classCallCheck(this, DirectUpload);\n this.id = ++id;\n this.file = file;\n this.url = url;\n this.delegate = delegate;\n }\n createClass(DirectUpload, [{\n key: \"create\",\n value: function create(callback) {\n var _this = this;\n FileChecksum.create(this.file, function (error, checksum) {\n if (error) {\n callback(error);\n return;\n }\n var blob = new BlobRecord(_this.file, checksum, _this.url);\n notify(_this.delegate, \"directUploadWillCreateBlobWithXHR\", blob.xhr);\n blob.create(function (error) {\n if (error) {\n callback(error);\n } else {\n var upload = new BlobUpload(blob);\n notify(_this.delegate, \"directUploadWillStoreFileWithXHR\", upload.xhr);\n upload.create(function (error) {\n if (error) {\n callback(error);\n } else {\n callback(null, blob.toJSON());\n }\n });\n }\n });\n });\n }\n }]);\n return DirectUpload;\n }();\n function notify(object, methodName) {\n if (object && typeof object[methodName] == \"function\") {\n for (var _len = arguments.length, messages = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n messages[_key - 2] = arguments[_key];\n }\n return object[methodName].apply(object, messages);\n }\n }\n var DirectUploadController = function () {\n function DirectUploadController(input, file) {\n classCallCheck(this, DirectUploadController);\n this.input = input;\n this.file = file;\n this.directUpload = new DirectUpload(this.file, this.url, this);\n this.dispatch(\"initialize\");\n }\n createClass(DirectUploadController, [{\n key: \"start\",\n value: function start(callback) {\n var _this = this;\n var hiddenInput = document.createElement(\"input\");\n hiddenInput.type = \"hidden\";\n hiddenInput.name = this.input.name;\n this.input.insertAdjacentElement(\"beforebegin\", hiddenInput);\n this.dispatch(\"start\");\n this.directUpload.create(function (error, attributes) {\n if (error) {\n hiddenInput.parentNode.removeChild(hiddenInput);\n _this.dispatchError(error);\n } else {\n hiddenInput.value = attributes.signed_id;\n }\n _this.dispatch(\"end\");\n callback(error);\n });\n }\n }, {\n key: \"uploadRequestDidProgress\",\n value: function uploadRequestDidProgress(event) {\n var progress = event.loaded / event.total * 100;\n if (progress) {\n this.dispatch(\"progress\", {\n progress: progress\n });\n }\n }\n }, {\n key: \"dispatch\",\n value: function dispatch(name) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n detail.file = this.file;\n detail.id = this.directUpload.id;\n return dispatchEvent(this.input, \"direct-upload:\" + name, {\n detail: detail\n });\n }\n }, {\n key: \"dispatchError\",\n value: function dispatchError(error) {\n var event = this.dispatch(\"error\", {\n error: error\n });\n if (!event.defaultPrevented) {\n alert(error);\n }\n }\n }, {\n key: \"directUploadWillCreateBlobWithXHR\",\n value: function directUploadWillCreateBlobWithXHR(xhr) {\n this.dispatch(\"before-blob-request\", {\n xhr: xhr\n });\n }\n }, {\n key: \"directUploadWillStoreFileWithXHR\",\n value: function directUploadWillStoreFileWithXHR(xhr) {\n var _this2 = this;\n this.dispatch(\"before-storage-request\", {\n xhr: xhr\n });\n xhr.upload.addEventListener(\"progress\", function (event) {\n return _this2.uploadRequestDidProgress(event);\n });\n }\n }, {\n key: \"url\",\n get: function get$$1() {\n return this.input.getAttribute(\"data-direct-upload-url\");\n }\n }]);\n return DirectUploadController;\n }();\n var inputSelector = \"input[type=file][data-direct-upload-url]:not([disabled])\";\n var DirectUploadsController = function () {\n function DirectUploadsController(form) {\n classCallCheck(this, DirectUploadsController);\n this.form = form;\n this.inputs = findElements(form, inputSelector).filter(function (input) {\n return input.files.length;\n });\n }\n createClass(DirectUploadsController, [{\n key: \"start\",\n value: function start(callback) {\n var _this = this;\n var controllers = this.createDirectUploadControllers();\n var startNextController = function startNextController() {\n var controller = controllers.shift();\n if (controller) {\n controller.start(function (error) {\n if (error) {\n callback(error);\n _this.dispatch(\"end\");\n } else {\n startNextController();\n }\n });\n } else {\n callback();\n _this.dispatch(\"end\");\n }\n };\n this.dispatch(\"start\");\n startNextController();\n }\n }, {\n key: \"createDirectUploadControllers\",\n value: function createDirectUploadControllers() {\n var controllers = [];\n this.inputs.forEach(function (input) {\n toArray$1(input.files).forEach(function (file) {\n var controller = new DirectUploadController(input, file);\n controllers.push(controller);\n });\n });\n return controllers;\n }\n }, {\n key: \"dispatch\",\n value: function dispatch(name) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return dispatchEvent(this.form, \"direct-uploads:\" + name, {\n detail: detail\n });\n }\n }]);\n return DirectUploadsController;\n }();\n var processingAttribute = \"data-direct-uploads-processing\";\n var submitButtonsByForm = new WeakMap();\n var started = false;\n function start() {\n if (!started) {\n started = true;\n document.addEventListener(\"click\", didClick, true);\n document.addEventListener(\"submit\", didSubmitForm);\n document.addEventListener(\"ajax:before\", didSubmitRemoteElement);\n }\n }\n function didClick(event) {\n var target = event.target;\n if ((target.tagName == \"INPUT\" || target.tagName == \"BUTTON\") && target.type == \"submit\" && target.form) {\n submitButtonsByForm.set(target.form, target);\n }\n }\n function didSubmitForm(event) {\n handleFormSubmissionEvent(event);\n }\n function didSubmitRemoteElement(event) {\n if (event.target.tagName == \"FORM\") {\n handleFormSubmissionEvent(event);\n }\n }\n function handleFormSubmissionEvent(event) {\n var form = event.target;\n if (form.hasAttribute(processingAttribute)) {\n event.preventDefault();\n return;\n }\n var controller = new DirectUploadsController(form);\n var inputs = controller.inputs;\n if (inputs.length) {\n event.preventDefault();\n form.setAttribute(processingAttribute, \"\");\n inputs.forEach(disable);\n controller.start(function (error) {\n form.removeAttribute(processingAttribute);\n if (error) {\n inputs.forEach(enable);\n } else {\n submitForm(form);\n }\n });\n }\n }\n function submitForm(form) {\n var button = submitButtonsByForm.get(form) || findElement(form, \"input[type=submit], button[type=submit]\");\n if (button) {\n var _button = button,\n disabled = _button.disabled;\n button.disabled = false;\n button.focus();\n button.click();\n button.disabled = disabled;\n } else {\n button = document.createElement(\"input\");\n button.type = \"submit\";\n button.style.display = \"none\";\n form.appendChild(button);\n button.click();\n form.removeChild(button);\n }\n submitButtonsByForm.delete(form);\n }\n function disable(input) {\n input.disabled = true;\n }\n function enable(input) {\n input.disabled = false;\n }\n function autostart() {\n if (window.ActiveStorage) {\n start();\n }\n }\n setTimeout(autostart, 1);\n exports.start = start;\n exports.DirectUpload = DirectUpload;\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n});","define([\"./core\", \"./selector\", \"./traversing\", \"./callbacks\", \"./deferred\", \"./deferred/exceptionHook\", \"./core/ready\", \"./data\", \"./queue\", \"./queue/delay\", \"./attributes\", \"./event\", \"./manipulation\", \"./manipulation/_evalUrl\", \"./wrap\", \"./css\", \"./css/hiddenVisibleSelectors\", \"./serialize\", \"./ajax\", \"./ajax/xhr\", \"./ajax/script\", \"./ajax/jsonp\", \"./ajax/load\", \"./core/parseXML\", \"./core/parseHTML\", \"./effects\", \"./effects/animatedSelector\", \"./offset\", \"./dimensions\", \"./deprecated\", \"./exports/amd\", \"./exports/global\"], function (jQuery) {\n \"use strict\";\n\n return jQuery;\n});","define(function () {\n \"use strict\";\n\n return Object.getPrototypeOf;\n});","define([\"./arr\"], function (arr) {\n \"use strict\";\n\n // Support: IE 9 - 11+, Edge 18+, Android Browser 4.0 - 4.3 only, iOS 7 - 11 only, Safari 11 only,\n // Firefox <= 61 only\n // Provide fallback for browsers without Array#flat.\n return arr.flat ? function (array) {\n return arr.flat.call(array);\n } : function (array) {\n return arr.concat.apply([], array);\n };\n});","define([\"./class2type\"], function (class2type) {\n \"use strict\";\n\n return class2type.toString;\n});","define([\"./hasOwn\"], function (hasOwn) {\n \"use strict\";\n\n return hasOwn.toString;\n});","define([\"../var/document\"], function (document) {\n \"use strict\";\n\n var preservedScriptAttributes = {\n type: true,\n src: true,\n nonce: true,\n noModule: true\n };\n function DOMEval(code, node, doc) {\n doc = doc || document;\n var i,\n val,\n script = doc.createElement(\"script\");\n script.text = code;\n if (node) {\n for (i in preservedScriptAttributes) {\n // Support: Firefox 64+, Edge 18+\n // Some browsers don't support the \"nonce\" property on scripts.\n // On the other hand, just using `getAttribute` is not enough as\n // the `nonce` attribute is reset to an empty string whenever it\n // becomes browsing-context connected.\n // See https://github.com/whatwg/html/issues/2369\n // See https://html.spec.whatwg.org/#nonce-attributes\n // The `node.getAttribute` check was added for the sake of\n // `jQuery.globalEval` so that it can fake a nonce-containing node\n // via an object.\n val = node[i] || node.getAttribute && node.getAttribute(i);\n if (val) {\n script.setAttribute(i, val);\n }\n }\n }\n doc.head.appendChild(script).parentNode.removeChild(script);\n }\n return DOMEval;\n});","define(function () {\n \"use strict\";\n\n // https://www.w3.org/TR/css3-selectors/#whitespace\n return \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\";\n});","define([\"./whitespace\"], function (whitespace) {\n \"use strict\";\n\n return new RegExp(\"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\", \"g\");\n});","define([\"../core\"], function (jQuery) {\n \"use strict\";\n\n // Note: an element does not contain itself\n jQuery.contains = function (a, b) {\n var bup = b && b.parentNode;\n return a === bup || !!(bup && bup.nodeType === 1 && (\n // Support: IE 9 - 11+\n // IE doesn't have `contains` on SVG.\n a.contains ? a.contains(bup) : a.compareDocumentPosition && a.compareDocumentPosition(bup) & 16));\n };\n});","define([\"../../core\", \"../../selector\"], function (jQuery) {\n \"use strict\";\n\n return jQuery.expr.match.needsContext;\n});","define(function () {\n \"use strict\";\n\n // rsingleTag matches a string consisting of a single HTML element with no attributes\n // and captures the element's name\n return /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i;\n});","define([\"../core\", \"../var/indexOf\", \"../var/isFunction\", \"./var/rneedsContext\", \"../selector\"], function (jQuery, indexOf, isFunction, rneedsContext) {\n \"use strict\";\n\n // Implement the identical functionality for filter and not\n function winnow(elements, qualifier, not) {\n if (isFunction(qualifier)) {\n return jQuery.grep(elements, function (elem, i) {\n return !!qualifier.call(elem, i, elem) !== not;\n });\n }\n\n // Single element\n if (qualifier.nodeType) {\n return jQuery.grep(elements, function (elem) {\n return elem === qualifier !== not;\n });\n }\n\n // Arraylike of elements (jQuery, arguments, Array)\n if (typeof qualifier !== \"string\") {\n return jQuery.grep(elements, function (elem) {\n return indexOf.call(qualifier, elem) > -1 !== not;\n });\n }\n\n // Filtered directly for both simple and complex selectors\n return jQuery.filter(qualifier, elements, not);\n }\n jQuery.filter = function (expr, elems, not) {\n var elem = elems[0];\n if (not) {\n expr = \":not(\" + expr + \")\";\n }\n if (elems.length === 1 && elem.nodeType === 1) {\n return jQuery.find.matchesSelector(elem, expr) ? [elem] : [];\n }\n return jQuery.find.matches(expr, jQuery.grep(elems, function (elem) {\n return elem.nodeType === 1;\n }));\n };\n jQuery.fn.extend({\n find: function (selector) {\n var i,\n ret,\n len = this.length,\n self = this;\n if (typeof selector !== \"string\") {\n return this.pushStack(jQuery(selector).filter(function () {\n for (i = 0; i < len; i++) {\n if (jQuery.contains(self[i], this)) {\n return true;\n }\n }\n }));\n }\n ret = this.pushStack([]);\n for (i = 0; i < len; i++) {\n jQuery.find(selector, self[i], ret);\n }\n return len > 1 ? jQuery.uniqueSort(ret) : ret;\n },\n filter: function (selector) {\n return this.pushStack(winnow(this, selector || [], false));\n },\n not: function (selector) {\n return this.pushStack(winnow(this, selector || [], true));\n },\n is: function (selector) {\n return !!winnow(this,\n // If this is a positional/relative selector, check membership in the returned set\n // so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n typeof selector === \"string\" && rneedsContext.test(selector) ? jQuery(selector) : selector || [], false).length;\n }\n });\n});","define([\"../core\", \"../var/document\", \"../core/readyException\", \"../deferred\"], function (jQuery, document) {\n \"use strict\";\n\n // The deferred used on DOM ready\n var readyList = jQuery.Deferred();\n jQuery.fn.ready = function (fn) {\n readyList.then(fn)\n\n // Wrap jQuery.readyException in a function so that the lookup\n // happens at the time of error handling instead of callback\n // registration.\n .catch(function (error) {\n jQuery.readyException(error);\n });\n return this;\n };\n jQuery.extend({\n // Is the DOM ready to be used? Set to true once it occurs.\n isReady: false,\n // A counter to track how many items to wait for before\n // the ready event fires. See trac-6781\n readyWait: 1,\n // Handle when the DOM is ready\n ready: function (wait) {\n // Abort if there are pending holds or we're already ready\n if (wait === true ? --jQuery.readyWait : jQuery.isReady) {\n return;\n }\n\n // Remember that the DOM is ready\n jQuery.isReady = true;\n\n // If a normal DOM Ready event fired, decrement, and wait if need be\n if (wait !== true && --jQuery.readyWait > 0) {\n return;\n }\n\n // If there are functions bound, to execute\n readyList.resolveWith(document, [jQuery]);\n }\n });\n jQuery.ready.then = readyList.then;\n\n // The ready event handler and self cleanup method\n function completed() {\n document.removeEventListener(\"DOMContentLoaded\", completed);\n window.removeEventListener(\"load\", completed);\n jQuery.ready();\n }\n\n // Catch cases where $(document).ready() is called\n // after the browser event has already occurred.\n // Support: IE <=9 - 10 only\n // Older IE sometimes signals \"interactive\" too soon\n if (document.readyState === \"complete\" || document.readyState !== \"loading\" && !document.documentElement.doScroll) {\n // Handle it asynchronously to allow scripts the opportunity to delay ready\n window.setTimeout(jQuery.ready);\n } else {\n // Use the handy event callback\n document.addEventListener(\"DOMContentLoaded\", completed);\n\n // A fallback to window.onload, that will always work\n window.addEventListener(\"load\", completed);\n }\n});","define([\"../core\", \"../core/camelCase\", \"../var/rnothtmlwhite\", \"./var/acceptData\"], function (jQuery, camelCase, rnothtmlwhite, acceptData) {\n \"use strict\";\n\n function Data() {\n this.expando = jQuery.expando + Data.uid++;\n }\n Data.uid = 1;\n Data.prototype = {\n cache: function (owner) {\n // Check if the owner object already has a cache\n var value = owner[this.expando];\n\n // If not, create one\n if (!value) {\n value = {};\n\n // We can accept data for non-element nodes in modern browsers,\n // but we should not, see trac-8335.\n // Always return an empty object.\n if (acceptData(owner)) {\n // If it is a node unlikely to be stringify-ed or looped over\n // use plain assignment\n if (owner.nodeType) {\n owner[this.expando] = value;\n\n // Otherwise secure it in a non-enumerable property\n // configurable must be true to allow the property to be\n // deleted when data is removed\n } else {\n Object.defineProperty(owner, this.expando, {\n value: value,\n configurable: true\n });\n }\n }\n }\n return value;\n },\n set: function (owner, data, value) {\n var prop,\n cache = this.cache(owner);\n\n // Handle: [ owner, key, value ] args\n // Always use camelCase key (gh-2257)\n if (typeof data === \"string\") {\n cache[camelCase(data)] = value;\n\n // Handle: [ owner, { properties } ] args\n } else {\n // Copy the properties one-by-one to the cache object\n for (prop in data) {\n cache[camelCase(prop)] = data[prop];\n }\n }\n return cache;\n },\n get: function (owner, key) {\n return key === undefined ? this.cache(owner) :\n // Always use camelCase key (gh-2257)\n owner[this.expando] && owner[this.expando][camelCase(key)];\n },\n access: function (owner, key, value) {\n // In cases where either:\n //\n // 1. No key was specified\n // 2. A string key was specified, but no value provided\n //\n // Take the \"read\" path and allow the get method to determine\n // which value to return, respectively either:\n //\n // 1. The entire cache object\n // 2. The data stored at the key\n //\n if (key === undefined || key && typeof key === \"string\" && value === undefined) {\n return this.get(owner, key);\n }\n\n // When the key is not a string, or both a key and value\n // are specified, set or extend (existing objects) with either:\n //\n // 1. An object of properties\n // 2. A key and value\n //\n this.set(owner, key, value);\n\n // Since the \"set\" path can have two possible entry points\n // return the expected data based on which path was taken[*]\n return value !== undefined ? value : key;\n },\n remove: function (owner, key) {\n var i,\n cache = owner[this.expando];\n if (cache === undefined) {\n return;\n }\n if (key !== undefined) {\n // Support array or space separated string of keys\n if (Array.isArray(key)) {\n // If key is an array of keys...\n // We always set camelCase keys, so remove that.\n key = key.map(camelCase);\n } else {\n key = camelCase(key);\n\n // If a key with the spaces exists, use it.\n // Otherwise, create an array by matching non-whitespace\n key = key in cache ? [key] : key.match(rnothtmlwhite) || [];\n }\n i = key.length;\n while (i--) {\n delete cache[key[i]];\n }\n }\n\n // Remove the expando if there's no more data\n if (key === undefined || jQuery.isEmptyObject(cache)) {\n // Support: Chrome <=35 - 45\n // Webkit & Blink performance suffers when deleting properties\n // from DOM nodes, so set to undefined instead\n // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n if (owner.nodeType) {\n owner[this.expando] = undefined;\n } else {\n delete owner[this.expando];\n }\n }\n },\n hasData: function (owner) {\n var cache = owner[this.expando];\n return cache !== undefined && !jQuery.isEmptyObject(cache);\n }\n };\n return Data;\n});","define([\"../Data\"], function (Data) {\n \"use strict\";\n\n return new Data();\n});","define(function () {\n \"use strict\";\n\n return /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/.source;\n});","define([\"../../core\", \"../../core/isAttached\"\n\n// css is assumed\n], function (jQuery, isAttached) {\n \"use strict\";\n\n // isHiddenWithinTree reports if an element has a non-\"none\" display style (inline and/or\n // through the CSS cascade), which is useful in deciding whether or not to make it visible.\n // It differs from the :hidden selector (jQuery.expr.pseudos.hidden) in two important ways:\n // * A hidden ancestor does not force an element to be classified as hidden.\n // * Being disconnected from the document does not force an element to be classified as hidden.\n // These differences improve the behavior of .toggle() et al. when applied to elements that are\n // detached or contained within hidden ancestors (gh-2404, gh-2863).\n return function (elem, el) {\n // isHiddenWithinTree might be called from jQuery#filter function;\n // in that case, element will be second argument\n elem = el || elem;\n\n // Inline style trumps all\n return elem.style.display === \"none\" || elem.style.display === \"\" &&\n // Otherwise, check computed style\n // Support: Firefox <=43 - 45\n // Disconnected elements can have computed display: none, so first confirm that elem is\n // in the document.\n isAttached(elem) && jQuery.css(elem, \"display\") === \"none\";\n };\n});","define([\"../core\", \"../var/rcssNum\"], function (jQuery, rcssNum) {\n \"use strict\";\n\n function adjustCSS(elem, prop, valueParts, tween) {\n var adjusted,\n scale,\n maxIterations = 20,\n currentValue = tween ? function () {\n return tween.cur();\n } : function () {\n return jQuery.css(elem, prop, \"\");\n },\n initial = currentValue(),\n unit = valueParts && valueParts[3] || (jQuery.cssNumber[prop] ? \"\" : \"px\"),\n // Starting value computation is required for potential unit mismatches\n initialInUnit = elem.nodeType && (jQuery.cssNumber[prop] || unit !== \"px\" && +initial) && rcssNum.exec(jQuery.css(elem, prop));\n if (initialInUnit && initialInUnit[3] !== unit) {\n // Support: Firefox <=54\n // Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n initial = initial / 2;\n\n // Trust units reported by jQuery.css\n unit = unit || initialInUnit[3];\n\n // Iteratively approximate from a nonzero starting point\n initialInUnit = +initial || 1;\n while (maxIterations--) {\n // Evaluate and update our best guess (doubling guesses that zero out).\n // Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n jQuery.style(elem, prop, initialInUnit + unit);\n if ((1 - scale) * (1 - (scale = currentValue() / initial || 0.5)) <= 0) {\n maxIterations = 0;\n }\n initialInUnit = initialInUnit / scale;\n }\n initialInUnit = initialInUnit * 2;\n jQuery.style(elem, prop, initialInUnit + unit);\n\n // Make sure we update the tween properties later on\n valueParts = valueParts || [];\n }\n if (valueParts) {\n initialInUnit = +initialInUnit || +initial || 0;\n\n // Apply relative offset (+=/-=) if specified\n adjusted = valueParts[1] ? initialInUnit + (valueParts[1] + 1) * valueParts[2] : +valueParts[2];\n if (tween) {\n tween.unit = unit;\n tween.start = initialInUnit;\n tween.end = adjusted;\n }\n }\n return adjusted;\n }\n return adjustCSS;\n});","define(function () {\n \"use strict\";\n\n // rtagName captures the name from the first start tag in a string of HTML\n // https://html.spec.whatwg.org/multipage/syntax.html#tag-open-state\n // https://html.spec.whatwg.org/multipage/syntax.html#tag-name-state\n return /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i;\n});","define(function () {\n \"use strict\";\n\n return /^$|^module$|\\/(?:java|ecma)script/i;\n});","define([\"./support\"], function (support) {\n \"use strict\";\n\n // We have to close these tags to support XHTML (trac-13200)\n var wrapMap = {\n // XHTML parsers do not magically insert elements in the\n // same way that tag soup parsers do. So we cannot shorten\n // this by omitting or other required elements.\n thead: [1, \"\", \"
\"],\n col: [2, \"\", \"
\"],\n tr: [2, \"\", \"
\"],\n td: [3, \"\", \"
\"],\n _default: [0, \"\", \"\"]\n };\n wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\n wrapMap.th = wrapMap.td;\n\n // Support: IE <=9 only\n if (!support.option) {\n wrapMap.optgroup = wrapMap.option = [1, \"\"];\n }\n return wrapMap;\n});","define([\"../var/document\", \"../var/support\"], function (document, support) {\n \"use strict\";\n\n (function () {\n var fragment = document.createDocumentFragment(),\n div = fragment.appendChild(document.createElement(\"div\")),\n input = document.createElement(\"input\");\n\n // Support: Android 4.0 - 4.3 only\n // Check state lost if the name is set (trac-11217)\n // Support: Windows Web Apps (WWA)\n // `name` and `type` must use .setAttribute for WWA (trac-14901)\n input.setAttribute(\"type\", \"radio\");\n input.setAttribute(\"checked\", \"checked\");\n input.setAttribute(\"name\", \"t\");\n div.appendChild(input);\n\n // Support: Android <=4.1 only\n // Older WebKit doesn't clone checked state correctly in fragments\n support.checkClone = div.cloneNode(true).cloneNode(true).lastChild.checked;\n\n // Support: IE <=11 only\n // Make sure textarea (and checkbox) defaultValue is properly cloned\n div.innerHTML = \"\";\n support.noCloneChecked = !!div.cloneNode(true).lastChild.defaultValue;\n\n // Support: IE <=9 only\n // IE <=9 replaces \";\n support.option = !!div.lastChild;\n })();\n return support;\n});","define([\"../core\", \"../core/nodeName\"], function (jQuery, nodeName) {\n \"use strict\";\n\n function getAll(context, tag) {\n // Support: IE <=9 - 11 only\n // Use typeof to avoid zero-argument method invocation on host objects (trac-15151)\n var ret;\n if (typeof context.getElementsByTagName !== \"undefined\") {\n ret = context.getElementsByTagName(tag || \"*\");\n } else if (typeof context.querySelectorAll !== \"undefined\") {\n ret = context.querySelectorAll(tag || \"*\");\n } else {\n ret = [];\n }\n if (tag === undefined || tag && nodeName(context, tag)) {\n return jQuery.merge([context], ret);\n }\n return ret;\n }\n return getAll;\n});","define([\"../data/var/dataPriv\"], function (dataPriv) {\n \"use strict\";\n\n // Mark scripts as having already been evaluated\n function setGlobalEval(elems, refElements) {\n var i = 0,\n l = elems.length;\n for (; i < l; i++) {\n dataPriv.set(elems[i], \"globalEval\", !refElements || dataPriv.get(refElements[i], \"globalEval\"));\n }\n }\n return setGlobalEval;\n});","define([\"../core\", \"../core/toType\", \"../core/isAttached\", \"./var/rtagName\", \"./var/rscriptType\", \"./wrapMap\", \"./getAll\", \"./setGlobalEval\"], function (jQuery, toType, isAttached, rtagName, rscriptType, wrapMap, getAll, setGlobalEval) {\n \"use strict\";\n\n var rhtml = /<|&#?\\w+;/;\n function buildFragment(elems, context, scripts, selection, ignored) {\n var elem,\n tmp,\n tag,\n wrap,\n attached,\n j,\n fragment = context.createDocumentFragment(),\n nodes = [],\n i = 0,\n l = elems.length;\n for (; i < l; i++) {\n elem = elems[i];\n if (elem || elem === 0) {\n // Add nodes directly\n if (toType(elem) === \"object\") {\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n jQuery.merge(nodes, elem.nodeType ? [elem] : elem);\n\n // Convert non-html into a text node\n } else if (!rhtml.test(elem)) {\n nodes.push(context.createTextNode(elem));\n\n // Convert html into DOM nodes\n } else {\n tmp = tmp || fragment.appendChild(context.createElement(\"div\"));\n\n // Deserialize a standard representation\n tag = (rtagName.exec(elem) || [\"\", \"\"])[1].toLowerCase();\n wrap = wrapMap[tag] || wrapMap._default;\n tmp.innerHTML = wrap[1] + jQuery.htmlPrefilter(elem) + wrap[2];\n\n // Descend through wrappers to the right content\n j = wrap[0];\n while (j--) {\n tmp = tmp.lastChild;\n }\n\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n jQuery.merge(nodes, tmp.childNodes);\n\n // Remember the top-level container\n tmp = fragment.firstChild;\n\n // Ensure the created nodes are orphaned (trac-12392)\n tmp.textContent = \"\";\n }\n }\n }\n\n // Remove wrapper from fragment\n fragment.textContent = \"\";\n i = 0;\n while (elem = nodes[i++]) {\n // Skip elements already in the context collection (trac-4087)\n if (selection && jQuery.inArray(elem, selection) > -1) {\n if (ignored) {\n ignored.push(elem);\n }\n continue;\n }\n attached = isAttached(elem);\n\n // Append to fragment\n tmp = getAll(fragment.appendChild(elem), \"script\");\n\n // Preserve script evaluation history\n if (attached) {\n setGlobalEval(tmp);\n }\n\n // Capture executables\n if (scripts) {\n j = 0;\n while (elem = tmp[j++]) {\n if (rscriptType.test(elem.type || \"\")) {\n scripts.push(elem);\n }\n }\n }\n }\n return fragment;\n }\n return buildFragment;\n});","define(function () {\n \"use strict\";\n\n return /^--/;\n});","define(function () {\n \"use strict\";\n\n return function (elem) {\n // Support: IE <=11 only, Firefox <=30 (trac-15098, trac-14150)\n // IE throws on elements created in popups\n // FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n var view = elem.ownerDocument.defaultView;\n if (!view || !view.opener) {\n view = window;\n }\n return view.getComputedStyle(elem);\n };\n});","define([\"../core\", \"../core/isAttached\", \"./var/rboxStyle\", \"./var/rnumnonpx\", \"./var/getStyles\", \"./var/rcustomProp\", \"../var/rtrimCSS\", \"./support\"], function (jQuery, isAttached, rboxStyle, rnumnonpx, getStyles, rcustomProp, rtrimCSS, support) {\n \"use strict\";\n\n function curCSS(elem, name, computed) {\n var width,\n minWidth,\n maxWidth,\n ret,\n isCustomProp = rcustomProp.test(name),\n // Support: Firefox 51+\n // Retrieving style before computed somehow\n // fixes an issue with getting wrong values\n // on detached elements\n style = elem.style;\n computed = computed || getStyles(elem);\n\n // getPropertyValue is needed for:\n // .css('filter') (IE 9 only, trac-12537)\n // .css('--customProperty) (gh-3144)\n if (computed) {\n // Support: IE <=9 - 11+\n // IE only supports `\"float\"` in `getPropertyValue`; in computed styles\n // it's only available as `\"cssFloat\"`. We no longer modify properties\n // sent to `.css()` apart from camelCasing, so we need to check both.\n // Normally, this would create difference in behavior: if\n // `getPropertyValue` returns an empty string, the value returned\n // by `.css()` would be `undefined`. This is usually the case for\n // disconnected elements. However, in IE even disconnected elements\n // with no styles return `\"none\"` for `getPropertyValue( \"float\" )`\n ret = computed.getPropertyValue(name) || computed[name];\n if (isCustomProp && ret) {\n // Support: Firefox 105+, Chrome <=105+\n // Spec requires trimming whitespace for custom properties (gh-4926).\n // Firefox only trims leading whitespace. Chrome just collapses\n // both leading & trailing whitespace to a single space.\n //\n // Fall back to `undefined` if empty string returned.\n // This collapses a missing definition with property defined\n // and set to an empty string but there's no standard API\n // allowing us to differentiate them without a performance penalty\n // and returning `undefined` aligns with older jQuery.\n //\n // rtrimCSS treats U+000D CARRIAGE RETURN and U+000C FORM FEED\n // as whitespace while CSS does not, but this is not a problem\n // because CSS preprocessing replaces them with U+000A LINE FEED\n // (which *is* CSS whitespace)\n // https://www.w3.org/TR/css-syntax-3/#input-preprocessing\n ret = ret.replace(rtrimCSS, \"$1\") || undefined;\n }\n if (ret === \"\" && !isAttached(elem)) {\n ret = jQuery.style(elem, name);\n }\n\n // A tribute to the \"awesome hack by Dean Edwards\"\n // Android Browser returns percentage for some values,\n // but width seems to be reliably pixels.\n // This is against the CSSOM draft spec:\n // https://drafts.csswg.org/cssom/#resolved-values\n if (!support.pixelBoxStyles() && rnumnonpx.test(ret) && rboxStyle.test(name)) {\n // Remember the original values\n width = style.width;\n minWidth = style.minWidth;\n maxWidth = style.maxWidth;\n\n // Put in the new values to get a computed value out\n style.minWidth = style.maxWidth = style.width = ret;\n ret = computed.width;\n\n // Revert the changed values\n style.width = width;\n style.minWidth = minWidth;\n style.maxWidth = maxWidth;\n }\n }\n return ret !== undefined ?\n // Support: IE <=9 - 11 only\n // IE returns zIndex value as an integer.\n ret + \"\" : ret;\n }\n return curCSS;\n});","define(function () {\n \"use strict\";\n\n function addGetHookIf(conditionFn, hookFn) {\n // Define the hook, we'll check on the first run if it's really needed.\n return {\n get: function () {\n if (conditionFn()) {\n // Hook not needed (or it's not possible to use it due\n // to missing dependency), remove it.\n delete this.get;\n return;\n }\n\n // Hook needed; redefine it so that the support test is not executed again.\n return (this.get = hookFn).apply(this, arguments);\n }\n };\n }\n return addGetHookIf;\n});","define([\"../var/document\", \"../core\"], function (document, jQuery) {\n \"use strict\";\n\n var cssPrefixes = [\"Webkit\", \"Moz\", \"ms\"],\n emptyStyle = document.createElement(\"div\").style,\n vendorProps = {};\n\n // Return a vendor-prefixed property or undefined\n function vendorPropName(name) {\n // Check for vendor prefixed names\n var capName = name[0].toUpperCase() + name.slice(1),\n i = cssPrefixes.length;\n while (i--) {\n name = cssPrefixes[i] + capName;\n if (name in emptyStyle) {\n return name;\n }\n }\n }\n\n // Return a potentially-mapped jQuery.cssProps or vendor prefixed property\n function finalPropName(name) {\n var final = jQuery.cssProps[name] || vendorProps[name];\n if (final) {\n return final;\n }\n if (name in emptyStyle) {\n return name;\n }\n return vendorProps[name] = vendorPropName(name) || name;\n }\n return finalPropName;\n});","define([\"../core\", \"../core/access\", \"./support\", \"../selector\"], function (jQuery, access, support) {\n \"use strict\";\n\n var rfocusable = /^(?:input|select|textarea|button)$/i,\n rclickable = /^(?:a|area)$/i;\n jQuery.fn.extend({\n prop: function (name, value) {\n return access(this, jQuery.prop, name, value, arguments.length > 1);\n },\n removeProp: function (name) {\n return this.each(function () {\n delete this[jQuery.propFix[name] || name];\n });\n }\n });\n jQuery.extend({\n prop: function (elem, name, value) {\n var ret,\n hooks,\n nType = elem.nodeType;\n\n // Don't get/set properties on text, comment and attribute nodes\n if (nType === 3 || nType === 8 || nType === 2) {\n return;\n }\n if (nType !== 1 || !jQuery.isXMLDoc(elem)) {\n // Fix name and attach hooks\n name = jQuery.propFix[name] || name;\n hooks = jQuery.propHooks[name];\n }\n if (value !== undefined) {\n if (hooks && \"set\" in hooks && (ret = hooks.set(elem, value, name)) !== undefined) {\n return ret;\n }\n return elem[name] = value;\n }\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, name)) !== null) {\n return ret;\n }\n return elem[name];\n },\n propHooks: {\n tabIndex: {\n get: function (elem) {\n // Support: IE <=9 - 11 only\n // elem.tabIndex doesn't always return the\n // correct value when it hasn't been explicitly set\n // Use proper attribute retrieval (trac-12072)\n var tabindex = jQuery.find.attr(elem, \"tabindex\");\n if (tabindex) {\n return parseInt(tabindex, 10);\n }\n if (rfocusable.test(elem.nodeName) || rclickable.test(elem.nodeName) && elem.href) {\n return 0;\n }\n return -1;\n }\n }\n },\n propFix: {\n \"for\": \"htmlFor\",\n \"class\": \"className\"\n }\n });\n\n // Support: IE <=11 only\n // Accessing the selectedIndex property\n // forces the browser to respect setting selected\n // on the option\n // The getter ensures a default option is selected\n // when in an optgroup\n // eslint rule \"no-unused-expressions\" is disabled for this code\n // since it considers such accessions noop\n if (!support.optSelected) {\n jQuery.propHooks.selected = {\n get: function (elem) {\n /* eslint no-unused-expressions: \"off\" */\n\n var parent = elem.parentNode;\n if (parent && parent.parentNode) {\n parent.parentNode.selectedIndex;\n }\n return null;\n },\n set: function (elem) {\n /* eslint no-unused-expressions: \"off\" */\n\n var parent = elem.parentNode;\n if (parent) {\n parent.selectedIndex;\n if (parent.parentNode) {\n parent.parentNode.selectedIndex;\n }\n }\n }\n };\n }\n jQuery.each([\"tabIndex\", \"readOnly\", \"maxLength\", \"cellSpacing\", \"cellPadding\", \"rowSpan\", \"colSpan\", \"useMap\", \"frameBorder\", \"contentEditable\"], function () {\n jQuery.propFix[this.toLowerCase()] = this;\n });\n});","define(function () {\n \"use strict\";\n\n return {\n guid: Date.now()\n };\n});","define(function () {\n \"use strict\";\n\n return /\\?/;\n});","define([\"../core\"], function (jQuery) {\n \"use strict\";\n\n // Cross-browser xml parsing\n jQuery.parseXML = function (data) {\n var xml, parserErrorElem;\n if (!data || typeof data !== \"string\") {\n return null;\n }\n\n // Support: IE 9 - 11 only\n // IE throws on parseFromString with invalid input.\n try {\n xml = new window.DOMParser().parseFromString(data, \"text/xml\");\n } catch (e) {}\n parserErrorElem = xml && xml.getElementsByTagName(\"parsererror\")[0];\n if (!xml || parserErrorElem) {\n jQuery.error(\"Invalid XML: \" + (parserErrorElem ? jQuery.map(parserErrorElem.childNodes, function (el) {\n return el.textContent;\n }).join(\"\\n\") : data));\n }\n return xml;\n };\n return jQuery.parseXML;\n});","define([\"../core\", \"../var/document\", \"../data/var/dataPriv\", \"../data/var/acceptData\", \"../var/hasOwn\", \"../var/isFunction\", \"../var/isWindow\", \"../event\"], function (jQuery, document, dataPriv, acceptData, hasOwn, isFunction, isWindow) {\n \"use strict\";\n\n var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n stopPropagationCallback = function (e) {\n e.stopPropagation();\n };\n jQuery.extend(jQuery.event, {\n trigger: function (event, data, elem, onlyHandlers) {\n var i,\n cur,\n tmp,\n bubbleType,\n ontype,\n handle,\n special,\n lastElement,\n eventPath = [elem || document],\n type = hasOwn.call(event, \"type\") ? event.type : event,\n namespaces = hasOwn.call(event, \"namespace\") ? event.namespace.split(\".\") : [];\n cur = lastElement = tmp = elem = elem || document;\n\n // Don't do events on text and comment nodes\n if (elem.nodeType === 3 || elem.nodeType === 8) {\n return;\n }\n\n // focus/blur morphs to focusin/out; ensure we're not firing them right now\n if (rfocusMorph.test(type + jQuery.event.triggered)) {\n return;\n }\n if (type.indexOf(\".\") > -1) {\n // Namespaced trigger; create a regexp to match event type in handle()\n namespaces = type.split(\".\");\n type = namespaces.shift();\n namespaces.sort();\n }\n ontype = type.indexOf(\":\") < 0 && \"on\" + type;\n\n // Caller can pass in a jQuery.Event object, Object, or just an event type string\n event = event[jQuery.expando] ? event : new jQuery.Event(type, typeof event === \"object\" && event);\n\n // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n event.isTrigger = onlyHandlers ? 2 : 3;\n event.namespace = namespaces.join(\".\");\n event.rnamespace = event.namespace ? new RegExp(\"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\") : null;\n\n // Clean up the event in case it is being reused\n event.result = undefined;\n if (!event.target) {\n event.target = elem;\n }\n\n // Clone any incoming data and prepend the event, creating the handler arg list\n data = data == null ? [event] : jQuery.makeArray(data, [event]);\n\n // Allow special events to draw outside the lines\n special = jQuery.event.special[type] || {};\n if (!onlyHandlers && special.trigger && special.trigger.apply(elem, data) === false) {\n return;\n }\n\n // Determine event propagation path in advance, per W3C events spec (trac-9951)\n // Bubble up to document, then to window; watch for a global ownerDocument var (trac-9724)\n if (!onlyHandlers && !special.noBubble && !isWindow(elem)) {\n bubbleType = special.delegateType || type;\n if (!rfocusMorph.test(bubbleType + type)) {\n cur = cur.parentNode;\n }\n for (; cur; cur = cur.parentNode) {\n eventPath.push(cur);\n tmp = cur;\n }\n\n // Only add window if we got to document (e.g., not plain obj or detached DOM)\n if (tmp === (elem.ownerDocument || document)) {\n eventPath.push(tmp.defaultView || tmp.parentWindow || window);\n }\n }\n\n // Fire handlers on the event path\n i = 0;\n while ((cur = eventPath[i++]) && !event.isPropagationStopped()) {\n lastElement = cur;\n event.type = i > 1 ? bubbleType : special.bindType || type;\n\n // jQuery handler\n handle = (dataPriv.get(cur, \"events\") || Object.create(null))[event.type] && dataPriv.get(cur, \"handle\");\n if (handle) {\n handle.apply(cur, data);\n }\n\n // Native handler\n handle = ontype && cur[ontype];\n if (handle && handle.apply && acceptData(cur)) {\n event.result = handle.apply(cur, data);\n if (event.result === false) {\n event.preventDefault();\n }\n }\n }\n event.type = type;\n\n // If nobody prevented the default action, do it now\n if (!onlyHandlers && !event.isDefaultPrevented()) {\n if ((!special._default || special._default.apply(eventPath.pop(), data) === false) && acceptData(elem)) {\n // Call a native DOM method on the target with the same name as the event.\n // Don't do default actions on window, that's where global variables be (trac-6170)\n if (ontype && isFunction(elem[type]) && !isWindow(elem)) {\n // Don't re-trigger an onFOO event when we call its FOO() method\n tmp = elem[ontype];\n if (tmp) {\n elem[ontype] = null;\n }\n\n // Prevent re-triggering of the same event, since we already bubbled it above\n jQuery.event.triggered = type;\n if (event.isPropagationStopped()) {\n lastElement.addEventListener(type, stopPropagationCallback);\n }\n elem[type]();\n if (event.isPropagationStopped()) {\n lastElement.removeEventListener(type, stopPropagationCallback);\n }\n jQuery.event.triggered = undefined;\n if (tmp) {\n elem[ontype] = tmp;\n }\n }\n }\n }\n return event.result;\n },\n // Piggyback on a donor event to simulate a different one\n // Used only for `focus(in | out)` events\n simulate: function (type, elem, event) {\n var e = jQuery.extend(new jQuery.Event(), event, {\n type: type,\n isSimulated: true\n });\n jQuery.event.trigger(e, null, elem);\n }\n });\n jQuery.fn.extend({\n trigger: function (type, data) {\n return this.each(function () {\n jQuery.event.trigger(type, data, this);\n });\n },\n triggerHandler: function (type, data) {\n var elem = this[0];\n if (elem) {\n return jQuery.event.trigger(type, data, elem, true);\n }\n }\n });\n return jQuery;\n});","define([\"./core\", \"./core/toType\", \"./var/rcheckableType\", \"./var/isFunction\", \"./core/init\", \"./traversing\",\n// filter\n\"./attributes/prop\"], function (jQuery, toType, rcheckableType, isFunction) {\n \"use strict\";\n\n var rbracket = /\\[\\]$/,\n rCRLF = /\\r?\\n/g,\n rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n rsubmittable = /^(?:input|select|textarea|keygen)/i;\n function buildParams(prefix, obj, traditional, add) {\n var name;\n if (Array.isArray(obj)) {\n // Serialize array item.\n jQuery.each(obj, function (i, v) {\n if (traditional || rbracket.test(prefix)) {\n // Treat each array item as a scalar.\n add(prefix, v);\n } else {\n // Item is non-scalar (array or object), encode its numeric index.\n buildParams(prefix + \"[\" + (typeof v === \"object\" && v != null ? i : \"\") + \"]\", v, traditional, add);\n }\n });\n } else if (!traditional && toType(obj) === \"object\") {\n // Serialize object item.\n for (name in obj) {\n buildParams(prefix + \"[\" + name + \"]\", obj[name], traditional, add);\n }\n } else {\n // Serialize scalar item.\n add(prefix, obj);\n }\n }\n\n // Serialize an array of form elements or a set of\n // key/values into a query string\n jQuery.param = function (a, traditional) {\n var prefix,\n s = [],\n add = function (key, valueOrFunction) {\n // If value is a function, invoke it and use its return value\n var value = isFunction(valueOrFunction) ? valueOrFunction() : valueOrFunction;\n s[s.length] = encodeURIComponent(key) + \"=\" + encodeURIComponent(value == null ? \"\" : value);\n };\n if (a == null) {\n return \"\";\n }\n\n // If an array was passed in, assume that it is an array of form elements.\n if (Array.isArray(a) || a.jquery && !jQuery.isPlainObject(a)) {\n // Serialize the form elements\n jQuery.each(a, function () {\n add(this.name, this.value);\n });\n } else {\n // If traditional, encode the \"old\" way (the way 1.3.2 or older\n // did it), otherwise encode params recursively.\n for (prefix in a) {\n buildParams(prefix, a[prefix], traditional, add);\n }\n }\n\n // Return the resulting serialization\n return s.join(\"&\");\n };\n jQuery.fn.extend({\n serialize: function () {\n return jQuery.param(this.serializeArray());\n },\n serializeArray: function () {\n return this.map(function () {\n // Can add propHook for \"elements\" to filter or add form elements\n var elements = jQuery.prop(this, \"elements\");\n return elements ? jQuery.makeArray(elements) : this;\n }).filter(function () {\n var type = this.type;\n\n // Use .is( \":disabled\" ) so that fieldset[disabled] works\n return this.name && !jQuery(this).is(\":disabled\") && rsubmittable.test(this.nodeName) && !rsubmitterTypes.test(type) && (this.checked || !rcheckableType.test(type));\n }).map(function (_i, elem) {\n var val = jQuery(this).val();\n if (val == null) {\n return null;\n }\n if (Array.isArray(val)) {\n return jQuery.map(val, function (val) {\n return {\n name: elem.name,\n value: val.replace(rCRLF, \"\\r\\n\")\n };\n });\n }\n return {\n name: elem.name,\n value: val.replace(rCRLF, \"\\r\\n\")\n };\n }).get();\n }\n });\n return jQuery;\n});","define([\"../core\", \"../var/document\", \"./var/rsingleTag\", \"../manipulation/buildFragment\",\n// This is the only module that needs core/support\n\"./support\"], function (jQuery, document, rsingleTag, buildFragment, support) {\n \"use strict\";\n\n // Argument \"data\" should be string of html\n // context (optional): If specified, the fragment will be created in this context,\n // defaults to document\n // keepScripts (optional): If true, will include scripts passed in the html string\n jQuery.parseHTML = function (data, context, keepScripts) {\n if (typeof data !== \"string\") {\n return [];\n }\n if (typeof context === \"boolean\") {\n keepScripts = context;\n context = false;\n }\n var base, parsed, scripts;\n if (!context) {\n // Stop scripts or inline event handlers from being executed immediately\n // by using document.implementation\n if (support.createHTMLDocument) {\n context = document.implementation.createHTMLDocument(\"\");\n\n // Set the base href for the created document\n // so any parsed elements with URLs\n // are based on the document's URL (gh-2965)\n base = context.createElement(\"base\");\n base.href = document.location.href;\n context.head.appendChild(base);\n } else {\n context = document;\n }\n }\n parsed = rsingleTag.exec(data);\n scripts = !keepScripts && [];\n\n // Single tag\n if (parsed) {\n return [context.createElement(parsed[1])];\n }\n parsed = buildFragment([data], context, scripts);\n if (scripts && scripts.length) {\n jQuery(scripts).remove();\n }\n return jQuery.merge([], parsed.childNodes);\n };\n return jQuery.parseHTML;\n});","var g;\n\n// This works in non-strict mode\ng = function () {\n return this;\n}();\ntry {\n // This works if eval is allowed (see CSP)\n g = g || new Function(\"return this\")();\n} catch (e) {\n // This works if the window reference is available\n if (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;","// This file is automatically compiled by Webpack, along with any other files\n// present in this directory. You're encouraged to place your actual application logic in\n// a relevant structure within app/javascript and only use these pack files to reference\n// that code so it'll be compiled.\n\nrequire(\"@rails/ujs\").start()\nrequire(\"turbolinks\").start()\nrequire(\"@rails/activestorage\").start()\nrequire(\"channels\")\n\nwindow.Noty = require(\"noty\")\n\n\n// Uncomment to copy all static images under ../images to the output folder and reference\n// them with the image_pack_tag helper in views (e.g <%= image_pack_tag 'rails.png' %>)\n// or the `imagePath` JavaScript helper below.\n//\n// const images = require.context('../images', true)\n// const imagePath = (name) => images(name, true)\n\nrequire(\"trix\")\nrequire(\"@rails/actiontext\")\n\n//= require bulma-extensions\n\nrequire(\"youtube\")\n\nbulmaTagsInput = require('bulma-tagsinput')\n\n","define([\"./fnToString\"], function (fnToString) {\n \"use strict\";\n\n return fnToString.call(Object);\n});","define([\"./arr\"], function (arr) {\n \"use strict\";\n\n return arr.pop;\n});","define([\"./arr\"], function (arr) {\n \"use strict\";\n\n return arr.sort;\n});","define([\"./arr\"], function (arr) {\n \"use strict\";\n\n return arr.splice;\n});","define([\"../core\"], function (jQuery) {\n \"use strict\";\n\n // CSS string/identifier serialization\n // https://drafts.csswg.org/cssom/#common-serializing-idioms\n var rcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\x80-\\uFFFF\\w-]/g;\n function fcssescape(ch, asCodePoint) {\n if (asCodePoint) {\n // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n if (ch === \"\\0\") {\n return \"\\uFFFD\";\n }\n\n // Control characters and (dependent upon position) numbers get escaped as code points\n return ch.slice(0, -1) + \"\\\\\" + ch.charCodeAt(ch.length - 1).toString(16) + \" \";\n }\n\n // Other potentially-special ASCII characters get backslash-escaped\n return \"\\\\\" + ch;\n }\n jQuery.escapeSelector = function (sel) {\n return (sel + \"\").replace(rcssescape, fcssescape);\n };\n});","define([\"../../core\"], function (jQuery) {\n \"use strict\";\n\n return function (elem, dir, until) {\n var matched = [],\n truncate = until !== undefined;\n while ((elem = elem[dir]) && elem.nodeType !== 9) {\n if (elem.nodeType === 1) {\n if (truncate && jQuery(elem).is(until)) {\n break;\n }\n matched.push(elem);\n }\n }\n return matched;\n };\n});","define(function () {\n \"use strict\";\n\n return function (n, elem) {\n var matched = [];\n for (; n; n = n.nextSibling) {\n if (n.nodeType === 1 && n !== elem) {\n matched.push(n);\n }\n }\n return matched;\n };\n});","define([\"../core\", \"../deferred\"], function (jQuery) {\n \"use strict\";\n\n // These usually indicate a programmer mistake during development,\n // warn about them ASAP rather than swallowing them by default.\n var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\n // If `jQuery.Deferred.getErrorHook` is defined, `asyncError` is an error\n // captured before the async barrier to get the original error cause\n // which may otherwise be hidden.\n jQuery.Deferred.exceptionHook = function (error, asyncError) {\n // Support: IE 8 - 9 only\n // Console exists when dev tools are open, which can happen at any time\n if (window.console && window.console.warn && error && rerrorNames.test(error.name)) {\n window.console.warn(\"jQuery.Deferred exception: \" + error.message, error.stack, asyncError);\n }\n };\n});","define([\"../core\"], function (jQuery) {\n \"use strict\";\n\n jQuery.readyException = function (error) {\n window.setTimeout(function () {\n throw error;\n });\n };\n});","define([\"./core\", \"./core/access\", \"./core/camelCase\", \"./data/var/dataPriv\", \"./data/var/dataUser\"], function (jQuery, access, camelCase, dataPriv, dataUser) {\n \"use strict\";\n\n //\tImplementation Summary\n //\n //\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n //\t2. Improve the module's maintainability by reducing the storage\n //\t\tpaths to a single mechanism.\n //\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n //\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n //\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n //\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n var rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n rmultiDash = /[A-Z]/g;\n function getData(data) {\n if (data === \"true\") {\n return true;\n }\n if (data === \"false\") {\n return false;\n }\n if (data === \"null\") {\n return null;\n }\n\n // Only convert to a number if it doesn't change the string\n if (data === +data + \"\") {\n return +data;\n }\n if (rbrace.test(data)) {\n return JSON.parse(data);\n }\n return data;\n }\n function dataAttr(elem, key, data) {\n var name;\n\n // If nothing was found internally, try to fetch any\n // data from the HTML5 data-* attribute\n if (data === undefined && elem.nodeType === 1) {\n name = \"data-\" + key.replace(rmultiDash, \"-$&\").toLowerCase();\n data = elem.getAttribute(name);\n if (typeof data === \"string\") {\n try {\n data = getData(data);\n } catch (e) {}\n\n // Make sure we set the data so it isn't changed later\n dataUser.set(elem, key, data);\n } else {\n data = undefined;\n }\n }\n return data;\n }\n jQuery.extend({\n hasData: function (elem) {\n return dataUser.hasData(elem) || dataPriv.hasData(elem);\n },\n data: function (elem, name, data) {\n return dataUser.access(elem, name, data);\n },\n removeData: function (elem, name) {\n dataUser.remove(elem, name);\n },\n // TODO: Now that all calls to _data and _removeData have been replaced\n // with direct calls to dataPriv methods, these can be deprecated.\n _data: function (elem, name, data) {\n return dataPriv.access(elem, name, data);\n },\n _removeData: function (elem, name) {\n dataPriv.remove(elem, name);\n }\n });\n jQuery.fn.extend({\n data: function (key, value) {\n var i,\n name,\n data,\n elem = this[0],\n attrs = elem && elem.attributes;\n\n // Gets all values\n if (key === undefined) {\n if (this.length) {\n data = dataUser.get(elem);\n if (elem.nodeType === 1 && !dataPriv.get(elem, \"hasDataAttrs\")) {\n i = attrs.length;\n while (i--) {\n // Support: IE 11 only\n // The attrs elements can be null (trac-14894)\n if (attrs[i]) {\n name = attrs[i].name;\n if (name.indexOf(\"data-\") === 0) {\n name = camelCase(name.slice(5));\n dataAttr(elem, name, data[name]);\n }\n }\n }\n dataPriv.set(elem, \"hasDataAttrs\", true);\n }\n }\n return data;\n }\n\n // Sets multiple values\n if (typeof key === \"object\") {\n return this.each(function () {\n dataUser.set(this, key);\n });\n }\n return access(this, function (value) {\n var data;\n\n // The calling jQuery object (element matches) is not empty\n // (and therefore has an element appears at this[ 0 ]) and the\n // `value` parameter was not undefined. An empty jQuery object\n // will result in `undefined` for elem = this[ 0 ] which will\n // throw an exception if an attempt to read a data cache is made.\n if (elem && value === undefined) {\n // Attempt to get data from the cache\n // The key will always be camelCased in Data\n data = dataUser.get(elem, key);\n if (data !== undefined) {\n return data;\n }\n\n // Attempt to \"discover\" the data in\n // HTML5 custom data-* attrs\n data = dataAttr(elem, key);\n if (data !== undefined) {\n return data;\n }\n\n // We tried really hard, but the data doesn't exist.\n return;\n }\n\n // Set the data...\n this.each(function () {\n // We always store the camelCased key\n dataUser.set(this, key, value);\n });\n }, null, value, arguments.length > 1, null, true);\n },\n removeData: function (key) {\n return this.each(function () {\n dataUser.remove(this, key);\n });\n }\n });\n return jQuery;\n});","define([\"../core\", \"../queue\", \"../effects\" // Delay is optional because of this dependency\n], function (jQuery) {\n \"use strict\";\n\n // Based off of the plugin by Clint Helfers, with permission.\n jQuery.fn.delay = function (time, type) {\n time = jQuery.fx ? jQuery.fx.speeds[time] || time : time;\n type = type || \"fx\";\n return this.queue(type, function (next, hooks) {\n var timeout = window.setTimeout(next, time);\n hooks.stop = function () {\n window.clearTimeout(timeout);\n };\n });\n };\n return jQuery.fn.delay;\n});","define([\"../core\", \"../data/var/dataPriv\", \"../css/var/isHiddenWithinTree\"], function (jQuery, dataPriv, isHiddenWithinTree) {\n \"use strict\";\n\n var defaultDisplayMap = {};\n function getDefaultDisplay(elem) {\n var temp,\n doc = elem.ownerDocument,\n nodeName = elem.nodeName,\n display = defaultDisplayMap[nodeName];\n if (display) {\n return display;\n }\n temp = doc.body.appendChild(doc.createElement(nodeName));\n display = jQuery.css(temp, \"display\");\n temp.parentNode.removeChild(temp);\n if (display === \"none\") {\n display = \"block\";\n }\n defaultDisplayMap[nodeName] = display;\n return display;\n }\n function showHide(elements, show) {\n var display,\n elem,\n values = [],\n index = 0,\n length = elements.length;\n\n // Determine new display value for elements that need to change\n for (; index < length; index++) {\n elem = elements[index];\n if (!elem.style) {\n continue;\n }\n display = elem.style.display;\n if (show) {\n // Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n // check is required in this first loop unless we have a nonempty display value (either\n // inline or about-to-be-restored)\n if (display === \"none\") {\n values[index] = dataPriv.get(elem, \"display\") || null;\n if (!values[index]) {\n elem.style.display = \"\";\n }\n }\n if (elem.style.display === \"\" && isHiddenWithinTree(elem)) {\n values[index] = getDefaultDisplay(elem);\n }\n } else {\n if (display !== \"none\") {\n values[index] = \"none\";\n\n // Remember what we're overwriting\n dataPriv.set(elem, \"display\", display);\n }\n }\n }\n\n // Set the display of the elements in a second loop to avoid constant reflow\n for (index = 0; index < length; index++) {\n if (values[index] != null) {\n elements[index].style.display = values[index];\n }\n }\n return elements;\n }\n jQuery.fn.extend({\n show: function () {\n return showHide(this, true);\n },\n hide: function () {\n return showHide(this);\n },\n toggle: function (state) {\n if (typeof state === \"boolean\") {\n return state ? this.show() : this.hide();\n }\n return this.each(function () {\n if (isHiddenWithinTree(this)) {\n jQuery(this).show();\n } else {\n jQuery(this).hide();\n }\n });\n }\n });\n return showHide;\n});","define(function () {\n \"use strict\";\n\n // A method for quickly swapping in/out CSS properties to get correct calculations.\n return function (elem, options, callback) {\n var ret,\n name,\n old = {};\n\n // Remember the old values, and insert the new ones\n for (name in options) {\n old[name] = elem.style[name];\n elem.style[name] = options[name];\n }\n ret = callback.call(elem);\n\n // Revert the old values\n for (name in options) {\n elem.style[name] = old[name];\n }\n return ret;\n };\n});","define([\"./cssExpand\"], function (cssExpand) {\n \"use strict\";\n\n return new RegExp(cssExpand.join(\"|\"), \"i\");\n});","define([\"../core\", \"../css/finalPropName\", \"../css\"], function (jQuery, finalPropName) {\n \"use strict\";\n\n function Tween(elem, options, prop, end, easing) {\n return new Tween.prototype.init(elem, options, prop, end, easing);\n }\n jQuery.Tween = Tween;\n Tween.prototype = {\n constructor: Tween,\n init: function (elem, options, prop, end, easing, unit) {\n this.elem = elem;\n this.prop = prop;\n this.easing = easing || jQuery.easing._default;\n this.options = options;\n this.start = this.now = this.cur();\n this.end = end;\n this.unit = unit || (jQuery.cssNumber[prop] ? \"\" : \"px\");\n },\n cur: function () {\n var hooks = Tween.propHooks[this.prop];\n return hooks && hooks.get ? hooks.get(this) : Tween.propHooks._default.get(this);\n },\n run: function (percent) {\n var eased,\n hooks = Tween.propHooks[this.prop];\n if (this.options.duration) {\n this.pos = eased = jQuery.easing[this.easing](percent, this.options.duration * percent, 0, 1, this.options.duration);\n } else {\n this.pos = eased = percent;\n }\n this.now = (this.end - this.start) * eased + this.start;\n if (this.options.step) {\n this.options.step.call(this.elem, this.now, this);\n }\n if (hooks && hooks.set) {\n hooks.set(this);\n } else {\n Tween.propHooks._default.set(this);\n }\n return this;\n }\n };\n Tween.prototype.init.prototype = Tween.prototype;\n Tween.propHooks = {\n _default: {\n get: function (tween) {\n var result;\n\n // Use a property on the element directly when it is not a DOM element,\n // or when there is no matching style property that exists.\n if (tween.elem.nodeType !== 1 || tween.elem[tween.prop] != null && tween.elem.style[tween.prop] == null) {\n return tween.elem[tween.prop];\n }\n\n // Passing an empty string as a 3rd parameter to .css will automatically\n // attempt a parseFloat and fallback to a string if the parse fails.\n // Simple values such as \"10px\" are parsed to Float;\n // complex values such as \"rotate(1rad)\" are returned as-is.\n result = jQuery.css(tween.elem, tween.prop, \"\");\n\n // Empty strings, null, undefined and \"auto\" are converted to 0.\n return !result || result === \"auto\" ? 0 : result;\n },\n set: function (tween) {\n // Use step hook for back compat.\n // Use cssHook if its there.\n // Use .style if available and use plain properties where available.\n if (jQuery.fx.step[tween.prop]) {\n jQuery.fx.step[tween.prop](tween);\n } else if (tween.elem.nodeType === 1 && (jQuery.cssHooks[tween.prop] || tween.elem.style[finalPropName(tween.prop)] != null)) {\n jQuery.style(tween.elem, tween.prop, tween.now + tween.unit);\n } else {\n tween.elem[tween.prop] = tween.now;\n }\n }\n }\n };\n\n // Support: IE <=9 only\n // Panic based approach to setting things on disconnected nodes\n Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n set: function (tween) {\n if (tween.elem.nodeType && tween.elem.parentNode) {\n tween.elem[tween.prop] = tween.now;\n }\n }\n };\n jQuery.easing = {\n linear: function (p) {\n return p;\n },\n swing: function (p) {\n return 0.5 - Math.cos(p * Math.PI) / 2;\n },\n _default: \"swing\"\n };\n jQuery.fx = Tween.prototype.init;\n\n // Back compat <1.8 extension point\n jQuery.fx.step = {};\n});","define([\"./core\", \"./attributes/attr\", \"./attributes/prop\", \"./attributes/classes\", \"./attributes/val\"], function (jQuery) {\n \"use strict\";\n\n // Return jQuery for attributes-only inclusion\n return jQuery;\n});","define([\"../core\", \"../core/access\", \"../core/nodeName\", \"./support\", \"../var/rnothtmlwhite\", \"../selector\"], function (jQuery, access, nodeName, support, rnothtmlwhite) {\n \"use strict\";\n\n var boolHook,\n attrHandle = jQuery.expr.attrHandle;\n jQuery.fn.extend({\n attr: function (name, value) {\n return access(this, jQuery.attr, name, value, arguments.length > 1);\n },\n removeAttr: function (name) {\n return this.each(function () {\n jQuery.removeAttr(this, name);\n });\n }\n });\n jQuery.extend({\n attr: function (elem, name, value) {\n var ret,\n hooks,\n nType = elem.nodeType;\n\n // Don't get/set attributes on text, comment and attribute nodes\n if (nType === 3 || nType === 8 || nType === 2) {\n return;\n }\n\n // Fallback to prop when attributes are not supported\n if (typeof elem.getAttribute === \"undefined\") {\n return jQuery.prop(elem, name, value);\n }\n\n // Attribute hooks are determined by the lowercase version\n // Grab necessary hook if one is defined\n if (nType !== 1 || !jQuery.isXMLDoc(elem)) {\n hooks = jQuery.attrHooks[name.toLowerCase()] || (jQuery.expr.match.bool.test(name) ? boolHook : undefined);\n }\n if (value !== undefined) {\n if (value === null) {\n jQuery.removeAttr(elem, name);\n return;\n }\n if (hooks && \"set\" in hooks && (ret = hooks.set(elem, value, name)) !== undefined) {\n return ret;\n }\n elem.setAttribute(name, value + \"\");\n return value;\n }\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, name)) !== null) {\n return ret;\n }\n ret = jQuery.find.attr(elem, name);\n\n // Non-existent attributes return null, we normalize to undefined\n return ret == null ? undefined : ret;\n },\n attrHooks: {\n type: {\n set: function (elem, value) {\n if (!support.radioValue && value === \"radio\" && nodeName(elem, \"input\")) {\n var val = elem.value;\n elem.setAttribute(\"type\", value);\n if (val) {\n elem.value = val;\n }\n return value;\n }\n }\n }\n },\n removeAttr: function (elem, value) {\n var name,\n i = 0,\n // Attribute names can contain non-HTML whitespace characters\n // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n attrNames = value && value.match(rnothtmlwhite);\n if (attrNames && elem.nodeType === 1) {\n while (name = attrNames[i++]) {\n elem.removeAttribute(name);\n }\n }\n }\n });\n\n // Hooks for boolean attributes\n boolHook = {\n set: function (elem, value, name) {\n if (value === false) {\n // Remove boolean attributes when set to false\n jQuery.removeAttr(elem, name);\n } else {\n elem.setAttribute(name, name);\n }\n return name;\n }\n };\n jQuery.each(jQuery.expr.match.bool.source.match(/\\w+/g), function (_i, name) {\n var getter = attrHandle[name] || jQuery.find.attr;\n attrHandle[name] = function (elem, name, isXML) {\n var ret,\n handle,\n lowercaseName = name.toLowerCase();\n if (!isXML) {\n // Avoid an infinite loop by temporarily removing this function from the getter\n handle = attrHandle[lowercaseName];\n attrHandle[lowercaseName] = ret;\n ret = getter(elem, name, isXML) != null ? lowercaseName : null;\n attrHandle[lowercaseName] = handle;\n }\n return ret;\n };\n });\n});","define([\"../core\", \"../core/stripAndCollapse\", \"../var/isFunction\", \"../var/rnothtmlwhite\", \"../data/var/dataPriv\", \"../core/init\"], function (jQuery, stripAndCollapse, isFunction, rnothtmlwhite, dataPriv) {\n \"use strict\";\n\n function getClass(elem) {\n return elem.getAttribute && elem.getAttribute(\"class\") || \"\";\n }\n function classesToArray(value) {\n if (Array.isArray(value)) {\n return value;\n }\n if (typeof value === \"string\") {\n return value.match(rnothtmlwhite) || [];\n }\n return [];\n }\n jQuery.fn.extend({\n addClass: function (value) {\n var classNames, cur, curValue, className, i, finalValue;\n if (isFunction(value)) {\n return this.each(function (j) {\n jQuery(this).addClass(value.call(this, j, getClass(this)));\n });\n }\n classNames = classesToArray(value);\n if (classNames.length) {\n return this.each(function () {\n curValue = getClass(this);\n cur = this.nodeType === 1 && \" \" + stripAndCollapse(curValue) + \" \";\n if (cur) {\n for (i = 0; i < classNames.length; i++) {\n className = classNames[i];\n if (cur.indexOf(\" \" + className + \" \") < 0) {\n cur += className + \" \";\n }\n }\n\n // Only assign if different to avoid unneeded rendering.\n finalValue = stripAndCollapse(cur);\n if (curValue !== finalValue) {\n this.setAttribute(\"class\", finalValue);\n }\n }\n });\n }\n return this;\n },\n removeClass: function (value) {\n var classNames, cur, curValue, className, i, finalValue;\n if (isFunction(value)) {\n return this.each(function (j) {\n jQuery(this).removeClass(value.call(this, j, getClass(this)));\n });\n }\n if (!arguments.length) {\n return this.attr(\"class\", \"\");\n }\n classNames = classesToArray(value);\n if (classNames.length) {\n return this.each(function () {\n curValue = getClass(this);\n\n // This expression is here for better compressibility (see addClass)\n cur = this.nodeType === 1 && \" \" + stripAndCollapse(curValue) + \" \";\n if (cur) {\n for (i = 0; i < classNames.length; i++) {\n className = classNames[i];\n\n // Remove *all* instances\n while (cur.indexOf(\" \" + className + \" \") > -1) {\n cur = cur.replace(\" \" + className + \" \", \" \");\n }\n }\n\n // Only assign if different to avoid unneeded rendering.\n finalValue = stripAndCollapse(cur);\n if (curValue !== finalValue) {\n this.setAttribute(\"class\", finalValue);\n }\n }\n });\n }\n return this;\n },\n toggleClass: function (value, stateVal) {\n var classNames,\n className,\n i,\n self,\n type = typeof value,\n isValidValue = type === \"string\" || Array.isArray(value);\n if (isFunction(value)) {\n return this.each(function (i) {\n jQuery(this).toggleClass(value.call(this, i, getClass(this), stateVal), stateVal);\n });\n }\n if (typeof stateVal === \"boolean\" && isValidValue) {\n return stateVal ? this.addClass(value) : this.removeClass(value);\n }\n classNames = classesToArray(value);\n return this.each(function () {\n if (isValidValue) {\n // Toggle individual class names\n self = jQuery(this);\n for (i = 0; i < classNames.length; i++) {\n className = classNames[i];\n\n // Check each className given, space separated list\n if (self.hasClass(className)) {\n self.removeClass(className);\n } else {\n self.addClass(className);\n }\n }\n\n // Toggle whole class name\n } else if (value === undefined || type === \"boolean\") {\n className = getClass(this);\n if (className) {\n // Store className if set\n dataPriv.set(this, \"__className__\", className);\n }\n\n // If the element has a class name or if we're passed `false`,\n // then remove the whole classname (if there was one, the above saved it).\n // Otherwise bring back whatever was previously saved (if anything),\n // falling back to the empty string if nothing was stored.\n if (this.setAttribute) {\n this.setAttribute(\"class\", className || value === false ? \"\" : dataPriv.get(this, \"__className__\") || \"\");\n }\n }\n });\n },\n hasClass: function (selector) {\n var className,\n elem,\n i = 0;\n className = \" \" + selector + \" \";\n while (elem = this[i++]) {\n if (elem.nodeType === 1 && (\" \" + stripAndCollapse(getClass(elem)) + \" \").indexOf(className) > -1) {\n return true;\n }\n }\n return false;\n }\n });\n});","define([\"../core\", \"../core/stripAndCollapse\", \"./support\", \"../core/nodeName\", \"../var/isFunction\", \"../core/init\"], function (jQuery, stripAndCollapse, support, nodeName, isFunction) {\n \"use strict\";\n\n var rreturn = /\\r/g;\n jQuery.fn.extend({\n val: function (value) {\n var hooks,\n ret,\n valueIsFunction,\n elem = this[0];\n if (!arguments.length) {\n if (elem) {\n hooks = jQuery.valHooks[elem.type] || jQuery.valHooks[elem.nodeName.toLowerCase()];\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, \"value\")) !== undefined) {\n return ret;\n }\n ret = elem.value;\n\n // Handle most common string cases\n if (typeof ret === \"string\") {\n return ret.replace(rreturn, \"\");\n }\n\n // Handle cases where value is null/undef or number\n return ret == null ? \"\" : ret;\n }\n return;\n }\n valueIsFunction = isFunction(value);\n return this.each(function (i) {\n var val;\n if (this.nodeType !== 1) {\n return;\n }\n if (valueIsFunction) {\n val = value.call(this, i, jQuery(this).val());\n } else {\n val = value;\n }\n\n // Treat null/undefined as \"\"; convert numbers to string\n if (val == null) {\n val = \"\";\n } else if (typeof val === \"number\") {\n val += \"\";\n } else if (Array.isArray(val)) {\n val = jQuery.map(val, function (value) {\n return value == null ? \"\" : value + \"\";\n });\n }\n hooks = jQuery.valHooks[this.type] || jQuery.valHooks[this.nodeName.toLowerCase()];\n\n // If set returns undefined, fall back to normal setting\n if (!hooks || !(\"set\" in hooks) || hooks.set(this, val, \"value\") === undefined) {\n this.value = val;\n }\n });\n }\n });\n jQuery.extend({\n valHooks: {\n option: {\n get: function (elem) {\n var val = jQuery.find.attr(elem, \"value\");\n return val != null ? val :\n // Support: IE <=10 - 11 only\n // option.text throws exceptions (trac-14686, trac-14858)\n // Strip and collapse whitespace\n // https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n stripAndCollapse(jQuery.text(elem));\n }\n },\n select: {\n get: function (elem) {\n var value,\n option,\n i,\n options = elem.options,\n index = elem.selectedIndex,\n one = elem.type === \"select-one\",\n values = one ? null : [],\n max = one ? index + 1 : options.length;\n if (index < 0) {\n i = max;\n } else {\n i = one ? index : 0;\n }\n\n // Loop through all the selected options\n for (; i < max; i++) {\n option = options[i];\n\n // Support: IE <=9 only\n // IE8-9 doesn't update selected after form reset (trac-2551)\n if ((option.selected || i === index) &&\n // Don't return options that are disabled or in a disabled optgroup\n !option.disabled && (!option.parentNode.disabled || !nodeName(option.parentNode, \"optgroup\"))) {\n // Get the specific value for the option\n value = jQuery(option).val();\n\n // We don't need an array for one selects\n if (one) {\n return value;\n }\n\n // Multi-Selects return an array\n values.push(value);\n }\n }\n return values;\n },\n set: function (elem, value) {\n var optionSet,\n option,\n options = elem.options,\n values = jQuery.makeArray(value),\n i = options.length;\n while (i--) {\n option = options[i];\n\n /* eslint-disable no-cond-assign */\n\n if (option.selected = jQuery.inArray(jQuery.valHooks.option.get(option), values) > -1) {\n optionSet = true;\n }\n\n /* eslint-enable no-cond-assign */\n }\n\n // Force browsers to behave consistently when non-matching value is set\n if (!optionSet) {\n elem.selectedIndex = -1;\n }\n return values;\n }\n }\n }\n });\n\n // Radios and checkboxes getter/setter\n jQuery.each([\"radio\", \"checkbox\"], function () {\n jQuery.valHooks[this] = {\n set: function (elem, value) {\n if (Array.isArray(value)) {\n return elem.checked = jQuery.inArray(jQuery(elem).val(), value) > -1;\n }\n }\n };\n if (!support.checkOn) {\n jQuery.valHooks[this].get = function (elem) {\n return elem.getAttribute(\"value\") === null ? \"on\" : elem.value;\n };\n }\n });\n});","define([\"../ajax\"], function (jQuery) {\n \"use strict\";\n\n jQuery._evalUrl = function (url, options, doc) {\n return jQuery.ajax({\n url: url,\n // Make this explicit, since user can override this through ajaxSetup (trac-11264)\n type: \"GET\",\n dataType: \"script\",\n cache: true,\n async: false,\n global: false,\n // Only evaluate the response if it is successful (gh-4126)\n // dataFilter is not invoked for failure responses, so using it instead\n // of the default converter is kludgy but it works.\n converters: {\n \"text script\": function () {}\n },\n dataFilter: function (response) {\n jQuery.globalEval(response, options, doc);\n }\n });\n };\n return jQuery._evalUrl;\n});","define(function () {\n \"use strict\";\n\n return window.location;\n});","define([\"./core\", \"./var/isFunction\", \"./core/init\", \"./manipulation\",\n// clone\n\"./traversing\" // parent, contents\n], function (jQuery, isFunction) {\n \"use strict\";\n\n jQuery.fn.extend({\n wrapAll: function (html) {\n var wrap;\n if (this[0]) {\n if (isFunction(html)) {\n html = html.call(this[0]);\n }\n\n // The elements to wrap the target around\n wrap = jQuery(html, this[0].ownerDocument).eq(0).clone(true);\n if (this[0].parentNode) {\n wrap.insertBefore(this[0]);\n }\n wrap.map(function () {\n var elem = this;\n while (elem.firstElementChild) {\n elem = elem.firstElementChild;\n }\n return elem;\n }).append(this);\n }\n return this;\n },\n wrapInner: function (html) {\n if (isFunction(html)) {\n return this.each(function (i) {\n jQuery(this).wrapInner(html.call(this, i));\n });\n }\n return this.each(function () {\n var self = jQuery(this),\n contents = self.contents();\n if (contents.length) {\n contents.wrapAll(html);\n } else {\n self.append(html);\n }\n });\n },\n wrap: function (html) {\n var htmlIsFunction = isFunction(html);\n return this.each(function (i) {\n jQuery(this).wrapAll(htmlIsFunction ? html.call(this, i) : html);\n });\n },\n unwrap: function (selector) {\n this.parent(selector).not(\"body\").each(function () {\n jQuery(this).replaceWith(this.childNodes);\n });\n return this;\n }\n });\n return jQuery;\n});","define([\"../core\", \"../selector\"], function (jQuery) {\n \"use strict\";\n\n jQuery.expr.pseudos.hidden = function (elem) {\n return !jQuery.expr.pseudos.visible(elem);\n };\n jQuery.expr.pseudos.visible = function (elem) {\n return !!(elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length);\n };\n});","define([\"../core\", \"../var/support\", \"../ajax\"], function (jQuery, support) {\n \"use strict\";\n\n jQuery.ajaxSettings.xhr = function () {\n try {\n return new window.XMLHttpRequest();\n } catch (e) {}\n };\n var xhrSuccessStatus = {\n // File protocol always yields status code 0, assume 200\n 0: 200,\n // Support: IE <=9 only\n // trac-1450: sometimes IE returns 1223 when it should be 204\n 1223: 204\n },\n xhrSupported = jQuery.ajaxSettings.xhr();\n support.cors = !!xhrSupported && \"withCredentials\" in xhrSupported;\n support.ajax = xhrSupported = !!xhrSupported;\n jQuery.ajaxTransport(function (options) {\n var callback, errorCallback;\n\n // Cross domain only allowed if supported through XMLHttpRequest\n if (support.cors || xhrSupported && !options.crossDomain) {\n return {\n send: function (headers, complete) {\n var i,\n xhr = options.xhr();\n xhr.open(options.type, options.url, options.async, options.username, options.password);\n\n // Apply custom fields if provided\n if (options.xhrFields) {\n for (i in options.xhrFields) {\n xhr[i] = options.xhrFields[i];\n }\n }\n\n // Override mime type if needed\n if (options.mimeType && xhr.overrideMimeType) {\n xhr.overrideMimeType(options.mimeType);\n }\n\n // X-Requested-With header\n // For cross-domain requests, seeing as conditions for a preflight are\n // akin to a jigsaw puzzle, we simply never set it to be sure.\n // (it can always be set on a per-request basis or even using ajaxSetup)\n // For same-domain requests, won't change header if already provided.\n if (!options.crossDomain && !headers[\"X-Requested-With\"]) {\n headers[\"X-Requested-With\"] = \"XMLHttpRequest\";\n }\n\n // Set headers\n for (i in headers) {\n xhr.setRequestHeader(i, headers[i]);\n }\n\n // Callback\n callback = function (type) {\n return function () {\n if (callback) {\n callback = errorCallback = xhr.onload = xhr.onerror = xhr.onabort = xhr.ontimeout = xhr.onreadystatechange = null;\n if (type === \"abort\") {\n xhr.abort();\n } else if (type === \"error\") {\n // Support: IE <=9 only\n // On a manual native abort, IE9 throws\n // errors on any property access that is not readyState\n if (typeof xhr.status !== \"number\") {\n complete(0, \"error\");\n } else {\n complete(\n // File: protocol always yields status 0; see trac-8605, trac-14207\n xhr.status, xhr.statusText);\n }\n } else {\n complete(xhrSuccessStatus[xhr.status] || xhr.status, xhr.statusText,\n // Support: IE <=9 only\n // IE9 has no XHR2 but throws on binary (trac-11426)\n // For XHR2 non-text, let the caller handle it (gh-2498)\n (xhr.responseType || \"text\") !== \"text\" || typeof xhr.responseText !== \"string\" ? {\n binary: xhr.response\n } : {\n text: xhr.responseText\n }, xhr.getAllResponseHeaders());\n }\n }\n };\n };\n\n // Listen to events\n xhr.onload = callback();\n errorCallback = xhr.onerror = xhr.ontimeout = callback(\"error\");\n\n // Support: IE 9 only\n // Use onreadystatechange to replace onabort\n // to handle uncaught aborts\n if (xhr.onabort !== undefined) {\n xhr.onabort = errorCallback;\n } else {\n xhr.onreadystatechange = function () {\n // Check readyState before timeout as it changes\n if (xhr.readyState === 4) {\n // Allow onerror to be called first,\n // but that will not handle a native abort\n // Also, save errorCallback to a variable\n // as xhr.onerror cannot be accessed\n window.setTimeout(function () {\n if (callback) {\n errorCallback();\n }\n });\n }\n };\n }\n\n // Create the abort callback\n callback = callback(\"abort\");\n try {\n // Do send the request (this may raise an exception)\n xhr.send(options.hasContent && options.data || null);\n } catch (e) {\n // trac-14683: Only rethrow if this hasn't been notified as an error yet\n if (callback) {\n throw e;\n }\n }\n },\n abort: function () {\n if (callback) {\n callback();\n }\n }\n };\n }\n });\n});","define([\"../core\", \"../var/document\", \"../ajax\"], function (jQuery, document) {\n \"use strict\";\n\n // Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\n jQuery.ajaxPrefilter(function (s) {\n if (s.crossDomain) {\n s.contents.script = false;\n }\n });\n\n // Install script dataType\n jQuery.ajaxSetup({\n accepts: {\n script: \"text/javascript, application/javascript, \" + \"application/ecmascript, application/x-ecmascript\"\n },\n contents: {\n script: /\\b(?:java|ecma)script\\b/\n },\n converters: {\n \"text script\": function (text) {\n jQuery.globalEval(text);\n return text;\n }\n }\n });\n\n // Handle cache's special case and crossDomain\n jQuery.ajaxPrefilter(\"script\", function (s) {\n if (s.cache === undefined) {\n s.cache = false;\n }\n if (s.crossDomain) {\n s.type = \"GET\";\n }\n });\n\n // Bind script tag hack transport\n jQuery.ajaxTransport(\"script\", function (s) {\n // This transport only deals with cross domain or forced-by-attrs requests\n if (s.crossDomain || s.scriptAttrs) {\n var script, callback;\n return {\n send: function (_, complete) {\n script = jQuery(\"