{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"{\\\"$xs\\\":\\\"0\\\",\\\"$sm\\\":\\\"576px\\\",\\\"$md\\\":\\\"768px\\\",\\\"$lg\\\":\\\"992px\\\",\\\"$very-lg\\\":\\\"1280px\\\",\\\"$xl\\\":\\\"1440px\\\",\\\"$xxl\\\":\\\"1650px\\\"}\"","webpack:///./sitecore/Feature/Forms/code/Assets/Forms/js/lib/popper.js","webpack:///./sitecore/Feature/Forms/code/Assets/Forms/js/lib/jquery-validation.js","webpack:///./sitecore/Feature/Forms/code/Assets/Forms/js/lib/select2.js","webpack:///(webpack)/buildin/global.js","webpack:///./sitecore/Feature/Forms/code/Assets/Forms/js/lib/throttle-debounce.js","webpack:///./sitecore/Feature/Forms/code/Assets/Forms/js/lib/content-popup.js","webpack:///./sitecore/Feature/Forms/code/Assets/Forms/js/lib/form-events.js","webpack:///./sitecore/Feature/Forms/code/Assets/Forms/js/lib/form-validation.js","webpack:///./sitecore/Feature/Forms/code/Assets/Forms/js/lib/select.js","webpack:///./sitecore/Feature/Forms/code/Assets/Forms/js/lib/tippy.js","webpack:///./sitecore/Feature/Forms/code/Assets/Forms/js/lib/tooltips.js","webpack:///./sitecore/Feature/Forms/code/Assets/Forms/js/lib/steps.js","webpack:///./sitecore/Feature/Forms/code/Assets/Forms/js/lib/accordion.js","webpack:///./sitecore/Feature/Forms/code/Assets/Forms/js/Forms.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","isBrowser","window","document","longerTimeoutBrowsers","timeoutDuration","length","navigator","userAgent","indexOf","debounce","Promise","fn","called","resolve","then","scheduled","setTimeout","isFunction","functionToCheck","toString","getStyleComputedProperty","element","nodeType","css","ownerDocument","defaultView","getComputedStyle","getParentNode","nodeName","parentNode","host","getScrollParent","body","_getStyleComputedProp","overflow","overflowX","overflowY","test","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","version","getOffsetParent","documentElement","noOffsetParent","offsetParent","nextElementSibling","getRoot","node","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","start","end","range","createRange","setStart","setEnd","commonAncestorContainer","contains","firstElementChild","element1root","getScroll","side","arguments","undefined","upperSide","html","scrollingElement","includeScroll","rect","subtract","scrollTop","scrollLeft","modifier","top","bottom","left","right","getBordersSize","styles","axis","sideA","sideB","parseFloat","getSize","computedStyle","Math","max","parseInt","getWindowSizes","height","width","classCallCheck","instance","Constructor","TypeError","createClass","defineProperties","target","props","descriptor","configurable","writable","protoProps","staticProps","obj","_extends","assign","source","getClientRect","offsets","getBoundingClientRect","e","result","sizes","clientWidth","clientHeight","horizScrollbar","offsetWidth","vertScrollbar","offsetHeight","getOffsetRectRelativeToArbitraryNode","children","parent","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","innerWidth","innerHeight","offset","isFixed","getFixedPositionOffsetParent","parentElement","el","getBoundaries","popper","reference","padding","boundariesElement","boundaries","boundariesNode","_getWindowSizes","isPaddingNumber","getArea","_ref","computeAutoPlacement","placement","refRect","rects","sortedAreas","keys","map","area","sort","a","b","filteredAreas","filter","_ref2","computedPlacement","variation","split","getReferenceOffsets","state","commonOffsetParent","getOuterSizes","x","marginBottom","y","marginRight","getOppositePlacement","hash","replace","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","find","arr","check","Array","runModifiers","modifiers","data","ends","slice","prop","findIndex","cur","match","forEach","console","warn","enabled","update","this","isDestroyed","arrowStyles","attributes","flipped","options","positionFixed","flip","originalPlacement","position","isCreated","onUpdate","onCreate","isModifierEnabled","modifierName","some","getSupportedPropertyName","prefixes","upperProp","charAt","toUpperCase","prefix","toCheck","style","destroy","removeAttribute","willChange","disableEventListeners","removeOnDestroy","removeChild","getWindow","setupEventListeners","updateBound","addEventListener","passive","scrollElement","attachToScrollParents","event","callback","scrollParents","isBody","push","eventsEnabled","enableEventListeners","scheduleUpdate","cancelAnimationFrame","removeEventListener","isNumeric","isNaN","isFinite","setStyles","unit","isFirefox","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","requested","placements","validPlacements","clockwise","counter","index","concat","reverse","BEHAVIORS","parseOffset","basePlacement","useHeight","fragments","frag","trim","divider","search","splitRegex","ops","op","mergeWithPrevious","reduce","str","toValue","index2","Defaults","shift","shiftvariation","_data$offsets","isVertical","shiftOffsets","preventOverflow","transformProp","popperStyles","transform","priority","primary","escapeWithReference","secondary","min","keepTogether","floor","opSide","arrow","_data$offsets$arrow","arrowElement","querySelector","len","sideCapitalized","toLowerCase","altSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","round","placementOpposite","flipOrder","behavior","step","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariation","flipVariations","getOppositeVariation","inner","subtractLength","hide","bound","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","shouldRound","noRound","v","referenceWidth","popperWidth","isVariation","horizontalToInteger","verticalToInteger","getRoundedOffsets","devicePixelRatio","prefixedProperty","invertTop","invertLeft","applyStyle","setAttribute","onLoad","modifierOptions","Popper","_this","requestAnimationFrame","jquery","Utils","global","PopperUtils","$","extend","validate","validator","attr","settings","onsubmit","on","submitButton","currentTarget","hasClass","cancelSubmit","handle","hidden","submitHandler","formSubmitted","val","appendTo","currentForm","debug","remove","preventDefault","form","pendingRequest","focusInvalid","valid","errorList","is","each","rules","command","argument","staticRules","existingRules","param","filtered","isContentEditable","closest","normalizeRule","messages","method","normalizeRules","classRules","attributeRules","dataRules","required","remote","expr","pseudos","blank","filled","unchecked","defaults","init","format","params","args","makeArray","unshift","apply","constructor","RegExp","groups","errorClass","pendingClass","validClass","errorElement","focusCleanup","errorContainer","errorLabelContainer","ignore","ignoreTitle","onfocusin","lastActive","unhighlight","hideThese","errorsFor","onfocusout","checkable","submitted","optional","onkeyup","which","elementValue","inArray","keyCode","invalid","onclick","highlight","type","findByName","addClass","removeClass","setDefaults","email","url","date","dateISO","number","digits","equalTo","maxlength","minlength","rangelength","autoCreateRanges","labelContainer","errorContext","containers","add","valueCache","pending","reset","delegate","eventType","invalidHandler","checkForm","errorMap","triggerHandler","showErrors","prepareForm","elements","currentElements","rs","group","cleanElement","clean","checkElement","validationTargetFor","prepareElement","testgroup","numberOfInvalids","toHide","errors","message","successList","grep","defaultShowErrors","resetForm","hideErrors","removeData","removeAttr","resetElements","objectLength","count","not","text","addWrapper","size","findLastActive","focus","trigger","rulesCache","error","selector","join","resetInternals","toShow","idx","$element","validity","badInput","substr","lastIndexOf","rule","normalizer","rulesCount","dependencyMismatch","parameters","methods","formatAndAdd","cLog","id","customDataMessage","substring","customMessage","String","findDefined","defaultMessage","title","theregex","toToggle","wrapper","showLabel","success","validElements","show","invalidElements","place","errorID","elementID","idOrName","describedBy","wrap","append","errorPlacement","insertAfter","parents","escapeCssMeta","describer","string","getLength","depend","dependTypes","startRequest","stopRequest","submit","previousValue","old","off","classRuleSettings","creditcard","addClassRules","className","classes","normalizeAttributeRule","Number","getAttribute","depends","keepRule","parameter","parts","isArray","transformed","addMethod","Date","decimals","errorMessage","re","decimalPlaces","num","toInt","pow","Error","optionDataString","previous","originalMessage","ajax","port","dataType","context","response","pendingRequests","ajaxPrefilter","_","xhr","abort","ajaxSettings","factory","jQuery","S2","select2","amd","requirejs","require","define","undef","main","req","makeMap","handlers","defined","waiting","config","defining","hasOwn","aps","jsSuffixRegExp","hasProp","normalize","baseName","nameParts","nameSegment","mapValue","foundMap","lastIndex","foundI","foundStarMap","starI","j","part","baseParts","starMap","nodeIdCompat","splice","makeRequire","relName","forceSync","makeLoad","depName","callDep","splitPrefix","makeRelParts","makeConfig","relParts","plugin","relResourceName","f","pr","uri","deps","cjsModule","ret","usingExports","callbackType","load","alt","cfg","_defined","_$","getMethods","theClass","proto","methodName","Extend","ChildClass","SuperClass","__hasProp","BaseConstructor","__super__","Decorate","DecoratorClass","decoratedMethods","superMethods","DecoratedClass","argCount","calledConstructor","displayName","superMethod","calledMethod","originalMethod","decoratedMethod","Observable","listeners","_type","invoke","generateChars","chars","random","func","_convertData","originalKey","dataLevel","k","hasScroll","$el","scrollHeight","scrollWidth","escapeMarkup","markup","replaceMap","'","appendMany","$nodes","$jqNodes","__cache","GetUniqueElementId","select2Id","StoreData","GetData","RemoveData","Results","dataAdapter","render","$results","clear","empty","displayMessage","hideLoading","$message","hideMessages","$options","results","item","$option","option","$dropdown","sorter","highlightFirstItem","$selected","first","ensureHighlightVisible","setClasses","self","current","selected","selectedIds","showLoading","loading","disabled","loadingMore","$loading","prepend","createElement","attrs","_resultId","role","label","template","$children","child","$child","$childrenContainer","container","$container","isOpen","$highlighted","getHighlightedResults","currentIndex","nextIndex","$next","eq","currentOffset","nextTop","nextOffset","outerHeight","nextBottom","mousewheel","deltaY","isAtTop","isAtBottom","stopPropagation","evt","$this","originalEvent","offsetDelta","content","display","innerHTML","BACKSPACE","TAB","ENTER","SHIFT","CTRL","ALT","ESC","SPACE","PAGE_UP","PAGE_DOWN","END","HOME","LEFT","UP","RIGHT","DOWN","DELETE","KEYS","BaseSelection","$selection","_tabindex","resultsId","_handleBlur","_attachCloseHandler","_detachCloseHandler","activeElement","$select","SingleSelection","$rendered","selectionContainer","selection","formatted","MultipleSelection","$selections","Placeholder","decorated","placeholder","normalizePlaceholder","createPlaceholder","$placeholder","singlePlaceholder","AllowClear","_handleClear","_handleKeyboardClear","$clear","previousVal","unselectData","prevented","$remove","Search","$search","$searchContainer","_transferTabIndex","_keyUpPrevented","isDefaultPrevented","$previousChoice","prev","searchRemoveChoice","msie","disableInputEvents","handleSearch","searchHadFocus","resizeSearch","input","term","EventRelay","relayEvents","preventableEvents","Event","Translation","dict","all","translation","_cache","loadPath","path","translations","BaseAdapter","query","generateResultId","SelectAdapter","select","currentData","unselect","matches","addOptions","textContent","innerText","normalizedData","_normalizeItem","matcher","ArrayAdapter","convertToOptions","elm","$existing","existingIds","onlyItem","$existingOption","existingData","newData","$newOption","replaceWith","AjaxAdapter","ajaxOptions","_applyDefaults","processResults","q","transport","failure","$request","fail","_request","request","status","delay","_queryTimeout","clearTimeout","Tags","tags","createTag","insertTag","tag","_removeOldTags","page","checkChildren","_lastTag","Tokenizer","tokenizer","dropdown","tokenData","separators","termChar","MinimumInputLength","$e","minimumInputLength","minimum","MaximumInputLength","maximumInputLength","maximum","MaximumSelectionLength","maximumSelectionLength","Dropdown","blur","showSearch","HidePlaceholder","removePlaceholder","modifiedData","InfiniteScroll","lastParams","$loadingMore","createLoadingMore","showLoadingMore","isLoadMoreVisible","loadMore","pagination","more","AttachBody","$dropdownParent","setupResultsEvents","_showDropdown","_attachPositioningHandler","_positionDropdown","_resizeDropdown","_hideDropdown","_detachPositioningHandler","$dropdownContainer","detach","scrollEvent","resizeEvent","orientationEvent","$watchers","ev","$window","isCurrentlyAbove","isCurrentlyBelow","newDirection","viewport","enoughRoomAbove","enoughRoomBelow","$offsetParent","parentOffset","outerWidth","minWidth","MinimumResultsForSearch","minimumResultsForSearch","Infinity","countResults","SelectOnClose","_handleSelectOnClose","originalSelect2Event","$highlightedResults","CloseOnSelect","_selectTriggered","ctrlKey","errorLoading","inputTooLong","overChars","inputTooShort","maximumSelected","noResults","searching","ResultsList","SelectionSearch","DIACRITICS","SelectData","ArrayData","AjaxData","DropdownSearch","EnglishTranslation","tokenSeparators","Query","amdBase","initSelection","InitSelection","resultsAdapter","selectOnClose","dropdownAdapter","multiple","SearchableDropdown","closeOnSelect","dropdownCssClass","dropdownCss","adaptDropdownCssClass","DropdownCSS","selectionAdapter","allowClear","containerCssClass","containerCss","adaptContainerCssClass","ContainerCSS","language","baseLanguage","languages","languageNames","amdLanguageBase","ex","baseTranslation","customTranslation","stripDiacritics","dropdownAutoWidth","original","templateResult","templateSelection","theme","set","camelCase","convertedData","Options","fromElement","InputCompat","excludedData","dir","dataset","isPlainObject","Select2","_generateId","tabindex","DataAdapter","_placeContainer","SelectionAdapter","DropdownAdapter","ResultsAdapter","_bindAdapters","_registerDomEvents","_registerDataEvents","_registerSelectionEvents","_registerDropdownEvents","_registerResultsEvents","_registerEvents","initialData","_syncAttributes","_resolveWidth","WIDTH","styleWidth","elementWidth","_syncA","_syncS","_syncSubtree","attachEvent","observer","MutationObserver","WebKitMutationObserver","MozMutationObserver","_observer","mutations","observe","childList","subtree","nonRelayEvents","toggleDropdown","altKey","close","open","changed","addedNodes","removedNodes","actualTrigger","preTriggerMap","preTriggerName","preTriggerArgs","hasFocus","enable","newVal","detachEvent","disconnect","thisMethods","instanceOptions","g","Function","throttle","noTrailing","debounceMode","timeoutID","cancelled","lastExec","clearExistingTimeout","elapsed","now","exec","cancel","atBegin","dom","$body","$trigger","$popup","$focusElement","eventOpenPopup","eventClosePopup","eventResize","setPopupPosition","$popupObj","$currentTrigger","$content","strokeColour","trigType","thisEvent","targetClass","$target","buildStructure","$popupCont","popupDelayId","popupOnStage4","popupDelayTime","timerPopup","clearInterval","setInterval","showPopup","OpenBMPage","bmservicetype","formname","async","serviceType","getBMParameterValues","bmdata","JSON","parse","ServiceID","OrderID","Amount","Description","GatewayID","Currency","CustomerEmail","Title","ValidityTime","VerificationFName","VerificationLName","VerificationStreet","VerificationStreetHouseNo","VerificationStreetStaircaseNo","VerificationStreetPremiseNo","VerificationPostalCode","VerificationCity","VerificationNRB","LinkValidityTime","Hash","scrWidth","screen","availWidth","paramWidth","paramLeft","scrHeight","availHeight","paramHeight","paramTop","bmWindow","timer","closed","location","reload","FormEvents","$form","$mail","$sms","$confirmButtons","verifySmsAndRedirect","FormValidation","$formSubmit","$checkboxChoosedWrap","$checkboxChoosed","$accContentOpen","events","click","Select","changeMeClass","formatData","thisData","thisContainer","$returnString","setOptClass","next","ua","isUCBrowser","isIOS","platform","MSStream","defaultProps","a11y","allowHTML","animateFill","animation","aria","arrowType","boundary","distance","duration","flipBehavior","flipOnUpdate","followCursor","hideOnClick","ignoreAttributes","inertia","interactive","interactiveBorder","interactiveDebounce","lazy","maxWidth","onHidden","onHide","onMount","onShow","onShown","popperOptions","showOnInit","sticky","touch","touchHold","updateDuration","wait","zIndex","POPPER_INSTANCE_DEPENDENCIES","Selectors","elementProto","Element","matchesSelector","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","arrayFrom","parentSelector","closestCallback","PASSIVE","getValue","defaultValue","ms","timeoutId","_arguments","getModifier","includes","isSingular","evaluateValue","setFlipModifierEnabled","div","evaluateProps","out","acc","valueAsString","getDataAttributeOptions","validateOptions","setInnerHTML","setContent","contentEl","appendChild","getChildren","tooltip","backdrop","addInertia","createArrowElement","createBackdropElement","addInteractive","applyTransitionDuration","els","transitionDuration","toggleTransitionEndListener","action","listener","eventName","webkitTransition","getPopperPlacement","fullPlacement","setVisibilityState","toggleTheme","themeName","classList","hideAll","checkHideOnClick","exclude","querySelectorAll","_tippy","isUsingTouch","onDocumentTouch","performance","onDocumentMouseMove","lastMouseMoveTime","onDocumentClick","isClickTrigger","clearDelayTimeouts","onWindowBlur","idCounter","createTippy","collectionProps","lastTriggerEventType","lastMouseMoveEvent","showTimeoutId","hideTimeoutId","transitionEndListener","isScheduledToShow","debouncedOnMouseMove","onMouseMove","createPopperElement","popperChildren","popperInstance","isEnabled","isVisible","isMounted","isShown","disable","addTriggersToReference","createPopperInstance","scheduleShow","hasAttribute","positionVirtualReferenceNearCursor","_lastMouseMoveEvent","clientX","clientY","isVerticalPlacement","isHorizontalPlacement","isHorizontal","removeFollowCursorListener","targetEl","createDelegateChildTippy","hasFollowCursorBehavior","scheduleHide","cleanupOldMouseListeners","onTrigger","isEventListenerStopped","MouseEvent","referenceTheCursorIsOver","isCursorOverPopper","isCursorOverReference","popperPlacement","exceedsTop","exceedsBottom","exceedsLeft","exceedsRight","isCursorOutsideInteractiveBorder","onMouseLeave","onBlur","relatedTarget","onDelegateShow","onDelegateHide","supportsTouch","isTouchEvent","_instance$popperChild","preventOverflowModifier","applyMutations","computedPadding","mount","shouldEnableListeners","margin","reflow","afterPopperPositionUpdates","makeSticky","updatePosition","onTransitionedOut","onTransitionEnd","onTransitionedIn","handler","removeTriggersFromReference","getInnerElements","animationFrameId","prevProps","nextProps","_getChildren","replaceChild","removeInteractive","removeInertia","updatePopperElement","visibility","transitionDelay","destroyTargetInstances","globalEventListenersBound","tippy","targets","virtualReference","polyfills","isVirtual","classNames","polyfillElementPrototypeProperties","instances","NodeList","getArrayOfElements","partialDefaults","_ref$delay","_ref$duration","isAnyTippyOpen","_originalProps","updateInstances","setIsAnyTippyOpen","appendTooltips","onResizeCallback","tt","getHtml","class","$steps","$subStepsList","buildSteps","$w","totalSteps","$step","$bullet","$width","$height","$subWidth","$subHeight","eventTrigger","eventOnResize","openOnInit","$accordions","displayType","slideUp","slideDown","$footerAccordion","toggleClass","toggleAccordion"],"mappings":"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ACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,KACV,IAAU,KACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,KACV,IAAU,KACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,KACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,KACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,KACV,IAAU,KACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,KACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,KACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,KACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,KACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,KACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,QAMdL,EAAGK,OAAO,oBAAoB,CAC5B,aACC,SAAUjQ,GACX,SAAS4f,EAAa3V,EAAU3T,GAC9BspB,EAAY3L,UAAUlQ,YAAYpd,KAAKsP,MAkCzC,OA/BA+J,EAAM4T,OAAOgM,EAAa5f,EAAM8U,YAEhC8K,EAAYx3B,UAAU8vB,QAAU,SAAU3f,GACxC,MAAM,IAAIoW,MAAM,2DAGlBiR,EAAYx3B,UAAUy3B,MAAQ,SAAUnc,EAAQnL,GAC9C,MAAM,IAAIoW,MAAM,yDAGlBiR,EAAYx3B,UAAUJ,KAAO,SAAUqxB,EAAWC,KAIlDsG,EAAYx3B,UAAUqP,QAAU,aAIhCmoB,EAAYx3B,UAAU03B,iBAAmB,SAAUzG,EAAWhkB,GAC5D,IAAIyV,EAAKuO,EAAUvO,GAAK,WASxB,OAPAA,GAAM9K,EAAMkV,cAAc,GAEX,MAAX7f,EAAKyV,GACPA,GAAM,IAAMzV,EAAKyV,GAAGnhB,WAEpBmhB,GAAM,IAAM9K,EAAMkV,cAAc,GAE3BpK,GAGF8U,KAGThQ,EAAGK,OAAO,sBAAsB,CAC9B,SACA,WACA,WACC,SAAU2P,EAAa5f,EAAOG,GAC/B,SAAS4f,EAAe9V,EAAU3T,GAChCL,KAAKgU,SAAWA,EAChBhU,KAAKK,QAAUA,EAEfypB,EAAc9L,UAAUlQ,YAAYpd,KAAKsP,MAkR3C,OA/QA+J,EAAM4T,OAAOmM,EAAeH,GAE5BG,EAAc33B,UAAU8vB,QAAU,SAAU3f,GAC1C,IAAIlD,EAAO,GACP4iB,EAAOhiB,KAEXA,KAAKgU,SAASlV,KAAK,aAAagN,MAAK,WACnC,IAAIyV,EAAUrX,EAAElK,MAEZwhB,EAASQ,EAAKV,KAAKC,GAEvBniB,EAAKqD,KAAK+e,MAGZlf,EAASlD,IAGX0qB,EAAc33B,UAAU43B,OAAS,SAAU3qB,GACzC,IAAI4iB,EAAOhiB,KAKX,GAHAZ,EAAK8iB,UAAW,EAGZhY,EAAE9K,EAAKxL,SAASiY,GAAG,UAKrB,OAJAzM,EAAKxL,QAAQsuB,UAAW,OAExBliB,KAAKgU,SAASR,QAAQ,UAKxB,GAAIxT,KAAKgU,SAASzU,KAAK,YACrBS,KAAKiiB,SAAQ,SAAU+H,GACrB,IAAI9e,EAAM,IAEV9L,EAAO,CAACA,IACHqD,KAAKoL,MAAMzO,EAAM4qB,GAEtB,IAAK,IAAIn5B,EAAI,EAAGA,EAAIuO,EAAKxM,OAAQ/B,IAAK,CACpC,IAAIgkB,EAAKzV,EAAKvO,GAAGgkB,IAEW,IAAxB3K,EAAEoF,QAAQuF,EAAI3J,IAChBA,EAAIzI,KAAKoS,GAIbmN,EAAKhO,SAAS9I,IAAIA,GAClB8W,EAAKhO,SAASR,QAAQ,iBAEnB,CACL,IAAItI,EAAM9L,EAAKyV,GAEf7U,KAAKgU,SAAS9I,IAAIA,GAClBlL,KAAKgU,SAASR,QAAQ,YAI1BsW,EAAc33B,UAAU83B,SAAW,SAAU7qB,GAC3C,IAAI4iB,EAAOhiB,KAEX,GAAKA,KAAKgU,SAASzU,KAAK,YAAxB,CAMA,GAFAH,EAAK8iB,UAAW,EAEZhY,EAAE9K,EAAKxL,SAASiY,GAAG,UAKrB,OAJAzM,EAAKxL,QAAQsuB,UAAW,OAExBliB,KAAKgU,SAASR,QAAQ,UAKxBxT,KAAKiiB,SAAQ,SAAU+H,GAGrB,IAFA,IAAI9e,EAAM,GAEDra,EAAI,EAAGA,EAAIm5B,EAAYp3B,OAAQ/B,IAAK,CAC3C,IAAIgkB,EAAKmV,EAAYn5B,GAAGgkB,GAEpBA,IAAOzV,EAAKyV,KAA8B,IAAxB3K,EAAEoF,QAAQuF,EAAI3J,IAClCA,EAAIzI,KAAKoS,GAIbmN,EAAKhO,SAAS9I,IAAIA,GAElB8W,EAAKhO,SAASR,QAAQ,eAI1BsW,EAAc33B,UAAUJ,KAAO,SAAUqxB,EAAWC,GAClD,IAAIrB,EAAOhiB,KAEXA,KAAKojB,UAAYA,EAEjBA,EAAU3Y,GAAG,UAAU,SAAUgD,GAC/BuU,EAAK+H,OAAOtc,EAAOrO,SAGrBgkB,EAAU3Y,GAAG,YAAY,SAAUgD,GACjCuU,EAAKiI,SAASxc,EAAOrO,UAIzB0qB,EAAc33B,UAAUqP,QAAU,WAEhCxB,KAAKgU,SAASlV,KAAK,KAAKgN,MAAK,WAE3B/B,EAAM0W,WAAWzgB,UAIrB8pB,EAAc33B,UAAUy3B,MAAQ,SAAUnc,EAAQnL,GAChD,IAAIlD,EAAO,GACP4iB,EAAOhiB,KAEIA,KAAKgU,SAASxZ,WAEpBsR,MAAK,WACZ,IAAIyV,EAAUrX,EAAElK,MAEhB,GAAKuhB,EAAQ1V,GAAG,WAAc0V,EAAQ1V,GAAG,YAAzC,CAIA,IAAI2V,EAASQ,EAAKV,KAAKC,GAEnB2I,EAAUlI,EAAKkI,QAAQzc,EAAQ+T,GAEnB,OAAZ0I,GACF9qB,EAAKqD,KAAKynB,OAId5nB,EAAS,CACP+e,QAASjiB,KAIb0qB,EAAc33B,UAAUg4B,WAAa,SAAU/I,GAC7CrX,EAAMkW,WAAWjgB,KAAKgU,SAAUoN,IAGlC0I,EAAc33B,UAAUqvB,OAAS,SAAUpiB,GACzC,IAAIoiB,EAEApiB,EAAK5E,UACPgnB,EAAS/uB,SAASiwB,cAAc,aACzBI,MAAQ1jB,EAAK+T,UAIOrc,KAF3B0qB,EAAS/uB,SAASiwB,cAAc,WAErB0H,YACT5I,EAAO4I,YAAchrB,EAAK+T,KAE1BqO,EAAO6I,UAAYjrB,EAAK+T,UAIZrc,IAAZsI,EAAKyV,KACP2M,EAAOhwB,MAAQ4N,EAAKyV,IAGlBzV,EAAKkjB,WACPd,EAAOc,UAAW,GAGhBljB,EAAK8iB,WACPV,EAAOU,UAAW,GAGhB9iB,EAAKgW,QACPoM,EAAOpM,MAAQhW,EAAKgW,OAGtB,IAAImM,EAAUrX,EAAEsX,GAEZ8I,EAAiBtqB,KAAKuqB,eAAenrB,GAMzC,OALAkrB,EAAe12B,QAAU4tB,EAGzBzX,EAAMwW,UAAUiB,EAAQ,OAAQ8I,GAEzB/I,GAGTuI,EAAc33B,UAAUmvB,KAAO,SAAUC,GACvC,IAAIniB,EAAO,GAIX,GAAY,OAFZA,EAAO2K,EAAMyW,QAAQe,EAAQ,GAAI,SAG/B,OAAOniB,EAGT,GAAImiB,EAAQ1V,GAAG,UACbzM,EAAO,CACLyV,GAAI0M,EAAQrW,MACZiI,KAAMoO,EAAQpO,OACdmP,SAAUf,EAAQhiB,KAAK,YACvB2iB,SAAUX,EAAQhiB,KAAK,YACvB6V,MAAOmM,EAAQhiB,KAAK,eAEjB,GAAIgiB,EAAQ1V,GAAG,YAAa,CACjCzM,EAAO,CACL+T,KAAMoO,EAAQhiB,KAAK,SACnB/E,SAAU,GACV4a,MAAOmM,EAAQhiB,KAAK,UAMtB,IAHA,IAAIyjB,EAAYzB,EAAQ/mB,SAAS,UAC7BA,EAAW,GAEN5J,EAAI,EAAGA,EAAIoyB,EAAUpwB,OAAQhC,IAAK,CACzC,IAAIsyB,EAAShZ,EAAE8Y,EAAUpyB,IAErBqyB,EAAQjjB,KAAKshB,KAAK4B,GAEtB1oB,EAASiI,KAAKwgB,GAGhB7jB,EAAK5E,SAAWA,EAQlB,OALA4E,EAAOY,KAAKuqB,eAAenrB,IACtBxL,QAAU2tB,EAAQ,GAEvBxX,EAAMwW,UAAUgB,EAAQ,GAAI,OAAQniB,GAE7BA,GAGT0qB,EAAc33B,UAAUo4B,eAAiB,SAAUjJ,GA6BjD,OA5BIA,IAASrwB,OAAOqwB,KAClBA,EAAO,CACLzM,GAAIyM,EACJnO,KAAMmO,IAaK,OATfA,EAAOpX,EAAEC,OAAO,GAAI,CAClBgJ,KAAM,IACLmO,IAOMzM,KACPyM,EAAKzM,GAAKyM,EAAKzM,GAAGnhB,YAGH,MAAb4tB,EAAKnO,OACPmO,EAAKnO,KAAOmO,EAAKnO,KAAKzf,YAGF,MAAlB4tB,EAAKsB,WAAqBtB,EAAKzM,IAAwB,MAAlB7U,KAAKojB,YAC5C9B,EAAKsB,UAAY5iB,KAAK6pB,iBAAiB7pB,KAAKojB,UAAW9B,IAGlDpX,EAAEC,OAAO,GAjBD,CACb+X,UAAU,EACVI,UAAU,GAekBhB,IAGhCwI,EAAc33B,UAAU+3B,QAAU,SAAUzc,EAAQrO,GAGlD,OAFcY,KAAKK,QAAQjP,IAAI,UAExBo5B,CAAQ/c,EAAQrO,IAGlB0qB,KAGTnQ,EAAGK,OAAO,qBAAqB,CAC7B,WACA,WACA,WACC,SAAU8P,EAAe/f,EAAOG,GACjC,SAASugB,EAAczW,EAAU3T,GAC/B,IAAIjB,EAAOiB,EAAQjP,IAAI,SAAW,GAElCq5B,EAAazM,UAAUlQ,YAAYpd,KAAKsP,KAAMgU,EAAU3T,GAExDL,KAAKmqB,WAAWnqB,KAAK0qB,iBAAiBtrB,IAmExC,OAhEA2K,EAAM4T,OAAO8M,EAAcX,GAE3BW,EAAat4B,UAAU43B,OAAS,SAAU3qB,GACxC,IAAImiB,EAAUvhB,KAAKgU,SAASlV,KAAK,UAAU1B,QAAO,SAAU7M,EAAGo6B,GAC7D,OAAOA,EAAIn5B,OAAS4N,EAAKyV,GAAGnhB,cAGP,IAAnB6tB,EAAQ3uB,SACV2uB,EAAUvhB,KAAKwhB,OAAOpiB,GAEtBY,KAAKmqB,WAAW5I,IAGlBkJ,EAAazM,UAAU+L,OAAOr5B,KAAKsP,KAAMZ,IAG3CqrB,EAAat4B,UAAUu4B,iBAAmB,SAAUtrB,GAClD,IAAI4iB,EAAOhiB,KAEP4qB,EAAY5qB,KAAKgU,SAASlV,KAAK,UAC/B+rB,EAAcD,EAAU9tB,KAAI,WAC9B,OAAOklB,EAAKV,KAAKpX,EAAElK,OAAO6U,MACzBzjB,MAECgwB,EAAW,GAGf,SAAS0J,EAAUxJ,GACjB,OAAO,WACL,OAAOpX,EAAElK,MAAMkL,OAASoW,EAAKzM,IAIjC,IAAK,IAAIhkB,EAAI,EAAGA,EAAIuO,EAAKxM,OAAQ/B,IAAK,CACpC,IAAIywB,EAAOthB,KAAKuqB,eAAenrB,EAAKvO,IAGpC,GAAIqZ,EAAEoF,QAAQgS,EAAKzM,GAAIgW,IAAgB,EAAvC,CACE,IAAIE,EAAkBH,EAAUxtB,OAAO0tB,EAASxJ,IAE5C0J,EAAehrB,KAAKshB,KAAKyJ,GACzBE,EAAU/gB,EAAEC,QAAO,EAAM,GAAImX,EAAM0J,GAEnCE,EAAalrB,KAAKwhB,OAAOyJ,GAE7BF,EAAgBI,YAAYD,OAR9B,CAaA,IAAI3J,EAAUvhB,KAAKwhB,OAAOF,GAE1B,GAAIA,EAAK9mB,SAAU,CACjB,IAAIwoB,EAAYhjB,KAAK0qB,iBAAiBpJ,EAAK9mB,UAE3CuP,EAAMkW,WAAWsB,EAASyB,GAG5B5B,EAAS3e,KAAK8e,IAGhB,OAAOH,GAGFqJ,KAGT9Q,EAAGK,OAAO,oBAAoB,CAC5B,UACA,WACA,WACC,SAAUyQ,EAAc1gB,EAAOG,GAChC,SAASkhB,EAAapX,EAAU3T,GAC9BL,KAAKqrB,YAAcrrB,KAAKsrB,eAAejrB,EAAQjP,IAAI,SAEZ,MAAnC4O,KAAKqrB,YAAYE,iBACnBvrB,KAAKurB,eAAiBvrB,KAAKqrB,YAAYE,gBAGzCH,EAAYpN,UAAUlQ,YAAYpd,KAAKsP,KAAMgU,EAAU3T,GAgGzD,OA7FA0J,EAAM4T,OAAOyN,EAAaX,GAE1BW,EAAYj5B,UAAUm5B,eAAiB,SAAUjrB,GAC/C,IAAIiN,EAAW,CACblO,KAAM,SAAUqO,GACd,OAAOvD,EAAEC,OAAO,GAAIsD,EAAQ,CAC1B+d,EAAG/d,EAAOqb,QAGd2C,UAAW,SAAUhe,EAAQgI,EAASiW,GACpC,IAAIC,EAAWzhB,EAAE4O,KAAKrL,GAKtB,OAHAke,EAASt4B,KAAKoiB,GACdkW,EAASC,KAAKF,GAEPC,IAIX,OAAOzhB,EAAEC,OAAO,GAAImD,EAAUjN,GAAS,IAGzC+qB,EAAYj5B,UAAUo5B,eAAiB,SAAUlK,GAC/C,OAAOA,GAGT+J,EAAYj5B,UAAUy3B,MAAQ,SAAUnc,EAAQnL,GAC9C,IACI0f,EAAOhiB,KAEU,MAAjBA,KAAK6rB,WAEH3hB,EAAE1W,WAAWwM,KAAK6rB,SAAStS,QAC7BvZ,KAAK6rB,SAAStS,QAGhBvZ,KAAK6rB,SAAW,MAGlB,IAAIxrB,EAAU6J,EAAEC,OAAO,CACrBwF,KAAM,OACL3P,KAAKqrB,aAUR,SAASS,IACP,IAAIH,EAAWtrB,EAAQorB,UAAUprB,GAAS,SAAUjB,GAClD,IAAIiiB,EAAUW,EAAKuJ,eAAensB,EAAMqO,GAEpCuU,EAAK3hB,QAAQjP,IAAI,UAAYoB,OAAOoN,SAAWA,QAAQ8T,QAEpD2N,GAAYA,EAAQA,SAAYnX,EAAE6N,QAAQsJ,EAAQA,UACrDzhB,QAAQ8T,MACN,4FAMNpR,EAAS+e,MACR,cAGG,WAAYsK,IACS,IAApBA,EAASI,QAAoC,MAApBJ,EAASI,SAIvC/J,EAAKxO,QAAQ,kBAAmB,CAC9BjB,QAAS,oBAIbyP,EAAK6J,SAAWF,EApCS,mBAAhBtrB,EAAQ4P,MACjB5P,EAAQ4P,IAAM5P,EAAQ4P,IAAIvf,KAAKsP,KAAKgU,SAAUvG,IAGpB,mBAAjBpN,EAAQjB,OACjBiB,EAAQjB,KAAOiB,EAAQjB,KAAK1O,KAAKsP,KAAKgU,SAAUvG,IAkC9CzN,KAAKqrB,YAAYW,OAAwB,MAAfve,EAAOqb,MAC/B9oB,KAAKisB,eACPz5B,OAAO05B,aAAalsB,KAAKisB,eAG3BjsB,KAAKisB,cAAgBz5B,OAAOe,WAAWu4B,EAAS9rB,KAAKqrB,YAAYW,QAEjEF,KAIGV,KAGTzR,EAAGK,OAAO,oBAAoB,CAC5B,WACC,SAAU9P,GACX,SAASiiB,EAAMlF,EAAWjT,EAAU3T,GAClC,IAAI+rB,EAAO/rB,EAAQjP,IAAI,QAEnBi7B,EAAYhsB,EAAQjP,IAAI,kBAEV0F,IAAdu1B,IACFrsB,KAAKqsB,UAAYA,GAGnB,IAAIC,EAAYjsB,EAAQjP,IAAI,aAQ5B,QANkB0F,IAAdw1B,IACAtsB,KAAKssB,UAAYA,GAGrBrF,EAAUv2B,KAAKsP,KAAMgU,EAAU3T,GAE3B6J,EAAE6N,QAAQqU,GACZ,IAAK,IAAI36B,EAAI,EAAGA,EAAI26B,EAAKx5B,OAAQnB,IAAK,CACpC,IAAI86B,EAAMH,EAAK36B,GACX6vB,EAAOthB,KAAKuqB,eAAegC,GAE3BhL,EAAUvhB,KAAKwhB,OAAOF,GAE1BthB,KAAKgU,SAASmC,OAAOoL,IAmG3B,OA9FA4K,EAAKh6B,UAAUy3B,MAAQ,SAAU3C,EAAWxZ,EAAQnL,GAClD,IAAI0f,EAAOhiB,KAEXA,KAAKwsB,iBAEc,MAAf/e,EAAOqb,MAA+B,MAAfrb,EAAOgf,KAuDlCxF,EAAUv2B,KAAKsP,KAAMyN,GAlDrB,SAAS8H,EAAShc,EAAK0pB,GAGrB,IAFA,IAAI7jB,EAAO7F,EAAI8nB,QAEN9wB,EAAI,EAAGA,EAAI6O,EAAKxM,OAAQrC,IAAK,CACpC,IAAIixB,EAASpiB,EAAK7O,GAEdm8B,EACiB,MAAnBlL,EAAOhnB,WACN+a,EAAQ,CACP8L,QAASG,EAAOhnB,WACf,GAQL,IALkBgnB,EAAOrO,MAAQ,IAAI/R,iBACnBqM,EAAOqb,MAAQ,IAAI1nB,eAIpBsrB,EACf,OAAIzJ,IAIJ1pB,EAAI6F,KAAOA,OACXkD,EAAS/I,IAMb,GAAI0pB,EACF,OAAO,EAGT,IAAIsJ,EAAMvK,EAAKqK,UAAU5e,GAEzB,GAAW,MAAP8e,EAAa,CACf,IAAIhL,EAAUS,EAAKR,OAAO+K,GAC1BhL,EAAQjX,KAAK,oBAAoB,GAEjC0X,EAAKmI,WAAW,CAAC5I,IAEjBS,EAAKsK,UAAUltB,EAAMmtB,GAGvBhzB,EAAI8nB,QAAUjiB,EAEdkD,EAAS/I,MAnDT0tB,EAAUv2B,KAAKsP,KAAMyN,EAAQnL,IAyDjC6pB,EAAKh6B,UAAUk6B,UAAY,SAAUpF,EAAWxZ,GAC9C,IAAIqb,EAAO5e,EAAEzF,KAAKgJ,EAAOqb,MAEzB,MAAa,KAATA,EACK,KAGF,CACLjU,GAAIiU,EACJ3V,KAAM2V,IAIVqD,EAAKh6B,UAAUm6B,UAAY,SAAUjT,EAAGja,EAAMmtB,GAC5CntB,EAAKwO,QAAQ2e,IAGfJ,EAAKh6B,UAAUq6B,eAAiB,SAAUnT,GAC9BrZ,KAAK2sB,SAEA3sB,KAAKgU,SAASlV,KAAK,4BAEzBgN,MAAK,WACR9L,KAAKkiB,UAIThY,EAAElK,MAAMsL,aAIL6gB,KAGTxS,EAAGK,OAAO,yBAAyB,CACjC,WACC,SAAU9P,GACX,SAAS0iB,EAAW3F,EAAWjT,EAAU3T,GACvC,IAAIwsB,EAAYxsB,EAAQjP,IAAI,kBAEV0F,IAAd+1B,IACF7sB,KAAK6sB,UAAYA,GAGnB5F,EAAUv2B,KAAKsP,KAAMgU,EAAU3T,GAwGjC,OArGAusB,EAAUz6B,UAAUJ,KAAO,SAAUk1B,EAAW7D,EAAWC,GACzD4D,EAAUv2B,KAAKsP,KAAMojB,EAAWC,GAEhCrjB,KAAKgoB,QAAW5E,EAAU0J,SAAS9E,SAAW5E,EAAUwD,UAAUoB,SAChE3E,EAAWvkB,KAAK,2BAGpB8tB,EAAUz6B,UAAUy3B,MAAQ,SAAU3C,EAAWxZ,EAAQnL,GACvD,IAAI0f,EAAOhiB,KA+BXyN,EAAOqb,KAAOrb,EAAOqb,MAAQ,GAE7B,IAAIiE,EAAY/sB,KAAK6sB,UAAUpf,EAAQzN,KAAKK,SA/B5C,SAA0BjB,GAExB,IAAIkiB,EAAOU,EAAKuI,eAAenrB,GAS/B,IALuB4iB,EAAKhO,SAASlV,KAAK,UAAU1B,QAAO,WACzD,OAAO8M,EAAElK,MAAMkL,QAAUoW,EAAKzM,MAIVjiB,OAAQ,CAC5B,IAAI2uB,EAAUS,EAAKR,OAAOF,GAC1BC,EAAQjX,KAAK,oBAAoB,GAEjC0X,EAAKwK,iBACLxK,EAAKmI,WAAW,CAAC5I,KAOrB,SAAiBniB,GACf4iB,EAAKxO,QAAQ,SAAU,CACrBpU,KAAMA,IALR2qB,CAAOzI,MAaLyL,EAAUjE,OAASrb,EAAOqb,OAExB9oB,KAAKgoB,QAAQp1B,SACfoN,KAAKgoB,QAAQ9c,IAAI6hB,EAAUjE,MAC3B9oB,KAAKgoB,QAAQzU,SAGf9F,EAAOqb,KAAOiE,EAAUjE,MAG1B7B,EAAUv2B,KAAKsP,KAAMyN,EAAQnL,IAG/BsqB,EAAUz6B,UAAU06B,UAAY,SAAUxT,EAAG5L,EAAQpN,EAASiC,GAY5D,IAXA,IAAI0qB,EAAa3sB,EAAQjP,IAAI,oBAAsB,GAC/C03B,EAAOrb,EAAOqb,KACdv4B,EAAI,EAEJ87B,EAAYrsB,KAAKqsB,WAAa,SAAU5e,GAC1C,MAAO,CACLoH,GAAIpH,EAAOqb,KACX3V,KAAM1F,EAAOqb,OAIVv4B,EAAIu4B,EAAKl2B,QAAQ,CACtB,IAAIq6B,EAAWnE,EAAKv4B,GAEpB,IAAyC,IAArC2Z,EAAEoF,QAAQ2d,EAAUD,GAAxB,CAMA,IAAIvR,EAAOqN,EAAK3U,OAAO,EAAG5jB,GAKtB6O,EAAOitB,EAJMniB,EAAEC,OAAO,GAAIsD,EAAQ,CACpCqb,KAAMrN,KAKI,MAARrc,GAKJkD,EAASlD,GAGT0pB,EAAOA,EAAK3U,OAAO5jB,EAAI,IAAM,GAC7BA,EAAI,GARFA,SAbAA,IAwBJ,MAAO,CACLu4B,KAAMA,IAIH8D,KAGTjT,EAAGK,OAAO,kCAAkC,IAEzC,WACD,SAASkT,EAAoBjG,EAAWkG,EAAI9sB,GAC1CL,KAAKotB,mBAAqB/sB,EAAQjP,IAAI,sBAEtC61B,EAAUv2B,KAAKsP,KAAMmtB,EAAI9sB,GAsB3B,OAnBA6sB,EAAmB/6B,UAAUy3B,MAAQ,SAAU3C,EAAWxZ,EAAQnL,GAChEmL,EAAOqb,KAAOrb,EAAOqb,MAAQ,GAEzBrb,EAAOqb,KAAKl2B,OAASoN,KAAKotB,mBAC5BptB,KAAKwT,QAAQ,kBAAmB,CAC9BjB,QAAS,gBACT7E,KAAM,CACJ2f,QAASrtB,KAAKotB,mBACdvE,MAAOpb,EAAOqb,KACdrb,OAAQA,KAOdwZ,EAAUv2B,KAAKsP,KAAMyN,EAAQnL,IAGxB4qB,KAGTvT,EAAGK,OAAO,kCAAkC,IAEzC,WACD,SAASsT,EAAoBrG,EAAWkG,EAAI9sB,GAC1CL,KAAKutB,mBAAqBltB,EAAQjP,IAAI,sBAEtC61B,EAAUv2B,KAAKsP,KAAMmtB,EAAI9sB,GAuB3B,OApBAitB,EAAmBn7B,UAAUy3B,MAAQ,SAAU3C,EAAWxZ,EAAQnL,GAChEmL,EAAOqb,KAAOrb,EAAOqb,MAAQ,GAEzB9oB,KAAKutB,mBAAqB,GAC1B9f,EAAOqb,KAAKl2B,OAASoN,KAAKutB,mBAC5BvtB,KAAKwT,QAAQ,kBAAmB,CAC9BjB,QAAS,eACT7E,KAAM,CACJ8f,QAASxtB,KAAKutB,mBACd1E,MAAOpb,EAAOqb,KACdrb,OAAQA,KAOdwZ,EAAUv2B,KAAKsP,KAAMyN,EAAQnL,IAGxBgrB,KAGT3T,EAAGK,OAAO,sCAAsC,IAE7C,WACD,SAASyT,EAAwBxG,EAAWkG,EAAI9sB,GAC9CL,KAAK0tB,uBAAyBrtB,EAAQjP,IAAI,0BAE1C61B,EAAUv2B,KAAKsP,KAAMmtB,EAAI9sB,GAuB3B,OApBAotB,EAAuBt7B,UAAUy3B,MAC/B,SAAU3C,EAAWxZ,EAAQnL,GAC3B,IAAI0f,EAAOhiB,KAEXA,KAAKiiB,SAAQ,SAAU+H,GACrB,IAAI/W,EAAuB,MAAf+W,EAAsBA,EAAYp3B,OAAS,EACnDovB,EAAK0L,uBAAyB,GAChCza,GAAS+O,EAAK0L,uBACd1L,EAAKxO,QAAQ,kBAAmB,CAC9BjB,QAAS,kBACT7E,KAAM,CACJ8f,QAASxL,EAAK0L,0BAKpBzG,EAAUv2B,KAAKsxB,EAAMvU,EAAQnL,OAI5BmrB,KAGT9T,EAAGK,OAAO,mBAAmB,CAC3B,SACA,YACC,SAAU9P,EAAGH,GACd,SAAS4jB,EAAU3Z,EAAU3T,GAC3BL,KAAKgU,SAAWA,EAChBhU,KAAKK,QAAUA,EAEfstB,EAAS3P,UAAUlQ,YAAYpd,KAAKsP,MAgCtC,OA7BA+J,EAAM4T,OAAOgQ,EAAU5jB,EAAM8U,YAE7B8O,EAASx7B,UAAUyuB,OAAS,WAC1B,IAAIa,EAAYvX,EACd,+EASF,OAJAuX,EAAUnX,KAAK,MAAOtK,KAAKK,QAAQjP,IAAI,QAEvC4O,KAAKyhB,UAAYA,EAEVA,GAGTkM,EAASx7B,UAAUJ,KAAO,aAI1B47B,EAASx7B,UAAUsO,SAAW,SAAUghB,EAAW4B,KAInDsK,EAASx7B,UAAUqP,QAAU,WAE3BxB,KAAKyhB,UAAUnW,UAGVqiB,KAGThU,EAAGK,OAAO,0BAA0B,CAClC,SACA,aACC,SAAU9P,EAAGH,GACd,SAASge,KAgGT,OA9FAA,EAAO51B,UAAUyuB,OAAS,SAAUqG,GAClC,IAAIP,EAAYO,EAAUv2B,KAAKsP,MAE3BgoB,EAAU9d,EACZ,iOAYF,OALAlK,KAAKioB,iBAAmBD,EACxBhoB,KAAKgoB,QAAUA,EAAQlpB,KAAK,SAE5B4nB,EAAUjE,QAAQuF,GAEXtB,GAGTqB,EAAO51B,UAAUJ,KAAO,SAAUk1B,EAAW7D,EAAWC,GACtD,IAAIrB,EAAOhiB,KAEXinB,EAAUv2B,KAAKsP,KAAMojB,EAAWC,GAEhCrjB,KAAKgoB,QAAQvd,GAAG,WAAW,SAAU8Z,GACnCvC,EAAKxO,QAAQ,WAAY+Q,GAEzBvC,EAAKmG,gBAAkB5D,EAAI6D,wBAM7BpoB,KAAKgoB,QAAQvd,GAAG,SAAS,SAAU8Z,GAEjCra,EAAElK,MAAMkX,IAAI,YAGdlX,KAAKgoB,QAAQvd,GAAG,eAAe,SAAU8Z,GACvCvC,EAAK0G,aAAanE,MAGpBnB,EAAU3Y,GAAG,QAAQ,WACnBuX,EAAKgG,QAAQ1d,KAAK,WAAY,GAE9B0X,EAAKgG,QAAQzU,QAEb/gB,OAAOe,YAAW,WAChByuB,EAAKgG,QAAQzU,UACZ,MAGL6P,EAAU3Y,GAAG,SAAS,WACpBuX,EAAKgG,QAAQ1d,KAAK,YAAa,GAE/B0X,EAAKgG,QAAQ9c,IAAI,IACjB8W,EAAKgG,QAAQ4F,UAGfxK,EAAU3Y,GAAG,SAAS,WACf2Y,EAAUE,UACbtB,EAAKgG,QAAQzU,WAIjB6P,EAAU3Y,GAAG,eAAe,SAAUgD,GACX,MAArBA,EAAOmc,MAAMd,MAAsC,KAAtBrb,EAAOmc,MAAMd,OAC3B9G,EAAK6L,WAAWpgB,GAG/BuU,EAAKiG,iBAAiBnY,YAAY,wBAElCkS,EAAKiG,iBAAiBpY,SAAS,6BAMvCkY,EAAO51B,UAAUu2B,aAAe,SAAUnE,GACxC,IAAKvkB,KAAKmoB,gBAAiB,CACzB,IAAIU,EAAQ7oB,KAAKgoB,QAAQ9c,MAEzBlL,KAAKwT,QAAQ,QAAS,CACpBsV,KAAMD,IAIV7oB,KAAKmoB,iBAAkB,GAGzBJ,EAAO51B,UAAU07B,WAAa,SAAUxU,EAAG5L,GACzC,OAAO,GAGFsa,KAGTpO,EAAGK,OAAO,mCAAmC,IAE1C,WACD,SAAS8T,EAAiB7G,EAAWjT,EAAU3T,EAASsgB,GACtD3gB,KAAKknB,YAAclnB,KAAKmnB,qBAAqB9mB,EAAQjP,IAAI,gBAEzD61B,EAAUv2B,KAAKsP,KAAMgU,EAAU3T,EAASsgB,GAkC1C,OA/BAmN,EAAgB37B,UAAUgkB,OAAS,SAAU8Q,EAAW7nB,GACtDA,EAAKiiB,QAAUrhB,KAAK+tB,kBAAkB3uB,EAAKiiB,SAE3C4F,EAAUv2B,KAAKsP,KAAMZ,IAGvB0uB,EAAgB37B,UAAUg1B,qBAAuB,SAAU9N,EAAG6N,GAQ5D,MAP2B,iBAAhBA,IACTA,EAAc,CACZrS,GAAI,GACJ1B,KAAM+T,IAIHA,GAGT4G,EAAgB37B,UAAU47B,kBAAoB,SAAU1U,EAAGja,GAGzD,IAFA,IAAI4uB,EAAe5uB,EAAKE,MAAM,GAErBzO,EAAIuO,EAAKxM,OAAS,EAAG/B,GAAK,EAAGA,IAAK,CACzC,IAAIywB,EAAOliB,EAAKvO,GAEZmP,KAAKknB,YAAYrS,KAAOyM,EAAKzM,IAC/BmZ,EAAanS,OAAOhrB,EAAG,GAI3B,OAAOm9B,GAGFF,KAGTnU,EAAGK,OAAO,kCAAkC,CAC1C,WACC,SAAU9P,GACX,SAAS+jB,EAAgBhH,EAAWjT,EAAU3T,EAASsgB,GACrD3gB,KAAKkuB,WAAa,GAElBjH,EAAUv2B,KAAKsP,KAAMgU,EAAU3T,EAASsgB,GAExC3gB,KAAKmuB,aAAenuB,KAAKouB,oBACzBpuB,KAAKqiB,SAAU,EA8EjB,OA3EA4L,EAAe97B,UAAUgkB,OAAS,SAAU8Q,EAAW7nB,GACrDY,KAAKmuB,aAAa7iB,SAClBtL,KAAKqiB,SAAU,EAEf4E,EAAUv2B,KAAKsP,KAAMZ,GAEjBY,KAAKquB,gBAAgBjvB,IACvBY,KAAK6gB,SAAS1K,OAAOnW,KAAKmuB,eAI9BF,EAAe97B,UAAUJ,KAAO,SAAUk1B,EAAW7D,EAAWC,GAC9D,IAAIrB,EAAOhiB,KAEXinB,EAAUv2B,KAAKsP,KAAMojB,EAAWC,GAEhCD,EAAU3Y,GAAG,SAAS,SAAUgD,GAC9BuU,EAAKkM,WAAazgB,EAClBuU,EAAKK,SAAU,KAGjBe,EAAU3Y,GAAG,gBAAgB,SAAUgD,GACrCuU,EAAKkM,WAAazgB,EAClBuU,EAAKK,SAAU,KAGjBriB,KAAK6gB,SAASpW,GAAG,UAAU,WACzB,IAAI6jB,EAAoBpkB,EAAE1T,SACxB/D,SAAS2C,gBACT4sB,EAAKmM,aAAa,KAGhBnM,EAAKK,SAAYiM,GAIDtM,EAAKnB,SAASrlB,SAAShE,IACzCwqB,EAAKnB,SAASmD,aAAY,GAIR,IAHIhC,EAAKmM,aAAa3yB,SAAShE,IACjDwqB,EAAKmM,aAAanK,aAAY,IAG9BhC,EAAKuM,eAKXN,EAAe97B,UAAUo8B,SAAW,WAClCvuB,KAAKqiB,SAAU,EAEf,IAAI5U,EAASvD,EAAEC,OAAO,GAAI,CAACsiB,KAAM,GAAIzsB,KAAKkuB,YAE1CzgB,EAAOgf,OAEPzsB,KAAKwT,QAAQ,eAAgB/F,IAG/BwgB,EAAe97B,UAAUk8B,gBAAkB,SAAUhV,EAAGja,GACtD,OAAOA,EAAKovB,YAAcpvB,EAAKovB,WAAWC,MAG5CR,EAAe97B,UAAUi8B,kBAAoB,WAC3C,IAAI7M,EAAUrX,EACZ,oHAKEqI,EAAUvS,KAAKK,QAAQjP,IAAI,gBAAgBA,IAAI,eAInD,OAFAmwB,EAAQvqB,KAAKub,EAAQvS,KAAKkuB,aAEnB3M,GAGF0M,KAGTtU,EAAGK,OAAO,8BAA8B,CACtC,SACA,aACC,SAAU9P,EAAGH,GACd,SAAS2kB,EAAYzH,EAAWjT,EAAU3T,GACxCL,KAAK2uB,gBAAkBtuB,EAAQjP,IAAI,mBAAqB8Y,EAAEzX,SAAS8B,MAEnE0yB,EAAUv2B,KAAKsP,KAAMgU,EAAU3T,GAqNjC,OAlNAquB,EAAWv8B,UAAUJ,KAAO,SAAUk1B,EAAW7D,EAAWC,GAC1D,IAAIrB,EAAOhiB,KAEP4uB,GAAqB,EAEzB3H,EAAUv2B,KAAKsP,KAAMojB,EAAWC,GAEhCD,EAAU3Y,GAAG,QAAQ,WACnBuX,EAAK6M,gBACL7M,EAAK8M,0BAA0B1L,GAE1BwL,IACHA,GAAqB,EAErBxL,EAAU3Y,GAAG,eAAe,WAC1BuX,EAAK+M,oBACL/M,EAAKgN,qBAGP5L,EAAU3Y,GAAG,kBAAkB,WAC7BuX,EAAK+M,oBACL/M,EAAKgN,yBAKX5L,EAAU3Y,GAAG,SAAS,WACpBuX,EAAKiN,gBACLjN,EAAKkN,0BAA0B9L,MAGjCpjB,KAAKmvB,mBAAmB1kB,GAAG,aAAa,SAAU8Z,GAChDA,EAAID,sBAIRoK,EAAWv8B,UAAUqP,QAAU,SAAUylB,GACvCA,EAAUv2B,KAAKsP,MAEfA,KAAKmvB,mBAAmB7jB,UAG1BojB,EAAWv8B,UAAUsO,SAAW,SAAUwmB,EAAWxF,EAAW4B,GAE9D5B,EAAUnX,KAAK,QAAS+Y,EAAW/Y,KAAK,UAExCmX,EAAU3R,YAAY,WACtB2R,EAAU5R,SAAS,2BAEnB4R,EAAU3tB,IAAI,CACZ2M,SAAU,WACVjJ,KAAM,SAGRwI,KAAKqjB,WAAaA,GAGpBqL,EAAWv8B,UAAUyuB,OAAS,SAAUqG,GACtC,IAAI5D,EAAanZ,EAAE,iBAEfuX,EAAYwF,EAAUv2B,KAAKsP,MAK/B,OAJAqjB,EAAWlN,OAAOsL,GAElBzhB,KAAKmvB,mBAAqB9L,EAEnBA,GAGTqL,EAAWv8B,UAAU88B,cAAgB,SAAUhI,GAC7CjnB,KAAKmvB,mBAAmBC,UAG1BV,EAAWv8B,UAAU28B,0BACjB,SAAU7H,EAAW7D,GACvB,IAAIpB,EAAOhiB,KAEPqvB,EAAc,kBAAoBjM,EAAUvO,GAC5Cya,EAAc,kBAAoBlM,EAAUvO,GAC5C0a,EAAmB,6BAA+BnM,EAAUvO,GAE5D2a,EAAYxvB,KAAKqjB,WAAW/M,UAAUlZ,OAAO2M,EAAM0V,WACvD+P,EAAU1jB,MAAK,WACb/B,EAAMwW,UAAUvgB,KAAM,0BAA2B,CAC/CnC,EAAGqM,EAAElK,MAAM1I,aACXyG,EAAGmM,EAAElK,MAAM3I,iBAIfm4B,EAAU/kB,GAAG4kB,GAAa,SAAUI,GAClC,IAAIhvB,EAAWsJ,EAAMyW,QAAQxgB,KAAM,2BACnCkK,EAAElK,MAAM3I,UAAUoJ,EAAS1C,MAG7BmM,EAAE1X,QAAQiY,GAAG4kB,EAAc,IAAMC,EAAc,IAAMC,GACnD,SAAUz1B,GACVkoB,EAAK+M,oBACL/M,EAAKgN,sBAITN,EAAWv8B,UAAU+8B,0BACjB,SAAUjI,EAAW7D,GACvB,IAAIiM,EAAc,kBAAoBjM,EAAUvO,GAC5Cya,EAAc,kBAAoBlM,EAAUvO,GAC5C0a,EAAmB,6BAA+BnM,EAAUvO,GAEhD7U,KAAKqjB,WAAW/M,UAAUlZ,OAAO2M,EAAM0V,WAC7CvI,IAAImY,GAEdnlB,EAAE1X,QAAQ0kB,IAAImY,EAAc,IAAMC,EAAc,IAAMC,IAGxDb,EAAWv8B,UAAU48B,kBAAoB,WACvC,IAAIW,EAAUxlB,EAAE1X,QAEZm9B,EAAmB3vB,KAAKyhB,UAAU7W,SAAS,2BAC3CglB,EAAmB5vB,KAAKyhB,UAAU7W,SAAS,2BAE3CilB,EAAe,KAEfr0B,EAASwE,KAAKqjB,WAAW7nB,SAE7BA,EAAO/D,OAAS+D,EAAOhE,IAAMwI,KAAKqjB,WAAWW,aAAY,GAEzD,IAAIZ,EAAY,CACd5qB,OAAQwH,KAAKqjB,WAAWW,aAAY,IAGtCZ,EAAU5rB,IAAMgE,EAAOhE,IACvB4rB,EAAU3rB,OAAS+D,EAAOhE,IAAM4rB,EAAU5qB,OAE1C,IAAIs0B,EACM9sB,KAAKyhB,UAAUuC,aAAY,GAGjC8L,EACGJ,EAAQr4B,YADXy4B,EAEMJ,EAAQr4B,YAAcq4B,EAAQl3B,SAGpCu3B,EAAkBD,EAAgBt0B,EAAOhE,IAAMs1B,EAC/CkD,EAAkBF,EAAmBt0B,EAAO/D,OAASq1B,EAErDh5B,EAAM,CACR4D,KAAM8D,EAAO9D,KACbF,IAAK4rB,EAAU3rB,QAIbw4B,EAAgBjwB,KAAK2uB,gBAIa,WAAlCsB,EAAcn8B,IAAI,cACpBm8B,EAAgBA,EAAc36B,gBAGhC,IAAI46B,EAAeD,EAAcz0B,SAEjC1H,EAAI0D,KAAO04B,EAAa14B,IACxB1D,EAAI4D,MAAQw4B,EAAax4B,KAEpBi4B,GAAqBC,IACxBC,EAAe,SAGZG,IAAmBD,GAAoBJ,GAEhCI,GAAmBC,GAAmBL,IAChDE,EAAe,SAFfA,EAAe,SAKG,SAAhBA,GACDF,GAAqC,UAAjBE,KACrB/7B,EAAI0D,IAAM4rB,EAAU5rB,IAAM04B,EAAa14B,IAAMs1B,GAG3B,MAAhB+C,IACF7vB,KAAKyhB,UACF3R,YAAY,mDACZD,SAAS,qBAAuBggB,GACnC7vB,KAAKqjB,WACFvT,YAAY,qDACZD,SAAS,sBAAwBggB,IAGtC7vB,KAAKmvB,mBAAmBr7B,IAAIA,IAG9B46B,EAAWv8B,UAAU68B,gBAAkB,WACrC,IAAIl7B,EAAM,CACR2E,MAAOuH,KAAKqjB,WAAW8M,YAAW,GAAS,MAGzCnwB,KAAKK,QAAQjP,IAAI,uBACnB0C,EAAIs8B,SAAWt8B,EAAI2E,MACnB3E,EAAI2M,SAAW,WACf3M,EAAI2E,MAAQ,QAGduH,KAAKyhB,UAAU3tB,IAAIA,IAGrB46B,EAAWv8B,UAAU08B,cAAgB,SAAU5H,GAC7CjnB,KAAKmvB,mBAAmBhkB,SAASnL,KAAK2uB,iBAEtC3uB,KAAK+uB,oBACL/uB,KAAKgvB,mBAGAN,KAGT/U,EAAGK,OAAO,2CAA2C,IAElD,WAiBD,SAASqW,EAAyBpJ,EAAWjT,EAAU3T,EAASsgB,GAC9D3gB,KAAKswB,wBAA0BjwB,EAAQjP,IAAI,2BAEvC4O,KAAKswB,wBAA0B,IACjCtwB,KAAKswB,wBAA0BC,KAGjCtJ,EAAUv2B,KAAKsP,KAAMgU,EAAU3T,EAASsgB,GAW1C,OARA0P,EAAwBl+B,UAAU07B,WAAa,SAAU5G,EAAWxZ,GAClE,QA3BF,SAAS+iB,EAAcpxB,GAGrB,IAFA,IAAI6T,EAAQ,EAEHpiB,EAAI,EAAGA,EAAIuO,EAAKxM,OAAQ/B,IAAK,CACpC,IAAIywB,EAAOliB,EAAKvO,GAEZywB,EAAK9mB,SACPyY,GAASud,EAAalP,EAAK9mB,UAE3ByY,IAIJ,OAAOA,EAcHud,CAAa/iB,EAAOrO,KAAKiiB,SAAWrhB,KAAKswB,0BAItCrJ,EAAUv2B,KAAKsP,KAAMyN,IAGvB4iB,KAGT1W,EAAGK,OAAO,iCAAiC,CACzC,aACC,SAAUjQ,GACX,SAAS0mB,KA6CT,OA3CAA,EAAct+B,UAAUJ,KAAO,SAAUk1B,EAAW7D,EAAWC,GAC7D,IAAIrB,EAAOhiB,KAEXinB,EAAUv2B,KAAKsP,KAAMojB,EAAWC,GAEhCD,EAAU3Y,GAAG,SAAS,SAAUgD,GAC9BuU,EAAK0O,qBAAqBjjB,OAI9BgjB,EAAct+B,UAAUu+B,qBAAuB,SAAUrX,EAAG5L,GAC1D,GAAIA,GAAyC,MAA/BA,EAAOkjB,qBAA8B,CACjD,IAAItuB,EAAQoL,EAAOkjB,qBAInB,GAAoB,WAAhBtuB,EAAM0c,OAAsC,aAAhB1c,EAAM0c,MACpC,OAIJ,IAAI6R,EAAsB5wB,KAAKwjB,wBAG/B,KAAIoN,EAAoBh+B,OAAS,GAAjC,CAIA,IAAIwM,EAAO2K,EAAMyW,QAAQoQ,EAAoB,GAAI,QAI9B,MAAhBxxB,EAAKxL,SAAmBwL,EAAKxL,QAAQsuB,UACrB,MAAhB9iB,EAAKxL,SAAmBwL,EAAK8iB,UAKhCliB,KAAKwT,QAAQ,SAAU,CACnBpU,KAAMA,MAILqxB,KAGT9W,EAAGK,OAAO,iCAAiC,IAExC,WACD,SAAS6W,KA8BT,OA5BAA,EAAc1+B,UAAUJ,KAAO,SAAUk1B,EAAW7D,EAAWC,GAC7D,IAAIrB,EAAOhiB,KAEXinB,EAAUv2B,KAAKsP,KAAMojB,EAAWC,GAEhCD,EAAU3Y,GAAG,UAAU,SAAU8Z,GAC/BvC,EAAK8O,iBAAiBvM,MAGxBnB,EAAU3Y,GAAG,YAAY,SAAU8Z,GACjCvC,EAAK8O,iBAAiBvM,OAI1BsM,EAAc1+B,UAAU2+B,iBAAmB,SAAUzX,EAAGkL,GACtD,IAAIE,EAAgBF,EAAIE,cAGpBA,GAAiBA,EAAcsM,SAInC/wB,KAAKwT,QAAQ,QAAS,CACpBiR,cAAeA,EACfkM,qBAAsBpM,KAInBsM,KAGTlX,EAAGK,OAAO,kBAAkB,IAAG,WAE7B,MAAO,CACLgX,aAAc,WACZ,MAAO,oCAETC,aAAc,SAAUvjB,GACtB,IAAIwjB,EAAYxjB,EAAKmb,MAAMj2B,OAAS8a,EAAK8f,QAErCjb,EAAU,iBAAmB2e,EAAY,aAM7C,OAJiB,GAAbA,IACF3e,GAAW,KAGNA,GAET4e,cAAe,SAAUzjB,GAKvB,MAFc,iBAFOA,EAAK2f,QAAU3f,EAAKmb,MAAMj2B,QAEE,uBAInD2vB,YAAa,WACX,MAAO,yBAET6O,gBAAiB,SAAU1jB,GACzB,IAAI6E,EAAU,uBAAyB7E,EAAK8f,QAAU,QAMtD,OAJoB,GAAhB9f,EAAK8f,UACPjb,GAAW,KAGNA,GAET8e,UAAW,WACT,MAAO,oBAETC,UAAW,WACT,MAAO,kBAKb3X,EAAGK,OAAO,mBAAmB,CAC3B,SACA,UAEA,YAEA,qBACA,uBACA,0BACA,yBACA,qBACA,yBAEA,UACA,gBACA,eAEA,gBACA,eACA,cACA,cACA,mBACA,4BACA,4BACA,gCAEA,aACA,oBACA,6BACA,4BACA,wBACA,qCACA,2BACA,2BAEA,cACC,SAAU9P,EAAG6P,EAEHwX,EAEA9K,EAAiBK,EAAmBE,EAAaO,EACjDiK,EAAiBzI,EAEjBhf,EAAOof,EAAasI,EAEpBC,EAAYC,EAAWC,EAAUzF,EAAMS,EACvCM,EAAoBI,EAAoBG,EAExCE,EAAUkE,EAAgB/D,EAAiBG,EAC3CS,EAAY2B,EAAyBI,EAAeI,EAEpDiB,GACX,SAAS1sB,IACPpF,KAAKiR,QAqVP,OAlVA7L,EAASjT,UAAU0b,MAAQ,SAAUxN,GAGnC,GAA2B,OAF3BA,EAAU6J,EAAEC,QAAO,EAAM,GAAInK,KAAKsN,SAAUjN,IAEhCsgB,YAAqB,CAyC/B,GAxCoB,MAAhBtgB,EAAQyY,KACVzY,EAAQsgB,YAAciR,EACG,MAAhBvxB,EAAQjB,KACjBiB,EAAQsgB,YAAcgR,EAEtBtxB,EAAQsgB,YAAc+Q,EAGpBrxB,EAAQ+sB,mBAAqB,IAC/B/sB,EAAQsgB,YAAc5W,EAAMkU,SAC1B5d,EAAQsgB,YACRuM,IAIA7sB,EAAQktB,mBAAqB,IAC/BltB,EAAQsgB,YAAc5W,EAAMkU,SAC1B5d,EAAQsgB,YACR2M,IAIAjtB,EAAQqtB,uBAAyB,IACnCrtB,EAAQsgB,YAAc5W,EAAMkU,SAC1B5d,EAAQsgB,YACR8M,IAIAptB,EAAQ+rB,OACV/rB,EAAQsgB,YAAc5W,EAAMkU,SAAS5d,EAAQsgB,YAAawL,IAG7B,MAA3B9rB,EAAQ0xB,iBAAgD,MAArB1xB,EAAQwsB,YAC7CxsB,EAAQsgB,YAAc5W,EAAMkU,SAC1B5d,EAAQsgB,YACRiM,IAIiB,MAAjBvsB,EAAQupB,MAAe,CACzB,IAAIoI,EAAQjY,EAAQ1Z,EAAQ4xB,QAAU,gBAEtC5xB,EAAQsgB,YAAc5W,EAAMkU,SAC1B5d,EAAQsgB,YACRqR,GAIJ,GAA6B,MAAzB3xB,EAAQ6xB,cAAuB,CACjC,IAAIC,EAAgBpY,EAAQ1Z,EAAQ4xB,QAAU,wBAE9C5xB,EAAQsgB,YAAc5W,EAAMkU,SAC1B5d,EAAQsgB,YACRwR,IA8BN,GAzB8B,MAA1B9xB,EAAQ+xB,iBACV/xB,EAAQ+xB,eAAiBb,EAEL,MAAhBlxB,EAAQyY,OACVzY,EAAQ+xB,eAAiBroB,EAAMkU,SAC7B5d,EAAQ+xB,eACRnE,IAIuB,MAAvB5tB,EAAQ6mB,cACV7mB,EAAQ+xB,eAAiBroB,EAAMkU,SAC7B5d,EAAQ+xB,eACRtE,IAIAztB,EAAQgyB,gBACVhyB,EAAQ+xB,eAAiBroB,EAAMkU,SAC7B5d,EAAQ+xB,eACR3B,KAKyB,MAA3BpwB,EAAQiyB,gBAAyB,CACnC,GAAIjyB,EAAQkyB,SACVlyB,EAAQiyB,gBAAkB3E,MACrB,CACL,IAAI6E,EAAqBzoB,EAAMkU,SAAS0P,EAAUkE,GAElDxxB,EAAQiyB,gBAAkBE,EAiB5B,GAdwC,IAApCnyB,EAAQiwB,0BACVjwB,EAAQiyB,gBAAkBvoB,EAAMkU,SAC9B5d,EAAQiyB,gBACRjC,IAIAhwB,EAAQoyB,gBACVpyB,EAAQiyB,gBAAkBvoB,EAAMkU,SAC9B5d,EAAQiyB,gBACRzB,IAK0B,MAA5BxwB,EAAQqyB,kBACe,MAAvBryB,EAAQsyB,aACyB,MAAjCtyB,EAAQuyB,sBACR,CACA,IAAIC,EAAc9Y,EAAQ1Z,EAAQ4xB,QAAU,sBAE5C5xB,EAAQiyB,gBAAkBvoB,EAAMkU,SAC9B5d,EAAQiyB,gBACRO,GAIJxyB,EAAQiyB,gBAAkBvoB,EAAMkU,SAC9B5d,EAAQiyB,gBACR5D,GAIJ,GAAgC,MAA5BruB,EAAQyyB,iBAA0B,CA6BpC,GA5BIzyB,EAAQkyB,SACVlyB,EAAQyyB,iBAAmBhM,EAE3BzmB,EAAQyyB,iBAAmBrM,EAIF,MAAvBpmB,EAAQ6mB,cACV7mB,EAAQyyB,iBAAmB/oB,EAAMkU,SAC/B5d,EAAQyyB,iBACR9L,IAIA3mB,EAAQ0yB,aACV1yB,EAAQyyB,iBAAmB/oB,EAAMkU,SAC/B5d,EAAQyyB,iBACRvL,IAIAlnB,EAAQkyB,WACVlyB,EAAQyyB,iBAAmB/oB,EAAMkU,SAC/B5d,EAAQyyB,iBACRtB,IAK2B,MAA7BnxB,EAAQ2yB,mBACgB,MAAxB3yB,EAAQ4yB,cAC0B,MAAlC5yB,EAAQ6yB,uBACR,CACA,IAAIC,EAAepZ,EAAQ1Z,EAAQ4xB,QAAU,uBAE7C5xB,EAAQyyB,iBAAmB/oB,EAAMkU,SAC/B5d,EAAQyyB,iBACRK,GAIJ9yB,EAAQyyB,iBAAmB/oB,EAAMkU,SAC/B5d,EAAQyyB,iBACR/J,GAIJ,GAAgC,iBAArB1oB,EAAQ+yB,SAEjB,GAAI/yB,EAAQ+yB,SAASrgC,QAAQ,KAAO,EAAG,CAErC,IACIsgC,EADgBhzB,EAAQ+yB,SAAS51B,MAAM,KACV,GAEjC6C,EAAQ+yB,SAAW,CAAC/yB,EAAQ+yB,SAAUC,QAEtChzB,EAAQ+yB,SAAW,CAAC/yB,EAAQ+yB,UAIhC,GAAIlpB,EAAE6N,QAAQ1X,EAAQ+yB,UAAW,CAC/B,IAAIE,EAAY,IAAInK,EACpB9oB,EAAQ+yB,SAAS3wB,KAAK,MAItB,IAFA,IAAI8wB,EAAgBlzB,EAAQ+yB,SAEnB5iC,EAAI,EAAGA,EAAI+iC,EAAc3gC,OAAQpC,IAAK,CAC7C,IAAIM,EAAOyiC,EAAc/iC,GACrB4iC,EAAW,GAEf,IAEEA,EAAWjK,EAAYK,SAAS14B,GAChC,MAAOgJ,GACP,IAEEhJ,EAAOkP,KAAKsN,SAASkmB,gBAAkB1iC,EACvCsiC,EAAWjK,EAAYK,SAAS14B,GAChC,MAAO2iC,GAIHpzB,EAAQgL,OAAS7Y,OAAOoN,SAAWA,QAAQC,MAC7CD,QAAQC,KACN,mCAAqC/O,EAArC,yEAKJ,UAIJwiC,EAAUnpB,OAAOipB,GAGnB/yB,EAAQqpB,aAAe4J,MAClB,CACL,IAAII,EAAkBvK,EAAYK,SAChCxpB,KAAKsN,SAASkmB,gBAAkB,MAE9BG,EAAoB,IAAIxK,EAAY9oB,EAAQ+yB,UAEhDO,EAAkBxpB,OAAOupB,GAEzBrzB,EAAQqpB,aAAeiK,EAGzB,OAAOtzB,GAGT+E,EAASjT,UAAU8e,MAAQ,WACzB,SAAS2iB,EAAiBzgB,GAMxB,OAAOA,EAAKhV,QAAQ,qBAJpB,SAAelB,GACb,OAAOw0B,EAAWx0B,IAAMA,KAmD5B+C,KAAKsN,SAAW,CACd2kB,QAAS,KACTuB,gBAAiB,UACjBf,eAAe,EACfpnB,OAAO,EACPwoB,mBAAmB,EACnBhU,aAAc9V,EAAM8V,aACpBuT,SAAUtB,EACVtH,QArDF,SAASA,EAAS/c,EAAQrO,GAExB,GAA4B,KAAxB8K,EAAEzF,KAAKgJ,EAAOqb,MAChB,OAAO1pB,EAIT,GAAIA,EAAK5E,UAAY4E,EAAK5E,SAAS5H,OAAS,EAAG,CAM7C,IAHA,IAAI8M,EAAQwK,EAAEC,QAAO,EAAM,GAAI/K,GAGtBxO,EAAIwO,EAAK5E,SAAS5H,OAAS,EAAGhC,GAAK,EAAGA,IAM9B,MAHD45B,EAAQ/c,EAFVrO,EAAK5E,SAAS5J,KAMxB8O,EAAMlF,SAASqhB,OAAOjrB,EAAG,GAK7B,OAAI8O,EAAMlF,SAAS5H,OAAS,EACnB8M,EAIF8qB,EAAQ/c,EAAQ/N,GAGzB,IAAIo0B,EAAWF,EAAgBx0B,EAAK+T,MAAM/R,cACtC0nB,EAAO8K,EAAgBnmB,EAAOqb,MAAM1nB,cAGxC,OAAI0yB,EAAS/gC,QAAQ+1B,IAAS,EACrB1pB,EAIF,MAYPguB,mBAAoB,EACpBG,mBAAoB,EACpBG,uBAAwB,EACxB4C,wBAAyB,EACzB+B,eAAe,EACf3Q,OAAQ,SAAUtiB,GAChB,OAAOA,GAET20B,eAAgB,SAAUh6B,GACxB,OAAOA,EAAOoZ,MAEhB6gB,kBAAmB,SAAUpN,GAC3B,OAAOA,EAAUzT,MAEnB8gB,MAAO,UACPx7B,MAAO,YAIX2M,EAASjT,UAAU+hC,IAAM,SAAUpiC,EAAKN,GACtC,IAEI4N,EAAO,GACXA,EAHe8K,EAAEiqB,UAAUriC,IAGVN,EAEjB,IAAI4iC,EAAgBrqB,EAAMsV,aAAajgB,GAEvC8K,EAAEC,QAAO,EAAMnK,KAAKsN,SAAU8mB,IAGjB,IAAIhvB,KAKrBuU,EAAGK,OAAO,kBAAkB,CAC1B,UACA,SACA,aACA,YACC,SAAUD,EAAS7P,EAAG9E,EAAU2E,GACjC,SAASsqB,EAASh0B,EAAS2T,GASzB,GARAhU,KAAKK,QAAUA,EAEC,MAAZ2T,GACFhU,KAAKs0B,YAAYtgB,GAGnBhU,KAAKK,QAAU+E,EAASyI,MAAM7N,KAAKK,SAE/B2T,GAAYA,EAASnI,GAAG,SAAU,CACpC,IAAI0oB,EAAcxa,EAAQ/Z,KAAK5O,IAAI,WAAa,oBAEhD4O,KAAKK,QAAQsgB,YAAc5W,EAAMkU,SAC/Bje,KAAKK,QAAQsgB,YACb4T,IAqGN,OAhGAF,EAAQliC,UAAUmiC,YAAc,SAAUnH,GACxC,IAAIqH,EAAe,CAAC,WAES,MAAzBx0B,KAAKK,QAAQkyB,WACfvyB,KAAKK,QAAQkyB,SAAWpF,EAAG5tB,KAAK,aAGL,MAAzBS,KAAKK,QAAQiiB,WACftiB,KAAKK,QAAQiiB,SAAW6K,EAAG5tB,KAAK,aAGL,MAAzBS,KAAKK,QAAQ+yB,WACXjG,EAAG5tB,KAAK,QACVS,KAAKK,QAAQ+yB,SAAWjG,EAAG5tB,KAAK,QAAQqH,cAC/BumB,EAAG5gB,QAAQ,UAAUhN,KAAK,UACnCS,KAAKK,QAAQ+yB,SAAWjG,EAAG5gB,QAAQ,UAAUhN,KAAK,UAI9B,MAApBS,KAAKK,QAAQo0B,MACXtH,EAAG5tB,KAAK,OACVS,KAAKK,QAAQo0B,IAAMtH,EAAG5tB,KAAK,OAClB4tB,EAAG5gB,QAAQ,SAAShN,KAAK,OAClCS,KAAKK,QAAQo0B,IAAMtH,EAAG5gB,QAAQ,SAAShN,KAAK,OAE5CS,KAAKK,QAAQo0B,IAAM,OAIvBtH,EAAG5tB,KAAK,WAAYS,KAAKK,QAAQiiB,UACjC6K,EAAG5tB,KAAK,WAAYS,KAAKK,QAAQkyB,UAE7BxoB,EAAMyW,QAAQ2M,EAAG,GAAI,iBACnBntB,KAAKK,QAAQgL,OAAS7Y,OAAOoN,SAAWA,QAAQC,MAClDD,QAAQC,KACN,2KAMJkK,EAAMwW,UAAU4M,EAAG,GAAI,OAAQpjB,EAAMyW,QAAQ2M,EAAG,GAAI,gBACpDpjB,EAAMwW,UAAU4M,EAAG,GAAI,QAAQ,IAG7BpjB,EAAMyW,QAAQ2M,EAAG,GAAI,aACnBntB,KAAKK,QAAQgL,OAAS7Y,OAAOoN,SAAWA,QAAQC,MAClDD,QAAQC,KACN,gKAMJstB,EAAG7iB,KAAK,YAAaP,EAAMyW,QAAQ2M,EAAG,GAAI,YAC1CpjB,EAAMwW,UAAU4M,EAAG,GAAI,WAAYpjB,EAAMyW,QAAQ2M,EAAG,GAAI,aAI1D,IAAIuH,EAAU,GAKZA,EADExqB,EAAEhX,GAAG4W,QAAsC,MAA5BI,EAAEhX,GAAG4W,OAAOqK,OAAO,EAAG,IAAcgZ,EAAG,GAAGuH,QACjDxqB,EAAEC,QAAO,EAAM,GAAIgjB,EAAG,GAAGuH,QAAS3qB,EAAMyW,QAAQ2M,EAAG,KAEnDpjB,EAAMyW,QAAQ2M,EAAG,IAG7B,IAAI/tB,EAAO8K,EAAEC,QAAO,EAAM,GAAIuqB,GAI9B,IAAK,IAAI5iC,KAFTsN,EAAO2K,EAAMsV,aAAajgB,GAGpB8K,EAAEoF,QAAQxd,EAAK0iC,IAAiB,IAIhCtqB,EAAEyqB,cAAc30B,KAAKK,QAAQvO,IAC/BoY,EAAEC,OAAOnK,KAAKK,QAAQvO,GAAMsN,EAAKtN,IAEjCkO,KAAKK,QAAQvO,GAAOsN,EAAKtN,IAI7B,OAAOkO,MAGTq0B,EAAQliC,UAAUf,IAAM,SAAUU,GAChC,OAAOkO,KAAKK,QAAQvO,IAGtBuiC,EAAQliC,UAAU+hC,IAAM,SAAUpiC,EAAKoZ,GACrClL,KAAKK,QAAQvO,GAAOoZ,GAGfmpB,KAGT1a,EAAGK,OAAO,eAAe,CACvB,SACA,YACA,UACA,WACC,SAAU9P,EAAGmqB,EAAStqB,EAAOgc,GAC9B,IAAI6O,EAAU,SAAU5gB,EAAU3T,GACa,MAAzC0J,EAAMyW,QAAQxM,EAAS,GAAI,YAC7BjK,EAAMyW,QAAQxM,EAAS,GAAI,WAAWxS,UAGxCxB,KAAKgU,SAAWA,EAEhBhU,KAAK6U,GAAK7U,KAAK60B,YAAY7gB,GAE3B3T,EAAUA,GAAW,GAErBL,KAAKK,QAAU,IAAIg0B,EAAQh0B,EAAS2T,GAEpC4gB,EAAQ5W,UAAUlQ,YAAYpd,KAAKsP,MAInC,IAAI80B,EAAW9gB,EAAS1J,KAAK,aAAe,EAC5CP,EAAMwW,UAAUvM,EAAS,GAAI,eAAgB8gB,GAC7C9gB,EAAS1J,KAAK,WAAY,MAI1B,IAAIyqB,EAAc/0B,KAAKK,QAAQjP,IAAI,eACnC4O,KAAK2gB,YAAc,IAAIoU,EAAY/gB,EAAUhU,KAAKK,SAElD,IAAIgjB,EAAarjB,KAAK4gB,SAEtB5gB,KAAKg1B,gBAAgB3R,GAErB,IAAI4R,EAAmBj1B,KAAKK,QAAQjP,IAAI,oBACxC4O,KAAK4mB,UAAY,IAAIqO,EAAiBjhB,EAAUhU,KAAKK,SACrDL,KAAKimB,WAAajmB,KAAK4mB,UAAUhG,SAEjC5gB,KAAK4mB,UAAUnmB,SAAST,KAAKimB,WAAY5C,GAEzC,IAAI6R,EAAkBl1B,KAAKK,QAAQjP,IAAI,mBACvC4O,KAAK8sB,SAAW,IAAIoI,EAAgBlhB,EAAUhU,KAAKK,SACnDL,KAAKyhB,UAAYzhB,KAAK8sB,SAASlM,SAE/B5gB,KAAK8sB,SAASrsB,SAAST,KAAKyhB,UAAW4B,GAEvC,IAAI8R,EAAiBn1B,KAAKK,QAAQjP,IAAI,kBACtC4O,KAAKqhB,QAAU,IAAI8T,EAAenhB,EAAUhU,KAAKK,QAASL,KAAK2gB,aAC/D3gB,KAAK6gB,SAAW7gB,KAAKqhB,QAAQT,SAE7B5gB,KAAKqhB,QAAQ5gB,SAAST,KAAK6gB,SAAU7gB,KAAKyhB,WAI1C,IAAIO,EAAOhiB,KAGXA,KAAKo1B,gBAGLp1B,KAAKq1B,qBAGLr1B,KAAKs1B,sBACLt1B,KAAKu1B,2BACLv1B,KAAKw1B,0BACLx1B,KAAKy1B,yBACLz1B,KAAK01B,kBAGL11B,KAAK2gB,YAAYsB,SAAQ,SAAU0T,GACjC3T,EAAKxO,QAAQ,mBAAoB,CAC/BpU,KAAMu2B,OAKV3hB,EAASnE,SAAS,6BAClBmE,EAAS1J,KAAK,cAAe,QAG7BtK,KAAK41B,kBAEL7rB,EAAMwW,UAAUvM,EAAS,GAAI,UAAWhU,MAGxCgU,EAAS5U,KAAK,UAAWY,OAghB3B,OA7gBA+J,EAAM4T,OAAOiX,EAAS7qB,EAAM8U,YAE5B+V,EAAQziC,UAAU0iC,YAAc,SAAU7gB,GAcxC,MAFK,YATsB,MAAvBA,EAAS1J,KAAK,MACX0J,EAAS1J,KAAK,MACe,MAAzB0J,EAAS1J,KAAK,QAClB0J,EAAS1J,KAAK,QAAU,IAAMP,EAAMkV,cAAc,GAElDlV,EAAMkV,cAAc,IAGnB9gB,QAAQ,kBAAmB,KAMrCy2B,EAAQziC,UAAU6iC,gBAAkB,SAAU3R,GAC5CA,EAAWhN,YAAYrW,KAAKgU,UAE5B,IAAIvb,EAAQuH,KAAK61B,cAAc71B,KAAKgU,SAAUhU,KAAKK,QAAQjP,IAAI,UAElD,MAATqH,GACF4qB,EAAWvvB,IAAI,QAAS2E,IAI5Bm8B,EAAQziC,UAAU0jC,cAAgB,SAAU7hB,EAAUtH,GACpD,IAAIopB,EAAQ,gEAEZ,GAAc,WAAVppB,EAAqB,CACvB,IAAIqpB,EAAa/1B,KAAK61B,cAAc7hB,EAAU,SAE9C,OAAkB,MAAd+hB,EACKA,EAGF/1B,KAAK61B,cAAc7hB,EAAU,WAGtC,GAAc,WAAVtH,EAAqB,CACvB,IAAIspB,EAAehiB,EAASmc,YAAW,GAEvC,OAAI6F,GAAgB,EACX,OAGFA,EAAe,KAGxB,GAAc,SAAVtpB,EAAmB,CACrB,IAAInL,EAAQyS,EAAS1J,KAAK,SAE1B,GAAsB,iBAAZ,EACR,OAAO,KAKT,IAFA,IAAIqY,EAAQphB,EAAM/D,MAAM,KAEfjN,EAAI,EAAGC,EAAImyB,EAAM/vB,OAAQrC,EAAIC,EAAGD,GAAQ,EAAG,CAClD,IACI25B,EADOvH,EAAMpyB,GAAG4N,QAAQ,MAAO,IAChBuB,MAAMo2B,GAEzB,GAAgB,OAAZ5L,GAAoBA,EAAQt3B,QAAU,EACxC,OAAOs3B,EAAQ,GAInB,OAAO,KAGT,OAAOxd,GAGTkoB,EAAQziC,UAAUijC,cAAgB,WAChCp1B,KAAK2gB,YAAY5uB,KAAKiO,KAAMA,KAAKqjB,YACjCrjB,KAAK4mB,UAAU70B,KAAKiO,KAAMA,KAAKqjB,YAE/BrjB,KAAK8sB,SAAS/6B,KAAKiO,KAAMA,KAAKqjB,YAC9BrjB,KAAKqhB,QAAQtvB,KAAKiO,KAAMA,KAAKqjB,aAG/BuR,EAAQziC,UAAUkjC,mBAAqB,WACrC,IAAIrT,EAAOhiB,KAEXA,KAAKgU,SAASvJ,GAAG,kBAAkB,WACjCuX,EAAKrB,YAAYsB,SAAQ,SAAU7iB,GACjC4iB,EAAKxO,QAAQ,mBAAoB,CAC/BpU,KAAMA,UAKZY,KAAKgU,SAASvJ,GAAG,iBAAiB,SAAU8Z,GAC1CvC,EAAKxO,QAAQ,QAAS+Q,MAGxBvkB,KAAKi2B,OAASlsB,EAAMhY,KAAKiO,KAAK41B,gBAAiB51B,MAC/CA,KAAKk2B,OAASnsB,EAAMhY,KAAKiO,KAAKm2B,aAAcn2B,MAExCA,KAAKgU,SAAS,GAAGoiB,aACnBp2B,KAAKgU,SAAS,GAAGoiB,YAAY,mBAAoBp2B,KAAKi2B,QAGxD,IAAII,EAAW7jC,OAAO8jC,kBACpB9jC,OAAO+jC,wBACP/jC,OAAOgkC,oBAGO,MAAZH,GACFr2B,KAAKy2B,UAAY,IAAIJ,GAAS,SAAUK,GACtCxsB,EAAE4B,KAAK4qB,EAAW1U,EAAKiU,QACvB/rB,EAAE4B,KAAK4qB,EAAW1U,EAAKkU,WAEzBl2B,KAAKy2B,UAAUE,QAAQ32B,KAAKgU,SAAS,GAAI,CACvC7T,YAAY,EACZy2B,WAAW,EACXC,SAAS,KAEF72B,KAAKgU,SAAS,GAAG/R,mBAC1BjC,KAAKgU,SAAS,GAAG/R,iBACf,kBACA+f,EAAKiU,QACL,GAEFj2B,KAAKgU,SAAS,GAAG/R,iBACf,kBACA+f,EAAKkU,QACL,GAEFl2B,KAAKgU,SAAS,GAAG/R,iBACf,iBACA+f,EAAKkU,QACL,KAKNtB,EAAQziC,UAAUmjC,oBAAsB,WACtC,IAAItT,EAAOhiB,KAEXA,KAAK2gB,YAAYlW,GAAG,KAAK,SAAU3Z,EAAM2c,GACvCuU,EAAKxO,QAAQ1iB,EAAM2c,OAIvBmnB,EAAQziC,UAAUojC,yBAA2B,WAC3C,IAAIvT,EAAOhiB,KACP82B,EAAiB,CAAC,SAAU,SAEhC92B,KAAK4mB,UAAUnc,GAAG,UAAU,WAC1BuX,EAAK+U,oBAGP/2B,KAAK4mB,UAAUnc,GAAG,SAAS,SAAUgD,GACnCuU,EAAKzO,MAAM9F,MAGbzN,KAAK4mB,UAAUnc,GAAG,KAAK,SAAU3Z,EAAM2c,IACI,IAArCvD,EAAEoF,QAAQxe,EAAMgmC,IAIpB9U,EAAKxO,QAAQ1iB,EAAM2c,OAIvBmnB,EAAQziC,UAAUqjC,wBAA0B,WAC1C,IAAIxT,EAAOhiB,KAEXA,KAAK8sB,SAASriB,GAAG,KAAK,SAAU3Z,EAAM2c,GACpCuU,EAAKxO,QAAQ1iB,EAAM2c,OAIvBmnB,EAAQziC,UAAUsjC,uBAAyB,WACzC,IAAIzT,EAAOhiB,KAEXA,KAAKqhB,QAAQ5W,GAAG,KAAK,SAAU3Z,EAAM2c,GACnCuU,EAAKxO,QAAQ1iB,EAAM2c,OAIvBmnB,EAAQziC,UAAUujC,gBAAkB,WAClC,IAAI1T,EAAOhiB,KAEXA,KAAKyK,GAAG,QAAQ,WACduX,EAAKqB,WAAWxT,SAAS,8BAG3B7P,KAAKyK,GAAG,SAAS,WACfuX,EAAKqB,WAAWvT,YAAY,8BAG9B9P,KAAKyK,GAAG,UAAU,WAChBuX,EAAKqB,WAAWvT,YAAY,kCAG9B9P,KAAKyK,GAAG,WAAW,WACjBuX,EAAKqB,WAAWxT,SAAS,kCAG3B7P,KAAKyK,GAAG,QAAQ,WACduX,EAAKqB,WAAWvT,YAAY,+BAG9B9P,KAAKyK,GAAG,SAAS,SAAUgD,GACpBuU,EAAKsB,UACRtB,EAAKxO,QAAQ,OAAQ,IAGvBxT,KAAK2gB,YAAYiJ,MAAMnc,GAAQ,SAAUrO,GACvC4iB,EAAKxO,QAAQ,cAAe,CAC1BpU,KAAMA,EACNwqB,MAAOnc,UAKbzN,KAAKyK,GAAG,gBAAgB,SAAUgD,GAChCzN,KAAK2gB,YAAYiJ,MAAMnc,GAAQ,SAAUrO,GACvC4iB,EAAKxO,QAAQ,iBAAkB,CAC7BpU,KAAMA,EACNwqB,MAAOnc,UAKbzN,KAAKyK,GAAG,YAAY,SAAU8Z,GAC5B,IAAIzyB,EAAMyyB,EAAInV,MAEV4S,EAAKsB,SACHxxB,IAAQi0B,EAAKX,KAAOtzB,IAAQi0B,EAAKhB,KAChCjzB,IAAQi0B,EAAKJ,IAAMpB,EAAIyS,QAC1BhV,EAAKiV,QAEL1S,EAAIhZ,kBACKzZ,IAAQi0B,EAAKf,OACtBhD,EAAKxO,QAAQ,iBAAkB,IAE/B+Q,EAAIhZ,kBACMzZ,IAAQi0B,EAAKV,OAASd,EAAIwM,SACpC/O,EAAKxO,QAAQ,iBAAkB,IAE/B+Q,EAAIhZ,kBACKzZ,IAAQi0B,EAAKJ,IACtB3D,EAAKxO,QAAQ,mBAAoB,IAEjC+Q,EAAIhZ,kBACKzZ,IAAQi0B,EAAKF,OACtB7D,EAAKxO,QAAQ,eAAgB,IAE7B+Q,EAAIhZ,mBAGFzZ,IAAQi0B,EAAKf,OAASlzB,IAAQi0B,EAAKV,OAClCvzB,IAAQi0B,EAAKF,MAAQtB,EAAIyS,UAC5BhV,EAAKkV,OAEL3S,EAAIhZ,sBAMZqpB,EAAQziC,UAAUyjC,gBAAkB,WAClC51B,KAAKK,QAAQ6zB,IAAI,WAAYl0B,KAAKgU,SAASzU,KAAK,aAE5CS,KAAKK,QAAQjP,IAAI,aACf4O,KAAKsjB,UACPtjB,KAAKi3B,QAGPj3B,KAAKwT,QAAQ,UAAW,KAExBxT,KAAKwT,QAAQ,SAAU,KAI3BohB,EAAQziC,UAAUgkC,aAAe,SAAU5R,EAAKmS,GAC9C,IAAIS,GAAU,EACVnV,EAAOhiB,KAIX,IACEukB,IAAOA,EAAIvrB,QACe,WAAxBurB,EAAIvrB,OAAO7E,UAAiD,aAAxBowB,EAAIvrB,OAAO7E,SAFnD,CAQA,GAAKuiC,EAIE,GAAIA,EAAUU,YAAcV,EAAUU,WAAWxkC,OAAS,EAC/D,IAAK,IAAIZ,EAAI,EAAGA,EAAI0kC,EAAUU,WAAWxkC,OAAQZ,IACpC0kC,EAAUU,WAAWplC,GAEvBkwB,WACPiV,GAAU,QAGLT,EAAUW,cAAgBX,EAAUW,aAAazkC,OAAS,IACnEukC,GAAU,QAVVA,GAAU,EAcRA,GACFn3B,KAAK2gB,YAAYsB,SAAQ,SAAU+H,GACjChI,EAAKxO,QAAQ,mBAAoB,CAC/BpU,KAAM4qB,SAUd4K,EAAQziC,UAAUqhB,QAAU,SAAU1iB,EAAM4c,GAC1C,IAAI4pB,EAAgB1C,EAAQ5W,UAAUxK,QAClC+jB,EAAgB,CAClB,KAAQ,UACR,MAAS,UACT,OAAU,YACV,SAAY,cACZ,MAAS,YAOX,QAJazgC,IAAT4W,IACFA,EAAO,IAGL5c,KAAQymC,EAAe,CACzB,IAAIC,EAAiBD,EAAczmC,GAC/B2mC,EAAiB,CACnB5P,WAAW,EACX/2B,KAAMA,EACN4c,KAAMA,GAKR,GAFA4pB,EAAc5mC,KAAKsP,KAAMw3B,EAAgBC,GAErCA,EAAe5P,UAGjB,YAFAna,EAAKma,WAAY,GAMrByP,EAAc5mC,KAAKsP,KAAMlP,EAAM4c,IAGjCknB,EAAQziC,UAAU4kC,eAAiB,WAC7B/2B,KAAKK,QAAQjP,IAAI,cAIjB4O,KAAKsjB,SACPtjB,KAAKi3B,QAELj3B,KAAKk3B,SAITtC,EAAQziC,UAAU+kC,KAAO,WACnBl3B,KAAKsjB,UAITtjB,KAAKwT,QAAQ,QAAS,KAGxBohB,EAAQziC,UAAU8kC,MAAQ,WACnBj3B,KAAKsjB,UAIVtjB,KAAKwT,QAAQ,QAAS,KAGxBohB,EAAQziC,UAAUmxB,OAAS,WACzB,OAAOtjB,KAAKqjB,WAAWzY,SAAS,4BAGlCgqB,EAAQziC,UAAUulC,SAAW,WAC3B,OAAO13B,KAAKqjB,WAAWzY,SAAS,6BAGlCgqB,EAAQziC,UAAUohB,MAAQ,SAAUnU,GAE9BY,KAAK03B,aAIT13B,KAAKqjB,WAAWxT,SAAS,4BACzB7P,KAAKwT,QAAQ,QAAS,MAGxBohB,EAAQziC,UAAUwlC,OAAS,SAAUjqB,GAC/B1N,KAAKK,QAAQjP,IAAI,UAAYoB,OAAOoN,SAAWA,QAAQC,MACzDD,QAAQC,KACN,qJAMQ,MAAR6N,GAAgC,IAAhBA,EAAK9a,SACvB8a,EAAO,EAAC,IAGV,IAAI4U,GAAY5U,EAAK,GAErB1N,KAAKgU,SAASzU,KAAK,WAAY+iB,IAGjCsS,EAAQziC,UAAUiN,KAAO,WACnBY,KAAKK,QAAQjP,IAAI,UACjByF,UAAUjE,OAAS,GAAKJ,OAAOoN,SAAWA,QAAQC,MACpDD,QAAQC,KACN,qIAKJ,IAAIT,EAAO,GAMX,OAJAY,KAAK2gB,YAAYsB,SAAQ,SAAU+H,GACjC5qB,EAAO4qB,KAGF5qB,GAGTw1B,EAAQziC,UAAU+Y,IAAM,SAAUwC,GAQhC,GAPI1N,KAAKK,QAAQjP,IAAI,UAAYoB,OAAOoN,SAAWA,QAAQC,MACzDD,QAAQC,KACN,uIAKQ,MAAR6N,GAAgC,IAAhBA,EAAK9a,OACvB,OAAOoN,KAAKgU,SAAS9I,MAGvB,IAAI0sB,EAASlqB,EAAK,GAEdxD,EAAE6N,QAAQ6f,KACZA,EAAS1tB,EAAEpN,IAAI86B,GAAQ,SAAUr+B,GAC/B,OAAOA,EAAI7F,eAIfsM,KAAKgU,SAAS9I,IAAI0sB,GAAQpkB,QAAQ,WAGpCohB,EAAQziC,UAAUqP,QAAU,WAC1BxB,KAAKqjB,WAAW/X,SAEZtL,KAAKgU,SAAS,GAAG6jB,aACnB73B,KAAKgU,SAAS,GAAG6jB,YAAY,mBAAoB73B,KAAKi2B,QAGlC,MAAlBj2B,KAAKy2B,WACPz2B,KAAKy2B,UAAUqB,aACf93B,KAAKy2B,UAAY,MACRz2B,KAAKgU,SAAS,GAAGlR,sBAC1B9C,KAAKgU,SAAS,GACXlR,oBAAoB,kBAAmB9C,KAAKi2B,QAAQ,GACvDj2B,KAAKgU,SAAS,GACXlR,oBAAoB,kBAAmB9C,KAAKk2B,QAAQ,GACvDl2B,KAAKgU,SAAS,GACXlR,oBAAoB,iBAAkB9C,KAAKk2B,QAAQ,IAGxDl2B,KAAKi2B,OAAS,KACdj2B,KAAKk2B,OAAS,KAEdl2B,KAAKgU,SAASkD,IAAI,YAClBlX,KAAKgU,SAAS1J,KAAK,WACnBP,EAAMyW,QAAQxgB,KAAKgU,SAAS,GAAI,iBAEhChU,KAAKgU,SAASlE,YAAY,6BAC1B9P,KAAKgU,SAAS1J,KAAK,cAAe,SAClCP,EAAM0W,WAAWzgB,KAAKgU,SAAS,IAC/BhU,KAAKgU,SAASnB,WAAW,WAEzB7S,KAAK2gB,YAAYnf,UACjBxB,KAAK4mB,UAAUplB,UACfxB,KAAK8sB,SAAStrB,UACdxB,KAAKqhB,QAAQ7f,UAEbxB,KAAK2gB,YAAc,KACnB3gB,KAAK4mB,UAAY,KACjB5mB,KAAK8sB,SAAW,KAChB9sB,KAAKqhB,QAAU,MAGjBuT,EAAQziC,UAAUyuB,OAAS,WACzB,IAAIyC,EAAanZ,EACf,2IAcF,OARAmZ,EAAW/Y,KAAK,MAAOtK,KAAKK,QAAQjP,IAAI,QAExC4O,KAAKqjB,WAAaA,EAElBrjB,KAAKqjB,WAAWxT,SAAS,sBAAwB7P,KAAKK,QAAQjP,IAAI,UAElE2Y,EAAMwW,UAAU8C,EAAW,GAAI,UAAWrjB,KAAKgU,UAExCqP,GAGFuR,KAGTjb,EAAGK,OAAO,oBAAoB,CAC5B,WACC,SAAU9P,GAEX,OAAOA,KAGTyP,EAAGK,OAAO,iBAAiB,CACzB,SACA,oBAEA,iBACA,qBACA,oBACC,SAAU9P,EAAGmP,EAAGub,EAASxvB,EAAU2E,GACpC,GAAoB,MAAhBG,EAAEhX,GAAG0mB,QAAiB,CAExB,IAAIme,EAAc,CAAC,OAAQ,QAAS,WAEpC7tB,EAAEhX,GAAG0mB,QAAU,SAAUvZ,GAGvB,GAAuB,iBAFvBA,EAAUA,GAAW,IASnB,OANAL,KAAK8L,MAAK,WACR,IAAIksB,EAAkB9tB,EAAEC,QAAO,EAAM,GAAI9J,GAE1B,IAAIu0B,EAAQ1qB,EAAElK,MAAOg4B,MAG/Bh4B,KACF,GAAuB,iBAAZK,EAAsB,CACtC,IAAI0c,EACArP,EAAOzO,MAAM9M,UAAUmN,MAAM5O,KAAKmG,UAAW,GAgBjD,OAdAmJ,KAAK8L,MAAK,WACR,IAAInT,EAAWoR,EAAMyW,QAAQxgB,KAAM,WAEnB,MAAZrH,GAAoBnG,OAAOoN,SAAWA,QAAQ8T,OAChD9T,QAAQ8T,MACN,gBAAmBrT,EAAnB,iEAKJ0c,EAAMpkB,EAAS0H,GAASwN,MAAMlV,EAAU+U,MAItCxD,EAAEoF,QAAQjP,EAAS03B,IAAgB,EAC9B/3B,KAGF+c,EAEP,MAAM,IAAIrE,MAAM,kCAAoCrY,IAS1D,OAJ6B,MAAzB6J,EAAEhX,GAAG0mB,QAAQtM,WACfpD,EAAEhX,GAAG0mB,QAAQtM,SAAWlI,GAGnBwvB,KAIA,CACL5a,OAAQL,EAAGK,OACXD,QAASJ,EAAGI,SAlqLN,GAwqLMJ,EAAGI,QAAQ,kBAKzBL,EAAOxmB,GAAG0mB,QAAQC,IAAMF,EAlrLtBF,CAAQjnB,OAAO0X,I,cCjCnB,IAAI+tB,EAGJA,EAAI,WACH,OAAOj4B,KADJ,GAIJ,IAECi4B,EAAIA,GAAK,IAAIC,SAAS,cAAb,GACR,MAAOp+B,GAEc,iBAAXtH,SAAqBylC,EAAIzlC,QAOrClC,EAAOD,QAAU4nC,G,oCCDjB,SAASE,EAAUnM,EAAOoM,EAAY91B,EAAU+1B,GAM9C,IAAIC,EACAC,GAAY,EAEZC,EAAW,EAEf,SAASC,IACHH,GACFpM,aAAaoM,GAuBjB,SAAS/iB,IACP,IAAIyM,EAAOhiB,KACP04B,EAAUxgB,KAAKygB,MAAQH,EACvB9qB,EAAO7W,UAOX,SAAS+hC,IACPJ,EAAWtgB,KAAKygB,MAChBr2B,EAASuL,MAAMmU,EAAMtU,GAQvB,SAASoT,IACPwX,OAAYxhC,EAhBVyhC,IAmBAF,IAAiBC,GAKnBM,IAGFH,SAEqB3hC,IAAjBuhC,GAA8BK,EAAU1M,EAK1C4M,KACwB,IAAfR,IAYTE,EAAY/kC,WAAW8kC,EAAevX,EAAQ8X,OAAuB9hC,IAAjBuhC,EAA6BrM,EAAQ0M,EAAU1M,KAMvG,MAtE0B,kBAAfoM,IACTC,EAAe/1B,EACfA,EAAW81B,EACXA,OAAathC,GAiEfye,EAAQsjB,OA1ER,WACEJ,IACAF,GAAY,GA0EPhjB,EAmBT,SAASviB,EAAUg5B,EAAO8M,EAASx2B,GACjC,YAAoBxL,IAAbwL,EAAyB61B,EAASnM,EAAO8M,GAAS,GAASX,EAASnM,EAAO1pB,GAAsB,IAAZw2B,GClI/E,MAAM,EACjB,cACI94B,KAAK+4B,IAAM,CACPrJ,QAASxlB,EAAE1X,QACXwmC,MAAO9uB,EAAE,QACT+uB,SAAU/uB,EAAE,0BACZgvB,OAAQhvB,EAAE,kBACVivB,cAAe,MAGfn5B,KAAK+4B,IAAIG,OAAOtmC,QAChBoN,KAAKuN,OAIb,OACIvN,KAAKo5B,iBACLp5B,KAAKq5B,kBACLr5B,KAAKs5B,cAGT,OAEIt5B,KAAK+4B,IAAII,cAAgBjvB,EAAE,UAC3BlK,KAAK+4B,IAAIC,MAAMnpB,SAAS,yBACxB7P,KAAKk5B,OAAOrpB,SAAS,WACrB7P,KAAKk5B,OAAOvjB,OACZ3V,KAAKu5B,mBACDv5B,KAAKk5B,OAAOp6B,KAAK,QAAQlM,OAAS,IAC9BoN,KAAKk5B,OAAOp6B,KAAK,gBAAgBlM,OAAS,EAC1CoN,KAAKk5B,OAAOp6B,KAAK,gBAAgByU,QAEjCvT,KAAKk5B,OAAOp6B,KAAK,QAAQ8kB,GAAG,GAAGrQ,SAK3C,MAAMimB,GACFx5B,KAAK+4B,IAAIC,MAAMlpB,YAAY,yBACvB0pB,IACAA,EAAU1pB,YAAY,WACtB0pB,EAAU/+B,OAAO,eAAeqV,YAAY,WAAW1H,OACvDoxB,EAAUjtB,QAAQ,kBAAkBnE,OAEhCpI,KAAKy5B,kBACDz5B,KAAKy5B,gBAAgB7uB,SAAS,mBAC9B4uB,EAAUluB,SAEVtL,KAAKk5B,QAAS,EAGbM,EAAU5uB,SAAS,eAAc5K,KAAKy5B,iBAAkB,IAGnC,MAA1Bz5B,KAAK+4B,IAAII,eAAyBn5B,KAAK+4B,IAAII,cAAcvmC,OAAS,GAAGoN,KAAK+4B,IAAII,cAAc5lB,SAIxG,eAAemmB,GACX,IAAIC,EAAezvB,EAAE,iBAAiBtX,OAAS,EAAI,UAAY,UAC/D,MAAO,yDACuC8mC,EAASpvB,KAAK,cAAgBovB,EAASpvB,KAAK,cAAgB,8RAI1DqvB,2KAEAA,2RAKLD,EAAS1iC,6CAKxD,mBACI,IAAKgJ,KAAKk5B,SAAWl5B,KAAKy5B,gBACtB,OAGJ,IACIjiC,EACAE,EAFA8D,EAASwE,KAAKy5B,gBAAgBj+B,SAI9BwE,KAAKk5B,OAAOtuB,SAAS,qBAAuB5K,KAAKk5B,OAAOtuB,SAAS,YAErEpT,EAAMY,KAAKC,IAAI,EAAGmD,EAAOhE,IAAOwI,KAAKk5B,OAAOlV,cAAgB,GAC5DtsB,EAAOsI,KAAKk5B,OAAOtuB,SAAS,cAAgB,MAASpP,EAAO9D,KAAQsI,KAAKy5B,gBAAgBhhC,QAAU,EAEnGuH,KAAKk5B,OAAOplC,IAAI,CACZ0D,MACAE,UAIR,iBACI,IAAIkiC,EACApV,EAAQxkB,KAEZA,KAAK+4B,IAAIE,SAASntB,MAAK,WAEnB8tB,EAAW1vB,EAAElK,MAAMZ,KAAK,YAAc,QAEtC8K,EAAElK,MAAMkX,IAAI0iB,GAAUnvB,GAAGmvB,EAAW9/B,IAChC,IAAI+/B,EAAa3vB,EAAEpQ,EAAE6Q,eAAevL,KAAK,YAAc,QAKvD,GAHiB,SAAby6B,GACA//B,EAAEyR,iBAEY,UAAbsuB,GAA6D,YAAnC3vB,EAAEpQ,EAAE6Q,eAAeL,KAAK,SAAyBJ,EAAEpQ,EAAE6Q,eAAepL,KAAK,aAAuD,SAAxC2K,EAAEpQ,EAAE6Q,eAAevL,KAAK,cAC3I,OAAO,EAGXolB,EAAMiV,gBAAkBvvB,EAAEpQ,EAAE6Q,eAC5B,IAAImvB,EAActV,EAAMiV,gBAAgBr6B,KAAK,UAG7C,GAAmBtI,MAAfgjC,EAA0B,CAC1B,IAAIC,EAAU7vB,EAAE4vB,GAEZtV,EAAMiV,gBAAgB7uB,SAAS,oBAC/B4Z,EAAMuU,IAAIC,MAAM7iB,OAAOqO,EAAMwV,eAAeD,IAC5CvV,EAAMuU,IAAIC,MAAMx+B,SAAS,kBAAkB4C,OAAO,YAAYkO,SAC9DkZ,EAAM0U,OAAS1U,EAAMuU,IAAIC,MAAMx+B,SAAS,oBAExCgqB,EAAM0U,OAASa,EACfvV,EAAM0U,OAAO5uB,KAAK,cAAeJ,EAAEpQ,EAAE6Q,eAAeL,KAAK,UAG7Dka,EAAM0S,aAOtB,kBACIl3B,KAAK+4B,IAAIC,MAAM9hB,IAAI,QAAS,wBAAwBzM,GAAG,QAAS,uBAAyB3Q,IACrFA,EAAEyR,iBACF,IAAI0uB,EAAa/vB,EAAEpQ,EAAE6Q,eAAe4B,QAAQ,kBAC5C,GAAI0tB,EAAWn7B,KAAK,sBAAsBlM,OAAS,EAAG,CAClD,IAAIqmC,EAAWgB,EAAWn7B,KAAK,sBAC3Bm7B,EAAWn7B,KAAKm6B,EAAS75B,KAAK,WAAWyM,GAAG,aAC5CotB,EAASzlB,QAAQ,SAIzBxT,KAAKi3B,MAAM/sB,EAAEpQ,EAAE6Q,eAAe4B,QAAQ,qBAI9C,cACIvM,KAAK+4B,IAAIrJ,QAAQjlB,GAAG,SAAUzX,EAAS,IAAKgN,KAAKu5B,iBAAiBxnC,KAAKiO,SC5J/EkK,GAAE,WACA,IAAIgwB,EACAC,GAAgB,EAGhBC,EAAiB,IAGrB,GAAIlwB,EAAE,iBAAiBtX,OAAS,EAAG,CA6BjC,SAASynC,IACPC,cAAcJ,GACTC,IACHD,EAAeK,aAAY,WACzBC,MACCJ,IAGP,SAASI,IACFtwB,EAAE,iBAAiB2B,GAAG,cACzB3B,EAAE,iBAAiB2F,SAAS,WAC5BsqB,GAAgB,GAvCpBjwB,EAAE,iBAAiBO,GAAG,QAAS,wBAAwB,WACrDP,EAAE,iBAAiB4F,YAAY,WAE/BuqB,OAEFnwB,EAAE,iBAAiBO,GAAG,QAAS,2CAA2C,SAAUpI,GAClF6H,EAAE,iBAAiB4F,YAAY,WAC/B5F,EAAE,kBAAkByL,UAGlBzL,EAAE,mBAAmBtX,OAAS,GAA2D,IAAtDsX,EAAE,mBAAmB9K,KAAK,kBAAkBxM,SACjFwnC,EAAiB9hC,SAAS4R,EAAE,mBAAmB9K,KAAK,oBAGtDi7B,IAEAnwB,EAAE,QAAQO,GAAG,cAAc,SAAU3Q,GAC9BqgC,GACHK,OAIJtwB,EAAE,QAAQO,GAAG,aAAa,SAAU3Q,GAClCugC,OAEFnwB,EAAE,QAAQO,GAAG,YAAY,SAAU3Q,GACjCugC,OAqDJ,SAASI,EAAWC,EAAeC,GAEjC,IAAIv7B,EAlBN,SAA8Bs7B,GAC5B,IAAIt7B,EAYJ,OAXA8K,EAAE4O,KAAK,CACLnJ,KAAM,OACNirB,OAAO,EACP3qB,IAAK,wDACL7Q,KAAM,CAAEy7B,YAAaH,GACrBhnB,MAAO,aACP+B,QAAS,SAAUyD,GACjB9Z,EAAO8Z,KAIJ9Z,EAKI07B,CAAqBJ,GAC5BK,EAASC,KAAKC,MAAM77B,GAQxB8K,EAAOywB,EAAW,kBAAkBzvB,IAAI6vB,EAAOG,WAC/ChxB,EAAOywB,EAAW,gBAAgBzvB,IAAI6vB,EAAOI,SAC7CjxB,EAAOywB,EAAW,eAAezvB,IAAI6vB,EAAOK,QAC5ClxB,EAAOywB,EAAW,oBAAoBzvB,IAAI6vB,EAAOM,aACjDnxB,EAAOywB,EAAW,kBAAkBzvB,IAAI6vB,EAAOO,WAC/CpxB,EAAOywB,EAAW,iBAAiBzvB,IAAI6vB,EAAOQ,UAC9CrxB,EAAOywB,EAAW,sBAAsBzvB,IAAI6vB,EAAOS,eACnDtxB,EAAOywB,EAAW,cAAczvB,IAAI6vB,EAAOU,OAC3CvxB,EAAOywB,EAAW,qBAAqBzvB,IAAI6vB,EAAOW,cAClDxxB,EAAOywB,EAAW,0BAA0BzvB,IAAI6vB,EAAOY,mBACvDzxB,EAAOywB,EAAW,0BAA0BzvB,IAAI6vB,EAAOa,mBACvD1xB,EAAOywB,EAAW,2BAA2BzvB,IAAI6vB,EAAOc,oBACxD3xB,EAAOywB,EAAW,kCAAkCzvB,IAAI6vB,EAAOe,2BAC/D5xB,EAAOywB,EAAW,sCAAsCzvB,IAAI6vB,EAAOgB,+BACnE7xB,EAAOywB,EAAW,oCAAoCzvB,IAAI6vB,EAAOiB,6BACjE9xB,EAAOywB,EAAW,+BAA+BzvB,IAAI6vB,EAAOkB,wBAC5D/xB,EAAOywB,EAAW,yBAAyBzvB,IAAI6vB,EAAOmB,kBACtDhyB,EAAOywB,EAAW,wBAAwBzvB,IAAI6vB,EAAOoB,iBACrDjyB,EAAOywB,EAAW,yBAAyBzvB,IAAI6vB,EAAOqB,kBACtDlyB,EAAOywB,EAAW,aAAazvB,IAAI6vB,EAAOsB,OAE3B,EACf,IAAIC,EAAWC,OAAOC,WAClBC,EAAcH,EAAW,IAAMA,EAAW,IAC1CI,EAAYpkC,UAAUgkC,EAAWG,GAAc,GAC/CE,EAAYJ,OAAOK,YACnBC,EAAeP,EAAW,IAAMA,EAAW,IAC3CQ,EAAWxkC,UAAUqkC,EAAYE,GAAe,GACpD1C,GAAgB,EAChB,IAAI4C,EAAWvqC,OAAO0kC,KAAK,GAAI,WAAY,SAAWuF,EAAa,WAAaI,EAAc,QAAUC,EAAW,SAAWJ,EAAY,mBACtIM,EAAQzC,aAAY,WAElBwC,EAASE,UACoB,EAC/B3C,cAAc0C,GACd9yB,EAAE,kBAAkB9B,OACpB+xB,GAAgB,EAChB+C,SAASC,YAEV,KACH,OAAO,EArFTjzB,EAAE,QAAQO,GAAG,QAAS,YAAY,WAC5BP,EAAElK,MAAM6L,GAAG,YACb3B,EAAE,oCAAoC0Z,GAAG,GAAG9Q,WAAW,YAAYhD,YAAY,YAE/E5F,EAAE,oCAAoC0Z,GAAG,GAAGtZ,KAAK,WAAY,YAAYuF,SAAS,eAItF3F,EAAE,QAAQO,GAAG,QAAS,6CAA6C,SAAUpI,GAC3E6H,EAAE,kBAAkByL,OACpB8kB,EAAW,EAAG,6BAGhBvwB,EAAE,QAAQO,GAAG,QAAS,2CAA2C,SAAUpI,GACzE6H,EAAE,kBAAkByL,OACpB8kB,EAAW,EAAG,8BA2EH,MAAM2C,EACnB,cACEp9B,KAAK+4B,IAAM,CACT7uB,EAAG1X,OAAO0X,EACVwP,OAAQlnB,OAAO0X,EACfmzB,MAAOnzB,EAAE,QACTozB,MAAOpzB,EAAE,UACTqzB,KAAMrzB,EAAE,eACRszB,gBAAiBtzB,EAAE,gCAEjBlK,KAAK+4B,IAAIsE,OACXr9B,KAAKuN,OAIT,OACEvN,KAAKy9B,uBAGP,uBAC+B,IAAzBz9B,KAAK+4B,IAAIwE,KAAK3qC,QAChBoN,KAAK+4B,IAAIwE,KAAK9yB,GAAG,QAAU3Q,IAGI,IAFfoQ,EAAEpQ,EAAE6Q,eAENO,MAAMtY,QAChBW,WAAW,IAAOf,OAAO0qC,SAAW,oBAAsB,Q,KCvKrD,MAAMQ,EACnB,cACE19B,KAAK+4B,IAAM,CACT7uB,EAAG1X,OAAO0X,EACVwP,OAAQlnB,OAAO0X,EACfwlB,QAAShW,OAAOlnB,QAChBmrC,YAAazzB,EAAE,mBACf0zB,qBAAsB1zB,EAAE,0BACxB2zB,iBAAkB3zB,EAAE,qBACpB4zB,gBAAiB5zB,EAAE,uBAErBlK,KAAKuN,OAGP,OACErD,EAAEC,OAAOD,EAAEG,UAAUoC,UACrBzM,KAAK+9B,SAGP,SACE/9B,KAAK+4B,IAAI4E,YAAYK,MAAOlkC,IAC1B,IAAIigC,EAAU7vB,EAAEpQ,EAAE6Q,eAGdovB,EAAQ36B,KAAK,UAAU26B,EAAQxtB,QAAQ,QAAQnN,KAAK,QAAS26B,EAAQ36B,KAAK,a,KCxBrE,MAAM6+B,EACjB,cACIj+B,KAAK+4B,IAAM,CACP7uB,EAAG1X,OAAO0X,EACVwP,OAAQlnB,OAAO0X,EACfsc,QAAStc,EAAE,kCAGXlK,KAAK+4B,IAAIvS,SACTxmB,KAAKuN,OAIb,OACIvN,KAAK+4B,IAAIvS,QAAQ1a,KAAK,CAACuN,EAAG0Q,KACtB,IAAIvD,EAAUtc,EAAE6f,GACZmU,EAAgB,GAuBpB,SAASC,EAAWC,EAAUC,GACtBD,EAASxqC,UACLsW,EAAEm0B,GAAezzB,SAAS,+BAC1BV,EAAEm0B,GAAe/zB,KAAK,QAAS,+BAAiCJ,EAAEk0B,EAASxqC,SAAS0W,KAAK,UAEzFJ,EAAEm0B,GAAexuB,SAAS3F,EAAEk0B,EAASxqC,SAAS0W,KAAK,WAG3D,IAAIg0B,EAAgBF,EAASjrB,KAI7B,OAHIjJ,EAAEk0B,EAASxqC,SAASwL,KAAK,oBACzBk/B,EAAgBp0B,EAAE,+BAAiCA,EAAEk0B,EAASxqC,SAASwL,KAAK,kBAAoB,cAAgBk/B,EAAgB,WAE7HA,EAYX,SAASC,IACL/X,EAAQgY,KAAK,sBAAsB1/B,KAAK,sBAAsBwL,KAAK,QAAS4zB,EAAgB,IAAM1X,EAAQ1nB,KAAK,mBAAmBwL,KAAK,UA9C3Ikc,EAAQ5M,QAAQ,CACZnhB,MAAO,OACPs6B,WAAYvM,EAAQpnB,KAAK,cACzB8nB,YAAaV,EAAQpnB,KAAK,SAC1BkxB,yBAA0B,EAC1BuD,kBAAmB,OACnBE,eAAgBoK,EAChBnK,kBAAmBmK,IACpB1zB,GAAG,uBAAuB,WACzBP,EAAElK,MAAMZ,KAAK,eAAe,MAC7BqL,GAAG,mBAAmB,SAAU3Q,GAC3BoQ,EAAElK,MAAMZ,KAAK,iBACb8K,EAAElK,MAAM6S,WAAW,eACnB/Y,EAAEyR,qBAEPygB,MAAM,KAAK,WAEVkS,EAAgB1X,EAAQgY,KAAK,sBAAsB1/B,KAAK,sBAAsBwL,KAAK,SACnFi0B,OAkBJ/X,EAAQ/rB,SAASqE,KAAK,6BAA6BqX,OAAO,6VAM1DqQ,EAAQ/b,GAAG,SAAU8zB,KASzBr0B,EAAE,yBAAyBO,GAAG,eAAiB3Q,IAC3CvG,YAAW,WACP2W,EAAE,YAAcA,EAAEpQ,EAAE6Q,eAAeL,KAAK,MAAQ,2BAA2BuF,SAAS,iBACrF,Q;;;;;ECjEf,SAASrW,IAeP,OAdAA,EAAWvI,OAAOwI,QAAU,SAAUT,GACpC,IAAK,IAAIzI,EAAI,EAAGA,EAAIsG,UAAUjE,OAAQrC,IAAK,CACzC,IAAImJ,EAAS7C,UAAUtG,GAEvB,IAAK,IAAIuB,KAAO4H,EACVzI,OAAOkB,UAAUC,eAAe1B,KAAKgJ,EAAQ5H,KAC/CkH,EAAOlH,GAAO4H,EAAO5H,IAK3B,OAAOkH,IAGO6U,MAAM7N,KAAMnJ,WAG9B,IAEItE,EAA8B,oBAAXC,QAA8C,oBAAbC,SACpDgsC,EAAKlsC,EAAYM,UAAUC,UAAY,GACvCmC,EAAO,kBAAkBL,KAAK6pC,GAC9BC,EAAc,cAAc9pC,KAAK6pC,GACjCE,EAAQpsC,GAAa,mBAAmBqC,KAAK/B,UAAU+rC,YAAcpsC,OAAOqsC,SAE5EC,EAAe,CACjBC,MAAM,EACNC,WAAW,EACXC,aAAa,EACbC,UAAW,aACX/zB,SAAU,WACR,OAAO1Y,SAAS8B,MAElB4qC,KAAM,cACN74B,OAAO,EACP84B,UAAW,QACXC,SAAU,eACV1a,QAAS,GACTqH,MAAO,EACPsT,SAAU,GACVC,SAAU,CAAC,IAAK,KAChBh/B,MAAM,EACNi/B,aAAc,OACdC,cAAc,EACdC,cAAc,EACdC,aAAa,EACbC,kBAAkB,EAClBC,SAAS,EACTC,aAAa,EACbC,kBAAmB,EACnBC,oBAAqB,EACrBC,MAAM,EACNC,SAAU,IACV3N,UAAU,EACV/2B,OAAQ,EACR2kC,SAAU,aACVC,OAAQ,aACRC,QAAS,aACTC,OAAQ,aACRC,QAAS,aACT9jC,UAAW,MACX+jC,cAAe,GACf3d,KAAM,UACN4d,YAAY,EACZptB,KAAM,UACNqtB,QAAQ,EACR1nC,OAAQ,GACRi7B,MAAO,OACP0M,OAAO,EACPC,WAAW,EACXptB,QAAS,mBACTqtB,eAAgB,EAChBC,KAAM,KACNC,OAAQ,OAONC,EAA+B,CAAC,QAAS,YAAa,WAAY,WAAY,OAAQ,eAAgB,eAAgB,SAAU,YAAa,iBAE7IC,EACM,gBADNA,EAEO,iBAFPA,EAGO,iBAHPA,EAIQ,kBAJRA,EAKK,eALLA,EAMW,oBAGXC,EAAe3uC,EAAY4uC,QAAQhvC,UAAY,GAC/C+3B,EAAUgX,EAAahX,SAAWgX,EAAaE,iBAAmBF,EAAaG,uBAAyBH,EAAaI,oBAAsBJ,EAAaK,kBAK5J,SAASC,EAAUhwC,GACjB,MAAO,GAAG8N,MAAM5O,KAAKc,GAMvB,SAAS+a,EAAQ3Y,EAAS6tC,GACxB,OAAQP,EAAa30B,SAAW,SAAUoH,GAIxC,IAFA,IAAI/X,EAAKoE,KAEFpE,GAAI,CACT,GAAIsuB,EAAQx5B,KAAKkL,EAAI+X,GACnB,OAAO/X,EAGTA,EAAKA,EAAGD,iBAETjL,KAAKkD,EAAS6tC,GAMnB,SAASC,EAAgB9tC,EAAS0O,GAChC,KAAO1O,GAAS,CACd,GAAI0O,EAAS1O,GACX,OAAOA,EAGTA,EAAUA,EAAQ+H,eAItB,IAAIgmC,EAAU,CACZz/B,SAAS,GAIPrF,EAAO5L,OAAO4L,KAAKiiC,GAkFvB,SAAS,EAAevlC,EAAKzH,GAC3B,MAAO,GAAGM,eAAe1B,KAAK6I,EAAKzH,GA8BrC,SAAS8vC,EAASpwC,EAAOwS,EAAO69B,GAC9B,GAAI5iC,MAAM8Y,QAAQvmB,GAAQ,CACxB,IAAIoX,EAAIpX,EAAMwS,GACd,OAAY,MAAL4E,EAAYi5B,EAAej5B,EAGpC,OAAOpX,EAMT,SAAS,EAAS0B,EAAI4uC,GACpB,IAAIC,EACJ,OAAO,WACL,IAAIn4B,EAAQ5J,KACVgiC,EAAanrC,UAEfq1B,aAAa6V,GAEbA,EAAYxuC,YAAW,WACrB,OAAOL,EAAG2a,MAAMjE,EAAOo4B,KACtBF,IAQP,SAASG,EAAY1oC,EAAKzH,GACxB,OAAOyH,GAAOA,EAAI4F,WAAa5F,EAAI4F,UAAUrN,GAM/C,SAASowC,EAASjlC,EAAGC,GACnB,OAAOD,EAAElK,QAAQmK,IAAM,EAMzB,SAASilC,EAAW3wC,GAClB,SAAUA,IAAS,EAAeA,EAAO,eAAiBA,aAAiB2vC,QAa7E,SAASiB,EAAc5wC,EAAOkc,GAC5B,MAAwB,mBAAVlc,EAAuBA,EAAMqc,MAAM,KAAMH,GAAQlc,EAMjE,SAAS6wC,EAAuBljC,EAAW3N,GACzC2N,EAAU/B,QAAO,SAAUzM,GACzB,MAAkB,SAAXA,EAAEG,QACR,GAAGgP,QAAUtO,EAclB,SAAS8wC,IACP,OAAO7vC,SAASiwB,cAAc,OAOhC,SAAS6f,EAAcxmC,EAAW9C,GAChC,IAAIupC,EAAMhpC,EAAS,GAAIP,EAAO,CAC5B0rB,QAASyd,EAAcnpC,EAAM0rB,QAAS,CAAC5oB,KACtC9C,EAAM2mC,iBAAmB,GAzM9B,SAAiC7jC,GAC/B,OAAOc,EAAKmI,QAAO,SAAUy9B,EAAK3wC,GAChC,IAAI4wC,GAAiB3mC,EAAU2b,aAAa,cAAczT,OAAOnS,KAAS,IAAI2S,OAE9E,IAAKi+B,EACH,OAAOD,EAGT,GAAY,YAAR3wC,EACF2wC,EAAI3wC,GAAO4wC,OAEX,IACED,EAAI3wC,GAAOkpC,KAAKC,MAAMyH,GACtB,MAAO5oC,GACP2oC,EAAI3wC,GAAO4wC,EAIf,OAAOD,IACN,IAsL8BE,CAAwB5mC,IAMzD,OAJIymC,EAAIl8B,OAASo4B,KACf8D,EAAIvD,aAAc,GAGbuD,EAMT,SAASI,EAAgBviC,EAASy+B,GAChC7tC,OAAO4L,KAAKwD,GAASV,SAAQ,SAAU6hB,GACrC,IAAK,EAAesd,EAActd,GAChC,MAAM,IAAI9I,MAAM,aAAazU,OAAOud,EAAQ,+BASlD,SAASqhB,EAAajvC,EAASoD,GAC7BpD,EAAmB,UAAIoD,aAAgBmqC,QAAUnqC,EAAgB,UAAIA,EAMvE,SAAS8rC,EAAWC,EAAW9pC,GAC7B,GAAIA,EAAM0rB,mBAAmBwc,QAC3B0B,EAAaE,EAAW,IACxBA,EAAUC,YAAY/pC,EAAM0rB,cACvB,GAA6B,mBAAlB1rB,EAAM0rB,QAAwB,CAE9Coe,EADU9pC,EAAM+lC,UAAY,YAAc,eACzB/lC,EAAM0rB,SAO3B,SAASse,EAAYnnC,GACnB,MAAO,CACLonC,QAASpnC,EAAO2K,cAAcw6B,GAC9BkC,SAAUrnC,EAAO2K,cAAcw6B,GAC/Btc,QAAS7oB,EAAO2K,cAAcw6B,GAC9B36B,MAAOxK,EAAO2K,cAAcw6B,IAAoBnlC,EAAO2K,cAAcw6B,IAOzE,SAASmC,EAAWF,GAClBA,EAAQ15B,aAAa,eAAgB,IAavC,SAAS65B,EAAmBjE,GAC1B,IAAI94B,EAAQg8B,IASZ,MAPkB,UAAdlD,GACF94B,EAAMgR,UAAY,mBAClBurB,EAAav8B,EAAO,oMAEpBA,EAAMgR,UAAY,cAGbhR,EAMT,SAASg9B,IACP,IAAIH,EAAWb,IAGf,OAFAa,EAAS7rB,UAAY,iBACrB6rB,EAAS35B,aAAa,aAAc,UAC7B25B,EAMT,SAASI,EAAeznC,EAAQonC,GAC9BpnC,EAAO0N,aAAa,WAAY,MAChC05B,EAAQ15B,aAAa,mBAAoB,IAc3C,SAASg6B,EAAwBC,EAAKjyC,GACpCiyC,EAAI9jC,SAAQ,SAAU/D,GAChBA,IACFA,EAAG2F,MAAMmiC,mBAAqB,GAAGz/B,OAAOzS,EAAO,UAQrD,SAASmyC,EAA4BT,EAASU,EAAQC,GAGpD,IAAIC,EAAYpF,QAAwD5nC,IAAzCrE,SAAS8B,KAAKgN,MAAMwiC,iBAAiC,sBAAwB,gBAC5Gb,EAAQU,EAAS,iBAAiBE,EAAWD,GAM/C,SAASG,EAAmBloC,GAC1B,IAAImoC,EAAgBnoC,EAAO4b,aAAa,eACxC,OAAOusB,EAAgBA,EAAczmC,MAAM,KAAK,GAAK,GAMvD,SAAS0mC,EAAmBT,EAAK/lC,GAC/B+lC,EAAI9jC,SAAQ,SAAU/D,GAChBA,GACFA,EAAG4N,aAAa,aAAc9L,MAepC,SAASymC,GAAYjB,EAASU,EAAQ3P,GACpCA,EAAMz2B,MAAM,KAAKmC,SAAQ,SAAUykC,GACjClB,EAAQmB,UAAUT,GAAQQ,EAAY,aAiJ1C,SAASE,KACP,IAAI/nC,EAAO1F,UAAUjE,OAAS,QAAsBkE,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,GAC7E0tC,EAAmBhoC,EAAKgoC,iBACxBC,EAAUjoC,EAAKioC,QACfjF,EAAWhjC,EAAKgjC,SAElBiC,EAAU/uC,SAASgyC,iBAAiBxD,IAAmBthC,SAAQ,SAAU7D,GACvE,IAAInD,EAAWmD,EAAO4oC,QAElB/rC,GAAa4rC,IAAkD,IAA/B5rC,EAASM,MAAM0mC,aAAkC6E,GAAW1oC,IAAW0oC,EAAQ1oC,QACjHnD,EAASyP,KAAKm3B,MAiCpB,IAAIoF,IAAe,EACnB,SAASC,KACHD,KAIJA,IAAe,EAEXhG,GACFlsC,SAAS8B,KAAK8vC,UAAUvzB,IAAI,aAG1Bte,OAAOqyC,aACTpyC,SAASwP,iBAAiB,YAAa6iC,KAG3C,IAAIC,GAAoB,EACxB,SAASD,KACP,IAAInM,EAAMkM,YAAYlM,MAElBA,EAAMoM,GAAoB,KAC5BJ,IAAe,EACflyC,SAASqQ,oBAAoB,YAAagiC,IAErCnG,GACHlsC,SAAS8B,KAAK8vC,UAAU/4B,OAAO,cAInCy5B,GAAoBpM,EAEtB,SAASqM,GAAgB3iC,GAEvB,KAAMA,EAAMrJ,kBAAkBmoC,SAC5B,OAAOmD,KAIT,IAAIxoC,EAASyQ,EAAQlK,EAAMrJ,OAAQioC,GAEnC,KAAInlC,GAAUA,EAAO4oC,QAAU5oC,EAAO4oC,OAAOzrC,MAAM6mC,aAAnD,CAKA,IAAI/jC,EAAY2lC,EAAgBr/B,EAAMrJ,QAAQ,SAAU4C,GACtD,OAAOA,EAAG8oC,QAAU9oC,EAAG8oC,OAAO3oC,YAAcH,KAG9C,GAAIG,EAAW,CACb,IAAIpD,EAAWoD,EAAU2oC,OAEzB,GAAI/rC,EAAU,CACZ,IAAIssC,EAAiB/C,EAASvpC,EAASM,MAAMua,SAAW,GAAI,SAE5D,GAAImxB,IAAgBM,EAClB,OAAOX,GAAQ,CACbE,QAAS7rC,EACT4rC,kBAAkB,IAItB,IAAmC,IAA/B5rC,EAASM,MAAM0mC,aAAwBsF,EACzC,OAGFtsC,EAASusC,sBAIbZ,GAAQ,CACNC,kBAAkB,KAGtB,SAASY,KACP,IACE5e,EADc9zB,SACY8zB,cAExBA,GAAiBA,EAAcqH,MAAQrH,EAAcme,QACvDne,EAAcqH,OAalB,IAAIwX,GAAY,EAOhB,SAASC,GAAYtpC,EAAWupC,GAC9B,IASIC,EAEAC,EAEAC,EAEAC,EAfAzsC,EAAQspC,EAAcxmC,EAAWupC,GAErC,IAAKrsC,EAAMs5B,UAAYx2B,EAAU2oC,OAC/B,OAAO,KAgBT,IAEIiB,EAMAvxC,EA9emBR,EAsenBgyC,GAAoB,EAIpB9mB,EAAY,GAEZ+mB,EAAuB5sC,EAAM+mC,oBAAsB,EAAI,EAAS8F,EAAa7sC,EAAM+mC,qBAAuB8F,EAM1GjxB,EAAKuwB,KAELtpC,EA1TN,SAA6B+Y,EAAI5b,GAC/B,IAAI6C,EAASwmC,IACbxmC,EAAOwb,UAAY,eACnBxb,EAAO+Y,GAAK,SAAS5Q,OAAO4Q,GAC5B/Y,EAAOyF,MAAMw/B,OAAS,GAAK9nC,EAAM8nC,OAE7B9nC,EAAM4pB,MACR/mB,EAAO0N,aAAa,OAAQvQ,EAAM4pB,MAGpC,IAAIqgB,EAAUZ,IACdY,EAAQ5rB,UAAY,gBACpB4rB,EAAQ3hC,MAAM2+B,SAAWjnC,EAAMinC,UAAsC,iBAAnBjnC,EAAMinC,SAAwB,KAAO,IACvFgD,EAAQ15B,aAAa,YAAavQ,EAAMoa,MACxC6vB,EAAQ15B,aAAa,iBAAkBvQ,EAAMimC,WAC7CgE,EAAQ15B,aAAa,aAAc,UACnC26B,GAAYjB,EAAS,MAAOjqC,EAAMg7B,OAClC,IAAItP,EAAU2d,IAwBd,OAvBA3d,EAAQrN,UAAY,gBACpBqN,EAAQnb,aAAa,aAAc,UAE/BvQ,EAAM6mC,aACRyD,EAAeznC,EAAQonC,GAGrBjqC,EAAMqN,OACR48B,EAAQF,YAAYK,EAAmBpqC,EAAMmmC,YAG3CnmC,EAAMgmC,cACRiE,EAAQF,YAAYM,KACpBJ,EAAQ15B,aAAa,mBAAoB,KAGvCvQ,EAAM4mC,SACRuD,EAAWF,GAGbJ,EAAWne,EAAS1rB,GACpBiqC,EAAQF,YAAYre,GACpB7oB,EAAOknC,YAAYE,GACZpnC,EAiRMiqC,CAAoBlxB,EAAI5b,GAiBjCN,EAAW,CAEbkc,GAAIA,EACJ9Y,UAAWA,EACXD,OAAQA,EACRkqC,eApBmB/C,EAAYnnC,GAqB/BmqC,eAPmB,KAQnBhtC,MAAOA,EACPyE,MAtBU,CAEVwoC,WAAW,EAEXC,WAAW,EAEXlmC,aAAa,EAEbmmC,WAAW,EAEXC,SAAS,GAcTnB,mBAAoBA,GACpBhR,IAAKA,GACL4O,WA0sBF,SAAuBne,GACrBuP,GAAI,CACFvP,QAASA,KA3sBXhP,KAAMA,GACNvN,KAAMA,GACNuvB,OA6nBF,WACEh/B,EAAS+E,MAAMwoC,WAAY,GA7nB3BI,QAooBF,WACE3tC,EAAS+E,MAAMwoC,WAAY,GApoB3B1kC,QAASA,IAiCX,OA/BA+kC,KAEKttC,EAAMgnC,OACTuG,KACA7tC,EAASstC,eAAetkC,yBAGtB1I,EAAMwnC,YACRgG,IAIExtC,EAAM8lC,OAAS9lC,EAAMD,UApiBFpF,EAoiB6BmI,aAniB1BolC,WAAUjX,EAAQx5B,KAAKkD,EAAS,8EAAiFA,EAAQ8yC,aAAa,eAoiB9J3qC,EAAUyN,aAAa,WAAY,KAKrC1N,EAAOmG,iBAAiB,cAAc,SAAUI,GAC1C1J,EAASM,MAAM6mC,aAAennC,EAAS+E,MAAMyoC,WAAsC,eAAzBZ,GAC5DkB,EAAapkC,MAGjBvG,EAAOmG,iBAAiB,cAAc,WAChCtJ,EAASM,MAAM6mC,aAAwC,eAAzByF,GAChC9yC,SAASwP,iBAAiB,YAAa4jC,MAI3C9pC,EAAU2oC,OAAS/rC,EACnBmD,EAAO4oC,OAAS/rC,EACTA,EAOP,SAASguC,EAAmCtkC,GAC1C,IAAIukC,EAAsBpB,EAAqBnjC,EAC7CwkC,EAAUD,EAAoBC,QAC9BC,EAAUF,EAAoBE,QAEhC,GAAKnuC,EAASstC,eAAd,CAMA,IAAIxpC,EAAYunC,EAAmBrrC,EAASmD,QACxCE,EAAUrD,EAASM,MAAMqN,MAxwBnB,GAwwBmE,UAA7B3N,EAASM,MAAMmmC,UAAwB,GAAK,IAxwBlF,EAywBN2H,EAAsB7E,EAAS,CAAC,MAAO,UAAWzlC,GAClDuqC,EAAwB9E,EAAS,CAAC,OAAQ,SAAUzlC,GAEpDoB,EAAIkpC,EAAsB3uC,KAAKC,IAAI2D,EAAS6qC,GAAWA,EACvD9oC,EAAIipC,EAAwB5uC,KAAKC,IAAI2D,EAAS8qC,GAAWA,EAEzDC,GAAuBlpC,EAAI7B,IAC7B6B,EAAIzF,KAAK8N,IAAI2gC,EAASr0C,OAAO8I,WAAaU,IAGxCgrC,GAAyBjpC,EAAI/B,IAC/B+B,EAAI3F,KAAK8N,IAAI4gC,EAASt0C,OAAO+I,YAAcS,IAG7C,IAAI7E,EAAOwB,EAASoD,UAAUlC,wBAC1B6lC,EAAe/mC,EAASM,MAAMymC,aAC9BuH,EAAgC,eAAjBvH,EACfl6B,EAA8B,aAAjBk6B,EACjB/mC,EAASstC,eAAelqC,UAAYvC,EAAS,GAAIb,EAASstC,eAAelqC,UAAW,CAClFlC,sBAAuB,WACrB,MAAO,CACLpB,MAAO,EACPD,OAAQ,EACRhB,IAAKyvC,EAAe9vC,EAAKK,IAAMuG,EAC/BtG,OAAQwvC,EAAe9vC,EAAKM,OAASsG,EACrCrG,KAAM8N,EAAarO,EAAKO,KAAOmG,EAC/BlG,MAAO6N,EAAarO,EAAKQ,MAAQkG,IAGrC5D,YAAa,EACbC,aAAc,IAEhBvB,EAASstC,eAAerjC,iBAEH,YAAjB88B,GAA8B/mC,EAAS+E,MAAMyoC,WAC/Ce,KA4BJ,SAAST,EAAapkC,GAGpB,GAFA6iC,MAEIvsC,EAAS+E,MAAMyoC,UAAnB,CAKA,GAAIxtC,EAASM,MAAMD,OACjB,OA7BJ,SAAkCqJ,GAChC,GAAIA,EAAO,CACT,IAAI8kC,EAAW56B,EAAQlK,EAAMrJ,OAAQL,EAASM,MAAMD,QAEhDmuC,IAAaA,EAASzC,SACxBW,GAAY8B,EAAU3tC,EAAS,GAAIb,EAASM,MAAO,CACjD0rB,QAASyd,EAAckD,EAAgB3gB,QAAS,CAACwiB,IACjDh8B,SAAUm6B,EAAgBn6B,SAC1BnS,OAAQ,GACRynC,YAAY,KAEdgG,EAAapkC,KAkBR+kC,CAAyB/kC,GAKlC,GAFAujC,GAAoB,EAEhBjtC,EAASM,MAAM6nC,KACjB,OAAOnoC,EAASM,MAAM6nC,KAAKnoC,EAAU0J,GAQnCglC,OAA8B1uC,EAAS+E,MAAM0oC,WAC/C3zC,SAASwP,iBAAiB,YAAa0kC,GAGzC,IAAI3a,EAAQ4V,EAASjpC,EAASM,MAAM+yB,MAAO,EAAG8S,EAAa9S,OAEvDA,EACFyZ,EAAgBlyC,YAAW,WACzBoiB,OACCqW,GAEHrW,MAQJ,SAAS2xB,IAGP,GAFApC,MAEKvsC,EAAS+E,MAAMyoC,UAClB,OAAOe,IAGTtB,GAAoB,EACpB,IAAI5Z,EAAQ4V,EAASjpC,EAASM,MAAM+yB,MAAO,EAAG8S,EAAa9S,OAEvDA,IACF0Z,EAAgBnyC,YAAW,WACrBoF,EAAS+E,MAAMyoC,WACjB/9B,OAED4jB,IAcP,SAASkb,IACPz0C,SAASqQ,oBAAoB,YAAa6jC,GAO5C,SAASY,IACP90C,SAAS8B,KAAKuO,oBAAoB,aAAcwkC,GAChD70C,SAASqQ,oBAAoB,YAAa+iC,GAO5C,SAAS2B,EAAUnlC,GACZ1J,EAAS+E,MAAMwoC,YAAauB,GAAuBplC,KAInD1J,EAAS+E,MAAMyoC,YAClBZ,EAAuBljC,EAAMsN,KAEzBtN,aAAiBqlC,aACnBlC,EAAqBnjC,IAKN,UAAfA,EAAMsN,OAAmD,IAA/BhX,EAASM,MAAM0mC,aAAyBhnC,EAAS+E,MAAMyoC,UACnFmB,IAEAb,EAAapkC,IASjB,SAASyjC,EAAYzjC,GACnB,IAAIslC,EAA2BjG,EAAgBr/B,EAAMrJ,QAAQ,SAAU4C,GACrE,OAAOA,EAAG8oC,UAERkD,EAAqBr7B,EAAQlK,EAAMrJ,OAAQioC,KAAsBtoC,EAASmD,OAC1E+rC,EAAwBF,IAA6BhvC,EAASoD,UAE9D6rC,GAAsBC,GA5a9B,SAA0CC,EAAiBvpC,EAAY8D,EAAOpJ,GAC5E,IAAK6uC,EACH,OAAO,EAGT,IAAIjqC,EAAIwE,EAAMwkC,QACZ9oC,EAAIsE,EAAMykC,QACR/G,EAAoB9mC,EAAM8mC,kBAC5BT,EAAWrmC,EAAMqmC,SACfyI,EAAaxpC,EAAW/G,IAAMuG,GAAyB,QAApB+pC,EAA4B/H,EAAoBT,EAAWS,GAC9FiI,EAAgBjqC,EAAIQ,EAAW9G,QAA8B,WAApBqwC,EAA+B/H,EAAoBT,EAAWS,GACvGkI,EAAc1pC,EAAW7G,KAAOmG,GAAyB,SAApBiqC,EAA6B/H,EAAoBT,EAAWS,GACjGmI,EAAerqC,EAAIU,EAAW5G,OAA6B,UAApBmwC,EAA8B/H,EAAoBT,EAAWS,GACxG,OAAOgI,GAAcC,GAAiBC,GAAeC,EAma/CC,CAAiCnE,EAAmBrrC,EAASmD,QAASnD,EAASmD,OAAOjC,wBAAyBwI,EAAO1J,EAASM,SACjIsuC,IACAD,KAQJ,SAASc,GAAa/lC,GACpB,IAAIolC,GAAuBplC,GAI3B,OAAI1J,EAASM,MAAM6mC,aACjBrtC,SAAS8B,KAAK0N,iBAAiB,aAAcqlC,QAC7C70C,SAASwP,iBAAiB,YAAa4jC,SAIzCyB,IAOF,SAASe,GAAOhmC,GACVA,EAAMrJ,SAAWL,EAASoD,YAI1BpD,EAASM,MAAM6mC,aAAez9B,EAAMimC,eAAiB3vC,EAASmD,OAAOtF,SAAS6L,EAAMimC,gBAIxFhB,KAOF,SAASiB,GAAelmC,GAClBkK,EAAQlK,EAAMrJ,OAAQL,EAASM,MAAMD,SACvCytC,EAAapkC,GAQjB,SAASmmC,GAAenmC,GAClBkK,EAAQlK,EAAMrJ,OAAQL,EAASM,MAAMD,SACvCsuC,IASJ,SAASG,GAAuBplC,GAC9B,IAAIomC,EAAgB,iBAAkBj2C,OAClCk2C,EAAexG,EAAS7/B,EAAMsN,KAAM,SACpCixB,EAAYjoC,EAASM,MAAM2nC,UAC/B,OAAO6H,GAAiB9D,IAAgB/D,IAAc8H,GAAgB/D,KAAiB/D,GAAa8H,EAOtG,SAASlC,KACP,IAAIhG,EAAgB7nC,EAASM,MAAMunC,cAC/BmI,EAAwBhwC,EAASqtC,eACnC9C,EAAUyF,EAAsBzF,QAChC58B,EAAQqiC,EAAsBriC,MAC5BsiC,EAA0B3G,EAAYzB,EAAe,mBAEzD,SAASqI,EAAezpC,GAClBzG,EAASM,MAAMsH,OAAS5H,EAASM,MAAMwmC,eACrCrgC,EAAKgB,UACPzH,EAASstC,eAAe5lC,QAAQ5D,UAAY2C,EAAK3C,WAGnD4lC,EAAuB1pC,EAASstC,eAAe9mC,WAAW,IAG5D+jC,EAAQ15B,aAAa,cAAepK,EAAK3C,WACzC,IAAI4H,EAAgB2/B,EAAmBrrC,EAASmD,QAC5CjE,EAASqrC,EAAQ3hC,MAErB1J,EAAOL,IAAMK,EAAOJ,OAASI,EAAOH,KAAOG,EAAOF,MAAQ,GAC1DE,EAAOwM,KAAuC1L,EAASM,MAAMqmC,SA5f7C,IAAM,KA6ftB,IAAItjC,EAAU4sC,QAA+D9xC,IAApC8xC,EAAwB5sC,QAAwB4sC,EAAwB5sC,QAviCzG,EAwiCJK,EAAqC,iBAAZL,EAEzB8sC,EAAkBtvC,EAAS,CAC7BhC,IAAK6E,EAAkBL,EAAUA,EAAQxE,IACzCC,OAAQ4E,EAAkBL,EAAUA,EAAQvE,OAC5CC,KAAM2E,EAAkBL,EAAUA,EAAQtE,KAC1CC,MAAO0E,EAAkBL,EAAUA,EAAQrE,QACzC0E,GAAmBL,GAEvB8sC,EAAgBzkC,GAAiBhI,EAAkBL,EAAUrD,EAASM,MAAMqmC,UAAYtjC,EAAQqI,IAAkB,GAAK1L,EAASM,MAAMqmC,SACtI3mC,EAASstC,eAAe9mC,UAAU/B,QAAO,SAAUzM,GACjD,MAAkB,oBAAXA,EAAEG,QACR,GAAGkL,QAAU8sC,EAGlB,IAAItuB,EAAShhB,EAAS,CACpBiD,UAAW9D,EAASM,MAAMwD,WACzB+jC,EAAe,CAChBrhC,UAAW3F,EAAS,GAAIgnC,EAAgBA,EAAcrhC,UAAY,GAAI,CACpEuG,gBAAiBlM,EAAS,CACxByC,kBAAmBtD,EAASM,MAAMomC,SAClCrjC,QA7jCI,GA8jCH4sC,GACHtiC,MAAO9M,EAAS,CACd5F,QAAS0S,EACTxG,UAAWwG,GACV27B,EAAYzB,EAAe,UAC9BjgC,KAAM/G,EAAS,CACbsG,QAASnH,EAASM,MAAMsH,KAGxBvE,QAASrD,EAASM,MAAMqmC,SAvkCpB,EAwkCJh4B,SAAU3O,EAASM,MAAMumC,cACxByC,EAAYzB,EAAe,SAC9BhlC,OAAQhC,EAAS,CACfgC,OAAQ7C,EAASM,MAAMuC,QACtBymC,EAAYzB,EAAe,aAIhC5/B,SAAU,SAAkBxB,GAC1BypC,EAAezpC,GAEXohC,GAAiBA,EAAc5/B,UACjC4/B,EAAc5/B,SAASxB,IAM3BuB,SAAU,SAAkBvB,GAC1BypC,EAAezpC,GAEXohC,GAAiBA,EAAc7/B,UACjC6/B,EAAc7/B,SAASvB,MAK7BzG,EAASstC,eAAiB,IAAI,IAAOttC,EAASoD,UAAWpD,EAASmD,OAAQ0e,GAQ5E,SAASuuB,GAAMzmC,GACb,IAAI0mC,IAAyB3B,MAA+D,YAAhC1uC,EAASM,MAAMymC,cAA8BiF,IAEpGhsC,EAASstC,gBAOPoB,OACH1uC,EAASstC,eAAerjC,iBAEpBomC,GACFrwC,EAASstC,eAAetjC,wBAI5B0/B,EAAuB1pC,EAASstC,eAAe9mC,UAAWxG,EAASM,MAAMsH,QAdzEimC,KAEKwC,GACHrwC,EAASstC,eAAetkC,yBAiB5BhJ,EAASstC,eAAelqC,UAAYpD,EAASoD,UAC7C,IAAIuK,EAAQ3N,EAASqtC,eAAe1/B,MAEhC+gC,MACE/gC,IACFA,EAAM/E,MAAM0nC,OAAS,KAGnBzD,GACFmB,EAAmCnB,IAE5Bl/B,IACTA,EAAM/E,MAAM0nC,OAAS,IAInBtE,IAAgBa,GAAsD,YAAhC7sC,EAASM,MAAMymC,eACvDiH,EAAmCnB,GAE/Bl/B,IACFA,EAAM/E,MAAM0nC,OAAS,MA3qB7B,SAAoChD,EAAgB3jC,GAClD,IAAIxG,EAASmqC,EAAenqC,OAC1BuE,EAAU4lC,EAAe5lC,QACvBO,EAAWP,EAAQO,SACrBD,EAAWN,EAAQM,SAErBN,EAAQO,SAAWP,EAAQM,SAAW,SAAUvB,IA1IlD,SAAgBtD,GACTA,EAAOxB,aA0IV4uC,CAAOptC,GACPwG,IAEI3B,GACFA,EAASvB,GAGXiB,EAAQO,SAAWA,EACnBP,EAAQM,SAAWA,GAgqBnBwoC,CAA2BxwC,EAASstC,eAAgB3jC,GACpD,IAAI6I,EAAWxS,EAASM,MAAMkS,UAC9B/W,EAA0B,WAAb+W,EAAwBxS,EAASoD,UAAU3H,WAAaguC,EAAcj3B,EAAU,CAACxS,EAASoD,aAEvFvF,SAASmC,EAASmD,UAChC1H,EAAW4uC,YAAYrqC,EAASmD,QAChCnD,EAASM,MAAMonC,QAAQ1nC,GACvBA,EAAS+E,MAAM0oC,WAAY,GAQ/B,SAASiB,KACP,OAAO1uC,EAASM,MAAMymC,eAAiBiF,IAAyC,UAAzBY,EAOzD,SAAS6D,KACP5F,EAAwB,CAAC7qC,EAASmD,QAAS7G,EAAO,EAAI0D,EAASM,MAAM4nC,gBAErE,SAASwI,IACH1wC,EAASstC,gBACXttC,EAASstC,eAAerjC,iBAGtBjK,EAAS+E,MAAM0oC,UACjBv8B,sBAAsBw/B,GAEtB7F,EAAwB,CAAC7qC,EAASmD,QAAS,GAI/CutC,GAOF,SAASC,GAAkB/J,EAAUj9B,GACnCinC,GAAgBhK,GAAU,YACnB5mC,EAAS+E,MAAMyoC,WAAa/xC,GAAcA,EAAWoC,SAASmC,EAASmD,SAC1EwG,OASN,SAASknC,GAAiBjK,EAAUj9B,GAClCinC,GAAgBhK,EAAUj9B,GAO5B,SAASinC,GAAgBhK,EAAUj9B,GACjC,IAAI4gC,EAAUvqC,EAASqtC,eAAe9C,QAKtC,SAASW,EAASxhC,GACZA,EAAMrJ,SAAWkqC,IACnBS,EAA4BT,EAAS,SAAUW,GAC/CvhC,KAMJ,GAAiB,IAAbi9B,EACF,OAAOj9B,IAGTqhC,EAA4BT,EAAS,SAAUyC,GAC/ChC,EAA4BT,EAAS,MAAOW,GAC5C8B,EAAwB9B,EAO1B,SAASp5B,GAAG0G,EAAWs4B,GACrB,IAAIppC,EAAUxJ,UAAUjE,OAAS,QAAsBkE,IAAjBD,UAAU,IAAmBA,UAAU,GAC7E8B,EAASoD,UAAUkG,iBAAiBkP,EAAWs4B,EAASppC,GACxDye,EAAUrc,KAAK,CACb0O,UAAWA,EACXs4B,QAASA,EACTppC,QAASA,IAQb,SAASkmC,KACH5tC,EAASM,MAAM2nC,YAAcjoC,EAASM,MAAMD,SAC9CyR,GAAG,aAAc+8B,EAAW7F,GAC5Bl3B,GAAG,WAAY29B,GAAczG,IAG/BhpC,EAASM,MAAMua,QAAQ/O,OAAOjH,MAAM,KAAKmC,SAAQ,SAAUwR,GACzD,GAAkB,WAAdA,EAKJ,GAAKxY,EAASM,MAAMD,OAclB,OAAQmY,GACN,IAAK,aACH1G,GAAG,YAAa89B,IAChB99B,GAAG,WAAY+9B,IACf,MAEF,IAAK,QACH/9B,GAAG,UAAW89B,IACd99B,GAAG,WAAY+9B,IACf,MAEF,IAAK,QACH/9B,GAAG0G,EAAWo3B,SAvBlB,OAFA99B,GAAG0G,EAAWq2B,GAENr2B,GACN,IAAK,aACH1G,GAAG,aAAc29B,IACjB,MAEF,IAAK,QACH39B,GAAGxV,EAAO,WAAa,OAAQozC,QA4BzC,SAASqB,KACP5qB,EAAUnf,SAAQ,SAAUpD,GAC1B,IAAI4U,EAAY5U,EAAK4U,UACnBs4B,EAAUltC,EAAKktC,QACfppC,EAAU9D,EAAK8D,QACjB1H,EAASoD,UAAU+G,oBAAoBqO,EAAWs4B,EAASppC,MAE7Dye,EAAY,GAOd,SAAS6qB,KACP,MAAO,CAAChxC,EAASqtC,eAAe9C,QAASvqC,EAASqtC,eAAe7C,SAAUxqC,EAASqtC,eAAerhB,SAyBrG,SAASugB,KACPhZ,aAAauZ,GACbvZ,aAAawZ,GACb7iC,0BAhsBE+mC,GAusBJ,SAAS1V,GAAI7zB,GAGXuiC,EADAviC,EAAUA,GAAW,GACIy+B,GACzB,IAAI+K,EAAYlxC,EAASM,MACrB6wC,EAAYvH,EAAc5pC,EAASoD,UAAWvC,EAAS,GAAIb,EAASM,MAAOoH,EAAS,CACtFu/B,kBAAkB,KAEpBkK,EAAUlK,iBAAmB,EAAev/B,EAAS,oBAAsBA,EAAQu/B,mBAAoB,EAAQiK,EAAUjK,iBACzHjnC,EAASM,MAAQ6wC,GAEb,EAAezpC,EAAS,YAAc,EAAeA,EAAS,gBAChEqpC,KACAnD,MAGE,EAAelmC,EAAS,yBAC1BknC,IACA1B,EAAuB,EAASC,EAAazlC,EAAQ2/B,qBAAuB,IAp9BlF,SAA6BlkC,EAAQ+tC,EAAWC,GAC9C,IAAIC,EAAe9G,EAAYnnC,GAC7BonC,EAAU6G,EAAa7G,QACvBve,EAAUolB,EAAaplB,QACvBwe,EAAW4G,EAAa5G,SACxB78B,EAAQyjC,EAAazjC,MAEvBxK,EAAOyF,MAAMw/B,OAAS,GAAK+I,EAAU/I,OACrCmC,EAAQ15B,aAAa,YAAasgC,EAAUz2B,MAC5C6vB,EAAQ15B,aAAa,iBAAkBsgC,EAAU5K,WACjDgE,EAAQ3hC,MAAM2+B,SAAW4J,EAAU5J,UAA0C,iBAAvB4J,EAAU5J,SAAwB,KAAO,IAE3F4J,EAAUjnB,KACZ/mB,EAAO0N,aAAa,OAAQsgC,EAAUjnB,MAEtC/mB,EAAO2F,gBAAgB,QAGrBooC,EAAUllB,UAAYmlB,EAAUnlB,SAClCme,EAAWne,EAASmlB,IAIjBD,EAAU5K,aAAe6K,EAAU7K,aACtCiE,EAAQF,YAAYM,KACpBJ,EAAQ15B,aAAa,mBAAoB,KAChCqgC,EAAU5K,cAAgB6K,EAAU7K,cAC7CiE,EAAQrhC,YAAYshC,GACpBD,EAAQzhC,gBAAgB,sBAIrBooC,EAAUvjC,OAASwjC,EAAUxjC,MAChC48B,EAAQF,YAAYK,EAAmByG,EAAU1K,YACxCyK,EAAUvjC,QAAUwjC,EAAUxjC,OACvC48B,EAAQrhC,YAAYyE,GAIlBujC,EAAUvjC,OAASwjC,EAAUxjC,OAASujC,EAAUzK,YAAc0K,EAAU1K,WAC1E8D,EAAQ8G,aAAa3G,EAAmByG,EAAU1K,WAAY94B,IAI3DujC,EAAU/J,aAAegK,EAAUhK,YACtCyD,EAAeznC,EAAQonC,GACd2G,EAAU/J,cAAgBgK,EAAUhK,aA7JjD,SAA2BhkC,EAAQonC,GACjCpnC,EAAO2F,gBAAgB,YACvByhC,EAAQzhC,gBAAgB,oBA4JtBwoC,CAAkBnuC,EAAQonC,IAIvB2G,EAAUhK,SAAWiK,EAAUjK,QAClCuD,EAAWF,GACF2G,EAAUhK,UAAYiK,EAAUjK,SA7M7C,SAAuBqD,GACrBA,EAAQzhC,gBAAgB,gBA6MtByoC,CAAchH,GAIZ2G,EAAU5V,QAAU6V,EAAU7V,QAChCkQ,GAAYjB,EAAS,SAAU2G,EAAU5V,OACzCkQ,GAAYjB,EAAS,MAAO4G,EAAU7V,QA25BtCkW,CAAoBxxC,EAASmD,OAAQ+tC,EAAWC,GAChDnxC,EAASqtC,eAAiB/C,EAAYtqC,EAASmD,QAE3CnD,EAASstC,iBACXttC,EAASstC,eAAelmC,SAEpBihC,EAA6BjgC,MAAK,SAAUxB,GAC9C,OAAO,EAAec,EAASd,QAE/B5G,EAASstC,eAAezkC,UACxBglC,KAEK7tC,EAAS+E,MAAMyoC,WAClBxtC,EAASstC,eAAetkC,wBAGtBhJ,EAASM,MAAMymC,cAAgB8F,GACjCmB,EAAmCnB,KAoB3C,SAAS7vB,KACP,IAAI4pB,EAAW1oC,UAAUjE,OAAS,QAAsBkE,IAAjBD,UAAU,GAAmBA,UAAU,GAAK+qC,EAASjpC,EAASM,MAAMsmC,SAAU,EAAGT,EAAaS,SAAS,IAE9I,IAAI5mC,EAAS+E,MAAMuC,aAAgBtH,EAAS+E,MAAMwoC,aAAavB,IAAiBhsC,EAASM,MAAM0nC,OAK/F,OAAK,EAAehoC,EAASoD,UAAW,cAAiBtJ,SAAS2C,gBAAgBoB,SAASmC,EAASoD,gBAKhGpD,EAASoD,UAAU2qC,aAAa,cAII,IAApC/tC,EAASM,MAAMqnC,OAAO3nC,KAI1BA,EAASmD,OAAOyF,MAAM6oC,WAAa,UACnCzxC,EAAS+E,MAAMyoC,WAAY,EAEvBxtC,EAASM,MAAM6mC,aACjBnnC,EAASoD,UAAUsoC,UAAUvzB,IAAI,gBAInC0yB,EAAwB,CAAC7qC,EAASmD,OAAQnD,EAASqtC,eAAe9C,QAASvqC,EAASqtC,eAAe7C,UAAW,GAC9G4F,IAAM,WACCpwC,EAAS+E,MAAMyoC,YAKfkB,MACH1uC,EAASstC,eAAelmC,SAG1ByjC,EAAwB,CAAC7qC,EAASmD,QAAS7C,EAAM4nC,gBACjD2C,EAAwBmG,KAAoBpK,GAExC5mC,EAASqtC,eAAe7C,WAC1BxqC,EAASqtC,eAAerhB,QAAQpjB,MAAM8oC,gBAAkBjyC,KAAK+O,MAAMo4B,EAAW,IAAM,MAGlF5mC,EAASM,MAAMynC,QACjB0I,KAGFlF,EAAmByF,KAAoB,WACvCH,GAAiBjK,GAAU,WACzB5mC,EAASqtC,eAAe9C,QAAQmB,UAAUvzB,IAAI,sBAE1CnY,EAASM,MAAMkmC,MACjBxmC,EAASoD,UAAUyN,aAAa,QAAQvF,OAAOtL,EAASM,MAAMkmC,MAAOxmC,EAASmD,OAAO+Y,IAGvFlc,EAASM,MAAMsnC,QAAQ5nC,GACvBA,EAAS+E,MAAM2oC,SAAU,WAnDpB7kC,KA4DX,SAAS4G,KACP,IAAIm3B,EAAW1oC,UAAUjE,OAAS,QAAsBkE,IAAjBD,UAAU,GAAmBA,UAAU,GAAK+qC,EAASjpC,EAASM,MAAMsmC,SAAU,EAAGT,EAAaS,SAAS,KAE1I5mC,EAAS+E,MAAMuC,aAAgBtH,EAAS+E,MAAMwoC,YAIV,IAApCvtC,EAASM,MAAMmnC,OAAOznC,KAI1BA,EAASqtC,eAAe9C,QAAQmB,UAAU/4B,OAAO,sBAE7C3S,EAASM,MAAM6mC,aACjBnnC,EAASoD,UAAUsoC,UAAU/4B,OAAO,gBAGtC3S,EAASmD,OAAOyF,MAAM6oC,WAAa,SACnCzxC,EAAS+E,MAAMyoC,WAAY,EAC3BxtC,EAAS+E,MAAM2oC,SAAU,EACzB7C,EAAwBmG,KAAoBpK,GAC5C2E,EAAmByF,KAAoB,UACvCL,GAAkB/J,GAAU,WACrBqG,GACHsB,IAGEvuC,EAASM,MAAMkmC,MACjBxmC,EAASoD,UAAU0F,gBAAgB,QAAQwC,OAAOtL,EAASM,MAAMkmC,OAGnExmC,EAASstC,eAAetkC,wBACxBhJ,EAASstC,eAAe5lC,QAAQ5D,UAAY9D,EAASM,MAAMwD,UAC3DrI,EAAWyN,YAAYlJ,EAASmD,QAChCnD,EAASM,MAAMknC,SAASxnC,GACxBA,EAAS+E,MAAM0oC,WAAY,MAQ/B,SAAS5kC,GAAQ8oC,GACX3xC,EAAS+E,MAAMuC,cAMftH,EAAS+E,MAAM0oC,WACjBh+B,GAAK,GAGPshC,YACO/wC,EAASoD,UAAU2oC,OAEtB/rC,EAASM,MAAMD,QAAUsxC,GAC3B9I,EAAU7oC,EAASoD,UAAU0oC,iBAAiB9rC,EAASM,MAAMD,SAAS2G,SAAQ,SAAUsjB,GAClFA,EAAMyhB,QACRzhB,EAAMyhB,OAAOljC,aAKf7I,EAASstC,gBACXttC,EAASstC,eAAezkC,UAG1B7I,EAAS+E,MAAMuC,aAAc,IA2EjC,IAAIsqC,IAA4B,EAKhC,SAASC,GAAMC,EAASpqC,GACtBuiC,EAAgBviC,GAAW,GAAIy+B,GAE1ByL,KA5/BL93C,SAASwP,iBAAiB,QAAS+iC,IAAiB,GACpDvyC,SAASwP,iBAAiB,aAAc2iC,GAAiBjD,GACzDnvC,OAAOyP,iBAAiB,OAAQkjC,IA4/B9BoF,IAA4B,GAG9B,IAxjD4B/4C,EAwjDxByH,EAAQO,EAAS,GAAIslC,EAAcz+B,GAxjDX7O,EA4jDHi5C,EA3jDU,oBAA5B,GAAG/2C,SAAShD,KAAKc,IAAiCA,EAAMyQ,kBA7CjE,SAA4CyoC,GAC1C,IAAIC,EAAY,CACdC,WAAW,EACXzqC,WAAYuqC,EAAiBvqC,YAAc,GAC3CqJ,aAAc,SAAsB1X,EAAKN,GACvCk5C,EAAiBvqC,WAAWrO,GAAON,GAErCkmB,aAAc,SAAsB5lB,GAClC,OAAO44C,EAAiBvqC,WAAWrO,IAErC2P,gBAAiB,SAAyB3P,UACjC44C,EAAiBvqC,WAAWrO,IAErC40C,aAAc,SAAsB50C,GAClC,OAAOA,KAAO44C,EAAiBvqC,YAEjC8B,iBAAkB,aAClBa,oBAAqB,aACrBuhC,UAAW,CACTwG,WAAY,GACZ/5B,IAAK,SAAahf,GAChB44C,EAAiBrG,UAAUwG,WAAW/4C,IAAO,GAE/CwZ,OAAQ,SAAgBxZ,UACf44C,EAAiBrG,UAAUwG,WAAW/4C,IAE/C0E,SAAU,SAAkB1E,GAC1B,OAAOA,KAAO44C,EAAiBrG,UAAUwG,cAK/C,IAAK,IAAI/4C,KAAO64C,EACdD,EAAiB54C,GAAO64C,EAAU74C,GAwkDlCg5C,CAAmCL,GAGrC,IAAIM,EAljDN,SAA4Bv5C,GAC1B,GAAI2wC,EAAW3wC,GAEb,MAAO,CAACA,GAGV,GAAIA,aAAiBw5C,SACnB,OAAOxJ,EAAUhwC,GAGnB,GAAIyN,MAAM8Y,QAAQvmB,GAChB,OAAOA,EAGT,IACE,OAAOgwC,EAAU/uC,SAASgyC,iBAAiBjzC,IAC3C,MAAOsI,GACP,MAAO,IAiiDOmxC,CAAmBR,GAASzlC,QAAO,SAAUy9B,EAAK1mC,GAChE,IAAIpD,EAAWoD,GAAaspC,GAAYtpC,EAAW9C,GAMnD,OAJIN,GACF8pC,EAAIhgC,KAAK9J,GAGJ8pC,IACN,IACH,OAAON,EAAWsI,GAAWM,EAAU,GAAKA,EAO9CP,GAAMt1C,QAnxDQ,QAoxDds1C,GAAMl9B,SAAWwxB,EAKjB0L,GAAMz6B,YAAc,SAAUm7B,GAC5Bj6C,OAAO4L,KAAKquC,GAAiBvrC,SAAQ,SAAU7N,GAE7CgtC,EAAahtC,GAAOo5C,EAAgBp5C,OAIxC04C,GAAMlG,QAAUA,GAChBkG,GAAM34B,MArHN,SAAek5B,GACb,IAAIxuC,EAAO1F,UAAUjE,OAAS,QAAsBkE,IAAjBD,UAAU,GAAmBA,UAAU,GAAK,GAC7Es0C,EAAa5uC,EAAKyvB,MAClBA,OAAuB,IAAfmf,EAAwBJ,EAAU,GAAG9xC,MAAM+yB,MAAQmf,EAC3DC,EAAgB7uC,EAAKgjC,SACrBA,OAA6B,IAAlB6L,EAA2B,EAAIA,EAI5C,IAAIL,EAAUhqC,MAAK,SAAUpI,GAC3B,OAAO,EAAeA,EAAU,qBADlC,CAMA,IAAI0yC,GAAiB,EACrBN,EAAUprC,SAAQ,SAAUhH,GAC1BA,EAAS2yC,eAAiB9xC,EAAS,GAAIb,EAASM,UA8ClDsyC,IA3CA,SAASC,EAAkBh6C,GACzB65C,EAAiB75C,EACjB+5C,IAGF,SAASjL,EAAO3nC,GACdA,EAAS2yC,eAAehL,OAAO3nC,GAE/BoyC,EAAUprC,SAAQ,SAAUhH,GAC1BA,EAASu7B,IAAI,CACXqL,SAAUA,IAEZ5mC,EAASyP,UAEXojC,GAAkB,GAGpB,SAASpL,EAAOznC,GACdA,EAAS2yC,eAAelL,OAAOznC,GAE/B6yC,GAAkB,GAGpB,SAASjL,EAAQ5nC,GACfA,EAAS2yC,eAAe/K,QAAQ5nC,GAEhCA,EAASu7B,IAAI,CACXqL,SAAU5mC,EAAS2yC,eAAe/L,WAItC,SAASgM,IACPR,EAAUprC,SAAQ,SAAUhH,GAC1BA,EAASu7B,IAAI,CACXoM,OAAQA,EACRC,QAASA,EACTH,OAAQA,EACRpU,MAAOqf,EAAiB,CAAC,EAAGpsC,MAAM8Y,QAAQiU,GAASA,EAAM,GAAKA,GAASA,EACvEuT,SAAU8L,EAAiB9L,EAAW5mC,EAAS2yC,eAAe/L,gBA4ElEhtC,GACFgB,YAbF,WACEiuC,EAAU/uC,SAASgyC,iBAAiB,iBAAiB9kC,SAAQ,SAAU/D,GACrE,IAAI+oB,EAAU/oB,EAAG8b,aAAa,cAE1BiN,GACF6lB,GAAM5uC,EAAI,CACR+oB,QAASA,UAgCF,U,mBCn2DA,MAAM,GACjB,cACI3kB,KAAK+4B,IAAM,CACP7uB,EAAG1X,OAAO0X,EACVwP,OAAQlnB,OAAO0X,EACfwlB,QAASxlB,EAAE1X,QACXwmC,MAAO9uB,EAAE,QACT+uB,SAAU/uB,EAAE,qBAGhBlK,KAAK+qC,UAAY,GAEjB/qC,KAAKuN,OAGT,OACIvN,KAAKyrC,iBACLzrC,KAAK+9B,SACL/9B,KAAK0rC,mBAGT,iBACI1rC,KAAK+4B,IAAIE,SAASntB,KAAK,CAACuN,EAAGsyB,KACvB,IAAIhzC,EAAW,GAAMgzC,EAAI,CACrBn4B,QAAUtJ,EAAEyhC,GAAIvsC,KAAK,YAAc,aACnC60B,MAAO,eACPx3B,UAAW,MACX6J,OAAO,EACP9K,OAAQ,OACRmpB,QAAS3kB,KAAK4rC,QAAQD,GACtB3f,MAAO,IACP,aAAarzB,GACLuR,EAAE,iCAAiCtX,OAAS,GAAGsX,EAAE,iCAAiC,GAAGw6B,OAAOt8B,UAIxGpI,KAAK+qC,UAAUtoC,KAAK9J,KAI5B,QAAQ2oB,GAQJ,OAPcpX,EAAE,WAAWI,KAAK,CAC5BuhC,MAAO,oBACR70C,KAAK,2EAEGkT,EAAEoX,GAAMliB,KAAK,8BAGT,GAGnB,mBACIY,KAAK+qC,UAAUprC,QAAShH,IACM,GAAtBuR,EAAE,UAAUtX,QAAeoN,KAAK+4B,IAAIrJ,QAAQj3B,QAAUH,SAAS,KAAK,cACpEK,EAASu7B,IAAI,CACTz3B,UAAW,QACXjB,OAAQ,aAMxB,SACIwE,KAAK+4B,IAAIC,MAAMvuB,GAAG,QAAS,iBAAmB3Q,IAC1CA,EAAEyR,iBACErB,EAAE,iCAAiCtX,OAAS,GAAGsX,EAAE,iCAAiC,GAAGw6B,OAAOt8B,SAGpGpI,KAAK+4B,IAAIrJ,QAAQjlB,GAAG,SAAUzX,EAAS,IAAKgN,KAAK0rC,iBAAiB35C,KAAKiO,SCtEhE,MAAM,GACjB,cACIA,KAAK+4B,IAAM,CACPrJ,QAASxlB,EAAE1X,QACXs5C,OAAQ5hC,EAAE,UACV6hC,cAAe7hC,EAAE,mBACjBkpB,SAAUlpB,EAAE,QAAQI,KAAK,SAGzBtK,KAAK+4B,IAAI+S,OAAOl5C,QAChBoN,KAAKuN,OAIb,OACIvN,KAAKgsC,aAGT,aACI,IAAIC,EAAKjsC,KAAK+4B,IAAIrJ,QACdwc,EAAa,EACjBlsC,KAAK+4B,IAAI+S,OAAOhtC,KAAK,mBAAmBgN,KAAK,CAAC9H,EAAOuD,KACjD2kC,IAAsC,GAATloC,GAAchE,KAAK+4B,IAAIgT,cAAcn5C,OAAS,EAAK,IAAM,GAAKwF,KAAKC,IAAI6R,EAAE3C,GAAM+C,KAAK,oBAAqB,KAE1ItK,KAAK+4B,IAAI+S,OAAOhtC,KAAK,mBAAmBgN,KAAK,CAAC9H,EAAOuD,KACjD,IAAI4kC,EAAQjiC,EAAE3C,GACV6kC,EAAUD,EAAMrtC,KAAK,iBACrButC,EAAU,KAAiB,GAATroC,GAAchE,KAAK+4B,IAAIgT,cAAcn5C,OAAS,EAAK,IAAM,GAAKwF,KAAKC,IAAI8zC,EAAM7hC,KAAK,oBAAqB,GAAM4hC,EAC/HI,EAAUD,EAQd,GANIJ,EAAGxzC,SAAWH,SAAS,KAAU,KACjC6zC,EAAMr4C,IAAI,SAAaw4C,EAAH,KAEpBH,EAAMr4C,IAAI,QAAYu4C,EAAH,KAGnBF,EAAMvhC,SAAS,UACXqhC,EAAGxzC,SAAWH,SAAS,KAAU,KACjC8zC,EAAQt4C,IAAI,SAAU,QAEtBs4C,EAAQt4C,IAAI,QAAS,aAEtB,GAAIq4C,EAAMvhC,SAAS,WAAY,CAClC,IAAI2hC,EAAa,IAAMvsC,KAAK+4B,IAAI+S,OAAOxhC,KAAK,gBAAmB6hC,EAAM7hC,KAAK,oBACtEkiC,EAAyB,IAAZD,EACbN,EAAGxzC,SAAWH,SAAS,KAAU,KACjC8zC,EAAQt4C,IAAI,SAAa04C,EAAH,KAEtBJ,EAAQt4C,IAAI,QAAYy4C,EAAH,SC/C1B,MAAM,GACjB,cACIvsC,KAAK+4B,IAAM,CACP7uB,EAAG1X,OAAO0X,EACVwlB,QAASxlB,EAAE1X,QACXwmC,MAAO9uB,EAAE,SAGTlK,KAAK+4B,IAAIC,MAAMl6B,KAAK,sBAAsBlM,QAC1CoN,KAAKuN,OAIb,OACIvN,KAAKysC,eACLzsC,KAAK0sC,gBACL1sC,KAAK2sC,aAGD,iBAAkBl6C,SAAS2C,kBAC3B8U,EAAE,QAAQO,GAAG,QAAS,oBAAoB,SAAU3Q,GAChD,IAAKoQ,EAAEpQ,EAAEd,QAAQyB,SAASmQ,SAAS,QAG/B,OAFAV,EAAEpQ,EAAEd,QAAQyB,SAASoV,SAAS,QAC9B/V,EAAEyR,gBACK,KAGfrB,EAAE,QAAQO,GAAG,SAAS,SAAU3Q,GACtBoQ,EAAEpQ,EAAEd,QAAQ6S,GAAG,YAAc3B,EAAEpQ,EAAEd,QAAQ4R,SAAS,cAAgBV,EAAEpQ,EAAEd,QAAQ4R,SAAS,UACzFV,EAAE,kBAAkB4F,YAAY,YAMhD,aACI9P,KAAK+4B,IAAIC,MAAMl6B,KAAK,sBAAsBgN,KAAK,CAACuN,EAAGrgB,KAC/C,IAAIigC,EAAW/uB,EAAElR,QACalC,IAA1BmiC,EAAS75B,KAAK,cAAoDtI,IAA3BmiC,EAAS75B,KAAK,UAA0B65B,EAASn6B,KAAK,UAAUlM,OAAS,GAChHqmC,EAASn6B,KAAK,UAAUqU,KAAK8lB,EAASruB,SAAS,kBAAoBquB,EAAS75B,KAAK,SAAW65B,EAAS75B,KAAK,WAKtH,gBAAgBwtC,EAAaC,GACpBD,EAAYh6C,QAIjBg6C,EAAY9gC,KAAK,CAACuN,EAAGrgB,KACbkR,EAAElR,GAAQ6S,GAAG,YACM,QAAfghC,EACA3iC,EAAElR,GAAQwB,WAAWsyC,QAAQ,QAAQ,WACjC5iC,EAAElR,GAAQoP,UAId8B,EAAElR,GAAQ8zC,QAAQ,QAGH,QAAfD,GACA3iC,EAAElR,GAAQlF,IAAI,UAAU,QACxBoW,EAAElR,GAAQwB,WAAWuyC,UAAU,SAE/B7iC,EAAElR,GAAQ+zC,UAAU,UAMpC,mBACI,IAAIC,EAAmB9iC,EAAE,sBAEzB8iC,EACKC,YAAY,qBAAsBD,EAAiBp6C,QAAUoN,KAAK+4B,IAAIrJ,QAAQj3B,SAAWH,SAAS,KAAU,MAGrH,eACI0H,KAAK+4B,IAAIC,MAAM9hB,IAAI,QAAS,sBAAsBzM,GAAG,QAAS,qBAAuB3Q,IACjF,IACIigC,EACA8S,EAFA5T,EAAW/uB,EAAEpQ,EAAE6Q,eAIdsuB,EAASptB,GAAG,UACb/R,EAAEyR,iBAGF0tB,EAASruB,SAAS,wBAItBV,EAAE,0BAA0BoB,SAGxByuB,OADiCjjC,IAAjCmiC,EAAS3uB,KAAK,eACJtK,KAAK+4B,IAAIC,MAAMl6B,KAAKm6B,EAAS3uB,KAAK,gBAElC2uB,EAASx+B,SAASqE,KAAK,sBAGrCm6B,EAASgU,YAAY,uBAGcn2C,IAA/BmiC,EAAS3uB,KAAK,mBAA8DxT,IAAhCmiC,EAAS3uB,KAAK,eAA+B2uB,EAASn6B,KAAK,UAAUlM,OAAS,GAC1HqmC,EAASn6B,KAAK,UAAUqU,KAAK8lB,EAASruB,SAAS,kBAAoBquB,EAAS3uB,KAAK,cAAgB2uB,EAAS3uB,KAAK,cAI/GuiC,OADkC/1C,IAAlCmiC,EAAS3uB,KAAK,iBAAkE,IAAjC2uB,EAAS3uB,KAAK,gBAC/C2uB,EAAS3uB,KAAK,gBAEd,QAElBtK,KAAKktC,gBAAgBnT,EAAS8S,MAItC,gBACI7sC,KAAK0rC,mBACL1rC,KAAK+4B,IAAIrJ,QAAQjlB,GAAG,SAAUzX,EAAS,IAAKgN,KAAK0rC,iBAAiB35C,KAAKiO,SC/G/E,MAAM,GACF,cACIA,KAAK+4B,IAAM,CACP7uB,EAAG1X,OAAO0X,EACVwlB,QAASxlB,EAAE1X,QACXwmC,MAAO9uB,EAAE,SAGTlK,KAAK+4B,IAAIC,MAAMl6B,KAAK,QAAQlM,QAC5BoN,KAAKuN,OAIb,OACI,IAAI,EACJ,IAAI6vB,EACJ,IAAIM,EACJ,IAAIO,EACJ,IAAI,GACJ,IAAI,GACJ,IAAI,IAIZxrC,SAASwP,iBAAiB,mBAAoB,IAAM,IAAI","file":"Forms.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 = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 5);\n","module.exports = {\"$xs\":\"0\",\"$sm\":\"576px\",\"$md\":\"768px\",\"$lg\":\"992px\",\"$very-lg\":\"1280px\",\"$xl\":\"1440px\",\"$xxl\":\"1650px\"};","/**!\r\n * @fileOverview Kickass library to create and place poppers near their reference elements.\r\n * @version 1.14.7\r\n * @license\r\n * Copyright (c) 2016 Federico Zivolo and contributors\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"Software\"), to deal\r\n * in the Software without restriction, including without limitation the rights\r\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n * copies of the Software, and to permit persons to whom the Software is\r\n * furnished to do so, subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in all\r\n * copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r\n * SOFTWARE.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';\r\n\r\nvar longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\r\nvar timeoutDuration = 0;\r\nfor (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\r\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\r\n timeoutDuration = 1;\r\n break;\r\n }\r\n}\r\n\r\nfunction microtaskDebounce(fn) {\r\n var called = false;\r\n return function () {\r\n if (called) {\r\n return;\r\n }\r\n called = true;\r\n window.Promise.resolve().then(function () {\r\n called = false;\r\n fn();\r\n });\r\n };\r\n}\r\n\r\nfunction taskDebounce(fn) {\r\n var scheduled = false;\r\n return function () {\r\n if (!scheduled) {\r\n scheduled = true;\r\n setTimeout(function () {\r\n scheduled = false;\r\n fn();\r\n }, timeoutDuration);\r\n }\r\n };\r\n}\r\n\r\nvar supportsMicroTasks = isBrowser && window.Promise;\r\n\r\n/**\r\n* Create a debounced version of a method, that's asynchronously deferred\r\n* but called in the minimum time possible.\r\n*\r\n* @method\r\n* @memberof Popper.Utils\r\n* @argument {Function} fn\r\n* @returns {Function}\r\n*/\r\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\r\n\r\n/**\r\n * Check if the given variable is a function\r\n * @method\r\n * @memberof Popper.Utils\r\n * @argument {Any} functionToCheck - variable to check\r\n * @returns {Boolean} answer to: is a function?\r\n */\r\nfunction isFunction(functionToCheck) {\r\n var getType = {};\r\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\r\n}\r\n\r\n/**\r\n * Get CSS computed property of the given element\r\n * @method\r\n * @memberof Popper.Utils\r\n * @argument {Eement} element\r\n * @argument {String} property\r\n */\r\nfunction getStyleComputedProperty(element, property) {\r\n if (element.nodeType !== 1) {\r\n return [];\r\n }\r\n // NOTE: 1 DOM access here\r\n var window = element.ownerDocument.defaultView;\r\n var css = window.getComputedStyle(element, null);\r\n return property ? css[property] : css;\r\n}\r\n\r\n/**\r\n * Returns the parentNode or the host of the element\r\n * @method\r\n * @memberof Popper.Utils\r\n * @argument {Element} element\r\n * @returns {Element} parent\r\n */\r\nfunction getParentNode(element) {\r\n if (element.nodeName === 'HTML') {\r\n return element;\r\n }\r\n return element.parentNode || element.host;\r\n}\r\n\r\n/**\r\n * Returns the scrolling parent of the given element\r\n * @method\r\n * @memberof Popper.Utils\r\n * @argument {Element} element\r\n * @returns {Element} scroll parent\r\n */\r\nfunction getScrollParent(element) {\r\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\r\n if (!element) {\r\n return document.body;\r\n }\r\n\r\n switch (element.nodeName) {\r\n case 'HTML':\r\n case 'BODY':\r\n return element.ownerDocument.body;\r\n case '#document':\r\n return element.body;\r\n }\r\n\r\n // Firefox want us to check `-x` and `-y` variations as well\r\n\r\n var _getStyleComputedProp = getStyleComputedProperty(element),\r\n overflow = _getStyleComputedProp.overflow,\r\n overflowX = _getStyleComputedProp.overflowX,\r\n overflowY = _getStyleComputedProp.overflowY;\r\n\r\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\r\n return element;\r\n }\r\n\r\n return getScrollParent(getParentNode(element));\r\n}\r\n\r\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\r\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\r\n\r\n/**\r\n * Determines if the browser is Internet Explorer\r\n * @method\r\n * @memberof Popper.Utils\r\n * @param {Number} version to check\r\n * @returns {Boolean} isIE\r\n */\r\nfunction isIE(version) {\r\n if (version === 11) {\r\n return isIE11;\r\n }\r\n if (version === 10) {\r\n return isIE10;\r\n }\r\n return isIE11 || isIE10;\r\n}\r\n\r\n/**\r\n * Returns the offset parent of the given element\r\n * @method\r\n * @memberof Popper.Utils\r\n * @argument {Element} element\r\n * @returns {Element} offset parent\r\n */\r\nfunction getOffsetParent(element) {\r\n if (!element) {\r\n return document.documentElement;\r\n }\r\n\r\n var noOffsetParent = isIE(10) ? document.body : null;\r\n\r\n // NOTE: 1 DOM access here\r\n var offsetParent = element.offsetParent || null;\r\n // Skip hidden elements which don't have an offsetParent\r\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\r\n offsetParent = (element = element.nextElementSibling).offsetParent;\r\n }\r\n\r\n var nodeName = offsetParent && offsetParent.nodeName;\r\n\r\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\r\n return element ? element.ownerDocument.documentElement : document.documentElement;\r\n }\r\n\r\n // .offsetParent will return the closest TH, TD or TABLE in case\r\n // no offsetParent is present, I hate this job...\r\n if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\r\n return getOffsetParent(offsetParent);\r\n }\r\n\r\n return offsetParent;\r\n}\r\n\r\nfunction isOffsetContainer(element) {\r\n var nodeName = element.nodeName;\r\n\r\n if (nodeName === 'BODY') {\r\n return false;\r\n }\r\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\r\n}\r\n\r\n/**\r\n * Finds the root node (document, shadowDOM root) of the given element\r\n * @method\r\n * @memberof Popper.Utils\r\n * @argument {Element} node\r\n * @returns {Element} root node\r\n */\r\nfunction getRoot(node) {\r\n if (node.parentNode !== null) {\r\n return getRoot(node.parentNode);\r\n }\r\n\r\n return node;\r\n}\r\n\r\n/**\r\n * Finds the offset parent common to the two provided nodes\r\n * @method\r\n * @memberof Popper.Utils\r\n * @argument {Element} element1\r\n * @argument {Element} element2\r\n * @returns {Element} common offset parent\r\n */\r\nfunction findCommonOffsetParent(element1, element2) {\r\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\r\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\r\n return document.documentElement;\r\n }\r\n\r\n // Here we make sure to give as \"start\" the element that comes first in the DOM\r\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\r\n var start = order ? element1 : element2;\r\n var end = order ? element2 : element1;\r\n\r\n // Get common ancestor container\r\n var range = document.createRange();\r\n range.setStart(start, 0);\r\n range.setEnd(end, 0);\r\n var commonAncestorContainer = range.commonAncestorContainer;\r\n\r\n // Both nodes are inside #document\r\n\r\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\r\n if (isOffsetContainer(commonAncestorContainer)) {\r\n return commonAncestorContainer;\r\n }\r\n\r\n return getOffsetParent(commonAncestorContainer);\r\n }\r\n\r\n // one of the nodes is inside shadowDOM, find which one\r\n var element1root = getRoot(element1);\r\n if (element1root.host) {\r\n return findCommonOffsetParent(element1root.host, element2);\r\n } else {\r\n return findCommonOffsetParent(element1, getRoot(element2).host);\r\n }\r\n}\r\n\r\n/**\r\n * Gets the scroll value of the given element in the given side (top and left)\r\n * @method\r\n * @memberof Popper.Utils\r\n * @argument {Element} element\r\n * @argument {String} side `top` or `left`\r\n * @returns {number} amount of scrolled pixels\r\n */\r\nfunction getScroll(element) {\r\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\r\n\r\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\r\n var nodeName = element.nodeName;\r\n\r\n if (nodeName === 'BODY' || nodeName === 'HTML') {\r\n var html = element.ownerDocument.documentElement;\r\n var scrollingElement = element.ownerDocument.scrollingElement || html;\r\n return scrollingElement[upperSide];\r\n }\r\n\r\n return element[upperSide];\r\n}\r\n\r\n/*\r\n * Sum or subtract the element scroll values (left and top) from a given rect object\r\n * @method\r\n * @memberof Popper.Utils\r\n * @param {Object} rect - Rect object you want to change\r\n * @param {HTMLElement} element - The element from the function reads the scroll values\r\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\r\n * @return {Object} rect - The modifier rect object\r\n */\r\nfunction includeScroll(rect, element) {\r\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\r\n\r\n var scrollTop = getScroll(element, 'top');\r\n var scrollLeft = getScroll(element, 'left');\r\n var modifier = subtract ? -1 : 1;\r\n rect.top += scrollTop * modifier;\r\n rect.bottom += scrollTop * modifier;\r\n rect.left += scrollLeft * modifier;\r\n rect.right += scrollLeft * modifier;\r\n return rect;\r\n}\r\n\r\n/*\r\n * Helper to detect borders of a given element\r\n * @method\r\n * @memberof Popper.Utils\r\n * @param {CSSStyleDeclaration} styles\r\n * Result of `getStyleComputedProperty` on the given element\r\n * @param {String} axis - `x` or `y`\r\n * @return {number} borders - The borders size of the given axis\r\n */\r\n\r\nfunction getBordersSize(styles, axis) {\r\n var sideA = axis === 'x' ? 'Left' : 'Top';\r\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\r\n\r\n return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10);\r\n}\r\n\r\nfunction getSize(axis, body, html, computedStyle) {\r\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\r\n}\r\n\r\nfunction getWindowSizes(document) {\r\n var body = document.body;\r\n var html = document.documentElement;\r\n var computedStyle = isIE(10) && getComputedStyle(html);\r\n\r\n return {\r\n height: getSize('Height', body, html, computedStyle),\r\n width: getSize('Width', body, html, computedStyle)\r\n };\r\n}\r\n\r\nvar classCallCheck = function (instance, Constructor) {\r\n if (!(instance instanceof Constructor)) {\r\n throw new TypeError(\"Cannot call a class as a function\");\r\n }\r\n};\r\n\r\nvar createClass = function () {\r\n function defineProperties(target, props) {\r\n for (var i = 0; i < props.length; i++) {\r\n var descriptor = props[i];\r\n descriptor.enumerable = descriptor.enumerable || false;\r\n descriptor.configurable = true;\r\n if (\"value\" in descriptor) descriptor.writable = true;\r\n Object.defineProperty(target, descriptor.key, descriptor);\r\n }\r\n }\r\n\r\n return function (Constructor, protoProps, staticProps) {\r\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\r\n if (staticProps) defineProperties(Constructor, staticProps);\r\n return Constructor;\r\n };\r\n}();\r\n\r\n\r\n\r\n\r\n\r\nvar defineProperty = function (obj, key, value) {\r\n if (key in obj) {\r\n Object.defineProperty(obj, key, {\r\n value: value,\r\n enumerable: true,\r\n configurable: true,\r\n writable: true\r\n });\r\n } else {\r\n obj[key] = value;\r\n }\r\n\r\n return obj;\r\n};\r\n\r\nvar _extends = Object.assign || function (target) {\r\n for (var i = 1; i < arguments.length; i++) {\r\n var source = arguments[i];\r\n\r\n for (var key in source) {\r\n if (Object.prototype.hasOwnProperty.call(source, key)) {\r\n target[key] = source[key];\r\n }\r\n }\r\n }\r\n\r\n return target;\r\n};\r\n\r\n/**\r\n * Given element offsets, generate an output similar to getBoundingClientRect\r\n * @method\r\n * @memberof Popper.Utils\r\n * @argument {Object} offsets\r\n * @returns {Object} ClientRect like output\r\n */\r\nfunction getClientRect(offsets) {\r\n return _extends({}, offsets, {\r\n right: offsets.left + offsets.width,\r\n bottom: offsets.top + offsets.height\r\n });\r\n}\r\n\r\n/**\r\n * Get bounding client rect of given element\r\n * @method\r\n * @memberof Popper.Utils\r\n * @param {HTMLElement} element\r\n * @return {Object} client rect\r\n */\r\nfunction getBoundingClientRect(element) {\r\n var rect = {};\r\n\r\n // IE10 10 FIX: Please, don't ask, the element isn't\r\n // considered in DOM in some circumstances...\r\n // This isn't reproducible in IE10 compatibility mode of IE11\r\n try {\r\n if (isIE(10)) {\r\n rect = element.getBoundingClientRect();\r\n var scrollTop = getScroll(element, 'top');\r\n var scrollLeft = getScroll(element, 'left');\r\n rect.top += scrollTop;\r\n rect.left += scrollLeft;\r\n rect.bottom += scrollTop;\r\n rect.right += scrollLeft;\r\n } else {\r\n rect = element.getBoundingClientRect();\r\n }\r\n } catch (e) {}\r\n\r\n var result = {\r\n left: rect.left,\r\n top: rect.top,\r\n width: rect.right - rect.left,\r\n height: rect.bottom - rect.top\r\n };\r\n\r\n // subtract scrollbar size from sizes\r\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\r\n var width = sizes.width || element.clientWidth || result.right - result.left;\r\n var height = sizes.height || element.clientHeight || result.bottom - result.top;\r\n\r\n var horizScrollbar = element.offsetWidth - width;\r\n var vertScrollbar = element.offsetHeight - height;\r\n\r\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\r\n // we make this check conditional for performance reasons\r\n if (horizScrollbar || vertScrollbar) {\r\n var styles = getStyleComputedProperty(element);\r\n horizScrollbar -= getBordersSize(styles, 'x');\r\n vertScrollbar -= getBordersSize(styles, 'y');\r\n\r\n result.width -= horizScrollbar;\r\n result.height -= vertScrollbar;\r\n }\r\n\r\n return getClientRect(result);\r\n}\r\n\r\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\r\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\r\n\r\n var isIE10 = isIE(10);\r\n var isHTML = parent.nodeName === 'HTML';\r\n var childrenRect = getBoundingClientRect(children);\r\n var parentRect = getBoundingClientRect(parent);\r\n var scrollParent = getScrollParent(children);\r\n\r\n var styles = getStyleComputedProperty(parent);\r\n var borderTopWidth = parseFloat(styles.borderTopWidth, 10);\r\n var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);\r\n\r\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\r\n if (fixedPosition && isHTML) {\r\n parentRect.top = Math.max(parentRect.top, 0);\r\n parentRect.left = Math.max(parentRect.left, 0);\r\n }\r\n var offsets = getClientRect({\r\n top: childrenRect.top - parentRect.top - borderTopWidth,\r\n left: childrenRect.left - parentRect.left - borderLeftWidth,\r\n width: childrenRect.width,\r\n height: childrenRect.height\r\n });\r\n offsets.marginTop = 0;\r\n offsets.marginLeft = 0;\r\n\r\n // Subtract margins of documentElement in case it's being used as parent\r\n // we do this only on HTML because it's the only element that behaves\r\n // differently when margins are applied to it. The margins are included in\r\n // the box of the documentElement, in the other cases not.\r\n if (!isIE10 && isHTML) {\r\n var marginTop = parseFloat(styles.marginTop, 10);\r\n var marginLeft = parseFloat(styles.marginLeft, 10);\r\n\r\n offsets.top -= borderTopWidth - marginTop;\r\n offsets.bottom -= borderTopWidth - marginTop;\r\n offsets.left -= borderLeftWidth - marginLeft;\r\n offsets.right -= borderLeftWidth - marginLeft;\r\n\r\n // Attach marginTop and marginLeft because in some circumstances we may need them\r\n offsets.marginTop = marginTop;\r\n offsets.marginLeft = marginLeft;\r\n }\r\n\r\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\r\n offsets = includeScroll(offsets, parent);\r\n }\r\n\r\n return offsets;\r\n}\r\n\r\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\r\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\r\n\r\n var html = element.ownerDocument.documentElement;\r\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\r\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\r\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\r\n\r\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\r\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\r\n\r\n var offset = {\r\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\r\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\r\n width: width,\r\n height: height\r\n };\r\n\r\n return getClientRect(offset);\r\n}\r\n\r\n/**\r\n * Check if the given element is fixed or is inside a fixed parent\r\n * @method\r\n * @memberof Popper.Utils\r\n * @argument {Element} element\r\n * @argument {Element} customContainer\r\n * @returns {Boolean} answer to \"isFixed?\"\r\n */\r\nfunction isFixed(element) {\r\n var nodeName = element.nodeName;\r\n if (nodeName === 'BODY' || nodeName === 'HTML') {\r\n return false;\r\n }\r\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\r\n return true;\r\n }\r\n var parentNode = getParentNode(element);\r\n if (!parentNode) {\r\n return false;\r\n }\r\n return isFixed(parentNode);\r\n}\r\n\r\n/**\r\n * Finds the first parent of an element that has a transformed property defined\r\n * @method\r\n * @memberof Popper.Utils\r\n * @argument {Element} element\r\n * @returns {Element} first transformed parent or documentElement\r\n */\r\n\r\nfunction getFixedPositionOffsetParent(element) {\r\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\r\n if (!element || !element.parentElement || isIE()) {\r\n return document.documentElement;\r\n }\r\n var el = element.parentElement;\r\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\r\n el = el.parentElement;\r\n }\r\n return el || document.documentElement;\r\n}\r\n\r\n/**\r\n * Computed the boundaries limits and return them\r\n * @method\r\n * @memberof Popper.Utils\r\n * @param {HTMLElement} popper\r\n * @param {HTMLElement} reference\r\n * @param {number} padding\r\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\r\n * @param {Boolean} fixedPosition - Is in fixed position mode\r\n * @returns {Object} Coordinates of the boundaries\r\n */\r\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\r\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\r\n\r\n // NOTE: 1 DOM access here\r\n\r\n var boundaries = { top: 0, left: 0 };\r\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\r\n\r\n // Handle viewport case\r\n if (boundariesElement === 'viewport') {\r\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\r\n } else {\r\n // Handle other cases based on DOM element used as boundaries\r\n var boundariesNode = void 0;\r\n if (boundariesElement === 'scrollParent') {\r\n boundariesNode = getScrollParent(getParentNode(reference));\r\n if (boundariesNode.nodeName === 'BODY') {\r\n boundariesNode = popper.ownerDocument.documentElement;\r\n }\r\n } else if (boundariesElement === 'window') {\r\n boundariesNode = popper.ownerDocument.documentElement;\r\n } else {\r\n boundariesNode = boundariesElement;\r\n }\r\n\r\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\r\n\r\n // In case of HTML, we need a different computation\r\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\r\n var _getWindowSizes = getWindowSizes(popper.ownerDocument),\r\n height = _getWindowSizes.height,\r\n width = _getWindowSizes.width;\r\n\r\n boundaries.top += offsets.top - offsets.marginTop;\r\n boundaries.bottom = height + offsets.top;\r\n boundaries.left += offsets.left - offsets.marginLeft;\r\n boundaries.right = width + offsets.left;\r\n } else {\r\n // for all the other DOM elements, this one is good\r\n boundaries = offsets;\r\n }\r\n }\r\n\r\n // Add paddings\r\n padding = padding || 0;\r\n var isPaddingNumber = typeof padding === 'number';\r\n boundaries.left += isPaddingNumber ? padding : padding.left || 0;\r\n boundaries.top += isPaddingNumber ? padding : padding.top || 0;\r\n boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\r\n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\r\n\r\n return boundaries;\r\n}\r\n\r\nfunction getArea(_ref) {\r\n var width = _ref.width,\r\n height = _ref.height;\r\n\r\n return width * height;\r\n}\r\n\r\n/**\r\n * Utility used to transform the `auto` placement to the placement with more\r\n * available space.\r\n * @method\r\n * @memberof Popper.Utils\r\n * @argument {Object} data - The data object generated by update method\r\n * @argument {Object} options - Modifiers configuration and options\r\n * @returns {Object} The data object, properly modified\r\n */\r\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\r\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\r\n\r\n if (placement.indexOf('auto') === -1) {\r\n return placement;\r\n }\r\n\r\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\r\n\r\n var rects = {\r\n top: {\r\n width: boundaries.width,\r\n height: refRect.top - boundaries.top\r\n },\r\n right: {\r\n width: boundaries.right - refRect.right,\r\n height: boundaries.height\r\n },\r\n bottom: {\r\n width: boundaries.width,\r\n height: boundaries.bottom - refRect.bottom\r\n },\r\n left: {\r\n width: refRect.left - boundaries.left,\r\n height: boundaries.height\r\n }\r\n };\r\n\r\n var sortedAreas = Object.keys(rects).map(function (key) {\r\n return _extends({\r\n key: key\r\n }, rects[key], {\r\n area: getArea(rects[key])\r\n });\r\n }).sort(function (a, b) {\r\n return b.area - a.area;\r\n });\r\n\r\n var filteredAreas = sortedAreas.filter(function (_ref2) {\r\n var width = _ref2.width,\r\n height = _ref2.height;\r\n return width >= popper.clientWidth && height >= popper.clientHeight;\r\n });\r\n\r\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\r\n\r\n var variation = placement.split('-')[1];\r\n\r\n return computedPlacement + (variation ? '-' + variation : '');\r\n}\r\n\r\n/**\r\n * Get offsets to the reference element\r\n * @method\r\n * @memberof Popper.Utils\r\n * @param {Object} state\r\n * @param {Element} popper - the popper element\r\n * @param {Element} reference - the reference element (the popper will be relative to this)\r\n * @param {Element} fixedPosition - is in fixed position mode\r\n * @returns {Object} An object containing the offsets which will be applied to the popper\r\n */\r\nfunction getReferenceOffsets(state, popper, reference) {\r\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\r\n\r\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\r\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\r\n}\r\n\r\n/**\r\n * Get the outer sizes of the given element (offset size + margins)\r\n * @method\r\n * @memberof Popper.Utils\r\n * @argument {Element} element\r\n * @returns {Object} object containing width and height properties\r\n */\r\nfunction getOuterSizes(element) {\r\n var window = element.ownerDocument.defaultView;\r\n var styles = window.getComputedStyle(element);\r\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\r\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\r\n var result = {\r\n width: element.offsetWidth + y,\r\n height: element.offsetHeight + x\r\n };\r\n return result;\r\n}\r\n\r\n/**\r\n * Get the opposite placement of the given one\r\n * @method\r\n * @memberof Popper.Utils\r\n * @argument {String} placement\r\n * @returns {String} flipped placement\r\n */\r\nfunction getOppositePlacement(placement) {\r\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\r\n return placement.replace(/left|right|bottom|top/g, function (matched) {\r\n return hash[matched];\r\n });\r\n}\r\n\r\n/**\r\n * Get offsets to the popper\r\n * @method\r\n * @memberof Popper.Utils\r\n * @param {Object} position - CSS position the Popper will get applied\r\n * @param {HTMLElement} popper - the popper element\r\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\r\n * @param {String} placement - one of the valid placement options\r\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\r\n */\r\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\r\n placement = placement.split('-')[0];\r\n\r\n // Get popper node sizes\r\n var popperRect = getOuterSizes(popper);\r\n\r\n // Add position, width and height to our offsets object\r\n var popperOffsets = {\r\n width: popperRect.width,\r\n height: popperRect.height\r\n };\r\n\r\n // depending by the popper placement we have to compute its offsets slightly differently\r\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\r\n var mainSide = isHoriz ? 'top' : 'left';\r\n var secondarySide = isHoriz ? 'left' : 'top';\r\n var measurement = isHoriz ? 'height' : 'width';\r\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\r\n\r\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\r\n if (placement === secondarySide) {\r\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\r\n } else {\r\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\r\n }\r\n\r\n return popperOffsets;\r\n}\r\n\r\n/**\r\n * Mimics the `find` method of Array\r\n * @method\r\n * @memberof Popper.Utils\r\n * @argument {Array} arr\r\n * @argument prop\r\n * @argument value\r\n * @returns index or -1\r\n */\r\nfunction find(arr, check) {\r\n // use native find if supported\r\n if (Array.prototype.find) {\r\n return arr.find(check);\r\n }\r\n\r\n // use `filter` to obtain the same behavior of `find`\r\n return arr.filter(check)[0];\r\n}\r\n\r\n/**\r\n * Return the index of the matching object\r\n * @method\r\n * @memberof Popper.Utils\r\n * @argument {Array} arr\r\n * @argument prop\r\n * @argument value\r\n * @returns index or -1\r\n */\r\nfunction findIndex(arr, prop, value) {\r\n // use native findIndex if supported\r\n if (Array.prototype.findIndex) {\r\n return arr.findIndex(function (cur) {\r\n return cur[prop] === value;\r\n });\r\n }\r\n\r\n // use `find` + `indexOf` if `findIndex` isn't supported\r\n var match = find(arr, function (obj) {\r\n return obj[prop] === value;\r\n });\r\n return arr.indexOf(match);\r\n}\r\n\r\n/**\r\n * Loop trough the list of modifiers and run them in order,\r\n * each of them will then edit the data object.\r\n * @method\r\n * @memberof Popper.Utils\r\n * @param {dataObject} data\r\n * @param {Array} modifiers\r\n * @param {String} ends - Optional modifier name used as stopper\r\n * @returns {dataObject}\r\n */\r\nfunction runModifiers(modifiers, data, ends) {\r\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\r\n\r\n modifiersToRun.forEach(function (modifier) {\r\n if (modifier['function']) {\r\n // eslint-disable-line dot-notation\r\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\r\n }\r\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\r\n if (modifier.enabled && isFunction(fn)) {\r\n // Add properties to offsets to make them a complete clientRect object\r\n // we do this before each modifier to make sure the previous one doesn't\r\n // mess with these values\r\n data.offsets.popper = getClientRect(data.offsets.popper);\r\n data.offsets.reference = getClientRect(data.offsets.reference);\r\n\r\n data = fn(data, modifier);\r\n }\r\n });\r\n\r\n return data;\r\n}\r\n\r\n/**\r\n * Updates the position of the popper, computing the new offsets and applying\r\n * the new style.
\r\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\r\n * @method\r\n * @memberof Popper\r\n */\r\nfunction update() {\r\n // if popper is destroyed, don't perform any further update\r\n if (this.state.isDestroyed) {\r\n return;\r\n }\r\n\r\n var data = {\r\n instance: this,\r\n styles: {},\r\n arrowStyles: {},\r\n attributes: {},\r\n flipped: false,\r\n offsets: {}\r\n };\r\n\r\n // compute reference element offsets\r\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\r\n\r\n // compute auto placement, store placement inside the data object,\r\n // modifiers will be able to edit `placement` if needed\r\n // and refer to originalPlacement to know the original value\r\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\r\n\r\n // store the computed placement inside `originalPlacement`\r\n data.originalPlacement = data.placement;\r\n\r\n data.positionFixed = this.options.positionFixed;\r\n\r\n // compute the popper offsets\r\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\r\n\r\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\r\n\r\n // run the modifiers\r\n data = runModifiers(this.modifiers, data);\r\n\r\n // the first `update` will call `onCreate` callback\r\n // the other ones will call `onUpdate` callback\r\n if (!this.state.isCreated) {\r\n this.state.isCreated = true;\r\n this.options.onCreate(data);\r\n } else {\r\n this.options.onUpdate(data);\r\n }\r\n}\r\n\r\n/**\r\n * Helper used to know if the given modifier is enabled.\r\n * @method\r\n * @memberof Popper.Utils\r\n * @returns {Boolean}\r\n */\r\nfunction isModifierEnabled(modifiers, modifierName) {\r\n return modifiers.some(function (_ref) {\r\n var name = _ref.name,\r\n enabled = _ref.enabled;\r\n return enabled && name === modifierName;\r\n });\r\n}\r\n\r\n/**\r\n * Get the prefixed supported property name\r\n * @method\r\n * @memberof Popper.Utils\r\n * @argument {String} property (camelCase)\r\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\r\n */\r\nfunction getSupportedPropertyName(property) {\r\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\r\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\r\n\r\n for (var i = 0; i < prefixes.length; i++) {\r\n var prefix = prefixes[i];\r\n var toCheck = prefix ? '' + prefix + upperProp : property;\r\n if (typeof document.body.style[toCheck] !== 'undefined') {\r\n return toCheck;\r\n }\r\n }\r\n return null;\r\n}\r\n\r\n/**\r\n * Destroys the popper.\r\n * @method\r\n * @memberof Popper\r\n */\r\nfunction destroy() {\r\n this.state.isDestroyed = true;\r\n\r\n // touch DOM only if `applyStyle` modifier is enabled\r\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\r\n this.popper.removeAttribute('x-placement');\r\n this.popper.style.position = '';\r\n this.popper.style.top = '';\r\n this.popper.style.left = '';\r\n this.popper.style.right = '';\r\n this.popper.style.bottom = '';\r\n this.popper.style.willChange = '';\r\n this.popper.style[getSupportedPropertyName('transform')] = '';\r\n }\r\n\r\n this.disableEventListeners();\r\n\r\n // remove the popper if user explicity asked for the deletion on destroy\r\n // do not use `remove` because IE11 doesn't support it\r\n if (this.options.removeOnDestroy) {\r\n this.popper.parentNode.removeChild(this.popper);\r\n }\r\n return this;\r\n}\r\n\r\n/**\r\n * Get the window associated with the element\r\n * @argument {Element} element\r\n * @returns {Window}\r\n */\r\nfunction getWindow(element) {\r\n var ownerDocument = element.ownerDocument;\r\n return ownerDocument ? ownerDocument.defaultView : window;\r\n}\r\n\r\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\r\n var isBody = scrollParent.nodeName === 'BODY';\r\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\r\n target.addEventListener(event, callback, { passive: true });\r\n\r\n if (!isBody) {\r\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\r\n }\r\n scrollParents.push(target);\r\n}\r\n\r\n/**\r\n * Setup needed event listeners used to update the popper position\r\n * @method\r\n * @memberof Popper.Utils\r\n * @private\r\n */\r\nfunction setupEventListeners(reference, options, state, updateBound) {\r\n // Resize event listener on window\r\n state.updateBound = updateBound;\r\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\r\n\r\n // Scroll event listener on scroll parents\r\n var scrollElement = getScrollParent(reference);\r\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\r\n state.scrollElement = scrollElement;\r\n state.eventsEnabled = true;\r\n\r\n return state;\r\n}\r\n\r\n/**\r\n * It will add resize/scroll events and start recalculating\r\n * position of the popper element when they are triggered.\r\n * @method\r\n * @memberof Popper\r\n */\r\nfunction enableEventListeners() {\r\n if (!this.state.eventsEnabled) {\r\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\r\n }\r\n}\r\n\r\n/**\r\n * Remove event listeners used to update the popper position\r\n * @method\r\n * @memberof Popper.Utils\r\n * @private\r\n */\r\nfunction removeEventListeners(reference, state) {\r\n // Remove resize event listener on window\r\n getWindow(reference).removeEventListener('resize', state.updateBound);\r\n\r\n // Remove scroll event listener on scroll parents\r\n state.scrollParents.forEach(function (target) {\r\n target.removeEventListener('scroll', state.updateBound);\r\n });\r\n\r\n // Reset state\r\n state.updateBound = null;\r\n state.scrollParents = [];\r\n state.scrollElement = null;\r\n state.eventsEnabled = false;\r\n return state;\r\n}\r\n\r\n/**\r\n * It will remove resize/scroll events and won't recalculate popper position\r\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\r\n * unless you call `update` method manually.\r\n * @method\r\n * @memberof Popper\r\n */\r\nfunction disableEventListeners() {\r\n if (this.state.eventsEnabled) {\r\n cancelAnimationFrame(this.scheduleUpdate);\r\n this.state = removeEventListeners(this.reference, this.state);\r\n }\r\n}\r\n\r\n/**\r\n * Tells if a given input is a number\r\n * @method\r\n * @memberof Popper.Utils\r\n * @param {*} input to check\r\n * @return {Boolean}\r\n */\r\nfunction isNumeric(n) {\r\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\r\n}\r\n\r\n/**\r\n * Set the style to the given popper\r\n * @method\r\n * @memberof Popper.Utils\r\n * @argument {Element} element - Element to apply the style to\r\n * @argument {Object} styles\r\n * Object with a list of properties and values which will be applied to the element\r\n */\r\nfunction setStyles(element, styles) {\r\n Object.keys(styles).forEach(function (prop) {\r\n var unit = '';\r\n // add unit if the value is numeric and is one of the following\r\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\r\n unit = 'px';\r\n }\r\n element.style[prop] = styles[prop] + unit;\r\n });\r\n}\r\n\r\n/**\r\n * Set the attributes to the given popper\r\n * @method\r\n * @memberof Popper.Utils\r\n * @argument {Element} element - Element to apply the attributes to\r\n * @argument {Object} styles\r\n * Object with a list of properties and values which will be applied to the element\r\n */\r\nfunction setAttributes(element, attributes) {\r\n Object.keys(attributes).forEach(function (prop) {\r\n var value = attributes[prop];\r\n if (value !== false) {\r\n element.setAttribute(prop, attributes[prop]);\r\n } else {\r\n element.removeAttribute(prop);\r\n }\r\n });\r\n}\r\n\r\n/**\r\n * @function\r\n * @memberof Modifiers\r\n * @argument {Object} data - The data object generated by `update` method\r\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\r\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\r\n * @argument {Object} options - Modifiers configuration and options\r\n * @returns {Object} The same data object\r\n */\r\nfunction applyStyle(data) {\r\n // any property present in `data.styles` will be applied to the popper,\r\n // in this way we can make the 3rd party modifiers add custom styles to it\r\n // Be aware, modifiers could override the properties defined in the previous\r\n // lines of this modifier!\r\n setStyles(data.instance.popper, data.styles);\r\n\r\n // any property present in `data.attributes` will be applied to the popper,\r\n // they will be set as HTML attributes of the element\r\n setAttributes(data.instance.popper, data.attributes);\r\n\r\n // if arrowElement is defined and arrowStyles has some properties\r\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\r\n setStyles(data.arrowElement, data.arrowStyles);\r\n }\r\n\r\n return data;\r\n}\r\n\r\n/**\r\n * Set the x-placement attribute before everything else because it could be used\r\n * to add margins to the popper margins needs to be calculated to get the\r\n * correct popper offsets.\r\n * @method\r\n * @memberof Popper.modifiers\r\n * @param {HTMLElement} reference - The reference element used to position the popper\r\n * @param {HTMLElement} popper - The HTML element used as popper\r\n * @param {Object} options - Popper.js options\r\n */\r\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\r\n // compute reference element offsets\r\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\r\n\r\n // compute auto placement, store placement inside the data object,\r\n // modifiers will be able to edit `placement` if needed\r\n // and refer to originalPlacement to know the original value\r\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\r\n\r\n popper.setAttribute('x-placement', placement);\r\n\r\n // Apply `position` to popper before anything else because\r\n // without the position applied we can't guarantee correct computations\r\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\r\n\r\n return options;\r\n}\r\n\r\n/**\r\n * @function\r\n * @memberof Popper.Utils\r\n * @argument {Object} data - The data object generated by `update` method\r\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\r\n * @returns {Object} The popper's position offsets rounded\r\n *\r\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\r\n * good as it can be within reason.\r\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\r\n *\r\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\r\n * as well on High DPI screens).\r\n *\r\n * Firefox prefers no rounding for positioning and does not have blurriness on\r\n * high DPI screens.\r\n *\r\n * Only horizontal placement and left/right values need to be considered.\r\n */\r\nfunction getRoundedOffsets(data, shouldRound) {\r\n var _data$offsets = data.offsets,\r\n popper = _data$offsets.popper,\r\n reference = _data$offsets.reference;\r\n var round = Math.round,\r\n floor = Math.floor;\r\n\r\n var noRound = function noRound(v) {\r\n return v;\r\n };\r\n\r\n var referenceWidth = round(reference.width);\r\n var popperWidth = round(popper.width);\r\n\r\n var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\r\n var isVariation = data.placement.indexOf('-') !== -1;\r\n var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\r\n var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\r\n\r\n var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\r\n var verticalToInteger = !shouldRound ? noRound : round;\r\n\r\n return {\r\n left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\r\n top: verticalToInteger(popper.top),\r\n bottom: verticalToInteger(popper.bottom),\r\n right: horizontalToInteger(popper.right)\r\n };\r\n}\r\n\r\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\r\n\r\n/**\r\n * @function\r\n * @memberof Modifiers\r\n * @argument {Object} data - The data object generated by `update` method\r\n * @argument {Object} options - Modifiers configuration and options\r\n * @returns {Object} The data object, properly modified\r\n */\r\nfunction computeStyle(data, options) {\r\n var x = options.x,\r\n y = options.y;\r\n var popper = data.offsets.popper;\r\n\r\n // Remove this legacy support in Popper.js v2\r\n\r\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\r\n return modifier.name === 'applyStyle';\r\n }).gpuAcceleration;\r\n if (legacyGpuAccelerationOption !== undefined) {\r\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\r\n }\r\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\r\n\r\n var offsetParent = getOffsetParent(data.instance.popper);\r\n var offsetParentRect = getBoundingClientRect(offsetParent);\r\n\r\n // Styles\r\n var styles = {\r\n position: popper.position\r\n };\r\n\r\n var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\r\n\r\n var sideA = x === 'bottom' ? 'top' : 'bottom';\r\n var sideB = y === 'right' ? 'left' : 'right';\r\n\r\n // if gpuAcceleration is set to `true` and transform is supported,\r\n // we use `translate3d` to apply the position to the popper we\r\n // automatically use the supported prefixed version if needed\r\n var prefixedProperty = getSupportedPropertyName('transform');\r\n\r\n // now, let's make a step back and look at this code closely (wtf?)\r\n // If the content of the popper grows once it's been positioned, it\r\n // may happen that the popper gets misplaced because of the new content\r\n // overflowing its reference element\r\n // To avoid this problem, we provide two options (x and y), which allow\r\n // the consumer to define the offset origin.\r\n // If we position a popper on top of a reference element, we can set\r\n // `x` to `top` to make the popper grow towards its top instead of\r\n // its bottom.\r\n var left = void 0,\r\n top = void 0;\r\n if (sideA === 'bottom') {\r\n // when offsetParent is the positioning is relative to the bottom of the screen (excluding the scrollbar)\r\n // and not the bottom of the html element\r\n if (offsetParent.nodeName === 'HTML') {\r\n top = -offsetParent.clientHeight + offsets.bottom;\r\n } else {\r\n top = -offsetParentRect.height + offsets.bottom;\r\n }\r\n } else {\r\n top = offsets.top;\r\n }\r\n if (sideB === 'right') {\r\n if (offsetParent.nodeName === 'HTML') {\r\n left = -offsetParent.clientWidth + offsets.right;\r\n } else {\r\n left = -offsetParentRect.width + offsets.right;\r\n }\r\n } else {\r\n left = offsets.left;\r\n }\r\n if (gpuAcceleration && prefixedProperty) {\r\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\r\n styles[sideA] = 0;\r\n styles[sideB] = 0;\r\n styles.willChange = 'transform';\r\n } else {\r\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\r\n var invertTop = sideA === 'bottom' ? -1 : 1;\r\n var invertLeft = sideB === 'right' ? -1 : 1;\r\n styles[sideA] = top * invertTop;\r\n styles[sideB] = left * invertLeft;\r\n styles.willChange = sideA + ', ' + sideB;\r\n }\r\n\r\n // Attributes\r\n var attributes = {\r\n 'x-placement': data.placement\r\n };\r\n\r\n // Update `data` attributes, styles and arrowStyles\r\n data.attributes = _extends({}, attributes, data.attributes);\r\n data.styles = _extends({}, styles, data.styles);\r\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\r\n\r\n return data;\r\n}\r\n\r\n/**\r\n * Helper used to know if the given modifier depends from another one.
\r\n * It checks if the needed modifier is listed and enabled.\r\n * @method\r\n * @memberof Popper.Utils\r\n * @param {Array} modifiers - list of modifiers\r\n * @param {String} requestingName - name of requesting modifier\r\n * @param {String} requestedName - name of requested modifier\r\n * @returns {Boolean}\r\n */\r\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\r\n var requesting = find(modifiers, function (_ref) {\r\n var name = _ref.name;\r\n return name === requestingName;\r\n });\r\n\r\n var isRequired = !!requesting && modifiers.some(function (modifier) {\r\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\r\n });\r\n\r\n if (!isRequired) {\r\n var _requesting = '`' + requestingName + '`';\r\n var requested = '`' + requestedName + '`';\r\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\r\n }\r\n return isRequired;\r\n}\r\n\r\n/**\r\n * @function\r\n * @memberof Modifiers\r\n * @argument {Object} data - The data object generated by update method\r\n * @argument {Object} options - Modifiers configuration and options\r\n * @returns {Object} The data object, properly modified\r\n */\r\nfunction arrow(data, options) {\r\n var _data$offsets$arrow;\r\n\r\n // arrow depends on keepTogether in order to work\r\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\r\n return data;\r\n }\r\n\r\n var arrowElement = options.element;\r\n\r\n // if arrowElement is a string, suppose it's a CSS selector\r\n if (typeof arrowElement === 'string') {\r\n arrowElement = data.instance.popper.querySelector(arrowElement);\r\n\r\n // if arrowElement is not found, don't run the modifier\r\n if (!arrowElement) {\r\n return data;\r\n }\r\n } else {\r\n // if the arrowElement isn't a query selector we must check that the\r\n // provided DOM node is child of its popper node\r\n if (!data.instance.popper.contains(arrowElement)) {\r\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\r\n return data;\r\n }\r\n }\r\n\r\n var placement = data.placement.split('-')[0];\r\n var _data$offsets = data.offsets,\r\n popper = _data$offsets.popper,\r\n reference = _data$offsets.reference;\r\n\r\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\r\n\r\n var len = isVertical ? 'height' : 'width';\r\n var sideCapitalized = isVertical ? 'Top' : 'Left';\r\n var side = sideCapitalized.toLowerCase();\r\n var altSide = isVertical ? 'left' : 'top';\r\n var opSide = isVertical ? 'bottom' : 'right';\r\n var arrowElementSize = getOuterSizes(arrowElement)[len];\r\n\r\n //\r\n // extends keepTogether behavior making sure the popper and its\r\n // reference have enough pixels in conjunction\r\n //\r\n\r\n // top/left side\r\n if (reference[opSide] - arrowElementSize < popper[side]) {\r\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\r\n }\r\n // bottom/right side\r\n if (reference[side] + arrowElementSize > popper[opSide]) {\r\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\r\n }\r\n data.offsets.popper = getClientRect(data.offsets.popper);\r\n\r\n // compute center of the popper\r\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\r\n\r\n // Compute the sideValue using the updated popper offsets\r\n // take popper margin in account because we don't have this info available\r\n var css = getStyleComputedProperty(data.instance.popper);\r\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized], 10);\r\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width'], 10);\r\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\r\n\r\n // prevent arrowElement from being placed not contiguously to its popper\r\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\r\n\r\n data.arrowElement = arrowElement;\r\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\r\n\r\n return data;\r\n}\r\n\r\n/**\r\n * Get the opposite placement variation of the given one\r\n * @method\r\n * @memberof Popper.Utils\r\n * @argument {String} placement variation\r\n * @returns {String} flipped placement variation\r\n */\r\nfunction getOppositeVariation(variation) {\r\n if (variation === 'end') {\r\n return 'start';\r\n } else if (variation === 'start') {\r\n return 'end';\r\n }\r\n return variation;\r\n}\r\n\r\n/**\r\n * List of accepted placements to use as values of the `placement` option.
\r\n * Valid placements are:\r\n * - `auto`\r\n * - `top`\r\n * - `right`\r\n * - `bottom`\r\n * - `left`\r\n *\r\n * Each placement can have a variation from this list:\r\n * - `-start`\r\n * - `-end`\r\n *\r\n * Variations are interpreted easily if you think of them as the left to right\r\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\r\n * is right.
\r\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\r\n *\r\n * Some valid examples are:\r\n * - `top-end` (on top of reference, right aligned)\r\n * - `right-start` (on right of reference, top aligned)\r\n * - `bottom` (on bottom, centered)\r\n * - `auto-end` (on the side with more space available, alignment depends by placement)\r\n *\r\n * @static\r\n * @type {Array}\r\n * @enum {String}\r\n * @readonly\r\n * @method placements\r\n * @memberof Popper\r\n */\r\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\r\n\r\n// Get rid of `auto` `auto-start` and `auto-end`\r\nvar validPlacements = placements.slice(3);\r\n\r\n/**\r\n * Given an initial placement, returns all the subsequent placements\r\n * clockwise (or counter-clockwise).\r\n *\r\n * @method\r\n * @memberof Popper.Utils\r\n * @argument {String} placement - A valid placement (it accepts variations)\r\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\r\n * @returns {Array} placements including their variations\r\n */\r\nfunction clockwise(placement) {\r\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\r\n\r\n var index = validPlacements.indexOf(placement);\r\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\r\n return counter ? arr.reverse() : arr;\r\n}\r\n\r\nvar BEHAVIORS = {\r\n FLIP: 'flip',\r\n CLOCKWISE: 'clockwise',\r\n COUNTERCLOCKWISE: 'counterclockwise'\r\n};\r\n\r\n/**\r\n * @function\r\n * @memberof Modifiers\r\n * @argument {Object} data - The data object generated by update method\r\n * @argument {Object} options - Modifiers configuration and options\r\n * @returns {Object} The data object, properly modified\r\n */\r\nfunction flip(data, options) {\r\n // if `inner` modifier is enabled, we can't use the `flip` modifier\r\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\r\n return data;\r\n }\r\n\r\n if (data.flipped && data.placement === data.originalPlacement) {\r\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\r\n return data;\r\n }\r\n\r\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\r\n\r\n var placement = data.placement.split('-')[0];\r\n var placementOpposite = getOppositePlacement(placement);\r\n var variation = data.placement.split('-')[1] || '';\r\n\r\n var flipOrder = [];\r\n\r\n switch (options.behavior) {\r\n case BEHAVIORS.FLIP:\r\n flipOrder = [placement, placementOpposite];\r\n break;\r\n case BEHAVIORS.CLOCKWISE:\r\n flipOrder = clockwise(placement);\r\n break;\r\n case BEHAVIORS.COUNTERCLOCKWISE:\r\n flipOrder = clockwise(placement, true);\r\n break;\r\n default:\r\n flipOrder = options.behavior;\r\n }\r\n\r\n flipOrder.forEach(function (step, index) {\r\n if (placement !== step || flipOrder.length === index + 1) {\r\n return data;\r\n }\r\n\r\n placement = data.placement.split('-')[0];\r\n placementOpposite = getOppositePlacement(placement);\r\n\r\n var popperOffsets = data.offsets.popper;\r\n var refOffsets = data.offsets.reference;\r\n\r\n // using floor because the reference offsets may contain decimals we are not going to consider here\r\n var floor = Math.floor;\r\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\r\n\r\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\r\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\r\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\r\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\r\n\r\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\r\n\r\n // flip the variation if required\r\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\r\n var flippedVariation = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\r\n\r\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\r\n // this boolean to detect any flip loop\r\n data.flipped = true;\r\n\r\n if (overlapsRef || overflowsBoundaries) {\r\n placement = flipOrder[index + 1];\r\n }\r\n\r\n if (flippedVariation) {\r\n variation = getOppositeVariation(variation);\r\n }\r\n\r\n data.placement = placement + (variation ? '-' + variation : '');\r\n\r\n // this object contains `position`, we want to preserve it along with\r\n // any additional property we may add in the future\r\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\r\n\r\n data = runModifiers(data.instance.modifiers, data, 'flip');\r\n }\r\n });\r\n return data;\r\n}\r\n\r\n/**\r\n * @function\r\n * @memberof Modifiers\r\n * @argument {Object} data - The data object generated by update method\r\n * @argument {Object} options - Modifiers configuration and options\r\n * @returns {Object} The data object, properly modified\r\n */\r\nfunction keepTogether(data) {\r\n var _data$offsets = data.offsets,\r\n popper = _data$offsets.popper,\r\n reference = _data$offsets.reference;\r\n\r\n var placement = data.placement.split('-')[0];\r\n var floor = Math.floor;\r\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\r\n var side = isVertical ? 'right' : 'bottom';\r\n var opSide = isVertical ? 'left' : 'top';\r\n var measurement = isVertical ? 'width' : 'height';\r\n\r\n if (popper[side] < floor(reference[opSide])) {\r\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\r\n }\r\n if (popper[opSide] > floor(reference[side])) {\r\n data.offsets.popper[opSide] = floor(reference[side]);\r\n }\r\n\r\n return data;\r\n}\r\n\r\n/**\r\n * Converts a string containing value + unit into a px value number\r\n * @function\r\n * @memberof {modifiers~offset}\r\n * @private\r\n * @argument {String} str - Value + unit string\r\n * @argument {String} measurement - `height` or `width`\r\n * @argument {Object} popperOffsets\r\n * @argument {Object} referenceOffsets\r\n * @returns {Number|String}\r\n * Value in pixels, or original string if no values were extracted\r\n */\r\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\r\n // separate value from unit\r\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\r\n var value = +split[1];\r\n var unit = split[2];\r\n\r\n // If it's not a number it's an operator, I guess\r\n if (!value) {\r\n return str;\r\n }\r\n\r\n if (unit.indexOf('%') === 0) {\r\n var element = void 0;\r\n switch (unit) {\r\n case '%p':\r\n element = popperOffsets;\r\n break;\r\n case '%':\r\n case '%r':\r\n default:\r\n element = referenceOffsets;\r\n }\r\n\r\n var rect = getClientRect(element);\r\n return rect[measurement] / 100 * value;\r\n } else if (unit === 'vh' || unit === 'vw') {\r\n // if is a vh or vw, we calculate the size based on the viewport\r\n var size = void 0;\r\n if (unit === 'vh') {\r\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\r\n } else {\r\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\r\n }\r\n return size / 100 * value;\r\n } else {\r\n // if is an explicit pixel unit, we get rid of the unit and keep the value\r\n // if is an implicit unit, it's px, and we return just the value\r\n return value;\r\n }\r\n}\r\n\r\n/**\r\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\r\n * @function\r\n * @memberof {modifiers~offset}\r\n * @private\r\n * @argument {String} offset\r\n * @argument {Object} popperOffsets\r\n * @argument {Object} referenceOffsets\r\n * @argument {String} basePlacement\r\n * @returns {Array} a two cells array with x and y offsets in numbers\r\n */\r\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\r\n var offsets = [0, 0];\r\n\r\n // Use height if placement is left or right and index is 0 otherwise use width\r\n // in this way the first offset will use an axis and the second one\r\n // will use the other one\r\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\r\n\r\n // Split the offset string to obtain a list of values and operands\r\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\r\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\r\n return frag.trim();\r\n });\r\n\r\n // Detect if the offset string contains a pair of values or a single one\r\n // they could be separated by comma or space\r\n var divider = fragments.indexOf(find(fragments, function (frag) {\r\n return frag.search(/,|\\s/) !== -1;\r\n }));\r\n\r\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\r\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\r\n }\r\n\r\n // If divider is found, we divide the list of values and operands to divide\r\n // them by ofset X and Y.\r\n var splitRegex = /\\s*,\\s*|\\s+/;\r\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\r\n\r\n // Convert the values with units to absolute pixels to allow our computations\r\n ops = ops.map(function (op, index) {\r\n // Most of the units rely on the orientation of the popper\r\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\r\n var mergeWithPrevious = false;\r\n return op\r\n // This aggregates any `+` or `-` sign that aren't considered operators\r\n // e.g.: 10 + +5 => [10, +, +5]\r\n .reduce(function (a, b) {\r\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\r\n a[a.length - 1] = b;\r\n mergeWithPrevious = true;\r\n return a;\r\n } else if (mergeWithPrevious) {\r\n a[a.length - 1] += b;\r\n mergeWithPrevious = false;\r\n return a;\r\n } else {\r\n return a.concat(b);\r\n }\r\n }, [])\r\n // Here we convert the string values into number values (in px)\r\n .map(function (str) {\r\n return toValue(str, measurement, popperOffsets, referenceOffsets);\r\n });\r\n });\r\n\r\n // Loop trough the offsets arrays and execute the operations\r\n ops.forEach(function (op, index) {\r\n op.forEach(function (frag, index2) {\r\n if (isNumeric(frag)) {\r\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\r\n }\r\n });\r\n });\r\n return offsets;\r\n}\r\n\r\n/**\r\n * @function\r\n * @memberof Modifiers\r\n * @argument {Object} data - The data object generated by update method\r\n * @argument {Object} options - Modifiers configuration and options\r\n * @argument {Number|String} options.offset=0\r\n * The offset value as described in the modifier description\r\n * @returns {Object} The data object, properly modified\r\n */\r\nfunction offset(data, _ref) {\r\n var offset = _ref.offset;\r\n var placement = data.placement,\r\n _data$offsets = data.offsets,\r\n popper = _data$offsets.popper,\r\n reference = _data$offsets.reference;\r\n\r\n var basePlacement = placement.split('-')[0];\r\n\r\n var offsets = void 0;\r\n if (isNumeric(+offset)) {\r\n offsets = [+offset, 0];\r\n } else {\r\n offsets = parseOffset(offset, popper, reference, basePlacement);\r\n }\r\n\r\n if (basePlacement === 'left') {\r\n popper.top += offsets[0];\r\n popper.left -= offsets[1];\r\n } else if (basePlacement === 'right') {\r\n popper.top += offsets[0];\r\n popper.left += offsets[1];\r\n } else if (basePlacement === 'top') {\r\n popper.left += offsets[0];\r\n popper.top -= offsets[1];\r\n } else if (basePlacement === 'bottom') {\r\n popper.left += offsets[0];\r\n popper.top += offsets[1];\r\n }\r\n\r\n data.popper = popper;\r\n return data;\r\n}\r\n\r\n/**\r\n * @function\r\n * @memberof Modifiers\r\n * @argument {Object} data - The data object generated by `update` method\r\n * @argument {Object} options - Modifiers configuration and options\r\n * @returns {Object} The data object, properly modified\r\n */\r\nfunction preventOverflow(data, options) {\r\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\r\n\r\n // If offsetParent is the reference element, we really want to\r\n // go one step up and use the next offsetParent as reference to\r\n // avoid to make this modifier completely useless and look like broken\r\n if (data.instance.reference === boundariesElement) {\r\n boundariesElement = getOffsetParent(boundariesElement);\r\n }\r\n\r\n // NOTE: DOM access here\r\n // resets the popper's position so that the document size can be calculated excluding\r\n // the size of the popper element itself\r\n var transformProp = getSupportedPropertyName('transform');\r\n var popperStyles = data.instance.popper.style; // assignment to help minification\r\n var top = popperStyles.top,\r\n left = popperStyles.left,\r\n transform = popperStyles[transformProp];\r\n\r\n popperStyles.top = '';\r\n popperStyles.left = '';\r\n popperStyles[transformProp] = '';\r\n\r\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\r\n\r\n // NOTE: DOM access here\r\n // restores the original style properties after the offsets have been computed\r\n popperStyles.top = top;\r\n popperStyles.left = left;\r\n popperStyles[transformProp] = transform;\r\n\r\n options.boundaries = boundaries;\r\n\r\n var order = options.priority;\r\n var popper = data.offsets.popper;\r\n\r\n var check = {\r\n primary: function primary(placement) {\r\n var value = popper[placement];\r\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\r\n value = Math.max(popper[placement], boundaries[placement]);\r\n }\r\n return defineProperty({}, placement, value);\r\n },\r\n secondary: function secondary(placement) {\r\n var mainSide = placement === 'right' ? 'left' : 'top';\r\n var value = popper[mainSide];\r\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\r\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\r\n }\r\n return defineProperty({}, mainSide, value);\r\n }\r\n };\r\n\r\n order.forEach(function (placement) {\r\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\r\n popper = _extends({}, popper, check[side](placement));\r\n });\r\n\r\n data.offsets.popper = popper;\r\n\r\n return data;\r\n}\r\n\r\n/**\r\n * @function\r\n * @memberof Modifiers\r\n * @argument {Object} data - The data object generated by `update` method\r\n * @argument {Object} options - Modifiers configuration and options\r\n * @returns {Object} The data object, properly modified\r\n */\r\nfunction shift(data) {\r\n var placement = data.placement;\r\n var basePlacement = placement.split('-')[0];\r\n var shiftvariation = placement.split('-')[1];\r\n\r\n // if shift shiftvariation is specified, run the modifier\r\n if (shiftvariation) {\r\n var _data$offsets = data.offsets,\r\n reference = _data$offsets.reference,\r\n popper = _data$offsets.popper;\r\n\r\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\r\n var side = isVertical ? 'left' : 'top';\r\n var measurement = isVertical ? 'width' : 'height';\r\n\r\n var shiftOffsets = {\r\n start: defineProperty({}, side, reference[side]),\r\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\r\n };\r\n\r\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\r\n }\r\n\r\n return data;\r\n}\r\n\r\n/**\r\n * @function\r\n * @memberof Modifiers\r\n * @argument {Object} data - The data object generated by update method\r\n * @argument {Object} options - Modifiers configuration and options\r\n * @returns {Object} The data object, properly modified\r\n */\r\nfunction hide(data) {\r\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\r\n return data;\r\n }\r\n\r\n var refRect = data.offsets.reference;\r\n var bound = find(data.instance.modifiers, function (modifier) {\r\n return modifier.name === 'preventOverflow';\r\n }).boundaries;\r\n\r\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\r\n // Avoid unnecessary DOM access if visibility hasn't changed\r\n if (data.hide === true) {\r\n return data;\r\n }\r\n\r\n data.hide = true;\r\n data.attributes['x-out-of-boundaries'] = '';\r\n } else {\r\n // Avoid unnecessary DOM access if visibility hasn't changed\r\n if (data.hide === false) {\r\n return data;\r\n }\r\n\r\n data.hide = false;\r\n data.attributes['x-out-of-boundaries'] = false;\r\n }\r\n\r\n return data;\r\n}\r\n\r\n/**\r\n * @function\r\n * @memberof Modifiers\r\n * @argument {Object} data - The data object generated by `update` method\r\n * @argument {Object} options - Modifiers configuration and options\r\n * @returns {Object} The data object, properly modified\r\n */\r\nfunction inner(data) {\r\n var placement = data.placement;\r\n var basePlacement = placement.split('-')[0];\r\n var _data$offsets = data.offsets,\r\n popper = _data$offsets.popper,\r\n reference = _data$offsets.reference;\r\n\r\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\r\n\r\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\r\n\r\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\r\n\r\n data.placement = getOppositePlacement(placement);\r\n data.offsets.popper = getClientRect(popper);\r\n\r\n return data;\r\n}\r\n\r\n/**\r\n * Modifier function, each modifier can have a function of this type assigned\r\n * to its `fn` property.
\r\n * These functions will be called on each update, this means that you must\r\n * make sure they are performant enough to avoid performance bottlenecks.\r\n *\r\n * @function ModifierFn\r\n * @argument {dataObject} data - The data object generated by `update` method\r\n * @argument {Object} options - Modifiers configuration and options\r\n * @returns {dataObject} The data object, properly modified\r\n */\r\n\r\n/**\r\n * Modifiers are plugins used to alter the behavior of your poppers.
\r\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\r\n * needed by the library.\r\n *\r\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\r\n * All the other properties are configurations that could be tweaked.\r\n * @namespace modifiers\r\n */\r\nvar modifiers = {\r\n /**\r\n * Modifier used to shift the popper on the start or end of its reference\r\n * element.
\r\n * It will read the variation of the `placement` property.
\r\n * It can be one either `-end` or `-start`.\r\n * @memberof modifiers\r\n * @inner\r\n */\r\n shift: {\r\n /** @prop {number} order=100 - Index used to define the order of execution */\r\n order: 100,\r\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\r\n enabled: true,\r\n /** @prop {ModifierFn} */\r\n fn: shift\r\n },\r\n\r\n /**\r\n * The `offset` modifier can shift your popper on both its axis.\r\n *\r\n * It accepts the following units:\r\n * - `px` or unit-less, interpreted as pixels\r\n * - `%` or `%r`, percentage relative to the length of the reference element\r\n * - `%p`, percentage relative to the length of the popper element\r\n * - `vw`, CSS viewport width unit\r\n * - `vh`, CSS viewport height unit\r\n *\r\n * For length is intended the main axis relative to the placement of the popper.
\r\n * This means that if the placement is `top` or `bottom`, the length will be the\r\n * `width`. In case of `left` or `right`, it will be the `height`.\r\n *\r\n * You can provide a single value (as `Number` or `String`), or a pair of values\r\n * as `String` divided by a comma or one (or more) white spaces.
\r\n * The latter is a deprecated method because it leads to confusion and will be\r\n * removed in v2.
\r\n * Additionally, it accepts additions and subtractions between different units.\r\n * Note that multiplications and divisions aren't supported.\r\n *\r\n * Valid examples are:\r\n * ```\r\n * 10\r\n * '10%'\r\n * '10, 10'\r\n * '10%, 10'\r\n * '10 + 10%'\r\n * '10 - 5vh + 3%'\r\n * '-10px + 5vh, 5px - 6%'\r\n * ```\r\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\r\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\r\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\r\n *\r\n * @memberof modifiers\r\n * @inner\r\n */\r\n offset: {\r\n /** @prop {number} order=200 - Index used to define the order of execution */\r\n order: 200,\r\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\r\n enabled: true,\r\n /** @prop {ModifierFn} */\r\n fn: offset,\r\n /** @prop {Number|String} offset=0\r\n * The offset value as described in the modifier description\r\n */\r\n offset: 0\r\n },\r\n\r\n /**\r\n * Modifier used to prevent the popper from being positioned outside the boundary.\r\n *\r\n * A scenario exists where the reference itself is not within the boundaries.
\r\n * We can say it has \"escaped the boundaries\" β or just \"escaped\".
\r\n * In this case we need to decide whether the popper should either:\r\n *\r\n * - detach from the reference and remain \"trapped\" in the boundaries, or\r\n * - if it should ignore the boundary and \"escape with its reference\"\r\n *\r\n * When `escapeWithReference` is set to`true` and reference is completely\r\n * outside its boundaries, the popper will overflow (or completely leave)\r\n * the boundaries in order to remain attached to the edge of the reference.\r\n *\r\n * @memberof modifiers\r\n * @inner\r\n */\r\n preventOverflow: {\r\n /** @prop {number} order=300 - Index used to define the order of execution */\r\n order: 300,\r\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\r\n enabled: true,\r\n /** @prop {ModifierFn} */\r\n fn: preventOverflow,\r\n /**\r\n * @prop {Array} [priority=['left','right','top','bottom']]\r\n * Popper will try to prevent overflow following these priorities by default,\r\n * then, it could overflow on the left and on top of the `boundariesElement`\r\n */\r\n priority: ['left', 'right', 'top', 'bottom'],\r\n /**\r\n * @prop {number} padding=5\r\n * Amount of pixel used to define a minimum distance between the boundaries\r\n * and the popper. This makes sure the popper always has a little padding\r\n * between the edges of its container\r\n */\r\n padding: 5,\r\n /**\r\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\r\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\r\n * `viewport` or any DOM element.\r\n */\r\n boundariesElement: 'scrollParent'\r\n },\r\n\r\n /**\r\n * Modifier used to make sure the reference and its popper stay near each other\r\n * without leaving any gap between the two. Especially useful when the arrow is\r\n * enabled and you want to ensure that it points to its reference element.\r\n * It cares only about the first axis. You can still have poppers with margin\r\n * between the popper and its reference element.\r\n * @memberof modifiers\r\n * @inner\r\n */\r\n keepTogether: {\r\n /** @prop {number} order=400 - Index used to define the order of execution */\r\n order: 400,\r\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\r\n enabled: true,\r\n /** @prop {ModifierFn} */\r\n fn: keepTogether\r\n },\r\n\r\n /**\r\n * This modifier is used to move the `arrowElement` of the popper to make\r\n * sure it is positioned between the reference element and its popper element.\r\n * It will read the outer size of the `arrowElement` node to detect how many\r\n * pixels of conjunction are needed.\r\n *\r\n * It has no effect if no `arrowElement` is provided.\r\n * @memberof modifiers\r\n * @inner\r\n */\r\n arrow: {\r\n /** @prop {number} order=500 - Index used to define the order of execution */\r\n order: 500,\r\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\r\n enabled: true,\r\n /** @prop {ModifierFn} */\r\n fn: arrow,\r\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\r\n element: '[x-arrow]'\r\n },\r\n\r\n /**\r\n * Modifier used to flip the popper's placement when it starts to overlap its\r\n * reference element.\r\n *\r\n * Requires the `preventOverflow` modifier before it in order to work.\r\n *\r\n * **NOTE:** this modifier will interrupt the current update cycle and will\r\n * restart it if it detects the need to flip the placement.\r\n * @memberof modifiers\r\n * @inner\r\n */\r\n flip: {\r\n /** @prop {number} order=600 - Index used to define the order of execution */\r\n order: 600,\r\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\r\n enabled: true,\r\n /** @prop {ModifierFn} */\r\n fn: flip,\r\n /**\r\n * @prop {String|Array} behavior='flip'\r\n * The behavior used to change the popper's placement. It can be one of\r\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\r\n * placements (with optional variations)\r\n */\r\n behavior: 'flip',\r\n /**\r\n * @prop {number} padding=5\r\n * The popper will flip if it hits the edges of the `boundariesElement`\r\n */\r\n padding: 5,\r\n /**\r\n * @prop {String|HTMLElement} boundariesElement='viewport'\r\n * The element which will define the boundaries of the popper position.\r\n * The popper will never be placed outside of the defined boundaries\r\n * (except if `keepTogether` is enabled)\r\n */\r\n boundariesElement: 'viewport'\r\n },\r\n\r\n /**\r\n * Modifier used to make the popper flow toward the inner of the reference element.\r\n * By default, when this modifier is disabled, the popper will be placed outside\r\n * the reference element.\r\n * @memberof modifiers\r\n * @inner\r\n */\r\n inner: {\r\n /** @prop {number} order=700 - Index used to define the order of execution */\r\n order: 700,\r\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\r\n enabled: false,\r\n /** @prop {ModifierFn} */\r\n fn: inner\r\n },\r\n\r\n /**\r\n * Modifier used to hide the popper when its reference element is outside of the\r\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\r\n * be used to hide with a CSS selector the popper when its reference is\r\n * out of boundaries.\r\n *\r\n * Requires the `preventOverflow` modifier before it in order to work.\r\n * @memberof modifiers\r\n * @inner\r\n */\r\n hide: {\r\n /** @prop {number} order=800 - Index used to define the order of execution */\r\n order: 800,\r\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\r\n enabled: true,\r\n /** @prop {ModifierFn} */\r\n fn: hide\r\n },\r\n\r\n /**\r\n * Computes the style that will be applied to the popper element to gets\r\n * properly positioned.\r\n *\r\n * Note that this modifier will not touch the DOM, it just prepares the styles\r\n * so that `applyStyle` modifier can apply it. This separation is useful\r\n * in case you need to replace `applyStyle` with a custom implementation.\r\n *\r\n * This modifier has `850` as `order` value to maintain backward compatibility\r\n * with previous versions of Popper.js. Expect the modifiers ordering method\r\n * to change in future major versions of the library.\r\n *\r\n * @memberof modifiers\r\n * @inner\r\n */\r\n computeStyle: {\r\n /** @prop {number} order=850 - Index used to define the order of execution */\r\n order: 850,\r\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\r\n enabled: true,\r\n /** @prop {ModifierFn} */\r\n fn: computeStyle,\r\n /**\r\n * @prop {Boolean} gpuAcceleration=true\r\n * If true, it uses the CSS 3D transformation to position the popper.\r\n * Otherwise, it will use the `top` and `left` properties\r\n */\r\n gpuAcceleration: true,\r\n /**\r\n * @prop {string} [x='bottom']\r\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\r\n * Change this if your popper should grow in a direction different from `bottom`\r\n */\r\n x: 'bottom',\r\n /**\r\n * @prop {string} [x='left']\r\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\r\n * Change this if your popper should grow in a direction different from `right`\r\n */\r\n y: 'right'\r\n },\r\n\r\n /**\r\n * Applies the computed styles to the popper element.\r\n *\r\n * All the DOM manipulations are limited to this modifier. This is useful in case\r\n * you want to integrate Popper.js inside a framework or view library and you\r\n * want to delegate all the DOM manipulations to it.\r\n *\r\n * Note that if you disable this modifier, you must make sure the popper element\r\n * has its position set to `absolute` before Popper.js can do its work!\r\n *\r\n * Just disable this modifier and define your own to achieve the desired effect.\r\n *\r\n * @memberof modifiers\r\n * @inner\r\n */\r\n applyStyle: {\r\n /** @prop {number} order=900 - Index used to define the order of execution */\r\n order: 900,\r\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\r\n enabled: true,\r\n /** @prop {ModifierFn} */\r\n fn: applyStyle,\r\n /** @prop {Function} */\r\n onLoad: applyStyleOnLoad,\r\n /**\r\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\r\n * @prop {Boolean} gpuAcceleration=true\r\n * If true, it uses the CSS 3D transformation to position the popper.\r\n * Otherwise, it will use the `top` and `left` properties\r\n */\r\n gpuAcceleration: undefined\r\n }\r\n};\r\n\r\n/**\r\n * The `dataObject` is an object containing all the information used by Popper.js.\r\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\r\n * @name dataObject\r\n * @property {Object} data.instance The Popper.js instance\r\n * @property {String} data.placement Placement applied to popper\r\n * @property {String} data.originalPlacement Placement originally defined on init\r\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\r\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\r\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\r\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\r\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\r\n * @property {Object} data.boundaries Offsets of the popper boundaries\r\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\r\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\r\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\r\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\r\n */\r\n\r\n/**\r\n * Default options provided to Popper.js constructor.
\r\n * These can be overridden using the `options` argument of Popper.js.
\r\n * To override an option, simply pass an object with the same\r\n * structure of the `options` object, as the 3rd argument. For example:\r\n * ```\r\n * new Popper(ref, pop, {\r\n * modifiers: {\r\n * preventOverflow: { enabled: false }\r\n * }\r\n * })\r\n * ```\r\n * @type {Object}\r\n * @static\r\n * @memberof Popper\r\n */\r\nvar Defaults = {\r\n /**\r\n * Popper's placement.\r\n * @prop {Popper.placements} placement='bottom'\r\n */\r\n placement: 'bottom',\r\n\r\n /**\r\n * Set this to true if you want popper to position it self in 'fixed' mode\r\n * @prop {Boolean} positionFixed=false\r\n */\r\n positionFixed: false,\r\n\r\n /**\r\n * Whether events (resize, scroll) are initially enabled.\r\n * @prop {Boolean} eventsEnabled=true\r\n */\r\n eventsEnabled: true,\r\n\r\n /**\r\n * Set to true if you want to automatically remove the popper when\r\n * you call the `destroy` method.\r\n * @prop {Boolean} removeOnDestroy=false\r\n */\r\n removeOnDestroy: false,\r\n\r\n /**\r\n * Callback called when the popper is created.
\r\n * By default, it is set to no-op.
\r\n * Access Popper.js instance with `data.instance`.\r\n * @prop {onCreate}\r\n */\r\n onCreate: function onCreate() {},\r\n\r\n /**\r\n * Callback called when the popper is updated. This callback is not called\r\n * on the initialization/creation of the popper, but only on subsequent\r\n * updates.
\r\n * By default, it is set to no-op.
\r\n * Access Popper.js instance with `data.instance`.\r\n * @prop {onUpdate}\r\n */\r\n onUpdate: function onUpdate() {},\r\n\r\n /**\r\n * List of modifiers used to modify the offsets before they are applied to the popper.\r\n * They provide most of the functionalities of Popper.js.\r\n * @prop {modifiers}\r\n */\r\n modifiers: modifiers\r\n};\r\n\r\n/**\r\n * @callback onCreate\r\n * @param {dataObject} data\r\n */\r\n\r\n/**\r\n * @callback onUpdate\r\n * @param {dataObject} data\r\n */\r\n\r\n// Utils\r\n// Methods\r\nvar Popper = function () {\r\n /**\r\n * Creates a new Popper.js instance.\r\n * @class Popper\r\n * @param {HTMLElement|referenceObject} reference - The reference element used to position the popper\r\n * @param {HTMLElement} popper - The HTML element used as the popper\r\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\r\n * @return {Object} instance - The generated Popper.js instance\r\n */\r\n function Popper(reference, popper) {\r\n var _this = this;\r\n\r\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\r\n classCallCheck(this, Popper);\r\n\r\n this.scheduleUpdate = function () {\r\n return requestAnimationFrame(_this.update);\r\n };\r\n\r\n // make update() debounced, so that it only runs at most once-per-tick\r\n this.update = debounce(this.update.bind(this));\r\n\r\n // with {} we create a new object with the options inside it\r\n this.options = _extends({}, Popper.Defaults, options);\r\n\r\n // init state\r\n this.state = {\r\n isDestroyed: false,\r\n isCreated: false,\r\n scrollParents: []\r\n };\r\n\r\n // get reference and popper elements (allow jQuery wrappers)\r\n this.reference = reference && reference.jquery ? reference[0] : reference;\r\n this.popper = popper && popper.jquery ? popper[0] : popper;\r\n\r\n // Deep merge modifiers options\r\n this.options.modifiers = {};\r\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\r\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\r\n });\r\n\r\n // Refactoring modifiers' list (Object => Array)\r\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\r\n return _extends({\r\n name: name\r\n }, _this.options.modifiers[name]);\r\n })\r\n // sort the modifiers by order\r\n .sort(function (a, b) {\r\n return a.order - b.order;\r\n });\r\n\r\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\r\n // such code is executed in the same order of its modifier\r\n // they could add new properties to their options configuration\r\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\r\n this.modifiers.forEach(function (modifierOptions) {\r\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\r\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\r\n }\r\n });\r\n\r\n // fire the first update to position the popper in the right place\r\n this.update();\r\n\r\n var eventsEnabled = this.options.eventsEnabled;\r\n if (eventsEnabled) {\r\n // setup event listeners, they will take care of update the position in specific situations\r\n this.enableEventListeners();\r\n }\r\n\r\n this.state.eventsEnabled = eventsEnabled;\r\n }\r\n\r\n // We can't use class properties because they don't get listed in the\r\n // class prototype and break stuff like Sinon stubs\r\n\r\n\r\n createClass(Popper, [{\r\n key: 'update',\r\n value: function update$$1() {\r\n return update.call(this);\r\n }\r\n }, {\r\n key: 'destroy',\r\n value: function destroy$$1() {\r\n return destroy.call(this);\r\n }\r\n }, {\r\n key: 'enableEventListeners',\r\n value: function enableEventListeners$$1() {\r\n return enableEventListeners.call(this);\r\n }\r\n }, {\r\n key: 'disableEventListeners',\r\n value: function disableEventListeners$$1() {\r\n return disableEventListeners.call(this);\r\n }\r\n\r\n /**\r\n * Schedules an update. It will run on the next UI update available.\r\n * @method scheduleUpdate\r\n * @memberof Popper\r\n */\r\n\r\n\r\n /**\r\n * Collection of utilities useful when writing custom modifiers.\r\n * Starting from version 1.7, this method is available only if you\r\n * include `popper-utils.js` before `popper.js`.\r\n *\r\n * **DEPRECATION**: This way to access PopperUtils is deprecated\r\n * and will be removed in v2! Use the PopperUtils module directly instead.\r\n * Due to the high instability of the methods contained in Utils, we can't\r\n * guarantee them to follow semver. Use them at your own risk!\r\n * @static\r\n * @private\r\n * @type {Object}\r\n * @deprecated since version 1.8\r\n * @member Utils\r\n * @memberof Popper\r\n */\r\n\r\n }]);\r\n return Popper;\r\n}();\r\n\r\n/**\r\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\r\n * and lets you use it as replacement of a real DOM node.
\r\n * You can use this method to position a popper relatively to a set of coordinates\r\n * in case you don't have a DOM node to use as reference.\r\n *\r\n * ```\r\n * new Popper(referenceObject, popperNode);\r\n * ```\r\n *\r\n * NB: This feature isn't supported in Internet Explorer 10.\r\n * @name referenceObject\r\n * @property {Function} data.getBoundingClientRect\r\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\r\n * @property {number} data.clientWidth\r\n * An ES6 getter that will return the width of the virtual reference element.\r\n * @property {number} data.clientHeight\r\n * An ES6 getter that will return the height of the virtual reference element.\r\n */\r\n\r\n\r\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\r\nPopper.placements = placements;\r\nPopper.Defaults = Defaults;\r\n\r\nexport default Popper;\r\n//# sourceMappingURL=popper.js.map\r\n\r\n\r\n\r\n//////////////////\r\n// WEBPACK FOOTER\r\n// ./node_modules/popper.js/dist/esm/popper.js\r\n// module id = 42\r\n// module chunks = 0","/*!\r\n * jQuery Validation Plugin v1.19.0\r\n *\r\n * https://jqueryvalidation.org/\r\n *\r\n * Copyright (c) 2018 JΓΆrn Zaefferer\r\n * Released under the MIT license\r\n */\r\n(function( factory ) {\r\n\t//if ( typeof define === \"function\" && define.amd ) {\r\n // define([\"jQuery\"], factory );\r\n\t//} else if (typeof module === \"object\" && module.exports) {\r\n // module.exports = factory(require( \"jQuery\" ) );\r\n\t//} else {\r\n\t//\tfactory( jQuery );\r\n\t//}\r\n factory(window.$)\r\n}(function( $ ) {\r\n\r\n$.extend( $.fn, {\r\n\r\n\t// https://jqueryvalidation.org/validate/\r\n\tvalidate: function( options ) {\r\n\r\n\t\t// If nothing is selected, return nothing; can't chain anyway\r\n\t\tif ( !this.length ) {\r\n\t\t\tif ( options && options.debug && window.console ) {\r\n\t\t\t\tconsole.warn( \"Nothing selected, can't validate, returning nothing.\" );\r\n\t\t\t}\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Check if a validator for this form was already created\r\n\t\tvar validator = $.data( this[ 0 ], \"validator\" );\r\n\t\tif ( validator ) {\r\n\t\t\treturn validator;\r\n\t\t}\r\n\r\n\t\t// Add novalidate tag if HTML5.\r\n\t\tthis.attr( \"novalidate\", \"novalidate\" );\r\n\r\n\t\tvalidator = new $.validator( options, this[ 0 ] );\r\n\t\t$.data( this[ 0 ], \"validator\", validator );\r\n\r\n\t\tif ( validator.settings.onsubmit ) {\r\n\r\n\t\t\tthis.on( \"click.validate\", \":submit\", function( event ) {\r\n\r\n\t\t\t\t// Track the used submit button to properly handle scripted\r\n\t\t\t\t// submits later.\r\n\t\t\t\tvalidator.submitButton = event.currentTarget;\r\n\r\n\t\t\t\t// Allow suppressing validation by adding a cancel class to the submit button\r\n\t\t\t\tif ( $( this ).hasClass( \"cancel\" ) ) {\r\n\t\t\t\t\tvalidator.cancelSubmit = true;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Allow suppressing validation by adding the html5 formnovalidate attribute to the submit button\r\n\t\t\t\tif ( $( this ).attr( \"formnovalidate\" ) !== undefined ) {\r\n\t\t\t\t\tvalidator.cancelSubmit = true;\r\n\t\t\t\t}\r\n\t\t\t} );\r\n\r\n\t\t\t// Validate the form on submit\r\n\t\t\tthis.on( \"submit.validate\", function( event ) {\r\n\t\t\t\tif ( validator.settings.debug ) {\r\n\r\n\t\t\t\t\t// Prevent form submit to be able to see console output\r\n\t\t\t\t\tevent.preventDefault();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tfunction handle() {\r\n\t\t\t\t\tvar hidden, result;\r\n\r\n\t\t\t\t\t// Insert a hidden input as a replacement for the missing submit button\r\n\t\t\t\t\t// The hidden input is inserted in two cases:\r\n\t\t\t\t\t// - A user defined a `submitHandler`\r\n\t\t\t\t\t// - There was a pending request due to `remote` method and `stopRequest()`\r\n\t\t\t\t\t// was called to submit the form in case it's valid\r\n\t\t\t\t\tif ( validator.submitButton && ( validator.settings.submitHandler || validator.formSubmitted ) ) {\r\n\t\t\t\t\t\thidden = $( \"\" )\r\n\t\t\t\t\t\t\t.attr( \"name\", validator.submitButton.name )\r\n\t\t\t\t\t\t\t.val( $( validator.submitButton ).val() )\r\n\t\t\t\t\t\t\t.appendTo( validator.currentForm );\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif ( validator.settings.submitHandler && !validator.settings.debug ) {\r\n\t\t\t\t\t\tresult = validator.settings.submitHandler.call( validator, validator.currentForm, event );\r\n\t\t\t\t\t\tif ( hidden ) {\r\n\r\n\t\t\t\t\t\t\t// And clean up afterwards; thanks to no-block-scope, hidden can be referenced\r\n\t\t\t\t\t\t\thidden.remove();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif ( result !== undefined ) {\r\n\t\t\t\t\t\t\treturn result;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Prevent submit for invalid forms or custom submit handlers\r\n\t\t\t\tif ( validator.cancelSubmit ) {\r\n\t\t\t\t\tvalidator.cancelSubmit = false;\r\n\t\t\t\t\treturn handle();\r\n\t\t\t\t}\r\n\t\t\t\tif ( validator.form() ) {\r\n\t\t\t\t\tif ( validator.pendingRequest ) {\r\n\t\t\t\t\t\tvalidator.formSubmitted = true;\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn handle();\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvalidator.focusInvalid();\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t} );\r\n\t\t}\r\n\r\n\t\treturn validator;\r\n\t},\r\n\r\n\t// https://jqueryvalidation.org/valid/\r\n\tvalid: function() {\r\n\t\tvar valid, validator, errorList;\r\n\r\n\t\tif ( $( this[ 0 ] ).is( \"form\" ) ) {\r\n\t\t\tvalid = this.validate().form();\r\n\t\t} else {\r\n\t\t\terrorList = [];\r\n\t\t\tvalid = true;\r\n\t\t\tvalidator = $( this[ 0 ].form ).validate();\r\n\t\t\tthis.each( function() {\r\n\t\t\t\tvalid = validator.element( this ) && valid;\r\n\t\t\t\tif ( !valid ) {\r\n\t\t\t\t\terrorList = errorList.concat( validator.errorList );\r\n\t\t\t\t}\r\n\t\t\t} );\r\n\t\t\tvalidator.errorList = errorList;\r\n\t\t}\r\n\t\treturn valid;\r\n\t},\r\n\r\n\t// https://jqueryvalidation.org/rules/\r\n\trules: function( command, argument ) {\r\n\t\tvar element = this[ 0 ],\r\n\t\t\tisContentEditable = typeof this.attr( \"contenteditable\" ) !== \"undefined\" && this.attr( \"contenteditable\" ) !== \"false\",\r\n\t\t\tsettings, staticRules, existingRules, data, param, filtered;\r\n\r\n\t\t// If nothing is selected, return empty object; can't chain anyway\r\n\t\tif ( element == null ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif ( !element.form && isContentEditable ) {\r\n\t\t\telement.form = this.closest( \"form\" )[ 0 ];\r\n\t\t\telement.name = this.attr( \"name\" );\r\n\t\t}\r\n\r\n\t\tif ( element.form == null ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif ( command ) {\r\n\t\t\tsettings = $.data( element.form, \"validator\" ).settings;\r\n\t\t\tstaticRules = settings.rules;\r\n\t\t\texistingRules = $.validator.staticRules( element );\r\n\t\t\tswitch ( command ) {\r\n\t\t\tcase \"add\":\r\n\t\t\t\t$.extend( existingRules, $.validator.normalizeRule( argument ) );\r\n\r\n\t\t\t\t// Remove messages from rules, but allow them to be set separately\r\n\t\t\t\tdelete existingRules.messages;\r\n\t\t\t\tstaticRules[ element.name ] = existingRules;\r\n\t\t\t\tif ( argument.messages ) {\r\n\t\t\t\t\tsettings.messages[ element.name ] = $.extend( settings.messages[ element.name ], argument.messages );\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"remove\":\r\n\t\t\t\tif ( !argument ) {\r\n\t\t\t\t\tdelete staticRules[ element.name ];\r\n\t\t\t\t\treturn existingRules;\r\n\t\t\t\t}\r\n\t\t\t\tfiltered = {};\r\n\t\t\t\t$.each( argument.split( /\\s/ ), function( index, method ) {\r\n\t\t\t\t\tfiltered[ method ] = existingRules[ method ];\r\n\t\t\t\t\tdelete existingRules[ method ];\r\n\t\t\t\t} );\r\n\t\t\t\treturn filtered;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tdata = $.validator.normalizeRules(\r\n\t\t$.extend(\r\n\t\t\t{},\r\n\t\t\t$.validator.classRules( element ),\r\n\t\t\t$.validator.attributeRules( element ),\r\n\t\t\t$.validator.dataRules( element ),\r\n\t\t\t$.validator.staticRules( element )\r\n\t\t), element );\r\n\r\n\t\t// Make sure required is at front\r\n\t\tif ( data.required ) {\r\n\t\t\tparam = data.required;\r\n\t\t\tdelete data.required;\r\n\t\t\tdata = $.extend( { required: param }, data );\r\n\t\t}\r\n\r\n\t\t// Make sure remote is at back\r\n\t\tif ( data.remote ) {\r\n\t\t\tparam = data.remote;\r\n\t\t\tdelete data.remote;\r\n\t\t\tdata = $.extend( data, { remote: param } );\r\n\t\t}\r\n\r\n\t\treturn data;\r\n\t}\r\n} );\r\n\r\n// Custom selectors\r\n$.extend( $.expr.pseudos || $.expr[ \":\" ], {\t\t// '|| $.expr[ \":\" ]' here enables backwards compatibility to jQuery 1.7. Can be removed when dropping jQ 1.7.x support\r\n\r\n\t// https://jqueryvalidation.org/blank-selector/\r\n\tblank: function( a ) {\r\n\t\treturn !$.trim( \"\" + $( a ).val() );\r\n\t},\r\n\r\n\t// https://jqueryvalidation.org/filled-selector/\r\n\tfilled: function( a ) {\r\n\t\tvar val = $( a ).val();\r\n\t\treturn val !== null && !!$.trim( \"\" + val );\r\n\t},\r\n\r\n\t// https://jqueryvalidation.org/unchecked-selector/\r\n\tunchecked: function( a ) {\r\n\t\treturn !$( a ).prop( \"checked\" );\r\n\t}\r\n} );\r\n\r\n// Constructor for validator\r\n$.validator = function( options, form ) {\r\n\tthis.settings = $.extend( true, {}, $.validator.defaults, options );\r\n\tthis.currentForm = form;\r\n\tthis.init();\r\n};\r\n\r\n// https://jqueryvalidation.org/jQuery.validator.format/\r\n$.validator.format = function( source, params ) {\r\n\tif ( arguments.length === 1 ) {\r\n\t\treturn function() {\r\n\t\t\tvar args = $.makeArray( arguments );\r\n\t\t\targs.unshift( source );\r\n\t\t\treturn $.validator.format.apply( this, args );\r\n\t\t};\r\n\t}\r\n\tif ( params === undefined ) {\r\n\t\treturn source;\r\n\t}\r\n\tif ( arguments.length > 2 && params.constructor !== Array ) {\r\n\t\tparams = $.makeArray( arguments ).slice( 1 );\r\n\t}\r\n\tif ( params.constructor !== Array ) {\r\n\t\tparams = [ params ];\r\n\t}\r\n\t$.each( params, function( i, n ) {\r\n\t\tsource = source.replace( new RegExp( \"\\\\{\" + i + \"\\\\}\", \"g\" ), function() {\r\n\t\t\treturn n;\r\n\t\t} );\r\n\t} );\r\n\treturn source;\r\n};\r\n\r\n$.extend( $.validator, {\r\n\r\n\tdefaults: {\r\n\t\tmessages: {},\r\n\t\tgroups: {},\r\n\t\trules: {},\r\n\t\terrorClass: \"error\",\r\n\t\tpendingClass: \"pending\",\r\n\t\tvalidClass: \"valid\",\r\n\t\terrorElement: \"label\",\r\n\t\tfocusCleanup: false,\r\n\t\tfocusInvalid: true,\r\n\t\terrorContainer: $( [] ),\r\n\t\terrorLabelContainer: $( [] ),\r\n\t\tonsubmit: true,\r\n\t\tignore: \":hidden\",\r\n\t\tignoreTitle: false,\r\n\t\tonfocusin: function( element ) {\r\n\t\t\tthis.lastActive = element;\r\n\r\n\t\t\t// Hide error label and remove error class on focus if enabled\r\n\t\t\tif ( this.settings.focusCleanup ) {\r\n\t\t\t\tif ( this.settings.unhighlight ) {\r\n\t\t\t\t\tthis.settings.unhighlight.call( this, element, this.settings.errorClass, this.settings.validClass );\r\n\t\t\t\t}\r\n\t\t\t\tthis.hideThese( this.errorsFor( element ) );\r\n\t\t\t}\r\n\t\t},\r\n\t\tonfocusout: function( element ) {\r\n\t\t\tif ( !this.checkable( element ) && ( element.name in this.submitted || !this.optional( element ) ) ) {\r\n\t\t\t\tthis.element( element );\r\n\t\t\t}\r\n\t\t},\r\n\t\tonkeyup: function( element, event ) {\r\n\r\n\t\t\t// Avoid revalidate the field when pressing one of the following keys\r\n\t\t\t// Shift => 16\r\n\t\t\t// Ctrl => 17\r\n\t\t\t// Alt => 18\r\n\t\t\t// Caps lock => 20\r\n\t\t\t// End => 35\r\n\t\t\t// Home => 36\r\n\t\t\t// Left arrow => 37\r\n\t\t\t// Up arrow => 38\r\n\t\t\t// Right arrow => 39\r\n\t\t\t// Down arrow => 40\r\n\t\t\t// Insert => 45\r\n\t\t\t// Num lock => 144\r\n\t\t\t// AltGr key => 225\r\n\t\t\tvar excludedKeys = [\r\n\t\t\t\t16, 17, 18, 20, 35, 36, 37,\r\n\t\t\t\t38, 39, 40, 45, 144, 225\r\n\t\t\t];\r\n\r\n\t\t\tif ( event.which === 9 && this.elementValue( element ) === \"\" || $.inArray( event.keyCode, excludedKeys ) !== -1 ) {\r\n\t\t\t\treturn;\r\n\t\t\t} else if ( element.name in this.submitted || element.name in this.invalid ) {\r\n\t\t\t\tthis.element( element );\r\n\t\t\t}\r\n\t\t},\r\n\t\tonclick: function( element ) {\r\n\r\n\t\t\t// Click on selects, radiobuttons and checkboxes\r\n\t\t\tif ( element.name in this.submitted ) {\r\n\t\t\t\tthis.element( element );\r\n\r\n\t\t\t// Or option elements, check parent select in that case\r\n\t\t\t} else if ( element.parentNode.name in this.submitted ) {\r\n\t\t\t\tthis.element( element.parentNode );\r\n\t\t\t}\r\n\t\t},\r\n\t\thighlight: function( element, errorClass, validClass ) {\r\n\t\t\tif ( element.type === \"radio\" ) {\r\n\t\t\t\tthis.findByName( element.name ).addClass( errorClass ).removeClass( validClass );\r\n\t\t\t} else {\r\n\t\t\t\t$( element ).addClass( errorClass ).removeClass( validClass );\r\n\t\t\t}\r\n\t\t},\r\n\t\tunhighlight: function( element, errorClass, validClass ) {\r\n\t\t\tif ( element.type === \"radio\" ) {\r\n\t\t\t\tthis.findByName( element.name ).removeClass( errorClass ).addClass( validClass );\r\n\t\t\t} else {\r\n\t\t\t\t$( element ).removeClass( errorClass ).addClass( validClass );\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\t// https://jqueryvalidation.org/jQuery.validator.setDefaults/\r\n\tsetDefaults: function( settings ) {\r\n\t\t$.extend( $.validator.defaults, settings );\r\n\t},\r\n\r\n\tmessages: {\r\n\t\trequired: \"This field is required.\",\r\n\t\tremote: \"Please fix this field.\",\r\n\t\temail: \"Please enter a valid email address.\",\r\n\t\turl: \"Please enter a valid URL.\",\r\n\t\tdate: \"Please enter a valid date.\",\r\n\t\tdateISO: \"Please enter a valid date (ISO).\",\r\n\t\tnumber: \"Please enter a valid number.\",\r\n\t\tdigits: \"Please enter only digits.\",\r\n\t\tequalTo: \"Please enter the same value again.\",\r\n\t\tmaxlength: $.validator.format( \"Please enter no more than {0} characters.\" ),\r\n\t\tminlength: $.validator.format( \"Please enter at least {0} characters.\" ),\r\n\t\trangelength: $.validator.format( \"Please enter a value between {0} and {1} characters long.\" ),\r\n\t\trange: $.validator.format( \"Please enter a value between {0} and {1}.\" ),\r\n\t\tmax: $.validator.format( \"Please enter a value less than or equal to {0}.\" ),\r\n\t\tmin: $.validator.format( \"Please enter a value greater than or equal to {0}.\" ),\r\n\t\tstep: $.validator.format( \"Please enter a multiple of {0}.\" )\r\n\t},\r\n\r\n\tautoCreateRanges: false,\r\n\r\n\tprototype: {\r\n\r\n\t\tinit: function() {\r\n\t\t\tthis.labelContainer = $( this.settings.errorLabelContainer );\r\n\t\t\tthis.errorContext = this.labelContainer.length && this.labelContainer || $( this.currentForm );\r\n\t\t\tthis.containers = $( this.settings.errorContainer ).add( this.settings.errorLabelContainer );\r\n\t\t\tthis.submitted = {};\r\n\t\t\tthis.valueCache = {};\r\n\t\t\tthis.pendingRequest = 0;\r\n\t\t\tthis.pending = {};\r\n\t\t\tthis.invalid = {};\r\n\t\t\tthis.reset();\r\n\r\n\t\t\tvar currentForm = this.currentForm,\r\n\t\t\t\tgroups = ( this.groups = {} ),\r\n\t\t\t\trules;\r\n\t\t\t$.each( this.settings.groups, function( key, value ) {\r\n\t\t\t\tif ( typeof value === \"string\" ) {\r\n\t\t\t\t\tvalue = value.split( /\\s/ );\r\n\t\t\t\t}\r\n\t\t\t\t$.each( value, function( index, name ) {\r\n\t\t\t\t\tgroups[ name ] = key;\r\n\t\t\t\t} );\r\n\t\t\t} );\r\n\t\t\trules = this.settings.rules;\r\n\t\t\t$.each( rules, function( key, value ) {\r\n\t\t\t\trules[ key ] = $.validator.normalizeRule( value );\r\n\t\t\t} );\r\n\r\n\t\t\tfunction delegate( event ) {\r\n\t\t\t\tvar isContentEditable = typeof $( this ).attr( \"contenteditable\" ) !== \"undefined\" && $( this ).attr( \"contenteditable\" ) !== \"false\";\r\n\r\n\t\t\t\t// Set form expando on contenteditable\r\n\t\t\t\tif ( !this.form && isContentEditable ) {\r\n\t\t\t\t\tthis.form = $( this ).closest( \"form\" )[ 0 ];\r\n\t\t\t\t\tthis.name = $( this ).attr( \"name\" );\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Ignore the element if it belongs to another form. This will happen mainly\r\n\t\t\t\t// when setting the `form` attribute of an input to the id of another form.\r\n\t\t\t\tif ( currentForm !== this.form ) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar validator = $.data( this.form, \"validator\" ),\r\n\t\t\t\t\teventType = \"on\" + event.type.replace( /^validate/, \"\" ),\r\n\t\t\t\t\tsettings = validator.settings;\r\n\t\t\t\tif ( settings[ eventType ] && !$( this ).is( settings.ignore ) ) {\r\n\t\t\t\t\tsettings[ eventType ].call( validator, this, event );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t$( this.currentForm )\r\n\t\t\t\t.on( \"focusin.validate focusout.validate keyup.validate\",\r\n\t\t\t\t\t\":text, [type='password'], [type='file'], select, textarea, [type='number'], [type='search'], \" +\r\n\t\t\t\t\t\"[type='tel'], [type='url'], [type='email'], [type='datetime'], [type='date'], [type='month'], \" +\r\n\t\t\t\t\t\"[type='week'], [type='time'], [type='datetime-local'], [type='range'], [type='color'], \" +\r\n\t\t\t\t\t\"[type='radio'], [type='checkbox'], [contenteditable], [type='button']\", delegate )\r\n\r\n\t\t\t\t// Support: Chrome, oldIE\r\n\t\t\t\t// \"select\" is provided as event.target when clicking a option\r\n\t\t\t\t.on( \"click.validate\", \"select, option, [type='radio'], [type='checkbox']\", delegate );\r\n\r\n\t\t\tif ( this.settings.invalidHandler ) {\r\n\t\t\t\t$( this.currentForm ).on( \"invalid-form.validate\", this.settings.invalidHandler );\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// https://jqueryvalidation.org/Validator.form/\r\n\t\tform: function() {\r\n\t\t\tthis.checkForm();\r\n\t\t\t$.extend( this.submitted, this.errorMap );\r\n\t\t\tthis.invalid = $.extend( {}, this.errorMap );\r\n\t\t\tif ( !this.valid() ) {\r\n\t\t\t\t$( this.currentForm ).triggerHandler( \"invalid-form\", [ this ] );\r\n\t\t\t}\r\n\t\t\tthis.showErrors();\r\n\t\t\treturn this.valid();\r\n\t\t},\r\n\r\n\t\tcheckForm: function() {\r\n\t\t\tthis.prepareForm();\r\n\t\t\tfor ( var i = 0, elements = ( this.currentElements = this.elements() ); elements[ i ]; i++ ) {\r\n\t\t\t\tthis.check( elements[ i ] );\r\n\t\t\t}\r\n\t\t\treturn this.valid();\r\n\t\t},\r\n\r\n\t\t// https://jqueryvalidation.org/Validator.element/\r\n\t\telement: function( element ) {\r\n\t\t\tvar cleanElement = this.clean( element ),\r\n\t\t\t\tcheckElement = this.validationTargetFor( cleanElement ),\r\n\t\t\t\tv = this,\r\n\t\t\t\tresult = true,\r\n\t\t\t\trs, group;\r\n\r\n\t\t\tif ( checkElement === undefined ) {\r\n\t\t\t\tdelete this.invalid[ cleanElement.name ];\r\n\t\t\t} else {\r\n\t\t\t\tthis.prepareElement( checkElement );\r\n\t\t\t\tthis.currentElements = $( checkElement );\r\n\r\n\t\t\t\t// If this element is grouped, then validate all group elements already\r\n\t\t\t\t// containing a value\r\n\t\t\t\tgroup = this.groups[ checkElement.name ];\r\n\t\t\t\tif ( group ) {\r\n\t\t\t\t\t$.each( this.groups, function( name, testgroup ) {\r\n\t\t\t\t\t\tif ( testgroup === group && name !== checkElement.name ) {\r\n\t\t\t\t\t\t\tcleanElement = v.validationTargetFor( v.clean( v.findByName( name ) ) );\r\n\t\t\t\t\t\t\tif ( cleanElement && cleanElement.name in v.invalid ) {\r\n\t\t\t\t\t\t\t\tv.currentElements.push( cleanElement );\r\n\t\t\t\t\t\t\t\tresult = v.check( cleanElement ) && result;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} );\r\n\t\t\t\t}\r\n\r\n\t\t\t\trs = this.check( checkElement ) !== false;\r\n\t\t\t\tresult = result && rs;\r\n\t\t\t\tif ( rs ) {\r\n\t\t\t\t\tthis.invalid[ checkElement.name ] = false;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.invalid[ checkElement.name ] = true;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ( !this.numberOfInvalids() ) {\r\n\r\n\t\t\t\t\t// Hide error containers on last error\r\n\t\t\t\t\tthis.toHide = this.toHide.add( this.containers );\r\n\t\t\t\t}\r\n\t\t\t\tthis.showErrors();\r\n\r\n\t\t\t\t// Add aria-invalid status for screen readers\r\n\t\t\t\t$( element ).attr( \"aria-invalid\", !rs );\r\n\t\t\t}\r\n\r\n\t\t\treturn result;\r\n\t\t},\r\n\r\n\t\t// https://jqueryvalidation.org/Validator.showErrors/\r\n\t\tshowErrors: function( errors ) {\r\n\t\t\tif ( errors ) {\r\n\t\t\t\tvar validator = this;\r\n\r\n\t\t\t\t// Add items to error list and map\r\n\t\t\t\t$.extend( this.errorMap, errors );\r\n\t\t\t\tthis.errorList = $.map( this.errorMap, function( message, name ) {\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tmessage: message,\r\n\t\t\t\t\t\telement: validator.findByName( name )[ 0 ]\r\n\t\t\t\t\t};\r\n\t\t\t\t} );\r\n\r\n\t\t\t\t// Remove items from success list\r\n\t\t\t\tthis.successList = $.grep( this.successList, function( element ) {\r\n\t\t\t\t\treturn !( element.name in errors );\r\n\t\t\t\t} );\r\n\t\t\t}\r\n\t\t\tif ( this.settings.showErrors ) {\r\n\t\t\t\tthis.settings.showErrors.call( this, this.errorMap, this.errorList );\r\n\t\t\t} else {\r\n\t\t\t\tthis.defaultShowErrors();\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// https://jqueryvalidation.org/Validator.resetForm/\r\n\t\tresetForm: function() {\r\n\t\t\tif ( $.fn.resetForm ) {\r\n\t\t\t\t$( this.currentForm ).resetForm();\r\n\t\t\t}\r\n\t\t\tthis.invalid = {};\r\n\t\t\tthis.submitted = {};\r\n\t\t\tthis.prepareForm();\r\n\t\t\tthis.hideErrors();\r\n\t\t\tvar elements = this.elements()\r\n\t\t\t\t.removeData( \"previousValue\" )\r\n\t\t\t\t.removeAttr( \"aria-invalid\" );\r\n\r\n\t\t\tthis.resetElements( elements );\r\n\t\t},\r\n\r\n\t\tresetElements: function( elements ) {\r\n\t\t\tvar i;\r\n\r\n\t\t\tif ( this.settings.unhighlight ) {\r\n\t\t\t\tfor ( i = 0; elements[ i ]; i++ ) {\r\n\t\t\t\t\tthis.settings.unhighlight.call( this, elements[ i ],\r\n\t\t\t\t\t\tthis.settings.errorClass, \"\" );\r\n\t\t\t\t\tthis.findByName( elements[ i ].name ).removeClass( this.settings.validClass );\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\telements\r\n\t\t\t\t\t.removeClass( this.settings.errorClass )\r\n\t\t\t\t\t.removeClass( this.settings.validClass );\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tnumberOfInvalids: function() {\r\n\t\t\treturn this.objectLength( this.invalid );\r\n\t\t},\r\n\r\n\t\tobjectLength: function( obj ) {\r\n\t\t\t/* jshint unused: false */\r\n\t\t\tvar count = 0,\r\n\t\t\t\ti;\r\n\t\t\tfor ( i in obj ) {\r\n\r\n\t\t\t\t// This check allows counting elements with empty error\r\n\t\t\t\t// message as invalid elements\r\n\t\t\t\tif ( obj[ i ] !== undefined && obj[ i ] !== null && obj[ i ] !== false ) {\r\n\t\t\t\t\tcount++;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn count;\r\n\t\t},\r\n\r\n\t\thideErrors: function() {\r\n\t\t\tthis.hideThese( this.toHide );\r\n\t\t},\r\n\r\n\t\thideThese: function( errors ) {\r\n\t\t\terrors.not( this.containers ).text( \"\" );\r\n\t\t\tthis.addWrapper( errors ).hide();\r\n\t\t},\r\n\r\n\t\tvalid: function() {\r\n\t\t\treturn this.size() === 0;\r\n\t\t},\r\n\r\n\t\tsize: function() {\r\n\t\t\treturn this.errorList.length;\r\n\t\t},\r\n\r\n\t\tfocusInvalid: function() {\r\n\t\t\tif ( this.settings.focusInvalid ) {\r\n\t\t\t\ttry {\r\n\t\t\t\t\t$( this.findLastActive() || this.errorList.length && this.errorList[ 0 ].element || [] )\r\n\t\t\t\t\t.filter( \":visible\" )\r\n\t\t\t\t\t.focus()\r\n\r\n\t\t\t\t\t// Manually trigger focusin event; without it, focusin handler isn't called, findLastActive won't have anything to find\r\n\t\t\t\t\t.trigger( \"focusin\" );\r\n\t\t\t\t} catch ( e ) {\r\n\r\n\t\t\t\t\t// Ignore IE throwing errors when focusing hidden elements\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tfindLastActive: function() {\r\n\t\t\tvar lastActive = this.lastActive;\r\n\t\t\treturn lastActive && $.grep( this.errorList, function( n ) {\r\n\t\t\t\treturn n.element.name === lastActive.name;\r\n\t\t\t} ).length === 1 && lastActive;\r\n\t\t},\r\n\r\n\t\telements: function() {\r\n\t\t\tvar validator = this,\r\n\t\t\t\trulesCache = {};\r\n\r\n\t\t\t// Select all valid inputs inside the form (no submit or reset buttons)\r\n\t\t\treturn $( this.currentForm )\r\n\t\t\t.find( \"input, select, textarea, [contenteditable]\" )\r\n\t\t\t.not( \":submit, :reset, :image, :disabled\" )\r\n\t\t\t.not( this.settings.ignore )\r\n\t\t\t.filter( function() {\r\n\t\t\t\tvar name = this.name || $( this ).attr( \"name\" ); // For contenteditable\r\n\t\t\t\tvar isContentEditable = typeof $( this ).attr( \"contenteditable\" ) !== \"undefined\" && $( this ).attr( \"contenteditable\" ) !== \"false\";\r\n\r\n\t\t\t\tif ( !name && validator.settings.debug && window.console ) {\r\n\t\t\t\t\tconsole.error( \"%o has no name assigned\", this );\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Set form expando on contenteditable\r\n\t\t\t\tif ( isContentEditable ) {\r\n\t\t\t\t\tthis.form = $( this ).closest( \"form\" )[ 0 ];\r\n\t\t\t\t\tthis.name = name;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Ignore elements that belong to other/nested forms\r\n\t\t\t\tif ( this.form !== validator.currentForm ) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Select only the first element for each name, and only those with rules specified\r\n\t\t\t\tif ( name in rulesCache || !validator.objectLength( $( this ).rules() ) ) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\r\n\t\t\t\trulesCache[ name ] = true;\r\n\t\t\t\treturn true;\r\n\t\t\t} );\r\n\t\t},\r\n\r\n\t\tclean: function( selector ) {\r\n\t\t\treturn $( selector )[ 0 ];\r\n\t\t},\r\n\r\n\t\terrors: function() {\r\n\t\t\tvar errorClass = this.settings.errorClass.split( \" \" ).join( \".\" );\r\n\t\t\treturn $( this.settings.errorElement + \".\" + errorClass, this.errorContext );\r\n\t\t},\r\n\r\n\t\tresetInternals: function() {\r\n\t\t\tthis.successList = [];\r\n\t\t\tthis.errorList = [];\r\n\t\t\tthis.errorMap = {};\r\n\t\t\tthis.toShow = $( [] );\r\n\t\t\tthis.toHide = $( [] );\r\n\t\t},\r\n\r\n\t\treset: function() {\r\n\t\t\tthis.resetInternals();\r\n\t\t\tthis.currentElements = $( [] );\r\n\t\t},\r\n\r\n\t\tprepareForm: function() {\r\n\t\t\tthis.reset();\r\n\t\t\tthis.toHide = this.errors().add( this.containers );\r\n\t\t},\r\n\r\n\t\tprepareElement: function( element ) {\r\n\t\t\tthis.reset();\r\n\t\t\tthis.toHide = this.errorsFor( element );\r\n\t\t},\r\n\r\n\t\telementValue: function( element ) {\r\n\t\t\tvar $element = $( element ),\r\n\t\t\t\ttype = element.type,\r\n\t\t\t\tisContentEditable = typeof $element.attr( \"contenteditable\" ) !== \"undefined\" && $element.attr( \"contenteditable\" ) !== \"false\",\r\n\t\t\t\tval, idx;\r\n\r\n\t\t\tif ( type === \"radio\" || type === \"checkbox\" ) {\r\n\t\t\t\treturn this.findByName( element.name ).filter( \":checked\" ).val();\r\n\t\t\t} else if ( type === \"number\" && typeof element.validity !== \"undefined\" ) {\r\n\t\t\t\treturn element.validity.badInput ? \"NaN\" : $element.val();\r\n\t\t\t}\r\n\r\n\t\t\tif ( isContentEditable ) {\r\n\t\t\t\tval = $element.text();\r\n\t\t\t} else {\r\n\t\t\t\tval = $element.val();\r\n\t\t\t}\r\n\r\n\t\t\tif ( type === \"file\" ) {\r\n\r\n\t\t\t\t// Modern browser (chrome & safari)\r\n\t\t\t\tif ( val.substr( 0, 12 ) === \"C:\\\\fakepath\\\\\" ) {\r\n\t\t\t\t\treturn val.substr( 12 );\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Legacy browsers\r\n\t\t\t\t// Unix-based path\r\n\t\t\t\tidx = val.lastIndexOf( \"/\" );\r\n\t\t\t\tif ( idx >= 0 ) {\r\n\t\t\t\t\treturn val.substr( idx + 1 );\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Windows-based path\r\n\t\t\t\tidx = val.lastIndexOf( \"\\\\\" );\r\n\t\t\t\tif ( idx >= 0 ) {\r\n\t\t\t\t\treturn val.substr( idx + 1 );\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Just the file name\r\n\t\t\t\treturn val;\r\n\t\t\t}\r\n\r\n\t\t\tif ( typeof val === \"string\" ) {\r\n\t\t\t\treturn val.replace( /\\r/g, \"\" );\r\n\t\t\t}\r\n\t\t\treturn val;\r\n\t\t},\r\n\r\n\t\tcheck: function( element ) {\r\n\t\t\telement = this.validationTargetFor( this.clean( element ) );\r\n\r\n\t\t\tvar rules = $( element ).rules(),\r\n\t\t\t\trulesCount = $.map( rules, function( n, i ) {\r\n\t\t\t\t\treturn i;\r\n\t\t\t\t} ).length,\r\n\t\t\t\tdependencyMismatch = false,\r\n\t\t\t\tval = this.elementValue( element ),\r\n\t\t\t\tresult, method, rule, normalizer;\r\n\r\n\t\t\t// Prioritize the local normalizer defined for this element over the global one\r\n\t\t\t// if the former exists, otherwise user the global one in case it exists.\r\n\t\t\tif ( typeof rules.normalizer === \"function\" ) {\r\n\t\t\t\tnormalizer = rules.normalizer;\r\n\t\t\t} else if (\ttypeof this.settings.normalizer === \"function\" ) {\r\n\t\t\t\tnormalizer = this.settings.normalizer;\r\n\t\t\t}\r\n\r\n\t\t\t// If normalizer is defined, then call it to retreive the changed value instead\r\n\t\t\t// of using the real one.\r\n\t\t\t// Note that `this` in the normalizer is `element`.\r\n\t\t\tif ( normalizer ) {\r\n\t\t\t\tval = normalizer.call( element, val );\r\n\r\n\t\t\t\t// Delete the normalizer from rules to avoid treating it as a pre-defined method.\r\n\t\t\t\tdelete rules.normalizer;\r\n\t\t\t}\r\n\r\n\t\t\tfor ( method in rules ) {\r\n\t\t\t\trule = { method: method, parameters: rules[ method ] };\r\n\t\t\t\ttry {\r\n\t\t\t\t\tresult = $.validator.methods[ method ].call( this, val, element, rule.parameters );\r\n\r\n\t\t\t\t\t// If a method indicates that the field is optional and therefore valid,\r\n\t\t\t\t\t// don't mark it as valid when there are no other rules\r\n\t\t\t\t\tif ( result === \"dependency-mismatch\" && rulesCount === 1 ) {\r\n\t\t\t\t\t\tdependencyMismatch = true;\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tdependencyMismatch = false;\r\n\r\n\t\t\t\t\tif ( result === \"pending\" ) {\r\n\t\t\t\t\t\tthis.toHide = this.toHide.not( this.errorsFor( element ) );\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif ( !result ) {\r\n\t\t\t\t\t\tthis.formatAndAdd( element, rule );\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t} catch ( e ) {\r\n\t\t\t\t\tif ( this.settings.debug && window.console ) {\r\n\t\t\t\t\t\tcLog( \"Exception occurred when checking element \" + element.id + \", check the '\" + rule.method + \"' method.\", e );\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif ( e instanceof TypeError ) {\r\n\t\t\t\t\t\te.message += \". Exception occurred when checking element \" + element.id + \", check the '\" + rule.method + \"' method.\";\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthrow e;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif ( dependencyMismatch ) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tif ( this.objectLength( rules ) ) {\r\n\t\t\t\tthis.successList.push( element );\r\n\t\t\t}\r\n\t\t\treturn true;\r\n\t\t},\r\n\r\n\t\t// Return the custom message for the given element and validation method\r\n\t\t// specified in the element's HTML5 data attribute\r\n\t\t// return the generic message if present and no method specific message is present\r\n\t\tcustomDataMessage: function( element, method ) {\r\n\t\t\treturn $( element ).data( \"msg\" + method.charAt( 0 ).toUpperCase() +\r\n\t\t\t\tmethod.substring( 1 ).toLowerCase() ) || $( element ).data( \"msg\" );\r\n\t\t},\r\n\r\n\t\t// Return the custom message for the given element name and validation method\r\n\t\tcustomMessage: function( name, method ) {\r\n\t\t\tvar m = this.settings.messages[ name ];\r\n\t\t\treturn m && ( m.constructor === String ? m : m[ method ] );\r\n\t\t},\r\n\r\n\t\t// Return the first defined argument, allowing empty strings\r\n\t\tfindDefined: function() {\r\n\t\t\tfor ( var i = 0; i < arguments.length; i++ ) {\r\n\t\t\t\tif ( arguments[ i ] !== undefined ) {\r\n\t\t\t\t\treturn arguments[ i ];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn undefined;\r\n\t\t},\r\n\r\n\t\t// The second parameter 'rule' used to be a string, and extended to an object literal\r\n\t\t// of the following form:\r\n\t\t// rule = {\r\n\t\t// method: \"method name\",\r\n\t\t// parameters: \"the given method parameters\"\r\n\t\t// }\r\n\t\t//\r\n\t\t// The old behavior still supported, kept to maintain backward compatibility with\r\n\t\t// old code, and will be removed in the next major release.\r\n\t\tdefaultMessage: function( element, rule ) {\r\n\t\t\tif ( typeof rule === \"string\" ) {\r\n\t\t\t\trule = { method: rule };\r\n\t\t\t}\r\n\r\n\t\t\tvar message = this.findDefined(\r\n\t\t\t\t\tthis.customMessage( element.name, rule.method ),\r\n\t\t\t\t\tthis.customDataMessage( element, rule.method ),\r\n\r\n\t\t\t\t\t// 'title' is never undefined, so handle empty string as undefined\r\n\t\t\t\t\t!this.settings.ignoreTitle && element.title || undefined,\r\n\t\t\t\t\t$.validator.messages[ rule.method ],\r\n\t\t\t\t\t\"Warning: No message defined for \" + element.name + \"\"\r\n\t\t\t\t),\r\n\t\t\t\ttheregex = /\\$?\\{(\\d+)\\}/g;\r\n\t\t\tif ( typeof message === \"function\" ) {\r\n\t\t\t\tmessage = message.call( this, rule.parameters, element );\r\n\t\t\t} else if ( theregex.test( message ) ) {\r\n\t\t\t\tmessage = $.validator.format( message.replace( theregex, \"{$1}\" ), rule.parameters );\r\n\t\t\t}\r\n\r\n\t\t\treturn message;\r\n\t\t},\r\n\r\n\t\tformatAndAdd: function( element, rule ) {\r\n\t\t\tvar message = this.defaultMessage( element, rule );\r\n\r\n\t\t\tthis.errorList.push( {\r\n\t\t\t\tmessage: message,\r\n\t\t\t\telement: element,\r\n\t\t\t\tmethod: rule.method\r\n\t\t\t} );\r\n\r\n\t\t\tthis.errorMap[ element.name ] = message;\r\n\t\t\tthis.submitted[ element.name ] = message;\r\n\t\t},\r\n\r\n\t\taddWrapper: function( toToggle ) {\r\n\t\t\tif ( this.settings.wrapper ) {\r\n\t\t\t\ttoToggle = toToggle.add( toToggle.parent( this.settings.wrapper ) );\r\n\t\t\t}\r\n\t\t\treturn toToggle;\r\n\t\t},\r\n\r\n\t\tdefaultShowErrors: function() {\r\n\t\t\tvar i, elements, error;\r\n\t\t\tfor ( i = 0; this.errorList[ i ]; i++ ) {\r\n\t\t\t\terror = this.errorList[ i ];\r\n\t\t\t\tif ( this.settings.highlight ) {\r\n\t\t\t\t\tthis.settings.highlight.call( this, error.element, this.settings.errorClass, this.settings.validClass );\r\n\t\t\t\t}\r\n\t\t\t\tthis.showLabel( error.element, error.message );\r\n\t\t\t}\r\n\t\t\tif ( this.errorList.length ) {\r\n\t\t\t\tthis.toShow = this.toShow.add( this.containers );\r\n\t\t\t}\r\n\t\t\tif ( this.settings.success ) {\r\n\t\t\t\tfor ( i = 0; this.successList[ i ]; i++ ) {\r\n\t\t\t\t\tthis.showLabel( this.successList[ i ] );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif ( this.settings.unhighlight ) {\r\n\t\t\t\tfor ( i = 0, elements = this.validElements(); elements[ i ]; i++ ) {\r\n\t\t\t\t\tthis.settings.unhighlight.call( this, elements[ i ], this.settings.errorClass, this.settings.validClass );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis.toHide = this.toHide.not( this.toShow );\r\n\t\t\tthis.hideErrors();\r\n\t\t\tthis.addWrapper( this.toShow ).show();\r\n\t\t},\r\n\r\n\t\tvalidElements: function() {\r\n\t\t\treturn this.currentElements.not( this.invalidElements() );\r\n\t\t},\r\n\r\n\t\tinvalidElements: function() {\r\n\t\t\treturn $( this.errorList ).map( function() {\r\n\t\t\t\treturn this.element;\r\n\t\t\t} );\r\n\t\t},\r\n\r\n\t\tshowLabel: function( element, message ) {\r\n\t\t\tvar place, group, errorID, v,\r\n\t\t\t\terror = this.errorsFor( element ),\r\n\t\t\t\telementID = this.idOrName( element ),\r\n\t\t\t\tdescribedBy = $( element ).attr( \"aria-describedby\" );\r\n\r\n\t\t\tif ( error.length ) {\r\n\r\n\t\t\t\t// Refresh error/success class\r\n\t\t\t\terror.removeClass( this.settings.validClass ).addClass( this.settings.errorClass );\r\n\r\n\t\t\t\t// Replace message on existing label\r\n\t\t\t\terror.html( message );\r\n\t\t\t} else {\r\n\r\n\t\t\t\t// Create error element\r\n\t\t\t\terror = $( \"<\" + this.settings.errorElement + \">\" )\r\n\t\t\t\t\t.attr( \"id\", elementID + \"-error\" )\r\n\t\t\t\t\t.addClass( this.settings.errorClass )\r\n\t\t\t\t\t.html( message || \"\" );\r\n\r\n\t\t\t\t// Maintain reference to the element to be placed into the DOM\r\n\t\t\t\tplace = error;\r\n\t\t\t\tif ( this.settings.wrapper ) {\r\n\r\n\t\t\t\t\t// Make sure the element is visible, even in IE\r\n\t\t\t\t\t// actually showing the wrapped element is handled elsewhere\r\n\t\t\t\t\tplace = error.hide().show().wrap( \"<\" + this.settings.wrapper + \"/>\" ).parent();\r\n\t\t\t\t}\r\n\t\t\t\tif ( this.labelContainer.length ) {\r\n\t\t\t\t\tthis.labelContainer.append( place );\r\n\t\t\t\t} else if ( this.settings.errorPlacement ) {\r\n\t\t\t\t\tthis.settings.errorPlacement.call( this, place, $( element ) );\r\n\t\t\t\t} else {\r\n\t\t\t\t\tplace.insertAfter( element );\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Link error back to the element\r\n\t\t\t\tif ( error.is( \"label\" ) ) {\r\n\r\n\t\t\t\t\t// If the error is a label, then associate using 'for'\r\n\t\t\t\t\terror.attr( \"for\", elementID );\r\n\r\n\t\t\t\t\t// If the element is not a child of an associated label, then it's necessary\r\n\t\t\t\t\t// to explicitly apply aria-describedby\r\n\t\t\t\t} else if ( error.parents( \"label[for='\" + this.escapeCssMeta( elementID ) + \"']\" ).length === 0 ) {\r\n\t\t\t\t\terrorID = error.attr( \"id\" );\r\n\r\n\t\t\t\t\t// Respect existing non-error aria-describedby\r\n\t\t\t\t\tif ( !describedBy ) {\r\n\t\t\t\t\t\tdescribedBy = errorID;\r\n\t\t\t\t\t} else if ( !describedBy.match( new RegExp( \"\\\\b\" + this.escapeCssMeta( errorID ) + \"\\\\b\" ) ) ) {\r\n\r\n\t\t\t\t\t\t// Add to end of list if not already present\r\n\t\t\t\t\t\tdescribedBy += \" \" + errorID;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t$( element ).attr( \"aria-describedby\", describedBy );\r\n\r\n\t\t\t\t\t// If this element is grouped, then assign to all elements in the same group\r\n\t\t\t\t\tgroup = this.groups[ element.name ];\r\n\t\t\t\t\tif ( group ) {\r\n\t\t\t\t\t\tv = this;\r\n\t\t\t\t\t\t$.each( v.groups, function( name, testgroup ) {\r\n\t\t\t\t\t\t\tif ( testgroup === group ) {\r\n\t\t\t\t\t\t\t\t$( \"[name='\" + v.escapeCssMeta( name ) + \"']\", v.currentForm )\r\n\t\t\t\t\t\t\t\t\t.attr( \"aria-describedby\", error.attr( \"id\" ) );\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} );\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif ( !message && this.settings.success ) {\r\n\t\t\t\terror.text( \"\" );\r\n\t\t\t\tif ( typeof this.settings.success === \"string\" ) {\r\n\t\t\t\t\terror.addClass( this.settings.success );\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.settings.success( error, element );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis.toShow = this.toShow.add( error );\r\n\t\t},\r\n\r\n\t\terrorsFor: function( element ) {\r\n\t\t\tvar name = this.escapeCssMeta( this.idOrName( element ) ),\r\n\t\t\t\tdescriber = $( element ).attr( \"aria-describedby\" ),\r\n\t\t\t\tselector = \"label[for='\" + name + \"'], label[for='\" + name + \"'] *\";\r\n\r\n\t\t\t// 'aria-describedby' should directly reference the error element\r\n\t\t\tif ( describer ) {\r\n\t\t\t\tselector = selector + \", #\" + this.escapeCssMeta( describer )\r\n\t\t\t\t\t.replace( /\\s+/g, \", #\" );\r\n\t\t\t}\r\n\r\n\t\t\treturn this\r\n\t\t\t\t.errors()\r\n\t\t\t\t.filter( selector );\r\n\t\t},\r\n\r\n\t\t// See https://api.jquery.com/category/selectors/, for CSS\r\n\t\t// meta-characters that should be escaped in order to be used with JQuery\r\n\t\t// as a literal part of a name/id or any selector.\r\n\t\tescapeCssMeta: function( string ) {\r\n\t\t\treturn string.replace( /([\\\\!\"#$%&'()*+,./:;<=>?@\\[\\]^`{|}~])/g, \"\\\\$1\" );\r\n\t\t},\r\n\r\n\t\tidOrName: function( element ) {\r\n\t\t\treturn this.groups[ element.name ] || ( this.checkable( element ) ? element.name : element.id || element.name );\r\n\t\t},\r\n\r\n\t\tvalidationTargetFor: function( element ) {\r\n\r\n\t\t\t// If radio/checkbox, validate first element in group instead\r\n\t\t\tif ( this.checkable( element ) ) {\r\n\t\t\t\telement = this.findByName( element.name );\r\n\t\t\t}\r\n\r\n\t\t\t// Always apply ignore filter\r\n\t\t\treturn $( element ).not( this.settings.ignore )[ 0 ];\r\n\t\t},\r\n\r\n\t\tcheckable: function( element ) {\r\n\t\t\treturn ( /radio|checkbox/i ).test( element.type );\r\n\t\t},\r\n\r\n\t\tfindByName: function( name ) {\r\n\t\t\treturn $( this.currentForm ).find( \"[name='\" + this.escapeCssMeta( name ) + \"']\" );\r\n\t\t},\r\n\r\n\t\tgetLength: function( value, element ) {\r\n\t\t\tswitch ( element.nodeName.toLowerCase() ) {\r\n\t\t\tcase \"select\":\r\n\t\t\t\treturn $( \"option:selected\", element ).length;\r\n\t\t\tcase \"input\":\r\n\t\t\t\tif ( this.checkable( element ) ) {\r\n\t\t\t\t\treturn this.findByName( element.name ).filter( \":checked\" ).length;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn value.length;\r\n\t\t},\r\n\r\n\t\tdepend: function( param, element ) {\r\n\t\t\treturn this.dependTypes[ typeof param ] ? this.dependTypes[ typeof param ]( param, element ) : true;\r\n\t\t},\r\n\r\n\t\tdependTypes: {\r\n\t\t\t\"boolean\": function( param ) {\r\n\t\t\t\treturn param;\r\n\t\t\t},\r\n\t\t\t\"string\": function( param, element ) {\r\n\t\t\t\treturn !!$( param, element.form ).length;\r\n\t\t\t},\r\n\t\t\t\"function\": function( param, element ) {\r\n\t\t\t\treturn param( element );\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\toptional: function( element ) {\r\n\t\t\tvar val = this.elementValue( element );\r\n\t\t\treturn !$.validator.methods.required.call( this, val, element ) && \"dependency-mismatch\";\r\n\t\t},\r\n\r\n\t\tstartRequest: function( element ) {\r\n\t\t\tif ( !this.pending[ element.name ] ) {\r\n\t\t\t\tthis.pendingRequest++;\r\n\t\t\t\t$( element ).addClass( this.settings.pendingClass );\r\n\t\t\t\tthis.pending[ element.name ] = true;\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tstopRequest: function( element, valid ) {\r\n\t\t\tthis.pendingRequest--;\r\n\r\n\t\t\t// Sometimes synchronization fails, make sure pendingRequest is never < 0\r\n\t\t\tif ( this.pendingRequest < 0 ) {\r\n\t\t\t\tthis.pendingRequest = 0;\r\n\t\t\t}\r\n\t\t\tdelete this.pending[ element.name ];\r\n\t\t\t$( element ).removeClass( this.settings.pendingClass );\r\n\t\t\tif ( valid && this.pendingRequest === 0 && this.formSubmitted && this.form() ) {\r\n\t\t\t\t$( this.currentForm ).submit();\r\n\r\n\t\t\t\t// Remove the hidden input that was used as a replacement for the\r\n\t\t\t\t// missing submit button. The hidden input is added by `handle()`\r\n\t\t\t\t// to ensure that the value of the used submit button is passed on\r\n\t\t\t\t// for scripted submits triggered by this method\r\n\t\t\t\tif ( this.submitButton ) {\r\n\t\t\t\t\t$( \"input:hidden[name='\" + this.submitButton.name + \"']\", this.currentForm ).remove();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.formSubmitted = false;\r\n\t\t\t} else if ( !valid && this.pendingRequest === 0 && this.formSubmitted ) {\r\n\t\t\t\t$( this.currentForm ).triggerHandler( \"invalid-form\", [ this ] );\r\n\t\t\t\tthis.formSubmitted = false;\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tpreviousValue: function( element, method ) {\r\n\t\t\tmethod = typeof method === \"string\" && method || \"remote\";\r\n\r\n\t\t\treturn $.data( element, \"previousValue\" ) || $.data( element, \"previousValue\", {\r\n\t\t\t\told: null,\r\n\t\t\t\tvalid: true,\r\n\t\t\t\tmessage: this.defaultMessage( element, { method: method } )\r\n\t\t\t} );\r\n\t\t},\r\n\r\n\t\t// Cleans up all forms and elements, removes validator-specific events\r\n\t\tdestroy: function() {\r\n\t\t\tthis.resetForm();\r\n\r\n\t\t\t$( this.currentForm )\r\n\t\t\t\t.off( \".validate\" )\r\n\t\t\t\t.removeData( \"validator\" )\r\n\t\t\t\t.find( \".validate-equalTo-blur\" )\r\n\t\t\t\t\t.off( \".validate-equalTo\" )\r\n\t\t\t\t\t.removeClass( \"validate-equalTo-blur\" )\r\n\t\t\t\t.find( \".validate-lessThan-blur\" )\r\n\t\t\t\t\t.off( \".validate-lessThan\" )\r\n\t\t\t\t\t.removeClass( \"validate-lessThan-blur\" )\r\n\t\t\t\t.find( \".validate-lessThanEqual-blur\" )\r\n\t\t\t\t\t.off( \".validate-lessThanEqual\" )\r\n\t\t\t\t\t.removeClass( \"validate-lessThanEqual-blur\" )\r\n\t\t\t\t.find( \".validate-greaterThanEqual-blur\" )\r\n\t\t\t\t\t.off( \".validate-greaterThanEqual\" )\r\n\t\t\t\t\t.removeClass( \"validate-greaterThanEqual-blur\" )\r\n\t\t\t\t.find( \".validate-greaterThan-blur\" )\r\n\t\t\t\t\t.off( \".validate-greaterThan\" )\r\n\t\t\t\t\t.removeClass( \"validate-greaterThan-blur\" );\r\n\t\t}\r\n\r\n\t},\r\n\r\n\tclassRuleSettings: {\r\n\t\trequired: { required: true },\r\n\t\temail: { email: true },\r\n\t\turl: { url: true },\r\n\t\tdate: { date: true },\r\n\t\tdateISO: { dateISO: true },\r\n\t\tnumber: { number: true },\r\n\t\tdigits: { digits: true },\r\n\t\tcreditcard: { creditcard: true }\r\n\t},\r\n\r\n\taddClassRules: function( className, rules ) {\r\n\t\tif ( className.constructor === String ) {\r\n\t\t\tthis.classRuleSettings[ className ] = rules;\r\n\t\t} else {\r\n\t\t\t$.extend( this.classRuleSettings, className );\r\n\t\t}\r\n\t},\r\n\r\n\tclassRules: function( element ) {\r\n\t\tvar rules = {},\r\n\t\t\tclasses = $( element ).attr( \"class\" );\r\n\r\n\t\tif ( classes ) {\r\n\t\t\t$.each( classes.split( \" \" ), function() {\r\n\t\t\t\tif ( this in $.validator.classRuleSettings ) {\r\n\t\t\t\t\t$.extend( rules, $.validator.classRuleSettings[ this ] );\r\n\t\t\t\t}\r\n\t\t\t} );\r\n\t\t}\r\n\t\treturn rules;\r\n\t},\r\n\r\n\tnormalizeAttributeRule: function( rules, type, method, value ) {\r\n\r\n\t\t// Convert the value to a number for number inputs, and for text for backwards compability\r\n\t\t// allows type=\"date\" and others to be compared as strings\r\n\t\tif ( /min|max|step/.test( method ) && ( type === null || /number|range|text/.test( type ) ) ) {\r\n\t\t\tvalue = Number( value );\r\n\r\n\t\t\t// Support Opera Mini, which returns NaN for undefined minlength\r\n\t\t\tif ( isNaN( value ) ) {\r\n\t\t\t\tvalue = undefined;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif ( value || value === 0 ) {\r\n\t\t\trules[ method ] = value;\r\n\t\t} else if ( type === method && type !== \"range\" ) {\r\n\r\n\t\t\t// Exception: the jquery validate 'range' method\r\n\t\t\t// does not test for the html5 'range' type\r\n\t\t\trules[ method ] = true;\r\n\t\t}\r\n\t},\r\n\r\n\tattributeRules: function( element ) {\r\n\t\tvar rules = {},\r\n\t\t\t$element = $( element ),\r\n\t\t\ttype = element.getAttribute( \"type\" ),\r\n\t\t\tmethod, value;\r\n\r\n\t\tfor ( method in $.validator.methods ) {\r\n\r\n\t\t\t// Support for in both html5 and older browsers\r\n\t\t\tif ( method === \"required\" ) {\r\n\t\t\t\tvalue = element.getAttribute( method );\r\n\r\n\t\t\t\t// Some browsers return an empty string for the required attribute\r\n\t\t\t\t// and non-HTML5 browsers might have required=\"\" markup\r\n\t\t\t\tif ( value === \"\" ) {\r\n\t\t\t\t\tvalue = true;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Force non-HTML5 browsers to return bool\r\n\t\t\t\tvalue = !!value;\r\n\t\t\t} else {\r\n\t\t\t\tvalue = $element.attr( method );\r\n\t\t\t}\r\n\r\n\t\t\tthis.normalizeAttributeRule( rules, type, method, value );\r\n\t\t}\r\n\r\n\t\t// 'maxlength' may be returned as -1, 2147483647 ( IE ) and 524288 ( safari ) for text inputs\r\n\t\tif ( rules.maxlength && /-1|2147483647|524288/.test( rules.maxlength ) ) {\r\n\t\t\tdelete rules.maxlength;\r\n\t\t}\r\n\r\n\t\treturn rules;\r\n\t},\r\n\r\n\tdataRules: function( element ) {\r\n\t\tvar rules = {},\r\n\t\t\t$element = $( element ),\r\n\t\t\ttype = element.getAttribute( \"type\" ),\r\n\t\t\tmethod, value;\r\n\r\n\t\tfor ( method in $.validator.methods ) {\r\n\t\t\tvalue = $element.data( \"rule\" + method.charAt( 0 ).toUpperCase() + method.substring( 1 ).toLowerCase() );\r\n\r\n\t\t\t// Cast empty attributes like `data-rule-required` to `true`\r\n\t\t\tif ( value === \"\" ) {\r\n\t\t\t\tvalue = true;\r\n\t\t\t}\r\n\r\n\t\t\tthis.normalizeAttributeRule( rules, type, method, value );\r\n\t\t}\r\n\t\treturn rules;\r\n\t},\r\n\r\n\tstaticRules: function( element ) {\r\n\t\tvar rules = {},\r\n\t\t\tvalidator = $.data( element.form, \"validator\" );\r\n\r\n\t\tif ( validator.settings.rules ) {\r\n\t\t\trules = $.validator.normalizeRule( validator.settings.rules[ element.name ] ) || {};\r\n\t\t}\r\n\t\treturn rules;\r\n\t},\r\n\r\n\tnormalizeRules: function( rules, element ) {\r\n\r\n\t\t// Handle dependency check\r\n\t\t$.each( rules, function( prop, val ) {\r\n\r\n\t\t\t// Ignore rule when param is explicitly false, eg. required:false\r\n\t\t\tif ( val === false ) {\r\n\t\t\t\tdelete rules[ prop ];\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tif ( val.param || val.depends ) {\r\n\t\t\t\tvar keepRule = true;\r\n\t\t\t\tswitch ( typeof val.depends ) {\r\n\t\t\t\tcase \"string\":\r\n\t\t\t\t\tkeepRule = !!$( val.depends, element.form ).length;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"function\":\r\n\t\t\t\t\tkeepRule = val.depends.call( element, element );\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t\tif ( keepRule ) {\r\n\t\t\t\t\trules[ prop ] = val.param !== undefined ? val.param : true;\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$.data( element.form, \"validator\" ).resetElements( $( element ) );\r\n\t\t\t\t\tdelete rules[ prop ];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} );\r\n\r\n\t\t// Evaluate parameters\r\n\t\t$.each( rules, function( rule, parameter ) {\r\n\t\t\trules[ rule ] = $.isFunction( parameter ) && rule !== \"normalizer\" ? parameter( element ) : parameter;\r\n\t\t} );\r\n\r\n\t\t// Clean number parameters\r\n\t\t$.each( [ \"minlength\", \"maxlength\" ], function() {\r\n\t\t\tif ( rules[ this ] ) {\r\n\t\t\t\trules[ this ] = Number( rules[ this ] );\r\n\t\t\t}\r\n\t\t} );\r\n\t\t$.each( [ \"rangelength\", \"range\" ], function() {\r\n\t\t\tvar parts;\r\n\t\t\tif ( rules[ this ] ) {\r\n\t\t\t\tif ( $.isArray( rules[ this ] ) ) {\r\n\t\t\t\t\trules[ this ] = [ Number( rules[ this ][ 0 ] ), Number( rules[ this ][ 1 ] ) ];\r\n\t\t\t\t} else if ( typeof rules[ this ] === \"string\" ) {\r\n\t\t\t\t\tparts = rules[ this ].replace( /[\\[\\]]/g, \"\" ).split( /[\\s,]+/ );\r\n\t\t\t\t\trules[ this ] = [ Number( parts[ 0 ] ), Number( parts[ 1 ] ) ];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} );\r\n\r\n\t\tif ( $.validator.autoCreateRanges ) {\r\n\r\n\t\t\t// Auto-create ranges\r\n\t\t\tif ( rules.min != null && rules.max != null ) {\r\n\t\t\t\trules.range = [ rules.min, rules.max ];\r\n\t\t\t\tdelete rules.min;\r\n\t\t\t\tdelete rules.max;\r\n\t\t\t}\r\n\t\t\tif ( rules.minlength != null && rules.maxlength != null ) {\r\n\t\t\t\trules.rangelength = [ rules.minlength, rules.maxlength ];\r\n\t\t\t\tdelete rules.minlength;\r\n\t\t\t\tdelete rules.maxlength;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn rules;\r\n\t},\r\n\r\n\t// Converts a simple string to a {string: true} rule, e.g., \"required\" to {required:true}\r\n\tnormalizeRule: function( data ) {\r\n\t\tif ( typeof data === \"string\" ) {\r\n\t\t\tvar transformed = {};\r\n\t\t\t$.each( data.split( /\\s/ ), function() {\r\n\t\t\t\ttransformed[ this ] = true;\r\n\t\t\t} );\r\n\t\t\tdata = transformed;\r\n\t\t}\r\n\t\treturn data;\r\n\t},\r\n\r\n\t// https://jqueryvalidation.org/jQuery.validator.addMethod/\r\n\taddMethod: function( name, method, message ) {\r\n\t\t$.validator.methods[ name ] = method;\r\n\t\t$.validator.messages[ name ] = message !== undefined ? message : $.validator.messages[ name ];\r\n\t\tif ( method.length < 3 ) {\r\n\t\t\t$.validator.addClassRules( name, $.validator.normalizeRule( name ) );\r\n\t\t}\r\n\t},\r\n\r\n\t// https://jqueryvalidation.org/jQuery.validator.methods/\r\n\tmethods: {\r\n\r\n\t\t// https://jqueryvalidation.org/required-method/\r\n\t\trequired: function( value, element, param ) {\r\n\r\n\t\t\t// Check if dependency is met\r\n\t\t\tif ( !this.depend( param, element ) ) {\r\n\t\t\t\treturn \"dependency-mismatch\";\r\n\t\t\t}\r\n\t\t\tif ( element.nodeName.toLowerCase() === \"select\" ) {\r\n\r\n\t\t\t\t// Could be an array for select-multiple or a string, both are fine this way\r\n\t\t\t\tvar val = $( element ).val();\r\n\t\t\t\treturn val && val.length > 0;\r\n\t\t\t}\r\n\t\t\tif ( this.checkable( element ) ) {\r\n\t\t\t\treturn this.getLength( value, element ) > 0;\r\n\t\t\t}\r\n\t\t\treturn value !== undefined && value !== null && value.length > 0;\r\n\t\t},\r\n\r\n\t\t// https://jqueryvalidation.org/email-method/\r\n\t\temail: function( value, element ) {\r\n\r\n\t\t\t// From https://html.spec.whatwg.org/multipage/forms.html#valid-e-mail-address\r\n\t\t\t// Retrieved 2014-01-14\r\n\t\t\t// If you have a problem with this implementation, report a bug against the above spec\r\n\t\t\t// Or use custom methods to implement your own email validation\r\n\t\t\treturn this.optional( element ) || /^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test( value );\r\n\t\t},\r\n\r\n\t\t// https://jqueryvalidation.org/url-method/\r\n\t\turl: function( value, element ) {\r\n\r\n\t\t\t// Copyright (c) 2010-2013 Diego Perini, MIT licensed\r\n\t\t\t// https://gist.github.com/dperini/729294\r\n\t\t\t// see also https://mathiasbynens.be/demo/url-regex\r\n\t\t\t// modified to allow protocol-relative URLs\r\n\t\t\treturn this.optional( element ) || /^(?:(?:(?:https?|ftp):)?\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?!(?:10|127)(?:\\.\\d{1,3}){3})(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})).?)(?::\\d{2,5})?(?:[/?#]\\S*)?$/i.test( value );\r\n\t\t},\r\n\r\n\t\t// https://jqueryvalidation.org/date-method/\r\n\t\tdate: ( function() {\r\n\t\t\tvar called = false;\r\n\r\n\t\t\treturn function( value, element ) {\r\n\t\t\t\tif ( !called ) {\r\n\t\t\t\t\tcalled = true;\r\n\t\t\t\t\tif ( this.settings.debug && window.console ) {\r\n\t\t\t\t\t\tconsole.warn(\r\n\t\t\t\t\t\t\t\"The `date` method is deprecated and will be removed in version '2.0.0'.\\n\" +\r\n\t\t\t\t\t\t\t\"Please don't use it, since it relies on the Date constructor, which\\n\" +\r\n\t\t\t\t\t\t\t\"behaves very differently across browsers and locales. Use `dateISO`\\n\" +\r\n\t\t\t\t\t\t\t\"instead or one of the locale specific methods in `localizations/`\\n\" +\r\n\t\t\t\t\t\t\t\"and `additional-methods.js`.\"\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn this.optional( element ) || !/Invalid|NaN/.test( new Date( value ).toString() );\r\n\t\t\t};\r\n\t\t}() ),\r\n\r\n\t\t// https://jqueryvalidation.org/dateISO-method/\r\n\t\tdateISO: function( value, element ) {\r\n\t\t\treturn this.optional( element ) || /^\\d{4}[\\/\\-](0?[1-9]|1[012])[\\/\\-](0?[1-9]|[12][0-9]|3[01])$/.test( value );\r\n\t\t},\r\n\r\n\t\t// https://jqueryvalidation.org/number-method/\r\n\t\tnumber: function( value, element ) {\r\n\t\t\treturn this.optional( element ) || /^(?:-?\\d+|-?\\d{1,3}(?:,\\d{3})+)?(?:\\.\\d+)?$/.test( value );\r\n\t\t},\r\n\r\n\t\t// https://jqueryvalidation.org/digits-method/\r\n\t\tdigits: function( value, element ) {\r\n\t\t\treturn this.optional( element ) || /^\\d+$/.test( value );\r\n\t\t},\r\n\r\n\t\t// https://jqueryvalidation.org/minlength-method/\r\n\t\tminlength: function( value, element, param ) {\r\n\t\t\tvar length = $.isArray( value ) ? value.length : this.getLength( value, element );\r\n\t\t\treturn this.optional( element ) || length >= param;\r\n\t\t},\r\n\r\n\t\t// https://jqueryvalidation.org/maxlength-method/\r\n\t\tmaxlength: function( value, element, param ) {\r\n\t\t\tvar length = $.isArray( value ) ? value.length : this.getLength( value, element );\r\n\t\t\treturn this.optional( element ) || length <= param;\r\n\t\t},\r\n\r\n\t\t// https://jqueryvalidation.org/rangelength-method/\r\n\t\trangelength: function( value, element, param ) {\r\n\t\t\tvar length = $.isArray( value ) ? value.length : this.getLength( value, element );\r\n\t\t\treturn this.optional( element ) || ( length >= param[ 0 ] && length <= param[ 1 ] );\r\n\t\t},\r\n\r\n\t\t// https://jqueryvalidation.org/min-method/\r\n\t\tmin: function( value, element, param ) {\r\n\t\t\treturn this.optional( element ) || value >= param;\r\n\t\t},\r\n\r\n\t\t// https://jqueryvalidation.org/max-method/\r\n\t\tmax: function( value, element, param ) {\r\n\t\t\treturn this.optional( element ) || value <= param;\r\n\t\t},\r\n\r\n\t\t// https://jqueryvalidation.org/range-method/\r\n\t\trange: function( value, element, param ) {\r\n\t\t\treturn this.optional( element ) || ( value >= param[ 0 ] && value <= param[ 1 ] );\r\n\t\t},\r\n\r\n\t\t// https://jqueryvalidation.org/step-method/\r\n\t\tstep: function( value, element, param ) {\r\n\t\t\tvar type = $( element ).attr( \"type\" ),\r\n\t\t\t\terrorMessage = \"Step attribute on input type \" + type + \" is not supported.\",\r\n\t\t\t\tsupportedTypes = [ \"text\", \"number\", \"range\" ],\r\n\t\t\t\tre = new RegExp( \"\\\\b\" + type + \"\\\\b\" ),\r\n\t\t\t\tnotSupported = type && !re.test( supportedTypes.join() ),\r\n\t\t\t\tdecimalPlaces = function( num ) {\r\n\t\t\t\t\tvar match = ( \"\" + num ).match( /(?:\\.(\\d+))?$/ );\r\n\t\t\t\t\tif ( !match ) {\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Number of digits right of decimal point.\r\n\t\t\t\t\treturn match[ 1 ] ? match[ 1 ].length : 0;\r\n\t\t\t\t},\r\n\t\t\t\ttoInt = function( num ) {\r\n\t\t\t\t\treturn Math.round( num * Math.pow( 10, decimals ) );\r\n\t\t\t\t},\r\n\t\t\t\tvalid = true,\r\n\t\t\t\tdecimals;\r\n\r\n\t\t\t// Works only for text, number and range input types\r\n\t\t\t// TODO find a way to support input types date, datetime, datetime-local, month, time and week\r\n\t\t\tif ( notSupported ) {\r\n\t\t\t\tthrow new Error( errorMessage );\r\n\t\t\t}\r\n\r\n\t\t\tdecimals = decimalPlaces( param );\r\n\r\n\t\t\t// Value can't have too many decimals\r\n\t\t\tif ( decimalPlaces( value ) > decimals || toInt( value ) % toInt( param ) !== 0 ) {\r\n\t\t\t\tvalid = false;\r\n\t\t\t}\r\n\r\n\t\t\treturn this.optional( element ) || valid;\r\n\t\t},\r\n\r\n\t\t// https://jqueryvalidation.org/equalTo-method/\r\n\t\tequalTo: function( value, element, param ) {\r\n\r\n\t\t\t// Bind to the blur event of the target in order to revalidate whenever the target field is updated\r\n\t\t\tvar target = $( param );\r\n\t\t\tif ( this.settings.onfocusout && target.not( \".validate-equalTo-blur\" ).length ) {\r\n\t\t\t\ttarget.addClass( \"validate-equalTo-blur\" ).on( \"blur.validate-equalTo\", function() {\r\n\t\t\t\t\t$( element ).valid();\r\n\t\t\t\t} );\r\n\t\t\t}\r\n\t\t\treturn value === target.val();\r\n\t\t},\r\n\r\n\t\t// https://jqueryvalidation.org/remote-method/\r\n\t\tremote: function( value, element, param, method ) {\r\n\t\t\tif ( this.optional( element ) ) {\r\n\t\t\t\treturn \"dependency-mismatch\";\r\n\t\t\t}\r\n\r\n\t\t\tmethod = typeof method === \"string\" && method || \"remote\";\r\n\r\n\t\t\tvar previous = this.previousValue( element, method ),\r\n\t\t\t\tvalidator, data, optionDataString;\r\n\r\n\t\t\tif ( !this.settings.messages[ element.name ] ) {\r\n\t\t\t\tthis.settings.messages[ element.name ] = {};\r\n\t\t\t}\r\n\t\t\tprevious.originalMessage = previous.originalMessage || this.settings.messages[ element.name ][ method ];\r\n\t\t\tthis.settings.messages[ element.name ][ method ] = previous.message;\r\n\r\n\t\t\tparam = typeof param === \"string\" && { url: param } || param;\r\n\t\t\toptionDataString = $.param( $.extend( { data: value }, param.data ) );\r\n\t\t\tif ( previous.old === optionDataString ) {\r\n\t\t\t\treturn previous.valid;\r\n\t\t\t}\r\n\r\n\t\t\tprevious.old = optionDataString;\r\n\t\t\tvalidator = this;\r\n\t\t\tthis.startRequest( element );\r\n\t\t\tdata = {};\r\n\t\t\tdata[ element.name ] = value;\r\n\t\t\t$.ajax( $.extend( true, {\r\n\t\t\t\tmode: \"abort\",\r\n\t\t\t\tport: \"validate\" + element.name,\r\n\t\t\t\tdataType: \"json\",\r\n\t\t\t\tdata: data,\r\n\t\t\t\tcontext: validator.currentForm,\r\n\t\t\t\tsuccess: function( response ) {\r\n\t\t\t\t\tvar valid = response === true || response === \"true\",\r\n\t\t\t\t\t\terrors, message, submitted;\r\n\r\n\t\t\t\t\tvalidator.settings.messages[ element.name ][ method ] = previous.originalMessage;\r\n\t\t\t\t\tif ( valid ) {\r\n\t\t\t\t\t\tsubmitted = validator.formSubmitted;\r\n\t\t\t\t\t\tvalidator.resetInternals();\r\n\t\t\t\t\t\tvalidator.toHide = validator.errorsFor( element );\r\n\t\t\t\t\t\tvalidator.formSubmitted = submitted;\r\n\t\t\t\t\t\tvalidator.successList.push( element );\r\n\t\t\t\t\t\tvalidator.invalid[ element.name ] = false;\r\n\t\t\t\t\t\tvalidator.showErrors();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\terrors = {};\r\n\t\t\t\t\t\tmessage = response || validator.defaultMessage( element, { method: method, parameters: value } );\r\n\t\t\t\t\t\terrors[ element.name ] = previous.message = message;\r\n\t\t\t\t\t\tvalidator.invalid[ element.name ] = true;\r\n\t\t\t\t\t\tvalidator.showErrors( errors );\r\n\t\t\t\t\t}\r\n\t\t\t\t\tprevious.valid = valid;\r\n\t\t\t\t\tvalidator.stopRequest( element, valid );\r\n\t\t\t\t}\r\n\t\t\t}, param ) );\r\n\t\t\treturn \"pending\";\r\n\t\t}\r\n\t}\r\n\r\n} );\r\n\r\n// Ajax mode: abort\r\n// usage: $.ajax({ mode: \"abort\"[, port: \"uniqueport\"]});\r\n// if mode:\"abort\" is used, the previous request on that port (port can be undefined) is aborted via XMLHttpRequest.abort()\r\n\r\nvar pendingRequests = {},\r\n\tajax;\r\n\r\n// Use a prefilter if available (1.5+)\r\nif ( $.ajaxPrefilter ) {\r\n\t$.ajaxPrefilter( function( settings, _, xhr ) {\r\n\t\tvar port = settings.port;\r\n\t\tif ( settings.mode === \"abort\" ) {\r\n\t\t\tif ( pendingRequests[ port ] ) {\r\n\t\t\t\tpendingRequests[ port ].abort();\r\n\t\t\t}\r\n\t\t\tpendingRequests[ port ] = xhr;\r\n\t\t}\r\n\t} );\r\n} else {\r\n\r\n\t// Proxy ajax\r\n\tajax = $.ajax;\r\n\t$.ajax = function( settings ) {\r\n\t\tvar mode = ( \"mode\" in settings ? settings : $.ajaxSettings ).mode,\r\n\t\t\tport = ( \"port\" in settings ? settings : $.ajaxSettings ).port;\r\n\t\tif ( mode === \"abort\" ) {\r\n\t\t\tif ( pendingRequests[ port ] ) {\r\n\t\t\t\tpendingRequests[ port ].abort();\r\n\t\t\t}\r\n\t\t\tpendingRequests[ port ] = ajax.apply( this, arguments );\r\n\t\t\treturn pendingRequests[ port ];\r\n\t\t}\r\n\t\treturn ajax.apply( this, arguments );\r\n\t};\r\n}\r\nreturn $;\r\n}));\r\n\r\n\r\n//////////////////\r\n// WEBPACK FOOTER\r\n// ./node_modules/jquery-validation/dist/jquery.validate.js\r\n// module id = 51\r\n// module chunks = 0","/*!\r\n * Select2 4.0.6-rc.1\r\n * https://select2.github.io\r\n *\r\n * Released under the MIT license\r\n * https://github.com/select2/select2/blob/master/LICENSE.md\r\n */\r\n;(function (factory) {\r\n //if (typeof define === 'function' && define.amd) {\r\n // // AMD. Register as an anonymous module.\r\n // define(['jQuery'], factory);\r\n //} else if (typeof module === 'object' && module.exports) {\r\n // // Node/CommonJS\r\n // module.exports = function (root, jQuery) {\r\n // if (jQuery === undefined) {\r\n // // require('jQuery') returns a factory that requires window to\r\n // // build a jQuery instance, we normalize how we use modules\r\n // // that require this pattern but the window provided is a noop\r\n // // if it's defined (how jquery works)\r\n // if (typeof window !== 'undefined') {\r\n // jQuery = require('jQuery');\r\n // }\r\n // else {\r\n // jQuery = require('jQuery')(root);\r\n // }\r\n // }\r\n // factory(jQuery);\r\n // return jQuery;\r\n // };\r\n //} else {\r\n // // Browser globals\r\n // factory(jQuery);\r\n //}\r\n factory(window.$)\r\n} (function (jQuery) {\r\n // This is needed so we can catch the AMD loader configuration and use it\r\n // The inner file should be wrapped (by `banner.start.js`) in a function that\r\n // returns the AMD loader references.\r\n var S2 =(function () {\r\n // Restore the Select2 AMD loader so it can be used\r\n // Needed mostly in the language files, where the loader is not inserted\r\n if (jQuery && jQuery.fn && jQuery.fn.select2 && jQuery.fn.select2.amd) {\r\n var S2 = jQuery.fn.select2.amd;\r\n }\r\nvar S2;(function () { if (!S2 || !S2.requirejs) {\r\nif (!S2) { S2 = {}; } else { require = S2; }\r\n/**\r\n * @license almond 0.3.3 Copyright jQuery Foundation and other contributors.\r\n * Released under MIT license, http://github.com/requirejs/almond/LICENSE\r\n */\r\n//Going sloppy to avoid 'use strict' string cost, but strict practices should\r\n//be followed.\r\n/*global setTimeout: false */\r\n\r\nvar requirejs, require, define;\r\n(function (undef) {\r\n var main, req, makeMap, handlers,\r\n defined = {},\r\n waiting = {},\r\n config = {},\r\n defining = {},\r\n hasOwn = Object.prototype.hasOwnProperty,\r\n aps = [].slice,\r\n jsSuffixRegExp = /\\.js$/;\r\n\r\n function hasProp(obj, prop) {\r\n return hasOwn.call(obj, prop);\r\n }\r\n\r\n /**\r\n * Given a relative module name, like ./something, normalize it to\r\n * a real name that can be mapped to a path.\r\n * @param {String} name the relative name\r\n * @param {String} baseName a real name that the name arg is relative\r\n * to.\r\n * @returns {String} normalized name\r\n */\r\n function normalize(name, baseName) {\r\n var nameParts, nameSegment, mapValue, foundMap, lastIndex,\r\n foundI, foundStarMap, starI, i, j, part, normalizedBaseParts,\r\n baseParts = baseName && baseName.split(\"/\"),\r\n map = config.map,\r\n starMap = (map && map['*']) || {};\r\n\r\n //Adjust any relative paths.\r\n if (name) {\r\n name = name.split('/');\r\n lastIndex = name.length - 1;\r\n\r\n // If wanting node ID compatibility, strip .js from end\r\n // of IDs. Have to do this here, and not in nameToUrl\r\n // because node allows either .js or non .js to map\r\n // to same file.\r\n if (config.nodeIdCompat && jsSuffixRegExp.test(name[lastIndex])) {\r\n name[lastIndex] = name[lastIndex].replace(jsSuffixRegExp, '');\r\n }\r\n\r\n // Starts with a '.' so need the baseName\r\n if (name[0].charAt(0) === '.' && baseParts) {\r\n //Convert baseName to array, and lop off the last part,\r\n //so that . matches that 'directory' and not name of the baseName's\r\n //module. For instance, baseName of 'one/two/three', maps to\r\n //'one/two/three.js', but we want the directory, 'one/two' for\r\n //this normalization.\r\n normalizedBaseParts = baseParts.slice(0, baseParts.length - 1);\r\n name = normalizedBaseParts.concat(name);\r\n }\r\n\r\n //start trimDots\r\n for (i = 0; i < name.length; i++) {\r\n part = name[i];\r\n if (part === '.') {\r\n name.splice(i, 1);\r\n i -= 1;\r\n } else if (part === '..') {\r\n // If at the start, or previous value is still ..,\r\n // keep them so that when converted to a path it may\r\n // still work when converted to a path, even though\r\n // as an ID it is less than ideal. In larger point\r\n // releases, may be better to just kick out an error.\r\n if (i === 0 || (i === 1 && name[2] === '..') || name[i - 1] === '..') {\r\n continue;\r\n } else if (i > 0) {\r\n name.splice(i - 1, 2);\r\n i -= 2;\r\n }\r\n }\r\n }\r\n //end trimDots\r\n\r\n name = name.join('/');\r\n }\r\n\r\n //Apply map config if available.\r\n if ((baseParts || starMap) && map) {\r\n nameParts = name.split('/');\r\n\r\n for (i = nameParts.length; i > 0; i -= 1) {\r\n nameSegment = nameParts.slice(0, i).join(\"/\");\r\n\r\n if (baseParts) {\r\n //Find the longest baseName segment match in the config.\r\n //So, do joins on the biggest to smallest lengths of baseParts.\r\n for (j = baseParts.length; j > 0; j -= 1) {\r\n mapValue = map[baseParts.slice(0, j).join('/')];\r\n\r\n //baseName segment has config, find if it has one for\r\n //this name.\r\n if (mapValue) {\r\n mapValue = mapValue[nameSegment];\r\n if (mapValue) {\r\n //Match, update name to the new value.\r\n foundMap = mapValue;\r\n foundI = i;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (foundMap) {\r\n break;\r\n }\r\n\r\n //Check for a star map match, but just hold on to it,\r\n //if there is a shorter segment match later in a matching\r\n //config, then favor over this star map.\r\n if (!foundStarMap && starMap && starMap[nameSegment]) {\r\n foundStarMap = starMap[nameSegment];\r\n starI = i;\r\n }\r\n }\r\n\r\n if (!foundMap && foundStarMap) {\r\n foundMap = foundStarMap;\r\n foundI = starI;\r\n }\r\n\r\n if (foundMap) {\r\n nameParts.splice(0, foundI, foundMap);\r\n name = nameParts.join('/');\r\n }\r\n }\r\n\r\n return name;\r\n }\r\n\r\n function makeRequire(relName, forceSync) {\r\n return function () {\r\n //A version of a require function that passes a moduleName\r\n //value for items that may need to\r\n //look up paths relative to the moduleName\r\n var args = aps.call(arguments, 0);\r\n\r\n //If first arg is not require('string'), and there is only\r\n //one arg, it is the array form without a callback. Insert\r\n //a null so that the following concat is correct.\r\n if (typeof args[0] !== 'string' && args.length === 1) {\r\n args.push(null);\r\n }\r\n return req.apply(undef, args.concat([relName, forceSync]));\r\n };\r\n }\r\n\r\n function makeNormalize(relName) {\r\n return function (name) {\r\n return normalize(name, relName);\r\n };\r\n }\r\n\r\n function makeLoad(depName) {\r\n return function (value) {\r\n defined[depName] = value;\r\n };\r\n }\r\n\r\n function callDep(name) {\r\n if (hasProp(waiting, name)) {\r\n var args = waiting[name];\r\n delete waiting[name];\r\n defining[name] = true;\r\n main.apply(undef, args);\r\n }\r\n\r\n if (!hasProp(defined, name) && !hasProp(defining, name)) {\r\n throw new Error('No ' + name);\r\n }\r\n return defined[name];\r\n }\r\n\r\n //Turns a plugin!resource to [plugin, resource]\r\n //with the plugin being undefined if the name\r\n //did not have a plugin prefix.\r\n function splitPrefix(name) {\r\n var prefix,\r\n index = name ? name.indexOf('!') : -1;\r\n if (index > -1) {\r\n prefix = name.substring(0, index);\r\n name = name.substring(index + 1, name.length);\r\n }\r\n return [prefix, name];\r\n }\r\n\r\n //Creates a parts array for a relName where first part is plugin ID,\r\n //second part is resource ID. Assumes relName has already been normalized.\r\n function makeRelParts(relName) {\r\n return relName ? splitPrefix(relName) : [];\r\n }\r\n\r\n /**\r\n * Makes a name map, normalizing the name, and using a plugin\r\n * for normalization if necessary. Grabs a ref to plugin\r\n * too, as an optimization.\r\n */\r\n makeMap = function (name, relParts) {\r\n var plugin,\r\n parts = splitPrefix(name),\r\n prefix = parts[0],\r\n relResourceName = relParts[1];\r\n\r\n name = parts[1];\r\n\r\n if (prefix) {\r\n prefix = normalize(prefix, relResourceName);\r\n plugin = callDep(prefix);\r\n }\r\n\r\n //Normalize according\r\n if (prefix) {\r\n if (plugin && plugin.normalize) {\r\n name = plugin.normalize(name, makeNormalize(relResourceName));\r\n } else {\r\n name = normalize(name, relResourceName);\r\n }\r\n } else {\r\n name = normalize(name, relResourceName);\r\n parts = splitPrefix(name);\r\n prefix = parts[0];\r\n name = parts[1];\r\n if (prefix) {\r\n plugin = callDep(prefix);\r\n }\r\n }\r\n\r\n //Using ridiculous property names for space reasons\r\n return {\r\n f: prefix ? prefix + '!' + name : name, //fullName\r\n n: name,\r\n pr: prefix,\r\n p: plugin\r\n };\r\n };\r\n\r\n function makeConfig(name) {\r\n return function () {\r\n return (config && config.config && config.config[name]) || {};\r\n };\r\n }\r\n\r\n handlers = {\r\n require: function (name) {\r\n return makeRequire(name);\r\n },\r\n exports: function (name) {\r\n var e = defined[name];\r\n if (typeof e !== 'undefined') {\r\n return e;\r\n } else {\r\n return (defined[name] = {});\r\n }\r\n },\r\n module: function (name) {\r\n return {\r\n id: name,\r\n uri: '',\r\n exports: defined[name],\r\n config: makeConfig(name)\r\n };\r\n }\r\n };\r\n\r\n main = function (name, deps, callback, relName) {\r\n var cjsModule, depName, ret, map, i, relParts,\r\n args = [],\r\n callbackType = typeof callback,\r\n usingExports;\r\n\r\n //Use name if no relName\r\n relName = relName || name;\r\n relParts = makeRelParts(relName);\r\n\r\n //Call the callback to define the module, if necessary.\r\n if (callbackType === 'undefined' || callbackType === 'function') {\r\n //Pull out the defined dependencies and pass the ordered\r\n //values to the callback.\r\n //Default to [require, exports, module] if no deps\r\n deps = !deps.length && callback.length ? ['require', 'exports', 'module'] : deps;\r\n for (i = 0; i < deps.length; i += 1) {\r\n map = makeMap(deps[i], relParts);\r\n depName = map.f;\r\n\r\n //Fast path CommonJS standard dependencies.\r\n if (depName === \"require\") {\r\n args[i] = handlers.require(name);\r\n } else if (depName === \"exports\") {\r\n //CommonJS module spec 1.1\r\n args[i] = handlers.exports(name);\r\n usingExports = true;\r\n } else if (depName === \"module\") {\r\n //CommonJS module spec 1.1\r\n cjsModule = args[i] = handlers.module(name);\r\n } else if (hasProp(defined, depName) ||\r\n hasProp(waiting, depName) ||\r\n hasProp(defining, depName)) {\r\n args[i] = callDep(depName);\r\n } else if (map.p) {\r\n map.p.load(map.n, makeRequire(relName, true), makeLoad(depName), {});\r\n args[i] = defined[depName];\r\n } else {\r\n throw new Error(name + ' missing ' + depName);\r\n }\r\n }\r\n\r\n ret = callback ? callback.apply(defined[name], args) : undefined;\r\n\r\n if (name) {\r\n //If setting exports via \"module\" is in play,\r\n //favor that over return value and exports. After that,\r\n //favor a non-undefined return value over exports use.\r\n if (cjsModule && cjsModule.exports !== undef &&\r\n cjsModule.exports !== defined[name]) {\r\n defined[name] = cjsModule.exports;\r\n } else if (ret !== undef || !usingExports) {\r\n //Use the return value from the function.\r\n defined[name] = ret;\r\n }\r\n }\r\n } else if (name) {\r\n //May just be an object definition for the module. Only\r\n //worry about defining if have a module name.\r\n defined[name] = callback;\r\n }\r\n };\r\n\r\n requirejs = require = req = function (deps, callback, relName, forceSync, alt) {\r\n if (typeof deps === \"string\") {\r\n if (handlers[deps]) {\r\n //callback in this case is really relName\r\n return handlers[deps](callback);\r\n }\r\n //Just return the module wanted. In this scenario, the\r\n //deps arg is the module name, and second arg (if passed)\r\n //is just the relName.\r\n //Normalize module name, if it contains . or ..\r\n return callDep(makeMap(deps, makeRelParts(callback)).f);\r\n } else if (!deps.splice) {\r\n //deps is a config object, not an array.\r\n config = deps;\r\n if (config.deps) {\r\n req(config.deps, config.callback);\r\n }\r\n if (!callback) {\r\n return;\r\n }\r\n\r\n if (callback.splice) {\r\n //callback is an array, which means it is a dependency list.\r\n //Adjust args if there are dependencies\r\n deps = callback;\r\n callback = relName;\r\n relName = null;\r\n } else {\r\n deps = undef;\r\n }\r\n }\r\n\r\n //Support require(['a'])\r\n callback = callback || function () {};\r\n\r\n //If relName is a function, it is an errback handler,\r\n //so remove it.\r\n if (typeof relName === 'function') {\r\n relName = forceSync;\r\n forceSync = alt;\r\n }\r\n\r\n //Simulate async callback;\r\n if (forceSync) {\r\n main(undef, deps, callback, relName);\r\n } else {\r\n //Using a non-zero value because of concern for what old browsers\r\n //do, and latest browsers \"upgrade\" to 4 if lower value is used:\r\n //http://www.whatwg.org/specs/web-apps/current-work/multipage/timers.html#dom-windowtimers-settimeout:\r\n //If want a value immediately, use require('id') instead -- something\r\n //that works in almond on the global level, but not guaranteed and\r\n //unlikely to work in other AMD implementations.\r\n setTimeout(function () {\r\n main(undef, deps, callback, relName);\r\n }, 4);\r\n }\r\n\r\n return req;\r\n };\r\n\r\n /**\r\n * Just drops the config on the floor, but returns req in case\r\n * the config return value is used.\r\n */\r\n req.config = function (cfg) {\r\n return req(cfg);\r\n };\r\n\r\n /**\r\n * Expose module registry for debugging and tooling\r\n */\r\n requirejs._defined = defined;\r\n\r\n define = function (name, deps, callback) {\r\n if (typeof name !== 'string') {\r\n throw new Error('See almond README: incorrect module build, no module name');\r\n }\r\n\r\n //This module may not have dependencies\r\n if (!deps.splice) {\r\n //deps is not an array, so probably means\r\n //an object literal or factory function for\r\n //the value. Adjust args.\r\n callback = deps;\r\n deps = [];\r\n }\r\n\r\n if (!hasProp(defined, name) && !hasProp(waiting, name)) {\r\n waiting[name] = [name, deps, callback];\r\n }\r\n };\r\n\r\n define.amd = {\r\n jQuery: true\r\n };\r\n}());\r\n\r\nS2.requirejs = requirejs;S2.require = require;S2.define = define;\r\n}\r\n}());\r\nS2.define(\"almond\", function(){});\r\n\r\n/* global jQuery:false, $:false */\r\nS2.define('jquery',[],function () {\r\n var _$ = jQuery || $;\r\n\r\n if (_$ == null && console && console.error) {\r\n console.error(\r\n 'Select2: An instance of jQuery or a jQuery-compatible library was not ' +\r\n 'found. Make sure that you are including jQuery before Select2 on your ' +\r\n 'web page.'\r\n );\r\n }\r\n\r\n return _$;\r\n});\r\n\r\nS2.define('select2/utils',[\r\n 'jquery'\r\n], function ($) {\r\n var Utils = {};\r\n\r\n Utils.Extend = function (ChildClass, SuperClass) {\r\n var __hasProp = {}.hasOwnProperty;\r\n\r\n function BaseConstructor () {\r\n this.constructor = ChildClass;\r\n }\r\n\r\n for (var key in SuperClass) {\r\n if (__hasProp.call(SuperClass, key)) {\r\n ChildClass[key] = SuperClass[key];\r\n }\r\n }\r\n\r\n BaseConstructor.prototype = SuperClass.prototype;\r\n ChildClass.prototype = new BaseConstructor();\r\n ChildClass.__super__ = SuperClass.prototype;\r\n\r\n return ChildClass;\r\n };\r\n\r\n function getMethods (theClass) {\r\n var proto = theClass.prototype;\r\n\r\n var methods = [];\r\n\r\n for (var methodName in proto) {\r\n var m = proto[methodName];\r\n\r\n if (typeof m !== 'function') {\r\n continue;\r\n }\r\n\r\n if (methodName === 'constructor') {\r\n continue;\r\n }\r\n\r\n methods.push(methodName);\r\n }\r\n\r\n return methods;\r\n }\r\n\r\n Utils.Decorate = function (SuperClass, DecoratorClass) {\r\n var decoratedMethods = getMethods(DecoratorClass);\r\n var superMethods = getMethods(SuperClass);\r\n\r\n function DecoratedClass () {\r\n var unshift = Array.prototype.unshift;\r\n\r\n var argCount = DecoratorClass.prototype.constructor.length;\r\n\r\n var calledConstructor = SuperClass.prototype.constructor;\r\n\r\n if (argCount > 0) {\r\n unshift.call(arguments, SuperClass.prototype.constructor);\r\n\r\n calledConstructor = DecoratorClass.prototype.constructor;\r\n }\r\n\r\n calledConstructor.apply(this, arguments);\r\n }\r\n\r\n DecoratorClass.displayName = SuperClass.displayName;\r\n\r\n function ctr () {\r\n this.constructor = DecoratedClass;\r\n }\r\n\r\n DecoratedClass.prototype = new ctr();\r\n\r\n for (var m = 0; m < superMethods.length; m++) {\r\n var superMethod = superMethods[m];\r\n\r\n DecoratedClass.prototype[superMethod] =\r\n SuperClass.prototype[superMethod];\r\n }\r\n\r\n var calledMethod = function (methodName) {\r\n // Stub out the original method if it's not decorating an actual method\r\n var originalMethod = function () {};\r\n\r\n if (methodName in DecoratedClass.prototype) {\r\n originalMethod = DecoratedClass.prototype[methodName];\r\n }\r\n\r\n var decoratedMethod = DecoratorClass.prototype[methodName];\r\n\r\n return function () {\r\n var unshift = Array.prototype.unshift;\r\n\r\n unshift.call(arguments, originalMethod);\r\n\r\n return decoratedMethod.apply(this, arguments);\r\n };\r\n };\r\n\r\n for (var d = 0; d < decoratedMethods.length; d++) {\r\n var decoratedMethod = decoratedMethods[d];\r\n\r\n DecoratedClass.prototype[decoratedMethod] = calledMethod(decoratedMethod);\r\n }\r\n\r\n return DecoratedClass;\r\n };\r\n\r\n var Observable = function () {\r\n this.listeners = {};\r\n };\r\n\r\n Observable.prototype.on = function (event, callback) {\r\n this.listeners = this.listeners || {};\r\n\r\n if (event in this.listeners) {\r\n this.listeners[event].push(callback);\r\n } else {\r\n this.listeners[event] = [callback];\r\n }\r\n };\r\n\r\n Observable.prototype.trigger = function (event) {\r\n var slice = Array.prototype.slice;\r\n var params = slice.call(arguments, 1);\r\n\r\n this.listeners = this.listeners || {};\r\n\r\n // Params should always come in as an array\r\n if (params == null) {\r\n params = [];\r\n }\r\n\r\n // If there are no arguments to the event, use a temporary object\r\n if (params.length === 0) {\r\n params.push({});\r\n }\r\n\r\n // Set the `_type` of the first object to the event\r\n params[0]._type = event;\r\n\r\n if (event in this.listeners) {\r\n this.invoke(this.listeners[event], slice.call(arguments, 1));\r\n }\r\n\r\n if ('*' in this.listeners) {\r\n this.invoke(this.listeners['*'], arguments);\r\n }\r\n };\r\n\r\n Observable.prototype.invoke = function (listeners, params) {\r\n for (var i = 0, len = listeners.length; i < len; i++) {\r\n listeners[i].apply(this, params);\r\n }\r\n };\r\n\r\n Utils.Observable = Observable;\r\n\r\n Utils.generateChars = function (length) {\r\n var chars = '';\r\n\r\n for (var i = 0; i < length; i++) {\r\n var randomChar = Math.floor(Math.random() * 36);\r\n chars += randomChar.toString(36);\r\n }\r\n\r\n return chars;\r\n };\r\n\r\n Utils.bind = function (func, context) {\r\n return function () {\r\n func.apply(context, arguments);\r\n };\r\n };\r\n\r\n Utils._convertData = function (data) {\r\n for (var originalKey in data) {\r\n var keys = originalKey.split('-');\r\n\r\n var dataLevel = data;\r\n\r\n if (keys.length === 1) {\r\n continue;\r\n }\r\n\r\n for (var k = 0; k < keys.length; k++) {\r\n var key = keys[k];\r\n\r\n // Lowercase the first letter\r\n // By default, dash-separated becomes camelCase\r\n key = key.substring(0, 1).toLowerCase() + key.substring(1);\r\n\r\n if (!(key in dataLevel)) {\r\n dataLevel[key] = {};\r\n }\r\n\r\n if (k == keys.length - 1) {\r\n dataLevel[key] = data[originalKey];\r\n }\r\n\r\n dataLevel = dataLevel[key];\r\n }\r\n\r\n delete data[originalKey];\r\n }\r\n\r\n return data;\r\n };\r\n\r\n Utils.hasScroll = function (index, el) {\r\n // Adapted from the function created by @ShadowScripter\r\n // and adapted by @BillBarry on the Stack Exchange Code Review website.\r\n // The original code can be found at\r\n // http://codereview.stackexchange.com/q/13338\r\n // and was designed to be used with the Sizzle selector engine.\r\n\r\n var $el = $(el);\r\n var overflowX = el.style.overflowX;\r\n var overflowY = el.style.overflowY;\r\n\r\n //Check both x and y declarations\r\n if (overflowX === overflowY &&\r\n (overflowY === 'hidden' || overflowY === 'visible')) {\r\n return false;\r\n }\r\n\r\n if (overflowX === 'scroll' || overflowY === 'scroll') {\r\n return true;\r\n }\r\n\r\n return ($el.innerHeight() < el.scrollHeight ||\r\n $el.innerWidth() < el.scrollWidth);\r\n };\r\n\r\n Utils.escapeMarkup = function (markup) {\r\n var replaceMap = {\r\n '\\\\': '\',\r\n '&': '&',\r\n '<': '<',\r\n '>': '>',\r\n '\"': '"',\r\n '\\'': ''',\r\n '/': '/'\r\n };\r\n\r\n // Do not try to escape the markup if it's not a string\r\n if (typeof markup !== 'string') {\r\n return markup;\r\n }\r\n\r\n return String(markup).replace(/[&<>\"'\\/\\\\]/g, function (match) {\r\n return replaceMap[match];\r\n });\r\n };\r\n\r\n // Append an array of jQuery nodes to a given element.\r\n Utils.appendMany = function ($element, $nodes) {\r\n // jQuery 1.7.x does not support $.fn.append() with an array\r\n // Fall back to a jQuery object collection using $.fn.add()\r\n if ($.fn.jquery.substr(0, 3) === '1.7') {\r\n var $jqNodes = $();\r\n\r\n $.map($nodes, function (node) {\r\n $jqNodes = $jqNodes.add(node);\r\n });\r\n\r\n $nodes = $jqNodes;\r\n }\r\n\r\n $element.append($nodes);\r\n };\r\n\r\n // Cache objects in Utils.__cache instead of $.data (see #4346)\r\n Utils.__cache = {};\r\n\r\n var id = 0;\r\n Utils.GetUniqueElementId = function (element) {\r\n // Get a unique element Id. If element has no id, \r\n // creates a new unique number, stores it in the id \r\n // attribute and returns the new id. \r\n // If an id already exists, it simply returns it.\r\n\r\n var select2Id = element.getAttribute('data-select2-id');\r\n if (select2Id == null) {\r\n // If element has id, use it.\r\n if (element.id) {\r\n select2Id = element.id;\r\n element.setAttribute('data-select2-id', select2Id);\r\n } else {\r\n element.setAttribute('data-select2-id', ++id);\r\n select2Id = id.toString();\r\n }\r\n }\r\n return select2Id;\r\n };\r\n\r\n Utils.StoreData = function (element, name, value) {\r\n // Stores an item in the cache for a specified element.\r\n // name is the cache key. \r\n var id = Utils.GetUniqueElementId(element);\r\n if (!Utils.__cache[id]) {\r\n Utils.__cache[id] = {};\r\n }\r\n\r\n Utils.__cache[id][name] = value;\r\n };\r\n\r\n Utils.GetData = function (element, name) {\r\n // Retrieves a value from the cache by its key (name)\r\n // name is optional. If no name specified, return \r\n // all cache items for the specified element.\r\n // and for a specified element.\r\n var id = Utils.GetUniqueElementId(element);\r\n if (name) {\r\n if (Utils.__cache[id]) {\r\n return Utils.__cache[id][name] != null ? \r\n\t Utils.__cache[id][name]:\r\n\t $(element).data(name); // Fallback to HTML5 data attribs.\r\n }\r\n return $(element).data(name); // Fallback to HTML5 data attribs.\r\n } else {\r\n return Utils.__cache[id];\t\t\t \r\n }\r\n };\r\n\r\n Utils.RemoveData = function (element) {\r\n // Removes all cached items for a specified element.\r\n var id = Utils.GetUniqueElementId(element);\r\n if (Utils.__cache[id] != null) {\r\n delete Utils.__cache[id];\r\n }\r\n };\r\n\r\n return Utils;\r\n});\r\n\r\nS2.define('select2/results',[\r\n 'jquery',\r\n './utils'\r\n], function ($, Utils) {\r\n function Results ($element, options, dataAdapter) {\r\n this.$element = $element;\r\n this.data = dataAdapter;\r\n this.options = options;\r\n\r\n Results.__super__.constructor.call(this);\r\n }\r\n\r\n Utils.Extend(Results, Utils.Observable);\r\n\r\n Results.prototype.render = function () {\r\n var $results = $(\r\n '