{"version":3,"sources":["component-login.js","data-duty-wish-form.js","index.js","browserValidation.js","cookies.js","localization.js","localStorage.js","app-myCapitech.js","bootstrap.js","modernizr.js","jquery.js","jquery.magnific-popup.js","elementQuery.js","jquery.validate.js","select2.js","component-absence-form.js","component-absence-requests.js","component-calendar.js","component-change-password.js","component-dialog.js","component-duty-wish-period.js","component-employee-information.js","component-filter-dutywish-department-dutytype.js","component-flexitime-balance.js","component-flexitime.js","component-help.js","component-incoming-messages.js","component-navigation.js","component-outgoing-messages-form.js","component-outgoing-messages.js","component-permissions.js","component-report.js","component-settings.js","component-unread-messages.js","component-user-settings.js","component-vacation-balance.js","component-vacation.js","myCapitechApi.js","navigation.js","page.js"],"names":["shouldRememberMe","getCookie","REMEMBERME_COOKIE_NAME","clearUserCookies","eraseCookie","REFRESHTOKEN_COOKIE_NAME","ACCESSTOKEN_COOKIE_NAME","SIMPLOYER_APPID_COOKIE_NAME","SIMPLOYER_SCI_COOKIE_NAME","persistTokens","response","refreshTokenExpiration","Date","refreshTokenExpires","accessTokenExpiration","accessTokenExpires","getLocalStorage","setCookie","refreshToken","accessToken","setLocalStorage","dutyWishFormData","aSelectedDepartmentIds","departmentIds","aSelectedDutyTypeIds","dutyTypeIds","aDays","modelData","i","tmpObj","dayNumber","bChecked","dayName","moment","startOf","isoWeekday","add","format","push","days","dutyWishFilterDepartments","$","grep","departments","obj","isInArray","id","bVisible","dutyWishFilterDutyTypes","dutyTypes","showLoginForm","addClass","setTimeout","contentHeight","$contentObj","css","height","_logoOffset","top","margin-top","opacity","bSupportLocalStorage","mod","bHasSupport","localStorage","setItem","removeItem","e","alert","name","value","expiration","expires","expDate","undefined","setTime","getTime","toUTCString","jsonValue","JSON","stringify","cookie","getCookiePath","document","nameEQ","ca","split","length","c","charAt","substring","indexOf","val","parse","err","expireDate","path","window","location","pathname","aPath","isRoot","pathLastValue","splice","toLowerCase","localStoragePath","join","translateGUI","$parentElm","find","each","index","newValue","$obj","defaultValue","resourceKey","data","elmTagName","prop","toUpperCase","attr","getResource","html","key","language","_appSettingsObj","translated","bHasTranslation","findObjectInArray","languages","bDebug","resetLocalStorage","displayAvaliableDutiesOnDaysIAlreadyHaveOtherDuties","removeLocalStorage","getItem","getLocalStoragePrefix","Array","Object","slice","clearAllLocalStorage","stampSettingsObj","myCapitechSettingsObj","clear","logoutUser","loginType","simployerSignOutUrl","_api","signOut_POST","textStatus","jqXHR","errorThrown","href","replace","capitechInitSettings","userLang","getUserLanguage","apiURL","getProjectURL","getURLVariable","languageShort","getShortLanguageCode","updateLocale","weekdaysShort","locale","getDefaultClientID","clientId","clientIdFromCookie","CLIENTID_COOKIE_NAME","languageString","navigator","userLanguage","inArray","languageCode","pop","getTranslationFromLocalStorage","translateDocumentTitle","title","protocol","host","capitechInitAPI","Capitech","Api","WebtidApi","handleServerErrorMessage","message","retMessage","localizationKey","sweetAlert","text","type","closeOnConfirm","applicationLoop","accessTokenExpire","millisecondsToLogout","nowDateTime","diff","refreshAccessToken","loadExternalAssets","loadTheme","simployerCSSURL","loadCSS","simployerJSURL","loadJS","themeCSSURL","remove","getServerVersion","callback","success","content","error","getServerVersion_GET","loaderIndicator","displayErrorMessage","refreshAuthorization_POST","validateClient","initializeComponents","initializeComponent","this","variable","query","search","vars","pair","updateURLParameter","url","queryParam","queryParamValue","TheAnchor","newAdditionalURL","tempArray","baseURL","additionalURL","temp","tmpAnchor","TheParams","rows_txt","array","keyValue","foundObj","item","bShow","$body","_loaderArray","shift","toggleClass","displayAjaxErrorAlert","bShowCancel","cancelCallback","statusText","responseJSON","serverErrorMessage","hasOwnProperty","showCancelButton","confirmButtonText","cancelButtonText","isConfirm","reload","trigger","loweCaseObjectKeys","keys","newObj","n","validateEmailAddress","email","emailCheck","test","downloadLanguageBundle","filename","file","Blob","msSaveOrOpenBlob","a","createElement","URL","createObjectURL","download","body","appendChild","click","removeChild","revokeObjectURL","callbackFn","scriptElement","src","onload","onreadystatechange","styleElement","setAttribute","getElementsByTagName","idToActivate","activeClassName","Modernizr","setCss","str","mStyle","cssText","setCssAll","str1","str2","prefixes","is","contains","substr","testProps","props","prefixed","testDOMProps","elem","bind","testPropsAll","ucProp","cssomPrefixes","webforms","len","attrs","inputElem","list","HTMLDataListElement","bool","inputElemType","defaultView","smile","style","WebkitAppearance","docElement","getComputedStyle","offsetHeight","checkValidity","inputs","featureName","hasOwnProp","version","enableClasses","documentElement","modElem","toString","omPrefixes","domPrefixes","ns","svg","tests","classes","injectElementWithStyles","rule","nodes","testnames","ret","node","docOverflow","div","fakeBody","parseInt","innerHTML","background","overflow","parentNode","testMediaQuery","mq","matchMedia","msMatchMedia","matches","currentStyle","isEventSupported","eventName","element","TAGNAMES","isSupported","removeAttribute","select","change","submit","reset","load","abort","_hasOwnProperty","call","object","property","constructor","prototype","Function","that","target","TypeError","args","arguments","bound","F","self","result","apply","concat","getContext","fillText","WebGLRenderingContext","DocumentTouch","offsetTop","postMessage","openDatabase","documentMode","history","pushState","backgroundColor","textShadow","str3","backgroundImage","offsetLeft","getElementById","sheet","styleSheet","cssRules","canPlayType","Boolean","ogg","h264","webm","mp3","wav","m4a","sessionStorage","Worker","applicationCache","createElementNS","createSVGRect","firstChild","namespaceURI","feature","input","addTest","className","addStyleSheet","ownerDocument","p","parent","insertBefore","lastChild","getElements","elements","html5","getExpandoData","expandoData","expando","expanID","nodeName","supportsUnknownElements","cache","cloneNode","saveClones","createElem","canHaveChildren","reSkip","frag","createDocumentFragment","clone","elems","l","shivMethods","createFrag","shivDocument","shivCSS","supportsHtml5Styles","hasCSS","options","childNodes","_version","_prefixes","_domPrefixes","_cssomPrefixes","hasEvent","testProp","testAllProps","testStyles","global","factory","module","exports","w","Error","noGlobal","isArraylike","jQuery","isWindow","nodeType","winnow","qualifier","not","isFunction","risSimple","filter","sibling","cur","dir","createOptions","optionsCache","match","rnotwhite","_","flag","detach","addEventListener","removeEventListener","completed","detachEvent","event","readyState","ready","dataAttr","rmultiDash","getAttribute","rbrace","parseJSON","isEmptyDataObject","isEmptyObject","internalData","pvt","acceptData","thisCache","internalKey","isNode","deletedIds","guid","toJSON","noop","extend","camelCase","internalRemoveData","isArray","map","cleanData","support","deleteExpando","returnTrue","returnFalse","safeActiveElement","activeElement","createSafeFragment","nodeNames","safeFrag","getAll","context","tag","found","strundefined","querySelectorAll","merge","fixDefaultChecked","rcheckableType","defaultChecked","checked","manipulationTarget","disableScript","restoreScript","rscriptTypeMasked","exec","setGlobalEval","refElements","_data","cloneCopyEvent","dest","hasData","oldData","curData","events","handle","fixCloneNodeIssues","noCloneEvent","removeEvent","outerHTML","html5Clone","trim","defaultSelected","selected","actualDisplay","doc","appendTo","display","getDefaultComputedStyle","defaultDisplay","elemdisplay","iframe","contentWindow","contentDocument","write","close","addGetHookIf","conditionFn","hookFn","get","condition","vendorPropName","capName","origName","cssPrefixes","showHide","show","hidden","values","isHidden","setPositiveNumber","subtract","rnumsplit","Math","max","augmentWidthOrHeight","extra","isBorderBox","styles","cssExpand","getWidthOrHeight","valueIsBorderBox","offsetWidth","getStyles","boxSizing","curCSS","rnumnonpx","boxSizingReliable","parseFloat","Tween","end","easing","init","createFxNow","fxNow","now","genFx","includeWidth","which","width","createTween","animation","tween","collection","tweeners","defaultPrefilter","opts","toggle","hooks","oldfire","checkDisplay","anim","orig","dataShow","queue","_queueHooks","unqueued","empty","fire","always","overflowX","overflowY","inlineBlockNeedsLayout","zoom","shrinkWrapBlocks","rfxtypes","done","hide","_removeData","start","propFilter","specialEasing","cssHooks","expand","Animation","properties","stopped","animationPrefilters","deferred","Deferred","tick","currentTime","remaining","startTime","duration","percent","tweens","run","notifyWith","resolveWith","promise","originalProperties","originalOptions","stop","gotoEnd","rejectWith","fx","timer","progress","complete","fail","addToPrefiltersOrTransports","structure","dataTypeExpression","func","dataType","dataTypes","unshift","inspectPrefiltersOrTransports","inspect","inspected","prefilterOrFactory","dataTypeOrTransport","seekingTransport","transports","ajaxExtend","deep","flatOptions","ajaxSettings","ajaxHandleResponses","s","responses","firstDataType","ct","finalDataType","contents","mimeType","getResponseHeader","converters","ajaxConvert","isSuccess","conv2","current","conv","tmp","prev","responseFields","dataFilter","state","buildParams","prefix","traditional","v","rbracket","createStandardXHR","XMLHttpRequest","createActiveXHR","ActiveXObject","getWindow","parentWindow","class2type","hasOwn","selector","fn","rtrim","rmsPrefix","rdashAlpha","fcamelCase","all","letter","jquery","toArray","num","pushStack","prevObject","first","eq","last","j","sort","copyIsArray","copy","isPlainObject","random","isReady","msg","isNumeric","ownLast","globalEval","execScript","string","makeArray","arr","results","second","invert","callbackInverse","callbackExpect","arg","proxy","Sizzle","seed","m","groups","old","nid","newContext","newSelector","preferredDoc","setDocument","documentIsHTML","rquickExpr","getElementsByClassName","qsa","rbuggyQSA","tokenize","rescape","toSelector","rsibling","testContext","qsaError","createCache","Expr","cacheLength","markFunction","assert","addHandle","handler","attrHandle","siblingCheck","b","sourceIndex","MAX_NEGATIVE","nextSibling","createInputPseudo","createButtonPseudo","createPositionalPseudo","argument","matchIndexes","setFilters","tokens","addCombinator","matcher","combinator","base","checkNonElements","doneName","xml","oldCache","outerCache","newCache","dirruns","elementMatcher","matchers","multipleContexts","contexts","condense","unmatched","newUnmatched","mapped","setMatcher","preFilter","postFilter","postFinder","postSelector","preMap","postMap","preexisting","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","relative","implicitRelative","matchContext","matchAnyContext","outermostContext","matcherFromGroupMatchers","elementMatchers","setMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","uniqueSort","getText","isXML","compile","sortInput","hasDuplicate","docElem","rbuggyMatches","classCache","tokenCache","compilerCache","sortOrder","push_native","booleans","whitespace","characterEncoding","identifier","attributes","pseudos","rwhitespace","RegExp","rcomma","rcombinators","rattributeQuotes","rpseudo","ridentifier","matchExpr","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","needsContext","rinputs","rheader","rnative","runescape","funescape","escaped","escapedWhitespace","high","String","fromCharCode","unloadHandler","els","hasCompare","attachEvent","createComment","getById","getElementsByName","attrId","getAttributeNode","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","expr","specified","duplicates","detectDuplicates","sortStable","textContent","nodeValue","selectors","createPseudo",">"," ","+","~","excess","unquoted","nodeNameSelector","pattern","operator","check","what","simple","forward","ofType","nodeIndex","useCache","pseudo","idx","matched","has","innerText","lang","elemLang","hash","root","focus","hasFocus","tabIndex","enabled","disabled","selectedIndex","header","button","even","odd","lt","gt","radio","checkbox","password","image","filters","parseOnly","soFar","preFilters","cached","token","compiled","div1","unique","isXMLDoc","rneedsContext","rsingleTag","rootjQuery","parseHTML","rparentsprev","guaranteedUnique","children","next","until","r","targets","closest","pos","prevAll","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","siblings","reverse","Callbacks","firing","memory","fired","firingLength","firingIndex","firingStart","stack","once","stopOnFalse","disable","lock","locked","fireWith","tuples","then","fns","newDefer","tuple","returned","resolve","reject","notify","pipe","stateString","when","subordinate","progressValues","progressContexts","resolveContexts","resolveValues","updateFunc","readyList","readyWait","holdReady","hold","wait","triggerHandler","off","frameElement","doScroll","doScrollCheck","container","noData","applet ","embed ","object ","removeData","dequeue","startLength","setter","clearQueue","count","defer","pnum","source","el","access","chainable","emptyGet","raw","bulk","fragment","leadingWhitespace","tbody","htmlSerialize","appendChecked","noCloneChecked","checkClone","focusin","rformElems","rkeyEvent","rmouseEvent","rfocusMorph","rtypenamespace","types","t","handleObjIn","special","eventHandle","handleObj","handlers","namespaces","origType","elemData","triggered","dispatch","delegateType","bindType","namespace","delegateCount","setup","mappedTypes","origCount","teardown","onlyHandlers","ontype","bubbleType","eventPath","Event","isTrigger","namespace_re","noBubble","isPropagationStopped","preventDefault","isDefaultPrevented","_default","fix","handlerQueue","delegateTarget","preDispatch","currentTarget","isImmediatePropagationStopped","stopPropagation","postDispatch","sel","originalEvent","fixHook","fixHooks","mouseHooks","keyHooks","srcElement","metaKey","original","charCode","keyCode","eventDoc","fromElement","pageX","clientX","scrollLeft","clientLeft","pageY","clientY","scrollTop","clientTop","relatedTarget","toElement","blur","beforeunload","returnValue","simulate","bubble","isSimulated","defaultPrevented","timeStamp","cancelBubble","stopImmediatePropagation","mouseenter","mouseleave","pointerenter","pointerleave","related","submitBubbles","form","_submit_bubble","changeBubbles","propertyName","_just_changed","focusinBubbles","attaches","on","one","origFn","rinlinejQuery","rnoshimcache","rleadingWhitespace","rxhtmlTag","rtagName","rtbody","rhtml","rnoInnerhtml","rchecked","rscriptType","rcleanScript","wrapMap","option","legend","area","param","thead","tr","col","td","safeFragment","fragmentDiv","optgroup","tfoot","colgroup","caption","th","dataAndEvents","deepDataAndEvents","destElements","srcElements","inPage","buildFragment","scripts","selection","wrap","safe","createTextNode","append","domManip","prepend","before","after","keepData","replaceWith","replaceChild","hasScripts","set","iNoClone","_evalUrl","prependTo","insertAfter","replaceAll","insert","shrinkWrapBlocksVal","rmargin","rposition","opener","computed","minWidth","maxWidth","getPropertyValue","left","rs","rsLeft","runtimeStyle","pixelLeft","computeStyleTests","pixelPositionVal","boxSizingReliableVal","reliableMarginRightVal","marginRight","reliableHiddenOffsetsVal","cssFloat","backgroundClip","clearCloneStyle","MozBoxSizing","WebkitBoxSizing","reliableHiddenOffsets","pixelPosition","reliableMarginRight","swap","ralpha","ropacity","rdisplayswap","rrelNum","cssShow","position","visibility","cssNormalTransform","letterSpacing","fontWeight","cssNumber","columnCount","fillOpacity","flexGrow","flexShrink","lineHeight","order","orphans","widows","zIndex","cssProps","float","$1","margin","padding","border","suffix","expanded","parts","unit","propHooks","eased","step","linear","swing","cos","PI","timerId","rfxnum","rrun","*","scale","maxIterations","tweener","prefilter","speed","opt","speeds","fadeTo","to","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","interval","setInterval","clearInterval","slow","fast","delay","time","timeout","clearTimeout","getSetAttribute","hrefNormalized","checkOn","optSelected","enctype","optDisabled","radioValue","rreturn","valHooks","optionSet","scrollHeight","nodeHook","boolHook","ruseDefault","getSetInput","removeAttr","nType","attrHooks","propName","attrNames","propFix","getter","setAttributeNode","createAttribute","coords","contenteditable","rfocusable","rclickable","removeProp","for","class","notxml","tabindex","rclass","clazz","finalValue","proceed","removeClass","stateVal","classNames","hasClass","hover","fnOver","fnOut","unbind","delegate","undelegate","nonce","rquery","rvalidtokens","requireNonComma","depth","comma","open","parseXML","DOMParser","parseFromString","async","loadXML","ajaxLocParts","ajaxLocation","rhash","rts","rheaders","rlocalProtocol","rnoContent","rprotocol","rurl","prefilters","allTypes","active","lastModified","etag","isLocal","processData","contentType","accepts","json","* text","text html","text json","text xml","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","status","nativeStatusText","headers","modified","timeoutTimer","transport","responseHeadersString","ifModified","cacheURL","callbackContext","statusCode","fireGlobals","globalEventContext","completeDeferred","responseHeaders","requestHeaders","requestHeadersNames","strAbort","getAllResponseHeaders","setRequestHeader","lname","overrideMimeType","code","finalText","method","crossDomain","hasContent","beforeSend","send","getJSON","getScript","throws","wrapAll","wrapInner","unwrap","visible","r20","rCRLF","rsubmitterTypes","rsubmittable","encodeURIComponent","serialize","serializeArray","xhr","xhrId","xhrCallbacks","xhrSupported","cors","username","xhrFields","isAbort","responseText","script","text script","head","scriptCharset","charset","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","keepScripts","parsed","_load","params","animated","offset","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","calculatePosition","curElem","using","win","box","getBoundingClientRect","pageYOffset","pageXOffset","offsetParent","parentOffset","scrollTo","Height","Width","","defaultExtra","funcName","size","andSelf","define","amd","_jQuery","_$","noConflict","mfp","_prevStatus","_body","_document","_prevContentType","_wrapClasses","_currPopupType","CLOSE_EVENT","BEFORE_CLOSE_EVENT","AFTER_CLOSE_EVENT","BEFORE_APPEND_EVENT","MARKUP_PARSE_EVENT","OPEN_EVENT","CHANGE_EVENT","NS","EVENT_NS","READY_CLASS","REMOVING_CLASS","PREVENT_CLOSE_CLASS","MagnificPopup","_isJQ","_window","_mfpOn","f","ev","_getEl","_mfpTrigger","st","callbacks","_getCloseBtn","currTemplate","closeBtn","closeMarkup","tClose","_checkInstance","magnificPopup","instance","supportsTransitions","appVersion","isIE7","isIE8","isLowIE","isAndroid","isIOS","supportsTransition","probablyMobile","userAgent","popupsCache","isObj","items","isOpen","updateItemHTML","mainEl","defaults","fixedContentPos","modal","closeOnContentClick","closeOnBgClick","showCloseBtn","enableEscapeKey","bgOverlay","_checkIfClose","contentContainer","preloader","tLoading","modules","closeBtnInside","template","close_replaceWith","alignTop","fixedBgPos","updateSize","windowHeight","wH","windowStyles","_hasScrollBar","_getScrollbarSize","classesToadd","mainClass","_addClassToMFP","_lastFocusedEl","_setFocus","_onFocusIn","removalDelay","_close","classesToRemove","_removeClassFromMFP","currItem","prevHeight","winHeight","zoomLevel","clientWidth","innerWidth","innerHeight","parseEl","markup","newContent","appendContent","preloaded","tagName","addGroup","eHandler","mfpEl","_openClick","eName","midClick","ctrlKey","disableOn","updateStatus","closeOnContent","closeOnBg","cName","_parseMarkup","scrollbarSize","scrollDiv","proto","registerModule","jqEl","itemOpts","_hiddenClass","_inlinePlaceholder","_lastInlineElement","INLINE_NS","_putInlineElementsBack","hiddenClass","tNotFound","initInline","getInline","inlineSt","inline","inlineElement","_ajaxCur","AJAX_NS","_removeAjaxCursor","_destroyAjaxRequest","req","cursor","tError","initAjax","getAjax","finished","loadError","_imgInterval","_getTitle","titleSrc","verticalFit","initImage","imgSt","resizeImage","img","decr","_onImageHasSize","hasSize","isCheckingImgSize","imgHidden","findImageSize","counter","mfpSetInterval","naturalWidth","getImage","guard","onLoadComplete","loaded","onLoadError","img_replaceWith","loading","hasMozTransform","getHasMozTransform","MozTransform","initZoom","zoomSt","openTimeout","animatedImg","getElToAnimate","newImg","transition","cssObj","-webkit-backface-visibility","showMainContent","_allowZoom","_getItemToZoom","_getOffset","isLarge","paddingTop","paddingBottom","IFRAME_NS","_emptyPage","_fixIframeBugs","isShowing","srcAction","patterns","youtube","vimeo","gmaps","initIframe","prevType","newType","getIframe","embedSrc","iframeSt","lastIndexOf","dataObj","_getLoopedId","numSlides","_replaceCurrTotal","curr","total","arrowMarkup","preload","navigateByImgClick","arrows","tPrev","tNext","tCounter","initGallery","gSt","gallery","supportsFastClick","mfpFastClick","direction","arrowLeft","arrowRight","_preloadTimeout","preloadNearbyImages","destroyMfpFastClick","goTo","newIndex","preloadBefore","min","preloadAfter","_preloadItem","RETINA_NS","replaceSrc","ratio","initRetina","devicePixelRatio","retina","isNaN","max-width","ghostClickDelay","supportsTouch","unbindTouchMove","startX","startY","pointerMoved","point","numPointers","touches","abs","Zepto","transitionEnd","transEndEventNames","WebkitTransition","MozTransition","OTransition","emulateTransitionEnd","called","$el","bsTransitionEnd","Plugin","$this","Alert","dismiss","VERSION","removeElement","$parent","Constructor","Button","setState","$element","DEFAULTS","isLoading","loadingText","d","resetText","changed","$input","$btn","Carousel","action","slide","pause","cycle","keydown","$indicators","paused","sliding","$active","$items","getItemIndex","activeIndex","$next","isCycling","fallback","slideEvent","$nextIndicator","slidEvent","carousel","$target","slideIndex","$carousel","Collapse","transitioning","dimension","hasWidth","startEvent","actives","scrollSize","collapse","clearMenus","backdrop","getParent","Dropdown","isActive","desc","dropdown","_relatedTarget","Modal","$backdrop","isShown","scrollbarWidth","remote","keyboard","checkScrollbar","setScrollbar","escape","enforceFocus","resetScrollbar","hideModal","removeBackdrop","doAnimate","callbackRemove","measureScrollbar","bodyPad","showEvent","Tooltip","hoverState","placement","viewport","getOptions","$viewport","triggers","eventIn","eventOut","enter","leave","_options","fixTitle","getDefaults","getDelegateOptions","inDom","$tip","tip","tipId","getUID","setContent","autoToken","autoPlace","getPosition","actualWidth","actualHeight","orgPlacement","parentDim","scroll","right","calculatedOffset","getCalculatedOffset","applyPlacement","marginTop","marginLeft","round","delta","getViewportAdjustedDelta","arrowDelta","arrowPosition","arrowOffsetPosition","replaceArrow","arrow","getTitle","$e","isBody","outerWidth","outerHeight","viewportPadding","viewportDimensions","topEdgeOffset","bottomEdgeOffset","leftEdgeOffset","rightEdgeOffset","o","$arrow","validate","enable","toggleEnabled","destroy","tooltip","Popover","getContent","popover","ScrollSpy","process","$scrollElement","offsets","activeTarget","refresh","getScrollHeight","offsetMethod","offsetBase","$href","maxScroll","activate","scrollspy","$spy","Tab","$ul","previous","tab","Affix","checkPosition","checkPositionWithEventLoop","affixed","unpin","pinnedOffset","RESET","getPinnedOffset","offsetBottom","bottom","affix","affixType","setCssRules","styleSheets","addQueryDataValue","number","Number","sizzle","queryData","updateQueryData","doUpdate","k","processSelector","selectorText","regex","prevIndex","tail","lastIndex","processStyleSheet","force","ownerNode","owningElement","core_trim","clean","addTo","removeFrom","updated","ei","selectQuery","getEmPixels","elementQuery","arg1","arg2","rules","important","extraBody","testElement","debug","console","warn","validator","onsubmit","submitHandler","submitButton","cancelSubmit","currentForm","pendingRequest","formSubmitted","focusInvalid","valid","errorList","command","staticRules","existingRules","filtered","normalizeRule","messages","normalizeRules","classRules","attributeRules","dataRules","required","blank","filled","unchecked","errorClass","validClass","errorElement","focusCleanup","errorContainer","errorLabelContainer","ignore","ignoreTitle","onfocusin","lastActive","unhighlight","hideThese","errorsFor","onfocusout","checkable","submitted","optional","onkeyup","excludedKeys","elementValue","lastElement","onclick","highlight","findByName","setDefaults","date","dateISO","digits","creditcard","equalTo","maxlength","minlength","rangelength","range","autoCreateRanges","eventType","labelContainer","errorContext","containers","valueCache","pending","invalid","invalidHandler","checkForm","errorMap","showErrors","prepareForm","currentElements","cleanElement","checkElement","validationTargetFor","prepareElement","numberOfInvalids","toHide","errors","successList","defaultShowErrors","resetForm","hideErrors","objectLength","addWrapper","findLastActive","rulesCache","toShow","validity","badInput","rulesCount","dependencyMismatch","parameters","methods","formatAndAdd","log","customDataMessage","customMessage","findDefined","defaultMessage","theregex","toToggle","wrapper","showLabel","validElements","invalidElements","place","group","errorID","elementID","idOrName","describedBy","errorPlacement","testgroup","describer","getLength","depend","dependTypes","boolean","function","startRequest","stopRequest","previousValue","classRuleSettings","addClassRules","normalizeAttributeRule","depends","keepRule","parameter","transformed","addMethod","cDigit","nCheck","nDigit","bEven","originalMessage","mode","port","pendingRequests","require","S2","select2","requirejs","undef","hasProp","normalize","baseName","nameParts","nameSegment","mapValue","foundMap","foundI","foundStarMap","starI","part","baseParts","config","starMap","nodeIdCompat","jsSuffixRegExp","makeRequire","relName","forceSync","aps","makeNormalize","makeLoad","depName","defined","callDep","waiting","defining","main","splitPrefix","makeConfig","makeMap","plugin","pr","uri","deps","cjsModule","usingExports","callbackType","alt","cfg","_defined","getMethods","theClass","methodName","Utils","Extend","ChildClass","SuperClass","BaseConstructor","__hasProp","__super__","Decorate","DecoratorClass","DecoratedClass","argCount","calledConstructor","ctr","decoratedMethods","superMethods","displayName","superMethod","calledMethod","originalMethod","decoratedMethod","Observable","listeners","invoke","generateChars","chars","randomChar","floor","_convertData","originalKey","dataLevel","hasScroll","scrollWidth","escapeMarkup","replaceMap","\\","&","<","\"","'","/","appendMany","$nodes","$jqNodes","Results","dataAdapter","render","$results","displayMessage","hideLoading","$message","hideMessages","$options","$option","$dropdown","$resultsContainer","sorter","setClasses","selectedIds","$selected","showLoading","loadingMore","$loading","role","aria-selected","_resultId","label","$children","child","$child","$childrenContainer","$container","ensureHighlightVisible","$highlighted","getHighlightedResults","currentIndex","nextIndex","currentOffset","nextTop","nextOffset","nextBottom","mousewheel","deltaY","isAtTop","isAtBottom","evt","offsetDelta","KEYS","BACKSPACE","TAB","ENTER","SHIFT","CTRL","ALT","ESC","SPACE","PAGE_UP","PAGE_DOWN","END","HOME","LEFT","UP","RIGHT","DOWN","DELETE","BaseSelection","$selection","_tabindex","resultsId","_handleBlur","update","_attachCloseHandler","_detachCloseHandler","$select","$all","$selectionContainer","SingleSelection","selectionContainer","$rendered","formatted","MultipleSelection","$remove","$selections","Placeholder","decorated","placeholder","normalizePlaceholder","createPlaceholder","$placeholder","singlePlaceholder","multipleSelections","AllowClear","_handleClear","_handleKeyboardClear","$clear","unselectData","prevented","Search","$search","$searchContainer","_transferTabIndex","_keyUpPrevented","$previousChoice","searchRemoveChoice","msie","disableInputEvents","handleSearch","searchHadFocus","resizeSearch","term","minimumWidth","EventRelay","relayEvents","preventableEvents","Translation","dict","translation","_cache","loadPath","translations","diacritics","Ⓐ","A","À","Á","Â","Ầ","Ấ","Ẫ","Ẩ","Ã","Ā","Ă","Ằ","Ắ","Ẵ","Ẳ","Ȧ","Ǡ","Ä","Ǟ","Ả","Å","Ǻ","Ǎ","Ȁ","Ȃ","Ạ","Ậ","Ặ","Ḁ","Ą","Ⱥ","Ɐ","Ꜳ","Æ","Ǽ","Ǣ","Ꜵ","Ꜷ","Ꜹ","Ꜻ","Ꜽ","Ⓑ","B","Ḃ","Ḅ","Ḇ","Ƀ","Ƃ","Ɓ","Ⓒ","C","Ć","Ĉ","Ċ","Č","Ç","Ḉ","Ƈ","Ȼ","Ꜿ","Ⓓ","D","Ḋ","Ď","Ḍ","Ḑ","Ḓ","Ḏ","Đ","Ƌ","Ɗ","Ɖ","Ꝺ","DZ","DŽ","Dz","Dž","Ⓔ","E","È","É","Ê","Ề","Ế","Ễ","Ể","Ẽ","Ē","Ḕ","Ḗ","Ĕ","Ė","Ë","Ẻ","Ě","Ȅ","Ȇ","Ẹ","Ệ","Ȩ","Ḝ","Ę","Ḙ","Ḛ","Ɛ","Ǝ","Ⓕ","F","Ḟ","Ƒ","Ꝼ","Ⓖ","G","Ǵ","Ĝ","Ḡ","Ğ","Ġ","Ǧ","Ģ","Ǥ","Ɠ","Ꞡ","Ᵹ","Ꝿ","Ⓗ","H","Ĥ","Ḣ","Ḧ","Ȟ","Ḥ","Ḩ","Ḫ","Ħ","Ⱨ","Ⱶ","Ɥ","Ⓘ","I","Ì","Í","Î","Ĩ","Ī","Ĭ","İ","Ï","Ḯ","Ỉ","Ǐ","Ȉ","Ȋ","Ị","Į","Ḭ","Ɨ","Ⓙ","J","Ĵ","Ɉ","Ⓚ","K","Ḱ","Ǩ","Ḳ","Ķ","Ḵ","Ƙ","Ⱪ","Ꝁ","Ꝃ","Ꝅ","Ꞣ","Ⓛ","L","Ŀ","Ĺ","Ľ","Ḷ","Ḹ","Ļ","Ḽ","Ḻ","Ł","Ƚ","Ɫ","Ⱡ","Ꝉ","Ꝇ","Ꞁ","LJ","Lj","Ⓜ","M","Ḿ","Ṁ","Ṃ","Ɱ","Ɯ","Ⓝ","N","Ǹ","Ń","Ñ","Ṅ","Ň","Ṇ","Ņ","Ṋ","Ṉ","Ƞ","Ɲ","Ꞑ","Ꞥ","NJ","Nj","Ⓞ","O","Ò","Ó","Ô","Ồ","Ố","Ỗ","Ổ","Õ","Ṍ","Ȭ","Ṏ","Ō","Ṑ","Ṓ","Ŏ","Ȯ","Ȱ","Ö","Ȫ","Ỏ","Ő","Ǒ","Ȍ","Ȏ","Ơ","Ờ","Ớ","Ỡ","Ở","Ợ","Ọ","Ộ","Ǫ","Ǭ","Ø","Ǿ","Ɔ","Ɵ","Ꝋ","Ꝍ","Ƣ","Ꝏ","Ȣ","Ⓟ","P","Ṕ","Ṗ","Ƥ","Ᵽ","Ꝑ","Ꝓ","Ꝕ","Ⓠ","Q","Ꝗ","Ꝙ","Ɋ","Ⓡ","R","Ŕ","Ṙ","Ř","Ȑ","Ȓ","Ṛ","Ṝ","Ŗ","Ṟ","Ɍ","Ɽ","Ꝛ","Ꞧ","Ꞃ","Ⓢ","S","ẞ","Ś","Ṥ","Ŝ","Ṡ","Š","Ṧ","Ṣ","Ṩ","Ș","Ş","Ȿ","Ꞩ","Ꞅ","Ⓣ","T","Ṫ","Ť","Ṭ","Ț","Ţ","Ṱ","Ṯ","Ŧ","Ƭ","Ʈ","Ⱦ","Ꞇ","Ꜩ","Ⓤ","U","Ù","Ú","Û","Ũ","Ṹ","Ū","Ṻ","Ŭ","Ü","Ǜ","Ǘ","Ǖ","Ǚ","Ủ","Ů","Ű","Ǔ","Ȕ","Ȗ","Ư","Ừ","Ứ","Ữ","Ử","Ự","Ụ","Ṳ","Ų","Ṷ","Ṵ","Ʉ","Ⓥ","V","Ṽ","Ṿ","Ʋ","Ꝟ","Ʌ","Ꝡ","Ⓦ","W","Ẁ","Ẃ","Ŵ","Ẇ","Ẅ","Ẉ","Ⱳ","Ⓧ","X","Ẋ","Ẍ","Ⓨ","Y","Ỳ","Ý","Ŷ","Ỹ","Ȳ","Ẏ","Ÿ","Ỷ","Ỵ","Ƴ","Ɏ","Ỿ","Ⓩ","Z","Ź","Ẑ","Ż","Ž","Ẓ","Ẕ","Ƶ","Ȥ","Ɀ","Ⱬ","Ꝣ","ⓐ","a","ẚ","à","á","â","ầ","ấ","ẫ","ẩ","ã","ā","ă","ằ","ắ","ẵ","ẳ","ȧ","ǡ","ä","ǟ","ả","å","ǻ","ǎ","ȁ","ȃ","ạ","ậ","ặ","ḁ","ą","ⱥ","ɐ","ꜳ","æ","ǽ","ǣ","ꜵ","ꜷ","ꜹ","ꜻ","ꜽ","ⓑ","b","ḃ","ḅ","ḇ","ƀ","ƃ","ɓ","ⓒ","c","ć","ĉ","ċ","č","ç","ḉ","ƈ","ȼ","ꜿ","ↄ","ⓓ","d","ḋ","ď","ḍ","ḑ","ḓ","ḏ","đ","ƌ","ɖ","ɗ","ꝺ","dz","dž","ⓔ","e","è","é","ê","ề","ế","ễ","ể","ẽ","ē","ḕ","ḗ","ĕ","ė","ë","ẻ","ě","ȅ","ȇ","ẹ","ệ","ȩ","ḝ","ę","ḙ","ḛ","ɇ","ɛ","ǝ","ⓕ","f","ḟ","ƒ","ꝼ","ⓖ","g","ǵ","ĝ","ḡ","ğ","ġ","ǧ","ģ","ǥ","ɠ","ꞡ","ᵹ","ꝿ","ⓗ","h","ĥ","ḣ","ḧ","ȟ","ḥ","ḩ","ḫ","ẖ","ħ","ⱨ","ⱶ","ɥ","ƕ","ⓘ","i","ì","í","î","ĩ","ī","ĭ","ï","ḯ","ỉ","ǐ","ȉ","ȋ","ị","į","ḭ","ɨ","ı","ⓙ","j","ĵ","ǰ","ɉ","ⓚ","k","ḱ","ǩ","ḳ","ķ","ḵ","ƙ","ⱪ","ꝁ","ꝃ","ꝅ","ꞣ","ⓛ","l","ŀ","ĺ","ľ","ḷ","ḹ","ļ","ḽ","ḻ","ſ","ł","ƚ","ɫ","ⱡ","ꝉ","ꞁ","ꝇ","lj","ⓜ","m","ḿ","ṁ","ṃ","ɱ","ɯ","ⓝ","n","ǹ","ń","ñ","ṅ","ň","ṇ","ņ","ṋ","ṉ","ƞ","ɲ","ʼn","ꞑ","ꞥ","nj","ⓞ","o","ò","ó","ô","ồ","ố","ỗ","ổ","õ","ṍ","ȭ","ṏ","ō","ṑ","ṓ","ŏ","ȯ","ȱ","ö","ȫ","ỏ","ő","ǒ","ȍ","ȏ","ơ","ờ","ớ","ỡ","ở","ợ","ọ","ộ","ǫ","ǭ","ø","ǿ","ɔ","ꝋ","ꝍ","ɵ","ƣ","ȣ","ꝏ","ⓟ","p","ṕ","ṗ","ƥ","ᵽ","ꝑ","ꝓ","ꝕ","ⓠ","q","ɋ","ꝗ","ꝙ","ⓡ","r","ŕ","ṙ","ř","ȑ","ȓ","ṛ","ṝ","ŗ","ṟ","ɍ","ɽ","ꝛ","ꞧ","ꞃ","ⓢ","s","ß","ś","ṥ","ŝ","ṡ","š","ṧ","ṣ","ṩ","ș","ş","ȿ","ꞩ","ꞅ","ẛ","ⓣ","t","ṫ","ẗ","ť","ṭ","ț","ţ","ṱ","ṯ","ŧ","ƭ","ʈ","ⱦ","ꞇ","ꜩ","ⓤ","u","ù","ú","û","ũ","ṹ","ū","ṻ","ŭ","ü","ǜ","ǘ","ǖ","ǚ","ủ","ů","ű","ǔ","ȕ","ȗ","ư","ừ","ứ","ữ","ử","ự","ụ","ṳ","ų","ṷ","ṵ","ʉ","ⓥ","v","ṽ","ṿ","ʋ","ꝟ","ʌ","ꝡ","ⓦ","w","ẁ","ẃ","ŵ","ẇ","ẅ","ẘ","ẉ","ⱳ","ⓧ","x","ẋ","ẍ","ⓨ","y","ỳ","ý","ŷ","ỹ","ȳ","ẏ","ÿ","ỷ","ẙ","ỵ","ƴ","ɏ","ỿ","ⓩ","z","ź","ẑ","ż","ž","ẓ","ẕ","ƶ","ȥ","ɀ","ⱬ","ꝣ","Ά","Έ","Ή","Ί","Ϊ","Ό","Ύ","Ϋ","Ώ","ά","έ","ή","ί","ϊ","ΐ","ό","ύ","ϋ","ΰ","ω","ς","BaseAdapter","generateResultId","SelectAdapter","currentData","unselect","addOptions","normalizedData","_normalizeItem","ArrayAdapter","convertToOptions","elm","onlyItem","$existing","existingIds","$existingOption","existingData","newData","$newOption","AjaxAdapter","ajaxOptions","_applyDefaults","processResults","q","failure","$request","request","_request","_queryTimeout","Tags","tags","createTag","checkChildren","checkText","insertTag","_removeOldTags","page","_lastTag","Tokenizer","tokenizer","tokenData","separators","termChar","partParams","MinimumInputLength","minimumInputLength","minimum","MaximumInputLength","maximumInputLength","maximum","MaximumSelectionLength","maximumSelectionLength","showSearch","HidePlaceholder","removePlaceholder","modifiedData","InfiniteScroll","lastParams","$loadingMore","createLoadingMore","showLoadingMore","isLoadMoreVisible","loadingMoreOffset","loadMore","pagination","more","AttachBody","$dropdownParent","setupResultsEvents","_showDropdown","_attachPositioningHandler","_positionDropdown","_resizeDropdown","_hideDropdown","_detachPositioningHandler","$dropdownContainer","scrollEvent","resizeEvent","orientationEvent","$watchers","x","y","$window","isCurrentlyAbove","isCurrentlyBelow","newDirection","enoughRoomAbove","enoughRoomBelow","countResults","MinimumResultsForSearch","minimumResultsForSearch","Infinity","SelectOnClose","_handleSelectOnClose","$highlightedResults","CloseOnSelect","_selectTriggered","errorLoading","inputTooLong","overChars","inputTooShort","remainingChars","maximumSelected","noResults","searching","ResultsList","SelectionSearch","DIACRITICS","SelectData","ArrayData","AjaxData","DropdownSearch","EnglishTranslation","Defaults","tokenSeparators","Query","amdBase","initSelection","InitSelection","resultsAdapter","selectOnClose","dropdownAdapter","multiple","SearchableDropdown","closeOnSelect","dropdownCssClass","dropdownCss","adaptDropdownCssClass","DropdownCSS","selectionAdapter","allowClear","containerCssClass","containerCss","adaptContainerCssClass","ContainerCSS","languageParts","baseLanguage","languageNames","amdLanguageBase","ex","baseTranslation","customTranslation","stripDiacritics","dropdownAutoWidth","templateResult","templateSelection","theme","camelKey","convertedData","Options","InputCompat","excludedData","dataset","Select2","_generateId","DataAdapter","_placeContainer","SelectionAdapter","DropdownAdapter","ResultsAdapter","_bindAdapters","_registerDomEvents","_registerDataEvents","_registerSelectionEvents","_registerDropdownEvents","_registerResultsEvents","_registerEvents","initialData","_syncAttributes","_resolveWidth","WIDTH","styleWidth","elementWidth","_sync","observer","MutationObserver","WebKitMutationObserver","MozMutationObserver","_observer","mutations","observe","subtree","nonRelayEvents","toggleDropdown","altKey","actualTrigger","preTriggerMap","preTriggerName","preTriggerArgs","newVal","disconnect","thisMethods","instanceOptions","capitechAbsenceForm","ctAbsenceFormModel","absenceFormModel","ko","applyBindings","$ctAbsenceFormElm","resetAbsenceForm","getAbsenceCodes","addAbsenceCodes","getAbsenceCodes_POST","createAbsenceRequest","toJS","ctAbsenceRequestsModel","absenceRequests","unshiftFromModel","absenceCode","fromDate","fromTime","toDate","toTime","absenceRequestStatus","isShortTermAbsence","createAbsenceRequest_POST","selectedDate","inputtypes","inputmask","alias","formatAlias","description","observable","hasAbsenceRegistrationPermissions","hasAbsenceRegistration","aAbsenceCode","observableArray","removeAll","submitAbsence","formElement","capitechAbsenceRequests","{root}","absenceRequestTemplate","absenceRequest","deleteAbsenceRequest","apiDeleteAbsenceRequest","{root}.absenceRequests[i]","translatedStatus","currentStatus","getAbsenceRequests","currentDate","currentYear","getFullYear","firstDateOfYear","viewmodel","fromModel","getAbsenceRequests_POST","confirmButtonColor","deleteAbsenceRequest_POST","ctCalendarViewModel","_currentDate","_selectedDate","_sortByTimeInASC","_sortByItemSortOrder","_sortAccumulatedTime","capitechCalendar","updateCalendarDayHeaders","calendarViewModel","updateCalendarUI","tmpName","tmpShortName","$objHeaderElm","removeAllCalendarDays","calendarDaysWithItems","createCalendarData","addCalendarDataToView","getCalendarItems","getAccumulatedTimeByMonth","timeStampsData","firstDateInCalendarView","lastDateInCalendarView","endOf","diffDays","tmpDate","tmpDateSearchString","aTmpTimeStamps","monthNumber","shortMonthMarkup","selectedMonthNumber","bCurrentMonth","dateIn","timeStamps","changeMonth","bNext","newDate","monthOffset","firstDutyDate","aCalendarItemTypes","tmpCalendarItems","calendarItemsCallback","userSettings","selectCurrentDateOnStartup","getTimeTransactions","getHolidays","hasSimployerAbsence","getAbsences","hasCapitechPlan","hasCapitechFlowPlan","getPlannedDutiesForEmployee","getRequestedDuties","getDutyWish","getDutyWishPeriods","getAvaliableDuties","updateCalendarItemsForSelectedDay","momentSelectedDate","getAccumulatedTimeByDay","daySelected","calendarDayItemModel","refreshEmployeeRegistrationInformation","timeTransactions","transactionDescriptions","getTimeTransactionDetails_POST","absences","dateFrom","timeIn","timeFrom","timeOut","timeTo","absenceCodeDescription","getAbsenceTransactions_POST","plannedDuties","dutyStartDate","dutyStartTime","dutyEndTime","dutyTypeDescription","departmentName","departmentDescription","dutyDefinitionId","fridim1Id","freeDimension1Id","fridim2Id","freeDimension2Id","getPlannedDutiesForEmployee_POST","avaliableDuties","startDate","originalStartTime","dateOut","endDate","originalEndTime","dutyIdString","dutyStrId","getAvaliableDuties_POST","requestedDuties","comment","employeeText","getRequestedDuties_POST","dutyWish","dutyWishStartDate","dutyWishEndDate","commentFromEmployee","getDutyWish_POST","dutyWishPeriodsTmp","dutyWishPeriods","dateDiff","dutyWishPeriodsItemTmp","tmpIsoWeekday","isEmployeeAvaliableOnShortNotice","requestedDepartmentIds","requestedDutyTypeIds","requestedDaysOfWeek","getDutyWishPeriods_POST","holidays","getHolidays_POST","loadTimeStampFormData","templateTimeTransaction","registrationSetup","registrationRules","aDimensions","aDimensionsCopy","dimensionCallback","selectedTimeTransactionClone","selectedTimeTransaction","showTimeStampForm","funcTemp","eval","displayDimensionFormItems","dimensionNames","registerDepartment","bRequiredInStamp","cleanedKey","keyHeadlessCamelCase","keyLowerCase","$dimensionElm","bRequired","registrationRequiredFields","registrationVisibilityRules","registrationDefaults","$labelElm","labelText","$thisElm","browserWidth","refreshSelect2Elements","classList","getDuty","getTask","getSubProject","getPhase","$form","getDepartment","bInit","getDepartmentDescriptions_POST","addDepartments","getDutyDefinition","getDutyDefinitionDescriptions_POST","addDutyDefinitions","getCompetenceRole","getCompetenceroleDescriptions_POST","addCompetenceRoles","currentDepartmentId","departmentId","getTaskDescriptions_POST","addTasks","getDutyDescriptions_POST","addDutys","getShift","getShiftDescriptions_POST","addShifts","getOrder","getOrderDescriptions_POST","addOrders","getProject","getProjectDescriptions_POST","addProjects","currentProjectId","projectId","getSubProjectDescriptions_POST","addSubProjects","subProjectId","getPhaseDescriptions_POST","addPhases","getFridim1","getFridim1Descriptions_POST","addFridim1s","getFridim2","getFridim2Descriptions_POST","addFridim2s","upsertTimeTransactionToDB","timeDataForm","timeDataSelected","newDateOut","competenceRoleId","taskId","orderId","phaseId","dutyId","shiftId","bNew","createCustomTimeTransaction_POST","updateTimeTransaction_POST","deleteTimeTransaction","deleteTimeTransaction_POST","removeAllAccumulatedTimeByMonth","addAccumulatedTimeByMonth","aAccumulatedTimeByMonth","getAccumulatedTime_POST","removeAllAccumulatedTimeByDay","addAccumulatedTimeByDay","aAccumulatedTimeByDay","forDate","getEmployeeRegistrationInformation_POST","showDutyWishForm","resetDutyWishForm","$dutyWishDateFrom","$dutyWishDateTo","dutyWishDateFrom","dutyWishDateTo","showRequestDutyForm","openManualAddition","getMomentDateTimeNow","$calendarElm","$calendarMonthDetailsElm","$calendarDayDetailsElm","calendarWeekModel","calendarDayModel","dayOfMonth","monthName","shortMonthName","bCanEditBackInTime","dayDiff","secondsDiff","canRegisterAtAll","numberOfDaysBackInTimeRegisteringIsAllowed","canRegisterBackInTime","bCanEditForwardsInTime","canRegisterForwardInTime","numberOfDaysForwardInTimeRegisteringIsAllowed","bCanRegisterInOut","deactivateTimeInAndOutButtons","asDays","bTodayOrFuture","bReturn","bToday","bYesterday","bValidateRequiredFieldsHasValue","bDisplayStampOut","clickAddTimeTransactionAction","day","newTimeTransaction","tempTimeIn","tempObj","clickAddDutyWishAction","displayDayDutyWishFormClickAction","createDefaultTimeTransactionIn","createDefaultTimeTransactionIn_POST","createTimeTransactionOut","createTimeTransactionOut_POST","pageNavigateToAbsence","notes","originIn","originOut","originalTimeIn","originalTimeOut","periodPlanId","dutyPlanId","dutyDescriptions","employeeGroupId","employeeId","systemDate","systemTime","itemSortOrder","dynamicTemplateSwitcher","bSwitched","editTimeStampClickAction","deleteTimeTransactionClickAction","viewTimeStampClickAction","timeTransaction","selectedTimeTransactionAccumulatedTime","accumulatedTimeModel","bCanDoManualAddition","timeCategoryForManualAddition","timeCategoryForManualAdditionModel","timeCategoryDescription","amount","toFixed","getAccumulatedTimeForSingleTransaction_POST","viewDutyClickAction","duty","viewDutyWishClickAction","tmpDepartmentName","tmpDutyName","departmentNames","dutyTypesNames","tmpDepartmentObj","tmpDutyObj","viewAbsenceClickAction","viewRequestAvaliableDutyForm","avaliableDuty","selectedAvaliableDuty","deleteRequestedDutyClickAction","requestedDuty","cancelRequestForAvaliableDuty_POST","deleteDutyWishClickAction","tmpDutyWishStartDate","childIndex","childObj","deleteDutyWish_POST","deleteDutyWishPeriod_POST","quickRegisterTime","returnUndefinedIfFalsy","thisString","timeStampProps","onErrorCallback","currentEmployeeRegistrationInformation","canDoManualAddition","dimensionSelectDataModel","isManualAdjustment","timeCategoryId","isDisabled","fixedAmount","buttonText","accumulatedTime","onKeyPress","editExistingAccumulatedTime","$amountInput","latest","_latestValue","updateManualAddition_POST","originalTimeCategoryId","newTimeCategoryId","isVisible","objFound","addTimeCategoryToAccumulatedTime","timeCategory","daysData","bShowTime","bShowPlannedDuty","bShowAbsence","bShowAvaliableDuty","registrationCloseDate","registrationCloseDateText","registrationForwardsCloseDate","registrationForwardsCloseDateText","selectedMonth","selectedYear","aDayIsSelected","loadedDate","aWeek","accumulatedTimeTotalByMonth","utils","arrayForEach","accumulatedTimeTotalByDay","hasVisibleTimeCategoryForManualAddition","getCalendarDayItemTemplate","getDetailedCalendarDayItemTemplate","getWeekItemTemplate","weekItem","dayIndex","dayObjValue","dayObjKeyName","dayObjKeyValue","aTempTimeStamps","addWeeks","row","aRows","colCount","accumulatedTimeData","aDepartment","dimensionData","newItems","arrayMap","aDutyDefinition","aCompetenceRole","aDuty","aTask","aShift","aOrder","aProject","aSubProject","aPhase","aFridim1","aFridim2","saveTimeTransaction","getDimensionFirstOptionName","nItems","createDayDutyWish","$currentTarget","newDutyWishObj","isBetween","isSame","requestedDayIds","createDutyWishPeriod_POST","createDutyWish_POST","createAvaliableDutyRequest","requestAvaliableDuty_POST","dayClickAction","deleteDay","addDay","retVal","unapplyBindings","$node","removeNode","cleanNode","$detailsElm","scrollTopPos","markCheckbox","capitechChangePassword","$ctChangePasswordElm","validateInput","secondsSinceChanged","oldPassword","newPassword","newPasswordRepeated","changePassword","redirectUrl","changePassword_POST","ctDialogComponent","capitechDialog","permissionsAndRegistrationSetup","dialogViewModel","getThreads","updateUnReadCount","unReadMessageCount","threads","thread","incomingMessagesCount","acknowledgeCount","ctUnreadMessagesModel","unreadMessageCount","toggleThreadActive","$reply","calculateAndFixSizes","$mainWrapper","$childWrapper","$childMessages","childrenHeight","bOpen","navHeight","subjectHeight","thisChild","setDefaultEmployeeDepartment","employeeInformation","ctEmployeeInformationModel","newThreadMessageDepartmentId","getEmployeePersonalInformation_POST","resize","$activeThread","selectedThread","threadViewModel","newThreadMessageOpenForm","beforeOpen","departmentViewModel","newThreadMessage","messageViewModel","newThreadMessageSubmit","receiverNames","newThread","threadId","topic","subject","isIncoming","isOutgoing","createdOn","lastMessageCreatedOn","startedById","startedBy","dialogType","newMessage","messageId","senderFullName","startDialog_POST","dialogMessageTemplate","take","skip","getDialogs_POST","sortThreads","_sortByLastMessageCreatedOnDESC","outgoingMessagesCount","unReadMessagesCount","hasUnAcknowledgedMessages","newMessageContent","lastMessageCreatedOnUnixTimestamp","pureComputed","unix","startedByOrStartedById","markupClasses","retClasses","iconMarkupClasses","clickActionOpenThread","getMessages","$selectedThreadObj","acknowledgedMessages","isUnAcknowledged","_sortByCreatedOnASC","getDialogMessages_POST","clickActionAcknowledgeAllMessages","confirmMessage_POST","clickActionReply","acknowledgeRequiredBeforeReply","senderUsername","sendInDialog_POST","readOn","createdOnUnixTimestamp","senderFullNameOrSenderUsername","createdOnAsDescription","from","clickActionAcknowledgeMessage","notifySubscribers","ctDutyWishPeriodModel","capitechDutyWishPeriod","updateFromModel","deleteDutyWishPeriod","dutyWishPeriod","selectedDutyWishPeriod","deleteDutyWishPeriodClick","editDutyWishPeriodClick","addDutyWishPeriodClick","{root}.dutyWishPeriods[i]","shortNoticeText","aNewDepartmentIds","aNewDutyTypeIds","aNewDays","dateTo","capitechEmployeeInformation","getEmployeeInformation","capitechDepartmentDutyFilter","createDepartmentDutyFilterModel","wishFilterFormValues","wishFilterSelectedValues","bAlwaysShowDuties","ctWishFilterModel","newAlwaysShowDuties","myCapitechDutyWishFilter","saveDutyWishFilter_POST","ctFlextimeBalanceModel","capitechFlexiTimeBalance","flextimeBalance","hasFlexitime","getFlexiTimeBalance","$ctFlextimeBalanceElm","getFlexiTimeBalance_POST","ctFlexitimeModel","capitechFlexitime","getFlexitime","flexitime","getFlexiTimeTransactions_POST","ctHelpModel","capitechHelp","getHelpMarkup","helpMarkup","getHelpHtml_POST","capitechIncomingMessages","incomingMessages","incomingMessageTemplate","incomingMessage","markMessageAsAcknowledged","markMessageAsAcknowledged_POST","getIncomingMessages","ctIncomingMessagesModel","getIncomingMessages_POST","ctLoginComponent","capitechLogin","initKnockoutObject","getApplicationSettings","rememberLogin","signInUrl","simployerAuthority","externalAuthUrlWithClientId","bUseAzureLogin","bUseSimployerSaamLogin","bClientSelectionAfterLogin","bUseInternalAuth","bCanChangePassword","bCanDisplayForgotPassword","bIsShowingForgotPassword","simployerGlobalMenuCssUrl","simployerGlobalMenuJsUrl","bMultiLogin","loginFormChanged","loginUrl","toggleShowForgotPassword","submitRequestNewPasswordForUser","isEmailValid","isCliendIdValid","forgotPassword_POST","{root}.clients[i]","client","initDummyData","clients","$capitechLoginElm","decodeURIComponent","getSettings_GET","signOutUrl","SIMPLOYER_SID_COOKIE_NAME","loginAzure","loginSimployerSaam","clientSelectionAftherLogin","loginUserNameAndPassword","showForgotPassword","showChangePassword","tryLoginWithToken","getFlowClients","getAvaliableCapitechClients_POST","rememberMe","urlClientId","urlRefreshToken","simployerAppid","simployerSCI","simployerSID","getExternalLinks","loginUser","rememberLoginFormDetails","authorize_POST","getExternalLinks_POST","getMyCapitechUserSettings","getMyCapitechSettings_POST","newUserSettings","newClientSettings","getAllLocalizations","getAllLocalizations_POST","getEmployeeRegistrationInformation","getTimeCategoryForManualAddition","getDutyWishFilter","getDimensionNames","getTimeCategoryForManualAddition_POST","getPossibleValuesForDutyWishFilter","getDutyWishFilter_POST","getPossibleValuesForDutyWishFilter_POST","getUnReadMessageCount","getDimensionNames_POST","getNumberOfPendingIncomingMessages_POST","ctNavigationModel","capitechNavigation","isCapitechLoginType","clientName","newClientId","openChangeClientModal","authorizedClients","showClientSelector","getAuthorizedCapitechClients_POST","changeClient","authorizedClient","changeClient_POST","{root}.navItems[i]","navItem","openInNewWindow","linkUrl","{root}.authorizedClients[i]","setupNavigation","navItems","permissions","capitechUnreadMessages","ctOutgoingMessagesFormModel","capitechOutgoingMessagesForm","sendOutgoingMessagesForm","$ctOutgoingMessagesFormElm","messageDate","messageID","ctOutgoingMessagesModel","outgoingMessages","pushFromModel","messageTime","messageDetail","_sortByTime","createMessage_POST","capitechOutgoingMessages","getOutgoingMessages","getOutgoingMessages_POST","outgoingMessageTemplate","outgoingMessage","deleteOutgoingMessages","deleteMessage_POST","ctPermissionModel","capitechPermissions","ctReportModel","capitechReport","setInitialDates","getAvaliableReports","selectedReportId","selectedReport","requiresFromAndToDates","showHideDateFields","getAvaliableReports_POST","getSelectedReport","reportId","reportDateFrom","reportDateTo","hasResults","resultHtml","getReport_POST","displayType","$reportDateFrom","$reportDateTo","$reportDateFromElm","$reportDateToElm","$capitechReportElm","tempSelectedReport","arrayFirst","category","capitechSettings","fillFormItems","appSettingsObj","saveSettings","$settingsForm","$objKey","displayUnreadMessages","unreadMessagesViewModel","initUnreadMessageCount","unreadMessageCountAsText","ctUserSettingsComponent","userSettingItems","userSettingItemTemplate","userSettingItem","{root}.userSettingItems[i]","translatedKeyText","languageKey","translatedValueText","capitalizeFirstLetter","isEditing","oldValue","editUserSetting","saveUserSetting","_self","tempSettings","tempMyCapitechSettings","upsertMyCapitechSetting_POST","cancelEditSetting","getUserSettings","defaultSettingItems","forEach","defaultSettingItem","serverSettingItem","_sortUserSettingsASC","capitechVacationBalance","getVacationBalance","vacationBalance","ctVacationBalanceModel","getVacationBalance_POST","ctVacationModel","capitechVacation","{root}.vacation[i]","vacation","vacationDate","getVacation","getVacationTransactions_POST","_parent","namespaceString","currentSection","namespaceParts","namespacePart","applicationRootPath","successFunc","errorFunc","uriParameterData","_getUrl","parameterData","_call","isClientApplicationVersionSupported_POST","clientIdentifier","absenceRequestId","acknowledgeMessage_POST","DialogId","MessageId","AccessToken","Take","Skip","MessageBody","ReceivingDepartmentId","Subject","Body","cultureCode","originalFromDate","getDutyWishPeriod_POST","originalEmployeeId","updateDutyWishPeriod_POST","newFromDate","newToDate","newCommentFromEmployee","year","getSingleLocalization_POST","inDate","inTime","details","includePendingMessages","numberOfDaysBackInTimeToIncludeAcknowledgedMessages","numberOfDaysBackInTimeToInclude","existingDateIn","existingTimeIn","capitechPlanDutyDate","getTimeTransactions_POST","newDateIn","newTimeIn","newTimeOut","newDepartmentId","newTaskId","newOrderId","newProjectId","newSubProjectId","newPhaseId","newDutyId","newCompetenceRoleId","newDutyDefinitionId","newShiftId","newFridim1Id","newFridim2Id","newText","emailAddress","getPostalTownFromNorwegianZipCode_POST","norwegianZipCode","methodRelativePath","uriParameters","uriParameter","$navWrapperContentHeight","$navWrapper","$navWrapperHeight","$navWrapperContent","standalone","nextPageURL","$mobileMenu","ajaxContentAdded","urlHash","nb-NO","en-EN","_windowWidth","_windowHeight","_username","_clients","_myCapitechIdentifier","_myCapitechVersion","_applicationInterval","_lastActivity","bindingHandlers","fastclick","valueAccessor","FastClick","attach","preventBubble","unwrapObservable","registerEventHandler","inputTimeType","useNativeTimeInput","components","register","viewModel","addTimePadding","hours","minutes","hoursAsString","minutesAsString","validateTimeValue","_this","hourAsString","hoursParts","isValid","Inputmask","extendAliases","capitechHourAndMinutes","autoUnmask","mask","clearIncomplete","insertMode","oncomplete","datepicker","weekStart","todayBtn","todayHighlight","autoclose"],"mappings":"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AA,IACAC,IAAA,IACAC,IAAA,KACAC,IAAA,KACAC,IAAA,KACAC,IAAA,KACAC,IAAA,KACAC,IAAA,KACAC,IAAA,KACAC,IAAA,KACAC,IAAA,KACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,KACAC,IAAA,KACAC,IAAA,KACAC,IAAA,KACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,KACAC,IAAA,KACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,KACAC,IAAA,KACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,KACAC,IAAA,KACAC,IAAA,KACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA;AACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,KACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,KACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,KACAC,IAAA,KACAC,IAAA,KACAC,IAAA,KACAC,IAAA,KACAC,IAAA,KACAC,IAAA,KACAC,IAAA,KACAC,IAAA,KACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,KACAC,IAAA,KACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,KACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,KACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,KACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,KACAC,IAAA,KACAC,IAAA,KACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,KACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,KACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IAGA,OAAAv0B,KAGA/M,EAAArmB,OAAA,qBACA,YACA,SAAAqpB,GACA,QAAAu+B,GAAA12C,EAAAlzC,GACA4pF,EAAAj+B,UAAA/wD,YAAAH,KAAA9J,MAkCA,MA/BA06D,GAAAC,OAAAs+B,EAAAv+B,EAAAoB,YAEAm9B,EAAA/uF,UAAAqV,QAAA,SAAAlgB,GACA,KAAA,IAAA+Q,OAAA,2DAGA6oF,EAAA/uF,UAAAhK,MAAA,SAAAuvC,EAAApwC,GACA,KAAA,IAAA+Q,OAAA,yDAGA6oF,EAAA/uF,UAAAvE,KAAA,SAAA8uB,EAAAuqC,KAIAi6B,EAAA/uF,UAAAkgD,QAAA,aAIA6uC,EAAA/uF,UAAAgvF,iBAAA,SAAAzkE,EAAA96B,GACA,GAAAtE,GAAAo/B,EAAAp/B,GAAA,UASA,OAPAA,IAAAqlE,EAAAuB,cAAA,GAGA5mE,GADA,MAAAsE,EAAAtE,GACA,IAAAsE,EAAAtE,GAAAiS,WAEA,IAAAozD,EAAAuB,cAAA,IAKAg9B,IAGAvhC,EAAArmB,OAAA,uBACA,SACA,WACA,UACA,SAAA4nD,EAAAv+B,EAAA1lE,GACA,QAAAmkG,GAAA52C,EAAAlzC,GACArP,KAAAuiD,SAAAA,EACAviD,KAAAqP,QAAAA,EAEA8pF,EAAAn+B,UAAA/wD,YAAAH,KAAA9J,MAkRA,MA/QA06D,GAAAC,OAAAw+B,EAAAF,GAEAE,EAAAjvF,UAAAqV,QAAA,SAAAlgB,GACA,GAAA1F,MACAgR,EAAA3K,IAEAA,MAAAuiD,SAAAnpD,KAAA,aAAAC,KAAA,WACA,GAAAykE,GAAA9oE,EAAAgL,MAEA+8B,EAAApyB,EAAArJ,KAAAw8D,EAEAnkE,GAAA9E,KAAAkoC,KAGA19B,EAAA1F,IAGAw/F,EAAAjvF,UAAAX,OAAA,SAAA5P,GACA,GAAAgR,GAAA3K,IAKA,IAHArG,EAAAuc,UAAA,EAGAlhB,EAAA2E,EAAAwP,SAAAhE,GAAA,UAKA,MAJAxL,GAAAwP,QAAA+M,UAAA,MAEAlW,MAAAuiD,SAAA//C,QAAA,SAKA,IAAAxC,KAAAuiD,SAAA1oD,KAAA,YACAmG,KAAAuf,QAAA,SAAA65E,GACA,GAAAjhG,KAEAwB,IAAAA,GACAA,EAAA9E,KAAAgW,MAAAlR,EAAAy/F,EAEA,KAAA,GAAAz2C,GAAA,EAAAA,EAAAhpD,EAAA7B,OAAA6qD,IAAA,CACA,GAAAttD,GAAAsE,EAAAgpD,GAAAttD,EAEAL,GAAAkI,QAAA7H,EAAA8C,SACAA,EAAAtD,KAAAQ,GAIAsV,EAAA43C,SAAApqD,IAAAA,GACAwS,EAAA43C,SAAA//C,QAAA,gBAEA,CACA,GAAArK,GAAAwB,EAAAtE,EAEA2K,MAAAuiD,SAAApqD,IAAAA,GACA6H,KAAAuiD,SAAA//C,QAAA,YAIA22F,EAAAjvF,UAAAmvF,SAAA,SAAA1/F,GACA,GAAAgR,GAAA3K,IAEA,IAAAA,KAAAuiD,SAAA1oD,KAAA,YAMA,MAFAF,GAAAuc,UAAA,EAEAlhB,EAAA2E,EAAAwP,SAAAhE,GAAA,WACAxL,EAAAwP,QAAA+M,UAAA,MAEAlW,MAAAuiD,SAAA//C,QAAA,eAKAxC,MAAAuf,QAAA,SAAA65E,GAGA,IAAA,GAFAjhG,MAEAwqD,EAAA,EAAAA,EAAAy2C,EAAAthG,OAAA6qD,IAAA,CACA,GAAAttD,GAAA+jG,EAAAz2C,GAAAttD,EAEAA,KAAAsE,EAAAtE,IAAAL,EAAAkI,QAAA7H,EAAA8C,SACAA,EAAAtD,KAAAQ,GAIAsV,EAAA43C,SAAApqD,IAAAA,GAEAwS,EAAA43C,SAAA//C,QAAA,aAIA22F,EAAAjvF,UAAAvE,KAAA,SAAA8uB,EAAAuqC,GACA,GAAAr0D,GAAA3K,IAEAA,MAAAy0B,UAAAA,EAEAA,EAAAuH,GAAA,SAAA,SAAAyT,GACA9kC,EAAApB,OAAAkmC,EAAA91C,QAGA86B,EAAAuH,GAAA,WAAA,SAAAyT,GACA9kC,EAAA0uF,SAAA5pD,EAAA91C,SAIAw/F,EAAAjvF,UAAAkgD,QAAA,WAEApqD,KAAAuiD,SAAAnpD,KAAA,KAAAC,KAAA,WAEArE,EAAA8/B,WAAA90B,KAAA,WAIAm5F,EAAAjvF,UAAAhK,MAAA,SAAAuvC,EAAApwC,GACA,GAAA1F,MACAgR,EAAA3K,KAEA69D,EAAA79D,KAAAuiD,SAAAxxB,UAEA8sC,GAAAxkE,KAAA,WACA,GAAAykE,GAAA9oE,EAAAgL,KAEA,IAAA89D,EAAA34D,GAAA,WAAA24D,EAAA34D,GAAA,YAAA,CAIA,GAAA43B,GAAApyB,EAAArJ,KAAAw8D,GAEA/0D,EAAA4B,EAAA5B,QAAA0mC,EAAA1S,EAEA,QAAAh0B,GACApP,EAAA9E,KAAAkU,MAIA1J,GACAqjB,QAAA/oB,KAIAw/F,EAAAjvF,UAAAovF,WAAA,SAAAz7B,GACAnD,EAAAwC,WAAAl9D,KAAAuiD,SAAAsb,IAGAs7B,EAAAjvF,UAAA6yB,OAAA,SAAApjC,GACA,GAAAojC,EAEApjC,GAAAo3B,UACAgM,EAAArlC,SAAA6L,cAAA,YACAw5B,EAAA4hC,MAAAhlE,EAAAwE,OAEA4+B,EAAArlC,SAAA6L,cAAA,UAEAtM,SAAA8lC,EAAA7P,YACA6P,EAAA7P,YAAAvzB,EAAAwE,KAEA4+B,EAAArO,UAAA/0B,EAAAwE,MAIAxE,EAAAtE,KACA0nC,EAAAlmC,MAAA8C,EAAAtE,IAGAsE,EAAAw1B,WACA4N,EAAA5N,UAAA,GAGAx1B,EAAAuc,WACA6mB,EAAA7mB,UAAA,GAGAvc,EAAA4D,QACAw/B,EAAAx/B,MAAA5D,EAAA4D,MAGA,IAAAugE,GAAA9oE,EAAA+nC,GAEAw8D,EAAAv5F,KAAAw5F,eAAA7/F,EAMA,OALA4/F,GAAApwF,QAAA4zB,EAGA/nC,EAAA2E,KAAAojC,EAAA,OAAAw8D,GAEAz7B,GAGAq7B,EAAAjvF,UAAA5I,KAAA,SAAAw8D,GACA,GAAAnkE,KAIA,IAFAA,EAAA3E,EAAA2E,KAAAmkE,EAAA,GAAA,QAEA,MAAAnkE,EACA,MAAAA,EAGA,IAAAmkE,EAAA34D,GAAA,UACAxL,GACAtE,GAAAyoE,EAAA3lE,MACAgG,KAAA2/D,EAAA3/D,OACAgxB,SAAA2uC,EAAAjkE,KAAA,YACAqc,SAAA4nD,EAAAjkE,KAAA,YACA0D,MAAAugE,EAAAjkE,KAAA,cAEA,IAAAikE,EAAA34D,GAAA,YAAA,CACAxL,GACAwE,KAAA2/D,EAAAjkE,KAAA,SACAk3B,YACAxzB,MAAAugE,EAAAjkE,KAAA,SAMA,KAAA,GAHA+kE,GAAAd,EAAA/sC,SAAA,UACAA,KAEAh5B,EAAA,EAAAA,EAAA6mE,EAAA9mE,OAAAC,IAAA,CACA,GAAA+mE,GAAA9pE,EAAA4pE,EAAA7mE,IAEA8mE,EAAA7+D,KAAAsB,KAAAw9D,EAEA/tC,GAAAl8B,KAAAgqE,GAGAllE,EAAAo3B,SAAAA,EAQA,MALAp3B,GAAAqG,KAAAw5F,eAAA7/F,GACAA,EAAAwP,QAAA20D,EAAA,GAEA9oE,EAAA2E,KAAAmkE,EAAA,GAAA,OAAAnkE,GAEAA,GAGAw/F,EAAAjvF,UAAAsvF,eAAA,SAAAl4F,GACAtM,EAAA+sB,cAAAzgB,KACAA,GACAjM,GAAAiM,EACAnD,KAAAmD,IAIAA,EAAAtM,EAAAke,WACA/U,KAAA,IACAmD,EAEA,IAAAyzC,IACA7+B,UAAA,EACAiZ,UAAA,EAeA,OAZA,OAAA7tB,EAAAjM,KACAiM,EAAAjM,GAAAiM,EAAAjM,GAAAiS,YAGA,MAAAhG,EAAAnD,OACAmD,EAAAnD,KAAAmD,EAAAnD,KAAAmJ,YAGA,MAAAhG,EAAAo9D,WAAAp9D,EAAAjM,IAAA,MAAA2K,KAAAy0B,YACAnzB,EAAAo9D,UAAA1+D,KAAAk5F,iBAAAl5F,KAAAy0B,UAAAnzB,IAGAtM,EAAAke,UAAA6hC,EAAAzzC,IAGA63F,EAAAjvF,UAAAnB,QAAA,SAAA0mC,EAAA91C,GACA,GAAAgsB,GAAA3lB,KAAAqP,QAAA6H,IAAA,UAEA,OAAAyO,GAAA8pB,EAAA91C,IAGAw/F,IAGAzhC,EAAArmB,OAAA,sBACA,WACA,WACA,UACA,SAAA8nD,EAAAz+B,EAAA1lE,GACA,QAAAykG,GAAAl3C,EAAAlzC,GACA,GAAA1V,GAAA0V,EAAA6H,IAAA,WAEAuiF,GAAAz+B,UAAA/wD,YAAAH,KAAA9J,KAAAuiD,EAAAlzC,GAEArP,KAAAs5F,WAAAt5F,KAAA05F,iBAAA//F,IAmEA,MAhEA+gE,GAAAC,OAAA8+B,EAAAN,GAEAM,EAAAvvF,UAAAX,OAAA,SAAA5P,GACA,GAAAmkE,GAAA99D,KAAAuiD,SAAAnpD,KAAA,UAAA2X,OAAA,SAAA5c,EAAAwlG,GACA,MAAAA,GAAA9iG,OAAA8C,EAAAtE,GAAAiS,YAGA,KAAAw2D,EAAAhmE,SACAgmE,EAAA99D,KAAA+8B,OAAApjC,GAEAqG,KAAAs5F,WAAAx7B,IAGA27B,EAAAz+B,UAAAzxD,OAAAO,KAAA9J,KAAArG,IAGA8/F,EAAAvvF,UAAAwvF,iBAAA,SAAA//F,GAWA,QAAAigG,GAAAt4F,GACA,MAAA,YACA,MAAAtM,GAAAgL,MAAA7H,OAAAmJ,EAAAjM,IAIA,IAAA,GAhBAsV,GAAA3K,KAEA65F,EAAA75F,KAAAuiD,SAAAnpD,KAAA,UACA0gG,EAAAD,EAAAvmF,IAAA,WACA,MAAA3I,GAAArJ,KAAAtM,EAAAgL,OAAA3K,KACA6hB,MAEA2mD,KASAlb,EAAA,EAAAA,EAAAhpD,EAAA7B,OAAA6qD,IAAA,CACA,GAAArhD,GAAAtB,KAAAw5F,eAAA7/F,EAAAgpD,GAGA,IAAA3tD,EAAAkI,QAAAoE,EAAAjM,GAAAykG,IAAA,EAAA,CACA,GAAAC,GAAAF,EAAA9oF,OAAA6oF,EAAAt4F,IAEA04F,EAAAh6F,KAAAsB,KAAAy4F,GACAE,EAAAjlG,EAAAke,QAAA,KAAA8mF,EAAA14F,GAEA44F,EAAAl6F,KAAA+8B,OAAAk9D,EAEAF,GAAAh7D,YAAAm7D,OARA,CAaA,GAAAp8B,GAAA99D,KAAA+8B,OAAAz7B,EAEA,IAAAA,EAAAyvB,SAAA,CACA,GAAA6tC,GAAA5+D,KAAA05F,iBAAAp4F,EAAAyvB,SAEA2pC,GAAAwC,WAAAY,EAAAc,GAGAf,EAAAhpE,KAAAipE,IAGA,MAAAD,IAGA47B,IAGA/hC,EAAArmB,OAAA,qBACA,UACA,WACA,UACA,SAAAooD,EAAA/+B,EAAA1lE,GACA,QAAAmlG,GAAA53C,EAAAlzC,GACArP,KAAAo6F,YAAAp6F,KAAAq6F,eAAAhrF,EAAA6H,IAAA,SAEA,MAAAlX,KAAAo6F,YAAAE,iBACAt6F,KAAAs6F,eAAAt6F,KAAAo6F,YAAAE,gBAGAH,EAAAn/B,UAAA/wD,YAAAH,KAAA9J,KAAAuiD,EAAAlzC,GAuFA,MApFAqrD,GAAAC,OAAAw/B,EAAAV,GAEAU,EAAAjwF,UAAAmwF,eAAA,SAAAhrF,GACA,GAAA0lC,IACAp7C,KAAA,SAAA81C,GACA,MAAAz6C,GAAAke,UAAAu8B,GACA8qD,EAAA9qD,EAAAq0B,QAGAr4B,UAAA,SAAAgE,EAAAnwC,EAAAk7F,GACA,GAAAC,GAAAzlG,EAAAm2C,KAAAsE,EAKA,OAHAgrD,GAAA3nE,KAAAxzB,GACAm7F,EAAAl9E,KAAAi9E,GAEAC,GAIA,OAAAzlG,GAAAke,UAAA6hC,EAAA1lC,GAAA,IAGA8qF,EAAAjwF,UAAAowF,eAAA,SAAA53E,GACA,MAAAA,IAGAy3E,EAAAjwF,UAAAhK,MAAA,SAAAuvC,EAAApwC,GAyBA,QAAAq7F,KACA,GAAAD,GAAAprF,EAAAo8B,UAAAp8B,EAAA,SAAA1V,GACA,GAAA+oB,GAAA/X,EAAA2vF,eAAA3gG,EAAA81C,EAEA9kC,GAAA0E,QAAA6H,IAAA,UAAA1e,OAAAm2D,SAAAA,QAAAnvD,QAEAkjB,GAAAA,EAAAA,SAAA1tB,EAAAqe,QAAAqP,EAAAA,UACAisC,QAAAnvD,MACA,4FAMAH,EAAAqjB,IACA,aAIA/X,GAAAgwF,SAAAF,EA3CA,GACA9vF,GAAA3K,IAEA,OAAAA,KAAA26F,WAEA3lG,EAAA6b,WAAA7Q,KAAA26F,SAAA/wF,QACA5J,KAAA26F,SAAA/wF,QAGA5J,KAAA26F,SAAA,KAGA,IAAAtrF,GAAAra,EAAAke,QACA9U,KAAA,OACA4B,KAAAo6F,YAEA,mBAAA/qF,GAAA9O,MACA8O,EAAA9O,IAAA8O,EAAA9O,IAAAuJ,KAAA9J,KAAAuiD,SAAA9S,IAGA,kBAAApgC,GAAA1V,OACA0V,EAAA1V,KAAA0V,EAAA1V,KAAAmQ,KAAA9J,KAAAuiD,SAAA9S,IAyBAzvC,KAAAo6F,YAAA30D,OAAA,KAAAgK,EAAAq0B,MACA9jE,KAAA46F,eACApiG,OAAAotC,aAAA5lC,KAAA46F,eAGA56F,KAAA46F,cAAApiG,OAAA7C,WAAA+kG,EAAA16F,KAAAo6F,YAAA30D,QAEAi1D,KAIAP,IAGAziC,EAAArmB,OAAA,qBACA,UACA,SAAAr8C,GACA,QAAA6lG,GAAAx4B,EAAA9f,EAAAlzC,GACA,GAAAyrF,GAAAzrF,EAAA6H,IAAA,QAEA6jF,EAAA1rF,EAAA6H,IAAA,YAQA,IANAjgB,SAAA8jG,IACA/6F,KAAA+6F,UAAAA,GAGA14B,EAAAv4D,KAAA9J,KAAAuiD,EAAAlzC,GAEAra,EAAAqe,QAAAynF,GACA,IAAA,GAAAnkE,GAAA,EAAAA,EAAAmkE,EAAAhjG,OAAA6+B,IAAA,CACA,GAAAxiB,GAAA2mF,EAAAnkE,GACAr1B,EAAAtB,KAAAw5F,eAAArlF,GAEA2pD,EAAA99D,KAAA+8B,OAAAz7B,EAEAtB,MAAAuiD,SAAA9jB,OAAAq/B,IAgGA,MA3FA+8B,GAAA3wF,UAAAhK,MAAA,SAAAmiE,EAAA5yB,EAAApwC,GAUA,QAAA+1D,GAAAjgE,EAAA0pE,GAGA,IAAA,GAFAllE,GAAAxE,EAAAutB,QAEAvuB,EAAA,EAAAA,EAAAwF,EAAA7B,OAAA3D,IAAA,CACA,GAAA4oC,GAAApjC,EAAAxF,GAEA6mG,EACA,MAAAj+D,EAAAhM,WACAqkC,GACA1yC,QAAAqa,EAAAhM,WACA,GAGAkqE,EAAAl+D,EAAA5+B,OAAAsxC,EAAAq0B,IAEA,IAAAm3B,GAAAD,EACA,OAAAn8B,IAIA1pE,EAAAwE,KAAAA,MACA0F,GAAAlK,IAMA,GAAA0pE,EACA,OAAA,CAGA,IAAA1qD,GAAAxJ,EAAAowF,UAAAtrD,EAEA,IAAA,MAAAt7B,EAAA,CACA,GAAA2pD,GAAAnzD,EAAAoyB,OAAA5oB,EACA2pD,GAAA/jE,KAAA,oBAAA,GAEA4Q,EAAA2uF,YAAAx7B,IAEAnzD,EAAAuwF,UAAAvhG,EAAAwa,GAGAhf,EAAAutB,QAAA/oB,EAEA0F,EAAAlK,GArDA,GAAAwV,GAAA3K,IAIA,OAFAA,MAAAm7F,iBAEA,MAAA1rD,EAAAq0B,MAAA,MAAAr0B,EAAA2rD,SACA/4B,GAAAv4D,KAAA9J,KAAAyvC,EAAApwC,OAmDAgjE,GAAAv4D,KAAA9J,KAAAyvC,EAAA2lB,IAGAylC,EAAA3wF,UAAA6wF,UAAA,SAAA14B,EAAA5yB,GACA,GAAAq0B,GAAA9uE,EAAAghB,KAAAy5B,EAAAq0B,KAEA,OAAA,KAAAA,EACA,MAIAzuE,GAAAyuE,EACA3lE,KAAA2lE,IAIA+2B,EAAA3wF,UAAAgxF,UAAA,SAAA3pF,EAAA5X,EAAAwa,GACAxa,EAAAmkB,QAAA3J,IAGA0mF,EAAA3wF,UAAAixF,eAAA,SAAA5pF,GACA,GAEAssD,IAFA79D,KAAAq7F,SAEAr7F,KAAAuiD,SAAAnpD,KAAA,4BAEAykE,GAAAxkE,KAAA,WACA2G,KAAAkW,UAIAlhB,EAAAgL,MAAAb,YAIA07F,IAGAnjC,EAAArmB,OAAA,0BACA,UACA,SAAAr8C,GACA,QAAAsmG,GAAAj5B,EAAA9f,EAAAlzC,GACA,GAAAksF,GAAAlsF,EAAA6H,IAAA,YAEAjgB,UAAAskG,IACAv7F,KAAAu7F,UAAAA,GAGAl5B,EAAAv4D,KAAA9J,KAAAuiD,EAAAlzC,GAiFA,MA9EAisF,GAAApxF,UAAAvE,KAAA,SAAA08D,EAAA5tC,EAAAuqC,GACAqD,EAAAv4D,KAAA9J,KAAAy0B,EAAAuqC,GAEAh/D,KAAAmjE,QAAA1uC,EAAA4wB,SAAA8d,SAAA1uC,EAAA4J,UAAA8kC,SACAnE,EAAA5lE,KAAA,2BAGAkiG,EAAApxF,UAAAhK,MAAA,SAAAmiE,EAAA5yB,EAAApwC,GAGA,QAAAkK,GAAA5P,GACAgR,EAAAnI,QAAA,UACA7I,KAAAA,IAJA,GAAAgR,GAAA3K,IAQAyvC,GAAAq0B,KAAAr0B,EAAAq0B,MAAA,EAEA,IAAA03B,GAAAx7F,KAAAu7F,UAAA9rD,EAAAzvC,KAAAqP,QAAA9F,EAEAiyF,GAAA13B,OAAAr0B,EAAAq0B,OAEA9jE,KAAAmjE,QAAArrE,SACAkI,KAAAmjE,QAAAhrE,IAAAqjG,EAAA13B,MACA9jE,KAAAmjE,QAAAp0C,SAGA0gB,EAAAq0B,KAAA03B,EAAA13B,MAGAzB,EAAAv4D,KAAA9J,KAAAyvC,EAAApwC,IAGAi8F,EAAApxF,UAAAqxF,UAAA,SAAAhqF,EAAAk+B,EAAApgC,EAAAhQ,GAYA,IAXA,GAAAo8F,GAAApsF,EAAA6H,IAAA,uBACA4sD,EAAAr0B,EAAAq0B,KACA3vE,EAAA,EAEA4mG,EAAA/6F,KAAA+6F,WAAA,SAAAtrD,GACA,OACAp6C,GAAAo6C,EAAAq0B,KACA3lE,KAAAsxC,EAAAq0B,OAIA3vE,EAAA2vE,EAAAhsE,QAAA,CACA,GAAA4jG,GAAA53B,EAAA3vE,EAEA,IAAAa,EAAAkI,QAAAw+F,EAAAD,QAAA,CAMA,GAAAjjC,GAAAsL,EAAAz+D,OAAA,EAAAlR,GACAwnG,EAAA3mG,EAAAke,UAAAu8B,GACAq0B,KAAAtL,IAGA7+D,EAAAohG,EAAAY,EAEA,OAAAhiG,GAKA0F,EAAA1F,GAGAmqE,EAAAA,EAAAz+D,OAAAlR,EAAA,IAAA,GACAA,EAAA,GARAA,QAbAA,KAwBA,OACA2vE,KAAAA,IAIAw3B,IAGA5jC,EAAArmB,OAAA,qCAEA,WACA,QAAAuqD,GAAAv5B,EAAAhZ,EAAAh6C,GACArP,KAAA67F,mBAAAxsF,EAAA6H,IAAA,sBAEAmrD,EAAAv4D,KAAA9J,KAAAqpD,EAAAh6C,GAsBA,MAnBAusF,GAAA1xF,UAAAhK,MAAA,SAAAmiE,EAAA5yB,EAAApwC,GAGA,MAFAowC,GAAAq0B,KAAAr0B,EAAAq0B,MAAA,GAEAr0B,EAAAq0B,KAAAhsE,OAAAkI,KAAA67F,uBACA77F,MAAAwC,QAAA,mBACAzE,QAAA,gBACAwM,MACAuxF,QAAA97F,KAAA67F,mBACA3uF,MAAAuiC,EAAAq0B,KACAr0B,OAAAA,SAOA4yB,GAAAv4D,KAAA9J,KAAAyvC,EAAApwC,IAGAu8F,IAGAlkC,EAAArmB,OAAA,qCAEA,WACA,QAAA0qD,GAAA15B,EAAAhZ,EAAAh6C,GACArP,KAAAg8F,mBAAA3sF,EAAA6H,IAAA,sBAEAmrD,EAAAv4D,KAAA9J,KAAAqpD,EAAAh6C,GAuBA,MApBA0sF,GAAA7xF,UAAAhK,MAAA,SAAAmiE,EAAA5yB,EAAApwC,GAGA,MAFAowC,GAAAq0B,KAAAr0B,EAAAq0B,MAAA,GAEA9jE,KAAAg8F,mBAAA,GACAvsD,EAAAq0B,KAAAhsE,OAAAkI,KAAAg8F,uBACAh8F,MAAAwC,QAAA,mBACAzE,QAAA,eACAwM,MACA0xF,QAAAj8F,KAAAg8F,mBACA9uF,MAAAuiC,EAAAq0B,KACAr0B,OAAAA,SAOA4yB,GAAAv4D,KAAA9J,KAAAyvC,EAAApwC,IAGA08F,IAGArkC,EAAArmB,OAAA,yCAEA,WACA,QAAA6qD,GAAA75B,EAAAhZ,EAAAh6C,GACArP,KAAAm8F,uBAAA9sF,EAAA6H,IAAA,0BAEAmrD,EAAAv4D,KAAA9J,KAAAqpD,EAAAh6C,GAuBA,MApBA6sF,GAAAhyF,UAAAhK,MACA,SAAAmiE,EAAA5yB,EAAApwC,GACA,GAAAsL,GAAA3K,IAEAA,MAAAuf,QAAA,SAAA65E,GACA,GAAAjkE,GAAA,MAAAikE,EAAAA,EAAAthG,OAAA,CACA,OAAA6S,GAAAwxF,uBAAA,GACAhnE,GAAAxqB,EAAAwxF,2BACAxxF,GAAAnI,QAAA,mBACAzE,QAAA,kBACAwM,MACA0xF,QAAAtxF,EAAAwxF,8BAKA95B,GAAAv4D,KAAAa,EAAA8kC,EAAApwC,MAIA68F,IAGAxkC,EAAArmB,OAAA,oBACA,SACA,WACA,SAAAr8C,EAAA0lE,GACA,QAAAxV,GAAA3C,EAAAlzC,GACArP,KAAAuiD,SAAAA,EACAviD,KAAAqP,QAAAA,EAEA61C,EAAA8V,UAAA/wD,YAAAH,KAAA9J,MAgCA,MA7BA06D,GAAAC,OAAAzV,EAAAwV,EAAAoB,YAEA5W,EAAAh7C,UAAAqzD,OAAA,WACA,GAAAQ,GAAA/oE,EACA,8EASA,OAJA+oE,GAAAhkE,KAAA,MAAAiG,KAAAqP,QAAA6H,IAAA,QAEAlX,KAAA+9D,UAAAA,EAEAA,GAGA7Y,EAAAh7C,UAAAvE,KAAA,aAIAu/C,EAAAh7C,UAAAw3B,SAAA,SAAAq8B,EAAAiB,KAIA9Z,EAAAh7C,UAAAkgD,QAAA,WAEApqD,KAAA+9D,UAAA5+D,UAGA+lD,IAGAwS,EAAArmB,OAAA,2BACA,SACA,YACA,SAAAr8C,EAAA0lE,GACA,QAAAwI,MAyFA,MAvFAA,GAAAh5D,UAAAqzD,OAAA,SAAA8E,GACA,GAAAN,GAAAM,EAAAv4D,KAAA9J,MAEAmjE,EAAAnuE,EACA,+NAYA,OALAgL,MAAAojE,iBAAAD,EACAnjE,KAAAmjE,QAAAA,EAAA/pE,KAAA,SAEA2oE,EAAApjC,QAAAwkC,GAEApB,GAGAmB,EAAAh5D,UAAAvE,KAAA,SAAA08D,EAAA5tC,EAAAuqC,GACA,GAAAr0D,GAAA3K,IAEAqiE,GAAAv4D,KAAA9J,KAAAy0B,EAAAuqC,GAEAh/D,KAAAmjE,QAAAnnC,GAAA,UAAA,SAAA8jC,GACAn1D,EAAAnI,QAAA,WAAAs9D,GAEAn1D,EAAA24D,gBAAAxD,EAAAtnC,uBAMAx4B,KAAAmjE,QAAAnnC,GAAA,QAAA,SAAA8jC,GAEA9qE,EAAAgL,MAAAq0B,IAAA,WAGAr0B,KAAAmjE,QAAAnnC,GAAA,cAAA,SAAA8jC,GACAn1D,EAAAg5D,aAAA7D,KAGArrC,EAAAuH,GAAA,OAAA,WACArxB,EAAAw4D,QAAAppE,KAAA,WAAA,GAEA4Q,EAAAw4D,QAAAp0C,QAEAv2B,OAAA7C,WAAA,WACAgV,EAAAw4D,QAAAp0C,SACA,KAGA0F,EAAAuH,GAAA,QAAA,WACArxB,EAAAw4D,QAAAppE,KAAA,eAEA4Q,EAAAw4D,QAAAhrE,IAAA,MAGAs8B,EAAAuH,GAAA,cAAA,SAAAyT,GACA,GAAA,MAAAA,EAAAvvC,MAAA4jE,MAAA,KAAAr0B,EAAAvvC,MAAA4jE,KAAA,CACA,GAAAs4B,GAAAzxF,EAAAyxF,WAAA3sD,EAEA2sD,GACAzxF,EAAAy4D,iBAAAl7B,YAAA,wBAEAv9B,EAAAy4D,iBAAA1tE,SAAA,4BAMAwtE,EAAAh5D,UAAAy5D,aAAA,SAAA7D,GACA,IAAA9/D,KAAAsjE,gBAAA,CACA,GAAAp2D,GAAAlN,KAAAmjE,QAAAhrE,KAEA6H,MAAAwC,QAAA,SACAshE,KAAA52D,IAIAlN,KAAAsjE,iBAAA,GAGAJ,EAAAh5D,UAAAkyF,WAAA,SAAA7qF,EAAAk+B,GACA,OAAA,GAGAyzB,IAGAxL,EAAArmB,OAAA,sCAEA,WACA,QAAAgrD,GAAAh6B,EAAA9f,EAAAlzC,EAAAiuD,GACAt9D,KAAAsiE,YAAAtiE,KAAAuiE,qBAAAlzD,EAAA6H,IAAA,gBAEAmrD,EAAAv4D,KAAA9J,KAAAuiD,EAAAlzC,EAAAiuD,GAkCA,MA/BA++B,GAAAnyF,UAAAu0B,OAAA,SAAA4jC,EAAA1oE,GACAA,EAAA+oB,QAAA1iB,KAAAs8F,kBAAA3iG,EAAA+oB,SAEA2/C,EAAAv4D,KAAA9J,KAAArG,IAGA0iG,EAAAnyF,UAAAq4D,qBAAA,SAAAhxD,EAAA+wD,GAQA,MAPA,gBAAAA,KACAA,GACAjtE,GAAA,GACA8I,KAAAmkE,IAIAA,GAGA+5B,EAAAnyF,UAAAoyF,kBAAA,SAAA/qF,EAAA5X,GAGA,IAAA,GAFA4iG,GAAA5iG,EAAAsB,MAAA,GAEA0nD,EAAAhpD,EAAA7B,OAAA,EAAA6qD,GAAA,EAAAA,IAAA,CACA,GAAArhD,GAAA3H,EAAAgpD,EAEA3iD,MAAAsiE,YAAAjtE,KAAAiM,EAAAjM,IACAknG,EAAAzjG,OAAA6pD,EAAA,GAIA,MAAA45C,IAGAF,IAGA3kC,EAAArmB,OAAA,mCACA,UACA,SAAAr8C,GACA,QAAAwnG,GAAAn6B,EAAA9f,EAAAlzC,EAAAiuD,GACAt9D,KAAAy8F,cAEAp6B,EAAAv4D,KAAA9J,KAAAuiD,EAAAlzC,EAAAiuD,GAEAt9D,KAAA08F,aAAA18F,KAAA28F,oBACA38F,KAAA+7C,SAAA,EA8EA,MA3EAygD,GAAAtyF,UAAAu0B,OAAA,SAAA4jC,EAAA1oE,GACAqG,KAAA08F,aAAAv9F,SACAa,KAAA+7C,SAAA,EAEAsmB,EAAAv4D,KAAA9J,KAAArG,GAEAqG,KAAA48F,gBAAAjjG,IACAqG,KAAAw9D,SAAA/+B,OAAAz+B,KAAA08F,eAIAF,EAAAtyF,UAAAvE,KAAA,SAAA08D,EAAA5tC,EAAAuqC,GACA,GAAAr0D,GAAA3K,IAEAqiE,GAAAv4D,KAAA9J,KAAAy0B,EAAAuqC,GAEAvqC,EAAAuH,GAAA,QAAA,SAAAyT,GACA9kC,EAAA8xF,WAAAhtD,EACA9kC,EAAAoxC,SAAA,IAGAtnB,EAAAuH,GAAA,eAAA,SAAAyT,GACA9kC,EAAA8xF,WAAAhtD,EACA9kC,EAAAoxC,SAAA,IAGA/7C,KAAAw9D,SAAAxhC,GAAA,SAAA,WACA,GAAA6gE,GAAA7nG,EAAAoQ,SACA1N,SAAA0P,gBACAuD,EAAA+xF,aAAA,GAGA,KAAA/xF,EAAAoxC,SAAA8gD,EAAA,CAIA,GAAAv9B,GAAA30D,EAAA6yD,SAAA7tB,SAAA15C,IACA0U,EAAA6yD,SAAAhU,aAAA,GACAszC,EAAAnyF,EAAA+xF,aAAA/sD,SAAA15C,IACA0U,EAAA+xF,aAAAlzC,aAAA,EAEA8V,GAAA,IAAAw9B,GACAnyF,EAAAoyF,eAKAP,EAAAtyF,UAAA6yF,SAAA,WACA/8F,KAAA+7C,SAAA,CAEA,IAAAtM,GAAAz6C,EAAAke,WAAAkoF,KAAA,GAAAp7F,KAAAy8F,WAEAhtD,GAAA2rD,OAEAp7F,KAAAwC,QAAA,eAAAitC,IAGA+sD,EAAAtyF,UAAA0yF,gBAAA,SAAArrF,EAAA5X,GACA,MAAAA,GAAAqjG,YAAArjG,EAAAqjG,WAAAC,MAGAT,EAAAtyF,UAAAyyF,kBAAA,WACA,GAAA7+B,GAAA9oE,EACA,oHAKA+I,EAAAiC,KAAAqP,QAAA6H,IAAA,gBAAAA,IAAA,cAIA,OAFA4mD,GAAA7jE,KAAA8D,EAAAiC,KAAAy8F,aAEA3+B,GAGA0+B,IAGA9kC,EAAArmB,OAAA,+BACA,SACA,YACA,SAAAr8C,EAAA0lE,GACA,QAAAwiC,GAAA76B,EAAA9f,EAAAlzC,GACArP,KAAAm9F,gBAAA9tF,EAAA6H,IAAA,mBAAAliB,EAAA0C,SAAAiM,MAEA0+D,EAAAv4D,KAAA9J,KAAAuiD,EAAAlzC,GA+MA,MA5MA6tF,GAAAhzF,UAAAvE,KAAA,SAAA08D,EAAA5tC,EAAAuqC,GACA,GAAAr0D,GAAA3K,KAEAo9F,GAAA,CAEA/6B,GAAAv4D,KAAA9J,KAAAy0B,EAAAuqC,GAEAvqC,EAAAuH,GAAA,OAAA,WACArxB,EAAA0yF,gBACA1yF,EAAA2yF,0BAAA7oE,GAEA2oE,IACAA,GAAA,EAEA3oE,EAAAuH,GAAA,cAAA,WACArxB,EAAA4yF,oBACA5yF,EAAA6yF,oBAGA/oE,EAAAuH,GAAA,iBAAA,WACArxB,EAAA4yF,oBACA5yF,EAAA6yF,uBAKA/oE,EAAAuH,GAAA,QAAA,WACArxB,EAAA8yF,gBACA9yF,EAAA+yF,0BAAAjpE,KAGAz0B,KAAA29F,mBAAA3hE,GAAA,YAAA,SAAA8jC,GACAA,EAAA9mC,qBAIAkkE,EAAAhzF,UAAAkgD,QAAA,SAAAiY,GACAA,EAAAv4D,KAAA9J,MAEAA,KAAA29F,mBAAAx+F,UAGA+9F,EAAAhzF,UAAAw3B,SAAA,SAAA2gC,EAAAtE,EAAAiB,GAEAjB,EAAAhkE,KAAA,QAAAilE,EAAAjlE,KAAA,UAEAgkE,EAAA71B,YAAA,WACA61B,EAAAroE,SAAA,2BAEAqoE,EAAAjoE,KACA4rC,SAAA,WACAzrC,cAGA+J,KAAAg/D,WAAAA,GAGAk+B,EAAAhzF,UAAAqzD,OAAA,SAAA8E,GACA,GAAArD,GAAAhqE,EAAA,iBAEA+oE,EAAAsE,EAAAv4D,KAAA9J,KAKA,OAJAg/D,GAAAvgC,OAAAs/B,GAEA/9D,KAAA29F,mBAAA3+B,EAEAA,GAGAk+B,EAAAhzF,UAAAuzF,cAAA,SAAAp7B,GACAriE,KAAA29F,mBAAAlsF,UAGAyrF,EAAAhzF,UAAAozF,0BACA,SAAAj7B,EAAA5tC,GACA,GAAA9pB,GAAA3K,KAEA49F,EAAA,kBAAAnpE,EAAAp/B,GACAwoG,EAAA,kBAAAppE,EAAAp/B,GACAyoG,EAAA,6BAAArpE,EAAAp/B,GAEA0oG,EAAA/9F,KAAAg/D,WAAAxtC,UAAAzgB,OAAA2pD,EAAA8B,UACAuhC,GAAA1kG,KAAA,WACArE,EAAAgL,MAAArG,KAAA,2BACAqkG,EAAAhpG,EAAAgL,MAAAi6B,aACAgkE,EAAAjpG,EAAAgL,MAAAq6B,gBAIA0jE,EAAA/hE,GAAA4hE,EAAA,SAAA1qD,GACA,GAAAxR,GAAA1sC,EAAAgL,MAAArG,KAAA,0BACA3E,GAAAgL,MAAAq6B,UAAAqH,EAAAu8D,KAGAjpG,EAAAwD,QAAAwjC,GAAA4hE,EAAA,IAAAC,EAAA,IAAAC,EACA,SAAApnG,GACAiU,EAAA4yF,oBACA5yF,EAAA6yF,qBAIAN,EAAAhzF,UAAAwzF,0BACA,SAAAr7B,EAAA5tC,GACA,GAAAmpE,GAAA,kBAAAnpE,EAAAp/B,GACAwoG,EAAA,kBAAAppE,EAAAp/B,GACAyoG,EAAA,6BAAArpE,EAAAp/B,GAEA0oG,EAAA/9F,KAAAg/D,WAAAxtC,UAAAzgB,OAAA2pD,EAAA8B,UACAuhC,GAAA1pE,IAAAupE,GAEA5oG,EAAAwD,QAAA67B,IAAAupE,EAAA,IAAAC,EAAA,IAAAC,IAGAZ,EAAAhzF,UAAAqzF,kBAAA,WACA,GAAAW,GAAAlpG,EAAAwD,QAEA2lG,EAAAn+F,KAAA+9D,UAAA11B,SAAA,2BACA+1D,EAAAp+F,KAAA+9D,UAAA11B,SAAA,2BAEAg2D,EAAA,KAGA1uD,GADA3vC,KAAAg/D,WAAAt9B,WACA1hC,KAAAg/D,WAAArvB,SAEAA,GAAAyc,OAAAzc,EAAA15C,IAAA+J,KAAAg/D,WAAAxV,aAAA,EAEA,IAAA/0B,IACA1+B,OAAAiK,KAAAg/D,WAAAxV,aAAA,GAGA/0B,GAAAx+B,IAAA05C,EAAA15C,IACAw+B,EAAA23B,OAAAzc,EAAA15C,IAAAw+B,EAAA1+B,MAEA,IAAAsvD,IACAtvD,OAAAiK,KAAA+9D,UAAAvU,aAAA,IAGA5C,GACA3wD,IAAAioG,EAAA7jE,YACA+xB,OAAA8xC,EAAA7jE,YAAA6jE,EAAAnoG,UAGAuoG,EAAA13C,EAAA3wD,IAAA05C,EAAA15C,IAAAovD,EAAAtvD,OACAwoG,EAAA33C,EAAAwF,OAAAzc,EAAAyc,OAAA/G,EAAAtvD,OAEAD,GACAmqC,KAAA0P,EAAA1P,KACAhqC,IAAAw+B,EAAA23B,OAIA,IAAA,WAAApsD,KAAAm9F,gBAAA,GAAA12F,MAAAi7B,SAAA,CACA,GAAAkP,GAAA5wC,KAAAm9F,gBAAAxtD,QAEA75C,GAAAG,KAAA26C,EAAA36C,IACAH,EAAAmqC,MAAA2Q,EAAA3Q,KAGAk+D,GAAAC,IACAC,EAAA,SAGAE,IAAAD,GAAAH,GAEAG,GAAAC,GAAAJ,IACAE,EAAA,SAFAA,EAAA,SAKA,SAAAA,GACAF,GAAA,UAAAE,KACAvoG,EAAAG,IAAAw+B,EAAAx+B,IAAAovD,EAAAtvD,QAGA,MAAAsoG,IACAr+F,KAAA+9D,UACA71B,YAAA,mDACAxyC,SAAA,qBAAA2oG,GACAr+F,KAAAg/D,WACA92B,YAAA,qDACAxyC,SAAA,sBAAA2oG,IAGAr+F,KAAA29F,mBAAA7nG,IAAAA,IAGAonG,EAAAhzF,UAAAszF,gBAAA,WACA,GAAA1nG,IACA4jB,MAAA1Z,KAAAg/D,WAAAzV,YAAA,GAAA,KAGAvpD,MAAAqP,QAAA6H,IAAA,uBACAphB,EAAAgqC,SAAAhqC,EAAA4jB,MACA5jB,EAAA4jB,MAAA,QAGA1Z,KAAA+9D,UAAAjoE,IAAAA,IAGAonG,EAAAhzF,UAAAmzF,cAAA,SAAAh7B,GACAriE,KAAA29F,mBAAAtnF,SAAArW,KAAAm9F,iBAEAn9F,KAAAu9F,oBACAv9F,KAAAw9F,mBAGAN,IAGAxlC,EAAArmB,OAAA,8CAEA,WACA,QAAAmtD,GAAA7kG,GAGA,IAAA,GAFAw7B,GAAA,EAEAwtB,EAAA,EAAAA,EAAAhpD,EAAA7B,OAAA6qD,IAAA,CACA,GAAArhD,GAAA3H,EAAAgpD,EAEArhD,GAAAyvB,SACAoE,GAAAqpE,EAAAl9F,EAAAyvB,UAEAoE,IAIA,MAAAA,GAGA,QAAAspE,GAAAp8B,EAAA9f,EAAAlzC,EAAAiuD,GACAt9D,KAAA0+F,wBAAArvF,EAAA6H,IAAA,2BAEAlX,KAAA0+F,wBAAA,IACA1+F,KAAA0+F,wBAAAC,EAAAA,GAGAt8B,EAAAv4D,KAAA9J,KAAAuiD,EAAAlzC,EAAAiuD,GAWA,MARAmhC,GAAAv0F,UAAAkyF,WAAA,SAAA/5B,EAAA5yB,GACA,QAAA+uD,EAAA/uD,EAAA91C,KAAA+oB,SAAA1iB,KAAA0+F,0BAIAr8B,EAAAv4D,KAAA9J,KAAAyvC,IAGAgvD,IAGA/mC,EAAArmB,OAAA,oCAEA,WACA,QAAAutD,MAmCA,MAjCAA,GAAA10F,UAAAvE,KAAA,SAAA08D,EAAA5tC,EAAAuqC,GACA,GAAAr0D,GAAA3K,IAEAqiE,GAAAv4D,KAAA9J,KAAAy0B,EAAAuqC,GAEAvqC,EAAAuH,GAAA,QAAA,WACArxB,EAAAk0F,0BAIAD,EAAA10F,UAAA20F,qBAAA,WACA,GAAAC,GAAA9+F,KAAAm/D,uBAGA,MAAA2/B,EAAAhnG,OAAA,GAAA,CAIA,GAAA6B,GAAAmlG,EAAAnlG,KAAA,OAIA,OAAAA,EAAAwP,SAAAxP,EAAAwP,QAAA+M,UACA,MAAAvc,EAAAwP,SAAAxP,EAAAuc,UAKAlW,KAAAwC,QAAA,UACA7I,KAAAA,MAIAilG,IAGAlnC,EAAArmB,OAAA,oCAEA,WACA,QAAA0tD,MA2BA,MAzBAA,GAAA70F,UAAAvE,KAAA,SAAA08D,EAAA5tC,EAAAuqC,GACA,GAAAr0D,GAAA3K,IAEAqiE,GAAAv4D,KAAA9J,KAAAy0B,EAAAuqC,GAEAvqC,EAAAuH,GAAA,SAAA,SAAA8jC,GACAn1D,EAAAq0F,iBAAAl/B,KAGArrC,EAAAuH,GAAA,WAAA,SAAA8jC,GACAn1D,EAAAq0F,iBAAAl/B,MAIAi/B,EAAA70F,UAAA80F,iBAAA,SAAAztF,EAAAuuD,GACA,GAAA3mC,GAAA2mC,EAAA3mC,aAGAA,IAAAA,EAAAif,SAIAp4C,KAAAwC,QAAA,aAGAu8F,IAGArnC,EAAArmB,OAAA,qBAAA,WAEA,OACA4tD,aAAA,WACA,MAAA,oCAEAC,aAAA,SAAA30F,GACA,GAAA40F,GAAA50F,EAAA2C,MAAApV,OAAAyS,EAAA0xF,QAEAl+F,EAAA,iBAAAohG,EAAA,YAMA,OAJA,IAAAA,IACAphG,GAAA,KAGAA,GAEAqhG,cAAA,SAAA70F,GACA,GAAA80F,GAAA90F,EAAAuxF,QAAAvxF,EAAA2C,MAAApV,OAEAiG,EAAA,gBAAAshG,EAAA,qBAEA,OAAAthG,IAEAugE,YAAA,WACA,MAAA,yBAEAghC,gBAAA,SAAA/0F,GACA,GAAAxM,GAAA,uBAAAwM,EAAA0xF,QAAA,OAMA,OAJA,IAAA1xF,EAAA0xF,UACAl+F,GAAA,KAGAA,GAEAwhG,UAAA,WACA,MAAA,oBAEAC,UAAA,WACA,MAAA,iBAKA9nC,EAAArmB,OAAA,oBACA,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,aACA,SAAAr8C,EAAAyiE,EAEAgoC,EAEA59B,EAAAI,EAAAG,EAAAQ,EACA88B,EAAA17B,EAEAtJ,EAAAyJ,EAAAw7B,EAEAC,EAAAC,EAAAC,EAAAjF,EAAAS,EACAM,EAAAG,EAAAG,EAEAh3C,EAAA66C,EAAA1D,EAAAG,EACAU,EAAAuB,EAAAG,EAAAG,EAEAiB,GACA,QAAAC,KACAjgG,KAAA0J,QAGAu2F,EAAA/1F,UAAAW,MAAA,SAAAwE,GAGA,GAFAA,EAAAra,EAAAke,UAAAlT,KAAA+0C,SAAA1lC,GAEA,MAAAA,EAAAiuD,YAAA,CAyCA,GAxCA,MAAAjuD,EAAA87B,KACA97B,EAAAiuD,YAAAwiC,EACA,MAAAzwF,EAAA1V,KACA0V,EAAAiuD,YAAAuiC,EAEAxwF,EAAAiuD,YAAAsiC,EAGAvwF,EAAAwsF,mBAAA,IACAxsF,EAAAiuD,YAAA5C,EAAAO,SACA5rD,EAAAiuD,YACAs+B,IAIAvsF,EAAA2sF,mBAAA,IACA3sF,EAAAiuD,YAAA5C,EAAAO,SACA5rD,EAAAiuD,YACAy+B,IAIA1sF,EAAA8sF,uBAAA,IACA9sF,EAAAiuD,YAAA5C,EAAAO,SACA5rD,EAAAiuD,YACA4+B,IAIA7sF,EAAAyrF,OACAzrF,EAAAiuD,YAAA5C,EAAAO,SAAA5rD,EAAAiuD,YAAAu9B,IAGA,MAAAxrF,EAAA6wF,iBAAA,MAAA7wF,EAAAksF,YACAlsF,EAAAiuD,YAAA5C,EAAAO,SACA5rD,EAAAiuD,YACAg+B,IAIA,MAAAjsF,EAAAnP,MAAA,CACA,GAAAigG,GAAA1oC,EAAApoD,EAAA+wF,QAAA,eAEA/wF,GAAAiuD,YAAA5C,EAAAO,SACA5rD,EAAAiuD,YACA6iC,GAIA,GAAA,MAAA9wF,EAAAgxF,cAAA,CACA,GAAAC,GAAA7oC,EAAApoD,EAAA+wF,QAAA,uBAEA/wF,GAAAiuD,YAAA5C,EAAAO,SACA5rD,EAAAiuD,YACAgjC,IA8BA,GAzBA,MAAAjxF,EAAAkxF,iBACAlxF,EAAAkxF,eAAAd,EAEA,MAAApwF,EAAA87B,OACA97B,EAAAkxF,eAAA7lC,EAAAO,SACA5rD,EAAAkxF,eACA/D,IAIA,MAAAntF,EAAAizD,cACAjzD,EAAAkxF,eAAA7lC,EAAAO,SACA5rD,EAAAkxF,eACAlE,IAIAhtF,EAAAmxF,gBACAnxF,EAAAkxF,eAAA7lC,EAAAO,SACA5rD,EAAAkxF,eACA3B,KAKA,MAAAvvF,EAAAoxF,gBAAA,CACA,GAAApxF,EAAAqxF,SACArxF,EAAAoxF,gBAAAv7C,MACA,CACA,GAAAy7C,GAAAjmC,EAAAO,SAAA/V,EAAA66C,EAEA1wF,GAAAoxF,gBAAAE,EAiBA,GAdA,IAAAtxF,EAAAqvF,0BACArvF,EAAAoxF,gBAAA/lC,EAAAO,SACA5rD,EAAAoxF,gBACAhC,IAIApvF,EAAAuxF,gBACAvxF,EAAAoxF,gBAAA/lC,EAAAO,SACA5rD,EAAAoxF,gBACA1B,IAKA,MAAA1vF,EAAAwxF,kBACA,MAAAxxF,EAAAyxF,aACA,MAAAzxF,EAAA0xF,sBACA,CACA,GAAAC,GAAAvpC,EAAApoD,EAAA+wF,QAAA,qBAEA/wF,GAAAoxF,gBAAA/lC,EAAAO,SACA5rD,EAAAoxF,gBACAO,GAIA3xF,EAAAoxF,gBAAA/lC,EAAAO,SACA5rD,EAAAoxF,gBACAvD,GAIA,GAAA,MAAA7tF,EAAA4xF,iBAAA,CA6BA,GA5BA5xF,EAAAqxF,SACArxF,EAAA4xF,iBAAAh/B,EAEA5yD,EAAA4xF,iBAAAp/B,EAIA,MAAAxyD,EAAAizD,cACAjzD,EAAA4xF,iBAAAvmC,EAAAO,SACA5rD,EAAA4xF,iBACA7+B,IAIA/yD,EAAA6xF,aACA7xF,EAAA4xF,iBAAAvmC,EAAAO,SACA5rD,EAAA4xF,iBACAr+B,IAIAvzD,EAAAqxF,WACArxF,EAAA4xF,iBAAAvmC,EAAAO,SACA5rD,EAAA4xF,iBACAvB,IAKA,MAAArwF,EAAA8xF,mBACA,MAAA9xF,EAAA+xF,cACA,MAAA/xF,EAAAgyF,uBACA,CACA,GAAAC,GAAA7pC,EAAApoD,EAAA+wF,QAAA,sBAEA/wF,GAAA4xF,iBAAAvmC,EAAAO,SACA5rD,EAAA4xF,iBACAK,GAIAjyF,EAAA4xF,iBAAAvmC,EAAAO,SACA5rD,EAAA4xF,iBACAj9B,GAIA,GAAA,gBAAA30D,GAAAlV,SAEA,GAAAkV,EAAAlV,SAAAjC,QAAA,KAAA,EAAA,CAEA,GAAAqpG,GAAAlyF,EAAAlV,SAAAtC,MAAA,KACA2pG,EAAAD,EAAA,EAEAlyF,GAAAlV,UAAAkV,EAAAlV,SAAAqnG,OAEAnyF,GAAAlV,UAAAkV,EAAAlV,SAIA,IAAAnF,EAAAqe,QAAAhE,EAAAlV,UAAA,CACA,GAAAK,GAAA,GAAA2pE,EACA90D,GAAAlV,SAAAtF,KAAA,KAIA,KAAA,GAFA4sG,GAAApyF,EAAAlV,SAEA2U,EAAA,EAAAA,EAAA2yF,EAAA3pG,OAAAgX,IAAA,CACA,GAAAlY,GAAA6qG,EAAA3yF,GACA3U,IAEA,KAEAA,EAAAgqE,EAAAI,SAAA3tE,GACA,MAAAF,GACA,IAEAE,EAAAoJ,KAAA+0C,SAAA2sD,gBAAA9qG,EACAuD,EAAAgqE,EAAAI,SAAA3tE,GACA,MAAA+qG,GAIAtyF,EAAAq/C,OAAAl2D,OAAAm2D,SAAAA,QAAAC,MACAD,QAAAC,KACA,mCAAAh4D,EAAA,wEAKA,WAIA4D,EAAA0Y,OAAA/Y,GAGAkV,EAAAm1D,aAAAhqE,MACA,CACA,GAAAonG,GAAAz9B,EAAAI,SACAvkE,KAAA+0C,SAAA2sD,gBAAA,MAEAG,EAAA,GAAA19B,GAAA90D,EAAAlV,SAEA0nG,GAAA3uF,OAAA0uF,GAEAvyF,EAAAm1D,aAAAq9B,EAGA,MAAAxyF,IAGA4wF,EAAA/1F,UAAAR,MAAA,WACA,QAAAo4F,GAAA3jG,GAEA,QAAAkT,GAAA/N,GACA,MAAAq8F,GAAAr8F,IAAAA,EAGA,MAAAnF,GAAApC,QAAA,oBAAAsV,GAGA,QAAAsU,GAAA8pB,EAAA91C,GAEA,GAAA,KAAA3E,EAAAghB,KAAAy5B,EAAAq0B,MACA,MAAAnqE,EAIA,IAAAA,EAAAo3B,UAAAp3B,EAAAo3B,SAAAj5B,OAAA,EAAA,CAMA,IAAA,GAHAuZ,GAAArc,EAAAke,QAAA,KAAAvZ,GAGA5B,EAAA4B,EAAAo3B,SAAAj5B,OAAA,EAAAC,GAAA,EAAAA,IAAA,CACA,GAAA8mE,GAAAllE,EAAAo3B,SAAAh5B,GAEAgR,EAAA4c,EAAA8pB,EAAAovB,EAGA,OAAA91D,GACAsI,EAAA0f,SAAAj4B,OAAAf,EAAA,GAKA,MAAAsZ,GAAA0f,SAAAj5B,OAAA,EACAuZ,EAIAsU,EAAA8pB,EAAAp+B,GAGA,GAAAqoB,GAAAooE,EAAAnoG,EAAAwE,MAAArE,cACAgqE,EAAAg+B,EAAAryD,EAAAq0B,MAAAhqE,aAGA,OAAA4/B,GAAAxhC,QAAA4rE,MACAnqE,EAIA,KAGAqG,KAAA+0C,UACAqrD,QAAA,KACAsB,gBAAA,UACAd,eAAA,EACAlyC,OAAA,EACAqzC,mBAAA,EACArlC,aAAAhC,EAAAgC,aACAviE,SAAA6lG,EACAr6E,QAAAA,EACAk2E,mBAAA,EACAG,mBAAA,EACAG,uBAAA,EACAuC,wBAAA,EACA8B,eAAA,EACAviC,OAAA,SAAAtkE,GACA,MAAAA,IAEAqoG,eAAA,SAAAp3F,GACA,MAAAA,GAAAzM,MAEA8jG,kBAAA,SAAA5jE,GACA,MAAAA,GAAAlgC,MAEA+jG,MAAA,UACAxoF,MAAA,YAIAumF,EAAA/1F,UAAAg1B,IAAA,SAAAhlC,EAAArD,GACA,GAAAsrG,GAAAntG,EAAAme,UAAAjZ,GAEAP,IACAA,GAAAwoG,GAAAtrG,CAEA,IAAAurG,GAAA1nC,EAAA2B,aAAA1iE,EAEA3E,GAAAke,OAAAlT,KAAA+0C,SAAAqtD,GAGA,IAAArtD,GAAA,GAAAkrD,EAEA,OAAAlrD,KAGA2iB,EAAArmB,OAAA,mBACA,UACA,SACA,aACA,WACA,SAAAomB,EAAAziE,EAAAirG,EAAAvlC,GACA,QAAA2nC,GAAAhzF,EAAAkzC,GASA,GARAviD,KAAAqP,QAAAA,EAEA,MAAAkzC,GACAviD,KAAA85B,YAAAyoB,GAGAviD,KAAAqP,QAAA4wF,EAAAp1F,MAAA7K,KAAAqP,SAEAkzC,GAAAA,EAAAp9C,GAAA,SAAA,CACA,GAAAm9F,GAAA7qC,EAAAz3D,KAAAkX,IAAA,WAAA,mBAEAlX,MAAAqP,QAAAiuD,YAAA5C,EAAAO,SACAj7D,KAAAqP,QAAAiuD,YACAglC,IAoGA,MA/FAD,GAAAn4F,UAAA4vB,YAAA,SAAAuvB,GACA,GAAAk5C,IAAA,UAEA,OAAAviG,KAAAqP,QAAAqxF,WACA1gG,KAAAqP,QAAAqxF,SAAAr3C,EAAAxvD,KAAA,aAGA,MAAAmG,KAAAqP,QAAA8f,WACAnvB,KAAAqP,QAAA8f,SAAAk6B,EAAAxvD,KAAA,aAGA,MAAAmG,KAAAqP,QAAAlV,WACAkvD,EAAAxvD,KAAA,QACAmG,KAAAqP,QAAAlV,SAAAkvD,EAAAxvD,KAAA,QAAAd,cACAswD,EAAAj4B,QAAA,UAAAv3B,KAAA,UACAmG,KAAAqP,QAAAlV,SAAAkvD,EAAAj4B,QAAA,UAAAv3B,KAAA,UAIA,MAAAmG,KAAAqP,QAAA6B,MACAm4C,EAAAxvD,KAAA,OACAmG,KAAAqP,QAAA6B,IAAAm4C,EAAAxvD,KAAA,OACAwvD,EAAAj4B,QAAA,SAAAv3B,KAAA,OACAmG,KAAAqP,QAAA6B,IAAAm4C,EAAAj4B,QAAA,SAAAv3B,KAAA,OAEAmG,KAAAqP,QAAA6B,IAAA,OAIAm4C,EAAAxvD,KAAA,WAAAmG,KAAAqP,QAAA8f,UACAk6B,EAAAxvD,KAAA,WAAAmG,KAAAqP,QAAAqxF,UAEAr3C,EAAA1vD,KAAA,iBACAqG,KAAAqP,QAAAq/C,OAAAl2D,OAAAm2D,SAAAA,QAAAC,MACAD,QAAAC,KACA,2KAMAvF,EAAA1vD,KAAA,OAAA0vD,EAAA1vD,KAAA,gBACA0vD,EAAA1vD,KAAA,QAAA,IAGA0vD,EAAA1vD,KAAA,aACAqG,KAAAqP,QAAAq/C,OAAAl2D,OAAAm2D,SAAAA,QAAAC,MACAD,QAAAC,KACA,gKAMAvF,EAAAtvD,KAAA,YAAAsvD,EAAA1vD,KAAA,YACA0vD,EAAA1vD,KAAA,YAAA0vD,EAAA1vD,KAAA,YAGA,IAAA6oG,KAKAA,GADAxtG,EAAA4rB,GAAAO,QAAA,MAAAnsB,EAAA4rB,GAAAO,OAAA9b,OAAA,EAAA,IAAAgkD,EAAA,GAAAm5C,QACAxtG,EAAAke,QAAA,KAAAm2C,EAAA,GAAAm5C,QAAAn5C,EAAA1vD,QAEA0vD,EAAA1vD,MAGA,IAAAA,GAAA3E,EAAAke,QAAA,KAAAsvF,EAEA7oG,GAAA+gE,EAAA2B,aAAA1iE,EAEA,KAAA,GAAAO,KAAAP,GACA3E,EAAAkI,QAAAhD,EAAAqoG,QAIAvtG,EAAA+sB,cAAA/hB,KAAAqP,QAAAnV,IACAlF,EAAAke,OAAAlT,KAAAqP,QAAAnV,GAAAP,EAAAO,IAEA8F,KAAAqP,QAAAnV,GAAAP,EAAAO,GAIA,OAAA8F,OAGAqiG,EAAAn4F,UAAAgN,IAAA,SAAAhd,GACA,MAAA8F,MAAAqP,QAAAnV,IAGAmoG,EAAAn4F,UAAAg1B,IAAA,SAAAhlC,EAAA/B,GACA6H,KAAAqP,QAAAnV,GAAA/B,GAGAkqG,IAGA3qC,EAAArmB,OAAA,gBACA,SACA,YACA,UACA,UACA,SAAAr8C,EAAAqtG,EAAA3nC,EAAAsF,GACA,GAAAyiC,GAAA,SAAAlgD,EAAAlzC,GACA,MAAAkzC,EAAA5oD,KAAA,YACA4oD,EAAA5oD,KAAA,WAAAywD,UAGApqD,KAAAuiD,SAAAA,EAEAviD,KAAA3K,GAAA2K,KAAA0iG,YAAAngD,GAEAlzC,EAAAA,MAEArP,KAAAqP,QAAA,GAAAgzF,GAAAhzF,EAAAkzC,GAEAkgD,EAAAznC,UAAA/wD,YAAAH,KAAA9J,KAIA,IAAA6nC,GAAA0a,EAAAxoD,KAAA,aAAA,CACAwoD,GAAA5oD,KAAA,eAAAkuC,GACA0a,EAAAxoD,KAAA,WAAA,KAIA,IAAA4oG,GAAA3iG,KAAAqP,QAAA6H,IAAA,cACAlX,MAAAs9D,YAAA,GAAAqlC,GAAApgD,EAAAviD,KAAAqP,QAEA,IAAA2vD,GAAAh/D,KAAAu9D,QAEAv9D,MAAA4iG,gBAAA5jC,EAEA,IAAA6jC,GAAA7iG,KAAAqP,QAAA6H,IAAA,mBACAlX,MAAAq+B,UAAA,GAAAwkE,GAAAtgD,EAAAviD,KAAAqP,SACArP,KAAAmhE,WAAAnhE,KAAAq+B,UAAAk/B,SAEAv9D,KAAAq+B,UAAAqD,SAAA1hC,KAAAmhE,WAAAnC,EAEA,IAAA8jC,GAAA9iG,KAAAqP,QAAA6H,IAAA,kBACAlX,MAAAqlD,SAAA,GAAAy9C,GAAAvgD,EAAAviD,KAAAqP,SACArP,KAAA+9D,UAAA/9D,KAAAqlD,SAAAkY,SAEAv9D,KAAAqlD,SAAA3jB,SAAA1hC,KAAA+9D,UAAAiB,EAEA,IAAA+jC,GAAA/iG,KAAAqP,QAAA6H,IAAA,iBACAlX,MAAA0iB,QAAA,GAAAqgF,GAAAxgD,EAAAviD,KAAAqP,QAAArP,KAAAs9D,aACAt9D,KAAAw9D,SAAAx9D,KAAA0iB,QAAA66C,SAEAv9D,KAAA0iB,QAAAgf,SAAA1hC,KAAAw9D,SAAAx9D,KAAA+9D,UAIA,IAAApzD,GAAA3K,IAGAA,MAAAgjG,gBAGAhjG,KAAAijG,qBAGAjjG,KAAAkjG,sBACAljG,KAAAmjG,2BACAnjG,KAAAojG,0BACApjG,KAAAqjG,yBACArjG,KAAAsjG,kBAGAtjG,KAAAs9D,YAAA/9C,QAAA,SAAAgkF,GACA54F,EAAAnI,QAAA,oBACA7I,KAAA4pG,MAKAhhD,EAAA7sD,SAAA,6BACA6sD,EAAAxoD,KAAA,cAAA,QAGAiG,KAAAwjG,kBAEAjhD,EAAA5oD,KAAA,UAAAqG,MA0cA,OAvcA06D,GAAAC,OAAA8nC,EAAA/nC,EAAAoB,YAEA2mC,EAAAv4F,UAAAw4F,YAAA,SAAAngD,GACA,GAAAltD,GAAA,EAYA,OATAA,GADA,MAAAktD,EAAAxoD,KAAA,MACAwoD,EAAAxoD,KAAA,MACA,MAAAwoD,EAAAxoD,KAAA,QACAwoD,EAAAxoD,KAAA,QAAA,IAAA2gE,EAAAuB,cAAA,GAEAvB,EAAAuB,cAAA,GAGA5mE,EAAA,WAAAA,GAKAotG,EAAAv4F,UAAA04F,gBAAA,SAAA5jC,GACAA,EAAA1/B,YAAAt/B,KAAAuiD,SAEA,IAAA7oC,GAAA1Z,KAAAyjG,cAAAzjG,KAAAuiD,SAAAviD,KAAAqP,QAAA6H,IAAA,SAEA,OAAAwC,GACAslD,EAAAlpE,IAAA,QAAA4jB,IAIA+oF,EAAAv4F,UAAAu5F,cAAA,SAAAlhD,EAAA3V,GACA,GAAA82D,GAAA,+DAEA,IAAA,WAAA92D,EAAA,CACA,GAAA+2D,GAAA3jG,KAAAyjG,cAAAlhD,EAAA,QAEA,OAAA,OAAAohD,EACAA,EAGA3jG,KAAAyjG,cAAAlhD,EAAA,WAGA,GAAA,WAAA3V,EAAA,CACA,GAAAg3D,GAAArhD,EAAAgH,YAAA,EAEA,OAAAq6C,IAAA,EACA,OAGAA,EAAA,KAGA,GAAA,SAAAh3D,EAAA,CACA,GAAAnmC,GAAA87C,EAAAxoD,KAAA,QAEA,IAAA,gBAAA,GACA,MAAA,KAKA,KAAA,GAFAkM,GAAAQ,EAAA5O,MAAA,KAEA1D,EAAA,EAAA2a,EAAA7I,EAAAnO,OAAA3D,EAAA2a,EAAA3a,GAAA,EAAA,CACA,GAAA4F,GAAAkM,EAAA9R,GAAA4H,QAAA,MAAA,IACAgN,EAAAhP,EAAAsX,MAAAqyF,EAEA,IAAA,OAAA36F,GAAAA,EAAAjR,QAAA,EACA,MAAAiR,GAAA,GAIA,MAAA,MAGA,MAAA6jC,IAGA61D,EAAAv4F,UAAA84F,cAAA,WACAhjG,KAAAs9D,YAAA33D,KAAA3F,KAAAA,KAAAg/D,YACAh/D,KAAAq+B,UAAA14B,KAAA3F,KAAAA,KAAAg/D,YAEAh/D,KAAAqlD,SAAA1/C,KAAA3F,KAAAA,KAAAg/D,YACAh/D,KAAA0iB,QAAA/c,KAAA3F,KAAAA,KAAAg/D,aAGAyjC,EAAAv4F,UAAA+4F,mBAAA,WACA,GAAAt4F,GAAA3K,IAEAA,MAAAuiD,SAAAvmB,GAAA,iBAAA,WACArxB,EAAA2yD,YAAA/9C,QAAA,SAAA5lB,GACAgR,EAAAnI,QAAA,oBACA7I,KAAAA,QAKAqG,KAAA6jG,MAAAnpC,EAAA/0D,KAAA3F,KAAAwjG,gBAAAxjG,MAEAA,KAAAuiD,SAAA,GAAA92B,aACAzrB,KAAAuiD,SAAA,GAAA92B,YAAA,mBAAAzrB,KAAA6jG,MAGA,IAAAC,GAAAtrG,OAAAurG,kBACAvrG,OAAAwrG,wBACAxrG,OAAAyrG,mBAGA,OAAAH,GACA9jG,KAAAkkG,UAAA,GAAAJ,GAAA,SAAAK,GACAnvG,EAAAqE,KAAA8qG,EAAAx5F,EAAAk5F,SAEA7jG,KAAAkkG,UAAAE,QAAApkG,KAAAuiD,SAAA,IACA54B,YAAA,EACA06E,SAAA,KAEArkG,KAAAuiD,SAAA,GAAA7wC,kBACA1R,KAAAuiD,SAAA,GAAA7wC,iBAAA,kBAAA/G,EAAAk5F,OAAA,IAIApB,EAAAv4F,UAAAg5F,oBAAA,WACA,GAAAv4F,GAAA3K,IAEAA,MAAAs9D,YAAAthC,GAAA,IAAA,SAAAplC,EAAA64C,GACA9kC,EAAAnI,QAAA5L,EAAA64C,MAIAgzD,EAAAv4F,UAAAi5F,yBAAA,WACA,GAAAx4F,GAAA3K,KACAskG,GAAA,SAAA,QAEAtkG,MAAAq+B,UAAArC,GAAA,SAAA,WACArxB,EAAA45F,mBAGAvkG,KAAAq+B,UAAArC,GAAA,QAAA,SAAAyT,GACA9kC,EAAAokB,MAAA0gB,KAGAzvC,KAAAq+B,UAAArC,GAAA,IAAA,SAAAplC,EAAA64C,GACAz6C,EAAAkI,QAAAtG,EAAA0tG,SAIA35F,EAAAnI,QAAA5L,EAAA64C,MAIAgzD,EAAAv4F,UAAAk5F,wBAAA,WACA,GAAAz4F,GAAA3K,IAEAA,MAAAqlD,SAAArpB,GAAA,IAAA,SAAAplC,EAAA64C,GACA9kC,EAAAnI,QAAA5L,EAAA64C,MAIAgzD,EAAAv4F,UAAAm5F,uBAAA;AACA,GAAA14F,GAAA3K,IAEAA,MAAA0iB,QAAAsZ,GAAA,IAAA,SAAAplC,EAAA64C,GACA9kC,EAAAnI,QAAA5L,EAAA64C,MAIAgzD,EAAAv4F,UAAAo5F,gBAAA,WACA,GAAA34F,GAAA3K,IAEAA,MAAAg8B,GAAA,OAAA,WACArxB,EAAAq0D,WAAAtpE,SAAA,6BAGAsK,KAAAg8B,GAAA,QAAA,WACArxB,EAAAq0D,WAAA92B,YAAA,6BAGAloC,KAAAg8B,GAAA,SAAA,WACArxB,EAAAq0D,WAAA92B,YAAA,iCAGAloC,KAAAg8B,GAAA,UAAA,WACArxB,EAAAq0D,WAAAtpE,SAAA,iCAGAsK,KAAAg8B,GAAA,OAAA,WACArxB,EAAAq0D,WAAA92B,YAAA,8BAGAloC,KAAAg8B,GAAA,QAAA,SAAAyT,GACA9kC,EAAAiqC,UACAjqC,EAAAnI,QAAA,WAGAxC,KAAAs9D,YAAAp9D,MAAAuvC,EAAA,SAAA91C,GACAgR,EAAAnI,QAAA,eACA7I,KAAAA,EACAuG,MAAAuvC,QAKAzvC,KAAAg8B,GAAA,eAAA,SAAAyT,GACAzvC,KAAAs9D,YAAAp9D,MAAAuvC,EAAA,SAAA91C,GACAgR,EAAAnI,QAAA,kBACA7I,KAAAA,EACAuG,MAAAuvC,QAKAzvC,KAAAg8B,GAAA,WAAA,SAAA8jC,GACA,GAAA5lE,GAAA4lE,EAAArmD,KAEA9O,GAAAiqC,SACA16C,IAAA8lE,EAAAO,KAAArmE,IAAA8lE,EAAAE,KACAhmE,IAAA8lE,EAAAc,IAAAhB,EAAA0kC,QACA75F,EAAAmM,QAEAgpD,EAAAvnC,kBACAr+B,IAAA8lE,EAAAG,OACAx1D,EAAAnI,QAAA,qBAEAs9D,EAAAvnC,kBACAr+B,IAAA8lE,EAAAQ,OAAAV,EAAA1nB,SACAztC,EAAAnI,QAAA,qBAEAs9D,EAAAvnC,kBACAr+B,IAAA8lE,EAAAc,IACAn2D,EAAAnI,QAAA,uBAEAs9D,EAAAvnC,kBACAr+B,IAAA8lE,EAAAgB,OACAr2D,EAAAnI,QAAA,mBAEAs9D,EAAAvnC,mBAGAr+B,IAAA8lE,EAAAG,OAAAjmE,IAAA8lE,EAAAQ,OACAtmE,IAAA8lE,EAAAgB,MAAAlB,EAAA0kC,UACA75F,EAAAu+B,OAEA42B,EAAAvnC,qBAMAkqE,EAAAv4F,UAAAs5F,gBAAA,WACAxjG,KAAAqP,QAAA6vB,IAAA,WAAAl/B,KAAAuiD,SAAA1oD,KAAA,aAEAmG,KAAAqP,QAAA6H,IAAA,aACAlX,KAAA40C,UACA50C,KAAA8W,QAGA9W,KAAAwC,QAAA,eAEAxC,KAAAwC,QAAA,cAQAigG,EAAAv4F,UAAA1H,QAAA,SAAA5L,EAAA2T,GACA,GAAAk6F,GAAAhC,EAAAznC,UAAAx4D,QACAkiG,GACAx7D,KAAA,UACApyB,MAAA,UACAvN,OAAA,YACA8vF,SAAA,cAOA,IAJApiG,SAAAsT,IACAA,MAGA3T,IAAA8tG,GAAA,CACA,GAAAC,GAAAD,EAAA9tG,GACAguG,GACA3hC,WAAA,EACArsE,KAAAA,EACA2T,KAAAA,EAKA,IAFAk6F,EAAA36F,KAAA9J,KAAA2kG,EAAAC,GAEAA,EAAA3hC,UAGA,YAFA14D,EAAA04D,WAAA,GAMAwhC,EAAA36F,KAAA9J,KAAApJ,EAAA2T,IAGAk4F,EAAAv4F,UAAAq6F,eAAA,WACAvkG,KAAAqP,QAAA6H,IAAA,cAIAlX,KAAA40C,SACA50C,KAAA8W,QAEA9W,KAAAkpC,SAIAu5D,EAAAv4F,UAAAg/B,KAAA,WACAlpC,KAAA40C,UAIA50C,KAAAwC,QAAA,aAGAigG,EAAAv4F,UAAA4M,MAAA,WACA9W,KAAA40C,UAIA50C,KAAAwC,QAAA,aAGAigG,EAAAv4F,UAAA0qC,OAAA,WACA,MAAA50C,MAAAg/D,WAAA32B,SAAA,4BAGAo6D,EAAAv4F,UAAA8kB,SAAA,WACA,MAAAhvB,MAAAg/D,WAAA32B,SAAA,6BAGAo6D,EAAAv4F,UAAA6kB,MAAA,SAAAp1B,GAEAqG,KAAAgvB,aAIAhvB,KAAAg/D,WAAAtpE,SAAA,4BACAsK,KAAAwC,QAAA,cAGAigG,EAAAv4F,UAAAggD,OAAA,SAAA3/C,GACAvK,KAAAqP,QAAA6H,IAAA,UAAA1e,OAAAm2D,SAAAA,QAAAC,MACAD,QAAAC,KACA,qJAMA,MAAArkD,GAAA,IAAAA,EAAAzS,SACAyS,IAAA,GAGA,IAAA4kB,IAAA5kB,EAAA,EAEAvK,MAAAuiD,SAAA1oD,KAAA,WAAAs1B,IAGAszE,EAAAv4F,UAAAvQ,KAAA,WACAqG,KAAAqP,QAAA6H,IAAA,UACA1M,UAAA1S,OAAA,GAAAU,OAAAm2D,SAAAA,QAAAC,MACAD,QAAAC,KACA,oIAKA,IAAAj1D,KAMA,OAJAqG,MAAAs9D,YAAA/9C,QAAA,SAAA65E,GACAz/F,EAAAy/F,IAGAz/F,GAGA8oG,EAAAv4F,UAAA/R,IAAA,SAAAoS,GAQA,GAPAvK,KAAAqP,QAAA6H,IAAA,UAAA1e,OAAAm2D,SAAAA,QAAAC,MACAD,QAAAC,KACA,uIAKA,MAAArkD,GAAA,IAAAA,EAAAzS,OACA,MAAAkI,MAAAuiD,SAAApqD,KAGA,IAAA0sG,GAAAt6F,EAAA,EAEAvV,GAAAqe,QAAAwxF,KACAA,EAAA7vG,EAAAse,IAAAuxF,EAAA,SAAA1vG,GACA,MAAAA,GAAAmS,cAIAtH,KAAAuiD,SAAApqD,IAAA0sG,GAAAriG,QAAA,WAGAigG,EAAAv4F,UAAAkgD,QAAA,WACApqD,KAAAg/D,WAAA7/D,SAEAa,KAAAuiD,SAAA,GAAA1wC,aACA7R,KAAAuiD,SAAA,GAAA1wC,YAAA,mBAAA7R,KAAA6jG,OAGA,MAAA7jG,KAAAkkG,WACAlkG,KAAAkkG,UAAAY,aACA9kG,KAAAkkG,UAAA,MACAlkG,KAAAuiD,SAAA,GAAA5wC,qBACA3R,KAAAuiD,SAAA,GACA5wC,oBAAA,kBAAA3R,KAAA6jG,OAAA,GAGA7jG,KAAA6jG,MAAA,KAEA7jG,KAAAuiD,SAAAluB,IAAA,YACAr0B,KAAAuiD,SAAAxoD,KAAA,WAAAiG,KAAAuiD,SAAA5oD,KAAA,iBAEAqG,KAAAuiD,SAAAra,YAAA,6BACAloC,KAAAuiD,SAAAxoD,KAAA,cAAA,SACAiG,KAAAuiD,SAAAztB,WAAA,WAEA90B,KAAAs9D,YAAAlT,UACApqD,KAAAq+B,UAAA+rB,UACApqD,KAAAqlD,SAAA+E,UACApqD,KAAA0iB,QAAA0nC,UAEApqD,KAAAs9D,YAAA,KACAt9D,KAAAq+B,UAAA,KACAr+B,KAAAqlD,SAAA,KACArlD,KAAA0iB,QAAA,MAGA+/E,EAAAv4F,UAAAqzD,OAAA,WACA,GAAAyB,GAAAhqE,EACA,0IAcA,OARAgqE,GAAAjlE,KAAA,MAAAiG,KAAAqP,QAAA6H,IAAA,QAEAlX,KAAAg/D,WAAAA,EAEAh/D,KAAAg/D,WAAAtpE,SAAA,sBAAAsK,KAAAqP,QAAA6H,IAAA,UAEA8nD,EAAArlE,KAAA,UAAAqG,KAAAuiD,UAEAyc,GAGAyjC,IAGA/qC,EAAArmB,OAAA,qBACA,UACA,SAAAr8C,GAEA,MAAAA,KAGA0iE,EAAArmB,OAAA,kBACA,SACA,oBAEA,iBACA,sBACA,SAAAr8C,EAAAuc,EAAAkxF,EAAAxC,GACA,GAAA,MAAAjrG,EAAA4rB,GAAA+2C,QAAA,CAEA,GAAAotC,IAAA,OAAA,QAAA,UAEA/vG,GAAA4rB,GAAA+2C,QAAA,SAAAtoD,GAGA,GAFAA,EAAAA,MAEA,gBAAAA,GAOA,MANArP,MAAA3G,KAAA,WACA,GAAA2rG,GAAAhwG,EAAAke,QAAA,KAAA7D,EAEA,IAAAozF,GAAAztG,EAAAgL,MAAAglG,KAGAhlG,IACA,IAAA,gBAAAqP,GAAA,CACA,GAAApH,EAkBA,OAhBAjI,MAAA3G,KAAA,WACA,GAAAy6C,GAAA9+C,EAAAgL,MAAArG,KAAA,UAEA,OAAAm6C,GAAAt7C,OAAAm2D,SAAAA,QAAAnvD,OACAmvD,QAAAnvD,MACA,gBAAA6P,EAAA,gEAKA,IAAA9E,GAAAxP,MAAAmP,UAAAjP,MAAA6O,KAAAU,UAAA,EAEAvC,GAAA6rC,EAAAzkC,GAAAxE,MAAAipC,EAAAvpC,KAIAvV,EAAAkI,QAAAmS,EAAA01F,MACA/kG,KAGAiI,EAEA,KAAA,IAAAmI,OAAA,kCAAAf,IASA,MAJA,OAAAra,EAAA4rB,GAAA+2C,QAAA5iB,WACA//C,EAAA4rB,GAAA+2C,QAAA5iB,SAAAkrD,GAGAwC,KAKApxD,OAAAqmB,EAAArmB,OACAomB,QAAAC,EAAAD,YAMAE,EAAAD,EAAAD,QAAA,iBAQA,OAHAlnD,GAAAqQ,GAAA+2C,QAAArmB,IAAAomB,EAGAC,ICh8KA,SAAA3iE,GACAA,EAAA4rB,GAAAqkF,oBAAA,SAAA51F,GAMA,QAAA8J,KAEA+rF,EAAA,GAAAC,GACAC,GAAAC,cAAAH,EAAAI,EAAA,IAGAC,IAEAC,IAGA,QAAAA,KACA,GAAAlmG,GAAA,SAAA3F,EAAAgC,EAAAC,GACA8D,iBAAA,GAEA,GAAA/F,EAAA2F,QACA4lG,EAAAO,gBAAA9rG,EAAA4F,SAEArB,WAAAlE,YAAA,0BAAA,SAAA8D,yBAAAnE,EAAAgG,qBAAA,UAGAH,EAAA,SAAA5D,EAAAD,EAAAE,GACA6D,iBAAA,GACAxB,WAAA,QAAArC,EAAA,SAEA6D,kBAAA,GACAjE,KAAAiqG,qBAAApmG,EAAAE,EAAAhN,UAAAK,0BAGA,QAAA8yG,KACA,GAAAhsG,GAAAyrG,GAAAQ,KAAAV,GAEA5lG,EAAA,SAAA3F,EAAAgC,EAAAC,GAGA,GAFA8D,iBAAA,GAEA,GAAA/F,EAAA2F,QAAA,CACApB,WAAAlE,YAAA,yBAAAA,YAAA,wBAAA,UACA,KAEA,gBAAA6rG,yBACAA,uBAAAC,gBAAAC,kBACA1wG,GAAAsE,EAAA4F,QAAA,GACAymG,YAAAd,EAAAc,cACAC,SAAAf,EAAAe,WACAC,SAAAhB,EAAAgB,WACAC,OAAAjB,EAAAiB,SACAC,OAAAlB,EAAAkB,SACAjoG,KAAA+mG,EAAA/mG,OACAkoG,qBAAA,YAIAd,IACA,MAAAltG,SAIA6F,YAAAlE,YAAA,0BAAA,SAAA8D,yBAAAnE,EAAAgG,qBAAA,UAGAH,EAAA,SAAA5D,EAAAD,EAAAE,GACA6D,iBAAA,GACAxB,WAAA,QAAArC,EAAA,SAEA6D,kBAAA,GAEA/F,EAAA2sG,oBACA3sG,EAAAwsG,OAAAxsG,EAAAssG,SACAf,EAAAiB,OAAAjB,EAAAe,cAEAtsG,EAAAusG,SAAA,KACAvsG,EAAAysG,OAAA,MAGA3qG,KAAA8qG,0BACAjnG,EACAE,EACAhN,UAAAK,yBACA8G,EAAAqsG,YACArsG,EAAA2sG,mBACA3sG,EAAAssG,SACAtsG,EAAAusG,SACAvsG,EAAAwsG,OACAxsG,EAAAysG,OACAzsG,EAAAwE,MAIA,QAAAonG,KACA,GAAAiB,GAAAnqG,eAAA,eAEAqI,WAAA+hG,WAAA10C,QAAA,GACAuzC,EAAAlsG,KAAA,uBAAAstG,UAAA,UAEApB,EAAAlsG,KAAA,uBAAAstG,UAAA,UACAxB,EAAAc,YAAA,MACAd,EAAAe,SAAAO,GACAtB,EAAAgB,SAAA,MACAhB,EAAAiB,OAAAK,GACAtB,EAAAkB,OAAA,MACAlB,EAAA/mG,KAAA,MACAmnG,EAAAlsG,KAAA,uBAAAstG,WAAAC,MAAA,2BAEAjiG,UAAA+hG,WAAA10C,QAAA,GACAuzC,EAAAlsG,KAAA,uBAAAstG,WAAAE,YAAA,YA7GA,GAAA1B,GACAI,EAAAtwG,EAAAgL,MAiHAgmG,EAAA,SAAAlqF,GACA,mBAAA,KAAAA,MACA,mBAAAA,GAAA,cAAAA,EAAAkqF,YAAA,IACA,mBAAAlqF,GAAA,cAAAA,EAAA+qF,YAAA,GAEA,IAAAl8F,GAAA3K,IACA2K,GAAAq7F,YAAAZ,GAAA0B,WAAAhrF,EAAAkqF,aACAr7F,EAAAk8F,YAAAzB,GAAA0B,WAAAhrF,EAAA+qF,cAGA1B,EAAA,WACA,GAAAx6F,GAAA3K,IACA2K,GAAAo8F,kCAAA3B,GAAA0B,WAAAvzG,gBAAA,6CAAAyzG,wBACAr8F,EAAAq7F,YAAAZ,GAAA0B,aACAn8F,EAAA27F,mBAAAlB,GAAA0B,YAAA,GACAn8F,EAAAs7F,SAAAb,GAAA0B,aACAn8F,EAAAu7F,SAAAd,GAAA0B,aACAn8F,EAAAw7F,OAAAf,GAAA0B,aACAn8F,EAAAy7F,OAAAhB,GAAA0B,aACAn8F,EAAAxM,KAAAinG,GAAA0B,aACAn8F,EAAAs8F,aAAA7B,GAAA8B,kBACAv8F,EAAA86F,gBAAA,SAAA9rG,GAEAgR,EAAAs8F,aAAAE,YACAnyG,EAAAqE,KAAAM,EAAA,SAAAL,EAAAnE,GACAwV,EAAAs8F,aAAApyG,KAAA,GAAAmxG,GAAA7wG,OAGAiyG,cAAA,SAAAC,GACA1B,KAIAxsF,OAEA5I,OCvJA,IAAAs1F,yBAEA,SAAA7wG,GACAA,EAAA4rB,GAAA0mF,wBAAA,WAMA,QAAAnuF,KACA9J,GACA6D,QACAq0F,SAAA,SAAAzB,GACA0B,uBAAA,SAAAC,GACA,MAAA,WAAAA,EAAApB,uBACA,iCAEA,kCAGAqB,qBAAA,SAAAD,GACAE,EAAAF,KAGAG,4BAAA,SAAAH,GACAA,EAAAI,iBAAAzC,GAAAvlE,SAAA,WACA,GAAAioE,GAAAL,EAAApB,sBACA,OAAA,YAAAyB,EACA9tG,YAAA,yBAAA,qBACA,YAAA8tG,EACA9tG,YAAA,yBAAA,UACA,WAAA8tG,EACA9tG,YAAA,wBAAA,iBAEAA,YAAA,wBAAA,kBAEAytG,MAIAM,IAGA,QAAAA,KACA,GAAAC,GAAA,GAAA70G,MACA80G,EAAAD,EAAAE,cACAC,EAAAF,EAAA,SACA3oG,EAAA,SAAA3F,EAAAgC,EAAAC,GACA,GAAA1H,KAGAwL,kBAAA,GAEA,GAAA/F,EAAA2F,SACApL,EAAA4xG,gBAAAnsG,EAAA4F,QACAsmG,uBAAAT,GAAAgD,UAAAC,UAAAn0G,EAAAmb,GACAra,EAAA,4CAAAqE,KAAA,SAAAC,EAAAnE,GACAiwG,GAAAC,cAAAQ,uBAAA1wG,MAGA+I,WAAAlE,YAAA,wBAAA8D,yBAAAnE,EAAAgG,qBAAA,UAGAH,EAAA,SAAA5D,EAAAD,EAAAE,GAEA6D,iBAAA,GACAxB,WAAA,QAAArC,EAAA,SAGA6D,kBAAA,GACAjE,KAAA6sG,wBAAAhpG,EAAAE,EAAAhN,UAAAK,yBAAAs1G,GAGA,QAAAR,GAAAF,GACA,GAAAnoG,GAAA,SAAA3F,EAAAgC,EAAAC,GAEA8D,iBAAA,GACA,GAAA/F,EAAA2F,QACAumG,uBAAAC,gBAAA3mG,OAAAsoG,GAEAvpG,WAAAlE,YAAA,wBAAA8D,yBAAAnE,EAAAgG,qBAAA,UAGAH,EAAA,SAAA5D,EAAAD,EAAAE,GAEA6D,iBAAA,GACAxB,WAAA,QAAArC,EAAA,SAGAqC,aACAX,MAAAvD,YAAA,4BACAoE,KAAA,UACA+D,kBAAA,EACAomG,mBAAA,UACAnmG,kBAAApI,YAAA,cACAqI,iBAAArI,YAAA,eACA,WAEA0F,iBAAA,GAEAjE,KAAA+sG,0BAAAlpG,EAAAE,EAAAhN,UAAAK,yBAAA40G,EAAApyG,QAhGA,GACAga,IADAra,EAAAgL,SAsGAmZ,OAGA5I,OC7GA,IAAAk4F,qBACAC,aAAA,GAAAv1G,MACAw1G,cAAA,GAAAx1G,MACAy1G,iBAAA,aACAC,qBAAA,aACAC,qBAAA,cAEA,SAAA9zG,GACAA,EAAA4rB,GAAAmoF,iBAAA,SAAA15F,SAQA,QAAA8J,QAEA6vF,2BAEAP,oBAAA,GAAAQ,mBACAj0G,EAAA,qCAAAqE,KAAA,SAAAC,EAAAnE,GACAiwG,GAAAC,cAAAoD,oBAAAtzG,KAEA+zG,iBAAA,GAAA/1G,OAKA,QAAA61G,4BAKA,IAAA,GAHAG,IADA30G,OAAA,GAAArB,OAAAsB,QAAA,QACA,IACA20G,EAAA,GACAC,EAAAr0G,EAAA,0CACAb,EAAA,EAAAA,EAAA,EAAAA,IACAg1G,EAAA30G,OAAA,GAAArB,OAAAsB,QAAA,QAAAE,IAAAR,EAAA,KAAAS,OAAA,QACAw0G,EAAA50G,OAAA,GAAArB,OAAAsB,QAAA,QAAAE,IAAAR,EAAA,KAAAS,OAAA,OACAI,EAAAq0G,EAAAl1G,IAAAiF,KAAA,sBAAA+E,KAAAirG,GACAp0G,EAAAq0G,EAAAl1G,IAAAiF,KAAA,sBAAA+E,KAAAgrG,GAIA,QAAAD,kBAAA1C,GAEAiC,oBAAAa,wBACAC,sBAAAC,mBAAAhD,MACAiC,oBAAAgB,sBAAAF,uBAEAG,iBAAAlD,GACAmD,0BAAAnD,GAGA,QAAAgD,oBAAAhD,EAAAoD,GACA,GAAAC,GAAAr1G,OAAAgyG,GAAA/xG,QAAA,SAAAA,QAAA,QACAq1G,EAAAt1G,OAAAgyG,GAAAuD,MAAA,SAAAA,MAAA,QACAC,EAAAx1G,OAAAs1G,GAAAprG,KAAAmrG,EAAA,QAAA,EACA51G,KACAg2G,EAAA,GACAC,EAAA,GACAC,KACAC,EAAA,EACAC,EAAA,GACAC,EAAA91G,OAAAgyG,GAAA5xG,OAAA,KACA21G,GAAA,CAEA,KAAAp2G,EAAA,EAAAA,EAAA61G,EAAA71G,IAEA81G,EAAAz1G,OAAAq1G,GAAAl1G,IAAAR,EAAA,OAEAk2G,EAAA,GACAD,IAAAH,EAAAr1G,OAAA,OACAw1G,EAAAH,EAAAr1G,OAAA,KAEA21G,EADAH,IAAAE,GAOAJ,EAAAD,EAAAr1G,OAAA,cAEAu1G,EAAA55F,OAAAtb,KAAA20G,EAAA,SAAA5uE,GAAA,MAAAA,GAAAwvE,QAAAN,IAGAj2G,EAAAY,MAAAk9D,KAAAk4C,EAAAM,cAAAA,EAAAE,WAAAN,GAEA,OAAAl2G,GAGA,QAAAy2G,aAAAC,GACA,GACAC,GADAC,IAEAF,KACAE,EAAA,GAGAD,EAAAp2G,OAAAi0G,oBAAAjC,gBAAA/xG,QAAA,SAAAE,IAAAk2G,EAAA,UAAA1E,SACAsC,oBAAAjC,aAAAoE,GACA1B,iBAAA0B,GAMA,QAAAlB,kBAAAlD,GACA,GAAA77F,GAAA3K,KACA6pG,EAAAr1G,OAAAgyG,GAAA/xG,QAAA,SAAAA,QAAA,QACAq1G,EAAAt1G,OAAAgyG,GAAAuD,MAAA,SAAAA,MAAA,QACAe,EAAAt2G,QACAmW,GAAAogG,oBAAA,aAAA,YAGArrG,iBAAA,GAGAsrG,oBAEArgG,EAAAsgG,sBAAA,WAEA,GADAtgG,EAAAogG,mBAAArpG,QACA,GAAAiJ,EAAAogG,mBAAAjzG,OAAA,CAEA4H,iBAAA,GAGA+oG,oBAAAa,wBAGAC,sBAAAC,mBAAAhD,EAAAwE,kBACAvC,oBAAAgB,sBAAAF,sBAGA,IAAA2B,GAAA33G,gBAAA,yBAEA23G,IAAA,SAAAA,EAAAC,6BACAn2G,EAAA,sBAAAwN,QAAA,SACA0oG,EAAAC,4BAAA,EACAx3G,gBAAA,yBAAAu3G,MAKAE,oBAAAvB,EAAAC,EAAAn/F,EAAAsgG,uBACAI,YAAAxB,EAAAC,EAAAn/F,EAAAsgG,wBAEA13G,gBAAA,6CAAAyzG,wBAAAzzG,gBAAA,6CAAA+3G,uBACA3gG,EAAAogG,mBAAAl2G,KAAA,YACA02G,YAAA1B,EAAAC,EAAAn/F,EAAAsgG,yBAGA13G,gBAAA,6CAAAi4G,iBAAAj4G,gBAAA,6CAAAk4G,uBAEA9gG,EAAAogG,mBAAAl2G,KAAA,iBACA8V,EAAAogG,mBAAAl2G,KAAA,mBACA8V,EAAAogG,mBAAAl2G,KAAA,YACA8V,EAAAogG,mBAAAl2G,KAAA,mBACA62G,4BAAA7B,EAAAC,EAAAn/F,EAAAsgG,uBACAU,mBAAA9B,EAAAC,EAAAn/F,EAAAsgG,uBACAW,YAAA/B,EAAAC,EAAAn/F,EAAAsgG,uBACAY,mBAAAhC,EAAAC,EAAAn/F,EAAAsgG,uBAEAz2G,SAAAkK,KAAAorG,IAAA,IAEAt1G,SAAAkK,KAAAmrG,IAAA,IACAiB,EAAAt2G,OAAAgyG,GAAA/xG,QAAA,SAEAkW,EAAAogG,mBAAAl2G,KAAA,mBACAi3G,mBAAAhB,EAAAhB,EAAAn/F,EAAAsgG,yBAKA,QAAAc,mCAAAvF,GACA,GAAA77F,GAAA3K,KACAgsG,EAAAx3G,OAAAgyG,EACA77F,GAAAogG,oBAAA,aAAA,YAGArrG,iBAAA,GAEAusG,wBAAAzF,GAGAwE,oBAEArgG,EAAAsgG,sBAAA,WACAtgG,EAAAogG,mBAAArpG,QACA,GAAAiJ,EAAAogG,mBAAAjzG,SAEA4H,iBAAA,GAGA+oG,oBAAAyD,cAAAzB,WAAAtD,YACAnyG,EAAAg2G,kBAAA3xG,KAAA,SAAAC,EAAAnE,GACAszG,oBAAAyD,cAAAzB,WAAA51G,KAAA,GAAAs3G,sBAAAh3G,MAEAszG,oBAAAyD,cAAAzB,WAAA7oF,KAAAinF,wBAIAuC,oBAAAY,EAAAA,EAAArhG,EAAAsgG,uBACAI,YAAAW,EAAAA,EAAArhG,EAAAsgG,wBAEA13G,gBAAA,6CAAAyzG,wBAAAzzG,gBAAA,6CAAA+3G,uBACA3gG,EAAAogG,mBAAAl2G,KAAA,YACA02G,YAAAS,EAAAA,EAAArhG,EAAAsgG,yBAGA13G,gBAAA,6CAAAi4G,iBAAAj4G,gBAAA,6CAAAk4G,uBACA9gG,EAAAogG,mBAAAl2G,KAAA,iBACA8V,EAAAogG,mBAAAl2G,KAAA,mBACA8V,EAAAogG,mBAAAl2G,KAAA,YACA8V,EAAAogG,mBAAAl2G,KAAA,mBAEA62G,4BAAAM,EAAAA,EAAArhG,EAAAsgG,uBACAU,mBAAAK,EAAAA,EAAArhG,EAAAsgG,uBACAW,YAAAI,EAAAA,EAAArhG,EAAAsgG,uBACAY,mBAAAG,EAAAA,EAAArhG,EAAAsgG,uBACAmB,uCAAAJ,GAEAx3G,SAAAkK,KAAAstG,IAAA,IACArhG,EAAAogG,mBAAAl2G,KAAA,mBACAi3G,mBAAAE,EAAAA,EAAArhG,EAAAsgG,yBAKA,QAAAG,qBAAAnF,EAAAE,EAAA9mG,GACAA,EAAA,mBAAAA,GAAAA,EAAA,YAEA,IAAAC,GAAA,SAAA3F,EAAAgC,EAAAC,GACA,GAAAywG,GAAA1yG,EAAA4F,OAEAvK,GAAAqE,KAAAgzG,EAAA,SAAA/yG,EAAAnB,GACAk0G,EAAA/yG,GAAAu8C,SAAA,kBACAw2D,EAAA/yG,GAAAutG,YAAAwF,EAAA/yG,GAAAgzG,0BAGAtB,iBAAAA,iBAAAlgG,OAAAuhG,GACAhtG,KAEAG,EAAA,SAAA5D,EAAAD,EAAAE,GACAqC,WAAAlE,YAAA,uBAAAA,YAAA2B,GAAA,SACA0D,IAGA5D,MAAA8wG,+BACAjtG,EACAE,EACAhN,UAAAK,yBACAozG,EAAArxG,OAAA,cACAuxG,EAAAvxG,OAAA,eAIA,QAAA22G,aAAAtF,EAAAE,EAAA9mG,GACAA,EAAA,mBAAAA,GAAAA,EAAA,YAEA,IAAAC,GAAA,SAAA3F,EAAAgC,EAAAC,GACA,GAAA4wG,GAAA7yG,EAAA4F,OAEAvK,GAAAqE,KAAAmzG,EAAA,SAAAlzG,EAAAnB,GACAq0G,EAAAlzG,GAAAu8C,SAAA,qBACA22D,EAAAlzG,GAAAkxG,OAAAgC,EAAAlzG,GAAAmzG,SACAD,EAAAlzG,GAAAozG,OAAAF,EAAAlzG,GAAAqzG,SACAH,EAAAlzG,GAAAszG,QAAAJ,EAAAlzG,GAAAuzG,OACAL,EAAAlzG,GAAAutG,YAAA2F,EAAAlzG,GAAAwzG,yBAGA9B,iBAAAA,iBAAAlgG,OAAA0hG,GACAntG,KAEAG,EAAA,SAAA5D,EAAAD,EAAAE,GACAqC,WAAAlE,YAAA,uBAAAA,YAAA2B,GAAA,SACA0D,IAEA5D,MAAAsxG,4BACAztG,EACAE,EACAhN,UAAAK,yBACAozG,EAAArxG,OAAA,cACAuxG,EAAAvxG,OAAA,eAIA,QAAA82G,6BAAAzF,EAAAE,EAAA9mG,GACAA,EAAA,mBAAAA,GAAAA,EAAA,YAEA,IAAAC,GAAA,SAAA3F,EAAAgC,EAAAC,GACA,GAAAoxG,GAAArzG,EAAA4F,OAEAvK,GAAAqE,KAAA2zG,EAAA,SAAA1zG,EAAAnB,GACA60G,EAAA1zG,GAAAu8C,SAAA,gBACAm3D,EAAA1zG,GAAAkxG,OAAAwC,EAAA1zG,GAAA2zG,cACAD,EAAA1zG,GAAAozG,OAAAM,EAAA1zG,GAAA4zG,eAAA,QACAF,EAAA1zG,GAAAszG,QAAAI,EAAA1zG,GAAA6zG,aAAA,QACAH,EAAA1zG,GAAAutG,YAAAmG,EAAA1zG,GAAA8zG,oBACAJ,EAAA1zG,GAAA+zG,eAAAL,EAAA1zG,GAAAg0G,sBACAN,EAAA1zG,GAAAi0G,iBAAAP,EAAA1zG,GAAAi0G,iBAAAP,EAAA1zG,GAAAi0G,iBAAA,KACAP,EAAA1zG,GAAAk0G,UAAAR,EAAA1zG,GAAAm0G,iBAAAT,EAAA1zG,GAAAm0G,iBAAA,KACAT,EAAA1zG,GAAAo0G,UAAAV,EAAA1zG,GAAAq0G,iBAAAX,EAAA1zG,GAAAq0G,iBAAA,OAGA3C,iBAAAA,iBAAAlgG,OAAAkiG,GACA3tG,KAEAG,EAAA,SAAA5D,EAAAD,EAAAE,GACAqC,WAAAlE,YAAA,uBAAAA,YAAA2B,GAAA,SACA0D,IAGA5D,MAAAmyG,iCACAtuG,EACAE,EACAhN,UAAAK,yBACAozG,EAAArxG,OAAA,cACAuxG,EAAAvxG,OAAA,eAIA,QAAAk3G,oBAAA7F,EAAAE,EAAA9mG,GACAA,EAAA,mBAAAA,GAAAA,EAAA,YAEA,IAAAC,GAAA,SAAA3F,EAAAgC,EAAAC,GACA,GAAAiyG,GAAAl0G,EAAA4F,OAEAvK,GAAAqE,KAAAw0G,EAAA,SAAAv0G,EAAAnB,GACA01G,EAAAv0G,GAAAu8C,SAAA,kBACAg4D,EAAAv0G,GAAAkxG,OAAAqD,EAAAv0G,GAAAw0G,UACAD,EAAAv0G,GAAAozG,OAAAmB,EAAAv0G,GAAAy0G,mBAAA,QACAF,EAAAv0G,GAAA00G,QAAAH,EAAAv0G,GAAA20G,QACAJ,EAAAv0G,GAAAszG,QAAAiB,EAAAv0G,GAAA40G,iBAAA,QACAL,EAAAv0G,GAAA+zG,eAAAQ,EAAAv0G,GAAAg0G,sBACAO,EAAAv0G,GAAA60G,aAAAN,EAAAv0G,GAAA80G,UACAP,EAAAv0G,GAAAutG,YAAAgH,EAAAv0G,GAAA8zG,sBAGApC,iBAAAA,iBAAAlgG,OAAA+iG,GACAxuG,KAEAG,EAAA,SAAA5D,EAAAD,EAAAE,GACAqC,WAAAlE,YAAA,uBAAAA,YAAA2B,GAAA,SACA0D,IAGA5D,MAAA4yG,wBACA/uG,EACAE,EACAhN,UAAAK,yBACAozG,EAAArxG,OAAA,cACAuxG,EAAAvxG,OAAA,eAIA,QAAA+2G,oBAAA1F,EAAAE,EAAA9mG,GACAA,EAAA,mBAAAA,GAAAA,EAAA,YAEA,IAAAC,GAAA,SAAA3F,EAAAgC,EAAAC,GACA,GAAA0yG,GAAA30G,EAAA4F,OAEAvK,GAAAqE,KAAAi1G,EAAA,SAAAh1G,EAAAnB,GACAm2G,EAAAh1G,GAAAu8C,SAAA,kBACAy4D,EAAAh1G,GAAAkxG,OAAA8D,EAAAh1G,GAAAw0G,UACAQ,EAAAh1G,GAAAozG,OAAA4B,EAAAh1G,GAAAy0G,mBAAA,QACAO,EAAAh1G,GAAA00G,QAAAM,EAAAh1G,GAAA20G,QACAK,EAAAh1G,GAAAszG,QAAA0B,EAAAh1G,GAAA40G,iBAAA,QACAI,EAAAh1G,GAAAutG,YAAAyH,EAAAh1G,GAAA8zG,oBACAkB,EAAAh1G,GAAA+zG,eAAAiB,EAAAh1G,GAAAg0G,sBACAgB,EAAAh1G,GAAAi1G,QAAAD,EAAAh1G,GAAAk1G,aACAF,EAAAh1G,GAAA60G,aAAAG,EAAAh1G,GAAA80G,YAGApD,iBAAAA,iBAAAlgG,OAAAwjG,GACAjvG,KAEAG,EAAA,SAAA5D,EAAAD,EAAAE,GACAqC,WAAAlE,YAAA,uBAAAA,YAAA2B,GAAA,SACA0D,IAGA5D,MAAAgzG,wBACAnvG,EACAE,EACAhN,UAAAK,yBACAozG,EAAArxG,OAAA,cACAuxG,EAAAvxG,OAAA,eAIA,QAAAg3G,aAAA3F,EAAAE,EAAA9mG,GACAA,EAAA,mBAAAA,GAAAA,EAAA,YAEA,IAAAC,GAAA,SAAA3F,EAAAgC,EAAAC,GACA,GAAA8yG,GAAA/0G,EAAA4F,OAEAvK,GAAAqE,KAAAq1G,EAAA,SAAAp1G,EAAAnB,GACAu2G,EAAAp1G,GAAAu8C,SAAA,WACA64D,EAAAp1G,GAAAkxG,OAAAkE,EAAAp1G,GAAAy4D,KACA28C,EAAAp1G,GAAAozG,OAAA,OACAgC,EAAAp1G,GAAA00G,QAAAU,EAAAp1G,GAAAy4D,KACA28C,EAAAp1G,GAAAszG,QAAA,OACA8B,EAAAp1G,GAAAq1G,kBAAAD,EAAAp1G,GAAAy4D,KACA28C,EAAAp1G,GAAAs1G,gBAAAF,EAAAp1G,GAAAy4D,KACA28C,EAAAp1G,GAAAutG,YAAA7sG,YAAA,oBACA00G,EAAAp1G,GAAAi1G,QAAAG,EAAAp1G,GAAAu1G,sBAGA7D,iBAAAA,iBAAAlgG,OAAA4jG,GACArvG,KAEAG,EAAA,SAAA5D,EAAAD,EAAAE,GACAqC,WAAAlE,YAAA,uBAAAA,YAAA2B,GAAA,SACA0D,IAGA5D,MAAAqzG,iBACAxvG,EACAE,EACAhN,UAAAK,yBACAozG,EAAArxG,OAAA,cACAuxG,EAAAvxG,OAAA,eAIA,QAAAi3G,oBAAA5F,EAAAE,EAAA9mG,GACAA,EAAA,mBAAAA,GAAAA,EAAA,YAEA,IAAAC,GAAA,SAAA3F,EAAAgC,EAAAC,GACA,GAAAmzG,GAAAp1G,EAAA4F,QACAyvG,IAEAh6G,GAAAqE,KAAA01G,EAAA,SAAAz1G,EAAAnB,GACA,GAAA21G,GAAAt5G,OAAAu6G,EAAAz1G,GAAA2sG,UACAgI,EAAAz5G,OAAAu6G,EAAAz1G,GAAA6sG,QACA8I,EAAAhB,EAAAvvG,KAAAovG,EAAA,KAAA,CAGA7H,IAAAE,IACA8I,EAAA,EAGA,KAAA,GAAA96G,GAAA,EAAAA,EAAA86G,EAAA96G,IAAA,CACA,GAAA+6G,MACAjF,EAAAz1G,OAAAs5G,GAAAn5G,IAAAR,EAAA,KACAg7G,EAAAlF,EAAAv1G,YACAw6G,GAAAr5D,SAAA,kBACAq5D,EAAA1E,OAAAP,EAAAr1G,OAAA,cACAs6G,EAAAxC,OAAA,OACAwC,EAAAlB,QAAAe,EAAAz1G,GAAA6sG,OACA+I,EAAAtC,QAAA,OACAsC,EAAAP,kBAAAI,EAAAz1G,GAAA2sG,SACAiJ,EAAAN,gBAAAG,EAAAz1G,GAAA6sG,OACA+I,EAAArI,YAAA7sG,YAAA,2BACAk1G,EAAAX,QAAAQ,EAAAz1G,GAAAu1G,oBACAK,EAAAE,iCAAAL,EAAAz1G,GAAAu1G,oBACAK,EAAAG,uBAAAN,EAAAz1G,GAAA+1G,uBACAH,EAAAI,qBAAAP,EAAAz1G,GAAAg2G,qBAEAl6G,UAAA+5G,EAAAJ,EAAAz1G,GAAAi2G,sBACAP,EAAAn6G,KAAAq6G,MAKAlE,iBAAAA,iBAAAlgG,OAAAkkG,GAEA3vG,KAEAG,EAAA,SAAA5D,EAAAD,EAAAE,GACAqC,WAAAlE,YAAA,uBAAAA,YAAA2B,GAAA,SACA0D,IAGA5D,MAAA+zG,wBACAlwG,EACAE,EACAhN,UAAAK,yBACAozG,EAAArxG,OAAA,cACAuxG,EAAAvxG,OAAA,eAIA,QAAAy2G,aAAApF,EAAAE,EAAA9mG,GACAA,EAAA,mBAAAA,GAAAA,EAAA,YAEA,IAAAC,GAAA,SAAA3F,EAAAgC,EAAAC,GACA,GAAA6zG,GAAA91G,EAAA4F,OAEAvK,GAAAqE,KAAAo2G,EAAA,SAAAn2G,EAAAnB,GACAs3G,EAAAn2G,GAAAu8C,SAAA,UACA45D,EAAAn2G,GAAAkxG,OAAAiF,EAAAn2G,GAAAy4D,KACA09C,EAAAn2G,GAAAozG,OAAA,OACA+C,EAAAn2G,GAAAszG,QAAA,OACA6C,EAAAn2G,GAAAutG,YAAA4I,EAAAn2G,GAAA1C,OAGAo0G,iBAAAA,iBAAAlgG,OAAA2kG,GACApwG,KAEAG,EAAA,SAAA5D,EAAAD,EAAAE,GACAqC,WAAAlE,YAAA,uBAAAA,YAAA2B,GAAA,SACA0D,IAGA5D,MAAAi0G,iBACApwG,EACAE,EACAhN,UAAAK,yBACAozG,EAAArxG,OAAA,cACAuxG,EAAAvxG,OAAA,eAMA,QAAA+6G,uBAAAC,yBACA,GAAAjlG,MAAA3K,IACA2K,MAAAklG,kBAAAt8G,gBAAA,6CAAAu8G,kBACAnlG,KAAAolG,aAAA,cACAplG,KAAAqlG,iBAAA,cAGAtwG,iBAAA,GAGA1K,EAAAqE,KAAAsR,KAAAklG,kBAAA,SAAA31G,EAAArD,GACAA,GAAA,0BAAAqD,GACAyQ,KAAAolG,YAAAl7G,KAAAqF,EAAAjC,UAAA,MAIAg4G,kBAAA,WACAtlG,KAAAqlG,gBAAAtuG,QACA,GAAAiJ,KAAAqlG,gBAAAl4G,SAEA4H,iBAAA,GAEAkwG,wBACAnH,oBAAAyH,6BAAAN,yBAEAnH,oBAAAyH,6BAAA,GAAA/D,sBAAA/G,GAAAQ,KAAA6C,oBAAA0H,2BAEAC,sBAKAzlG,KAAAqlG,gBAAArlG,KAAAolG,YAAA90G,QAGAjG,EAAAqE,KAAAsR,KAAAolG,YAAA,SAAAz2G,MAAAnB,KACA,IACA,GAAAk4G,UAAAC,KAAA,MAAAn4G,IACAk4G,UAAAJ,mBAAA,GACA,MAAA53G,KACA43G,uBAMA,QAAAM,6BACA,GAAAV,GAAAt8G,gBAAA,6CAAAu8G,kBACAU,EAAAj9G,gBAAA,2BAGAs8G,GAAAY,oBAAA,EAEAz7G,EAAAqE,KAAAw2G,EAAA,SAAA31G,EAAAw2G,GACA,GAAA,aAAAx2G,EAAAe,MAAA,EAAA,GAAA,CACA,GAAA01G,GAAAz2G,EAAAe,MAAA,GACA21G,EAAAD,EAAAtrG,OAAA,EAAA,GAAAtM,cAAA43G,EAAAtrG,OAAA,GACAwrG,EAAAF,EAAA53G,cACA+3G,EAAA97G,EAAA,IAAAkF,GACA62G,EAAAx9G,gBAAA,6CAAAy9G,2BAAA,KAAA92G,EAAAe,MAAA,GAAA,cACA0mC,EAAApuC,gBAAA,6CAAA09G,4BAAAL,GAAAr9G,gBAAA,6CAAA09G,4BAAAL,GAAA,EACAn3G,EAAAlG,gBAAA,6CAAA29G,qBAAAN,EAAA,MACAO,EAAAL,EAAA13G,KAAA,SACAg4G,EAAAZ,EAAAK,EAAA,cAGAO,KACAA,EAAAD,EAAAhzG,QAMAuyG,IAAA,IAAA/uE,GAAA,IAAAA,IAAAovE,IAAAt3G,GACAq3G,EAAAh7G,IAAA,UAAA,SACAi7G,GACAD,EAAA13G,KAAA,UAAAS,KAAA,YAAA,GACAs3G,EAAAl3G,KAAAm3G,EAAA,yCAEAD,EAAAhzG,KAAAizG,IAGAN,EAAAh7G,IAAA,UAAA,WAMA,QAAAs6G,qBACAp7G,EAAA6+C,cAAA3K,MACAsN,UAAA,sBACArB,gBAAA,EACAR,OACAzwC,IAAAlP,EAAA,sBACAoJ,KAAA,UAEAk1C,WACApK,KAAA,WACA,GAAAmoE,GAAAr8G,EAAAgL,KAAAy0B,UAAA,IACA68E,EAAAt8G,EAAAwD,QAAAkhB,QACA63F,EAAA,WACAv8G,EAAA,yCAAAqE,KAAA,SAAAC,EAAAnE,GACAqE,KAAAxE,EAAAG,GACAA,EAAA2C,QAAA,IAAAw5G,GAAA,MACA93G,KAAA9D,SAAA,cACA8D,KAAAm+D,SACAuqC,MAAA,YACAF,eAAA,SAAAp3F,EAAA6pB,GACA,MAAA7pB,GAAAvV,IAGAL,EAAAy/B,GAAA/+B,SAAA,cACAkV,EAAAzM,MAHAyM,EAAAzM,SAOA3E,KAAA6uC,SAAA,gBACA7uC,KAAAm+D,QAAA,WACAn+D,KAAA0uC,YAAA,iBAIAlzC,EAAA,kCAAAgnC,GAAA,aAAA,SAAAlqB,GACAA,EAAAzH,OAAAmnG,UAAA78G,IAAA,gBAIAmL,sBAAAuxG,GAGAn4G,aAAAm4G,GAGAd,4BAGAc,EAAAj4G,KAAA,uBAAAstG,WAAAC,MAAA,2BAGA0K,EAAAh9E,IAAA,SAAA,iBACAg9E,EAAAr1E,GAAA,SAAA,gBAAA,SAAAlqB,GACA2/F,QAAAF,GACAG,QAAAH,KAIAF,EAAAh9E,IAAA,SAAA,cACAg9E,EAAAr1E,GAAA,SAAA,aAAA,SAAAlqB,GACA6/F,cAAAJ,KAIAF,EAAAh9E,IAAA,SAAA,iBACAg9E,EAAAr1E,GAAA,SAAA,gBAAA,SAAAlqB,GACA8/F,SAAAL,IAGA,IAAAM,GAAAR,EAAAj4G,KAAA,OACA,IAAA,SAAAy4G,EAAA93G,KAAA,wBAAA,CACA/E,EAAA65D,UAAAgB,SAAAK,SAAAl2D,YAAA,oBACA63G,EAAA93G,KAAA,wBAAA,GACA83G,EAAA5nD,UACAqE,OACA/kD,OAAA,YAEA+mD,WAAA,qBACAxB,UAAA,GAGA,IAAA/L,GAAAsuD,EAAAj4G,KAAA,mBACA2pD,GAAAl/C,MAAA,WACAguG,EAAAviD,SACAuiD,EAAApoG,WAKA8nG,KAEAz6F,MAAA,WAKAi1F,kCAAAtD,oBAAAyH,+BAAA1F,cAMA,QAAAsH,eAAAzyG,EAAA0yG,GACA1yG,EAAA,mBAAAA,GAAAA,EAAA,aACA5D,KAAAu2G,+BACA,SAAAr4G,EAAAgC,EAAAC,GAGA6sG,oBAAAwJ,eAAAt4G,EAAA4F,SACAF,KAEA,SAAAzD,EAAAD,EAAAE,GACAqC,WAAAlE,YAAA,uBAAAA,YAAA2B,GAAA,SACA0D,KAEA7M,UAAAK,0BAIA,QAAAq/G,mBAAA7yG,EAAA0yG,GAEA1yG,EAAA,mBAAAA,GAAAA,EAAA,aACA0yG,EAAA,mBAAAA,IAAAA,EAEAt2G,KAAA02G,mCACA,SAAAx4G,EAAAgC,EAAAC,GAGA6sG,oBAAA2J,mBAAAz4G,EAAA4F,SACAF,KAEA,SAAAzD,EAAAD,EAAAE,GACAqC,WAAAlE,YAAA,uBAAAA,YAAA2B,GAAA,SACA0D,KAEA7M,UAAAK,0BAIA,QAAAw/G,mBAAAhzG,EAAA0yG,GAEA1yG,EAAA,mBAAAA,GAAAA,EAAA,aACA0yG,EAAA,mBAAAA,IAAAA,EAEAt2G,KAAA62G,mCACA,SAAA34G,EAAAgC,EAAAC,GAGA6sG,oBAAA8J,mBAAA54G,EAAA4F,SACAF,KAEA,SAAAzD,EAAAD,EAAAE,GACAqC,WAAAlE,YAAA,uBAAAA,YAAA2B,GAAA,SACA0D,KAEA7M,UAAAK,0BAIA,QAAA6+G,SAAAryG,EAAA0yG,GACA,GAAAS,EACAnzG,GAAA,mBAAAA,GAAAA,EAAA,aACA0yG,EAAA,mBAAAA,IAAAA,EAGAS,EADAT,EACAtJ,oBAAA0H,0BAAAsC,eAEAhK,oBAAAyH,+BAAAuC,eAGAD,EACA/2G,KAAAi3G,yBACA,SAAA/4G,EAAAgC,EAAAC,GAGA6sG,oBAAAkK,SAAAh5G,EAAA4F,SACAF,KAEA,SAAAzD,EAAAD,EAAAE,GACAqC,WAAAlE,YAAA,uBAAAA,YAAA2B,GAAA,SACA0D,KAEA7M,UAAAK,yBACA2/G,GAGAnzG,IAIA,QAAAoyG,SAAApyG,EAAA0yG,GACA,GAAAS,EACAnzG,GAAA,mBAAAA,GAAAA,EAAA,aACA0yG,EAAA,mBAAAA,IAAAA,EAGAS,EADAT,EACAtJ,oBAAA0H,0BAAAsC,eAEAhK,oBAAAyH,+BAAAuC,eAGAD,EACA/2G,KAAAm3G,yBACA,SAAAj5G,EAAAgC,EAAAC,GAGA6sG,oBAAAoK,SAAAl5G,EAAA4F,SACAF,KAEA,SAAAzD,EAAAD,EAAAE,GACAqC,WAAAlE,YAAA,uBAAAA,YAAA2B,GAAA,SACA0D,KAEA7M,UAAAK,yBACA2/G,GAGAnzG,IAIA,QAAAyzG,UAAAzzG,EAAA0yG,GACA1yG,EAAA,mBAAAA,GAAAA,EAAA,aACA5D,KAAAs3G,0BACA,SAAAp5G,EAAAgC,EAAAC,GAGA6sG,oBAAAuK,UAAAr5G,EAAA4F,SACAF,KAEA,SAAAzD,EAAAD,EAAAE,GACAqC,WAAAlE,YAAA,uBAAAA,YAAA2B,GAAA,SACA0D,KAEA7M,UAAAK,0BAIA,QAAAogH,UAAA5zG,EAAA0yG,GACA1yG,EAAA,mBAAAA,GAAAA,EAAA,aACA5D,KAAAy3G,0BACA,SAAAv5G,EAAAgC,EAAAC,GAGA6sG,oBAAA0K,UAAAx5G,EAAA4F,SACAF,KAEA,SAAAzD,EAAAD,EAAAE,GACAqC,WAAAlE,YAAA,uBAAAA,YAAA2B,GAAA,SACA0D,KAEA7M,UAAAK,0BAIA,QAAAugH,YAAA/zG,EAAA0yG,GACA1yG,EAAA,mBAAAA,GAAAA,EAAA,aACA5D,KAAA43G,4BACA,SAAA15G,EAAAgC,EAAAC,GAGA6sG,oBAAA6K,YAAA35G,EAAA4F,SACAF,KAEA,SAAAzD,EAAAD,EAAAE,GACAqC,WAAAlE,YAAA,uBAAAA,YAAA2B,GAAA,SACA0D,KAEA7M,UAAAK,0BAIA,QAAA8+G,eAAAtyG,EAAA0yG,GACA,GAAAwB,EACAl0G,GAAA,mBAAAA,GAAAA,EAAA,aACA0yG,EAAA,mBAAAA,IAAAA,EAGAwB,EADAxB,EACAtJ,oBAAA0H,0BAAAqD,YAEA/K,oBAAAyH,+BAAAsD,YAGAD,EACA93G,KAAAg4G,+BACA,SAAA95G,EAAAgC,EAAAC,GAGA6sG,oBAAAiL,eAAA/5G,EAAA4F,SACAF,KAEA,SAAAzD,EAAAD,EAAAE,GACAqC,WAAAlE,YAAA,uBAAAA,YAAA2B,GAAA,SACA0D,KAEA7M,UAAAK,yBACA0gH,GAGAl0G,IAIA,QAAAuyG,UAAAvyG,EAAA0yG,GACA,GAAAyB,GACAG,CACAt0G,GAAA,mBAAAA,GAAAA,EAAA,aACA0yG,EAAA,mBAAAA,IAAAA,EAEAA,GACAyB,EAAA/K,oBAAA0H,0BAAAqD,YACAG,EAAAlL,oBAAA0H,0BAAAwD,iBAEAH,EAAA/K,oBAAAyH,+BAAAsD,YACAG,EAAAlL,oBAAAyH,+BAAAyD,gBAGAH,GAAAG,EACAl4G,KAAAm4G,0BACA,SAAAj6G,EAAAgC,EAAAC,GAGA6sG,oBAAAoL,UAAAl6G,EAAA4F,SACAF,KAEA,SAAAzD,EAAAD,EAAAE,GACAqC,WAAAlE,YAAA,uBAAAA,YAAA2B,GAAA,SACA0D,KAEA7M,UAAAK,yBACA2gH,EACAG,GAGAt0G,IAIA,QAAAy0G,YAAAz0G,EAAA0yG,GACA1yG,EAAA,mBAAAA,GAAAA,EAAA,aACA5D,KAAAs4G,4BACA,SAAAp6G,EAAAgC,EAAAC,GAGA6sG,oBAAAuL,YAAAr6G,EAAA4F,SACAF,KAEA,SAAAzD,EAAAD,EAAAE,GACAqC,WAAAlE,YAAA,uBAAAA,YAAA2B,GAAA,SACA0D,KAEA7M,UAAAK,0BAIA,QAAAohH,YAAA50G,EAAA0yG,GACA1yG,EAAA,mBAAAA,GAAAA,EAAA,aACA5D,KAAAy4G,4BACA,SAAAv6G,EAAAgC,EAAAC,GAGA6sG,oBAAA0L,YAAAx6G,EAAA4F,SACAF,KAEA,SAAAzD,EAAAD,EAAAE,GACAqC,WAAAlE,YAAA,uBAAAA,YAAA2B,GAAA,SACA0D,KAEA7M,UAAAK,0BAIA,QAAAuhH,6BACA,GAAAC,GAAAjP,GAAAQ,KAAA6C,oBAAAyH,gCACAoE,EAAAlP,GAAAQ,KAAA6C,oBAAA0H,2BACAoE,EAAA//G,OAAA6/G,EAAA7J,QAEAlrG,EAAA,SAAA3F,EAAAgC,EAAAC,GACAjC,EAAA2F,WAAA,GAEAmpG,oBAAAyH,+BAAArJ,YAAAltG,EAAA4F,QAAA,GAAA+sG,yBAGA7D,oBAAA0H,0BAAA3F,OAAA/B,oBAAAyH,+BAAA1F,UACA/B,oBAAA0H,0BAAAzD,OAAAjE,oBAAAyH,+BAAAxD,UACAjE,oBAAA0H,0BAAAnC,QAAAvF,oBAAAyH,+BAAAlC,WACAvF,oBAAA0H,0BAAAvD,QAAAnE,oBAAAyH,+BAAAtD,WACAnE,oBAAA0H,0BAAAsC,aAAAhK,oBAAAyH,+BAAAuC,gBACAhK,oBAAA0H,0BAAA5C,iBAAA9E,oBAAAyH,+BAAA3C,oBACA9E,oBAAA0H,0BAAAqE,iBAAA/L,oBAAAyH,+BAAAsE,oBACA/L,oBAAA0H,0BAAAsE,OAAAhM,oBAAAyH,+BAAAuE,UACAhM,oBAAA0H,0BAAAuE,QAAAjM,oBAAAyH,+BAAAwE,WACAjM,oBAAA0H,0BAAAqD,UAAA/K,oBAAAyH,+BAAAsD,aACA/K,oBAAA0H,0BAAAwD,aAAAlL,oBAAAyH,+BAAAyD,gBACAlL,oBAAA0H,0BAAAwE,QAAAlM,oBAAAyH,+BAAAyE,WACAlM,oBAAA0H,0BAAAyE,OAAAnM,oBAAAyH,+BAAA0E,UACAnM,oBAAA0H,0BAAA0E,QAAApM,oBAAAyH,+BAAA2E,WACApM,oBAAA0H,0BAAA3C,UAAA/E,oBAAAyH,+BAAA1C,aACA/E,oBAAA0H,0BAAAzC,UAAAjF,oBAAAyH,+BAAAxC,aACAjF,oBAAA0H,0BAAA5B,QAAA9F,oBAAAyH,+BAAA3B,WACA9F,oBAAA0H,0BAAAtJ,YAAA4B,oBAAAyH,+BAAArJ,eACA4B,oBAAA0H,0BAAA2E,MAAA,GAEAnL,0BAAAlB,oBAAAjC,gBAEAxxG,EAAA6+C,cAAA/8B,SAEA5Y,WAAAlE,YAAA,wBAAA8D,yBAAAnE,EAAAgG,qBAAA,UAGAH,EAAA,SAAA5D,EAAAD,EAAAE,GACAqC,WAAAlE,YAAA,wBAAA8D,yBAAAnE,KAAAgG,qBAAA,WAIA00G,EAAAzH,SAAAyH,EAAAzH,QAAA90G,OAAA,GACAu8G,EAAArG,QAAA,GACAuG,EAAA,IAEAF,EAAA3H,OAAA2H,EAAAzH,UACA2H,EAAAA,EAAA5/G,IAAA,EAAA,QAAAC,OAAA,cACAy/G,EAAArG,QAAAuG,GAIAF,EAAAS,KACAr5G,KAAAs5G,iCACAz1G,EACAE,EACAhN,UAAAK,yBACAwhH,EAAA7J,OACA6J,EAAA3H,OACA2H,EAAArG,QACAqG,EAAAzH,QACAyH,EAAA5B,aACA4B,EAAAI,OACAJ,EAAAK,QACAL,EAAAb,UACAa,EAAAV,aACAU,EAAAM,QACAN,EAAAO,OACAP,EAAAG,iBACAH,EAAA9G,iBACA8G,EAAAQ,QACAR,EAAA7G,UACA6G,EAAA3G,UACA2G,EAAA9F,SAGA9yG,KAAAu5G,2BACA11G,EACAE,EACAhN,UAAAK,yBACAyhH,EAAA9J,OACA8J,EAAA5H,OACA2H,EAAA7J,OACA6J,EAAA3H,OACA2H,EAAArG,QACAqG,EAAAzH,QACAyH,EAAA5B,aACA4B,EAAAI,OACAJ,EAAAK,QACAL,EAAAb,UACAa,EAAAV,aACAU,EAAAM,QACAN,EAAAO,OACAP,EAAAG,iBACAH,EAAA9G,iBACA8G,EAAAQ,QACAR,EAAA7G,UACA6G,EAAA3G,UACA2G,EAAA9F,SAKA,QAAA0G,yBACA,GAAAX,GAAAlP,GAAAQ,KAAA6C,oBAAA0H,2BACA7wG,EAAA,SAAA3F,EAAAgC,EAAAC,GACAjC,EAAA2F,WAAA,GAEAysG,kCAAAtD,oBAAA0H,0BAAA3F,UACA/B,oBAAAyD,cAAAzB,WAAAtrG,OAAAspG,oBAAA0H,2BACAxG,0BAAAlB,oBAAAjC,iBAEAtoG,WAAAlE,YAAA,wBAAA8D,yBAAAnE,EAAAgG,qBAAA;EAGAH,EAAA,SAAA5D,EAAAD,EAAAE,GACAqC,WAAAlE,YAAA,wBAAA2B,EAAA,SAGAF,MAAAy5G,2BACA51G,EACAE,EACAhN,UAAAK,yBACAyhH,EAAA9J,OACA8J,EAAA5H,QAMA,QAAA/C,2BAAA53C,GACA,GAAAk0C,GAAAzxG,OAAAu9D,GAAAt9D,QAAA,SACA0xG,EAAA3xG,OAAAu9D,GAAAg4C,MAAA,SACAzqG,EAAA,SAAA3F,EAAAgC,EAAAC,GACA6sG,oBAAA0M,kCACA1M,oBAAA2M,0BAAAz7G,EAAA4F,SACAkpG,oBAAA4M,wBAAAzzF,KAAAknF,uBAEAtpG,EAAA,SAAA5D,EAAAD,EAAAE,GACAqC,WAAAlE,YAAA,uBAAAA,YAAA2B,GAAA,SAEAF,MAAA65G,wBAAAh2G,EAAAE,EAAAhN,UAAAK,yBAAAozG,EAAArxG,OAAA,cAAAuxG,EAAAvxG,OAAA,eAGA,QAAAq3G,yBAAAl6C,GACA,GAAAzyD,GAAA,SAAA3F,EAAAgC,EAAAC,GACA6sG,oBAAA8M,gCACA9M,oBAAA+M,wBAAA77G,EAAA4F,SACAkpG,oBAAAgN,sBAAA7zF,KAAAknF,uBAEAtpG,EAAA,SAAA5D,EAAAD,EAAAE,GACAqC,WAAAlE,YAAA,uBAAAA,YAAA2B,GAAA,SAEAF,MAAA65G,wBAAAh2G,EAAAE,EAAAhN,UAAAK,yBAAA2B,OAAAu9D,GAAAn9D,OAAA,cAAAJ,OAAAu9D,GAAAn9D,OAAA,eAGA,QAAAw3G,wCAAAsJ,GACA,GAAAp2G,GAAA,SAAA3F,EAAAgC,EAAAC,GACA,GAAA,GAAAjC,EAAA2F,SAAA,IAAA3F,EAAA4F,QAAAzH,OAAA,CACA,GAAA+3G,GAAAl2G,EAAA4F,QAAA,EACA5L,iBAAA,4CAAAk8G,KAGArwG,EAAA,SAAA5D,EAAAD,EAAAE,IAGAJ,MAAAk6G,wCAAAr2G,EAAAE,EAAAhN,UAAAK,yBAAA2B,OAAAkhH,GAAA9gH,OAAA,eAKA,QAAAghH,oBACA5gH,EAAA6+C,cAAA3K,MACAsN,UAAA,sBACArB,gBAAA,EACAj7C,IAAA,WACAy6C,OACAzwC,IAAAlP,EAAA,uBACAoJ,KAAA,UAEAk1C,WACApK,KAAA,WACA,GAAAmoE,GAAAr8G,EAAAgL,KAAAy0B,UAAA,GACA30B,sBAAAuxG,GAGAn4G,aAAAm4G,GAGAwE,wBAMA,QAAAA,qBACA,GAAAC,GAAA9gH,EAAA,qBACA+gH,EAAA/gH,EAAA,mBACAghH,EAAAxhH,OAAAshH,EAAA39G,OACA89G,EAAAzhH,OAAAuhH,EAAA59G,MAEA,KAAA69G,EAAAt3G,KAAAu3G,IACAjhH,EAAA,8BAAAkzC,YAAA,YAAAxyC,SAAA,YACAV,EAAA,qBAAAyiB,KAAA,KAEAziB,EAAA,qBAAAsmB,KAAA,GACAtmB,EAAA,8BAAAkzC,YAAA,YAAAxyC,SAAA,aAQA,QAAAwgH,uBACAlhH,EAAA6+C,cAAA3K,MACAsN,UAAA,sBACArB,gBAAA,EACAR,OACAzwC,IAAAlP,EAAA,oBACAoJ,KAAA,UAEAk1C,WACApK,KAAA,WACA,GAAAmoE,GAAAr8G,EAAAgL,KAAAy0B,UAAA,GACA30B,sBAAAuxG,GAGAn4G,aAAAm4G,IAEAv6F,MAAA,WACA2xF,oBAAA0H,0BAAA2E,QACArM,oBAAAyD,cAAAzB,WAAAtrG,OAAAspG,oBAAA0H,2BAEA1H,oBAAAyD,cAAAzB,WAAA7oF,KAAAinF,0BAQA,QAAAsN,sBACAnhH,EAAA6+C,cAAA3K,MACAsN,UAAA,sBACArB,gBAAA,EACAR,OACAzwC,IAAAlP,EAAA,uBACAoJ,KAAA,UAEAk1C,WACApK,KAAA,WACA,GAAAmoE,GAAAr8G,EAAAgL,KAAAy0B,UAAA,GACA30B,sBAAAuxG,GAGAn4G,aAAAm4G,IAEAv6F,MAAA,WACAi1F,kCAAAtD,oBAAAyD,cAAAn6C,OAAAn9D,OAAA,mBA+2CA,QAAAwhH,wBACA,GAAA98F,GAAA9kB,QAIA,OAHAi0G,uBACAnvF,EAAAmvF,oBAAAnvF,OAEAA,EA7jFA,GAAA+8F,cAAArhH,EAAAgL,MACAs2G,yBAAAthH,EAAA,8BACAuhH,uBAAAvhH,EAAA,4BACAg2G,mBAqpCAh2G,GAAA,uBAAAgnC,GAAA,SAAA,qCAAA,SAAAtlC,GACAm/G,qBAwDA,IAAAW,mBAAA,SAAAzkD,GAEA,GAAApnD,GAAA3K,IACA2K,GAAAonD,KAAAqzC,GAAA0B,WAAA/0C,GACApnD,EAAAkrC,SAAA,sBAGA4gE,iBAAA,SAAA1kD,EAAAw4C,EAAAE,GAEA,GAAA9/F,GAAA3K,IACA2K,GAAAonD,KAAAqzC,GAAA0B,WAAA/0C,GACApnD,EAAA8/F,WAAArF,GAAA8B,gBAAAuD,GACA9/F,EAAA8/F,WAAA7oF,KAAAinF,sBACAl+F,EAAA4/F,cAAAA,EACA5/F,EAAA+rG,WAAAtR,GAAAvlE,SAAA,WACA,MAAAv3B,UAAA9T,OAAAmW,EAAAonD,QAAAn9D,OAAA,OACA+V,GACAA,EAAAgsG,UAAAvR,GAAAvlE,SAAA,WACA,MAAArrC,QAAAmW,EAAAonD,QAAAn9D,OAAA,SACA+V,GACAA,EAAAisG,eAAAxR,GAAAvlE,SAAA,WACA,MAAA,KAAAl1B,EAAA+rG,cAAA/rG,EAAA4/F,iBAAA,GAAA5/F,EAAA+rG,cAAAliH,OAAAmW,EAAAonD,QAAAg4C,MAAA,SAAAn1G,OAAA,KACA,KAAAJ,OAAAmW,EAAAonD,QAAAn9D,OAAA,OAEA,IAEA+V,GACAA,EAAAkrC,SAAA,cACAlrC,EAAAksG,mBAAAzR,GAAAvlE,SAAA,WACA,GAEAi3E,GACAC,EAHAx1G,GAAA,EAIAsuG,EAAAt8G,gBAAA,4CAEA,KACAwjH,EAAAtO,oBAAAnvF,MAAA5a,KAAAlK,OAAAmW,EAAAonD,QAAA,WACA+kD,EAAAtiH,OAAAi0G,oBAAAnvF,OAAA7kB,QAAA,OAAAiK,KAAAlK,OAAAmW,EAAAonD,QAAA,OAAA,GAQA89C,EAAAmH,kBACAD,UAAAD,GAAAjH,EAAAoH,4CAAApH,EAAAqH,yBAAA,IAGA31G,GAAA,GAEA,MAAAlJ,IAGA,MAAAkJ,IACAoJ,GACAA,EAAAwsG,uBAAA/R,GAAAvlE,SAAA,WACA,GACAi3E,GACAC,EAFAx1G,GAAA,EAGAsuG,EAAAt8G,gBAAA,4CAEA,KACAwjH,EAAAviH,OAAAmW,EAAAonD,QAAArzD,KAAA+pG,oBAAAnvF,MAAA,WACAw9F,EAAAtiH,OAAAmW,EAAAonD,QAAAt9D,QAAA,OAAAiK,KAAA+pG,oBAAAnvF,MAAA,OAAA,GAQAu2F,EAAAmH,kBAAAnH,EAAAuH,4BAAA,GACAL,GAAA,MAAAD,GAAAjH,EAAAwH,gDAGA91G,GAAA,GAEA,MAAAlJ,IAGA,MAAAkJ,IACAoJ,GAEAA,EAAA2sG,kBAAAlS,GAAAvlE,SAAA,WACA,GAAAt+B,IAAA,EACAsuG,EAAAt8G,gBAAA,6CACA23G,EAAA33G,gBAAA,yBACA,IAAA23G,GAAAA,EAAAqM,+BAAA,SAAArM,EAAAqM,8BACA,OAAA,CAEA,KACA,GAAAj+F,GAAA88F,uBACA13G,EAAAlK,OAAA+nB,SAAA/nB,OAAA8kB,EAAA1kB,OAAA,eAAA8J,KAAAlK,OAAAmW,EAAAonD,UACA+kD,EAAAp4G,EAAA84G,QAEA3H,GAAAmH,mBACA,IAAAF,GAAAjH,EAAAqH,yBAAA,GAAAJ,GAAA,GAAAA,GAAAjH,EAAAoH,4CAAApH,EAAAqH,yBAAA,KAKA31G,GAAA,GAEA,MAAAlJ,IAEA,MAAAkJ,KAEAoJ,EAAA8sG,eAAArS,GAAAvlE,SAAA,WACA,GAAA63E,IAAA,EACAp+F,EAAA88F,sBACA,KACA,GAAA13G,GAAA4a,EAAA5a,KAAAiM,EAAAonD,OAAA,QAAA,EACArzD,IAAA,IACAg5G,GAAA,GAEA,MAAAr/G,IAEA,MAAAq/G,KAEA/sG,EAAAgtG,OAAAvS,GAAAvlE,SAAA,WACA,GAAAvmB,GAAA88F,uBACA13G,EAAAlK,OAAA+nB,SAAA/nB,OAAAmW,EAAAonD,QAAArzD,KAAA4a,EAAA1kB,OAAA,gBACAkiH,EAAAp4G,EAAA84G,SACAj2G,GAAA,CAIA,OAHA,IAAAu1G,IACAv1G,GAAA,GAEAA,IAEAoJ,EAAAitG,WAAAxS,GAAAvlE,SAAA,WACA,GAAAvmB,GAAA88F,uBACA13G,EAAAlK,OAAA+nB,SAAA/nB,OAAAmW,EAAAonD,QAAArzD,KAAA4a,EAAA1kB,OAAA,gBACAkiH,EAAAp4G,EAAA84G,SACAj2G,GAAA,CAIA,OAHAu1G,SACAv1G,GAAA,GAEAA,IAEAoJ,EAAAktG,gCAAAzS,GAAAvlE,SAAA,WACA,GAAAg4E,IAAA,EACA/H,EAAArtG,mBAAAlP,gBAAA,6CAAAu8G,mBACAoB,EAAAzuG,mBAAAlP,gBAAA,6CAAA29G,sBACAF,EAAAvuG,mBAAAlP,gBAAA,6CAAAy9G,2BAuBA,OArBArmG,GAAAgtG,UAEA7H,EAAAW,oBAAA,EAEAz7G,EAAAqE,KAAAy2G,EAAA,SAAA51G,EAAArD,GACA,GAAAg6G,GAAA32G,EAAAe,MAAA,GAAAlC,cACAg4G,EAAAC,EAAA,KAAA92G,EAAAe,MAAA,GAAA,cACAmG,EAAA8vG,EAAAL,EAAA,KAEA,IAAAE,GACA,MAAA3vG,EAGA,MADAy2G,IAAA,GACA,KAMAA,GAAA,EAEAA,IAEAltG,EAAAmtG,iBAAA1S,GAAAvlE,SAAA,WACA,GAAAi4E,IAAA,EAEA5M,EAAA33G,gBAAA,yBACA,SAAA23G,IAAAA,EAAAqM,+BAAA,SAAArM,EAAAqM,kCAIA5sG,EAAAgtG,UAAAhtG,EAAAitG,eAAAjtG,EAAA8/F,aAAA3yG,OAAA,GACA9C,EAAA2V,EAAA8/F,cAAApxG,KAAA,SAAAC,EAAAnE,GACA,oBAAAA,EAAA0gD,YAAA,kCAAA1gD,EAAA0gD,aAEAiiE,GADA3iH,EAAAy3G,aAQAkL,IACAntG,GAGAA,EAAAsqG,sBAAA,SAAAj6E,GACArwB,EAAA8/F,WAAAtrG,OAAA67B,IAEArwB,EAAAotG,8BAAA,SAAAC,GACArtG,EAAAstG,mBAAAD,IAEArtG,EAAAstG,mBAAA,SAAAD,GACA,GACAE,GACAl9E,EAFA0xE,EAAAl4G,OAAA,GAAArB,OAAAyB,OAAA,QAGA,IAAAojH,EAAAL,YAAA,GAAAK,EAAAP,oBAAA,GAAA,IAAAO,EAAAvN,aAAA3yG,OACA40G,EAAA,YACA,IAAAsL,EAAAvN,aAAA3yG,OAAA,EAAA,CACA,IAAA,GAAA3D,GAAA,EAAAA,EAAA6jH,EAAAvN,aAAA3yG,OAAA3D,IAAA,CACA,GAAAgkH,GAAAH,EAAAvN,aAAAt2G,EACA,oBAAAgkH,EAAAtiE,YAAA,iCAAAsiE,EAAAtiE,YAAA,mBAAAsiE,GAAAvL,YACAsL,EAAAC,EAAAvL,WAGA,mBAAAsL,IAAA,OAAAA,GAAA,IAAAA,EAAApgH,SACA40G,EAAAwL,GAGAl9E,EAAA,GAAAmxE,uBAAA3B,OAAAh2G,OAAAwjH,EAAAjmD,QAAAn9D,OAAA,cAAA83G,OAAAA,EAAAoI,MAAA,IACArM,oBAAA0H,wBAAAn1E,GACArwB,EAAA8/F,WAAA51G,KAAAmmC,GACA20E,yBAEAhlG,EAAAytG,uBAAA,SAAAJ,GACA,GAAAh9E,GAAA,GAAAmxE,uBAAA3B,OAAAh2G,OAAAwjH,EAAAjmD,QAAAn9D,OAAA,cAAAkgH,MAAA,GACArM,qBAAA0H,wBAAAn1E,GACArwB,EAAA8/F,WAAA51G,KAAAmmC,GACA20E,yBAEAhlG,EAAA0tG,kCAAA,WACAzC,oBAGAjrG,EAAA2tG,+BAAA,SAAAN,GACA,GAAA14G,GAAA,SAAA3F,EAAAgC,EAAAC,GACA8D,iBAAA,GACA/F,EAAA2F,WAAA,EACAysG,kCAAAtD,oBAAAyD,cAAAn6C,OAAAn9D,OAAA,gBAEAsJ,WAAAlE,YAAA,wBAAA8D,yBAAAnE,EAAAgG,qBAAA,SACAgL,EAAAotG,8BAAAC,KAGAx4G,EAAA,SAAA5D,EAAAD,EAAAE,GACA6D,iBAAA,GACAxB,WAAAlE,YAAA,uBAAAA,YAAA2B,GAAA,SAEA+D,kBAAA,GACAjE,KAAA88G,oCACAj5G,EACAE,EACAhN,UAAAK,2BAIA8X,EAAA6tG,yBAAA,WACA,GAAAl5G,GAAA,SAAA3F,EAAAgC,EAAAC,GACA8D,iBAAA,GACA/F,EAAA2F,WAAA,EACAysG,kCAAAtD,oBAAAyD,cAAAn6C,OAAAn9D,OAAA,eAEAsJ,WAAAlE,YAAA,wBAAA8D,yBAAAnE,EAAAgG,qBAAA,UAGAH,EAAA,SAAA5D,EAAAD,EAAAE,GACA6D,iBAAA,GACAxB,WAAAlE,YAAA,uBAAAA,YAAA2B,GAAA,SAEA+D,kBAAA,GACAjE,KAAAg9G,8BACAn5G,EACAE,EACAhN,UAAAK,2BAIA8X,EAAA+tG,sBAAA,WACA,GAAA1Q,GAAAr9F,EAAAonD,OAAAn9D,OAAA,aACA4D,QAAAC,SAAAqD,KAAA,yDAAAksG,EAAA,aAMAmE,qBAAA,SAAArwF,GACA,mBAAA,KAAAA,MACA,mBAAAA,GAAA,WAAAA,EAAAlf,SAAApK,UAAAsK,uBACA,mBAAAgf,GAAA,UAAAA,EAAAyyF,QAAA,IACA,mBAAAzyF,GAAA,OAAA,OAAAA,EAAA68F,QAAA78F,EAAA68F,MAAA,IACA,mBAAA78F,GAAA,SAAAA,EAAA0uF,OAAAh2G,OAAA,GAAArB,OAAAyB,OAAA,eACA,mBAAAknB,GAAA,SAAA,OAAAA,EAAAkyF,UAAAlyF,EAAAkyF,QAAAlyF,EAAA0uF,QACA,mBAAA1uF,GAAA,eAAAA,EAAA22F,aAAAl/G,gBAAA,6CAAA29G,qBAAAuB,cACA,mBAAA32F,GAAA,SAAAA,EAAA84F,OAAArhH,gBAAA,6CAAA29G,qBAAA0D,QACA,mBAAA94F,GAAA,YAAAA,EAAA0xF,UAAAj6G,gBAAA,6CAAA29G,qBAAA1D,WACA,mBAAA1xF,GAAA,YAAAA,EAAA4xF,UAAAn6G,gBAAA,6CAAA29G,qBAAAxD,WACA,mBAAA5xF,GAAA,UAAAA,EAAA44F,QAAAnhH,gBAAA,6CAAA29G,qBAAAwD,SACA,mBAAA54F,GAAA,WAAAA,EAAA88F,SAAA,IACA,mBAAA98F,GAAA,YAAAA,EAAA+8F,UAAA,IACA,mBAAA/8F,GAAA,iBAAAA,EAAAg9F,eAAA,IACA,mBAAAh9F,GAAA,kBAAAA,EAAAi9F,gBAAA,IACA,mBAAAj9F,GAAA,eAAAA,EAAAk9F,aAAAzlH,gBAAA,6CAAA29G,qBAAA8H,cACA,mBAAAl9F,GAAA,UAAAA,EAAA64F,QAAAphH,gBAAA,6CAAA29G,qBAAAyD,SACA,mBAAA74F,GAAA,YAAAA,EAAA03F,UAAAjgH,gBAAA,6CAAA29G,qBAAAsC,WACA,mBAAA13F,GAAA,UAAAA,EAAA+4F,QAAAthH,gBAAA,6CAAA29G,qBAAA2D,SACA,mBAAA/4F,GAAA,eAAAA,EAAA63F,aAAApgH,gBAAA,6CAAA29G,qBAAAyC,cACA,mBAAA73F,GAAA,SAAAA,EAAA24F,OAAAlhH,gBAAA,6CAAA29G,qBAAAuD,QAEA,mBAAA34F,GAAA,mBAAAA,EAAAyxF,iBAAAh6G,gBAAA,6CAAA29G,qBAAA3D,kBACA,mBAAAzxF,GAAA,mBAAAA,EAAA04F,iBAAAjhH,gBAAA,6CAAA29G,qBAAAsD,kBAEA,mBAAA14F,GAAA,SAAAA,EAAA4wF,OAAAl4G,OAAA,GAAArB,OAAAyB,OAAA,UACA,mBAAAknB,GAAA,UAAAA,EAAA8wF,QAAA,IACA,mBAAA9wF,GAAA,WAAAA,EAAA+5B,SAAA,mBACA,mBAAA/5B,GAAA,OAAAA,EAAAg5F,MAAA,GAEA,mBAAAh5F,GAAA,cAAAA,EAAA+qF,YAAA,IAEA,mBAAA/qF,GAAA,iBAAAA,EAAAuxF,eAAA,IACA,mBAAAvxF,GAAA,eAAAA,EAAAqyF,aAAA,IACA,mBAAAryF,GAAA,aAAAA,EAAAm9F,WAAA,IAEA,mBAAAn9F,GAAA,oBAAAA,EAAA6yF,kBAAA,IACA,mBAAA7yF,GAAA,kBAAAA,EAAA8yF,gBAAA,IACA,mBAAA9yF,GAAA,yBAAAA,EAAAuzF,2BACA,mBAAAvzF,GAAA,uBAAAA,EAAAwzF,yBACA,mBAAAxzF,GAAA,mCAAAA,EAAAszF,kCAAA,GAEA,mBAAAtzF,GAAA,mBAAAA,EAAAo9F,iBAAA,IAGA,mBAAAp9F,GAAA,YAAAA,EAAAgyF,UAAA,GAEA,IAAAnjG,GAAA3K,IACA2K,GAAA/N,SAAAwoG,GAAA0B,WAAAhrF,EAAAlf,UACA+N,EAAA4jG,QAAAnJ,GAAA0B,WAAAhrF,EAAAyyF,SACA5jG,EAAAguG,MAAAvT,GAAA0B,WAAAhrF,EAAA68F,OACAhuG,EAAA6/F,OAAApF,GAAA0B,WAAAhrF,EAAA0uF,QACA7/F,EAAAqjG,QAAA5I,GAAA0B,WAAAhrF,EAAAkyF,SACArjG,EAAA8nG,aAAArN,GAAA0B,WAAAhrF,EAAA22F,cACA9nG,EAAAiqG,OAAAxP,GAAA0B,WAAAhrF,EAAA84F,QACAjqG,EAAAwuG,gBAAA/T,GAAA0B,WAAAhrF,EAAAq9F,iBACAxuG,EAAAyuG,WAAAhU,GAAA0B,WAAAhrF,EAAAs9F,YACAzuG,EAAA6iG,UAAApI,GAAA0B,WAAAhrF,EAAA0xF,WACA7iG,EAAA+iG,UAAAtI,GAAA0B,WAAAhrF,EAAA4xF,WACA/iG,EAAA+pG,QAAAtP,GAAA0B,WAAAhrF,EAAA44F,SACA/pG,EAAAiuG,SAAAxT,GAAA0B,WAAAhrF,EAAA88F,UACAjuG,EAAAkuG,UAAAzT,GAAA0B,WAAAhrF,EAAA+8F,WACAluG,EAAAmuG,eAAA1T,GAAA0B,WAAAhrF,EAAAg9F,gBACAnuG,EAAAouG,gBAAA3T,GAAA0B,WAAAhrF,EAAAi9F,iBACApuG,EAAAquG,aAAA5T,GAAA0B,WAAAhrF,EAAAk9F,cACAruG,EAAAgqG,QAAAvP,GAAA0B,WAAAhrF,EAAA64F,SACAhqG,EAAA6oG,UAAApO,GAAA0B,WAAAhrF,EAAA03F,WACA7oG,EAAAkqG,QAAAzP,GAAA0B,WAAAhrF,EAAA+4F,SACAlqG,EAAAgpG,aAAAvO,GAAA0B,WAAAhrF,EAAA63F,cACAhpG,EAAA0uG,WAAAjU,GAAA0B,WAAAhrF,EAAAu9F,YACA1uG,EAAA2uG,WAAAlU,GAAA0B,WAAAhrF,EAAAw9F,YACA3uG,EAAA8pG,OAAArP,GAAA0B,WAAAhrF,EAAA24F,QACA9pG,EAAA+hG,OAAAtH,GAAA0B,WAAAhrF,EAAA4wF,QACA/hG,EAAAiiG,QAAAxH,GAAA0B,WAAAhrF,EAAA8wF,SACAjiG,EAAAkrC,SAAAuvD,GAAA0B,WAAAhrF,EAAA+5B,UACAlrC,EAAAmqG,KAAA1P,GAAA0B,WAAAhrF,EAAAg5F,MAEAnqG,EAAAk8F,YAAAzB,GAAA0B,WAAAhrF,EAAA+qF,aAEAl8F,EAAA0iG,eAAAjI,GAAA0B,WAAAhrF,EAAAuxF,gBACA1iG,EAAAwjG,aAAA/I,GAAA0B,WAAAhrF,EAAAqyF,cACAxjG,EAAAsuG,WAAA7T,GAAA0B,WAAAhrF,EAAAm9F,YAEAtuG,EAAA4iG,iBAAAnI,GAAA0B,WAAAhrF,EAAAyxF,kBACA5iG,EAAA6pG,iBAAApP,GAAA0B,WAAAhrF,EAAA04F,kBAEA7pG,EAAAgkG,kBAAAvJ,GAAA0B,WAAAhrF,EAAA6yF,mBACAhkG,EAAAikG,gBAAAxJ,GAAA0B,WAAAhrF,EAAA8yF,iBACAjkG,EAAA0kG,uBAAAjK,GAAA0B,WAAAhrF,EAAAuzF,wBACA1kG,EAAA2kG,qBAAAlK,GAAA0B,WAAAhrF,EAAAwzF,sBACA3kG,EAAAykG,iCAAAhK,GAAA0B,WAAAhrF,EAAAszF,kCACAzkG,EAAAuuG,iBAAA9T,GAAA0B,WAAAhrF,EAAAo9F,kBAGAvuG,EAAAmjG,UAAA1I,GAAA0B,WAAAhrF,EAAAgyF,WAEAnjG,EAAA4uG,cAAAnU,GAAA0B,WAAA,KACA,uBAAAn8F,EAAAkrC,WACAlrC,EAAA4uG,cAAA,GACA,kBAAA5uG,EAAAkrC,WACAlrC,EAAA4uG,cAAA,GACA,oBAAA5uG,EAAAkrC,WACAlrC,EAAA4uG,cAAA,GACA,oBAAA5uG,EAAAkrC,WACAlrC,EAAA4uG,cAAA,GACA,aAAA5uG,EAAAkrC,WACAlrC,EAAA4uG,cAAA,GACA,oBAAA5uG,EAAAkrC,WACAlrC,EAAA4uG,cAAA,GACA,oBAAA5uG,EAAAkrC,YACAlrC,EAAA4uG,cAAA,GAIA5uG,EAAA6uG,wBAAApU,GAAAvlE,SAAA,WACA,GAAA45E,IAAA,CASA,OARA,mBAAA9uG,EAAAkrC,YAAAlrC,EAAAiiG,YACAjiG,EAAAkrC,SAAA,iCACA4jE,GAAA,GAEA,iCAAA9uG,EAAAkrC,YAAAlrC,EAAAiiG,YACAjiG,EAAAkrC,SAAA,mBACA4jE,GAAA,GAEAA,GACA9uG,GAEAA,EAAA+uG,yBAAA,SAAA1+E,GACAytE,oBAAA0H,wBAAAn1E,GACA20E,yBAEAhlG,EAAAgvG,iCAAA,SAAA3+E,GACAytE,oBAAA0H,wBAAAn1E,GACA98B,YACAX,MAAAvD,YAAA,4BACAoE,KAAA,UACA+D,kBAAA,EACAomG,mBAAA,UACAnmG,kBAAApI,YAAA,cACAqI,iBAAArI,YAAA,eACA,WACAi7G,2BAGAtqG,EAAAivG,yBAAA,SAAAC,GACA,GAAApiE,GAAA,GACAsa,EAAAv9D,OAAAqlH,EAAArP,UAAA51G,OAAA,MACA8wC,EAAA,GACAknE,EAAAiN,EAAAjN,UAEAttG,EAAA,SAAA3F,EAAAgC,EAAAC,GACA8D,iBAAA,GAEA+oG,oBAAAqR,uCAAA3S,YACAxtG,EAAA4F,QAAAzH,OAAA,IACA9C,EAAA2E,EAAA4F,SAAAlG,KAAA,SAAAC,EAAAnE,GACAszG,oBAAAqR,uCAAAjlH,KAAA,GAAAklH,sBAAA5kH,MAEAszG,oBAAAqR,uCAAAl4F,KAAAknF,uBAGA+Q,EAAAG,wBACAvR,oBAAAwR,8BAAA9S,YACAnyG,EAAAzB,gBAAA,4CAAA8F,KAAA,SAAAC,EAAAnE,GACAszG,oBAAAwR,8BAAAplH,KAAA,GAAAqlH,oCAAA/kH,MAEAszG,oBAAAwR,8BAAAr4F,KAAAknF,sBAEAL,oBAAA0H,wBAAA0J,GACA1D,uBAEA0D,EAAAnN,WAAAmN,EAAAjN,YACAiN,EAAAjN,YACAA,EAAA,SAEAlnE,EAAA,KAAAm0E,EAAAnN,SAAA,MAAAE,GAGAn1D,EAAA,MAAAsa,EAAArsB,EAAA,kBACA1rC,YAAA,uBAAA,gBACA6/G,EAAAhT,cAAA,OAEAgT,EAAAtL,UAAAz2G,OAAA,IACA2/C,EAAAA,EACA,cAAAz9C,YAAA,0BAAA,gBACA6/G,EAAAtL,UAAA,QAGA9F,oBAAAqR,yCAAAhiH,OAAA,IACA2/C,EAAAA,EAAA,cAAAz9C,YAAA,0BAAA,gBACAhF,EAAAyzG,oBAAAqR,0CAAAzgH,KAAA,SAAAC,EAAAnE,GACAsiD,EAAAA,EAAAtiD,EAAAglH,0BAAA,KAAAhlH,EAAAilH,SAAAC,QAAA,GAAA,SAEA5iE,GAAA,QAEAv5C,YAAAX,MAAAvD,YAAA,2BAAAmE,KAAAs5C,EAAAx9C,MAAA,MAIAuF,EAAA,SAAA5D,EAAAD,EAAAE,GACA6D,iBAAA,GACAxB,WAAAlE,YAAA,uBAAAA,YAAA2B,GAAA,SAGA+D,kBAAA,GACAjE,KAAA6+G,4CACAh7G,EACAE,EACAhN,UAAAK,yBACAgnH,EAAArP,SACAqP,EAAAnN,WAGA/hG,EAAA4vG,oBAAA,SAAAC,GACA,GAAA/iE,GAAA,GACAsa,EAAAv9D,OAAAgmH,EAAAhQ,UAAA51G,OAAA,MACA8wC,EAAA,GACAhsC,EAAA,kBAEA,kBAAA8gH,EAAA3kE,aACAn8C,EAAA,6BAEA,mBAAA8gH,EAAA3kE,aACAn8C,EAAA,6BAEA,mBAAA8gH,EAAA3kE,aACAn8C,EAAA,6BAEA8gH,EAAA9N,WAAA8N,EAAA5N,YACAlnE,EAAA,KAAA80E,EAAA9N,SAAA,MAAA8N,EAAA5N,WAGAn1D,EAAA,MAAAsa,EAAArsB,EAAA,kBACA1rC,YAAA,uBAAA,gBACAwgH,EAAAtB,mBAAAphH,OACA2/C,EAAAA,EAAA,MAAA+iE,EAAAtB,mBAAA,QAEAzhE,EAAAA,EAAA,cAAAz9C,YAAA,sBAAA,cAAAwgH,EAAA/H,eAAA,MAAA+H,EAAAnN,iBAAA,OAAA,IACArzG,YAAA,gBAAA,cAAAwgH,EAAArM,eAAA,KAAAqM,EAAA3T,cAAA,QAGA,IAAA2T,EAAAvB,eACAxhE,EAAAA,EAAA,cAAAz9C,YAAA,sBAAA,cAAAwgH,EAAAvB,aAAA,QAEA,IAAAuB,EAAAjM,YACA92D,EAAAA,EAAA,cAAAz9C,YAAA,kBAAA,cAAAwgH,EAAAjM,UAAA,QAEA,IAAAiM,EAAA7B,UACAlhE,EAAAA,EAAA,cAAAz9C,YAAA,aAAA,cAAAwgH,EAAA7B,QAAA,QAEAz6G,YAAAX,MAAAvD,YAAAN,GAAAyE,KAAAs5C,EAAAx9C,MAAA,KAEA0Q,EAAA8vG,wBAAA,SAAA/L,GACA,GAQAgM,GAEAC,EAVAljE,EAAA,GACAsa,EAAAv9D,OAAAk6G,EAAAlE,UAAA51G,OAAA,MACA8wC,EAAA,GACAxwC,EAAA3B,gBAAA,kCAAA2B,YACAM,EAAAjC,gBAAA,kCAAAiC,UACAolH,KACAC,KACAC,KAEAC,IAOA,KAJA,IAAAvmH,OAAAk6G,EAAAC,qBAAAjwG,KAAAlK,OAAAk6G,EAAAE,mBAAA,OACA78C,EAAAv9D,OAAAk6G,EAAAC,qBAAA/5G,OAAA,MAAA,MAAAJ,OAAAk6G,EAAAE,mBAAAh6G,OAAA,OAGAT,EAAA,EAAAA,EAAAu6G,EAAAW,yBAAAv3G,SAAA3D,EACA2mH,EAAAvgH,kBAAArF,EAAA,KAAAw5G,EAAAW,yBAAAl7G,IACAumH,EAAAI,EAAAzlH,GAAA,IAAAylH,EAAAjU,YACA+T,EAAA/lH,KAAA6lH,EAGA,KAAAvmH,EAAA,EAAAA,EAAAu6G,EAAAY,uBAAAx3G,SAAA3D,EACA4mH,EAAAxgH,kBAAA/E,EAAA,KAAAk5G,EAAAY,uBAAAn7G,IACAwmH,EAAAI,EAAAlU,YACAgU,EAAAhmH,KAAA8lH,EAGAljE,GAAA,MAAAsa,EAAArsB,EAAA,OACAgpE,EAAAU,qCACA33D,EAAAA,EAAA,cAAAz9C,YAAA,oBAAA,iBAEAy9C,EAAAA,EAAA,cAAAz9C,YAAA,uBAAA,2BACAA,YAAA,sBAAA,cAAA4gH,EAAA3hH,KAAA,MAAA,kBACAe,YAAA,gBAAA,cAAA6gH,EAAA5hH,KAAA,MAAA,OACA,IAAAy1G,EAAAH,YACA92D,EAAAA,EAAA,cAAAz9C,YAAA,kBAAA,cAAA00G,EAAAH,UAAA,QAGA92D,EAAA,4EAAAA,EAAA,SAEAv5C,YAAAX,MAAAvD,YAAA,wBAAAmE,KAAAs5C,EAAAx9C,MAAA,KAEA0Q,EAAAqwG,uBAAA,SAAAhgF,GACA,GAAAyc,GAAA,GACAsa,EAAAv9D,OAAAwmC,EAAAwvE,UAAA51G,OAAA,MACA8wC,EAAA,EAEA1K,GAAA0xE,WAAA1xE,EAAA4xE,YACAlnE,EAAA,KAAA1K,EAAA0xE,SAAA,MAAA1xE,EAAA4xE,WAGAn1D,EAAA,MAAAsa,EAAArsB,EAAA,kBACA1rC,YAAA,uBAAA,mBACAghC,EAAA6rE,cAAA,OAEA3oG,YAAAX,MAAAvD,YAAA,yBAAAmE,KAAAs5C,EAAAx9C,MAAA,KAEA0Q,EAAAswG,6BAAA,SAAAC,GACAzS,oBAAA0S,sBAAA,GAAAhP,sBAAA/G,GAAAQ,KAAAsV,KACAhF,oBAAAgF,IAEAvwG,EAAAywG,+BAAA,SAAAC,GACAn9G,YACAX,MAAAvD,YAAA,4BACAoE,KAAA,UACA+D,kBAAA,EACAomG,mBAAA,UACAnmG,kBAAApI,YAAA,cACAqI,iBAAArI,YAAA,eACA,WACA,GAAAsF,GAAA,SAAA3F,EAAAgC,EAAAC,GACAmwG,kCAAAtD,oBAAAyD,cAAAn6C,OAAAn9D,OAAA,gBAEA4K,EAAA,SAAA5D,EAAAD,EAAAE,GACAqC,WAAAlE,YAAA,uBAAAA,YAAA2B,GAAA,SAEAF,MAAA6/G,mCACAh8G,EACAE,EACAhN,UAAAK,yBACAwoH,EAAA5I,eACA4I,EAAApC,aACAoC,EAAAzG,SACAyG,EAAAvN,gBAIAnjG,EAAA4wG,0BAAA,SAAA7M,GACA,GAAAO,GAAAz6G,OAAAk6G,EAAAC,qBAAAjwG,KAAAlK,OAAAk6G,EAAAE,mBAAA,KACA4M,EAAA9M,EAAAC,mBAEAzwG,aACAX,MAAAvD,YAAA,4BACAoE,KAAA,UACA+D,kBAAA,EACAomG,mBAAA,UACAnmG,kBAAApI,YAAA,cACAqI,iBAAArI,YAAA,eACA,WACA,GAAAsF,GAAA,SAAA3F,EAAAgC,EAAAC,GACA,IAAAqzG,EACAxG,oBAAAyD,cAAAzB,WAAAtrG,OAAAuvG,GAEA15G,EAAAyzG,oBAAA3zG,QAAAuE,KAAA,SAAAC,EAAAnE,GACAH,EAAAG,EAAAs1G,cAAApxG,KAAA,SAAAoiH,EAAAC,GACA,oBAAAA,EAAA7lE,YACA6lE,EAAA/M,sBAAA6M,GACArmH,EAAAs1G,WAAAtrG,OAAAu8G,QAOAl8G,EAAA,SAAA5D,EAAAD,EAAAE,GACAqC,WAAAlE,YAAA,uBAAAA,YAAA2B,GAAA,SAGA,KAAAszG,EACAxzG,KAAAkgH,oBACAr8G,EACAE,EACAhN,UAAAK,yBACA67G,EAAAC,qBAGAlzG,KAAAmgH,0BACAt8G,EACAE,EACAhN,UAAAK,yBACA67G,EAAAC,wBAKAhkG,EAAAkxG,kBAAA,SAAA7D,EAAAqD,EAAAvpG,GA+DA,QAAAgqG,GAAAC,GACA,MAAAA,GAAAA,EAAA9kH,OA9DA,GAAA+kH,KACAA,GAAAxR,OAAA6Q,EAAA7Q,SACAwR,EAAAhO,QAAAqN,EAAArN,UACAgO,EAAAtP,OAAA2O,EAAA3O,SACAsP,EAAApP,QAAAyO,EAAAzO,UACAoP,EAAAlH,MAAA,CAGA,IAAA95E,GAAA,GAAAmxE,sBAAA6P,EACAhhF,GAAAw5E,iBAAA6G,EAAA7G,oBACAx5E,EAAAy3E,aAAA4I,EAAA5I,gBAEAl/G,gBAAA,6CAAAk4G,oBAKAzwE,EAAAuyE,iBAAA8N,EAAA9N,mBAAA8N,EAAA9N,mBAAAt2G,QAHA+jC,EAAA45E,OAAAyG,EAAAzG,UAKA55E,EAAAwyE,UAAA6N,EAAA7N,aACAxyE,EAAA0yE,UAAA2N,EAAA3N,aACA1yE,EAAA05E,QAAA2G,EAAA3G,WACA15E,EAAA25E,QAAA0G,EAAA1G,WACA35E,EAAAw4E,UAAA6H,EAAA7H,aACAx4E,EAAA24E,aAAA0H,EAAA1H,gBACA34E,EAAAy5E,OAAA4G,EAAA5G,SAEA,IAAAwH,GAAA,WAEA,GAAAC,GAAA3oH,gBAAA,4CACA2oH,GAAAhL,qBAAAsD,iBAAAx5E,EAAAw5E,mBACA0H,EAAAhL,qBAAAuB,aAAAz3E,EAAAy3E,eACAyJ,EAAAhL,qBAAA3D,iBAAAvyE,EAAAuyE,mBACA2O,EAAAhL,qBAAA0D,OAAA55E,EAAA45E,SACAsH,EAAAhL,qBAAA1D,UAAAxyE,EAAAwyE,YACA0O,EAAAhL,qBAAAxD,UAAA1yE,EAAA0yE,YACAwO,EAAAhL,qBAAAwD,QAAA15E,EAAA05E,UACAwH,EAAAhL,qBAAAyD,QAAA35E,EAAA25E,UACAuH,EAAAhL,qBAAAsC,UAAAx4E,EAAAw4E,YACA0I,EAAAhL,qBAAA2D,QAAA75E,EAAA65E,UACAqH,EAAAhL,qBAAAyC,aAAA34E,EAAA24E,eACAuI,EAAAhL,qBAAAuD,OAAAz5E,EAAAy5E,SACA9gH,gBAAA,4CAAAuoH,GACAvM,sBAAA30E,IAGAx7B,EAAA,SAAA7F,GACAuE,WAAAlE,YAAA,wBAAA8D,yBAAAnE,EAAAgG,qBAAA,SACAs8G,KAGA38G,EAAA,SAAA3F,GACAA,EAAA2F,SACAysG,kCAAA/wE,EAAAwvE,UACAb,0BAAAlB,oBAAAjC,kBAEAtoG,WAAAlE,YAAA,wBAAA8D,yBAAAnE,EAAAgG,qBAAA,SACAs8G,KASA,IAAAjhF,EAAA0xE,SAAA1xE,EAAA4xE,UAAA,CACA,GAAA2H,GAAA//G,OAAAwmC,EAAAgzE,WAAAr5G,IAAA,EAAA,QAAAC,OAAA,aACAomC,GAAAgzE,QAAAuG,GAGA94G,KAAAs5G,iCACAz1G,EACAE,EACAhN,UAAAK,yBACAipH,EAAA9gF,EAAAwvE,UACAsR,EAAA9gF,EAAA0xE,UACAoP,EAAA9gF,EAAAgzE,WACA8N,EAAA9gF,EAAA4xE,WACAkP,EAAA9gF,EAAAy3E,gBACAqJ,EAAA9gF,EAAAy5E,UACAqH,EAAA9gF,EAAA05E,WACAoH,EAAA9gF,EAAAw4E,aACAsI,EAAA9gF,EAAA24E,gBACAmI,EAAA9gF,EAAA25E,WACAmH,EAAA9gF,EAAA45E,UACAkH,EAAA9gF,EAAAw5E,oBACAsH,EAAA9gF,EAAAuyE,oBACAuO,EAAA9gF,EAAA65E,WACAiH,EAAA9gF,EAAAwyE,aACAsO,EAAA9gF,EAAA0yE,aACAoO,EAAA9gF,EAAAuzE,aAIA5jG,EAAAqvG,qBAAA5U,GAAAvlE,SAAA,WACA,IACA,QAAA,IAAAl1B,EAAAiiG,UAAA90G,SAAAvE,gBAAA,6CAAA4oH,sBAAA1T,oBAAAyD,cAAA2K,sBAKA,MAAAx+G,GACA,OAAA,MAKA+jH,yBAAA,SAAAvV,EAAAhwG,GAEA,GAAA8T,GAAA3K,IACA2K,GAAAk8F,YAAAzB,GAAA0B,WAAAD,GACAl8F,EAAA9T,MAAAuuG,GAAA0B,WAAAjwG,IAGAkjH,qBAAA,SAAAj+F,GACA,mBAAA,KAAAA,MACA,mBAAAA,GAAA,SAAAA,EAAAs+F,OAAA,GACA,mBAAAt+F,GAAA,qBAAAA,EAAAugG,oBAAA,GACA,mBAAAvgG,GAAA,0BAAAA,EAAAq+F,wBAAA,IACA,mBAAAr+F,GAAA,iBAAAA,EAAAwgG,eAAA,KAEA,IAAA3xG,GAAA3K,IACA2K,GAAAyvG,OAAAhV,GAAA0B,WAAAhrF,EAAAs+F,QACAzvG,EAAA0xG,mBAAAjX,GAAA0B,WAAAhrF,EAAAugG,oBACA1xG,EAAAwvG,wBAAA/U,GAAA0B,WAAAhrF,EAAAq+F,yBACAxvG,EAAA2xG,eAAAlX,GAAA0B,WAAAhrF,EAAAwgG,gBACA3xG,EAAA4xG,WAAAnX,GAAA0B,YAAA,GACAn8F,EAAA6xG,YAAApX,GAAAvlE,SAAA,WACA,MAAAl1B,GAAAyvG,SAAAC,QAAA,IACA1vG,GAEAA,EAAA8xG,WAAArX,GAAAvlE,SAAA,SAAA68E,GAGA,MACA1iH,aADA2Q,EAAA4xG,gBAAA,EACA,cAEA,gBAEA5xG,GAEAA,EAAAgyG,WAAA,SAAAhjH,EAAAmY,GACA,IACA,MAAA,KAAAA,EAAA2H,QACA9O,EAAAiyG,4BAAAjjH,IACA,GAGA,MAAAjD,MAGAiU,EAAAiyG,4BAAA,SAAAF,EAAA5qG,GACA,GAAAzH,GAAAyH,EAAA,cAAAA,EAAAgnB,cAAAhnB,EAAA0nB,WACAqjF,EAAA7nH,EAAAqV,GAAAmnB,QAAA,MAAAp4B,KAAA,QAEAsjH,GAAAH,gBAAA,GACAvnH,EAAAyzG,oBAAAqR,0CAAAzgH,KAAA,SAAAC,EAAAnE,GACA,GAAA2nH,GAAArU,oBAAAqR,yCAAAxgH,GAAA8gH,OAAA2C,YACAtU,qBAAAqR,yCAAAxgH,GAAA8gH,OAAA,GACA3R,oBAAAqR,yCAAAxgH,GAAA8gH,OAAA0C,GACArU,oBAAAqR,yCAAAxgH,GAAAijH,YAAA,KAEAG,EAAAH,YAAA,GACAM,EAAA9tF,QAAAxlB,UAEA9N,KAAAuhH,0BACA,SAAArjH,GACAA,EAAA2F,WAAA,GACAmpG,oBAAAqR,uCAAA3S,YACAxtG,EAAA4F,QAAAzH,OAAA,IACA9C,EAAA2E,EAAA4F,SAAAlG,KAAA,SAAAC,EAAAnE,GACAszG,oBAAAqR,uCAAAjlH,KAAA,GAAAklH,sBAAA5kH,MAEAszG,oBAAAqR,uCAAAl4F,KAAAknF,uBAEA4T,EAAAH,YAAA,GACA5S,0BAAAlB,oBAAAjC,gBACAyF,wBAAAxD,oBAAAyD,cAAAn6C,SAEA7zD,WAAAlE,YAAA,wBAAA8D,yBAAAnE,EAAAgG,qBAAA,UAGA,aACAnN,UAAAK,yBACA41G,oBAAA0H,0BAAA3F,SACA/B,oBAAA0H,0BAAAzD,WAGAuQ,uBAAAP,EAAAJ,eACAY,kBAAAR,EAAAJ,eACAlC,OAAAyC,EAAA1kH,MAAA4D,QAAA,IAAA,UASAm+G,mCAAA,SAAAp+F,GACA,mBAAA,KAAAA,MACA,mBAAAA,GAAA,0BAAAA,EAAAq+F,wBAAA,IACA,mBAAAr+F,GAAA,iBAAAA,EAAAwgG,eAAA,KAEA,IAAA3xG,GAAA3K,IACA2K,GAAAwvG,wBAAA/U,GAAA0B,WAAAhrF,EAAAq+F,yBACAxvG,EAAA2xG,eAAAlX,GAAA0B,WAAAhrF,EAAAwgG,gBACA3xG,EAAAwyG,UAAA/X,GAAAvlE,SAAA,WACA,GAAAu9E,GAAA7iH,kBAAA6qG,GAAAQ,KAAA6C,oBAAAqR,0CAAA,iBAAAnvG,EAAA2xG,iBACA,OAAA,mBAAA,IAKA3xG,GACAA,EAAAgyG,WAAA,SAAAhjH,EAAAmY,GACA,IACA,MAAA,KAAAA,EAAA2H,QACA9O,EAAA0yG,iCAAA1jH,IACA,GAGA,MAAAjD,MAEAiU,EAAA0yG,iCAAA,SAAAC,EAAAxrG,GACA,GAAAzH,GAAAyH,EAAA,cAAAA,EAAAgnB,cAAAhnB,EAAA0nB,WACAqjF,EAAA7nH,EAAAqV,GAAAmnB,QAAA,MAAAp4B,KAAA,QACAqC,MAAAuhH,0BACA,SAAArjH,GACAA,EAAA2F,WAAA,GACAmpG,oBAAAqR,uCAAA3S,YACAxtG,EAAA4F,QAAAzH,OAAA,IACA9C,EAAA2E,EAAA4F,SAAAlG,KAAA,SAAAC,EAAAnE,GACAszG,oBAAAqR,uCAAAjlH,KAAA,GAAAklH,sBAAA5kH,MAEAszG,oBAAAqR,uCAAAl4F,KAAAknF,uBAEAa,0BAAAlB,oBAAAjC,gBACAyF,wBAAAxD,oBAAAyD,cAAAn6C,SAEA7zD,WAAAlE,YAAA,wBAAA8D,yBAAAnE,EAAAgG,qBAAA,UAGA,aACAnN,UAAAK,yBACA41G,oBAAA0H,0BAAA3F,SACA/B,oBAAA0H,0BAAAzD,WAGAuQ,uBAAA,KACAC,kBAAAI,EAAAhB,eACAlC,OAAAyC,EAAA1kH,MAAA4D,QAAA,IAAA,UAOAktG,kBAAA,SAAAsU,GACA,GAAA5yG,GAAA3K,IAGA2K,GAAA6yG,UAAApY,GAAA0B,YAAA,GACAn8F,EAAA8yG,iBAAArY,GAAA0B,YAAA,GACAn8F,EAAA+yG,aAAAtY,GAAA0B,YAAA,GACAn8F,EAAAgzG,mBAAAvY,GAAA0B,YAAA,IAGAvzG,gBAAA,6CAAAi4G,iBAAAj4G,gBAAA,6CAAAk4G,sBACA,IAAAl4G,gBAAA,4BAAAO,cAAAgE,QAAAvE,gBAAA,4BAAAO,cAAA,UACA6W,EAAAgzG,mBAAAvY,GAAA0B,YAAA,IAKAn8F,EAAAizG,sBAAAppH,OAAAk0G,cAAA5wF,SAAAvkB,gBAAA,6CAAA0jH,2CAAA,OACAtsG,EAAAkzG,0BAAA7jH,YAAA,+CAAA,IACAxF,OAAAmW,EAAAizG,uBAAAhpH,OAAA,MAAA,IACAoF,YAAA,8CAEA2Q,EAAAmzG,8BAAAtpH,OAAAk0G,cAAA/zG,IAAApB,gBAAA,6CAAA8jH,8CAAA,OAEA9jH,gBAAA,6CAAA6jH,yBACAzsG,EAAAozG,kCAAA/jH,YAAA,gDAAA,IACAxF,OAAAmW,EAAAmzG,+BAAAlpH,OAAA,MAAA,IACAoF,YAAA,8CAEA2Q,EAAAozG,kCAAA/jH,YAAA,2CAIA2Q,EAAAq9F,YAAA5C,GAAA0B,WAAA4B,cACA/9F,EAAAs9F,YAAA7C,GAAAvlE,SAAA,WACA,MAAArrC,QAAAmW,EAAAq9F,eAAApzG,OAAA,SACA+V,GACAA,EAAA67F,aAAApB,GAAA0B,WAAA6B,eACAh+F,EAAAqzG,cAAA5Y,GAAAvlE,SAAA,WACA,MAAArrC,QAAAmW,EAAA67F,gBAAA5xG,OAAA,SACA+V,GACAA,EAAAszG,aAAA7Y,GAAAvlE,SAAA,WACA,MAAArrC,QAAAmW,EAAA67F,gBAAA5xG,OAAA,SACA+V,GAEAA,EAAAuhG,YAAA9G,GAAA0B,WAAA,GAAA2P,mBAEA9rG,EAAA2O,IAAA8rF,GAAA0B,WAAAtyG,UAEA6wC,YAAA,WACA,GAAA64E,GAAA,IAAAlpH,EAAA,+BAAA8C,OACAqmH,EAAA3pH,OAAAk0G,cACAlC,EAAAhyG,OAAAmW,EAAA67F,gBACAltF,EAAA9kB,QAGAmW,GAAA2O,IAAA9kB,SAAAsjB,SAAA,EAAA,MAGAomG,GAAA,IAAAC,EAAAz/G,KAAA8nG,EAAA,SAAA,IAAAltF,EAAA7kB,QAAA,OAAAiK,KAAAy/G,EAAA1pH,QAAA,OAAA,UACAi0G,aAAA,GAAAv1G,MACAwX,EAAAq9F,YAAAU,cAEAxqG,YACAX,MAAA,GACAY,KAAAnE,YAAA,gCAAA,2DACAmI,kBAAA,EACAC,kBAAApI,YAAA,UAAA,OACAqI,iBAAArI,YAAA,SAAA,OACA,SAAAsI,GACAA,GACA3M,WAAA,WACAgV,EAAA2O,IAAA9kB,UACAQ,EAAA,sBAAAwN,QAAA,UACA,SAIA,KAGAmI,EAAA7V,KAAAswG,GAAA8B,kBACAv8F,EAAAyzG,MAAAhZ,GAAA8B,kBACAv8F,EAAA0qG,wBAAAjQ,GAAA8B,kBACAv8F,EAAA0zG,4BAAAjZ,GAAAvlE,SAAA,WACA,GAAA2e,GAAA,CAIA,OAHA4mD,IAAAkZ,MAAAC,aAAA5zG,EAAA0qG,0BAAA,SAAAqH,GACAl+D,GAAAzlC,WAAA2jG,EAAAtC,YAEA57D,EAAA67D,QAAA,IACA1vG,GACAA,EAAA8qG,sBAAArQ,GAAA8B,kBACAv8F,EAAA6zG,0BAAApZ,GAAAvlE,SAAA,WACA,GAAA2e,GAAA,CAIA,OAHA4mD,IAAAkZ,MAAAC,aAAA5zG,EAAA8qG,wBAAA,SAAAiH,GACAl+D,GAAAzlC,WAAA2jG,EAAAtC,YAEA57D,EAAA67D,QAAA,IACA1vG,GAGAA,EAAAwlG,wBAAA/K,GAAA0B,WAAA,GAAAqF,uBACAxhG,EAAAulG,6BAAA9K,GAAA0B,WAAA,GAAAqF,uBACAxhG,EAAAmvG,uCAAA1U,GAAA8B,kBACAv8F,EAAAwwG,sBAAA/V,GAAA0B,WAAA,GAAAqF,uBAEAxhG,EAAAsvG,8BAAA7U,GAAA8B,kBACAv8F,EAAA8zG,wCAAArZ,GAAAvlE,SAAA,WACA,GAAAu9E,GAAA7iH,kBAAA6qG,GAAAQ,KAAAj7F,EAAAsvG,iCAAA,aAAA,EACA,OAAA,mBAAA,IAKAtvG,GAGAA,EAAA+zG,2BAAA,SAAA1jF,GACA,MAAAA,GAAA6a,YAGAlrC,EAAAg0G,mCAAA,SAAA3jF,GACA,MAAAA,GAAA6a,WAAA,YAGAlrC,EAAAi0G,oBAAA,SAAAC,GACA,MAAAA,GAAAhpE,UAIAlrC,EAAA8+F,sBAAA,SAAA8T,GACAvoH,EAAAqE,KAAAkkH,EAAA,SAAAuB,EAAAC,GACA/pH,EAAAqE,KAAA0lH,EAAA,SAAAC,EAAAC,GACA,GAAA,cAAAD,EAAA,CACA,GAAAE,KACAlqH,GAAAqE,KAAA4lH,EAAA,SAAA37G,EAAAyhB,GACAm6F,EAAArqH,KAAA,GAAAs3G,sBAAApnF,MAEApa,EAAA7V,KAAAD,KAAA,GAAA4hH,kBAAAsI,EAAAhtD,KAAAgtD,EAAAxU,cAAA2U,SAKAv0G,EAAAw0G,YAIAx0G,EAAAw0G,SAAA,WACA,GAAAC,GAAA,KACAC,KACAC,EAAA,EACAxqH,EAAA6V,EAAA7V,MAEA6V,GAAAyzG,MAAAjX,WAEA,KAAA,GAAAhzG,GAAA,EAAAwtB,EAAA7sB,EAAAgD,OAAA3D,EAAAwtB,EAAAxtB,IAEAirH,IACAA;AACAC,EAAAxqH,KAAAuqH,GAEAA,EAAAvqH,KAAA,GAAA2hH,mBAAA1hH,EAAAX,GAAA49D,UAEAqtD,EAAAvqH,KAAAC,EAAAX,IAEAA,EAAAmrH,IAAAA,EAAA,IACAF,EAAA,KAIApqH,GAAAqE,KAAAgmH,EAAA,SAAA/lH,EAAAnB,GAEAwS,EAAAyzG,MAAAvpH,KAAAsD,MAIAwS,EAAAyqG,0BAAA,SAAAmK,GACAvqH,EAAAqE,KAAAkmH,EAAA,SAAAjmH,EAAAnE,GACAwV,EAAA0qG,wBAAAxgH,KAAA,GAAAklH,sBAAA5kH,OAGAwV,EAAA6qG,wBAAA,SAAA+J,GACAvqH,EAAAqE,KAAAkmH,EAAA,SAAAjmH,EAAAnE,GACAwV,EAAA8qG,sBAAA5gH,KAAA,GAAAklH,sBAAA5kH,OAKAwV,EAAA60G,YAAApa,GAAA8B,kBACAv8F,EAAAsnG,eAAA,SAAAwN,GACA,GAAAC,GAAAta,GAAAkZ,MAAAqB,SAAAF,EAAA,SAAAn+G,GACA,MAAA,IAAA86G,0BAAA96G,EAAAulG,YAAAvlG,EAAAzK,QAEA8T,GAAA60G,YAAArY,YACAx8F,EAAA60G,YAAA3qH,KAAAgW,MAAAF,EAAA60G,YAAAE,IAGA/0G,EAAAi1G,gBAAAxa,GAAA8B,kBACAv8F,EAAAynG,mBAAA,SAAAqN,GACA,GAAAC,GAAAta,GAAAkZ,MAAAqB,SAAAF,EAAA,SAAAn+G,GACA,MAAA,IAAA86G,0BAAA96G,EAAAulG,YAAAvlG,EAAAzK,QAEA8T,GAAAi1G,gBAAAzY,YACAx8F,EAAAi1G,gBAAA/qH,KAAAgW,MAAAF,EAAAi1G,gBAAAF,IAGA/0G,EAAAk1G,gBAAAza,GAAA8B,kBACAv8F,EAAA4nG,mBAAA,SAAAkN,GACA,GAAAC,GAAAta,GAAAkZ,MAAAqB,SAAAF,EAAA,SAAAn+G,GACA,MAAA,IAAA86G,0BAAA96G,EAAAulG,YAAAvlG,EAAAzK,QAEA8T,GAAAk1G,gBAAA1Y,YACAx8F,EAAAk1G,gBAAAhrH,KAAAgW,MAAAF,EAAAk1G,gBAAAH,IAGA/0G,EAAAm1G,MAAA1a,GAAA8B,kBACAv8F,EAAAkoG,SAAA,SAAA4M,GACA,GAAAC,GAAAta,GAAAkZ,MAAAqB,SAAAF,EAAA,SAAAn+G,GACA,MAAA,IAAA86G,0BAAA96G,EAAAulG,YAAAvlG,EAAAzK,QAEA8T,GAAAm1G,MAAA3Y,YACAx8F,EAAAm1G,MAAAjrH,KAAAgW,MAAAF,EAAAm1G,MAAAJ,IAGA/0G,EAAAo1G,MAAA3a,GAAA8B,kBACAv8F,EAAAgoG,SAAA,SAAA8M,GACA,GAAAC,GAAAta,GAAAkZ,MAAAqB,SAAAF,EAAA,SAAAn+G,GACA,MAAA,IAAA86G,0BAAA96G,EAAAulG,YAAAvlG,EAAAzK,QAEA8T,GAAAo1G,MAAA5Y,YACAx8F,EAAAo1G,MAAAlrH,KAAAgW,MAAAF,EAAAo1G,MAAAL,IAGA/0G,EAAAq1G,OAAA5a,GAAA8B,kBACAv8F,EAAAqoG,UAAA,SAAAyM,GACA,GAAAC,GAAAta,GAAAkZ,MAAAqB,SAAAF,EAAA,SAAAn+G,GACA,MAAA,IAAA86G,0BAAA96G,EAAAulG,YAAAvlG,EAAAzK,QAEA8T,GAAAq1G,OAAA7Y,YACAx8F,EAAAq1G,OAAAnrH,KAAAgW,MAAAF,EAAAq1G,OAAAN,IAGA/0G,EAAAs1G,OAAA7a,GAAA8B,kBACAv8F,EAAAwoG,UAAA,SAAAsM,GACA,GAAAC,GAAAta,GAAAkZ,MAAAqB,SAAAF,EAAA,SAAAn+G,GACA,MAAA,IAAA86G,0BAAA96G,EAAAulG,YAAAvlG,EAAAzK,QAEA8T,GAAAs1G,OAAA9Y,YACAx8F,EAAAs1G,OAAAprH,KAAAgW,MAAAF,EAAAs1G,OAAAP,IAGA/0G,EAAAu1G,SAAA9a,GAAA8B,kBACAv8F,EAAA2oG,YAAA,SAAAmM,GACA,GAAAC,GAAAta,GAAAkZ,MAAAqB,SAAAF,EAAA,SAAAn+G,GACA,MAAA,IAAA86G,0BAAA96G,EAAAulG,YAAAvlG,EAAAzK,QAEA8T,GAAAu1G,SAAA/Y,YACAx8F,EAAAu1G,SAAArrH,KAAAgW,MAAAF,EAAAu1G,SAAAR,IAGA/0G,EAAAw1G,YAAA/a,GAAA8B,kBACAv8F,EAAA+oG,eAAA,SAAA+L,GACA,GAAAC,GAAAta,GAAAkZ,MAAAqB,SAAAF,EAAA,SAAAn+G,GACA,MAAA,IAAA86G,0BAAA96G,EAAAulG,YAAAvlG,EAAAzK,QAEA8T,GAAAw1G,YAAAhZ,YACAx8F,EAAAw1G,YAAAtrH,KAAAgW,MAAAF,EAAAw1G,YAAAT,IAGA/0G,EAAAy1G,OAAAhb,GAAA8B,kBACAv8F,EAAAkpG,UAAA,SAAA4L,GACA,GAAAC,GAAAta,GAAAkZ,MAAAqB,SAAAF,EAAA,SAAAn+G,GACA,MAAA,IAAA86G,0BAAA96G,EAAAulG,YAAAvlG,EAAAzK,QAEA8T,GAAAy1G,OAAAjZ,YACAx8F,EAAAy1G,OAAAvrH,KAAAgW,MAAAF,EAAAy1G,OAAAV,IAGA/0G,EAAA01G,SAAAjb,GAAA8B,kBACAv8F,EAAAqpG,YAAA,SAAAyL,GACA,GAAAC,GAAAta,GAAAkZ,MAAAqB,SAAAF,EAAA,SAAAn+G,GACA,MAAA,IAAA86G,0BAAA96G,EAAAulG,YAAAvlG,EAAAzK,QAEA8T,GAAA01G,SAAAlZ,YACAx8F,EAAA01G,SAAAxrH,KAAAgW,MAAAF,EAAA01G,SAAAX,IAGA/0G,EAAA21G,SAAAlb,GAAA8B,kBACAv8F,EAAAwpG,YAAA,SAAAsL,GACA,GAAAC,GAAAta,GAAAkZ,MAAAqB,SAAAF,EAAA,SAAAn+G,GACA,MAAA,IAAA86G,0BAAA96G,EAAAulG,YAAAvlG,EAAAzK,QAEA8T,GAAA21G,SAAAnZ,YACAx8F,EAAA21G,SAAAzrH,KAAAgW,MAAAF,EAAA21G,SAAAZ,IAGA/0G,EAAA41G,oBAAA,SAAAlZ,GACA+M,6BAEAzpG,EAAA61G,4BAAA,SAAAC,GACA,MACAzmH,aADA,IAAAymH,EACA,uBAEA,qBAKA91G,EAAA+1G,kBAAA,SAAA/mH,EAAAmmE,GACA,GAAA6gD,GAAA3rH,EAAA8qE,EAAA,cAAAA,EAAAhnC,cAAAgnC,EAAAtmC,YACAq4E,EAAA8O,EAAAnvF,QAAA,QACAy9E,EAAA,EACA2R,KACAthH,EAAA,SAAA3F,EAAAgC,EAAAC,GACAjC,EAAA2F,WAAA,GACA,IAAA2vG,EACAj6G,EAAAyzG,oBAAA3zG,QAAAuE,KAAA,SAAAC,EAAAnE,GACA,GAAAg6G,GAAAh6G,EAAA48D,OAAAr9D,cACAS,EAAA48D,OAAA8uD,UAAAD,EAAAjS,kBAAAiS,EAAAhS,kBAAAz5G,EAAA48D,OAAA+uD,OAAAF,EAAAjS,oBAAAx5G,EAAA48D,OAAA+uD,OAAAF,EAAAhS,mBACAx5G,UAAA+5G,EAAAyR,EAAAG,mBACA5rH,EAAAs1G,WAAA51G,KAAA,GAAAs3G,sBAAAyU,IACAzrH,EAAAs1G,WAAA7oF,KAAAinF,yBAKAkD,kCAAA6U,EAAAjS,mBAEA35G,EAAA6+C,cAAA/8B,SAEA5Y,WAAAlE,YAAA,wBAAA8D,yBAAAnE,EAAAgG,qBAAA,UAGAH,EAAA,SAAA5D,EAAAD,EAAAE,GACAqC,WAAAlE,YAAA,uBAAAA,YAAA2B,GAAA,SAGAilH,GAAA/qE,SAAA,WACA+qE,EAAAvR,0BACAuR,EAAAtR,wBACAsR,EAAAG,mBACAH,EAAAxR,iCAAAyC,EAAAz4G,KAAA,qCAAA+L,GAAA,YACAy7G,EAAArS,QAAAsD,EAAAz4G,KAAA,oBAAAjB,MACAyoH,EAAA/R,oBAAAgD,EAAAz4G,KAAA,oBAAAjB,MACAyoH,EAAA7uD,KAAA8/C,EAAAz4G,KAAA,qBAAAjB,MACAyoH,EAAA3a,SAAA4L,EAAAz4G,KAAA,qBAAAjB,MACAyoH,EAAAza,OAAA0L,EAAAz4G,KAAA,mBAAAjB,MACAyoH,EAAAjS,kBAAAkD,EAAAz4G,KAAA,qBAAAjB,MACAyoH,EAAAhS,gBAAAiD,EAAAz4G,KAAA,mBAAAjB,MACAyoH,EAAAlU,OAAA,OACAkU,EAAAhU,QAAA,OAGAiF,EAAAz4G,KAAA,qCAAAka,IAAA,WACAstG,EAAAvR,uBAAAx6G,KAAAyT,SAAAtT,EAAAgL,MAAA7H,UAEA05G,EAAAz4G,KAAA,mCAAAka,IAAA,WACAstG,EAAAtR,qBAAAz6G,KAAAyT,SAAAtT,EAAAgL,MAAA7H,UAEA05G,EAAAz4G,KAAA,4BAAAka,IAAA,WACAstG,EAAAG,gBAAAlsH,KAAAyT,SAAAtT,EAAAgL,MAAA7H,UAGA82G,EAAAz6G,OAAAosH,EAAAjS,mBAAAjwG,KAAAkiH,EAAAhS,gBAAA,KACA,IAAAK,GACA2R,EAAA/qE,SAAA,kBACAp6C,KAAAulH,0BACA1hH,EACAE,EACAhN,UAAAK,yBACA+tH,EAAAjS,kBACAiS,EAAAhS,gBACAgS,EAAAG,gBACAH,EAAAvR,uBACAuR,EAAAtR,qBACAsR,EAAArS,QACAqS,EAAAxR,mCAGA3zG,KAAAwlH,oBACA3hH,EACAE,EACAhN,UAAAK,yBACA+tH,EAAAjS,kBACAiS,EAAAvR,uBACAuR,EAAAtR,qBACAsR,EAAArS,QACAqS,EAAAxR,mCAKAzkG,EAAAu2G,2BAAA,SAAAvnH,EAAAmmE,GACA,GAAA6gD,GAAA3rH,EAAA8qE,EAAA,cAAAA,EAAAhnC,cAAAgnC,EAAAtmC,YACAq4E,EAAA8O,EAAAnvF,QAAA,QACA+8E,EAAAsD,EAAAz4G,KAAA,oBAAAjB,MACA+iH,EAAAzS,oBAAA0S,wBACA77G,EAAA,SAAA3F,EAAAgC,EAAAC,GACA5G,EAAA6+C,cAAA/8B,QACAnd,EAAA2F,WAAA,EACAysG,kCAAAtD,oBAAAyD,cAAAn6C,OAAAn9D,OAAA,eAEAsJ,WAAAlE,YAAA,wBAAA8D,yBAAAnE,EAAAgG,qBAAA,UAGAH,EAAA,SAAA5D,EAAAD,EAAAE,GACAqC,WAAAlE,YAAA,uBAAAA,YAAA2B,GAAA,SAEAF,MAAA0lH,0BACA7hH,EACAE,EACAhN,UAAAK,yBACAqoH,EAAAzI,eACAyI,EAAAjC,aACAiC,EAAAtG,SACAsG,EAAA9B,aACA8B,EAAApN,YACAS,IAKA5jG,EAAA/W,iBAAAwxG,GAAAgD,UAAAC,UAAAz0G,oBAGA+W,EAAAy2G,eAAA,SAAApJ,GACArtG,EAAAuhG,YAAA8L,GACA/L,wBAAA+L,EAAAjmD,QACAq6C,uCAAA4L,EAAAjmD,SAGApnD,EAAA2+F,sBAAA,WACA3+F,EAAA7V,KAAAqyG,aAGAx8F,EAAAwqG,gCAAA,WACAxqG,EAAA0qG,wBAAAlO,aAEAx8F,EAAA4qG,8BAAA,WACA5qG,EAAA8qG,sBAAAtO,aAGAx8F,EAAA02G,UAAA,SAAArJ,GACArtG,EAAA7V,KAAAqK,OAAA64G,IAGArtG,EAAA22G,OAAA,SAAAtJ,GACArtG,EAAA7V,KAAAD,KAAA,GAAA4hH,oBAcA7N,kBAAA,SAAAtlG,EAAAyhB,GACA,MAAAzhB,GAAAopG,SAAA3nF,EAAA2nF,YAAA,GAGA7D,qBAAA,SAAAvlG,EAAAyhB,GACA,MAAAzhB,GAAAi2G,kBAAAx0F,EAAAw0F,gBACA3Q,iBAAAtlG,EAAAyhB,GAEAzhB,EAAAi2G,gBAAAx0F,EAAAw0F,mBAAA,GAKAzQ,qBAAA,SAAAxlG,EAAAyhB,GAIA,GAAAw8F,GAAA,CAoBA,OANAj+G,GAAAg5G,iBAAAv3F,EAAAu3F,iBACAiF,KACAj+G,EAAAg5G,iBAAAv3F,EAAAu3F,mBACAiF,EAAA,GAGAA,GAKAnc,GAAAoc,gBAAA,SAAAC,EAAAtiH,GAEAsiH,EAAAroH,KAAA,KAAAC,KAAA,WACArE,EAAAgL,MAAAyoC,WAIAtpC,EACAimG,GAAAsc,WAAAD,EAAA,IAEArc,GAAAuc,UAAAF,EAAA,KAMAzsH,EAAA,gBAAAgnC,GAAA,QAAA,wCAAA,SAAAtlC,GACA,GAAAkrH,GAAA5sH,EAAA,4BACA6sH,EAAAD,EAAAp0G,SAAAk0B,WAAAzrC,IACAuL,EAAAxM,EAAA,aAEAA,GAAA,aAAAkzC,YAAA,YACAlzC,EAAAgL,MAAAtK,SAAA,YAEAV,EAAA,4DAAAsmB,OACAsmG,EAAA15E,YAAA,UAAAzC,MAAA,IAAAhuB,OAEAoqG,EAAA,MACAA,GAAA,GACArgH,EAAAikC,MAAA,KAAAlB,SAAAlK,UAAAwnF,GAAA,MAAA,QAAA,iBAKA7sH,EAAA,gBAAAgnC,GAAA,QAAA,qBAAA,SAAAtlC,GACA,GAAAorD,GAAA9sD,EAAAgL,KACA8hD,GAAApsD,SAAA,2BACAC,WAAA,WACAmsD,EAAA5Z,YAAA,2BACAwiE,YAAA5oD,EAAAzZ,SAAA,mBACA,OAGArzC,EAAA,gBAAAgnC,GAAA,QAAA,KAAA,SAAAtlC,GACA1B,EAAA,4BAAAsmB,OACAtmB,EAAA,4DAAAywC,MAAA,IAAAhuB,SAGAziB,EAAA,gBAAAgnC,GAAA,SAAA,0BAAA,SAAAtlC,GACAorD,MAAA9sD,EAAAgL,MACA8hD,MAAAjoD,KAAA,YAAA,IAAAtG,gBAAA,4BAAAO,cAAAgE,QAAAvE,gBAAA,4BAAAO,cAAA,UACAguD,MAAAjoD,KAAA,WAAA,GACAqE,YACAX,MAAAvD,YAAA,uBACAmE,KAAAnE,YAAA,4CACAoE,KAAA,OACA+D,kBAAA,EACAC,kBAAApI,YAAA,kBACAqI,iBAAArI,YAAA,cACA,SAAAsI,GACAA,IACA9J,OAAAC,SAAAqD,KAAA,wEAMA9G,EAAA,sBAAA6O,MAAA,SAAAi8D,GACAA,EAAAvnC,gBACA,IAAAupB,GAAA9sD,EAAAgL,MACA8hH,GAAA,CACA,UAAAhgE,EAAA3pD,QACA2pH,GAAA,GAEAhgE,EAAAtwB,QAAA,8BAAAp4B,KAAA,qCAAAC,KAAA,SAAAC,EAAAnE,GACAH,EAAAG,GAAA0E,KAAA,UAAAioH,OAoBA3oG,SAEA5I,QCttFA,SAAAvb,GACAA,EAAA4rB,GAAAmhG,uBAAA,SAAA1yG,GAIA,QAAA8J,KAQA,GAPA5lB,gBAAA,yBAAA,GACAyuH,EAAAlsH,IAAA,UAAA,SAEAksH,EAAAv4G,OAAA,SAAAq2D,GACAA,EAAAvnC,iBACA0pF,MAEA,SAAA5lH,eAAA,qBAAAA,eAAA,gBAAA,CACA,GAAA6lH,KAAA,GAAA/uH,OAAAgE,UAAAmR,SAAAjM,eAAA,kBAAA,GACAsyD,SAAAkG,IAAA,0BAAAqtD,GACAA,GAAA,IACAhkH,WAAAlE,YAAA,wBAAAA,YAAA,6BAAA,YAKA,QAAAioH,KACA,GAAAE,GAAAH,EAAA5oH,KAAA,iBAAAjB,MACAiqH,EAAAJ,EAAA5oH,KAAA,aAAAjB,MACAkqH,EAAAL,EAAA5oH,KAAA,mBAAAjB,KAEAiqH,KAAAC,EACAC,EAAAH,EAAAC,EAAAC,GAEAnkH,WAAAlE,YAAA,wBAAAA,YAAA,+BAAA,SAIA,QAAAsoH,GAAAH,EAAAC,EAAAC,GACA,GAAA/iH,GAAA,SAAA3F,EAAAgC,EAAAC,GAEA,GADA8D,iBAAA,GACA/F,EAAA2F,WAAA,EAAA,CACAtM,cAAA2G,EAAA4F,QAAA,GACA,IAAAgjH,GAAAjiH,mBAAA9H,OAAAC,SAAAqD,KAAA,oBAAA,EACAymH,GAAAjiH,mBAAAiiH,EAAA,gBAAA,GAAApvH,OAAAgE,WACAqB,OAAAC,SAAAqD,KAAAymH,MAEArkH,YAAAlE,YAAA,wBAAA8D,yBAAAnE,EAAAgG,qBAAA,UAGAH,EAAA,SAAA5D,EAAAD,EAAAE,GACA6D,iBAAA,GACAxB,WAAA,QAAArC,EAAA,SAEA6D,kBAAA,GACAjE,KAAA+mH,oBAAAljH,EAAAE,EAAAhN,UAAAK,yBAAAsvH,EAAAC,EAAAC,GAjDA,GAAAL,GAAAhtH,EAAAgL,KAsDAmZ,OAGA5I,OC3DA,IAAAkyG,oBACA,SAAAztH,GACAA,EAAA4rB,GAAA8hG,eAAA,WAOA,QAAAvpG,KACAwpG,EAAApvH,gBAAA,6CACAkvH,kBAAA,GAAAG,GACA5tH,EAAA,uCAAAqE,KAAA,SAAAC,EAAAnE,GACAiwG,GAAAC,cAAAod,kBAAAttH,KAEAstH,kBAAAI,WAAA,GAAA,GAGA,QAAAC,KACA,GAAAC,GAAA,CACA3d,IAAAkZ,MAAAC,aAAAkE,kBAAAO,UAAA,SAAAC,GACAF,GAAAE,EAAAC,wBAAAD,EAAAE,qBAEAxvH,gBAAA,+BAAAovH,GACAK,sBAAAC,mBAAAN,GA6cA,QAAAO,GAAAxhE,GACA,GAAAtgD,GAAAxM,EAAA,QACAuuH,EAAAvuH,EAAA,mBAEA8sD,GAAAzZ,SAAA,aAAA,GACAk7E,EAAAnqH,KAAA,YAAA8uC,YAAA,UACAq7E,EAAAnqH,KAAA,oBAAA8uC,YAAA,gBACAlzC,EAAA,8BAAAkzC,YAAA,UACAq7E,EAAA7tH,SAAA,UACAosD,EAAApsD,SAAA,YAEAosD,EAAA5Z,YAAA,UACA1mC,EAAA0mC,YAAA,sBACAlzC,EAAA,2DAAAe,OAAA,IACAf,EAAA,QAAAc,IAAA,UAAA,IACA0L,EAAA1L,IAAA,UAAA,IACAytH,EAAAr7E,YAAA,WAIA,QAAAs7E,GAAA1hE,GACA,GAAA2hE,GAAAzuH,EAAA,sBACA0uH,EAAA5hE,EAAA/wB,SAAA,gCACA4yF,EAAAD,EAAA3yF,WACA6yF,EAAA,EACAC,EAAA/hE,EAAAzZ,SAAA,UACAk7E,EAAAvuH,EAAA,oBACAwM,EAAAxM,EAAA,QACA8uH,EAAA9uH,EAAA,QAAAe,SACAguH,EAAAjiE,EAAA1oD,KAAA,sBAAAowD,aAAA,EAEAq6D,MAAA,EACAH,EAAA5tH,IAAA,SAAA,KAEA6tH,EAAAtqH,KAAA,SAAAC,EAAA0qH,GAIA,MAHAllD,QAAA9pE,EAAAgvH,IAGAllD,OAAAz2B,SAAA,0CAIAu7E,GAAA9kD,OAAAtV,aAAA,MAGAhoD,EAAAkY,QAAA,KACAooC,EAAAhsD,IAAA,MAAAguH,GACAhiE,EAAAhsD,IAAA,SAAA,GACA4tH,EAAA5tH,IAAA,SAAA,QACA4tH,EAAA5tH,IAAA,MAAAguH,EAAAC,EAAA,IACAL,EAAA5tH,IAAA,SAAAytH,EAAA/5D,aAAA,IACAhoD,EAAA9L,SAAA,sBACAV,EAAA,QAAAc,IAAA,UAAA,WAAA0C,OAAA++C,YAAA,8EACA/1C,EAAA1L,IAAA,UAAA,WAAA0C,OAAA++C,YAAA,gFAEAmsE,EAAA5tH,IAAA,MAAA,IACA4tH,EAAA5tH,IAAA,SAAA,IACA4tH,EAAA5tH,IAAA,SAAA2tH,EAAA1tH,SAAAwtH,EAAA/5D,aAAA,IACAhoD,EAAA0mC,YAAA,sBACAlzC,EAAA,QAAAc,IAAA,UAAA,IACA0L,EAAA1L,IAAA,UAAA,KAGA4tH,EAAAxuF,aAAAuQ,MAAA,KAAAlB,SACAlK,UAAAupF,GACA,MAIA,QAAAK,GAAAt5G,GACA,GAAArL,GAAA,SAAA3F,EAAAgC,EAAAC,GACA,GAAA1H,KACAwL,kBAAA,GACA,GAAA/F,EAAA2F,SACApL,EAAAgwH,oBAAAvqH,EAAA4F,QAAA,GACA4kH,2BAAA/e,GAAAgD,UAAAC,UAAAn0G,EAAAgwH,qBACAv5G,EAAAy5G,6BAAAD,2BAAA1R,iBAEAv0G,WAAAlE,YAAA,wBAAA8D,yBAAAnE,EAAAgG,qBAAA,UAGAH,EAAA,SAAA5D,EAAAD,EAAAE,GACA6D,iBAAA,GACAxB,WAAA,QAAArC,EAAA,SAEA6D,kBAAA,GACAjE,KAAA4oH,oCAAA/kH,EAAAE,EAAAhN,UAAAK,0BAxjBA,GAEA8vH,EAFA3tH,GAAAgL,KAwBAhL,GAAAwD,QAAA8rH,OAAA,SAAAxyG,GACA,GAAAyyG,GAAAvvH,EAAA,2BACAuvH,IACAf,EAAAe,IAMA,IAAA3B,GAAA,WACA,GAAAj4G,GAAA3K,IAEA2K,GAAAq4G,QAAA5d,GAAA8B,kBACAv8F,EAAA65G,eAAApf,GAAA0B,WAAA,GAAA2d,IACA95G,EAAA+5G,yBAAA,WACA1vH,EAAA6+C,cAAA3K,MACAsN,UAAA,sBACArB,gBAAA,EACAR,OACAzwC,IAAAlP,EAAA,sBACAoJ,KAAA,UAEAk1C,WACAqxE,WAAA,WACAlpH,KAAAu2G,+BACA,SAAAr4G,EAAAgC,EAAAC,GACA,GAAA8jH,GAAAta,GAAAkZ,MAAAqB,SAAAhmH,EAAA4F,QAAA,SAAA+B,GACA,MAAA,IAAAsjH,GAAAtjH,EAAAulG,YAAAvlG,EAAAzK,QAEA8T,GAAAzV,YAAAiyG,YACAx8F,EAAAzV,YAAAL,KAAAgW,MAAAF,EAAAzV,YAAAwqH,GAEAuE,EAAAt5G,GAEA3V,EAAA,uBAAAqE,KAAA,SAAAC,EAAAi8B,GACAvgC,EAAAugC,GAAA57B,KAAA,WAAAqlE,WAAA5lE,KAAA,KAAA1D,SAAA,iBAGA,SAAAkG,EAAAD,EAAAE,GACAqC,WAAAlE,YAAA,uBAAAA,YAAA2B,GAAA,UAEAnJ,UAAAK,2BAGAq2C,KAAA,WACA,GAAAmoE,GAAAr8G,EAAAgL,KAAAy0B,UAAA,GACA30B,sBAAAuxG,GAEAn4G,aAAAm4G,GAGAr8G,EAAA,uBAAA2iE,SACAuqC,MAAA,YACAF,eAAA,SAAAp3F,EAAA6pB,GACA,MAAA7pB,GAAAvV,IAGAL,EAAAy/B,GAAA/+B,SAAA,cACAkV,EAAAzM,MAHAyM,EAAAzM,aAUAwM,EAAAzV,YAAAkwG,GAAA8B,kBACAv8F,EAAAy5G,6BAAAhf,GAAA0B,aACAn8F,EAAAk6G,iBAAAzf,GAAA0B,WAAA,GAAAge,IACAn6G,EAAAo6G,uBAAA,WACA,GAAAzlH,GAAA,SAAA3F,EAAAgC,EAAAC,GAGA,GADA8D,iBAAA,GACA,GAAA/F,EAAA2F,QAAA,CACA,GAAA0lH,KAEAhwH,GAAAqE,KAAAopH,kBAAAvtH,cAAA,SAAAf,EAAAmN,GACA,IAAAA,EAAAzK,UACAmuH,EAAA1jH,EAAAulG,gBAKA,IAAAoe,GAAA,GAAAR,IACApvH,GAAAsE,EAAA4F,QAAA,GAAA2lH,SACAC,MAAAx6G,EAAAk6G,mBAAAO,UACAlC,sBAAA,EACAmC,YAAA,EACAC,YAAA,EACAC,UAAA/wH,SAAAI,SACA4wH,qBAAAhxH,SAAAI,SACA6wH,YAAA9C,EAAAttH,GACAqwH,UAAA/C,EAAA/rH,KACAouH,eAAAA,GACAW,WAAA,eAEAC,EAAA,GAAAd,IACAzvH,GAAAsE,EAAA4F,QAAA,GAAAsmH,UACAX,SAAAvrH,EAAA4F,QAAA,GAAA2lH,SACAC,MAAAx6G,EAAAk6G,mBAAAO,UACAzhH,KAAAgH,EAAAk6G,mBAAAlhH,OACAmiH,eAAAnD,EAAA/rH,MAGAquH,GAAAp1D,WAAAh7D,KAAA+wH,GACAj7G,EAAAq4G,QAAAllG,QAAAmnG,GACAjwH,EAAA,QAAA0kB,SAAA,KACA1kB,EAAA,yBAAAwsB,QAAAhf,QAAA,SAEAxN,EAAA6+C,cAAA/8B,YAEA5Y,YAAAlE,YAAA,wBAAA8D,yBAAAnE,EAAAgG,qBAAA,UAGAH,EAAA,SAAA5D,EAAAD,EAAAE,GAEA6D,iBAAA,GACAxB,WAAA,QAAArC,EAAA,SAGA6D,kBAAA,GACAjE,KAAAsqH,iBAAAzmH,EAAAE,EAAAijH,kBAAA2B,+BAAA3B,kBAAAoC,mBAAAO,UAAA3C,kBAAAoC,mBAAAlhH,OAAAnR,UAAAK,yBAAA,KAAA,OAEA8X,EAAAq7G,sBAAA5gB,GAAAvlE,SAAA,WACA,MAAA,4BAEAl1B,EAAAk4G,WAAA,SAAAoD,EAAAC,GACA,GAAA5mH,GAAA,SAAA3F,EAAAgC,EAAAC,GAEA8D,iBAAA,GACA,GAAA/F,EAAA2F,SACAtK,EAAAqE,KAAAM,EAAA4F,QAAA,SAAApL,EAAAgB,GACAstH,kBAAAO,QAAAnuH,KAAA,GAAA4vH,GAAAtvH,MAEA2tH,KAEA5kH,WAAAlE,YAAA,wBAAA8D,yBAAAnE,EAAAgG,qBAAA,UAGAH,EAAA,SAAA5D,EAAAD,EAAAE,GAEA6D,iBAAA,GACAxB,WAAA,QAAArC,EAAA,SAGA6D,kBAAA,GACAjE,KAAA0qH,gBAAA7mH,EAAAE,EAAAymH,EAAAC,EAAA1zH,UAAAK,2BAEA8X,EAAAy7G,YAAA,WAEAz7G,EAAAq4G,QAAAphG,KAAAykG,mCAIA5B,EAAA,SAAA3oG,GAEA,mBAAA,KAAAA,MACA,mBAAAA,GAAA,KAAAA,EAAAzmB,GAAA,IACA,mBAAAymB,GAAA,YAAAA,EAAAypG,UAAA,IACA,mBAAAzpG,GAAA,uBAAAA,EAAA0pG,qBAAA,IACA,mBAAA1pG,GAAA,cAAAA,EAAA2pG,YAAA,IACA,mBAAA3pG,GAAA,YAAAA,EAAA4pG,UAAA,IACA,mBAAA5pG,GAAA,QAAAA,EAAAqpG,MAAA,IACA,mBAAArpG,GAAA,aAAAA,EAAAwpG,YAAA,GACA,mBAAAxpG,GAAA,aAAAA,EAAAupG,YAAA,GACA,mBAAAvpG,GAAA,wBAAAA,EAAAwqG,sBAAA,IACA,mBAAAxqG,GAAA,wBAAAA,EAAAonG,sBAAA,IACA,mBAAApnG,GAAA,mBAAAA,EAAAqnG,iBAAA,GACA,mBAAArnG,GAAA,WAAAA,EAAA+zC,aACA,mBAAA/zC,GAAA,sBAAAA,EAAAyqG,oBAAA,GACA,mBAAAzqG,GAAA,aAAAA,EAAA6pG,WAAA,cACA,mBAAA7pG,GAAA,4BAAAA,EAAA0qG,2BAAA,GACA,mBAAA1qG,GAAA,gBAAAA,EAAAkpG,iBAEA,IAAAr6G,GAAA3K,IACA2K,GAAAtV,GAAA+vG,GAAA0B,WAAAhrF,EAAAzmB,IACAsV,EAAA46G,UAAAngB,GAAA0B,WAAAhrF,EAAAypG,WACA56G,EAAA66G,qBAAApgB,GAAA0B,WAAAhrF,EAAA0pG,sBACA76G,EAAA86G,YAAArgB,GAAA0B,WAAAhrF,EAAA2pG,aACA96G,EAAA+6G,UAAAtgB,GAAA0B,WAAAhrF,EAAA4pG,WACA/6G,EAAAw6G,MAAA/f,GAAA0B,WAAAhrF,EAAAqpG,OACAx6G,EAAA26G,WAAAlgB,GAAA0B,WAAAhrF,EAAAwpG,YACA36G,EAAA06G,WAAAjgB,GAAA0B,WAAAhrF,EAAAupG,YACA16G,EAAA27G,sBAAAlhB,GAAA0B,WAAAhrF,EAAAwqG,uBACA37G,EAAAu4G,sBAAA9d,GAAA0B,WAAAhrF,EAAAonG,uBACAv4G,EAAAw4G,iBAAA/d,GAAA0B,WAAAhrF,EAAAqnG,kBACAx4G,EAAAklD,SAAAu1C,GAAA8B,gBAAAprF,EAAA+zC,UACAllD,EAAA47G,oBAAAnhB,GAAA0B,WAAAhrF,EAAAyqG,qBACA57G,EAAAg7G,WAAAvgB,GAAA0B,WAAAhrF,EAAA6pG,YACAh7G,EAAA67G,0BAAAphB,GAAA0B,WAAAhrF,EAAA0qG,2BACA77G,EAAAq6G,cAAA5f,GAAA0B,WAAAhrF,EAAAkpG,cAAA/rH,KAAA,OACA0R,EAAA87G,kBAAArhB,GAAA0B,WAAA,IACAn8F,EAAA+7G,kCAAAthB,GAAAuhB,aAAA,WACA,MAAAnyH,QAAAmW,EAAA66G,wBAAAoB,QACAj8G,GACAA,EAAAk8G,uBAAAzhB,GAAAuhB,aAAA,WACA,MAAA,KAAAh8G,EAAA+6G,YACA/6G,EAAA+6G,YAEA/6G,EAAA86G,eACA96G,GACAA,EAAAm8G,cAAA1hB,GAAAuhB,aAAA,WACA,GAAAI,GAAA,EAgBA,OAdAA,GADAp8G,EAAA06G,aACA,qBAEA,qBAGA0B,GADAp8G,EAAA47G,sBAAA,EACA,oBAEA,kBAGAQ,GADAp8G,EAAA67G,4BACA,4BAEA,2BAGA77G,GACAA,EAAAq8G,kBAAA5hB,GAAAuhB,aAAA,WACA,MAAA,YAAAh8G,EAAAg7G,aACA,sBACA,SAAAh7G,EAAAg7G,aACA,gBACA,cAAAh7G,EAAAg7G,aACA,qBADA,QAGAh7G,GACAA,EAAAs8G,sBAAA,SAAAhE,EAAAnxG,GACA,GAAAgwC,GAAA9sD,EAAA8c,EAAA,cAAAA,EAAAgnB,cAAAhnB,EAAA0nB,WACAsoB,GAAAzZ,SAAA,aAAA,EACA19B,EAAAu8G,YAAA,GAAA,EAAAjE,EAAAnhE,IAEAn3C,EAAA24G,mBAAAxhE,GACAn3C,EAAA64G,qBAAA1hE,KAGAn3C,EAAAu8G,YAAA,SAAAjB,EAAAC,EAAAjD,EAAAkE,GACA,GAAA7nH,GAAA,SAAA3F,EAAAgC,EAAAC,GACA,GAAAwrH,GAAA,CAEA1nH,kBAAA,GACA,GAAA/F,EAAA2F,SACAqL,EAAAklD,SAAAs3C,YACAnyG,EAAAqE,KAAAM,EAAA4F,QAAA,SAAApL,EAAAgB,GACAwV,EAAAklD,SAAAh7D,KAAA,GAAAiwH,GAAA3vH,MAGAiwG,GAAAkZ,MAAAC,aAAA5zG,EAAAklD,WAAA,SAAA9xD,IACAA,EAAAspH,oBAAAtpH,EAAAsnH,cACA+B,MAGAz8G,EAAAw4G,iBAAAiE,GACAz8G,EAAAu4G,yBAAAv4G,EAAAw4G,oBACAx4G,EAAA67G,2BAAA,GAGA77G,EAAAklD,SAAAjuC,KAAA0lG,qBAEA7E,kBAAA+B,eAAA75G,GACAhV,WAAA,WACAstH,EAAAsD,oBAAA,GACA57G,EAAA24G,mBAAA6D,GACAx8G,EAAA64G,qBAAA2D,IACA,IACArE,KAEA5kH,WAAAlE,YAAA,wBAAA8D,yBAAAnE,EAAAgG,qBAAA,UAGAH,EAAA,SAAA5D,EAAAD,EAAAE,GAEA6D,iBAAA,GACAxB,WAAA,QAAArC,EAAA,SAGA6D,kBAAA,GACAjE,KAAA8rH,uBAAAjoH,EAAAE,EAAAmL,EAAAtV,KAAA4wH,EAAAC,EAAA1zH,UAAAK,2BAEA8X,EAAA68G,kCAAA,SAAAvE,GACA,GAAA3jH,GAAA,SAAA3F,EAAAgC,EAAAC,GAEA8D,iBAAA,GACA,GAAA/F,EAAA2F,QACAqL,EAAAu4G,sBAAA,GAEAhlH,WAAAlE,YAAA,wBAAA8D,yBAAAnE,EAAAgG,qBAAA,UAGAH,EAAA,SAAA5D,EAAAD,EAAAE,GAEA6D,iBAAA,GACAxB,WAAA,QAAArC,EAAA,SAGAupG,IAAAkZ,MAAAC,aAAA0E,EAAApzD,WAAA,SAAA9xD,GAEA2B,iBAAA,GACAjE,KAAAgsH,oBAAAnoH,EAAAE,EAAAyjH,EAAA5tH,KAAA0I,EAAA1I,KAAA7C,UAAAK,6BAGA8X,EAAA+8G,iBAAA,SAAAlD,GACA,GAAAmD,IAAA,EACAroH,EAAA,SAAA3F,EAAAgC,EAAAC,GAEA8D,iBAAA,GACA1K,EAAA,6BAAA6E,KAAA,YAAA,GACA7E,EAAA,kCAAA6E,KAAA,YAAA,GACA,GAAAF,EAAA2F,SACAqL,EAAAklD,SAAAh7D,KAAA,GAAAiwH,IACAzvH,GAAAsE,EAAA4F,QACA2lH,SAAAV,EAAAnvH,KACAsO,KAAA6gH,EAAAiC,oBACAmB,eAAAjF,EAAAttH,GACAywH,eAAAnD,EAAA/rH,QAEA+T,EAAA87G,kBAAA,IACA97G,EAAA64G,qBAAAxuH,EAAA,6BAGAwvH,EAAAgB,qBAAAhxH,SAAAI,UACA6tH,kBAAA2D,eAEAloH,WAAAlE,YAAA,wBAAA8D,yBAAAnE,EAAAgG,qBAAA,UAGAH,EAAA,SAAA5D,EAAAD,EAAAE,GAEA6D,iBAAA,GACA1K,EAAA,6BAAA6E,KAAA,YAAA,GACA7E,EAAA,kCAAA6E,KAAA,YAAA,GACAqE,WAAA,QAAArC,EAAA,SAGAupG,IAAAkZ,MAAAC,aAAAiG,EAAA30D,WAAA,SAAA9xD,GACAA,EAAAspH,qBACAM,GAAA,KAIAA,EACAzpH,WAAAlE,YAAA,kCAAA,wBAAAA,YAAA,iCAAA,oHAAA,SAGAhF,EAAA,6BAAA6E,KAAA,YAAA,GACA7E,EAAA,kCAAA6E,KAAA,YAAA,GACA6F,iBAAA,GACAjE,KAAAosH,kBAAAvoH,EAAAE,EAAAglH,EAAAnvH,KAAAmvH,EAAAiC,oBAAAj0H,UAAAK,4BAIA8X,EAAA24G,mBAAA,SAAAxhE,GACAwhE,EAAAxhE,IAEAn3C,EAAA64G,qBAAA,SAAA1hE,GACA0hE,EAAA1hE,KAIAgjE,EAAA,SAAAhpG,GAEA,mBAAA,KAAAA,MACA,mBAAAA,GAAA,KAAAA,EAAAzmB,GAAA,IACA,mBAAAymB,GAAA,WAAAA,EAAAopG,SAAA,IACA,mBAAAppG,GAAA,YAAAA,EAAAypG,UAAA/wH,SAAAI,UACA,mBAAAknB,GAAA,SAAAA,EAAAgsG,OAAA,IACA,mBAAAhsG,GAAA,UAAAA,EAAAspG,QAAA,IACA,mBAAAtpG,GAAA,OAAAA,EAAAnY,KAAA,IACA,mBAAAmY,GAAA,iBAAAA,EAAA8rG,eAAA,IACA,mBAAA9rG,GAAA,iBAAAA,EAAAgqG,eAAA,IACA,mBAAAhqG,GAAA,aAAAA,EAAAwpG,YAAA,GACA,mBAAAxpG,GAAA,aAAAA,EAAAupG,YAAA,GACA,mBAAAvpG,GAAA,yBAAAA,EAAAisG,uBAAAvzH,OAAAsnB,EAAAypG,WAAAqB,QACA,mBAAA9qG,GAAA,mBAAAA,EAAAurG,kBAAA,EAEA,IAAA18G,GAAA3K,IACA2K,GAAAtV,GAAA+vG,GAAA0B,WAAAhrF,EAAAzmB,IACAsV,EAAAu6G,SAAA9f,GAAA0B,WAAAhrF,EAAAopG,UACAv6G,EAAA46G,UAAAngB,GAAA0B,WAAAhrF,EAAAypG,WACA56G,EAAAm9G,OAAA1iB,GAAA0B,WAAAhrF,EAAAgsG,QACAn9G,EAAAy6G,QAAAhgB,GAAA0B,WAAAhrF,EAAAspG,SACAz6G,EAAAhH,KAAAyhG,GAAA0B,WAAAhrF,EAAAnY,MACAgH,EAAAi9G,eAAAxiB,GAAA0B,WAAAhrF,EAAA8rG,gBACAj9G,EAAAm7G,eAAA1gB,GAAA0B,WAAAhrF,EAAAgqG,gBACAn7G,EAAA26G,WAAAlgB,GAAA0B,WAAAhrF,EAAAwpG,YACA36G,EAAA06G,WAAAjgB,GAAA0B,WAAAhrF,EAAAupG,YACA16G,EAAAo9G,uBAAA3iB,GAAA0B,WAAAhrF,EAAAisG,wBACAp9G,EAAA08G,iBAAAjiB,GAAA0B,WAAAhrF,EAAAurG,kBACA18G,EAAAq7G,sBAAA5gB,GAAAvlE,SAAA,WACA,MAAA,4BAEAl1B,EAAAq9G,+BAAA5iB,GAAAuhB,aAAA,WACA,MAAA,KAAAh8G,EAAAm7G,iBACAn7G,EAAAm7G,iBAEAn7G,EAAAi9G,kBACAj9G,GACAA,EAAAm8G,cAAA1hB,GAAAuhB,aAAA,WACA,GAAAI,GAAA,EAWA,OAVAp8G,GAAA26G,aACAyB,EAAA,uCAEAA,EAAA,sCAEAA,GADAp8G,EAAA08G,mBACA,oCAEA,mCAGAN,GACAp8G,GACAA,EAAAs9G,uBAAA7iB,GAAAuhB,aAAA,WACA,MAAAnyH,UAAAI,OAAA,eAAAJ,OAAAmW,EAAA46G,aAAA3wH,OAAA,cACAJ,OAAAmW,EAAA46G,aAAA2C,OAEA1zH,OAAAmW,EAAA46G,aAAA3wH,OAAA,aAEA+V,GAEAA,EAAAw9G,8BAAA,SAAApqH,GACA,GAAAuB,GAAA,SAAA3F,EAAAgC,EAAAC,GAEA8D,iBAAA,GACA,GAAA/F,EAAA2F,SACAvB,EAAAspH,kBAAA,GACA5E,kBAAA+B,iBAAArB,iBAAAV,kBAAA+B,iBAAArB,mBAAA,GACAV,kBAAA+B,iBAAAtB,yBAAAT,kBAAA+B,iBAAArB,oBACAV,kBAAA+B,iBAAAgC,2BAAA,GAEA1D,KAEA5kH,WAAAlE,YAAA,wBAAA8D,yBAAAnE,EAAAgG,qBAAA,UAGAH,EAAA,SAAA5D,EAAAD,EAAAE,GAEA6D,iBAAA,GACAxB,WAAA,QAAArC,EAAA,SAGA6D,kBAAA,GACAjE,KAAAgsH,oBAAAnoH,EAAAE,EAAA,KAAAzB,EAAA1I,KAAA7C,UAAAK,2BAIAwyC,YAAA,WACA16B,EAAA46G,UAAA6C,qBACA,MAGAxD,EAAA,SAAA/d,EAAAhwG,GAEA,GAAA8T,GAAA3K,IACA2K,GAAAk8F,YAAAzB,GAAA0B,WAAAD,GACAl8F,EAAA9T,MAAAuuG,GAAA0B,WAAAjwG,GA8FAywH,qBAAA,SAAAhkH,EAAAyhB,GACA,MAAAzhB,GAAAykH,yBAAAhjG,EAAAgjG,4BAAA,GAEA1B,gCAAA,SAAA/iH,EAAAyhB,GACA,MAAAzhB,GAAAojH,oCAAA3hG,EAAA2hG,uCAAA,GAKAvtG,MAGA5I,OC5kBA,IAAA83G,wBACA,SAAArzH,GACAA,EAAA4rB,GAAA0nG,uBAAA,WAgDA,QAAAnvG,KACA,GAAAjlB,KACAA,GAAA86G,mBACAqZ,sBAAAjjB,GAAAgD,UAAAC,UAAAn0G,EAAA4nB,GACA9mB,EAAA,2CAAAqE,KAAA,SAAAC,EAAAnE,GACAiwG,GAAAC,cAAAgjB,sBAAAlzH,KAEA02G,IAGA,QAAAA,KACA,GAAAvsG,GAAA,SAAA3F,EAAAgC,EAAAC,GACA,GAAA1H,KACAwL,kBAAA,GACA,GAAA/F,EAAA2F,QACA3F,EAAA4F,QAAAzH,OAAA,IACA5D,EAAA86G,gBAAAr1G,EAAA4F,QACA6lG,GAAAgD,UAAAmgB,gBAAAF,sBAAAn0H,IAGAgK,WAAAlE,YAAA,wBAAA8D,yBAAAnE,EAAAgG,qBAAA,UAGAH,EAAA,SAAA5D,EAAAD,EAAAE,GACA6D,iBAAA,GACAxB,WAAA,QAAArC,EAAA,SAEA6D,mBACAjE,KAAA+zG,wBAAAlwG,EAAAE,EAAAhN,UAAAK,yBAAA,aAAA,cAGA,QAAA21H,GAAAC,GACA,GAAAnpH,GAAA,SAAA3F,EAAAgC,EAAAC,GACA8D,iBAAA,GACA,GAAA/F,EAAA2F,QACApB,WAAAlE,YAAA,wBAAA8D,yBAAAnE,EAAAgG,qBAAA,SAEA0oH,sBAAArZ,gBAAA7vG,OAAAspH,IAGAjpH,EAAA,SAAA5D,EAAAD,EAAAE,GACA6D,iBAAA,GACAxB,WAAA,QAAArC,EAAA,SAEA6D,mBACAjE,KAAAmgH,0BAAAt8G,EAAAE,EAAAhN,UAAAK,yBAAA41H,EAAAxiB,YA5FA,GAAAnqF,IACA5I,QACAq0F,SAAA,SAAAz4E,GA2BA,MA1BAA,GAAA45F,uBAAAtjB,GAAAgD,UAAAC,WAAAyM,MAAA,IACAhmF,EAAAl7B,iBAAAwxG,GAAAgD,UAAAC,UAAAz0G,oBACAk7B,EAAA65F,0BAAA,SAAAF,GACAD,EAAAC,IAEA35F,EAAA85F,wBAAA,SAAAH,GACAJ,sBAAAK,uBAAAD,GAEA35F,EAAA+5F,uBAAA,SAAAJ,GACAzzH,EAAA6+C,cAAA3K,MACAsN,UAAA,sBACArB,gBAAA,EACAR,OACAzwC,IAAAlP,EAAA,8BACAoJ,KAAA,UAEAk1C,WACApK,KAAA,WACA,GAAAmoE,GAAAr8G,EAAAgL,KAAAy0B,UAAA,GACA30B,sBAAAuxG,GAEAn4G,aAAAm4G,QAKAviF,GAEAg6F,4BAAA,SAAAL,GASA,MARAA,GAAAM,gBAAA3jB,GAAAvlE,SAAA,WACA,GAAAioE,GAAA2gB,EAAArZ,kCACA,OAAAtH,GACA9tG,YAAA,+BAAA,MAEAA,YAAA,gCAAA,QAEAyuH,GACAA,IAuDAzzH,GAAA,sBAAA6O,MAAA,SAAAi8D,GACAA,EAAAvnC,gBACA,IAAAupB,GAAA9sD,EAAAgL,MACA8hH,GAAA,CACA,UAAAhgE,EAAA3pD,QACA2pH,GAAA,GAEAhgE,EAAAtwB,QAAA,aAAAp4B,KAAA,qCAAAC,KAAA,SAAAC,EAAAnE,GACAH,EAAAG,GAAA0E,KAAA,UAAAioH,OAIA9sH,EAAAgL,MAAA5G,KAAA,QAAAqQ,OAAA,SAAAq2D,GACAA,EAAAvnC,gBACA,IAAAupB,GAAA9sD,EAAAgL,MACAgpH,KACAC,KACAC,KACA9Z,EAAAttD,EAAA1oD,KAAA,yCAAA+L,GAAA,YACAopG,EAAAzsD,EAAA1oD,KAAA,oBAAAjB,MACAs0G,EAAA3qD,EAAA1oD,KAAA,2BAAAjB,MACAgxH,EAAArnE,EAAA1oD,KAAA,yBAAAjB,MACAmH,EAAA,SAAA3F,EAAAgC,EAAAC,GACA8D,iBAAA,GACA,GAAA/F,EAAA2F,SACA+oH,sBAAAK,uBAAA5T,QACAjJ,IAEA72G,EAAA6+C,cAAA/8B,SAEA5Y,WAAAlE,YAAA,wBAAA8D,yBAAAnE,EAAAgG,qBAAA,UAGAH,EAAA,SAAA5D,EAAAD,EAAAE,GACA6D,iBAAA,GACAxB,WAAA,QAAArC,EAAA,SAGAimD,GAAA1oD,KAAA,qCAAAka,IAAA,WACA01G,EAAAn0H,KAAAyT,SAAAtT,EAAAgL,MAAA7H,UAEA2pD,EAAA1oD,KAAA,mCAAAka,IAAA,WACA21G,EAAAp0H,KAAAyT,SAAAtT,EAAAgL,MAAA7H,UAEA2pD,EAAA1oD,KAAA,4BAAAka,IAAA,WACA41G,EAAAr0H,KAAAyT,SAAAtT,EAAAgL,MAAA7H,UAGAuH,kBACAjE,KAAAulH,0BACA1hH,EACAE,EACAhN,UAAAK,yBACA45G,EACA0c,EACAD,EACAF,EACAC,EACA1a,EACAa,KAMAj2F,MAGA5I,OCtKA,IAAA4zG,6BACA,SAAAnvH,GACAA,EAAA4rB,GAAAwoG,4BAAA,SAAA/5G,GAKA,QAAA8J,KACAkwG,IAGA,QAAAA,KACA,GAAA/pH,GAAA,SAAA3F,EAAAgC,EAAAC,GACA,GAAA1H,KACAwL,kBAAA,GACA,GAAA/F,EAAA2F,SACApL,EAAAgwH,oBAAAvqH,EAAA4F,QAAA,GACA4kH,2BAAA/e,GAAAgD,UAAAC,UAAAn0G,EAAAgwH,qBACAlvH,EAAA,gDAAAqE,KAAA,SAAAC,EAAAnE,GACAiwG,GAAAC,cAAA8e,2BAAAhvH,MAGA+I,WAAAlE,YAAA,wBAAA8D,yBAAAnE,EAAAgG,qBAAA,UAGAH,EAAA,SAAA5D,EAAAD,EAAAE,GACA6D,iBAAA,GACAxB,WAAA,QAAArC,EAAA,SAEA6D,kBAAA,GACAjE,KAAA4oH,oCAAA/kH,EAAAE,EAAAhN,UAAAK,0BA3BAmC,EAAAgL,KAgCAmZ,OAGA5I,QCtCA,SAAAvb,GACAA,EAAA4rB,GAAA0oG,6BAAA,SAAAj6G,GAKA,QAAA8J,KACAowG,IAGA,QAAAA,KACA,GAAAC,GAAAj2H,gBAAA,kCACAk2H,EAAAl2H,gBAAA,4BACAM,EAAA41H,EAAA31H,cACAC,EAAA01H,EAAAz1H,YAEAE,IACAA,GAAAa,0BAAAy0H,EAAAt0H,YACAhB,EAAAqB,wBAAAi0H,EAAAh0H,UACAtB,EAAAw1H,kBAAAD,EAAA9uH,oDAEA3F,EAAAd,EAAAa,2BAAAsE,KAAA,SAAAC,EAAAnE,GACAC,UAAAD,EAAAE,GAAAxB,GACAsB,EAAAb,UAAA,EAEAa,EAAAb,UAAA,IAIAU,EAAAd,EAAAqB,yBAAA8D,KAAA,SAAAC,EAAAnE,GACAC,UAAAD,EAAAE,GAAAtB,GACAoB,EAAAb,UAAA,EAEAa,EAAAb,UAAA,IAIAq1H,EAAAvkB,GAAAgD,UAAAC,UAAAn0G,GACAc,EAAA,uCAAAqE,KAAA,SAAAC,EAAAnE,GACAiwG,GAAAC,cAAAskB,EAAAx0H,KArCA,GAAAw0H,EA0CA30H,GAAA,sBAAA6O,MAAA,SAAAi8D,GACAA,EAAAvnC,gBACA,IAAAupB,GAAA9sD,EAAAgL,MACA8hH,GAAA,CACA,UAAAhgE,EAAA3pD,QACA2pH,GAAA,GAEAhgE,EAAAtwB,QAAA,aAAAp4B,KAAA,qCAAAC,KAAA,SAAAC,EAAAnE,GACAH,EAAAG,GAAA0E,KAAA,UAAAioH,OAIA9sH,EAAAgL,MAAAyJ,OAAA,SAAAq2D,GACAA,EAAAvnC,gBACA,IAAAupB,GAAA9sD,EAAAgL,MACAgpH,OACAC,OACAW,EAAA50H,EAAA,qBAAAmQ,GAAA,YACA7F,EAAA,SAAA3F,EAAAgC,EAAAC,GAEA,GADA8D,iBAAA,GACA,GAAA/F,EAAA2F,QAAA,CACA,GAAAuqH,GAAAt2H,gBAAA,2BACAs2H,GAAA/1H,cAAAk1H,EACAa,EAAA71H,YAAAi1H,EACAY,EAAAlvH,oDAAAivH,EACAj2H,gBAAA,2BAAAk2H,GACA3rH,WAAAlE,YAAA,wBAAAA,YAAA,mCAAA,uCAAA,eAEAkE,YAAAlE,YAAA,wBAAA8D,yBAAAnE,EAAAgG,qBAAA,UAGAH,EAAA,SAAA5D,EAAAD,EAAAE,GACA6D,iBAAA,GACAxB,WAAA,QAAArC,EAAA,SAGAimD,GAAA1oD,KAAA,qCAAAka,IAAA,WACA01G,EAAAn0H,KAAAyT,SAAAtT,EAAAgL,MAAA7H,UAEA2pD,EAAA1oD,KAAA,mCAAAka,IAAA,WACA21G,EAAAp0H,KAAAyT,SAAAtT,EAAAgL,MAAA7H,UAGAuH,kBACAjE,KAAAquH,wBAAAxqH,EAAAE,EAAAhN,UAAAK,yBAAAm2H,EAAAC,EAAAW,KAKAzwG,MAGA5I,OChGA,IAAAw5G,yBACA,SAAA/0H,GACAA,EAAA4rB,GAAAopG,yBAAA,SAAA36G,GAKA,QAAA8J,KACA,GAAAjlB,KACAA,GAAA+1H,mBACA/1H,EAAAg2H,aAAA32H,gBAAA,6CAAA22H,aACAH,uBAAA3kB,GAAAgD,UAAAC,UAAAn0G,GACAc,EAAA,4CAAAqE,KAAA,SAAAC,EAAAnE,GACAiwG,GAAAC,cAAA0kB,uBAAA50H,KAEA5B,gBAAA,6CAAA22H,gBAAA,GACAC,IACAn1H,EAAA,kBAAAwN,QAAA,UAEAxN,EAAA,iBAAAwN,QAAA,SAIA,QAAA2nH,KACA,GAAA7qH,GAAA,SAAA3F,EAAAgC,EAAAC,GACA,GAAA1H,KACAwL,kBAAA,GACA,GAAA/F,EAAA2F,SACApL,EAAA+1H,gBAAAtwH,EAAA4F,QACArL,EAAAg2H,aAAA32H,gBAAA,6CAAA22H,aACA9kB,GAAAgD,UAAAmgB,gBAAAwB,uBAAA71H,GAEAk2H,EAAAhxH,KAAA,qBAAA6gC,WAAA,MAEA/7B,WAAAlE,YAAA,wBAAA8D,yBAAAnE,EAAAgG,qBAAA,UAGAH,EAAA,SAAA5D,EAAAD,EAAAE,GACA6D,iBAAA,GACAxB,WAAA,QAAArC,EAAA,SAGA6D,kBAAA,GACAjE,KAAA4uH,yBAAA/qH,EAAAE,EAAAhN,UAAAK,yBAAA2B,OAAA,GAAArB,OAAAyB,OAAA,SAxCA,GAAAw1H,GAAAp1H,EAAAgL,KA4CAmZ,OAEA5I,OCjDA,IAAA+5G,mBACA,SAAAt1H,GACAA,EAAA4rB,GAAA2pG,kBAAA,SAAAl7G,GAMA,QAAA8J,KACAqxG,IAGA,QAAAA,KACA,GAAAxiB,GAAA,GAAA70G,MACAmM,EAAA,SAAA3F,EAAAgC,EAAAC,GACA,GAAA1H,KACAwL,kBAAA,GACA,GAAA/F,EAAA2F,SACApL,EAAAu2H,UAAA9wH,EAAA4F,QACA+qH,iBAAAllB,GAAAgD,UAAAC,UAAAn0G,GACAc,EAAA,sCAAAqE,KAAA,SAAAC,EAAAnE,GACAiwG,GAAAC,cAAAilB,iBAAAn1H,MAGA+I,WAAAlE,YAAA,wBAAA8D,yBAAAnE,EAAAgG,qBAAA,UAGAH,EAAA,SAAA5D,EAAAD,EAAAE,GACA6D,iBAAA,GACAxB,WAAA,QAAArC,EAAA,SAEA6D,kBAAA,GACAjE,KAAAivH,8BAAAprH,EAAAE,EAAAhN,UAAAK,yBAAAm1G,EAAAE,eA5BAlzG,EAAAgL,KAiCAmZ,OAGA5I,OCxCA,IAAAo6G,cACA,SAAA31H,GACAA,EAAA4rB,GAAAgqG,aAAA,WAMA,QAAAzxG,KACA0xG,IAGA,QAAAA,KACA,GAAAvrH,GAAA,SAAA3F,EAAAgC,EAAAC,GACA,GAAA1H,KACAwL,kBAAA,GACA,GAAA/F,EAAA2F,SAAA3F,EAAA4F,QAAAzH,OAAA,GACA5D,EAAA42H,WAAAnxH,EAAA4F,QACAorH,YAAAvlB,GAAAgD,UAAAC,UAAAn0G,GACAc,EAAA,iCAAAqE,KAAA,SAAAC,EAAAnE,GACAiwG,GAAAC,cAAAslB,YAAAx1H,MAGA+I,WAAAlE,YAAA,wBAAA8D,yBAAAnE,EAAAgG,qBAAA,UAGAH,EAAA,SAAA5D,EAAAD,EAAAE,GACA6D,iBAAA,GACAxB,WAAA,QAAArC,EAAA,SAEA6D,kBAAA,GACAjE,KAAAsvH,iBAAAzrH,EAAAE,EAAApF,gBAAAD,UA3BAnF,EAAAgL,KAgCAmZ,OAGA5I,QCvCA,SAAAvb,GACAA,EAAA4rB,GAAAoqG,yBAAA,WAOA,QAAA7xG,KACA9J,GACA6D,QACAq0F,SAAA,SAAA0jB;AACAC,wBAAA,SAAAC,GACA,MAAA,iBAAAA,EAAA//E,SACA,0BAEA,2BAGAggF,0BAAA,SAAAD,GACA,GAAA7rH,GAAA,SAAA3F,EAAAgC,EAAAC,GAEA8D,iBAAA,GACA,GAAA/F,EAAA2F,SACA6rH,EAAA//E,OAAA,gBACA03E,KAEA5kH,WAAAlE,YAAA,wBAAA8D,yBAAAnE,EAAAgG,qBAAA,UAGAH,EAAA,SAAA5D,EAAAD,EAAAE,GAEA6D,iBAAA,GACAxB,WAAA,QAAArC,EAAA,SAGA6D,kBAAA,GACAjE,KAAA4vH,+BAAA/rH,EAAAE,EAAAhN,UAAAK,yBAAAs4H,EAAA91H,UAKAi2H,IAGA,QAAAA,KACA,GAAAhsH,GAAA,SAAA3F,EAAAgC,EAAAC,GACA,GAAA1H,KAGAwL,kBAAA,GAEA,GAAA/F,EAAA2F,SACApL,EAAA+2H,iBAAAtxH,EAAA4F,QACAgsH,EAAAnmB,GAAAgD,UAAAC,UAAAn0G,EAAAmb,GACAra,EAAA,6CAAAqE,KAAA,SAAAC,EAAAnE,GACAiwG,GAAAC,cAAAkmB,EAAAp2H,KAGA2tH,KAEA5kH,WAAAlE,YAAA,wBAAA8D,yBAAAnE,EAAAgG,qBAAA,UAGAH,EAAA,SAAA5D,EAAAD,EAAAE,GAEA6D,iBAAA,GACAxB,WAAA,QAAArC,EAAA,SAGA6D,kBAAA,GACAjE,KAAA+vH,yBAAAlsH,EAAAE,EAAAhN,UAAAK,0BAAA,EAAA,MAGA,QAAAiwH,KACA,GAAAC,GAAA,CACA3d,IAAAkZ,MAAAC,aAAAgN,EAAAN,mBAAA,SAAAE,GACA,iBAAAA,EAAA//E,WACA23E,GAAA,KAGApvH,gBAAA,+BAAAovH,GACAK,sBAAAC,mBAAAN,GAhFA,GAAAwI,GAEAl8G,GADAra,EAAAgL,SAoFAmZ,OAGA5I,O1B1FA,IAAAk7G,mBACA,SAAAz2H,GACAA,EAAA4rB,GAAA8qG,cAAA,WAQA,QAAAvyG,KACAzZ,iBAAA,GACAisH,IACAC,IAGA,QAAAD,KACAt8G,GACA6D,QACAq0F,SAAA,SAAAz4E,GACAA,EAAAlyB,SAAAwoG,GAAA0B,aACAh4E,EAAA+8F,cAAAzmB,GAAA0B,YAAA,GACAh4E,EAAAg9F,UAAA1mB,GAAA0B,WAAA,IACAh4E,EAAAi9F,mBAAA3mB,GAAA0B,WAAA,IACAh4E,EAAAk9F,4BAAA5mB,GAAA0B,WAAA,IACAh4E,EAAAm9F,eAAA7mB,GAAA0B,YAAA,GACAh4E,EAAAo9F,uBAAA9mB,GAAA0B,YAAA,GACAh4E,EAAAq9F,2BAAA/mB,GAAA0B,YAAA,GACAh4E,EAAAs9F,iBAAAhnB,GAAA0B,YAAA,GACAh4E,EAAAu9F,mBAAAjnB,GAAA0B,YAAA,GACAh4E,EAAAw9F,0BAAAlnB,GAAA0B,YAAA,GACAh4E,EAAAy9F,yBAAAnnB,GAAA0B,YAAA,GACAh4E,EAAA09F,0BAAApnB,GAAA0B,WAAA,IACAh4E,EAAA29F,yBAAArnB,GAAA0B,WAAA,IACAh4E,EAAAozE,MAAAkD,GAAA0B,WAAA,YACAh4E,EAAAhsB,MAAAsiG,GAAA0B,WAAA,IACAh4E,EAAAvzB,UAAA6pG,GAAA0B,WAAA,IACAh4E,EAAA49F,YAAAtnB,GAAAvlE,SAAA,WACA,MAAA/Q,GAAAs9F,oBAAAt9F,EAAAm9F,kBACAn9F,GACAA,EAAA69F,iBAAA,SAAAx3H,EAAA2c,GACAte,UAAAsJ,qBAAA3H,EAAAyH,WAAA,KACApJ,UAAAf,uBAAA0C,EAAA02H,gBAAA,IAEA,IAAAe,GAAAz3H,EAAA22H,WAEAc,IAAAz3H,EAAA82H,mBACAW,EAAAtsH,mBAAAssH,EAAA,mBAAAz3H,EAAAyH,YACAgwH,EAAAtsH,mBAAAssH,EAAA,gBAAAz3H,EAAA02H,iBACAe,EAAAtsH,mBAAAssH,EAAA,YAAAh/E,mBAAAp1C,OAAAC,SAAAqD,OACA3G,EAAA62H,4BAAAY,KAGA99F,EAAA+9F,yBAAA,SAAA13H,EAAA2c,GACA3c,EAAAo3H,0BAAAp3H,EAAAo3H,6BAEAz9F,EAAAg+F,gCAAA,SAAA33H,EAAA2c,GACA,GAAAi7G,GAAAlqH,qBAAA1N,EAAA2N,SACAkqH,EAAA73H,EAAAyH,YAAAzH,EAAAyH,WAAA,CAEAmwH,IAAAC,GAGAttH,iBAAA,GACAjE,KAAAwxH,oBACA,SAAAtzH,EAAAgC,EAAAC,GACA8D,iBAAA,GACA/F,EAAA2F,WAAA,EACApB,WAAAlE,YAAA,wBAAAA,YAAA,mCAAA,QAEAkE,WAAA,QAAAJ,yBAAAnE,EAAAgG,qBAAA,YAGA,SAAA/D,EAAAD,EAAAE,GACA6D,iBAAA,GACAkC,sBAAAhG,GAAA,IAEAzG,EAAAyH,WACAzH,EAAA2N,QACA1I,gBAAAkC,gBAlBA4B,WAAAlE,YAAA,4BAAAA,YAAA,yCAAA,WAuBAkzH,oBAAA,SAAAC,MAKA,IAAAC,IACAC,WAEA5B,kBAAArmB,GAAAgD,UAAAC,UAAA+kB,EAAA/9G,GACA+1F,GAAAC,cAAAomB,iBAAA6B,EAAA,IAGA,QAAA1B,KACA,GAAAnuD,GAAAphE,eAAA,UACAohE,IACAv/D,WAAA,cAAAqvH,mBAAA9vD,GAAA,QAGAhiE,KAAA+xH,gBACA,SAAA7zH,EAAAgC,EAAAC,GAEA,GADA8D,iBAAA,GACA/F,EAAA2F,WAAA,GAAA3F,EAAA4F,QAAAzH,OAAA,EAAA,CACA,GAAAkzC,GAAArxC,EAAA4F,QAAA,GACAktH,EAAAzhF,EAAAyhF,yBACAgB,EAAA,EACAziF,GAAAyiF,aACAA,EAAAntH,mBAAA0qC,EAAAyiF,WAAA,MAAA7/E,mBAAAp7C,UAAAk7H,6BACAjB,EAAAnsH,mBAAAmsH,EAAA,YAAA7+E,mBAAA6/E,KAEAhC,iBAAAK,UAAA9gF,EAAA8gF,WACAL,iBAAAM,mBAAA/gF,EAAA+gF,oBACAN,iBAAAQ,eAAAjhF,EAAA2iF,YACAlC,iBAAAS,uBAAAlhF,EAAA4iF,oBACAnC,iBAAAU,2BAAAnhF,EAAA6iF,4BACApC,iBAAAW,iBAAAphF,EAAA8iF,0BACArC,iBAAAa,0BAAAthF,EAAA+iF,oBACAtC,iBAAAY,mBAAArhF,EAAAgjF,oBACAvC,iBAAAe,0BAAAxhF,EAAAwhF,2BACAf,iBAAAgB,yBAAAA,GACAhB,iBAAAvpB,MAAAl3D,EAAAk3D,OACAvuG,gBAAA,2BAAA83H,iBAAAgB,4BACA94H,gBAAA,4BAAA83H,iBAAAe,6BACA74H,gBAAA,kBAAA83H,iBAAAvpB,SACAvuG,gBAAA,4BAAA83H,iBAAAU,8BACAx4H,gBAAA,qBAAA83H,iBAAAY,sBACA14H,gBAAA,qBAAA83H,iBAAAa,6BACA34H,gBAAA,aAAA85H,GACA5uH,YACAovH,QAEArsH,uBAAAhG,GAAA,IAGA,SAAAA,EAAAD,EAAAE,GACA6D,iBAAA,GACAkC,sBAAAhG,GAAA,KAKA,QAAAsyH,KACAzyH,KAAA0yH,iCACA,SAAAx0H,EAAAgC,EAAAC,GAEA,GADA8D,iBAAA,GACA/F,EAAA2F,WAAA,GAAA3F,EAAA4F,QAAAzH,OAAA,EAAA,CAEA,IAAA,GADAu1H,GAAA1zH,EAAA4F,QACA4tH,EAAA,EAAAA,EAAAE,EAAAv1H,OAAAq1H,IACA1B,iBAAA4B,QAAAx4H,KAAAw4H,EAAAF,GAEA1B,kBAAA7uH,SAAApK,UAAAsK,uBACA2uH,iBAAAI,gBAAAr5H,UAAAC,yBAAAD,UAAAC,yBACAg5H,iBAAAkB,iBAAAlB,kBACAh2H,oBAEAyI,YAAA,aAAA,yBAAA,UAGA,SAAAtC,EAAAD,EAAAE,GACA6D,iBAAA,GACAkC,sBAAAhG,GAAA,KAKA,QAAAqyH,KACA,GAAArxH,GAAApK,UAAAsK,sBACArJ,EAAAjB,UAAAI,0BACAw7H,EAAA57H,UAAAC,uBAEA,IAAAmK,GAAAnJ,GAAA26H,GAAAA,KAAA,GAAA,SAAA/xH,eAAA,mBAAA,CAEA,GAAAgyH,GAAAhyH,eAAA,wBACAiyH,EAAAjyH,eAAA,4BACApF,UAAAo3H,GAAA,OAAAA,GAAAA,EAAAv2H,OAAA,IACAtE,UAAAsJ,qBAAAuxH,GACAzxH,EAAAyxH,GAEAp3H,SAAAq3H,GAAA,OAAAA,GAAAA,EAAAx2H,OAAA,IACAtE,UAAAZ,yBAAA07H,GACA76H,EAAA66H,EAGA,IAAAC,GAAAlyH,eAAA,mBACAmyH,EAAAnyH,eAAA,iBACAoyH,EAAApyH,eAAA,gBACApF,UAAAs3H,GAAA,OAAAA,GAAAA,EAAAz2H,OAAA,GACAtE,UAAAV,4BAAAy7H,GAEAt3H,SAAAu3H,GAAA,OAAAA,GAAAA,EAAA12H,OAAA,GACAtE,UAAAT,0BAAAy7H,GAEAv3H,SAAAw3H,GAAA,OAAAA,GAAAA,EAAA32H,OAAA,GACAtE,UAAAk6H,0BAAAe,GAGA/uH,iBAAA,GACAjE,KAAAmE,0BAEA,SAAAjG,EAAAgC,EAAAC,GACA,GAAAjC,EAAA2F,WAAA,GAAA3F,EAAA4F,QAAAzH,OAAA,EAAA,CACA,GAAA7E,GAAA0G,EAAA4F,QAAA,EACAvM,eAAAC,GACAy7H,EAAA9xH,EAAA3J,EAAAS,iBAGAgM,kBAAA,GACAxB,WAAA,QAAAJ,yBAAAnE,EAAAgG,qBAAA,SACAjN,mBACAw7H,KAIA,SAAAtyH,EAAAD,EAAAE,GACA6D,iBAAA,GACAxB,WAAA,QAAArC,EAAA,UAGApI,OAGA,IAAAg4H,iBAAAS,yBAGA,GAFAv4H,gBAAA,YAAA,iBAEA,UAAA0I,eAAA,mBACA6B,YACAX,MAAA,GACAY,KAAAnE,YAAA,4BACAoE,KAAA,QACAC,gBAAA,GACA,WACA7F,OAAAC,SAAAqD,KAAA2vH,iBAAAM,2BAEA,CACA,GAAAa,GAAAnB,iBAAAK,WACAc,GAAAtsH,mBAAAssH,EAAA,YAAAh/E,mBAAAp1C,OAAAC,SAAAqD,OACAtJ,UAAAsK,uBAAAtK,UAAAsK,sBAAA,IACA8vH,EAAAA,EAAA,qBAAAp6H,UAAAsK,uBAEAtE,OAAAC,SAAAqD,KAAA8wH,MAGAj5H,iBAAA,YAAA,IACAjB,mBACAw7H,IAKA,QAAAS,GAAA/xH,EAAAwxC,EAAAve,GACA,GAAAvwB,GAAA,SAAA3F,EAAAgC,EAAAC,GACA,GAAAjC,EAAA2F,WAAA,GAAA,IAAA3F,EAAA4F,QAAAzH,OAAA,CACA,GAAA7E,GAAA0G,EAAA4F,QAAA,GACArM,EAAAD,EAAAG,mBAEAw7H,GAAA17H,EAAA0J,EAAAwxC,GACAp7C,cAAAC,GAEAy7H,EAAA9xH,EAAAjD,EAAA4F,QAAA,GAAA7L,iBAEAgM,kBAAA,GACAxB,WAAAlE,YAAA,wBAAA8D,yBAAAnE,EAAAgG,qBAAA,UAGAH,EAAA,SAAA5D,EAAAD,EAAAE,GACA6D,iBAAA,GACAxB,WAAA,QAAArC,EAAA,SAGA6D,kBAAA,GACAjE,KAAAozH,eAAAvvH,EAAAE,EAAA5C,EAAAwxC,EAAAve,GAGA,QAAA++F,GAAA17H,EAAA0J,EAAAwxC,GACA,GACAggF,IADA,GAAAj7H,MAAAD,GACA8B,EAAA,4BAAA6E,KAAA,WACArG,WAAAf,uBAAA27H,EAAA,KAGA,QAAAM,GAAA9xH,EAAAlJ,GACA+H,KAAAqzH,sBACA,SAAAn1H,EAAAgC,EAAAC,GACA,GAAAjC,EAAA2F,SACA3L,gBAAA,0BAAAgG,EAAA4F,UAGA,SAAA3D,EAAAD,EAAAE,KAEAnI,GAEAq7H,EAAAnyH,EAAAlJ,GAGA,QAAAq7H,GAAAnyH,EAAAlJ,GACA+H,KAAAuzH,2BACA,SAAAr1H,EAAAgC,EAAAC,GACA,GAAA,GAAAjC,EAAA2F,SAAA3F,EAAA4F,SAAA5F,EAAA4F,QAAAzH,OAAA,EAAA,CAGA,IAAA,GAFAm3H,GAAA17H,gBAAA,8BACA27H,EAAA37H,gBAAA,sBACAY,EAAA,EAAAA,EAAAwF,EAAA4F,QAAAzH,OAAA3D,IACA,IACA86H,EAAAt1H,EAAA4F,QAAApL,GAAA+F,KAAAP,EAAA4F,QAAApL,GAAA0C,MACA,aAAA8C,EAAA4F,QAAApL,GAAA+F,MACAg1H,EAAAv1H,EAAA4F,QAAApL,GAAA+F,KAAAgC,gBAAAvC,EAAA4F,QAAApL,GAAA0C,QAEA,MAAA2I,GACAmvD,QAAAC,KAAA,2BAAAj1D,EAAA4F,QAAApL,IAGAR,gBAAA,yBAAAs7H,GACAt7H,gBAAA,qBAAAu7H,GACA90H,gBAAA80H,EAEAC,EAAAvyH,EAAAlJ,IAEA,SAAAkI,EAAAD,EAAAE,GACAszH,EAAAvyH,EAAAlJ,IAEAA,GAIA,QAAAy7H,GAAAvyH,EAAAlJ,GACA+H,KAAA2zH,yBACA,SAAAz1H,EAAAgC,EAAAC,GACA,GAAAjC,EAAA2F,SACA9E,UAAAJ,gBAAAD,UAAAR,EAAA4F,QACA5L,gBAAA,sBAAA6G,WACA60H,EAAA37H,KAEAgM,iBAAA,GACAxB,WAAAlE,YAAA,wBAAA8D,yBAAAnE,EAAAgG,qBAAA,WAGA,SAAA/D,EAAAD,EAAAE,GACA+F,sBAAAhG,IAEAxB,gBAAAkC,cACAM,GAIA,QAAAyyH,GAAA37H,GACA,GAAA4L,GAAA,SAAA3F,EAAAgC,EAAAC,GACA,GAAA,GAAAjC,EAAA2F,SAAA,IAAA3F,EAAA4F,QAAAzH,OAAA,CACA,GAAA+3G,GAAAl2G,EAAA4F,QAAA,EACA5L,iBAAA,4CAAAk8G,GAGAA,EAAAsM,oBACAmT,EAAA57H,GACAm8G,EAAArE,iBAAAqE,EAAApE,oBACA8jB,EAAA77H,GAEA87H,EAAA97H,OAIAwK,YAAAlE,YAAA,wBAAA8D,yBAAAnE,EAAAgG,qBAAA,UAGAH,EAAA,SAAA5D,EAAAD,EAAAE,GACAqC,WAAA,QAAArC,EAAA,SAEAJ,MAAAk6G,wCAAAr2G,EAAAE,EAAA9L,GAGA,QAAA47H,GAAA57H,GACA,GAAA4L,GAAA,SAAA3F,EAAAgC,EAAAC,GACA,GAAA,GAAAjC,EAAA2F,QAAA,CACA3F,EAAA4F,QAAAzH,OAAA,GACAnE,gBAAA,0CAAAgG,EAAA4F,QAEA,IAAAswG,GAAAt8G,gBAAA,4CACAs8G,GAAArE,iBAAAqE,EAAApE,oBACA8jB,EAAA77H,GAEA87H,EAAA97H,OAGAwK,YAAAlE,YAAA,wBAAA8D,yBAAAnE,EAAAgG,qBAAA,UAGAH,EAAA,SAAA5D,EAAAD,EAAAE,GACAqC,WAAA,QAAArC,EAAA,SAEAJ,MAAAg0H,sCAAAnwH,EAAAE,EAAA9L,GAGA,QAAA67H,GAAA77H,GACA,GAAA4L,GAAA,SAAA3F,EAAAgC,EAAAC,GACA,GAAAjC,EAAA2F,SACA3F,EAAA4F,QAAAzH,OAAA,GACAnE,gBAAA,2BAAAgG,EAAA4F,QAAA,IAEAmwH,EAAAh8H,IAEAwK,WAAAlE,YAAA,wBAAA8D,yBAAAnE,EAAAgG,qBAAA,UAGAH,EAAA,SAAA5D,EAAAD,EAAAE,GACAqC,WAAA,QAAArC,EAAA,SAEAJ,MAAAk0H,uBAAArwH,EAAAE,EAAA9L,GAGA,QAAAg8H,GAAAh8H,GACA,GAAA4L,GAAA,SAAA3F,EAAAgC,EAAAC,GACA,GAAAjC,EAAA2F,SACA3F,EAAA4F,QAAAzH,OAAA,GACAnE,gBAAA,iCAAAgG,EAAA4F,QAAA,IAEAiwH,EAAA97H,IAEAwK,WAAAlE,YAAA,wBAAA8D,yBAAAnE,EAAAgG,qBAAA,UAGAH,EAAA,SAAA5D,EAAAD,EAAAE,GACAqC,WAAA,QAAArC,EAAA,SAEAJ,MAAAm0H,wCAAAtwH,EAAAE,EAAA9L,GAGA,QAAA87H,GAAA97H,GACA,GAAA4L,GAAA,SAAA3F,EAAAgC,EAAAC,GACA,GAAAjC,EAAA2F,SAAA,IAAA3F,EAAA4F,QAAAzH,QACAnE,gBAAA,2BAAAgG,EAAA4F,QAAA,IACAswH,EAAAn8H,IAEAwK,WAAAlE,YAAA,wBAAA8D,yBAAAnE,EAAAgG,qBAAA,UAGAH,EAAA,SAAA5D,EAAAD,EAAAE,GACAqC,WAAA,QAAArC,EAAA,SAEAJ,MAAAq0H,uBAAAxwH,EAAAE,EAAA9L,EAAA0G,gBAAAkC,eAGA,QAAAuzH,GAAAn8H,GACA,GAAA4L,GAAA,SAAA3F,EAAAgC,EAAAC,GACA,GAAAjC,EAAA2F,SAAA,IAAA3F,EAAA4F,QAAAzH,QACAnE,gBAAA,+BAAAgG,EAAA4F,QAAA,IACA/G,OAAAC,SAAAqD,KAAA,8CAEAoC,WAAAlE,YAAA,wBAAA8D,yBAAAnE,EAAAgG,qBAAA,UAGAH,EAAA,SAAA5D,EAAAD,EAAAE,GACAqC,WAAA,QAAArC,EAAA,SAEAJ,MAAAs0H,wCAAAzwH,EAAAE,EAAA9L,GAlcA,GAAA45H,GAAAt4H,EAAAgL,MACAqP,IA6dA,OA5dAwqD,QAAA75D,KAqcAhL,EAAAgL,MAAAg8B,GAAA,SAAA,SAAA8jC,GACAA,EAAAvnC,gBAEA,IAAA37B,GAAA0wH,EAAAl0H,KAAA,mBAAAjB,MACAi2C,EAAAk/E,EAAAl0H,KAAA,kBAAAjB,MACA03B,EAAAy9F,EAAAl0H,KAAA,kBAAAjB,KAEAw2H,GAAA/xH,EAAAwxC,EAAAve,KAGA76B,EAAAgL,MAAAg8B,GAAA,QAAA,sBAAA,SAAA8jC,GACA,GAAAvkE,GAAAvG,EAAAgL,MAAA7H,KACAszH,kBAAAlwH,UAAAA,GACAtE,SAAAw0H,iBAAA7uH,YAAA6uH,iBAAA7uH,WAAA,GAAA,kBAAArB,IACAukE,EAAAvnC,iBACA//B,OAAAC,SAAAqD,KAAA2vH,iBAAAO,iCAMA7yG,IAEA0gD,SAEAtpD,O2BneA,IAAAy/G,oBACA,SAAAh7H,GACAA,EAAA4rB,GAAAqvG,mBAAA,SAAA5gH,GAKA,QAAA8J,KACA9J,GACA6D,QACAq0F,SAAA,SAAAz4E,GACAA,EAAAozE,MAAAkD,GAAAvlE,SAAA,WACA,GAAAqiE,GAAA3uG,gBAAA,kBACA,OAAA2uG,GAAA,UAEApzE,EAAAohG,oBAAA9qB,GAAAvlE,SAAA,WACA,MAAA,kBAAAtsC,gBAAA,eAEAu7B,EAAAq9F,2BAAA/mB,GAAAvlE,SAAA,WACA,MAAAtsC,iBAAA,gCAAA,IAEAu7B,EAAAlyB,SAAAwoG,GAAAvlE,SAAA,WACA,MAAArtC,WAAAsK,wBAEAgyB,EAAAqhG,WAAA/qB,GAAAvlE,SAAA,WACA,MAAAtsC,iBAAA,eACAu7B,GACAA,EAAAshG,YAAAhrB,GAAA0B,WAAAt0G,UAAAsK,uBACAgyB,EAAAuhG,sBAAA,SAAA1lH,GACA,GAAArL,GAAA,SAAA3F,GACA,GAAAzF,KACAA,GAAAo8H,kBAAA32H,EAAA4F,QACA6lG,GAAAgD,UAAAmgB,gBAAAyH,kBAAA97H,GACA87H,kBAAAI,YAAA59H,UAAAsK,uBACAyzH,KAGA/wH,EAAA,SAAA7F,IAGA8B,MAAA+0H,kCAAAlxH,EAAAE,EAAAhN,UAAAI,4BAEAk8B,EAAA2hG,aAAA,WACA,GAAAnxH,GAAA,SAAA3F,GACA,GAAAA,EAAA4F,SAAA5F,EAAA4F,QAAAzH,OAAA,EAAA,CACA,IAAA,GAAAwB,GAAA,EAAAA,EAAA02H,kBAAAM,oBAAAx4H,OAAAwB,IAAA,CACA,GAAAo3H,GAAAV,kBAAAM,oBAAAh3H,EACA02H,mBAAAI,gBAAAM,EAAA9zH,YACAjJ,gBAAA,aAAA+8H,EAAAP,cAIAn9H,cAAA2G,EAAA4F,QAAA,IACA5L,gBAAA,+BAAAgG,EAAA4F,QAAA,GAAAjM,oBACAmF,SAAA8J,aAEArE,YAAAlE,YAAA,uBAAAA,YAAA,sBAAA,QAEA0F,kBAAA,IAGAF,EAAA,SAAA7F,GACA+F,iBAAA,GACAxB,WAAAlE,YAAA,wBAAA8D,yBAAAnE,EAAAgG,qBAAA,SAGAlE,MAAAk1H,kBAAArxH,EAAAE,EAAAhN,UAAAI,0BAAAo9H,kBAAAI,eACA1wH,iBAAA,KAGAkxH,qBAAA,SAAAC,GACAA,EAAAxmH,OAAA+6F,GAAAvlE,SAAA,WACA,MAAAgxF,GAAAC,qBAAA,EACAD,EAAAE,UAAAh1H,QAAA,MAAA,IAEA,IAEA80H,IAEAG,8BAAA,SAAAN,OAIAO,IAGA,QAAAA,KACA,GAAA/8H,IACAg9H,SAAA39H,gBAAA,2BACA8vH,mBAAA,EACA8N,YAAA59H,gBAAA,6CACA68H,YAAA59H,UAAAsK,sBACAF,SAAApK,UAAAsK,sBACAwzH,qBAEAN,mBAAA5qB,GAAAgD,UAAAC,UAAAn0G,EAAAmb,GAEAra,EAAA,uCAAAqE,KAAA,SAAAC,EAAAnE,GACAiwG,GAAAC,cAAA2qB,kBAAA76H,KAGAH,EAAA,mCAAAc,IAAA,UAAA,KAEAmB,SAAAmsH,wBACApuH,EAAA4rB,GAAAwwG,yBACAvB,KAGAxqF,YAAA,WACAwqF,KACA,KAGA,QAAAA,KACAG,kBAAA3M,mBAAA9vH,gBAAA,iCAGA,QAAAg9H,KACAv7H,EAAA6+C,cAAA3K,MACAsN,UAAA,sBACArB,gBAAA,EACAR,OACAzwC,IAAAlP,EAAA,qBACAoJ,KAAA,UAEAk1C,WACApK,KAAA,WACA,GAAAmoE,GAAAr8G,EAAAgL,KAAAy0B,UAAA,GACAz/B,GAAAwD,QAAAkhB,OAEA5Z,sBAAAuxG,GAGAn4G,aAAAm4G,OAlIA,GAAAhiG,KA4IA8J,OAGA5I,OClJA,IAAA8gH,8BACA,SAAAr8H,GACAA,EAAA4rB,GAAA0wG,6BAAA,SAAAjiH,GAKA,QAAAkiH,KACA,GAAAxzH,GAAAyzH,EAAAp4H,KAAA,oBAAAjB,MACAs5H,EAAA,GAAAt+H,MAEAmM,EAAA,SAAA3F,EAAAgC,EAAAC,GACA,GACA81H,GADA3zH,EAAAyzH,EAAAp4H,KAAA,oBAAAjB,KAKA,IAFAuH,iBAAA,GAEA,GAAA/F,EAAA2F,QAAA,CACAoyH,EAAA/3H,EAAA4F,QAAA,GACArB,WAAAlE,YAAA,2BAAA,eAAAA,YAAA,0BAAA,8BAAA,UACA,KACA23H,wBAAAC,iBAAAC,eACAJ,YAAA,GAAAt+H,MACA2+H,YAAAt9H,OAAAi9H,GAAA78H,OAAA,SACAmJ,QAAAA,EACAg0H,cAAAh0H,EACA1I,GAAAq8H,EACAtmF,OAAA,YAEAumF,wBAAAC,iBAAAhwG,KAAAowG,YACA,IAAAj0H,GAAAyzH,EAAAp4H,KAAA,oBAAAjB,IAAA,GACAnD,GAAA,6BAAA02D,IAAA,QACA,MAAArzD,SAGA6F,YAAAlE,YAAA,0BAAA,SAAA8D,yBAAAnE,EAAAgG,qBAAA,UAGAH,EAAA,SAAA5D,EAAAD,EAAAE,GACA6D,iBAAA,GACAxB,WAAA,QAAArC,EAAA,SAEA6D,kBAAA,GACAjE,KAAAw2H,mBAAA3yH,EAAAE,EAAAhN,UAAAK,yBAAAkL,GAxCA,GAAAyzH,GAAAx8H,EAAAgL,KA6CAwxH,GAAA/nH,OAAA,SAAAq2D,GACAA,EAAAvnC,iBACAg5F,QAIAhhH,OCtDA,IAAAohH,0BACA,SAAA38H,GACAA,EAAA4rB,GAAAsxG,yBAAA,WA+CA,QAAA/4G,KACAg5G,IAGA,QAAAA,KACA,GAAA7yH,GAAA,SAAA3F,EAAAgC,EAAAC,GACA,GAAA1H,KAEAwL,kBAAA,GACA,GAAA/F,EAAA2F,SACApL,EAAA09H,iBAAAj4H,EAAA4F,QACAoyH,wBAAAvsB,GAAAgD,UAAAC,UAAAn0G,EAAAmb,GACAra,EAAA,6CAAAqE,KAAA,SAAAC,EAAAnE,GACAiwG,GAAAC,cAAAssB,wBAAAx8H,MAGA+I,WAAAlE,YAAA,wBAAA8D,yBAAAnE,EAAAgG,qBAAA,UAGAH,EAAA,SAAA5D,EAAAD,EAAAE,GAEA6D,iBAAA,GACAxB,WAAA,QAAArC,EAAA,SAGA6D,kBAAA,GACAjE,KAAA22H,yBAAA9yH,EAAAE,EAAAhN,UAAAK,0BAAA,EAAA,KAxEA,GACAwc,IADAra,EAAAgL,OAEAkT,QACAq0F,SAAA,SAAAqqB,GACAS,wBAAA,SAAAC,GACA,MAAA,WAAAA,EAAAlnF,SACA,0BAEA,2BAGAmnF,uBAAA,SAAAD,GACA,GAAAhzH,GAAA,SAAA3F,EAAAgC,EAAAC,GAEA8D,iBAAA,GACA,GAAA/F,EAAA2F,QACAqyH,wBAAAC,iBAAAzyH,OAAAmzH,GAEAp0H,WAAAlE,YAAA,wBAAA8D,yBAAAnE,EAAAgG,qBAAA,UAGAH,EAAA,SAAA5D,EAAAD,EAAAE,GAEA6D,iBAAA,GACAxB,WAAA,QAAArC,EAAA,SAEAqC,aACAX,MAAAvD,YAAA,4BACAoE,KAAA,UACA+D,kBAAA,EACAomG,mBAAA,UACAnmG,kBAAApI,YAAA,cACAqI,iBAAArI,YAAA,eACA,WAEA0F,iBAAA,GAEAjE,KAAA+2H,mBAAAlzH,EAAAE,EAAAhN,UAAAK,yBAAAy/H,EAAAj9H,YAsCA28H,aAAA,SAAA1uH,EAAAyhB,GACA,MAAAzhB,GAAAmuH,cAAAnuH,EAAAwuH,cAAA/sG,EAAA0sG,cAAA1sG,EAAA+sG,iBAAA,GAKA34G,MAGA5I,OCvFA,IAAAkiH,oBACA,SAAAz9H,GACAA,EAAA4rB,GAAA8xG,oBAAA,SAAArjH,GAIA,QAAA8J,KACA,GAAAjlB,GAAAX,gBAAA,4CACAk/H,mBAAArtB,GAAAgD,UAAAC,UAAAn0G,GAEAc,EAAA,uCAAAqE,KAAA,SAAAC,EAAAnE,GACAiwG,GAAAC,cAAAotB,kBAAAt9H,KARAH,EAAAgL,KAcAmZ,OAGA5I,OCpBA,IAAAoiH,gBACA,SAAA39H,GACAA,EAAA4rB,GAAAgyG,eAAA,SAAAvjH,GASA,QAAA8J,KACA05G,IACAC,IAGA,QAAAA,KACA,GAAAxzH,GAAA,SAAA3F,EAAAgC,EAAAC,GACA8D,iBAAA,GACA,GAAA/F,EAAA2F,SAAA3F,EAAA4F,QAAAzH,OAAA,GACAstG,GAAAgD,UAAAmgB,gBAAAoK,cAAAh5H,GACAg5H,cAAAI,iBAAAJ,cAAApzH,UAAA,GAAAlK,MACAs9H,cAAAK,eAAAL,cAAApzH,UAAA,GACAozH,cAAApzH,UAAA,GAAA0zH,0BACAC,EAAA,UAGAh1H,WAAA,aAAA,iCAAA,UAGAsB,EAAA,SAAA5D,EAAAD,EAAAE,GACA6D,iBAAA,GACAxB,WAAA,mBAAA,gCAAA,SAEAwB,kBAAA,GACAjE,KAAA03H,yBAAA7zH,EAAAE,EAAAhN,UAAAK,yBAAAuH,gBAAAD,UAGA,QAAAi5H,GAAAC,EAAAC,EAAAC,GACA,GAAAj0H,GAAA,SAAA3F,EAAAgC,EAAAC,GACA,GAAA67C,GAAAz9C,YAAA,mBAAA,+BACA0F,kBAAA,GACA,GAAA/F,EAAA2F,SAAA3F,EAAA4F,QAAAzH,OAAA,GAEA9C,EAAA,6BAAAmJ,KAAAxE,EAAA4F,QAAA,GAAA3I,MACA+C,EAAA4F,QAAA,GAAAi0H,aACA/7E,EAAA99C,EAAA4F,QAAA,GAAAk0H,YAEAz+H,EAAA,+BAAAiF,KAAAw9C,GACAziD,EAAA,uBAAAyiB,KAAA,MAGAvZ,WAAAlE,YAAA,wBAAA8D,yBAAAnE,EAAAgG,qBAAA,UAGAH,EAAA,SAAA5D,EAAAD,EAAAE,GACA6D,iBAAA,GACAkC,sBAAAhG,GAAA,GAEA8D,kBAAA,GACAjE,KAAAi4H,eAAAp0H,EAAAE,EAAAhN,UAAAK,yBAAAuH,gBAAAD,SAAAk5H,EAAAC,EAAAC,GAGA,QAAAL,GAAAS,GACA,GAAA5iB,IAAA,EACA6iB,EAAA5+H,EAAA,wBACA6+H,EAAA7+H,EAAA,qBAEA,SAAA2+H,IACA5iB,GAAA,GAGA6iB,EAAA/5H,KAAA,WAAAk3G,GACAvjG,SAAA1X,IAAA,UAAA69H,GACAE,EAAAh6H,KAAA,WAAAk3G,GACAvjG,SAAA1X,IAAA,UAAA69H,GAGA,QAAAd,KACA,GAAAiB,GAAAhyE,EAAA1oD,KAAA,wBACA26H,EAAAjyE,EAAA1oD,KAAA,sBACA4uG,EAAA,GAAA70G,KAEA2gI,GAAA37H,IAAA3D,OAAAA,OAAAwzG,GAAAvzG,QAAA,UAAAG,OAAA,eACAm/H,EAAA57H,IAAA3D,OAAAwzG,GAAApzG,OAAA,eAGA8P,UAAA+hG,WAAA10C,QAAA,IACA+hE,EAAAptB,WAAAE,YAAA,YACAmtB,EAAArtB,WAAAE,YAAA,aArFA,GAAA9kD,GAAA9sD,EAAAgL,MACAg0H,EAAAlyE,EAAA,EACA6wE,eAAAvtB,GAAAgD,UAAAC,WAAA9oG,WAAAwzH,oBAAAC,oBACA5tB,GAAAC,cAAAstB,cAAAqB,GAwFAh/H,EAAAg/H,GAAAh4F,GAAA,SAAA,OAAA,SAAA8jC,GACAA,EAAAvnC,gBAEA,IACA86F,GACAC,EACAC,EAHAzxE,EAAA9sD,EAAAgL,KAKA2yH,eAAAK,eAAA39H,MACAg+H,EAAAV,cAAAK,eAAA39H,KACAi+H,EAAAxxE,EAAA1oD,KAAA,wBAAAjB,MACAo7H,EAAAzxE,EAAA1oD,KAAA,sBAAAjB,MACAw6H,cAAAK,gBAAAL,cAAAK,eAAAC,4BAAA,IACAK,EAAA,KACAC,EAAA,MAEAH,EAAAC,EAAAC,EAAAC,IAEAr1H,WAAAlE,YAAA,wBAAAA,YAAA,6BAAA,WAIAhF,EAAAg/H,GAAAh4F,GAAA,oBAAA,SAAA,SAAA8jC,GACA,GAAAizD,GAAAzqH,SAAAtT,EAAAgL,MAAA7H,OACA87H,EAAA7uB,GAAAkZ,MAAA4V,WAAAvB,cAAApzH,UAAA,SAAA40H,GACA,MAAA7rH,UAAA6rH,EAAA9+H,QAAA09H,GAEAJ,eAAAK,eAAAiB,EAGAf,EADAP,cAAAK,gBAAAL,cAAAK,eAAAC,yBACA,QAEA,UAMA95G,MAGA5I,QCxIA,SAAAvb,GACAA,EAAA4rB,GAAAwzG,iBAAA,WAGA,QAAAC,KACA,GAAAC,GAAAl6H,eAEAA,kBACApF,EAAAqE,KAAAi7H,EAAA,SAAAp6H,EAAArD,GACA7B,EAAA,IAAAkF,GAAA/B,IAAAtB,KAYA,QAAA09H,GAAAz0D,EAAA1xB,EAAAve,GACA,GAAAykG,KAGAE,GAAAp7H,KAAA,2CAAAC,KAAA,SAAAC,EAAAnE,GACA,GAAAs/H,GAAAz/H,EAAAG,EACAm/H,GAAAG,EAAA16H,KAAA,SAAA06H,EAAAt8H,QAEAxE,gBAAA,qBAAA2gI,GACA77H,SAAA8J,SA5BA,GAAAiyH,GAAAx/H,EAAAgL,KAWAq0H,KAGAr/H,EAAAgL,MAAAg8B,GAAA,SAAA,SAAA8jC,GACAA,EAAAvnC,iBACAg8F,QAgBAhkH,OClCA,IAAA6yG,wBACA,SAAApuH,GACAA,EAAA4rB,GAAAwwG,uBAAA,WAMA,QAAAj4G,KACAu7G,IACA7E,IACAxqF,YAAA,WACAwqF,KACA,KAGA,QAAA6E,KACA,GAAAxgI,KACAA,GAAAmvH,mBAAA9vH,gBAAA,gCAEA6vH,sBAAA,GAAAuR,GAAAzgI,GACAc,EAAA,2CAAAqE,KAAA,SAAAC,EAAAnE,GACAiwG,GAAAC,cAAA+d,sBAAAjuH,KAIA,QAAA06H,KACA,GAAAvwH,GAAA,SAAA3F,EAAAgC,EAAAC,GACA,GAAAynH,GAAA,CACA,IAAA1pH,EAAA2F,SAAA,IAAA3F,EAAA4F,QAAAzH,QACAurH,EAAA/6G,SAAA3O,EAAA4F,QAAA,IACA6jH,sBAAAC,mBAAAA,GACAuR,EAAAvR,EACAruH,EAAA,qCAAAU,SAAA,UAEAk/H,EAAAvR,EACA1vH,gBAAA,+BAAA0vH,GACAruH,EAAA,qCAAAkzC,YAAA,WAGAhqC,WAAAlE,YAAA,wBAAA8D,yBAAAnE,EAAAgG,qBAAA,UAGAH,EAAA,SAAA5D,EAAAD,EAAAE,IAIAJ,MAAAs0H,wCAAAzwH,EAAAE,EAAAhN,UAAAK,0BA5CA,GACA+hI,IADA5/H,EAAAgL,MACAsI,SAAA/U,gBAAA,kCA8CAohI,EAAA,SAAA74G,GAEA,mBAAA,KAAAA,MACA,mBAAAA,GAAA,qBAAAA,EAAAunG,mBAAA,GAEA,IAAA14G,GAAA3K,IACA2K,GAAA04G,mBAAAje,GAAA0B,WAAAhrF,EAAAunG,oBACA14G,EAAAkqH,yBAAAzvB,GAAAuhB,aAAA,WAEA,MAAA,KAAAh8G,EAAA04G,qBACArpH,YAAA,4BAAA,mCACA,IAAA2Q,EAAA04G,qBACArpH,YAAA,0BAAA,+BAEA2Q,EAAA04G,qBAAA,IAAArpH,YAAA,kCAAA,oBAEA2Q,GAKAwO,OAEA5I,OCzEA,IAAAukH,0BACA,SAAA9/H,GACAA,EAAA4rB,GAAAk0G,wBAAA,SAAAzlH,GAqBA,QAAA8J,KACA9J,GACA6D,QACAq0F,SAAA,SAAAwtB,GACAC,wBAAA,SAAAC,GACA,MAAA,yBAAAA,EAAA72H,SAGA82H,6BAAA,SAAAD,GACAA,EAAA72H,KAAAgnG,GAAAvlE,SAAA,WACA,MAAA,aAAAo1F,EAAA/6H,MACA,WACA,+BAAA+6H,EAAA/6H,MACA,yCACA,uBAAA+6H,EAAA/6H,MACA,UAEA,UAEA+6H,GACAA,EAAAE,kBAAA/vB,GAAAvlE,SAAA,WACA,MAAA7lC,aAAAi7H,EAAAG,gBACAH,GACAA,EAAAI,oBAAAjwB,GAAAvlE,SAAA,WACA,MACA7lC,aADA,+BAAAi7H,EAAA/6H,MACA,wCAAAo7H,EAAAL,EAAAp+H,SAEA,cAAAo+H,EAAAp+H,UACAo+H,GACAA,EAAAM,UAAAnwB,GAAA0B,YAAA,GACAmuB,EAAAO,SAAApwB,GAAA0B,WAAA,IACAmuB,EAAAQ,gBAAA,WACAR,EAAAO,SAAAP,EAAAp+H,SACAo+H,EAAAM,WAAA,IAEAN,EAAAS,gBAAA,SAAAC,EAAA71D,GACAA,EAAAvnC,gBACA,IAAAj5B,GAAA,SAAA3F,EAAAgC,EAAAC,GAEA,GADA8D,iBAAA,GACA,GAAA/F,EAAA2F,QAAA,CACA21H,EAAAM,WAAA,EAEA,IAAAK,GAAAriI,gBAAA,yBAKA,IAJAqiI,EAAAX,EAAA/6H,OAAA+6H,EAAAp+H,QACAlD,gBAAA,yBAAAiiI,GAGA,aAAAX,EAAA/6H,MAAA,CACA,GAAA27H,GAAAtiI,gBAAA,qBACAsiI,GAAA17H,SAAA86H,EAAAp+H,QACAg/H,EAAAv5H,cAAAC,qBAAAs5H,EAAA17H,UACAC,gBAAAD,SAAA86H,EAAAp+H,QACAlD,gBAAA,qBAAAkiI,GACA1G,SAGAjxH,YAAAlE,YAAA,wBAAA8D,yBAAAnE,EAAAgG,qBAAA,UAGAH,EAAA,SAAA5D,EAAAD,EAAAE,GACA6D,iBAAA,GACAxB,WAAA,QAAArC,EAAA,SAEA6D,kBAAA,GACAjE,KAAAq6H,6BAAAx2H,EAAAE,EAAAhN,UAAAK,yBAAAoiI,EAAA/6H,MAAA+6H,EAAAp+H,UAEAo+H,EAAAc,kBAAA,WACAd,EAAAM,WAAA,GACAN,EAAAp+H,MAAAo+H,EAAAO,gBAKAQ,IAGA,QAAAA,KACA,GAAA12H,GAAA,SAAA3F,EAAAgC,EAAAC,GACA,GAAA1H,KACAwL,kBAAA,GACA,GAAA/F,EAAA2F,SACApL,EAAA6gI,iBAAAkB,EAEAA,EAAAC,QAAA,SAAAC,GAEA,IAAA,GAAA78H,GAAA,EAAAA,EAAAK,EAAA4F,QAAAzH,OAAAwB,IAAA,CACA,GAAA88H,GAAAz8H,EAAA4F,QAAAjG,EACA,IAAA88H,EAAAl8H,IAAAnB,gBAAAo9H,EAAAj8H,IAAAnB,cAAA,CACAo9H,EAAAt/H,MAAAu/H,EAAAv/H,KACA,WAIAi+H,wBAAA1vB,GAAAgD,UAAAC,UAAAn0G,EAAAmb,GACAylH,wBAAAC,iBAAAnzG,KAAAy0G,GACArhI,EAAA,yCAAAqE,KAAA,SAAAC,EAAAnE,GACAiwG,GAAAC,cAAAyvB,wBAAA3/H,MAGA+I,WAAAlE,YAAA,wBAAA8D,yBAAAnE,EAAAgG,qBAAA,UAGAH,EAAA,SAAA5D,EAAAD,EAAAE,GACA6D,iBAAA,GACAxB,WAAA,QAAArC,EAAA,SAEA6D,kBAAA,GACAjE,KAAAuzH,2BAAA1vH,EAAAE,EAAAhN,UAAAK,0BAGA,QAAAs8H,KACA1zH,KAAA2zH,yBACA,SAAAz1H,EAAAgC,EAAAC,GACA,GAAA,GAAAjC,EAAA2F,QAAA,CACA,GAAA9E,GAAAjH,gBAAA,sBACAiH,GAAAJ,gBAAAD,UAAAR,EAAA4F,QACA5L,gBAAA,sBAAA6G,GACAhC,OAAAC,SAAA8J,QAAA,OAEArE,YAAAlE,YAAA,wBAAA8D,yBAAAnE,EAAAgG,qBAAA,UAGA,SAAA/D,EAAAD,EAAAE,GACA+F,sBAAAhG,IAEArI,gBAAA,sBAAA+I,cACA,MAIA,QAAA+5H,GAAA/yH,EAAAyhB,GACA,MAAAzhB,GAAApJ,MAAA6qB,EAAA7qB,SAAA,EAGA,QAAAo7H,GAAA/yG,GACA,MAAAA,GAAAvqB,OAAA,GAAA8B,cAAAyoB,EAAAtnB,MAAA,GA3JA,GACAoU,IADAra,EAAAgL,UAEAi2H,IAEA/7H,IAAA,WACAk7H,YAAA,sBACAv+H,MAAAtD,gBAAA,0BAAA4G,WAEAD,IAAA,6BACAk7H,YAAA,wCACAv+H,MAAA,UAEAqD,IAAA,qBACAk7H,YAAA,kDACAv+H,MAAA,QAkJAsiB,OAGA5I,QCtKA,SAAAvb,GACAA,EAAA4rB,GAAA01G,wBAAA,SAAAjnH,GAMA,QAAA8J,KACAo9G,IAGA,QAAAA,KACA,GAAAj3H,GAAA,SAAA3F,EAAAgC,EAAAC,GACA,GAAA1H,KACAwL,kBAAA,GACA,GAAA/F,EAAA2F,SAAA,IAAA3F,EAAA4F,QAAAzH,QACA5D,EAAAsiI,gBAAA78H,EAAA4F,QACAk3H,EAAArxB,GAAAgD,UAAAC,UAAAn0G,GACAc,EAAA,4CAAAqE,KAAA,SAAAC,EAAAnE,GACAiwG,GAAAC,cAAAoxB,EAAAthI,MAGA+I,WAAAlE,YAAA,wBAAA8D,yBAAAnE,EAAAgG,qBAAA,UAGAH,EAAA,SAAA5D,EAAAD,EAAAE,GACA6D,iBAAA,GACAxB,WAAA,QAAArC,EAAA,SAEA6D,kBAAA,GACAjE,KAAAi7H,wBAAAp3H,EAAAE,EAAAhN,UAAAK,0BA5BA,GAAA4jI,EACAzhI,GAAAgL,KAgCAmZ,OAGA5I,OCtCA,IAAAomH,kBACA,SAAA3hI,GACAA,EAAA4rB,GAAAg2G,iBAAA,WAMA,QAAAz9G,KACA9J,GACA6D,QACA2jH,qBAAA,SAAAC,GACAA,EAAAjvB,iBAAAzC,GAAAvlE,SAAA,WACA,GAAAk3F,GAAAviI,OAAAsiI,EAAA/kE,QAAAo0C,SACA6B,EAAA,GAAA70G,KAGA,OAAA4jI,GAAA/uB,EACAhuG,YAAA,8BAAA,YAEAA,YAAA,yBAAA,aAEA88H,MAIAE,IAGA,QAAAA,KACA,GAAA13H,GAAA,SAAA3F,EAAAgC,EAAAC,GACA,GAAA1H,KACAwL,kBAAA,GACA,GAAA/F,EAAA2F,SACApL,EAAA4iI,SAAAn9H,EAAA4F,QACAo3H,gBAAAvxB,GAAAgD,UAAAC,UAAAn0G,EAAAmb,GACAra,EAAA,qCAAAqE,KAAA,SAAAC,EAAAnE,GACAiwG,GAAAC,cAAAsxB,gBAAAxhI,MAGA+I,WAAAlE,YAAA,wBAAA8D,yBAAAnE,EAAAgG,qBAAA,UAGAH,EAAA,SAAA5D,EAAAD,EAAAE,GACA6D,iBAAA,GACAxB,WAAA,QAAArC,EAAA,SAEA6D,kBAAA,GACAjE,KAAAw7H,6BAAA33H,EAAAE,EAAAhN,UAAAK,0BA7CA,GACAwc,IADAra,EAAAgL,SAkDAmZ,OAGA5I,QCjCA,SAAA2mH,EAAA3lF,GA8rBA,QAAA/Z,GAAA2/F,GACA,IAAAA,GACA,gBAAAA,IACA,GAAA3sH,UAAA1S,OAAA,KAAA,6CAKA,KAAA,GAHAs/H,GAAAF,EACAG,EAAAF,EAAAt/H,MAAA,KAEA1D,EAAA,EAAAA,EAAAkjI,EAAAv/H,SAAA3D,EAAA,CACA,GAAAmjI,GAAAD,EAAAljI,EAEAijI,GAAAE,KACAF,EAAAE,OAGAF,EAAAA,EAAAE,GAEA,MAAAF,GA7sBA5/F,EAAA,eACA,IAAA7sB,GAAAhN,SAAAC,IAAAC,UAAA,SAAA05H,GAEA,MADAv3H,MAAAu3H,oBAAAA,EACAv3H,KAGA2K,GAAAT,UAAA2kH,eAAA,SAAA2I,EAAAC,EAAA76H,EAAAwxC,EAAAve,GACA,GAAA6nG,MACAn3H,EAAAP,KAAA23H,QAAA,iCAAAD,GACA9qF,EAAA,OACAgrF,GAAAh7H,SAAAA,EAAAwxC,SAAAA,EAAAve,SAAAA,EACA7vB,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAAymH,kBAAA,SAAA6G,EAAAC,EAAAhkI,EAAAmJ,GACA,GAAA86H,MACAn3H,EAAAP,KAAA23H,QAAA,oCAAAD,GACA9qF,EAAA,OACAgrF,GAAAnkI,aAAAA,EAAAmJ,SAAAA,EACAoD,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAAsmH,kCAAA,SAAAgH,EAAAC,EAAAhkI,GACA,GAAAikI,MACAn3H,EAAAP,KAAA23H,QAAA,oDAAAD,GACA9qF,EAAA,OACAgrF,GAAAnkI,aAAAA,EACAuM,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAAikH,iCAAA,SAAAqJ,EAAAC,GACA,GAAAC,MACAn3H,EAAAP,KAAA23H,QAAA,mDAAAD,GACA9qF,EAAA,OACAgrF,IACA53H,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAAzK,qBAAA,SAAA+3H,EAAAC,GACA,GAAAC,MACAn3H,EAAAP,KAAA23H,QAAA,wCAAAD,GACA9qF,EAAA,MACAgrF,IACA53H,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAAsjH,gBAAA,SAAAgK,EAAAC,GACA,GAAAC,MACAn3H,EAAAP,KAAA23H,QAAA,mCAAAD,GACA9qF,EAAA,MACAgrF,IACA53H,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAA4tH,yCAAA,SAAAN,EAAAC,EAAAM,EAAA7wH,GACA,GAAAwwH,MACAn3H,EAAAP,KAAA23H,QAAA,2DAAAD,GACA9qF,EAAA,OACAgrF,GAAAG,iBAAAA,EAAA7wH,QAAAA,EACAlH,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAAtK,0BAAA,SAAA43H,EAAAC,EAAAhkI,GACA,GAAAikI,MACAn3H,EAAAP,KAAA23H,QAAA,4CAAAD,GACA9qF,EAAA,OACAgrF,GAAAnkI,aAAAA,EACAuM,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAAxO,aAAA,SAAA87H,EAAAC,EAAA/jI,GACA,GAAAgkI,MACAn3H,EAAAP,KAAA23H,QAAA,+BAAAD,GACA9qF,EAAA,OACAgrF,GAAAlkI,YAAAA,EACAsM,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAAq8F,0BAAA,SAAAixB,EAAAC,EAAA/jI,EAAAsyG,EAAAM,EAAAL,EAAAC,EAAAC,EAAAC,EAAAjoG,GACA,GAAAu5H,MACAn3H,EAAAP,KAAA23H,QAAA,4CAAAD,GACA9qF,EAAA,OACAgrF,GAAAlkI,YAAAA,EAAAsyG,YAAAA,EAAAM,mBAAAA,EAAAL,SAAAA,EAAAC,SAAAA,EAAAC,OAAAA,EAAAC,OAAAA,EAAAjoG,KAAAA,EACA6B,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAAs+F,0BAAA,SAAAgvB,EAAAC,EAAA/jI,EAAAskI,GACA,GAAAN,MACAn3H,EAAAP,KAAA23H,QAAA,4CAAAD,GACA9qF,EAAA,OACAgrF,GAAAlkI,YAAAA,EAAAskI,iBAAAA,EACAh4H,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAAw7F,qBAAA,SAAA8xB,EAAAC,EAAA/jI,GACA,GAAAgkI,MACAn3H,EAAAP,KAAA23H,QAAA,uCAAAD,GACA9qF,EAAA,OACAgrF,GAAAlkI,YAAAA,EACAsM,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAAo+F,wBAAA,SAAAkvB,EAAAC,EAAA/jI,EAAAo6G,GACA,GAAA4pB,MACAn3H,EAAAP,KAAA23H,QAAA,0CAAAD,GACA9qF,EAAA,OACAgrF,GAAAlkI,YAAAA,EAAAo6G,UAAAA,EACA9tG,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAA6iG,4BAAA,SAAAyqB,EAAAC,EAAA/jI,EAAAuyG,EAAAE,GACA,GAAAuxB,MACAn3H,EAAAP,KAAA23H,QAAA,8CAAAD,GACA9qF,EAAA,OACAgrF,GAAAlkI,YAAAA,EAAAuyG,SAAAA,EAAAE,OAAAA,EACAnmG,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAKA9sH,EAAAT,UAAA+tH,wBAAA,SAAAT,EAAAC,EAAAS,EAAAC,EAAAC,GACA,GAAAV,MACAn3H,EAAAP,KAAA23H,QAAA,0CAAAD,GACA9qF,EAAA,OACAgrF,GAAAM,SAAAA,EAAAC,UAAAA,EAAAC,YAAAA,EACAp4H,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAAu9G,oBAAA,SAAA+P,EAAAC,EAAAS,EAAAC,EAAAC,GACA,GAAAV,MACAn3H,EAAAP,KAAA23H,QAAA,sCAAAD,GACA9qF,EAAA,OACAgrF,GAAAM,SAAAA,EAAAC,UAAAA,EAAAC,YAAAA,EACAp4H,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAAq9G,uBAAA,SAAAiQ,EAAAC,EAAAvS,EAAAmT,EAAAC,EAAAF,GACA,GAAAV,MACAn3H,EAAAP,KAAA23H,QAAA,yCAAAD,GACA9qF,EAAA,OACAgrF,GAAA1S,SAAAA,EAAAmT,KAAAA,EAAAC,KAAAA,EAAAF,YAAAA,EACAp4H,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAAi8G,gBAAA,SAAAqR,EAAAC,EAAAY,EAAAC,EAAAF,GACA,GAAAV,MACAn3H,EAAAP,KAAA23H,QAAA,kCAAAD,GACA9qF,EAAA,OACAgrF,GAAAS,KAAAA,EAAAC,KAAAA,EAAAF,YAAAA,EACAp4H,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAA29G,kBAAA,SAAA2P,EAAAC,EAAAS,EAAAK,EAAAH,GACA,GAAAV,MACAn3H,EAAAP,KAAA23H,QAAA,oCAAAD,GACA9qF,EAAA,OACAgrF,GAAAM,SAAAA,EAAAK,YAAAA,EAAAH,YAAAA,EACAp4H,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAA67G,iBAAA,SAAAyR,EAAAC,EAAAe,EAAAC,EAAAC,EAAAN,GACA,GAAAV,MACAn3H,EAAAP,KAAA23H,QAAA,mCAAAD,GACA9qF,EAAA,OACAgrF,GAAAY,sBAAAA,EAAAC,QAAAA,EAAAC,KAAAA,EAAAN,YAAAA,EACAp4H,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAAooG,mCAAA,SAAAklB,EAAAC,EAAA/jI,GACA,GAAAgkI,MACAn3H,EAAAP,KAAA23H,QAAA,qDAAAD,GACA9qF,EAAA,OACAgrF,GAAAlkI,YAAAA,EACAsM,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAA8nG,+BAAA,SAAAwlB,EAAAC,EAAA/jI,GACA,GAAAgkI,MACAn3H,EAAAP,KAAA23H,QAAA,iDAAAD,GACA9qF,EAAA,OACAgrF,GAAAlkI,YAAAA,EACAsM,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAA4lH,uBAAA,SAAA0H,EAAAC,EAAA/jI,EAAAilI,GACA,GAAAjB,MACAn3H,EAAAP,KAAA23H,QAAA,yCAAAD,GACA9qF,EAAA,OACAgrF,GAAAlkI,YAAAA,EAAAilI,YAAAA,EACA34H,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAAioG,mCAAA,SAAAqlB,EAAAC,EAAA/jI,GACA,GAAAgkI,MACAn3H,EAAAP,KAAA23H,QAAA,qDAAAD,GACA9qF,EAAA,OACAgrF,GAAAlkI,YAAAA,EACAsM,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAA0oG,yBAAA,SAAA4kB,EAAAC,EAAA/jI,EAAA++G;AACA,GAAAilB,MACAn3H,EAAAP,KAAA23H,QAAA,2CAAAD,GACA9qF,EAAA,OACAgrF,GAAAlkI,YAAAA,EAAA++G,aAAAA,EACAzyG,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAA6pG,4BAAA,SAAAyjB,EAAAC,EAAA/jI,GACA,GAAAgkI,MACAn3H,EAAAP,KAAA23H,QAAA,8CAAAD,GACA9qF,EAAA,OACAgrF,GAAAlkI,YAAAA,EACAsM,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAAgqG,4BAAA,SAAAsjB,EAAAC,EAAA/jI,GACA,GAAAgkI,MACAn3H,EAAAP,KAAA23H,QAAA,8CAAAD,GACA9qF,EAAA,OACAgrF,GAAAlkI,YAAAA,EACAsM,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAAwlG,iBAAA,SAAA8nB,EAAAC,EAAA/jI,EAAAuyG,EAAAE,GACA,GAAAuxB,MACAn3H,EAAAP,KAAA23H,QAAA,mCAAAD,GACA9qF,EAAA,OACAgrF,GAAAlkI,YAAAA,EAAAuyG,SAAAA,EAAAE,OAAAA,EACAnmG,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAAgpG,0BAAA,SAAAskB,EAAAC,EAAA/jI,GACA,GAAAgkI,MACAn3H,EAAAP,KAAA23H,QAAA,4CAAAD,GACA9qF,EAAA,OACAgrF,GAAAlkI,YAAAA,EACAsM,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAA0pG,0BAAA,SAAA4jB,EAAAC,EAAA/jI,EAAA8/G,EAAAG,GACA,GAAA+jB,MACAn3H,EAAAP,KAAA23H,QAAA,4CAAAD,GACA9qF,EAAA,OACAgrF,GAAAlkI,YAAAA,EAAA8/G,UAAAA,EAAAG,aAAAA,EACA3zG,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAAmpG,4BAAA,SAAAmkB,EAAAC,EAAA/jI,GACA,GAAAgkI,MACAn3H,EAAAP,KAAA23H,QAAA,8CAAAD,GACA9qF,EAAA,OACAgrF,GAAAlkI,YAAAA,EACAsM,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAA6oG,0BAAA,SAAAykB,EAAAC,EAAA/jI,GACA,GAAAgkI,MACAn3H,EAAAP,KAAA23H,QAAA,4CAAAD,GACA9qF,EAAA,OACAgrF,GAAAlkI,YAAAA,EACAsM,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAAupG,+BAAA,SAAA+jB,EAAAC,EAAA/jI,EAAA8/G,GACA,GAAAkkB,MACAn3H,EAAAP,KAAA23H,QAAA,iDAAAD,GACA9qF,EAAA,OACAgrF,GAAAlkI,YAAAA,EAAA8/G,UAAAA,EACAxzG,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAAwoG,yBAAA,SAAA8kB,EAAAC,EAAA/jI,EAAA++G,GACA,GAAAilB,MACAn3H,EAAAP,KAAA23H,QAAA,2CAAAD,GACA9qF,EAAA,OACAgrF,GAAAlkI,YAAAA,EAAA++G,aAAAA,EACAzyG,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAAoxG,mCAAA,SAAAkc,EAAAC,EAAA/jI,EAAA++G,EAAAwG,EAAArE,EAAA3O,GACA,GAAAyxB,MACAn3H,EAAAP,KAAA23H,QAAA,qDAAAD,GACA9qF,EAAA,OACAgrF,GAAAlkI,YAAAA,EAAA++G,aAAAA,EAAAwG,WAAAA,EAAArE,OAAAA,EAAA3O,SAAAA,EACAjmG,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAA+2G,oBAAA,SAAAuW,EAAAC,EAAA/jI,EAAAq+D,EAAAs9C,EAAAC,EAAAT,EAAAO,GACA,GAAAsoB,MACAn3H,EAAAP,KAAA23H,QAAA,sCAAAD,GACA9qF,EAAA,OACAgrF,GAAAlkI,YAAAA,EAAAq+D,KAAAA,EAAAs9C,uBAAAA,EAAAC,qBAAAA,EAAAT,oBAAAA,EAAAO,iCAAAA,EACApvG,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAA82G,0BAAA,SAAAwW,EAAAC,EAAA/jI,EAAAuyG,EAAAE,EAAAoJ,EAAAF,EAAAC,EAAAT,EAAAO,GACA,GAAAsoB,MACAn3H,EAAAP,KAAA23H,QAAA,4CAAAD,GACA9qF,EAAA,OACAgrF,GAAAlkI,YAAAA,EAAAuyG,SAAAA,EAAAE,OAAAA,EAAAoJ,oBAAAA,EAAAF,uBAAAA,EAAAC,qBAAAA,EAAAT,oBAAAA,EAAAO,iCAAAA,EACApvG,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAAyxG,oBAAA,SAAA6b,EAAAC,EAAA/jI,EAAAq+D,GACA,GAAA2lE,MACAn3H,EAAAP,KAAA23H,QAAA,sCAAAD,GACA9qF,EAAA,OACAgrF,GAAAlkI,YAAAA,EAAAq+D,KAAAA,EACA/xD,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAA0xG,0BAAA,SAAA4b,EAAAC,EAAA/jI,EAAAklI,GACA,GAAAlB,MACAn3H,EAAAP,KAAA23H,QAAA,4CAAAD,GACA9qF,EAAA,OACAgrF,GAAAlkI,YAAAA,EAAAklI,iBAAAA,EACA54H,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAAmkG,wBAAA,SAAAmpB,EAAAC,EAAA/jI,EAAAuyG,EAAAE,GACA,GAAAuxB,MACAn3H,EAAAP,KAAA23H,QAAA,0CAAAD,GACA9qF,EAAA,OACAgrF,GAAAlkI,YAAAA,EAAAuyG,SAAAA,EAAAE,OAAAA,EACAnmG,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAA4kG,iBAAA,SAAA0oB,EAAAC,EAAA/jI,EAAAuyG,EAAAE,GACA,GAAAuxB,MACAn3H,EAAAP,KAAA23H,QAAA,mCAAAD,GACA9qF,EAAA,OACAgrF,GAAAlkI,YAAAA,EAAAuyG,SAAAA,EAAAE,OAAAA,EACAnmG,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAAylH,uBAAA,SAAA6H,EAAAC,EAAA/jI,GACA,GAAAgkI,MACAn3H,EAAAP,KAAA23H,QAAA,yCAAAD,GACA9qF,EAAA,OACAgrF,GAAAlkI,YAAAA,EACAsM,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAA2uH,uBAAA,SAAArB,EAAAC,EAAA/jI,EAAAuyG,GACA,GAAAyxB,MACAn3H,EAAAP,KAAA23H,QAAA,yCAAAD,GACA9qF,EAAA,OACAgrF,GAAAlkI,YAAAA,EAAAuyG,SAAAA,EACAjmG,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAAslG,wBAAA,SAAAgoB,EAAAC,EAAA/jI,EAAAuyG,EAAAE,GACA,GAAAuxB,MACAn3H,EAAAP,KAAA23H,QAAA,0CAAAD,GACA9qF,EAAA,OACAgrF,GAAAlkI,YAAAA,EAAAuyG,SAAAA,EAAAE,OAAAA,EACAnmG,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAA0jG,iCAAA,SAAA4pB,EAAAC,EAAA/jI,EAAAuyG,EAAAE,GACA,GAAAuxB,MACAn3H,EAAAP,KAAA23H,QAAA,mDAAAD,GACA9qF,EAAA,OACAgrF,GAAAlkI,YAAAA,EAAAuyG,SAAAA,EAAAE,OAAAA,EACAnmG,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAA0lH,wCAAA,SAAA4H,EAAAC,EAAA/jI,GACA,GAAAgkI,MACAn3H,EAAAP,KAAA23H,QAAA,0DAAAD,GACA9qF,EAAA,OACAgrF,GAAAlkI,YAAAA,EACAsM,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAAukG,wBAAA,SAAA+oB,EAAAC,EAAA/jI,EAAAuyG,EAAAE,GACA,GAAAuxB,MACAn3H,EAAAP,KAAA23H,QAAA,0CAAAD,GACA9qF,EAAA,OACAgrF,GAAAlkI,YAAAA,EAAAuyG,SAAAA,EAAAE,OAAAA,EACAnmG,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAAi3G,0BAAA,SAAAqW,EAAAC,EAAA/jI,EAAA++G,EAAAwG,EAAArE,EAAAkkB,EAAAF,EAAA/pB,GACA,GAAA6oB,MACAn3H,EAAAP,KAAA23H,QAAA,4CAAAD,GACA9qF,EAAA,OACAgrF,GAAAlkI,YAAAA,EAAA++G,aAAAA,EAAAwG,WAAAA,EAAArE,OAAAA,EAAAkkB,mBAAAA,EAAAF,iBAAAA,EAAA/pB,oBAAAA,EACA7uG,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAA4/G,wBAAA,SAAA0N,EAAAC,EAAA/jI,EAAAI,EAAAE,EAAA2G,GACA,GAAA+8H,MACAn3H,EAAAP,KAAA23H,QAAA,0CAAAD,GACA9qF,EAAA,OACAgrF,GAAAlkI,YAAAA,EAAAI,cAAAA,EAAAE,YAAAA,EAAA2G,oDAAAA,EACAqF,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAA6uH,0BAAA,SAAAvB,EAAAC,EAAA/jI,EAAAklI,EAAAI,EAAAC,EAAA1pB,EAAAF,EAAAC,EAAA4pB,EAAA9pB,GACA,GAAAsoB,MACAn3H,EAAAP,KAAA23H,QAAA,4CAAAD,GACA9qF,EAAA,OACAgrF,GAAAlkI,YAAAA,EAAAklI,iBAAAA,EAAAI,YAAAA,EAAAC,UAAAA,EAAA1pB,oBAAAA,EAAAF,uBAAAA,EAAAC,qBAAAA,EAAA4pB,uBAAAA,EAAA9pB,iCAAAA,EACApvG,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAAmgH,yBAAA,SAAAmN,EAAAC,EAAA/jI,EAAAylI,GACA,GAAAzB,MACAn3H,EAAAP,KAAA23H,QAAA,2CAAAD,GACA9qF,EAAA,OACAgrF,GAAAlkI,YAAAA,EAAAylI,KAAAA,EACAn5H,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAAwgH,8BAAA,SAAA8M,EAAAC,EAAA/jI,EAAAylI,GACA,GAAAzB,MACAn3H,EAAAP,KAAA23H,QAAA,gDAAAD,GACA9qF,EAAA,OACAgrF,GAAAlkI,YAAAA,EAAAylI,KAAAA,EACAn5H,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAAklH,yBAAA,SAAAoI,EAAAC,EAAAkB,EAAA/7H,GACA,GAAA86H,MACAn3H,EAAAP,KAAA23H,QAAA,2CAAAD,GACA9qF,EAAA,OACAgrF,GAAAe,YAAAA,EAAA/7H,SAAAA,EACAoD,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAA6gH,iBAAA,SAAAyM,EAAAC,EAAAkB,GACA,GAAAjB,MACAn3H,EAAAP,KAAA23H,QAAA,mCAAAD,GACA9qF,EAAA,OACAgrF,GAAAe,YAAAA,EACA34H,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAAkvH,2BAAA,SAAA5B,EAAAC,EAAAkB,EAAAj/H,EAAAkD,GACA,GAAA86H,MACAn3H,EAAAP,KAAA23H,QAAA,6CAAAD,GACA9qF,EAAA,OACAgrF,GAAAe,YAAAA,EAAAj/H,YAAAA,EAAAkD,SAAAA,EACAoD,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAAulH,sCAAA,SAAA+H,EAAAC,EAAA/jI,GACA,GAAAgkI,MACAn3H,EAAAP,KAAA23H,QAAA,wDAAAD,GACA9qF,EAAA,OACAgrF,GAAAlkI,YAAAA,EACAsM,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAA8yG,0BAAA,SAAAwa,EAAAC,EAAA/jI,EAAA2lI,EAAAC,EAAAC,GACA,GAAA7B,MACAn3H,EAAAP,KAAA23H,QAAA,4CAAAD,GACA9qF,EAAA,OACAgrF,GAAAlkI,YAAAA,EAAA2lI,OAAAA,EAAAC,OAAAA,EAAAC,QAAAA,EACAv5H,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAA+nH,mBAAA,SAAAuF,EAAAC,EAAA/jI,EAAAqK,GACA,GAAA25H,MACAn3H,EAAAP,KAAA23H,QAAA,qCAAAD,GACA9qF,EAAA,OACAgrF,GAAAlkI,YAAAA,EAAAqK,QAAAA,EACAiC,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAAsoH,mBAAA,SAAAgF,EAAAC,EAAA/jI,EAAAmyH,GACA,GAAA6R,MACAn3H,EAAAP,KAAA23H,QAAA,qCAAAD,GACA9qF,EAAA,OACAgrF,GAAAlkI,YAAAA,EAAAmyH,UAAAA,EACA7lH,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAAshH,yBAAA,SAAAgM,EAAAC,EAAA/jI,EAAA8lI,EAAAC,GACA,GAAA/B,MACAn3H,EAAAP,KAAA23H,QAAA,2CAAAD,GACA9qF,EAAA,OACAgrF,GAAAlkI,YAAAA,EAAA8lI,uBAAAA,EAAAC,oDAAAA,EACAz5H,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAA6lH,wCAAA,SAAAyH,EAAAC,EAAA/jI,GACA,GAAAgkI,MACAn3H,EAAAP,KAAA23H,QAAA,0DAAAD,GACA9qF,EAAA,OACAgrF,GAAAlkI,YAAAA,EACAsM,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAAkoH,yBAAA,SAAAoF,EAAAC,EAAA/jI,EAAAgmI,GACA,GAAAhC,MACAn3H,EAAAP,KAAA23H,QAAA,2CAAAD,GACA9qF,EAAA,OACAgrF,GAAAlkI,YAAAA,EAAAgmI,gCAAAA,EACA15H,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAAmhH,+BAAA,SAAAmM,EAAAC,EAAA/jI,EAAAmyH,GACA,GAAA6R,MACAn3H,EAAAP,KAAA23H,QAAA,iDAAAD,GACA9qF,EAAA,OACAgrF,GAAAlkI,YAAAA,EAAAmyH,UAAAA,EACA7lH,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAA8kH,2BAAA,SAAAwI,EAAAC,EAAA/jI,GACA,GAAAgkI,MACAn3H,EAAAP,KAAA23H,QAAA,6CAAAD,GACA9qF,EAAA,OACAgrF,GAAAlkI,YAAAA,EACAsM,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAA4rH,6BAAA,SAAA0B,EAAAC,EAAA/jI,EAAAwG,EAAArD,GACA,GAAA6gI,MACAn3H,EAAAP,KAAA23H,QAAA,+CAAAD,GACA9qF,EAAA,OACAgrF,GAAAlkI,YAAAA,EAAAwG,IAAAA,EAAArD,MAAAA,EACAmJ,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAA4kH,sBAAA,SAAA0I,EAAAC,EAAA/jI,GACA,GAAAgkI,MACAn3H,EAAAP,KAAA23H,QAAA,wCAAAD,GACA9qF,EAAA,OACAgrF,GAAAlkI,YAAAA,EACAsM,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAAipH,yBAAA,SAAAqE,EAAAC,EAAA/jI,EAAAilI,GACA,GAAAjB,MACAn3H,EAAAP,KAAA23H,QAAA,2CAAAD,GACA9qF,EAAA,OACAgrF,GAAAlkI,YAAAA,EAAAilI,YAAAA,EACA34H,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAAwpH,eAAA,SAAA8D,EAAAC,EAAA/jI,EAAAilI,EAAAtF,EAAAptB,EAAAE,GACA,GAAAuxB,MACAn3H,EAAAP,KAAA23H,QAAA,iCAAAD,GACA9qF,EAAA,OACAgrF,GAAAlkI,YAAAA,EAAAilI,YAAAA,EAAAtF,SAAAA,EAAAptB,SAAAA,EAAAE,OAAAA,EACAnmG,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAA6qG,iCAAA,SAAAyiB,EAAAC,EAAA/jI,EAAA82G,EAAAkC,EAAAsB,EAAApB,EAAA6F,EAAAgC,EAAAC,EAAAlB,EAAAG,EAAAgB,EAAAC,EAAAJ,EAAAjH,EAAAsH,EAAArH,EAAAE,EAAAvvG,GACA,GAAAu5H,MACAn3H,EAAAP,KAAA23H,QAAA,mDAAAD,GACA9qF,EAAA,OACAgrF,GAAAlkI,YAAAA,EAAA82G,OAAAA,EAAAkC,OAAAA,EAAAsB,QAAAA,EAAApB,QAAAA,EAAA6F,aAAAA,EAAAgC,OAAAA,EAAAC,QAAAA,EAAAlB,UAAAA,EAAAG,aAAAA,EAAAgB,QAAAA,EAAAC,OAAAA,EAAAJ,iBAAAA,EAAAjH,iBAAAA,EAAAsH,QAAAA,EAAArH,UAAAA,EAAAE,UAAAA,EAAAvvG,KAAAA,EACA6B,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAAquG,oCAAA,SAAAif,EAAAC,EAAA/jI,GACA,GAAAgkI,MACAn3H,EAAAP,KAAA23H,QAAA,sDAAAD,GACA9qF,EAAA,OACAgrF,GAAAlkI,YAAAA,EACAsM,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAAuuG,8BAAA,SAAA+e,EAAAC,EAAA/jI,GACA,GAAAgkI,MACAn3H,EAAAP,KAAA23H,QAAA,gDAAAD,GACA9qF,EAAA,OACAgrF,GAAAlkI,YAAAA,EACAsM,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAAgrG,2BAAA,SAAAsiB,EAAAC,EAAA/jI,EAAAimI,EAAAC,GACA,GAAAlC,MACAn3H,EAAAP,KAAA23H,QAAA,6CAAAD,GACA9qF,EAAA,OACAgrF,GAAAlkI,YAAAA,EAAAimI,eAAAA,EAAAC,eAAAA,EACA55H,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAAorG,wBAAA,SAAAkiB,EAAAC,EAAA/jI,EAAAuyG,EAAAE,GACA,GAAAuxB,MACAn3H,EAAAP,KAAA23H,QAAA,0CAAAD,GACA9qF,EAAA,OACAgrF,GAAAlkI,YAAAA,EAAAuyG,SAAAA,EAAAE,OAAAA,EACAnmG,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAAowG,4CAAA,SAAAkd,EAAAC,EAAA/jI,EAAA2lI,EAAAC,GACA,GAAA5B,MACAn3H,EAAAP,KAAA23H,QAAA,8DAAAD,GACA9qF,EAAA,OACAgrF,GAAAlkI,YAAAA,EAAA2lI,OAAAA,EAAAC,OAAAA,EACAt5H,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAAyrG,wCAAA,SAAA6hB,EAAAC,EAAA/jI,EAAAmmI,GACA,GAAAnC,MACAn3H,EAAAP,KAAA23H,QAAA,0DAAAD,GACA9qF,EAAA,OACAgrF,GAAAlkI,YAAAA,EAAAmmI,qBAAAA,EACA75H,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAAqiG,+BAAA,SAAAirB,EAAAC,EAAA/jI,EAAAuyG,EAAAE,GACA,GAAAuxB,MACAn3H,EAAAP,KAAA23H,QAAA,iDAAAD,GACA9qF,EAAA,OACAgrF,GAAAlkI,YAAAA,EAAAuyG,SAAAA,EAAAE,OAAAA,EACAnmG,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAA4vH,yBAAA,SAAAtC,EAAAC,EAAA/jI,EAAAuyG,EAAAE,GACA,GAAAuxB,MACAn3H,EAAAP,KAAA23H,QAAA,2CAAAD,GACA9qF,EAAA,OACAgrF,GAAAlkI,YAAAA,EAAAuyG,SAAAA,EAAAE,OAAAA,EACAnmG,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAA8qG,2BAAA,SAAAwiB,EAAAC,EAAA/jI,EAAAimI,EAAAC,EAAAG,EAAAC,EAAAzlB,EAAA0lB,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,GACA,GAAApD,MACAn3H,EAAAP,KAAA23H,QAAA,6CAAAD,GACA9qF,EAAA,OACAgrF,GAAAlkI,YAAAA,EAAAimI,eAAAA,EAAAC,eAAAA,EAAAG,UAAAA,EAAAC,UAAAA,EAAAzlB,WAAAA,EAAA0lB,WAAAA,EAAAC,gBAAAA,EAAAC,UAAAA,EAAAC,WAAAA,EAAAC,aAAAA,EAAAC,gBAAAA,EAAAC,WAAAA,EAAAC,UAAAA,EAAAC,oBAAAA,EAAAC,oBAAAA,EAAAC,WAAAA,EAAAC,aAAAA,EAAAC,aAAAA,EAAAC,QAAAA,EACA96H,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAAs4G,oBAAA,SAAAgV,EAAAC,EAAA/jI,EAAAyuH,EAAAC,EAAAC,GACA,GAAAqV,MACAn3H,EAAAP,KAAA23H,QAAA,sCAAAD,GACA9qF,EAAA,OACAgrF,GAAAlkI,YAAAA,EAAAyuH,YAAAA,EAAAC,YAAAA,EAAAC,oBAAAA,EACAriH,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAA+iH,oBAAA,SAAAuK,EAAAC,EAAA76H,EAAAm+H,EAAApC,GACA,GAAAjB,MACAn3H,EAAAP,KAAA23H,QAAA,sCAAAD,GACA9qF,EAAA,OACAgrF,GAAAh7H,SAAAA,EAAAm+H,aAAAA,EAAApC,YAAAA,EACA34H,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAAm6G,oCAAA,SAAAmT,EAAAC,EAAA/jI,GACA,GAAAgkI,MACAn3H,EAAAP,KAAA23H,QAAA,sDAAAD,GACA9qF,EAAA,OACAgrF,GAAAlkI,YAAAA,EACAsM,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAA8wH,uCAAA,SAAAxD,EAAAC,EAAAwD,GACA,GAAAvD,MACAn3H,EAAAP,KAAA23H,QAAA,yDAAAD,GACA9qF,EAAA,OACAgrF,GAAAqD,iBAAAA,EACAj7H,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAAwsH,wBAAA,SAAAc,EAAAC,EAAA/jI,GACA,GAAAgkI,MACAn3H,EAAAP,KAAA23H,QAAA,0CAAAD,GACA9qF,EAAA,OACAgrF,GAAAlkI,YAAAA,EACAsM,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAA+sH,6BAAA,SAAAO,EAAAC,EAAA/jI,GACA,GAAAgkI,MACAn3H,EAAAP,KAAA23H,QAAA,+CAAAD,GACA9qF,EAAA,OACAgrF,GAAAlkI,YAAAA,EACAsM,MAAA63H,MAAAt3H,EAAAqsC,EAAAgrF,EAAAJ,EAAAC,IAGA9sH,EAAAT,UAAAytH,QAAA,SAAAuD,EAAAC,GACA,GAAA56H,GAAAP,KAAAu3H,oBAAA2D,CACA,KAAA,GAAAE,KAAAD,GAAA,CACA,GAAAhuE,GAAA,GAAArjC,QAAAsxG,EAAA,IACA76H,GAAAA,EAAAxE,QAAAoxD,EAAAguE,EAAAC,IAEA,MAAA76H,IAGAoK,EAAAT,UAAA2tH,MAAA,SAAAt3H,EAAAqsC,EAAAgrF,EAAAt4H,EAAAE,GACA+xC,EAAApG,MACA5qC,IAAAA,EACAnC,KAAAwuC,EACAjzC,KAAA,OAAAizC,EAAA,KAAAgrF,EACAh6G,SAAA,OACAte,QAAAA,EACAE,MAAAA,MAwBAhH,OAAA+X,QCvuBAvb,EAAA0C,UAAAskC,GAAA,QAAA,eAAA,WACA,GAIAq/F,GAJAv5E,EAAA9sD,EAAAgL,MACAs7H,EAAAtmI,EAAA,4BACAumI,EAAAD,EAAAvlI,SACAylI,EAAAxmI,EAAA,UAGA8sD,GAAAngD,YAAA,QAEA45H,EACAD,EAAAxlI,KACAC,OAAA,EACAI,QAAA,KAGAklI,EAAAG,EAAAzlI,SACAulI,EAAAxlI,KACAC,OAAAslI,EAAA,KACAllI,QAAA,OAKA,cAAAqC,QAAAwE,WAAAxE,OAAAwE,UAAAy+H,YAEAzmI,EAAA,QAAAgnC,GAAA,kBAAA,mBAAA,SAAA8jC,GACA,GAAA47D,GAAA1mI,EAAAgL,MAAAjG,KAAA,OACA+lE,GAAAvnC,iBACAthC,QAAAykI,GAAA,KAAAA,EAAAr2H,OAAA,EAAA,IAAApO,QAAAjC,EAAAgL,MAAAjG,KAAA,iBACAvB,OAAAC,SAAAqD,KAAA4/H,KC/BA1mI,EAAA0C,UAAAsa,MAAA,WAGAhd,EAAA,4BAAA6+C,eACAz1C,KAAA,OACA42C,iBAAA,EACAgB,YAAA,EACAh7B,UAAA,OACA46B,gBAAA,EACAH,WAAA,EACAN,gBAAA,EACAgD,UAAA,EACAtB,aAAA,IACAL,UAAA,sBACAlD,WACApK,KAAA,WACA,GAAAyyF,GAAA3mI,EAAA,eACA2mI,GAAAtzF,SAAA,SACArzC,EAAA,gBAAAwN,QAAA,UAGAsU,MAAA,aAGA8kH,iBAAA,WACA,GAAAvqB,GAAAr8G,EAAAgL,KAAAy0B,UAAA,GACA30B,sBAAAuxG,GACAn4G,aAAAm4G,OAIAr8G,EAAA0C,UAAAskC,GAAA,QAAA,sBAAA,SAAAtlC,GACAA,EAAA6hC,iBACAvjC,EAAA6+C,cAAA/8B,QACAnhB,WAAA,WACAX,EAAA0C,SAAAmc,eAAA4mB,QACA,MAKA,IAAAohG,GAAArjI,OAAAC,SAAAo2B,IACAgtG,GAAAxqH,MAAA,MACArc,EAAA,qBAAA6mI,EAAAhkI,MAAA,KAAA,GAAA,KAAA6zD,IAAA,SnC3CA,IAAA94D,0BAAA,4BACAC,wBAAA,2BACAiK,qBAAA,uBACArK,uBAAA,0BAEAK,4BAAA,8BACAC,0BAAA,4BACA26H,0BAAA,4BCPAlzH,WACAshI,UAEApiI,YAAA,kBACAi/H,YAAA,QACA9hI,MAAA,WAGA6C,YAAA,qBACAi/H,YAAA,QACA9hI,MAAA,eAGA6C,YAAA,UACAi/H,YAAA,QACA9hI,MAAA,aAGA6C,YAAA,iBACAi/H,YAAA,QACA9hI,MAAA,WAGA6C,YAAA,sBACAi/H,YAAA,QACA9hI,MAAA,gBAGA6C,YAAA,aACAi/H,YAAA,QACA9hI,MAAA,aAGA6C,YAAA,oBACAi/H,YAAA,QACA9hI,MAAA,eAGA6C,YAAA,gBACAi/H,YAAA,QACA9hI,MAAA,MAGA6C,YAAA,cACAi/H,YAAA,QACA9hI,MAAA,YAGA6C,YAAA,uBACAi/H,YAAA,QACA9hI,MAAA,kBAGA6C,YAAA,yBACAi/H,YAAA,QACA9hI,MAAA,QAGA6C,YAAA,0BACAi/H,YAAA,QACA9hI,MAAA,OAGA6C,YAAA,cACAi/H,YAAA,QACA9hI,MAAA,UAGA6C,YAAA,qBACAi/H,YAAA,QACA9hI,MAAA,iBAGA6C,YAAA,cACAi/H,YAAA,QACA9hI,MAAA,aAGA6C,YAAA,aACAi/H,YAAA,QACA9hI,MAAA,WAGA6C,YAAA,eACAi/H,YAAA,QACA9hI,MAAA,cAGA6C,YAAA,YACAi/H,YAAA,QACA9hI,MAAA,SAGA6C,YAAA,2BACAi/H,YAAA,QACA9hI,MAAA,sBAGA6C,YAAA,sBACAi/H,YAAA,QACA9hI,MAAA,eAGA6C,YAAA,eACAi/H,YAAA,QACA9hI,MAAA,SAGA6C,YAAA,cACAi/H,YAAA,QACA9hI,MAAA,QAGA6C,YAAA,aACAi/H,YAAA,QACA9hI,MAAA,UAGA6C,YAAA,qBACAi/H,YAAA,QACA9hI,MAAA,aAGA6C,YAAA,kBACAi/H,YAAA,QACA9hI,MAAA,gBAGA6C,YAAA,mBACAi/H,YAAA,QACA9hI,MAAA,aAGA6C,YAAA,eACAi/H,YAAA,QACA9hI,MAAA,SAGA6C,YAAA,0BACAi/H,YAAA,QACA9hI,MAAA,qBAGA6C,YAAA,mBACAi/H,YAAA,QACA9hI,MAAA,wBAGA6C,YAAA,YACAi/H,YAAA,QACA9hI,MAAA,QAGA6C,YAAA,6BACAi/H,YAAA,QACA9hI,MAAA,yGAGA6C,YAAA,6BACAi/H,YAAA,QACA9hI,MAAA,qBAGA6C,YAAA,kCACAi/H,YAAA,QACA9hI,MAAA,wJAGA6C,YAAA,oBACAi/H,YAAA,QACA9hI,MAAA,aAGA6C,YAAA,eACAi/H,YAAA,QACA9hI,MAAA,eAGA6C,YAAA,yBACAi/H,YAAA,QACA9hI,MAAA,qBAGA6C,YAAA,gBACAi/H,YAAA,QACA9hI,MAAA,UAGA6C,YAAA,sBACAi/H,YAAA,QACA9hI,MAAA,gBAGA6C,YAAA,uBACAi/H,YAAA,QACA9hI,MAAA,gBAGA6C,YAAA,yBACAi/H,YAAA,QACA9hI,MAAA,0BAGA6C,YAAA,mBACAi/H,YAAA,QACA9hI,MAAA,eAGA6C,YAAA,cACAi/H,YAAA,QACA9hI,MAAA,yBAGA6C,YAAA,qBACAi/H,YAAA,QACA9hI,MAAA,aAGA6C,YAAA,gCACAi/H,YAAA,QACA9hI,MAAA,YAGA6C,YAAA,gCACAi/H,YAAA,QACA9hI,MAAA,eAGA6C,YAAA,0BACAi/H,YAAA,QACA9hI,MAAA,oBAGA6C,YAAA,mBACAi/H,YAAA,QACA9hI,MAAA,cAGA6C,YAAA,kBACAi/H,YAAA,QACA9hI,MAAA,YAGA6C,YAAA,SACAi/H,YAAA,QACA9hI,MAAA,QAGA6C,YAAA,WACAi/H,YAAA,QACA9hI,MAAA,iBAGA6C,YAAA,SACAi/H,YAAA,QACA9hI,MAAA,QAGA6C,YAAA,uBACAi/H,YAAA,QACA9hI,MAAA,sBAGA6C,YAAA,YACAi/H,YAAA,QACA9hI,MAAA,UAGA6C,YAAA,iBACAi/H,YAAA,QACA9hI,MAAA,sBAGA6C,YAAA,iBACAi/H,YAAA,QACA9hI,MAAA,gBAGA6C,YAAA,qBACAi/H,YAAA,QACA9hI,MAAA,eAGA6C,YAAA,mBACAi/H,YAAA,QACA9hI,MAAA,oBAGA6C,YAAA,mBACAi/H,YAAA,QACA9hI,MAAA,cAGA6C,YAAA,6BACAi/H,YAAA,QACA9hI,MAAA,uBAGA6C,YAAA,uCACAi/H,YAAA,QACA9hI,MAAA,8BAGA6C,YAAA,2BACAi/H,YAAA,QACA9hI,MAAA,gBAGA6C,YAAA,6BACAi/H,YAAA,QACA9hI,MAAA,UAGA6C,YAAA,0BACAi/H,YAAA,QACA9hI,MAAA,wBAGA6C,YAAA,mCACAi/H,YAAA,QACA9hI,MAAA,mKAGA6C,YAAA,4BACAi/H,YAAA,QACA9hI,MAAA,kBAGA6C,YAAA,6BACAi/H,YAAA,QACA9hI,MAAA,4CAGA6C,YAAA,8BACAi/H,YAAA,QACA9hI,MAAA,2DAGA6C,YAAA,+BACAi/H,YAAA,QACA9hI,MAAA,0BAGA6C,YAAA,kBACAi/H,YAAA,QACA9hI,MAAA,kBAGA6C,YAAA,iBACAi/H,YAAA,QACA9hI,MAAA,WAGA6C,YAAA,qBACAi/H,YAAA,QACA9hI,MAAA,oFAGA6C,YAAA,uBACAi/H,YAAA,QACA9hI,MAAA,eAGA6C,YAAA,eACAi/H,YAAA,QACA9hI,MAAA,UAGA6C,YAAA,sBACAi/H,YAAA,QACA9hI,MAAA,kDAGA6C,YAAA,wBACAi/H,YAAA,QACA9hI,MAAA,gBAGA6C,YAAA,eACAi/H,YAAA,QACA9hI,MAAA,QAGA6C,YAAA,kBACAi/H,YAAA,QACA9hI,MAAA,aAGA6C,YAAA,aACAi/H,YAAA,QACA9hI,MAAA,eAGA6C,YAAA,WACAi/H,YAAA,QACA9hI,MAAA,OAGA6C,YAAA,kBACAi/H,YAAA,QACA9hI,MAAA,eAGA6C,YAAA,uBACAi/H,YAAA,QACA9hI,MAAA,WAGA6C,YAAA,4BACAi/H,YAAA,QACA9hI,MAAA,eAGA6C,YAAA,uBACAi/H,YAAA,QACA9hI,MAAA,cAGA6C,YAAA,0BACAi/H,YAAA,QACA9hI,MAAA,kBAGA6C,YAAA,4BACAi/H,YAAA,QACA9hI,MAAA,mBAGA6C,YAAA,mBACAi/H,YAAA,QACA9hI,MAAA,mBAGA6C,YAAA,eACAi/H,YAAA,QACA9hI,MAAA,SAGA6C,YAAA,iBACAi/H,YAAA,QACA9hI,MAAA,gBAGA6C,YAAA,2BACAi/H,YAAA,QACA9hI,MAAA,+DAGA6C,YAAA,wCACAi/H,YAAA,QACA9hI,MAAA,iGAGA6C,YAAA,2BACAi/H,YAAA,QACA9hI,MAAA,oBAGA6C,YAAA,eACAi/H,YAAA,QACA9hI,MAAA,QAGA6C,YAAA,eACAi/H,YAAA,QACA9hI,MAAA,OAGA6C,YAAA,UACAi/H,YAAA,QACA9hI,MAAA,OAGA6C,YAAA,4CACAi/H,YAAA,QACA9hI,MAAA,+BAGA6C,YAAA,4CACAi/H,YAAA,QACA9hI,MAAA,mDAGA6C,YAAA,8DACAi/H,YAAA,QACA9hI,MAAA,iDAGA6C,YAAA,8BACAi/H,YAAA,QACA9hI,MAAA,2BAGA6C,YAAA,uBACAi/H,YAAA,QACA9hI,MAAA,gCAGA6C,YAAA,+CACAi/H,YAAA,QACA9hI,MAAA,kEAGA6C,YAAA,oDACAi/H,YAAA,QACA9hI,MAAA,2CAGA6C,YAAA,8DACAi/H,YAAA,QACA9hI,MAAA,+CAGA6C,YAAA,2BACAi/H,YAAA,QACA9hI,MAAA,iDAGA6C,YAAA,+BACAi/H,YAAA,QACA9hI,MAAA,4CAGA6C,YAAA,mCACAi/H,YAAA,QACA9hI,MAAA,wEAGA6C,YAAA,4BACAi/H,YAAA,QACA9hI,MAAA,yBAGA6C,YAAA,4BACAi/H,YAAA,QACA9hI,MAAA,mEAGA6C,YAAA,qBACAi/H,YAAA,QACA9hI,MAAA,6CAGA6C,YAAA,wBACAi/H,YAAA,QACA9hI,MAAA,sBAGA6C,YAAA,6BACAi/H,YAAA,QACA9hI,MAAA,mEAGA6C,YAAA,yBACAi/H,YAAA,QACA9hI,MAAA,oEAGA6C,YAAA,8BACAi/H,YAAA,QACA9hI,MAAA,2BAGA6C,YAAA,sBACAi/H,YAAA,QACA9hI,MAAA,iDAGA6C,YAAA,mCACAi/H,YAAA,QACA9hI,MAAA,sCAGA6C,YAAA,wBACAi/H,YAAA,QACA9hI,MAAA,iEAGA6C,YAAA,8BACAi/H,YAAA,QACA9hI,MAAA,kFAGA6C,YAAA,0CACAi/H,YAAA,QACA9hI,MAAA,qDAGA6C,YAAA,mCACAi/H,YAAA,QACA9hI,MAAA,6DAGA6C,YAAA,+DACAi/H,YAAA,QACA9hI,MAAA,6DAGA6C,YAAA,oCACAi/H,YAAA,QACA9hI,MAAA,yCAGA6C,YAAA,0CACAi/H,YAAA,QACA9hI,MAAA,8CAGA6C,YAAA,yBACAi/H,YAAA,QACA9hI,MAAA,0BAGA6C,YAAA,2CACAi/H,YAAA,QACA9hI,MAAA,oDAGA6C,YAAA,oCACAi/H,YAAA,QACA9hI,MAAA,8CAGA6C,YAAA,mBACAi/H,YAAA,QACA9hI,MAAA,wDAGA6C,YAAA,qDACAi/H,YAAA,QACA9hI,MAAA,8DAGA6C,YAAA,gEACAi/H,YAAA,QACA9hI,MAAA,wCAGA6C,YAAA,yEACAi/H,YAAA,QACA9hI,MAAA,yDAGA6C,YAAA,8FACAi/H,YAAA,QACA9hI,MAAA,wEAGA6C,YAAA,yEACAi/H,YAAA,QACA9hI,MAAA,wEAGA6C,YAAA,2BACAi/H,YAAA,QACA9hI,MAAA,8EAGAklI,UAEAriI,YAAA,kBACAi/H,YAAA,QACA9hI,MAAA,YAGA6C,YAAA,qBACAi/H,YAAA,QACA9hI,MAAA,YAGA6C,YAAA,UACAi/H,YAAA,QACA9hI,MAAA,QAGA6C,YAAA,iBACAi/H,YAAA,QACA9hI,MAAA,aAGA6C,YAAA,sBACAi/H,YAAA,QACA9hI,MAAA,aAGA6C,YAAA,aACAi/H,YAAA,QACA9hI,MAAA,QAGA6C,YAAA,oBACAi/H,YAAA,QACA9hI,MAAA,gBAGA6C,YAAA,gBACAi/H,YAAA,QACA9hI,MAAA,MAGA6C,YAAA,cACAi/H,YAAA,QACA9hI,MAAA,SAGA6C,YAAA,uBACAi/H,YAAA,QACA9hI,MAAA,mBAGA6C,YAAA,yBACAi/H,YAAA,QACA9hI,MAAA,OAGA6C,YAAA,0BACAi/H,YAAA,QACA9hI,MAAA,QAGA6C,YAAA,cACAi/H,YAAA,QACA9hI,MAAA,SAGA6C,YAAA,qBACAi/H,YAAA,QACA9hI,MAAA,iBAGA6C,YAAA,cACAi/H,YAAA,QACA9hI,MAAA,YAGA6C,YAAA,aACAi/H,YAAA,QACA9hI,MAAA,WAGA6C,YAAA,eACAi/H,YAAA,QACA9hI,MAAA,cAGA6C,YAAA,YACAi/H,YAAA,QACA9hI,MAAA,UAGA6C,YAAA,2BACAi/H,YAAA,QACA9hI,MAAA,qBAGA6C,YAAA,sBACAi/H,YAAA,QACA9hI,MAAA,kBAGA6C,YAAA,eACAi/H,YAAA,QACA9hI,MAAA,SAGA6C,YAAA,cACAi/H,YAAA,QACA9hI,MAAA,QAGA6C,YAAA,aACAi/H,YAAA,QACA9hI,MAAA,WAGA6C,YAAA,qBACAi/H,YAAA,QACA9hI,MAAA,eAGA6C,YAAA,kBACAi/H,YAAA,QACA9hI,MAAA,gBAGA6C,YAAA,mBACAi/H,YAAA,QACA9hI,MAAA,YAGA6C,YAAA,eACAi/H,YAAA,QACA9hI,MAAA,SAGA6C,YAAA,0BACAi/H,YAAA,QACA9hI,MAAA,qBAGA6C,YAAA,mBACAi/H,YAAA,QACA9hI,MAAA,qBAGA6C,YAAA,YACAi/H,YAAA,QACA9hI,MAAA,OAGA6C,YAAA,6BACAi/H,YAAA,QACA9hI,MAAA,yGAGA6C,YAAA,6BACAi/H,YAAA,QACA9hI,MAAA,qBAGA6C,YAAA,kCACAi/H,YAAA,QACA9hI,MAAA,2HAGA6C,YAAA,oBACAi/H,YAAA,QACA9hI,MAAA,cAGA6C,YAAA,eACAi/H,YAAA,QACA9hI,MAAA,gBAGA6C,YAAA,yBACAi/H,YAAA,QACA9hI,MAAA,wBAGA6C,YAAA,gBACAi/H,YAAA,QACA9hI,MAAA,UAGA6C,YAAA,sBACAi/H,YAAA,QACA9hI,MAAA,gBAGA6C,YAAA,uBACAi/H,YAAA,QACA9hI,MAAA,gBAGA6C,YAAA,yBACAi/H,YAAA,QACA9hI,MAAA,4BAGA6C,YAAA,mBACAi/H,YAAA,QACA9hI,MAAA,wBAGA6C,YAAA,cACAi/H,YAAA,QACA9hI,MAAA,yBAGA6C,YAAA,qBACAi/H,YAAA,QACA9hI,MAAA,WAGA6C,YAAA,gCACAi/H,YAAA,QACA9hI,MAAA,aAGA6C,YAAA,gCACAi/H,YAAA,QACA9hI,MAAA,aAGA6C,YAAA,0BACAi/H,YAAA,QACA9hI,MAAA,mBAGA6C,YAAA,mBACAi/H,YAAA,QACA9hI,MAAA,aAGA6C,YAAA,kBACAi/H,YAAA,QACA9hI,MAAA,YAGA6C,YAAA,SACAi/H,YAAA,QACA9hI,MAAA,OAGA6C,YAAA,WACAi/H,YAAA,QACA9hI,MAAA,gBAGA6C,YAAA,SACAi/H,YAAA,QACA9hI,MAAA,OAGA6C,YAAA,uBACAi/H,YAAA,QACA9hI,MAAA,yBAGA6C,YAAA,YACAi/H,YAAA,QACA9hI,MAAA,UAGA6C,YAAA,iBACAi/H,YAAA,QACA9hI,MAAA,mBAGA6C,YAAA,iBACAi/H,YAAA,QACA9hI,MAAA,gBAGA6C,YAAA,qBACAi/H,YAAA,QACA9hI,MAAA,gBAGA6C,YAAA,mBACAi/H,YAAA,QACA9hI,MAAA,mBAGA6C,YAAA,mBACAi/H,YAAA,QACA9hI,MAAA,aAGA6C,YAAA,6BACAi/H,YAAA,QACA9hI,MAAA,uBAGA6C,YAAA,uCACAi/H,YAAA,QACA9hI,MAAA,8BAGA6C,YAAA,2BACAi/H,YAAA,QACA9hI,MAAA,aAGA6C,YAAA,6BACAi/H,YAAA,QACA9hI,MAAA,aAGA6C,YAAA,0BACAi/H,YAAA,QACA9hI,MAAA,kBAGA6C,YAAA,mCACAi/H,YAAA,QACA9hI,MAAA,+IAGA6C,YAAA,4BACAi/H,YAAA,QACA9hI,MAAA;GAGA6C,YAAA,6BACAi/H,YAAA,QACA9hI,MAAA,uCAGA6C,YAAA,8BACAi/H,YAAA,QACA9hI,MAAA,uEAGA6C,YAAA,+BACAi/H,YAAA,QACA9hI,MAAA,2BAGA6C,YAAA,kBACAi/H,YAAA,QACA9hI,MAAA,aAGA6C,YAAA,iBACAi/H,YAAA,QACA9hI,MAAA,WAGA6C,YAAA,qBACAi/H,YAAA,QACA9hI,MAAA,8FAGA6C,YAAA,uBACAi/H,YAAA,QACA9hI,MAAA,iBAGA6C,YAAA,eACAi/H,YAAA,QACA9hI,MAAA,SAGA6C,YAAA,sBACAi/H,YAAA,QACA9hI,MAAA,0CAGA6C,YAAA,wBACAi/H,YAAA,QACA9hI,MAAA,YAGA6C,YAAA,eACAi/H,YAAA,QACA9hI,MAAA,SAGA6C,YAAA,kBACAi/H,YAAA,QACA9hI,MAAA,YAGA6C,YAAA,aACAi/H,YAAA,QACA9hI,MAAA,cAGA6C,YAAA,WACAi/H,YAAA,QACA9hI,MAAA,QAGA6C,YAAA,kBACAi/H,YAAA,QACA9hI,MAAA,cAGA6C,YAAA,uBACAi/H,YAAA,QACA9hI,MAAA,YAGA6C,YAAA,4BACAi/H,YAAA,QACA9hI,MAAA,mBAGA6C,YAAA,uBACAi/H,YAAA,QACA9hI,MAAA,cAGA6C,YAAA,0BACAi/H,YAAA,QACA9hI,MAAA,iBAGA6C,YAAA,4BACAi/H,YAAA,QACA9hI,MAAA,mBAGA6C,YAAA,mBACAi/H,YAAA,QACA9hI,MAAA,qBAGA6C,YAAA,eACAi/H,YAAA,QACA9hI,MAAA,SAGA6C,YAAA,iBACAi/H,YAAA,QACA9hI,MAAA,gBAGA6C,YAAA,2BACAi/H,YAAA,QACA9hI,MAAA,wDAGA6C,YAAA,wCACAi/H,YAAA,QACA9hI,MAAA,0FAGA6C,YAAA,2BACAi/H,YAAA,QACA9hI,MAAA,qBAGA6C,YAAA,eACAi/H,YAAA,QACA9hI,MAAA,SAGA6C,YAAA,eACAi/H,YAAA,QACA9hI,MAAA,SAGA6C,YAAA,UACAi/H,YAAA,QACA9hI,MAAA,QAGA6C,YAAA,4CACAi/H,YAAA,QACA9hI,MAAA,yBAGA6C,YAAA,4CACAi/H,YAAA,QACA9hI,MAAA,+DAGA6C,YAAA,8DACAi/H,YAAA,QACA9hI,MAAA,2DAGA6C,YAAA,8BACAi/H,YAAA,QACA9hI,MAAA,kCAGA6C,YAAA,uBACAi/H,YAAA,QACA9hI,MAAA,mCAGA6C,YAAA,+CACAi/H,YAAA,QACA9hI,MAAA,gEAGA6C,YAAA,oDACAi/H,YAAA,QACA9hI,MAAA,uCAGA6C,YAAA,8DACAi/H,YAAA,QACA9hI,MAAA,4CAGA6C,YAAA,2BACAi/H,YAAA,QACA9hI,MAAA,yCAGA6C,YAAA,+BACAi/H,YAAA,QACA9hI,MAAA,oDAGA6C,YAAA,mCACAi/H,YAAA,QACA9hI,MAAA,8EAGA6C,YAAA,4BACAi/H,YAAA,QACA9hI,MAAA,0BAGA6C,YAAA,4BACAi/H,YAAA,QACA9hI,MAAA,wDAGA6C,YAAA,qBACAi/H,YAAA,QACA9hI,MAAA,kDAGA6C,YAAA,wBACAi/H,YAAA,QACA9hI,MAAA,sBAGA6C,YAAA,6BACAi/H,YAAA,QACA9hI,MAAA,wDAGA6C,YAAA,yBACAi/H,YAAA,QACA9hI,MAAA,wEAGA6C,YAAA,8BACAi/H,YAAA,QACA9hI,MAAA,4BAGA6C,YAAA,sBACAi/H,YAAA,QACA9hI,MAAA,4DAGA6C,YAAA,mCACAi/H,YAAA,QACA9hI,MAAA,kCAGA6C,YAAA,wBACAi/H,YAAA,QACA9hI,MAAA,mEAGA6C,YAAA,8BACAi/H,YAAA,QACA9hI,MAAA,0FAGA6C,YAAA,0CACAi/H,YAAA,QACA9hI,MAAA,oDAGA6C,YAAA,mCACAi/H,YAAA,QACA9hI,MAAA,0EAGA6C,YAAA,+DACAi/H,YAAA,QACA9hI,MAAA,0EAGA6C,YAAA,oCACAi/H,YAAA,QACA9hI,MAAA,mDAGA6C,YAAA,0CACAi/H,YAAA,QACA9hI,MAAA,+CAGA6C,YAAA,yBACAi/H,YAAA,QACA9hI,MAAA,2BAGA6C,YAAA,2CACAi/H,YAAA,QACA9hI,MAAA,yDAGA6C,YAAA,oCACAi/H,YAAA,QACA9hI,MAAA,oDAGA6C,YAAA,mBACAi/H,YAAA,QACA9hI,MAAA,iEAGA6C,YAAA,qDACAi/H,YAAA,QACA9hI,MAAA,6DAGA6C,YAAA,gEACAi/H,YAAA,QACA9hI,MAAA,uCAGA6C,YAAA,yEACAi/H,YAAA,QACA9hI,MAAA,8DAGA6C,YAAA,8FACAi/H,YAAA,QACA9hI,MAAA,8EAGA6C,YAAA,yEACAi/H,YAAA,QACA9hI,MAAA,8EAGA6C,YAAA,2BACAi/H,YAAA,QACA9hI,MAAA,sDErvCAmlI,aAAAhnI,EAAAwD,QAAAkhB,QACAuiH,cAAAjnI,EAAAwD,QAAAzC,SACAC,YAAA,EACAoE,gBAAA7G,gBAAA,sBACAkI,KACAygI,UACAC,SACA16H,gBACA26H,sBAAA,gCACAC,mBAAA,6BACAC,qBACAC,cAAA,GAAAppI,KAEA6B,GAAA0C,UAAAsa,MAAA,WACAhd,EAAAwD,QAAA6vD,OAAA,WACA2zE,cAAA,MACAhnI,EAAA,uBAAAc,KACAC,OAAA,EACAI,QAAA,IAEAnB,EAAA,gBAAAkzC,YAAA,WAIAlzC,EAAAwD,QAAA8rH,OAAA,WACA0X,aAAAhnI,EAAAwD,QAAAkhB,QACAuiH,cAAAjnI,EAAAwD,QAAAzC,SAEAimI,cAAA,KACAhnI,EAAA,uBAAAc,KACAC,OAAA,EACAI,QAAA,IAEAnB,EAAA,gBAAAkzC,YAAA,SAEAlzC,EAAA,uBAAAc,KACAC,OAAA,OACAI,QAAA,MAMAqC,OAAA4sG,GAAAo3B,gBAAAC,WACAtjH,KAAA,SAAAhQ,EAAAuzH,GAQA,GAPA1nI,EAAAmU,GAAAkrB,IAAA,SAAA2H,GAAA,QAAA,WACA,GAAA8lB,GAAA9sD,EAAAgL,KACA8hD,GAAA/nD,KAAA,WAAA,YAAArE,SAAA,oBACAC,WAAA,WACAmsD,EAAAlb,WAAA,YAAAsB,YAAA,qBACA,QAEAlzC,EAAAmU,GAAAk/B,SAAA,oBAEA,MADAs0F,WAAAC,OAAAzzH,GACAi8F,GAAAo3B,gBAAA34H,MAAAsV,KAAAtO,MAAA7K,KAAAwK,aAKAhS,OAAA4sG,GAAAo3B,gBAAAK,eACA1jH,KAAA,SAAAhQ,EAAAuzH,GACA,GAAAxzH,GAAAk8F,GAAAkZ,MAAAwe,iBAAAJ,IACAt3B,IAAAkZ,MAAAye,qBAAA5zH,EAAAD,EAAA,SAAA4I,GACAA,EAAAmpB,cAAA,EACAnpB,EAAAknB,iBACAlnB,EAAAknB,qBAMA,IAAAkyE,GAAA33G,gBAAA,0BACAypI,EAAA9xB,GAAAA,EAAA+xB,oBAAA,UAAA/xB,EAAA+xB,mBAAA,OAAA,MACAzkI,QAAA4sG,GAAA83B,WAAAC,SAAA,aACAC,UAAA,SAAA3tF,GA4DA,QAAA4tF,GAAAC,EAAAC,GACA,GAAAC,GAAAF,EAAAh2H,WACAm2H,EAAAF,EAAAj2H,UAOA,OANA,KAAAk2H,EAAA1lI,SACA0lI,EAAA,IAAAA,GAEA,IAAAC,EAAA3lI,SACA2lI,EAAA,IAAAA,GAEAD,EAAA,IAAAC,EApEA9yH,KAAA3K,KACAA,KAAA0lC,KAAA+J,EAAA/J,KACA1lC,KAAA3K,GAAAo6C,EAAAp6C,GAAAo6C,EAAAp6C,GAAA,MAAA,GAAAlC,OAAAgE,UAAA,IAAA6gB,KAAAokD,MAAA,IAAApkD,KAAAgK,UACAhiB,KAAAkwD,SAAAj5D,SAAAw4C,EAAAygB,UAAAzgB,EAAAygB,SACAlwD,KAAAkvB,QAAAj4B,SAAAw4C,EAAAvgB,SAAAugB,EAAAvgB,QAEAlvB,KAAA09H,kBAAA,SAAAC,EAAA79D,GACA,GAAA89D,GAAAD,EAAAj4F,MAEA,KAAAk4F,GAAA,IAAAA,EAAA9lI,OAKA,MAFA6lI,GAAAj4F,KAAA,SACAi4F,EAAAj4F,KAAA,KACA,CAGA,IAAAk4F,EAAA1lI,QAAA,UAAA,CACA,IAAA0lI,EAAA9lI,OACA8lI,EAAA,IAAAA,EAAA,KACA,IAAAA,EAAA9lI,OACA8lI,GAAA,KACA,IAAAA,EAAA9lI,SACA8lI,EAAA,IAAAA,EAEA,IAAA36F,GAAA26F,EAAA/lI,MAAA,GACAorC,GAAAnqC,OAAA,EAAA,EAAA,KACA8kI,EAAA36F,EAAAhqC,KAAA,IAGA,UAAA2kI,IACAA,EAAA,QACAD,EAAAj4F,KAAA,SAGA,IAAAm4F,GAAAD,EAAA/lI,MAAA,KACAylI,EAAA/8E,MAAAj4C,SAAAu1H,EAAA,KAAA,IAAAv1H,SAAAu1H,EAAA,IACAN,EAAAh9E,MAAAj4C,SAAAu1H,EAAA,KAAA,IAAAv1H,SAAAu1H,EAAA,IACAC,GAAA,CAEAv9E,OAAAj4C,SAAAu1H,EAAA,MAAAt9E,MAAAj4C,SAAAu1H,EAAA,KACAC,GAAA,IAEAR,EAAA,GAAAA,EAAA,MACAQ,GAAA,GAGAA,KAAA,IAAAP,EAAA,GAAAA,EAAA,MACAO,GAAA,IAIAA,KAAA,EACAH,EAAAj4F,KAAA,IAEAi4F,EAAAj4F,KAAA23F,EAAAC,EAAAC,MAgBA1nF,SAAA,gBAAAmnF,EAAA,uMAOAhoI,EAAA6+C,cAAAC,SAAA8C,WAAA,SAAAlgD,GAEA,QAAA1B,EAAA0B,EAAA2T,QAAAg+B,SAAA,8BAIArzC,GAAA6+C,cAAAgF,MAAAjC,WAAA9sC,KAAA9J,KAAAtJ,IAcAqnI,UAAAC,eACAC,wBACAC,YAAA,EACAC,KAAA,QACA77D,YAAA,QACA87D,iBAAA,EACAC,YAAA,EACAC,WAAA,SAAA5nI,GACA,GAAAknI,GAAA5oI,EAAA0B,EAAAoiC,eAAA3gC,KACA,WAAAylI,IACAA,EAAA,QACA5oI,EAAA0B,EAAAoiC,eAAA3gC,IAAA,SAEA,IAAA0lI,GAAAD,EAAA/lI,MAAA,KACAylI,EAAAh1H,SAAAu1H,EAAA,IACAN,EAAAj1H,SAAAu1H,EAAA,IACAC,GAAA,GAEAR,EAAA,GAAAA,EAAA,MACAQ,GAAA,GAEAA,KAAA,IAAAP,EAAA,GAAAA,EAAA,MACAO,GAAA,GAGAA,KAAA,GACA9oI,EAAA0B,EAAAoiC,eAAA3gC,IAAA,QAOA0H,iBAGA7D,uBAGA0B,kBAGAgH,UAAA+hG,WAAA10C,QAAA,GACA/8D,EAAA,kBAAAupI,YACA3pI,OAAA,aACA4pI,UAAAhqI,SAAAC,QAAA,QAAAG,OAAA,KACA6pI,SAAA,SACAtkI,SAAAC,gBAAAkC,cACAoiI,gBAAA,EACAC,WAAA,IAKAhC,UAAAC,OAAAllI,SAAAiM,MAGArF,kBACAg+H,qBAAAj3F,YAAA,WAAA/mC,mBAAA,KAEAtJ,EAAA,cAAA8C,OAAA,EACA4C,oBAEAkE,qBAIAvB,iCAGAyC,uBAEA5G,eAEAlE,EAAA,WAAA6O,MAAA,SAAAi8D,GACApgE,iBAAA,GACAogE,EAAAvnC,iBACAj9B","file":"app-myCapitech-min.js","sourcesContent":["var ctLoginComponent;\n(function ($) {\n\t$.fn.capitechLogin = function () {\n\t\tvar $capitechLoginElm = $(this);\n\t\tvar options = {};\n\t\tplugin = this;\n\n\n\t\t// functions\n\t\t/*////////////////////////////////////////////////////////////*/\n\t\tfunction init() {\n\t\t\tloaderIndicator(true);\n\t\t\tinitKnockoutObject();\n\t\t\tgetApplicationSettings();\n\t\t}\n\n\t\tfunction initKnockoutObject() {\n\t\t\toptions = {\n\t\t\t\textend: {\n\t\t\t\t\t\"{root}\": function (root) {\n\t\t\t\t\t\troot.clientId = ko.observable();\n\t\t\t\t\t\troot.rememberLogin = ko.observable(false);\n\t\t\t\t\t\troot.signInUrl = ko.observable(\"\");\n\t\t\t\t\t\troot.simployerAuthority = ko.observable(\"\");\n\t\t\t\t\t\troot.externalAuthUrlWithClientId = ko.observable(\"\");\n\t\t\t\t\t\troot.bUseAzureLogin = ko.observable(false);\n\t\t\t\t\t\troot.bUseSimployerSaamLogin = ko.observable(false);\n\t\t\t\t\t\troot.bClientSelectionAfterLogin = ko.observable(false);\n\t\t\t\t\t\troot.bUseInternalAuth = ko.observable(false);\n\t\t\t\t\t\troot.bCanChangePassword = ko.observable(false);\n\t\t\t\t\t\troot.bCanDisplayForgotPassword = ko.observable(false);\n\t\t\t\t\t\troot.bIsShowingForgotPassword = ko.observable(false);\n\t\t\t\t\t\troot.simployerGlobalMenuCssUrl = ko.observable(\"\");\n\t\t\t\t\t\troot.simployerGlobalMenuJsUrl = ko.observable(\"\");\n\t\t\t\t\t\troot.theme = ko.observable(\"capitech\");\n\t\t\t\t\t\troot.email = ko.observable(\"\");\n\t\t\t\t\t\troot.loginType = ko.observable(\"\");\n\t\t\t\t\t\troot.bMultiLogin = ko.computed(function() {\n\t\t\t\t\t\t\treturn root.bUseInternalAuth() && root.bUseAzureLogin();\n\t\t\t\t\t\t}, root);\n\t\t\t\t\t\troot.loginFormChanged = function (obj, event) {\n\t\t\t\t\t\t\tsetCookie(CLIENTID_COOKIE_NAME, obj.clientId(), 365);\n\t\t\t\t\t\t\tsetCookie(REMEMBERME_COOKIE_NAME, obj.rememberLogin(), 365);\n\t\t\t\t\t\t\t// Generate login URL\n\t\t\t\t\t\t\tvar loginUrl = obj.signInUrl();\n\n\t\t\t\t\t\t\tif (loginUrl && obj.bUseAzureLogin()) {\n\t\t\t\t\t\t\t\tloginUrl = updateURLParameter(loginUrl, \"capitechClientId\", obj.clientId());\n\t\t\t\t\t\t\t\tloginUrl = updateURLParameter(loginUrl, \"rememberLogin\", obj.rememberLogin());\n\t\t\t\t\t\t\t\tloginUrl = updateURLParameter(loginUrl, \"returnUrl\", encodeURIComponent(window.location.href));\n\t\t\t\t\t\t\t\tobj.externalAuthUrlWithClientId(loginUrl);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\troot.toggleShowForgotPassword = function (obj, event) {\n\t\t\t\t\t\t\tobj.bIsShowingForgotPassword(!obj.bIsShowingForgotPassword());\n\t\t\t\t\t\t},\n\t\t\t\t\t\troot.submitRequestNewPasswordForUser = function(obj, event) {\n\t\t\t\t\t\t\tvar isEmailValid = validateEmailAddress(obj.email());\n\t\t\t\t\t\t\tvar isCliendIdValid = obj.clientId() && obj.clientId() > 0;\n\n\t\t\t\t\t\t\tif (!isEmailValid || !isCliendIdValid) {\n\t\t\t\t\t\t\t\tsweetAlert(getResource(\"app.validationErrorTitle\"), getResource(\"app.validationErrorForgotPasswordText\"), \"error\");\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tloaderIndicator(true);\n\t\t\t\t\t\t\t\t_api.forgotPassword_POST(\n\t\t\t\t\t\t\t\t\tfunction (data, textStatus, jqXHR) {\n\t\t\t\t\t\t\t\t\t\tloaderIndicator(false);\n\t\t\t\t\t\t\t\t\t\tif (data.success === true) {\n\t\t\t\t\t\t\t\t\t\t\tsweetAlert(getResource(\"app.informationTitle\"), getResource(\"app.forgotPasswordRequestedText\"), \"info\");\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tsweetAlert(\"Error\", handleServerErrorMessage(data.displayErrorMessage), \"warning\");\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tfunction (jqXHR, textStatus, errorThrown) {\n\t\t\t\t\t\t\t\t\t\tloaderIndicator(false);\n\t\t\t\t\t\t\t\t\t\tdisplayAjaxErrorAlert(jqXHR, true);\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tobj.clientId(),\n\t\t\t\t\t\t\t\t\tobj.email(),\n\t\t\t\t\t\t\t\t\t_appSettingsObj.languageShort\n\t\t\t\t\t\t\t\t);\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t\"{root}.clients[i]\": function(client) {\n\t\t\t\t\t\t// Automatically generated by JSON returned from API\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar initDummyData = {\n\t\t\t\tclients: []\n\t\t\t};\n\t\t\tctLoginComponent = ko.viewmodel.fromModel(initDummyData, options);\n\t\t\tko.applyBindings(ctLoginComponent, $capitechLoginElm[0]);\n\t\t}\n\n\t\tfunction getApplicationSettings() {\n\t\t\tvar displayMessage = getURLVariable(\"message\");\n\t\t\tif (!!displayMessage) {\n\t\t\t\tsweetAlert(\"Information\", decodeURIComponent(displayMessage), \"info\");\n\t\t\t}\n\t\t\t\n\t\t\t_api.getSettings_GET(\n\t\t\t\tfunction (data, textStatus, jqXHR) {\n\t\t\t\t\tloaderIndicator(false);\n\t\t\t\t\tif (data.success === true && data.content.length > 0) {\n\t\t\t\t\t\tvar settings = data.content[0];\n\t\t\t\t\t\tvar simployerGlobalMenuJsUrl = settings.simployerGlobalMenuJsUrl;\n\t\t\t\t\t\tvar signOutUrl = \"\";\n\t\t\t\t\t\tif (settings.signOutUrl) {\n\t\t\t\t\t\t\tsignOutUrl = updateURLParameter(settings.signOutUrl, \"sid\", encodeURIComponent(getCookie(SIMPLOYER_SID_COOKIE_NAME)));\n\t\t\t\t\t\t\tsimployerGlobalMenuJsUrl = updateURLParameter(simployerGlobalMenuJsUrl, \"logoutUrl\", encodeURIComponent(signOutUrl));\n\t\t\t\t\t\t}\n\t\t\t\t\t\tctLoginComponent.signInUrl(settings.signInUrl);\n\t\t\t\t\t\tctLoginComponent.simployerAuthority(settings.simployerAuthority);\n\t\t\t\t\t\tctLoginComponent.bUseAzureLogin(settings.loginAzure);\n\t\t\t\t\t\tctLoginComponent.bUseSimployerSaamLogin(settings.loginSimployerSaam);\n\t\t\t\t\t\tctLoginComponent.bClientSelectionAfterLogin(settings.clientSelectionAftherLogin);\n\t\t\t\t\t\tctLoginComponent.bUseInternalAuth(settings.loginUserNameAndPassword);\n\t\t\t\t\t\tctLoginComponent.bCanDisplayForgotPassword(settings.showForgotPassword);\n\t\t\t\t\t\tctLoginComponent.bCanChangePassword(settings.showChangePassword);\n\t\t\t\t\t\tctLoginComponent.simployerGlobalMenuCssUrl(settings.simployerGlobalMenuCssUrl);\n\t\t\t\t\t\tctLoginComponent.simployerGlobalMenuJsUrl(simployerGlobalMenuJsUrl);\n\t\t\t\t\t\tctLoginComponent.theme(settings.theme);\n\t\t\t\t\t\tsetLocalStorage(\"simployerGlobalMenuJsUrl\", ctLoginComponent.simployerGlobalMenuJsUrl());\n\t\t\t\t\t\tsetLocalStorage(\"simployerGlobalMenuCssUrl\", ctLoginComponent.simployerGlobalMenuCssUrl());\n\t\t\t\t\t\tsetLocalStorage(\"myCapitechTheme\", ctLoginComponent.theme());\n\t\t\t\t\t\tsetLocalStorage(\"clientSelectionAfterLogin\", ctLoginComponent.bClientSelectionAfterLogin());\n\t\t\t\t\t\tsetLocalStorage(\"showChangePassword\", ctLoginComponent.bCanChangePassword());\n\t\t\t\t\t\tsetLocalStorage(\"showForgotPassword\", ctLoginComponent.bCanDisplayForgotPassword());\n\t\t\t\t\t\tsetLocalStorage(\"signOutUrl\", signOutUrl);\n\t\t\t\t\t\tloadTheme();\n\t\t\t\t\t\ttryLoginWithToken();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdisplayAjaxErrorAlert(jqXHR, false);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tfunction (jqXHR, textStatus, errorThrown) {\n\t\t\t\t\tloaderIndicator(false);\n\t\t\t\t\tdisplayAjaxErrorAlert(jqXHR, true);\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\tfunction getFlowClients() {\n\t\t\t_api.getAvaliableCapitechClients_POST(\n\t\t\t\tfunction (data, textStatus, jqXHR) {\n\t\t\t\t\tloaderIndicator(false);\n\t\t\t\t\tif (data.success === true && data.content.length > 0) {\n\t\t\t\t\t\tvar clients = data.content;\n\t\t\t\t\t\tfor (var client = 0; client < clients.length; client++) {\n\t\t\t\t\t\t\tctLoginComponent.clients.push(clients[client]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tctLoginComponent.clientId(getCookie(CLIENTID_COOKIE_NAME));\n\t\t\t\t\t\tctLoginComponent.rememberLogin(getCookie(REMEMBERME_COOKIE_NAME) ? getCookie(REMEMBERME_COOKIE_NAME) : false);\n\t\t\t\t\t\tctLoginComponent.loginFormChanged(ctLoginComponent);\n\t\t\t\t\t\tshowLoginForm();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsweetAlert(\"No clients\", \"Can't recieve clients.\", \"error\");\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tfunction (jqXHR, textStatus, errorThrown) {\n\t\t\t\t\tloaderIndicator(false);\n\t\t\t\t\tdisplayAjaxErrorAlert(jqXHR, true);\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\tfunction tryLoginWithToken() {\n\t\t\tvar clientId = getCookie(CLIENTID_COOKIE_NAME);\n\t\t\tvar refreshToken = getCookie(REFRESHTOKEN_COOKIE_NAME);\n\t\t\tvar rememberMe = getCookie(REMEMBERME_COOKIE_NAME);\n\n\t\t\tif ((clientId && refreshToken && ((rememberMe && rememberMe === true)) || getURLVariable(\"isAuthenticated\") === \"true\")) {\n\t\t\t\t// Check URL variables (Used for Azure and Simployer)\n\t\t\t\tvar urlClientId = getURLVariable(\"my-capitech-clientid\");\n\t\t\t\tvar urlRefreshToken = getURLVariable(\"my-capitech-refresh-token\");\n\t\t\t\tif (urlClientId !== undefined && urlClientId !== null && urlClientId.length > 0) {\n\t\t\t\t\tsetCookie(CLIENTID_COOKIE_NAME, urlClientId);\n\t\t\t\t\tclientId = urlClientId;\n\t\t\t\t}\n\t\t\t\tif (urlRefreshToken !== undefined && urlRefreshToken !== null && urlRefreshToken.length > 0) {\n\t\t\t\t\tsetCookie(REFRESHTOKEN_COOKIE_NAME, urlRefreshToken);\n\t\t\t\t\trefreshToken = urlRefreshToken;\n\t\t\t\t}\n\t\t\t\t// Check URL variables (Used for Simployer)\n\t\t\t\tvar simployerAppid = getURLVariable(\"simployer-appid\");\n\t\t\t\tvar simployerSCI = getURLVariable(\"simployer-sci\");\n\t\t\t\tvar simployerSID = getURLVariable(\"simployer-sid\");\n\t\t\t\tif (simployerAppid !== undefined && simployerAppid !== null && simployerAppid.length > 0) {\n\t\t\t\t\tsetCookie(SIMPLOYER_APPID_COOKIE_NAME, simployerAppid);\n\t\t\t\t}\n\t\t\t\tif (simployerSCI !== undefined && simployerSCI !== null && simployerSCI.length > 0) {\n\t\t\t\t\tsetCookie(SIMPLOYER_SCI_COOKIE_NAME, simployerSCI);\n\t\t\t\t}\n\t\t\t\tif (simployerSID !== undefined && simployerSID !== null && simployerSID.length > 0) {\n\t\t\t\t\tsetCookie(SIMPLOYER_SID_COOKIE_NAME, simployerSID);\n\t\t\t\t}\n\n\t\t\t\tloaderIndicator(true);\n\t\t\t\t_api.refreshAuthorization_POST(\n\t\t\t\t\t// success\n\t\t\t\t\tfunction (data, textStatus, jqXHR) {\n\t\t\t\t\t\tif (data.success === true && data.content.length > 0) {\n\t\t\t\t\t\t\tvar response = data.content[0];\n\t\t\t\t\t\t\tpersistTokens(response);\n\t\t\t\t\t\t\tgetExternalLinks(clientId, response.accessToken);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse{\n\t\t\t\t\t\t\tloaderIndicator(false);\n\t\t\t\t\t\t\tsweetAlert('Error', handleServerErrorMessage(data.displayErrorMessage), \"error\");\n\t\t\t\t\t\t\tclearUserCookies();\n\t\t\t\t\t\t\tgetFlowClients();\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t// error\n\t\t\t\t\tfunction (jqXHR, textStatus, errorThrown) {\n\t\t\t\t\t\tloaderIndicator(false);\n\t\t\t\t\t\tsweetAlert(\"Error\", errorThrown, \"error\");\n\t\t\t\t\t},\n\t\t\t\t\t// params\n\t\t\t\t\trefreshToken);\n\t\t\t} else {\n\t\t\t\t// If Simployer SAAM\n\t\t\t\tif (ctLoginComponent.bUseSimployerSaamLogin()) {\n\t\t\t\t\tsetLocalStorage(\"loginType\", \"simployerSaam\");\n\t\t\t\t\t\n\t\t\t\t\tif (getURLVariable(\"isAuthenticated\") === \"false\") {\n\t\t\t\t\t\tsweetAlert({\n\t\t\t\t\t\t\ttitle: \"\",\n\t\t\t\t\t\t\ttext: getResource(\"app.userNotAuthenticated\"),\n\t\t\t\t\t\t\ttype: \"error\",\n\t\t\t\t\t\t\tcloseOnConfirm: true\n\t\t\t\t\t\t}, function() {\n\t\t\t\t\t\t\twindow.location.href = ctLoginComponent.simployerAuthority();\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar loginUrl = ctLoginComponent.signInUrl();\n\t\t\t\t\t\tloginUrl = updateURLParameter(loginUrl, \"returnUrl\", encodeURIComponent(window.location.href));\n\t\t\t\t\t\tif (getCookie(CLIENTID_COOKIE_NAME) && getCookie(CLIENTID_COOKIE_NAME) > 0) {\n\t\t\t\t\t\t\tloginUrl = loginUrl + \"&capitechclientid=\" + getCookie(CLIENTID_COOKIE_NAME);\n\t\t\t\t\t\t}\n\t\t\t\t\t\twindow.location.href = loginUrl;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tsetLocalStorage(\"loginType\", \"\");\n\t\t\t\t\tclearUserCookies();\n\t\t\t\t\tgetFlowClients();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfunction loginUser(clientId, username, password) {\n\t\t\tvar success = function success(data, textStatus, jqXHR) {\n\t\t\t\tif (data.success === true && data.content.length === 1) {\n\t\t\t\t\tvar response = data.content[0];\n\t\t\t\t\tvar refreshTokenExpiration = response.refreshTokenExpires;\n\n\t\t\t\t\trememberLoginFormDetails(refreshTokenExpiration, clientId, username);\n\t\t\t\t\tpersistTokens(response);\n\n\t\t\t\t\tgetExternalLinks(clientId, data.content[0].accessToken);\n\t\t\t\t} else {\n\t\t\t\t\tloaderIndicator(false);\n\t\t\t\t\tsweetAlert(getResource('app.informationTitle'), handleServerErrorMessage(data.displayErrorMessage), \"error\");\n\t\t\t\t}\n\t\t\t};\n\t\t\tvar error = function error(jqXHR, textStatus, errorThrown) {\n\t\t\t\tloaderIndicator(false);\n\t\t\t\tsweetAlert(\"Error\", errorThrown, \"error\");\n\t\t\t};\n\t\t\t// Show loader\n\t\t\tloaderIndicator(true);\n\t\t\t_api.authorize_POST(success, error, clientId, username, password);\n\t\t}\n\n\t\tfunction rememberLoginFormDetails(refreshTokenExpiration, clientId, username) {\n\t\t\tvar exp = new Date(refreshTokenExpiration);\n\t\t\tvar rememberMe = $('input#rememberMeCheckbox').prop('checked');\n\t\t\tsetCookie(REMEMBERME_COOKIE_NAME, rememberMe, 365);\n\t\t}\n\n\t\tfunction getExternalLinks(clientId, accessToken) {\n\t\t\t_api.getExternalLinks_POST(\n\t\t\t\tfunction (data, textStatus, jqXHR) {\n\t\t\t\t\tif (data.success == true) {\n\t\t\t\t\t\tsetLocalStorage('myCapitechExternalLinks', data.content);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tfunction (jqXHR, textStatus, errorThrown) {\n\t\t\t\t},\n\t\t\t\taccessToken\n\t\t\t);\n\t\t\tgetMyCapitechUserSettings(clientId, accessToken);\n\t\t}\n\n\t\tfunction getMyCapitechUserSettings(clientId, accessToken) {\n\t\t\t_api.getMyCapitechSettings_POST(\n\t\t\t\tfunction (data, textStatus, jqXHR) {\n\t\t\t\t\tif (data.success == true && data.content && data.content.length > 0) {\n\t\t\t\t\t\tvar newUserSettings = getLocalStorage(\"myCapitechUserSettings\") || {};\n\t\t\t\t\t\tvar newClientSettings = getLocalStorage(\"myCapitechSettings\");\n\t\t\t\t\t\tfor (var i = 0; i < data.content.length; i++) {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tnewUserSettings[data.content[i].key] = data.content[i].value;\n\t\t\t\t\t\t\t\tif (data.content[i].key === 'language') {\n\t\t\t\t\t\t\t\t\tnewClientSettings[data.content[i].key] = getUserLanguage(data.content[i].value);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\t\tconsole.warn(\"Can’t set user setting: \", data.content[i]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsetLocalStorage(\"myCapitechUserSettings\", newUserSettings);\n\t\t\t\t\t\tsetLocalStorage(\"myCapitechSettings\", newClientSettings);\n\t\t\t\t\t\t_appSettingsObj = newClientSettings;\n\t\t\t\t\t}\n\t\t\t\t\tgetAllLocalizations(clientId, accessToken);\n\t\t\t\t},\n\t\t\t\tfunction (jqXHR, textStatus, errorThrown) {\n\t\t\t\t\tgetAllLocalizations(clientId, accessToken);\n\t\t\t\t},\n\t\t\t\taccessToken\n\t\t\t);\n\t\t}\n\n\t\tfunction getAllLocalizations(clientId, accessToken) {\n\t\t\t_api.getAllLocalizations_POST(\n\t\t\t\tfunction (data, textStatus, jqXHR) {\n\t\t\t\t\tif (data.success == true) {\n\t\t\t\t\t\tlanguages[_appSettingsObj.language] = data.content;\n\t\t\t\t\t\tsetLocalStorage('myCapitechLanguages', languages);\n\t\t\t\t\t\tgetEmployeeRegistrationInformation(accessToken);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tloaderIndicator(false);\n\t\t\t\t\t\tsweetAlert(getResource('app.informationTitle'), handleServerErrorMessage(data.displayErrorMessage), \"error\");\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tfunction (jqXHR, textStatus, errorThrown) {\n\t\t\t\t\tdisplayAjaxErrorAlert(jqXHR);\n\t\t\t\t},\n\t\t\t\t_appSettingsObj.languageShort,\n\t\t\t\tclientId\n\t\t\t);\n\t\t}\n\n\t\tfunction getEmployeeRegistrationInformation(accessToken) {\n\t\t\tvar success = function success(data, textStatus, jqXHR) {\n\t\t\t\tif (data.success == true && data.content.length === 1) {\n\t\t\t\t\tvar registrationSetup = data.content[0];\n\t\t\t\t\tsetLocalStorage('myCapitechPermissionsAndRegistrationSetup', registrationSetup);\n\n\t\t\t\t\t// Check if user has shifts / duty\n\t\t\t\t\tif (registrationSetup.canDoManualAddition) {\n\t\t\t\t\t\tgetTimeCategoryForManualAddition(accessToken);\n\t\t\t\t\t} else if (registrationSetup.hasCapitechPlan || registrationSetup.hasCapitechFlowPlan) {\n\t\t\t\t\t\tgetDutyWishFilter(accessToken);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tgetDimensionNames(accessToken);\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\t\t\t\t\tsweetAlert(getResource('app.informationTitle'), handleServerErrorMessage(data.displayErrorMessage), \"error\");\n\t\t\t\t}\n\t\t\t};\n\t\t\tvar error = function error(jqXHR, textStatus, errorThrown) {\n\t\t\t\tsweetAlert(\"Error\", errorThrown, \"error\");\n\t\t\t};\n\t\t\t_api.getEmployeeRegistrationInformation_POST(success, error, accessToken);\n\t\t}\n\n\t\tfunction getTimeCategoryForManualAddition(accessToken) {\n\t\t\tvar success = function success(data, textStatus, jqXHR) {\n\t\t\t\tif (data.success == true) {\n\t\t\t\t\tif (data.content.length > 0) {\n\t\t\t\t\t\tsetLocalStorage('myCapitechTimeCategoryForManualAddition', data.content);\n\t\t\t\t\t}\n\t\t\t\t\tvar registrationSetup = getLocalStorage('myCapitechPermissionsAndRegistrationSetup');\n\t\t\t\t\tif (registrationSetup.hasCapitechPlan || registrationSetup.hasCapitechFlowPlan) {\n\t\t\t\t\t\tgetDutyWishFilter(accessToken);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tgetDimensionNames(accessToken);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tsweetAlert(getResource('app.informationTitle'), handleServerErrorMessage(data.displayErrorMessage), \"error\");\n\t\t\t\t}\n\t\t\t};\n\t\t\tvar error = function error(jqXHR, textStatus, errorThrown) {\n\t\t\t\tsweetAlert(\"Error\", errorThrown, \"error\");\n\t\t\t};\n\t\t\t_api.getTimeCategoryForManualAddition_POST(success, error, accessToken);\n\t\t}\n\n\t\tfunction getDutyWishFilter(accessToken) {\n\t\t\tvar success = function success(data, textStatus, jqXHR) {\n\t\t\t\tif (data.success == true) {\n\t\t\t\t\tif (data.content.length > 0) {\n\t\t\t\t\t\tsetLocalStorage('myCapitechDutyWishFilter', data.content[0]);\n\t\t\t\t\t}\n\t\t\t\t\tgetPossibleValuesForDutyWishFilter(accessToken);\n\t\t\t\t} else {\n\t\t\t\t\tsweetAlert(getResource('app.informationTitle'), handleServerErrorMessage(data.displayErrorMessage), \"error\");\n\t\t\t\t}\n\t\t\t};\n\t\t\tvar error = function error(jqXHR, textStatus, errorThrown) {\n\t\t\t\tsweetAlert(\"Error\", errorThrown, \"error\");\n\t\t\t};\n\t\t\t_api.getDutyWishFilter_POST(success, error, accessToken);\n\t\t}\n\n\t\tfunction getPossibleValuesForDutyWishFilter(accessToken) {\n\t\t\tvar success = function success(data, textStatus, jqXHR) {\n\t\t\t\tif (data.success == true) {\n\t\t\t\t\tif (data.content.length > 0) {\n\t\t\t\t\t\tsetLocalStorage('myCapitechDutyWishFilterValues', data.content[0]);\n\t\t\t\t\t}\n\t\t\t\t\tgetDimensionNames(accessToken);\n\t\t\t\t} else {\n\t\t\t\t\tsweetAlert(getResource('app.informationTitle'), handleServerErrorMessage(data.displayErrorMessage), \"error\");\n\t\t\t\t}\n\t\t\t};\n\t\t\tvar error = function error(jqXHR, textStatus, errorThrown) {\n\t\t\t\tsweetAlert(\"Error\", errorThrown, \"error\");\n\t\t\t};\n\t\t\t_api.getPossibleValuesForDutyWishFilter_POST(success, error, accessToken);\n\t\t}\n\n\t\tfunction getDimensionNames(accessToken) {\n\t\t\tvar success = function success(data, textStatus, jqXHR) {\n\t\t\t\tif (data.success == true && data.content.length === 1) {\n\t\t\t\t\tsetLocalStorage('myCapitechDimensionNames', data.content[0]);\n\t\t\t\t\tgetUnReadMessageCount(accessToken);\n\t\t\t\t} else {\n\t\t\t\t\tsweetAlert(getResource('app.informationTitle'), handleServerErrorMessage(data.displayErrorMessage), \"error\");\n\t\t\t\t}\n\t\t\t};\n\t\t\tvar error = function error(jqXHR, textStatus, errorThrown) {\n\t\t\t\tsweetAlert(\"Error\", errorThrown, \"error\");\n\t\t\t};\n\t\t\t_api.getDimensionNames_POST(success, error, accessToken, _appSettingsObj.languageShort);\n\t\t}\n\n\t\tfunction getUnReadMessageCount(accessToken) {\n\t\t\tvar success = function success(data, textStatus, jqXHR) {\n\t\t\t\tif (data.success == true && data.content.length === 1) {\n\t\t\t\t\tsetLocalStorage('myCapitechUnReadMessageCount', data.content[0]);\n\t\t\t\t\twindow.location.href = 'dashboard.htm?v={gulp-my-capitech-version}';\n\t\t\t\t} else {\n\t\t\t\t\tsweetAlert(getResource('app.informationTitle'), handleServerErrorMessage(data.displayErrorMessage), \"error\");\n\t\t\t\t}\n\t\t\t};\n\t\t\tvar error = function error(jqXHR, textStatus, errorThrown) {\n\t\t\t\tsweetAlert(\"Error\", errorThrown, \"error\");\n\t\t\t};\n\t\t\t_api.getNumberOfPendingIncomingMessages_POST(success, error, accessToken);\n\t\t}\n\n\t\t// event handlers\n\t\t/*////////////////////////////////////////////////////////////*/\n\t\t$(this).on('submit', function (evt) {\n\t\t\tevt.preventDefault();\n\n\t\t\tvar clientId = $capitechLoginElm.find('select#clientId').val(),\n\t\t\t\tusername = $capitechLoginElm.find('input#username').val(),\n\t\t\t\tpassword = $capitechLoginElm.find('input#password').val();\n\n\t\t\tloginUser(clientId, username, password);\n\t\t});\n\n\t\t$(this).on('click', 'button.login-action', function (evt) {\n\t\t\tvar loginType = $(this).val();\n\t\t\tctLoginComponent.loginType(loginType);\n\t\t\tif (ctLoginComponent.clientId() !== undefined && ctLoginComponent.clientId() > 0 && loginType === \"externalLogin\") {\n\t\t\t\tevt.preventDefault();\n\t\t\t\twindow.location.href = ctLoginComponent.externalAuthUrlWithClientId();\n\t\t\t}\n\t\t});\n\n\t\t// init\n\t\t/*////////////////////////////////////////////////////////////*/\n\t\tinit();\n\n\t\treturn plugin;\n\t};\n}(jQuery));\n\nfunction shouldRememberMe() {\n\treturn getCookie(REMEMBERME_COOKIE_NAME) ? true : false;\n}\n\nfunction clearUserCookies() {\n\teraseCookie(REFRESHTOKEN_COOKIE_NAME);\n\teraseCookie(ACCESSTOKEN_COOKIE_NAME);\n\teraseCookie(SIMPLOYER_APPID_COOKIE_NAME);\n\teraseCookie(SIMPLOYER_SCI_COOKIE_NAME);\n}\n\nfunction persistTokens(response) {\n\tvar refreshTokenExpiration = new Date(response.refreshTokenExpires);\n\tvar accessTokenExpiration = new Date(response.accessTokenExpires);\n\n\tif (shouldRememberMe() !== true && getLocalStorage(\"loginType\") !== \"simployerSaam\") {\n\t\trefreshTokenExpiration = accessTokenExpiration;\n\t}\n\n\tsetCookie(REFRESHTOKEN_COOKIE_NAME, response.refreshToken, refreshTokenExpiration);\n\tsetCookie(ACCESSTOKEN_COOKIE_NAME, response.accessToken, accessTokenExpiration);\n\n\tsetLocalStorage('myCapitechAccessTokenExpires', response.accessTokenExpires);\n\tsetLocalStorage('myCapitechLogin', new Date());\n}\n","function dutyWishFormData() {\n\tvar aSelectedDepartmentIds = getLocalStorage('myCapitechDutyWishFilter').departmentIds;\n\tvar aSelectedDutyTypeIds = getLocalStorage('myCapitechDutyWishFilter').dutyTypeIds;\n\tvar aDays = [];\n\tvar modelData = {};\n\n\tfor (var i = 0; i < 7; i++) {\n\t\tvar tmpObj = {};\n\t\ttmpObj.dayNumber = i + 1;\n\t\ttmpObj.bChecked = true;\n\t\ttmpObj.dayName = moment(new Date()).startOf('week').isoWeekday(1).add(i, 'd').format('dddd');\n\t\taDays.push(tmpObj)\n\t}\n\tmodelData.days = aDays;\n\n\tmodelData.dutyWishFilterDepartments = $.grep(getLocalStorage('myCapitechDutyWishFilterValues').departments, function (obj, i) {\n\t\tif (isInArray(obj.id, aSelectedDepartmentIds) === false) {\n\t\t\treturn false; // remove the element in the array\n\t\t}\n\t\tobj.bChecked = true;\n\t\tobj.bVisible = true;\n\t\treturn true; // keep the element in the array\n\t});\n\n\tmodelData.dutyWishFilterDutyTypes = $.grep(getLocalStorage('myCapitechDutyWishFilterValues').dutyTypes, function (obj, i) {\n\t\tif (isInArray(obj.id, aSelectedDutyTypeIds) === false) {\n\t\t\treturn false; // remove the element in the array\n\t\t}\n\t\tobj.bChecked = true;\n\t\tobj.bVisible = true;\n\t\treturn true; // keep the element in the array\n\t});\n\t\n\treturn modelData;\n}","function showLoginForm() {\n\t$('.ct-login-info').addClass('hide');\n\tsetTimeout(function() {\n\t\tvar newOffsetTop = 100,\n\t\t\tcalculateOffset,\n\t\t\tcurrentOffset,\n\t\t\t$contentObj = $('.ct-login-content-wrapper'),\n\t\t\tcontentHeight;\n\t\n\t\t$contentObj.css('height','auto');\n\t\tcontentHeight = $contentObj.css('height','auto').height();\n\t\t_logoOffset = contentHeight / 2;\n\t\t\n\t\t$contentObj.css({\n\t\t\t'top': '50%',\n\t\t\t'margin-top': - _logoOffset + 'px',\n\t\t\t'opacity': 1\n\t\t});\n\t},250);\n\tsetTimeout(function() {\n\t\t$('.form-login').addClass('ready');\n\t},400);\n}","function bSupportLocalStorage() {\n\tvar mod = 'ctLocalStorageTest',\n\t\tbHasSupport = false;\n\ttry {\n\t\tlocalStorage.setItem(mod, mod);\n\t\tlocalStorage.removeItem(mod);\n\t\tbHasSupport = true;\n\t} catch(e) {\n\t\tbHasSupport = false;\n\t}\n\tif (bHasSupport === false) {\n\t\talert('Nettleseren er ikke satt opp til å støtte lokal lagring av data. For mange enheter kan dette aktiviseres, ta kontakt med Capitech Support.');\n\t}\n}","var REFRESHTOKEN_COOKIE_NAME = \"my-capitech-refresh-token\";\nvar ACCESSTOKEN_COOKIE_NAME = \"my-capitech-access-token\";\nvar CLIENTID_COOKIE_NAME = \"my-capitech-clientid\";\nvar REMEMBERME_COOKIE_NAME = \"my-capitech-remember-me\";\n\nvar SIMPLOYER_APPID_COOKIE_NAME = \"my-capitech-simployer-appid\";\nvar SIMPLOYER_SCI_COOKIE_NAME = \"my-capitech-simployer-sci\";\nvar SIMPLOYER_SID_COOKIE_NAME = \"my-capitech-simployer-sid\";\n\nfunction setCookie(name, value, expiration) {\n\tvar expires = \"\";\n\tvar expDate = new Date();\n\n\tif (expiration !== undefined) {\n\t\tif (expiration instanceof Date) {\n\t\t\texpDate = expiration;\n\t\t} else {\n\t\t\texpDate.setTime(expDate.getTime() + (expiration * 24 * 60 * 60 * 1000));\n\t\t}\n\t\texpires = \"; expires=\" + expDate.toUTCString();\n\t}\n\t\n\tvar jsonValue = JSON.stringify(value || \"\");\n\tvar cookie = name + \"=\" + jsonValue + expires + \"; path=\" + getCookiePath();\n\tdocument.cookie = cookie;\n}\n\nfunction getCookie(name) {\n\tvar nameEQ = name + \"=\";\n\tvar ca = document.cookie.split(';');\n\tfor (var i = 0; i < ca.length; i++) {\n\t\tvar c = ca[i];\n\t\twhile (c.charAt(0) === ' ') {\n\t\t\tc = c.substring(1, c.length);\n\t\t}\n\t\tif (c.indexOf(nameEQ) === 0) {\n\t\t\tvar val = c.substring(nameEQ.length, c.length);\n\t\t\ttry {\n\t\t\t\treturn JSON.parse(val);\n\t\t\t} catch (err) {\n\t\t\t\treturn val;\n\t\t\t}\n\t\t}\n\t}\n\treturn null;\n}\n\nfunction eraseCookie(name) {\n\tvar expireDate = new Date(1970, 1, 1, 0, 0, 0, 0);\n\tdocument.cookie = name + '=; expires=' + expireDate.toUTCString() + ';path=' + getCookiePath();\n}\n\nfunction getCookiePath() {\n\tvar path = window.location.pathname;\n\tvar aPath = path.split('/');\n\tvar isRoot = path === \"/\";\n\tif (isRoot === false) {\n\t\t// IF window.location.pathname contains filename\n\t\tvar pathLastValue = aPath[aPath.length - 1];\n\t\tif (pathLastValue !== undefined && aPath[aPath.length - 1].indexOf(\".\") > -1) {\n\t\t\taPath.splice(aPath.length - 1, 1);\n\t\t}\n\t\t// IF installation is in Capitech cloud\n\t\tif (aPath.length >= 4 && aPath[2] === \"apps\" && (aPath[3].toLowerCase().indexOf(\"mincapitech\") > -1 || aPath[3].toLowerCase().indexOf(\"mycapitech\") > -1)) {\n\t\t\taPath.splice(2, 2);\n\t\t}\n\t\t// localStoragePath should always ends with /\n\t\tif (aPath[aPath.length - 1].length > 0) {\n\t\t\taPath.push(\"\");\n\t\t}\n\t\tvar localStoragePath = aPath.join('/');\n\t} else {\n\t\tvar localStoragePath = path;\n\t}\n\treturn localStoragePath;\n}","var languages = {\n\t\"nb-NO\": [\n\t\t{\n\t\t\t\"resourceKey\": \"app.absenceText\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Fravær\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.actionsHeading\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Handlinger\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.add\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Legg til\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.amountText\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Antall\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.apiTimeoutTitle\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Tidsavbrudd\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.btnAdd\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Legg til\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.btnAskAbsence\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Søk fravær\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.btnDelete\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"X\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.btnEdit\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Rediger\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.btnRegisterHours\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Registrer tid\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.btnRegisterHoursIn\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Inn\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.btnRegisterHoursOut\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Ut\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.btnSave\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Lagre\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.btnSendMessage\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Send melding\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.btnShow\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Detaljer\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.cancel\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Avbryt\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.checkAll\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Merk alle\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.close\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Lukk\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.confirmDeletionTitle\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Bekreft sletting?\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.currentDateText\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Valgt dato\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.dateText\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Dato\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.dayText\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Dag\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.delete\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Slett\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.departmentText\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Avdeling\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.description\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Beskrivelse\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.detailsTitle\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Detaljer\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.dutyText\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Vakt\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.dutyWishPeriodsText\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Periodevaktønske\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.dutyWishText\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Ønske om ekstravakt\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.false\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Nei\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.forgotPasswordInfoText\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Velg firma og skriv inn din e-postadresse for å bestille instruksjoner for å resette passordet ditt.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.forgotPasswordQuestion\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Glemt passordet?\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.forgotPasswordRequestedText\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Vi har sendt deg en e-post med en lenke for å resette passordet ditt. Hvis du ikke mottar den innen noen få minutter bør du sjekke spam-mappen din.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.fromDateLabel\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Fra dato\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.fromTime\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Fra klokka\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.hoursAndExtraRates\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Timer og tillegg\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.hoursText\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Timer\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.informationText\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Informasjon\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.informationTitle\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Informasjon\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.licenseInvalidText\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Ugyldig systemlisens.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.licenseTitle\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Lisensinfo\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.loading\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Min Capitech laster…\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.login.btnLogin\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Logg inn\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.login.placeholderPassword\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Passord\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.login.placeholderUsername\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Brukernavn\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.login.rememberLogin\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Husk innlogging\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.messagesText\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Meldinger\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.messageText\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Melding\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.my\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Min\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.name\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Min Capitech\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.no\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Nei\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.noOptionToChoose\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Ingen mulige valg\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.notes\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Notat\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.noticeText\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Merknad/kommentar\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.openFilter\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Åpne filter\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.planNumberText\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Plannummer\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.pleaseSelect\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Vennligst velg…\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.registerText\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Registrer\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.returnToSignInQuestion\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Gå til innlogging?\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.sendPasswordResetEmailButtonText\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Send passord reset e-post\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.settings.labelApiUrl\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"API-adresse\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.settings.labelLanguage\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Språk\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.settings.saveButton\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Lagre innstillinger\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.settings.settingsDescription\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Her stilles applikasjonen inn etter ønsket oppsett, trenger du hjelp ta kontakt med Capitech support.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.settings.settingsText\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Innstillinger\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.settings.settingsTitle\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Dine app-innstillinger\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.settings.validationText\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Terminalen ble validert og du kan begynne å bruke den.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.settings.validationTitle\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Validering vellykket!\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.settingsBtn\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Innstillinger\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.statusText\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Status\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.systemErrorMsg\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"En ukjent systemfeil oppstod, hvis feilen gjenntar seg kontakt systemansvarlig.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.systemErrorTitle\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Systemfeil\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.textText\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Tekst\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.timeoutErrorMsg\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Et tidsavbrudd oppstod, vennligst prøv igjen.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.timeoutErrorTitle\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Tidsavbrudd\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.timeText\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Tid\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.toDateLabel\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Til dato\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.toTime\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Til klokka\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.true\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Ja\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.tryAgainBtn\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Prøv igjen\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.typenameAbscense\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Fravær\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.typenameAvailableDuty\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Ledig vakt\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.typenameDutyWish\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Vaktønske\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.typenamePlannedDuty\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Planlagt vakt\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.typenameRequestedDuty\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Forespurt vakt\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.typenameTime\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Registrert tid\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.typeText\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Type\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.unCheckAll\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Opphev alle\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.userNotAuthenticated\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Brukeren er ikke godkjent for å bruke denne applikasjonen.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.validationErrorForgotPasswordText\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Vennligst fyll inn firma og e-postadresse for å motta instruksjoner for å resette passordet.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.validationErrorTitle\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Valideringsfeil\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.weekText\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Uke\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.yearText\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"År\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.yes\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Ja\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"LocalizationKey: Errors_Authorization_401\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Bruker er ikke autorisert.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_CouldNotFindEmployeeByEmailAddress\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Fant ingen brukere med epostadressen du oppga.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_CouldNotFindEmployeeForActiveDirectoryAuthentication\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Fant ingen ansatte tilknyttet din identitet.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_CouldNotFindHelpHtml\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Fant ikke hjelpefilen.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_DatabaseError\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Det oppsto en databasefeil.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_DutyWishConflictsWithExistingDutyWish\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Vaktønsket kolliderer med et allerede eksisterende vaktønske.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_EmployeeDoesNotHaveAccessToManualAdditions\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Du har ikke tilgang til å gjøre dette.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_EmployeeDoesNotHaveAccessToUpdatePersonalInformation\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Du har ikke tilgang til å gjøre endringer.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_EmployeeNotActive\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Ingen tilgang til Min Capitech (deaktivert).\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_FromDateIsAfterToDate\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Spesifisert fra-dato er etter til-dato.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_FromDateIsBeforeCloseDate\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Registreringsdato er før siste dag du har tilgang til å registrere.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_InvalidAbsenceCode\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Ugyldig fraværskode.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_InvalidAccessToken\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Tilgangen din er utløpt. Vennligst forsøk å logge inn på nytt.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_InvalidDate\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Dato er spesifisert i et ugyldig format.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_InvalidPinCode\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Ugyldig PIN-kode.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_InvalidRefreshToken\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Tilgangen din er utløpt. Vennligst forsøk å logge inn på nytt.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_InvalidReportId\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Fant ikke rapporten. Den kan ha blitt fjernet eller deaktivert.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_InvalidSystemLicense\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Ugyldig system-lisens.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_InvalidToken\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"En feil oppsto ved autentisering mot server.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_InvalidUsernameOrPassword\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Ugyldig brukernavn eller passord.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_InvalidZipCode\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Serveren vet ikke hvilket sted dette postnummeret hører til.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_InvalidZipCodeFormat\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Ugyldig postnummer. Postnummeret må være et firesifret tall mellom 0000-9999.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_IsOverlappingAnotherRegistration\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Registreringen overlapper en annen registrering.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_IsViolatingBackInTimeRule\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Du har ikke tilgang til å registrere så langt bak i tid.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_IsViolatingNumberOfDaysBackInTimeRegisteringIsAllowed\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Du har ikke tilgang til å registrere så langt bak i tid.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_IsViolatingRegistrationBan\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Du har ikke tilgang til å registrere\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_IsViolatingRegistrationCloseDate\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Registreringer på denne datoen er lukket.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_MissingArgument\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"En feil har oppstått.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_MultipleEmployeesWithEmailAddress\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Epostadressen er i bruk av flere enn én person.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_NoTimeTransactionsToUpdate\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Fant ingen timetransaksjoner å oppdatere.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_SmtpError\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"En feil oppsto under tilkobling til epost-serveren.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_TimeCategoryIsNotAvaliableForManualAddition\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Tidskategorien er ikke tilgjengelig for manuelle tillegg.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_TimeTransactionValidationError_IsMissingRequiredFields\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Et obligatorisk felt mangler verdi.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_TimeTransactionValidationError_IsOverlappingAnotherRegistration\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Timetransaksjonen krasjer med en annen registrering.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_TimeTransactionValidationError_IsViolatingNumberOfDaysBackInTimeRegisteringIsAllowed\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Registreringsdato er før siste dag du har tilgang til å registrere.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_TimeTransactionValidationError_IsViolatingRegistrationCloseDate\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"Registreringsdato er før siste dag du har tilgang til å registrere.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_UserOrIpIsBlocked\",\n\t\t\t\"cultureCode\": \"nb-NO\",\n\t\t\t\"value\": \"For mange mislykkede innloggingsforsøk. Vennligst prøv igjen litt senere.\"\n\t\t}\n\t],\n\t\"en-EN\": [\n\t\t{\n\t\t\t\"resourceKey\": \"app.absenceText\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Absence\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.actionsHeading\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Actions\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.add\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Add\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.amountText\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Quantity\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.apiTimeoutTitle\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Time out\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.btnAdd\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Add\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.btnAskAbsence\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Ask absence\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.btnDelete\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"X\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.btnEdit\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Edit\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.btnRegisterHours\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Register hours\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.btnRegisterHoursIn\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"In\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.btnRegisterHoursOut\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Out\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.btnSave\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Save\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.btnSendMessage\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Send message\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.btnShow\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Details\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.cancel\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Cancel\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.checkAll\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Check all\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.close\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Close\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.confirmDeletionTitle\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Confirm deletion\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.currentDateText\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Selected date\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.dateText\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Date\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.dayText\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Day\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.delete\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Delete\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.departmentText\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Department\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.description\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Description\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.detailsTitle\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Details\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.dutyText\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Duty\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.dutyWishPeriodsText\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Period duty wish\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.dutyWishText\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Vacant duty wish\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.false\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"No\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.forgotPasswordInfoText\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Select your company and enter your email address and we will send you a link to reset your password.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.forgotPasswordQuestion\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Forgot password?\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.forgotPasswordRequestedText\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Check your email for a link to reset your password. If it doesn’t appear within a few minutes, check your spam folder.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.fromDateLabel\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"From date\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.fromTime\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Time (from)\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.hoursAndExtraRates\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Hours & extra rates\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.hoursText\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Hours\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.informationText\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Information\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.informationTitle\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Information\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.licenseInvalidText\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Invalid system license.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.licenseTitle\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"License information\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.loading\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Loading My Capitech…\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.login.btnLogin\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Log in\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.login.placeholderPassword\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Password\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.login.placeholderUsername\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Username\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.login.rememberLogin\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Remember login\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.messagesText\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Messages\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.messageText\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Message\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.my\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"My\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.name\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"My Capitech\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.no\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"No\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.noOptionToChoose\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"No available options\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.notes\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Notes\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.noticeText\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Notice/comment\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.openFilter\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Open filter\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.planNumberText\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Work number\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.pleaseSelect\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Please select…\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.registerText\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Register\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.returnToSignInQuestion\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Return to sign in?\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.sendPasswordResetEmailButtonText\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Send password reset email\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.settings.labelApiUrl\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"API-path\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.settings.labelLanguage\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Language\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.settings.saveButton\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Save settings\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.settings.settingsDescription\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Change the settings here to match your needs. For support visit Capitech support.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.settings.settingsText\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Settings\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.settings.settingsTitle\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Your app-settings\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.settings.validationText\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"The terminal was successful validated and you can start to use it.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.settings.validationTitle\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Validation successful!\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.settingsBtn\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Settings\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.statusText\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Status\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.systemErrorMsg\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"An unknown system error occurred, if the error persist contact your system administrator.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.systemErrorTitle\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"System error\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.textText\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Text\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.timeoutErrorMsg\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"A timeout occurred, please try again.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.timeoutErrorTitle\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Timeout\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.timeText\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Time\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.toDateLabel\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"To date\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.toTime\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Time (to)\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.true\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Yes\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.tryAgainBtn\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Try again\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.typenameAbscense\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Absence\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.typenameAvailableDuty\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Available duty\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.typenameDutyWish\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Duty wish\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.typenamePlannedDuty\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Planned duty\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.typenameRequestedDuty\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Requested duty\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.typenameTime\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Registered hours\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.typeText\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Type\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.unCheckAll\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Uncheck all\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.userNotAuthenticated\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"User are not authenticated to use this application.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.validationErrorForgotPasswordText\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Please select a company and enter your e-mail to recieve password reset instructions.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.validationErrorTitle\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Validation error\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.weekText\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Week\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.yearText\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Year\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"app.yes\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Yes\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"LocalizationKey: Errors_Authorization_401\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"User not authorized.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_CouldNotFindEmployeeByEmailAddress\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Could not find any users with the specified email address.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_CouldNotFindEmployeeForActiveDirectoryAuthentication\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Could not find an employee connected to your identity.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_CouldNotFindHelpHtml\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Could not load the help file.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_DatabaseError\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"A database error has occurred.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_DutyWishConflictsWithExistingDutyWish\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"The duty wish conflicts with an already existing duty wish.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_EmployeeDoesNotHaveAccessToManualAdditions\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"You do not have access to do this.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_EmployeeDoesNotHaveAccessToUpdatePersonalInformation\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"You do not have access to make changes.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_EmployeeNotActive\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"No access to My Capitech (inactive).\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_FromDateIsAfterToDate\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Specified from-date is after specified to-date.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_FromDateIsBeforeCloseDate\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"The registration date is before the last day you have access to register.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_InvalidAbsenceCode\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Invalid absence code.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_InvalidAccessToken\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Your access has expired. Please try to login again.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_InvalidDate\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"The provided date is not in a correct format.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_InvalidPinCode\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Invalid PIN code.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_InvalidRefreshToken\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Your access has expired. Please try to login again.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_InvalidReportId\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Could not find the report. It may have been removed or deactivated.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_InvalidSystemLicense\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Invalid system license.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_InvalidToken\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"An error occurred while authenticating with the server.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_InvalidUsernameOrPassword\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Invalid username or password.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_InvalidZipCode\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"The server does not know which place this zip code belongs to.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_InvalidZipCodeFormat\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Invalid zip code format. The zip code must be a four-letter number between 0000-9999.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_IsOverlappingAnotherRegistration\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"The registration overlaps another registration.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_IsViolatingBackInTimeRule\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"You do not have access to create registrations this far back in time.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_IsViolatingNumberOfDaysBackInTimeRegisteringIsAllowed\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"You do not have access to create registrations this far back in time.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_IsViolatingRegistrationBan\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"You don't have access to create registrations.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_IsViolatingRegistrationCloseDate\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"This date is closed for new registrations.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_MissingArgument\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"An error has occurred.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_MultipleEmployeesWithEmailAddress\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"The email address is in use by more than one person.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_NoTimeTransactionsToUpdate\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Could not find any time transactions to update.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_SmtpError\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"An error occurred while communicating with the email server.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_TimeCategoryIsNotAvaliableForManualAddition\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"The time category is not avaliable for manual additions.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_TimeTransactionValidationError_IsMissingRequiredFields\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"A required field is missing value.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_TimeTransactionValidationError_IsOverlappingAnotherRegistration\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"The time transaction conflicts with another registration.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_TimeTransactionValidationError_IsViolatingNumberOfDaysBackInTimeRegisteringIsAllowed\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"The registration date is before the last day you have access to register.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_TimeTransactionValidationError_IsViolatingRegistrationCloseDate\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"The registration date is before the last day you have access to register.\"\n\t\t},\n\t\t{\n\t\t\t\"resourceKey\": \"Errors_UserOrIpIsBlocked\",\n\t\t\t\"cultureCode\": \"en-EN\",\n\t\t\t\"value\": \"Too many invalid logins. Please try again later.\"\n\t\t}\n\t]\n};\n\nfunction translateGUI($parentElm) {\n\t$parentElm = typeof $parentElm !== 'undefined' ? $parentElm : $('body');\n\t\n\t$parentElm.find('*[data-l10n-id]').each(function(index, obj) {\n\t\tvar newValue,\n\t\t\t$obj = $(obj),\n\t\t\tdefaultValue = '',\n\t\t\tresourceKey = $obj.data('l10n-id'),\n\t\t\telmTagName = $obj.prop('tagName').toUpperCase();\n\t\t\n\t\tif (elmTagName === 'INPUT' || elmTagName === 'TEXTAREA') {\n\t\t\tdefaultValue = $obj.attr('placeholder');\n\t\t\tnewValue = getResource(resourceKey, defaultValue, elmTagName);\n\t\t\t$obj.attr('placeholder', newValue);\n\t\t} else {\n\t\t\tdefaultValue = $obj.html();\n\t\t\tnewValue = getResource(resourceKey, defaultValue, elmTagName);\n\t\t\t$obj.html(newValue);\n\t\t}\n\t});\n}\n\nfunction getResource(key, defaultValue, elmTagName, language) {\n\telmTagName = typeof elmTagName !== 'undefined' ? elmTagName : 'DIV';\n\tlanguage = typeof language !== 'undefined' ? language : _appSettingsObj.language;\n\t\n\tvar translated = '';\n\tvar bHasTranslation = true;\n\t\n\telmTagName = elmTagName.toUpperCase();\n\t\n\ttry {\n\t\ttranslated = findObjectInArray(languages[language], \"resourceKey\", key).value;\n\t\tif (translated == null) {\n\t\t\ttranslated = defaultValue;\n\t\t\tbHasTranslation = false;\n\t\t\t// translated = key;\n\t\t}\n\t} catch (err) {\n\t\ttranslated = defaultValue;\n\t\tbHasTranslation = false;\n\t\t// translated = key;\n\t}\n\t\n\t// Set returned value to key if it's empty or debugging is activated\n\tif (translated == null || translated == 'undefined' || translated == '' || _appSettingsObj.bDebug == 'true') {\n\t\tif (_appSettingsObj.bDebug == 'true' && bHasTranslation === false) {\n\t\t\tif (elmTagName === 'INPUT' || elmTagName === 'TEXTAREA' || elmTagName === 'TITLE') {\n\t\t\t\ttranslated = 'resource-key-missing: ' + key;\n\t\t\t} else {\n\t\t\t\ttranslated = '' + key + '';\n\t\t\t}\n\t\t} else if (_appSettingsObj.bDebug == 'true' && bHasTranslation === true) {\n\t\t\tif (elmTagName === 'INPUT' || elmTagName === 'TEXTAREA' || elmTagName === 'TITLE') {\n\t\t\t\ttranslated = 'resource-key-exists: ' + key;\n\t\t\t} else {\n\t\t\t\ttranslated = '' + key + '';\n\t\t\t}\n\t\t} else {\n\t\t\ttranslated = key;\n\t\t}\n\t\t\n\t}\n\t\n\treturn translated;\n}","function resetLocalStorage() {\n\t// Never clear or delete these key:\n\t// myCapitechLanguages\n\t// myCapitechLogin\n\t// myCapitechSettings\n\n\t// Reset keys\n\tsetLocalStorage('myCapitechAccessTokenExpires','');\n\tsetLocalStorage('myCapitechDimensionNames','');\n\tsetLocalStorage('myCapitechDutyWishFilter', {departmentIds:[-1],dutyTypeIds:[-1], displayAvaliableDutiesOnDaysIAlreadyHaveOtherDuties:false});\n\tsetLocalStorage('myCapitechDutyWishFilterValues', {departments:[],dutyTypes:[]});\n\tsetLocalStorage('myCapitechExternalLinks','');\n\tsetLocalStorage('myCapitechPermissionsAndRegistrationSetup','');\n\tsetLocalStorage('myCapitechTimeCategoryForManualAddition','');\n\tsetLocalStorage('myCapitechUnReadMessageCount','');\n\tsetLocalStorage('myCapitechUserSettings','');\n\n\t// Delete old unused keys\n\tremoveLocalStorage(\"myCapitechAccessToken\");\n\tremoveLocalStorage(\"myCapitechAuthorizeObj\");\n\tremoveLocalStorage(\"myCapitechLoginFormData\");\n}\n\nfunction getLocalStorage(key) {\n\tif (('localStorage' in window) && window.localStorage !== null) {\n\t\ttry {\n\t\t\treturn JSON.parse(localStorage.getItem(getLocalStoragePrefix() + key));\n\t\t} catch(err) {\n\t\t\treturn localStorage.getItem(getLocalStoragePrefix() + key);\n\t\t}\n\t} else {\n\t\talert('LocalStorage er ikke støttet!');\n\t}\n};\n\nfunction setLocalStorage(key, value) {\n\tif (('localStorage' in window) && window.localStorage !== null) {\n\t \tif (value instanceof Array || value instanceof Object) {\n\t\t\tlocalStorage.setItem(getLocalStoragePrefix() + key, JSON.stringify(value));\n\t\t} else {\n\t\t\tlocalStorage.setItem(getLocalStoragePrefix() + key, value);\n\t\t}\n\t} else {\n\t\talert('LocalStorage er ikke støttet!');\n\t}\n};\n\nfunction removeLocalStorage(key) {\n\tif (('localStorage' in window) && window.localStorage !== null) {\n\t\tlocalStorage.removeItem(getLocalStoragePrefix() + key);\n\t} else {\n\t\talert('LocalStorage er ikke støttet!');\n\t}\n};\n\nfunction getLocalStoragePrefix() {\n\tvar path = window.location.pathname;\n\tvar aPath = path.split('/');\n\tvar localStoragePath = aPath.slice(0, aPath.length - 1).join('');\n\treturn localStoragePath;\n}\n\nfunction clearAllLocalStorage() {\n\t// Backup application settings\n\tvar stampSettingsObj = getLocalStorage('stampSettings');\n\tvar myCapitechSettingsObj = getLocalStorage('myCapitechSettings');\n\t// Empty localStorage\n\tlocalStorage.clear();\n\t// Restore stampSettingsObj into localStorage\n\tsetLocalStorage('stampSettings', stampSettingsObj);\n\tsetLocalStorage('myCapitechSettings', myCapitechSettingsObj);\n}","// Prepends\n// -------------------------------------------\n// @codekit-prepend \"../../../release/bower_components/sprockets-modernizr/modernizr.js\";\n// @codekit-prepend \"../../../release/bower_components/jquery/dist/jquery.js\";\n// @codekit-prepend \"../../../release/bower_components/magnific-popup/dist/jquery.magnific-popup.js\";\n// @codekit-prepend \"../../../release/bower_components/bootstrap/dist/js/bootstrap.js\";\n// @codekit-prepend \"../../../release/bower_components/elementQuery/elementQuery.js\";\n// @codekit-prepend \"../../../release/bower_components/jquery-validation/dist/jquery.validate.js\";\n// @codekit-prepend \"../../../bower_components/select2/dist/js/select2.js\";\n// @codekit-prepend \"myCapitechApi.js\";\n// @codekit-append \"../localization.js\";\n// @codekit-append \"../browserValidation.js\";\n// @codekit-append \"../localStorage.js\";\n// @codekit-append \"../cookies.js\";\n\n// Appends\n// --------------------------------------------\n// @codekit-append \"data-duty-wish-form.js\";\n// @codekit-append \"index.js\";\n// @codekit-append \"page.js\";\n// @codekit-append \"navigation.js\";\n// @codekit-append \"component-permissions.js\";\n// @codekit-append \"component-login.js\";\n// @codekit-append \"component-unread-messages.js\";\n// @codekit-append \"component-navigation.js\";\n// @codekit-append \"component-calendar.js\";\n// @codekit-append \"component-settings.js\";\n// @codekit-append \"component-report.js\";\n// @codekit-append \"component-vacation-balance.js\";\n// @codekit-append \"component-flexitime-balance.js\";\n// @codekit-append \"component-incoming-messages.js\";\n// @codekit-append \"component-outgoing-messages.js\";\n// @codekit-append \"component-outgoing-messages-form.js\";\n// @codekit-append \"component-help.js\";\n// @codekit-append \"component-absence-form.js\";\n// @codekit-append \"component-absence-requests.js\";\n// @codekit-append \"component-flexitime.js\";\n// @codekit-append \"component-vacation.js\";\n// @codekit-append \"component-employee-information.js\";\n// @codekit-append \"component-change-password.js\";\n// @codekit-append \"component-filter-dutywish-department-dutytype.js\";\n// @codekit-append \"component-duty-wish-period.js\";\n\nvar _windowWidth = $(window).width();\nvar _windowHeight = $(window).height();\nvar _logoOffset = 0;\nvar _appSettingsObj = getLocalStorage('myCapitechSettings');\nvar _api;\nvar _username;\nvar _clients;\nvar _loaderArray = [];\nvar _myCapitechIdentifier = '{gulp-my-capitech-identifier}';\nvar _myCapitechVersion = '{gulp-my-capitech-version}';\nvar _applicationInterval;\nvar _lastActivity = new Date();\n\n$(document).ready(function() {\n\t$(window).scroll(function() {\n\t\tif (_windowWidth <= 799) {\n\t\t\t$('.mobile-nav-wrapper').css({\n\t\t\t\theight: 0,\n\t\t\t\topacity: 0\n\t\t\t});\n\t\t\t$('.mobile-menu').removeClass('open');\n\t\t}\n\t});\n\t\n\t$(window).resize(function() {\n\t\t_windowWidth = $(window).width();\n\t\t_windowHeight = $(window).height();\n\t\t// _windowWidth\n\t\tif (_windowWidth <= 799) {\n\t\t\t$('.mobile-nav-wrapper').css({\n\t\t\t\theight: 0,\n\t\t\t\topacity: 0\n\t\t\t});\n\t\t\t$('.mobile-menu').removeClass('open');\n\t\t} else {\n\t\t\t$('.mobile-nav-wrapper').css({\n\t\t\t\theight: 'auto',\n\t\t\t\topacity: 1\n\t\t\t});\n\t\t}\n\t});\n\t\n\t// Use FastClick together with knockout\n\twindow.ko.bindingHandlers.fastclick = {\n\t\tinit: function(element, valueAccessor) {\n\t\t\t$(element).off('click').on('click', function() {\n\t\t\t\tvar $this = $(this);\n\t\t\t\t$this.attr('disabled','disabled').addClass('ct-disable-click');\n\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t$this.removeAttr('disabled').removeClass('ct-disable-click');\n\t\t\t\t}, 1000);\n\t\t\t});\n\t\t\tif (!$(element).hasClass('ct-disable-click')) {\n\t\t\t\tFastClick.attach(element);\n\t\t\t\treturn ko.bindingHandlers.click.init.apply(this, arguments);\n\t\t\t}\n\t\t}\n\t};\n\t\n\twindow.ko.bindingHandlers.preventBubble = {\n\t\tinit: function(element, valueAccessor) {\n\t\t\tvar eventName = ko.utils.unwrapObservable(valueAccessor());\n\t\t\tko.utils.registerEventHandler(element, eventName, function(event) {\n\t\t\t\tevent.cancelBubble = true;\n\t\t\t\tif (event.stopPropagation) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t};\n\n\tvar userSettings = getLocalStorage(\"myCapitechUserSettings\");\n\tvar inputTimeType = userSettings && userSettings.useNativeTimeInput && userSettings.useNativeTimeInput === 'false' ? 'text' : 'time';\n\twindow.ko.components.register('time-edit', {\n\t\tviewModel: function(params) {\n\t\t\tself = this;\n\t\t\tthis.time = params.time;\n\t\t\tthis.id = params.id ? params.id : \"id\" + new Date().getTime() + \"-\" + (Math.floor(Math.random() * 10000));\n\t\t\tthis.required = params.required !== undefined ? params.required : false;\n\t\t\tthis.enabled = params.enabled !== undefined ? params.enabled : true;\n\t\t\t\n\t\t\tthis.validateTimeValue = function(_this, evt) {\n\t\t\t\tvar hourAsString = _this.time();\n\n\t\t\t\tif (!hourAsString || hourAsString.length === 0) {\n\t\t\t\t\t// Info: The native input time elements can contain a value that the user can se (UI), but that will not be registered (eg: 18:__),\n\t\t\t\t\t// we need to reset the time component if the value is an empty string to be sure that the value will be cleared from the UI.\n\t\t\t\t\t_this.time(\"00:00\");\n\t\t\t\t\t_this.time(\"\");\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tif (hourAsString.indexOf(\":\") === -1) {\n\t\t\t\t\tif (hourAsString.length === 1) {\n\t\t\t\t\t\thourAsString = \"0\" + hourAsString + \"00\";\n\t\t\t\t\t} else if (hourAsString.length === 2) {\n\t\t\t\t\t\thourAsString = hourAsString + \"00\";\n\t\t\t\t\t} else if (hourAsString.length === 3) {\n\t\t\t\t\t\thourAsString = \"0\" + hourAsString;\n\t\t\t\t\t}\n\t\t\t\t\tvar parts = hourAsString.split(\"\");\n\t\t\t\t\tparts.splice(2, 0, \":\");\n\t\t\t\t\thourAsString = parts.join(\"\");\n\t\t\t\t}\n\n\t\t\t\tif (hourAsString === \"24:00\") {\n\t\t\t\t\thourAsString = \"00:00\";\n\t\t\t\t\t_this.time(\"00:00\");\n\t\t\t\t}\n\n\t\t\t\tvar hoursParts = hourAsString.split(':');\n\t\t\t\tvar hours = isNaN(parseInt(hoursParts[0])) ? \"0\" : parseInt(hoursParts[0]);\n\t\t\t\tvar minutes = isNaN(parseInt(hoursParts[1])) ? \"0\" : parseInt(hoursParts[1]);\n\t\t\t\tvar isValid = true;\n\n\t\t\t\tif (isNaN(parseInt(hoursParts[0])) || isNaN(parseInt(hoursParts[1]))) {\n\t\t\t\t\tisValid = false;\n\t\t\t\t} else {\n\t\t\t\t\tif (hours < 0 || hours > 23) {\n\t\t\t\t\t\tisValid = false;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tif (isValid === true && (minutes < 0 || minutes > 59)) {\n\t\t\t\t\t\tisValid = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\n\t\t\t\tif (isValid === false) {\n\t\t\t\t\t_this.time(\"\");\n\t\t\t\t} else {\n\t\t\t\t\t_this.time(addTimePadding(hours, minutes));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfunction addTimePadding(hours, minutes) {\n\t\t\t\tvar hoursAsString = hours.toString();\n\t\t\t\tvar minutesAsString = minutes.toString();\n\t\t\t\tif (hoursAsString.length === 1) {\n\t\t\t\t\thoursAsString = \"0\" + hoursAsString;\n\t\t\t\t}\n\t\t\t\tif (minutesAsString.length === 1) {\n\t\t\t\t\tminutesAsString = \"0\" + minutesAsString;\n\t\t\t\t}\n\t\t\t\treturn hoursAsString + \":\" + minutesAsString;\n\t\t\t}\n\t\t},\n\t\ttemplate: ''\n\t});\n\n\t\n\t// Workaround to get select2 working together with magnific popup\n\n\t// For Select2 v.4.x\n\t$.magnificPopup.instance._onFocusIn = function(e) {\n\t\t// Do nothing if target element is select2 input\n\t\tif($(e.target).hasClass('select2-search__field')) {\n\t\t\treturn true;\n\t\t}\n\t\t// Else call parent method\n\t\t$.magnificPopup.proto._onFocusIn.call(this,e);\n\t}\n\t\n\t// For Select2 v.3.5.x\n\t// $.magnificPopup.instance._onFocusIn = function(e) {\n\t// \t// Do nothing if target element is select2 input\n\t// \tif( $(e.target).hasClass('select2-input') ) {\n\t// \t\treturn true;\n\t// \t}\n\t// \t// Else call parent method\n\t// \t$.magnificPopup.proto._onFocusIn.call(this,e);\n\t// };\n\n\t// Custom alias for input mask\n\tInputmask.extendAliases({\n\t\t'capitechHourAndMinutes': {\n\t\t\tautoUnmask: false,\n\t\t\tmask: \"99:99\",\n\t\t\tplaceholder: 'XX:XX',\n\t\t\tclearIncomplete: true,\n\t\t\tinsertMode: false,\n\t\t\toncomplete: function(e) {\n\t\t\t\tvar hourAsString = $(e.currentTarget).val();\n\t\t\t\tif (hourAsString === \"24:00\") {\n\t\t\t\t\thourAsString = \"00:00\";\n\t\t\t\t\t$(e.currentTarget).val(\"00:00\");\n\t\t\t\t}\n\t\t\t\tvar hoursParts = hourAsString.split(':');\n\t\t\t\tvar hours = parseInt(hoursParts[0]);\n\t\t\t\tvar minutes = parseInt(hoursParts[1]);\n\t\t\t\tvar isValid = true;\n\n\t\t\t\tif (hours < 0 || hours > 23) {\n\t\t\t\t\tisValid = false;\n\t\t\t\t}\n\t\t\t\tif (isValid === true && (minutes < 0 || minutes > 59)) {\n\t\t\t\t\tisValid = false;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif (isValid === false) {\n\t\t\t\t\t$(e.currentTarget).val(\"\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\t\n\t// Validate browser / client\n\tvalidateClient();\n\t\n\t// Init application settings\n\tcapitechInitSettings();\n\t\n\t// Init API\n\tcapitechInitAPI();\n\t\n\t// Fallbacks / polyfills\n\tif (Modernizr.inputtypes.date === false) {\n\t\t$('.ct-date-input').datepicker({\n\t\t\tformat: \"yyyy-mm-dd\",\n\t\t\tweekStart: moment().startOf('week').format('E'),\n\t\t\ttodayBtn: \"linked\",\n\t\t\tlanguage: _appSettingsObj.languageShort,\n\t\t\ttodayHighlight: true,\n\t\t\tautoclose: true\n\t\t});\n\t}\n\t\n\t// Fastclick\n\tFastClick.attach(document.body);\n\t\n\t// Run applicationLoop immediately and start the application loop interval\n\tapplicationLoop();\n\t_applicationInterval = setInterval(function() {applicationLoop()}, 10000);\n\n\tif($('body.index').length > 0) {\n\t\tresetLocalStorage();\n\t} else {\n\t\tloadExternalAssets();\n\t}\n\t\n\t// Get translations\n\tgetTranslationFromLocalStorage();\n\t\n\t// Initialize components\n\tinitializeComponents();\n\t// Translate\n\ttranslateGUI();\n\t\n\t$('.logout').click(function(evt) {\n\t\tloaderIndicator(true);\n\t\tevt.preventDefault();\n\t\tlogoutUser();\n\t});\n});\n\nfunction logoutUser() {\n\tvar loginType = getLocalStorage(\"loginType\");\n\tvar simployerSignOutUrl = getLocalStorage(\"signOutUrl\");\n\tif (loginType !== \"simployerSaam\") {\n\t\t_api.signOut_POST(\n\t\t\t// success\n\t\t\tfunction (data, textStatus, jqXHR) {\n\t\t\t},\n\t\t\t// error\n\t\t\tfunction (jqXHR, textStatus, errorThrown) {\n\t\t\t},\n\t\t\t// params\n\t\t\tgetCookie(\"ACCESSTOKEN_COOKIE_NAME\")\n\t\t);\n\t\teraseCookie(REFRESHTOKEN_COOKIE_NAME);\n\t\teraseCookie(ACCESSTOKEN_COOKIE_NAME);\n\t\tresetLocalStorage();\n\t\twindow.location.href = 'index.htm?v={gulp-my-capitech-version}';\n\t} else {\n\t\twindow.location.replace(simployerSignOutUrl);\n\t}\n}\n\nfunction capitechInitSettings() {\n\tvar userLang = getUserLanguage();\n\tif(_appSettingsObj === undefined || _appSettingsObj === null || _appSettingsObj === \"undefined\" || typeof _appSettingsObj !== \"object\") {\n\t\t_appSettingsObj = {\n\t\t\tapiURL: getProjectURL(window.location.pathname),\n\t\t\tlanguage: userLang\n\t\t}\n\t}\n\tif (_appSettingsObj.language === undefined || _appSettingsObj.language.length === 0) {\n\t\t// If language is empty, set to browser language\n\t\t_appSettingsObj.language = userLang;\n\t}\n\tif (getURLVariable('debug') !== undefined) {\n\t\t_appSettingsObj.bDebug = getURLVariable('debug');\n\t}\n\t_appSettingsObj.languageShort = getShortLanguageCode(_appSettingsObj.language);\n\t\n\tif (_appSettingsObj.languageShort == \"no\") {\n\t\tmoment.updateLocale(\"nb\", { weekdaysShort: 'søn_man_tir_ons_tor_fre_lør'.split('_') });\n\t}\n\n\tsetLocalStorage('myCapitechSettings', _appSettingsObj);\n\tmoment.locale(_appSettingsObj.language);\n}\n\nfunction getDefaultClientID() {\n\tvar clientId = \"\";\n\tvar clientIdFromCookie = getCookie(CLIENTID_COOKIE_NAME);\n\t\n\tif (clientIdFromCookie && clientIdFromCookie.length > 0) {\n\t\tclientId = clientIdFromCookie;\n\t}\n\t\n\treturn clientId;\n}\n\nfunction getUserLanguage(languageString) {\n\tvar language = languageString || navigator.language || navigator.userLanguage;\n\t\n\tif ($.inArray(language.split('-')[0], ['nb','nn','nb-NO','nn-NO', 'norsk', 'norwegian']) > -1) {\n\t\tlanguage = 'nb-NO';\n\t} else {\n\t\tlanguage = 'en-EN';\n\t}\n\treturn language;\n}\n\nfunction getShortLanguageCode(languageCode) {\n\treturn languageCode.split('-').pop().toLowerCase();\n}\n\nfunction getTranslationFromLocalStorage() {\n\t// If localStorage not is set we need to set it\n\tif (!getLocalStorage('myCapitechLanguages') || window.location.pathname.indexOf('.htm') === -1 || window.location.pathname.indexOf('index.htm') > 0) {\n\t\tsetLocalStorage('myCapitechLanguages', languages);\n\t}\n\ttranslateDocumentTitle();\n\tlanguages[_appSettingsObj.language] = getLocalStorage('myCapitechLanguages')[_appSettingsObj.language];\n}\n\nfunction translateDocumentTitle() {\n\tdocument.title = getResource('app.name', 'My Capitech', 'title');\n}\n\nfunction getProjectURL(path) {\n\tvar aPath = path.split('/');\n\treturn window.location.protocol + '//' + window.location.host + aPath.slice(0, aPath.length - 3).join('/') + '/';\n}\n\nfunction capitechInitAPI() {\n\t_api = new Capitech.Api.WebtidApi(_appSettingsObj.apiURL);\n}\n\nfunction handleServerErrorMessage(message) {\n\tvar retMessage = '';\n\tif (message.substring(0, 17) == 'LocalizationKey: ') {\n\t\tlocalizationKey = message.slice(17);\n\t\tretMessage = getResource(localizationKey);\n\t\tif (localizationKey === \"Errors_Authorization_401\" || localizationKey === \"Errors_InvalidAccessToken\") {\n\t\t\tsweetAlert({\n\t\t\t\ttitle: getResource('app.informationTitle', '401 Unauthorized'),\n\t\t\t\ttext: getResource(retMessage, 'User is not authorized, you need to log in.'),\n\t\t\t\ttype: \"error\",\n\t\t\t\tcloseOnConfirm: true\n\t\t\t}, function() {\n\t\t\t\tlogoutUser();\n\t\t\t});\n\t\t\tthrow \"401 Unauthorized!\";\n\t\t} else {\n\t\t\treturn retMessage;\n\t\t}\n\t} else {\n\t\treturn message;\n\t}\n}\n\nfunction applicationLoop() {\n\tvar accessTokenExpire;\n\tvar nowDateTime = moment();\n\tvar millisecondsToLogout;\n\t// Run on all pages except the index page\n\tif($('body.index').length === 0) {\n\t\taccessTokenExpire = moment(getLocalStorage('myCapitechAccessTokenExpires'));\n\t\tmillisecondsToLogout = accessTokenExpire.diff(nowDateTime);\n\t\t\n\t\t// If accessToken has expired, log out\n\t\tif (!millisecondsToLogout || millisecondsToLogout <= 0) {\n\t\t\twindow.location.href = 'index.htm?v={gulp-my-capitech-version}';\n\t\t}\n\t\t// If accessToken is about to expire, refresh if eq or less than 1 minutes / 60000 ms\n\t\tif (millisecondsToLogout <= 60000) {\n\t\t\trefreshAccessToken();\n\t\t}\n\t}\n\n\tfunction checkForNewVersion(versionNumber) {\n\t\tvar currentServerVersion = getLocalStorage(\"myCapitechServerVersion\");\n\t\tvar bDisplayUpdateMessage = false;\n\t\tvar bMajorUpdate = false;\n\n\t\tif (versionNumber && currentServerVersion && currentServerVersion.length > 0 && versionNumber !== currentServerVersion) {\n\t\t\tsetLocalStorage(\"myCapitechServerVersion\", versionNumber);\n\t\t\tbDisplayUpdateMessage = true;\n\t\t\tif ($('body.index').length === 0 && versionNumber.split(\".\")[0] - currentServerVersion.split(\".\")[0] > 0) {\n\t\t\t\tbMajorUpdate = true;\n\t\t\t}\n\t\t}\n\n\t\tif (!currentServerVersion || currentServerVersion.length === 0) {\n\t\t\tsetLocalStorage(\"myCapitechServerVersion\", versionNumber);\n\t\t}\n\n\t\tif (bDisplayUpdateMessage) {\n\t\t\tif (bMajorUpdate) {\n\t\t\t\t// Log out user\n\t\t\t\tsweetAlert({\n\t\t\t\t\ttitle: '',\n\t\t\t\t\ttext: getResource(\"app.newVersionInfo\", \"My Capitech has just been updated. Click update to log out and get access to the new version. If you don't want to update now, you can log out to get the newest version later.\"),\n\t\t\t\t\tshowCancelButton: true,\n\t\t\t\t\tconfirmButtonText: getResource('app.update', 'Update'),\n\t\t\t\t\tcancelButtonText: getResource('app.cancel', 'Cancel')\n\t\t\t\t}, function(isConfirm) {\n\t\t\t\t\tif(isConfirm) {\n\t\t\t\t\t\twindow.location.href = \"./\";\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tsweetAlert({\n\t\t\t\t\ttitle: '',\n\t\t\t\t\ttext: getResource(\"app.newVersionInfo\", \"My Capitech has just been updated. Click update to get the updated version. If you don't want to update now, you can refresh the page later.\"),\n\t\t\t\t\tshowCancelButton: true,\n\t\t\t\t\tconfirmButtonText: getResource('app.reload', 'Update'),\n\t\t\t\t\tcancelButtonText: getResource('app.cancel', 'Cancel')\n\t\t\t\t}, function(isConfirm) {\n\t\t\t\t\tif(isConfirm) {\n\t\t\t\t\t\tlocation.reload();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\t// getServerVersion(checkForNewVersion);\n}\n\nfunction loadExternalAssets() {\n\tloadTheme();\n\tvar simployerCSSURL = getLocalStorage(\"simployerGlobalMenuCssUrl\");\n\tloadCSS(simployerCSSURL, \"simployer-global-menu-css\");\n\t\n\tif (getLocalStorage(\"loginType\") === \"simployerSaam\") {\n\t\tvar simployerJSURL = getLocalStorage(\"simployerGlobalMenuJsUrl\");\n\t\tsimployerJSURL = simployerJSURL.replace(\"{SCI}\", getCookie(SIMPLOYER_SCI_COOKIE_NAME));\n\t\tsimployerJSURL = simployerJSURL.replace(\"{APPID}\", getCookie(SIMPLOYER_APPID_COOKIE_NAME));\n\t\tsimployerJSURL = simployerJSURL.replace(\"{CULTURECODE}\", _appSettingsObj.language);\n\n\t\tloadJS(simployerJSURL);\n\t}\n}\n\nfunction loadTheme() {\n\tvar themeCSSURL = \"./css/style-\" + getLocalStorage(\"myCapitechTheme\") + \".css?v={gulp-my-capitech-version}\";\n\tloadCSS(\n\t\tthemeCSSURL,\n\t\t\"style-theme-\" + getLocalStorage(\"simployerGlobalMenuCssUrl\"),\n\t\tfunction() {\n\t\t\t// Add\n\t\t\tsetTimeout(function() {\n\t\t\t\t$(\"#stylesheet-main\").remove()\n\t\t\t}, 250);\n\t\t}\n\t);\n}\n\nfunction getServerVersion(callback) {\n\tvar success = function success(data, textStatus, jqXHR) {\n\t\tif (data.success && data.content && data.content.length > 0) {\n\t\t\tcallback(data.content[0]);\n\t\t} else {\n\t\t\tcallback(undefined);\n\t\t}\n\t};\n\tvar error = function error(jqXHR, textStatus, errorThrown) {\n\t\tcallback(undefined);\n\t};\n\t_api.getServerVersion_GET(success, error);\n}\n\nfunction refreshAccessToken() {\n\tvar refreshToken = getCookie(REFRESHTOKEN_COOKIE_NAME);\n\tvar success = function success(data, textStatus, jqXHR) {\n\t\tif (data.success == true && data.content.length === 1) {\n\t\t\tpersistTokens(data.content[0]);\n\t\t\tsetLocalStorage('myCapitechAccessTokenExpires', data.content[0].accessTokenExpires);\n\t\t} else {\n\t\t\tloaderIndicator(false);\n\t\t\tsweetAlert(getResource('app.informationTitle'), handleServerErrorMessage(data.displayErrorMessage), \"error\");\n\t\t}\n\t};\n\tvar error = function error(jqXHR, textStatus, errorThrown) {\n\t\tloaderIndicator(false);\n\t\tsweetAlert(\"Error\", errorThrown, \"error\");\n\t};\n\t_api.refreshAuthorization_POST(success, error, refreshToken);\n}\n\n// Helpers\n// ---------------------------------------------------------\nfunction validateClient() {\n\tbSupportLocalStorage();\n}\n\nfunction initializeComponents($parentElm) {\n\tif(typeof($parentElm)==='undefined') $parentElm = $('body');\n\t$parentElm.find('*[data-component]').each(function(index, obj) {\n\t\t// console.log('-------------- [data-component: ' + $(obj).data('component') + '] ------------------');\n\t\tinitializeComponent(this);\n\t});\n}\n\nfunction initializeComponent(obj) {\n\tvar $obj = $(obj);\n\ttry {\n\t\t$obj[$obj.data('component')]();\n\t\t// console.log($obj.data('component'));\n\t\t// console.log($obj);\n\t\t// console.log('-----------initializeComponent (finished)--------------');\n\t} catch (err) {\n\t\t// console.log('-----------initializeComponent (finished with error) --------------');\n\t\t// console.log(err);\n\t}\n}\n\nfunction getURLVariable(variable) {\n\tvar query = window.location.search.substring(1);\n\tvar vars = query.split(\"&\");\n\tfor (var i=0;i -1;\n}\n\nfunction loaderIndicator(bShow) {\n\tif(typeof(bShow) === 'undefined') bShow = true;\n\t\n\tvar $body = $('body');\n\t\n\tif (bShow) {\n\t\t_loaderArray.push(new Date);\n\t} else {\n\t\t_loaderArray.shift();\n\t}\n\t\n\tif (_loaderArray.length === 1) {\n\t\t$body.toggleClass(\"loading\", true);\n\t}\n\tif (_loaderArray.length === 0) {\n\t\tsetTimeout(function () {\n\t\t\t$body.toggleClass(\"loading\", false);\n\t\t}, 250);\n\t}\n}\n\nfunction displayAjaxErrorAlert(jqXHR, bShowCancel, cancelCallback) {\n\tif (typeof(jqXHR)==='undefined') jqXHR = {statusText: \"error\", responseJSON:{displayErrorMessage:\"\", serverErrorMessage:\"\"}};\n\tif (typeof(bShowCancel)==='undefined') bShowCancel = false;\n\tif (typeof(cancelCallback)==='undefined') cancelCallback = function() {};\n\t\n\tvar title = getResource('app.systemErrorTitle')\n\tvar text = getResource('app.systemErrorMsg');\n\tvar type = 'error';\n\t\n\t// Hide loader\n\tloaderIndicator(false);\n\t\n\tif (jqXHR.statusText == 'timeout') {\n\t\ttitle = getResource('app.timeoutErrorTitle', 'License information');\n\t\ttext = getResource('app.timeoutErrorMsg', 'Invalid system license.');\n\t\ttype = 'warning';\n\t} else if(jqXHR.hasOwnProperty('responseJSON')){\n\t\tif (jqXHR.responseJSON.displayErrorMessage == 'Access denied.' && jqXHR.responseJSON.serverErrorMessage == 'Invalid system license.') {\n\t\t\ttitle = getResource('app.licenseTitle');\n\t\t\ttext = getResource('app.licenseInvalidText');\n\t\t\ttype = 'warning';\n\t\t}\n\t}\n\t\n\tsweetAlert({\n\t\ttitle: title,\n\t\ttext: text,\n\t\ttype: type,\n\t\tshowCancelButton: bShowCancel,\n\t\tconfirmButtonText: getResource('app.tryAgainBtn'),\n\t\tcancelButtonText: getResource('app.settingsBtn')\n\t}, function(isConfirm) {\n\t\tif(isConfirm) {\n\t\t\tsetTimeout(function () {\n\t\t\t\tlocation.reload();\n\t\t\t}, 750);\n\t\t\t\n\t\t} else {\n\t\t\t$('.ct-settings').trigger('click');\n\t\t}\n\t});\n}\n\nfunction loweCaseObjectKeys(obj) {\n\tvar keys = Object.keys(obj);\n\tvar newObj = {};\n\tvar n = keys.length;\n\twhile (n--) {\n\t\tvar key = keys[n];\n\t\tnewObj[key.toLowerCase()] = obj[key];\n\t}\n\treturn newObj;\n}\n\nfunction validateEmailAddress(email) {\n\ttry {\n\t\tvar emailCheck = /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i;\n\t\treturn emailCheck.test(email);\n\t} catch (error) {\n\t\treturn false;\n\t}\n}\n\nfunction downloadLanguageBundle() {\n\tvar data = JSON.stringify(getLocalStorage(\"myCapitechLanguages\"));\n\tvar filename = \"my-capitech-language-bundle.json\";\n\tvar type = \"application/json\";\n\tvar file = new Blob([data], {type: type});\n\tif (window.navigator.msSaveOrOpenBlob) // IE10+\n\t\twindow.navigator.msSaveOrOpenBlob(file, filename);\n\telse { // Others\n\t\tvar a = document.createElement(\"a\"),\n\t\t\t\turl = URL.createObjectURL(file);\n\t\ta.href = url;\n\t\ta.download = filename;\n\t\tdocument.body.appendChild(a);\n\t\ta.click();\n\t\tsetTimeout(function() {\n\t\t\tdocument.body.removeChild(a);\n\t\t\twindow.URL.revokeObjectURL(url); \n\t\t}, 0); \n\t}\n}\n\nfunction loadJS(url, callbackFn) {\n\tvar scriptElement = document.createElement('script');\n\tscriptElement.src = url;\n\n\tif (callbackFn) {\n\t\tscriptElement.onload = callbackFn;\n\t\tscriptElement.onreadystatechange = callbackFn;\n\t}\n\n\tdocument.body.appendChild(scriptElement);\n};\n\nfunction loadCSS(url, id, callbackFn){\n\tvar styleElement = document.createElement(\"link\");\n\n\tstyleElement.setAttribute(\"rel\", \"stylesheet\");\n\tstyleElement.setAttribute(\"type\", \"text/css\");\n\tstyleElement.setAttribute(\"href\", url);\n\n\tif (id) {\n\t\tstyleElement.setAttribute(\"id\", id);\n\t}\n\n\tif (callbackFn) {\n\t\tstyleElement.onload = callbackFn;\n\t\tstyleElement.onreadystatechange = callbackFn;\n\t}\n\n\tdocument.getElementsByTagName(\"head\")[0].appendChild(styleElement);\n}\n\nfunction toggleClass(idToActivate, activeClassName) {\n\t$(\"#\" + idToActivate).toggleClass(activeClassName);\n}","/*!\n * Bootstrap v3.2.0 (http://getbootstrap.com)\n * Copyright 2011-2014 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n\nif (typeof jQuery === 'undefined') { throw new Error('Bootstrap\\'s JavaScript requires jQuery') }\n\n/* ========================================================================\n * Bootstrap: transition.js v3.2.0\n * http://getbootstrap.com/javascript/#transitions\n * ========================================================================\n * Copyright 2011-2014 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)\n // ============================================================\n\n function transitionEnd() {\n var el = document.createElement('bootstrap')\n\n var transEndEventNames = {\n WebkitTransition : 'webkitTransitionEnd',\n MozTransition : 'transitionend',\n OTransition : 'oTransitionEnd otransitionend',\n transition : 'transitionend'\n }\n\n for (var name in transEndEventNames) {\n if (el.style[name] !== undefined) {\n return { end: transEndEventNames[name] }\n }\n }\n\n return false // explicit for ie8 ( ._.)\n }\n\n // http://blog.alexmaccaw.com/css-transitions\n $.fn.emulateTransitionEnd = function (duration) {\n var called = false\n var $el = this\n $(this).one('bsTransitionEnd', function () { called = true })\n var callback = function () { if (!called) $($el).trigger($.support.transition.end) }\n setTimeout(callback, duration)\n return this\n }\n\n $(function () {\n $.support.transition = transitionEnd()\n\n if (!$.support.transition) return\n\n $.event.special.bsTransitionEnd = {\n bindType: $.support.transition.end,\n delegateType: $.support.transition.end,\n handle: function (e) {\n if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)\n }\n }\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: alert.js v3.2.0\n * http://getbootstrap.com/javascript/#alerts\n * ========================================================================\n * Copyright 2011-2014 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // ALERT CLASS DEFINITION\n // ======================\n\n var dismiss = '[data-dismiss=\"alert\"]'\n var Alert = function (el) {\n $(el).on('click', dismiss, this.close)\n }\n\n Alert.VERSION = '3.2.0'\n\n Alert.prototype.close = function (e) {\n var $this = $(this)\n var selector = $this.attr('data-target')\n\n if (!selector) {\n selector = $this.attr('href')\n selector = selector && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n }\n\n var $parent = $(selector)\n\n if (e) e.preventDefault()\n\n if (!$parent.length) {\n $parent = $this.hasClass('alert') ? $this : $this.parent()\n }\n\n $parent.trigger(e = $.Event('close.bs.alert'))\n\n if (e.isDefaultPrevented()) return\n\n $parent.removeClass('in')\n\n function removeElement() {\n // detach from parent, fire event then clean up data\n $parent.detach().trigger('closed.bs.alert').remove()\n }\n\n $.support.transition && $parent.hasClass('fade') ?\n $parent\n .one('bsTransitionEnd', removeElement)\n .emulateTransitionEnd(150) :\n removeElement()\n }\n\n\n // ALERT PLUGIN DEFINITION\n // =======================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.alert')\n\n if (!data) $this.data('bs.alert', (data = new Alert(this)))\n if (typeof option == 'string') data[option].call($this)\n })\n }\n\n var old = $.fn.alert\n\n $.fn.alert = Plugin\n $.fn.alert.Constructor = Alert\n\n\n // ALERT NO CONFLICT\n // =================\n\n $.fn.alert.noConflict = function () {\n $.fn.alert = old\n return this\n }\n\n\n // ALERT DATA-API\n // ==============\n\n $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close)\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: button.js v3.2.0\n * http://getbootstrap.com/javascript/#buttons\n * ========================================================================\n * Copyright 2011-2014 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // BUTTON PUBLIC CLASS DEFINITION\n // ==============================\n\n var Button = function (element, options) {\n this.$element = $(element)\n this.options = $.extend({}, Button.DEFAULTS, options)\n this.isLoading = false\n }\n\n Button.VERSION = '3.2.0'\n\n Button.DEFAULTS = {\n loadingText: 'loading...'\n }\n\n Button.prototype.setState = function (state) {\n var d = 'disabled'\n var $el = this.$element\n var val = $el.is('input') ? 'val' : 'html'\n var data = $el.data()\n\n state = state + 'Text'\n\n if (data.resetText == null) $el.data('resetText', $el[val]())\n\n $el[val](data[state] == null ? this.options[state] : data[state])\n\n // push to event loop to allow forms to submit\n setTimeout($.proxy(function () {\n if (state == 'loadingText') {\n this.isLoading = true\n $el.addClass(d).attr(d, d)\n } else if (this.isLoading) {\n this.isLoading = false\n $el.removeClass(d).removeAttr(d)\n }\n }, this), 0)\n }\n\n Button.prototype.toggle = function () {\n var changed = true\n var $parent = this.$element.closest('[data-toggle=\"buttons\"]')\n\n if ($parent.length) {\n var $input = this.$element.find('input')\n if ($input.prop('type') == 'radio') {\n if ($input.prop('checked') && this.$element.hasClass('active')) changed = false\n else $parent.find('.active').removeClass('active')\n }\n if (changed) $input.prop('checked', !this.$element.hasClass('active')).trigger('change')\n }\n\n if (changed) this.$element.toggleClass('active')\n }\n\n\n // BUTTON PLUGIN DEFINITION\n // ========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.button')\n var options = typeof option == 'object' && option\n\n if (!data) $this.data('bs.button', (data = new Button(this, options)))\n\n if (option == 'toggle') data.toggle()\n else if (option) data.setState(option)\n })\n }\n\n var old = $.fn.button\n\n $.fn.button = Plugin\n $.fn.button.Constructor = Button\n\n\n // BUTTON NO CONFLICT\n // ==================\n\n $.fn.button.noConflict = function () {\n $.fn.button = old\n return this\n }\n\n\n // BUTTON DATA-API\n // ===============\n\n $(document).on('click.bs.button.data-api', '[data-toggle^=\"button\"]', function (e) {\n var $btn = $(e.target)\n if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')\n Plugin.call($btn, 'toggle')\n e.preventDefault()\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: carousel.js v3.2.0\n * http://getbootstrap.com/javascript/#carousel\n * ========================================================================\n * Copyright 2011-2014 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // CAROUSEL CLASS DEFINITION\n // =========================\n\n var Carousel = function (element, options) {\n this.$element = $(element).on('keydown.bs.carousel', $.proxy(this.keydown, this))\n this.$indicators = this.$element.find('.carousel-indicators')\n this.options = options\n this.paused =\n this.sliding =\n this.interval =\n this.$active =\n this.$items = null\n\n this.options.pause == 'hover' && this.$element\n .on('mouseenter.bs.carousel', $.proxy(this.pause, this))\n .on('mouseleave.bs.carousel', $.proxy(this.cycle, this))\n }\n\n Carousel.VERSION = '3.2.0'\n\n Carousel.DEFAULTS = {\n interval: 5000,\n pause: 'hover',\n wrap: true\n }\n\n Carousel.prototype.keydown = function (e) {\n switch (e.which) {\n case 37: this.prev(); break\n case 39: this.next(); break\n default: return\n }\n\n e.preventDefault()\n }\n\n Carousel.prototype.cycle = function (e) {\n e || (this.paused = false)\n\n this.interval && clearInterval(this.interval)\n\n this.options.interval\n && !this.paused\n && (this.interval = setInterval($.proxy(this.next, this), this.options.interval))\n\n return this\n }\n\n Carousel.prototype.getItemIndex = function (item) {\n this.$items = item.parent().children('.item')\n return this.$items.index(item || this.$active)\n }\n\n Carousel.prototype.to = function (pos) {\n var that = this\n var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active'))\n\n if (pos > (this.$items.length - 1) || pos < 0) return\n\n if (this.sliding) return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, \"slid\"\n if (activeIndex == pos) return this.pause().cycle()\n\n return this.slide(pos > activeIndex ? 'next' : 'prev', $(this.$items[pos]))\n }\n\n Carousel.prototype.pause = function (e) {\n e || (this.paused = true)\n\n if (this.$element.find('.next, .prev').length && $.support.transition) {\n this.$element.trigger($.support.transition.end)\n this.cycle(true)\n }\n\n this.interval = clearInterval(this.interval)\n\n return this\n }\n\n Carousel.prototype.next = function () {\n if (this.sliding) return\n return this.slide('next')\n }\n\n Carousel.prototype.prev = function () {\n if (this.sliding) return\n return this.slide('prev')\n }\n\n Carousel.prototype.slide = function (type, next) {\n var $active = this.$element.find('.item.active')\n var $next = next || $active[type]()\n var isCycling = this.interval\n var direction = type == 'next' ? 'left' : 'right'\n var fallback = type == 'next' ? 'first' : 'last'\n var that = this\n\n if (!$next.length) {\n if (!this.options.wrap) return\n $next = this.$element.find('.item')[fallback]()\n }\n\n if ($next.hasClass('active')) return (this.sliding = false)\n\n var relatedTarget = $next[0]\n var slideEvent = $.Event('slide.bs.carousel', {\n relatedTarget: relatedTarget,\n direction: direction\n })\n this.$element.trigger(slideEvent)\n if (slideEvent.isDefaultPrevented()) return\n\n this.sliding = true\n\n isCycling && this.pause()\n\n if (this.$indicators.length) {\n this.$indicators.find('.active').removeClass('active')\n var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)])\n $nextIndicator && $nextIndicator.addClass('active')\n }\n\n var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, \"slid\"\n if ($.support.transition && this.$element.hasClass('slide')) {\n $next.addClass(type)\n $next[0].offsetWidth // force reflow\n $active.addClass(direction)\n $next.addClass(direction)\n $active\n .one('bsTransitionEnd', function () {\n $next.removeClass([type, direction].join(' ')).addClass('active')\n $active.removeClass(['active', direction].join(' '))\n that.sliding = false\n setTimeout(function () {\n that.$element.trigger(slidEvent)\n }, 0)\n })\n .emulateTransitionEnd($active.css('transition-duration').slice(0, -1) * 1000)\n } else {\n $active.removeClass('active')\n $next.addClass('active')\n this.sliding = false\n this.$element.trigger(slidEvent)\n }\n\n isCycling && this.cycle()\n\n return this\n }\n\n\n // CAROUSEL PLUGIN DEFINITION\n // ==========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.carousel')\n var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option)\n var action = typeof option == 'string' ? option : options.slide\n\n if (!data) $this.data('bs.carousel', (data = new Carousel(this, options)))\n if (typeof option == 'number') data.to(option)\n else if (action) data[action]()\n else if (options.interval) data.pause().cycle()\n })\n }\n\n var old = $.fn.carousel\n\n $.fn.carousel = Plugin\n $.fn.carousel.Constructor = Carousel\n\n\n // CAROUSEL NO CONFLICT\n // ====================\n\n $.fn.carousel.noConflict = function () {\n $.fn.carousel = old\n return this\n }\n\n\n // CAROUSEL DATA-API\n // =================\n\n $(document).on('click.bs.carousel.data-api', '[data-slide], [data-slide-to]', function (e) {\n var href\n var $this = $(this)\n var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\\s]+$)/, '')) // strip for ie7\n if (!$target.hasClass('carousel')) return\n var options = $.extend({}, $target.data(), $this.data())\n var slideIndex = $this.attr('data-slide-to')\n if (slideIndex) options.interval = false\n\n Plugin.call($target, options)\n\n if (slideIndex) {\n $target.data('bs.carousel').to(slideIndex)\n }\n\n e.preventDefault()\n })\n\n $(window).on('load', function () {\n $('[data-ride=\"carousel\"]').each(function () {\n var $carousel = $(this)\n Plugin.call($carousel, $carousel.data())\n })\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: collapse.js v3.2.0\n * http://getbootstrap.com/javascript/#collapse\n * ========================================================================\n * Copyright 2011-2014 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // COLLAPSE PUBLIC CLASS DEFINITION\n // ================================\n\n var Collapse = function (element, options) {\n this.$element = $(element)\n this.options = $.extend({}, Collapse.DEFAULTS, options)\n this.transitioning = null\n\n if (this.options.parent) this.$parent = $(this.options.parent)\n if (this.options.toggle) this.toggle()\n }\n\n Collapse.VERSION = '3.2.0'\n\n Collapse.DEFAULTS = {\n toggle: true\n }\n\n Collapse.prototype.dimension = function () {\n var hasWidth = this.$element.hasClass('width')\n return hasWidth ? 'width' : 'height'\n }\n\n Collapse.prototype.show = function () {\n if (this.transitioning || this.$element.hasClass('in')) return\n\n var startEvent = $.Event('show.bs.collapse')\n this.$element.trigger(startEvent)\n if (startEvent.isDefaultPrevented()) return\n\n var actives = this.$parent && this.$parent.find('> .panel > .in')\n\n if (actives && actives.length) {\n var hasData = actives.data('bs.collapse')\n if (hasData && hasData.transitioning) return\n Plugin.call(actives, 'hide')\n hasData || actives.data('bs.collapse', null)\n }\n\n var dimension = this.dimension()\n\n this.$element\n .removeClass('collapse')\n .addClass('collapsing')[dimension](0)\n\n this.transitioning = 1\n\n var complete = function () {\n this.$element\n .removeClass('collapsing')\n .addClass('collapse in')[dimension]('')\n this.transitioning = 0\n this.$element\n .trigger('shown.bs.collapse')\n }\n\n if (!$.support.transition) return complete.call(this)\n\n var scrollSize = $.camelCase(['scroll', dimension].join('-'))\n\n this.$element\n .one('bsTransitionEnd', $.proxy(complete, this))\n .emulateTransitionEnd(350)[dimension](this.$element[0][scrollSize])\n }\n\n Collapse.prototype.hide = function () {\n if (this.transitioning || !this.$element.hasClass('in')) return\n\n var startEvent = $.Event('hide.bs.collapse')\n this.$element.trigger(startEvent)\n if (startEvent.isDefaultPrevented()) return\n\n var dimension = this.dimension()\n\n this.$element[dimension](this.$element[dimension]())[0].offsetHeight\n\n this.$element\n .addClass('collapsing')\n .removeClass('collapse')\n .removeClass('in')\n\n this.transitioning = 1\n\n var complete = function () {\n this.transitioning = 0\n this.$element\n .trigger('hidden.bs.collapse')\n .removeClass('collapsing')\n .addClass('collapse')\n }\n\n if (!$.support.transition) return complete.call(this)\n\n this.$element\n [dimension](0)\n .one('bsTransitionEnd', $.proxy(complete, this))\n .emulateTransitionEnd(350)\n }\n\n Collapse.prototype.toggle = function () {\n this[this.$element.hasClass('in') ? 'hide' : 'show']()\n }\n\n\n // COLLAPSE PLUGIN DEFINITION\n // ==========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.collapse')\n var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option)\n\n if (!data && options.toggle && option == 'show') option = !option\n if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.collapse\n\n $.fn.collapse = Plugin\n $.fn.collapse.Constructor = Collapse\n\n\n // COLLAPSE NO CONFLICT\n // ====================\n\n $.fn.collapse.noConflict = function () {\n $.fn.collapse = old\n return this\n }\n\n\n // COLLAPSE DATA-API\n // =================\n\n $(document).on('click.bs.collapse.data-api', '[data-toggle=\"collapse\"]', function (e) {\n var href\n var $this = $(this)\n var target = $this.attr('data-target')\n || e.preventDefault()\n || (href = $this.attr('href')) && href.replace(/.*(?=#[^\\s]+$)/, '') // strip for ie7\n var $target = $(target)\n var data = $target.data('bs.collapse')\n var option = data ? 'toggle' : $this.data()\n var parent = $this.attr('data-parent')\n var $parent = parent && $(parent)\n\n if (!data || !data.transitioning) {\n if ($parent) $parent.find('[data-toggle=\"collapse\"][data-parent=\"' + parent + '\"]').not($this).addClass('collapsed')\n $this[$target.hasClass('in') ? 'addClass' : 'removeClass']('collapsed')\n }\n\n Plugin.call($target, option)\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: dropdown.js v3.2.0\n * http://getbootstrap.com/javascript/#dropdowns\n * ========================================================================\n * Copyright 2011-2014 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // DROPDOWN CLASS DEFINITION\n // =========================\n\n var backdrop = '.dropdown-backdrop'\n var toggle = '[data-toggle=\"dropdown\"]'\n var Dropdown = function (element) {\n $(element).on('click.bs.dropdown', this.toggle)\n }\n\n Dropdown.VERSION = '3.2.0'\n\n Dropdown.prototype.toggle = function (e) {\n var $this = $(this)\n\n if ($this.is('.disabled, :disabled')) return\n\n var $parent = getParent($this)\n var isActive = $parent.hasClass('open')\n\n clearMenus()\n\n if (!isActive) {\n if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {\n // if mobile we use a backdrop because click events don't delegate\n $('
').insertAfter($(this)).on('click', clearMenus)\n }\n\n var relatedTarget = { relatedTarget: this }\n $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget))\n\n if (e.isDefaultPrevented()) return\n\n $this.trigger('focus')\n\n $parent\n .toggleClass('open')\n .trigger('shown.bs.dropdown', relatedTarget)\n }\n\n return false\n }\n\n Dropdown.prototype.keydown = function (e) {\n if (!/(38|40|27)/.test(e.keyCode)) return\n\n var $this = $(this)\n\n e.preventDefault()\n e.stopPropagation()\n\n if ($this.is('.disabled, :disabled')) return\n\n var $parent = getParent($this)\n var isActive = $parent.hasClass('open')\n\n if (!isActive || (isActive && e.keyCode == 27)) {\n if (e.which == 27) $parent.find(toggle).trigger('focus')\n return $this.trigger('click')\n }\n\n var desc = ' li:not(.divider):visible a'\n var $items = $parent.find('[role=\"menu\"]' + desc + ', [role=\"listbox\"]' + desc)\n\n if (!$items.length) return\n\n var index = $items.index($items.filter(':focus'))\n\n if (e.keyCode == 38 && index > 0) index-- // up\n if (e.keyCode == 40 && index < $items.length - 1) index++ // down\n if (!~index) index = 0\n\n $items.eq(index).trigger('focus')\n }\n\n function clearMenus(e) {\n if (e && e.which === 3) return\n $(backdrop).remove()\n $(toggle).each(function () {\n var $parent = getParent($(this))\n var relatedTarget = { relatedTarget: this }\n if (!$parent.hasClass('open')) return\n $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget))\n if (e.isDefaultPrevented()) return\n $parent.removeClass('open').trigger('hidden.bs.dropdown', relatedTarget)\n })\n }\n\n function getParent($this) {\n var selector = $this.attr('data-target')\n\n if (!selector) {\n selector = $this.attr('href')\n selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n }\n\n var $parent = selector && $(selector)\n\n return $parent && $parent.length ? $parent : $this.parent()\n }\n\n\n // DROPDOWN PLUGIN DEFINITION\n // ==========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.dropdown')\n\n if (!data) $this.data('bs.dropdown', (data = new Dropdown(this)))\n if (typeof option == 'string') data[option].call($this)\n })\n }\n\n var old = $.fn.dropdown\n\n $.fn.dropdown = Plugin\n $.fn.dropdown.Constructor = Dropdown\n\n\n // DROPDOWN NO CONFLICT\n // ====================\n\n $.fn.dropdown.noConflict = function () {\n $.fn.dropdown = old\n return this\n }\n\n\n // APPLY TO STANDARD DROPDOWN ELEMENTS\n // ===================================\n\n $(document)\n .on('click.bs.dropdown.data-api', clearMenus)\n .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })\n .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)\n .on('keydown.bs.dropdown.data-api', toggle + ', [role=\"menu\"], [role=\"listbox\"]', Dropdown.prototype.keydown)\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: modal.js v3.2.0\n * http://getbootstrap.com/javascript/#modals\n * ========================================================================\n * Copyright 2011-2014 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // MODAL CLASS DEFINITION\n // ======================\n\n var Modal = function (element, options) {\n this.options = options\n this.$body = $(document.body)\n this.$element = $(element)\n this.$backdrop =\n this.isShown = null\n this.scrollbarWidth = 0\n\n if (this.options.remote) {\n this.$element\n .find('.modal-content')\n .load(this.options.remote, $.proxy(function () {\n this.$element.trigger('loaded.bs.modal')\n }, this))\n }\n }\n\n Modal.VERSION = '3.2.0'\n\n Modal.DEFAULTS = {\n backdrop: true,\n keyboard: true,\n show: true\n }\n\n Modal.prototype.toggle = function (_relatedTarget) {\n return this.isShown ? this.hide() : this.show(_relatedTarget)\n }\n\n Modal.prototype.show = function (_relatedTarget) {\n var that = this\n var e = $.Event('show.bs.modal', { relatedTarget: _relatedTarget })\n\n this.$element.trigger(e)\n\n if (this.isShown || e.isDefaultPrevented()) return\n\n this.isShown = true\n\n this.checkScrollbar()\n this.$body.addClass('modal-open')\n\n this.setScrollbar()\n this.escape()\n\n this.$element.on('click.dismiss.bs.modal', '[data-dismiss=\"modal\"]', $.proxy(this.hide, this))\n\n this.backdrop(function () {\n var transition = $.support.transition && that.$element.hasClass('fade')\n\n if (!that.$element.parent().length) {\n that.$element.appendTo(that.$body) // don't move modals dom position\n }\n\n that.$element\n .show()\n .scrollTop(0)\n\n if (transition) {\n that.$element[0].offsetWidth // force reflow\n }\n\n that.$element\n .addClass('in')\n .attr('aria-hidden', false)\n\n that.enforceFocus()\n\n var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })\n\n transition ?\n that.$element.find('.modal-dialog') // wait for modal to slide in\n .one('bsTransitionEnd', function () {\n that.$element.trigger('focus').trigger(e)\n })\n .emulateTransitionEnd(300) :\n that.$element.trigger('focus').trigger(e)\n })\n }\n\n Modal.prototype.hide = function (e) {\n if (e) e.preventDefault()\n\n e = $.Event('hide.bs.modal')\n\n this.$element.trigger(e)\n\n if (!this.isShown || e.isDefaultPrevented()) return\n\n this.isShown = false\n\n this.$body.removeClass('modal-open')\n\n this.resetScrollbar()\n this.escape()\n\n $(document).off('focusin.bs.modal')\n\n this.$element\n .removeClass('in')\n .attr('aria-hidden', true)\n .off('click.dismiss.bs.modal')\n\n $.support.transition && this.$element.hasClass('fade') ?\n this.$element\n .one('bsTransitionEnd', $.proxy(this.hideModal, this))\n .emulateTransitionEnd(300) :\n this.hideModal()\n }\n\n Modal.prototype.enforceFocus = function () {\n $(document)\n .off('focusin.bs.modal') // guard against infinite focus loop\n .on('focusin.bs.modal', $.proxy(function (e) {\n if (this.$element[0] !== e.target && !this.$element.has(e.target).length) {\n this.$element.trigger('focus')\n }\n }, this))\n }\n\n Modal.prototype.escape = function () {\n if (this.isShown && this.options.keyboard) {\n this.$element.on('keyup.dismiss.bs.modal', $.proxy(function (e) {\n e.which == 27 && this.hide()\n }, this))\n } else if (!this.isShown) {\n this.$element.off('keyup.dismiss.bs.modal')\n }\n }\n\n Modal.prototype.hideModal = function () {\n var that = this\n this.$element.hide()\n this.backdrop(function () {\n that.$element.trigger('hidden.bs.modal')\n })\n }\n\n Modal.prototype.removeBackdrop = function () {\n this.$backdrop && this.$backdrop.remove()\n this.$backdrop = null\n }\n\n Modal.prototype.backdrop = function (callback) {\n var that = this\n var animate = this.$element.hasClass('fade') ? 'fade' : ''\n\n if (this.isShown && this.options.backdrop) {\n var doAnimate = $.support.transition && animate\n\n this.$backdrop = $('
')\n .appendTo(this.$body)\n\n this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {\n if (e.target !== e.currentTarget) return\n this.options.backdrop == 'static'\n ? this.$element[0].focus.call(this.$element[0])\n : this.hide.call(this)\n }, this))\n\n if (doAnimate) this.$backdrop[0].offsetWidth // force reflow\n\n this.$backdrop.addClass('in')\n\n if (!callback) return\n\n doAnimate ?\n this.$backdrop\n .one('bsTransitionEnd', callback)\n .emulateTransitionEnd(150) :\n callback()\n\n } else if (!this.isShown && this.$backdrop) {\n this.$backdrop.removeClass('in')\n\n var callbackRemove = function () {\n that.removeBackdrop()\n callback && callback()\n }\n $.support.transition && this.$element.hasClass('fade') ?\n this.$backdrop\n .one('bsTransitionEnd', callbackRemove)\n .emulateTransitionEnd(150) :\n callbackRemove()\n\n } else if (callback) {\n callback()\n }\n }\n\n Modal.prototype.checkScrollbar = function () {\n if (document.body.clientWidth >= window.innerWidth) return\n this.scrollbarWidth = this.scrollbarWidth || this.measureScrollbar()\n }\n\n Modal.prototype.setScrollbar = function () {\n var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)\n if (this.scrollbarWidth) this.$body.css('padding-right', bodyPad + this.scrollbarWidth)\n }\n\n Modal.prototype.resetScrollbar = function () {\n this.$body.css('padding-right', '')\n }\n\n Modal.prototype.measureScrollbar = function () { // thx walsh\n var scrollDiv = document.createElement('div')\n scrollDiv.className = 'modal-scrollbar-measure'\n this.$body.append(scrollDiv)\n var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth\n this.$body[0].removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n\n // MODAL PLUGIN DEFINITION\n // =======================\n\n function Plugin(option, _relatedTarget) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.modal')\n var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option)\n\n if (!data) $this.data('bs.modal', (data = new Modal(this, options)))\n if (typeof option == 'string') data[option](_relatedTarget)\n else if (options.show) data.show(_relatedTarget)\n })\n }\n\n var old = $.fn.modal\n\n $.fn.modal = Plugin\n $.fn.modal.Constructor = Modal\n\n\n // MODAL NO CONFLICT\n // =================\n\n $.fn.modal.noConflict = function () {\n $.fn.modal = old\n return this\n }\n\n\n // MODAL DATA-API\n // ==============\n\n $(document).on('click.bs.modal.data-api', '[data-toggle=\"modal\"]', function (e) {\n var $this = $(this)\n var href = $this.attr('href')\n var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\\s]+$)/, ''))) // strip for ie7\n var option = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())\n\n if ($this.is('a')) e.preventDefault()\n\n $target.one('show.bs.modal', function (showEvent) {\n if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown\n $target.one('hidden.bs.modal', function () {\n $this.is(':visible') && $this.trigger('focus')\n })\n })\n Plugin.call($target, option, this)\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: tooltip.js v3.2.0\n * http://getbootstrap.com/javascript/#tooltip\n * Inspired by the original jQuery.tipsy by Jason Frame\n * ========================================================================\n * Copyright 2011-2014 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // TOOLTIP PUBLIC CLASS DEFINITION\n // ===============================\n\n var Tooltip = function (element, options) {\n this.type =\n this.options =\n this.enabled =\n this.timeout =\n this.hoverState =\n this.$element = null\n\n this.init('tooltip', element, options)\n }\n\n Tooltip.VERSION = '3.2.0'\n\n Tooltip.DEFAULTS = {\n animation: true,\n placement: 'top',\n selector: false,\n template: '
',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n container: false,\n viewport: {\n selector: 'body',\n padding: 0\n }\n }\n\n Tooltip.prototype.init = function (type, element, options) {\n this.enabled = true\n this.type = type\n this.$element = $(element)\n this.options = this.getOptions(options)\n this.$viewport = this.options.viewport && $(this.options.viewport.selector || this.options.viewport)\n\n var triggers = this.options.trigger.split(' ')\n\n for (var i = triggers.length; i--;) {\n var trigger = triggers[i]\n\n if (trigger == 'click') {\n this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))\n } else if (trigger != 'manual') {\n var eventIn = trigger == 'hover' ? 'mouseenter' : 'focusin'\n var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout'\n\n this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))\n this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))\n }\n }\n\n this.options.selector ?\n (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) :\n this.fixTitle()\n }\n\n Tooltip.prototype.getDefaults = function () {\n return Tooltip.DEFAULTS\n }\n\n Tooltip.prototype.getOptions = function (options) {\n options = $.extend({}, this.getDefaults(), this.$element.data(), options)\n\n if (options.delay && typeof options.delay == 'number') {\n options.delay = {\n show: options.delay,\n hide: options.delay\n }\n }\n\n return options\n }\n\n Tooltip.prototype.getDelegateOptions = function () {\n var options = {}\n var defaults = this.getDefaults()\n\n this._options && $.each(this._options, function (key, value) {\n if (defaults[key] != value) options[key] = value\n })\n\n return options\n }\n\n Tooltip.prototype.enter = function (obj) {\n var self = obj instanceof this.constructor ?\n obj : $(obj.currentTarget).data('bs.' + this.type)\n\n if (!self) {\n self = new this.constructor(obj.currentTarget, this.getDelegateOptions())\n $(obj.currentTarget).data('bs.' + this.type, self)\n }\n\n clearTimeout(self.timeout)\n\n self.hoverState = 'in'\n\n if (!self.options.delay || !self.options.delay.show) return self.show()\n\n self.timeout = setTimeout(function () {\n if (self.hoverState == 'in') self.show()\n }, self.options.delay.show)\n }\n\n Tooltip.prototype.leave = function (obj) {\n var self = obj instanceof this.constructor ?\n obj : $(obj.currentTarget).data('bs.' + this.type)\n\n if (!self) {\n self = new this.constructor(obj.currentTarget, this.getDelegateOptions())\n $(obj.currentTarget).data('bs.' + this.type, self)\n }\n\n clearTimeout(self.timeout)\n\n self.hoverState = 'out'\n\n if (!self.options.delay || !self.options.delay.hide) return self.hide()\n\n self.timeout = setTimeout(function () {\n if (self.hoverState == 'out') self.hide()\n }, self.options.delay.hide)\n }\n\n Tooltip.prototype.show = function () {\n var e = $.Event('show.bs.' + this.type)\n\n if (this.hasContent() && this.enabled) {\n this.$element.trigger(e)\n\n var inDom = $.contains(document.documentElement, this.$element[0])\n if (e.isDefaultPrevented() || !inDom) return\n var that = this\n\n var $tip = this.tip()\n\n var tipId = this.getUID(this.type)\n\n this.setContent()\n $tip.attr('id', tipId)\n this.$element.attr('aria-describedby', tipId)\n\n if (this.options.animation) $tip.addClass('fade')\n\n var placement = typeof this.options.placement == 'function' ?\n this.options.placement.call(this, $tip[0], this.$element[0]) :\n this.options.placement\n\n var autoToken = /\\s?auto?\\s?/i\n var autoPlace = autoToken.test(placement)\n if (autoPlace) placement = placement.replace(autoToken, '') || 'top'\n\n $tip\n .detach()\n .css({ top: 0, left: 0, display: 'block' })\n .addClass(placement)\n .data('bs.' + this.type, this)\n\n this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)\n\n var pos = this.getPosition()\n var actualWidth = $tip[0].offsetWidth\n var actualHeight = $tip[0].offsetHeight\n\n if (autoPlace) {\n var orgPlacement = placement\n var $parent = this.$element.parent()\n var parentDim = this.getPosition($parent)\n\n placement = placement == 'bottom' && pos.top + pos.height + actualHeight - parentDim.scroll > parentDim.height ? 'top' :\n placement == 'top' && pos.top - parentDim.scroll - actualHeight < 0 ? 'bottom' :\n placement == 'right' && pos.right + actualWidth > parentDim.width ? 'left' :\n placement == 'left' && pos.left - actualWidth < parentDim.left ? 'right' :\n placement\n\n $tip\n .removeClass(orgPlacement)\n .addClass(placement)\n }\n\n var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight)\n\n this.applyPlacement(calculatedOffset, placement)\n\n var complete = function () {\n that.$element.trigger('shown.bs.' + that.type)\n that.hoverState = null\n }\n\n $.support.transition && this.$tip.hasClass('fade') ?\n $tip\n .one('bsTransitionEnd', complete)\n .emulateTransitionEnd(150) :\n complete()\n }\n }\n\n Tooltip.prototype.applyPlacement = function (offset, placement) {\n var $tip = this.tip()\n var width = $tip[0].offsetWidth\n var height = $tip[0].offsetHeight\n\n // manually read margins because getBoundingClientRect includes difference\n var marginTop = parseInt($tip.css('margin-top'), 10)\n var marginLeft = parseInt($tip.css('margin-left'), 10)\n\n // we must check for NaN for ie 8/9\n if (isNaN(marginTop)) marginTop = 0\n if (isNaN(marginLeft)) marginLeft = 0\n\n offset.top = offset.top + marginTop\n offset.left = offset.left + marginLeft\n\n // $.fn.offset doesn't round pixel values\n // so we use setOffset directly with our own function B-0\n $.offset.setOffset($tip[0], $.extend({\n using: function (props) {\n $tip.css({\n top: Math.round(props.top),\n left: Math.round(props.left)\n })\n }\n }, offset), 0)\n\n $tip.addClass('in')\n\n // check to see if placing tip in new offset caused the tip to resize itself\n var actualWidth = $tip[0].offsetWidth\n var actualHeight = $tip[0].offsetHeight\n\n if (placement == 'top' && actualHeight != height) {\n offset.top = offset.top + height - actualHeight\n }\n\n var delta = this.getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight)\n\n if (delta.left) offset.left += delta.left\n else offset.top += delta.top\n\n var arrowDelta = delta.left ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight\n var arrowPosition = delta.left ? 'left' : 'top'\n var arrowOffsetPosition = delta.left ? 'offsetWidth' : 'offsetHeight'\n\n $tip.offset(offset)\n this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], arrowPosition)\n }\n\n Tooltip.prototype.replaceArrow = function (delta, dimension, position) {\n this.arrow().css(position, delta ? (50 * (1 - delta / dimension) + '%') : '')\n }\n\n Tooltip.prototype.setContent = function () {\n var $tip = this.tip()\n var title = this.getTitle()\n\n $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)\n $tip.removeClass('fade in top bottom left right')\n }\n\n Tooltip.prototype.hide = function () {\n var that = this\n var $tip = this.tip()\n var e = $.Event('hide.bs.' + this.type)\n\n this.$element.removeAttr('aria-describedby')\n\n function complete() {\n if (that.hoverState != 'in') $tip.detach()\n that.$element.trigger('hidden.bs.' + that.type)\n }\n\n this.$element.trigger(e)\n\n if (e.isDefaultPrevented()) return\n\n $tip.removeClass('in')\n\n $.support.transition && this.$tip.hasClass('fade') ?\n $tip\n .one('bsTransitionEnd', complete)\n .emulateTransitionEnd(150) :\n complete()\n\n this.hoverState = null\n\n return this\n }\n\n Tooltip.prototype.fixTitle = function () {\n var $e = this.$element\n if ($e.attr('title') || typeof ($e.attr('data-original-title')) != 'string') {\n $e.attr('data-original-title', $e.attr('title') || '').attr('title', '')\n }\n }\n\n Tooltip.prototype.hasContent = function () {\n return this.getTitle()\n }\n\n Tooltip.prototype.getPosition = function ($element) {\n $element = $element || this.$element\n var el = $element[0]\n var isBody = el.tagName == 'BODY'\n return $.extend({}, (typeof el.getBoundingClientRect == 'function') ? el.getBoundingClientRect() : null, {\n scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop(),\n width: isBody ? $(window).width() : $element.outerWidth(),\n height: isBody ? $(window).height() : $element.outerHeight()\n }, isBody ? { top: 0, left: 0 } : $element.offset())\n }\n\n Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {\n return placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } :\n placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :\n placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :\n /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }\n\n }\n\n Tooltip.prototype.getViewportAdjustedDelta = function (placement, pos, actualWidth, actualHeight) {\n var delta = { top: 0, left: 0 }\n if (!this.$viewport) return delta\n\n var viewportPadding = this.options.viewport && this.options.viewport.padding || 0\n var viewportDimensions = this.getPosition(this.$viewport)\n\n if (/right|left/.test(placement)) {\n var topEdgeOffset = pos.top - viewportPadding - viewportDimensions.scroll\n var bottomEdgeOffset = pos.top + viewportPadding - viewportDimensions.scroll + actualHeight\n if (topEdgeOffset < viewportDimensions.top) { // top overflow\n delta.top = viewportDimensions.top - topEdgeOffset\n } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow\n delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset\n }\n } else {\n var leftEdgeOffset = pos.left - viewportPadding\n var rightEdgeOffset = pos.left + viewportPadding + actualWidth\n if (leftEdgeOffset < viewportDimensions.left) { // left overflow\n delta.left = viewportDimensions.left - leftEdgeOffset\n } else if (rightEdgeOffset > viewportDimensions.width) { // right overflow\n delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset\n }\n }\n\n return delta\n }\n\n Tooltip.prototype.getTitle = function () {\n var title\n var $e = this.$element\n var o = this.options\n\n title = $e.attr('data-original-title')\n || (typeof o.title == 'function' ? o.title.call($e[0]) : o.title)\n\n return title\n }\n\n Tooltip.prototype.getUID = function (prefix) {\n do prefix += ~~(Math.random() * 1000000)\n while (document.getElementById(prefix))\n return prefix\n }\n\n Tooltip.prototype.tip = function () {\n return (this.$tip = this.$tip || $(this.options.template))\n }\n\n Tooltip.prototype.arrow = function () {\n return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow'))\n }\n\n Tooltip.prototype.validate = function () {\n if (!this.$element[0].parentNode) {\n this.hide()\n this.$element = null\n this.options = null\n }\n }\n\n Tooltip.prototype.enable = function () {\n this.enabled = true\n }\n\n Tooltip.prototype.disable = function () {\n this.enabled = false\n }\n\n Tooltip.prototype.toggleEnabled = function () {\n this.enabled = !this.enabled\n }\n\n Tooltip.prototype.toggle = function (e) {\n var self = this\n if (e) {\n self = $(e.currentTarget).data('bs.' + this.type)\n if (!self) {\n self = new this.constructor(e.currentTarget, this.getDelegateOptions())\n $(e.currentTarget).data('bs.' + this.type, self)\n }\n }\n\n self.tip().hasClass('in') ? self.leave(self) : self.enter(self)\n }\n\n Tooltip.prototype.destroy = function () {\n clearTimeout(this.timeout)\n this.hide().$element.off('.' + this.type).removeData('bs.' + this.type)\n }\n\n\n // TOOLTIP PLUGIN DEFINITION\n // =========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.tooltip')\n var options = typeof option == 'object' && option\n\n if (!data && option == 'destroy') return\n if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.tooltip\n\n $.fn.tooltip = Plugin\n $.fn.tooltip.Constructor = Tooltip\n\n\n // TOOLTIP NO CONFLICT\n // ===================\n\n $.fn.tooltip.noConflict = function () {\n $.fn.tooltip = old\n return this\n }\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: popover.js v3.2.0\n * http://getbootstrap.com/javascript/#popovers\n * ========================================================================\n * Copyright 2011-2014 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // POPOVER PUBLIC CLASS DEFINITION\n // ===============================\n\n var Popover = function (element, options) {\n this.init('popover', element, options)\n }\n\n if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')\n\n Popover.VERSION = '3.2.0'\n\n Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '

'\n })\n\n\n // NOTE: POPOVER EXTENDS tooltip.js\n // ================================\n\n Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype)\n\n Popover.prototype.constructor = Popover\n\n Popover.prototype.getDefaults = function () {\n return Popover.DEFAULTS\n }\n\n Popover.prototype.setContent = function () {\n var $tip = this.tip()\n var title = this.getTitle()\n var content = this.getContent()\n\n $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)\n $tip.find('.popover-content').empty()[ // we use append for html objects to maintain js events\n this.options.html ? (typeof content == 'string' ? 'html' : 'append') : 'text'\n ](content)\n\n $tip.removeClass('fade top bottom left right in')\n\n // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do\n // this manually by checking the contents.\n if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide()\n }\n\n Popover.prototype.hasContent = function () {\n return this.getTitle() || this.getContent()\n }\n\n Popover.prototype.getContent = function () {\n var $e = this.$element\n var o = this.options\n\n return $e.attr('data-content')\n || (typeof o.content == 'function' ?\n o.content.call($e[0]) :\n o.content)\n }\n\n Popover.prototype.arrow = function () {\n return (this.$arrow = this.$arrow || this.tip().find('.arrow'))\n }\n\n Popover.prototype.tip = function () {\n if (!this.$tip) this.$tip = $(this.options.template)\n return this.$tip\n }\n\n\n // POPOVER PLUGIN DEFINITION\n // =========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.popover')\n var options = typeof option == 'object' && option\n\n if (!data && option == 'destroy') return\n if (!data) $this.data('bs.popover', (data = new Popover(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.popover\n\n $.fn.popover = Plugin\n $.fn.popover.Constructor = Popover\n\n\n // POPOVER NO CONFLICT\n // ===================\n\n $.fn.popover.noConflict = function () {\n $.fn.popover = old\n return this\n }\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: scrollspy.js v3.2.0\n * http://getbootstrap.com/javascript/#scrollspy\n * ========================================================================\n * Copyright 2011-2014 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // SCROLLSPY CLASS DEFINITION\n // ==========================\n\n function ScrollSpy(element, options) {\n var process = $.proxy(this.process, this)\n\n this.$body = $('body')\n this.$scrollElement = $(element).is('body') ? $(window) : $(element)\n this.options = $.extend({}, ScrollSpy.DEFAULTS, options)\n this.selector = (this.options.target || '') + ' .nav li > a'\n this.offsets = []\n this.targets = []\n this.activeTarget = null\n this.scrollHeight = 0\n\n this.$scrollElement.on('scroll.bs.scrollspy', process)\n this.refresh()\n this.process()\n }\n\n ScrollSpy.VERSION = '3.2.0'\n\n ScrollSpy.DEFAULTS = {\n offset: 10\n }\n\n ScrollSpy.prototype.getScrollHeight = function () {\n return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight)\n }\n\n ScrollSpy.prototype.refresh = function () {\n var offsetMethod = 'offset'\n var offsetBase = 0\n\n if (!$.isWindow(this.$scrollElement[0])) {\n offsetMethod = 'position'\n offsetBase = this.$scrollElement.scrollTop()\n }\n\n this.offsets = []\n this.targets = []\n this.scrollHeight = this.getScrollHeight()\n\n var self = this\n\n this.$body\n .find(this.selector)\n .map(function () {\n var $el = $(this)\n var href = $el.data('target') || $el.attr('href')\n var $href = /^#./.test(href) && $(href)\n\n return ($href\n && $href.length\n && $href.is(':visible')\n && [[$href[offsetMethod]().top + offsetBase, href]]) || null\n })\n .sort(function (a, b) { return a[0] - b[0] })\n .each(function () {\n self.offsets.push(this[0])\n self.targets.push(this[1])\n })\n }\n\n ScrollSpy.prototype.process = function () {\n var scrollTop = this.$scrollElement.scrollTop() + this.options.offset\n var scrollHeight = this.getScrollHeight()\n var maxScroll = this.options.offset + scrollHeight - this.$scrollElement.height()\n var offsets = this.offsets\n var targets = this.targets\n var activeTarget = this.activeTarget\n var i\n\n if (this.scrollHeight != scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n return activeTarget != (i = targets[targets.length - 1]) && this.activate(i)\n }\n\n if (activeTarget && scrollTop <= offsets[0]) {\n return activeTarget != (i = targets[0]) && this.activate(i)\n }\n\n for (i = offsets.length; i--;) {\n activeTarget != targets[i]\n && scrollTop >= offsets[i]\n && (!offsets[i + 1] || scrollTop <= offsets[i + 1])\n && this.activate(targets[i])\n }\n }\n\n ScrollSpy.prototype.activate = function (target) {\n this.activeTarget = target\n\n $(this.selector)\n .parentsUntil(this.options.target, '.active')\n .removeClass('active')\n\n var selector = this.selector +\n '[data-target=\"' + target + '\"],' +\n this.selector + '[href=\"' + target + '\"]'\n\n var active = $(selector)\n .parents('li')\n .addClass('active')\n\n if (active.parent('.dropdown-menu').length) {\n active = active\n .closest('li.dropdown')\n .addClass('active')\n }\n\n active.trigger('activate.bs.scrollspy')\n }\n\n\n // SCROLLSPY PLUGIN DEFINITION\n // ===========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.scrollspy')\n var options = typeof option == 'object' && option\n\n if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.scrollspy\n\n $.fn.scrollspy = Plugin\n $.fn.scrollspy.Constructor = ScrollSpy\n\n\n // SCROLLSPY NO CONFLICT\n // =====================\n\n $.fn.scrollspy.noConflict = function () {\n $.fn.scrollspy = old\n return this\n }\n\n\n // SCROLLSPY DATA-API\n // ==================\n\n $(window).on('load.bs.scrollspy.data-api', function () {\n $('[data-spy=\"scroll\"]').each(function () {\n var $spy = $(this)\n Plugin.call($spy, $spy.data())\n })\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: tab.js v3.2.0\n * http://getbootstrap.com/javascript/#tabs\n * ========================================================================\n * Copyright 2011-2014 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // TAB CLASS DEFINITION\n // ====================\n\n var Tab = function (element) {\n this.element = $(element)\n }\n\n Tab.VERSION = '3.2.0'\n\n Tab.prototype.show = function () {\n var $this = this.element\n var $ul = $this.closest('ul:not(.dropdown-menu)')\n var selector = $this.data('target')\n\n if (!selector) {\n selector = $this.attr('href')\n selector = selector && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n }\n\n if ($this.parent('li').hasClass('active')) return\n\n var previous = $ul.find('.active:last a')[0]\n var e = $.Event('show.bs.tab', {\n relatedTarget: previous\n })\n\n $this.trigger(e)\n\n if (e.isDefaultPrevented()) return\n\n var $target = $(selector)\n\n this.activate($this.closest('li'), $ul)\n this.activate($target, $target.parent(), function () {\n $this.trigger({\n type: 'shown.bs.tab',\n relatedTarget: previous\n })\n })\n }\n\n Tab.prototype.activate = function (element, container, callback) {\n var $active = container.find('> .active')\n var transition = callback\n && $.support.transition\n && $active.hasClass('fade')\n\n function next() {\n $active\n .removeClass('active')\n .find('> .dropdown-menu > .active')\n .removeClass('active')\n\n element.addClass('active')\n\n if (transition) {\n element[0].offsetWidth // reflow for transition\n element.addClass('in')\n } else {\n element.removeClass('fade')\n }\n\n if (element.parent('.dropdown-menu')) {\n element.closest('li.dropdown').addClass('active')\n }\n\n callback && callback()\n }\n\n transition ?\n $active\n .one('bsTransitionEnd', next)\n .emulateTransitionEnd(150) :\n next()\n\n $active.removeClass('in')\n }\n\n\n // TAB PLUGIN DEFINITION\n // =====================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.tab')\n\n if (!data) $this.data('bs.tab', (data = new Tab(this)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.tab\n\n $.fn.tab = Plugin\n $.fn.tab.Constructor = Tab\n\n\n // TAB NO CONFLICT\n // ===============\n\n $.fn.tab.noConflict = function () {\n $.fn.tab = old\n return this\n }\n\n\n // TAB DATA-API\n // ============\n\n $(document).on('click.bs.tab.data-api', '[data-toggle=\"tab\"], [data-toggle=\"pill\"]', function (e) {\n e.preventDefault()\n Plugin.call($(this), 'show')\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: affix.js v3.2.0\n * http://getbootstrap.com/javascript/#affix\n * ========================================================================\n * Copyright 2011-2014 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // AFFIX CLASS DEFINITION\n // ======================\n\n var Affix = function (element, options) {\n this.options = $.extend({}, Affix.DEFAULTS, options)\n\n this.$target = $(this.options.target)\n .on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this))\n .on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this))\n\n this.$element = $(element)\n this.affixed =\n this.unpin =\n this.pinnedOffset = null\n\n this.checkPosition()\n }\n\n Affix.VERSION = '3.2.0'\n\n Affix.RESET = 'affix affix-top affix-bottom'\n\n Affix.DEFAULTS = {\n offset: 0,\n target: window\n }\n\n Affix.prototype.getPinnedOffset = function () {\n if (this.pinnedOffset) return this.pinnedOffset\n this.$element.removeClass(Affix.RESET).addClass('affix')\n var scrollTop = this.$target.scrollTop()\n var position = this.$element.offset()\n return (this.pinnedOffset = position.top - scrollTop)\n }\n\n Affix.prototype.checkPositionWithEventLoop = function () {\n setTimeout($.proxy(this.checkPosition, this), 1)\n }\n\n Affix.prototype.checkPosition = function () {\n if (!this.$element.is(':visible')) return\n\n var scrollHeight = $(document).height()\n var scrollTop = this.$target.scrollTop()\n var position = this.$element.offset()\n var offset = this.options.offset\n var offsetTop = offset.top\n var offsetBottom = offset.bottom\n\n if (typeof offset != 'object') offsetBottom = offsetTop = offset\n if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element)\n if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element)\n\n var affix = this.unpin != null && (scrollTop + this.unpin <= position.top) ? false :\n offsetBottom != null && (position.top + this.$element.height() >= scrollHeight - offsetBottom) ? 'bottom' :\n offsetTop != null && (scrollTop <= offsetTop) ? 'top' : false\n\n if (this.affixed === affix) return\n if (this.unpin != null) this.$element.css('top', '')\n\n var affixType = 'affix' + (affix ? '-' + affix : '')\n var e = $.Event(affixType + '.bs.affix')\n\n this.$element.trigger(e)\n\n if (e.isDefaultPrevented()) return\n\n this.affixed = affix\n this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null\n\n this.$element\n .removeClass(Affix.RESET)\n .addClass(affixType)\n .trigger($.Event(affixType.replace('affix', 'affixed')))\n\n if (affix == 'bottom') {\n this.$element.offset({\n top: scrollHeight - this.$element.height() - offsetBottom\n })\n }\n }\n\n\n // AFFIX PLUGIN DEFINITION\n // =======================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.affix')\n var options = typeof option == 'object' && option\n\n if (!data) $this.data('bs.affix', (data = new Affix(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.affix\n\n $.fn.affix = Plugin\n $.fn.affix.Constructor = Affix\n\n\n // AFFIX NO CONFLICT\n // =================\n\n $.fn.affix.noConflict = function () {\n $.fn.affix = old\n return this\n }\n\n\n // AFFIX DATA-API\n // ==============\n\n $(window).on('load', function () {\n $('[data-spy=\"affix\"]').each(function () {\n var $spy = $(this)\n var data = $spy.data()\n\n data.offset = data.offset || {}\n\n if (data.offsetBottom) data.offset.bottom = data.offsetBottom\n if (data.offsetTop) data.offset.top = data.offsetTop\n\n Plugin.call($spy, data)\n })\n })\n\n}(jQuery);\n","/*!\n * Modernizr v2.6.2\n * www.modernizr.com\n *\n * Copyright (c) Faruk Ates, Paul Irish, Alex Sexton\n * Available under the BSD and MIT licenses: www.modernizr.com/license/\n */\n\n/*\n * Modernizr tests which native CSS3 and HTML5 features are available in\n * the current UA and makes the results available to you in two ways:\n * as properties on a global Modernizr object, and as classes on the\n * element. This information allows you to progressively enhance\n * your pages with a granular level of control over the experience.\n *\n * Modernizr has an optional (not included) conditional resource loader\n * called Modernizr.load(), based on Yepnope.js (yepnopejs.com).\n * To get a build that includes Modernizr.load(), as well as choosing\n * which tests to include, go to www.modernizr.com/download/\n *\n * Authors Faruk Ates, Paul Irish, Alex Sexton\n * Contributors Ryan Seddon, Ben Alman\n */\n\nwindow.Modernizr = (function( window, document, undefined ) {\n\n var version = '2.6.2',\n\n Modernizr = {},\n\n /*>>cssclasses*/\n // option for enabling the HTML classes to be added\n enableClasses = true,\n /*>>cssclasses*/\n\n docElement = document.documentElement,\n\n /**\n * Create our \"modernizr\" element that we do most feature tests on.\n */\n mod = 'modernizr',\n modElem = document.createElement(mod),\n mStyle = modElem.style,\n\n /**\n * Create the input element for various Web Forms feature tests.\n */\n inputElem /*>>inputelem*/ = document.createElement('input') /*>>inputelem*/ ,\n\n /*>>smile*/\n smile = ':)',\n /*>>smile*/\n\n toString = {}.toString,\n\n // TODO :: make the prefixes more granular\n /*>>prefixes*/\n // List of property values to set for css tests. See ticket #21\n prefixes = ' -webkit- -moz- -o- -ms- '.split(' '),\n /*>>prefixes*/\n\n /*>>domprefixes*/\n // Following spec is to expose vendor-specific style properties as:\n // elem.style.WebkitBorderRadius\n // and the following would be incorrect:\n // elem.style.webkitBorderRadius\n\n // Webkit ghosts their properties in lowercase but Opera & Moz do not.\n // Microsoft uses a lowercase `ms` instead of the correct `Ms` in IE8+\n // erik.eae.net/archives/2008/03/10/21.48.10/\n\n // More here: github.com/Modernizr/Modernizr/issues/issue/21\n omPrefixes = 'Webkit Moz O ms',\n\n cssomPrefixes = omPrefixes.split(' '),\n\n domPrefixes = omPrefixes.toLowerCase().split(' '),\n /*>>domprefixes*/\n\n /*>>ns*/\n ns = {'svg': 'http://www.w3.org/2000/svg'},\n /*>>ns*/\n\n tests = {},\n inputs = {},\n attrs = {},\n\n classes = [],\n\n slice = classes.slice,\n\n featureName, // used in testing loop\n\n\n /*>>teststyles*/\n // Inject element with style element and some CSS rules\n injectElementWithStyles = function( rule, callback, nodes, testnames ) {\n\n var style, ret, node, docOverflow,\n div = document.createElement('div'),\n // After page load injecting a fake body doesn't work so check if body exists\n body = document.body,\n // IE6 and 7 won't return offsetWidth or offsetHeight unless it's in the body element, so we fake it.\n fakeBody = body || document.createElement('body');\n\n if ( parseInt(nodes, 10) ) {\n // In order not to give false positives we create a node for each test\n // This also allows the method to scale for unspecified uses\n while ( nodes-- ) {\n node = document.createElement('div');\n node.id = testnames ? testnames[nodes] : mod + (nodes + 1);\n div.appendChild(node);\n }\n }\n\n // '].join('');\n div.id = mod;\n // IE6 will false positive on some tests due to the style element inside the test div somehow interfering offsetHeight, so insert it into body or fakebody.\n // Opera will act all quirky when injecting elements in documentElement when page is served as xml, needs fakebody too. #270\n (body ? div : fakeBody).innerHTML += style;\n fakeBody.appendChild(div);\n if ( !body ) {\n //avoid crashing IE8, if background image is used\n fakeBody.style.background = '';\n //Safari 5.13/5.1.4 OSX stops loading if ::-webkit-scrollbar is used and scrollbars are visible\n fakeBody.style.overflow = 'hidden';\n docOverflow = docElement.style.overflow;\n docElement.style.overflow = 'hidden';\n docElement.appendChild(fakeBody);\n }\n\n ret = callback(div, rule);\n // If this is done after page load we don't want to remove the body so check if body exists\n if ( !body ) {\n fakeBody.parentNode.removeChild(fakeBody);\n docElement.style.overflow = docOverflow;\n } else {\n div.parentNode.removeChild(div);\n }\n\n return !!ret;\n\n },\n /*>>teststyles*/\n\n /*>>mq*/\n // adapted from matchMedia polyfill\n // by Scott Jehl and Paul Irish\n // gist.github.com/786768\n testMediaQuery = function( mq ) {\n\n var matchMedia = window.matchMedia || window.msMatchMedia;\n if ( matchMedia ) {\n return matchMedia(mq).matches;\n }\n\n var bool;\n\n injectElementWithStyles('@media ' + mq + ' { #' + mod + ' { position: absolute; } }', function( node ) {\n bool = (window.getComputedStyle ?\n getComputedStyle(node, null) :\n node.currentStyle)['position'] == 'absolute';\n });\n\n return bool;\n\n },\n /*>>mq*/\n\n\n /*>>hasevent*/\n //\n // isEventSupported determines if a given element supports the given event\n // kangax.github.com/iseventsupported/\n //\n // The following results are known incorrects:\n // Modernizr.hasEvent(\"webkitTransitionEnd\", elem) // false negative\n // Modernizr.hasEvent(\"textInput\") // in Webkit. github.com/Modernizr/Modernizr/issues/333\n // ...\n isEventSupported = (function() {\n\n var TAGNAMES = {\n 'select': 'input', 'change': 'input',\n 'submit': 'form', 'reset': 'form',\n 'error': 'img', 'load': 'img', 'abort': 'img'\n };\n\n function isEventSupported( eventName, element ) {\n\n element = element || document.createElement(TAGNAMES[eventName] || 'div');\n eventName = 'on' + eventName;\n\n // When using `setAttribute`, IE skips \"unload\", WebKit skips \"unload\" and \"resize\", whereas `in` \"catches\" those\n var isSupported = eventName in element;\n\n if ( !isSupported ) {\n // If it has no `setAttribute` (i.e. doesn't implement Node interface), try generic element\n if ( !element.setAttribute ) {\n element = document.createElement('div');\n }\n if ( element.setAttribute && element.removeAttribute ) {\n element.setAttribute(eventName, '');\n isSupported = is(element[eventName], 'function');\n\n // If property was created, \"remove it\" (by setting value to `undefined`)\n if ( !is(element[eventName], 'undefined') ) {\n element[eventName] = undefined;\n }\n element.removeAttribute(eventName);\n }\n }\n\n element = null;\n return isSupported;\n }\n return isEventSupported;\n })(),\n /*>>hasevent*/\n\n // TODO :: Add flag for hasownprop ? didn't last time\n\n // hasOwnProperty shim by kangax needed for Safari 2.0 support\n _hasOwnProperty = ({}).hasOwnProperty, hasOwnProp;\n\n if ( !is(_hasOwnProperty, 'undefined') && !is(_hasOwnProperty.call, 'undefined') ) {\n hasOwnProp = function (object, property) {\n return _hasOwnProperty.call(object, property);\n };\n }\n else {\n hasOwnProp = function (object, property) { /* yes, this can give false positives/negatives, but most of the time we don't care about those */\n return ((property in object) && is(object.constructor.prototype[property], 'undefined'));\n };\n }\n\n // Adapted from ES5-shim https://github.com/kriskowal/es5-shim/blob/master/es5-shim.js\n // es5.github.com/#x15.3.4.5\n\n if (!Function.prototype.bind) {\n Function.prototype.bind = function bind(that) {\n\n var target = this;\n\n if (typeof target != \"function\") {\n throw new TypeError();\n }\n\n var args = slice.call(arguments, 1),\n bound = function () {\n\n if (this instanceof bound) {\n\n var F = function(){};\n F.prototype = target.prototype;\n var self = new F();\n\n var result = target.apply(\n self,\n args.concat(slice.call(arguments))\n );\n if (Object(result) === result) {\n return result;\n }\n return self;\n\n } else {\n\n return target.apply(\n that,\n args.concat(slice.call(arguments))\n );\n\n }\n\n };\n\n return bound;\n };\n }\n\n /**\n * setCss applies given styles to the Modernizr DOM node.\n */\n function setCss( str ) {\n mStyle.cssText = str;\n }\n\n /**\n * setCssAll extrapolates all vendor-specific css strings.\n */\n function setCssAll( str1, str2 ) {\n return setCss(prefixes.join(str1 + ';') + ( str2 || '' ));\n }\n\n /**\n * is returns a boolean for if typeof obj is exactly type.\n */\n function is( obj, type ) {\n return typeof obj === type;\n }\n\n /**\n * contains returns a boolean for if substr is found within str.\n */\n function contains( str, substr ) {\n return !!~('' + str).indexOf(substr);\n }\n\n /*>>testprop*/\n\n // testProps is a generic CSS / DOM property test.\n\n // In testing support for a given CSS property, it's legit to test:\n // `elem.style[styleName] !== undefined`\n // If the property is supported it will return an empty string,\n // if unsupported it will return undefined.\n\n // We'll take advantage of this quick test and skip setting a style\n // on our modernizr element, but instead just testing undefined vs\n // empty string.\n\n // Because the testing of the CSS property names (with \"-\", as\n // opposed to the camelCase DOM properties) is non-portable and\n // non-standard but works in WebKit and IE (but not Gecko or Opera),\n // we explicitly reject properties with dashes so that authors\n // developing in WebKit or IE first don't end up with\n // browser-specific content by accident.\n\n function testProps( props, prefixed ) {\n for ( var i in props ) {\n var prop = props[i];\n if ( !contains(prop, \"-\") && mStyle[prop] !== undefined ) {\n return prefixed == 'pfx' ? prop : true;\n }\n }\n return false;\n }\n /*>>testprop*/\n\n // TODO :: add testDOMProps\n /**\n * testDOMProps is a generic DOM property test; if a browser supports\n * a certain property, it won't return undefined for it.\n */\n function testDOMProps( props, obj, elem ) {\n for ( var i in props ) {\n var item = obj[props[i]];\n if ( item !== undefined) {\n\n // return the property name as a string\n if (elem === false) return props[i];\n\n // let's bind a function\n if (is(item, 'function')){\n // default to autobind unless override\n return item.bind(elem || obj);\n }\n\n // return the unbound function or obj or value\n return item;\n }\n }\n return false;\n }\n\n /*>>testallprops*/\n /**\n * testPropsAll tests a list of DOM properties we want to check against.\n * We specify literally ALL possible (known and/or likely) properties on\n * the element including the non-vendor prefixed one, for forward-\n * compatibility.\n */\n function testPropsAll( prop, prefixed, elem ) {\n\n var ucProp = prop.charAt(0).toUpperCase() + prop.slice(1),\n props = (prop + ' ' + cssomPrefixes.join(ucProp + ' ') + ucProp).split(' ');\n\n // did they call .prefixed('boxSizing') or are we just testing a prop?\n if(is(prefixed, \"string\") || is(prefixed, \"undefined\")) {\n return testProps(props, prefixed);\n\n // otherwise, they called .prefixed('requestAnimationFrame', window[, elem])\n } else {\n props = (prop + ' ' + (domPrefixes).join(ucProp + ' ') + ucProp).split(' ');\n return testDOMProps(props, prefixed, elem);\n }\n }\n /*>>testallprops*/\n\n\n /**\n * Tests\n * -----\n */\n\n // The *new* flexbox\n // dev.w3.org/csswg/css3-flexbox\n\n tests['flexbox'] = function() {\n return testPropsAll('flexWrap');\n };\n\n // The *old* flexbox\n // www.w3.org/TR/2009/WD-css3-flexbox-20090723/\n\n tests['flexboxlegacy'] = function() {\n return testPropsAll('boxDirection');\n };\n\n // On the S60 and BB Storm, getContext exists, but always returns undefined\n // so we actually have to call getContext() to verify\n // github.com/Modernizr/Modernizr/issues/issue/97/\n\n tests['canvas'] = function() {\n var elem = document.createElement('canvas');\n return !!(elem.getContext && elem.getContext('2d'));\n };\n\n tests['canvastext'] = function() {\n return !!(Modernizr['canvas'] && is(document.createElement('canvas').getContext('2d').fillText, 'function'));\n };\n\n // webk.it/70117 is tracking a legit WebGL feature detect proposal\n\n // We do a soft detect which may false positive in order to avoid\n // an expensive context creation: bugzil.la/732441\n\n tests['webgl'] = function() {\n return !!window.WebGLRenderingContext;\n };\n\n /*\n * The Modernizr.touch test only indicates if the browser supports\n * touch events, which does not necessarily reflect a touchscreen\n * device, as evidenced by tablets running Windows 7 or, alas,\n * the Palm Pre / WebOS (touch) phones.\n *\n * Additionally, Chrome (desktop) used to lie about its support on this,\n * but that has since been rectified: crbug.com/36415\n *\n * We also test for Firefox 4 Multitouch Support.\n *\n * For more info, see: modernizr.github.com/Modernizr/touch.html\n */\n\n tests['touch'] = function() {\n var bool;\n\n if(('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch) {\n bool = true;\n } else {\n injectElementWithStyles(['@media (',prefixes.join('touch-enabled),('),mod,')','{#modernizr{top:9px;position:absolute}}'].join(''), function( node ) {\n bool = node.offsetTop === 9;\n });\n }\n\n return bool;\n };\n\n\n // geolocation is often considered a trivial feature detect...\n // Turns out, it's quite tricky to get right:\n //\n // Using !!navigator.geolocation does two things we don't want. It:\n // 1. Leaks memory in IE9: github.com/Modernizr/Modernizr/issues/513\n // 2. Disables page caching in WebKit: webk.it/43956\n //\n // Meanwhile, in Firefox < 8, an about:config setting could expose\n // a false positive that would throw an exception: bugzil.la/688158\n\n tests['geolocation'] = function() {\n return 'geolocation' in navigator;\n };\n\n\n tests['postmessage'] = function() {\n return !!window.postMessage;\n };\n\n\n // Chrome incognito mode used to throw an exception when using openDatabase\n // It doesn't anymore.\n tests['websqldatabase'] = function() {\n return !!window.openDatabase;\n };\n\n // Vendors had inconsistent prefixing with the experimental Indexed DB:\n // - Webkit's implementation is accessible through webkitIndexedDB\n // - Firefox shipped moz_indexedDB before FF4b9, but since then has been mozIndexedDB\n // For speed, we don't test the legacy (and beta-only) indexedDB\n tests['indexedDB'] = function() {\n return !!testPropsAll(\"indexedDB\", window);\n };\n\n // documentMode logic from YUI to filter out IE8 Compat Mode\n // which false positives.\n tests['hashchange'] = function() {\n return isEventSupported('hashchange', window) && (document.documentMode === undefined || document.documentMode > 7);\n };\n\n // Per 1.6:\n // This used to be Modernizr.historymanagement but the longer\n // name has been deprecated in favor of a shorter and property-matching one.\n // The old API is still available in 1.6, but as of 2.0 will throw a warning,\n // and in the first release thereafter disappear entirely.\n tests['history'] = function() {\n return !!(window.history && history.pushState);\n };\n\n tests['draganddrop'] = function() {\n var div = document.createElement('div');\n return ('draggable' in div) || ('ondragstart' in div && 'ondrop' in div);\n };\n\n // FF3.6 was EOL'ed on 4/24/12, but the ESR version of FF10\n // will be supported until FF19 (2/12/13), at which time, ESR becomes FF17.\n // FF10 still uses prefixes, so check for it until then.\n // for more ESR info, see: mozilla.org/en-US/firefox/organizations/faq/\n tests['websockets'] = function() {\n return 'WebSocket' in window || 'MozWebSocket' in window;\n };\n\n\n // css-tricks.com/rgba-browser-support/\n tests['rgba'] = function() {\n // Set an rgba() color and check the returned value\n\n setCss('background-color:rgba(150,255,150,.5)');\n\n return contains(mStyle.backgroundColor, 'rgba');\n };\n\n tests['hsla'] = function() {\n // Same as rgba(), in fact, browsers re-map hsla() to rgba() internally,\n // except IE9 who retains it as hsla\n\n setCss('background-color:hsla(120,40%,100%,.5)');\n\n return contains(mStyle.backgroundColor, 'rgba') || contains(mStyle.backgroundColor, 'hsla');\n };\n\n tests['multiplebgs'] = function() {\n // Setting multiple images AND a color on the background shorthand property\n // and then querying the style.background property value for the number of\n // occurrences of \"url(\" is a reliable method for detecting ACTUAL support for this!\n\n setCss('background:url(https://),url(https://),red url(https://)');\n\n // If the UA supports multiple backgrounds, there should be three occurrences\n // of the string \"url(\" in the return value for elemStyle.background\n\n return (/(url\\s*\\(.*?){3}/).test(mStyle.background);\n };\n\n\n\n // this will false positive in Opera Mini\n // github.com/Modernizr/Modernizr/issues/396\n\n tests['backgroundsize'] = function() {\n return testPropsAll('backgroundSize');\n };\n\n tests['borderimage'] = function() {\n return testPropsAll('borderImage');\n };\n\n\n // Super comprehensive table about all the unique implementations of\n // border-radius: muddledramblings.com/table-of-css3-border-radius-compliance\n\n tests['borderradius'] = function() {\n return testPropsAll('borderRadius');\n };\n\n // WebOS unfortunately false positives on this test.\n tests['boxshadow'] = function() {\n return testPropsAll('boxShadow');\n };\n\n // FF3.0 will false positive on this test\n tests['textshadow'] = function() {\n return document.createElement('div').style.textShadow === '';\n };\n\n\n tests['opacity'] = function() {\n // Browsers that actually have CSS Opacity implemented have done so\n // according to spec, which means their return values are within the\n // range of [0.0,1.0] - including the leading zero.\n\n setCssAll('opacity:.55');\n\n // The non-literal . in this regex is intentional:\n // German Chrome returns this value as 0,55\n // github.com/Modernizr/Modernizr/issues/#issue/59/comment/516632\n return (/^0.55$/).test(mStyle.opacity);\n };\n\n\n // Note, Android < 4 will pass this test, but can only animate\n // a single property at a time\n // daneden.me/2011/12/putting-up-with-androids-bullshit/\n tests['cssanimations'] = function() {\n return testPropsAll('animationName');\n };\n\n\n tests['csscolumns'] = function() {\n return testPropsAll('columnCount');\n };\n\n\n tests['cssgradients'] = function() {\n /**\n * For CSS Gradients syntax, please see:\n * webkit.org/blog/175/introducing-css-gradients/\n * developer.mozilla.org/en/CSS/-moz-linear-gradient\n * developer.mozilla.org/en/CSS/-moz-radial-gradient\n * dev.w3.org/csswg/css3-images/#gradients-\n */\n\n var str1 = 'background-image:',\n str2 = 'gradient(linear,left top,right bottom,from(#9f9),to(white));',\n str3 = 'linear-gradient(left top,#9f9, white);';\n\n setCss(\n // legacy webkit syntax (FIXME: remove when syntax not in use anymore)\n (str1 + '-webkit- '.split(' ').join(str2 + str1) +\n // standard syntax // trailing 'background-image:'\n prefixes.join(str3 + str1)).slice(0, -str1.length)\n );\n\n return contains(mStyle.backgroundImage, 'gradient');\n };\n\n\n tests['cssreflections'] = function() {\n return testPropsAll('boxReflect');\n };\n\n\n tests['csstransforms'] = function() {\n return !!testPropsAll('transform');\n };\n\n\n tests['csstransforms3d'] = function() {\n\n var ret = !!testPropsAll('perspective');\n\n // Webkit's 3D transforms are passed off to the browser's own graphics renderer.\n // It works fine in Safari on Leopard and Snow Leopard, but not in Chrome in\n // some conditions. As a result, Webkit typically recognizes the syntax but\n // will sometimes throw a false positive, thus we must do a more thorough check:\n if ( ret && 'webkitPerspective' in docElement.style ) {\n\n // Webkit allows this media query to succeed only if the feature is enabled.\n // `@media (transform-3d),(-webkit-transform-3d){ ... }`\n injectElementWithStyles('@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}', function( node, rule ) {\n ret = node.offsetLeft === 9 && node.offsetHeight === 3;\n });\n }\n return ret;\n };\n\n\n tests['csstransitions'] = function() {\n return testPropsAll('transition');\n };\n\n\n /*>>fontface*/\n // @font-face detection routine by Diego Perini\n // javascript.nwbox.com/CSSSupport/\n\n // false positives:\n // WebOS github.com/Modernizr/Modernizr/issues/342\n // WP7 github.com/Modernizr/Modernizr/issues/538\n tests['fontface'] = function() {\n var bool;\n\n injectElementWithStyles('@font-face {font-family:\"font\";src:url(\"https://\")}', function( node, rule ) {\n var style = document.getElementById('smodernizr'),\n sheet = style.sheet || style.styleSheet,\n cssText = sheet ? (sheet.cssRules && sheet.cssRules[0] ? sheet.cssRules[0].cssText : sheet.cssText || '') : '';\n\n bool = /src/i.test(cssText) && cssText.indexOf(rule.split(' ')[0]) === 0;\n });\n\n return bool;\n };\n /*>>fontface*/\n\n // CSS generated content detection\n tests['generatedcontent'] = function() {\n var bool;\n\n injectElementWithStyles(['#',mod,'{font:0/0 a}#',mod,':after{content:\"',smile,'\";visibility:hidden;font:3px/1 a}'].join(''), function( node ) {\n bool = node.offsetHeight >= 3;\n });\n\n return bool;\n };\n\n\n\n // These tests evaluate support of the video/audio elements, as well as\n // testing what types of content they support.\n //\n // We're using the Boolean constructor here, so that we can extend the value\n // e.g. Modernizr.video // true\n // Modernizr.video.ogg // 'probably'\n //\n // Codec values from : github.com/NielsLeenheer/html5test/blob/9106a8/index.html#L845\n // thx to NielsLeenheer and zcorpan\n\n // Note: in some older browsers, \"no\" was a return value instead of empty string.\n // It was live in FF3.5.0 and 3.5.1, but fixed in 3.5.2\n // It was also live in Safari 4.0.0 - 4.0.4, but fixed in 4.0.5\n\n tests['video'] = function() {\n var elem = document.createElement('video'),\n bool = false;\n\n // IE9 Running on Windows Server SKU can cause an exception to be thrown, bug #224\n try {\n if ( bool = !!elem.canPlayType ) {\n bool = new Boolean(bool);\n bool.ogg = elem.canPlayType('video/ogg; codecs=\"theora\"') .replace(/^no$/,'');\n\n // Without QuickTime, this value will be `undefined`. github.com/Modernizr/Modernizr/issues/546\n bool.h264 = elem.canPlayType('video/mp4; codecs=\"avc1.42E01E\"') .replace(/^no$/,'');\n\n bool.webm = elem.canPlayType('video/webm; codecs=\"vp8, vorbis\"').replace(/^no$/,'');\n }\n\n } catch(e) { }\n\n return bool;\n };\n\n tests['audio'] = function() {\n var elem = document.createElement('audio'),\n bool = false;\n\n try {\n if ( bool = !!elem.canPlayType ) {\n bool = new Boolean(bool);\n bool.ogg = elem.canPlayType('audio/ogg; codecs=\"vorbis\"').replace(/^no$/,'');\n bool.mp3 = elem.canPlayType('audio/mpeg;') .replace(/^no$/,'');\n\n // Mimetypes accepted:\n // developer.mozilla.org/En/Media_formats_supported_by_the_audio_and_video_elements\n // bit.ly/iphoneoscodecs\n bool.wav = elem.canPlayType('audio/wav; codecs=\"1\"') .replace(/^no$/,'');\n bool.m4a = ( elem.canPlayType('audio/x-m4a;') ||\n elem.canPlayType('audio/aac;')) .replace(/^no$/,'');\n }\n } catch(e) { }\n\n return bool;\n };\n\n\n // In FF4, if disabled, window.localStorage should === null.\n\n // Normally, we could not test that directly and need to do a\n // `('localStorage' in window) && ` test first because otherwise Firefox will\n // throw bugzil.la/365772 if cookies are disabled\n\n // Also in iOS5 Private Browsing mode, attempting to use localStorage.setItem\n // will throw the exception:\n // QUOTA_EXCEEDED_ERRROR DOM Exception 22.\n // Peculiarly, getItem and removeItem calls do not throw.\n\n // Because we are forced to try/catch this, we'll go aggressive.\n\n // Just FWIW: IE8 Compat mode supports these features completely:\n // www.quirksmode.org/dom/html5.html\n // But IE8 doesn't support either with local files\n\n tests['localstorage'] = function() {\n try {\n localStorage.setItem(mod, mod);\n localStorage.removeItem(mod);\n return true;\n } catch(e) {\n return false;\n }\n };\n\n tests['sessionstorage'] = function() {\n try {\n sessionStorage.setItem(mod, mod);\n sessionStorage.removeItem(mod);\n return true;\n } catch(e) {\n return false;\n }\n };\n\n\n tests['webworkers'] = function() {\n return !!window.Worker;\n };\n\n\n tests['applicationcache'] = function() {\n return !!window.applicationCache;\n };\n\n\n // Thanks to Erik Dahlstrom\n tests['svg'] = function() {\n return !!document.createElementNS && !!document.createElementNS(ns.svg, 'svg').createSVGRect;\n };\n\n // specifically for SVG inline in HTML, not within XHTML\n // test page: paulirish.com/demo/inline-svg\n tests['inlinesvg'] = function() {\n var div = document.createElement('div');\n div.innerHTML = '';\n return (div.firstChild && div.firstChild.namespaceURI) == ns.svg;\n };\n\n // SVG SMIL animation\n tests['smil'] = function() {\n return !!document.createElementNS && /SVGAnimate/.test(toString.call(document.createElementNS(ns.svg, 'animate')));\n };\n\n // This test is only for clip paths in SVG proper, not clip paths on HTML content\n // demo: srufaculty.sru.edu/david.dailey/svg/newstuff/clipPath4.svg\n\n // However read the comments to dig into applying SVG clippaths to HTML content here:\n // github.com/Modernizr/Modernizr/issues/213#issuecomment-1149491\n tests['svgclippaths'] = function() {\n return !!document.createElementNS && /SVGClipPath/.test(toString.call(document.createElementNS(ns.svg, 'clipPath')));\n };\n\n /*>>webforms*/\n // input features and input types go directly onto the ret object, bypassing the tests loop.\n // Hold this guy to execute in a moment.\n function webforms() {\n /*>>input*/\n // Run through HTML5's new input attributes to see if the UA understands any.\n // We're using f which is the element created early on\n // Mike Taylr has created a comprehensive resource for testing these attributes\n // when applied to all input types:\n // miketaylr.com/code/input-type-attr.html\n // spec: www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#input-type-attr-summary\n\n // Only input placeholder is tested while textarea's placeholder is not.\n // Currently Safari 4 and Opera 11 have support only for the input placeholder\n // Both tests are available in feature-detects/forms-placeholder.js\n Modernizr['input'] = (function( props ) {\n for ( var i = 0, len = props.length; i < len; i++ ) {\n attrs[ props[i] ] = !!(props[i] in inputElem);\n }\n if (attrs.list){\n // safari false positive's on datalist: webk.it/74252\n // see also github.com/Modernizr/Modernizr/issues/146\n attrs.list = !!(document.createElement('datalist') && window.HTMLDataListElement);\n }\n return attrs;\n })('autocomplete autofocus list placeholder max min multiple pattern required step'.split(' '));\n /*>>input*/\n\n /*>>inputtypes*/\n // Run through HTML5's new input types to see if the UA understands any.\n // This is put behind the tests runloop because it doesn't return a\n // true/false like all the other tests; instead, it returns an object\n // containing each input type with its corresponding true/false value\n\n // Big thanks to @miketaylr for the html5 forms expertise. miketaylr.com/\n Modernizr['inputtypes'] = (function(props) {\n\n for ( var i = 0, bool, inputElemType, defaultView, len = props.length; i < len; i++ ) {\n\n inputElem.setAttribute('type', inputElemType = props[i]);\n bool = inputElem.type !== 'text';\n\n // We first check to see if the type we give it sticks..\n // If the type does, we feed it a textual value, which shouldn't be valid.\n // If the value doesn't stick, we know there's input sanitization which infers a custom UI\n if ( bool ) {\n\n inputElem.value = smile;\n inputElem.style.cssText = 'position:absolute;visibility:hidden;';\n\n if ( /^range$/.test(inputElemType) && inputElem.style.WebkitAppearance !== undefined ) {\n\n docElement.appendChild(inputElem);\n defaultView = document.defaultView;\n\n // Safari 2-4 allows the smiley as a value, despite making a slider\n bool = defaultView.getComputedStyle &&\n defaultView.getComputedStyle(inputElem, null).WebkitAppearance !== 'textfield' &&\n // Mobile android web browser has false positive, so must\n // check the height to see if the widget is actually there.\n (inputElem.offsetHeight !== 0);\n\n docElement.removeChild(inputElem);\n\n } else if ( /^(search|tel)$/.test(inputElemType) ){\n // Spec doesn't define any special parsing or detectable UI\n // behaviors so we pass these through as true\n\n // Interestingly, opera fails the earlier test, so it doesn't\n // even make it here.\n\n } else if ( /^(url|email)$/.test(inputElemType) ) {\n // Real url and email support comes with prebaked validation.\n bool = inputElem.checkValidity && inputElem.checkValidity() === false;\n\n } else {\n // If the upgraded input compontent rejects the :) text, we got a winner\n bool = inputElem.value != smile;\n }\n }\n\n inputs[ props[i] ] = !!bool;\n }\n return inputs;\n })('search tel url email datetime date month week time datetime-local number range color'.split(' '));\n /*>>inputtypes*/\n }\n /*>>webforms*/\n\n\n // End of test definitions\n // -----------------------\n\n\n\n // Run through all tests and detect their support in the current UA.\n // todo: hypothetically we could be doing an array of tests and use a basic loop here.\n for ( var feature in tests ) {\n if ( hasOwnProp(tests, feature) ) {\n // run the test, throw the return value into the Modernizr,\n // then based on that boolean, define an appropriate className\n // and push it into an array of classes we'll join later.\n featureName = feature.toLowerCase();\n Modernizr[featureName] = tests[feature]();\n\n classes.push((Modernizr[featureName] ? '' : 'no-') + featureName);\n }\n }\n\n /*>>webforms*/\n // input tests need to run.\n Modernizr.input || webforms();\n /*>>webforms*/\n\n\n /**\n * addTest allows the user to define their own feature tests\n * the result will be added onto the Modernizr object,\n * as well as an appropriate className set on the html element\n *\n * @param feature - String naming the feature\n * @param test - Function returning true if feature is supported, false if not\n */\n Modernizr.addTest = function ( feature, test ) {\n if ( typeof feature == 'object' ) {\n for ( var key in feature ) {\n if ( hasOwnProp( feature, key ) ) {\n Modernizr.addTest( key, feature[ key ] );\n }\n }\n } else {\n\n feature = feature.toLowerCase();\n\n if ( Modernizr[feature] !== undefined ) {\n // we're going to quit if you're trying to overwrite an existing test\n // if we were to allow it, we'd do this:\n // var re = new RegExp(\"\\\\b(no-)?\" + feature + \"\\\\b\");\n // docElement.className = docElement.className.replace( re, '' );\n // but, no rly, stuff 'em.\n return Modernizr;\n }\n\n test = typeof test == 'function' ? test() : test;\n\n if (typeof enableClasses !== \"undefined\" && enableClasses) {\n docElement.className += ' ' + (test ? '' : 'no-') + feature;\n }\n Modernizr[feature] = test;\n\n }\n\n return Modernizr; // allow chaining.\n };\n\n\n // Reset modElem.cssText to nothing to reduce memory footprint.\n setCss('');\n modElem = inputElem = null;\n\n /*>>shiv*/\n /*! HTML5 Shiv v3.6.1 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed */\n ;(function(window, document) {\n /*jshint evil:true */\n /** Preset options */\n var options = window.html5 || {};\n\n /** Used to skip problem elements */\n var reSkip = /^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i;\n\n /** Not all elements can be cloned in IE **/\n var saveClones = /^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i;\n\n /** Detect whether the browser supports default html5 styles */\n var supportsHtml5Styles;\n\n /** Name of the expando, to work with multiple documents or to re-shiv one document */\n var expando = '_html5shiv';\n\n /** The id for the the documents expando */\n var expanID = 0;\n\n /** Cached data for each document */\n var expandoData = {};\n\n /** Detect whether the browser supports unknown elements */\n var supportsUnknownElements;\n\n (function() {\n try {\n var a = document.createElement('a');\n a.innerHTML = '';\n //if the hidden property is implemented we can assume, that the browser supports basic HTML5 Styles\n supportsHtml5Styles = ('hidden' in a);\n\n supportsUnknownElements = a.childNodes.length == 1 || (function() {\n // assign a false positive if unable to shiv\n (document.createElement)('a');\n var frag = document.createDocumentFragment();\n return (\n typeof frag.cloneNode == 'undefined' ||\n typeof frag.createDocumentFragment == 'undefined' ||\n typeof frag.createElement == 'undefined'\n );\n }());\n } catch(e) {\n supportsHtml5Styles = true;\n supportsUnknownElements = true;\n }\n\n }());\n\n /*--------------------------------------------------------------------------*/\n\n /**\n * Creates a style sheet with the given CSS text and adds it to the document.\n * @private\n * @param {Document} ownerDocument The document.\n * @param {String} cssText The CSS text.\n * @returns {StyleSheet} The style element.\n */\n function addStyleSheet(ownerDocument, cssText) {\n var p = ownerDocument.createElement('p'),\n parent = ownerDocument.getElementsByTagName('head')[0] || ownerDocument.documentElement;\n\n p.innerHTML = 'x';\n return parent.insertBefore(p.lastChild, parent.firstChild);\n }\n\n /**\n * Returns the value of `html5.elements` as an array.\n * @private\n * @returns {Array} An array of shived element node names.\n */\n function getElements() {\n var elements = html5.elements;\n return typeof elements == 'string' ? elements.split(' ') : elements;\n }\n\n /**\n * Returns the data associated to the given document\n * @private\n * @param {Document} ownerDocument The document.\n * @returns {Object} An object of data.\n */\n function getExpandoData(ownerDocument) {\n var data = expandoData[ownerDocument[expando]];\n if (!data) {\n data = {};\n expanID++;\n ownerDocument[expando] = expanID;\n expandoData[expanID] = data;\n }\n return data;\n }\n\n /**\n * returns a shived element for the given nodeName and document\n * @memberOf html5\n * @param {String} nodeName name of the element\n * @param {Document} ownerDocument The context document.\n * @returns {Object} The shived element.\n */\n function createElement(nodeName, ownerDocument, data){\n if (!ownerDocument) {\n ownerDocument = document;\n }\n if(supportsUnknownElements){\n return ownerDocument.createElement(nodeName);\n }\n if (!data) {\n data = getExpandoData(ownerDocument);\n }\n var node;\n\n if (data.cache[nodeName]) {\n node = data.cache[nodeName].cloneNode();\n } else if (saveClones.test(nodeName)) {\n node = (data.cache[nodeName] = data.createElem(nodeName)).cloneNode();\n } else {\n node = data.createElem(nodeName);\n }\n\n // Avoid adding some elements to fragments in IE < 9 because\n // * Attributes like `name` or `type` cannot be set/changed once an element\n // is inserted into a document/fragment\n // * Link elements with `src` attributes that are inaccessible, as with\n // a 403 response, will cause the tab/window to crash\n // * Script elements appended to fragments will execute when their `src`\n // or `text` property is set\n return node.canHaveChildren && !reSkip.test(nodeName) ? data.frag.appendChild(node) : node;\n }\n\n /**\n * returns a shived DocumentFragment for the given document\n * @memberOf html5\n * @param {Document} ownerDocument The context document.\n * @returns {Object} The shived DocumentFragment.\n */\n function createDocumentFragment(ownerDocument, data){\n if (!ownerDocument) {\n ownerDocument = document;\n }\n if(supportsUnknownElements){\n return ownerDocument.createDocumentFragment();\n }\n data = data || getExpandoData(ownerDocument);\n var clone = data.frag.cloneNode(),\n i = 0,\n elems = getElements(),\n l = elems.length;\n for(;i>shiv*/\n\n // Assign private properties to the return object with prefix\n Modernizr._version = version;\n\n // expose these for the plugin API. Look in the source for how to join() them against your input\n /*>>prefixes*/\n Modernizr._prefixes = prefixes;\n /*>>prefixes*/\n /*>>domprefixes*/\n Modernizr._domPrefixes = domPrefixes;\n Modernizr._cssomPrefixes = cssomPrefixes;\n /*>>domprefixes*/\n\n /*>>mq*/\n // Modernizr.mq tests a given media query, live against the current state of the window\n // A few important notes:\n // * If a browser does not support media queries at all (eg. oldIE) the mq() will always return false\n // * A max-width or orientation query will be evaluated against the current state, which may change later.\n // * You must specify values. Eg. If you are testing support for the min-width media query use:\n // Modernizr.mq('(min-width:0)')\n // usage:\n // Modernizr.mq('only screen and (max-width:768)')\n Modernizr.mq = testMediaQuery;\n /*>>mq*/\n\n /*>>hasevent*/\n // Modernizr.hasEvent() detects support for a given event, with an optional element to test on\n // Modernizr.hasEvent('gesturestart', elem)\n Modernizr.hasEvent = isEventSupported;\n /*>>hasevent*/\n\n /*>>testprop*/\n // Modernizr.testProp() investigates whether a given style property is recognized\n // Note that the property names must be provided in the camelCase variant.\n // Modernizr.testProp('pointerEvents')\n Modernizr.testProp = function(prop){\n return testProps([prop]);\n };\n /*>>testprop*/\n\n /*>>testallprops*/\n // Modernizr.testAllProps() investigates whether a given style property,\n // or any of its vendor-prefixed variants, is recognized\n // Note that the property names must be provided in the camelCase variant.\n // Modernizr.testAllProps('boxSizing')\n Modernizr.testAllProps = testPropsAll;\n /*>>testallprops*/\n\n\n /*>>teststyles*/\n // Modernizr.testStyles() allows you to add custom styles to the document and test an element afterwards\n // Modernizr.testStyles('#modernizr { position:absolute }', function(elem, rule){ ... })\n Modernizr.testStyles = injectElementWithStyles;\n /*>>teststyles*/\n\n\n /*>>prefixed*/\n // Modernizr.prefixed() returns the prefixed or nonprefixed property name variant of your input\n // Modernizr.prefixed('boxSizing') // 'MozBoxSizing'\n\n // Properties must be passed as dom-style camelcase, rather than `box-sizing` hypentated style.\n // Return values will also be the camelCase variant, if you need to translate that to hypenated style use:\n //\n // str.replace(/([A-Z])/g, function(str,m1){ return '-' + m1.toLowerCase(); }).replace(/^ms-/,'-ms-');\n\n // If you're trying to ascertain which transition end event to bind to, you might do something like...\n //\n // var transEndEventNames = {\n // 'WebkitTransition' : 'webkitTransitionEnd',\n // 'MozTransition' : 'transitionend',\n // 'OTransition' : 'oTransitionEnd',\n // 'msTransition' : 'MSTransitionEnd',\n // 'transition' : 'transitionend'\n // },\n // transEndEventName = transEndEventNames[ Modernizr.prefixed('transition') ];\n\n Modernizr.prefixed = function(prop, obj, elem){\n if(!obj) {\n return testPropsAll(prop, 'pfx');\n } else {\n // Testing DOM property e.g. Modernizr.prefixed('requestAnimationFrame', window) // 'mozRequestAnimationFrame'\n return testPropsAll(prop, obj, elem);\n }\n };\n /*>>prefixed*/\n\n\n /*>>cssclasses*/\n // Remove \"no-js\" class from element, if it exists:\n docElement.className = docElement.className.replace(/(^|\\s)no-js(\\s|$)/, '$1$2') +\n\n // Add the new classes to the element.\n (enableClasses ? ' js ' + classes.join(' ') : '');\n /*>>cssclasses*/\n\n return Modernizr;\n\n})(this, this.document);\n","/*!\n * jQuery JavaScript Library v1.11.3\n * http://jquery.com/\n *\n * Includes Sizzle.js\n * http://sizzlejs.com/\n *\n * Copyright 2005, 2014 jQuery Foundation, Inc. and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2015-04-28T16:19Z\n */\n\n(function( global, factory ) {\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\t\t// For CommonJS and CommonJS-like environments where a proper window is present,\n\t\t// execute the factory and get jQuery\n\t\t// For environments that do not inherently posses a window with a document\n\t\t// (such as Node.js), expose a jQuery-making factory as module.exports\n\t\t// This accentuates the need for the creation of a real window\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket #14549 for more info\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n}(typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Can't do this because several apps including ASP.NET trace\n// the stack via arguments.caller.callee and Firefox dies if\n// you try to trace through \"use strict\" call chains. (#13335)\n// Support: Firefox 18+\n//\n\nvar deletedIds = [];\n\nvar slice = deletedIds.slice;\n\nvar concat = deletedIds.concat;\n\nvar push = deletedIds.push;\n\nvar indexOf = deletedIds.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar support = {};\n\n\n\nvar\n\tversion = \"1.11.3\",\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t},\n\n\t// Support: Android<4.1, IE<9\n\t// Make sure we trim BOM and NBSP\n\trtrim = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g,\n\n\t// Matches dashed string for camelizing\n\trmsPrefix = /^-ms-/,\n\trdashAlpha = /-([\\da-z])/gi,\n\n\t// Used by jQuery.camelCase as callback to replace()\n\tfcamelCase = function( all, letter ) {\n\t\treturn letter.toUpperCase();\n\t};\n\njQuery.fn = jQuery.prototype = {\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// Start with an empty selector\n\tselector: \"\",\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\t\treturn num != null ?\n\n\t\t\t// Return just the one element from the set\n\t\t\t( num < 0 ? this[ num + this.length ] : this[ num ] ) :\n\n\t\t\t// Return all the elements in a clean array\n\t\t\tslice.call( this );\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\t\tret.context = this.context;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\t// (You can seed the arguments with an array of args, but this is\n\t// only used internally.)\n\teach: function( callback, args ) {\n\t\treturn jQuery.each( this, callback, args );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map(this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t}));\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[j] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor(null);\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: deletedIds.sort,\n\tsplice: deletedIds.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar src, copyIsArray, copy, name, options, clone,\n\t\ttarget = arguments[0] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !jQuery.isFunction(target) ) {\n\t\ttarget = {};\n\t}\n\n\t// extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\t\t// Only deal with non-null/undefined values\n\t\tif ( (options = arguments[ i ]) != null ) {\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tsrc = target[ name ];\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) {\n\t\t\t\t\tif ( copyIsArray ) {\n\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\tclone = src && jQuery.isArray(src) ? src : [];\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src && jQuery.isPlainObject(src) ? src : {};\n\t\t\t\t\t}\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend({\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\t// See test/unit/core.js for details concerning isFunction.\n\t// Since version 1.3, DOM methods and functions like alert\n\t// aren't supported. They return false on IE (#2968).\n\tisFunction: function( obj ) {\n\t\treturn jQuery.type(obj) === \"function\";\n\t},\n\n\tisArray: Array.isArray || function( obj ) {\n\t\treturn jQuery.type(obj) === \"array\";\n\t},\n\n\tisWindow: function( obj ) {\n\t\t/* jshint eqeqeq: false */\n\t\treturn obj != null && obj == obj.window;\n\t},\n\n\tisNumeric: function( obj ) {\n\t\t// parseFloat NaNs numeric-cast false positives (null|true|false|\"\")\n\t\t// ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\n\t\t// subtraction forces infinities to NaN\n\t\t// adding 1 corrects loss of precision from parseFloat (#15100)\n\t\treturn !jQuery.isArray( obj ) && (obj - parseFloat( obj ) + 1) >= 0;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\tisPlainObject: function( obj ) {\n\t\tvar key;\n\n\t\t// Must be an Object.\n\t\t// Because of IE, we also have to check the presence of the constructor property.\n\t\t// Make sure that DOM nodes and window objects don't pass through, as well\n\t\tif ( !obj || jQuery.type(obj) !== \"object\" || obj.nodeType || jQuery.isWindow( obj ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\ttry {\n\t\t\t// Not own constructor property must be Object\n\t\t\tif ( obj.constructor &&\n\t\t\t\t!hasOwn.call(obj, \"constructor\") &&\n\t\t\t\t!hasOwn.call(obj.constructor.prototype, \"isPrototypeOf\") ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t} catch ( e ) {\n\t\t\t// IE8,9 Will throw exceptions on certain host objects #9897\n\t\t\treturn false;\n\t\t}\n\n\t\t// Support: IE<9\n\t\t// Handle iteration over inherited properties before own properties.\n\t\tif ( support.ownLast ) {\n\t\t\tfor ( key in obj ) {\n\t\t\t\treturn hasOwn.call( obj, key );\n\t\t\t}\n\t\t}\n\n\t\t// Own properties are enumerated firstly, so to speed up,\n\t\t// if last one is own, then all properties are own.\n\t\tfor ( key in obj ) {}\n\n\t\treturn key === undefined || hasOwn.call( obj, key );\n\t},\n\n\ttype: function( obj ) {\n\t\tif ( obj == null ) {\n\t\t\treturn obj + \"\";\n\t\t}\n\t\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\t\tclass2type[ toString.call(obj) ] || \"object\" :\n\t\t\ttypeof obj;\n\t},\n\n\t// Evaluates a script in a global context\n\t// Workarounds based on findings by Jim Driscoll\n\t// http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context\n\tglobalEval: function( data ) {\n\t\tif ( data && jQuery.trim( data ) ) {\n\t\t\t// We use execScript on Internet Explorer\n\t\t\t// We use an anonymous function so that context is window\n\t\t\t// rather than jQuery in Firefox\n\t\t\t( window.execScript || function( data ) {\n\t\t\t\twindow[ \"eval\" ].call( window, data );\n\t\t\t} )( data );\n\t\t}\n\t},\n\n\t// Convert dashed to camelCase; used by the css and data modules\n\t// Microsoft forgot to hump their vendor prefix (#9572)\n\tcamelCase: function( string ) {\n\t\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n\t},\n\n\tnodeName: function( elem, name ) {\n\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\t},\n\n\t// args is for internal usage only\n\teach: function( obj, callback, args ) {\n\t\tvar value,\n\t\t\ti = 0,\n\t\t\tlength = obj.length,\n\t\t\tisArray = isArraylike( obj );\n\n\t\tif ( args ) {\n\t\t\tif ( isArray ) {\n\t\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\t\tvalue = callback.apply( obj[ i ], args );\n\n\t\t\t\t\tif ( value === false ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( i in obj ) {\n\t\t\t\t\tvalue = callback.apply( obj[ i ], args );\n\n\t\t\t\t\tif ( value === false ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// A special, fast, case for the most common use of each\n\t\t} else {\n\t\t\tif ( isArray ) {\n\t\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\t\tvalue = callback.call( obj[ i ], i, obj[ i ] );\n\n\t\t\t\t\tif ( value === false ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( i in obj ) {\n\t\t\t\t\tvalue = callback.call( obj[ i ], i, obj[ i ] );\n\n\t\t\t\t\tif ( value === false ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\t// Support: Android<4.1, IE<9\n\ttrim: function( text ) {\n\t\treturn text == null ?\n\t\t\t\"\" :\n\t\t\t( text + \"\" ).replace( rtrim, \"\" );\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArraylike( Object(arr) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\tvar len;\n\n\t\tif ( arr ) {\n\t\t\tif ( indexOf ) {\n\t\t\t\treturn indexOf.call( arr, elem, i );\n\t\t\t}\n\n\t\t\tlen = arr.length;\n\t\t\ti = i ? i < 0 ? Math.max( 0, len + i ) : i : 0;\n\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t// Skip accessing in sparse arrays\n\t\t\t\tif ( i in arr && arr[ i ] === elem ) {\n\t\t\t\t\treturn i;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn -1;\n\t},\n\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\twhile ( j < len ) {\n\t\t\tfirst[ i++ ] = second[ j++ ];\n\t\t}\n\n\t\t// Support: IE<9\n\t\t// Workaround casting of .length to NaN on otherwise arraylike objects (e.g., NodeLists)\n\t\tif ( len !== len ) {\n\t\t\twhile ( second[j] !== undefined ) {\n\t\t\t\tfirst[ i++ ] = second[ j++ ];\n\t\t\t}\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar value,\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tisArray = isArraylike( elems ),\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArray ) {\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn concat.apply( [], ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// Bind a function to a context, optionally partially applying any\n\t// arguments.\n\tproxy: function( fn, context ) {\n\t\tvar args, proxy, tmp;\n\n\t\tif ( typeof context === \"string\" ) {\n\t\t\ttmp = fn[ context ];\n\t\t\tcontext = fn;\n\t\t\tfn = tmp;\n\t\t}\n\n\t\t// Quick check to determine if target is callable, in the spec\n\t\t// this throws a TypeError, but we will just return undefined.\n\t\tif ( !jQuery.isFunction( fn ) ) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\t// Simulated bind\n\t\targs = slice.call( arguments, 2 );\n\t\tproxy = function() {\n\t\t\treturn fn.apply( context || this, args.concat( slice.call( arguments ) ) );\n\t\t};\n\n\t\t// Set the guid of unique handler to the same of original handler, so it can be removed\n\t\tproxy.guid = fn.guid = fn.guid || jQuery.guid++;\n\n\t\treturn proxy;\n\t},\n\n\tnow: function() {\n\t\treturn +( new Date() );\n\t},\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n});\n\n// Populate the class2type map\njQuery.each(\"Boolean Number String Function Array Date RegExp Object Error\".split(\" \"), function(i, name) {\n\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n});\n\nfunction isArraylike( obj ) {\n\n\t// Support: iOS 8.2 (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = \"length\" in obj && obj.length,\n\t\ttype = jQuery.type( obj );\n\n\tif ( type === \"function\" || jQuery.isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\tif ( obj.nodeType === 1 && length ) {\n\t\treturn true;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\nvar Sizzle =\n/*!\n * Sizzle CSS Selector Engine v2.2.0-pre\n * http://sizzlejs.com/\n *\n * Copyright 2008, 2014 jQuery Foundation, Inc. and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2014-12-16\n */\n(function( window ) {\n\nvar i,\n\tsupport,\n\tExpr,\n\tgetText,\n\tisXML,\n\ttokenize,\n\tcompile,\n\tselect,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\n\t// Local document vars\n\tsetDocument,\n\tdocument,\n\tdocElem,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\trbuggyMatches,\n\tmatches,\n\tcontains,\n\n\t// Instance-specific data\n\texpando = \"sizzle\" + 1 * new Date(),\n\tpreferredDoc = window.document,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// General-purpose constants\n\tMAX_NEGATIVE = 1 << 31,\n\n\t// Instance methods\n\thasOwn = ({}).hasOwnProperty,\n\tarr = [],\n\tpop = arr.pop,\n\tpush_native = arr.push,\n\tpush = arr.push,\n\tslice = arr.slice,\n\t// Use a stripped-down indexOf as it's faster than native\n\t// http://jsperf.com/thor-indexof-vs-for/5\n\tindexOf = function( list, elem ) {\n\t\tvar i = 0,\n\t\t\tlen = list.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( list[i] === elem ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\t// http://www.w3.org/TR/css3-syntax/#characters\n\tcharacterEncoding = \"(?:\\\\\\\\.|[\\\\w-]|[^\\\\x00-\\\\xa0])+\",\n\n\t// Loosely modeled on CSS identifier characters\n\t// An unquoted value should be a CSS identifier http://www.w3.org/TR/css3-selectors/#attribute-selectors\n\t// Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier\n\tidentifier = characterEncoding.replace( \"w\", \"w#\" ),\n\n\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + characterEncoding + \")(?:\" + whitespace +\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\t\t// \"Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" + whitespace +\n\t\t\"*\\\\]\",\n\n\tpseudos = \":(\" + characterEncoding + \")(?:\\\\((\" +\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trcombinators = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace + \"*\" ),\n\n\trattributeQuotes = new RegExp( \"=\" + whitespace + \"*([^\\\\]'\\\"]*?)\" + whitespace + \"*\\\\]\", \"g\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\t\"ID\": new RegExp( \"^#(\" + characterEncoding + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + characterEncoding + \")\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + characterEncoding.replace( \"w\", \"w*\" ) + \")\" ),\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" + whitespace +\n\t\t\t\"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" + whitespace +\n\t\t\t\"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace + \"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" +\n\t\t\twhitespace + \"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\trescape = /'|\\\\/g,\n\n\t// CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\([\\\\da-f]{1,6}\" + whitespace + \"?|(\" + whitespace + \")|.)\", \"ig\" ),\n\tfunescape = function( _, escaped, escapedWhitespace ) {\n\t\tvar high = \"0x\" + escaped - 0x10000;\n\t\t// NaN means non-codepoint\n\t\t// Support: Firefox<24\n\t\t// Workaround erroneous numeric interpretation of +\"0x\"\n\t\treturn high !== high || escapedWhitespace ?\n\t\t\tescaped :\n\t\t\thigh < 0 ?\n\t\t\t\t// BMP codepoint\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\t// Supplemental Plane codepoint (surrogate pair)\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// Used for iframes\n\t// See setDocument()\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t};\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t(arr = slice.call( preferredDoc.childNodes )),\n\t\tpreferredDoc.childNodes\n\t);\n\t// Support: Android<4.0\n\t// Detect silently failing push.apply\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = { apply: arr.length ?\n\n\t\t// Leverage slice if possible\n\t\tfunction( target, els ) {\n\t\t\tpush_native.apply( target, slice.call(els) );\n\t\t} :\n\n\t\t// Support: IE<9\n\t\t// Otherwise append directly\n\t\tfunction( target, els ) {\n\t\t\tvar j = target.length,\n\t\t\t\ti = 0;\n\t\t\t// Can't trust NodeList.length\n\t\t\twhile ( (target[j++] = els[i++]) ) {}\n\t\t\ttarget.length = j - 1;\n\t\t}\n\t};\n}\n\nfunction Sizzle( selector, context, results, seed ) {\n\tvar match, elem, m, nodeType,\n\t\t// QSA vars\n\t\ti, groups, old, nid, newContext, newSelector;\n\n\tif ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {\n\t\tsetDocument( context );\n\t}\n\n\tcontext = context || document;\n\tresults = results || [];\n\tnodeType = context.nodeType;\n\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\tif ( !seed && documentIsHTML ) {\n\n\t\t// Try to shortcut find operations when possible (e.g., not under DocumentFragment)\n\t\tif ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {\n\t\t\t// Speed-up: Sizzle(\"#ID\")\n\t\t\tif ( (m = match[1]) ) {\n\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\telem = context.getElementById( m );\n\t\t\t\t\t// Check parentNode to catch when Blackberry 4.6 returns\n\t\t\t\t\t// nodes that are no longer in the document (jQuery #6963)\n\t\t\t\t\tif ( elem && elem.parentNode ) {\n\t\t\t\t\t\t// Handle the case where IE, Opera, and Webkit return items\n\t\t\t\t\t\t// by name instead of ID\n\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// Context is not a document\n\t\t\t\t\tif ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) &&\n\t\t\t\t\t\tcontains( context, elem ) && elem.id === m ) {\n\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Speed-up: Sizzle(\"TAG\")\n\t\t\t} else if ( match[2] ) {\n\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\treturn results;\n\n\t\t\t// Speed-up: Sizzle(\".CLASS\")\n\t\t\t} else if ( (m = match[3]) && support.getElementsByClassName ) {\n\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\treturn results;\n\t\t\t}\n\t\t}\n\n\t\t// QSA path\n\t\tif ( support.qsa && (!rbuggyQSA || !rbuggyQSA.test( selector )) ) {\n\t\t\tnid = old = expando;\n\t\t\tnewContext = context;\n\t\t\tnewSelector = nodeType !== 1 && selector;\n\n\t\t\t// qSA works strangely on Element-rooted queries\n\t\t\t// We can work around this by specifying an extra ID on the root\n\t\t\t// and working up from there (Thanks to Andrew Dupont for the technique)\n\t\t\t// IE 8 doesn't work on object elements\n\t\t\tif ( nodeType === 1 && context.nodeName.toLowerCase() !== \"object\" ) {\n\t\t\t\tgroups = tokenize( selector );\n\n\t\t\t\tif ( (old = context.getAttribute(\"id\")) ) {\n\t\t\t\t\tnid = old.replace( rescape, \"\\\\$&\" );\n\t\t\t\t} else {\n\t\t\t\t\tcontext.setAttribute( \"id\", nid );\n\t\t\t\t}\n\t\t\t\tnid = \"[id='\" + nid + \"'] \";\n\n\t\t\t\ti = groups.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tgroups[i] = nid + toSelector( groups[i] );\n\t\t\t\t}\n\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) || context;\n\t\t\t\tnewSelector = groups.join(\",\");\n\t\t\t}\n\n\t\t\tif ( newSelector ) {\n\t\t\t\ttry {\n\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t);\n\t\t\t\t\treturn results;\n\t\t\t\t} catch(qsaError) {\n\t\t\t\t} finally {\n\t\t\t\t\tif ( !old ) {\n\t\t\t\t\t\tcontext.removeAttribute(\"id\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {Function(string, Object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn (cache[ key + \" \" ] = value);\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created div and expects a boolean result\n */\nfunction assert( fn ) {\n\tvar div = document.createElement(\"div\");\n\n\ttry {\n\t\treturn !!fn( div );\n\t} catch (e) {\n\t\treturn false;\n\t} finally {\n\t\t// Remove from its parent by default\n\t\tif ( div.parentNode ) {\n\t\t\tdiv.parentNode.removeChild( div );\n\t\t}\n\t\t// release memory in IE\n\t\tdiv = null;\n\t}\n}\n\n/**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\nfunction addHandle( attrs, handler ) {\n\tvar arr = attrs.split(\"|\"),\n\t\ti = attrs.length;\n\n\twhile ( i-- ) {\n\t\tExpr.attrHandle[ arr[i] ] = handler;\n\t}\n}\n\n/**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\nfunction siblingCheck( a, b ) {\n\tvar cur = b && a,\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\t( ~b.sourceIndex || MAX_NEGATIVE ) -\n\t\t\t( ~a.sourceIndex || MAX_NEGATIVE );\n\n\t// Use IE sourceIndex if available on both nodes\n\tif ( diff ) {\n\t\treturn diff;\n\t}\n\n\t// Check if b follows a\n\tif ( cur ) {\n\t\twhile ( (cur = cur.nextSibling) ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === \"input\" && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn (name === \"input\" || name === \"button\") && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction(function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction(function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ (j = matchIndexes[i]) ] ) {\n\t\t\t\t\tseed[j] = !(matches[j] = seed[j]);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\n/**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\nisXML = Sizzle.isXML = function( elem ) {\n\t// documentElement is verified for cases where it doesn't yet exist\n\t// (such as loading iframes in IE - #4833)\n\tvar documentElement = elem && (elem.ownerDocument || elem).documentElement;\n\treturn documentElement ? documentElement.nodeName !== \"HTML\" : false;\n};\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar hasCompare, parent,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// If no document and documentElement is available, return\n\tif ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Set our document\n\tdocument = doc;\n\tdocElem = doc.documentElement;\n\tparent = doc.defaultView;\n\n\t// Support: IE>8\n\t// If iframe document is assigned to \"document\" variable and if iframe has been reloaded,\n\t// IE will throw \"permission denied\" error when accessing \"document\" variable, see jQuery #13936\n\t// IE6-8 do not support the defaultView property so parent will be undefined\n\tif ( parent && parent !== parent.top ) {\n\t\t// IE11 does not have attachEvent, so all must suffer\n\t\tif ( parent.addEventListener ) {\n\t\t\tparent.addEventListener( \"unload\", unloadHandler, false );\n\t\t} else if ( parent.attachEvent ) {\n\t\t\tparent.attachEvent( \"onunload\", unloadHandler );\n\t\t}\n\t}\n\n\t/* Support tests\n\t---------------------------------------------------------------------- */\n\tdocumentIsHTML = !isXML( doc );\n\n\t/* Attributes\n\t---------------------------------------------------------------------- */\n\n\t// Support: IE<8\n\t// Verify that getAttribute really returns attributes and not properties\n\t// (excepting IE8 booleans)\n\tsupport.attributes = assert(function( div ) {\n\t\tdiv.className = \"i\";\n\t\treturn !div.getAttribute(\"className\");\n\t});\n\n\t/* getElement(s)By*\n\t---------------------------------------------------------------------- */\n\n\t// Check if getElementsByTagName(\"*\") returns only elements\n\tsupport.getElementsByTagName = assert(function( div ) {\n\t\tdiv.appendChild( doc.createComment(\"\") );\n\t\treturn !div.getElementsByTagName(\"*\").length;\n\t});\n\n\t// Support: IE<9\n\tsupport.getElementsByClassName = rnative.test( doc.getElementsByClassName );\n\n\t// Support: IE<10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert(function( div ) {\n\t\tdocElem.appendChild( div ).id = expando;\n\t\treturn !doc.getElementsByName || !doc.getElementsByName( expando ).length;\n\t});\n\n\t// ID find and filter\n\tif ( support.getById ) {\n\t\tExpr.find[\"ID\"] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar m = context.getElementById( id );\n\t\t\t\t// Check parentNode to catch when Blackberry 4.6 returns\n\t\t\t\t// nodes that are no longer in the document #6963\n\t\t\t\treturn m && m.parentNode ? [ m ] : [];\n\t\t\t}\n\t\t};\n\t\tExpr.filter[\"ID\"] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute(\"id\") === attrId;\n\t\t\t};\n\t\t};\n\t} else {\n\t\t// Support: IE6/7\n\t\t// getElementById is not reliable as a find shortcut\n\t\tdelete Expr.find[\"ID\"];\n\n\t\tExpr.filter[\"ID\"] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" && elem.getAttributeNode(\"id\");\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find[\"TAG\"] = support.getElementsByTagName ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t\t// DocumentFragment nodes don't have gEBTN\n\t\t\t} else if ( support.qsa ) {\n\t\t\t\treturn context.querySelectorAll( tag );\n\t\t\t}\n\t\t} :\n\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === \"*\" ) {\n\t\t\t\twhile ( (elem = results[i++]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Class\n\tExpr.find[\"CLASS\"] = support.getElementsByClassName && function( className, context ) {\n\t\tif ( documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21)\n\t// We allow this because of a bug in IE8/9 that throws an error\n\t// whenever `document.activeElement` is accessed on an iframe\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t// See http://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( (support.qsa = rnative.test( doc.querySelectorAll )) ) {\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert(function( div ) {\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE's treatment of not explicitly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// http://bugs.jquery.com/ticket/12359\n\t\t\tdocElem.appendChild( div ).innerHTML = \"\" +\n\t\t\t\t\"\";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t// http://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\tif ( div.querySelectorAll(\"[msallowcapture^='']\").length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !div.querySelectorAll(\"[selected]\").length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Support: Chrome<29, Android<4.2+, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.7+\n\t\t\tif ( !div.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\t\trbuggyQSA.push(\"~=\");\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !div.querySelectorAll(\":checked\").length ) {\n\t\t\t\trbuggyQSA.push(\":checked\");\n\t\t\t}\n\n\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t// In-page `selector#id sibing-combinator selector` fails\n\t\t\tif ( !div.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\t\trbuggyQSA.push(\".#.+[+~]\");\n\t\t\t}\n\t\t});\n\n\t\tassert(function( div ) {\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\tvar input = doc.createElement(\"input\");\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tdiv.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t\t// Support: IE8\n\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\tif ( div.querySelectorAll(\"[name=d]\").length ) {\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !div.querySelectorAll(\":enabled\").length ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tdiv.querySelectorAll(\"*,:x\");\n\t\t\trbuggyQSA.push(\",.*:\");\n\t\t});\n\t}\n\n\tif ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector) )) ) {\n\n\t\tassert(function( div ) {\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( div, \"div\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( div, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t});\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join(\"|\") );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join(\"|\") );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t// Element contains another\n\t// Purposefully does not implement inclusive descendent\n\t// As in, an element does not contain itself\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\t\tfunction( a, b ) {\n\t\t\tvar adown = a.nodeType === 9 ? a.documentElement : a,\n\t\t\t\tbup = b && b.parentNode;\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\t\t\t\tadown.contains ?\n\t\t\t\t\tadown.contains( bup ) :\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t\t));\n\t\t} :\n\t\tfunction( a, b ) {\n\t\t\tif ( b ) {\n\t\t\t\twhile ( (b = b.parentNode) ) {\n\t\t\t\t\tif ( b === a ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = hasCompare ?\n\tfunction( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\tcompare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t(!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\tif ( a === doc || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\tif ( b === doc || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t} :\n\tfunction( a, b ) {\n\t\t// Exit early if the nodes are identical\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\taup = a.parentNode,\n\t\t\tbup = b.parentNode,\n\t\t\tap = [ a ],\n\t\t\tbp = [ b ];\n\n\t\t// Parentless nodes are either documents or disconnected\n\t\tif ( !aup || !bup ) {\n\t\t\treturn a === doc ? -1 :\n\t\t\t\tb === doc ? 1 :\n\t\t\t\taup ? -1 :\n\t\t\t\tbup ? 1 :\n\t\t\t\tsortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\n\t\t// If the nodes are siblings, we can do a quick check\n\t\t} else if ( aup === bup ) {\n\t\t\treturn siblingCheck( a, b );\n\t\t}\n\n\t\t// Otherwise we need full lists of their ancestors for comparison\n\t\tcur = a;\n\t\twhile ( (cur = cur.parentNode) ) {\n\t\t\tap.unshift( cur );\n\t\t}\n\t\tcur = b;\n\t\twhile ( (cur = cur.parentNode) ) {\n\t\t\tbp.unshift( cur );\n\t\t}\n\n\t\t// Walk down the tree looking for a discrepancy\n\t\twhile ( ap[i] === bp[i] ) {\n\t\t\ti++;\n\t\t}\n\n\t\treturn i ?\n\t\t\t// Do a sibling check if the nodes have a common ancestor\n\t\t\tsiblingCheck( ap[i], bp[i] ) :\n\n\t\t\t// Otherwise nodes in our document sort first\n\t\t\tap[i] === preferredDoc ? -1 :\n\t\t\tbp[i] === preferredDoc ? 1 :\n\t\t\t0;\n\t};\n\n\treturn doc;\n};\n\nSizzle.matches = function( expr, elements ) {\n\treturn Sizzle( expr, null, null, elements );\n};\n\nSizzle.matchesSelector = function( elem, expr ) {\n\t// Set document vars if needed\n\tif ( ( elem.ownerDocument || elem ) !== document ) {\n\t\tsetDocument( elem );\n\t}\n\n\t// Make sure that attribute selectors are quoted\n\texpr = expr.replace( rattributeQuotes, \"='$1']\" );\n\n\tif ( support.matchesSelector && documentIsHTML &&\n\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\n\t\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\t\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t\t// fragment in IE 9\n\t\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch (e) {}\n\t}\n\n\treturn Sizzle( expr, document, null, [ elem ] ).length > 0;\n};\n\nSizzle.contains = function( context, elem ) {\n\t// Set document vars if needed\n\tif ( ( context.ownerDocument || context ) !== document ) {\n\t\tsetDocument( context );\n\t}\n\treturn contains( context, elem );\n};\n\nSizzle.attr = function( elem, name ) {\n\t// Set document vars if needed\n\tif ( ( elem.ownerDocument || elem ) !== document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\treturn val !== undefined ?\n\t\tval :\n\t\tsupport.attributes || !documentIsHTML ?\n\t\t\telem.getAttribute( name ) :\n\t\t\t(val = elem.getAttributeNode(name)) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\tnull;\n};\n\nSizzle.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\nSizzle.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\thasDuplicate = !support.detectDuplicates;\n\tsortInput = !support.sortStable && results.slice( 0 );\n\tresults.sort( sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( (elem = results[i++]) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tresults.splice( duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\n/**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\ngetText = Sizzle.getText = function( elem ) {\n\tvar node,\n\t\tret = \"\",\n\t\ti = 0,\n\t\tnodeType = elem.nodeType;\n\n\tif ( !nodeType ) {\n\t\t// If no nodeType, this is expected to be an array\n\t\twhile ( (node = elem[i++]) ) {\n\t\t\t// Do not traverse comment nodes\n\t\t\tret += getText( node );\n\t\t}\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\t\t// Use textContent for elements\n\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\n\t\tif ( typeof elem.textContent === \"string\" ) {\n\t\t\treturn elem.textContent;\n\t\t} else {\n\t\t\t// Traverse its children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tret += getText( elem );\n\t\t\t}\n\t\t}\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\treturn elem.nodeValue;\n\t}\n\t// Do not include comment or processing instruction nodes\n\n\treturn ret;\n};\n\nExpr = Sizzle.selectors = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\t\"ATTR\": function( match ) {\n\t\t\tmatch[1] = match[1].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[3] = ( match[3] || match[4] || match[5] || \"\" ).replace( runescape, funescape );\n\n\t\t\tif ( match[2] === \"~=\" ) {\n\t\t\t\tmatch[3] = \" \" + match[3] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\t\"CHILD\": function( match ) {\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[1] = match[1].toLowerCase();\n\n\t\t\tif ( match[1].slice( 0, 3 ) === \"nth\" ) {\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[3] ) {\n\t\t\t\t\tSizzle.error( match[0] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === \"even\" || match[3] === \"odd\" ) );\n\t\t\t\tmatch[5] = +( ( match[7] + match[8] ) || match[3] === \"odd\" );\n\n\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[3] ) {\n\t\t\t\tSizzle.error( match[0] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\t\"PSEUDO\": function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[6] && match[2];\n\n\t\t\tif ( matchExpr[\"CHILD\"].test( match[0] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[3] ) {\n\t\t\t\tmatch[2] = match[4] || match[5] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t(excess = tokenize( unquoted, true )) &&\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t(excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[0] = match[0].slice( 0, excess );\n\t\t\t\tmatch[2] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\t\"TAG\": function( nodeNameSelector ) {\n\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() { return true; } :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\t\t\t\t};\n\t\t},\n\n\t\t\"CLASS\": function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t(pattern = new RegExp( \"(^|\" + whitespace + \")\" + className + \"(\" + whitespace + \"|$)\" )) &&\n\t\t\t\tclassCache( className, function( elem ) {\n\t\t\t\t\treturn pattern.test( typeof elem.className === \"string\" && elem.className || typeof elem.getAttribute !== \"undefined\" && elem.getAttribute(\"class\") || \"\" );\n\t\t\t\t});\n\t\t},\n\n\t\t\"ATTR\": function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = Sizzle.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\treturn operator === \"=\" ? result === check :\n\t\t\t\t\toperator === \"!=\" ? result !== check :\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" ).indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\n\t\t\t\t\tfalse;\n\t\t\t};\n\t\t},\n\n\t\t\"CHILD\": function( type, what, argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, context, xml ) {\n\t\t\t\t\tvar cache, outerCache, node, diff, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( (node = node[ dir ]) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) {\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\t\t\t\t\t\t\touterCache = parent[ expando ] || (parent[ expando ] = {});\n\t\t\t\t\t\t\tcache = outerCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[0] === dirruns && cache[1];\n\t\t\t\t\t\t\tdiff = cache[0] === dirruns && cache[2];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\touterCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t} else if ( useCache && (cache = (elem[ expando ] || (elem[ expando ] = {}))[ type ]) && cache[0] === dirruns ) {\n\t\t\t\t\t\t\tdiff = cache[1];\n\n\t\t\t\t\t\t// xml :nth-child(...) or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\n\n\t\t\t\t\t\t\t\tif ( ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) && ++diff ) {\n\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t(node[ expando ] || (node[ expando ] = {}))[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\t\"PSEUDO\": function( pseudo, argument ) {\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as Sizzle does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction(function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf( seed, matched[i] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[i] );\n\t\t\t\t\t\t}\n\t\t\t\t\t}) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\t\t// Potentially complex pseudos\n\t\t\"not\": markFunction(function( selector ) {\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction(function( seed, matches, context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( (elem = unmatched[i]) ) {\n\t\t\t\t\t\t\tseed[i] = !(matches[i] = elem);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}) :\n\t\t\t\tfunction( elem, context, xml ) {\n\t\t\t\t\tinput[0] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\t\t\t\t\t// Don't keep the element (issue #299)\n\t\t\t\t\tinput[0] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t}),\n\n\t\t\"has\": markFunction(function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\t\t\t};\n\t\t}),\n\n\t\t\"contains\": markFunction(function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t}),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\n\t\t\"lang\": markFunction( function( lang ) {\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test(lang || \"\") ) {\n\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( (elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute(\"xml:lang\") || elem.getAttribute(\"lang\")) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( (elem = elem.parentNode) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t}),\n\n\t\t// Miscellaneous\n\t\t\"target\": function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\t\"root\": function( elem ) {\n\t\t\treturn elem === docElem;\n\t\t},\n\n\t\t\"focus\": function( elem ) {\n\t\t\treturn elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);\n\t\t},\n\n\t\t// Boolean properties\n\t\t\"enabled\": function( elem ) {\n\t\t\treturn elem.disabled === false;\n\t\t},\n\n\t\t\"disabled\": function( elem ) {\n\t\t\treturn elem.disabled === true;\n\t\t},\n\n\t\t\"checked\": function( elem ) {\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\t\t\treturn (nodeName === \"input\" && !!elem.checked) || (nodeName === \"option\" && !!elem.selected);\n\t\t},\n\n\t\t\"selected\": function( elem ) {\n\t\t\t// Accessing this property makes selected-by-default\n\t\t\t// options in Safari work properly\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\t\"empty\": function( elem ) {\n\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t// but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t\"parent\": function( elem ) {\n\t\t\treturn !Expr.pseudos[\"empty\"]( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\t\"header\": function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\t\"input\": function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\t\"button\": function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\n\t\t},\n\n\t\t\"text\": function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\t\t\t\telem.type === \"text\" &&\n\n\t\t\t\t// Support: IE<8\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n\t\t\t\t( (attr = elem.getAttribute(\"type\")) == null || attr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\t\"first\": createPositionalPseudo(function() {\n\t\t\treturn [ 0 ];\n\t\t}),\n\n\t\t\"last\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t}),\n\n\t\t\"eq\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t}),\n\n\t\t\"even\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"odd\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"lt\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"gt\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t})\n\t}\n};\n\nExpr.pseudos[\"nth\"] = Expr.pseudos[\"eq\"];\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\ntokenize = Sizzle.tokenize = function( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || (match = rcomma.exec( soFar )) ) {\n\t\t\tif ( match ) {\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[0].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( (tokens = []) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( (match = rcombinators.exec( soFar )) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push({\n\t\t\t\tvalue: matched,\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[0].replace( rtrim, \" \" )\n\t\t\t});\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||\n\t\t\t\t(match = preFilters[ type ]( match ))) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push({\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t});\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\treturn parseOnly ?\n\t\tsoFar.length :\n\t\tsoFar ?\n\t\t\tSizzle.error( selector ) :\n\t\t\t// Cache the tokens\n\t\t\ttokenCache( selector, groups ).slice( 0 );\n};\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[i].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tcheckNonElements = base && dir === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from dir caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || (elem[ expando ] = {});\n\t\t\t\t\t\tif ( (oldCache = outerCache[ dir ]) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn (newCache[ 2 ] = oldCache[ 2 ]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\touterCache[ dir ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[i]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[0];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tSizzle( selector, contexts[i], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( (elem = unmatched[i]) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction(function( seed, results, context, xml ) {\n\t\tvar temp, i, elem,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed || multipleContexts( selector || \"*\", context.nodeType ? [ context ] : context, [] ),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems,\n\n\t\t\tmatcherOut = matcher ?\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t\t[] :\n\n\t\t\t\t\t// ...otherwise use results directly\n\t\t\t\t\tresults :\n\t\t\t\tmatcherIn;\n\n\t\t// Find primary matches\n\t\tif ( matcher ) {\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( (elem = temp[i]) ) {\n\t\t\t\t\tmatcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( (elem = matcherOut[i]) ) {\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( (matcherIn[i] = elem) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, (matcherOut = []), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( (elem = matcherOut[i]) &&\n\t\t\t\t\t\t(temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) {\n\n\t\t\t\t\t\tseed[temp] = !(results[temp] = elem);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[0].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[\" \"],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\t\t\tvar ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\n\t\t\t\t(checkContext = context).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\t\t\t// Avoid hanging onto element (issue #299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( (matcher = Expr.relative[ tokens[i].type ]) ) {\n\t\t\tmatchers = [ addCombinator(elementMatcher( matchers ), matcher) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[j].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\t\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\t\ttokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" })\n\t\t\t\t\t).replace( rtrim, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( (tokens = tokens.slice( j )) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find[\"TAG\"]( \"*\", outermost ),\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\t\t\t\toutermostContext = context !== document && context;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Keep `i` a string if there are no elements so `matchedCount` will be \"00\" below\n\t\t\t// Support: IE<9, Safari\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: ) matching elements by id\n\t\t\tfor ( ; i !== len && (elem = elems[i]) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( (matcher = elementMatchers[j++]) ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( (elem = !matcher && elem) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\tmatchedCount += i;\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( (matcher = setMatchers[j++]) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !(unmatched[i] || setMatched[i]) ) {\n\t\t\t\t\t\t\t\tsetMatched[i] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tSizzle.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\ncompile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[i] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n};\n\n/**\n * A low-level selection function that works with Sizzle's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nselect = Sizzle.select = function( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( (selector = compiled.selector || selector) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is no seed and only one group\n\tif ( match.length === 1 ) {\n\n\t\t// Take a shortcut and set the context if the root selector is an ID\n\t\ttokens = match[0] = match[0].slice( 0 );\n\t\tif ( tokens.length > 2 && (token = tokens[0]).type === \"ID\" &&\n\t\t\t\tsupport.getById && context.nodeType === 9 && documentIsHTML &&\n\t\t\t\tExpr.relative[ tokens[1].type ] ) {\n\n\t\t\tcontext = ( Expr.find[\"ID\"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr[\"needsContext\"].test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[i];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ (type = token.type) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( (find = Expr.find[ type ]) ) {\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( (seed = find(\n\t\t\t\t\ttoken.matches[0].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context\n\t\t\t\t)) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\trsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n};\n\n// One-time assignments\n\n// Sort stability\nsupport.sortStable = expando.split(\"\").sort( sortOrder ).join(\"\") === expando;\n\n// Support: Chrome 14-35+\n// Always assume duplicates if they aren't passed to the comparison function\nsupport.detectDuplicates = !!hasDuplicate;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert(function( div1 ) {\n\t// Should return 1, but returns 4 (following)\n\treturn div1.compareDocumentPosition( document.createElement(\"div\") ) & 1;\n});\n\n// Support: IE<8\n// Prevent attribute/property \"interpolation\"\n// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !assert(function( div ) {\n\tdiv.innerHTML = \"\";\n\treturn div.firstChild.getAttribute(\"href\") === \"#\" ;\n}) ) {\n\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\n\t\tif ( !isXML ) {\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\n\t\t}\n\t});\n}\n\n// Support: IE<9\n// Use defaultValue in place of getAttribute(\"value\")\nif ( !support.attributes || !assert(function( div ) {\n\tdiv.innerHTML = \"\";\n\tdiv.firstChild.setAttribute( \"value\", \"\" );\n\treturn div.firstChild.getAttribute( \"value\" ) === \"\";\n}) ) {\n\taddHandle( \"value\", function( elem, name, isXML ) {\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\n\t\t\treturn elem.defaultValue;\n\t\t}\n\t});\n}\n\n// Support: IE<9\n// Use getAttributeNode to fetch booleans when getAttribute lies\nif ( !assert(function( div ) {\n\treturn div.getAttribute(\"disabled\") == null;\n}) ) {\n\taddHandle( booleans, function( elem, name, isXML ) {\n\t\tvar val;\n\t\tif ( !isXML ) {\n\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\n\t\t\t\t\t(val = elem.getAttributeNode( name )) && val.specified ?\n\t\t\t\t\tval.value :\n\t\t\t\tnull;\n\t\t}\n\t});\n}\n\nreturn Sizzle;\n\n})( window );\n\n\n\njQuery.find = Sizzle;\njQuery.expr = Sizzle.selectors;\njQuery.expr[\":\"] = jQuery.expr.pseudos;\njQuery.unique = Sizzle.uniqueSort;\njQuery.text = Sizzle.getText;\njQuery.isXMLDoc = Sizzle.isXML;\njQuery.contains = Sizzle.contains;\n\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\nvar rsingleTag = (/^<(\\w+)\\s*\\/?>(?:<\\/\\1>|)$/);\n\n\n\nvar risSimple = /^.[^:#\\[\\.,]*$/;\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( jQuery.isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\t/* jshint -W018 */\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t});\n\n\t}\n\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t});\n\n\t}\n\n\tif ( typeof qualifier === \"string\" ) {\n\t\tif ( risSimple.test( qualifier ) ) {\n\t\t\treturn jQuery.filter( qualifier, elements, not );\n\t\t}\n\n\t\tqualifier = jQuery.filter( qualifier, elements );\n\t}\n\n\treturn jQuery.grep( elements, function( elem ) {\n\t\treturn ( jQuery.inArray( elem, qualifier ) >= 0 ) !== not;\n\t});\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\treturn elems.length === 1 && elem.nodeType === 1 ?\n\t\tjQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] :\n\t\tjQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\t\treturn elem.nodeType === 1;\n\t\t}));\n};\n\njQuery.fn.extend({\n\tfind: function( selector ) {\n\t\tvar i,\n\t\t\tret = [],\n\t\t\tself = this,\n\t\t\tlen = self.length;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter(function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}) );\n\t\t}\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\t// Needed because $( selector, context ) becomes $( context ).find( selector )\n\t\tret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret );\n\t\tret.selector = this.selector ? this.selector + \" \" + selector : selector;\n\t\treturn ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow(this, selector || [], false) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow(this, selector || [], true) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n});\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// Use the correct document accordingly with window argument (sandbox)\n\tdocument = window.document,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over to avoid XSS via location.hash (#9521)\n\t// Strict HTML recognition (#11290: must start with <)\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]*))$/,\n\n\tinit = jQuery.fn.init = function( selector, context ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector.charAt(0) === \"<\" && selector.charAt( selector.length - 1 ) === \">\" && selector.length >= 3 ) {\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && (match[1] || !context) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[1] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[0] : context;\n\n\t\t\t\t\t// scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[1],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( jQuery.isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[2] );\n\n\t\t\t\t\t// Check parentNode to catch when Blackberry 4.6 returns\n\t\t\t\t\t// nodes that are no longer in the document #6963\n\t\t\t\t\tif ( elem && elem.parentNode ) {\n\t\t\t\t\t\t// Handle the case where IE and Opera return items\n\t\t\t\t\t\t// by name instead of ID\n\t\t\t\t\t\tif ( elem.id !== match[2] ) {\n\t\t\t\t\t\t\treturn rootjQuery.find( selector );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Otherwise, we inject the element directly into the jQuery object\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t\tthis[0] = elem;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.context = document;\n\t\t\t\t\tthis.selector = selector;\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || rootjQuery ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis.context = this[0] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( jQuery.isFunction( selector ) ) {\n\t\t\treturn typeof rootjQuery.ready !== \"undefined\" ?\n\t\t\t\trootjQuery.ready( selector ) :\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\tif ( selector.selector !== undefined ) {\n\t\t\tthis.selector = selector.selector;\n\t\t\tthis.context = selector.context;\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\t// methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.extend({\n\tdir: function( elem, dir, until ) {\n\t\tvar matched = [],\n\t\t\tcur = elem[ dir ];\n\n\t\twhile ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) {\n\t\t\tif ( cur.nodeType === 1 ) {\n\t\t\t\tmatched.push( cur );\n\t\t\t}\n\t\t\tcur = cur[dir];\n\t\t}\n\t\treturn matched;\n\t},\n\n\tsibling: function( n, elem ) {\n\t\tvar r = [];\n\n\t\tfor ( ; n; n = n.nextSibling ) {\n\t\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\t\tr.push( n );\n\t\t\t}\n\t\t}\n\n\t\treturn r;\n\t}\n});\n\njQuery.fn.extend({\n\thas: function( target ) {\n\t\tvar i,\n\t\t\ttargets = jQuery( target, this ),\n\t\t\tlen = targets.length;\n\n\t\treturn this.filter(function() {\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[i] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\tpos = rneedsContext.test( selectors ) || typeof selectors !== \"string\" ?\n\t\t\t\tjQuery( selectors, context || this.context ) :\n\t\t\t\t0;\n\n\t\tfor ( ; i < l; i++ ) {\n\t\t\tfor ( cur = this[i]; cur && cur !== context; cur = cur.parentNode ) {\n\t\t\t\t// Always skip document fragments\n\t\t\t\tif ( cur.nodeType < 11 && (pos ?\n\t\t\t\t\tpos.index(cur) > -1 :\n\n\t\t\t\t\t// Don't pass non-elements to Sizzle\n\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\tjQuery.find.matchesSelector(cur, selectors)) ) {\n\n\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.unique( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within\n\t// the matched set of elements\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[0] && this[0].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn jQuery.inArray( this[0], jQuery( elem ) );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn jQuery.inArray(\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[0] : elem, this );\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.unique(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter(selector)\n\t\t);\n\t}\n});\n\nfunction sibling( cur, dir ) {\n\tdo {\n\t\tcur = cur[ dir ];\n\t} while ( cur && cur.nodeType !== 1 );\n\n\treturn cur;\n}\n\njQuery.each({\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn jQuery.dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, i, until ) {\n\t\treturn jQuery.dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn jQuery.dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn jQuery.dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, i, until ) {\n\t\treturn jQuery.dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, i, until ) {\n\t\treturn jQuery.dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn jQuery.sibling( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\treturn jQuery.nodeName( elem, \"iframe\" ) ?\n\t\t\telem.contentDocument || elem.contentWindow.document :\n\t\t\tjQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar ret = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tret = jQuery.filter( selector, ret );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tret = jQuery.unique( ret );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tret = ret.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n});\nvar rnotwhite = (/\\S+/g);\n\n\n\n// String to Object options format cache\nvar optionsCache = {};\n\n// Convert String-formatted options into Object-formatted ones and store in cache\nfunction createOptions( options ) {\n\tvar object = optionsCache[ options ] = {};\n\tjQuery.each( options.match( rnotwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t});\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\t( optionsCache[ options ] || createOptions( options ) ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\t\t// Last fire value (for non-forgettable lists)\n\t\tmemory,\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\t\t// End of the loop when firing\n\t\tfiringLength,\n\t\t// Index of currently firing callback (modified by remove if needed)\n\t\tfiringIndex,\n\t\t// First callback to fire (used internally by add and fireWith)\n\t\tfiringStart,\n\t\t// Actual callback list\n\t\tlist = [],\n\t\t// Stack of fire calls for repeatable lists\n\t\tstack = !options.once && [],\n\t\t// Fire callbacks\n\t\tfire = function( data ) {\n\t\t\tmemory = options.memory && data;\n\t\t\tfired = true;\n\t\t\tfiringIndex = firingStart || 0;\n\t\t\tfiringStart = 0;\n\t\t\tfiringLength = list.length;\n\t\t\tfiring = true;\n\t\t\tfor ( ; list && firingIndex < firingLength; firingIndex++ ) {\n\t\t\t\tif ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) {\n\t\t\t\t\tmemory = false; // To prevent further calls using add\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tfiring = false;\n\t\t\tif ( list ) {\n\t\t\t\tif ( stack ) {\n\t\t\t\t\tif ( stack.length ) {\n\t\t\t\t\t\tfire( stack.shift() );\n\t\t\t\t\t}\n\t\t\t\t} else if ( memory ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t} else {\n\t\t\t\t\tself.disable();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t// Actual Callbacks object\n\t\tself = {\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\t// First, we save the current length\n\t\t\t\t\tvar start = list.length;\n\t\t\t\t\t(function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tvar type = jQuery.type( arg );\n\t\t\t\t\t\t\tif ( type === \"function\" ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && type !== \"string\" ) {\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t})( arguments );\n\t\t\t\t\t// Do we need to add the callbacks to the\n\t\t\t\t\t// current firing batch?\n\t\t\t\t\tif ( firing ) {\n\t\t\t\t\t\tfiringLength = list.length;\n\t\t\t\t\t// With memory, if we're not firing then\n\t\t\t\t\t// we should call right away\n\t\t\t\t\t} else if ( memory ) {\n\t\t\t\t\t\tfiringStart = start;\n\t\t\t\t\t\tfire( memory );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\t\tvar index;\n\t\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\t\tlist.splice( index, 1 );\n\t\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\t\tif ( firing ) {\n\t\t\t\t\t\t\t\tif ( index <= firingLength ) {\n\t\t\t\t\t\t\t\t\tfiringLength--;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ? jQuery.inArray( fn, list ) > -1 : !!( list && list.length );\n\t\t\t},\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tlist = [];\n\t\t\t\tfiringLength = 0;\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Have the list do nothing anymore\n\t\t\tdisable: function() {\n\t\t\t\tlist = stack = memory = undefined;\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Is it disabled?\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\t\t\t// Lock the list in its current state\n\t\t\tlock: function() {\n\t\t\t\tstack = undefined;\n\t\t\t\tif ( !memory ) {\n\t\t\t\t\tself.disable();\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Is it locked?\n\t\t\tlocked: function() {\n\t\t\t\treturn !stack;\n\t\t\t},\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( list && ( !fired || stack ) ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tif ( firing ) {\n\t\t\t\t\t\tstack.push( args );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfire( args );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\njQuery.extend({\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\t\t\t\t// action, add listener, listener list, final state\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks(\"once memory\"), \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks(\"once memory\"), \"rejected\" ],\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks(\"memory\") ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\tthen: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\t\t\t\t\treturn jQuery.Deferred(function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\t\t\t\t\tvar fn = jQuery.isFunction( fns[ i ] ) && fns[ i ];\n\t\t\t\t\t\t\t// deferred[ done | fail | progress ] for forwarding actions to newDefer\n\t\t\t\t\t\t\tdeferred[ tuple[1] ](function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && jQuery.isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject )\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ]( this === promise ? newDefer.promise() : this, fn ? [ returned ] : arguments );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t});\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t}).promise();\n\t\t\t\t},\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Keep pipe for back-compat\n\t\tpromise.pipe = promise.then;\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 3 ];\n\n\t\t\t// promise[ done | fail | progress ] = list.add\n\t\t\tpromise[ tuple[1] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(function() {\n\t\t\t\t\t// state = [ resolved | rejected ]\n\t\t\t\t\tstate = stateString;\n\n\t\t\t\t// [ reject_list | resolve_list ].disable; progress_list.lock\n\t\t\t\t}, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock );\n\t\t\t}\n\n\t\t\t// deferred[ resolve | reject | notify ]\n\t\t\tdeferred[ tuple[0] ] = function() {\n\t\t\t\tdeferred[ tuple[0] + \"With\" ]( this === deferred ? promise : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\t\t\tdeferred[ tuple[0] + \"With\" ] = list.fireWith;\n\t\t});\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( subordinate /* , ..., subordinateN */ ) {\n\t\tvar i = 0,\n\t\t\tresolveValues = slice.call( arguments ),\n\t\t\tlength = resolveValues.length,\n\n\t\t\t// the count of uncompleted subordinates\n\t\t\tremaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0,\n\n\t\t\t// the master Deferred. If resolveValues consist of only a single Deferred, just use that.\n\t\t\tdeferred = remaining === 1 ? subordinate : jQuery.Deferred(),\n\n\t\t\t// Update function for both resolve and progress values\n\t\t\tupdateFunc = function( i, contexts, values ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tcontexts[ i ] = this;\n\t\t\t\t\tvalues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( values === progressValues ) {\n\t\t\t\t\t\tdeferred.notifyWith( contexts, values );\n\n\t\t\t\t\t} else if ( !(--remaining) ) {\n\t\t\t\t\t\tdeferred.resolveWith( contexts, values );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t},\n\n\t\t\tprogressValues, progressContexts, resolveContexts;\n\n\t\t// add listeners to Deferred subordinates; treat others as resolved\n\t\tif ( length > 1 ) {\n\t\t\tprogressValues = new Array( length );\n\t\t\tprogressContexts = new Array( length );\n\t\t\tresolveContexts = new Array( length );\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) {\n\t\t\t\t\tresolveValues[ i ].promise()\n\t\t\t\t\t\t.done( updateFunc( i, resolveContexts, resolveValues ) )\n\t\t\t\t\t\t.fail( deferred.reject )\n\t\t\t\t\t\t.progress( updateFunc( i, progressContexts, progressValues ) );\n\t\t\t\t} else {\n\t\t\t\t\t--remaining;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// if we're not waiting on anything, resolve the master\n\t\tif ( !remaining ) {\n\t\t\tdeferred.resolveWith( resolveContexts, resolveValues );\n\t\t}\n\n\t\treturn deferred.promise();\n\t}\n});\n\n\n// The deferred used on DOM ready\nvar readyList;\n\njQuery.fn.ready = function( fn ) {\n\t// Add the callback\n\tjQuery.ready.promise().done( fn );\n\n\treturn this;\n};\n\njQuery.extend({\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See #6781\n\treadyWait: 1,\n\n\t// Hold (or release) the ready event\n\tholdReady: function( hold ) {\n\t\tif ( hold ) {\n\t\t\tjQuery.readyWait++;\n\t\t} else {\n\t\t\tjQuery.ready( true );\n\t\t}\n\t},\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443).\n\t\tif ( !document.body ) {\n\t\t\treturn setTimeout( jQuery.ready );\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\n\t\t// Trigger any bound ready events\n\t\tif ( jQuery.fn.triggerHandler ) {\n\t\t\tjQuery( document ).triggerHandler( \"ready\" );\n\t\t\tjQuery( document ).off( \"ready\" );\n\t\t}\n\t}\n});\n\n/**\n * Clean-up method for dom ready events\n */\nfunction detach() {\n\tif ( document.addEventListener ) {\n\t\tdocument.removeEventListener( \"DOMContentLoaded\", completed, false );\n\t\twindow.removeEventListener( \"load\", completed, false );\n\n\t} else {\n\t\tdocument.detachEvent( \"onreadystatechange\", completed );\n\t\twindow.detachEvent( \"onload\", completed );\n\t}\n}\n\n/**\n * The ready event handler and self cleanup method\n */\nfunction completed() {\n\t// readyState === \"complete\" is good enough for us to call the dom ready in oldIE\n\tif ( document.addEventListener || event.type === \"load\" || document.readyState === \"complete\" ) {\n\t\tdetach();\n\t\tjQuery.ready();\n\t}\n}\n\njQuery.ready.promise = function( obj ) {\n\tif ( !readyList ) {\n\n\t\treadyList = jQuery.Deferred();\n\n\t\t// Catch cases where $(document).ready() is called after the browser event has already occurred.\n\t\t// we once tried to use readyState \"interactive\" here, but it caused issues like the one\n\t\t// discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15\n\t\tif ( document.readyState === \"complete\" ) {\n\t\t\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\t\t\tsetTimeout( jQuery.ready );\n\n\t\t// Standards-based browsers support DOMContentLoaded\n\t\t} else if ( document.addEventListener ) {\n\t\t\t// Use the handy event callback\n\t\t\tdocument.addEventListener( \"DOMContentLoaded\", completed, false );\n\n\t\t\t// A fallback to window.onload, that will always work\n\t\t\twindow.addEventListener( \"load\", completed, false );\n\n\t\t// If IE event model is used\n\t\t} else {\n\t\t\t// Ensure firing before onload, maybe late but safe also for iframes\n\t\t\tdocument.attachEvent( \"onreadystatechange\", completed );\n\n\t\t\t// A fallback to window.onload, that will always work\n\t\t\twindow.attachEvent( \"onload\", completed );\n\n\t\t\t// If IE and not a frame\n\t\t\t// continually check to see if the document is ready\n\t\t\tvar top = false;\n\n\t\t\ttry {\n\t\t\t\ttop = window.frameElement == null && document.documentElement;\n\t\t\t} catch(e) {}\n\n\t\t\tif ( top && top.doScroll ) {\n\t\t\t\t(function doScrollCheck() {\n\t\t\t\t\tif ( !jQuery.isReady ) {\n\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t// Use the trick by Diego Perini\n\t\t\t\t\t\t\t// http://javascript.nwbox.com/IEContentLoaded/\n\t\t\t\t\t\t\ttop.doScroll(\"left\");\n\t\t\t\t\t\t} catch(e) {\n\t\t\t\t\t\t\treturn setTimeout( doScrollCheck, 50 );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// detach all dom ready events\n\t\t\t\t\t\tdetach();\n\n\t\t\t\t\t\t// and execute any waiting functions\n\t\t\t\t\t\tjQuery.ready();\n\t\t\t\t\t}\n\t\t\t\t})();\n\t\t\t}\n\t\t}\n\t}\n\treturn readyList.promise( obj );\n};\n\n\nvar strundefined = typeof undefined;\n\n\n\n// Support: IE<9\n// Iteration over object's inherited properties before its own\nvar i;\nfor ( i in jQuery( support ) ) {\n\tbreak;\n}\nsupport.ownLast = i !== \"0\";\n\n// Note: most support tests are defined in their respective modules.\n// false until the test is run\nsupport.inlineBlockNeedsLayout = false;\n\n// Execute ASAP in case we need to set body.style.zoom\njQuery(function() {\n\t// Minified: var a,b,c,d\n\tvar val, div, body, container;\n\n\tbody = document.getElementsByTagName( \"body\" )[ 0 ];\n\tif ( !body || !body.style ) {\n\t\t// Return for frameset docs that don't have a body\n\t\treturn;\n\t}\n\n\t// Setup\n\tdiv = document.createElement( \"div\" );\n\tcontainer = document.createElement( \"div\" );\n\tcontainer.style.cssText = \"position:absolute;border:0;width:0;height:0;top:0;left:-9999px\";\n\tbody.appendChild( container ).appendChild( div );\n\n\tif ( typeof div.style.zoom !== strundefined ) {\n\t\t// Support: IE<8\n\t\t// Check if natively block-level elements act like inline-block\n\t\t// elements when setting their display to 'inline' and giving\n\t\t// them layout\n\t\tdiv.style.cssText = \"display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1\";\n\n\t\tsupport.inlineBlockNeedsLayout = val = div.offsetWidth === 3;\n\t\tif ( val ) {\n\t\t\t// Prevent IE 6 from affecting layout for positioned elements #11048\n\t\t\t// Prevent IE from shrinking the body in IE 7 mode #12869\n\t\t\t// Support: IE<8\n\t\t\tbody.style.zoom = 1;\n\t\t}\n\t}\n\n\tbody.removeChild( container );\n});\n\n\n\n\n(function() {\n\tvar div = document.createElement( \"div\" );\n\n\t// Execute the test only if not already executed in another module.\n\tif (support.deleteExpando == null) {\n\t\t// Support: IE<9\n\t\tsupport.deleteExpando = true;\n\t\ttry {\n\t\t\tdelete div.test;\n\t\t} catch( e ) {\n\t\t\tsupport.deleteExpando = false;\n\t\t}\n\t}\n\n\t// Null elements to avoid leaks in IE.\n\tdiv = null;\n})();\n\n\n/**\n * Determines whether an object can have data\n */\njQuery.acceptData = function( elem ) {\n\tvar noData = jQuery.noData[ (elem.nodeName + \" \").toLowerCase() ],\n\t\tnodeType = +elem.nodeType || 1;\n\n\t// Do not set data on non-element DOM nodes because it will not be cleared (#8335).\n\treturn nodeType !== 1 && nodeType !== 9 ?\n\t\tfalse :\n\n\t\t// Nodes accept data unless otherwise specified; rejection can be conditional\n\t\t!noData || noData !== true && elem.getAttribute(\"classid\") === noData;\n};\n\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /([A-Z])/g;\n\nfunction dataAttr( elem, key, data ) {\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\n\t\tvar name = \"data-\" + key.replace( rmultiDash, \"-$1\" ).toLowerCase();\n\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = data === \"true\" ? true :\n\t\t\t\t\tdata === \"false\" ? false :\n\t\t\t\t\tdata === \"null\" ? null :\n\t\t\t\t\t// Only convert to a number if it doesn't change the string\n\t\t\t\t\t+data + \"\" === data ? +data :\n\t\t\t\t\trbrace.test( data ) ? jQuery.parseJSON( data ) :\n\t\t\t\t\tdata;\n\t\t\t} catch( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tjQuery.data( elem, key, data );\n\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\n\treturn data;\n}\n\n// checks a cache object for emptiness\nfunction isEmptyDataObject( obj ) {\n\tvar name;\n\tfor ( name in obj ) {\n\n\t\t// if the public data object is empty, the private is still empty\n\t\tif ( name === \"data\" && jQuery.isEmptyObject( obj[name] ) ) {\n\t\t\tcontinue;\n\t\t}\n\t\tif ( name !== \"toJSON\" ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n}\n\nfunction internalData( elem, name, data, pvt /* Internal Use Only */ ) {\n\tif ( !jQuery.acceptData( elem ) ) {\n\t\treturn;\n\t}\n\n\tvar ret, thisCache,\n\t\tinternalKey = jQuery.expando,\n\n\t\t// We have to handle DOM nodes and JS objects differently because IE6-7\n\t\t// can't GC object references properly across the DOM-JS boundary\n\t\tisNode = elem.nodeType,\n\n\t\t// Only DOM nodes need the global jQuery cache; JS object data is\n\t\t// attached directly to the object so GC can occur automatically\n\t\tcache = isNode ? jQuery.cache : elem,\n\n\t\t// Only defining an ID for JS objects if its cache already exists allows\n\t\t// the code to shortcut on the same path as a DOM node with no cache\n\t\tid = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey;\n\n\t// Avoid doing any more work than we need to when trying to get data on an\n\t// object that has no data at all\n\tif ( (!id || !cache[id] || (!pvt && !cache[id].data)) && data === undefined && typeof name === \"string\" ) {\n\t\treturn;\n\t}\n\n\tif ( !id ) {\n\t\t// Only DOM nodes need a new unique ID for each element since their data\n\t\t// ends up in the global cache\n\t\tif ( isNode ) {\n\t\t\tid = elem[ internalKey ] = deletedIds.pop() || jQuery.guid++;\n\t\t} else {\n\t\t\tid = internalKey;\n\t\t}\n\t}\n\n\tif ( !cache[ id ] ) {\n\t\t// Avoid exposing jQuery metadata on plain JS objects when the object\n\t\t// is serialized using JSON.stringify\n\t\tcache[ id ] = isNode ? {} : { toJSON: jQuery.noop };\n\t}\n\n\t// An object can be passed to jQuery.data instead of a key/value pair; this gets\n\t// shallow copied over onto the existing cache\n\tif ( typeof name === \"object\" || typeof name === \"function\" ) {\n\t\tif ( pvt ) {\n\t\t\tcache[ id ] = jQuery.extend( cache[ id ], name );\n\t\t} else {\n\t\t\tcache[ id ].data = jQuery.extend( cache[ id ].data, name );\n\t\t}\n\t}\n\n\tthisCache = cache[ id ];\n\n\t// jQuery data() is stored in a separate object inside the object's internal data\n\t// cache in order to avoid key collisions between internal data and user-defined\n\t// data.\n\tif ( !pvt ) {\n\t\tif ( !thisCache.data ) {\n\t\t\tthisCache.data = {};\n\t\t}\n\n\t\tthisCache = thisCache.data;\n\t}\n\n\tif ( data !== undefined ) {\n\t\tthisCache[ jQuery.camelCase( name ) ] = data;\n\t}\n\n\t// Check for both converted-to-camel and non-converted data property names\n\t// If a data property was specified\n\tif ( typeof name === \"string\" ) {\n\n\t\t// First Try to find as-is property data\n\t\tret = thisCache[ name ];\n\n\t\t// Test for null|undefined property data\n\t\tif ( ret == null ) {\n\n\t\t\t// Try to find the camelCased property\n\t\t\tret = thisCache[ jQuery.camelCase( name ) ];\n\t\t}\n\t} else {\n\t\tret = thisCache;\n\t}\n\n\treturn ret;\n}\n\nfunction internalRemoveData( elem, name, pvt ) {\n\tif ( !jQuery.acceptData( elem ) ) {\n\t\treturn;\n\t}\n\n\tvar thisCache, i,\n\t\tisNode = elem.nodeType,\n\n\t\t// See jQuery.data for more information\n\t\tcache = isNode ? jQuery.cache : elem,\n\t\tid = isNode ? elem[ jQuery.expando ] : jQuery.expando;\n\n\t// If there is already no cache entry for this object, there is no\n\t// purpose in continuing\n\tif ( !cache[ id ] ) {\n\t\treturn;\n\t}\n\n\tif ( name ) {\n\n\t\tthisCache = pvt ? cache[ id ] : cache[ id ].data;\n\n\t\tif ( thisCache ) {\n\n\t\t\t// Support array or space separated string names for data keys\n\t\t\tif ( !jQuery.isArray( name ) ) {\n\n\t\t\t\t// try the string as a key before any manipulation\n\t\t\t\tif ( name in thisCache ) {\n\t\t\t\t\tname = [ name ];\n\t\t\t\t} else {\n\n\t\t\t\t\t// split the camel cased version by spaces unless a key with the spaces exists\n\t\t\t\t\tname = jQuery.camelCase( name );\n\t\t\t\t\tif ( name in thisCache ) {\n\t\t\t\t\t\tname = [ name ];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tname = name.split(\" \");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// If \"name\" is an array of keys...\n\t\t\t\t// When data is initially created, via (\"key\", \"val\") signature,\n\t\t\t\t// keys will be converted to camelCase.\n\t\t\t\t// Since there is no way to tell _how_ a key was added, remove\n\t\t\t\t// both plain key and camelCase key. #12786\n\t\t\t\t// This will only penalize the array argument path.\n\t\t\t\tname = name.concat( jQuery.map( name, jQuery.camelCase ) );\n\t\t\t}\n\n\t\t\ti = name.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete thisCache[ name[i] ];\n\t\t\t}\n\n\t\t\t// If there is no data left in the cache, we want to continue\n\t\t\t// and let the cache object itself get destroyed\n\t\t\tif ( pvt ? !isEmptyDataObject(thisCache) : !jQuery.isEmptyObject(thisCache) ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t}\n\n\t// See jQuery.data for more information\n\tif ( !pvt ) {\n\t\tdelete cache[ id ].data;\n\n\t\t// Don't destroy the parent cache unless the internal data object\n\t\t// had been the only thing left in it\n\t\tif ( !isEmptyDataObject( cache[ id ] ) ) {\n\t\t\treturn;\n\t\t}\n\t}\n\n\t// Destroy the cache\n\tif ( isNode ) {\n\t\tjQuery.cleanData( [ elem ], true );\n\n\t// Use delete when supported for expandos or `cache` is not a window per isWindow (#10080)\n\t/* jshint eqeqeq: false */\n\t} else if ( support.deleteExpando || cache != cache.window ) {\n\t\t/* jshint eqeqeq: true */\n\t\tdelete cache[ id ];\n\n\t// When all else fails, null\n\t} else {\n\t\tcache[ id ] = null;\n\t}\n}\n\njQuery.extend({\n\tcache: {},\n\n\t// The following elements (space-suffixed to avoid Object.prototype collisions)\n\t// throw uncatchable exceptions if you attempt to set expando properties\n\tnoData: {\n\t\t\"applet \": true,\n\t\t\"embed \": true,\n\t\t// ...but Flash objects (which have this classid) *can* handle expandos\n\t\t\"object \": \"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\"\n\t},\n\n\thasData: function( elem ) {\n\t\telem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ];\n\t\treturn !!elem && !isEmptyDataObject( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn internalData( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\treturn internalRemoveData( elem, name );\n\t},\n\n\t// For internal use only.\n\t_data: function( elem, name, data ) {\n\t\treturn internalData( elem, name, data, true );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\treturn internalRemoveData( elem, name, true );\n\t}\n});\n\njQuery.fn.extend({\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[0],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Special expections of .data basically thwart jQuery.access,\n\t\t// so implement the relevant behavior ourselves\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = jQuery.data( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !jQuery._data( elem, \"parsedAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE11+\n\t\t\t\t\t\t// The attrs elements can be null (#14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = jQuery.camelCase( name.slice(5) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tjQuery._data( elem, \"parsedAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each(function() {\n\t\t\t\tjQuery.data( this, key );\n\t\t\t});\n\t\t}\n\n\t\treturn arguments.length > 1 ?\n\n\t\t\t// Sets one value\n\t\t\tthis.each(function() {\n\t\t\t\tjQuery.data( this, key, value );\n\t\t\t}) :\n\n\t\t\t// Gets one value\n\t\t\t// Try to fetch any internally stored data first\n\t\t\telem ? dataAttr( elem, key, jQuery.data( elem, key ) ) : undefined;\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each(function() {\n\t\t\tjQuery.removeData( this, key );\n\t\t});\n\t}\n});\n\n\njQuery.extend({\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = jQuery._data( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || jQuery.isArray(data) ) {\n\t\t\t\t\tqueue = jQuery._data( elem, type, jQuery.makeArray(data) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// not intended for public consumption - generates a queueHooks object, or returns the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn jQuery._data( elem, key ) || jQuery._data( elem, key, {\n\t\t\tempty: jQuery.Callbacks(\"once memory\").add(function() {\n\t\t\t\tjQuery._removeData( elem, type + \"queue\" );\n\t\t\t\tjQuery._removeData( elem, key );\n\t\t\t})\n\t\t});\n\t}\n});\n\njQuery.fn.extend({\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[0], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each(function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[0] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t});\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each(function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t});\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = jQuery._data( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n});\nvar pnum = (/[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/).source;\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar isHidden = function( elem, el ) {\n\t\t// isHidden might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\t\treturn jQuery.css( elem, \"display\" ) === \"none\" || !jQuery.contains( elem.ownerDocument, elem );\n\t};\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = jQuery.access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlength = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( jQuery.type( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\tjQuery.access( elems, fn, i, key[i], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !jQuery.isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tfn( elems[i], key, raw ? value : value.call( elems[i], i, fn( elems[i], key ) ) );\n\t\t\t}\n\t\t}\n\t}\n\n\treturn chainable ?\n\t\telems :\n\n\t\t// Gets\n\t\tbulk ?\n\t\t\tfn.call( elems ) :\n\t\t\tlength ? fn( elems[0], key ) : emptyGet;\n};\nvar rcheckableType = (/^(?:checkbox|radio)$/i);\n\n\n\n(function() {\n\t// Minified: var a,b,c\n\tvar input = document.createElement( \"input\" ),\n\t\tdiv = document.createElement( \"div\" ),\n\t\tfragment = document.createDocumentFragment();\n\n\t// Setup\n\tdiv.innerHTML = \"
a\";\n\n\t// IE strips leading whitespace when .innerHTML is used\n\tsupport.leadingWhitespace = div.firstChild.nodeType === 3;\n\n\t// Make sure that tbody elements aren't automatically inserted\n\t// IE will insert them into empty tables\n\tsupport.tbody = !div.getElementsByTagName( \"tbody\" ).length;\n\n\t// Make sure that link elements get serialized correctly by innerHTML\n\t// This requires a wrapper element in IE\n\tsupport.htmlSerialize = !!div.getElementsByTagName( \"link\" ).length;\n\n\t// Makes sure cloning an html5 element does not cause problems\n\t// Where outerHTML is undefined, this still works\n\tsupport.html5Clone =\n\t\tdocument.createElement( \"nav\" ).cloneNode( true ).outerHTML !== \"<:nav>\";\n\n\t// Check if a disconnected checkbox will retain its checked\n\t// value of true after appended to the DOM (IE6/7)\n\tinput.type = \"checkbox\";\n\tinput.checked = true;\n\tfragment.appendChild( input );\n\tsupport.appendChecked = input.checked;\n\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\t// Support: IE6-IE11+\n\tdiv.innerHTML = \"\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n\n\t// #11217 - WebKit loses check when the name is after the checked attribute\n\tfragment.appendChild( div );\n\tdiv.innerHTML = \"\";\n\n\t// Support: Safari 5.1, iOS 5.1, Android 4.x, Android 2.3\n\t// old WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE<9\n\t// Opera does not clone events (and typeof div.attachEvent === undefined).\n\t// IE9-10 clones events bound via attachEvent, but they don't trigger with .click()\n\tsupport.noCloneEvent = true;\n\tif ( div.attachEvent ) {\n\t\tdiv.attachEvent( \"onclick\", function() {\n\t\t\tsupport.noCloneEvent = false;\n\t\t});\n\n\t\tdiv.cloneNode( true ).click();\n\t}\n\n\t// Execute the test only if not already executed in another module.\n\tif (support.deleteExpando == null) {\n\t\t// Support: IE<9\n\t\tsupport.deleteExpando = true;\n\t\ttry {\n\t\t\tdelete div.test;\n\t\t} catch( e ) {\n\t\t\tsupport.deleteExpando = false;\n\t\t}\n\t}\n})();\n\n\n(function() {\n\tvar i, eventName,\n\t\tdiv = document.createElement( \"div\" );\n\n\t// Support: IE<9 (lack submit/change bubble), Firefox 23+ (lack focusin event)\n\tfor ( i in { submit: true, change: true, focusin: true }) {\n\t\teventName = \"on\" + i;\n\n\t\tif ( !(support[ i + \"Bubbles\" ] = eventName in window) ) {\n\t\t\t// Beware of CSP restrictions (https://developer.mozilla.org/en/Security/CSP)\n\t\t\tdiv.setAttribute( eventName, \"t\" );\n\t\t\tsupport[ i + \"Bubbles\" ] = div.attributes[ eventName ].expando === false;\n\t\t}\n\t}\n\n\t// Null elements to avoid leaks in IE.\n\tdiv = null;\n})();\n\n\nvar rformElems = /^(?:input|select|textarea)$/i,\n\trkeyEvent = /^key/,\n\trmouseEvent = /^(?:mouse|pointer|contextmenu)|click/,\n\trfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\trtypenamespace = /^([^.]*)(?:\\.(.+)|)$/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\t\tvar tmp, events, t, handleObjIn,\n\t\t\tspecial, eventHandle, handleObj,\n\t\t\thandlers, type, namespaces, origType,\n\t\t\telemData = jQuery._data( elem );\n\n\t\t// Don't attach events to noData or text/comment nodes (but allow plain objects)\n\t\tif ( !elemData ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !(events = elemData.events) ) {\n\t\t\tevents = elemData.events = {};\n\t\t}\n\t\tif ( !(eventHandle = elemData.handle) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== strundefined && (!e || jQuery.event.triggered !== e.type) ?\n\t\t\t\t\tjQuery.event.dispatch.apply( eventHandle.elem, arguments ) :\n\t\t\t\t\tundefined;\n\t\t\t};\n\t\t\t// Add elem as a property of the handle fn to prevent a memory leak with IE non-native events\n\t\t\teventHandle.elem = elem;\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnotwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[t] ) || [];\n\t\t\ttype = origType = tmp[1];\n\t\t\tnamespaces = ( tmp[2] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend({\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join(\".\")\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !(handlers = events[ type ]) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener/attachEvent if the special events handler returns false\n\t\t\t\tif ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\t\t\t\t\t// Bind the global event handler to the element\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle, false );\n\n\t\t\t\t\t} else if ( elem.attachEvent ) {\n\t\t\t\t\t\telem.attachEvent( \"on\" + type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t\t// Nullify elem to prevent memory leaks in IE\n\t\telem = null;\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\t\tvar j, handleObj, tmp,\n\t\t\torigCount, t, events,\n\t\t\tspecial, handlers, type,\n\t\t\tnamespaces, origType,\n\t\t\telemData = jQuery.hasData( elem ) && jQuery._data( elem );\n\n\t\tif ( !elemData || !(events = elemData.events) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnotwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[t] ) || [];\n\t\t\ttype = origType = tmp[1];\n\t\t\tnamespaces = ( tmp[2] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[2] && new RegExp( \"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector || selector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdelete elemData.handle;\n\n\t\t\t// removeData also checks for emptiness and clears the expando if empty\n\t\t\t// so use it instead of delete\n\t\t\tjQuery._removeData( elem, \"events\" );\n\t\t}\n\t},\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\t\tvar handle, ontype, cur,\n\t\t\tbubbleType, special, tmp, i,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split(\".\") : [];\n\n\t\tcur = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf(\".\") >= 0 ) {\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split(\".\");\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf(\":\") < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join(\".\");\n\t\tevent.namespace_re = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (#9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === (elem.ownerDocument || document) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( (cur = eventPath[i++]) && !event.isPropagationStopped() ) {\n\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = ( jQuery._data( cur, \"events\" ) || {} )[ event.type ] && jQuery._data( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && jQuery.acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( (!special._default || special._default.apply( eventPath.pop(), data ) === false) &&\n\t\t\t\tjQuery.acceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name name as the event.\n\t\t\t\t// Can't use an .isFunction() check here because IE6/7 fails that test.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (#6170)\n\t\t\t\tif ( ontype && elem[ type ] && !jQuery.isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\t\t\t\t\ttry {\n\t\t\t\t\t\telem[ type ]();\n\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t// IE<9 dies on focus/blur to hidden element (#1486,#12518)\n\t\t\t\t\t\t// only reproducible on winXP IE8 native, not IE9 in IE8 mode\n\t\t\t\t\t}\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\tdispatch: function( event ) {\n\n\t\t// Make a writable jQuery.Event from the native event object\n\t\tevent = jQuery.event.fix( event );\n\n\t\tvar i, ret, handleObj, matched, j,\n\t\t\thandlerQueue = [],\n\t\t\targs = slice.call( arguments ),\n\t\t\thandlers = ( jQuery._data( this, \"events\" ) || {} )[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[0] = event;\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( (matched = handlerQueue[ i++ ]) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( (handleObj = matched.handlers[ j++ ]) && !event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// Triggered event must either 1) have no namespace, or\n\t\t\t\t// 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace).\n\t\t\t\tif ( !event.namespace_re || event.namespace_re.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler )\n\t\t\t\t\t\t\t.apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( (event.result = ret) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar sel, handleObj, matches, i,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\t// Black-hole SVG instance trees (#13180)\n\t\t// Avoid non-left-click bubbling in Firefox (#3861)\n\t\tif ( delegateCount && cur.nodeType && (!event.button || event.type !== \"click\") ) {\n\n\t\t\t/* jshint eqeqeq: false */\n\t\t\tfor ( ; cur != this; cur = cur.parentNode || this ) {\n\t\t\t\t/* jshint eqeqeq: true */\n\n\t\t\t\t// Don't check non-elements (#13208)\n\t\t\t\t// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n\t\t\t\tif ( cur.nodeType === 1 && (cur.disabled !== true || event.type !== \"click\") ) {\n\t\t\t\t\tmatches = [];\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (#13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matches[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatches[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) >= 0 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matches[ sel ] ) {\n\t\t\t\t\t\t\tmatches.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matches.length ) {\n\t\t\t\t\t\thandlerQueue.push({ elem: cur, handlers: matches });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push({ elem: this, handlers: handlers.slice( delegateCount ) });\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\tfix: function( event ) {\n\t\tif ( event[ jQuery.expando ] ) {\n\t\t\treturn event;\n\t\t}\n\n\t\t// Create a writable copy of the event object and normalize some properties\n\t\tvar i, prop, copy,\n\t\t\ttype = event.type,\n\t\t\toriginalEvent = event,\n\t\t\tfixHook = this.fixHooks[ type ];\n\n\t\tif ( !fixHook ) {\n\t\t\tthis.fixHooks[ type ] = fixHook =\n\t\t\t\trmouseEvent.test( type ) ? this.mouseHooks :\n\t\t\t\trkeyEvent.test( type ) ? this.keyHooks :\n\t\t\t\t{};\n\t\t}\n\t\tcopy = fixHook.props ? this.props.concat( fixHook.props ) : this.props;\n\n\t\tevent = new jQuery.Event( originalEvent );\n\n\t\ti = copy.length;\n\t\twhile ( i-- ) {\n\t\t\tprop = copy[ i ];\n\t\t\tevent[ prop ] = originalEvent[ prop ];\n\t\t}\n\n\t\t// Support: IE<9\n\t\t// Fix target property (#1925)\n\t\tif ( !event.target ) {\n\t\t\tevent.target = originalEvent.srcElement || document;\n\t\t}\n\n\t\t// Support: Chrome 23+, Safari?\n\t\t// Target should not be a text node (#504, #13143)\n\t\tif ( event.target.nodeType === 3 ) {\n\t\t\tevent.target = event.target.parentNode;\n\t\t}\n\n\t\t// Support: IE<9\n\t\t// For mouse/key events, metaKey==false if it's undefined (#3368, #11328)\n\t\tevent.metaKey = !!event.metaKey;\n\n\t\treturn fixHook.filter ? fixHook.filter( event, originalEvent ) : event;\n\t},\n\n\t// Includes some event props shared by KeyEvent and MouseEvent\n\tprops: \"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which\".split(\" \"),\n\n\tfixHooks: {},\n\n\tkeyHooks: {\n\t\tprops: \"char charCode key keyCode\".split(\" \"),\n\t\tfilter: function( event, original ) {\n\n\t\t\t// Add which for key events\n\t\t\tif ( event.which == null ) {\n\t\t\t\tevent.which = original.charCode != null ? original.charCode : original.keyCode;\n\t\t\t}\n\n\t\t\treturn event;\n\t\t}\n\t},\n\n\tmouseHooks: {\n\t\tprops: \"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement\".split(\" \"),\n\t\tfilter: function( event, original ) {\n\t\t\tvar body, eventDoc, doc,\n\t\t\t\tbutton = original.button,\n\t\t\t\tfromElement = original.fromElement;\n\n\t\t\t// Calculate pageX/Y if missing and clientX/Y available\n\t\t\tif ( event.pageX == null && original.clientX != null ) {\n\t\t\t\teventDoc = event.target.ownerDocument || document;\n\t\t\t\tdoc = eventDoc.documentElement;\n\t\t\t\tbody = eventDoc.body;\n\n\t\t\t\tevent.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 );\n\t\t\t\tevent.pageY = original.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && body.clientTop || 0 );\n\t\t\t}\n\n\t\t\t// Add relatedTarget, if necessary\n\t\t\tif ( !event.relatedTarget && fromElement ) {\n\t\t\t\tevent.relatedTarget = fromElement === event.target ? original.toElement : fromElement;\n\t\t\t}\n\n\t\t\t// Add which for click: 1 === left; 2 === middle; 3 === right\n\t\t\t// Note: button is not normalized, so don't use it\n\t\t\tif ( !event.which && button !== undefined ) {\n\t\t\t\tevent.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) );\n\t\t\t}\n\n\t\t\treturn event;\n\t\t}\n\t},\n\n\tspecial: {\n\t\tload: {\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tfocus: {\n\t\t\t// Fire native event if possible so blur/focus sequence is correct\n\t\t\ttrigger: function() {\n\t\t\t\tif ( this !== safeActiveElement() && this.focus ) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tthis.focus();\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t// Support: IE<9\n\t\t\t\t\t\t// If we error on focus to hidden element (#1486, #12518),\n\t\t\t\t\t\t// let .trigger() run the handlers\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tdelegateType: \"focusin\"\n\t\t},\n\t\tblur: {\n\t\t\ttrigger: function() {\n\t\t\t\tif ( this === safeActiveElement() && this.blur ) {\n\t\t\t\t\tthis.blur();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdelegateType: \"focusout\"\n\t\t},\n\t\tclick: {\n\t\t\t// For checkbox, fire native event so checked state will be right\n\t\t\ttrigger: function() {\n\t\t\t\tif ( jQuery.nodeName( this, \"input\" ) && this.type === \"checkbox\" && this.click ) {\n\t\t\t\t\tthis.click();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, don't fire native .click() on links\n\t\t\t_default: function( event ) {\n\t\t\t\treturn jQuery.nodeName( event.target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tsimulate: function( type, elem, event, bubble ) {\n\t\t// Piggyback on a donor event to simulate a different one.\n\t\t// Fake originalEvent to avoid donor's stopPropagation, but if the\n\t\t// simulated event prevents default then we do the same on the donor.\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true,\n\t\t\t\toriginalEvent: {}\n\t\t\t}\n\t\t);\n\t\tif ( bubble ) {\n\t\t\tjQuery.event.trigger( e, null, elem );\n\t\t} else {\n\t\t\tjQuery.event.dispatch.call( elem, e );\n\t\t}\n\t\tif ( e.isDefaultPrevented() ) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t}\n};\n\njQuery.removeEvent = document.removeEventListener ?\n\tfunction( elem, type, handle ) {\n\t\tif ( elem.removeEventListener ) {\n\t\t\telem.removeEventListener( type, handle, false );\n\t\t}\n\t} :\n\tfunction( elem, type, handle ) {\n\t\tvar name = \"on\" + type;\n\n\t\tif ( elem.detachEvent ) {\n\n\t\t\t// #8545, #7054, preventing memory leaks for custom events in IE6-8\n\t\t\t// detachEvent needed property on element, by name of that event, to properly expose it to GC\n\t\t\tif ( typeof elem[ name ] === strundefined ) {\n\t\t\t\telem[ name ] = null;\n\t\t\t}\n\n\t\t\telem.detachEvent( name, handle );\n\t\t}\n\t};\n\njQuery.Event = function( src, props ) {\n\t// Allow instantiation without the 'new' keyword\n\tif ( !(this instanceof jQuery.Event) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\t\t\t\t// Support: IE < 9, Android < 4.0\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || jQuery.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\t\tif ( !e ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If preventDefault exists, run it on the original event\n\t\tif ( e.preventDefault ) {\n\t\t\te.preventDefault();\n\n\t\t// Support: IE\n\t\t// Otherwise set the returnValue property of the original event to false\n\t\t} else {\n\t\t\te.returnValue = false;\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\t\tif ( !e ) {\n\t\t\treturn;\n\t\t}\n\t\t// If stopPropagation exists, run it on the original event\n\t\tif ( e.stopPropagation ) {\n\t\t\te.stopPropagation();\n\t\t}\n\n\t\t// Support: IE\n\t\t// Set the cancelBubble property of the original event to true\n\t\te.cancelBubble = true;\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && e.stopImmediatePropagation ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\njQuery.each({\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mousenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || (related !== target && !jQuery.contains( target, related )) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n});\n\n// IE submit delegation\nif ( !support.submitBubbles ) {\n\n\tjQuery.event.special.submit = {\n\t\tsetup: function() {\n\t\t\t// Only need this for delegated form submit events\n\t\t\tif ( jQuery.nodeName( this, \"form\" ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// Lazy-add a submit handler when a descendant form may potentially be submitted\n\t\t\tjQuery.event.add( this, \"click._submit keypress._submit\", function( e ) {\n\t\t\t\t// Node name check avoids a VML-related crash in IE (#9807)\n\t\t\t\tvar elem = e.target,\n\t\t\t\t\tform = jQuery.nodeName( elem, \"input\" ) || jQuery.nodeName( elem, \"button\" ) ? elem.form : undefined;\n\t\t\t\tif ( form && !jQuery._data( form, \"submitBubbles\" ) ) {\n\t\t\t\t\tjQuery.event.add( form, \"submit._submit\", function( event ) {\n\t\t\t\t\t\tevent._submit_bubble = true;\n\t\t\t\t\t});\n\t\t\t\t\tjQuery._data( form, \"submitBubbles\", true );\n\t\t\t\t}\n\t\t\t});\n\t\t\t// return undefined since we don't need an event listener\n\t\t},\n\n\t\tpostDispatch: function( event ) {\n\t\t\t// If form was submitted by the user, bubble the event up the tree\n\t\t\tif ( event._submit_bubble ) {\n\t\t\t\tdelete event._submit_bubble;\n\t\t\t\tif ( this.parentNode && !event.isTrigger ) {\n\t\t\t\t\tjQuery.event.simulate( \"submit\", this.parentNode, event, true );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tteardown: function() {\n\t\t\t// Only need this for delegated form submit events\n\t\t\tif ( jQuery.nodeName( this, \"form\" ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// Remove delegated handlers; cleanData eventually reaps submit handlers attached above\n\t\t\tjQuery.event.remove( this, \"._submit\" );\n\t\t}\n\t};\n}\n\n// IE change delegation and checkbox/radio fix\nif ( !support.changeBubbles ) {\n\n\tjQuery.event.special.change = {\n\n\t\tsetup: function() {\n\n\t\t\tif ( rformElems.test( this.nodeName ) ) {\n\t\t\t\t// IE doesn't fire change on a check/radio until blur; trigger it on click\n\t\t\t\t// after a propertychange. Eat the blur-change in special.change.handle.\n\t\t\t\t// This still fires onchange a second time for check/radio after blur.\n\t\t\t\tif ( this.type === \"checkbox\" || this.type === \"radio\" ) {\n\t\t\t\t\tjQuery.event.add( this, \"propertychange._change\", function( event ) {\n\t\t\t\t\t\tif ( event.originalEvent.propertyName === \"checked\" ) {\n\t\t\t\t\t\t\tthis._just_changed = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tjQuery.event.add( this, \"click._change\", function( event ) {\n\t\t\t\t\t\tif ( this._just_changed && !event.isTrigger ) {\n\t\t\t\t\t\t\tthis._just_changed = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Allow triggered, simulated change events (#11500)\n\t\t\t\t\t\tjQuery.event.simulate( \"change\", this, event, true );\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\t// Delegated event; lazy-add a change handler on descendant inputs\n\t\t\tjQuery.event.add( this, \"beforeactivate._change\", function( e ) {\n\t\t\t\tvar elem = e.target;\n\n\t\t\t\tif ( rformElems.test( elem.nodeName ) && !jQuery._data( elem, \"changeBubbles\" ) ) {\n\t\t\t\t\tjQuery.event.add( elem, \"change._change\", function( event ) {\n\t\t\t\t\t\tif ( this.parentNode && !event.isSimulated && !event.isTrigger ) {\n\t\t\t\t\t\t\tjQuery.event.simulate( \"change\", this.parentNode, event, true );\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tjQuery._data( elem, \"changeBubbles\", true );\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\thandle: function( event ) {\n\t\t\tvar elem = event.target;\n\n\t\t\t// Swallow native change events from checkbox/radio, we already triggered them above\n\t\t\tif ( this !== elem || event.isSimulated || event.isTrigger || (elem.type !== \"radio\" && elem.type !== \"checkbox\") ) {\n\t\t\t\treturn event.handleObj.handler.apply( this, arguments );\n\t\t\t}\n\t\t},\n\n\t\tteardown: function() {\n\t\t\tjQuery.event.remove( this, \"._change\" );\n\n\t\t\treturn !rformElems.test( this.nodeName );\n\t\t}\n\t};\n}\n\n// Create \"bubbling\" focus and blur events\nif ( !support.focusinBubbles ) {\n\tjQuery.each({ focus: \"focusin\", blur: \"focusout\" }, function( orig, fix ) {\n\n\t\t// Attach a single capturing handler on the document while someone wants focusin/focusout\n\t\tvar handler = function( event ) {\n\t\t\t\tjQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true );\n\t\t\t};\n\n\t\tjQuery.event.special[ fix ] = {\n\t\t\tsetup: function() {\n\t\t\t\tvar doc = this.ownerDocument || this,\n\t\t\t\t\tattaches = jQuery._data( doc, fix );\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.addEventListener( orig, handler, true );\n\t\t\t\t}\n\t\t\t\tjQuery._data( doc, fix, ( attaches || 0 ) + 1 );\n\t\t\t},\n\t\t\tteardown: function() {\n\t\t\t\tvar doc = this.ownerDocument || this,\n\t\t\t\t\tattaches = jQuery._data( doc, fix ) - 1;\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.removeEventListener( orig, handler, true );\n\t\t\t\t\tjQuery._removeData( doc, fix );\n\t\t\t\t} else {\n\t\t\t\t\tjQuery._data( doc, fix, attaches );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t});\n}\n\njQuery.fn.extend({\n\n\ton: function( types, selector, data, fn, /*INTERNAL*/ one ) {\n\t\tvar type, origFn;\n\n\t\t// Types can be a map of types/handlers\n\t\tif ( typeof types === \"object\" ) {\n\t\t\t// ( types-Object, selector, data )\n\t\t\tif ( typeof selector !== \"string\" ) {\n\t\t\t\t// ( types-Object, data )\n\t\t\t\tdata = data || selector;\n\t\t\t\tselector = undefined;\n\t\t\t}\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.on( type, selector, data, types[ type ], one );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\n\t\tif ( data == null && fn == null ) {\n\t\t\t// ( types, fn )\n\t\t\tfn = selector;\n\t\t\tdata = selector = undefined;\n\t\t} else if ( fn == null ) {\n\t\t\tif ( typeof selector === \"string\" ) {\n\t\t\t\t// ( types, selector, fn )\n\t\t\t\tfn = data;\n\t\t\t\tdata = undefined;\n\t\t\t} else {\n\t\t\t\t// ( types, data, fn )\n\t\t\t\tfn = data;\n\t\t\t\tdata = selector;\n\t\t\t\tselector = undefined;\n\t\t\t}\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t} else if ( !fn ) {\n\t\t\treturn this;\n\t\t}\n\n\t\tif ( one === 1 ) {\n\t\t\torigFn = fn;\n\t\t\tfn = function( event ) {\n\t\t\t\t// Can use an empty set, since event contains the info\n\t\t\t\tjQuery().off( event );\n\t\t\t\treturn origFn.apply( this, arguments );\n\t\t\t};\n\t\t\t// Use same guid so caller can remove using origFn\n\t\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.add( this, types, fn, data, selector );\n\t\t});\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn this.on( types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\t\t\t// ( event ) dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ? handleObj.origType + \".\" + handleObj.namespace : handleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each(function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t});\n\t},\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each(function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t});\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[0];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n});\n\n\nfunction createSafeFragment( document ) {\n\tvar list = nodeNames.split( \"|\" ),\n\t\tsafeFrag = document.createDocumentFragment();\n\n\tif ( safeFrag.createElement ) {\n\t\twhile ( list.length ) {\n\t\t\tsafeFrag.createElement(\n\t\t\t\tlist.pop()\n\t\t\t);\n\t\t}\n\t}\n\treturn safeFrag;\n}\n\nvar nodeNames = \"abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|\" +\n\t\t\"header|hgroup|mark|meter|nav|output|progress|section|summary|time|video\",\n\trinlinejQuery = / jQuery\\d+=\"(?:null|\\d+)\"/g,\n\trnoshimcache = new RegExp(\"<(?:\" + nodeNames + \")[\\\\s/>]\", \"i\"),\n\trleadingWhitespace = /^\\s+/,\n\trxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\\w:]+)[^>]*)\\/>/gi,\n\trtagName = /<([\\w:]+)/,\n\trtbody = /\\s*$/g,\n\n\t// We have to close these tags to support XHTML (#13200)\n\twrapMap = {\n\t\toption: [ 1, \"\" ],\n\t\tlegend: [ 1, \"
\", \"
\" ],\n\t\tarea: [ 1, \"\", \"\" ],\n\t\tparam: [ 1, \"\", \"\" ],\n\t\tthead: [ 1, \"\", \"
\" ],\n\t\ttr: [ 2, \"\", \"
\" ],\n\t\tcol: [ 2, \"\", \"
\" ],\n\t\ttd: [ 3, \"\", \"
\" ],\n\n\t\t// IE6-8 can't serialize link, script, style, or any html5 (NoScope) tags,\n\t\t// unless wrapped in a div with non-breaking characters in front of it.\n\t\t_default: support.htmlSerialize ? [ 0, \"\", \"\" ] : [ 1, \"X
\", \"
\" ]\n\t},\n\tsafeFragment = createSafeFragment( document ),\n\tfragmentDiv = safeFragment.appendChild( document.createElement(\"div\") );\n\nwrapMap.optgroup = wrapMap.option;\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\nfunction getAll( context, tag ) {\n\tvar elems, elem,\n\t\ti = 0,\n\t\tfound = typeof context.getElementsByTagName !== strundefined ? context.getElementsByTagName( tag || \"*\" ) :\n\t\t\ttypeof context.querySelectorAll !== strundefined ? context.querySelectorAll( tag || \"*\" ) :\n\t\t\tundefined;\n\n\tif ( !found ) {\n\t\tfor ( found = [], elems = context.childNodes || context; (elem = elems[i]) != null; i++ ) {\n\t\t\tif ( !tag || jQuery.nodeName( elem, tag ) ) {\n\t\t\t\tfound.push( elem );\n\t\t\t} else {\n\t\t\t\tjQuery.merge( found, getAll( elem, tag ) );\n\t\t\t}\n\t\t}\n\t}\n\n\treturn tag === undefined || tag && jQuery.nodeName( context, tag ) ?\n\t\tjQuery.merge( [ context ], found ) :\n\t\tfound;\n}\n\n// Used in buildFragment, fixes the defaultChecked property\nfunction fixDefaultChecked( elem ) {\n\tif ( rcheckableType.test( elem.type ) ) {\n\t\telem.defaultChecked = elem.checked;\n\t}\n}\n\n// Support: IE<8\n// Manipulating tables requires a tbody\nfunction manipulationTarget( elem, content ) {\n\treturn jQuery.nodeName( elem, \"table\" ) &&\n\t\tjQuery.nodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ?\n\n\t\telem.getElementsByTagName(\"tbody\")[0] ||\n\t\t\telem.appendChild( elem.ownerDocument.createElement(\"tbody\") ) :\n\t\telem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = (jQuery.find.attr( elem, \"type\" ) !== null) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tvar match = rscriptTypeMasked.exec( elem.type );\n\tif ( match ) {\n\t\telem.type = match[1];\n\t} else {\n\t\telem.removeAttribute(\"type\");\n\t}\n\treturn elem;\n}\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar elem,\n\t\ti = 0;\n\tfor ( ; (elem = elems[i]) != null; i++ ) {\n\t\tjQuery._data( elem, \"globalEval\", !refElements || jQuery._data( refElements[i], \"globalEval\" ) );\n\t}\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\n\tif ( dest.nodeType !== 1 || !jQuery.hasData( src ) ) {\n\t\treturn;\n\t}\n\n\tvar type, i, l,\n\t\toldData = jQuery._data( src ),\n\t\tcurData = jQuery._data( dest, oldData ),\n\t\tevents = oldData.events;\n\n\tif ( events ) {\n\t\tdelete curData.handle;\n\t\tcurData.events = {};\n\n\t\tfor ( type in events ) {\n\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t}\n\t\t}\n\t}\n\n\t// make the cloned public data object a copy from the original\n\tif ( curData.data ) {\n\t\tcurData.data = jQuery.extend( {}, curData.data );\n\t}\n}\n\nfunction fixCloneNodeIssues( src, dest ) {\n\tvar nodeName, e, data;\n\n\t// We do not need to do anything for non-Elements\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\tnodeName = dest.nodeName.toLowerCase();\n\n\t// IE6-8 copies events bound via attachEvent when using cloneNode.\n\tif ( !support.noCloneEvent && dest[ jQuery.expando ] ) {\n\t\tdata = jQuery._data( dest );\n\n\t\tfor ( e in data.events ) {\n\t\t\tjQuery.removeEvent( dest, e, data.handle );\n\t\t}\n\n\t\t// Event data gets referenced instead of copied if the expando gets copied too\n\t\tdest.removeAttribute( jQuery.expando );\n\t}\n\n\t// IE blanks contents when cloning scripts, and tries to evaluate newly-set text\n\tif ( nodeName === \"script\" && dest.text !== src.text ) {\n\t\tdisableScript( dest ).text = src.text;\n\t\trestoreScript( dest );\n\n\t// IE6-10 improperly clones children of object elements using classid.\n\t// IE10 throws NoModificationAllowedError if parent is null, #12132.\n\t} else if ( nodeName === \"object\" ) {\n\t\tif ( dest.parentNode ) {\n\t\t\tdest.outerHTML = src.outerHTML;\n\t\t}\n\n\t\t// This path appears unavoidable for IE9. When cloning an object\n\t\t// element in IE9, the outerHTML strategy above is not sufficient.\n\t\t// If the src has innerHTML and the destination does not,\n\t\t// copy the src.innerHTML into the dest.innerHTML. #10324\n\t\tif ( support.html5Clone && ( src.innerHTML && !jQuery.trim(dest.innerHTML) ) ) {\n\t\t\tdest.innerHTML = src.innerHTML;\n\t\t}\n\n\t} else if ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\t\t// IE6-8 fails to persist the checked state of a cloned checkbox\n\t\t// or radio button. Worse, IE6-7 fail to give the cloned element\n\t\t// a checked appearance if the defaultChecked value isn't also set\n\n\t\tdest.defaultChecked = dest.checked = src.checked;\n\n\t\t// IE6-7 get confused and end up setting the value of a cloned\n\t\t// checkbox/radio button to an empty string instead of \"on\"\n\t\tif ( dest.value !== src.value ) {\n\t\t\tdest.value = src.value;\n\t\t}\n\n\t// IE6-8 fails to return the selected option to the default selected\n\t// state when cloning options\n\t} else if ( nodeName === \"option\" ) {\n\t\tdest.defaultSelected = dest.selected = src.defaultSelected;\n\n\t// IE6-8 fails to set the defaultValue to the correct value when\n\t// cloning other types of input fields\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\njQuery.extend({\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar destElements, node, clone, i, srcElements,\n\t\t\tinPage = jQuery.contains( elem.ownerDocument, elem );\n\n\t\tif ( support.html5Clone || jQuery.isXMLDoc(elem) || !rnoshimcache.test( \"<\" + elem.nodeName + \">\" ) ) {\n\t\t\tclone = elem.cloneNode( true );\n\n\t\t// IE<=8 does not properly clone detached, unknown element nodes\n\t\t} else {\n\t\t\tfragmentDiv.innerHTML = elem.outerHTML;\n\t\t\tfragmentDiv.removeChild( clone = fragmentDiv.firstChild );\n\t\t}\n\n\t\tif ( (!support.noCloneEvent || !support.noCloneChecked) &&\n\t\t\t\t(elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) {\n\n\t\t\t// We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\t// Fix all IE cloning issues\n\t\t\tfor ( i = 0; (node = srcElements[i]) != null; ++i ) {\n\t\t\t\t// Ensure that the destination node is not null; Fixes #9587\n\t\t\t\tif ( destElements[i] ) {\n\t\t\t\t\tfixCloneNodeIssues( node, destElements[i] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0; (node = srcElements[i]) != null; i++ ) {\n\t\t\t\t\tcloneCopyEvent( node, destElements[i] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\tdestElements = srcElements = node = null;\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tbuildFragment: function( elems, context, scripts, selection ) {\n\t\tvar j, elem, contains,\n\t\t\ttmp, tag, tbody, wrap,\n\t\t\tl = elems.length,\n\n\t\t\t// Ensure a safe fragment\n\t\t\tsafe = createSafeFragment( context ),\n\n\t\t\tnodes = [],\n\t\t\ti = 0;\n\n\t\tfor ( ; i < l; i++ ) {\n\t\t\telem = elems[ i ];\n\n\t\t\tif ( elem || elem === 0 ) {\n\n\t\t\t\t// Add nodes directly\n\t\t\t\tif ( jQuery.type( elem ) === \"object\" ) {\n\t\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t\t// Convert non-html into a text node\n\t\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t\t// Convert html into DOM nodes\n\t\t\t\t} else {\n\t\t\t\t\ttmp = tmp || safe.appendChild( context.createElement(\"div\") );\n\n\t\t\t\t\t// Deserialize a standard representation\n\t\t\t\t\ttag = (rtagName.exec( elem ) || [ \"\", \"\" ])[ 1 ].toLowerCase();\n\t\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\n\t\t\t\t\ttmp.innerHTML = wrap[1] + elem.replace( rxhtmlTag, \"<$1>\" ) + wrap[2];\n\n\t\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\t\tj = wrap[0];\n\t\t\t\t\twhile ( j-- ) {\n\t\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Manually add leading whitespace removed by IE\n\t\t\t\t\tif ( !support.leadingWhitespace && rleadingWhitespace.test( elem ) ) {\n\t\t\t\t\t\tnodes.push( context.createTextNode( rleadingWhitespace.exec( elem )[0] ) );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Remove IE's autoinserted from table fragments\n\t\t\t\t\tif ( !support.tbody ) {\n\n\t\t\t\t\t\t// String was a , *may* have spurious \n\t\t\t\t\t\telem = tag === \"table\" && !rtbody.test( elem ) ?\n\t\t\t\t\t\t\ttmp.firstChild :\n\n\t\t\t\t\t\t\t// String was a bare or \n\t\t\t\t\t\t\twrap[1] === \"
\" && !rtbody.test( elem ) ?\n\t\t\t\t\t\t\t\ttmp :\n\t\t\t\t\t\t\t\t0;\n\n\t\t\t\t\t\tj = elem && elem.childNodes.length;\n\t\t\t\t\t\twhile ( j-- ) {\n\t\t\t\t\t\t\tif ( jQuery.nodeName( (tbody = elem.childNodes[j]), \"tbody\" ) && !tbody.childNodes.length ) {\n\t\t\t\t\t\t\t\telem.removeChild( tbody );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t\t// Fix #12392 for WebKit and IE > 9\n\t\t\t\t\ttmp.textContent = \"\";\n\n\t\t\t\t\t// Fix #12392 for oldIE\n\t\t\t\t\twhile ( tmp.firstChild ) {\n\t\t\t\t\t\ttmp.removeChild( tmp.firstChild );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Remember the top-level container for proper cleanup\n\t\t\t\t\ttmp = safe.lastChild;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Fix #11356: Clear elements from fragment\n\t\tif ( tmp ) {\n\t\t\tsafe.removeChild( tmp );\n\t\t}\n\n\t\t// Reset defaultChecked for any radios and checkboxes\n\t\t// about to be appended to the DOM in IE 6/7 (#8060)\n\t\tif ( !support.appendChecked ) {\n\t\t\tjQuery.grep( getAll( nodes, \"input\" ), fixDefaultChecked );\n\t\t}\n\n\t\ti = 0;\n\t\twhile ( (elem = nodes[ i++ ]) ) {\n\n\t\t\t// #4087 - If origin and destination elements are the same, and this is\n\t\t\t// that element, do not do anything\n\t\t\tif ( selection && jQuery.inArray( elem, selection ) !== -1 ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tcontains = jQuery.contains( elem.ownerDocument, elem );\n\n\t\t\t// Append to fragment\n\t\t\ttmp = getAll( safe.appendChild( elem ), \"script\" );\n\n\t\t\t// Preserve script evaluation history\n\t\t\tif ( contains ) {\n\t\t\t\tsetGlobalEval( tmp );\n\t\t\t}\n\n\t\t\t// Capture executables\n\t\t\tif ( scripts ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( (elem = tmp[ j++ ]) ) {\n\t\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\t\tscripts.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\ttmp = null;\n\n\t\treturn safe;\n\t},\n\n\tcleanData: function( elems, /* internal */ acceptData ) {\n\t\tvar elem, type, id, data,\n\t\t\ti = 0,\n\t\t\tinternalKey = jQuery.expando,\n\t\t\tcache = jQuery.cache,\n\t\t\tdeleteExpando = support.deleteExpando,\n\t\t\tspecial = jQuery.event.special;\n\n\t\tfor ( ; (elem = elems[i]) != null; i++ ) {\n\t\t\tif ( acceptData || jQuery.acceptData( elem ) ) {\n\n\t\t\t\tid = elem[ internalKey ];\n\t\t\t\tdata = id && cache[ id ];\n\n\t\t\t\tif ( data ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Remove cache only if it was not already removed by jQuery.event.remove\n\t\t\t\t\tif ( cache[ id ] ) {\n\n\t\t\t\t\t\tdelete cache[ id ];\n\n\t\t\t\t\t\t// IE does not allow us to delete expando properties from nodes,\n\t\t\t\t\t\t// nor does it have a removeAttribute function on Document nodes;\n\t\t\t\t\t\t// we must handle all of these cases\n\t\t\t\t\t\tif ( deleteExpando ) {\n\t\t\t\t\t\t\tdelete elem[ internalKey ];\n\n\t\t\t\t\t\t} else if ( typeof elem.removeAttribute !== strundefined ) {\n\t\t\t\t\t\t\telem.removeAttribute( internalKey );\n\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\telem[ internalKey ] = null;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tdeletedIds.push( id );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n});\n\njQuery.fn.extend({\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().append( ( this[0] && this[0].ownerDocument || document ).createTextNode( value ) );\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn this.domManip( arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t});\n\t},\n\n\tprepend: function() {\n\t\treturn this.domManip( arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t});\n\t},\n\n\tbefore: function() {\n\t\treturn this.domManip( arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t});\n\t},\n\n\tafter: function() {\n\t\treturn this.domManip( arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t});\n\t},\n\n\tremove: function( selector, keepData /* Internal Use Only */ ) {\n\t\tvar elem,\n\t\t\telems = selector ? jQuery.filter( selector, this ) : this,\n\t\t\ti = 0;\n\n\t\tfor ( ; (elem = elems[i]) != null; i++ ) {\n\n\t\t\tif ( !keepData && elem.nodeType === 1 ) {\n\t\t\t\tjQuery.cleanData( getAll( elem ) );\n\t\t\t}\n\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\tif ( keepData && jQuery.contains( elem.ownerDocument, elem ) ) {\n\t\t\t\t\tsetGlobalEval( getAll( elem, \"script\" ) );\n\t\t\t\t}\n\t\t\t\telem.parentNode.removeChild( elem );\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; (elem = this[i]) != null; i++ ) {\n\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t}\n\n\t\t\t// Remove any remaining nodes\n\t\t\twhile ( elem.firstChild ) {\n\t\t\t\telem.removeChild( elem.firstChild );\n\t\t\t}\n\n\t\t\t// If this is a select, ensure that it displays empty (#12336)\n\t\t\t// Support: IE<9\n\t\t\tif ( elem.options && jQuery.nodeName( elem, \"select\" ) ) {\n\t\t\t\telem.options.length = 0;\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map(function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t});\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined ) {\n\t\t\t\treturn elem.nodeType === 1 ?\n\t\t\t\t\telem.innerHTML.replace( rinlinejQuery, \"\" ) :\n\t\t\t\t\tundefined;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t( support.htmlSerialize || !rnoshimcache.test( value ) ) &&\n\t\t\t\t( support.leadingWhitespace || !rleadingWhitespace.test( value ) ) &&\n\t\t\t\t!wrapMap[ (rtagName.exec( value ) || [ \"\", \"\" ])[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = value.replace( rxhtmlTag, \"<$1>\" );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor (; i < l; i++ ) {\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\telem = this[i] || {};\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch(e) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar arg = arguments[ 0 ];\n\n\t\t// Make the changes, replacing each context element with the new content\n\t\tthis.domManip( arguments, function( elem ) {\n\t\t\targ = this.parentNode;\n\n\t\t\tjQuery.cleanData( getAll( this ) );\n\n\t\t\tif ( arg ) {\n\t\t\t\targ.replaceChild( elem, this );\n\t\t\t}\n\t\t});\n\n\t\t// Force removal if there was no new content (e.g., from empty arguments)\n\t\treturn arg && (arg.length || arg.nodeType) ? this : this.remove();\n\t},\n\n\tdetach: function( selector ) {\n\t\treturn this.remove( selector, true );\n\t},\n\n\tdomManip: function( args, callback ) {\n\n\t\t// Flatten any nested arrays\n\t\targs = concat.apply( [], args );\n\n\t\tvar first, node, hasScripts,\n\t\t\tscripts, doc, fragment,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tset = this,\n\t\t\tiNoClone = l - 1,\n\t\t\tvalue = args[0],\n\t\t\tisFunction = jQuery.isFunction( value );\n\n\t\t// We can't cloneNode fragments that contain checked, in WebKit\n\t\tif ( isFunction ||\n\t\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\t\treturn this.each(function( index ) {\n\t\t\t\tvar self = set.eq( index );\n\t\t\t\tif ( isFunction ) {\n\t\t\t\t\targs[0] = value.call( this, index, self.html() );\n\t\t\t\t}\n\t\t\t\tself.domManip( args, callback );\n\t\t\t});\n\t\t}\n\n\t\tif ( l ) {\n\t\t\tfragment = jQuery.buildFragment( args, this[ 0 ].ownerDocument, false, this );\n\t\t\tfirst = fragment.firstChild;\n\n\t\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\t\tfragment = first;\n\t\t\t}\n\n\t\t\tif ( first ) {\n\t\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\t\thasScripts = scripts.length;\n\n\t\t\t\t// Use the original fragment for the last item instead of the first because it can end up\n\t\t\t\t// being emptied incorrectly in certain situations (#8070).\n\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\tnode = fragment;\n\n\t\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\t\tif ( hasScripts ) {\n\t\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tcallback.call( this[i], node, i );\n\t\t\t\t}\n\n\t\t\t\tif ( hasScripts ) {\n\t\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t\t// Reenable scripts\n\t\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t\t!jQuery._data( node, \"globalEval\" ) && jQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\t\tif ( node.src ) {\n\t\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\t\tif ( jQuery._evalUrl ) {\n\t\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.globalEval( ( node.text || node.textContent || node.innerHTML || \"\" ).replace( rcleanScript, \"\" ) );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Fix #11809: Avoid leaking memory\n\t\t\t\tfragment = first = null;\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t}\n});\n\njQuery.each({\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\ti = 0,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone(true);\n\t\t\tjQuery( insert[i] )[ original ]( elems );\n\n\t\t\t// Modern browsers can apply jQuery collections as arrays, but oldIE needs a .get()\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n});\n\n\nvar iframe,\n\telemdisplay = {};\n\n/**\n * Retrieve the actual display of a element\n * @param {String} name nodeName of the element\n * @param {Object} doc Document object\n */\n// Called only from within defaultDisplay\nfunction actualDisplay( name, doc ) {\n\tvar style,\n\t\telem = jQuery( doc.createElement( name ) ).appendTo( doc.body ),\n\n\t\t// getDefaultComputedStyle might be reliably used only on attached element\n\t\tdisplay = window.getDefaultComputedStyle && ( style = window.getDefaultComputedStyle( elem[ 0 ] ) ) ?\n\n\t\t\t// Use of this method is a temporary fix (more like optmization) until something better comes along,\n\t\t\t// since it was removed from specification and supported only in FF\n\t\t\tstyle.display : jQuery.css( elem[ 0 ], \"display\" );\n\n\t// We don't have any data stored on the element,\n\t// so use \"detach\" method as fast way to get rid of the element\n\telem.detach();\n\n\treturn display;\n}\n\n/**\n * Try to determine the default display value of an element\n * @param {String} nodeName\n */\nfunction defaultDisplay( nodeName ) {\n\tvar doc = document,\n\t\tdisplay = elemdisplay[ nodeName ];\n\n\tif ( !display ) {\n\t\tdisplay = actualDisplay( nodeName, doc );\n\n\t\t// If the simple way fails, read from inside an iframe\n\t\tif ( display === \"none\" || !display ) {\n\n\t\t\t// Use the already-created iframe if possible\n\t\t\tiframe = (iframe || jQuery( \"'+\n\t\t\t\t'',\n\n\t\tsrcAction: 'iframe_src',\n\n\t\t// we don't care and support only one default type of URL by default\n\t\tpatterns: {\n\t\t\tyoutube: {\n\t\t\t\tindex: 'youtube.com', \n\t\t\t\tid: 'v=', \n\t\t\t\tsrc: '//www.youtube.com/embed/%id%?autoplay=1'\n\t\t\t},\n\t\t\tvimeo: {\n\t\t\t\tindex: 'vimeo.com/',\n\t\t\t\tid: '/',\n\t\t\t\tsrc: '//player.vimeo.com/video/%id%?autoplay=1'\n\t\t\t},\n\t\t\tgmaps: {\n\t\t\t\tindex: '//maps.google.',\n\t\t\t\tsrc: '%id%&output=embed'\n\t\t\t}\n\t\t}\n\t},\n\n\tproto: {\n\t\tinitIframe: function() {\n\t\t\tmfp.types.push(IFRAME_NS);\n\n\t\t\t_mfpOn('BeforeChange', function(e, prevType, newType) {\n\t\t\t\tif(prevType !== newType) {\n\t\t\t\t\tif(prevType === IFRAME_NS) {\n\t\t\t\t\t\t_fixIframeBugs(); // iframe if removed\n\t\t\t\t\t} else if(newType === IFRAME_NS) {\n\t\t\t\t\t\t_fixIframeBugs(true); // iframe is showing\n\t\t\t\t\t} \n\t\t\t\t}// else {\n\t\t\t\t\t// iframe source is switched, don't do anything\n\t\t\t\t//}\n\t\t\t});\n\n\t\t\t_mfpOn(CLOSE_EVENT + '.' + IFRAME_NS, function() {\n\t\t\t\t_fixIframeBugs();\n\t\t\t});\n\t\t},\n\n\t\tgetIframe: function(item, template) {\n\t\t\tvar embedSrc = item.src;\n\t\t\tvar iframeSt = mfp.st.iframe;\n\t\t\t\t\n\t\t\t$.each(iframeSt.patterns, function() {\n\t\t\t\tif(embedSrc.indexOf( this.index ) > -1) {\n\t\t\t\t\tif(this.id) {\n\t\t\t\t\t\tif(typeof this.id === 'string') {\n\t\t\t\t\t\t\tembedSrc = embedSrc.substr(embedSrc.lastIndexOf(this.id)+this.id.length, embedSrc.length);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tembedSrc = this.id.call( this, embedSrc );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tembedSrc = this.src.replace('%id%', embedSrc );\n\t\t\t\t\treturn false; // break;\n\t\t\t\t}\n\t\t\t});\n\t\t\t\n\t\t\tvar dataObj = {};\n\t\t\tif(iframeSt.srcAction) {\n\t\t\t\tdataObj[iframeSt.srcAction] = embedSrc;\n\t\t\t}\n\t\t\tmfp._parseMarkup(template, dataObj, item);\n\n\t\t\tmfp.updateStatus('ready');\n\n\t\t\treturn template;\n\t\t}\n\t}\n});\n\n\n\n/*>>iframe*/\n\n/*>>gallery*/\n/**\n * Get looped index depending on number of slides\n */\nvar _getLoopedId = function(index) {\n\t\tvar numSlides = mfp.items.length;\n\t\tif(index > numSlides - 1) {\n\t\t\treturn index - numSlides;\n\t\t} else if(index < 0) {\n\t\t\treturn numSlides + index;\n\t\t}\n\t\treturn index;\n\t},\n\t_replaceCurrTotal = function(text, curr, total) {\n\t\treturn text.replace(/%curr%/gi, curr + 1).replace(/%total%/gi, total);\n\t};\n\n$.magnificPopup.registerModule('gallery', {\n\n\toptions: {\n\t\tenabled: false,\n\t\tarrowMarkup: '',\n\t\tpreload: [0,2],\n\t\tnavigateByImgClick: true,\n\t\tarrows: true,\n\n\t\ttPrev: 'Previous (Left arrow key)',\n\t\ttNext: 'Next (Right arrow key)',\n\t\ttCounter: '%curr% of %total%'\n\t},\n\n\tproto: {\n\t\tinitGallery: function() {\n\n\t\t\tvar gSt = mfp.st.gallery,\n\t\t\t\tns = '.mfp-gallery',\n\t\t\t\tsupportsFastClick = Boolean($.fn.mfpFastClick);\n\n\t\t\tmfp.direction = true; // true - next, false - prev\n\t\t\t\n\t\t\tif(!gSt || !gSt.enabled ) return false;\n\n\t\t\t_wrapClasses += ' mfp-gallery';\n\n\t\t\t_mfpOn(OPEN_EVENT+ns, function() {\n\n\t\t\t\tif(gSt.navigateByImgClick) {\n\t\t\t\t\tmfp.wrap.on('click'+ns, '.mfp-img', function() {\n\t\t\t\t\t\tif(mfp.items.length > 1) {\n\t\t\t\t\t\t\tmfp.next();\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\t_document.on('keydown'+ns, function(e) {\n\t\t\t\t\tif (e.keyCode === 37) {\n\t\t\t\t\t\tmfp.prev();\n\t\t\t\t\t} else if (e.keyCode === 39) {\n\t\t\t\t\t\tmfp.next();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\n\t\t\t_mfpOn('UpdateStatus'+ns, function(e, data) {\n\t\t\t\tif(data.text) {\n\t\t\t\t\tdata.text = _replaceCurrTotal(data.text, mfp.currItem.index, mfp.items.length);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t_mfpOn(MARKUP_PARSE_EVENT+ns, function(e, element, values, item) {\n\t\t\t\tvar l = mfp.items.length;\n\t\t\t\tvalues.counter = l > 1 ? _replaceCurrTotal(gSt.tCounter, item.index, l) : '';\n\t\t\t});\n\n\t\t\t_mfpOn('BuildControls' + ns, function() {\n\t\t\t\tif(mfp.items.length > 1 && gSt.arrows && !mfp.arrowLeft) {\n\t\t\t\t\tvar markup = gSt.arrowMarkup,\n\t\t\t\t\t\tarrowLeft = mfp.arrowLeft = $( markup.replace(/%title%/gi, gSt.tPrev).replace(/%dir%/gi, 'left') ).addClass(PREVENT_CLOSE_CLASS),\t\t\t\n\t\t\t\t\t\tarrowRight = mfp.arrowRight = $( markup.replace(/%title%/gi, gSt.tNext).replace(/%dir%/gi, 'right') ).addClass(PREVENT_CLOSE_CLASS);\n\n\t\t\t\t\tvar eName = supportsFastClick ? 'mfpFastClick' : 'click';\n\t\t\t\t\tarrowLeft[eName](function() {\n\t\t\t\t\t\tmfp.prev();\n\t\t\t\t\t});\t\t\t\n\t\t\t\t\tarrowRight[eName](function() {\n\t\t\t\t\t\tmfp.next();\n\t\t\t\t\t});\t\n\n\t\t\t\t\t// Polyfill for :before and :after (adds elements with classes mfp-a and mfp-b)\n\t\t\t\t\tif(mfp.isIE7) {\n\t\t\t\t\t\t_getEl('b', arrowLeft[0], false, true);\n\t\t\t\t\t\t_getEl('a', arrowLeft[0], false, true);\n\t\t\t\t\t\t_getEl('b', arrowRight[0], false, true);\n\t\t\t\t\t\t_getEl('a', arrowRight[0], false, true);\n\t\t\t\t\t}\n\n\t\t\t\t\tmfp.container.append(arrowLeft.add(arrowRight));\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t_mfpOn(CHANGE_EVENT+ns, function() {\n\t\t\t\tif(mfp._preloadTimeout) clearTimeout(mfp._preloadTimeout);\n\n\t\t\t\tmfp._preloadTimeout = setTimeout(function() {\n\t\t\t\t\tmfp.preloadNearbyImages();\n\t\t\t\t\tmfp._preloadTimeout = null;\n\t\t\t\t}, 16);\t\t\n\t\t\t});\n\n\n\t\t\t_mfpOn(CLOSE_EVENT+ns, function() {\n\t\t\t\t_document.off(ns);\n\t\t\t\tmfp.wrap.off('click'+ns);\n\t\t\t\n\t\t\t\tif(mfp.arrowLeft && supportsFastClick) {\n\t\t\t\t\tmfp.arrowLeft.add(mfp.arrowRight).destroyMfpFastClick();\n\t\t\t\t}\n\t\t\t\tmfp.arrowRight = mfp.arrowLeft = null;\n\t\t\t});\n\n\t\t}, \n\t\tnext: function() {\n\t\t\tmfp.direction = true;\n\t\t\tmfp.index = _getLoopedId(mfp.index + 1);\n\t\t\tmfp.updateItemHTML();\n\t\t},\n\t\tprev: function() {\n\t\t\tmfp.direction = false;\n\t\t\tmfp.index = _getLoopedId(mfp.index - 1);\n\t\t\tmfp.updateItemHTML();\n\t\t},\n\t\tgoTo: function(newIndex) {\n\t\t\tmfp.direction = (newIndex >= mfp.index);\n\t\t\tmfp.index = newIndex;\n\t\t\tmfp.updateItemHTML();\n\t\t},\n\t\tpreloadNearbyImages: function() {\n\t\t\tvar p = mfp.st.gallery.preload,\n\t\t\t\tpreloadBefore = Math.min(p[0], mfp.items.length),\n\t\t\t\tpreloadAfter = Math.min(p[1], mfp.items.length),\n\t\t\t\ti;\n\n\t\t\tfor(i = 1; i <= (mfp.direction ? preloadAfter : preloadBefore); i++) {\n\t\t\t\tmfp._preloadItem(mfp.index+i);\n\t\t\t}\n\t\t\tfor(i = 1; i <= (mfp.direction ? preloadBefore : preloadAfter); i++) {\n\t\t\t\tmfp._preloadItem(mfp.index-i);\n\t\t\t}\n\t\t},\n\t\t_preloadItem: function(index) {\n\t\t\tindex = _getLoopedId(index);\n\n\t\t\tif(mfp.items[index].preloaded) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar item = mfp.items[index];\n\t\t\tif(!item.parsed) {\n\t\t\t\titem = mfp.parseEl( index );\n\t\t\t}\n\n\t\t\t_mfpTrigger('LazyLoad', item);\n\n\t\t\tif(item.type === 'image') {\n\t\t\t\titem.img = $('').on('load.mfploader', function() {\n\t\t\t\t\titem.hasSize = true;\n\t\t\t\t}).on('error.mfploader', function() {\n\t\t\t\t\titem.hasSize = true;\n\t\t\t\t\titem.loadError = true;\n\t\t\t\t\t_mfpTrigger('LazyLoadError', item);\n\t\t\t\t}).attr('src', item.src);\n\t\t\t}\n\n\n\t\t\titem.preloaded = true;\n\t\t}\n\t}\n});\n\n/*\nTouch Support that might be implemented some day\n\naddSwipeGesture: function() {\n\tvar startX,\n\t\tmoved,\n\t\tmultipleTouches;\n\n\t\treturn;\n\n\tvar namespace = '.mfp',\n\t\taddEventNames = function(pref, down, move, up, cancel) {\n\t\t\tmfp._tStart = pref + down + namespace;\n\t\t\tmfp._tMove = pref + move + namespace;\n\t\t\tmfp._tEnd = pref + up + namespace;\n\t\t\tmfp._tCancel = pref + cancel + namespace;\n\t\t};\n\n\tif(window.navigator.msPointerEnabled) {\n\t\taddEventNames('MSPointer', 'Down', 'Move', 'Up', 'Cancel');\n\t} else if('ontouchstart' in window) {\n\t\taddEventNames('touch', 'start', 'move', 'end', 'cancel');\n\t} else {\n\t\treturn;\n\t}\n\t_window.on(mfp._tStart, function(e) {\n\t\tvar oE = e.originalEvent;\n\t\tmultipleTouches = moved = false;\n\t\tstartX = oE.pageX || oE.changedTouches[0].pageX;\n\t}).on(mfp._tMove, function(e) {\n\t\tif(e.originalEvent.touches.length > 1) {\n\t\t\tmultipleTouches = e.originalEvent.touches.length;\n\t\t} else {\n\t\t\t//e.preventDefault();\n\t\t\tmoved = true;\n\t\t}\n\t}).on(mfp._tEnd + ' ' + mfp._tCancel, function(e) {\n\t\tif(moved && !multipleTouches) {\n\t\t\tvar oE = e.originalEvent,\n\t\t\t\tdiff = startX - (oE.pageX || oE.changedTouches[0].pageX);\n\n\t\t\tif(diff > 20) {\n\t\t\t\tmfp.next();\n\t\t\t} else if(diff < -20) {\n\t\t\t\tmfp.prev();\n\t\t\t}\n\t\t}\n\t});\n},\n*/\n\n\n/*>>gallery*/\n\n/*>>retina*/\n\nvar RETINA_NS = 'retina';\n\n$.magnificPopup.registerModule(RETINA_NS, {\n\toptions: {\n\t\treplaceSrc: function(item) {\n\t\t\treturn item.src.replace(/\\.\\w+$/, function(m) { return '@2x' + m; });\n\t\t},\n\t\tratio: 1 // Function or number. Set to 1 to disable.\n\t},\n\tproto: {\n\t\tinitRetina: function() {\n\t\t\tif(window.devicePixelRatio > 1) {\n\n\t\t\t\tvar st = mfp.st.retina,\n\t\t\t\t\tratio = st.ratio;\n\n\t\t\t\tratio = !isNaN(ratio) ? ratio : ratio();\n\n\t\t\t\tif(ratio > 1) {\n\t\t\t\t\t_mfpOn('ImageHasSize' + '.' + RETINA_NS, function(e, item) {\n\t\t\t\t\t\titem.img.css({\n\t\t\t\t\t\t\t'max-width': item.img[0].naturalWidth / ratio,\n\t\t\t\t\t\t\t'width': '100%'\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t\t_mfpOn('ElementParse' + '.' + RETINA_NS, function(e, item) {\n\t\t\t\t\t\titem.src = st.replaceSrc(item, ratio);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t}\n});\n\n/*>>retina*/\n\n/*>>fastclick*/\n/**\n * FastClick event implementation. (removes 300ms delay on touch devices)\n * Based on https://developers.google.com/mobile/articles/fast_buttons\n *\n * You may use it outside the Magnific Popup by calling just:\n *\n * $('.your-el').mfpFastClick(function() {\n * console.log('Clicked!');\n * });\n *\n * To unbind:\n * $('.your-el').destroyMfpFastClick();\n * \n * \n * Note that it's a very basic and simple implementation, it blocks ghost click on the same element where it was bound.\n * If you need something more advanced, use plugin by FT Labs https://github.com/ftlabs/fastclick\n * \n */\n\n(function() {\n\tvar ghostClickDelay = 1000,\n\t\tsupportsTouch = 'ontouchstart' in window,\n\t\tunbindTouchMove = function() {\n\t\t\t_window.off('touchmove'+ns+' touchend'+ns);\n\t\t},\n\t\teName = 'mfpFastClick',\n\t\tns = '.'+eName;\n\n\n\t// As Zepto.js doesn't have an easy way to add custom events (like jQuery), so we implement it in this way\n\t$.fn.mfpFastClick = function(callback) {\n\n\t\treturn $(this).each(function() {\n\n\t\t\tvar elem = $(this),\n\t\t\t\tlock;\n\n\t\t\tif( supportsTouch ) {\n\n\t\t\t\tvar timeout,\n\t\t\t\t\tstartX,\n\t\t\t\t\tstartY,\n\t\t\t\t\tpointerMoved,\n\t\t\t\t\tpoint,\n\t\t\t\t\tnumPointers;\n\n\t\t\t\telem.on('touchstart' + ns, function(e) {\n\t\t\t\t\tpointerMoved = false;\n\t\t\t\t\tnumPointers = 1;\n\n\t\t\t\t\tpoint = e.originalEvent ? e.originalEvent.touches[0] : e.touches[0];\n\t\t\t\t\tstartX = point.clientX;\n\t\t\t\t\tstartY = point.clientY;\n\n\t\t\t\t\t_window.on('touchmove'+ns, function(e) {\n\t\t\t\t\t\tpoint = e.originalEvent ? e.originalEvent.touches : e.touches;\n\t\t\t\t\t\tnumPointers = point.length;\n\t\t\t\t\t\tpoint = point[0];\n\t\t\t\t\t\tif (Math.abs(point.clientX - startX) > 10 ||\n\t\t\t\t\t\t\tMath.abs(point.clientY - startY) > 10) {\n\t\t\t\t\t\t\tpointerMoved = true;\n\t\t\t\t\t\t\tunbindTouchMove();\n\t\t\t\t\t\t}\n\t\t\t\t\t}).on('touchend'+ns, function(e) {\n\t\t\t\t\t\tunbindTouchMove();\n\t\t\t\t\t\tif(pointerMoved || numPointers > 1) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlock = true;\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\tclearTimeout(timeout);\n\t\t\t\t\t\ttimeout = setTimeout(function() {\n\t\t\t\t\t\t\tlock = false;\n\t\t\t\t\t\t}, ghostClickDelay);\n\t\t\t\t\t\tcallback();\n\t\t\t\t\t});\n\t\t\t\t});\n\n\t\t\t}\n\n\t\t\telem.on('click' + ns, function() {\n\t\t\t\tif(!lock) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t};\n\n\t$.fn.destroyMfpFastClick = function() {\n\t\t$(this).off('touchstart' + ns + ' click' + ns);\n\t\tif(supportsTouch) _window.off('touchmove'+ns+' touchend'+ns);\n\t};\n})();\n\n/*>>fastclick*/\n _checkInstance(); })(window.jQuery || window.Zepto);","/**\n * elementQuery | Author: Tyson Matanich (http://matanich.com), 2013 | License: MIT\n */\n\n(function (window, document, undefined) {\n\n \"use strict\";\n\n var sizzle, queryData, cssRules, selectQuery;\n\n sizzle = window.Sizzle || (jQuery || {}).find;\n\n // Set the number of sizzle selectors to cache (default is 50).\n // sizzle.selectors.cacheLength = 50;\n\n selectQuery = document.querySelectorAll ? function (selector) { return document.querySelectorAll(selector) } : sizzle;\n\n queryData = {};\n cssRules = null;\n\n function setCssRules () {\n var i;\n\n // Find a stylesheet which has cssRules or rules property.\n for (i = 0; i < document.styleSheets.length; i++) {\n try {\n cssRules = typeof document.styleSheets[i].cssRules !== \"undefined\" ? \"cssRules\" : \"rules\";\n break;\n } catch (e) {\n // Cross-domain stylesheets raise SecurityError in Firefox, ignore them.\n continue;\n }\n }\n\n if (!cssRules) {\n throw new Error(\"You do not seem to have any stylesheets which has accessible 'rules' or 'cssRules' property.\");\n }\n }\n\n function addQueryDataValue (selector, type, pair, number, value) {\n var parts;\n\n selector = trim(selector);\n\n if (selector != \"\") {\n if (!number && !value) {\n parts = /^([0-9]*.?[0-9]+)(px|em)$/.exec(pair);\n\n if (parts != null) {\n number = Number(parts[1]);\n\n if (number + \"\" != \"NaN\") {\n value = parts[2];\n }\n }\n }\n\n if (value) {\n // Compile the sizzle selector\n if (sizzle.compile) {\n sizzle.compile(selector);\n }\n\n // Update the queryData object\n if (queryData[selector] === undefined) {\n queryData[selector] = {};\n }\n\n if (queryData[selector][type] === undefined) {\n queryData[selector][type] = {};\n }\n\n queryData[selector][type][pair] = [number, value];\n }\n }\n }\n\n function updateQueryData (data, doUpdate) {\n var i, j, k;\n\n for (i in data) {\n for (j in data[i]) {\n if (typeof data[i][j] == \"string\") {\n addQueryDataValue(i, j, data[i][j]);\n } else if (typeof data[i][j] == \"object\") {\n for (k = 0; k < data[i][j].length; k++) {\n addQueryDataValue(i, j, data[i][j][k]);\n }\n }\n }\n }\n\n if (doUpdate == true) {\n refresh();\n }\n }\n\n function processSelector (selectorText) {\n var regex, selectors, i, selector, result,\n number, prevIndex, k, tail, t;\n\n if (selectorText) {\n regex = /(\\[(min\\-width|max\\-width|min\\-height|max\\-height)\\~\\=(\\'|\\\")([0-9]*.?[0-9]+)(px|em)(\\'|\\\")\\])(\\[(min\\-width|max\\-width|min\\-height|max\\-height)\\~\\=(\\'|\\\")([0-9]*.?[0-9]+)(px|em)(\\'|\\\")\\])?/gi;\n\n // Split out the full selectors separated by a comma.\n selectors = selectorText.split(\",\");\n\n for (i = 0; i < selectors.length; i++) {\n selector = null;\n prevIndex = 0;\n k = 0;\n\n while (k == 0 || result != null) {\n result = regex.exec(selectors[i]);\n\n if (result != null) {\n // result[2] = min-width|max-width|min-height|max-height\n // result[4] = number\n // result[5] = px|em\n // result[7] = has another\n\n // Ensure that it contains a valid numeric value to compare against.\n number = Number(result[4]);\n\n if (!isNaN(number)) {\n if (selector == null) {\n // New set: update the current selector.\n selector = selectors[i].substring(prevIndex, result.index);\n\n // Append second half of the selector.\n tail = selectors[i].substring(result.index + result[1].length);\n\n if (tail.length > 0) {\n t = tail.indexOf(\" \");\n\n if (t != 0) {\n if (t > 0) {\n // Take only the current part.\n tail = tail.substring(0, t);\n }\n\n // Remove any sibling element queries.\n tail = tail.replace(/(\\[(min\\-width|max\\-width|min\\-height|max\\-height)\\~\\=(\\'|\\\")([0-9]*.?[0-9]+)(px|em)(\\'|\\\")\\])/gi, \"\");\n selector += tail;\n }\n }\n }\n\n // Update the queryData object.\n addQueryDataValue(selector, result[2], result[4] + result[5], number, result[5]);\n }\n\n if (result[7] === undefined || result[7] == \"\") {\n // Reached the end of the set.\n prevIndex = result.index + result[1].length;\n selector = null;\n } else {\n // Update result index to process next item in the set.\n regex.lastIndex = result.index + result[1].length;\n }\n }\n\n k++;\n }\n }\n }\n }\n\n function processStyleSheet (styleSheet, force) {\n var ownerNode, i, j, rule;\n\n if (cssRules == null) {\n setCssRules();\n }\n\n // Ignore Firefox SecurityError. Cross-domain stylesheets will not be processed.\n try {\n styleSheet[cssRules] && 1;\n } catch (e) {\n return;\n }\n\n if (styleSheet[cssRules] && styleSheet[cssRules].length > 0) {\n ownerNode = styleSheet.ownerNode || styleSheet.owningElement;\n\n if (force || (ownerNode.getAttribute(\"data-elementquery-bypass\") === null &&\n ownerNode.getAttribute(\"data-elementquery-processed\") === null)) {\n for (i = 0; i < styleSheet[cssRules].length; i++) {\n rule = styleSheet[cssRules][i];\n\n // Check nested rules in media queries etc.\n if (rule[cssRules] && rule[cssRules].length > 0) {\n for (j = 0; j < rule[cssRules].length; j++) {\n processSelector(rule[cssRules][j].selectorText);\n }\n } else {\n processSelector(rule.selectorText);\n }\n }\n\n // Flag the style sheet as processed.\n ownerNode.setAttribute(\"data-elementquery-processed\", \"\");\n }\n }\n }\n\n function trim (text) {\n var core_trim = \"\".trim;\n\n if (text == null) {\n return \"\";\n } else {\n if (core_trim && !core_trim.call(\"\\uFEFF\\xA0\")) {\n return core_trim.call(text);\n } else {\n return (text + \"\").replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, \"\");\n }\n }\n }\n\n function clean (element, attr) {\n // This expression is here for better compressibility.\n var val = element.getAttribute(attr);\n\n return val ? (\" \" + val + \" \").replace(/[\\t\\r\\n]/g, \" \") : \" \";\n }\n\n function addTo (element, attr, value) {\n var val, cur;\n\n if (element.nodeType === 1) {\n val = trim(value);\n\n if (val != \"\") {\n cur = clean(element, attr);\n\n if (cur.indexOf(\" \" + val + \" \") < 0) {\n // Add the value if its not already there.\n element.setAttribute(attr, trim(cur + val));\n }\n }\n }\n }\n\n function removeFrom (element, attr, value) {\n var val, cur, updated;\n\n if (element.nodeType === 1) {\n val = trim(value);\n\n if (val != \"\") {\n cur = clean(element, attr);\n updated = false;\n\n while (cur.indexOf(\" \" + val + \" \") >= 0) {\n // Remove the value.\n cur = cur.replace(\" \" + val + \" \", \" \");\n updated = true;\n }\n\n if (updated) {\n // Update the attribute.\n element.setAttribute(attr, trim(cur));\n }\n }\n }\n }\n\n function init () {\n var i;\n\n // Process the style sheets.\n for (i = 0; i < document.styleSheets.length; i++) {\n processStyleSheet(document.styleSheets[i]);\n }\n\n refresh();\n }\n\n function refresh () {\n var i, ei, j, k, elements, element, val;\n\n // For each selector...\n for (i in queryData) {\n // Get the items matching the selector.\n elements = selectQuery(i);\n\n if (elements.length > 0) {\n // For each matching element...\n for (ei = 0; ei < elements.length; ei++) {\n element = elements[ei];\n\n // For each min|max-width|height string...\n for (j in queryData[i]) {\n // For each number px|em value pair...\n for (k in queryData[i][j]) {\n val = queryData[i][j][k][0];\n\n if (queryData[i][j][k][1] == \"em\") {\n // Convert EMs to pixels.\n // NOTE: Using getEmPixels() has a small performance impact.\n val = val * (window.getEmPixels ? getEmPixels(element) : 16);\n }\n\n /*\n * NOTE: Using offsetWidth/Height so an element can be adjusted when it reaches a specific size.\n * For Nested queries scrollWidth/Height or clientWidth/Height may sometime be desired but are not supported.\n */\n\n if ((j == \"min-width\" && element.offsetWidth >= val) ||\n (j == \"max-width\" && element.offsetWidth <= val) ||\n (j == \"min-height\" && element.offsetHeight >= val) ||\n (j == \"max-height\" && element.offsetHeight <= val)) {\n // Add matching attr value.\n addTo(element, j, k);\n } else {\n // Remove non-matching attr value.\n removeFrom(element, j, k);\n }\n }\n }\n }\n }\n }\n\n if (!window.addEventListener && window.attachEvent) {\n // Force a repaint in IE7 and IE8\n var className = document.documentElement.className;\n\n document.documentElement.className = \" \" + className;\n document.documentElement.className = className;\n }\n }\n\n // Expose some public functions\n window.elementQuery = function (arg1, arg2) {\n if (arg1 && typeof arg1 == \"object\") {\n if (arg1.cssRules || arg1.rules) {\n // Process a new style sheet.\n processStyleSheet(arg1, true);\n\n if (arg2 == true) {\n refresh();\n }\n } else {\n // Add new selector queries.\n updateQueryData(arg1, arg2);\n }\n } else if (!arg1 && !arg2) {\n refresh();\n }\n };\n\n // NOTE: For development purposes only!\n window.elementQuery.selectors = function () {\n var i, j, k, data;\n\n data = {};\n\n // For each selector...\n for (i in queryData) {\n // For each min|max-width|height string...\n for (j in queryData[i]) {\n // For each number px|em value pair...\n for (k in queryData[i][j]) {\n if (data[i] === undefined) {\n data[i] = {};\n }\n\n if (data[i][j] === undefined) {\n data[i][j] = [];\n }\n\n data[i][j][data[i][j].length] = k;\n }\n }\n }\n\n return data;\n };\n\n window.elementQuery.refresh = refresh;\n\n if (window.addEventListener) {\n window.addEventListener(\"resize\", refresh, false);\n window.addEventListener(\"DOMContentLoaded\", init, false);\n window.addEventListener(\"load\", init, false);\n } else if (window.attachEvent) {\n window.attachEvent(\"onresize\", refresh);\n window.attachEvent(\"onload\", init);\n }\n\n} (window, document, undefined));\n\n\n/**\n * getEmPixels | Author: Tyson Matanich (http://matanich.com), 2013 | License: MIT\n */\n\n(function (document, documentElement) {\n\n \"use strict\";\n\n var important, style;\n\n // Form the style on the fly to result in smaller minified file.\n important = \"!important;\";\n style = \"position:absolute\" + important + \"visibility:hidden\" + important + \"width:1em\" +\n important + \"font-size:1em\" + important + \"padding:0\" + important;\n\n window.getEmPixels = function getEmPixels (element) {\n var extraBody, testElement, value;\n\n if (!element) {\n // Emulate the documentElement to get rem value (documentElement does not work in IE6-7).\n element = extraBody = document.createElement(\"body\");\n extraBody.style.cssText = \"font-size:1em\" + important;\n documentElement.insertBefore(extraBody, document.body);\n }\n\n // Create and style a test element.\n testElement = document.createElement(\"i\");\n testElement.style.cssText = style;\n element.appendChild(testElement);\n\n // Get the client width of the test element.\n value = testElement.clientWidth;\n\n if (extraBody) {\n // Remove the extra body element.\n documentElement.removeChild(extraBody);\n } else {\n // Remove the test element.\n element.removeChild(testElement);\n }\n\n // Return the em value in pixels.\n return value;\n };\n\n} (document, document.documentElement));\n","/*!\n * jQuery Validation Plugin v1.14.0\n *\n * http://jqueryvalidation.org/\n *\n * Copyright (c) 2015 Jörn Zaefferer\n * Released under the MIT license\n */\n(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\"], factory );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.extend($.fn, {\n\t// http://jqueryvalidation.org/validate/\n\tvalidate: function( options ) {\n\n\t\t// if nothing is selected, return nothing; can't chain anyway\n\t\tif ( !this.length ) {\n\t\t\tif ( options && options.debug && window.console ) {\n\t\t\t\tconsole.warn( \"Nothing selected, can't validate, returning nothing.\" );\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\t// check if a validator for this form was already created\n\t\tvar validator = $.data( this[ 0 ], \"validator\" );\n\t\tif ( validator ) {\n\t\t\treturn validator;\n\t\t}\n\n\t\t// Add novalidate tag if HTML5.\n\t\tthis.attr( \"novalidate\", \"novalidate\" );\n\n\t\tvalidator = new $.validator( options, this[ 0 ] );\n\t\t$.data( this[ 0 ], \"validator\", validator );\n\n\t\tif ( validator.settings.onsubmit ) {\n\n\t\t\tthis.on( \"click.validate\", \":submit\", function( event ) {\n\t\t\t\tif ( validator.settings.submitHandler ) {\n\t\t\t\t\tvalidator.submitButton = event.target;\n\t\t\t\t}\n\n\t\t\t\t// allow suppressing validation by adding a cancel class to the submit button\n\t\t\t\tif ( $( this ).hasClass( \"cancel\" ) ) {\n\t\t\t\t\tvalidator.cancelSubmit = true;\n\t\t\t\t}\n\n\t\t\t\t// allow suppressing validation by adding the html5 formnovalidate attribute to the submit button\n\t\t\t\tif ( $( this ).attr( \"formnovalidate\" ) !== undefined ) {\n\t\t\t\t\tvalidator.cancelSubmit = true;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// validate the form on submit\n\t\t\tthis.on( \"submit.validate\", function( event ) {\n\t\t\t\tif ( validator.settings.debug ) {\n\t\t\t\t\t// prevent form submit to be able to see console output\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t\tfunction handle() {\n\t\t\t\t\tvar hidden, result;\n\t\t\t\t\tif ( validator.settings.submitHandler ) {\n\t\t\t\t\t\tif ( validator.submitButton ) {\n\t\t\t\t\t\t\t// insert a hidden input as a replacement for the missing submit button\n\t\t\t\t\t\t\thidden = $( \"\" )\n\t\t\t\t\t\t\t\t.attr( \"name\", validator.submitButton.name )\n\t\t\t\t\t\t\t\t.val( $( validator.submitButton ).val() )\n\t\t\t\t\t\t\t\t.appendTo( validator.currentForm );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tresult = validator.settings.submitHandler.call( validator, validator.currentForm, event );\n\t\t\t\t\t\tif ( validator.submitButton ) {\n\t\t\t\t\t\t\t// and clean up afterwards; thanks to no-block-scope, hidden can be referenced\n\t\t\t\t\t\t\thidden.remove();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( result !== undefined ) {\n\t\t\t\t\t\t\treturn result;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\t// prevent submit for invalid forms or custom submit handlers\n\t\t\t\tif ( validator.cancelSubmit ) {\n\t\t\t\t\tvalidator.cancelSubmit = false;\n\t\t\t\t\treturn handle();\n\t\t\t\t}\n\t\t\t\tif ( validator.form() ) {\n\t\t\t\t\tif ( validator.pendingRequest ) {\n\t\t\t\t\t\tvalidator.formSubmitted = true;\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\treturn handle();\n\t\t\t\t} else {\n\t\t\t\t\tvalidator.focusInvalid();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\treturn validator;\n\t},\n\t// http://jqueryvalidation.org/valid/\n\tvalid: function() {\n\t\tvar valid, validator, errorList;\n\n\t\tif ( $( this[ 0 ] ).is( \"form\" ) ) {\n\t\t\tvalid = this.validate().form();\n\t\t} else {\n\t\t\terrorList = [];\n\t\t\tvalid = true;\n\t\t\tvalidator = $( this[ 0 ].form ).validate();\n\t\t\tthis.each( function() {\n\t\t\t\tvalid = validator.element( this ) && valid;\n\t\t\t\terrorList = errorList.concat( validator.errorList );\n\t\t\t});\n\t\t\tvalidator.errorList = errorList;\n\t\t}\n\t\treturn valid;\n\t},\n\n\t// http://jqueryvalidation.org/rules/\n\trules: function( command, argument ) {\n\t\tvar element = this[ 0 ],\n\t\t\tsettings, staticRules, existingRules, data, param, filtered;\n\n\t\tif ( command ) {\n\t\t\tsettings = $.data( element.form, \"validator\" ).settings;\n\t\t\tstaticRules = settings.rules;\n\t\t\texistingRules = $.validator.staticRules( element );\n\t\t\tswitch ( command ) {\n\t\t\tcase \"add\":\n\t\t\t\t$.extend( existingRules, $.validator.normalizeRule( argument ) );\n\t\t\t\t// remove messages from rules, but allow them to be set separately\n\t\t\t\tdelete existingRules.messages;\n\t\t\t\tstaticRules[ element.name ] = existingRules;\n\t\t\t\tif ( argument.messages ) {\n\t\t\t\t\tsettings.messages[ element.name ] = $.extend( settings.messages[ element.name ], argument.messages );\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"remove\":\n\t\t\t\tif ( !argument ) {\n\t\t\t\t\tdelete staticRules[ element.name ];\n\t\t\t\t\treturn existingRules;\n\t\t\t\t}\n\t\t\t\tfiltered = {};\n\t\t\t\t$.each( argument.split( /\\s/ ), function( index, method ) {\n\t\t\t\t\tfiltered[ method ] = existingRules[ method ];\n\t\t\t\t\tdelete existingRules[ method ];\n\t\t\t\t\tif ( method === \"required\" ) {\n\t\t\t\t\t\t$( element ).removeAttr( \"aria-required\" );\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn filtered;\n\t\t\t}\n\t\t}\n\n\t\tdata = $.validator.normalizeRules(\n\t\t$.extend(\n\t\t\t{},\n\t\t\t$.validator.classRules( element ),\n\t\t\t$.validator.attributeRules( element ),\n\t\t\t$.validator.dataRules( element ),\n\t\t\t$.validator.staticRules( element )\n\t\t), element );\n\n\t\t// make sure required is at front\n\t\tif ( data.required ) {\n\t\t\tparam = data.required;\n\t\t\tdelete data.required;\n\t\t\tdata = $.extend( { required: param }, data );\n\t\t\t$( element ).attr( \"aria-required\", \"true\" );\n\t\t}\n\n\t\t// make sure remote is at back\n\t\tif ( data.remote ) {\n\t\t\tparam = data.remote;\n\t\t\tdelete data.remote;\n\t\t\tdata = $.extend( data, { remote: param });\n\t\t}\n\n\t\treturn data;\n\t}\n});\n\n// Custom selectors\n$.extend( $.expr[ \":\" ], {\n\t// http://jqueryvalidation.org/blank-selector/\n\tblank: function( a ) {\n\t\treturn !$.trim( \"\" + $( a ).val() );\n\t},\n\t// http://jqueryvalidation.org/filled-selector/\n\tfilled: function( a ) {\n\t\treturn !!$.trim( \"\" + $( a ).val() );\n\t},\n\t// http://jqueryvalidation.org/unchecked-selector/\n\tunchecked: function( a ) {\n\t\treturn !$( a ).prop( \"checked\" );\n\t}\n});\n\n// constructor for validator\n$.validator = function( options, form ) {\n\tthis.settings = $.extend( true, {}, $.validator.defaults, options );\n\tthis.currentForm = form;\n\tthis.init();\n};\n\n// http://jqueryvalidation.org/jQuery.validator.format/\n$.validator.format = function( source, params ) {\n\tif ( arguments.length === 1 ) {\n\t\treturn function() {\n\t\t\tvar args = $.makeArray( arguments );\n\t\t\targs.unshift( source );\n\t\t\treturn $.validator.format.apply( this, args );\n\t\t};\n\t}\n\tif ( arguments.length > 2 && params.constructor !== Array ) {\n\t\tparams = $.makeArray( arguments ).slice( 1 );\n\t}\n\tif ( params.constructor !== Array ) {\n\t\tparams = [ params ];\n\t}\n\t$.each( params, function( i, n ) {\n\t\tsource = source.replace( new RegExp( \"\\\\{\" + i + \"\\\\}\", \"g\" ), function() {\n\t\t\treturn n;\n\t\t});\n\t});\n\treturn source;\n};\n\n$.extend( $.validator, {\n\n\tdefaults: {\n\t\tmessages: {},\n\t\tgroups: {},\n\t\trules: {},\n\t\terrorClass: \"error\",\n\t\tvalidClass: \"valid\",\n\t\terrorElement: \"label\",\n\t\tfocusCleanup: false,\n\t\tfocusInvalid: true,\n\t\terrorContainer: $( [] ),\n\t\terrorLabelContainer: $( [] ),\n\t\tonsubmit: true,\n\t\tignore: \":hidden\",\n\t\tignoreTitle: false,\n\t\tonfocusin: function( element ) {\n\t\t\tthis.lastActive = element;\n\n\t\t\t// Hide error label and remove error class on focus if enabled\n\t\t\tif ( this.settings.focusCleanup ) {\n\t\t\t\tif ( this.settings.unhighlight ) {\n\t\t\t\t\tthis.settings.unhighlight.call( this, element, this.settings.errorClass, this.settings.validClass );\n\t\t\t\t}\n\t\t\t\tthis.hideThese( this.errorsFor( element ) );\n\t\t\t}\n\t\t},\n\t\tonfocusout: function( element ) {\n\t\t\tif ( !this.checkable( element ) && ( element.name in this.submitted || !this.optional( element ) ) ) {\n\t\t\t\tthis.element( element );\n\t\t\t}\n\t\t},\n\t\tonkeyup: function( element, event ) {\n\t\t\t// Avoid revalidate the field when pressing one of the following keys\n\t\t\t// Shift => 16\n\t\t\t// Ctrl => 17\n\t\t\t// Alt => 18\n\t\t\t// Caps lock => 20\n\t\t\t// End => 35\n\t\t\t// Home => 36\n\t\t\t// Left arrow => 37\n\t\t\t// Up arrow => 38\n\t\t\t// Right arrow => 39\n\t\t\t// Down arrow => 40\n\t\t\t// Insert => 45\n\t\t\t// Num lock => 144\n\t\t\t// AltGr key => 225\n\t\t\tvar excludedKeys = [\n\t\t\t\t16, 17, 18, 20, 35, 36, 37,\n\t\t\t\t38, 39, 40, 45, 144, 225\n\t\t\t];\n\n\t\t\tif ( event.which === 9 && this.elementValue( element ) === \"\" || $.inArray( event.keyCode, excludedKeys ) !== -1 ) {\n\t\t\t\treturn;\n\t\t\t} else if ( element.name in this.submitted || element === this.lastElement ) {\n\t\t\t\tthis.element( element );\n\t\t\t}\n\t\t},\n\t\tonclick: function( element ) {\n\t\t\t// click on selects, radiobuttons and checkboxes\n\t\t\tif ( element.name in this.submitted ) {\n\t\t\t\tthis.element( element );\n\n\t\t\t// or option elements, check parent select in that case\n\t\t\t} else if ( element.parentNode.name in this.submitted ) {\n\t\t\t\tthis.element( element.parentNode );\n\t\t\t}\n\t\t},\n\t\thighlight: function( element, errorClass, validClass ) {\n\t\t\tif ( element.type === \"radio\" ) {\n\t\t\t\tthis.findByName( element.name ).addClass( errorClass ).removeClass( validClass );\n\t\t\t} else {\n\t\t\t\t$( element ).addClass( errorClass ).removeClass( validClass );\n\t\t\t}\n\t\t},\n\t\tunhighlight: function( element, errorClass, validClass ) {\n\t\t\tif ( element.type === \"radio\" ) {\n\t\t\t\tthis.findByName( element.name ).removeClass( errorClass ).addClass( validClass );\n\t\t\t} else {\n\t\t\t\t$( element ).removeClass( errorClass ).addClass( validClass );\n\t\t\t}\n\t\t}\n\t},\n\n\t// http://jqueryvalidation.org/jQuery.validator.setDefaults/\n\tsetDefaults: function( settings ) {\n\t\t$.extend( $.validator.defaults, settings );\n\t},\n\n\tmessages: {\n\t\trequired: \"This field is required.\",\n\t\tremote: \"Please fix this field.\",\n\t\temail: \"Please enter a valid email address.\",\n\t\turl: \"Please enter a valid URL.\",\n\t\tdate: \"Please enter a valid date.\",\n\t\tdateISO: \"Please enter a valid date ( ISO ).\",\n\t\tnumber: \"Please enter a valid number.\",\n\t\tdigits: \"Please enter only digits.\",\n\t\tcreditcard: \"Please enter a valid credit card number.\",\n\t\tequalTo: \"Please enter the same value again.\",\n\t\tmaxlength: $.validator.format( \"Please enter no more than {0} characters.\" ),\n\t\tminlength: $.validator.format( \"Please enter at least {0} characters.\" ),\n\t\trangelength: $.validator.format( \"Please enter a value between {0} and {1} characters long.\" ),\n\t\trange: $.validator.format( \"Please enter a value between {0} and {1}.\" ),\n\t\tmax: $.validator.format( \"Please enter a value less than or equal to {0}.\" ),\n\t\tmin: $.validator.format( \"Please enter a value greater than or equal to {0}.\" )\n\t},\n\n\tautoCreateRanges: false,\n\n\tprototype: {\n\n\t\tinit: function() {\n\t\t\tthis.labelContainer = $( this.settings.errorLabelContainer );\n\t\t\tthis.errorContext = this.labelContainer.length && this.labelContainer || $( this.currentForm );\n\t\t\tthis.containers = $( this.settings.errorContainer ).add( this.settings.errorLabelContainer );\n\t\t\tthis.submitted = {};\n\t\t\tthis.valueCache = {};\n\t\t\tthis.pendingRequest = 0;\n\t\t\tthis.pending = {};\n\t\t\tthis.invalid = {};\n\t\t\tthis.reset();\n\n\t\t\tvar groups = ( this.groups = {} ),\n\t\t\t\trules;\n\t\t\t$.each( this.settings.groups, function( key, value ) {\n\t\t\t\tif ( typeof value === \"string\" ) {\n\t\t\t\t\tvalue = value.split( /\\s/ );\n\t\t\t\t}\n\t\t\t\t$.each( value, function( index, name ) {\n\t\t\t\t\tgroups[ name ] = key;\n\t\t\t\t});\n\t\t\t});\n\t\t\trules = this.settings.rules;\n\t\t\t$.each( rules, function( key, value ) {\n\t\t\t\trules[ key ] = $.validator.normalizeRule( value );\n\t\t\t});\n\n\t\t\tfunction delegate( event ) {\n\t\t\t\tvar validator = $.data( this.form, \"validator\" ),\n\t\t\t\t\teventType = \"on\" + event.type.replace( /^validate/, \"\" ),\n\t\t\t\t\tsettings = validator.settings;\n\t\t\t\tif ( settings[ eventType ] && !$( this ).is( settings.ignore ) ) {\n\t\t\t\t\tsettings[ eventType ].call( validator, this, event );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t$( this.currentForm )\n\t\t\t\t.on( \"focusin.validate focusout.validate keyup.validate\",\n\t\t\t\t\t\":text, [type='password'], [type='file'], select, textarea, [type='number'], [type='search'], \" +\n\t\t\t\t\t\"[type='tel'], [type='url'], [type='email'], [type='datetime'], [type='date'], [type='month'], \" +\n\t\t\t\t\t\"[type='week'], [type='time'], [type='datetime-local'], [type='range'], [type='color'], \" +\n\t\t\t\t\t\"[type='radio'], [type='checkbox']\", delegate)\n\t\t\t\t// Support: Chrome, oldIE\n\t\t\t\t// \"select\" is provided as event.target when clicking a option\n\t\t\t\t.on(\"click.validate\", \"select, option, [type='radio'], [type='checkbox']\", delegate);\n\n\t\t\tif ( this.settings.invalidHandler ) {\n\t\t\t\t$( this.currentForm ).on( \"invalid-form.validate\", this.settings.invalidHandler );\n\t\t\t}\n\n\t\t\t// Add aria-required to any Static/Data/Class required fields before first validation\n\t\t\t// Screen readers require this attribute to be present before the initial submission http://www.w3.org/TR/WCAG-TECHS/ARIA2.html\n\t\t\t$( this.currentForm ).find( \"[required], [data-rule-required], .required\" ).attr( \"aria-required\", \"true\" );\n\t\t},\n\n\t\t// http://jqueryvalidation.org/Validator.form/\n\t\tform: function() {\n\t\t\tthis.checkForm();\n\t\t\t$.extend( this.submitted, this.errorMap );\n\t\t\tthis.invalid = $.extend({}, this.errorMap );\n\t\t\tif ( !this.valid() ) {\n\t\t\t\t$( this.currentForm ).triggerHandler( \"invalid-form\", [ this ]);\n\t\t\t}\n\t\t\tthis.showErrors();\n\t\t\treturn this.valid();\n\t\t},\n\n\t\tcheckForm: function() {\n\t\t\tthis.prepareForm();\n\t\t\tfor ( var i = 0, elements = ( this.currentElements = this.elements() ); elements[ i ]; i++ ) {\n\t\t\t\tthis.check( elements[ i ] );\n\t\t\t}\n\t\t\treturn this.valid();\n\t\t},\n\n\t\t// http://jqueryvalidation.org/Validator.element/\n\t\telement: function( element ) {\n\t\t\tvar cleanElement = this.clean( element ),\n\t\t\t\tcheckElement = this.validationTargetFor( cleanElement ),\n\t\t\t\tresult = true;\n\n\t\t\tthis.lastElement = checkElement;\n\n\t\t\tif ( checkElement === undefined ) {\n\t\t\t\tdelete this.invalid[ cleanElement.name ];\n\t\t\t} else {\n\t\t\t\tthis.prepareElement( checkElement );\n\t\t\t\tthis.currentElements = $( checkElement );\n\n\t\t\t\tresult = this.check( checkElement ) !== false;\n\t\t\t\tif ( result ) {\n\t\t\t\t\tdelete this.invalid[ checkElement.name ];\n\t\t\t\t} else {\n\t\t\t\t\tthis.invalid[ checkElement.name ] = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Add aria-invalid status for screen readers\n\t\t\t$( element ).attr( \"aria-invalid\", !result );\n\n\t\t\tif ( !this.numberOfInvalids() ) {\n\t\t\t\t// Hide error containers on last error\n\t\t\t\tthis.toHide = this.toHide.add( this.containers );\n\t\t\t}\n\t\t\tthis.showErrors();\n\t\t\treturn result;\n\t\t},\n\n\t\t// http://jqueryvalidation.org/Validator.showErrors/\n\t\tshowErrors: function( errors ) {\n\t\t\tif ( errors ) {\n\t\t\t\t// add items to error list and map\n\t\t\t\t$.extend( this.errorMap, errors );\n\t\t\t\tthis.errorList = [];\n\t\t\t\tfor ( var name in errors ) {\n\t\t\t\t\tthis.errorList.push({\n\t\t\t\t\t\tmessage: errors[ name ],\n\t\t\t\t\t\telement: this.findByName( name )[ 0 ]\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\t// remove items from success list\n\t\t\t\tthis.successList = $.grep( this.successList, function( element ) {\n\t\t\t\t\treturn !( element.name in errors );\n\t\t\t\t});\n\t\t\t}\n\t\t\tif ( this.settings.showErrors ) {\n\t\t\t\tthis.settings.showErrors.call( this, this.errorMap, this.errorList );\n\t\t\t} else {\n\t\t\t\tthis.defaultShowErrors();\n\t\t\t}\n\t\t},\n\n\t\t// http://jqueryvalidation.org/Validator.resetForm/\n\t\tresetForm: function() {\n\t\t\tif ( $.fn.resetForm ) {\n\t\t\t\t$( this.currentForm ).resetForm();\n\t\t\t}\n\t\t\tthis.submitted = {};\n\t\t\tthis.lastElement = null;\n\t\t\tthis.prepareForm();\n\t\t\tthis.hideErrors();\n\t\t\tvar i, elements = this.elements()\n\t\t\t\t.removeData( \"previousValue\" )\n\t\t\t\t.removeAttr( \"aria-invalid\" );\n\n\t\t\tif ( this.settings.unhighlight ) {\n\t\t\t\tfor ( i = 0; elements[ i ]; i++ ) {\n\t\t\t\t\tthis.settings.unhighlight.call( this, elements[ i ],\n\t\t\t\t\t\tthis.settings.errorClass, \"\" );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\telements.removeClass( this.settings.errorClass );\n\t\t\t}\n\t\t},\n\n\t\tnumberOfInvalids: function() {\n\t\t\treturn this.objectLength( this.invalid );\n\t\t},\n\n\t\tobjectLength: function( obj ) {\n\t\t\t/* jshint unused: false */\n\t\t\tvar count = 0,\n\t\t\t\ti;\n\t\t\tfor ( i in obj ) {\n\t\t\t\tcount++;\n\t\t\t}\n\t\t\treturn count;\n\t\t},\n\n\t\thideErrors: function() {\n\t\t\tthis.hideThese( this.toHide );\n\t\t},\n\n\t\thideThese: function( errors ) {\n\t\t\terrors.not( this.containers ).text( \"\" );\n\t\t\tthis.addWrapper( errors ).hide();\n\t\t},\n\n\t\tvalid: function() {\n\t\t\treturn this.size() === 0;\n\t\t},\n\n\t\tsize: function() {\n\t\t\treturn this.errorList.length;\n\t\t},\n\n\t\tfocusInvalid: function() {\n\t\t\tif ( this.settings.focusInvalid ) {\n\t\t\t\ttry {\n\t\t\t\t\t$( this.findLastActive() || this.errorList.length && this.errorList[ 0 ].element || [])\n\t\t\t\t\t.filter( \":visible\" )\n\t\t\t\t\t.focus()\n\t\t\t\t\t// manually trigger focusin event; without it, focusin handler isn't called, findLastActive won't have anything to find\n\t\t\t\t\t.trigger( \"focusin\" );\n\t\t\t\t} catch ( e ) {\n\t\t\t\t\t// ignore IE throwing errors when focusing hidden elements\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tfindLastActive: function() {\n\t\t\tvar lastActive = this.lastActive;\n\t\t\treturn lastActive && $.grep( this.errorList, function( n ) {\n\t\t\t\treturn n.element.name === lastActive.name;\n\t\t\t}).length === 1 && lastActive;\n\t\t},\n\n\t\telements: function() {\n\t\t\tvar validator = this,\n\t\t\t\trulesCache = {};\n\n\t\t\t// select all valid inputs inside the form (no submit or reset buttons)\n\t\t\treturn $( this.currentForm )\n\t\t\t.find( \"input, select, textarea\" )\n\t\t\t.not( \":submit, :reset, :image, :disabled\" )\n\t\t\t.not( this.settings.ignore )\n\t\t\t.filter( function() {\n\t\t\t\tif ( !this.name && validator.settings.debug && window.console ) {\n\t\t\t\t\tconsole.error( \"%o has no name assigned\", this );\n\t\t\t\t}\n\n\t\t\t\t// select only the first element for each name, and only those with rules specified\n\t\t\t\tif ( this.name in rulesCache || !validator.objectLength( $( this ).rules() ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\trulesCache[ this.name ] = true;\n\t\t\t\treturn true;\n\t\t\t});\n\t\t},\n\n\t\tclean: function( selector ) {\n\t\t\treturn $( selector )[ 0 ];\n\t\t},\n\n\t\terrors: function() {\n\t\t\tvar errorClass = this.settings.errorClass.split( \" \" ).join( \".\" );\n\t\t\treturn $( this.settings.errorElement + \".\" + errorClass, this.errorContext );\n\t\t},\n\n\t\treset: function() {\n\t\t\tthis.successList = [];\n\t\t\tthis.errorList = [];\n\t\t\tthis.errorMap = {};\n\t\t\tthis.toShow = $( [] );\n\t\t\tthis.toHide = $( [] );\n\t\t\tthis.currentElements = $( [] );\n\t\t},\n\n\t\tprepareForm: function() {\n\t\t\tthis.reset();\n\t\t\tthis.toHide = this.errors().add( this.containers );\n\t\t},\n\n\t\tprepareElement: function( element ) {\n\t\t\tthis.reset();\n\t\t\tthis.toHide = this.errorsFor( element );\n\t\t},\n\n\t\telementValue: function( element ) {\n\t\t\tvar val,\n\t\t\t\t$element = $( element ),\n\t\t\t\ttype = element.type;\n\n\t\t\tif ( type === \"radio\" || type === \"checkbox\" ) {\n\t\t\t\treturn this.findByName( element.name ).filter(\":checked\").val();\n\t\t\t} else if ( type === \"number\" && typeof element.validity !== \"undefined\" ) {\n\t\t\t\treturn element.validity.badInput ? false : $element.val();\n\t\t\t}\n\n\t\t\tval = $element.val();\n\t\t\tif ( typeof val === \"string\" ) {\n\t\t\t\treturn val.replace(/\\r/g, \"\" );\n\t\t\t}\n\t\t\treturn val;\n\t\t},\n\n\t\tcheck: function( element ) {\n\t\t\telement = this.validationTargetFor( this.clean( element ) );\n\n\t\t\tvar rules = $( element ).rules(),\n\t\t\t\trulesCount = $.map( rules, function( n, i ) {\n\t\t\t\t\treturn i;\n\t\t\t\t}).length,\n\t\t\t\tdependencyMismatch = false,\n\t\t\t\tval = this.elementValue( element ),\n\t\t\t\tresult, method, rule;\n\n\t\t\tfor ( method in rules ) {\n\t\t\t\trule = { method: method, parameters: rules[ method ] };\n\t\t\t\ttry {\n\n\t\t\t\t\tresult = $.validator.methods[ method ].call( this, val, element, rule.parameters );\n\n\t\t\t\t\t// if a method indicates that the field is optional and therefore valid,\n\t\t\t\t\t// don't mark it as valid when there are no other rules\n\t\t\t\t\tif ( result === \"dependency-mismatch\" && rulesCount === 1 ) {\n\t\t\t\t\t\tdependencyMismatch = true;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tdependencyMismatch = false;\n\n\t\t\t\t\tif ( result === \"pending\" ) {\n\t\t\t\t\t\tthis.toHide = this.toHide.not( this.errorsFor( element ) );\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( !result ) {\n\t\t\t\t\t\tthis.formatAndAdd( element, rule );\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t} catch ( e ) {\n\t\t\t\t\tif ( this.settings.debug && window.console ) {\n\t\t\t\t\t\tconsole.log( \"Exception occurred when checking element \" + element.id + \", check the '\" + rule.method + \"' method.\", e );\n\t\t\t\t\t}\n\t\t\t\t\tif ( e instanceof TypeError ) {\n\t\t\t\t\t\te.message += \". Exception occurred when checking element \" + element.id + \", check the '\" + rule.method + \"' method.\";\n\t\t\t\t\t}\n\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( dependencyMismatch ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif ( this.objectLength( rules ) ) {\n\t\t\t\tthis.successList.push( element );\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t// return the custom message for the given element and validation method\n\t\t// specified in the element's HTML5 data attribute\n\t\t// return the generic message if present and no method specific message is present\n\t\tcustomDataMessage: function( element, method ) {\n\t\t\treturn $( element ).data( \"msg\" + method.charAt( 0 ).toUpperCase() +\n\t\t\t\tmethod.substring( 1 ).toLowerCase() ) || $( element ).data( \"msg\" );\n\t\t},\n\n\t\t// return the custom message for the given element name and validation method\n\t\tcustomMessage: function( name, method ) {\n\t\t\tvar m = this.settings.messages[ name ];\n\t\t\treturn m && ( m.constructor === String ? m : m[ method ]);\n\t\t},\n\n\t\t// return the first defined argument, allowing empty strings\n\t\tfindDefined: function() {\n\t\t\tfor ( var i = 0; i < arguments.length; i++) {\n\t\t\t\tif ( arguments[ i ] !== undefined ) {\n\t\t\t\t\treturn arguments[ i ];\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\n\t\tdefaultMessage: function( element, method ) {\n\t\t\treturn this.findDefined(\n\t\t\t\tthis.customMessage( element.name, method ),\n\t\t\t\tthis.customDataMessage( element, method ),\n\t\t\t\t// title is never undefined, so handle empty string as undefined\n\t\t\t\t!this.settings.ignoreTitle && element.title || undefined,\n\t\t\t\t$.validator.messages[ method ],\n\t\t\t\t\"Warning: No message defined for \" + element.name + \"\"\n\t\t\t);\n\t\t},\n\n\t\tformatAndAdd: function( element, rule ) {\n\t\t\tvar message = this.defaultMessage( element, rule.method ),\n\t\t\t\ttheregex = /\\$?\\{(\\d+)\\}/g;\n\t\t\tif ( typeof message === \"function\" ) {\n\t\t\t\tmessage = message.call( this, rule.parameters, element );\n\t\t\t} else if ( theregex.test( message ) ) {\n\t\t\t\tmessage = $.validator.format( message.replace( theregex, \"{$1}\" ), rule.parameters );\n\t\t\t}\n\t\t\tthis.errorList.push({\n\t\t\t\tmessage: message,\n\t\t\t\telement: element,\n\t\t\t\tmethod: rule.method\n\t\t\t});\n\n\t\t\tthis.errorMap[ element.name ] = message;\n\t\t\tthis.submitted[ element.name ] = message;\n\t\t},\n\n\t\taddWrapper: function( toToggle ) {\n\t\t\tif ( this.settings.wrapper ) {\n\t\t\t\ttoToggle = toToggle.add( toToggle.parent( this.settings.wrapper ) );\n\t\t\t}\n\t\t\treturn toToggle;\n\t\t},\n\n\t\tdefaultShowErrors: function() {\n\t\t\tvar i, elements, error;\n\t\t\tfor ( i = 0; this.errorList[ i ]; i++ ) {\n\t\t\t\terror = this.errorList[ i ];\n\t\t\t\tif ( this.settings.highlight ) {\n\t\t\t\t\tthis.settings.highlight.call( this, error.element, this.settings.errorClass, this.settings.validClass );\n\t\t\t\t}\n\t\t\t\tthis.showLabel( error.element, error.message );\n\t\t\t}\n\t\t\tif ( this.errorList.length ) {\n\t\t\t\tthis.toShow = this.toShow.add( this.containers );\n\t\t\t}\n\t\t\tif ( this.settings.success ) {\n\t\t\t\tfor ( i = 0; this.successList[ i ]; i++ ) {\n\t\t\t\t\tthis.showLabel( this.successList[ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( this.settings.unhighlight ) {\n\t\t\t\tfor ( i = 0, elements = this.validElements(); elements[ i ]; i++ ) {\n\t\t\t\t\tthis.settings.unhighlight.call( this, elements[ i ], this.settings.errorClass, this.settings.validClass );\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.toHide = this.toHide.not( this.toShow );\n\t\t\tthis.hideErrors();\n\t\t\tthis.addWrapper( this.toShow ).show();\n\t\t},\n\n\t\tvalidElements: function() {\n\t\t\treturn this.currentElements.not( this.invalidElements() );\n\t\t},\n\n\t\tinvalidElements: function() {\n\t\t\treturn $( this.errorList ).map(function() {\n\t\t\t\treturn this.element;\n\t\t\t});\n\t\t},\n\n\t\tshowLabel: function( element, message ) {\n\t\t\tvar place, group, errorID,\n\t\t\t\terror = this.errorsFor( element ),\n\t\t\t\telementID = this.idOrName( element ),\n\t\t\t\tdescribedBy = $( element ).attr( \"aria-describedby\" );\n\t\t\tif ( error.length ) {\n\t\t\t\t// refresh error/success class\n\t\t\t\terror.removeClass( this.settings.validClass ).addClass( this.settings.errorClass );\n\t\t\t\t// replace message on existing label\n\t\t\t\terror.html( message );\n\t\t\t} else {\n\t\t\t\t// create error element\n\t\t\t\terror = $( \"<\" + this.settings.errorElement + \">\" )\n\t\t\t\t\t.attr( \"id\", elementID + \"-error\" )\n\t\t\t\t\t.addClass( this.settings.errorClass )\n\t\t\t\t\t.html( message || \"\" );\n\n\t\t\t\t// Maintain reference to the element to be placed into the DOM\n\t\t\t\tplace = error;\n\t\t\t\tif ( this.settings.wrapper ) {\n\t\t\t\t\t// make sure the element is visible, even in IE\n\t\t\t\t\t// actually showing the wrapped element is handled elsewhere\n\t\t\t\t\tplace = error.hide().show().wrap( \"<\" + this.settings.wrapper + \"/>\" ).parent();\n\t\t\t\t}\n\t\t\t\tif ( this.labelContainer.length ) {\n\t\t\t\t\tthis.labelContainer.append( place );\n\t\t\t\t} else if ( this.settings.errorPlacement ) {\n\t\t\t\t\tthis.settings.errorPlacement( place, $( element ) );\n\t\t\t\t} else {\n\t\t\t\t\tplace.insertAfter( element );\n\t\t\t\t}\n\n\t\t\t\t// Link error back to the element\n\t\t\t\tif ( error.is( \"label\" ) ) {\n\t\t\t\t\t// If the error is a label, then associate using 'for'\n\t\t\t\t\terror.attr( \"for\", elementID );\n\t\t\t\t} else if ( error.parents( \"label[for='\" + elementID + \"']\" ).length === 0 ) {\n\t\t\t\t\t// If the element is not a child of an associated label, then it's necessary\n\t\t\t\t\t// to explicitly apply aria-describedby\n\n\t\t\t\t\terrorID = error.attr( \"id\" ).replace( /(:|\\.|\\[|\\]|\\$)/g, \"\\\\$1\");\n\t\t\t\t\t// Respect existing non-error aria-describedby\n\t\t\t\t\tif ( !describedBy ) {\n\t\t\t\t\t\tdescribedBy = errorID;\n\t\t\t\t\t} else if ( !describedBy.match( new RegExp( \"\\\\b\" + errorID + \"\\\\b\" ) ) ) {\n\t\t\t\t\t\t// Add to end of list if not already present\n\t\t\t\t\t\tdescribedBy += \" \" + errorID;\n\t\t\t\t\t}\n\t\t\t\t\t$( element ).attr( \"aria-describedby\", describedBy );\n\n\t\t\t\t\t// If this element is grouped, then assign to all elements in the same group\n\t\t\t\t\tgroup = this.groups[ element.name ];\n\t\t\t\t\tif ( group ) {\n\t\t\t\t\t\t$.each( this.groups, function( name, testgroup ) {\n\t\t\t\t\t\t\tif ( testgroup === group ) {\n\t\t\t\t\t\t\t\t$( \"[name='\" + name + \"']\", this.currentForm )\n\t\t\t\t\t\t\t\t\t.attr( \"aria-describedby\", error.attr( \"id\" ) );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( !message && this.settings.success ) {\n\t\t\t\terror.text( \"\" );\n\t\t\t\tif ( typeof this.settings.success === \"string\" ) {\n\t\t\t\t\terror.addClass( this.settings.success );\n\t\t\t\t} else {\n\t\t\t\t\tthis.settings.success( error, element );\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.toShow = this.toShow.add( error );\n\t\t},\n\n\t\terrorsFor: function( element ) {\n\t\t\tvar name = this.idOrName( element ),\n\t\t\t\tdescriber = $( element ).attr( \"aria-describedby\" ),\n\t\t\t\tselector = \"label[for='\" + name + \"'], label[for='\" + name + \"'] *\";\n\n\t\t\t// aria-describedby should directly reference the error element\n\t\t\tif ( describer ) {\n\t\t\t\tselector = selector + \", #\" + describer.replace( /\\s+/g, \", #\" );\n\t\t\t}\n\t\t\treturn this\n\t\t\t\t.errors()\n\t\t\t\t.filter( selector );\n\t\t},\n\n\t\tidOrName: function( element ) {\n\t\t\treturn this.groups[ element.name ] || ( this.checkable( element ) ? element.name : element.id || element.name );\n\t\t},\n\n\t\tvalidationTargetFor: function( element ) {\n\n\t\t\t// If radio/checkbox, validate first element in group instead\n\t\t\tif ( this.checkable( element ) ) {\n\t\t\t\telement = this.findByName( element.name );\n\t\t\t}\n\n\t\t\t// Always apply ignore filter\n\t\t\treturn $( element ).not( this.settings.ignore )[ 0 ];\n\t\t},\n\n\t\tcheckable: function( element ) {\n\t\t\treturn ( /radio|checkbox/i ).test( element.type );\n\t\t},\n\n\t\tfindByName: function( name ) {\n\t\t\treturn $( this.currentForm ).find( \"[name='\" + name + \"']\" );\n\t\t},\n\n\t\tgetLength: function( value, element ) {\n\t\t\tswitch ( element.nodeName.toLowerCase() ) {\n\t\t\tcase \"select\":\n\t\t\t\treturn $( \"option:selected\", element ).length;\n\t\t\tcase \"input\":\n\t\t\t\tif ( this.checkable( element ) ) {\n\t\t\t\t\treturn this.findByName( element.name ).filter( \":checked\" ).length;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn value.length;\n\t\t},\n\n\t\tdepend: function( param, element ) {\n\t\t\treturn this.dependTypes[typeof param] ? this.dependTypes[typeof param]( param, element ) : true;\n\t\t},\n\n\t\tdependTypes: {\n\t\t\t\"boolean\": function( param ) {\n\t\t\t\treturn param;\n\t\t\t},\n\t\t\t\"string\": function( param, element ) {\n\t\t\t\treturn !!$( param, element.form ).length;\n\t\t\t},\n\t\t\t\"function\": function( param, element ) {\n\t\t\t\treturn param( element );\n\t\t\t}\n\t\t},\n\n\t\toptional: function( element ) {\n\t\t\tvar val = this.elementValue( element );\n\t\t\treturn !$.validator.methods.required.call( this, val, element ) && \"dependency-mismatch\";\n\t\t},\n\n\t\tstartRequest: function( element ) {\n\t\t\tif ( !this.pending[ element.name ] ) {\n\t\t\t\tthis.pendingRequest++;\n\t\t\t\tthis.pending[ element.name ] = true;\n\t\t\t}\n\t\t},\n\n\t\tstopRequest: function( element, valid ) {\n\t\t\tthis.pendingRequest--;\n\t\t\t// sometimes synchronization fails, make sure pendingRequest is never < 0\n\t\t\tif ( this.pendingRequest < 0 ) {\n\t\t\t\tthis.pendingRequest = 0;\n\t\t\t}\n\t\t\tdelete this.pending[ element.name ];\n\t\t\tif ( valid && this.pendingRequest === 0 && this.formSubmitted && this.form() ) {\n\t\t\t\t$( this.currentForm ).submit();\n\t\t\t\tthis.formSubmitted = false;\n\t\t\t} else if (!valid && this.pendingRequest === 0 && this.formSubmitted ) {\n\t\t\t\t$( this.currentForm ).triggerHandler( \"invalid-form\", [ this ]);\n\t\t\t\tthis.formSubmitted = false;\n\t\t\t}\n\t\t},\n\n\t\tpreviousValue: function( element ) {\n\t\t\treturn $.data( element, \"previousValue\" ) || $.data( element, \"previousValue\", {\n\t\t\t\told: null,\n\t\t\t\tvalid: true,\n\t\t\t\tmessage: this.defaultMessage( element, \"remote\" )\n\t\t\t});\n\t\t},\n\n\t\t// cleans up all forms and elements, removes validator-specific events\n\t\tdestroy: function() {\n\t\t\tthis.resetForm();\n\n\t\t\t$( this.currentForm )\n\t\t\t\t.off( \".validate\" )\n\t\t\t\t.removeData( \"validator\" );\n\t\t}\n\n\t},\n\n\tclassRuleSettings: {\n\t\trequired: { required: true },\n\t\temail: { email: true },\n\t\turl: { url: true },\n\t\tdate: { date: true },\n\t\tdateISO: { dateISO: true },\n\t\tnumber: { number: true },\n\t\tdigits: { digits: true },\n\t\tcreditcard: { creditcard: true }\n\t},\n\n\taddClassRules: function( className, rules ) {\n\t\tif ( className.constructor === String ) {\n\t\t\tthis.classRuleSettings[ className ] = rules;\n\t\t} else {\n\t\t\t$.extend( this.classRuleSettings, className );\n\t\t}\n\t},\n\n\tclassRules: function( element ) {\n\t\tvar rules = {},\n\t\t\tclasses = $( element ).attr( \"class\" );\n\n\t\tif ( classes ) {\n\t\t\t$.each( classes.split( \" \" ), function() {\n\t\t\t\tif ( this in $.validator.classRuleSettings ) {\n\t\t\t\t\t$.extend( rules, $.validator.classRuleSettings[ this ]);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\treturn rules;\n\t},\n\n\tnormalizeAttributeRule: function( rules, type, method, value ) {\n\n\t\t// convert the value to a number for number inputs, and for text for backwards compability\n\t\t// allows type=\"date\" and others to be compared as strings\n\t\tif ( /min|max/.test( method ) && ( type === null || /number|range|text/.test( type ) ) ) {\n\t\t\tvalue = Number( value );\n\n\t\t\t// Support Opera Mini, which returns NaN for undefined minlength\n\t\t\tif ( isNaN( value ) ) {\n\t\t\t\tvalue = undefined;\n\t\t\t}\n\t\t}\n\n\t\tif ( value || value === 0 ) {\n\t\t\trules[ method ] = value;\n\t\t} else if ( type === method && type !== \"range\" ) {\n\n\t\t\t// exception: the jquery validate 'range' method\n\t\t\t// does not test for the html5 'range' type\n\t\t\trules[ method ] = true;\n\t\t}\n\t},\n\n\tattributeRules: function( element ) {\n\t\tvar rules = {},\n\t\t\t$element = $( element ),\n\t\t\ttype = element.getAttribute( \"type\" ),\n\t\t\tmethod, value;\n\n\t\tfor ( method in $.validator.methods ) {\n\n\t\t\t// support for in both html5 and older browsers\n\t\t\tif ( method === \"required\" ) {\n\t\t\t\tvalue = element.getAttribute( method );\n\n\t\t\t\t// Some browsers return an empty string for the required attribute\n\t\t\t\t// and non-HTML5 browsers might have required=\"\" markup\n\t\t\t\tif ( value === \"\" ) {\n\t\t\t\t\tvalue = true;\n\t\t\t\t}\n\n\t\t\t\t// force non-HTML5 browsers to return bool\n\t\t\t\tvalue = !!value;\n\t\t\t} else {\n\t\t\t\tvalue = $element.attr( method );\n\t\t\t}\n\n\t\t\tthis.normalizeAttributeRule( rules, type, method, value );\n\t\t}\n\n\t\t// maxlength may be returned as -1, 2147483647 ( IE ) and 524288 ( safari ) for text inputs\n\t\tif ( rules.maxlength && /-1|2147483647|524288/.test( rules.maxlength ) ) {\n\t\t\tdelete rules.maxlength;\n\t\t}\n\n\t\treturn rules;\n\t},\n\n\tdataRules: function( element ) {\n\t\tvar rules = {},\n\t\t\t$element = $( element ),\n\t\t\ttype = element.getAttribute( \"type\" ),\n\t\t\tmethod, value;\n\n\t\tfor ( method in $.validator.methods ) {\n\t\t\tvalue = $element.data( \"rule\" + method.charAt( 0 ).toUpperCase() + method.substring( 1 ).toLowerCase() );\n\t\t\tthis.normalizeAttributeRule( rules, type, method, value );\n\t\t}\n\t\treturn rules;\n\t},\n\n\tstaticRules: function( element ) {\n\t\tvar rules = {},\n\t\t\tvalidator = $.data( element.form, \"validator\" );\n\n\t\tif ( validator.settings.rules ) {\n\t\t\trules = $.validator.normalizeRule( validator.settings.rules[ element.name ] ) || {};\n\t\t}\n\t\treturn rules;\n\t},\n\n\tnormalizeRules: function( rules, element ) {\n\t\t// handle dependency check\n\t\t$.each( rules, function( prop, val ) {\n\t\t\t// ignore rule when param is explicitly false, eg. required:false\n\t\t\tif ( val === false ) {\n\t\t\t\tdelete rules[ prop ];\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif ( val.param || val.depends ) {\n\t\t\t\tvar keepRule = true;\n\t\t\t\tswitch ( typeof val.depends ) {\n\t\t\t\tcase \"string\":\n\t\t\t\t\tkeepRule = !!$( val.depends, element.form ).length;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"function\":\n\t\t\t\t\tkeepRule = val.depends.call( element, element );\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif ( keepRule ) {\n\t\t\t\t\trules[ prop ] = val.param !== undefined ? val.param : true;\n\t\t\t\t} else {\n\t\t\t\t\tdelete rules[ prop ];\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t// evaluate parameters\n\t\t$.each( rules, function( rule, parameter ) {\n\t\t\trules[ rule ] = $.isFunction( parameter ) ? parameter( element ) : parameter;\n\t\t});\n\n\t\t// clean number parameters\n\t\t$.each([ \"minlength\", \"maxlength\" ], function() {\n\t\t\tif ( rules[ this ] ) {\n\t\t\t\trules[ this ] = Number( rules[ this ] );\n\t\t\t}\n\t\t});\n\t\t$.each([ \"rangelength\", \"range\" ], function() {\n\t\t\tvar parts;\n\t\t\tif ( rules[ this ] ) {\n\t\t\t\tif ( $.isArray( rules[ this ] ) ) {\n\t\t\t\t\trules[ this ] = [ Number( rules[ this ][ 0 ]), Number( rules[ this ][ 1 ] ) ];\n\t\t\t\t} else if ( typeof rules[ this ] === \"string\" ) {\n\t\t\t\t\tparts = rules[ this ].replace(/[\\[\\]]/g, \"\" ).split( /[\\s,]+/ );\n\t\t\t\t\trules[ this ] = [ Number( parts[ 0 ]), Number( parts[ 1 ] ) ];\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tif ( $.validator.autoCreateRanges ) {\n\t\t\t// auto-create ranges\n\t\t\tif ( rules.min != null && rules.max != null ) {\n\t\t\t\trules.range = [ rules.min, rules.max ];\n\t\t\t\tdelete rules.min;\n\t\t\t\tdelete rules.max;\n\t\t\t}\n\t\t\tif ( rules.minlength != null && rules.maxlength != null ) {\n\t\t\t\trules.rangelength = [ rules.minlength, rules.maxlength ];\n\t\t\t\tdelete rules.minlength;\n\t\t\t\tdelete rules.maxlength;\n\t\t\t}\n\t\t}\n\n\t\treturn rules;\n\t},\n\n\t// Converts a simple string to a {string: true} rule, e.g., \"required\" to {required:true}\n\tnormalizeRule: function( data ) {\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tvar transformed = {};\n\t\t\t$.each( data.split( /\\s/ ), function() {\n\t\t\t\ttransformed[ this ] = true;\n\t\t\t});\n\t\t\tdata = transformed;\n\t\t}\n\t\treturn data;\n\t},\n\n\t// http://jqueryvalidation.org/jQuery.validator.addMethod/\n\taddMethod: function( name, method, message ) {\n\t\t$.validator.methods[ name ] = method;\n\t\t$.validator.messages[ name ] = message !== undefined ? message : $.validator.messages[ name ];\n\t\tif ( method.length < 3 ) {\n\t\t\t$.validator.addClassRules( name, $.validator.normalizeRule( name ) );\n\t\t}\n\t},\n\n\tmethods: {\n\n\t\t// http://jqueryvalidation.org/required-method/\n\t\trequired: function( value, element, param ) {\n\t\t\t// check if dependency is met\n\t\t\tif ( !this.depend( param, element ) ) {\n\t\t\t\treturn \"dependency-mismatch\";\n\t\t\t}\n\t\t\tif ( element.nodeName.toLowerCase() === \"select\" ) {\n\t\t\t\t// could be an array for select-multiple or a string, both are fine this way\n\t\t\t\tvar val = $( element ).val();\n\t\t\t\treturn val && val.length > 0;\n\t\t\t}\n\t\t\tif ( this.checkable( element ) ) {\n\t\t\t\treturn this.getLength( value, element ) > 0;\n\t\t\t}\n\t\t\treturn value.length > 0;\n\t\t},\n\n\t\t// http://jqueryvalidation.org/email-method/\n\t\temail: function( value, element ) {\n\t\t\t// From https://html.spec.whatwg.org/multipage/forms.html#valid-e-mail-address\n\t\t\t// Retrieved 2014-01-14\n\t\t\t// If you have a problem with this implementation, report a bug against the above spec\n\t\t\t// Or use custom methods to implement your own email validation\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 );\n\t\t},\n\n\t\t// http://jqueryvalidation.org/url-method/\n\t\turl: function( value, element ) {\n\n\t\t\t// Copyright (c) 2010-2013 Diego Perini, MIT licensed\n\t\t\t// https://gist.github.com/dperini/729294\n\t\t\t// see also https://mathiasbynens.be/demo/url-regex\n\t\t\t// modified to allow protocol-relative URLs\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 );\n\t\t},\n\n\t\t// http://jqueryvalidation.org/date-method/\n\t\tdate: function( value, element ) {\n\t\t\treturn this.optional( element ) || !/Invalid|NaN/.test( new Date( value ).toString() );\n\t\t},\n\n\t\t// http://jqueryvalidation.org/dateISO-method/\n\t\tdateISO: function( value, element ) {\n\t\t\treturn this.optional( element ) || /^\\d{4}[\\/\\-](0?[1-9]|1[012])[\\/\\-](0?[1-9]|[12][0-9]|3[01])$/.test( value );\n\t\t},\n\n\t\t// http://jqueryvalidation.org/number-method/\n\t\tnumber: function( value, element ) {\n\t\t\treturn this.optional( element ) || /^(?:-?\\d+|-?\\d{1,3}(?:,\\d{3})+)?(?:\\.\\d+)?$/.test( value );\n\t\t},\n\n\t\t// http://jqueryvalidation.org/digits-method/\n\t\tdigits: function( value, element ) {\n\t\t\treturn this.optional( element ) || /^\\d+$/.test( value );\n\t\t},\n\n\t\t// http://jqueryvalidation.org/creditcard-method/\n\t\t// based on http://en.wikipedia.org/wiki/Luhn_algorithm\n\t\tcreditcard: function( value, element ) {\n\t\t\tif ( this.optional( element ) ) {\n\t\t\t\treturn \"dependency-mismatch\";\n\t\t\t}\n\t\t\t// accept only spaces, digits and dashes\n\t\t\tif ( /[^0-9 \\-]+/.test( value ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tvar nCheck = 0,\n\t\t\t\tnDigit = 0,\n\t\t\t\tbEven = false,\n\t\t\t\tn, cDigit;\n\n\t\t\tvalue = value.replace( /\\D/g, \"\" );\n\n\t\t\t// Basing min and max length on\n\t\t\t// http://developer.ean.com/general_info/Valid_Credit_Card_Types\n\t\t\tif ( value.length < 13 || value.length > 19 ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tfor ( n = value.length - 1; n >= 0; n--) {\n\t\t\t\tcDigit = value.charAt( n );\n\t\t\t\tnDigit = parseInt( cDigit, 10 );\n\t\t\t\tif ( bEven ) {\n\t\t\t\t\tif ( ( nDigit *= 2 ) > 9 ) {\n\t\t\t\t\t\tnDigit -= 9;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tnCheck += nDigit;\n\t\t\t\tbEven = !bEven;\n\t\t\t}\n\n\t\t\treturn ( nCheck % 10 ) === 0;\n\t\t},\n\n\t\t// http://jqueryvalidation.org/minlength-method/\n\t\tminlength: function( value, element, param ) {\n\t\t\tvar length = $.isArray( value ) ? value.length : this.getLength( value, element );\n\t\t\treturn this.optional( element ) || length >= param;\n\t\t},\n\n\t\t// http://jqueryvalidation.org/maxlength-method/\n\t\tmaxlength: function( value, element, param ) {\n\t\t\tvar length = $.isArray( value ) ? value.length : this.getLength( value, element );\n\t\t\treturn this.optional( element ) || length <= param;\n\t\t},\n\n\t\t// http://jqueryvalidation.org/rangelength-method/\n\t\trangelength: function( value, element, param ) {\n\t\t\tvar length = $.isArray( value ) ? value.length : this.getLength( value, element );\n\t\t\treturn this.optional( element ) || ( length >= param[ 0 ] && length <= param[ 1 ] );\n\t\t},\n\n\t\t// http://jqueryvalidation.org/min-method/\n\t\tmin: function( value, element, param ) {\n\t\t\treturn this.optional( element ) || value >= param;\n\t\t},\n\n\t\t// http://jqueryvalidation.org/max-method/\n\t\tmax: function( value, element, param ) {\n\t\t\treturn this.optional( element ) || value <= param;\n\t\t},\n\n\t\t// http://jqueryvalidation.org/range-method/\n\t\trange: function( value, element, param ) {\n\t\t\treturn this.optional( element ) || ( value >= param[ 0 ] && value <= param[ 1 ] );\n\t\t},\n\n\t\t// http://jqueryvalidation.org/equalTo-method/\n\t\tequalTo: function( value, element, param ) {\n\t\t\t// bind to the blur event of the target in order to revalidate whenever the target field is updated\n\t\t\t// TODO find a way to bind the event just once, avoiding the unbind-rebind overhead\n\t\t\tvar target = $( param );\n\t\t\tif ( this.settings.onfocusout ) {\n\t\t\t\ttarget.off( \".validate-equalTo\" ).on( \"blur.validate-equalTo\", function() {\n\t\t\t\t\t$( element ).valid();\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn value === target.val();\n\t\t},\n\n\t\t// http://jqueryvalidation.org/remote-method/\n\t\tremote: function( value, element, param ) {\n\t\t\tif ( this.optional( element ) ) {\n\t\t\t\treturn \"dependency-mismatch\";\n\t\t\t}\n\n\t\t\tvar previous = this.previousValue( element ),\n\t\t\t\tvalidator, data;\n\n\t\t\tif (!this.settings.messages[ element.name ] ) {\n\t\t\t\tthis.settings.messages[ element.name ] = {};\n\t\t\t}\n\t\t\tprevious.originalMessage = this.settings.messages[ element.name ].remote;\n\t\t\tthis.settings.messages[ element.name ].remote = previous.message;\n\n\t\t\tparam = typeof param === \"string\" && { url: param } || param;\n\n\t\t\tif ( previous.old === value ) {\n\t\t\t\treturn previous.valid;\n\t\t\t}\n\n\t\t\tprevious.old = value;\n\t\t\tvalidator = this;\n\t\t\tthis.startRequest( element );\n\t\t\tdata = {};\n\t\t\tdata[ element.name ] = value;\n\t\t\t$.ajax( $.extend( true, {\n\t\t\t\tmode: \"abort\",\n\t\t\t\tport: \"validate\" + element.name,\n\t\t\t\tdataType: \"json\",\n\t\t\t\tdata: data,\n\t\t\t\tcontext: validator.currentForm,\n\t\t\t\tsuccess: function( response ) {\n\t\t\t\t\tvar valid = response === true || response === \"true\",\n\t\t\t\t\t\terrors, message, submitted;\n\n\t\t\t\t\tvalidator.settings.messages[ element.name ].remote = previous.originalMessage;\n\t\t\t\t\tif ( valid ) {\n\t\t\t\t\t\tsubmitted = validator.formSubmitted;\n\t\t\t\t\t\tvalidator.prepareElement( element );\n\t\t\t\t\t\tvalidator.formSubmitted = submitted;\n\t\t\t\t\t\tvalidator.successList.push( element );\n\t\t\t\t\t\tdelete validator.invalid[ element.name ];\n\t\t\t\t\t\tvalidator.showErrors();\n\t\t\t\t\t} else {\n\t\t\t\t\t\terrors = {};\n\t\t\t\t\t\tmessage = response || validator.defaultMessage( element, \"remote\" );\n\t\t\t\t\t\terrors[ element.name ] = previous.message = $.isFunction( message ) ? message( value ) : message;\n\t\t\t\t\t\tvalidator.invalid[ element.name ] = true;\n\t\t\t\t\t\tvalidator.showErrors( errors );\n\t\t\t\t\t}\n\t\t\t\t\tprevious.valid = valid;\n\t\t\t\t\tvalidator.stopRequest( element, valid );\n\t\t\t\t}\n\t\t\t}, param ) );\n\t\t\treturn \"pending\";\n\t\t}\n\t}\n\n});\n\n// ajax mode: abort\n// usage: $.ajax({ mode: \"abort\"[, port: \"uniqueport\"]});\n// if mode:\"abort\" is used, the previous request on that port (port can be undefined) is aborted via XMLHttpRequest.abort()\n\nvar pendingRequests = {},\n\tajax;\n// Use a prefilter if available (1.5+)\nif ( $.ajaxPrefilter ) {\n\t$.ajaxPrefilter(function( settings, _, xhr ) {\n\t\tvar port = settings.port;\n\t\tif ( settings.mode === \"abort\" ) {\n\t\t\tif ( pendingRequests[port] ) {\n\t\t\t\tpendingRequests[port].abort();\n\t\t\t}\n\t\t\tpendingRequests[port] = xhr;\n\t\t}\n\t});\n} else {\n\t// Proxy ajax\n\tajax = $.ajax;\n\t$.ajax = function( settings ) {\n\t\tvar mode = ( \"mode\" in settings ? settings : $.ajaxSettings ).mode,\n\t\t\tport = ( \"port\" in settings ? settings : $.ajaxSettings ).port;\n\t\tif ( mode === \"abort\" ) {\n\t\t\tif ( pendingRequests[port] ) {\n\t\t\t\tpendingRequests[port].abort();\n\t\t\t}\n\t\t\tpendingRequests[port] = ajax.apply(this, arguments);\n\t\t\treturn pendingRequests[port];\n\t\t}\n\t\treturn ajax.apply(this, arguments);\n\t};\n}\n\n}));","/*!\n * Select2 4.0.1\n * https://select2.github.io\n *\n * Released under the MIT license\n * https://github.com/select2/select2/blob/master/LICENSE.md\n */\n(function (factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['jquery'], factory);\n } else if (typeof exports === 'object') {\n // Node/CommonJS\n factory(require('jquery'));\n } else {\n // Browser globals\n factory(jQuery);\n }\n}(function (jQuery) {\n // This is needed so we can catch the AMD loader configuration and use it\n // The inner file should be wrapped (by `banner.start.js`) in a function that\n // returns the AMD loader references.\n var S2 =\n(function () {\n // Restore the Select2 AMD loader so it can be used\n // Needed mostly in the language files, where the loader is not inserted\n if (jQuery && jQuery.fn && jQuery.fn.select2 && jQuery.fn.select2.amd) {\n var S2 = jQuery.fn.select2.amd;\n }\nvar S2;(function () { if (!S2 || !S2.requirejs) {\nif (!S2) { S2 = {}; } else { require = S2; }\n/**\n * @license almond 0.3.1 Copyright (c) 2011-2014, The Dojo Foundation All Rights Reserved.\n * Available via the MIT or new BSD license.\n * see: http://github.com/jrburke/almond for details\n */\n//Going sloppy to avoid 'use strict' string cost, but strict practices should\n//be followed.\n/*jslint sloppy: true */\n/*global setTimeout: false */\n\nvar requirejs, require, define;\n(function (undef) {\n var main, req, makeMap, handlers,\n defined = {},\n waiting = {},\n config = {},\n defining = {},\n hasOwn = Object.prototype.hasOwnProperty,\n aps = [].slice,\n jsSuffixRegExp = /\\.js$/;\n\n function hasProp(obj, prop) {\n return hasOwn.call(obj, prop);\n }\n\n /**\n * Given a relative module name, like ./something, normalize it to\n * a real name that can be mapped to a path.\n * @param {String} name the relative name\n * @param {String} baseName a real name that the name arg is relative\n * to.\n * @returns {String} normalized name\n */\n function normalize(name, baseName) {\n var nameParts, nameSegment, mapValue, foundMap, lastIndex,\n foundI, foundStarMap, starI, i, j, part,\n baseParts = baseName && baseName.split(\"/\"),\n map = config.map,\n starMap = (map && map['*']) || {};\n\n //Adjust any relative paths.\n if (name && name.charAt(0) === \".\") {\n //If have a base name, try to normalize against it,\n //otherwise, assume it is a top-level require that will\n //be relative to baseUrl in the end.\n if (baseName) {\n name = name.split('/');\n lastIndex = name.length - 1;\n\n // Node .js allowance:\n if (config.nodeIdCompat && jsSuffixRegExp.test(name[lastIndex])) {\n name[lastIndex] = name[lastIndex].replace(jsSuffixRegExp, '');\n }\n\n //Lop off the last part of baseParts, so that . matches the\n //\"directory\" and not name of the baseName's module. For instance,\n //baseName of \"one/two/three\", maps to \"one/two/three.js\", but we\n //want the directory, \"one/two\" for this normalization.\n name = baseParts.slice(0, baseParts.length - 1).concat(name);\n\n //start trimDots\n for (i = 0; i < name.length; i += 1) {\n part = name[i];\n if (part === \".\") {\n name.splice(i, 1);\n i -= 1;\n } else if (part === \"..\") {\n if (i === 1 && (name[2] === '..' || name[0] === '..')) {\n //End of the line. Keep at least one non-dot\n //path segment at the front so it can be mapped\n //correctly to disk. Otherwise, there is likely\n //no path mapping for a path starting with '..'.\n //This can still fail, but catches the most reasonable\n //uses of ..\n break;\n } else if (i > 0) {\n name.splice(i - 1, 2);\n i -= 2;\n }\n }\n }\n //end trimDots\n\n name = name.join(\"/\");\n } else if (name.indexOf('./') === 0) {\n // No baseName, so this is ID is resolved relative\n // to baseUrl, pull off the leading dot.\n name = name.substring(2);\n }\n }\n\n //Apply map config if available.\n if ((baseParts || starMap) && map) {\n nameParts = name.split('/');\n\n for (i = nameParts.length; i > 0; i -= 1) {\n nameSegment = nameParts.slice(0, i).join(\"/\");\n\n if (baseParts) {\n //Find the longest baseName segment match in the config.\n //So, do joins on the biggest to smallest lengths of baseParts.\n for (j = baseParts.length; j > 0; j -= 1) {\n mapValue = map[baseParts.slice(0, j).join('/')];\n\n //baseName segment has config, find if it has one for\n //this name.\n if (mapValue) {\n mapValue = mapValue[nameSegment];\n if (mapValue) {\n //Match, update name to the new value.\n foundMap = mapValue;\n foundI = i;\n break;\n }\n }\n }\n }\n\n if (foundMap) {\n break;\n }\n\n //Check for a star map match, but just hold on to it,\n //if there is a shorter segment match later in a matching\n //config, then favor over this star map.\n if (!foundStarMap && starMap && starMap[nameSegment]) {\n foundStarMap = starMap[nameSegment];\n starI = i;\n }\n }\n\n if (!foundMap && foundStarMap) {\n foundMap = foundStarMap;\n foundI = starI;\n }\n\n if (foundMap) {\n nameParts.splice(0, foundI, foundMap);\n name = nameParts.join('/');\n }\n }\n\n return name;\n }\n\n function makeRequire(relName, forceSync) {\n return function () {\n //A version of a require function that passes a moduleName\n //value for items that may need to\n //look up paths relative to the moduleName\n var args = aps.call(arguments, 0);\n\n //If first arg is not require('string'), and there is only\n //one arg, it is the array form without a callback. Insert\n //a null so that the following concat is correct.\n if (typeof args[0] !== 'string' && args.length === 1) {\n args.push(null);\n }\n return req.apply(undef, args.concat([relName, forceSync]));\n };\n }\n\n function makeNormalize(relName) {\n return function (name) {\n return normalize(name, relName);\n };\n }\n\n function makeLoad(depName) {\n return function (value) {\n defined[depName] = value;\n };\n }\n\n function callDep(name) {\n if (hasProp(waiting, name)) {\n var args = waiting[name];\n delete waiting[name];\n defining[name] = true;\n main.apply(undef, args);\n }\n\n if (!hasProp(defined, name) && !hasProp(defining, name)) {\n throw new Error('No ' + name);\n }\n return defined[name];\n }\n\n //Turns a plugin!resource to [plugin, resource]\n //with the plugin being undefined if the name\n //did not have a plugin prefix.\n function splitPrefix(name) {\n var prefix,\n index = name ? name.indexOf('!') : -1;\n if (index > -1) {\n prefix = name.substring(0, index);\n name = name.substring(index + 1, name.length);\n }\n return [prefix, name];\n }\n\n /**\n * Makes a name map, normalizing the name, and using a plugin\n * for normalization if necessary. Grabs a ref to plugin\n * too, as an optimization.\n */\n makeMap = function (name, relName) {\n var plugin,\n parts = splitPrefix(name),\n prefix = parts[0];\n\n name = parts[1];\n\n if (prefix) {\n prefix = normalize(prefix, relName);\n plugin = callDep(prefix);\n }\n\n //Normalize according\n if (prefix) {\n if (plugin && plugin.normalize) {\n name = plugin.normalize(name, makeNormalize(relName));\n } else {\n name = normalize(name, relName);\n }\n } else {\n name = normalize(name, relName);\n parts = splitPrefix(name);\n prefix = parts[0];\n name = parts[1];\n if (prefix) {\n plugin = callDep(prefix);\n }\n }\n\n //Using ridiculous property names for space reasons\n return {\n f: prefix ? prefix + '!' + name : name, //fullName\n n: name,\n pr: prefix,\n p: plugin\n };\n };\n\n function makeConfig(name) {\n return function () {\n return (config && config.config && config.config[name]) || {};\n };\n }\n\n handlers = {\n require: function (name) {\n return makeRequire(name);\n },\n exports: function (name) {\n var e = defined[name];\n if (typeof e !== 'undefined') {\n return e;\n } else {\n return (defined[name] = {});\n }\n },\n module: function (name) {\n return {\n id: name,\n uri: '',\n exports: defined[name],\n config: makeConfig(name)\n };\n }\n };\n\n main = function (name, deps, callback, relName) {\n var cjsModule, depName, ret, map, i,\n args = [],\n callbackType = typeof callback,\n usingExports;\n\n //Use name if no relName\n relName = relName || name;\n\n //Call the callback to define the module, if necessary.\n if (callbackType === 'undefined' || callbackType === 'function') {\n //Pull out the defined dependencies and pass the ordered\n //values to the callback.\n //Default to [require, exports, module] if no deps\n deps = !deps.length && callback.length ? ['require', 'exports', 'module'] : deps;\n for (i = 0; i < deps.length; i += 1) {\n map = makeMap(deps[i], relName);\n depName = map.f;\n\n //Fast path CommonJS standard dependencies.\n if (depName === \"require\") {\n args[i] = handlers.require(name);\n } else if (depName === \"exports\") {\n //CommonJS module spec 1.1\n args[i] = handlers.exports(name);\n usingExports = true;\n } else if (depName === \"module\") {\n //CommonJS module spec 1.1\n cjsModule = args[i] = handlers.module(name);\n } else if (hasProp(defined, depName) ||\n hasProp(waiting, depName) ||\n hasProp(defining, depName)) {\n args[i] = callDep(depName);\n } else if (map.p) {\n map.p.load(map.n, makeRequire(relName, true), makeLoad(depName), {});\n args[i] = defined[depName];\n } else {\n throw new Error(name + ' missing ' + depName);\n }\n }\n\n ret = callback ? callback.apply(defined[name], args) : undefined;\n\n if (name) {\n //If setting exports via \"module\" is in play,\n //favor that over return value and exports. After that,\n //favor a non-undefined return value over exports use.\n if (cjsModule && cjsModule.exports !== undef &&\n cjsModule.exports !== defined[name]) {\n defined[name] = cjsModule.exports;\n } else if (ret !== undef || !usingExports) {\n //Use the return value from the function.\n defined[name] = ret;\n }\n }\n } else if (name) {\n //May just be an object definition for the module. Only\n //worry about defining if have a module name.\n defined[name] = callback;\n }\n };\n\n requirejs = require = req = function (deps, callback, relName, forceSync, alt) {\n if (typeof deps === \"string\") {\n if (handlers[deps]) {\n //callback in this case is really relName\n return handlers[deps](callback);\n }\n //Just return the module wanted. In this scenario, the\n //deps arg is the module name, and second arg (if passed)\n //is just the relName.\n //Normalize module name, if it contains . or ..\n return callDep(makeMap(deps, callback).f);\n } else if (!deps.splice) {\n //deps is a config object, not an array.\n config = deps;\n if (config.deps) {\n req(config.deps, config.callback);\n }\n if (!callback) {\n return;\n }\n\n if (callback.splice) {\n //callback is an array, which means it is a dependency list.\n //Adjust args if there are dependencies\n deps = callback;\n callback = relName;\n relName = null;\n } else {\n deps = undef;\n }\n }\n\n //Support require(['a'])\n callback = callback || function () {};\n\n //If relName is a function, it is an errback handler,\n //so remove it.\n if (typeof relName === 'function') {\n relName = forceSync;\n forceSync = alt;\n }\n\n //Simulate async callback;\n if (forceSync) {\n main(undef, deps, callback, relName);\n } else {\n //Using a non-zero value because of concern for what old browsers\n //do, and latest browsers \"upgrade\" to 4 if lower value is used:\n //http://www.whatwg.org/specs/web-apps/current-work/multipage/timers.html#dom-windowtimers-settimeout:\n //If want a value immediately, use require('id') instead -- something\n //that works in almond on the global level, but not guaranteed and\n //unlikely to work in other AMD implementations.\n setTimeout(function () {\n main(undef, deps, callback, relName);\n }, 4);\n }\n\n return req;\n };\n\n /**\n * Just drops the config on the floor, but returns req in case\n * the config return value is used.\n */\n req.config = function (cfg) {\n return req(cfg);\n };\n\n /**\n * Expose module registry for debugging and tooling\n */\n requirejs._defined = defined;\n\n define = function (name, deps, callback) {\n if (typeof name !== 'string') {\n throw new Error('See almond README: incorrect module build, no module name');\n }\n\n //This module may not have dependencies\n if (!deps.splice) {\n //deps is not an array, so probably means\n //an object literal or factory function for\n //the value. Adjust args.\n callback = deps;\n deps = [];\n }\n\n if (!hasProp(defined, name) && !hasProp(waiting, name)) {\n waiting[name] = [name, deps, callback];\n }\n };\n\n define.amd = {\n jQuery: true\n };\n}());\n\nS2.requirejs = requirejs;S2.require = require;S2.define = define;\n}\n}());\nS2.define(\"almond\", function(){});\n\n/* global jQuery:false, $:false */\nS2.define('jquery',[],function () {\n var _$ = jQuery || $;\n\n if (_$ == null && console && console.error) {\n console.error(\n 'Select2: An instance of jQuery or a jQuery-compatible library was not ' +\n 'found. Make sure that you are including jQuery before Select2 on your ' +\n 'web page.'\n );\n }\n\n return _$;\n});\n\nS2.define('select2/utils',[\n 'jquery'\n], function ($) {\n var Utils = {};\n\n Utils.Extend = function (ChildClass, SuperClass) {\n var __hasProp = {}.hasOwnProperty;\n\n function BaseConstructor () {\n this.constructor = ChildClass;\n }\n\n for (var key in SuperClass) {\n if (__hasProp.call(SuperClass, key)) {\n ChildClass[key] = SuperClass[key];\n }\n }\n\n BaseConstructor.prototype = SuperClass.prototype;\n ChildClass.prototype = new BaseConstructor();\n ChildClass.__super__ = SuperClass.prototype;\n\n return ChildClass;\n };\n\n function getMethods (theClass) {\n var proto = theClass.prototype;\n\n var methods = [];\n\n for (var methodName in proto) {\n var m = proto[methodName];\n\n if (typeof m !== 'function') {\n continue;\n }\n\n if (methodName === 'constructor') {\n continue;\n }\n\n methods.push(methodName);\n }\n\n return methods;\n }\n\n Utils.Decorate = function (SuperClass, DecoratorClass) {\n var decoratedMethods = getMethods(DecoratorClass);\n var superMethods = getMethods(SuperClass);\n\n function DecoratedClass () {\n var unshift = Array.prototype.unshift;\n\n var argCount = DecoratorClass.prototype.constructor.length;\n\n var calledConstructor = SuperClass.prototype.constructor;\n\n if (argCount > 0) {\n unshift.call(arguments, SuperClass.prototype.constructor);\n\n calledConstructor = DecoratorClass.prototype.constructor;\n }\n\n calledConstructor.apply(this, arguments);\n }\n\n DecoratorClass.displayName = SuperClass.displayName;\n\n function ctr () {\n this.constructor = DecoratedClass;\n }\n\n DecoratedClass.prototype = new ctr();\n\n for (var m = 0; m < superMethods.length; m++) {\n var superMethod = superMethods[m];\n\n DecoratedClass.prototype[superMethod] =\n SuperClass.prototype[superMethod];\n }\n\n var calledMethod = function (methodName) {\n // Stub out the original method if it's not decorating an actual method\n var originalMethod = function () {};\n\n if (methodName in DecoratedClass.prototype) {\n originalMethod = DecoratedClass.prototype[methodName];\n }\n\n var decoratedMethod = DecoratorClass.prototype[methodName];\n\n return function () {\n var unshift = Array.prototype.unshift;\n\n unshift.call(arguments, originalMethod);\n\n return decoratedMethod.apply(this, arguments);\n };\n };\n\n for (var d = 0; d < decoratedMethods.length; d++) {\n var decoratedMethod = decoratedMethods[d];\n\n DecoratedClass.prototype[decoratedMethod] = calledMethod(decoratedMethod);\n }\n\n return DecoratedClass;\n };\n\n var Observable = function () {\n this.listeners = {};\n };\n\n Observable.prototype.on = function (event, callback) {\n this.listeners = this.listeners || {};\n\n if (event in this.listeners) {\n this.listeners[event].push(callback);\n } else {\n this.listeners[event] = [callback];\n }\n };\n\n Observable.prototype.trigger = function (event) {\n var slice = Array.prototype.slice;\n\n this.listeners = this.listeners || {};\n\n if (event in this.listeners) {\n this.invoke(this.listeners[event], slice.call(arguments, 1));\n }\n\n if ('*' in this.listeners) {\n this.invoke(this.listeners['*'], arguments);\n }\n };\n\n Observable.prototype.invoke = function (listeners, params) {\n for (var i = 0, len = listeners.length; i < len; i++) {\n listeners[i].apply(this, params);\n }\n };\n\n Utils.Observable = Observable;\n\n Utils.generateChars = function (length) {\n var chars = '';\n\n for (var i = 0; i < length; i++) {\n var randomChar = Math.floor(Math.random() * 36);\n chars += randomChar.toString(36);\n }\n\n return chars;\n };\n\n Utils.bind = function (func, context) {\n return function () {\n func.apply(context, arguments);\n };\n };\n\n Utils._convertData = function (data) {\n for (var originalKey in data) {\n var keys = originalKey.split('-');\n\n var dataLevel = data;\n\n if (keys.length === 1) {\n continue;\n }\n\n for (var k = 0; k < keys.length; k++) {\n var key = keys[k];\n\n // Lowercase the first letter\n // By default, dash-separated becomes camelCase\n key = key.substring(0, 1).toLowerCase() + key.substring(1);\n\n if (!(key in dataLevel)) {\n dataLevel[key] = {};\n }\n\n if (k == keys.length - 1) {\n dataLevel[key] = data[originalKey];\n }\n\n dataLevel = dataLevel[key];\n }\n\n delete data[originalKey];\n }\n\n return data;\n };\n\n Utils.hasScroll = function (index, el) {\n // Adapted from the function created by @ShadowScripter\n // and adapted by @BillBarry on the Stack Exchange Code Review website.\n // The original code can be found at\n // http://codereview.stackexchange.com/q/13338\n // and was designed to be used with the Sizzle selector engine.\n\n var $el = $(el);\n var overflowX = el.style.overflowX;\n var overflowY = el.style.overflowY;\n\n //Check both x and y declarations\n if (overflowX === overflowY &&\n (overflowY === 'hidden' || overflowY === 'visible')) {\n return false;\n }\n\n if (overflowX === 'scroll' || overflowY === 'scroll') {\n return true;\n }\n\n return ($el.innerHeight() < el.scrollHeight ||\n $el.innerWidth() < el.scrollWidth);\n };\n\n Utils.escapeMarkup = function (markup) {\n var replaceMap = {\n '\\\\': '\',\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n '\\'': ''',\n '/': '/'\n };\n\n // Do not try to escape the markup if it's not a string\n if (typeof markup !== 'string') {\n return markup;\n }\n\n return String(markup).replace(/[&<>\"'\\/\\\\]/g, function (match) {\n return replaceMap[match];\n });\n };\n\n // Append an array of jQuery nodes to a given element.\n Utils.appendMany = function ($element, $nodes) {\n // jQuery 1.7.x does not support $.fn.append() with an array\n // Fall back to a jQuery object collection using $.fn.add()\n if ($.fn.jquery.substr(0, 3) === '1.7') {\n var $jqNodes = $();\n\n $.map($nodes, function (node) {\n $jqNodes = $jqNodes.add(node);\n });\n\n $nodes = $jqNodes;\n }\n\n $element.append($nodes);\n };\n\n return Utils;\n});\n\nS2.define('select2/results',[\n 'jquery',\n './utils'\n], function ($, Utils) {\n function Results ($element, options, dataAdapter) {\n this.$element = $element;\n this.data = dataAdapter;\n this.options = options;\n\n Results.__super__.constructor.call(this);\n }\n\n Utils.Extend(Results, Utils.Observable);\n\n Results.prototype.render = function () {\n var $results = $(\n '
    '\n );\n\n if (this.options.get('multiple')) {\n $results.attr('aria-multiselectable', 'true');\n }\n\n this.$results = $results;\n\n return $results;\n };\n\n Results.prototype.clear = function () {\n this.$results.empty();\n };\n\n Results.prototype.displayMessage = function (params) {\n var escapeMarkup = this.options.get('escapeMarkup');\n\n this.clear();\n this.hideLoading();\n\n var $message = $(\n '
  • '\n );\n\n var message = this.options.get('translations').get(params.message);\n\n $message.append(\n escapeMarkup(\n message(params.args)\n )\n );\n\n $message[0].className += ' select2-results__message';\n\n this.$results.append($message);\n };\n\n Results.prototype.hideMessages = function () {\n this.$results.find('.select2-results__message').remove();\n };\n\n Results.prototype.append = function (data) {\n this.hideLoading();\n\n var $options = [];\n\n if (data.results == null || data.results.length === 0) {\n if (this.$results.children().length === 0) {\n this.trigger('results:message', {\n message: 'noResults'\n });\n }\n\n return;\n }\n\n data.results = this.sort(data.results);\n\n for (var d = 0; d < data.results.length; d++) {\n var item = data.results[d];\n\n var $option = this.option(item);\n\n $options.push($option);\n }\n\n this.$results.append($options);\n };\n\n Results.prototype.position = function ($results, $dropdown) {\n var $resultsContainer = $dropdown.find('.select2-results');\n $resultsContainer.append($results);\n };\n\n Results.prototype.sort = function (data) {\n var sorter = this.options.get('sorter');\n\n return sorter(data);\n };\n\n Results.prototype.setClasses = function () {\n var self = this;\n\n this.data.current(function (selected) {\n var selectedIds = $.map(selected, function (s) {\n return s.id.toString();\n });\n\n var $options = self.$results\n .find('.select2-results__option[aria-selected]');\n\n $options.each(function () {\n var $option = $(this);\n\n var item = $.data(this, 'data');\n\n // id needs to be converted to a string when comparing\n var id = '' + item.id;\n\n if ((item.element != null && item.element.selected) ||\n (item.element == null && $.inArray(id, selectedIds) > -1)) {\n $option.attr('aria-selected', 'true');\n } else {\n $option.attr('aria-selected', 'false');\n }\n });\n\n var $selected = $options.filter('[aria-selected=true]');\n\n // Check if there are any selected options\n if ($selected.length > 0) {\n // If there are selected options, highlight the first\n $selected.first().trigger('mouseenter');\n } else {\n // If there are no selected options, highlight the first option\n // in the dropdown\n $options.first().trigger('mouseenter');\n }\n });\n };\n\n Results.prototype.showLoading = function (params) {\n this.hideLoading();\n\n var loadingMore = this.options.get('translations').get('searching');\n\n var loading = {\n disabled: true,\n loading: true,\n text: loadingMore(params)\n };\n var $loading = this.option(loading);\n $loading.className += ' loading-results';\n\n this.$results.prepend($loading);\n };\n\n Results.prototype.hideLoading = function () {\n this.$results.find('.loading-results').remove();\n };\n\n Results.prototype.option = function (data) {\n var option = document.createElement('li');\n option.className = 'select2-results__option';\n\n var attrs = {\n 'role': 'treeitem',\n 'aria-selected': 'false'\n };\n\n if (data.disabled) {\n delete attrs['aria-selected'];\n attrs['aria-disabled'] = 'true';\n }\n\n if (data.id == null) {\n delete attrs['aria-selected'];\n }\n\n if (data._resultId != null) {\n option.id = data._resultId;\n }\n\n if (data.title) {\n option.title = data.title;\n }\n\n if (data.children) {\n attrs.role = 'group';\n attrs['aria-label'] = data.text;\n delete attrs['aria-selected'];\n }\n\n for (var attr in attrs) {\n var val = attrs[attr];\n\n option.setAttribute(attr, val);\n }\n\n if (data.children) {\n var $option = $(option);\n\n var label = document.createElement('strong');\n label.className = 'select2-results__group';\n\n var $label = $(label);\n this.template(data, label);\n\n var $children = [];\n\n for (var c = 0; c < data.children.length; c++) {\n var child = data.children[c];\n\n var $child = this.option(child);\n\n $children.push($child);\n }\n\n var $childrenContainer = $('
      ', {\n 'class': 'select2-results__options select2-results__options--nested'\n });\n\n $childrenContainer.append($children);\n\n $option.append(label);\n $option.append($childrenContainer);\n } else {\n this.template(data, option);\n }\n\n $.data(option, 'data', data);\n\n return option;\n };\n\n Results.prototype.bind = function (container, $container) {\n var self = this;\n\n var id = container.id + '-results';\n\n this.$results.attr('id', id);\n\n container.on('results:all', function (params) {\n self.clear();\n self.append(params.data);\n\n if (container.isOpen()) {\n self.setClasses();\n }\n });\n\n container.on('results:append', function (params) {\n self.append(params.data);\n\n if (container.isOpen()) {\n self.setClasses();\n }\n });\n\n container.on('query', function (params) {\n self.hideMessages();\n self.showLoading(params);\n });\n\n container.on('select', function () {\n if (!container.isOpen()) {\n return;\n }\n\n self.setClasses();\n });\n\n container.on('unselect', function () {\n if (!container.isOpen()) {\n return;\n }\n\n self.setClasses();\n });\n\n container.on('open', function () {\n // When the dropdown is open, aria-expended=\"true\"\n self.$results.attr('aria-expanded', 'true');\n self.$results.attr('aria-hidden', 'false');\n\n self.setClasses();\n self.ensureHighlightVisible();\n });\n\n container.on('close', function () {\n // When the dropdown is closed, aria-expended=\"false\"\n self.$results.attr('aria-expanded', 'false');\n self.$results.attr('aria-hidden', 'true');\n self.$results.removeAttr('aria-activedescendant');\n });\n\n container.on('results:toggle', function () {\n var $highlighted = self.getHighlightedResults();\n\n if ($highlighted.length === 0) {\n return;\n }\n\n $highlighted.trigger('mouseup');\n });\n\n container.on('results:select', function () {\n var $highlighted = self.getHighlightedResults();\n\n if ($highlighted.length === 0) {\n return;\n }\n\n var data = $highlighted.data('data');\n\n if ($highlighted.attr('aria-selected') == 'true') {\n self.trigger('close', {});\n } else {\n self.trigger('select', {\n data: data\n });\n }\n });\n\n container.on('results:previous', function () {\n var $highlighted = self.getHighlightedResults();\n\n var $options = self.$results.find('[aria-selected]');\n\n var currentIndex = $options.index($highlighted);\n\n // If we are already at te top, don't move further\n if (currentIndex === 0) {\n return;\n }\n\n var nextIndex = currentIndex - 1;\n\n // If none are highlighted, highlight the first\n if ($highlighted.length === 0) {\n nextIndex = 0;\n }\n\n var $next = $options.eq(nextIndex);\n\n $next.trigger('mouseenter');\n\n var currentOffset = self.$results.offset().top;\n var nextTop = $next.offset().top;\n var nextOffset = self.$results.scrollTop() + (nextTop - currentOffset);\n\n if (nextIndex === 0) {\n self.$results.scrollTop(0);\n } else if (nextTop - currentOffset < 0) {\n self.$results.scrollTop(nextOffset);\n }\n });\n\n container.on('results:next', function () {\n var $highlighted = self.getHighlightedResults();\n\n var $options = self.$results.find('[aria-selected]');\n\n var currentIndex = $options.index($highlighted);\n\n var nextIndex = currentIndex + 1;\n\n // If we are at the last option, stay there\n if (nextIndex >= $options.length) {\n return;\n }\n\n var $next = $options.eq(nextIndex);\n\n $next.trigger('mouseenter');\n\n var currentOffset = self.$results.offset().top +\n self.$results.outerHeight(false);\n var nextBottom = $next.offset().top + $next.outerHeight(false);\n var nextOffset = self.$results.scrollTop() + nextBottom - currentOffset;\n\n if (nextIndex === 0) {\n self.$results.scrollTop(0);\n } else if (nextBottom > currentOffset) {\n self.$results.scrollTop(nextOffset);\n }\n });\n\n container.on('results:focus', function (params) {\n params.element.addClass('select2-results__option--highlighted');\n });\n\n container.on('results:message', function (params) {\n self.displayMessage(params);\n });\n\n if ($.fn.mousewheel) {\n this.$results.on('mousewheel', function (e) {\n var top = self.$results.scrollTop();\n\n var bottom = (\n self.$results.get(0).scrollHeight -\n self.$results.scrollTop() +\n e.deltaY\n );\n\n var isAtTop = e.deltaY > 0 && top - e.deltaY <= 0;\n var isAtBottom = e.deltaY < 0 && bottom <= self.$results.height();\n\n if (isAtTop) {\n self.$results.scrollTop(0);\n\n e.preventDefault();\n e.stopPropagation();\n } else if (isAtBottom) {\n self.$results.scrollTop(\n self.$results.get(0).scrollHeight - self.$results.height()\n );\n\n e.preventDefault();\n e.stopPropagation();\n }\n });\n }\n\n this.$results.on('mouseup', '.select2-results__option[aria-selected]',\n function (evt) {\n var $this = $(this);\n\n var data = $this.data('data');\n\n if ($this.attr('aria-selected') === 'true') {\n if (self.options.get('multiple')) {\n self.trigger('unselect', {\n originalEvent: evt,\n data: data\n });\n } else {\n self.trigger('close', {});\n }\n\n return;\n }\n\n self.trigger('select', {\n originalEvent: evt,\n data: data\n });\n });\n\n this.$results.on('mouseenter', '.select2-results__option[aria-selected]',\n function (evt) {\n var data = $(this).data('data');\n\n self.getHighlightedResults()\n .removeClass('select2-results__option--highlighted');\n\n self.trigger('results:focus', {\n data: data,\n element: $(this)\n });\n });\n };\n\n Results.prototype.getHighlightedResults = function () {\n var $highlighted = this.$results\n .find('.select2-results__option--highlighted');\n\n return $highlighted;\n };\n\n Results.prototype.destroy = function () {\n this.$results.remove();\n };\n\n Results.prototype.ensureHighlightVisible = function () {\n var $highlighted = this.getHighlightedResults();\n\n if ($highlighted.length === 0) {\n return;\n }\n\n var $options = this.$results.find('[aria-selected]');\n\n var currentIndex = $options.index($highlighted);\n\n var currentOffset = this.$results.offset().top;\n var nextTop = $highlighted.offset().top;\n var nextOffset = this.$results.scrollTop() + (nextTop - currentOffset);\n\n var offsetDelta = nextTop - currentOffset;\n nextOffset -= $highlighted.outerHeight(false) * 2;\n\n if (currentIndex <= 2) {\n this.$results.scrollTop(0);\n } else if (offsetDelta > this.$results.outerHeight() || offsetDelta < 0) {\n this.$results.scrollTop(nextOffset);\n }\n };\n\n Results.prototype.template = function (result, container) {\n var template = this.options.get('templateResult');\n var escapeMarkup = this.options.get('escapeMarkup');\n\n var content = template(result, container);\n\n if (content == null) {\n container.style.display = 'none';\n } else if (typeof content === 'string') {\n container.innerHTML = escapeMarkup(content);\n } else {\n $(container).append(content);\n }\n };\n\n return Results;\n});\n\nS2.define('select2/keys',[\n\n], function () {\n var KEYS = {\n BACKSPACE: 8,\n TAB: 9,\n ENTER: 13,\n SHIFT: 16,\n CTRL: 17,\n ALT: 18,\n ESC: 27,\n SPACE: 32,\n PAGE_UP: 33,\n PAGE_DOWN: 34,\n END: 35,\n HOME: 36,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n DELETE: 46\n };\n\n return KEYS;\n});\n\nS2.define('select2/selection/base',[\n 'jquery',\n '../utils',\n '../keys'\n], function ($, Utils, KEYS) {\n function BaseSelection ($element, options) {\n this.$element = $element;\n this.options = options;\n\n BaseSelection.__super__.constructor.call(this);\n }\n\n Utils.Extend(BaseSelection, Utils.Observable);\n\n BaseSelection.prototype.render = function () {\n var $selection = $(\n '' +\n ''\n );\n\n this._tabindex = 0;\n\n if (this.$element.data('old-tabindex') != null) {\n this._tabindex = this.$element.data('old-tabindex');\n } else if (this.$element.attr('tabindex') != null) {\n this._tabindex = this.$element.attr('tabindex');\n }\n\n $selection.attr('title', this.$element.attr('title'));\n $selection.attr('tabindex', this._tabindex);\n\n this.$selection = $selection;\n\n return $selection;\n };\n\n BaseSelection.prototype.bind = function (container, $container) {\n var self = this;\n\n var id = container.id + '-container';\n var resultsId = container.id + '-results';\n\n this.container = container;\n\n this.$selection.on('focus', function (evt) {\n self.trigger('focus', evt);\n });\n\n this.$selection.on('blur', function (evt) {\n self._handleBlur(evt);\n });\n\n this.$selection.on('keydown', function (evt) {\n self.trigger('keypress', evt);\n\n if (evt.which === KEYS.SPACE) {\n evt.preventDefault();\n }\n });\n\n container.on('results:focus', function (params) {\n self.$selection.attr('aria-activedescendant', params.data._resultId);\n });\n\n container.on('selection:update', function (params) {\n self.update(params.data);\n });\n\n container.on('open', function () {\n // When the dropdown is open, aria-expanded=\"true\"\n self.$selection.attr('aria-expanded', 'true');\n self.$selection.attr('aria-owns', resultsId);\n\n self._attachCloseHandler(container);\n });\n\n container.on('close', function () {\n // When the dropdown is closed, aria-expanded=\"false\"\n self.$selection.attr('aria-expanded', 'false');\n self.$selection.removeAttr('aria-activedescendant');\n self.$selection.removeAttr('aria-owns');\n\n self.$selection.focus();\n\n self._detachCloseHandler(container);\n });\n\n container.on('enable', function () {\n self.$selection.attr('tabindex', self._tabindex);\n });\n\n container.on('disable', function () {\n self.$selection.attr('tabindex', '-1');\n });\n };\n\n BaseSelection.prototype._handleBlur = function (evt) {\n var self = this;\n\n // This needs to be delayed as the active element is the body when the tab\n // key is pressed, possibly along with others.\n window.setTimeout(function () {\n // Don't trigger `blur` if the focus is still in the selection\n if (\n (document.activeElement == self.$selection[0]) ||\n ($.contains(self.$selection[0], document.activeElement))\n ) {\n return;\n }\n\n self.trigger('blur', evt);\n }, 1);\n };\n\n BaseSelection.prototype._attachCloseHandler = function (container) {\n var self = this;\n\n $(document.body).on('mousedown.select2.' + container.id, function (e) {\n var $target = $(e.target);\n\n var $select = $target.closest('.select2');\n\n var $all = $('.select2.select2-container--open');\n\n $all.each(function () {\n var $this = $(this);\n\n if (this == $select[0]) {\n return;\n }\n\n var $element = $this.data('element');\n\n $element.select2('close');\n });\n });\n };\n\n BaseSelection.prototype._detachCloseHandler = function (container) {\n $(document.body).off('mousedown.select2.' + container.id);\n };\n\n BaseSelection.prototype.position = function ($selection, $container) {\n var $selectionContainer = $container.find('.selection');\n $selectionContainer.append($selection);\n };\n\n BaseSelection.prototype.destroy = function () {\n this._detachCloseHandler(this.container);\n };\n\n BaseSelection.prototype.update = function (data) {\n throw new Error('The `update` method must be defined in child classes.');\n };\n\n return BaseSelection;\n});\n\nS2.define('select2/selection/single',[\n 'jquery',\n './base',\n '../utils',\n '../keys'\n], function ($, BaseSelection, Utils, KEYS) {\n function SingleSelection () {\n SingleSelection.__super__.constructor.apply(this, arguments);\n }\n\n Utils.Extend(SingleSelection, BaseSelection);\n\n SingleSelection.prototype.render = function () {\n var $selection = SingleSelection.__super__.render.call(this);\n\n $selection.addClass('select2-selection--single');\n\n $selection.html(\n '' +\n '' +\n '' +\n ''\n );\n\n return $selection;\n };\n\n SingleSelection.prototype.bind = function (container, $container) {\n var self = this;\n\n SingleSelection.__super__.bind.apply(this, arguments);\n\n var id = container.id + '-container';\n\n this.$selection.find('.select2-selection__rendered').attr('id', id);\n this.$selection.attr('aria-labelledby', id);\n\n this.$selection.on('mousedown', function (evt) {\n // Only respond to left clicks\n if (evt.which !== 1) {\n return;\n }\n\n self.trigger('toggle', {\n originalEvent: evt\n });\n });\n\n this.$selection.on('focus', function (evt) {\n // User focuses on the container\n });\n\n this.$selection.on('blur', function (evt) {\n // User exits the container\n });\n\n container.on('selection:update', function (params) {\n self.update(params.data);\n });\n };\n\n SingleSelection.prototype.clear = function () {\n this.$selection.find('.select2-selection__rendered').empty();\n };\n\n SingleSelection.prototype.display = function (data, container) {\n var template = this.options.get('templateSelection');\n var escapeMarkup = this.options.get('escapeMarkup');\n\n return escapeMarkup(template(data, container));\n };\n\n SingleSelection.prototype.selectionContainer = function () {\n return $('');\n };\n\n SingleSelection.prototype.update = function (data) {\n if (data.length === 0) {\n this.clear();\n return;\n }\n\n var selection = data[0];\n\n var $rendered = this.$selection.find('.select2-selection__rendered');\n var formatted = this.display(selection, $rendered);\n\n $rendered.empty().append(formatted);\n $rendered.prop('title', selection.title || selection.text);\n };\n\n return SingleSelection;\n});\n\nS2.define('select2/selection/multiple',[\n 'jquery',\n './base',\n '../utils'\n], function ($, BaseSelection, Utils) {\n function MultipleSelection ($element, options) {\n MultipleSelection.__super__.constructor.apply(this, arguments);\n }\n\n Utils.Extend(MultipleSelection, BaseSelection);\n\n MultipleSelection.prototype.render = function () {\n var $selection = MultipleSelection.__super__.render.call(this);\n\n $selection.addClass('select2-selection--multiple');\n\n $selection.html(\n '
        '\n );\n\n return $selection;\n };\n\n MultipleSelection.prototype.bind = function (container, $container) {\n var self = this;\n\n MultipleSelection.__super__.bind.apply(this, arguments);\n\n this.$selection.on('click', function (evt) {\n self.trigger('toggle', {\n originalEvent: evt\n });\n });\n\n this.$selection.on(\n 'click',\n '.select2-selection__choice__remove',\n function (evt) {\n // Ignore the event if it is disabled\n if (self.options.get('disabled')) {\n return;\n }\n\n var $remove = $(this);\n var $selection = $remove.parent();\n\n var data = $selection.data('data');\n\n self.trigger('unselect', {\n originalEvent: evt,\n data: data\n });\n }\n );\n };\n\n MultipleSelection.prototype.clear = function () {\n this.$selection.find('.select2-selection__rendered').empty();\n };\n\n MultipleSelection.prototype.display = function (data, container) {\n var template = this.options.get('templateSelection');\n var escapeMarkup = this.options.get('escapeMarkup');\n\n return escapeMarkup(template(data, container));\n };\n\n MultipleSelection.prototype.selectionContainer = function () {\n var $container = $(\n '
      • ' +\n '' +\n '×' +\n '' +\n '
      • '\n );\n\n return $container;\n };\n\n MultipleSelection.prototype.update = function (data) {\n this.clear();\n\n if (data.length === 0) {\n return;\n }\n\n var $selections = [];\n\n for (var d = 0; d < data.length; d++) {\n var selection = data[d];\n\n var $selection = this.selectionContainer();\n var formatted = this.display(selection, $selection);\n\n $selection.append(formatted);\n $selection.prop('title', selection.title || selection.text);\n\n $selection.data('data', selection);\n\n $selections.push($selection);\n }\n\n var $rendered = this.$selection.find('.select2-selection__rendered');\n\n Utils.appendMany($rendered, $selections);\n };\n\n return MultipleSelection;\n});\n\nS2.define('select2/selection/placeholder',[\n '../utils'\n], function (Utils) {\n function Placeholder (decorated, $element, options) {\n this.placeholder = this.normalizePlaceholder(options.get('placeholder'));\n\n decorated.call(this, $element, options);\n }\n\n Placeholder.prototype.normalizePlaceholder = function (_, placeholder) {\n if (typeof placeholder === 'string') {\n placeholder = {\n id: '',\n text: placeholder\n };\n }\n\n return placeholder;\n };\n\n Placeholder.prototype.createPlaceholder = function (decorated, placeholder) {\n var $placeholder = this.selectionContainer();\n\n $placeholder.html(this.display(placeholder));\n $placeholder.addClass('select2-selection__placeholder')\n .removeClass('select2-selection__choice');\n\n return $placeholder;\n };\n\n Placeholder.prototype.update = function (decorated, data) {\n var singlePlaceholder = (\n data.length == 1 && data[0].id != this.placeholder.id\n );\n var multipleSelections = data.length > 1;\n\n if (multipleSelections || singlePlaceholder) {\n return decorated.call(this, data);\n }\n\n this.clear();\n\n var $placeholder = this.createPlaceholder(this.placeholder);\n\n this.$selection.find('.select2-selection__rendered').append($placeholder);\n };\n\n return Placeholder;\n});\n\nS2.define('select2/selection/allowClear',[\n 'jquery',\n '../keys'\n], function ($, KEYS) {\n function AllowClear () { }\n\n AllowClear.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n if (this.placeholder == null) {\n if (this.options.get('debug') && window.console && console.error) {\n console.error(\n 'Select2: The `allowClear` option should be used in combination ' +\n 'with the `placeholder` option.'\n );\n }\n }\n\n this.$selection.on('mousedown', '.select2-selection__clear',\n function (evt) {\n self._handleClear(evt);\n });\n\n container.on('keypress', function (evt) {\n self._handleKeyboardClear(evt, container);\n });\n };\n\n AllowClear.prototype._handleClear = function (_, evt) {\n // Ignore the event if it is disabled\n if (this.options.get('disabled')) {\n return;\n }\n\n var $clear = this.$selection.find('.select2-selection__clear');\n\n // Ignore the event if nothing has been selected\n if ($clear.length === 0) {\n return;\n }\n\n evt.stopPropagation();\n\n var data = $clear.data('data');\n\n for (var d = 0; d < data.length; d++) {\n var unselectData = {\n data: data[d]\n };\n\n // Trigger the `unselect` event, so people can prevent it from being\n // cleared.\n this.trigger('unselect', unselectData);\n\n // If the event was prevented, don't clear it out.\n if (unselectData.prevented) {\n return;\n }\n }\n\n this.$element.val(this.placeholder.id).trigger('change');\n\n this.trigger('toggle', {});\n };\n\n AllowClear.prototype._handleKeyboardClear = function (_, evt, container) {\n if (container.isOpen()) {\n return;\n }\n\n if (evt.which == KEYS.DELETE || evt.which == KEYS.BACKSPACE) {\n this._handleClear(evt);\n }\n };\n\n AllowClear.prototype.update = function (decorated, data) {\n decorated.call(this, data);\n\n if (this.$selection.find('.select2-selection__placeholder').length > 0 ||\n data.length === 0) {\n return;\n }\n\n var $remove = $(\n '' +\n '×' +\n ''\n );\n $remove.data('data', data);\n\n this.$selection.find('.select2-selection__rendered').prepend($remove);\n };\n\n return AllowClear;\n});\n\nS2.define('select2/selection/search',[\n 'jquery',\n '../utils',\n '../keys'\n], function ($, Utils, KEYS) {\n function Search (decorated, $element, options) {\n decorated.call(this, $element, options);\n }\n\n Search.prototype.render = function (decorated) {\n var $search = $(\n ''\n );\n\n this.$searchContainer = $search;\n this.$search = $search.find('input');\n\n var $rendered = decorated.call(this);\n\n this._transferTabIndex();\n\n return $rendered;\n };\n\n Search.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n container.on('open', function () {\n self.$search.trigger('focus');\n });\n\n container.on('close', function () {\n self.$search.val('');\n self.$search.removeAttr('aria-activedescendant');\n self.$search.trigger('focus');\n });\n\n container.on('enable', function () {\n self.$search.prop('disabled', false);\n\n self._transferTabIndex();\n });\n\n container.on('disable', function () {\n self.$search.prop('disabled', true);\n });\n\n container.on('focus', function (evt) {\n self.$search.trigger('focus');\n });\n\n container.on('results:focus', function (params) {\n self.$search.attr('aria-activedescendant', params.id);\n });\n\n this.$selection.on('focusin', '.select2-search--inline', function (evt) {\n self.trigger('focus', evt);\n });\n\n this.$selection.on('focusout', '.select2-search--inline', function (evt) {\n self._handleBlur(evt);\n });\n\n this.$selection.on('keydown', '.select2-search--inline', function (evt) {\n evt.stopPropagation();\n\n self.trigger('keypress', evt);\n\n self._keyUpPrevented = evt.isDefaultPrevented();\n\n var key = evt.which;\n\n if (key === KEYS.BACKSPACE && self.$search.val() === '') {\n var $previousChoice = self.$searchContainer\n .prev('.select2-selection__choice');\n\n if ($previousChoice.length > 0) {\n var item = $previousChoice.data('data');\n\n self.searchRemoveChoice(item);\n\n evt.preventDefault();\n }\n }\n });\n\n // Try to detect the IE version should the `documentMode` property that\n // is stored on the document. This is only implemented in IE and is\n // slightly cleaner than doing a user agent check.\n // This property is not available in Edge, but Edge also doesn't have\n // this bug.\n var msie = document.documentMode;\n var disableInputEvents = msie && msie <= 11;\n\n // Workaround for browsers which do not support the `input` event\n // This will prevent double-triggering of events for browsers which support\n // both the `keyup` and `input` events.\n this.$selection.on(\n 'input.searchcheck',\n '.select2-search--inline',\n function (evt) {\n // IE will trigger the `input` event when a placeholder is used on a\n // search box. To get around this issue, we are forced to ignore all\n // `input` events in IE and keep using `keyup`.\n if (disableInputEvents) {\n self.$selection.off('input.search input.searchcheck');\n return;\n }\n\n // Unbind the duplicated `keyup` event\n self.$selection.off('keyup.search');\n }\n );\n\n this.$selection.on(\n 'keyup.search input.search',\n '.select2-search--inline',\n function (evt) {\n // IE will trigger the `input` event when a placeholder is used on a\n // search box. To get around this issue, we are forced to ignore all\n // `input` events in IE and keep using `keyup`.\n if (disableInputEvents && evt.type === 'input') {\n self.$selection.off('input.search input.searchcheck');\n return;\n }\n\n var key = evt.which;\n\n // We can freely ignore events from modifier keys\n if (key == KEYS.SHIFT || key == KEYS.CTRL || key == KEYS.ALT) {\n return;\n }\n\n // Tabbing will be handled during the `keydown` phase\n if (key == KEYS.TAB) {\n return;\n }\n\n self.handleSearch(evt);\n }\n );\n };\n\n /**\n * This method will transfer the tabindex attribute from the rendered\n * selection to the search box. This allows for the search box to be used as\n * the primary focus instead of the selection container.\n *\n * @private\n */\n Search.prototype._transferTabIndex = function (decorated) {\n this.$search.attr('tabindex', this.$selection.attr('tabindex'));\n this.$selection.attr('tabindex', '-1');\n };\n\n Search.prototype.createPlaceholder = function (decorated, placeholder) {\n this.$search.attr('placeholder', placeholder.text);\n };\n\n Search.prototype.update = function (decorated, data) {\n var searchHadFocus = this.$search[0] == document.activeElement;\n\n this.$search.attr('placeholder', '');\n\n decorated.call(this, data);\n\n this.$selection.find('.select2-selection__rendered')\n .append(this.$searchContainer);\n\n this.resizeSearch();\n if (searchHadFocus) {\n this.$search.focus();\n }\n };\n\n Search.prototype.handleSearch = function () {\n this.resizeSearch();\n\n if (!this._keyUpPrevented) {\n var input = this.$search.val();\n\n this.trigger('query', {\n term: input\n });\n }\n\n this._keyUpPrevented = false;\n };\n\n Search.prototype.searchRemoveChoice = function (decorated, item) {\n this.trigger('unselect', {\n data: item\n });\n\n this.$search.val(item.text);\n this.handleSearch();\n };\n\n Search.prototype.resizeSearch = function () {\n this.$search.css('width', '25px');\n\n var width = '';\n\n if (this.$search.attr('placeholder') !== '') {\n width = this.$selection.find('.select2-selection__rendered').innerWidth();\n } else {\n var minimumWidth = this.$search.val().length + 1;\n\n width = (minimumWidth * 0.75) + 'em';\n }\n\n this.$search.css('width', width);\n };\n\n return Search;\n});\n\nS2.define('select2/selection/eventRelay',[\n 'jquery'\n], function ($) {\n function EventRelay () { }\n\n EventRelay.prototype.bind = function (decorated, container, $container) {\n var self = this;\n var relayEvents = [\n 'open', 'opening',\n 'close', 'closing',\n 'select', 'selecting',\n 'unselect', 'unselecting'\n ];\n\n var preventableEvents = ['opening', 'closing', 'selecting', 'unselecting'];\n\n decorated.call(this, container, $container);\n\n container.on('*', function (name, params) {\n // Ignore events that should not be relayed\n if ($.inArray(name, relayEvents) === -1) {\n return;\n }\n\n // The parameters should always be an object\n params = params || {};\n\n // Generate the jQuery event for the Select2 event\n var evt = $.Event('select2:' + name, {\n params: params\n });\n\n self.$element.trigger(evt);\n\n // Only handle preventable events if it was one\n if ($.inArray(name, preventableEvents) === -1) {\n return;\n }\n\n params.prevented = evt.isDefaultPrevented();\n });\n };\n\n return EventRelay;\n});\n\nS2.define('select2/translation',[\n 'jquery',\n 'require'\n], function ($, require) {\n function Translation (dict) {\n this.dict = dict || {};\n }\n\n Translation.prototype.all = function () {\n return this.dict;\n };\n\n Translation.prototype.get = function (key) {\n return this.dict[key];\n };\n\n Translation.prototype.extend = function (translation) {\n this.dict = $.extend({}, translation.all(), this.dict);\n };\n\n // Static functions\n\n Translation._cache = {};\n\n Translation.loadPath = function (path) {\n if (!(path in Translation._cache)) {\n var translations = require(path);\n\n Translation._cache[path] = translations;\n }\n\n return new Translation(Translation._cache[path]);\n };\n\n return Translation;\n});\n\nS2.define('select2/diacritics',[\n\n], function () {\n var diacritics = {\n '\\u24B6': 'A',\n '\\uFF21': 'A',\n '\\u00C0': 'A',\n '\\u00C1': 'A',\n '\\u00C2': 'A',\n '\\u1EA6': 'A',\n '\\u1EA4': 'A',\n '\\u1EAA': 'A',\n '\\u1EA8': 'A',\n '\\u00C3': 'A',\n '\\u0100': 'A',\n '\\u0102': 'A',\n '\\u1EB0': 'A',\n '\\u1EAE': 'A',\n '\\u1EB4': 'A',\n '\\u1EB2': 'A',\n '\\u0226': 'A',\n '\\u01E0': 'A',\n '\\u00C4': 'A',\n '\\u01DE': 'A',\n '\\u1EA2': 'A',\n '\\u00C5': 'A',\n '\\u01FA': 'A',\n '\\u01CD': 'A',\n '\\u0200': 'A',\n '\\u0202': 'A',\n '\\u1EA0': 'A',\n '\\u1EAC': 'A',\n '\\u1EB6': 'A',\n '\\u1E00': 'A',\n '\\u0104': 'A',\n '\\u023A': 'A',\n '\\u2C6F': 'A',\n '\\uA732': 'AA',\n '\\u00C6': 'AE',\n '\\u01FC': 'AE',\n '\\u01E2': 'AE',\n '\\uA734': 'AO',\n '\\uA736': 'AU',\n '\\uA738': 'AV',\n '\\uA73A': 'AV',\n '\\uA73C': 'AY',\n '\\u24B7': 'B',\n '\\uFF22': 'B',\n '\\u1E02': 'B',\n '\\u1E04': 'B',\n '\\u1E06': 'B',\n '\\u0243': 'B',\n '\\u0182': 'B',\n '\\u0181': 'B',\n '\\u24B8': 'C',\n '\\uFF23': 'C',\n '\\u0106': 'C',\n '\\u0108': 'C',\n '\\u010A': 'C',\n '\\u010C': 'C',\n '\\u00C7': 'C',\n '\\u1E08': 'C',\n '\\u0187': 'C',\n '\\u023B': 'C',\n '\\uA73E': 'C',\n '\\u24B9': 'D',\n '\\uFF24': 'D',\n '\\u1E0A': 'D',\n '\\u010E': 'D',\n '\\u1E0C': 'D',\n '\\u1E10': 'D',\n '\\u1E12': 'D',\n '\\u1E0E': 'D',\n '\\u0110': 'D',\n '\\u018B': 'D',\n '\\u018A': 'D',\n '\\u0189': 'D',\n '\\uA779': 'D',\n '\\u01F1': 'DZ',\n '\\u01C4': 'DZ',\n '\\u01F2': 'Dz',\n '\\u01C5': 'Dz',\n '\\u24BA': 'E',\n '\\uFF25': 'E',\n '\\u00C8': 'E',\n '\\u00C9': 'E',\n '\\u00CA': 'E',\n '\\u1EC0': 'E',\n '\\u1EBE': 'E',\n '\\u1EC4': 'E',\n '\\u1EC2': 'E',\n '\\u1EBC': 'E',\n '\\u0112': 'E',\n '\\u1E14': 'E',\n '\\u1E16': 'E',\n '\\u0114': 'E',\n '\\u0116': 'E',\n '\\u00CB': 'E',\n '\\u1EBA': 'E',\n '\\u011A': 'E',\n '\\u0204': 'E',\n '\\u0206': 'E',\n '\\u1EB8': 'E',\n '\\u1EC6': 'E',\n '\\u0228': 'E',\n '\\u1E1C': 'E',\n '\\u0118': 'E',\n '\\u1E18': 'E',\n '\\u1E1A': 'E',\n '\\u0190': 'E',\n '\\u018E': 'E',\n '\\u24BB': 'F',\n '\\uFF26': 'F',\n '\\u1E1E': 'F',\n '\\u0191': 'F',\n '\\uA77B': 'F',\n '\\u24BC': 'G',\n '\\uFF27': 'G',\n '\\u01F4': 'G',\n '\\u011C': 'G',\n '\\u1E20': 'G',\n '\\u011E': 'G',\n '\\u0120': 'G',\n '\\u01E6': 'G',\n '\\u0122': 'G',\n '\\u01E4': 'G',\n '\\u0193': 'G',\n '\\uA7A0': 'G',\n '\\uA77D': 'G',\n '\\uA77E': 'G',\n '\\u24BD': 'H',\n '\\uFF28': 'H',\n '\\u0124': 'H',\n '\\u1E22': 'H',\n '\\u1E26': 'H',\n '\\u021E': 'H',\n '\\u1E24': 'H',\n '\\u1E28': 'H',\n '\\u1E2A': 'H',\n '\\u0126': 'H',\n '\\u2C67': 'H',\n '\\u2C75': 'H',\n '\\uA78D': 'H',\n '\\u24BE': 'I',\n '\\uFF29': 'I',\n '\\u00CC': 'I',\n '\\u00CD': 'I',\n '\\u00CE': 'I',\n '\\u0128': 'I',\n '\\u012A': 'I',\n '\\u012C': 'I',\n '\\u0130': 'I',\n '\\u00CF': 'I',\n '\\u1E2E': 'I',\n '\\u1EC8': 'I',\n '\\u01CF': 'I',\n '\\u0208': 'I',\n '\\u020A': 'I',\n '\\u1ECA': 'I',\n '\\u012E': 'I',\n '\\u1E2C': 'I',\n '\\u0197': 'I',\n '\\u24BF': 'J',\n '\\uFF2A': 'J',\n '\\u0134': 'J',\n '\\u0248': 'J',\n '\\u24C0': 'K',\n '\\uFF2B': 'K',\n '\\u1E30': 'K',\n '\\u01E8': 'K',\n '\\u1E32': 'K',\n '\\u0136': 'K',\n '\\u1E34': 'K',\n '\\u0198': 'K',\n '\\u2C69': 'K',\n '\\uA740': 'K',\n '\\uA742': 'K',\n '\\uA744': 'K',\n '\\uA7A2': 'K',\n '\\u24C1': 'L',\n '\\uFF2C': 'L',\n '\\u013F': 'L',\n '\\u0139': 'L',\n '\\u013D': 'L',\n '\\u1E36': 'L',\n '\\u1E38': 'L',\n '\\u013B': 'L',\n '\\u1E3C': 'L',\n '\\u1E3A': 'L',\n '\\u0141': 'L',\n '\\u023D': 'L',\n '\\u2C62': 'L',\n '\\u2C60': 'L',\n '\\uA748': 'L',\n '\\uA746': 'L',\n '\\uA780': 'L',\n '\\u01C7': 'LJ',\n '\\u01C8': 'Lj',\n '\\u24C2': 'M',\n '\\uFF2D': 'M',\n '\\u1E3E': 'M',\n '\\u1E40': 'M',\n '\\u1E42': 'M',\n '\\u2C6E': 'M',\n '\\u019C': 'M',\n '\\u24C3': 'N',\n '\\uFF2E': 'N',\n '\\u01F8': 'N',\n '\\u0143': 'N',\n '\\u00D1': 'N',\n '\\u1E44': 'N',\n '\\u0147': 'N',\n '\\u1E46': 'N',\n '\\u0145': 'N',\n '\\u1E4A': 'N',\n '\\u1E48': 'N',\n '\\u0220': 'N',\n '\\u019D': 'N',\n '\\uA790': 'N',\n '\\uA7A4': 'N',\n '\\u01CA': 'NJ',\n '\\u01CB': 'Nj',\n '\\u24C4': 'O',\n '\\uFF2F': 'O',\n '\\u00D2': 'O',\n '\\u00D3': 'O',\n '\\u00D4': 'O',\n '\\u1ED2': 'O',\n '\\u1ED0': 'O',\n '\\u1ED6': 'O',\n '\\u1ED4': 'O',\n '\\u00D5': 'O',\n '\\u1E4C': 'O',\n '\\u022C': 'O',\n '\\u1E4E': 'O',\n '\\u014C': 'O',\n '\\u1E50': 'O',\n '\\u1E52': 'O',\n '\\u014E': 'O',\n '\\u022E': 'O',\n '\\u0230': 'O',\n '\\u00D6': 'O',\n '\\u022A': 'O',\n '\\u1ECE': 'O',\n '\\u0150': 'O',\n '\\u01D1': 'O',\n '\\u020C': 'O',\n '\\u020E': 'O',\n '\\u01A0': 'O',\n '\\u1EDC': 'O',\n '\\u1EDA': 'O',\n '\\u1EE0': 'O',\n '\\u1EDE': 'O',\n '\\u1EE2': 'O',\n '\\u1ECC': 'O',\n '\\u1ED8': 'O',\n '\\u01EA': 'O',\n '\\u01EC': 'O',\n '\\u00D8': 'O',\n '\\u01FE': 'O',\n '\\u0186': 'O',\n '\\u019F': 'O',\n '\\uA74A': 'O',\n '\\uA74C': 'O',\n '\\u01A2': 'OI',\n '\\uA74E': 'OO',\n '\\u0222': 'OU',\n '\\u24C5': 'P',\n '\\uFF30': 'P',\n '\\u1E54': 'P',\n '\\u1E56': 'P',\n '\\u01A4': 'P',\n '\\u2C63': 'P',\n '\\uA750': 'P',\n '\\uA752': 'P',\n '\\uA754': 'P',\n '\\u24C6': 'Q',\n '\\uFF31': 'Q',\n '\\uA756': 'Q',\n '\\uA758': 'Q',\n '\\u024A': 'Q',\n '\\u24C7': 'R',\n '\\uFF32': 'R',\n '\\u0154': 'R',\n '\\u1E58': 'R',\n '\\u0158': 'R',\n '\\u0210': 'R',\n '\\u0212': 'R',\n '\\u1E5A': 'R',\n '\\u1E5C': 'R',\n '\\u0156': 'R',\n '\\u1E5E': 'R',\n '\\u024C': 'R',\n '\\u2C64': 'R',\n '\\uA75A': 'R',\n '\\uA7A6': 'R',\n '\\uA782': 'R',\n '\\u24C8': 'S',\n '\\uFF33': 'S',\n '\\u1E9E': 'S',\n '\\u015A': 'S',\n '\\u1E64': 'S',\n '\\u015C': 'S',\n '\\u1E60': 'S',\n '\\u0160': 'S',\n '\\u1E66': 'S',\n '\\u1E62': 'S',\n '\\u1E68': 'S',\n '\\u0218': 'S',\n '\\u015E': 'S',\n '\\u2C7E': 'S',\n '\\uA7A8': 'S',\n '\\uA784': 'S',\n '\\u24C9': 'T',\n '\\uFF34': 'T',\n '\\u1E6A': 'T',\n '\\u0164': 'T',\n '\\u1E6C': 'T',\n '\\u021A': 'T',\n '\\u0162': 'T',\n '\\u1E70': 'T',\n '\\u1E6E': 'T',\n '\\u0166': 'T',\n '\\u01AC': 'T',\n '\\u01AE': 'T',\n '\\u023E': 'T',\n '\\uA786': 'T',\n '\\uA728': 'TZ',\n '\\u24CA': 'U',\n '\\uFF35': 'U',\n '\\u00D9': 'U',\n '\\u00DA': 'U',\n '\\u00DB': 'U',\n '\\u0168': 'U',\n '\\u1E78': 'U',\n '\\u016A': 'U',\n '\\u1E7A': 'U',\n '\\u016C': 'U',\n '\\u00DC': 'U',\n '\\u01DB': 'U',\n '\\u01D7': 'U',\n '\\u01D5': 'U',\n '\\u01D9': 'U',\n '\\u1EE6': 'U',\n '\\u016E': 'U',\n '\\u0170': 'U',\n '\\u01D3': 'U',\n '\\u0214': 'U',\n '\\u0216': 'U',\n '\\u01AF': 'U',\n '\\u1EEA': 'U',\n '\\u1EE8': 'U',\n '\\u1EEE': 'U',\n '\\u1EEC': 'U',\n '\\u1EF0': 'U',\n '\\u1EE4': 'U',\n '\\u1E72': 'U',\n '\\u0172': 'U',\n '\\u1E76': 'U',\n '\\u1E74': 'U',\n '\\u0244': 'U',\n '\\u24CB': 'V',\n '\\uFF36': 'V',\n '\\u1E7C': 'V',\n '\\u1E7E': 'V',\n '\\u01B2': 'V',\n '\\uA75E': 'V',\n '\\u0245': 'V',\n '\\uA760': 'VY',\n '\\u24CC': 'W',\n '\\uFF37': 'W',\n '\\u1E80': 'W',\n '\\u1E82': 'W',\n '\\u0174': 'W',\n '\\u1E86': 'W',\n '\\u1E84': 'W',\n '\\u1E88': 'W',\n '\\u2C72': 'W',\n '\\u24CD': 'X',\n '\\uFF38': 'X',\n '\\u1E8A': 'X',\n '\\u1E8C': 'X',\n '\\u24CE': 'Y',\n '\\uFF39': 'Y',\n '\\u1EF2': 'Y',\n '\\u00DD': 'Y',\n '\\u0176': 'Y',\n '\\u1EF8': 'Y',\n '\\u0232': 'Y',\n '\\u1E8E': 'Y',\n '\\u0178': 'Y',\n '\\u1EF6': 'Y',\n '\\u1EF4': 'Y',\n '\\u01B3': 'Y',\n '\\u024E': 'Y',\n '\\u1EFE': 'Y',\n '\\u24CF': 'Z',\n '\\uFF3A': 'Z',\n '\\u0179': 'Z',\n '\\u1E90': 'Z',\n '\\u017B': 'Z',\n '\\u017D': 'Z',\n '\\u1E92': 'Z',\n '\\u1E94': 'Z',\n '\\u01B5': 'Z',\n '\\u0224': 'Z',\n '\\u2C7F': 'Z',\n '\\u2C6B': 'Z',\n '\\uA762': 'Z',\n '\\u24D0': 'a',\n '\\uFF41': 'a',\n '\\u1E9A': 'a',\n '\\u00E0': 'a',\n '\\u00E1': 'a',\n '\\u00E2': 'a',\n '\\u1EA7': 'a',\n '\\u1EA5': 'a',\n '\\u1EAB': 'a',\n '\\u1EA9': 'a',\n '\\u00E3': 'a',\n '\\u0101': 'a',\n '\\u0103': 'a',\n '\\u1EB1': 'a',\n '\\u1EAF': 'a',\n '\\u1EB5': 'a',\n '\\u1EB3': 'a',\n '\\u0227': 'a',\n '\\u01E1': 'a',\n '\\u00E4': 'a',\n '\\u01DF': 'a',\n '\\u1EA3': 'a',\n '\\u00E5': 'a',\n '\\u01FB': 'a',\n '\\u01CE': 'a',\n '\\u0201': 'a',\n '\\u0203': 'a',\n '\\u1EA1': 'a',\n '\\u1EAD': 'a',\n '\\u1EB7': 'a',\n '\\u1E01': 'a',\n '\\u0105': 'a',\n '\\u2C65': 'a',\n '\\u0250': 'a',\n '\\uA733': 'aa',\n '\\u00E6': 'ae',\n '\\u01FD': 'ae',\n '\\u01E3': 'ae',\n '\\uA735': 'ao',\n '\\uA737': 'au',\n '\\uA739': 'av',\n '\\uA73B': 'av',\n '\\uA73D': 'ay',\n '\\u24D1': 'b',\n '\\uFF42': 'b',\n '\\u1E03': 'b',\n '\\u1E05': 'b',\n '\\u1E07': 'b',\n '\\u0180': 'b',\n '\\u0183': 'b',\n '\\u0253': 'b',\n '\\u24D2': 'c',\n '\\uFF43': 'c',\n '\\u0107': 'c',\n '\\u0109': 'c',\n '\\u010B': 'c',\n '\\u010D': 'c',\n '\\u00E7': 'c',\n '\\u1E09': 'c',\n '\\u0188': 'c',\n '\\u023C': 'c',\n '\\uA73F': 'c',\n '\\u2184': 'c',\n '\\u24D3': 'd',\n '\\uFF44': 'd',\n '\\u1E0B': 'd',\n '\\u010F': 'd',\n '\\u1E0D': 'd',\n '\\u1E11': 'd',\n '\\u1E13': 'd',\n '\\u1E0F': 'd',\n '\\u0111': 'd',\n '\\u018C': 'd',\n '\\u0256': 'd',\n '\\u0257': 'd',\n '\\uA77A': 'd',\n '\\u01F3': 'dz',\n '\\u01C6': 'dz',\n '\\u24D4': 'e',\n '\\uFF45': 'e',\n '\\u00E8': 'e',\n '\\u00E9': 'e',\n '\\u00EA': 'e',\n '\\u1EC1': 'e',\n '\\u1EBF': 'e',\n '\\u1EC5': 'e',\n '\\u1EC3': 'e',\n '\\u1EBD': 'e',\n '\\u0113': 'e',\n '\\u1E15': 'e',\n '\\u1E17': 'e',\n '\\u0115': 'e',\n '\\u0117': 'e',\n '\\u00EB': 'e',\n '\\u1EBB': 'e',\n '\\u011B': 'e',\n '\\u0205': 'e',\n '\\u0207': 'e',\n '\\u1EB9': 'e',\n '\\u1EC7': 'e',\n '\\u0229': 'e',\n '\\u1E1D': 'e',\n '\\u0119': 'e',\n '\\u1E19': 'e',\n '\\u1E1B': 'e',\n '\\u0247': 'e',\n '\\u025B': 'e',\n '\\u01DD': 'e',\n '\\u24D5': 'f',\n '\\uFF46': 'f',\n '\\u1E1F': 'f',\n '\\u0192': 'f',\n '\\uA77C': 'f',\n '\\u24D6': 'g',\n '\\uFF47': 'g',\n '\\u01F5': 'g',\n '\\u011D': 'g',\n '\\u1E21': 'g',\n '\\u011F': 'g',\n '\\u0121': 'g',\n '\\u01E7': 'g',\n '\\u0123': 'g',\n '\\u01E5': 'g',\n '\\u0260': 'g',\n '\\uA7A1': 'g',\n '\\u1D79': 'g',\n '\\uA77F': 'g',\n '\\u24D7': 'h',\n '\\uFF48': 'h',\n '\\u0125': 'h',\n '\\u1E23': 'h',\n '\\u1E27': 'h',\n '\\u021F': 'h',\n '\\u1E25': 'h',\n '\\u1E29': 'h',\n '\\u1E2B': 'h',\n '\\u1E96': 'h',\n '\\u0127': 'h',\n '\\u2C68': 'h',\n '\\u2C76': 'h',\n '\\u0265': 'h',\n '\\u0195': 'hv',\n '\\u24D8': 'i',\n '\\uFF49': 'i',\n '\\u00EC': 'i',\n '\\u00ED': 'i',\n '\\u00EE': 'i',\n '\\u0129': 'i',\n '\\u012B': 'i',\n '\\u012D': 'i',\n '\\u00EF': 'i',\n '\\u1E2F': 'i',\n '\\u1EC9': 'i',\n '\\u01D0': 'i',\n '\\u0209': 'i',\n '\\u020B': 'i',\n '\\u1ECB': 'i',\n '\\u012F': 'i',\n '\\u1E2D': 'i',\n '\\u0268': 'i',\n '\\u0131': 'i',\n '\\u24D9': 'j',\n '\\uFF4A': 'j',\n '\\u0135': 'j',\n '\\u01F0': 'j',\n '\\u0249': 'j',\n '\\u24DA': 'k',\n '\\uFF4B': 'k',\n '\\u1E31': 'k',\n '\\u01E9': 'k',\n '\\u1E33': 'k',\n '\\u0137': 'k',\n '\\u1E35': 'k',\n '\\u0199': 'k',\n '\\u2C6A': 'k',\n '\\uA741': 'k',\n '\\uA743': 'k',\n '\\uA745': 'k',\n '\\uA7A3': 'k',\n '\\u24DB': 'l',\n '\\uFF4C': 'l',\n '\\u0140': 'l',\n '\\u013A': 'l',\n '\\u013E': 'l',\n '\\u1E37': 'l',\n '\\u1E39': 'l',\n '\\u013C': 'l',\n '\\u1E3D': 'l',\n '\\u1E3B': 'l',\n '\\u017F': 'l',\n '\\u0142': 'l',\n '\\u019A': 'l',\n '\\u026B': 'l',\n '\\u2C61': 'l',\n '\\uA749': 'l',\n '\\uA781': 'l',\n '\\uA747': 'l',\n '\\u01C9': 'lj',\n '\\u24DC': 'm',\n '\\uFF4D': 'm',\n '\\u1E3F': 'm',\n '\\u1E41': 'm',\n '\\u1E43': 'm',\n '\\u0271': 'm',\n '\\u026F': 'm',\n '\\u24DD': 'n',\n '\\uFF4E': 'n',\n '\\u01F9': 'n',\n '\\u0144': 'n',\n '\\u00F1': 'n',\n '\\u1E45': 'n',\n '\\u0148': 'n',\n '\\u1E47': 'n',\n '\\u0146': 'n',\n '\\u1E4B': 'n',\n '\\u1E49': 'n',\n '\\u019E': 'n',\n '\\u0272': 'n',\n '\\u0149': 'n',\n '\\uA791': 'n',\n '\\uA7A5': 'n',\n '\\u01CC': 'nj',\n '\\u24DE': 'o',\n '\\uFF4F': 'o',\n '\\u00F2': 'o',\n '\\u00F3': 'o',\n '\\u00F4': 'o',\n '\\u1ED3': 'o',\n '\\u1ED1': 'o',\n '\\u1ED7': 'o',\n '\\u1ED5': 'o',\n '\\u00F5': 'o',\n '\\u1E4D': 'o',\n '\\u022D': 'o',\n '\\u1E4F': 'o',\n '\\u014D': 'o',\n '\\u1E51': 'o',\n '\\u1E53': 'o',\n '\\u014F': 'o',\n '\\u022F': 'o',\n '\\u0231': 'o',\n '\\u00F6': 'o',\n '\\u022B': 'o',\n '\\u1ECF': 'o',\n '\\u0151': 'o',\n '\\u01D2': 'o',\n '\\u020D': 'o',\n '\\u020F': 'o',\n '\\u01A1': 'o',\n '\\u1EDD': 'o',\n '\\u1EDB': 'o',\n '\\u1EE1': 'o',\n '\\u1EDF': 'o',\n '\\u1EE3': 'o',\n '\\u1ECD': 'o',\n '\\u1ED9': 'o',\n '\\u01EB': 'o',\n '\\u01ED': 'o',\n '\\u00F8': 'o',\n '\\u01FF': 'o',\n '\\u0254': 'o',\n '\\uA74B': 'o',\n '\\uA74D': 'o',\n '\\u0275': 'o',\n '\\u01A3': 'oi',\n '\\u0223': 'ou',\n '\\uA74F': 'oo',\n '\\u24DF': 'p',\n '\\uFF50': 'p',\n '\\u1E55': 'p',\n '\\u1E57': 'p',\n '\\u01A5': 'p',\n '\\u1D7D': 'p',\n '\\uA751': 'p',\n '\\uA753': 'p',\n '\\uA755': 'p',\n '\\u24E0': 'q',\n '\\uFF51': 'q',\n '\\u024B': 'q',\n '\\uA757': 'q',\n '\\uA759': 'q',\n '\\u24E1': 'r',\n '\\uFF52': 'r',\n '\\u0155': 'r',\n '\\u1E59': 'r',\n '\\u0159': 'r',\n '\\u0211': 'r',\n '\\u0213': 'r',\n '\\u1E5B': 'r',\n '\\u1E5D': 'r',\n '\\u0157': 'r',\n '\\u1E5F': 'r',\n '\\u024D': 'r',\n '\\u027D': 'r',\n '\\uA75B': 'r',\n '\\uA7A7': 'r',\n '\\uA783': 'r',\n '\\u24E2': 's',\n '\\uFF53': 's',\n '\\u00DF': 's',\n '\\u015B': 's',\n '\\u1E65': 's',\n '\\u015D': 's',\n '\\u1E61': 's',\n '\\u0161': 's',\n '\\u1E67': 's',\n '\\u1E63': 's',\n '\\u1E69': 's',\n '\\u0219': 's',\n '\\u015F': 's',\n '\\u023F': 's',\n '\\uA7A9': 's',\n '\\uA785': 's',\n '\\u1E9B': 's',\n '\\u24E3': 't',\n '\\uFF54': 't',\n '\\u1E6B': 't',\n '\\u1E97': 't',\n '\\u0165': 't',\n '\\u1E6D': 't',\n '\\u021B': 't',\n '\\u0163': 't',\n '\\u1E71': 't',\n '\\u1E6F': 't',\n '\\u0167': 't',\n '\\u01AD': 't',\n '\\u0288': 't',\n '\\u2C66': 't',\n '\\uA787': 't',\n '\\uA729': 'tz',\n '\\u24E4': 'u',\n '\\uFF55': 'u',\n '\\u00F9': 'u',\n '\\u00FA': 'u',\n '\\u00FB': 'u',\n '\\u0169': 'u',\n '\\u1E79': 'u',\n '\\u016B': 'u',\n '\\u1E7B': 'u',\n '\\u016D': 'u',\n '\\u00FC': 'u',\n '\\u01DC': 'u',\n '\\u01D8': 'u',\n '\\u01D6': 'u',\n '\\u01DA': 'u',\n '\\u1EE7': 'u',\n '\\u016F': 'u',\n '\\u0171': 'u',\n '\\u01D4': 'u',\n '\\u0215': 'u',\n '\\u0217': 'u',\n '\\u01B0': 'u',\n '\\u1EEB': 'u',\n '\\u1EE9': 'u',\n '\\u1EEF': 'u',\n '\\u1EED': 'u',\n '\\u1EF1': 'u',\n '\\u1EE5': 'u',\n '\\u1E73': 'u',\n '\\u0173': 'u',\n '\\u1E77': 'u',\n '\\u1E75': 'u',\n '\\u0289': 'u',\n '\\u24E5': 'v',\n '\\uFF56': 'v',\n '\\u1E7D': 'v',\n '\\u1E7F': 'v',\n '\\u028B': 'v',\n '\\uA75F': 'v',\n '\\u028C': 'v',\n '\\uA761': 'vy',\n '\\u24E6': 'w',\n '\\uFF57': 'w',\n '\\u1E81': 'w',\n '\\u1E83': 'w',\n '\\u0175': 'w',\n '\\u1E87': 'w',\n '\\u1E85': 'w',\n '\\u1E98': 'w',\n '\\u1E89': 'w',\n '\\u2C73': 'w',\n '\\u24E7': 'x',\n '\\uFF58': 'x',\n '\\u1E8B': 'x',\n '\\u1E8D': 'x',\n '\\u24E8': 'y',\n '\\uFF59': 'y',\n '\\u1EF3': 'y',\n '\\u00FD': 'y',\n '\\u0177': 'y',\n '\\u1EF9': 'y',\n '\\u0233': 'y',\n '\\u1E8F': 'y',\n '\\u00FF': 'y',\n '\\u1EF7': 'y',\n '\\u1E99': 'y',\n '\\u1EF5': 'y',\n '\\u01B4': 'y',\n '\\u024F': 'y',\n '\\u1EFF': 'y',\n '\\u24E9': 'z',\n '\\uFF5A': 'z',\n '\\u017A': 'z',\n '\\u1E91': 'z',\n '\\u017C': 'z',\n '\\u017E': 'z',\n '\\u1E93': 'z',\n '\\u1E95': 'z',\n '\\u01B6': 'z',\n '\\u0225': 'z',\n '\\u0240': 'z',\n '\\u2C6C': 'z',\n '\\uA763': 'z',\n '\\u0386': '\\u0391',\n '\\u0388': '\\u0395',\n '\\u0389': '\\u0397',\n '\\u038A': '\\u0399',\n '\\u03AA': '\\u0399',\n '\\u038C': '\\u039F',\n '\\u038E': '\\u03A5',\n '\\u03AB': '\\u03A5',\n '\\u038F': '\\u03A9',\n '\\u03AC': '\\u03B1',\n '\\u03AD': '\\u03B5',\n '\\u03AE': '\\u03B7',\n '\\u03AF': '\\u03B9',\n '\\u03CA': '\\u03B9',\n '\\u0390': '\\u03B9',\n '\\u03CC': '\\u03BF',\n '\\u03CD': '\\u03C5',\n '\\u03CB': '\\u03C5',\n '\\u03B0': '\\u03C5',\n '\\u03C9': '\\u03C9',\n '\\u03C2': '\\u03C3'\n };\n\n return diacritics;\n});\n\nS2.define('select2/data/base',[\n '../utils'\n], function (Utils) {\n function BaseAdapter ($element, options) {\n BaseAdapter.__super__.constructor.call(this);\n }\n\n Utils.Extend(BaseAdapter, Utils.Observable);\n\n BaseAdapter.prototype.current = function (callback) {\n throw new Error('The `current` method must be defined in child classes.');\n };\n\n BaseAdapter.prototype.query = function (params, callback) {\n throw new Error('The `query` method must be defined in child classes.');\n };\n\n BaseAdapter.prototype.bind = function (container, $container) {\n // Can be implemented in subclasses\n };\n\n BaseAdapter.prototype.destroy = function () {\n // Can be implemented in subclasses\n };\n\n BaseAdapter.prototype.generateResultId = function (container, data) {\n var id = container.id + '-result-';\n\n id += Utils.generateChars(4);\n\n if (data.id != null) {\n id += '-' + data.id.toString();\n } else {\n id += '-' + Utils.generateChars(4);\n }\n return id;\n };\n\n return BaseAdapter;\n});\n\nS2.define('select2/data/select',[\n './base',\n '../utils',\n 'jquery'\n], function (BaseAdapter, Utils, $) {\n function SelectAdapter ($element, options) {\n this.$element = $element;\n this.options = options;\n\n SelectAdapter.__super__.constructor.call(this);\n }\n\n Utils.Extend(SelectAdapter, BaseAdapter);\n\n SelectAdapter.prototype.current = function (callback) {\n var data = [];\n var self = this;\n\n this.$element.find(':selected').each(function () {\n var $option = $(this);\n\n var option = self.item($option);\n\n data.push(option);\n });\n\n callback(data);\n };\n\n SelectAdapter.prototype.select = function (data) {\n var self = this;\n\n data.selected = true;\n\n // If data.element is a DOM node, use it instead\n if ($(data.element).is('option')) {\n data.element.selected = true;\n\n this.$element.trigger('change');\n\n return;\n }\n\n if (this.$element.prop('multiple')) {\n this.current(function (currentData) {\n var val = [];\n\n data = [data];\n data.push.apply(data, currentData);\n\n for (var d = 0; d < data.length; d++) {\n var id = data[d].id;\n\n if ($.inArray(id, val) === -1) {\n val.push(id);\n }\n }\n\n self.$element.val(val);\n self.$element.trigger('change');\n });\n } else {\n var val = data.id;\n\n this.$element.val(val);\n this.$element.trigger('change');\n }\n };\n\n SelectAdapter.prototype.unselect = function (data) {\n var self = this;\n\n if (!this.$element.prop('multiple')) {\n return;\n }\n\n data.selected = false;\n\n if ($(data.element).is('option')) {\n data.element.selected = false;\n\n this.$element.trigger('change');\n\n return;\n }\n\n this.current(function (currentData) {\n var val = [];\n\n for (var d = 0; d < currentData.length; d++) {\n var id = currentData[d].id;\n\n if (id !== data.id && $.inArray(id, val) === -1) {\n val.push(id);\n }\n }\n\n self.$element.val(val);\n\n self.$element.trigger('change');\n });\n };\n\n SelectAdapter.prototype.bind = function (container, $container) {\n var self = this;\n\n this.container = container;\n\n container.on('select', function (params) {\n self.select(params.data);\n });\n\n container.on('unselect', function (params) {\n self.unselect(params.data);\n });\n };\n\n SelectAdapter.prototype.destroy = function () {\n // Remove anything added to child elements\n this.$element.find('*').each(function () {\n // Remove any custom data set by Select2\n $.removeData(this, 'data');\n });\n };\n\n SelectAdapter.prototype.query = function (params, callback) {\n var data = [];\n var self = this;\n\n var $options = this.$element.children();\n\n $options.each(function () {\n var $option = $(this);\n\n if (!$option.is('option') && !$option.is('optgroup')) {\n return;\n }\n\n var option = self.item($option);\n\n var matches = self.matches(params, option);\n\n if (matches !== null) {\n data.push(matches);\n }\n });\n\n callback({\n results: data\n });\n };\n\n SelectAdapter.prototype.addOptions = function ($options) {\n Utils.appendMany(this.$element, $options);\n };\n\n SelectAdapter.prototype.option = function (data) {\n var option;\n\n if (data.children) {\n option = document.createElement('optgroup');\n option.label = data.text;\n } else {\n option = document.createElement('option');\n\n if (option.textContent !== undefined) {\n option.textContent = data.text;\n } else {\n option.innerText = data.text;\n }\n }\n\n if (data.id) {\n option.value = data.id;\n }\n\n if (data.disabled) {\n option.disabled = true;\n }\n\n if (data.selected) {\n option.selected = true;\n }\n\n if (data.title) {\n option.title = data.title;\n }\n\n var $option = $(option);\n\n var normalizedData = this._normalizeItem(data);\n normalizedData.element = option;\n\n // Override the option's data with the combined data\n $.data(option, 'data', normalizedData);\n\n return $option;\n };\n\n SelectAdapter.prototype.item = function ($option) {\n var data = {};\n\n data = $.data($option[0], 'data');\n\n if (data != null) {\n return data;\n }\n\n if ($option.is('option')) {\n data = {\n id: $option.val(),\n text: $option.text(),\n disabled: $option.prop('disabled'),\n selected: $option.prop('selected'),\n title: $option.prop('title')\n };\n } else if ($option.is('optgroup')) {\n data = {\n text: $option.prop('label'),\n children: [],\n title: $option.prop('title')\n };\n\n var $children = $option.children('option');\n var children = [];\n\n for (var c = 0; c < $children.length; c++) {\n var $child = $($children[c]);\n\n var child = this.item($child);\n\n children.push(child);\n }\n\n data.children = children;\n }\n\n data = this._normalizeItem(data);\n data.element = $option[0];\n\n $.data($option[0], 'data', data);\n\n return data;\n };\n\n SelectAdapter.prototype._normalizeItem = function (item) {\n if (!$.isPlainObject(item)) {\n item = {\n id: item,\n text: item\n };\n }\n\n item = $.extend({}, {\n text: ''\n }, item);\n\n var defaults = {\n selected: false,\n disabled: false\n };\n\n if (item.id != null) {\n item.id = item.id.toString();\n }\n\n if (item.text != null) {\n item.text = item.text.toString();\n }\n\n if (item._resultId == null && item.id && this.container != null) {\n item._resultId = this.generateResultId(this.container, item);\n }\n\n return $.extend({}, defaults, item);\n };\n\n SelectAdapter.prototype.matches = function (params, data) {\n var matcher = this.options.get('matcher');\n\n return matcher(params, data);\n };\n\n return SelectAdapter;\n});\n\nS2.define('select2/data/array',[\n './select',\n '../utils',\n 'jquery'\n], function (SelectAdapter, Utils, $) {\n function ArrayAdapter ($element, options) {\n var data = options.get('data') || [];\n\n ArrayAdapter.__super__.constructor.call(this, $element, options);\n\n this.addOptions(this.convertToOptions(data));\n }\n\n Utils.Extend(ArrayAdapter, SelectAdapter);\n\n ArrayAdapter.prototype.select = function (data) {\n var $option = this.$element.find('option').filter(function (i, elm) {\n return elm.value == data.id.toString();\n });\n\n if ($option.length === 0) {\n $option = this.option(data);\n\n this.addOptions($option);\n }\n\n ArrayAdapter.__super__.select.call(this, data);\n };\n\n ArrayAdapter.prototype.convertToOptions = function (data) {\n var self = this;\n\n var $existing = this.$element.find('option');\n var existingIds = $existing.map(function () {\n return self.item($(this)).id;\n }).get();\n\n var $options = [];\n\n // Filter out all items except for the one passed in the argument\n function onlyItem (item) {\n return function () {\n return $(this).val() == item.id;\n };\n }\n\n for (var d = 0; d < data.length; d++) {\n var item = this._normalizeItem(data[d]);\n\n // Skip items which were pre-loaded, only merge the data\n if ($.inArray(item.id, existingIds) >= 0) {\n var $existingOption = $existing.filter(onlyItem(item));\n\n var existingData = this.item($existingOption);\n var newData = $.extend(true, {}, existingData, item);\n\n var $newOption = this.option(newData);\n\n $existingOption.replaceWith($newOption);\n\n continue;\n }\n\n var $option = this.option(item);\n\n if (item.children) {\n var $children = this.convertToOptions(item.children);\n\n Utils.appendMany($option, $children);\n }\n\n $options.push($option);\n }\n\n return $options;\n };\n\n return ArrayAdapter;\n});\n\nS2.define('select2/data/ajax',[\n './array',\n '../utils',\n 'jquery'\n], function (ArrayAdapter, Utils, $) {\n function AjaxAdapter ($element, options) {\n this.ajaxOptions = this._applyDefaults(options.get('ajax'));\n\n if (this.ajaxOptions.processResults != null) {\n this.processResults = this.ajaxOptions.processResults;\n }\n\n AjaxAdapter.__super__.constructor.call(this, $element, options);\n }\n\n Utils.Extend(AjaxAdapter, ArrayAdapter);\n\n AjaxAdapter.prototype._applyDefaults = function (options) {\n var defaults = {\n data: function (params) {\n return $.extend({}, params, {\n q: params.term\n });\n },\n transport: function (params, success, failure) {\n var $request = $.ajax(params);\n\n $request.then(success);\n $request.fail(failure);\n\n return $request;\n }\n };\n\n return $.extend({}, defaults, options, true);\n };\n\n AjaxAdapter.prototype.processResults = function (results) {\n return results;\n };\n\n AjaxAdapter.prototype.query = function (params, callback) {\n var matches = [];\n var self = this;\n\n if (this._request != null) {\n // JSONP requests cannot always be aborted\n if ($.isFunction(this._request.abort)) {\n this._request.abort();\n }\n\n this._request = null;\n }\n\n var options = $.extend({\n type: 'GET'\n }, this.ajaxOptions);\n\n if (typeof options.url === 'function') {\n options.url = options.url.call(this.$element, params);\n }\n\n if (typeof options.data === 'function') {\n options.data = options.data.call(this.$element, params);\n }\n\n function request () {\n var $request = options.transport(options, function (data) {\n var results = self.processResults(data, params);\n\n if (self.options.get('debug') && window.console && console.error) {\n // Check to make sure that the response included a `results` key.\n if (!results || !results.results || !$.isArray(results.results)) {\n console.error(\n 'Select2: The AJAX results did not return an array in the ' +\n '`results` key of the response.'\n );\n }\n }\n\n callback(results);\n }, function () {\n // TODO: Handle AJAX errors\n });\n\n self._request = $request;\n }\n\n if (this.ajaxOptions.delay && params.term !== '') {\n if (this._queryTimeout) {\n window.clearTimeout(this._queryTimeout);\n }\n\n this._queryTimeout = window.setTimeout(request, this.ajaxOptions.delay);\n } else {\n request();\n }\n };\n\n return AjaxAdapter;\n});\n\nS2.define('select2/data/tags',[\n 'jquery'\n], function ($) {\n function Tags (decorated, $element, options) {\n var tags = options.get('tags');\n\n var createTag = options.get('createTag');\n\n if (createTag !== undefined) {\n this.createTag = createTag;\n }\n\n decorated.call(this, $element, options);\n\n if ($.isArray(tags)) {\n for (var t = 0; t < tags.length; t++) {\n var tag = tags[t];\n var item = this._normalizeItem(tag);\n\n var $option = this.option(item);\n\n this.$element.append($option);\n }\n }\n }\n\n Tags.prototype.query = function (decorated, params, callback) {\n var self = this;\n\n this._removeOldTags();\n\n if (params.term == null || params.page != null) {\n decorated.call(this, params, callback);\n return;\n }\n\n function wrapper (obj, child) {\n var data = obj.results;\n\n for (var i = 0; i < data.length; i++) {\n var option = data[i];\n\n var checkChildren = (\n option.children != null &&\n !wrapper({\n results: option.children\n }, true)\n );\n\n var checkText = option.text === params.term;\n\n if (checkText || checkChildren) {\n if (child) {\n return false;\n }\n\n obj.data = data;\n callback(obj);\n\n return;\n }\n }\n\n if (child) {\n return true;\n }\n\n var tag = self.createTag(params);\n\n if (tag != null) {\n var $option = self.option(tag);\n $option.attr('data-select2-tag', true);\n\n self.addOptions([$option]);\n\n self.insertTag(data, tag);\n }\n\n obj.results = data;\n\n callback(obj);\n }\n\n decorated.call(this, params, wrapper);\n };\n\n Tags.prototype.createTag = function (decorated, params) {\n var term = $.trim(params.term);\n\n if (term === '') {\n return null;\n }\n\n return {\n id: term,\n text: term\n };\n };\n\n Tags.prototype.insertTag = function (_, data, tag) {\n data.unshift(tag);\n };\n\n Tags.prototype._removeOldTags = function (_) {\n var tag = this._lastTag;\n\n var $options = this.$element.find('option[data-select2-tag]');\n\n $options.each(function () {\n if (this.selected) {\n return;\n }\n\n $(this).remove();\n });\n };\n\n return Tags;\n});\n\nS2.define('select2/data/tokenizer',[\n 'jquery'\n], function ($) {\n function Tokenizer (decorated, $element, options) {\n var tokenizer = options.get('tokenizer');\n\n if (tokenizer !== undefined) {\n this.tokenizer = tokenizer;\n }\n\n decorated.call(this, $element, options);\n }\n\n Tokenizer.prototype.bind = function (decorated, container, $container) {\n decorated.call(this, container, $container);\n\n this.$search = container.dropdown.$search || container.selection.$search ||\n $container.find('.select2-search__field');\n };\n\n Tokenizer.prototype.query = function (decorated, params, callback) {\n var self = this;\n\n function select (data) {\n self.trigger('select', {\n data: data\n });\n }\n\n params.term = params.term || '';\n\n var tokenData = this.tokenizer(params, this.options, select);\n\n if (tokenData.term !== params.term) {\n // Replace the search term if we have the search box\n if (this.$search.length) {\n this.$search.val(tokenData.term);\n this.$search.focus();\n }\n\n params.term = tokenData.term;\n }\n\n decorated.call(this, params, callback);\n };\n\n Tokenizer.prototype.tokenizer = function (_, params, options, callback) {\n var separators = options.get('tokenSeparators') || [];\n var term = params.term;\n var i = 0;\n\n var createTag = this.createTag || function (params) {\n return {\n id: params.term,\n text: params.term\n };\n };\n\n while (i < term.length) {\n var termChar = term[i];\n\n if ($.inArray(termChar, separators) === -1) {\n i++;\n\n continue;\n }\n\n var part = term.substr(0, i);\n var partParams = $.extend({}, params, {\n term: part\n });\n\n var data = createTag(partParams);\n\n if (data == null) {\n i++;\n continue;\n }\n\n callback(data);\n\n // Reset the term to not include the tokenized portion\n term = term.substr(i + 1) || '';\n i = 0;\n }\n\n return {\n term: term\n };\n };\n\n return Tokenizer;\n});\n\nS2.define('select2/data/minimumInputLength',[\n\n], function () {\n function MinimumInputLength (decorated, $e, options) {\n this.minimumInputLength = options.get('minimumInputLength');\n\n decorated.call(this, $e, options);\n }\n\n MinimumInputLength.prototype.query = function (decorated, params, callback) {\n params.term = params.term || '';\n\n if (params.term.length < this.minimumInputLength) {\n this.trigger('results:message', {\n message: 'inputTooShort',\n args: {\n minimum: this.minimumInputLength,\n input: params.term,\n params: params\n }\n });\n\n return;\n }\n\n decorated.call(this, params, callback);\n };\n\n return MinimumInputLength;\n});\n\nS2.define('select2/data/maximumInputLength',[\n\n], function () {\n function MaximumInputLength (decorated, $e, options) {\n this.maximumInputLength = options.get('maximumInputLength');\n\n decorated.call(this, $e, options);\n }\n\n MaximumInputLength.prototype.query = function (decorated, params, callback) {\n params.term = params.term || '';\n\n if (this.maximumInputLength > 0 &&\n params.term.length > this.maximumInputLength) {\n this.trigger('results:message', {\n message: 'inputTooLong',\n args: {\n maximum: this.maximumInputLength,\n input: params.term,\n params: params\n }\n });\n\n return;\n }\n\n decorated.call(this, params, callback);\n };\n\n return MaximumInputLength;\n});\n\nS2.define('select2/data/maximumSelectionLength',[\n\n], function (){\n function MaximumSelectionLength (decorated, $e, options) {\n this.maximumSelectionLength = options.get('maximumSelectionLength');\n\n decorated.call(this, $e, options);\n }\n\n MaximumSelectionLength.prototype.query =\n function (decorated, params, callback) {\n var self = this;\n\n this.current(function (currentData) {\n var count = currentData != null ? currentData.length : 0;\n if (self.maximumSelectionLength > 0 &&\n count >= self.maximumSelectionLength) {\n self.trigger('results:message', {\n message: 'maximumSelected',\n args: {\n maximum: self.maximumSelectionLength\n }\n });\n return;\n }\n decorated.call(self, params, callback);\n });\n };\n\n return MaximumSelectionLength;\n});\n\nS2.define('select2/dropdown',[\n 'jquery',\n './utils'\n], function ($, Utils) {\n function Dropdown ($element, options) {\n this.$element = $element;\n this.options = options;\n\n Dropdown.__super__.constructor.call(this);\n }\n\n Utils.Extend(Dropdown, Utils.Observable);\n\n Dropdown.prototype.render = function () {\n var $dropdown = $(\n '' +\n '' +\n ''\n );\n\n $dropdown.attr('dir', this.options.get('dir'));\n\n this.$dropdown = $dropdown;\n\n return $dropdown;\n };\n\n Dropdown.prototype.bind = function () {\n // Should be implemented in subclasses\n };\n\n Dropdown.prototype.position = function ($dropdown, $container) {\n // Should be implmented in subclasses\n };\n\n Dropdown.prototype.destroy = function () {\n // Remove the dropdown from the DOM\n this.$dropdown.remove();\n };\n\n return Dropdown;\n});\n\nS2.define('select2/dropdown/search',[\n 'jquery',\n '../utils'\n], function ($, Utils) {\n function Search () { }\n\n Search.prototype.render = function (decorated) {\n var $rendered = decorated.call(this);\n\n var $search = $(\n '' +\n '' +\n ''\n );\n\n this.$searchContainer = $search;\n this.$search = $search.find('input');\n\n $rendered.prepend($search);\n\n return $rendered;\n };\n\n Search.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n this.$search.on('keydown', function (evt) {\n self.trigger('keypress', evt);\n\n self._keyUpPrevented = evt.isDefaultPrevented();\n });\n\n // Workaround for browsers which do not support the `input` event\n // This will prevent double-triggering of events for browsers which support\n // both the `keyup` and `input` events.\n this.$search.on('input', function (evt) {\n // Unbind the duplicated `keyup` event\n $(this).off('keyup');\n });\n\n this.$search.on('keyup input', function (evt) {\n self.handleSearch(evt);\n });\n\n container.on('open', function () {\n self.$search.attr('tabindex', 0);\n\n self.$search.focus();\n\n window.setTimeout(function () {\n self.$search.focus();\n }, 0);\n });\n\n container.on('close', function () {\n self.$search.attr('tabindex', -1);\n\n self.$search.val('');\n });\n\n container.on('results:all', function (params) {\n if (params.query.term == null || params.query.term === '') {\n var showSearch = self.showSearch(params);\n\n if (showSearch) {\n self.$searchContainer.removeClass('select2-search--hide');\n } else {\n self.$searchContainer.addClass('select2-search--hide');\n }\n }\n });\n };\n\n Search.prototype.handleSearch = function (evt) {\n if (!this._keyUpPrevented) {\n var input = this.$search.val();\n\n this.trigger('query', {\n term: input\n });\n }\n\n this._keyUpPrevented = false;\n };\n\n Search.prototype.showSearch = function (_, params) {\n return true;\n };\n\n return Search;\n});\n\nS2.define('select2/dropdown/hidePlaceholder',[\n\n], function () {\n function HidePlaceholder (decorated, $element, options, dataAdapter) {\n this.placeholder = this.normalizePlaceholder(options.get('placeholder'));\n\n decorated.call(this, $element, options, dataAdapter);\n }\n\n HidePlaceholder.prototype.append = function (decorated, data) {\n data.results = this.removePlaceholder(data.results);\n\n decorated.call(this, data);\n };\n\n HidePlaceholder.prototype.normalizePlaceholder = function (_, placeholder) {\n if (typeof placeholder === 'string') {\n placeholder = {\n id: '',\n text: placeholder\n };\n }\n\n return placeholder;\n };\n\n HidePlaceholder.prototype.removePlaceholder = function (_, data) {\n var modifiedData = data.slice(0);\n\n for (var d = data.length - 1; d >= 0; d--) {\n var item = data[d];\n\n if (this.placeholder.id === item.id) {\n modifiedData.splice(d, 1);\n }\n }\n\n return modifiedData;\n };\n\n return HidePlaceholder;\n});\n\nS2.define('select2/dropdown/infiniteScroll',[\n 'jquery'\n], function ($) {\n function InfiniteScroll (decorated, $element, options, dataAdapter) {\n this.lastParams = {};\n\n decorated.call(this, $element, options, dataAdapter);\n\n this.$loadingMore = this.createLoadingMore();\n this.loading = false;\n }\n\n InfiniteScroll.prototype.append = function (decorated, data) {\n this.$loadingMore.remove();\n this.loading = false;\n\n decorated.call(this, data);\n\n if (this.showLoadingMore(data)) {\n this.$results.append(this.$loadingMore);\n }\n };\n\n InfiniteScroll.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n container.on('query', function (params) {\n self.lastParams = params;\n self.loading = true;\n });\n\n container.on('query:append', function (params) {\n self.lastParams = params;\n self.loading = true;\n });\n\n this.$results.on('scroll', function () {\n var isLoadMoreVisible = $.contains(\n document.documentElement,\n self.$loadingMore[0]\n );\n\n if (self.loading || !isLoadMoreVisible) {\n return;\n }\n\n var currentOffset = self.$results.offset().top +\n self.$results.outerHeight(false);\n var loadingMoreOffset = self.$loadingMore.offset().top +\n self.$loadingMore.outerHeight(false);\n\n if (currentOffset + 50 >= loadingMoreOffset) {\n self.loadMore();\n }\n });\n };\n\n InfiniteScroll.prototype.loadMore = function () {\n this.loading = true;\n\n var params = $.extend({}, {page: 1}, this.lastParams);\n\n params.page++;\n\n this.trigger('query:append', params);\n };\n\n InfiniteScroll.prototype.showLoadingMore = function (_, data) {\n return data.pagination && data.pagination.more;\n };\n\n InfiniteScroll.prototype.createLoadingMore = function () {\n var $option = $(\n '
      • '\n );\n\n var message = this.options.get('translations').get('loadingMore');\n\n $option.html(message(this.lastParams));\n\n return $option;\n };\n\n return InfiniteScroll;\n});\n\nS2.define('select2/dropdown/attachBody',[\n 'jquery',\n '../utils'\n], function ($, Utils) {\n function AttachBody (decorated, $element, options) {\n this.$dropdownParent = options.get('dropdownParent') || $(document.body);\n\n decorated.call(this, $element, options);\n }\n\n AttachBody.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n var setupResultsEvents = false;\n\n decorated.call(this, container, $container);\n\n container.on('open', function () {\n self._showDropdown();\n self._attachPositioningHandler(container);\n\n if (!setupResultsEvents) {\n setupResultsEvents = true;\n\n container.on('results:all', function () {\n self._positionDropdown();\n self._resizeDropdown();\n });\n\n container.on('results:append', function () {\n self._positionDropdown();\n self._resizeDropdown();\n });\n }\n });\n\n container.on('close', function () {\n self._hideDropdown();\n self._detachPositioningHandler(container);\n });\n\n this.$dropdownContainer.on('mousedown', function (evt) {\n evt.stopPropagation();\n });\n };\n\n AttachBody.prototype.destroy = function (decorated) {\n decorated.call(this);\n\n this.$dropdownContainer.remove();\n };\n\n AttachBody.prototype.position = function (decorated, $dropdown, $container) {\n // Clone all of the container classes\n $dropdown.attr('class', $container.attr('class'));\n\n $dropdown.removeClass('select2');\n $dropdown.addClass('select2-container--open');\n\n $dropdown.css({\n position: 'absolute',\n top: -999999\n });\n\n this.$container = $container;\n };\n\n AttachBody.prototype.render = function (decorated) {\n var $container = $('');\n\n var $dropdown = decorated.call(this);\n $container.append($dropdown);\n\n this.$dropdownContainer = $container;\n\n return $container;\n };\n\n AttachBody.prototype._hideDropdown = function (decorated) {\n this.$dropdownContainer.detach();\n };\n\n AttachBody.prototype._attachPositioningHandler =\n function (decorated, container) {\n var self = this;\n\n var scrollEvent = 'scroll.select2.' + container.id;\n var resizeEvent = 'resize.select2.' + container.id;\n var orientationEvent = 'orientationchange.select2.' + container.id;\n\n var $watchers = this.$container.parents().filter(Utils.hasScroll);\n $watchers.each(function () {\n $(this).data('select2-scroll-position', {\n x: $(this).scrollLeft(),\n y: $(this).scrollTop()\n });\n });\n\n $watchers.on(scrollEvent, function (ev) {\n var position = $(this).data('select2-scroll-position');\n $(this).scrollTop(position.y);\n });\n\n $(window).on(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent,\n function (e) {\n self._positionDropdown();\n self._resizeDropdown();\n });\n };\n\n AttachBody.prototype._detachPositioningHandler =\n function (decorated, container) {\n var scrollEvent = 'scroll.select2.' + container.id;\n var resizeEvent = 'resize.select2.' + container.id;\n var orientationEvent = 'orientationchange.select2.' + container.id;\n\n var $watchers = this.$container.parents().filter(Utils.hasScroll);\n $watchers.off(scrollEvent);\n\n $(window).off(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent);\n };\n\n AttachBody.prototype._positionDropdown = function () {\n var $window = $(window);\n\n var isCurrentlyAbove = this.$dropdown.hasClass('select2-dropdown--above');\n var isCurrentlyBelow = this.$dropdown.hasClass('select2-dropdown--below');\n\n var newDirection = null;\n\n var position = this.$container.position();\n var offset = this.$container.offset();\n\n offset.bottom = offset.top + this.$container.outerHeight(false);\n\n var container = {\n height: this.$container.outerHeight(false)\n };\n\n container.top = offset.top;\n container.bottom = offset.top + container.height;\n\n var dropdown = {\n height: this.$dropdown.outerHeight(false)\n };\n\n var viewport = {\n top: $window.scrollTop(),\n bottom: $window.scrollTop() + $window.height()\n };\n\n var enoughRoomAbove = viewport.top < (offset.top - dropdown.height);\n var enoughRoomBelow = viewport.bottom > (offset.bottom + dropdown.height);\n\n var css = {\n left: offset.left,\n top: container.bottom\n };\n\n // Fix positioning with static parents\n if (this.$dropdownParent[0].style.position !== 'static') {\n var parentOffset = this.$dropdownParent.offset();\n\n css.top -= parentOffset.top;\n css.left -= parentOffset.left;\n }\n\n if (!isCurrentlyAbove && !isCurrentlyBelow) {\n newDirection = 'below';\n }\n\n if (!enoughRoomBelow && enoughRoomAbove && !isCurrentlyAbove) {\n newDirection = 'above';\n } else if (!enoughRoomAbove && enoughRoomBelow && isCurrentlyAbove) {\n newDirection = 'below';\n }\n\n if (newDirection == 'above' ||\n (isCurrentlyAbove && newDirection !== 'below')) {\n css.top = container.top - dropdown.height;\n }\n\n if (newDirection != null) {\n this.$dropdown\n .removeClass('select2-dropdown--below select2-dropdown--above')\n .addClass('select2-dropdown--' + newDirection);\n this.$container\n .removeClass('select2-container--below select2-container--above')\n .addClass('select2-container--' + newDirection);\n }\n\n this.$dropdownContainer.css(css);\n };\n\n AttachBody.prototype._resizeDropdown = function () {\n var css = {\n width: this.$container.outerWidth(false) + 'px'\n };\n\n if (this.options.get('dropdownAutoWidth')) {\n css.minWidth = css.width;\n css.width = 'auto';\n }\n\n this.$dropdown.css(css);\n };\n\n AttachBody.prototype._showDropdown = function (decorated) {\n this.$dropdownContainer.appendTo(this.$dropdownParent);\n\n this._positionDropdown();\n this._resizeDropdown();\n };\n\n return AttachBody;\n});\n\nS2.define('select2/dropdown/minimumResultsForSearch',[\n\n], function () {\n function countResults (data) {\n var count = 0;\n\n for (var d = 0; d < data.length; d++) {\n var item = data[d];\n\n if (item.children) {\n count += countResults(item.children);\n } else {\n count++;\n }\n }\n\n return count;\n }\n\n function MinimumResultsForSearch (decorated, $element, options, dataAdapter) {\n this.minimumResultsForSearch = options.get('minimumResultsForSearch');\n\n if (this.minimumResultsForSearch < 0) {\n this.minimumResultsForSearch = Infinity;\n }\n\n decorated.call(this, $element, options, dataAdapter);\n }\n\n MinimumResultsForSearch.prototype.showSearch = function (decorated, params) {\n if (countResults(params.data.results) < this.minimumResultsForSearch) {\n return false;\n }\n\n return decorated.call(this, params);\n };\n\n return MinimumResultsForSearch;\n});\n\nS2.define('select2/dropdown/selectOnClose',[\n\n], function () {\n function SelectOnClose () { }\n\n SelectOnClose.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n container.on('close', function () {\n self._handleSelectOnClose();\n });\n };\n\n SelectOnClose.prototype._handleSelectOnClose = function () {\n var $highlightedResults = this.getHighlightedResults();\n\n // Only select highlighted results\n if ($highlightedResults.length < 1) {\n return;\n }\n\n var data = $highlightedResults.data('data');\n\n // Don't re-select already selected resulte\n if (\n (data.element != null && data.element.selected) ||\n (data.element == null && data.selected)\n ) {\n return;\n }\n\n this.trigger('select', {\n data: data\n });\n };\n\n return SelectOnClose;\n});\n\nS2.define('select2/dropdown/closeOnSelect',[\n\n], function () {\n function CloseOnSelect () { }\n\n CloseOnSelect.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n container.on('select', function (evt) {\n self._selectTriggered(evt);\n });\n\n container.on('unselect', function (evt) {\n self._selectTriggered(evt);\n });\n };\n\n CloseOnSelect.prototype._selectTriggered = function (_, evt) {\n var originalEvent = evt.originalEvent;\n\n // Don't close if the control key is being held\n if (originalEvent && originalEvent.ctrlKey) {\n return;\n }\n\n this.trigger('close', {});\n };\n\n return CloseOnSelect;\n});\n\nS2.define('select2/i18n/en',[],function () {\n // English\n return {\n errorLoading: function () {\n return 'The results could not be loaded.';\n },\n inputTooLong: function (args) {\n var overChars = args.input.length - args.maximum;\n\n var message = 'Please delete ' + overChars + ' character';\n\n if (overChars != 1) {\n message += 's';\n }\n\n return message;\n },\n inputTooShort: function (args) {\n var remainingChars = args.minimum - args.input.length;\n\n var message = 'Please enter ' + remainingChars + ' or more characters';\n\n return message;\n },\n loadingMore: function () {\n return 'Loading more results…';\n },\n maximumSelected: function (args) {\n var message = 'You can only select ' + args.maximum + ' item';\n\n if (args.maximum != 1) {\n message += 's';\n }\n\n return message;\n },\n noResults: function () {\n return 'No results found';\n },\n searching: function () {\n return 'Searching…';\n }\n };\n});\n\nS2.define('select2/defaults',[\n 'jquery',\n 'require',\n\n './results',\n\n './selection/single',\n './selection/multiple',\n './selection/placeholder',\n './selection/allowClear',\n './selection/search',\n './selection/eventRelay',\n\n './utils',\n './translation',\n './diacritics',\n\n './data/select',\n './data/array',\n './data/ajax',\n './data/tags',\n './data/tokenizer',\n './data/minimumInputLength',\n './data/maximumInputLength',\n './data/maximumSelectionLength',\n\n './dropdown',\n './dropdown/search',\n './dropdown/hidePlaceholder',\n './dropdown/infiniteScroll',\n './dropdown/attachBody',\n './dropdown/minimumResultsForSearch',\n './dropdown/selectOnClose',\n './dropdown/closeOnSelect',\n\n './i18n/en'\n], function ($, require,\n\n ResultsList,\n\n SingleSelection, MultipleSelection, Placeholder, AllowClear,\n SelectionSearch, EventRelay,\n\n Utils, Translation, DIACRITICS,\n\n SelectData, ArrayData, AjaxData, Tags, Tokenizer,\n MinimumInputLength, MaximumInputLength, MaximumSelectionLength,\n\n Dropdown, DropdownSearch, HidePlaceholder, InfiniteScroll,\n AttachBody, MinimumResultsForSearch, SelectOnClose, CloseOnSelect,\n\n EnglishTranslation) {\n function Defaults () {\n this.reset();\n }\n\n Defaults.prototype.apply = function (options) {\n options = $.extend({}, this.defaults, options);\n\n if (options.dataAdapter == null) {\n if (options.ajax != null) {\n options.dataAdapter = AjaxData;\n } else if (options.data != null) {\n options.dataAdapter = ArrayData;\n } else {\n options.dataAdapter = SelectData;\n }\n\n if (options.minimumInputLength > 0) {\n options.dataAdapter = Utils.Decorate(\n options.dataAdapter,\n MinimumInputLength\n );\n }\n\n if (options.maximumInputLength > 0) {\n options.dataAdapter = Utils.Decorate(\n options.dataAdapter,\n MaximumInputLength\n );\n }\n\n if (options.maximumSelectionLength > 0) {\n options.dataAdapter = Utils.Decorate(\n options.dataAdapter,\n MaximumSelectionLength\n );\n }\n\n if (options.tags) {\n options.dataAdapter = Utils.Decorate(options.dataAdapter, Tags);\n }\n\n if (options.tokenSeparators != null || options.tokenizer != null) {\n options.dataAdapter = Utils.Decorate(\n options.dataAdapter,\n Tokenizer\n );\n }\n\n if (options.query != null) {\n var Query = require(options.amdBase + 'compat/query');\n\n options.dataAdapter = Utils.Decorate(\n options.dataAdapter,\n Query\n );\n }\n\n if (options.initSelection != null) {\n var InitSelection = require(options.amdBase + 'compat/initSelection');\n\n options.dataAdapter = Utils.Decorate(\n options.dataAdapter,\n InitSelection\n );\n }\n }\n\n if (options.resultsAdapter == null) {\n options.resultsAdapter = ResultsList;\n\n if (options.ajax != null) {\n options.resultsAdapter = Utils.Decorate(\n options.resultsAdapter,\n InfiniteScroll\n );\n }\n\n if (options.placeholder != null) {\n options.resultsAdapter = Utils.Decorate(\n options.resultsAdapter,\n HidePlaceholder\n );\n }\n\n if (options.selectOnClose) {\n options.resultsAdapter = Utils.Decorate(\n options.resultsAdapter,\n SelectOnClose\n );\n }\n }\n\n if (options.dropdownAdapter == null) {\n if (options.multiple) {\n options.dropdownAdapter = Dropdown;\n } else {\n var SearchableDropdown = Utils.Decorate(Dropdown, DropdownSearch);\n\n options.dropdownAdapter = SearchableDropdown;\n }\n\n if (options.minimumResultsForSearch !== 0) {\n options.dropdownAdapter = Utils.Decorate(\n options.dropdownAdapter,\n MinimumResultsForSearch\n );\n }\n\n if (options.closeOnSelect) {\n options.dropdownAdapter = Utils.Decorate(\n options.dropdownAdapter,\n CloseOnSelect\n );\n }\n\n if (\n options.dropdownCssClass != null ||\n options.dropdownCss != null ||\n options.adaptDropdownCssClass != null\n ) {\n var DropdownCSS = require(options.amdBase + 'compat/dropdownCss');\n\n options.dropdownAdapter = Utils.Decorate(\n options.dropdownAdapter,\n DropdownCSS\n );\n }\n\n options.dropdownAdapter = Utils.Decorate(\n options.dropdownAdapter,\n AttachBody\n );\n }\n\n if (options.selectionAdapter == null) {\n if (options.multiple) {\n options.selectionAdapter = MultipleSelection;\n } else {\n options.selectionAdapter = SingleSelection;\n }\n\n // Add the placeholder mixin if a placeholder was specified\n if (options.placeholder != null) {\n options.selectionAdapter = Utils.Decorate(\n options.selectionAdapter,\n Placeholder\n );\n }\n\n if (options.allowClear) {\n options.selectionAdapter = Utils.Decorate(\n options.selectionAdapter,\n AllowClear\n );\n }\n\n if (options.multiple) {\n options.selectionAdapter = Utils.Decorate(\n options.selectionAdapter,\n SelectionSearch\n );\n }\n\n if (\n options.containerCssClass != null ||\n options.containerCss != null ||\n options.adaptContainerCssClass != null\n ) {\n var ContainerCSS = require(options.amdBase + 'compat/containerCss');\n\n options.selectionAdapter = Utils.Decorate(\n options.selectionAdapter,\n ContainerCSS\n );\n }\n\n options.selectionAdapter = Utils.Decorate(\n options.selectionAdapter,\n EventRelay\n );\n }\n\n if (typeof options.language === 'string') {\n // Check if the language is specified with a region\n if (options.language.indexOf('-') > 0) {\n // Extract the region information if it is included\n var languageParts = options.language.split('-');\n var baseLanguage = languageParts[0];\n\n options.language = [options.language, baseLanguage];\n } else {\n options.language = [options.language];\n }\n }\n\n if ($.isArray(options.language)) {\n var languages = new Translation();\n options.language.push('en');\n\n var languageNames = options.language;\n\n for (var l = 0; l < languageNames.length; l++) {\n var name = languageNames[l];\n var language = {};\n\n try {\n // Try to load it with the original name\n language = Translation.loadPath(name);\n } catch (e) {\n try {\n // If we couldn't load it, check if it wasn't the full path\n name = this.defaults.amdLanguageBase + name;\n language = Translation.loadPath(name);\n } catch (ex) {\n // The translation could not be loaded at all. Sometimes this is\n // because of a configuration problem, other times this can be\n // because of how Select2 helps load all possible translation files.\n if (options.debug && window.console && console.warn) {\n console.warn(\n 'Select2: The language file for \"' + name + '\" could not be ' +\n 'automatically loaded. A fallback will be used instead.'\n );\n }\n\n continue;\n }\n }\n\n languages.extend(language);\n }\n\n options.translations = languages;\n } else {\n var baseTranslation = Translation.loadPath(\n this.defaults.amdLanguageBase + 'en'\n );\n var customTranslation = new Translation(options.language);\n\n customTranslation.extend(baseTranslation);\n\n options.translations = customTranslation;\n }\n\n return options;\n };\n\n Defaults.prototype.reset = function () {\n function stripDiacritics (text) {\n // Used 'uni range + named function' from http://jsperf.com/diacritics/18\n function match(a) {\n return DIACRITICS[a] || a;\n }\n\n return text.replace(/[^\\u0000-\\u007E]/g, match);\n }\n\n function matcher (params, data) {\n // Always return the object if there is nothing to compare\n if ($.trim(params.term) === '') {\n return data;\n }\n\n // Do a recursive check for options with children\n if (data.children && data.children.length > 0) {\n // Clone the data object if there are children\n // This is required as we modify the object to remove any non-matches\n var match = $.extend(true, {}, data);\n\n // Check each child of the option\n for (var c = data.children.length - 1; c >= 0; c--) {\n var child = data.children[c];\n\n var matches = matcher(params, child);\n\n // If there wasn't a match, remove the object in the array\n if (matches == null) {\n match.children.splice(c, 1);\n }\n }\n\n // If any children matched, return the new object\n if (match.children.length > 0) {\n return match;\n }\n\n // If there were no matching children, check just the plain object\n return matcher(params, match);\n }\n\n var original = stripDiacritics(data.text).toUpperCase();\n var term = stripDiacritics(params.term).toUpperCase();\n\n // Check if the text contains the term\n if (original.indexOf(term) > -1) {\n return data;\n }\n\n // If it doesn't contain the term, don't return anything\n return null;\n }\n\n this.defaults = {\n amdBase: './',\n amdLanguageBase: './i18n/',\n closeOnSelect: true,\n debug: false,\n dropdownAutoWidth: false,\n escapeMarkup: Utils.escapeMarkup,\n language: EnglishTranslation,\n matcher: matcher,\n minimumInputLength: 0,\n maximumInputLength: 0,\n maximumSelectionLength: 0,\n minimumResultsForSearch: 0,\n selectOnClose: false,\n sorter: function (data) {\n return data;\n },\n templateResult: function (result) {\n return result.text;\n },\n templateSelection: function (selection) {\n return selection.text;\n },\n theme: 'default',\n width: 'resolve'\n };\n };\n\n Defaults.prototype.set = function (key, value) {\n var camelKey = $.camelCase(key);\n\n var data = {};\n data[camelKey] = value;\n\n var convertedData = Utils._convertData(data);\n\n $.extend(this.defaults, convertedData);\n };\n\n var defaults = new Defaults();\n\n return defaults;\n});\n\nS2.define('select2/options',[\n 'require',\n 'jquery',\n './defaults',\n './utils'\n], function (require, $, Defaults, Utils) {\n function Options (options, $element) {\n this.options = options;\n\n if ($element != null) {\n this.fromElement($element);\n }\n\n this.options = Defaults.apply(this.options);\n\n if ($element && $element.is('input')) {\n var InputCompat = require(this.get('amdBase') + 'compat/inputData');\n\n this.options.dataAdapter = Utils.Decorate(\n this.options.dataAdapter,\n InputCompat\n );\n }\n }\n\n Options.prototype.fromElement = function ($e) {\n var excludedData = ['select2'];\n\n if (this.options.multiple == null) {\n this.options.multiple = $e.prop('multiple');\n }\n\n if (this.options.disabled == null) {\n this.options.disabled = $e.prop('disabled');\n }\n\n if (this.options.language == null) {\n if ($e.prop('lang')) {\n this.options.language = $e.prop('lang').toLowerCase();\n } else if ($e.closest('[lang]').prop('lang')) {\n this.options.language = $e.closest('[lang]').prop('lang');\n }\n }\n\n if (this.options.dir == null) {\n if ($e.prop('dir')) {\n this.options.dir = $e.prop('dir');\n } else if ($e.closest('[dir]').prop('dir')) {\n this.options.dir = $e.closest('[dir]').prop('dir');\n } else {\n this.options.dir = 'ltr';\n }\n }\n\n $e.prop('disabled', this.options.disabled);\n $e.prop('multiple', this.options.multiple);\n\n if ($e.data('select2Tags')) {\n if (this.options.debug && window.console && console.warn) {\n console.warn(\n 'Select2: The `data-select2-tags` attribute has been changed to ' +\n 'use the `data-data` and `data-tags=\"true\"` attributes and will be ' +\n 'removed in future versions of Select2.'\n );\n }\n\n $e.data('data', $e.data('select2Tags'));\n $e.data('tags', true);\n }\n\n if ($e.data('ajaxUrl')) {\n if (this.options.debug && window.console && console.warn) {\n console.warn(\n 'Select2: The `data-ajax-url` attribute has been changed to ' +\n '`data-ajax--url` and support for the old attribute will be removed' +\n ' in future versions of Select2.'\n );\n }\n\n $e.attr('ajax--url', $e.data('ajaxUrl'));\n $e.data('ajax--url', $e.data('ajaxUrl'));\n }\n\n var dataset = {};\n\n // Prefer the element's `dataset` attribute if it exists\n // jQuery 1.x does not correctly handle data attributes with multiple dashes\n if ($.fn.jquery && $.fn.jquery.substr(0, 2) == '1.' && $e[0].dataset) {\n dataset = $.extend(true, {}, $e[0].dataset, $e.data());\n } else {\n dataset = $e.data();\n }\n\n var data = $.extend(true, {}, dataset);\n\n data = Utils._convertData(data);\n\n for (var key in data) {\n if ($.inArray(key, excludedData) > -1) {\n continue;\n }\n\n if ($.isPlainObject(this.options[key])) {\n $.extend(this.options[key], data[key]);\n } else {\n this.options[key] = data[key];\n }\n }\n\n return this;\n };\n\n Options.prototype.get = function (key) {\n return this.options[key];\n };\n\n Options.prototype.set = function (key, val) {\n this.options[key] = val;\n };\n\n return Options;\n});\n\nS2.define('select2/core',[\n 'jquery',\n './options',\n './utils',\n './keys'\n], function ($, Options, Utils, KEYS) {\n var Select2 = function ($element, options) {\n if ($element.data('select2') != null) {\n $element.data('select2').destroy();\n }\n\n this.$element = $element;\n\n this.id = this._generateId($element);\n\n options = options || {};\n\n this.options = new Options(options, $element);\n\n Select2.__super__.constructor.call(this);\n\n // Set up the tabindex\n\n var tabindex = $element.attr('tabindex') || 0;\n $element.data('old-tabindex', tabindex);\n $element.attr('tabindex', '-1');\n\n // Set up containers and adapters\n\n var DataAdapter = this.options.get('dataAdapter');\n this.dataAdapter = new DataAdapter($element, this.options);\n\n var $container = this.render();\n\n this._placeContainer($container);\n\n var SelectionAdapter = this.options.get('selectionAdapter');\n this.selection = new SelectionAdapter($element, this.options);\n this.$selection = this.selection.render();\n\n this.selection.position(this.$selection, $container);\n\n var DropdownAdapter = this.options.get('dropdownAdapter');\n this.dropdown = new DropdownAdapter($element, this.options);\n this.$dropdown = this.dropdown.render();\n\n this.dropdown.position(this.$dropdown, $container);\n\n var ResultsAdapter = this.options.get('resultsAdapter');\n this.results = new ResultsAdapter($element, this.options, this.dataAdapter);\n this.$results = this.results.render();\n\n this.results.position(this.$results, this.$dropdown);\n\n // Bind events\n\n var self = this;\n\n // Bind the container to all of the adapters\n this._bindAdapters();\n\n // Register any DOM event handlers\n this._registerDomEvents();\n\n // Register any internal event handlers\n this._registerDataEvents();\n this._registerSelectionEvents();\n this._registerDropdownEvents();\n this._registerResultsEvents();\n this._registerEvents();\n\n // Set the initial state\n this.dataAdapter.current(function (initialData) {\n self.trigger('selection:update', {\n data: initialData\n });\n });\n\n // Hide the original select\n $element.addClass('select2-hidden-accessible');\n $element.attr('aria-hidden', 'true');\n\n // Synchronize any monitored attributes\n this._syncAttributes();\n\n $element.data('select2', this);\n };\n\n Utils.Extend(Select2, Utils.Observable);\n\n Select2.prototype._generateId = function ($element) {\n var id = '';\n\n if ($element.attr('id') != null) {\n id = $element.attr('id');\n } else if ($element.attr('name') != null) {\n id = $element.attr('name') + '-' + Utils.generateChars(2);\n } else {\n id = Utils.generateChars(4);\n }\n\n id = 'select2-' + id;\n\n return id;\n };\n\n Select2.prototype._placeContainer = function ($container) {\n $container.insertAfter(this.$element);\n\n var width = this._resolveWidth(this.$element, this.options.get('width'));\n\n if (width != null) {\n $container.css('width', width);\n }\n };\n\n Select2.prototype._resolveWidth = function ($element, method) {\n var WIDTH = /^width:(([-+]?([0-9]*\\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;\n\n if (method == 'resolve') {\n var styleWidth = this._resolveWidth($element, 'style');\n\n if (styleWidth != null) {\n return styleWidth;\n }\n\n return this._resolveWidth($element, 'element');\n }\n\n if (method == 'element') {\n var elementWidth = $element.outerWidth(false);\n\n if (elementWidth <= 0) {\n return 'auto';\n }\n\n return elementWidth + 'px';\n }\n\n if (method == 'style') {\n var style = $element.attr('style');\n\n if (typeof(style) !== 'string') {\n return null;\n }\n\n var attrs = style.split(';');\n\n for (var i = 0, l = attrs.length; i < l; i = i + 1) {\n var attr = attrs[i].replace(/\\s/g, '');\n var matches = attr.match(WIDTH);\n\n if (matches !== null && matches.length >= 1) {\n return matches[1];\n }\n }\n\n return null;\n }\n\n return method;\n };\n\n Select2.prototype._bindAdapters = function () {\n this.dataAdapter.bind(this, this.$container);\n this.selection.bind(this, this.$container);\n\n this.dropdown.bind(this, this.$container);\n this.results.bind(this, this.$container);\n };\n\n Select2.prototype._registerDomEvents = function () {\n var self = this;\n\n this.$element.on('change.select2', function () {\n self.dataAdapter.current(function (data) {\n self.trigger('selection:update', {\n data: data\n });\n });\n });\n\n this._sync = Utils.bind(this._syncAttributes, this);\n\n if (this.$element[0].attachEvent) {\n this.$element[0].attachEvent('onpropertychange', this._sync);\n }\n\n var observer = window.MutationObserver ||\n window.WebKitMutationObserver ||\n window.MozMutationObserver\n ;\n\n if (observer != null) {\n this._observer = new observer(function (mutations) {\n $.each(mutations, self._sync);\n });\n this._observer.observe(this.$element[0], {\n attributes: true,\n subtree: false\n });\n } else if (this.$element[0].addEventListener) {\n this.$element[0].addEventListener('DOMAttrModified', self._sync, false);\n }\n };\n\n Select2.prototype._registerDataEvents = function () {\n var self = this;\n\n this.dataAdapter.on('*', function (name, params) {\n self.trigger(name, params);\n });\n };\n\n Select2.prototype._registerSelectionEvents = function () {\n var self = this;\n var nonRelayEvents = ['toggle', 'focus'];\n\n this.selection.on('toggle', function () {\n self.toggleDropdown();\n });\n\n this.selection.on('focus', function (params) {\n self.focus(params);\n });\n\n this.selection.on('*', function (name, params) {\n if ($.inArray(name, nonRelayEvents) !== -1) {\n return;\n }\n\n self.trigger(name, params);\n });\n };\n\n Select2.prototype._registerDropdownEvents = function () {\n var self = this;\n\n this.dropdown.on('*', function (name, params) {\n self.trigger(name, params);\n });\n };\n\n Select2.prototype._registerResultsEvents = function () {\n var self = this;\n\n this.results.on('*', function (name, params) {\n self.trigger(name, params);\n });\n };\n\n Select2.prototype._registerEvents = function () {\n var self = this;\n\n this.on('open', function () {\n self.$container.addClass('select2-container--open');\n });\n\n this.on('close', function () {\n self.$container.removeClass('select2-container--open');\n });\n\n this.on('enable', function () {\n self.$container.removeClass('select2-container--disabled');\n });\n\n this.on('disable', function () {\n self.$container.addClass('select2-container--disabled');\n });\n\n this.on('blur', function () {\n self.$container.removeClass('select2-container--focus');\n });\n\n this.on('query', function (params) {\n if (!self.isOpen()) {\n self.trigger('open', {});\n }\n\n this.dataAdapter.query(params, function (data) {\n self.trigger('results:all', {\n data: data,\n query: params\n });\n });\n });\n\n this.on('query:append', function (params) {\n this.dataAdapter.query(params, function (data) {\n self.trigger('results:append', {\n data: data,\n query: params\n });\n });\n });\n\n this.on('keypress', function (evt) {\n var key = evt.which;\n\n if (self.isOpen()) {\n if (key === KEYS.ESC || key === KEYS.TAB ||\n (key === KEYS.UP && evt.altKey)) {\n self.close();\n\n evt.preventDefault();\n } else if (key === KEYS.ENTER) {\n self.trigger('results:select', {});\n\n evt.preventDefault();\n } else if ((key === KEYS.SPACE && evt.ctrlKey)) {\n self.trigger('results:toggle', {});\n\n evt.preventDefault();\n } else if (key === KEYS.UP) {\n self.trigger('results:previous', {});\n\n evt.preventDefault();\n } else if (key === KEYS.DOWN) {\n self.trigger('results:next', {});\n\n evt.preventDefault();\n }\n } else {\n if (key === KEYS.ENTER || key === KEYS.SPACE ||\n (key === KEYS.DOWN && evt.altKey)) {\n self.open();\n\n evt.preventDefault();\n }\n }\n });\n };\n\n Select2.prototype._syncAttributes = function () {\n this.options.set('disabled', this.$element.prop('disabled'));\n\n if (this.options.get('disabled')) {\n if (this.isOpen()) {\n this.close();\n }\n\n this.trigger('disable', {});\n } else {\n this.trigger('enable', {});\n }\n };\n\n /**\n * Override the trigger method to automatically trigger pre-events when\n * there are events that can be prevented.\n */\n Select2.prototype.trigger = function (name, args) {\n var actualTrigger = Select2.__super__.trigger;\n var preTriggerMap = {\n 'open': 'opening',\n 'close': 'closing',\n 'select': 'selecting',\n 'unselect': 'unselecting'\n };\n\n if (args === undefined) {\n args = {};\n }\n\n if (name in preTriggerMap) {\n var preTriggerName = preTriggerMap[name];\n var preTriggerArgs = {\n prevented: false,\n name: name,\n args: args\n };\n\n actualTrigger.call(this, preTriggerName, preTriggerArgs);\n\n if (preTriggerArgs.prevented) {\n args.prevented = true;\n\n return;\n }\n }\n\n actualTrigger.call(this, name, args);\n };\n\n Select2.prototype.toggleDropdown = function () {\n if (this.options.get('disabled')) {\n return;\n }\n\n if (this.isOpen()) {\n this.close();\n } else {\n this.open();\n }\n };\n\n Select2.prototype.open = function () {\n if (this.isOpen()) {\n return;\n }\n\n this.trigger('query', {});\n };\n\n Select2.prototype.close = function () {\n if (!this.isOpen()) {\n return;\n }\n\n this.trigger('close', {});\n };\n\n Select2.prototype.isOpen = function () {\n return this.$container.hasClass('select2-container--open');\n };\n\n Select2.prototype.hasFocus = function () {\n return this.$container.hasClass('select2-container--focus');\n };\n\n Select2.prototype.focus = function (data) {\n // No need to re-trigger focus events if we are already focused\n if (this.hasFocus()) {\n return;\n }\n\n this.$container.addClass('select2-container--focus');\n this.trigger('focus', {});\n };\n\n Select2.prototype.enable = function (args) {\n if (this.options.get('debug') && window.console && console.warn) {\n console.warn(\n 'Select2: The `select2(\"enable\")` method has been deprecated and will' +\n ' be removed in later Select2 versions. Use $element.prop(\"disabled\")' +\n ' instead.'\n );\n }\n\n if (args == null || args.length === 0) {\n args = [true];\n }\n\n var disabled = !args[0];\n\n this.$element.prop('disabled', disabled);\n };\n\n Select2.prototype.data = function () {\n if (this.options.get('debug') &&\n arguments.length > 0 && window.console && console.warn) {\n console.warn(\n 'Select2: Data can no longer be set using `select2(\"data\")`. You ' +\n 'should consider setting the value instead using `$element.val()`.'\n );\n }\n\n var data = [];\n\n this.dataAdapter.current(function (currentData) {\n data = currentData;\n });\n\n return data;\n };\n\n Select2.prototype.val = function (args) {\n if (this.options.get('debug') && window.console && console.warn) {\n console.warn(\n 'Select2: The `select2(\"val\")` method has been deprecated and will be' +\n ' removed in later Select2 versions. Use $element.val() instead.'\n );\n }\n\n if (args == null || args.length === 0) {\n return this.$element.val();\n }\n\n var newVal = args[0];\n\n if ($.isArray(newVal)) {\n newVal = $.map(newVal, function (obj) {\n return obj.toString();\n });\n }\n\n this.$element.val(newVal).trigger('change');\n };\n\n Select2.prototype.destroy = function () {\n this.$container.remove();\n\n if (this.$element[0].detachEvent) {\n this.$element[0].detachEvent('onpropertychange', this._sync);\n }\n\n if (this._observer != null) {\n this._observer.disconnect();\n this._observer = null;\n } else if (this.$element[0].removeEventListener) {\n this.$element[0]\n .removeEventListener('DOMAttrModified', this._sync, false);\n }\n\n this._sync = null;\n\n this.$element.off('.select2');\n this.$element.attr('tabindex', this.$element.data('old-tabindex'));\n\n this.$element.removeClass('select2-hidden-accessible');\n this.$element.attr('aria-hidden', 'false');\n this.$element.removeData('select2');\n\n this.dataAdapter.destroy();\n this.selection.destroy();\n this.dropdown.destroy();\n this.results.destroy();\n\n this.dataAdapter = null;\n this.selection = null;\n this.dropdown = null;\n this.results = null;\n };\n\n Select2.prototype.render = function () {\n var $container = $(\n '' +\n '' +\n '' +\n ''\n );\n\n $container.attr('dir', this.options.get('dir'));\n\n this.$container = $container;\n\n this.$container.addClass('select2-container--' + this.options.get('theme'));\n\n $container.data('element', this.$element);\n\n return $container;\n };\n\n return Select2;\n});\n\nS2.define('jquery-mousewheel',[\n 'jquery'\n], function ($) {\n // Used to shim jQuery.mousewheel for non-full builds.\n return $;\n});\n\nS2.define('jquery.select2',[\n 'jquery',\n 'jquery-mousewheel',\n\n './select2/core',\n './select2/defaults'\n], function ($, _, Select2, Defaults) {\n if ($.fn.select2 == null) {\n // All methods that should return the element\n var thisMethods = ['open', 'close', 'destroy'];\n\n $.fn.select2 = function (options) {\n options = options || {};\n\n if (typeof options === 'object') {\n this.each(function () {\n var instanceOptions = $.extend(true, {}, options);\n\n var instance = new Select2($(this), instanceOptions);\n });\n\n return this;\n } else if (typeof options === 'string') {\n var ret;\n\n this.each(function () {\n var instance = $(this).data('select2');\n\n if (instance == null && window.console && console.error) {\n console.error(\n 'The select2(\\'' + options + '\\') method was called on an ' +\n 'element that is not using Select2.'\n );\n }\n\n var args = Array.prototype.slice.call(arguments, 1);\n\n ret = instance[options].apply(instance, args);\n });\n\n // Check if we should be returning `this`\n if ($.inArray(options, thisMethods) > -1) {\n return this;\n }\n\n return ret;\n } else {\n throw new Error('Invalid arguments for Select2: ' + options);\n }\n };\n }\n\n if ($.fn.select2.defaults == null) {\n $.fn.select2.defaults = Defaults;\n }\n\n return Select2;\n});\n\n // Return the AMD loader configuration so it can be used outside of this file\n return {\n define: S2.define,\n require: S2.require\n };\n}());\n\n // Autoload the jQuery bindings\n // We know that all of the modules exist above this, so we're safe\n var select2 = S2.require('jquery.select2');\n\n // Hold the AMD module references on the jQuery function that was just loaded\n // This allows Select2 to use the internal loader outside of this file, such\n // as in the language files.\n jQuery.fn.select2.amd = S2;\n\n // Return the Select2 instance for anyone who is importing it.\n return select2;\n}));\n","(function ($) {\n \t$.fn.capitechAbsenceForm = function(options) {\n\t\tvar ctAbsenceFormModel;\n\t\tvar $ctAbsenceFormElm = $(this);\n\t\t\n\t\t// functions\n\t\t/*////////////////////////////////////////////////////////////*/\n\t\tfunction init() {\n\t\t\t// Set up view model\n\t\t\tctAbsenceFormModel = new absenceFormModel();\n\t\t\tko.applyBindings(ctAbsenceFormModel, $ctAbsenceFormElm[0]);\n\t\t\t\n\t\t\t// Attach time mask to input\n\t\t\tresetAbsenceForm();\n\t\t\t\n\t\t\tgetAbsenceCodes();\n\t\t}\n\t\t\n\t\tfunction getAbsenceCodes() {\n\t\t\tvar success = function success(data, textStatus, jqXHR) {\n\t\t\t\tloaderIndicator(false);\n\t\t\t\t\n\t\t\t\tif (data.success == true) {\n\t\t\t\t\tctAbsenceFormModel.addAbsenceCodes(data.content);\n\t\t\t\t} else {\n\t\t\t\t\tsweetAlert(getResource('message.sentFailedTitle', 'Error'), handleServerErrorMessage(data.displayErrorMessage), \"error\");\n\t\t\t\t}\n\t\t\t};\n\t\t\tvar error = function error(jqXHR, textStatus, errorThrown) {\n\t\t\t\tloaderIndicator(false);\n\t\t\t\tsweetAlert(\"Error\", errorThrown, \"error\");\n\t\t\t};\n\t\t\tloaderIndicator(true);\n\t\t\t_api.getAbsenceCodes_POST(success, error, getCookie(ACCESSTOKEN_COOKIE_NAME));\n\t\t}\n\t\t\n\t\tfunction createAbsenceRequest() {\n\t\t\tvar data = ko.toJS(ctAbsenceFormModel);\n\t\t\t\n\t\t\tvar success = function success(data, textStatus, jqXHR) {\n\t\t\t\tloaderIndicator(false);\n\t\t\t\t\n\t\t\t\tif (data.success == true) {\n\t\t\t\t\tsweetAlert(getResource('absenceForm.sentTitle'), getResource('absenceForm.sentText'), \"success\");\n\t\t\t\t\ttry {\n\t\t\t\t\t\t\n\t\t\t\t\t\tif (typeof ctAbsenceRequestsModel === 'object') {\n\t\t\t\t\t\t\tctAbsenceRequestsModel.absenceRequests.unshiftFromModel({\n\t\t\t\t\t\t\t\t'id': data.content[0],\n\t\t\t\t\t\t\t\t'absenceCode': ctAbsenceFormModel.absenceCode(),\n\t\t\t\t\t\t\t\t'fromDate': ctAbsenceFormModel.fromDate(),\n\t\t\t\t\t\t\t\t'fromTime': ctAbsenceFormModel.fromTime(),\n\t\t\t\t\t\t\t\t'toDate': ctAbsenceFormModel.toDate(),\n\t\t\t\t\t\t\t\t'toTime': ctAbsenceFormModel.toTime(),\n\t\t\t\t\t\t\t\t'text': ctAbsenceFormModel.text(),\n\t\t\t\t\t\t\t\t'absenceRequestStatus': 'Created'\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Reset model\n\t\t\t\t\t\tresetAbsenceForm();\n\t\t\t\t\t} catch (err) {\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t} else {\n\t\t\t\t\tsweetAlert(getResource('message.sentFailedTitle', 'Error'), handleServerErrorMessage(data.displayErrorMessage), \"error\");\n\t\t\t\t}\n\t\t\t};\n\t\t\tvar error = function error(jqXHR, textStatus, errorThrown) {\n\t\t\t\tloaderIndicator(false);\n\t\t\t\tsweetAlert(\"Error\", errorThrown, \"error\");\n\t\t\t};\n\t\t\tloaderIndicator(true);\n\t\t\t\n\t\t\tif (data.isShortTermAbsence) {\n\t\t\t\tdata.toDate = data.fromDate;\n\t\t\t\tctAbsenceFormModel.toDate(ctAbsenceFormModel.fromDate());\n\t\t\t} else {\n\t\t\t\tdata.fromTime = null;\n\t\t\t\tdata.toTime = null;\n\t\t\t}\n\t\t\t\n\t\t\t_api.createAbsenceRequest_POST(\n\t\t\t\tsuccess,\n\t\t\t\terror,\n\t\t\t\tgetCookie(ACCESSTOKEN_COOKIE_NAME),\n\t\t\t\tdata.absenceCode,\n\t\t\t\tdata.isShortTermAbsence,\n\t\t\t\tdata.fromDate,\n\t\t\t\tdata.fromTime,\n\t\t\t\tdata.toDate,\n\t\t\t\tdata.toTime,\n\t\t\t\tdata.text\n\t\t\t);\n\t\t}\n\t\t\n\t\tfunction resetAbsenceForm() {\n\t\t\tvar selectedDate = getURLVariable('selectedDate');\n\t\t\t// Remove mask if input type date not supported\n\t\t\tif (Modernizr.inputtypes.date === false) {\n\t\t\t\t$ctAbsenceFormElm.find('input.ct-date-input').inputmask('remove');\n\t\t\t}\n\t\t\t$ctAbsenceFormElm.find('input.ct-input-time').inputmask('remove');\n\t\t\tctAbsenceFormModel.absenceCode(null);\n\t\t\tctAbsenceFormModel.fromDate(selectedDate);\n\t\t\tctAbsenceFormModel.fromTime(null);\n\t\t\tctAbsenceFormModel.toDate(selectedDate);\n\t\t\tctAbsenceFormModel.toTime(null);\n\t\t\tctAbsenceFormModel.text(null);\n\t\t\t$ctAbsenceFormElm.find('input.ct-input-time').inputmask({'alias': 'capitechHourAndMinutes'});\n\t\t\t// Add mask if input type date not supported\n\t\t\tif (Modernizr.inputtypes.date === false) {\n\t\t\t\t$ctAbsenceFormElm.find('input.ct-date-input').inputmask({'formatAlias':'isoDate'});\n\t\t\t}\n\t\t}\n\t\t\n\t\t// Model\n\t\tvar absenceCode = function(properties) {\n\t\t\tif(typeof(properties)==='undefined')\t\t\t\tproperties\t\t\t\t\t=\t\t{};\n\t\t\tif(typeof(properties.absenceCode)==='undefined')\tproperties.absenceCode\t\t=\t\t'';\n\t\t\tif(typeof(properties.description)==='undefined')\tproperties.description\t\t=\t\t'';\n\t\t\t\n\t\t\tvar self = this;\n\t\t\tself.absenceCode\t= ko.observable(properties.absenceCode);\n\t\t\tself.description\t= ko.observable(properties.description);\n\t\t}\n\t\t\n\t\tvar absenceFormModel = function() {\n\t\t\tvar self = this;\n\t\t\tself.hasAbsenceRegistrationPermissions = ko.observable(getLocalStorage(\"myCapitechPermissionsAndRegistrationSetup\").hasAbsenceRegistration)\n\t\t\tself.absenceCode = ko.observable();\n\t\t\tself.isShortTermAbsence = ko.observable(false);\n\t\t\tself.fromDate = ko.observable();\n\t\t\tself.fromTime = ko.observable();\n\t\t\tself.toDate = ko.observable();\n\t\t\tself.toTime = ko.observable();\n\t\t\tself.text = ko.observable();\n\t\t\tself.aAbsenceCode = ko.observableArray();\n\t\t\tself.addAbsenceCodes = function(data) {\n\t\t\t\t// Always remove all data\n\t\t\t\tself.aAbsenceCode.removeAll();\n\t\t\t\t$.each(data, function(index, obj) {\n\t\t\t\t\tself.aAbsenceCode.push(new absenceCode(obj));\n\t\t\t\t});\n\t\t\t};\n\t\t\tsubmitAbsence = function(formElement) {\n\t\t\t\tcreateAbsenceRequest();\n\t\t\t}\n\t\t};\n\t\t\n\t\tinit();\n\t};\n}(jQuery));","var ctAbsenceRequestsModel;\n\n(function ($) {\n \t$.fn.capitechAbsenceRequests = function() {\n\t\tvar $ctabsenceRequestsElm = $(this);\n\t\tvar options = {}\n\t\t\n\t\t// functions\n\t\t/*////////////////////////////////////////////////////////////*/\n\t\tfunction init() {\n\t\t\toptions = { \n\t\t\t\textend: {\n\t\t\t\t\t\"{root}\": function(absenceRequests) {\n\t\t\t\t\t\tabsenceRequestTemplate = function (absenceRequest) {\n\t\t\t\t\t\t\tif (absenceRequest.absenceRequestStatus() == 'Created') {\n\t\t\t\t\t\t\t\treturn 'createdAbsenceRequestsTemplate';\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\treturn 'defaultAbsenceRequestsTemplate';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t\tdeleteAbsenceRequest = function (absenceRequest) {\n\t\t\t\t\t\t\tapiDeleteAbsenceRequest(absenceRequest);\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\t\t\t\t\"{root}.absenceRequests[i]\": function(absenceRequest){\n\t\t\t\t\t\tabsenceRequest.translatedStatus = ko.computed(function() {\n\t\t\t\t\t\t\tvar currentStatus = absenceRequest.absenceRequestStatus();\n\t\t\t\t\t\t\tif (currentStatus == 'Accepted') {\n\t\t\t\t\t\t\t\treturn getResource('absence.statusAccepted', 'Fravær registrert');\n\t\t\t\t\t\t\t} else if (currentStatus == 'Rejected') {\n\t\t\t\t\t\t\t\treturn getResource('absence.statusRejected', 'Avslag');\n\t\t\t\t\t\t\t} else if (currentStatus == 'Created') {\n\t\t\t\t\t\t\t\treturn getResource('absence.statusCreated', 'Ikke håndtert');\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\treturn getResource('absence.statusUnknown', 'Ukjent status');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, absenceRequest);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tgetAbsenceRequests();\n\t\t}\n\t\t\n\t\tfunction getAbsenceRequests() {\n\t\t\tvar currentDate = new Date();\n\t\t\tvar currentYear = currentDate.getFullYear();\n\t\t\tvar firstDateOfYear = currentYear + '-01-01';\n\t\t\tvar success = function success(data, textStatus, jqXHR) {\n\t\t\t\tvar modelData = {};\n\t\t\t\t\n\t\t\t\t// Hide loader\n\t\t\t\tloaderIndicator(false);\n\t\t\t\t\n\t\t\t\tif (data.success == true) {\n\t\t\t\t\tmodelData.absenceRequests = data.content;\n\t\t\t\t\tctAbsenceRequestsModel = ko.viewmodel.fromModel(modelData, options);\n\t\t\t\t\t$('*[data-ko-bind=\"ctAbsenceRequestsModel\"]').each(function(index, obj) {\n\t\t\t\t\t\tko.applyBindings(ctAbsenceRequestsModel, obj);\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tsweetAlert(getResource('app.informationTitle'), handleServerErrorMessage(data.displayErrorMessage), \"error\");\n\t\t\t\t}\n\t\t\t};\n\t\t\tvar error = function error(jqXHR, textStatus, errorThrown) {\n\t\t\t\t// Hide loader\n\t\t\t\tloaderIndicator(false);\n\t\t\t\tsweetAlert(\"Error\", errorThrown, \"error\");\n\t\t\t};\n\t\t\t// Show loader\n\t\t\tloaderIndicator(true);\n\t\t\t_api.getAbsenceRequests_POST(success, error, getCookie(ACCESSTOKEN_COOKIE_NAME), firstDateOfYear);\n\t\t}\n\t\t\n\t\tfunction apiDeleteAbsenceRequest(absenceRequest) {\n\t\t\tvar success = function success(data, textStatus, jqXHR) {\n\t\t\t\t// Hide loader\n\t\t\t\tloaderIndicator(false);\n\t\t\t\tif (data.success == true) {\n\t\t\t\t\tctAbsenceRequestsModel.absenceRequests.remove(absenceRequest);\n\t\t\t\t} else {\n\t\t\t\t\tsweetAlert(getResource('app.informationTitle'), handleServerErrorMessage(data.displayErrorMessage), \"error\");\n\t\t\t\t}\n\t\t\t};\n\t\t\tvar error = function error(jqXHR, textStatus, errorThrown) {\n\t\t\t\t// Hide loader\n\t\t\t\tloaderIndicator(false);\n\t\t\t\tsweetAlert(\"Error\", errorThrown, \"error\");\n\t\t\t};\n\t\t\t\n\t\t\tsweetAlert({\n\t\t\t\ttitle: getResource('app.confirmDeletionTitle'),\n\t\t\t\ttype: \"warning\",\n\t\t\t\tshowCancelButton: true,\n\t\t\t\tconfirmButtonColor: \"#DD6B55\",\n\t\t\t\tconfirmButtonText: getResource('app.delete'),\n\t\t\t\tcancelButtonText: getResource('app.cancel')\n\t\t\t},function() {\n\t\t\t\t// Show loader\n\t\t\t\tloaderIndicator(true);\n\t\t\t\t// API delete\n\t\t\t\t_api.deleteAbsenceRequest_POST(success, error, getCookie(ACCESSTOKEN_COOKIE_NAME), absenceRequest.id());\n\t\t\t});\n\t\t}\n\t\t\n\t\t// init\n\t\t/*////////////////////////////////////////////////////////////*/\n\t\tinit();\n\t\t\n\t};\n}(jQuery));","var ctCalendarViewModel,\n\t_currentDate = new Date(),\n\t_selectedDate = new Date(),\n\t_sortByTimeInASC = function() {},\n\t_sortByItemSortOrder = function() {},\n\t_sortAccumulatedTime = function() {};\n\n(function($) {\n \t$.fn.capitechCalendar = function(options) {\n\t\tvar $calendarElm = $(this),\n\t\t\t$calendarMonthDetailsElm = $('.ct-calendar-month-details'),\n\t\t\t$calendarDayDetailsElm = $('.ct-calendar-day-details'),\n\t\t\ttmpCalendarItems = [];\n\t\t\n\t\t// functions\n\t\t/*////////////////////////////////////////////////////////////*/\n\t\tfunction init() {\n\t\t\t// Set calendar days\n\t\t\tupdateCalendarDayHeaders();\n\t\t\t// Set up view model\n\t\t\tctCalendarViewModel = new calendarViewModel();\n\t\t\t$('*[data-ko-bind=\"ctCalendarModel\"]').each(function(index, obj) {\n\t\t\t\tko.applyBindings(ctCalendarViewModel, obj);\n\t\t\t});\n\t\t\tupdateCalendarUI(new Date());\n\t\t}\n\t\t\n\t\t// Calendar related functions\n\t\t/*////////////////////////////////////////////////////////////*/\n\t\tfunction updateCalendarDayHeaders() {\n\t\t\tvar firstDayDate = moment(new Date()).startOf('week'),\n\t\t\t\ttmpName = '',\n\t\t\t\ttmpShortName = '',\n\t\t\t\t$objHeaderElm = $('.ct-calendar-headings .ct-calendar-day');\n\t\t\tfor (var i = 0; i < 7; i++) {\n\t\t\t\ttmpName = moment(new Date()).startOf('week').add(i, 'd').format('dddd');\n\t\t\t\ttmpShortName = moment(new Date()).startOf('week').add(i, 'd').format('ddd');\n\t\t\t\t$($objHeaderElm[i]).find('.visible-sm-inline').text(tmpShortName);\n\t\t\t\t$($objHeaderElm[i]).find('.visible-lg-inline').text(tmpName);\n\t\t\t}\n\t\t}\n\t\t\n\t\tfunction updateCalendarUI(selectedDate) {\n\t\t\t// Render new calendar with days\n\t\t\tctCalendarViewModel.removeAllCalendarDays();\n\t\t\tcalendarDaysWithItems = createCalendarData(selectedDate, []);\n\t\t\tctCalendarViewModel.addCalendarDataToView(calendarDaysWithItems);\n\t\t\t\n\t\t\tgetCalendarItems(selectedDate);\n\t\t\tgetAccumulatedTimeByMonth(selectedDate);\n\t\t}\n\t\t\n\t\tfunction createCalendarData(selectedDate, timeStampsData) {\n\t\t\tvar firstDateInCalendarView = moment(selectedDate).startOf('month').startOf('week');\n\t\t\tvar lastDateInCalendarView = moment(selectedDate).endOf('month').endOf('week');\n\t\t\tvar diffDays = moment(lastDateInCalendarView).diff(firstDateInCalendarView, 'days') + 1;\n\t\t\tvar aDays = [];\n\t\t\tvar tmpDate = '';\n\t\t\tvar tmpDateSearchString = '';\n\t\t\tvar aTmpTimeStamps = {};\n\t\t\tvar monthNumber = 0;\n\t\t\tvar shortMonthMarkup = '';\n\t\t\tvar selectedMonthNumber = moment(selectedDate).format('M');\n\t\t\tvar bCurrentMonth = false;\n\n\t\t\tfor(i=0; i < diffDays; i++) {\n\t\t\t\t// Create date\n\t\t\t\ttmpDate = moment(firstDateInCalendarView).add(i, 'day');\n\t\t\t\t\n\t\t\t\tshortMonthMarkup = '';\n\t\t\t\tif (monthNumber !== tmpDate.format('M')) {\n\t\t\t\t\tmonthNumber = tmpDate.format('M');\n\t\t\t\t\tif (monthNumber === selectedMonthNumber) {\n\t\t\t\t\t\tbCurrentMonth = true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbCurrentMonth = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\ttmpDateSearchString = tmpDate.format('YYYY-MM-DD');\n\t\t\t\t// Add all timestamps to day\n\t\t\t\taTmpTimeStamps = jQuery.grep(timeStampsData, function(timeStamp) { return timeStamp.dateIn == tmpDateSearchString });\n\t\t\t\t// console.log(jQuery.grep(timeStampsData, function(timeStamp) { return timeStamp.dateIn == tmpDateSearchString }));\n\t\t\t\t// Add day to day array\n\t\t\t\taDays.push({date:tmpDate, bCurrentMonth:bCurrentMonth, timeStamps: aTmpTimeStamps});\n\t\t\t}\n\t\t\treturn aDays;\n\t\t}\n\t\t\n\t\tfunction changeMonth(bNext) {\n\t\t\tvar monthOffset = -1,\n\t\t\t\tnewDate;\n\t\t\tif (bNext) {\n\t\t\t\tmonthOffset = 1;\n\t\t\t}\n\t\t\t\n\t\t\tnewDate = moment(ctCalendarViewModel.selectedDate()).startOf('month').add(monthOffset, 'months').toDate();\n\t\t\tctCalendarViewModel.selectedDate(newDate);\n\t\t\tupdateCalendarUI(newDate);\n\t\t}\n\t\t\n\t\t// Content from API\n\t\t/*////////////////////////////////////////////////////////////*/\n\t\t// TODO: vurder om denne funksjonen skal utvides med ekstra arguments slik at den både kan brukes for måned og dag - se updateCalendarItemsForSelectedDay() \n\t\tfunction getCalendarItems(selectedDate) {\n\t\t\tvar self = this;\n\t\t\tvar firstDateInCalendarView = moment(selectedDate).startOf('month').startOf('week');\n\t\t\tvar lastDateInCalendarView = moment(selectedDate).endOf('month').endOf('week');\n\t\t\tvar firstDutyDate = moment();\n\t\t\tself.aCalendarItemTypes = ['timeStamps','holliday'];\n\t\t\t\n\t\t\t// Show loader\n\t\t\tloaderIndicator(true);\n\t\t\t\n\t\t\t// Remove old tmpCalendarItems\n\t\t\ttmpCalendarItems = [];\n\t\t\t\n\t\t\tself.calendarItemsCallback = function() {\n\t\t\t\tself.aCalendarItemTypes.shift();\n\t\t\t\tif (self.aCalendarItemTypes.length == 0) {\n\t\t\t\t\t// Hide loader\n\t\t\t\t\tloaderIndicator(false);\n\t\t\t\t\t\n\t\t\t\t\t// Remove all days\n\t\t\t\t\tctCalendarViewModel.removeAllCalendarDays();\n\t\t\t\t\t\n\t\t\t\t\t// Fill UI with data\n\t\t\t\t\tcalendarDaysWithItems = createCalendarData(selectedDate, tmpCalendarItems);\n\t\t\t\t\tctCalendarViewModel.addCalendarDataToView(calendarDaysWithItems);\n\n\t\t\t\t\t// Get user settings\n\t\t\t\t\tvar userSettings = getLocalStorage('myCapitechUserSettings');\n\t\t\t\t\t\n\t\t\t\t\tif (userSettings && userSettings.selectCurrentDateOnStartup === \"true\") {\n\t\t\t\t\t\t$('.ct-calendar-today').trigger('click');\n\t\t\t\t\t\tuserSettings.selectCurrentDateOnStartup = false;\n\t\t\t\t\t\tsetLocalStorage('myCapitechUserSettings', userSettings);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tgetTimeTransactions(firstDateInCalendarView, lastDateInCalendarView, self.calendarItemsCallback);\n\t\t\tgetHolidays(firstDateInCalendarView, lastDateInCalendarView, self.calendarItemsCallback);\n\t\t\t\n\t\t\tif (getLocalStorage('myCapitechPermissionsAndRegistrationSetup').hasAbsenceRegistration || getLocalStorage('myCapitechPermissionsAndRegistrationSetup').hasSimployerAbsence) {\n\t\t\t\tself.aCalendarItemTypes.push('absences');\n\t\t\t\tgetAbsences(firstDateInCalendarView, lastDateInCalendarView, self.calendarItemsCallback);\n\t\t\t}\n\t\t\t\n\t\t\tif (getLocalStorage('myCapitechPermissionsAndRegistrationSetup').hasCapitechPlan || getLocalStorage('myCapitechPermissionsAndRegistrationSetup').hasCapitechFlowPlan) {\n\t\t\t\t// Some duty types need to be displayed back in time\n\t\t\t\tself.aCalendarItemTypes.push('plannedDuties');\n\t\t\t\tself.aCalendarItemTypes.push('requestedDuties');\n\t\t\t\tself.aCalendarItemTypes.push('dutyWish');\n\t\t\t\tself.aCalendarItemTypes.push('dutyWishPeriods');\n\t\t\t\tgetPlannedDutiesForEmployee(firstDateInCalendarView, lastDateInCalendarView, self.calendarItemsCallback);\n\t\t\t\tgetRequestedDuties(firstDateInCalendarView, lastDateInCalendarView, self.calendarItemsCallback);\n\t\t\t\tgetDutyWish(firstDateInCalendarView, lastDateInCalendarView, self.calendarItemsCallback);\n\t\t\t\tgetDutyWishPeriods(firstDateInCalendarView, lastDateInCalendarView, self.calendarItemsCallback);\n\t\t\t\t// We only want avaliableDuties that is today or in the future\n\t\t\t\tif (moment().diff(lastDateInCalendarView) <= 0) {\n\t\t\t\t\t\n\t\t\t\t\tif (moment().diff(firstDateInCalendarView) <= 0) {\n\t\t\t\t\t\tfirstDutyDate = moment(selectedDate).startOf('week');\n\t\t\t\t\t}\n\t\t\t\t\tself.aCalendarItemTypes.push('avaliableDuties');\n\t\t\t\t\tgetAvaliableDuties(firstDutyDate, lastDateInCalendarView, self.calendarItemsCallback);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t\tfunction updateCalendarItemsForSelectedDay(selectedDate) {\n\t\t\tvar self = this;\n\t\t\tvar momentSelectedDate = moment(selectedDate);\n\t\t\tself.aCalendarItemTypes = ['timeStamps','holliday'];\n\t\t\t\n\t\t\t// Show loader\n\t\t\tloaderIndicator(true);\n\t\t\t\n\t\t\tgetAccumulatedTimeByDay(selectedDate);\n\t\t\n\t\t\t// Remove old tmpCalendarItems\n\t\t\ttmpCalendarItems = [];\n\t\t\n\t\t\tself.calendarItemsCallback = function() {\n\t\t\t\tself.aCalendarItemTypes.shift();\n\t\t\t\tif (self.aCalendarItemTypes.length == 0) {\n\t\t\t\t\t// Hide loader\n\t\t\t\t\tloaderIndicator(false);\n\t\t\t\t\n\t\t\t\t\t// Update current day\n\t\t\t\t\tctCalendarViewModel.daySelected().timeStamps.removeAll();\n\t\t\t\t\t$(tmpCalendarItems).each(function(index, obj) {\n\t\t\t\t\t\tctCalendarViewModel.daySelected().timeStamps.push(new calendarDayItemModel(obj));\n\t\t\t\t\t});\n\t\t\t\t\tctCalendarViewModel.daySelected().timeStamps.sort(_sortByItemSortOrder);\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tgetTimeTransactions(momentSelectedDate, momentSelectedDate, self.calendarItemsCallback);\n\t\t\tgetHolidays(momentSelectedDate, momentSelectedDate, self.calendarItemsCallback);\n\t\t\t\n\t\t\tif (getLocalStorage('myCapitechPermissionsAndRegistrationSetup').hasAbsenceRegistration || getLocalStorage('myCapitechPermissionsAndRegistrationSetup').hasSimployerAbsence) {\n\t\t\t\tself.aCalendarItemTypes.push('absences');\n\t\t\t\tgetAbsences(momentSelectedDate, momentSelectedDate, self.calendarItemsCallback);\n\t\t\t}\n\t\t\t\n\t\t\tif (getLocalStorage('myCapitechPermissionsAndRegistrationSetup').hasCapitechPlan || getLocalStorage('myCapitechPermissionsAndRegistrationSetup').hasCapitechFlowPlan) {\n\t\t\t\tself.aCalendarItemTypes.push('plannedDuties');\n\t\t\t\tself.aCalendarItemTypes.push('requestedDuties');\n\t\t\t\tself.aCalendarItemTypes.push('dutyWish');\n\t\t\t\tself.aCalendarItemTypes.push('dutyWishPeriods');\n\t\t\t\t\n\t\t\t\tgetPlannedDutiesForEmployee(momentSelectedDate, momentSelectedDate, self.calendarItemsCallback);\n\t\t\t\tgetRequestedDuties(momentSelectedDate, momentSelectedDate, self.calendarItemsCallback);\n\t\t\t\tgetDutyWish(momentSelectedDate, momentSelectedDate, self.calendarItemsCallback);\n\t\t\t\tgetDutyWishPeriods(momentSelectedDate, momentSelectedDate, self.calendarItemsCallback);\n\t\t\t\trefreshEmployeeRegistrationInformation(momentSelectedDate);\n\t\t\t\t\n\t\t\t\tif (moment().diff(momentSelectedDate) <= 0) {\n\t\t\t\t\tself.aCalendarItemTypes.push('avaliableDuties');\n\t\t\t\t\tgetAvaliableDuties(momentSelectedDate, momentSelectedDate, self.calendarItemsCallback);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t\tfunction getTimeTransactions(fromDate, toDate, callback) {\n\t\t\tcallback = typeof callback !== 'undefined' ? callback : function(){};\n\t\t\t\n\t\t\tvar success = function(data, textStatus, jqXHR) {\n\t\t\t\tvar timeTransactions = data.content;\n\t\t\t\t// add template info\n\t\t\t\t$.each(timeTransactions, function(index, val) {\n\t\t\t\t\ttimeTransactions[index].template = 'timeTransaction';\n\t\t\t\t\ttimeTransactions[index].description = timeTransactions[index].transactionDescriptions;\n\t\t\t\t});\n\t\t\t\t// add timestamps to calendarItems\n\t\t\t\ttmpCalendarItems = tmpCalendarItems.concat(timeTransactions);\n\t\t\t\tcallback();\n\t\t\t}\n\t\t\tvar error = function(jqXHR, textStatus, errorThrown) {\n\t\t\t\tsweetAlert(getResource('app.apiTimeoutTitle'), getResource(textStatus), \"error\");\n\t\t\t\tcallback();\n\t\t\t}\n\t\t\t\n\t\t\t_api.getTimeTransactionDetails_POST(\n\t\t\t\tsuccess,\n\t\t\t\terror,\n\t\t\t\tgetCookie(ACCESSTOKEN_COOKIE_NAME),\n\t\t\t\tfromDate.format('YYYY-MM-DD'),\n\t\t\t\ttoDate.format('YYYY-MM-DD')\n\t\t\t);\n\t\t}\n\t\t\n\t\tfunction getAbsences(fromDate, toDate, callback) {\n\t\t\tcallback = typeof callback !== 'undefined' ? callback : function(){};\n\t\t\t\n\t\t\tvar success = function(data, textStatus, jqXHR) {\n\t\t\t\tvar absences = data.content;\n\t\t\t\t// add template info\n\t\t\t\t$.each(absences, function(index, val) {\n\t\t\t\t\tabsences[index].template = 'absenceTransaction';\n\t\t\t\t\tabsences[index].dateIn = absences[index].dateFrom;\n\t\t\t\t\tabsences[index].timeIn = absences[index].timeFrom;\n\t\t\t\t\tabsences[index].timeOut = absences[index].timeTo;\n\t\t\t\t\tabsences[index].description = absences[index].absenceCodeDescription\n\t\t\t\t});\n\t\t\t\t// add timestamps to calendarItems\n\t\t\t\ttmpCalendarItems = tmpCalendarItems.concat(absences);\n\t\t\t\tcallback();\n\t\t\t}\n\t\t\tvar error = function(jqXHR, textStatus, errorThrown) {\n\t\t\t\tsweetAlert(getResource('app.apiTimeoutTitle'), getResource(textStatus), \"error\");\n\t\t\t\tcallback();\n\t\t\t}\n\t\t\t_api.getAbsenceTransactions_POST(\n\t\t\t\tsuccess,\n\t\t\t\terror,\n\t\t\t\tgetCookie(ACCESSTOKEN_COOKIE_NAME),\n\t\t\t\tfromDate.format('YYYY-MM-DD'),\n\t\t\t\ttoDate.format('YYYY-MM-DD')\n\t\t\t);\n\t\t}\n\t\t\n\t\tfunction getPlannedDutiesForEmployee(fromDate, toDate, callback) {\n\t\t\tcallback = typeof callback !== 'undefined' ? callback : function(){};\n\t\t\t\n\t\t\tvar success = function(data, textStatus, jqXHR) {\n\t\t\t\tvar plannedDuties = data.content;\n\t\t\t\t// add template info\n\t\t\t\t$.each(plannedDuties, function(index, val) {\n\t\t\t\t\tplannedDuties[index].template = 'plannedDuties';\n\t\t\t\t\tplannedDuties[index].dateIn = plannedDuties[index].dutyStartDate;\n\t\t\t\t\tplannedDuties[index].timeIn = plannedDuties[index].dutyStartTime || '00:00';\n\t\t\t\t\tplannedDuties[index].timeOut = plannedDuties[index].dutyEndTime || '00:00';\n\t\t\t\t\tplannedDuties[index].description = plannedDuties[index].dutyTypeDescription;\n\t\t\t\t\tplannedDuties[index].departmentName = plannedDuties[index].departmentDescription;\n\t\t\t\t\tplannedDuties[index].dutyDefinitionId = plannedDuties[index].dutyDefinitionId ? plannedDuties[index].dutyDefinitionId : null;\n\t\t\t\t\tplannedDuties[index].fridim1Id = plannedDuties[index].freeDimension1Id ? plannedDuties[index].freeDimension1Id : null;\n\t\t\t\t\tplannedDuties[index].fridim2Id = plannedDuties[index].freeDimension2Id ? plannedDuties[index].freeDimension2Id : null;\n\t\t\t\t});\n\t\t\t\t// add timestamps to calendarItems\n\t\t\t\ttmpCalendarItems = tmpCalendarItems.concat(plannedDuties);\n\t\t\t\tcallback();\n\t\t\t}\n\t\t\tvar error = function(jqXHR, textStatus, errorThrown) {\n\t\t\t\tsweetAlert(getResource('app.apiTimeoutTitle'), getResource(textStatus), \"error\");\n\t\t\t\tcallback();\n\t\t\t}\n\t\t\t\n\t\t\t_api.getPlannedDutiesForEmployee_POST(\n\t\t\t\tsuccess,\n\t\t\t\terror,\n\t\t\t\tgetCookie(ACCESSTOKEN_COOKIE_NAME),\n\t\t\t\tfromDate.format('YYYY-MM-DD'),\n\t\t\t\ttoDate.format('YYYY-MM-DD')\n\t\t\t);\n\t\t}\n\t\t\n\t\tfunction getAvaliableDuties(fromDate, toDate, callback) {\n\t\t\tcallback = typeof callback !== 'undefined' ? callback : function(){};\n\t\t\t\n\t\t\tvar success = function(data, textStatus, jqXHR) {\n\t\t\t\tvar avaliableDuties = data.content;\n\t\t\t\t// add template info\n\t\t\t\t$.each(avaliableDuties, function(index, val) {\n\t\t\t\t\tavaliableDuties[index].template = 'avaliableDuties';\n\t\t\t\t\tavaliableDuties[index].dateIn = avaliableDuties[index].startDate;\n\t\t\t\t\tavaliableDuties[index].timeIn = avaliableDuties[index].originalStartTime || '00:00';\n\t\t\t\t\tavaliableDuties[index].dateOut = avaliableDuties[index].endDate;\n\t\t\t\t\tavaliableDuties[index].timeOut = avaliableDuties[index].originalEndTime || '00:00';\n\t\t\t\t\tavaliableDuties[index].departmentName = avaliableDuties[index].departmentDescription;\n\t\t\t\t\tavaliableDuties[index].dutyIdString = avaliableDuties[index].dutyStrId;\n\t\t\t\t\tavaliableDuties[index].description = avaliableDuties[index].dutyTypeDescription;\n\t\t\t\t});\n\t\t\t\t// add timestamps to calendarItems\n\t\t\t\ttmpCalendarItems = tmpCalendarItems.concat(avaliableDuties);\n\t\t\t\tcallback();\n\t\t\t}\n\t\t\tvar error = function(jqXHR, textStatus, errorThrown) {\n\t\t\t\tsweetAlert(getResource('app.apiTimeoutTitle'), getResource(textStatus), \"error\");\n\t\t\t\tcallback();\n\t\t\t}\n\t\t\t\n\t\t\t_api.getAvaliableDuties_POST(\n\t\t\t\tsuccess,\n\t\t\t\terror,\n\t\t\t\tgetCookie(ACCESSTOKEN_COOKIE_NAME),\n\t\t\t\tfromDate.format('YYYY-MM-DD'),\n\t\t\t\ttoDate.format('YYYY-MM-DD')\n\t\t\t);\n\t\t}\n\t\t\n\t\tfunction getRequestedDuties(fromDate, toDate, callback) {\n\t\t\tcallback = typeof callback !== 'undefined' ? callback : function(){};\n\t\t\t\n\t\t\tvar success = function(data, textStatus, jqXHR) {\n\t\t\t\tvar requestedDuties = data.content;\n\t\t\t\t// add template info\n\t\t\t\t$.each(requestedDuties, function(index, val) {\n\t\t\t\t\trequestedDuties[index].template = 'requestedDuties';\n\t\t\t\t\trequestedDuties[index].dateIn = requestedDuties[index].startDate;\n\t\t\t\t\trequestedDuties[index].timeIn = requestedDuties[index].originalStartTime || '00:00';\n\t\t\t\t\trequestedDuties[index].dateOut = requestedDuties[index].endDate;\n\t\t\t\t\trequestedDuties[index].timeOut = requestedDuties[index].originalEndTime || '00:00';\n\t\t\t\t\trequestedDuties[index].description = requestedDuties[index].dutyTypeDescription;\n\t\t\t\t\trequestedDuties[index].departmentName = requestedDuties[index].departmentDescription;\n\t\t\t\t\trequestedDuties[index].comment = requestedDuties[index].employeeText;\n\t\t\t\t\trequestedDuties[index].dutyIdString = requestedDuties[index].dutyStrId;\n\t\t\t\t});\n\t\t\t\t// add timestamps to calendarItems\n\t\t\t\ttmpCalendarItems = tmpCalendarItems.concat(requestedDuties);\n\t\t\t\tcallback();\n\t\t\t}\n\t\t\tvar error = function(jqXHR, textStatus, errorThrown) {\n\t\t\t\tsweetAlert(getResource('app.apiTimeoutTitle'), getResource(textStatus), \"error\");\n\t\t\t\tcallback();\n\t\t\t}\n\t\t\t\n\t\t\t_api.getRequestedDuties_POST(\n\t\t\t\tsuccess,\n\t\t\t\terror,\n\t\t\t\tgetCookie(ACCESSTOKEN_COOKIE_NAME),\n\t\t\t\tfromDate.format('YYYY-MM-DD'),\n\t\t\t\ttoDate.format('YYYY-MM-DD')\n\t\t\t);\n\t\t}\n\t\t\n\t\tfunction getDutyWish(fromDate, toDate, callback) {\n\t\t\tcallback = typeof callback !== 'undefined' ? callback : function(){};\n\t\t\t\n\t\t\tvar success = function(data, textStatus, jqXHR) {\n\t\t\t\tvar dutyWish = data.content;\n\t\t\t\t// add template info\n\t\t\t\t$.each(dutyWish, function(index, val) {\n\t\t\t\t\tdutyWish[index].template = 'dutyWish';\n\t\t\t\t\tdutyWish[index].dateIn = dutyWish[index].date;\n\t\t\t\t\tdutyWish[index].timeIn = '0002';\n\t\t\t\t\tdutyWish[index].dateOut = dutyWish[index].date;\n\t\t\t\t\tdutyWish[index].timeOut = '0002';\n\t\t\t\t\tdutyWish[index].dutyWishStartDate = dutyWish[index].date;\n\t\t\t\t\tdutyWish[index].dutyWishEndDate = dutyWish[index].date;\n\t\t\t\t\tdutyWish[index].description = getResource('app.dutyWishText');\n\t\t\t\t\tdutyWish[index].comment = dutyWish[index].commentFromEmployee;\n\t\t\t\t});\n\t\t\t\t// add timestamps to calendarItems\n\t\t\t\ttmpCalendarItems = tmpCalendarItems.concat(dutyWish);\n\t\t\t\tcallback();\n\t\t\t}\n\t\t\tvar error = function(jqXHR, textStatus, errorThrown) {\n\t\t\t\tsweetAlert(getResource('app.apiTimeoutTitle'), getResource(textStatus), \"error\");\n\t\t\t\tcallback();\n\t\t\t}\n\t\t\t\n\t\t\t_api.getDutyWish_POST(\n\t\t\t\tsuccess,\n\t\t\t\terror,\n\t\t\t\tgetCookie(ACCESSTOKEN_COOKIE_NAME),\n\t\t\t\tfromDate.format('YYYY-MM-DD'),\n\t\t\t\ttoDate.format('YYYY-MM-DD')\n\t\t\t);\n\t\t}\n\t\t\n\t\tfunction getDutyWishPeriods(fromDate, toDate, callback) {\n\t\t\tcallback = typeof callback !== 'undefined' ? callback : function(){};\n\t\t\t\n\t\t\tvar success = function(data, textStatus, jqXHR) {\n\t\t\t\tvar dutyWishPeriodsTmp = data.content;\n\t\t\t\tvar dutyWishPeriods = [];\n\t\t\t\t// add template info\n\t\t\t\t$.each(dutyWishPeriodsTmp, function(index, val) {\n\t\t\t\t\tvar startDate = moment(dutyWishPeriodsTmp[index].fromDate);\n\t\t\t\t\tvar endDate = moment(dutyWishPeriodsTmp[index].toDate);\n\t\t\t\t\tvar dateDiff = endDate.diff(startDate, 'd') + 1;\n\t\t\t\t\t\n\t\t\t\t\t// If dates is equal, we are only refreshing current date.\n\t\t\t\t\tif (fromDate == toDate) {\n\t\t\t\t\t\tdateDiff = 1;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tfor (var i = 0; i < dateDiff; i++) {\n\t\t\t\t\t\tvar dutyWishPeriodsItemTmp = {};\n\t\t\t\t\t\tvar tmpDate = moment(startDate).add(i, 'd');\n\t\t\t\t\t\tvar tmpIsoWeekday = tmpDate.isoWeekday();\n\t\t\t\t\t\tdutyWishPeriodsItemTmp.template = 'dutyWishPeriods';\n\t\t\t\t\t\tdutyWishPeriodsItemTmp.dateIn = tmpDate.format('YYYY-MM-DD');\n\t\t\t\t\t\tdutyWishPeriodsItemTmp.timeIn = '0001';\n\t\t\t\t\t\tdutyWishPeriodsItemTmp.dateOut = dutyWishPeriodsTmp[index].toDate;\n\t\t\t\t\t\tdutyWishPeriodsItemTmp.timeOut = '0001';\n\t\t\t\t\t\tdutyWishPeriodsItemTmp.dutyWishStartDate = dutyWishPeriodsTmp[index].fromDate;\n\t\t\t\t\t\tdutyWishPeriodsItemTmp.dutyWishEndDate = dutyWishPeriodsTmp[index].toDate;\n\t\t\t\t\t\tdutyWishPeriodsItemTmp.description = getResource('app.dutyWishPeriodsText');\n\t\t\t\t\t\tdutyWishPeriodsItemTmp.comment = dutyWishPeriodsTmp[index].commentFromEmployee;\n\t\t\t\t\t\tdutyWishPeriodsItemTmp.isEmployeeAvaliableOnShortNotice = dutyWishPeriodsTmp[index].commentFromEmployee;\n\t\t\t\t\t\tdutyWishPeriodsItemTmp.requestedDepartmentIds = dutyWishPeriodsTmp[index].requestedDepartmentIds;\n\t\t\t\t\t\tdutyWishPeriodsItemTmp.requestedDutyTypeIds = dutyWishPeriodsTmp[index].requestedDutyTypeIds;\n\t\t\t\t\t\t\n\t\t\t\t\t\tif (isInArray(tmpIsoWeekday, dutyWishPeriodsTmp[index].requestedDaysOfWeek)) {\n\t\t\t\t\t\t\tdutyWishPeriods.push(dutyWishPeriodsItemTmp);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\t// add timestamps to calendarItems\n\t\t\t\ttmpCalendarItems = tmpCalendarItems.concat(dutyWishPeriods);\n\n\t\t\t\tcallback();\n\t\t\t}\n\t\t\tvar error = function(jqXHR, textStatus, errorThrown) {\n\t\t\t\tsweetAlert(getResource('app.apiTimeoutTitle'), getResource(textStatus), \"error\");\n\t\t\t\tcallback();\n\t\t\t}\n\t\t\t\n\t\t\t_api.getDutyWishPeriods_POST(\n\t\t\t\tsuccess,\n\t\t\t\terror,\n\t\t\t\tgetCookie(ACCESSTOKEN_COOKIE_NAME),\n\t\t\t\tfromDate.format('YYYY-MM-DD'),\n\t\t\t\ttoDate.format('YYYY-MM-DD')\n\t\t\t);\n\t\t}\n\t\t\n\t\tfunction getHolidays(fromDate, toDate, callback) {\n\t\t\tcallback = typeof callback !== 'undefined' ? callback : function(){};\n\t\t\t\n\t\t\tvar success = function(data, textStatus, jqXHR) {\n\t\t\t\tvar holidays = data.content;\n\t\t\t\t// add template info\n\t\t\t\t$.each(holidays, function(index, val) {\n\t\t\t\t\tholidays[index].template = 'holiday';\n\t\t\t\t\tholidays[index].dateIn = holidays[index].date;\n\t\t\t\t\tholidays[index].timeIn = '0000';\n\t\t\t\t\tholidays[index].timeOut = '0000';\n\t\t\t\t\tholidays[index].description = holidays[index].name;\n\t\t\t\t});\n\t\t\t\t// add timestamps to calendarItems\n\t\t\t\ttmpCalendarItems = tmpCalendarItems.concat(holidays);\n\t\t\t\tcallback();\n\t\t\t}\n\t\t\tvar error = function(jqXHR, textStatus, errorThrown) {\n\t\t\t\tsweetAlert(getResource('app.apiTimeoutTitle'), getResource(textStatus), \"error\");\n\t\t\t\tcallback();\n\t\t\t}\n\t\t\t\n\t\t\t_api.getHolidays_POST(\n\t\t\t\tsuccess,\n\t\t\t\terror,\n\t\t\t\tgetCookie(ACCESSTOKEN_COOKIE_NAME),\n\t\t\t\tfromDate.format('YYYY-MM-DD'),\n\t\t\t\ttoDate.format('YYYY-MM-DD')\n\t\t\t);\n\t\t}\n\t\t\n\t\t// Timestamp form functions\n\t\t/*////////////////////////////////////////////////////////////*/\n\t\tfunction loadTimeStampFormData(templateTimeTransaction) {\n\t\t\tvar self = this;\n\t\t\tself.registrationSetup = getLocalStorage('myCapitechPermissionsAndRegistrationSetup').registrationRules;\n\t\t\tself.aDimensions = ['Department'];\n\t\t\tself.aDimensionsCopy = ['Department'];\n\t\t\t\n\t\t\t// Show loader\n\t\t\tloaderIndicator(true);\n\t\t\t\n\t\t\t// Build API call list\n\t\t\t$.each(self.registrationSetup, function(key, value) {\n\t\t\t\tif (value && key !== 'registrationCloseDate') {\n\t\t\t\t\tself.aDimensions.push(key.substring(8))\n\t\t\t\t}\n\t\t\t});\n\t\t\t\n\t\t\tdimensionCallback = function() {\n\t\t\t\tself.aDimensionsCopy.shift();\n\t\t\t\tif (self.aDimensionsCopy.length == 0) {\n\t\t\t\t\t// Hide loader\n\t\t\t\t\tloaderIndicator(false);\n\t\t\t\t\t\n\t\t\t\t\tif (templateTimeTransaction) {\n\t\t\t\t\t\tctCalendarViewModel.selectedTimeTransactionClone(templateTimeTransaction);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tctCalendarViewModel.selectedTimeTransactionClone(new calendarDayItemModel(ko.toJS(ctCalendarViewModel.selectedTimeTransaction)));\n\t\t\t\t\t}\n\t\t\t\t\tshowTimeStampForm();\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\t// Make a copy of the dimension array, so we dont destroy the main array\n\t\t\tself.aDimensionsCopy = self.aDimensions.slice();\n\t\t\t\n\t\t\t// Get all dimentions\n\t\t\t$.each(self.aDimensions, function(index, val) {\n\t\t\t\ttry {\n\t\t\t\t\tvar funcTemp = eval('get' + val);\n\t\t\t\t\tfuncTemp(dimensionCallback, true);\n\t\t\t\t} catch (err) {\n\t\t\t\t\tdimensionCallback();\n\t\t\t\t}\n\t\t\t\t// console.log('loop: ' + val);\n\t\t\t});\n\t\t}\n\t\t\n\t\tfunction displayDimensionFormItems() {\n\t\t\tvar registrationSetup = getLocalStorage('myCapitechPermissionsAndRegistrationSetup').registrationRules;\n\t\t\tvar dimensionNames = getLocalStorage('myCapitechDimensionNames');\n\t\t\t\n\t\t\t// add department to registrationSetup\n\t\t\tregistrationSetup.registerDepartment = true;\n\t\t\t\n\t\t\t$.each(registrationSetup, function(key, bRequiredInStamp) {\n\t\t\t\tif(key.slice(0,8) === \"register\") { \n\t\t\t\t\tvar cleanedKey = key.slice(8);\n\t\t\t\t\tvar keyHeadlessCamelCase = cleanedKey.substr(0, 1).toLowerCase() + cleanedKey.substr(1);\n\t\t\t\t\tvar keyLowerCase = cleanedKey.toLowerCase();\n\t\t\t\t\tvar $dimensionElm = $('.' + key);\n\t\t\t\t\tvar bRequired = getLocalStorage('myCapitechPermissionsAndRegistrationSetup').registrationRequiredFields['is' + key.slice(8) + 'IdRequired'];\n\t\t\t\t\tvar visibility = getLocalStorage('myCapitechPermissionsAndRegistrationSetup').registrationVisibilityRules[keyHeadlessCamelCase] ? getLocalStorage('myCapitechPermissionsAndRegistrationSetup').registrationVisibilityRules[keyHeadlessCamelCase] : 1; // 1 Show, 2 Hidden, 3 ReadOnly\n\t\t\t\t\tvar defaultValue = getLocalStorage('myCapitechPermissionsAndRegistrationSetup').registrationDefaults[keyHeadlessCamelCase + 'Id'];\n\t\t\t\t\tvar $labelElm = $dimensionElm.find('label');\n\t\t\t\t\tvar labelText = dimensionNames[keyLowerCase + 'Description'];\n\t\t\t\t\t\n\t\t\t\t\t// Use default text if dimensionNames is missing value\n\t\t\t\t\tif (!labelText) {\n\t\t\t\t\t\tlabelText = $labelElm.text();\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t// Dimension should only be visible if:\n\t\t\t\t\t// Registration rules says it should be and visibility is 1 OR 3\n\t\t\t\t\t// Or if the field is required and no default value is provided\n\t\t\t\t\tif ((bRequiredInStamp && (visibility === 1 || visibility === 3)) || (bRequired && !defaultValue)) {\n\t\t\t\t\t\t$dimensionElm.css('display', 'block');\n\t\t\t\t\t\tif (bRequired) {\n\t\t\t\t\t\t\t$dimensionElm.find('select').prop('required', true);\n\t\t\t\t\t\t\t$labelElm.html(labelText + ' *');\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$labelElm.text(labelText);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$dimensionElm.css('display', 'none');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\t\n\t\tfunction showTimeStampForm() {\n\t\t\t$.magnificPopup.open({\n\t\t\t\tmainClass: 'dialog-slide-bottom',\n\t\t\t\tcloseOnBgClick: false,\n\t\t\t\titems: {\n\t\t\t\t\tsrc: $('#ct-edit-timestamp'),\n\t\t\t\t\ttype: 'inline'\n\t\t\t\t},\n\t\t\t\tcallbacks: {\n\t\t\t\t\topen: function() {\n\t\t\t\t\t\tvar $thisElm = $(this.container[0]);\n\t\t\t\t\t\tvar browserWidth = $(window).width();\n\t\t\t\t\t\tvar refreshSelect2Elements = function() {\n\t\t\t\t\t\t\t$('#ct-edit-timestamp .form-group select').each(function(index, obj) {\n\t\t\t\t\t\t\t\t$obj = $(obj);\n\t\t\t\t\t\t\t\tif (obj.length >= 40 || browserWidth >= 1024) {\n\t\t\t\t\t\t\t\t\t$obj.addClass(\"is-select2\");\n\t\t\t\t\t\t\t\t\t$obj.select2({\n\t\t\t\t\t\t\t\t\t\ttheme: \"bootstrap\",\n\t\t\t\t\t\t\t\t\t\ttemplateResult: function(result, container) {\n\t\t\t\t\t\t\t\t\t\t\tif (!result.id) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn result.text;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t$(container).addClass('needsclick');\n\t\t\t\t\t\t\t\t\t\t\treturn result.text;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tif ($obj.hasClass(\"is-select2\")) {\n\t\t\t\t\t\t\t\t\t\t$obj.select2(\"destroy\");\n\t\t\t\t\t\t\t\t\t\t$obj.removeClass(\"is-select2\");\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t$('#ct-edit-timestamp .form-group').on('touchstart', function(event) {\n\t\t\t\t\t\t\t\tevent.target.classList.add('needsclick');\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tinitializeComponents($thisElm);\n\t\t\t\t\t\t\n\t\t\t\t\t\t// Translate labels\n\t\t\t\t\t\ttranslateGUI($thisElm);\n\t\t\t\t\t\t\n\t\t\t\t\t\t// Use registration labels if exists\n\t\t\t\t\t\tdisplayDimensionFormItems();\n\t\t\t\t\t\t\n\t\t\t\t\t\t// add mask to time inputs\n\t\t\t\t\t\t$thisElm.find('input.ct-input-time').inputmask({'alias': 'capitechHourAndMinutes'});\n\t\t\t\t\t\t\n\t\t\t\t\t\t// Department change\n\t\t\t\t\t\t$thisElm.off('change', '#departmentId');\n\t\t\t\t\t\t$thisElm.on('change', '#departmentId', function(event) {\n\t\t\t\t\t\t\tgetDuty(refreshSelect2Elements);\n\t\t\t\t\t\t\tgetTask(refreshSelect2Elements);\n\t\t\t\t\t\t});\n\t\t\t\t\t\t\n\t\t\t\t\t\t// Project change\n\t\t\t\t\t\t$thisElm.off('change', '#projectId');\n\t\t\t\t\t\t$thisElm.on('change', '#projectId', function(event) {\n\t\t\t\t\t\t\tgetSubProject(refreshSelect2Elements);\n\t\t\t\t\t\t});\n\t\t\t\t\t\t\n\t\t\t\t\t\t// Sub project change\n\t\t\t\t\t\t$thisElm.off('change', '#subProjectId');\n\t\t\t\t\t\t$thisElm.on('change', '#subProjectId', function(event) {\n\t\t\t\t\t\t\tgetPhase(refreshSelect2Elements);\n\t\t\t\t\t\t});\n\t\t\t\t\t\t\n\t\t\t\t\t\tvar $form = $thisElm.find(\"form\");\n\t\t\t\t\t\tif ($form.attr(\"data-validator-bound\") !== \"true\") {\n\t\t\t\t\t\t\t$.validator.messages.required = getResource('app.pleaseSelect');\n\t\t\t\t\t\t\t$form.attr(\"data-validator-bound\", true);\n\t\t\t\t\t\t\t$form.validate({\n\t\t\t\t\t\t\t\trules: {\n\t\t\t\t\t\t\t\t\tselect: \"required\"\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\terrorClass: \"ct-color-red error\",\n\t\t\t\t\t\t\t\tonsubmit: false\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tvar $btn = $thisElm.find(\".ct-btn-register\");\n\t\t\t\t\t\t\t$btn.click(function() {\n\t\t\t\t\t\t\t\tif ($form.valid()) {\n\t\t\t\t\t\t\t\t\t$form.submit();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\trefreshSelect2Elements();\n\t\t\t\t\t},\n\t\t\t\t\tclose: function() {\n\t\t\t\t\t\t// if (ctCalendarViewModel.selectedTimeTransaction().bNew()) {\n\t\t\t\t\t\t// \tctCalendarViewModel.daySelected().timeStamps.remove(ctCalendarViewModel.selectedTimeTransaction());\n\t\t\t\t\t\t// }\n\t\t\t\t\t\t// ctCalendarViewModel.daySelected().timeStamps.sort(_sortByItemSortOrder);\n\t\t\t\t\t\tupdateCalendarItemsForSelectedDay(ctCalendarViewModel.selectedTimeTransactionClone().dateIn());\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\t\n\t\tfunction getDepartment(callback, bInit) {\n\t\t\tcallback = typeof callback !== 'undefined' ? callback : function(){};\n\t\t\t_api.getDepartmentDescriptions_POST(\n\t\t\t\tfunction(data, textStatus, jqXHR) {\n\t\t\t\t\t// console.log('------getDepartment------');\n\t\t\t\t\t// console.log(data);\n\t\t\t\t\tctCalendarViewModel.addDepartments(data.content);\n\t\t\t\t\tcallback();\n\t\t\t\t},\n\t\t\t\tfunction(jqXHR, textStatus, errorThrown) {\n\t\t\t\t\tsweetAlert(getResource('app.apiTimeoutTitle'), getResource(textStatus), \"error\");\n\t\t\t\t\tcallback();\n\t\t\t\t},\n\t\t\t\tgetCookie(ACCESSTOKEN_COOKIE_NAME)\n\t\t\t)\n\t\t}\n\n\t\tfunction getDutyDefinition(callback, bInit) {\n\t\t\tvar currentDepartmentId;\n\t\t\tcallback = typeof callback !== 'undefined' ? callback : function(){};\n\t\t\tbInit = typeof bInit !== 'undefined' ? bInit : false;\n\t\t\t\n\t\t\t_api.getDutyDefinitionDescriptions_POST(\n\t\t\t\tfunction(data, textStatus, jqXHR) {\n\t\t\t\t\t// console.log('------getDutyDefinition------');\n\t\t\t\t\t// console.log(data);\n\t\t\t\t\tctCalendarViewModel.addDutyDefinitions(data.content);\n\t\t\t\t\tcallback();\n\t\t\t\t},\n\t\t\t\tfunction(jqXHR, textStatus, errorThrown) {\n\t\t\t\t\tsweetAlert(getResource('app.apiTimeoutTitle'), getResource(textStatus), \"error\");\n\t\t\t\t\tcallback();\n\t\t\t\t},\n\t\t\t\tgetCookie(ACCESSTOKEN_COOKIE_NAME)\n\t\t\t);\n\t\t}\n\n\t\tfunction getCompetenceRole(callback, bInit) {\n\t\t\tvar currentDepartmentId;\n\t\t\tcallback = typeof callback !== 'undefined' ? callback : function(){};\n\t\t\tbInit = typeof bInit !== 'undefined' ? bInit : false;\n\t\t\t\n\t\t\t_api.getCompetenceroleDescriptions_POST(\n\t\t\t\tfunction(data, textStatus, jqXHR) {\n\t\t\t\t\t// console.log('------getCompetenceRole------');\n\t\t\t\t\t// console.log(data);\n\t\t\t\t\tctCalendarViewModel.addCompetenceRoles(data.content);\n\t\t\t\t\tcallback();\n\t\t\t\t},\n\t\t\t\tfunction(jqXHR, textStatus, errorThrown) {\n\t\t\t\t\tsweetAlert(getResource('app.apiTimeoutTitle'), getResource(textStatus), \"error\");\n\t\t\t\t\tcallback();\n\t\t\t\t},\n\t\t\t\tgetCookie(ACCESSTOKEN_COOKIE_NAME)\n\t\t\t);\n\t\t}\n\t\t\n\t\tfunction getTask(callback, bInit) {\n\t\t\tvar currentDepartmentId;\n\t\t\tcallback = typeof callback !== 'undefined' ? callback : function(){};\n\t\t\tbInit = typeof bInit !== 'undefined' ? bInit : false;\n\t\t\t\n\t\t\tif (bInit) {\n\t\t\t\tcurrentDepartmentId = ctCalendarViewModel.selectedTimeTransaction().departmentId();\n\t\t\t} else {\n\t\t\t\tcurrentDepartmentId = ctCalendarViewModel.selectedTimeTransactionClone().departmentId();\n\t\t\t}\n\t\t\t\n\t\t\tif (currentDepartmentId) {\n\t\t\t\t_api.getTaskDescriptions_POST(\n\t\t\t\t\tfunction(data, textStatus, jqXHR) {\n\t\t\t\t\t\t// console.log('------getDuty------');\n\t\t\t\t\t\t// console.log(data);\n\t\t\t\t\t\tctCalendarViewModel.addTasks(data.content);\n\t\t\t\t\t\tcallback();\n\t\t\t\t\t},\n\t\t\t\t\tfunction(jqXHR, textStatus, errorThrown) {\n\t\t\t\t\t\tsweetAlert(getResource('app.apiTimeoutTitle'), getResource(textStatus), \"error\");\n\t\t\t\t\t\tcallback();\n\t\t\t\t\t},\n\t\t\t\t\tgetCookie(ACCESSTOKEN_COOKIE_NAME),\n\t\t\t\t\tcurrentDepartmentId\n\t\t\t\t)\n\t\t\t} else {\n\t\t\t\tcallback();\n\t\t\t}\n\t\t}\n\t\t\n\t\tfunction getDuty(callback, bInit) {\n\t\t\tvar currentDepartmentId;\n\t\t\tcallback = typeof callback !== 'undefined' ? callback : function(){};\n\t\t\tbInit = typeof bInit !== 'undefined' ? bInit : false;\n\t\t\t\n\t\t\tif (bInit) {\n\t\t\t\tcurrentDepartmentId = ctCalendarViewModel.selectedTimeTransaction().departmentId();\n\t\t\t} else {\n\t\t\t\tcurrentDepartmentId = ctCalendarViewModel.selectedTimeTransactionClone().departmentId();\n\t\t\t}\n\t\t\t\n\t\t\tif (currentDepartmentId) {\n\t\t\t\t_api.getDutyDescriptions_POST(\n\t\t\t\t\tfunction(data, textStatus, jqXHR) {\n\t\t\t\t\t\t// console.log('------getDuty------');\n\t\t\t\t\t\t// console.log(data);\n\t\t\t\t\t\tctCalendarViewModel.addDutys(data.content);\n\t\t\t\t\t\tcallback();\n\t\t\t\t\t},\n\t\t\t\t\tfunction(jqXHR, textStatus, errorThrown) {\n\t\t\t\t\t\tsweetAlert(getResource('app.apiTimeoutTitle'), getResource(textStatus), \"error\");\n\t\t\t\t\t\tcallback();\n\t\t\t\t\t},\n\t\t\t\t\tgetCookie(ACCESSTOKEN_COOKIE_NAME),\n\t\t\t\t\tcurrentDepartmentId\n\t\t\t\t)\n\t\t\t} else {\n\t\t\t\tcallback();\n\t\t\t}\n\t\t}\n\t\t\n\t\tfunction getShift(callback, bInit) {\n\t\t\tcallback = typeof callback !== 'undefined' ? callback : function(){};\n\t\t\t_api.getShiftDescriptions_POST(\n\t\t\t\tfunction(data, textStatus, jqXHR) {\n\t\t\t\t\t// console.log('------getShift------');\n\t\t\t\t\t// console.log(data);\n\t\t\t\t\tctCalendarViewModel.addShifts(data.content);\n\t\t\t\t\tcallback();\n\t\t\t\t},\n\t\t\t\tfunction(jqXHR, textStatus, errorThrown) {\n\t\t\t\t\tsweetAlert(getResource('app.apiTimeoutTitle'), getResource(textStatus), \"error\");\n\t\t\t\t\tcallback();\n\t\t\t\t},\n\t\t\t\tgetCookie(ACCESSTOKEN_COOKIE_NAME)\n\t\t\t)\n\t\t}\n\t\t\n\t\tfunction getOrder(callback, bInit) {\n\t\t\tcallback = typeof callback !== 'undefined' ? callback : function(){};\n\t\t\t_api.getOrderDescriptions_POST(\n\t\t\t\tfunction(data, textStatus, jqXHR) {\n\t\t\t\t\t// console.log('------getOrder------');\n\t\t\t\t\t// console.log(data);\n\t\t\t\t\tctCalendarViewModel.addOrders(data.content);\n\t\t\t\t\tcallback();\n\t\t\t\t},\n\t\t\t\tfunction(jqXHR, textStatus, errorThrown) {\n\t\t\t\t\tsweetAlert(getResource('app.apiTimeoutTitle'), getResource(textStatus), \"error\");\n\t\t\t\t\tcallback();\n\t\t\t\t},\n\t\t\t\tgetCookie(ACCESSTOKEN_COOKIE_NAME)\n\t\t\t)\n\t\t}\n\t\t\n\t\tfunction getProject(callback, bInit) {\n\t\t\tcallback = typeof callback !== 'undefined' ? callback : function(){};\n\t\t\t_api.getProjectDescriptions_POST(\n\t\t\t\tfunction(data, textStatus, jqXHR) {\n\t\t\t\t\t// console.log('------getProject------');\n\t\t\t\t\t// console.log(data);\n\t\t\t\t\tctCalendarViewModel.addProjects(data.content);\n\t\t\t\t\tcallback();\n\t\t\t\t},\n\t\t\t\tfunction(jqXHR, textStatus, errorThrown) {\n\t\t\t\t\tsweetAlert(getResource('app.apiTimeoutTitle'), getResource(textStatus), \"error\");\n\t\t\t\t\tcallback();\n\t\t\t\t},\n\t\t\t\tgetCookie(ACCESSTOKEN_COOKIE_NAME)\n\t\t\t)\n\t\t}\n\t\t\n\t\tfunction getSubProject(callback, bInit) {\n\t\t\tvar currentProjectId;\n\t\t\tcallback = typeof callback !== 'undefined' ? callback : function(){};\n\t\t\tbInit = typeof bInit !== 'undefined' ? bInit : false;\n\t\t\t\n\t\t\tif (bInit) {\n\t\t\t\tcurrentProjectId = ctCalendarViewModel.selectedTimeTransaction().projectId();\n\t\t\t} else {\n\t\t\t\tcurrentProjectId = ctCalendarViewModel.selectedTimeTransactionClone().projectId();\n\t\t\t}\n\t\t\t\n\t\t\tif (currentProjectId) {\n\t\t\t\t_api.getSubProjectDescriptions_POST(\n\t\t\t\t\tfunction(data, textStatus, jqXHR) {\n\t\t\t\t\t\t// console.log('------getSubProject------');\n\t\t\t\t\t\t// console.log(data);\n\t\t\t\t\t\tctCalendarViewModel.addSubProjects(data.content);\n\t\t\t\t\t\tcallback();\n\t\t\t\t\t},\n\t\t\t\t\tfunction(jqXHR, textStatus, errorThrown) {\n\t\t\t\t\t\tsweetAlert(getResource('app.apiTimeoutTitle'), getResource(textStatus), \"error\");\n\t\t\t\t\t\tcallback();\n\t\t\t\t\t},\n\t\t\t\t\tgetCookie(ACCESSTOKEN_COOKIE_NAME),\n\t\t\t\t\tcurrentProjectId\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tcallback();\n\t\t\t}\n\t\t}\n\t\t\n\t\tfunction getPhase(callback, bInit) {\n\t\t\tvar projectId;\n\t\t\tvar subProjectId;\n\t\t\tcallback = typeof callback !== 'undefined' ? callback : function(){};\n\t\t\tbInit = typeof bInit !== 'undefined' ? bInit : false;\n\t\t\t\n\t\t\tif (bInit) {\n\t\t\t\tprojectId = ctCalendarViewModel.selectedTimeTransaction().projectId();\n\t\t\t\tsubProjectId = ctCalendarViewModel.selectedTimeTransaction().subProjectId();\n\t\t\t} else {\n\t\t\t\tprojectId = ctCalendarViewModel.selectedTimeTransactionClone().projectId();\n\t\t\t\tsubProjectId = ctCalendarViewModel.selectedTimeTransactionClone().subProjectId();\n\t\t\t}\n\t\t\t\n\t\t\tif (projectId && subProjectId) {\n\t\t\t\t_api.getPhaseDescriptions_POST(\n\t\t\t\t\tfunction(data, textStatus, jqXHR) {\n\t\t\t\t\t\t// console.log('------getPhase------');\n\t\t\t\t\t\t// console.log(data);\n\t\t\t\t\t\tctCalendarViewModel.addPhases(data.content);\n\t\t\t\t\t\tcallback();\n\t\t\t\t\t},\n\t\t\t\t\tfunction(jqXHR, textStatus, errorThrown) {\n\t\t\t\t\t\tsweetAlert(getResource('app.apiTimeoutTitle'), getResource(textStatus), \"error\");\n\t\t\t\t\t\tcallback();\n\t\t\t\t\t},\n\t\t\t\t\tgetCookie(ACCESSTOKEN_COOKIE_NAME),\n\t\t\t\t\tprojectId,\n\t\t\t\t\tsubProjectId\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tcallback();\n\t\t\t}\n\t\t}\n\t\t\n\t\tfunction getFridim1(callback, bInit) {\n\t\t\tcallback = typeof callback !== 'undefined' ? callback : function(){};\n\t\t\t_api.getFridim1Descriptions_POST(\n\t\t\t\tfunction(data, textStatus, jqXHR) {\n\t\t\t\t\t// console.log('------getFridim1------');\n\t\t\t\t\t// console.log(data);\n\t\t\t\t\tctCalendarViewModel.addFridim1s(data.content);\n\t\t\t\t\tcallback();\n\t\t\t\t},\n\t\t\t\tfunction(jqXHR, textStatus, errorThrown) {\n\t\t\t\t\tsweetAlert(getResource('app.apiTimeoutTitle'), getResource(textStatus), \"error\");\n\t\t\t\t\tcallback();\n\t\t\t\t},\n\t\t\t\tgetCookie(ACCESSTOKEN_COOKIE_NAME)\n\t\t\t)\n\t\t}\n\t\t\n\t\tfunction getFridim2(callback, bInit) {\n\t\t\tcallback = typeof callback !== 'undefined' ? callback : function(){};\n\t\t\t_api.getFridim2Descriptions_POST(\n\t\t\t\tfunction(data, textStatus, jqXHR) {\n\t\t\t\t\t// console.log('------getFridim2------');\n\t\t\t\t\t// console.log(data);\n\t\t\t\t\tctCalendarViewModel.addFridim2s(data.content);\n\t\t\t\t\tcallback();\n\t\t\t\t},\n\t\t\t\tfunction(jqXHR, textStatus, errorThrown) {\n\t\t\t\t\tsweetAlert(getResource('app.apiTimeoutTitle'), getResource(textStatus), \"error\");\n\t\t\t\t\tcallback();\n\t\t\t\t},\n\t\t\t\tgetCookie(ACCESSTOKEN_COOKIE_NAME)\n\t\t\t)\n\t\t}\n\t\t\n\t\tfunction upsertTimeTransactionToDB() {\n\t\t\tvar timeDataForm = ko.toJS(ctCalendarViewModel.selectedTimeTransactionClone());\n\t\t\tvar timeDataSelected = ko.toJS(ctCalendarViewModel.selectedTimeTransaction());\n\t\t\tvar newDateOut = moment(timeDataForm.dateIn);\n\t\t\t\n\t\t\tvar success = function(data, textStatus, jqXHR) {\n\t\t\t\tif (data.success === true) {\n\t\t\t\t\t// Update the copy\n\t\t\t\t\tctCalendarViewModel.selectedTimeTransactionClone().description(data.content[0].transactionDescriptions);\n\t\t\t\t\t\n\t\t\t\t\t// Update the selected item\n\t\t\t\t\tctCalendarViewModel.selectedTimeTransaction().dateIn(ctCalendarViewModel.selectedTimeTransactionClone().dateIn());\n\t\t\t\t\tctCalendarViewModel.selectedTimeTransaction().timeIn(ctCalendarViewModel.selectedTimeTransactionClone().timeIn());\n\t\t\t\t\tctCalendarViewModel.selectedTimeTransaction().dateOut(ctCalendarViewModel.selectedTimeTransactionClone().dateOut());\n\t\t\t\t\tctCalendarViewModel.selectedTimeTransaction().timeOut(ctCalendarViewModel.selectedTimeTransactionClone().timeOut());\n\t\t\t\t\tctCalendarViewModel.selectedTimeTransaction().departmentId(ctCalendarViewModel.selectedTimeTransactionClone().departmentId());\n\t\t\t\t\tctCalendarViewModel.selectedTimeTransaction().dutyDefinitionId(ctCalendarViewModel.selectedTimeTransactionClone().dutyDefinitionId());\n\t\t\t\t\tctCalendarViewModel.selectedTimeTransaction().competenceRoleId(ctCalendarViewModel.selectedTimeTransactionClone().competenceRoleId());\n\t\t\t\t\tctCalendarViewModel.selectedTimeTransaction().taskId(ctCalendarViewModel.selectedTimeTransactionClone().taskId());\n\t\t\t\t\tctCalendarViewModel.selectedTimeTransaction().orderId(ctCalendarViewModel.selectedTimeTransactionClone().orderId());\n\t\t\t\t\tctCalendarViewModel.selectedTimeTransaction().projectId(ctCalendarViewModel.selectedTimeTransactionClone().projectId());\n\t\t\t\t\tctCalendarViewModel.selectedTimeTransaction().subProjectId(ctCalendarViewModel.selectedTimeTransactionClone().subProjectId());\n\t\t\t\t\tctCalendarViewModel.selectedTimeTransaction().phaseId(ctCalendarViewModel.selectedTimeTransactionClone().phaseId());\n\t\t\t\t\tctCalendarViewModel.selectedTimeTransaction().dutyId(ctCalendarViewModel.selectedTimeTransactionClone().dutyId());\n\t\t\t\t\tctCalendarViewModel.selectedTimeTransaction().shiftId(ctCalendarViewModel.selectedTimeTransactionClone().shiftId());\n\t\t\t\t\tctCalendarViewModel.selectedTimeTransaction().fridim1Id(ctCalendarViewModel.selectedTimeTransactionClone().fridim1Id());\n\t\t\t\t\tctCalendarViewModel.selectedTimeTransaction().fridim2Id(ctCalendarViewModel.selectedTimeTransactionClone().fridim2Id());\n\t\t\t\t\tctCalendarViewModel.selectedTimeTransaction().comment(ctCalendarViewModel.selectedTimeTransactionClone().comment());\n\t\t\t\t\tctCalendarViewModel.selectedTimeTransaction().description(ctCalendarViewModel.selectedTimeTransactionClone().description());\n\t\t\t\t\tctCalendarViewModel.selectedTimeTransaction().bNew(false);\n\t\t\t\t\t\n\t\t\t\t\tgetAccumulatedTimeByMonth(ctCalendarViewModel.selectedDate());\n\t\t\t\t\t\n\t\t\t\t\t$.magnificPopup.close();\n\t\t\t\t} else {\n\t\t\t\t\tsweetAlert(getResource('app.informationTitle'), handleServerErrorMessage(data.displayErrorMessage), \"error\");\n\t\t\t\t};\n\t\t\t}\n\t\t\tvar error = function(jqXHR, textStatus, errorThrown) {\n\t\t\t\tsweetAlert(getResource('app.informationTitle'), handleServerErrorMessage(data.displayErrorMessage), \"error\");\n\t\t\t}\n\t\t\t\n\t\t\t// Validate data timeOut\n\t\t\tif (!timeDataForm.timeOut || timeDataForm.timeOut.length < 5) {\n\t\t\t\ttimeDataForm.dateOut = \"\";\n\t\t\t\tnewDateOut = \"\";\n\t\t\t} else {\n\t\t\t\tif (timeDataForm.timeIn > timeDataForm.timeOut) {\n\t\t\t\t\tnewDateOut = newDateOut.add(1,'days').format('YYYY-MM-DD');\n\t\t\t\t\ttimeDataForm.dateOut = newDateOut;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (timeDataForm.bNew) {\n\t\t\t\t_api.createCustomTimeTransaction_POST(\n\t\t\t\t\tsuccess,\n\t\t\t\t\terror,\n\t\t\t\t\tgetCookie(ACCESSTOKEN_COOKIE_NAME),\n\t\t\t\t\ttimeDataForm.dateIn,\n\t\t\t\t\ttimeDataForm.timeIn,\n\t\t\t\t\ttimeDataForm.dateOut,\n\t\t\t\t\ttimeDataForm.timeOut,\n\t\t\t\t\ttimeDataForm.departmentId,\n\t\t\t\t\ttimeDataForm.taskId,\n\t\t\t\t\ttimeDataForm.orderId,\n\t\t\t\t\ttimeDataForm.projectId,\n\t\t\t\t\ttimeDataForm.subProjectId,\n\t\t\t\t\ttimeDataForm.phaseId,\n\t\t\t\t\ttimeDataForm.dutyId,\n\t\t\t\t\ttimeDataForm.competenceRoleId,\n\t\t\t\t\ttimeDataForm.dutyDefinitionId,\n\t\t\t\t\ttimeDataForm.shiftId,\n\t\t\t\t\ttimeDataForm.fridim1Id,\n\t\t\t\t\ttimeDataForm.fridim2Id,\n\t\t\t\t\ttimeDataForm.comment\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\t_api.updateTimeTransaction_POST(\n\t\t\t\t\tsuccess,\n\t\t\t\t\terror,\n\t\t\t\t\tgetCookie(ACCESSTOKEN_COOKIE_NAME),\n\t\t\t\t\ttimeDataSelected.dateIn,\n\t\t\t\t\ttimeDataSelected.timeIn,\n\t\t\t\t\ttimeDataForm.dateIn,\n\t\t\t\t\ttimeDataForm.timeIn,\n\t\t\t\t\ttimeDataForm.dateOut,\n\t\t\t\t\ttimeDataForm.timeOut,\n\t\t\t\t\ttimeDataForm.departmentId,\n\t\t\t\t\ttimeDataForm.taskId,\n\t\t\t\t\ttimeDataForm.orderId,\n\t\t\t\t\ttimeDataForm.projectId,\n\t\t\t\t\ttimeDataForm.subProjectId,\n\t\t\t\t\ttimeDataForm.phaseId,\n\t\t\t\t\ttimeDataForm.dutyId,\n\t\t\t\t\ttimeDataForm.competenceRoleId,\n\t\t\t\t\ttimeDataForm.dutyDefinitionId,\n\t\t\t\t\ttimeDataForm.shiftId,\n\t\t\t\t\ttimeDataForm.fridim1Id,\n\t\t\t\t\ttimeDataForm.fridim2Id,\n\t\t\t\t\ttimeDataForm.comment\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\t\t\n\t\tfunction deleteTimeTransaction() {\n\t\t\tvar timeDataSelected = ko.toJS(ctCalendarViewModel.selectedTimeTransaction());\n\t\t\tvar success = function(data, textStatus, jqXHR) {\n\t\t\t\tif (data.success === true) {\n\t\t\t\t\t// Delete the selected item\n\t\t\t\t\tupdateCalendarItemsForSelectedDay(ctCalendarViewModel.selectedTimeTransaction().dateIn());\n\t\t\t\t\tctCalendarViewModel.daySelected().timeStamps.remove(ctCalendarViewModel.selectedTimeTransaction());\n\t\t\t\t\tgetAccumulatedTimeByMonth(ctCalendarViewModel.selectedDate());\n\t\t\t\t} else {\n\t\t\t\t\tsweetAlert(getResource('app.informationTitle'), handleServerErrorMessage(data.displayErrorMessage), \"error\");\n\t\t\t\t};\n\t\t\t}\n\t\t\tvar error = function(jqXHR, textStatus, errorThrown) {\n\t\t\t\tsweetAlert(getResource('app.informationTitle'), textStatus, \"error\");\n\t\t\t}\n\t\t\t\n\t\t\t_api.deleteTimeTransaction_POST(\n\t\t\t\tsuccess,\n\t\t\t\terror,\n\t\t\t\tgetCookie(ACCESSTOKEN_COOKIE_NAME),\n\t\t\t\ttimeDataSelected.dateIn,\n\t\t\t\ttimeDataSelected.timeIn\n\t\t\t);\n\t\t}\n\t\t\n\t\t// Accumulated time related functions\n\t\t/*////////////////////////////////////////////////////////////*/\n\t\tfunction getAccumulatedTimeByMonth(date) {\n\t\t\tvar fromDate = moment(date).startOf('month');\n\t\t\tvar toDate = moment(date).endOf('month');\n\t\t\tvar success = function(data, textStatus, jqXHR) {\n\t\t\t\tctCalendarViewModel.removeAllAccumulatedTimeByMonth();\n\t\t\t\tctCalendarViewModel.addAccumulatedTimeByMonth(data.content);\n\t\t\t\tctCalendarViewModel.aAccumulatedTimeByMonth.sort(_sortAccumulatedTime);\n\t\t\t}\n\t\t\tvar error = function(jqXHR, textStatus, errorThrown) {\n\t\t\t\tsweetAlert(getResource('app.apiTimeoutTitle'), getResource(textStatus), \"error\");\n\t\t\t}\n\t\t\t_api.getAccumulatedTime_POST(success, error, getCookie(ACCESSTOKEN_COOKIE_NAME), fromDate.format('YYYY-MM-DD'), toDate.format('YYYY-MM-DD'));\n\t\t}\n\t\t\n\t\tfunction getAccumulatedTimeByDay(date) {\n\t\t\tvar success = function(data, textStatus, jqXHR) {\n\t\t\t\tctCalendarViewModel.removeAllAccumulatedTimeByDay();\n\t\t\t\tctCalendarViewModel.addAccumulatedTimeByDay(data.content);\n\t\t\t\tctCalendarViewModel.aAccumulatedTimeByDay.sort(_sortAccumulatedTime);\n\t\t\t}\n\t\t\tvar error = function(jqXHR, textStatus, errorThrown) {\n\t\t\t\tsweetAlert(getResource('app.apiTimeoutTitle'), getResource(textStatus), \"error\");\n\t\t\t}\n\t\t\t_api.getAccumulatedTime_POST(success, error, getCookie(ACCESSTOKEN_COOKIE_NAME), moment(date).format('YYYY-MM-DD'), moment(date).format('YYYY-MM-DD'));\n\t\t}\n\n\t\tfunction refreshEmployeeRegistrationInformation(forDate) {\n\t\t\tvar success = function success(data, textStatus, jqXHR) {\n\t\t\t\tif (data.success == true && data.content.length === 1) {\n\t\t\t\t\tvar registrationSetup = data.content[0];\n\t\t\t\t\tsetLocalStorage('myCapitechPermissionsAndRegistrationSetup', registrationSetup);\n\t\t\t\t}\n\t\t\t};\n\t\t\tvar error = function error(jqXHR, textStatus, errorThrown) {\n\t\t\t\t// sweetAlert(\"Error\", errorThrown, \"error\");\n\t\t\t};\n\t\t\t_api.getEmployeeRegistrationInformation_POST(success, error, getCookie(ACCESSTOKEN_COOKIE_NAME), moment(forDate).format('YYYY-MM-DD'));\n\t\t}\n\t\t\n\t\t// Duty related functions\n\t\t/*////////////////////////////////////////////////////////////*/\n\t\tfunction showDutyWishForm() {\n\t\t\t$.magnificPopup.open({\n\t\t\t\tmainClass: 'dialog-slide-bottom',\n\t\t\t\tcloseOnBgClick: false,\n\t\t\t\tkey:'testtest',\n\t\t\t\titems: {\n\t\t\t\t\tsrc: $('#ct-create-dutywish'),\n\t\t\t\t\ttype: 'inline'\n\t\t\t\t},\n\t\t\t\tcallbacks: {\n\t\t\t\t\topen: function() {\n\t\t\t\t\t\tvar $thisElm = $(this.container[0]);\n\t\t\t\t\t\tinitializeComponents($thisElm);\n\t\t\t\t\t\t\n\t\t\t\t\t\t// Translate labels\n\t\t\t\t\t\ttranslateGUI($thisElm);\n\t\t\t\t\t\t\n\t\t\t\t\t\t// Reset form\n\t\t\t\t\t\tresetDutyWishForm();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\t\n\t\tfunction resetDutyWishForm() {\n\t\t\tvar $dutyWishDateFrom = $('#dutyWishDateFrom');\n\t\t\tvar $dutyWishDateTo = $('#dutyWishDateTo');\n\t\t\tvar dutyWishDateFrom = moment($dutyWishDateFrom.val());\n\t\t\tvar dutyWishDateTo = moment($dutyWishDateTo.val());\n\n\t\t\tif (dutyWishDateFrom.diff(dutyWishDateTo) !== 0) {\n\t\t\t\t$('.ct-checkbox-group-wrapper').removeClass('col-md-6').addClass('col-md-4');\n\t\t\t\t$('.ct-checkbox-days').show(0);\n\t\t\t} else {\n\t\t\t\t$('.ct-checkbox-days').hide(0);\n\t\t\t\t$('.ct-checkbox-group-wrapper').removeClass('col-md-4').addClass('col-md-6');\n\t\t\t}\n\t\t}\n\t\t\n\t\t$('#ct-create-dutywish').on('change', '#dutyWishDateFrom, #dutyWishDateTo', function(e) {\n\t\t\tresetDutyWishForm();\n\t\t});\n\t\t\n\t\tfunction showRequestDutyForm() {\n\t\t\t$.magnificPopup.open({\n\t\t\t\tmainClass: 'dialog-slide-bottom',\n\t\t\t\tcloseOnBgClick: false,\n\t\t\t\titems: {\n\t\t\t\t\tsrc: $('#ct-request-duty'),\n\t\t\t\t\ttype: 'inline'\n\t\t\t\t},\n\t\t\t\tcallbacks: {\n\t\t\t\t\topen: function() {\n\t\t\t\t\t\tvar $thisElm = $(this.container[0]);\n\t\t\t\t\t\tinitializeComponents($thisElm);\n\t\t\t\t\t\t\n\t\t\t\t\t\t// Translate labels\n\t\t\t\t\t\ttranslateGUI($thisElm);\n\t\t\t\t\t},\n\t\t\t\t\tclose: function() {\n\t\t\t\t\t\tif (ctCalendarViewModel.selectedTimeTransaction().bNew()) {\n\t\t\t\t\t\t\tctCalendarViewModel.daySelected().timeStamps.remove(ctCalendarViewModel.selectedTimeTransaction());\n\t\t\t\t\t\t}\n\t\t\t\t\t\tctCalendarViewModel.daySelected().timeStamps.sort(_sortByItemSortOrder);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\t\n\t\t// Manual addition\n\t\t/*////////////////////////////////////////////////////////////*/\n\t\tfunction openManualAddition() {\n\t\t\t$.magnificPopup.open({\n\t\t\t\tmainClass: 'dialog-slide-bottom',\n\t\t\t\tcloseOnBgClick: false,\n\t\t\t\titems: {\n\t\t\t\t\tsrc: $('#ct-manual-addition'),\n\t\t\t\t\ttype: 'inline'\n\t\t\t\t},\n\t\t\t\tcallbacks: {\n\t\t\t\t\topen: function() {\n\t\t\t\t\t\tvar $thisElm = $(this.container[0]);\n\t\t\t\t\t\tinitializeComponents($thisElm);\n\t\t\t\t\t\t\n\t\t\t\t\t\t// Translate labels\n\t\t\t\t\t\ttranslateGUI($thisElm);\n\t\t\t\t\t},\n\t\t\t\t\tclose: function() {\n\t\t\t\t\t\tupdateCalendarItemsForSelectedDay(ctCalendarViewModel.daySelected().date().format('YYYY-MM-DD'));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\t\n\t\t// View models\n\t\t/*////////////////////////////////////////////////////////////*/\n\t\tvar calendarWeekModel = function(date) {\n\t\t\t// properties\n\t\t\tvar self = this;\n\t\t\tself.date = ko.observable(date);\n\t\t\tself.template = 'weekNumberTemplate';\n\t\t};\n\n\t\tvar calendarDayModel = function(date, bCurrentMonth, timeStamps) {\n\t\t\t// properties\n\t\t\tvar self = this;\n\t\t\tself.date = ko.observable(date);\n\t\t\tself.timeStamps = ko.observableArray(timeStamps);\n\t\t\tself.timeStamps.sort(_sortByItemSortOrder);\n\t\t\tself.bCurrentMonth = bCurrentMonth;\n\t\t\tself.dayOfMonth = ko.computed(function() {\n\t\t\t\treturn parseInt(moment(self.date()).format('D'));\n\t\t\t}, self);\n\t\t\tself.monthName = ko.computed(function() {\n\t\t\t\treturn moment(self.date()).format('MMMM');\n\t\t\t}, self);\n\t\t\tself.shortMonthName = ko.computed(function() {\n\t\t\t\tif (self.dayOfMonth() === 1 || (self.bCurrentMonth === false && self.dayOfMonth() == moment(self.date()).endOf('month').format('D'))) {\n\t\t\t\t\treturn '. ' + moment(self.date()).format('MMM');\n\t\t\t\t} else {\n\t\t\t\t\treturn ''\n\t\t\t\t}\n\t\t\t}, self);\n\t\t\tself.template = 'dayTemplate';\n\t\t\tself.bCanEditBackInTime = ko.computed(function() {\n\t\t\t\tvar bShow = false;\n\t\t\t\tvar now;\n\t\t\t\tvar dayDiff;\n\t\t\t\tvar secondsDiff;\n\t\t\t\tvar registrationSetup = getLocalStorage('myCapitechPermissionsAndRegistrationSetup');\n\t\t\t\t\n\t\t\t\ttry {\n\t\t\t\t\tsecondsDiff = ctCalendarViewModel.now().diff(moment(self.date()), 'seconds');\n\t\t\t\t\tdayDiff = moment(ctCalendarViewModel.now()).startOf('day').diff(moment(self.date()), 'day', true);\n\t\t\t\t\t\n\t\t\t\t\t// IF canRegisterAtAll IS true\n\t\t\t\t\t// AND secondsDiff IS GTE -7205 (Added 5 seconds to to hours, so the user GUI is updated when the time is 22:00)\n\t\t\t\t\t// AND dayDiff LTE numberOfDaysBackInTimeRegisteringIsAllowed\n\t\t\t\t\t// AND canRegisterAtAll IS true\n\t\t\t\t\t// THEN the user will have permission to register hours on the selected date.\n\t\t\t\t\tif (\n\t\t\t\t\t\tregistrationSetup.canRegisterAtAll && (\n\t\t\t\t\t\t\t(secondsDiff >= -7205 && dayDiff <= registrationSetup.numberOfDaysBackInTimeRegisteringIsAllowed && registrationSetup.canRegisterBackInTime === true)\n\t\t\t\t\t\t)\n\t\t\t\t\t) {\n\t\t\t\t\t\tbShow = true;\n\t\t\t\t\t}\n\t\t\t\t} catch (err) {\n\t\t\t\t\t// console.log(err);\n\t\t\t\t}\n\t\t\t\treturn bShow;\n\t\t\t}, self);\n\t\t\tself.bCanEditForwardsInTime = ko.computed(function() {\n\t\t\t\tvar bShow = false;\n\t\t\t\tvar dayDiff;\n\t\t\t\tvar secondsDiff;\n\t\t\t\tvar registrationSetup = getLocalStorage('myCapitechPermissionsAndRegistrationSetup');\n\t\t\t\t\n\t\t\t\ttry {\n\t\t\t\t\tsecondsDiff = moment(self.date()).diff(ctCalendarViewModel.now(), 'seconds');\n\t\t\t\t\tdayDiff = moment(self.date()).startOf('day').diff(ctCalendarViewModel.now(), 'day', true);\n\t\t\t\t\t\n\t\t\t\t\t// IF canRegisterAtAll IS true\n\t\t\t\t\t// AND canRegisterForwardInTime IS TRUE\n\t\t\t\t\t// AND secondsDiff IS GTE 7205 (Added 5 seconds to to hours, so the user GUI is updated when the time is 22:00)\n\t\t\t\t\t// AND dayDiff LTE numberOfDaysForwardInTimeRegisteringIsAllowed\n\t\t\t\t\t// THEN the user will have permission to register hours on the selected date.\n\t\t\t\t\tif (\n\t\t\t\t\t\tregistrationSetup.canRegisterAtAll && registrationSetup.canRegisterForwardInTime === true && (\n\t\t\t\t\t\t\t(secondsDiff >= 7205 && dayDiff <= registrationSetup.numberOfDaysForwardInTimeRegisteringIsAllowed)\n\t\t\t\t\t\t)\n\t\t\t\t\t) {\n\t\t\t\t\t\tbShow = true;\n\t\t\t\t\t}\n\t\t\t\t} catch (err) {\n\t\t\t\t\t// console.log(err);\n\t\t\t\t}\n\t\t\t\treturn bShow;\n\t\t\t}, self);\n\t\t\t\n\t\t\tself.bCanRegisterInOut = ko.computed(function() {\n\t\t\t\tvar bShow = false;\n\t\t\t\tvar registrationSetup = getLocalStorage('myCapitechPermissionsAndRegistrationSetup');\n\t\t\t\tvar userSettings = getLocalStorage('myCapitechUserSettings');\n\t\t\t\tif (userSettings && userSettings.deactivateTimeInAndOutButtons && userSettings.deactivateTimeInAndOutButtons === \"true\") {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\ttry {\n\t\t\t\t\tvar now = getMomentDateTimeNow();\n\t\t\t\t\tvar diff = moment.duration(moment(now.format(\"YYYY-MM-DD\")).diff(moment(self.date())));\n\t\t\t\t\tvar dayDiff = diff.asDays();\n\t\t\t\t\tif (\n\t\t\t\t\t\tregistrationSetup.canRegisterAtAll && (\n\t\t\t\t\t\t\t(dayDiff === 0 && registrationSetup.canRegisterBackInTime === false || (dayDiff >= 0 && dayDiff <= registrationSetup.numberOfDaysBackInTimeRegisteringIsAllowed && registrationSetup.canRegisterBackInTime === true))\n\t\t\t\t\t\t\t// ||\n\t\t\t\t\t\t\t// (dayDiff === 0 && registrationSetup.canRegisterForwardInTime === false || (dayDiff >= 0 && dayDiff <= registrationSetup.numberOfDaysForwardInTimeRegisteringIsAllowed && registrationSetup.canRegisterForwardInTime === true))\n\t\t\t\t\t\t)\n\t\t\t\t\t) {\n\t\t\t\t\t\tbShow = true;\n\t\t\t\t\t}\n\t\t\t\t} catch (err) {\n\t\t\t\t}\n\t\t\t\treturn bShow;\n\t\t\t});\n\t\t\tself.bTodayOrFuture = ko.computed(function() {\n\t\t\t\tvar bReturn = false;\n\t\t\t\tvar now = getMomentDateTimeNow();\n\t\t\t\ttry {\n\t\t\t\t\tvar diff = now.diff(self.date(), 'days', false);\n\t\t\t\t\tif (diff <= 0) {\n\t\t\t\t\t\tbReturn = true;\n\t\t\t\t\t}\n\t\t\t\t} catch (err) {\n\t\t\t\t}\n\t\t\t\treturn bReturn;\n\t\t\t});\n\t\t\tself.bToday = ko.computed(function() {\n\t\t\t\tvar now = getMomentDateTimeNow();\n\t\t\t\tvar diff = moment.duration(moment(self.date()).diff(now.format(\"YYYY-MM-DD\")));\n\t\t\t\tvar dayDiff = diff.asDays();\n\t\t\t\tvar bShow = false;\n\t\t\t\tif (dayDiff == 0) {\n\t\t\t\t\tbShow = true;\n\t\t\t\t}\n\t\t\t\treturn bShow;\n\t\t\t});\n\t\t\tself.bYesterday = ko.computed(function() {\n\t\t\t\tvar now = getMomentDateTimeNow();\n\t\t\t\tvar diff = moment.duration(moment(self.date()).diff(now.format(\"YYYY-MM-DD\")));\n\t\t\t\tvar dayDiff = diff.asDays();\n\t\t\t\tvar bShow = false;\n\t\t\t\tif (dayDiff == -1) {\n\t\t\t\t\tbShow = true;\n\t\t\t\t}\n\t\t\t\treturn bShow;\n\t\t\t});\n\t\t\tself.bValidateRequiredFieldsHasValue = ko.computed(function() {\n\t\t\t\tvar bValidateRequiredFieldsHasValue = true;\n\t\t\t\tvar registrationRules = loweCaseObjectKeys(getLocalStorage('myCapitechPermissionsAndRegistrationSetup').registrationRules);\n\t\t\t\tvar registrationDefaults = loweCaseObjectKeys(getLocalStorage('myCapitechPermissionsAndRegistrationSetup').registrationDefaults);\n\t\t\t\tvar registrationRequiredFields = loweCaseObjectKeys(getLocalStorage('myCapitechPermissionsAndRegistrationSetup').registrationRequiredFields);\n\t\t\t\t\n\t\t\t\tif (self.bToday()) {\n\t\t\t\t\t// add department to registrationSetup\n\t\t\t\t\tregistrationRules.registerDepartment = true;\n\t\t\t\n\t\t\t\t\t$.each(registrationRules, function(key, value) {\n\t\t\t\t\t\tvar keyLowerCase = key.slice(8).toLowerCase();\n\t\t\t\t\t\tvar bRequired = registrationRequiredFields['is' + key.slice(8) + 'idrequired'];\n\t\t\t\t\t\tvar keyValue = registrationDefaults[keyLowerCase + 'id'];\n\t\t\t\t\t\t\n\t\t\t\t\t\tif (bRequired) {\n\t\t\t\t\t\t\tif (keyValue == null) {\n\t\t\t\t\t\t\t\t// If this condition occurs set false and break out of each loop.\n\t\t\t\t\t\t\t\tbValidateRequiredFieldsHasValue = false;\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tbValidateRequiredFieldsHasValue = false;\n\t\t\t\t}\n\t\t\t\treturn bValidateRequiredFieldsHasValue;\n\t\t\t});\n\t\t\tself.bDisplayStampOut = ko.computed(function() {\n\t\t\t\tvar bDisplayStampOut = false;\n\n\t\t\t\tvar userSettings = getLocalStorage('myCapitechUserSettings');\n\t\t\t\tif (userSettings && userSettings.deactivateTimeInAndOutButtons && userSettings.deactivateTimeInAndOutButtons === \"true\") {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif ((self.bToday() || self.bYesterday()) && self.timeStamps().length > 0) {\n\t\t\t\t\t$(self.timeStamps()).each(function(index, obj) {\n\t\t\t\t\t\tif (obj.template() === 'timeTransaction' || obj.template() === 'timeTransactionMissingTimeOut') {\n\t\t\t\t\t\t\tif (obj.timeOut()) {\n\t\t\t\t\t\t\t\tbDisplayStampOut = false;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tbDisplayStampOut = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn bDisplayStampOut;\n\t\t\t}, self);\n\t\t\t\n\t\t\t// functions\n\t\t\tself.deleteTimeTransaction = function(timeStamp) {\n\t\t\t\tself.timeStamps.remove(timeStamp);\n\t\t\t};\n\t\t\tself.clickAddTimeTransactionAction = function(day) {\n\t\t\t\tself.newTimeTransaction(day);\n\t\t\t}\n\t\t\tself.newTimeTransaction = function(day) {\n\t\t\t\tvar timeIn = moment(new Date()).format('HH:mm');\n\t\t\t\tvar tempTimeIn;\n\t\t\t\tvar timeStamp;\n\t\t\t\tif (day.bToday() === false && day.bTodayOrFuture() === true && day.timeStamps().length === 0) {\n\t\t\t\t\ttimeIn = \"00:00\"\n\t\t\t\t} else if (day.timeStamps().length > 0) {\n\t\t\t\t\tfor (var i = 0; i < day.timeStamps().length; i++) {\n\t\t\t\t\t\tvar tempObj = day.timeStamps()[i];\n\t\t\t\t\t\tif ((tempObj.template() == 'timeTransaction' || tempObj.template() == 'timeTransactionMissingTimeOut') && typeof tempObj.timeOut() !== 'undefined') {\n\t\t\t\t\t\t\ttempTimeIn = tempObj.timeOut();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (typeof tempTimeIn !== 'undefined' && tempTimeIn !== null && tempTimeIn.length === 5) {\n\t\t\t\t\t\ttimeIn = tempTimeIn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ttimeStamp = new calendarDayItemModel({dateIn: moment(day.date()).format('YYYY-MM-DD'), timeIn: timeIn, bNew: true});\n\t\t\t\tctCalendarViewModel.selectedTimeTransaction(timeStamp);\n\t\t\t\tself.timeStamps.push(timeStamp);\n\t\t\t\tloadTimeStampFormData();\n\t\t\t}\n\t\t\tself.clickAddDutyWishAction = function(day) {\n\t\t\t\tvar timeStamp = new calendarDayItemModel({dateIn: moment(day.date()).format('YYYY-MM-DD'), bNew: true});\n\t\t\t\tctCalendarViewModel.selectedTimeTransaction(timeStamp);\n\t\t\t\tself.timeStamps.push(timeStamp);\n\t\t\t\tloadTimeStampFormData();\n\t\t\t}\n\t\t\tself.displayDayDutyWishFormClickAction = function() {\n\t\t\t\tshowDutyWishForm();\n\t\t\t}\n\t\t\t\n\t\t\tself.createDefaultTimeTransactionIn = function(day) {\n\t\t\t\tvar success = function(data, textStatus, jqXHR) {\n\t\t\t\t\tloaderIndicator(false);\n\t\t\t\t\tif (data.success === true) {\n\t\t\t\t\t\tupdateCalendarItemsForSelectedDay(ctCalendarViewModel.daySelected().date().format('YYYY-MM-DD'));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsweetAlert(getResource('app.informationTitle'), handleServerErrorMessage(data.displayErrorMessage), \"error\");\n\t\t\t\t\t\tself.clickAddTimeTransactionAction(day);\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tvar error = function(jqXHR, textStatus, errorThrown) {\n\t\t\t\t\tloaderIndicator(false);\n\t\t\t\t\tsweetAlert(getResource('app.apiTimeoutTitle'), getResource(textStatus), \"error\");\n\t\t\t\t}\n\t\t\t\tloaderIndicator(true);\n\t\t\t\t_api.createDefaultTimeTransactionIn_POST(\n\t\t\t\t\tsuccess,\n\t\t\t\t\terror,\n\t\t\t\t\tgetCookie(ACCESSTOKEN_COOKIE_NAME)\n\t\t\t\t);\n\t\t\t}\n\t\t\t\n\t\t\tself.createTimeTransactionOut = function() {\n\t\t\t\tvar success = function(data, textStatus, jqXHR) {\n\t\t\t\t\tloaderIndicator(false);\n\t\t\t\t\tif (data.success === true) {\n\t\t\t\t\t\tupdateCalendarItemsForSelectedDay(ctCalendarViewModel.daySelected().date().format('YYYY-MM-DD'));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsweetAlert(getResource('app.informationTitle'), handleServerErrorMessage(data.displayErrorMessage), \"error\");\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tvar error = function(jqXHR, textStatus, errorThrown) {\n\t\t\t\t\tloaderIndicator(false);\n\t\t\t\t\tsweetAlert(getResource('app.apiTimeoutTitle'), getResource(textStatus), \"error\");\n\t\t\t\t}\n\t\t\t\tloaderIndicator(true);\n\t\t\t\t_api.createTimeTransactionOut_POST(\n\t\t\t\t\tsuccess,\n\t\t\t\t\terror,\n\t\t\t\t\tgetCookie(ACCESSTOKEN_COOKIE_NAME)\n\t\t\t\t);\n\t\t\t}\n\t\t\t\n\t\t\tself.pageNavigateToAbsence = function() {\n\t\t\t\tvar currentDate = self.date().format(\"YYYY-MM-DD\");\n\t\t\t\twindow.location.href = 'absence.htm?v={gulp-my-capitech-version}&selectedDate=' + currentDate + '#absence';\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t};\n\t\t\n\t\tvar calendarDayItemModel = function(properties) {\n\t\t\tif(typeof(properties)==='undefined')\t\t\t\t\t\t\t\t\t\t\tproperties\t\t\t\t\t\t\t\t\t\t=\t\t{};\n\t\t\tif(typeof(properties.clientId)==='undefined')\t\t\t\t\t\t\t\t\tproperties.clientId\t\t\t\t\t\t\t\t=\t\tgetCookie(CLIENTID_COOKIE_NAME);\n\t\t\tif(typeof(properties.comment)==='undefined')\t\t\t\t\t\t\t\t\tproperties.comment\t\t\t\t\t\t\t\t=\t\t'';\n\t\t\tif(typeof(properties.notes)==='undefined' || properties.notes === null)\t\t\tproperties.notes\t\t\t\t\t\t\t\t=\t\t'';\n\t\t\tif(typeof(properties.dateIn)==='undefined')\t\t\t\t\t\t\t\t\t\tproperties.dateIn\t\t\t\t\t\t\t\t=\t\tmoment(new Date()).format('YYYY-MM-DD');\n\t\t\tif(typeof(properties.dateOut)==='undefined' || properties.dateOut === null)\t\tproperties.dateOut\t\t\t\t\t\t\t\t=\t\tproperties.dateIn;\n\t\t\tif(typeof(properties.departmentId)==='undefined')\t\t\t\t\t\t\t\tproperties.departmentId\t\t\t\t\t\t\t=\t\tgetLocalStorage('myCapitechPermissionsAndRegistrationSetup').registrationDefaults.departmentId;\n\t\t\tif(typeof(properties.dutyId)==='undefined')\t\t\t\t\t\t\t\t\t\tproperties.dutyId\t\t\t\t\t\t\t\t=\t\tgetLocalStorage('myCapitechPermissionsAndRegistrationSetup').registrationDefaults.dutyId;\n\t\t\tif(typeof(properties.fridim1Id)==='undefined')\t\t\t\t\t\t\t\t\tproperties.fridim1Id\t\t\t\t\t\t\t=\t\tgetLocalStorage('myCapitechPermissionsAndRegistrationSetup').registrationDefaults.fridim1Id;\n\t\t\tif(typeof(properties.fridim2Id)==='undefined')\t\t\t\t\t\t\t\t\tproperties.fridim2Id\t\t\t\t\t\t\t=\t\tgetLocalStorage('myCapitechPermissionsAndRegistrationSetup').registrationDefaults.fridim2Id;\n\t\t\tif(typeof(properties.orderId)==='undefined')\t\t\t\t\t\t\t\t\tproperties.orderId\t\t\t\t\t\t\t\t=\t\tgetLocalStorage('myCapitechPermissionsAndRegistrationSetup').registrationDefaults.orderId;\n\t\t\tif(typeof(properties.originIn)==='undefined')\t\t\t\t\t\t\t\t\tproperties.originIn\t\t\t\t\t\t\t\t=\t\t'';\n\t\t\tif(typeof(properties.originOut)==='undefined')\t\t\t\t\t\t\t\t\tproperties.originOut\t\t\t\t\t\t\t=\t\t'';\n\t\t\tif(typeof(properties.originalTimeIn)==='undefined')\t\t\t\t\t\t\t\tproperties.originalTimeIn\t\t\t\t\t\t=\t\t'';\n\t\t\tif(typeof(properties.originalTimeOut)==='undefined')\t\t\t\t\t\t\tproperties.originalTimeOut\t\t\t\t\t\t=\t\t'';\n\t\t\tif(typeof(properties.periodPlanId)==='undefined')\t\t\t\t\t\t\t\tproperties.periodPlanId\t\t\t\t\t\t\t=\t\tgetLocalStorage('myCapitechPermissionsAndRegistrationSetup').registrationDefaults.periodPlanId;\n\t\t\tif(typeof(properties.phaseId)==='undefined')\t\t\t\t\t\t\t\t\tproperties.phaseId\t\t\t\t\t\t\t\t=\t\tgetLocalStorage('myCapitechPermissionsAndRegistrationSetup').registrationDefaults.phaseId;\n\t\t\tif(typeof(properties.projectId)==='undefined')\t\t\t\t\t\t\t\t\tproperties.projectId\t\t\t\t\t\t\t=\t\tgetLocalStorage('myCapitechPermissionsAndRegistrationSetup').registrationDefaults.projectId;\n\t\t\tif(typeof(properties.shiftId)==='undefined')\t\t\t\t\t\t\t\t\tproperties.shiftId\t\t\t\t\t\t\t\t=\t\tgetLocalStorage('myCapitechPermissionsAndRegistrationSetup').registrationDefaults.shiftId;\n\t\t\tif(typeof(properties.subProjectId)==='undefined')\t\t\t\t\t\t\t\tproperties.subProjectId\t\t\t\t\t\t\t=\t\tgetLocalStorage('myCapitechPermissionsAndRegistrationSetup').registrationDefaults.subProjectId;\n\t\t\tif(typeof(properties.taskId)==='undefined')\t\t\t\t\t\t\t\t\t\tproperties.taskId\t\t\t\t\t\t\t\t=\t\tgetLocalStorage('myCapitechPermissionsAndRegistrationSetup').registrationDefaults.taskId;\n\t\t\t// Flow plan properties\n\t\t\tif(typeof(properties.dutyDefinitionId)==='undefined')\t\t\t\t\t\t\tproperties.dutyDefinitionId\t\t\t\t\t\t=\t\tgetLocalStorage('myCapitechPermissionsAndRegistrationSetup').registrationDefaults.dutyDefinitionId;\n\t\t\tif(typeof(properties.competenceRoleId)==='undefined')\t\t\t\t\t\t\tproperties.competenceRoleId\t\t\t\t\t\t=\t\tgetLocalStorage('myCapitechPermissionsAndRegistrationSetup').registrationDefaults.competenceRoleId;\n\n\t\t\tif(typeof(properties.timeIn)==='undefined')\t\t\t\t\t\t\t\t\t\tproperties.timeIn\t\t\t\t\t\t\t\t=\t\tmoment(new Date()).format('HH:mm');\n\t\t\tif(typeof(properties.timeOut)==='undefined')\t\t\t\t\t\t\t\t\tproperties.timeOut\t\t\t\t\t\t\t\t=\t\t'';\n\t\t\tif(typeof(properties.template)==='undefined')\t\t\t\t\t\t\t\t\tproperties.template\t\t\t\t\t\t\t\t=\t\t'timeTransaction';\n\t\t\tif(typeof(properties.bNew)==='undefined')\t\t\t\t\t\t\t\t\t\tproperties.bNew\t\t\t\t\t\t\t\t\t=\t\tfalse;\n\t\t\t// description is a custom property that both absence and planned duty uses\n\t\t\tif(typeof(properties.description)==='undefined')\t\t\t\t\t\t\t\tproperties.description\t\t\t\t\t\t\t=\t\t'';\n\t\t\t// this is planned duty specific properties\n\t\t\tif(typeof(properties.departmentName)==='undefined')\t\t\t\t\t\t\t\tproperties.departmentName\t\t\t\t\t\t=\t\t'';\n\t\t\tif(typeof(properties.dutyIdString)==='undefined')\t\t\t\t\t\t\t\tproperties.dutyIdString\t\t\t\t\t\t\t=\t\t'';\n\t\t\tif(typeof(properties.dutyPlanId)==='undefined')\t\t\t\t\t\t\t\t\tproperties.dutyPlanId\t\t\t\t\t\t\t=\t\t'';\n\t\t\t// this is duty wish (day and period) specific properties\n\t\t\tif(typeof(properties.dutyWishStartDate)==='undefined')\t\t\t\t\t\t\tproperties.dutyWishStartDate\t\t\t\t\t=\t\t'';\n\t\t\tif(typeof(properties.dutyWishEndDate)==='undefined')\t\t\t\t\t\t\tproperties.dutyWishEndDate\t\t\t\t\t\t=\t\t'';\n\t\t\tif(typeof(properties.requestedDepartmentIds)==='undefined')\t\t\t\t\t\tproperties.requestedDepartmentIds\t\t\t\t=\t\t[];\n\t\t\tif(typeof(properties.requestedDutyTypeIds)==='undefined')\t\t\t\t\t\tproperties.requestedDutyTypeIds\t\t\t\t\t=\t\t[];\n\t\t\tif(typeof(properties.isEmployeeAvaliableOnShortNotice)==='undefined')\t\t\tproperties.isEmployeeAvaliableOnShortNotice\t\t=\t\tfalse;\n\n\t\t\tif(typeof(properties.dutyDescriptions)==='undefined')\t\t\t\t\t\t\tproperties.dutyDescriptions\t\t\t\t\t\t=\t\t'';\n\n\t\t\t// this is requested duty specific properties\n\t\t\tif(typeof(properties.startDate)==='undefined')\t\t\t\t\t\t\t\t\tproperties.startDate\t\t\t\t\t\t\t=\t\t'';\n\t\t\t\n\t\t\tvar self = this;\n\t\t\tself.clientId\t\t\t\t\t\t\t= ko.observable(properties.clientId);\n\t\t\tself.comment\t\t\t\t\t\t\t= ko.observable(properties.comment);\n\t\t\tself.notes\t\t\t\t\t\t\t\t= ko.observable(properties.notes);\n\t\t\tself.dateIn\t\t\t\t\t\t\t\t= ko.observable(properties.dateIn);\n\t\t\tself.dateOut\t\t\t\t\t\t\t= ko.observable(properties.dateOut);\n\t\t\tself.departmentId\t\t\t\t\t\t= ko.observable(properties.departmentId); // getLocalStorage('myCapitechPermissionsAndRegistrationSetup').registrationDefaults.departmentId\n\t\t\tself.dutyId\t\t\t\t\t\t\t\t= ko.observable(properties.dutyId);\n\t\t\tself.employeeGroupId\t\t\t\t\t= ko.observable(properties.employeeGroupId);\n\t\t\tself.employeeId\t\t\t\t\t\t\t= ko.observable(properties.employeeId);\n\t\t\tself.fridim1Id\t\t\t\t\t\t\t= ko.observable(properties.fridim1Id);\n\t\t\tself.fridim2Id\t\t\t\t\t\t\t= ko.observable(properties.fridim2Id);\n\t\t\tself.orderId\t\t\t\t\t\t\t= ko.observable(properties.orderId);\n\t\t\tself.originIn\t\t\t\t\t\t\t= ko.observable(properties.originIn);\n\t\t\tself.originOut\t\t\t\t\t\t\t= ko.observable(properties.originOut);\n\t\t\tself.originalTimeIn\t\t\t\t\t\t= ko.observable(properties.originalTimeIn);\n\t\t\tself.originalTimeOut\t\t\t\t\t= ko.observable(properties.originalTimeOut);\n\t\t\tself.periodPlanId\t\t\t\t\t\t= ko.observable(properties.periodPlanId);\n\t\t\tself.phaseId\t\t\t\t\t\t\t= ko.observable(properties.phaseId);\n\t\t\tself.projectId\t\t\t\t\t\t\t= ko.observable(properties.projectId);\n\t\t\tself.shiftId\t\t\t\t\t\t\t= ko.observable(properties.shiftId);\n\t\t\tself.subProjectId\t\t\t\t\t\t= ko.observable(properties.subProjectId);\n\t\t\tself.systemDate\t\t\t\t\t\t\t= ko.observable(properties.systemDate);\n\t\t\tself.systemTime\t\t\t\t\t\t\t= ko.observable(properties.systemTime);\n\t\t\tself.taskId\t\t\t\t\t\t\t\t= ko.observable(properties.taskId);\n\t\t\tself.timeIn\t\t\t\t\t\t\t\t= ko.observable(properties.timeIn);\n\t\t\tself.timeOut\t\t\t\t\t\t\t= ko.observable(properties.timeOut);\n\t\t\tself.template\t\t\t\t\t\t\t= ko.observable(properties.template);\n\t\t\tself.bNew\t\t\t\t\t\t\t\t= ko.observable(properties.bNew);\n\t\t\t// description is a custom property that both absence and planned duty uses\n\t\t\tself.description\t\t\t\t\t\t= ko.observable(properties.description);\n\t\t\t// this is planned duty specific properties\n\t\t\tself.departmentName\t\t\t\t\t\t= ko.observable(properties.departmentName);\n\t\t\tself.dutyIdString\t\t\t\t\t\t= ko.observable(properties.dutyIdString);\n\t\t\tself.dutyPlanId\t\t\t\t\t\t\t= ko.observable(properties.dutyPlanId);\n\t\t\t// Flow plan properties\n\t\t\tself.dutyDefinitionId\t\t\t\t\t= ko.observable(properties.dutyDefinitionId);\n\t\t\tself.competenceRoleId\t\t\t\t\t= ko.observable(properties.competenceRoleId);\n\t\t\t// this is duty wish specific properties\n\t\t\tself.dutyWishStartDate\t\t\t\t\t= ko.observable(properties.dutyWishStartDate);\n\t\t\tself.dutyWishEndDate\t\t\t\t\t= ko.observable(properties.dutyWishEndDate);\n\t\t\tself.requestedDepartmentIds\t\t\t\t= ko.observable(properties.requestedDepartmentIds);\n\t\t\tself.requestedDutyTypeIds\t\t\t\t= ko.observable(properties.requestedDutyTypeIds);\n\t\t\tself.isEmployeeAvaliableOnShortNotice\t= ko.observable(properties.isEmployeeAvaliableOnShortNotice);\n\t\t\tself.dutyDescriptions\t\t\t\t\t= ko.observable(properties.dutyDescriptions);\n\n\t\t\t// this is requested duty specific properties\n\t\t\tself.startDate\t\t\t\t\t\t\t= ko.observable(properties.startDate);\n\n\t\t\tself.itemSortOrder\t\t\t\t\t= ko.observable(1000);\n\t\t\tif (self.template() === 'absenceTransaction') {\n\t\t\t\tself.itemSortOrder(0);\n\t\t\t} else if (self.template() === 'plannedDuties') {\n\t\t\t\tself.itemSortOrder(1);\n\t\t\t} else if (self.template() === 'timeTransaction') {\n\t\t\t\tself.itemSortOrder(2);\n\t\t\t} else if (self.template() === 'requestedDuties') {\n\t\t\t\tself.itemSortOrder(4);\n\t\t\t} else if (self.template() === 'dutyWish') {\n\t\t\t\tself.itemSortOrder(5);\n\t\t\t} else if (self.template() === 'dutyWishPeriods') {\n\t\t\t\tself.itemSortOrder(6);\n\t\t\t} else if (self.template() === 'avaliableDuties') {\n\t\t\t\tself.itemSortOrder(7);\n\t\t\t}\n\n\t\t\t// time transaction missing out should use own template\n\t\t\tself.dynamicTemplateSwitcher = ko.computed(function() {\n\t\t\t\tvar bSwitched = false;\n\t\t\t\tif (self.template() == \"timeTransaction\" && !self.timeOut()) {\n\t\t\t\t\tself.template('timeTransactionMissingTimeOut');\n\t\t\t\t\tbSwitched = true;\n\t\t\t\t}\n\t\t\t\tif (self.template() == \"timeTransactionMissingTimeOut\" && self.timeOut()) {\n\t\t\t\t\tself.template('timeTransaction');\n\t\t\t\t\tbSwitched = true;\n\t\t\t\t}\n\t\t\t\treturn bSwitched;\n\t\t\t}, self);\n\t\t\t\n\t\t\tself.editTimeStampClickAction = function(timeStamp) {\n\t\t\t\tctCalendarViewModel.selectedTimeTransaction(timeStamp);\n\t\t\t\tloadTimeStampFormData();\n\t\t\t};\n\t\t\tself.deleteTimeTransactionClickAction = function(timeStamp) {\n\t\t\t\tctCalendarViewModel.selectedTimeTransaction(timeStamp);\n\t\t\t\tsweetAlert({\n\t\t\t\t\ttitle: getResource('app.confirmDeletionTitle'),\n\t\t\t\t\ttype: \"warning\",\n\t\t\t\t\tshowCancelButton: true,\n\t\t\t\t\tconfirmButtonColor: \"#DD6B55\",\n\t\t\t\t\tconfirmButtonText: getResource('app.delete'),\n\t\t\t\t\tcancelButtonText: getResource('app.cancel')\n\t\t\t\t},function() {\n\t\t\t\t\tdeleteTimeTransaction();\n\t\t\t\t});\n\t\t\t}\n\t\t\tself.viewTimeStampClickAction = function(timeTransaction) {\n\t\t\t\tvar markup = '';\n\t\t\t\tvar date = moment(timeTransaction.dateIn()).format('LL');\n\t\t\t\tvar time = '';\n\t\t\t\tvar timeOut = timeTransaction.timeOut();\n\t\t\t\n\t\t\t\tvar success = function(data, textStatus, jqXHR) {\n\t\t\t\t\tloaderIndicator(false);\n\t\t\t\t\t\n\t\t\t\t\tctCalendarViewModel.selectedTimeTransactionAccumulatedTime.removeAll();\n\t\t\t\t\tif (data.content.length > 0) {\n\t\t\t\t\t\t$(data.content).each(function(index, obj) {\n\t\t\t\t\t\t\tctCalendarViewModel.selectedTimeTransactionAccumulatedTime.push(new accumulatedTimeModel(obj));\n\t\t\t\t\t\t});\n\t\t\t\t\t\tctCalendarViewModel.selectedTimeTransactionAccumulatedTime.sort(_sortAccumulatedTime);\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tif (timeTransaction.bCanDoManualAddition()) {\n\t\t\t\t\t\tctCalendarViewModel.timeCategoryForManualAddition.removeAll();\n\t\t\t\t\t\t$(getLocalStorage('myCapitechTimeCategoryForManualAddition')).each(function(index,obj) {\n\t\t\t\t\t\t\tctCalendarViewModel.timeCategoryForManualAddition.push(new timeCategoryForManualAdditionModel(obj));\n\t\t\t\t\t\t});\n\t\t\t\t\t\tctCalendarViewModel.timeCategoryForManualAddition.sort(_sortAccumulatedTime);\n\t\t\t\t\t\t\n\t\t\t\t\t\tctCalendarViewModel.selectedTimeTransaction(timeTransaction);\n\t\t\t\t\t\topenManualAddition();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (timeTransaction.timeIn() !== timeTransaction.timeOut()) {\n\t\t\t\t\t\t\tif (!timeTransaction.timeOut()) {\n\t\t\t\t\t\t\t\ttimeOut = 'XX:XX';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ttime = ', ' + timeTransaction.timeIn() + ' - ' + timeOut;\n\t\t\t\t\t\t}\n\t\t\t\n\t\t\t\t\t\tmarkup = '

        ' + date + time + '

        ' +\n\t\t\t\t\t\t\t\t '

        ' + getResource('app.informationText') + '
        ' +\n\t\t\t\t\t\t\t\t timeTransaction.description() + '

        ';\n\t\t\t\n\t\t\t\t\t\tif (timeTransaction.comment().length > 0) {\n\t\t\t\t\t\t\tmarkup = markup +\n\t\t\t\t\t\t\t\t\t '

        ' + getResource('dimension.commentLabel') + '
        ' +\n\t\t\t\t\t\t\t\t\t timeTransaction.comment() + '

        ';\n\t\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t\tif (ctCalendarViewModel.selectedTimeTransactionAccumulatedTime().length > 0) {\n\t\t\t\t\t\t\tmarkup = markup + '

        ' + getResource('app.hoursAndExtraRates') + '
        ';\n\t\t\t\t\t\t\t$(ctCalendarViewModel.selectedTimeTransactionAccumulatedTime()).each(function(index, obj) {\n\t\t\t\t\t\t\t\tmarkup = markup + obj.timeCategoryDescription() + ': ' + obj.amount().toFixed(2) + '
        '\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tmarkup = markup + '

        ';\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsweetAlert({title: getResource('timestamp.detailedTitle'), text: markup, html: true});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\n\t\t\t\tvar error = function(jqXHR, textStatus, errorThrown) {\n\t\t\t\t\tloaderIndicator(false);\n\t\t\t\t\tsweetAlert(getResource('app.apiTimeoutTitle'), getResource(textStatus), \"error\");\n\t\t\t\t}\n\t\t\t\n\t\t\t\tloaderIndicator(true);\n\t\t\t\t_api.getAccumulatedTimeForSingleTransaction_POST(\n\t\t\t\t\tsuccess,\n\t\t\t\t\terror,\n\t\t\t\t\tgetCookie(ACCESSTOKEN_COOKIE_NAME),\n\t\t\t\t\ttimeTransaction.dateIn(),\n\t\t\t\t\ttimeTransaction.timeIn()\n\t\t\t\t);\n\t\t\t}\n\t\t\tself.viewDutyClickAction = function(duty) {\n\t\t\t\tvar markup = '';\n\t\t\t\tvar date = moment(duty.dateIn()).format('LL');\n\t\t\t\tvar time = '';\n\t\t\t\tvar resourceKey = 'app.detailsTitle';\n\t\t\t\n\t\t\t\tif (duty.template() == 'plannedDuties') {\n\t\t\t\t\tresourceKey = 'plannedDuty.detailedTitle';\n\t\t\t\t}\n\t\t\t\tif (duty.template() == 'requestedDuties') {\n\t\t\t\t\tresourceKey = 'app.typenameRequestedDuty';\n\t\t\t\t}\n\t\t\t\tif (duty.template() == 'avaliableDuties') {\n\t\t\t\t\tresourceKey = 'app.typenameAvailableDuty';\n\t\t\t\t}\n\t\t\t\tif (duty.timeIn() !== duty.timeOut()) {\n\t\t\t\t\ttime = ', ' + duty.timeIn() + ' - ' + duty.timeOut();\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tmarkup = '

        ' + date + time + '

        ' +\n\t\t\t\t\t\t\t'

        ' + getResource('app.informationText') + '

        ';\n\t\t\t\tif (duty.dutyDescriptions().length) {\n\t\t\t\t\tmarkup = markup + '

        ' + duty.dutyDescriptions() + '

        ';\n\t\t\t\t} else {\n\t\t\t\t\tmarkup = markup + '

        ' + getResource('app.departmentText') + ': ' + duty.departmentId() + ' - ' + duty.departmentName() + '

        '; +\n\t\t\t\t\t\t\t'

        ' + getResource('app.dutyText') + ': ' + duty.dutyIdString() + ', ' + duty.description() + '

        ';\n\t\t\t\t}\n\t\t\t\n\t\t\t\tif (duty.dutyPlanId() != '') {\n\t\t\t\t\tmarkup = markup + '

        ' + getResource('app.planNumberText') + ': ' + duty.dutyPlanId() + '

        ';\n\t\t\t\t}\n\t\t\t\tif (duty.comment() != '') {\n\t\t\t\t\tmarkup = markup + '

        ' + getResource('app.noticeText') + ': ' + duty.comment() + '

        ';\n\t\t\t\t}\n\t\t\t\tif (duty.notes() != '') {\n\t\t\t\t\tmarkup = markup + '

        ' + getResource('app.notes') + ': ' + duty.notes() + '

        ';\n\t\t\t\t}\n\t\t\t\tsweetAlert({title: getResource(resourceKey), text: markup, html: true});\n\t\t\t}\n\t\t\tself.viewDutyWishClickAction = function(dutyWish) {\n\t\t\t\tvar markup = '';\n\t\t\t\tvar date = moment(dutyWish.dateIn()).format('LL');\n\t\t\t\tvar time = '';\n\t\t\t\tvar departments = getLocalStorage('myCapitechDutyWishFilterValues').departments;\n\t\t\t\tvar dutyTypes = getLocalStorage('myCapitechDutyWishFilterValues').dutyTypes;\n\t\t\t\tvar departmentNames = [];\n\t\t\t\tvar dutyTypesNames = [];\n\t\t\t\tvar tmpDepartmentObj = {};\n\t\t\t\tvar tmpDepartmentName;\n\t\t\t\tvar tmpDutyObj = {};\n\t\t\t\tvar tmpDutyName;\n\t\t\t\t\n\t\t\t\tif (moment(dutyWish.dutyWishStartDate()).diff(moment(dutyWish.dutyWishEndDate()),'d') !== 0) {\n\t\t\t\t\tdate = moment(dutyWish.dutyWishStartDate()).format('LL') + ' - ' + moment(dutyWish.dutyWishEndDate()).format('LL');\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tfor (i = 0; i < dutyWish.requestedDepartmentIds().length; ++i) {\n\t\t\t\t\ttmpDepartmentObj = findObjectInArray(departments, 'id', dutyWish.requestedDepartmentIds()[i]);\n\t\t\t\t\ttmpDepartmentName = tmpDepartmentObj.id + '-' + tmpDepartmentObj.description;\n\t\t\t\t\tdepartmentNames.push(tmpDepartmentName);\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tfor (i = 0; i < dutyWish.requestedDutyTypeIds().length; ++i) {\n\t\t\t\t\ttmpDutyObj = findObjectInArray(dutyTypes, 'id', dutyWish.requestedDutyTypeIds()[i]);\n\t\t\t\t\ttmpDutyName = tmpDutyObj.description;\n\t\t\t\t\tdutyTypesNames.push(tmpDutyName);\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tmarkup = '

        ' + date + time + '

        ';\n\t\t\t\tif (dutyWish.isEmployeeAvaliableOnShortNotice()) {\n\t\t\t\t\tmarkup = markup + '

        ' + getResource('duty.shortNotice') + '

        ';\n\t\t\t\t}\n\t\t\t\tmarkup = markup + '

        ' + getResource('app.informationText') + '

        ' +\n\t\t\t\t\t\t '

        ' + getResource('app.departmentText') + ': ' + departmentNames.join(', ') + '

        ' +\n\t\t\t\t\t\t '

        ' + getResource('app.dutyText') + ': ' + dutyTypesNames.join(', ') + '

        ';\n\t\t\t\tif (dutyWish.comment() != '') {\n\t\t\t\t\tmarkup = markup + '

        ' + getResource('app.noticeText') + ': ' + dutyWish.comment() + '

        ';\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tmarkup = '
        ' + markup + '
        '\n\t\t\t\t\n\t\t\t\tsweetAlert({title: getResource('app.typenameDutyWish'), text: markup, html: true});\n\t\t\t}\n\t\t\tself.viewAbsenceClickAction = function(timeStamp) {\n\t\t\t\tvar markup = '';\n\t\t\t\tvar date = moment(timeStamp.dateIn()).format('LL');\n\t\t\t\tvar time = '';\n\t\t\t\t\n\t\t\t\tif (timeStamp.timeIn() !== timeStamp.timeOut()) {\n\t\t\t\t\ttime = ', ' + timeStamp.timeIn() + ' - ' + timeStamp.timeOut();\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tmarkup = '

        ' + date + time + '

        ' +\n\t\t\t\t\t\t '

        ' + getResource('app.informationText') + '

        ' +\n\t\t\t\t\t\t '

        ' + timeStamp.description() + '

        ';\n\t\t\t\t\n\t\t\t\tsweetAlert({title: getResource('absence.detailedTitle'), text: markup, html: true});\n\t\t\t}\n\t\t\tself.viewRequestAvaliableDutyForm = function(avaliableDuty) {\n\t\t\t\tctCalendarViewModel.selectedAvaliableDuty(new calendarDayItemModel(ko.toJS(avaliableDuty)));\n\t\t\t\tshowRequestDutyForm(avaliableDuty);\n\t\t\t}\n\t\t\tself.deleteRequestedDutyClickAction = function(requestedDuty) {\n\t\t\t\tsweetAlert({\n\t\t\t\t\ttitle: getResource('app.confirmDeletionTitle'),\n\t\t\t\t\ttype: \"warning\",\n\t\t\t\t\tshowCancelButton: true,\n\t\t\t\t\tconfirmButtonColor: \"#DD6B55\",\n\t\t\t\t\tconfirmButtonText: getResource('app.delete'),\n\t\t\t\t\tcancelButtonText: getResource('app.cancel')\n\t\t\t\t},function() {\n\t\t\t\t\tvar success = function(data, textStatus, jqXHR) {\n\t\t\t\t\t\tupdateCalendarItemsForSelectedDay(ctCalendarViewModel.daySelected().date().format('YYYY-MM-DD'));\n\t\t\t\t\t}\n\t\t\t\t\tvar error = function(jqXHR, textStatus, errorThrown) {\n\t\t\t\t\t\tsweetAlert(getResource('app.apiTimeoutTitle'), getResource(textStatus), \"error\");\n\t\t\t\t\t}\n\t\t\t\t\t_api.cancelRequestForAvaliableDuty_POST(\n\t\t\t\t\t\tsuccess,\n\t\t\t\t\t\terror,\n\t\t\t\t\t\tgetCookie(ACCESSTOKEN_COOKIE_NAME),\n\t\t\t\t\t\trequestedDuty.departmentId(),\n\t\t\t\t\t\trequestedDuty.dutyPlanId(),\n\t\t\t\t\t\trequestedDuty.dutyId(),\n\t\t\t\t\t\trequestedDuty.startDate()\n\t\t\t\t\t);\n\t\t\t\t});\n\t\t\t}\n\t\t\tself.deleteDutyWishClickAction = function(dutyWish) {\n\t\t\t\tvar dateDiff = moment(dutyWish.dutyWishStartDate()).diff(moment(dutyWish.dutyWishEndDate()),'d');\n\t\t\t\tvar tmpDutyWishStartDate = dutyWish.dutyWishStartDate();\n\t\t\t\t\n\t\t\t\tsweetAlert({\n\t\t\t\t\ttitle: getResource('app.confirmDeletionTitle'),\n\t\t\t\t\ttype: \"warning\",\n\t\t\t\t\tshowCancelButton: true,\n\t\t\t\t\tconfirmButtonColor: \"#DD6B55\",\n\t\t\t\t\tconfirmButtonText: getResource('app.delete'),\n\t\t\t\t\tcancelButtonText: getResource('app.cancel')\n\t\t\t\t},function() {\n\t\t\t\t\tvar success = function(data, textStatus, jqXHR) {\n\t\t\t\t\t\tif (dateDiff === 0) {\n\t\t\t\t\t\t\tctCalendarViewModel.daySelected().timeStamps.remove(dutyWish);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$(ctCalendarViewModel.days()).each(function(index,obj) {\n\t\t\t\t\t\t\t\t$(obj.timeStamps()).each(function(childIndex, childObj) {\n\t\t\t\t\t\t\t\t\tif(childObj.template() === 'dutyWishPeriods') {\n\t\t\t\t\t\t\t\t\t\tif (childObj.dutyWishStartDate() === tmpDutyWishStartDate) {\n\t\t\t\t\t\t\t\t\t\t\tobj.timeStamps.remove(childObj);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tvar error = function(jqXHR, textStatus, errorThrown) {\n\t\t\t\t\t\tsweetAlert(getResource('app.apiTimeoutTitle'), getResource(textStatus), \"error\");\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tif (dateDiff === 0) {\n\t\t\t\t\t\t_api.deleteDutyWish_POST(\n\t\t\t\t\t\t\tsuccess,\n\t\t\t\t\t\t\terror,\n\t\t\t\t\t\t\tgetCookie(ACCESSTOKEN_COOKIE_NAME),\n\t\t\t\t\t\t\tdutyWish.dutyWishStartDate()\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t_api.deleteDutyWishPeriod_POST(\n\t\t\t\t\t\t\tsuccess,\n\t\t\t\t\t\t\terror,\n\t\t\t\t\t\t\tgetCookie(ACCESSTOKEN_COOKIE_NAME),\n\t\t\t\t\t\t\tdutyWish.dutyWishStartDate()\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\tself.quickRegisterTime = function(day, requestedDuty, event) {\n\t\t\t\t// Set some default props\n\t\t\t\tvar timeStampProps = {};\n\t\t\t\ttimeStampProps.dateIn = requestedDuty.dateIn();\n\t\t\t\ttimeStampProps.dateOut = requestedDuty.dateOut();\n\t\t\t\ttimeStampProps.timeIn = requestedDuty.timeIn();\n\t\t\t\ttimeStampProps.timeOut = requestedDuty.timeOut();\n\t\t\t\ttimeStampProps.bNew = true;\n\n\t\t\t\t// Create knockout timeTransaction\n\t\t\t\tvar timeStamp = new calendarDayItemModel(timeStampProps);\n\t\t\t\ttimeStamp.competenceRoleId(requestedDuty.competenceRoleId());\n\t\t\t\ttimeStamp.departmentId(requestedDuty.departmentId());\n\n\t\t\t\tif (!getLocalStorage('myCapitechPermissionsAndRegistrationSetup').hasCapitechFlowPlan) {\n\t\t\t\t\t// If system uses the old Plan we need to set dutyId, and ignore dutyDefinitionId.\n\t\t\t\t\ttimeStamp.dutyId(requestedDuty.dutyId());\n\t\t\t\t} else {\n\t\t\t\t\t// If system uses Capitech Flow Plan we need to set dutyDefinitionId, and ignore dutyId property because this only points at the uid for the duty in flow plan\n\t\t\t\t\ttimeStamp.dutyDefinitionId(requestedDuty.dutyDefinitionId() ? requestedDuty.dutyDefinitionId() : undefined);\n\t\t\t\t}\n\t\t\t\ttimeStamp.fridim1Id(requestedDuty.fridim1Id());\n\t\t\t\ttimeStamp.fridim2Id(requestedDuty.fridim2Id());\n\t\t\t\ttimeStamp.orderId(requestedDuty.orderId());\n\t\t\t\ttimeStamp.phaseId(requestedDuty.phaseId());\n\t\t\t\ttimeStamp.projectId(requestedDuty.projectId());\n\t\t\t\ttimeStamp.subProjectId(requestedDuty.subProjectId());\n\t\t\t\ttimeStamp.taskId(requestedDuty.taskId());\n\n\t\t\t\tvar onErrorCallback = function() {\n\t\t\t\t\t// Update registration defaults to the planned duty settings..\n\t\t\t\t\tvar currentEmployeeRegistrationInformation = getLocalStorage(\"myCapitechPermissionsAndRegistrationSetup\");\n\t\t\t\t\tcurrentEmployeeRegistrationInformation.registrationDefaults.competenceRoleId = timeStamp.competenceRoleId();\n\t\t\t\t\tcurrentEmployeeRegistrationInformation.registrationDefaults.departmentId = timeStamp.departmentId();\n\t\t\t\t\tcurrentEmployeeRegistrationInformation.registrationDefaults.dutyDefinitionId = timeStamp.dutyDefinitionId();\n\t\t\t\t\tcurrentEmployeeRegistrationInformation.registrationDefaults.dutyId = timeStamp.dutyId();\n\t\t\t\t\tcurrentEmployeeRegistrationInformation.registrationDefaults.fridim1Id = timeStamp.fridim1Id();\n\t\t\t\t\tcurrentEmployeeRegistrationInformation.registrationDefaults.fridim2Id = timeStamp.fridim2Id();\n\t\t\t\t\tcurrentEmployeeRegistrationInformation.registrationDefaults.orderId = timeStamp.orderId();\n\t\t\t\t\tcurrentEmployeeRegistrationInformation.registrationDefaults.phaseId = timeStamp.phaseId();\n\t\t\t\t\tcurrentEmployeeRegistrationInformation.registrationDefaults.projectId = timeStamp.projectId();\n\t\t\t\t\tcurrentEmployeeRegistrationInformation.registrationDefaults.shiftId = timeStamp.shiftId();\n\t\t\t\t\tcurrentEmployeeRegistrationInformation.registrationDefaults.subProjectId = timeStamp.subProjectId();\n\t\t\t\t\tcurrentEmployeeRegistrationInformation.registrationDefaults.taskId = timeStamp.taskId();\n\t\t\t\t\tsetLocalStorage(\"myCapitechPermissionsAndRegistrationSetup\", currentEmployeeRegistrationInformation);\n\t\t\t\t\tloadTimeStampFormData(timeStamp);\n\t\t\t\t}\n\n\t\t\t\tvar error = function(data) {\n\t\t\t\t\tsweetAlert(getResource('app.informationTitle'), handleServerErrorMessage(data.displayErrorMessage), \"error\");\n\t\t\t\t\tonErrorCallback();\n\t\t\t\t}\n\n\t\t\t\tvar success = function(data) {\n\t\t\t\t\tif (data.success) {\n\t\t\t\t\t\tupdateCalendarItemsForSelectedDay(timeStamp.dateIn());\n\t\t\t\t\t\tgetAccumulatedTimeByMonth(ctCalendarViewModel.selectedDate());\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsweetAlert(getResource('app.informationTitle'), handleServerErrorMessage(data.displayErrorMessage), \"error\");\n\t\t\t\t\t\tonErrorCallback();\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tfunction returnUndefinedIfFalsy(thisString) {\n\t\t\t\t\treturn thisString ? thisString : undefined;\n\t\t\t\t}\n\n\t\t\t\t// Validate data timeOut\n\t\t\t\tif (timeStamp.timeIn() > timeStamp.timeOut()) {\n\t\t\t\t\tvar newDateOut = moment(timeStamp.dateOut()).add(1,'days').format('YYYY-MM-DD');\n\t\t\t\t\ttimeStamp.dateOut(newDateOut);\n\t\t\t\t}\n\t\n\t\t\t\t_api.createCustomTimeTransaction_POST(\n\t\t\t\t\tsuccess,\n\t\t\t\t\terror,\n\t\t\t\t\tgetCookie(ACCESSTOKEN_COOKIE_NAME),\n\t\t\t\t\treturnUndefinedIfFalsy(timeStamp.dateIn()),\n\t\t\t\t\treturnUndefinedIfFalsy(timeStamp.timeIn()),\n\t\t\t\t\treturnUndefinedIfFalsy(timeStamp.dateOut()),\n\t\t\t\t\treturnUndefinedIfFalsy(timeStamp.timeOut()),\n\t\t\t\t\treturnUndefinedIfFalsy(timeStamp.departmentId()),\n\t\t\t\t\treturnUndefinedIfFalsy(timeStamp.taskId()),\n\t\t\t\t\treturnUndefinedIfFalsy(timeStamp.orderId()),\n\t\t\t\t\treturnUndefinedIfFalsy(timeStamp.projectId()),\n\t\t\t\t\treturnUndefinedIfFalsy(timeStamp.subProjectId()),\n\t\t\t\t\treturnUndefinedIfFalsy(timeStamp.phaseId()),\n\t\t\t\t\treturnUndefinedIfFalsy(timeStamp.dutyId()),\n\t\t\t\t\treturnUndefinedIfFalsy(timeStamp.competenceRoleId()),\n\t\t\t\t\treturnUndefinedIfFalsy(timeStamp.dutyDefinitionId()),\n\t\t\t\t\treturnUndefinedIfFalsy(timeStamp.shiftId()),\n\t\t\t\t\treturnUndefinedIfFalsy(timeStamp.fridim1Id()),\n\t\t\t\t\treturnUndefinedIfFalsy(timeStamp.fridim2Id()),\n\t\t\t\t\treturnUndefinedIfFalsy(timeStamp.comment())\n\t\t\t\t);\n\t\t\t}\n\t\t\t\n\t\t\tself.bCanDoManualAddition = ko.computed(function() {\n\t\t\t\ttry {\n\t\t\t\t\tif (self.timeOut().length === 5 && getLocalStorage('myCapitechPermissionsAndRegistrationSetup').canDoManualAddition && ctCalendarViewModel.daySelected().bCanEditBackInTime()) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t} catch (err) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t});\n\t\t};\n\t\t\n\t\tvar dimensionSelectDataModel = function(description, value) {\n\t\t\t// properties\n\t\t\tvar self = this;\n\t\t\tself.description = ko.observable(description);\n\t\t\tself.value = ko.observable(value);\n\t\t};\n\t\t\n\t\tvar accumulatedTimeModel = function(properties) {\n\t\t\tif(typeof(properties)==='undefined')\t\t\t\t\t\t\tproperties\t\t\t\t\t\t\t=\t{};\n\t\t\tif(typeof(properties.amount)==='undefined')\t\t\t\t\t\tproperties.amount\t\t\t\t\t=\t0;\n\t\t\tif(typeof(properties.isManualAdjustment)==='undefined')\t\t\tproperties.isManualAdjustment\t\t=\tfalse;\n\t\t\tif(typeof(properties.timeCategoryDescription)==='undefined')\tproperties.timeCategoryDescription\t=\t'';\n\t\t\tif(typeof(properties.timeCategoryId)==='undefined')\t\t\t\tproperties.timeCategoryId\t\t\t=\tnull;\n\t\t\t\n\t\t\tvar self = this;\n\t\t\tself.amount\t\t\t\t\t\t\t= ko.observable(properties.amount);\n\t\t\tself.isManualAdjustment\t\t\t\t= ko.observable(properties.isManualAdjustment);\n\t\t\tself.timeCategoryDescription\t\t= ko.observable(properties.timeCategoryDescription);\n\t\t\tself.timeCategoryId\t\t\t\t\t= ko.observable(properties.timeCategoryId);\n\t\t\tself.isDisabled\t\t\t\t\t\t= ko.observable(true)\n\t\t\tself.fixedAmount = ko.computed(function() {\n\t\t\t\treturn self.amount().toFixed(2);\n\t\t\t}, self);\n\t\t\t\n\t\t\tself.buttonText = ko.computed(function(accumulatedTime) {\n\t\t\t\tvar buttonText = 'test';\n\t\t\t\t\n\t\t\t\tif (self.isDisabled() === true) {\n\t\t\t\t\treturn getResource('app.btnEdit');\n\t\t\t\t} else {\n\t\t\t\t\treturn getResource('app.btnSave');\n\t\t\t\t}\n\t\t\t}, self);\n\t\t\t\n\t\t\tself.onKeyPress = function (data, event) {\n\t\t\t\ttry {\n\t\t\t\t\tif (event.which == 13) {\n\t\t\t\t\t\tself.editExistingAccumulatedTime(data);\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\treturn true;\n\t\t\t\t} catch (e) {}\n\t\t\t}\n\t\t\t\n\t\t\tself.editExistingAccumulatedTime = function(accumulatedTime, event) {\n\t\t\t\tvar target = (event.currentTarget) ? event.currentTarget : event.srcElement;\n\t\t\t\tvar $amountInput = $(target).parents('tr').find('input');\n\t\t\t\t\n\t\t\t\tif (accumulatedTime.isDisabled() === true) {\n\t\t\t\t\t$(ctCalendarViewModel.selectedTimeTransactionAccumulatedTime()).each(function(index, obj) {\n\t\t\t\t\t\tvar latest = ctCalendarViewModel.selectedTimeTransactionAccumulatedTime()[index].amount._latestValue;\n\t\t\t\t\t\tctCalendarViewModel.selectedTimeTransactionAccumulatedTime()[index].amount(0);\n\t\t\t\t\t\tctCalendarViewModel.selectedTimeTransactionAccumulatedTime()[index].amount(latest);\n\t\t\t\t\t\tctCalendarViewModel.selectedTimeTransactionAccumulatedTime()[index].isDisabled(true);\n\t\t\t\t\t});\n\t\t\t\t\taccumulatedTime.isDisabled(false);\n\t\t\t\t\t$amountInput.focus().select();\n\t\t\t\t} else {\n\t\t\t\t\t_api.updateManualAddition_POST(\n\t\t\t\t\t\tfunction(data){\n\t\t\t\t\t\t\tif (data.success === true) {\n\t\t\t\t\t\t\t\tctCalendarViewModel.selectedTimeTransactionAccumulatedTime.removeAll();\n\t\t\t\t\t\t\t\tif (data.content.length > 0) {\n\t\t\t\t\t\t\t\t\t$(data.content).each(function(index, obj) {\n\t\t\t\t\t\t\t\t\t\tctCalendarViewModel.selectedTimeTransactionAccumulatedTime.push(new accumulatedTimeModel(obj));\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\tctCalendarViewModel.selectedTimeTransactionAccumulatedTime.sort(_sortAccumulatedTime);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\taccumulatedTime.isDisabled(true);\n\t\t\t\t\t\t\t\tgetAccumulatedTimeByMonth(ctCalendarViewModel.selectedDate());\n\t\t\t\t\t\t\t\tgetAccumulatedTimeByDay(ctCalendarViewModel.daySelected().date());\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tsweetAlert(getResource('app.informationTitle'), handleServerErrorMessage(data.displayErrorMessage), \"error\");\n\t\t\t\t\t\t\t};\t\n\t\t\t\t\t\t},\n\t\t\t\t\t\tfunction(){}, // error\n\t\t\t\t\t\tgetCookie(ACCESSTOKEN_COOKIE_NAME),\n\t\t\t\t\t\tctCalendarViewModel.selectedTimeTransaction().dateIn(),\n\t\t\t\t\t\tctCalendarViewModel.selectedTimeTransaction().timeIn(),\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"originalTimeCategoryId\": accumulatedTime.timeCategoryId,\n\t\t\t\t\t\t\t\t\"newTimeCategoryId\": accumulatedTime.timeCategoryId,\n\t\t\t\t\t\t\t\t\"amount\": $amountInput.val().replace(',', '.')\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t]\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t}\n\t\t\n\t\tvar timeCategoryForManualAdditionModel = function(properties) {\n\t\t\tif(typeof(properties)==='undefined')\t\t\t\t\t\t\tproperties\t\t\t\t\t\t\t=\t{};\n\t\t\tif(typeof(properties.timeCategoryDescription)==='undefined')\tproperties.timeCategoryDescription\t=\t'';\n\t\t\tif(typeof(properties.timeCategoryId)==='undefined')\t\t\t\tproperties.timeCategoryId\t\t\t=\tnull;\n\t\t\t\n\t\t\tvar self = this;\n\t\t\tself.timeCategoryDescription\t= ko.observable(properties.timeCategoryDescription);\n\t\t\tself.timeCategoryId\t\t\t\t= ko.observable(properties.timeCategoryId);\n\t\t\tself.isVisible\t\t\t\t\t= ko.computed(function() {\n\t\t\t\tvar objFound = findObjectInArray(ko.toJS(ctCalendarViewModel.selectedTimeTransactionAccumulatedTime()), 'timeCategoryId', self.timeCategoryId());\n\t\t\t\tif(typeof(objFound)==='undefined') {\n\t\t\t\t\treturn true;\n\t\t\t\t} else {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}, self);\n\t\t\tself.onKeyPress = function (data, event) {\n\t\t\t\ttry {\n\t\t\t\t\tif (event.which == 13) {\n\t\t\t\t\t\tself.addTimeCategoryToAccumulatedTime(data);\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\treturn true;\n\t\t\t\t} catch (e) {}\n\t\t\t}\n\t\t\tself.addTimeCategoryToAccumulatedTime = function(timeCategory, event) {\n\t\t\t\tvar target = (event.currentTarget) ? event.currentTarget : event.srcElement;\n\t\t\t\tvar $amountInput = $(target).parents('tr').find('input');\n\t\t\t\t_api.updateManualAddition_POST(\n\t\t\t\t\tfunction(data){\n\t\t\t\t\t\tif (data.success === true) {\n\t\t\t\t\t\t\tctCalendarViewModel.selectedTimeTransactionAccumulatedTime.removeAll();\n\t\t\t\t\t\t\tif (data.content.length > 0) {\n\t\t\t\t\t\t\t\t$(data.content).each(function(index, obj) {\n\t\t\t\t\t\t\t\t\tctCalendarViewModel.selectedTimeTransactionAccumulatedTime.push(new accumulatedTimeModel(obj));\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tctCalendarViewModel.selectedTimeTransactionAccumulatedTime.sort(_sortAccumulatedTime);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tgetAccumulatedTimeByMonth(ctCalendarViewModel.selectedDate());\n\t\t\t\t\t\t\tgetAccumulatedTimeByDay(ctCalendarViewModel.daySelected().date());\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tsweetAlert(getResource('app.informationTitle'), handleServerErrorMessage(data.displayErrorMessage), \"error\");\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\t\t\t\tfunction(){}, // error\n\t\t\t\t\tgetCookie(ACCESSTOKEN_COOKIE_NAME),\n\t\t\t\t\tctCalendarViewModel.selectedTimeTransaction().dateIn(),\n\t\t\t\t\tctCalendarViewModel.selectedTimeTransaction().timeIn(),\n\t\t\t\t\t[\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"originalTimeCategoryId\": null,\n\t\t\t\t\t\t\t\"newTimeCategoryId\": timeCategory.timeCategoryId,\n\t\t\t\t\t\t\t\"amount\": $amountInput.val().replace(',', '.')\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\t\n\t\tvar calendarViewModel = function(daysData) {\n\t\t\tvar self = this;\n\t\t\t\n\t\t\t// Calendar controllers\n\t\t\tself.bShowTime = ko.observable(true);\n\t\t\tself.bShowPlannedDuty = ko.observable(true);\n\t\t\tself.bShowAbsence = ko.observable(true);\n\t\t\tself.bShowAvaliableDuty = ko.observable(true);\n\t\t\t\n\t\t\t// If filter is empty, set bShowAvaliableDuty to false\n\t\t\tif (getLocalStorage('myCapitechPermissionsAndRegistrationSetup').hasCapitechPlan || getLocalStorage('myCapitechPermissionsAndRegistrationSetup').hasCapitechFlowPlan) {\n\t\t\t\tif (getLocalStorage('myCapitechDutyWishFilter').departmentIds.length === 1 && getLocalStorage('myCapitechDutyWishFilter').departmentIds[0] === -1) {\n\t\t\t\t\tself.bShowAvaliableDuty = ko.observable(false);\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\t// Calendar rules\n\t\t\tself.registrationCloseDate = moment(_currentDate).subtract(getLocalStorage('myCapitechPermissionsAndRegistrationSetup').numberOfDaysBackInTimeRegisteringIsAllowed, 'day');\n\t\t\tself.registrationCloseDateText = getResource('calendar.registrationCloseDateTextFirstPart') + ' ' +\n\t\t\t\t\t\t\t\t\t\t\t moment(self.registrationCloseDate).format('LL') + ' ' +\n\t\t\t\t\t\t\t\t\t\t\t getResource('calendar.registrationCloseDateTextLastPart');\n\n\t\t\tself.registrationForwardsCloseDate = moment(_currentDate).add(getLocalStorage('myCapitechPermissionsAndRegistrationSetup').numberOfDaysForwardInTimeRegisteringIsAllowed, 'day');\n\t\t\t\n\t\t\tif(getLocalStorage('myCapitechPermissionsAndRegistrationSetup').canRegisterForwardInTime) {\n\t\t\t\tself.registrationForwardsCloseDateText = getResource('calendar.registrationClosedForwardsFirstPart') + ' ' +\n\t\t\t\t\t\t\t\t\t\t\t \t\t\t moment(self.registrationForwardsCloseDate).format('LL') + ' ' +\n\t\t\t\t\t\t\t\t\t\t\t \t\t\t getResource('calendar.registrationCloseDateTextLastPart');\n\t\t\t} else {\n\t\t\t\tself.registrationForwardsCloseDateText = getResource('calendar.registrationForwardsNotAllowed');\n\t\t\t}\n\n\t\t\t// Calendar dates\n\t\t\tself.currentDate = ko.observable(_currentDate);\n\t\t\tself.currentYear = ko.computed(function() {\n\t\t\t\treturn moment(self.currentDate()).format('YYYY');\n\t\t\t}, self);\n\t\t\tself.selectedDate = ko.observable(_selectedDate);\n\t\t\tself.selectedMonth = ko.computed(function() {\n\t\t\t\treturn moment(self.selectedDate()).format('MMMM');\n\t\t\t}, self);\n\t\t\tself.selectedYear = ko.computed(function() {\n\t\t\t\treturn moment(self.selectedDate()).format('YYYY');\n\t\t\t}, self);\n\t\t\t\n\t\t\tself.daySelected = ko.observable(new calendarDayModel());\n\t\t\t\n\t\t\tself.now = ko.observable(moment());\n\t\t\t// Update now every 10 seconds\n\t\t\tsetInterval(function () {\n\t\t\t\tvar aDayIsSelected = $('.ct-calendar-today.selected').length === 1;\n\t\t\t\tvar loadedDate = moment(_currentDate);\n\t\t\t\tvar selectedDate = moment(self.selectedDate());\n\t\t\t\tvar now = moment();\n\t\t\t\t\n\t\t\t\t// The now() property in the VM need to be delayed to work properly with the UI logic and the property need to be greater than the setInterval repetition delay\n\t\t\t\tself.now(moment().subtract(3, 's'));\n\t\t\t\t\n\t\t\t\t// If any days are selected in calendar, and loaded date EQ selectedDate, and now has a diff to loadedDate EQ 1\n\t\t\t\tif (aDayIsSelected && loadedDate.diff(selectedDate, \"days\") === 0 && now.startOf('day').diff(loadedDate.startOf('day'), \"days\") === 1) {\n\t\t\t\t\t_currentDate = new Date();\n\t\t\t\t\tself.currentDate(_currentDate);\n\t\t\t\t\t\n\t\t\t\t\tsweetAlert({\n\t\t\t\t\t\ttitle: '',\n\t\t\t\t\t\ttext: getResource(\"calendar.currentDayHasChanged\", \"Midnight has passed, do you want to go to today's date?\"),\n\t\t\t\t\t\tshowCancelButton: true,\n\t\t\t\t\t\tconfirmButtonText: getResource('app.yes', 'Yes'),\n\t\t\t\t\t\tcancelButtonText: getResource('app.no', 'No')\n\t\t\t\t\t}, function(isConfirm) {\n\t\t\t\t\t\tif(isConfirm) {\n\t\t\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\t\t\tself.now(moment());\n\t\t\t\t\t\t\t\t$('.ct-calendar-today').trigger('click');\n\t\t\t\t\t\t\t}, 250);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}, 1000); // Need to be less than the offset in self.now(moment().subtract(2, 's'))\n\t\t\t\n\t\t\t// Calendar arrays\n\t\t\tself.days = ko.observableArray();\n\t\t\tself.aWeek = ko.observableArray();\n\t\t\tself.aAccumulatedTimeByMonth = ko.observableArray();\n\t\t\tself.accumulatedTimeTotalByMonth = ko.computed(function() {\n\t\t\t\tvar total = 0;\n\t\t\t\tko.utils.arrayForEach(self.aAccumulatedTimeByMonth(), function(accumulatedTime) {\n\t\t\t\t\ttotal += parseFloat(accumulatedTime.amount());\n\t\t\t\t});\n\t\t\t\treturn total.toFixed(2);\n\t\t\t}, self);\n\t\t\tself.aAccumulatedTimeByDay = ko.observableArray();\n\t\t\tself.accumulatedTimeTotalByDay = ko.computed(function() {\n\t\t\t\tvar total = 0;\n\t\t\t\tko.utils.arrayForEach(self.aAccumulatedTimeByDay(), function(accumulatedTime) {\n\t\t\t\t\ttotal += parseFloat(accumulatedTime.amount());\n\t\t\t\t});\n\t\t\t\treturn total.toFixed(2);\n\t\t\t}, self);\n\t\t\t\n\t\t\t// Calendar temp\n\t\t\tself.selectedTimeTransaction = ko.observable(new calendarDayItemModel());\n\t\t\tself.selectedTimeTransactionClone = ko.observable(new calendarDayItemModel());\n\t\t\tself.selectedTimeTransactionAccumulatedTime = ko.observableArray();\n\t\t\tself.selectedAvaliableDuty = ko.observable(new calendarDayItemModel());\n\t\t\t\n\t\t\tself.timeCategoryForManualAddition = ko.observableArray();\n\t\t\tself.hasVisibleTimeCategoryForManualAddition = ko.computed(function() {\n\t\t\t\tvar objFound = findObjectInArray(ko.toJS(self.timeCategoryForManualAddition()), 'isVisible', true);\n\t\t\t\tif(typeof(objFound)==='undefined') {\n\t\t\t\t\treturn false;\n\t\t\t\t} else {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}, self);\n\t\t\t\n\t\t\t// Template related functions\n\t\t\tself.getCalendarDayItemTemplate = function(timeStamp) {\n\t\t\t\treturn timeStamp.template();\n\t\t\t};\n\t\t\t\n\t\t\tself.getDetailedCalendarDayItemTemplate = function(timeStamp) {\n\t\t\t\treturn timeStamp.template() + 'Detailed';\n\t\t\t};\n\t\t\t\n\t\t\tself.getWeekItemTemplate = function(weekItem) {\n\t\t\t\treturn weekItem.template;\n\t\t\t};\n\t\t\t\n\t\t\t// Add data\n\t\t\tself.addCalendarDataToView = function(daysData) {\n\t\t\t\t$.each(daysData, function(dayIndex, dayObjValue) {\n\t\t\t\t\t$.each(dayObjValue, function(dayObjKeyName, dayObjKeyValue) {\n\t\t\t\t\t\tif (dayObjKeyName == 'timeStamps') {\n\t\t\t\t\t\t\tvar aTempTimeStamps = [];\n\t\t\t\t\t\t\t$.each(dayObjKeyValue, function(a, b) {\n\t\t\t\t\t\t\t\taTempTimeStamps.push(new calendarDayItemModel(b));\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tself.days.push(new calendarDayModel(dayObjValue.date, dayObjValue.bCurrentMonth, aTempTimeStamps));\n\t\t\t\t\t\t\t// // console.log(dayObjValue.dayName);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t\tself.addWeeks();\n\t\t\t};\n\t\t\t\n\t\t\t// Add data\n\t\t\tself.addWeeks = function() {\n\t\t\t\tvar row = null,\n\t\t\t\t\taRows = [],\n\t\t\t\t\tcolCount = 7,\n\t\t\t\t\tdays = self.days();\n\t\t\t\t\n\t\t\t\tself.aWeek.removeAll();\n\t\t\t\t\n\t\t\t\tfor (var i = 0, j = days.length; i < j; i++) {\n\t\t\t\t\t//create a new row\n\t\t\t\t\tif (!row) {\n\t\t\t\t\t\trow = [];\n\t\t\t\t\t\taRows.push(row);\n\t\t\t\t\t\t// Add week number\n\t\t\t\t\t\trow.push(new calendarWeekModel(days[i].date()));\n\t\t\t\t\t}\n\t\t\t\t\trow.push(days[i]);\n\t\t\t\t\t//start a new row\n\t\t\t\t\tif (i % colCount === colCount - 1) {\n\t\t\t\t\t\trow = null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t$.each(aRows, function(index, val) {\n\t\t\t\t\t// console.log(val);\n\t\t\t\t\tself.aWeek.push(val);\n\t\t\t\t});\n\t\t\t};\n\t\t\t\n\t\t\tself.addAccumulatedTimeByMonth = function(accumulatedTimeData) {\n\t\t\t\t$.each(accumulatedTimeData, function(index, obj) {\n\t\t\t\t\tself.aAccumulatedTimeByMonth.push(new accumulatedTimeModel(obj));\n\t\t\t\t});\n\t\t\t};\n\t\t\tself.addAccumulatedTimeByDay = function(accumulatedTimeData) {\n\t\t\t\t$.each(accumulatedTimeData, function(index, obj) {\n\t\t\t\t\tself.aAccumulatedTimeByDay.push(new accumulatedTimeModel(obj));\n\t\t\t\t});\n\t\t\t};\n\t\t\t\n\t\t\t// Calendar timestamp dimensions\n\t\t\tself.aDepartment = ko.observableArray();\n\t\t\tself.addDepartments = function(dimensionData) {\n\t\t\t\tvar newItems = ko.utils.arrayMap(dimensionData, function(item) {\n\t\t\t\t\treturn new dimensionSelectDataModel(item.description, item.value);\n\t\t\t\t});\n\t\t\t\tself.aDepartment.removeAll();\n\t\t\t\tself.aDepartment.push.apply(self.aDepartment, newItems);\n\t\t\t};\n\n\t\t\tself.aDutyDefinition = ko.observableArray();\n\t\t\tself.addDutyDefinitions = function(dimensionData) {\n\t\t\t\tvar newItems = ko.utils.arrayMap(dimensionData, function(item) {\n\t\t\t\t\treturn new dimensionSelectDataModel(item.description, item.value);\n\t\t\t\t});\n\t\t\t\tself.aDutyDefinition.removeAll();\n\t\t\t\tself.aDutyDefinition.push.apply(self.aDutyDefinition, newItems);\n\t\t\t};\n\t\t\t\n\t\t\tself.aCompetenceRole = ko.observableArray();\n\t\t\tself.addCompetenceRoles = function(dimensionData) {\n\t\t\t\tvar newItems = ko.utils.arrayMap(dimensionData, function(item) {\n\t\t\t\t\treturn new dimensionSelectDataModel(item.description, item.value);\n\t\t\t\t});\n\t\t\t\tself.aCompetenceRole.removeAll();\n\t\t\t\tself.aCompetenceRole.push.apply(self.aCompetenceRole, newItems);\n\t\t\t};\n\t\t\t\n\t\t\tself.aDuty = ko.observableArray();\n\t\t\tself.addDutys = function(dimensionData) {\n\t\t\t\tvar newItems = ko.utils.arrayMap(dimensionData, function(item) {\n\t\t\t\t\treturn new dimensionSelectDataModel(item.description, item.value);\n\t\t\t\t});\n\t\t\t\tself.aDuty.removeAll();\n\t\t\t\tself.aDuty.push.apply(self.aDuty, newItems);\n\t\t\t};\n\t\t\t\n\t\t\tself.aTask = ko.observableArray();\n\t\t\tself.addTasks = function(dimensionData) {\n\t\t\t\tvar newItems = ko.utils.arrayMap(dimensionData, function(item) {\n\t\t\t\t\treturn new dimensionSelectDataModel(item.description, item.value);\n\t\t\t\t});\n\t\t\t\tself.aTask.removeAll();\n\t\t\t\tself.aTask.push.apply(self.aTask, newItems);\n\t\t\t};\n\t\t\t\n\t\t\tself.aShift = ko.observableArray();\n\t\t\tself.addShifts = function(dimensionData) {\n\t\t\t\tvar newItems = ko.utils.arrayMap(dimensionData, function(item) {\n\t\t\t\t\treturn new dimensionSelectDataModel(item.description, item.value);\n\t\t\t\t});\n\t\t\t\tself.aShift.removeAll();\n\t\t\t\tself.aShift.push.apply(self.aShift, newItems);\n\t\t\t};\n\t\t\t\n\t\t\tself.aOrder = ko.observableArray();\n\t\t\tself.addOrders = function(dimensionData) {\n\t\t\t\tvar newItems = ko.utils.arrayMap(dimensionData, function(item) {\n\t\t\t\t\treturn new dimensionSelectDataModel(item.description, item.value);\n\t\t\t\t});\n\t\t\t\tself.aOrder.removeAll();\n\t\t\t\tself.aOrder.push.apply(self.aOrder, newItems);\n\t\t\t};\n\t\t\t\n\t\t\tself.aProject = ko.observableArray();\n\t\t\tself.addProjects = function(dimensionData) {\n\t\t\t\tvar newItems = ko.utils.arrayMap(dimensionData, function(item) {\n\t\t\t\t\treturn new dimensionSelectDataModel(item.description, item.value);\n\t\t\t\t});\n\t\t\t\tself.aProject.removeAll();\n\t\t\t\tself.aProject.push.apply(self.aProject, newItems);\n\t\t\t};\n\t\t\t\n\t\t\tself.aSubProject = ko.observableArray();\n\t\t\tself.addSubProjects = function(dimensionData) {\n\t\t\t\tvar newItems = ko.utils.arrayMap(dimensionData, function(item) {\n\t\t\t\t\treturn new dimensionSelectDataModel(item.description, item.value);\n\t\t\t\t});\n\t\t\t\tself.aSubProject.removeAll();\n\t\t\t\tself.aSubProject.push.apply(self.aSubProject, newItems);\n\t\t\t};\n\t\t\t\n\t\t\tself.aPhase = ko.observableArray();\n\t\t\tself.addPhases = function(dimensionData) {\n\t\t\t\tvar newItems = ko.utils.arrayMap(dimensionData, function(item) {\n\t\t\t\t\treturn new dimensionSelectDataModel(item.description, item.value);\n\t\t\t\t});\n\t\t\t\tself.aPhase.removeAll();\n\t\t\t\tself.aPhase.push.apply(self.aPhase, newItems);\n\t\t\t};\n\t\t\t\n\t\t\tself.aFridim1 = ko.observableArray();\n\t\t\tself.addFridim1s = function(dimensionData) {\n\t\t\t\tvar newItems = ko.utils.arrayMap(dimensionData, function(item) {\n\t\t\t\t\treturn new dimensionSelectDataModel(item.description, item.value);\n\t\t\t\t});\n\t\t\t\tself.aFridim1.removeAll();\n\t\t\t\tself.aFridim1.push.apply(self.aFridim1, newItems);\n\t\t\t};\n\t\t\t\n\t\t\tself.aFridim2 = ko.observableArray();\n\t\t\tself.addFridim2s = function(dimensionData) {\n\t\t\t\tvar newItems = ko.utils.arrayMap(dimensionData, function(item) {\n\t\t\t\t\treturn new dimensionSelectDataModel(item.description, item.value);\n\t\t\t\t});\n\t\t\t\tself.aFridim2.removeAll();\n\t\t\t\tself.aFridim2.push.apply(self.aFridim2, newItems);\n\t\t\t};\n\t\t\t\n\t\t\tself.saveTimeTransaction = function(formElement) {\n\t\t\t\tupsertTimeTransactionToDB();\n\t\t\t}\n\t\t\tself.getDimensionFirstOptionName = function(nItems) {\n\t\t\t\tif (nItems === 0) {\n\t\t\t\t\treturn getResource('app.noOptionToChoose');\n\t\t\t\t} else {\n\t\t\t\t\treturn getResource('app.pleaseSelect');\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Calendar timestamp dimensionSelectDataModel end\n\t\t\t\n\t\t\tself.createDayDutyWish = function(data, evt) {\n\t\t\t\tvar $currentTarget = $((evt.currentTarget) ? evt.currentTarget : evt.srcElement);\n\t\t\t\tvar $form = $currentTarget.parents('form');\n\t\t\t\tvar dateDiff = 0;\n\t\t\t\tvar newDutyWishObj = {}\n\t\t\t\tvar success = function(data, textStatus, jqXHR) {\n\t\t\t\t\tif (data.success === true) {\n\t\t\t\t\t\tif (dateDiff !== 0) {\n\t\t\t\t\t\t\t$(ctCalendarViewModel.days()).each(function(index,obj) {\n\t\t\t\t\t\t\t\tvar tmpIsoWeekday = obj.date().isoWeekday();\n\t\t\t\t\t\t\t\tif (obj.date().isBetween(newDutyWishObj.dutyWishStartDate, newDutyWishObj.dutyWishEndDate) || obj.date().isSame(newDutyWishObj.dutyWishStartDate) || obj.date().isSame(newDutyWishObj.dutyWishEndDate)) {\n\t\t\t\t\t\t\t\t\tif (isInArray(tmpIsoWeekday, newDutyWishObj.requestedDayIds)) {\n\t\t\t\t\t\t\t\t\t\tobj.timeStamps.push(new calendarDayItemModel(newDutyWishObj));\n\t\t\t\t\t\t\t\t\t\tobj.timeStamps.sort(_sortByItemSortOrder);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tupdateCalendarItemsForSelectedDay(newDutyWishObj.dutyWishStartDate);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$.magnificPopup.close();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsweetAlert(getResource('app.informationTitle'), handleServerErrorMessage(data.displayErrorMessage), \"error\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tvar error = function(jqXHR, textStatus, errorThrown) {\n\t\t\t\t\tsweetAlert(getResource('app.apiTimeoutTitle'), getResource(textStatus), \"error\");\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tnewDutyWishObj.template = 'dutyWish'\n\t\t\t\tnewDutyWishObj.requestedDepartmentIds = [];\n\t\t\t\tnewDutyWishObj.requestedDutyTypeIds = [];\n\t\t\t\tnewDutyWishObj.requestedDayIds = [];\n\t\t\t\tnewDutyWishObj.isEmployeeAvaliableOnShortNotice = $form.find('#isEmployeeAvaliableOnShortNotice').is(':checked');\n\t\t\t\tnewDutyWishObj.comment = $form.find('#dutyWishComment').val();\n\t\t\t\tnewDutyWishObj.commentFromEmployee = $form.find('#dutyWishComment').val();\n\t\t\t\tnewDutyWishObj.date = $form.find('#dutyWishDateFrom').val();\n\t\t\t\tnewDutyWishObj.fromDate = $form.find('#dutyWishDateFrom').val();\n\t\t\t\tnewDutyWishObj.toDate = $form.find('#dutyWishDateTo').val();\n\t\t\t\tnewDutyWishObj.dutyWishStartDate = $form.find('#dutyWishDateFrom').val();\n\t\t\t\tnewDutyWishObj.dutyWishEndDate = $form.find('#dutyWishDateTo').val();\n\t\t\t\tnewDutyWishObj.timeIn = '0001';\n\t\t\t\tnewDutyWishObj.timeOut = '0001';\n\t\t\t\t\n\t\t\t\t// Get form checked checkboxes\n\t\t\t\t$form.find('input[name=departmentIds]:checked').map(function() {\n\t\t\t\t\tnewDutyWishObj.requestedDepartmentIds.push(parseInt($(this).val()));\n\t\t\t\t});\n\t\t\t\t$form.find('input[name=dutyTypeIds]:checked').map(function() {\n\t\t\t\t\tnewDutyWishObj.requestedDutyTypeIds.push(parseInt($(this).val()));\n\t\t\t\t});\n\t\t\t\t$form.find('input[name=days]:checked').map(function() {\n\t\t\t\t\tnewDutyWishObj.requestedDayIds.push(parseInt($(this).val()));\n\t\t\t\t});\n\t\t\t\t\n\t\t\t\tdateDiff = moment(newDutyWishObj.dutyWishStartDate).diff(newDutyWishObj.dutyWishEndDate,'d');\n\t\t\t\tif (dateDiff !== 0) {\n\t\t\t\t\tnewDutyWishObj.template = 'dutyWishPeriods'\n\t\t\t\t\t_api.createDutyWishPeriod_POST(\n\t\t\t\t\t\tsuccess,\n\t\t\t\t\t\terror,\n\t\t\t\t\t\tgetCookie(ACCESSTOKEN_COOKIE_NAME),\n\t\t\t\t\t\tnewDutyWishObj.dutyWishStartDate, // fromDate\n\t\t\t\t\t\tnewDutyWishObj.dutyWishEndDate, // toDate\n\t\t\t\t\t\tnewDutyWishObj.requestedDayIds, // requestedDaysOfWeek\n\t\t\t\t\t\tnewDutyWishObj.requestedDepartmentIds, // requestedDepartmentIds\n\t\t\t\t\t\tnewDutyWishObj.requestedDutyTypeIds, // requestedDutyTypeIds\n\t\t\t\t\t\tnewDutyWishObj.comment, // commentFromEmployee\n\t\t\t\t\t\tnewDutyWishObj.isEmployeeAvaliableOnShortNotice// isEmployeeAvaliableOnShortNotice\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\t_api.createDutyWish_POST(\n\t\t\t\t\t\tsuccess,\n\t\t\t\t\t\terror,\n\t\t\t\t\t\tgetCookie(ACCESSTOKEN_COOKIE_NAME),\n\t\t\t\t\t\tnewDutyWishObj.dutyWishStartDate,\n\t\t\t\t\t\tnewDutyWishObj.requestedDepartmentIds, // requestedDepartmentIds\n\t\t\t\t\t\tnewDutyWishObj.requestedDutyTypeIds, // requestedDutyTypeIds\n\t\t\t\t\t\tnewDutyWishObj.comment, // commentFromEmployee\n\t\t\t\t\t\tnewDutyWishObj.isEmployeeAvaliableOnShortNotice // isEmployeeAvaliableOnShortNotice\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tself.createAvaliableDutyRequest = function(data, evt) {\n\t\t\t\tvar $currentTarget = $((evt.currentTarget) ? evt.currentTarget : evt.srcElement);\n\t\t\t\tvar $form = $currentTarget.parents('form');\n\t\t\t\tvar comment = $form.find('#dutyWishComment').val();\n\t\t\t\tvar avaliableDuty = ctCalendarViewModel.selectedAvaliableDuty();\n\t\t\t\tvar success = function(data, textStatus, jqXHR) {\n\t\t\t\t\t$.magnificPopup.close();\n\t\t\t\t\tif (data.success === true) {\n\t\t\t\t\t\tupdateCalendarItemsForSelectedDay(ctCalendarViewModel.daySelected().date().format('YYYY-MM-DD'));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsweetAlert(getResource('app.informationTitle'), handleServerErrorMessage(data.displayErrorMessage), \"error\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tvar error = function(jqXHR, textStatus, errorThrown) {\n\t\t\t\t\tsweetAlert(getResource('app.apiTimeoutTitle'), getResource(textStatus), \"error\");\n\t\t\t\t}\n\t\t\t\t_api.requestAvaliableDuty_POST(\n\t\t\t\t\tsuccess,\n\t\t\t\t\terror,\n\t\t\t\t\tgetCookie(ACCESSTOKEN_COOKIE_NAME),\n\t\t\t\t\tavaliableDuty.departmentId(),\n\t\t\t\t\tavaliableDuty.dutyPlanId(),\n\t\t\t\t\tavaliableDuty.dutyId(),\n\t\t\t\t\tavaliableDuty.employeeId(),\n\t\t\t\t\tavaliableDuty.startDate(),\n\t\t\t\t\tcomment\n\t\t\t\t);\n\t\t\t}\n\t\t\t\n\t\t\t// Wish data\n\t\t\tself.dutyWishFormData = ko.viewmodel.fromModel(dutyWishFormData());\n\t\t\t\n\t\t\t// Events\n\t\t\tself.dayClickAction = function(day) {\n\t\t\t\tself.daySelected(day);\n\t\t\t\tgetAccumulatedTimeByDay(day.date());\n\t\t\t\trefreshEmployeeRegistrationInformation(day.date());\n\t\t\t};\n\t\t\t\n\t\t\tself.removeAllCalendarDays = function() {\n\t\t\t\tself.days.removeAll();\n\t\t\t};\n\t\t\t\n\t\t\tself.removeAllAccumulatedTimeByMonth = function() {\n\t\t\t\tself.aAccumulatedTimeByMonth.removeAll();\n\t\t\t};\n\t\t\tself.removeAllAccumulatedTimeByDay = function() {\n\t\t\t\tself.aAccumulatedTimeByDay.removeAll();\n\t\t\t};\n\t\t\t\n\t\t\tself.deleteDay = function(day) {\n\t\t\t\tself.days.remove(day);\n\t\t\t};\n\t\t\t\n\t\t\tself.addDay = function(day) {\n\t\t\t\tself.days.push(new calendarDayModel());\n\t\t\t};\n\t\t};\n\t\t\n\t\tfunction getMomentDateTimeNow() {\n\t\t\tvar now = moment();\n\t\t\tif (ctCalendarViewModel) {\n\t\t\t\tnow = ctCalendarViewModel.now();\n\t\t\t}\n\t\t\treturn now;\n\t\t}\n\t\t\n\t\t// Sort functions\n\t\t/*////////////////////////////////////////////////////////////*/\n\t\t_sortByTimeInASC = function(a, b) {\n\t\t\treturn a.timeIn() < b.timeIn() ? -1 : 1;\n\t\t};\n\n\t\t_sortByItemSortOrder = function(a, b) {\n\t\t\tif (a.itemSortOrder() === b.itemSortOrder()) {\n\t\t\t\treturn _sortByTimeInASC(a, b);\n\t\t\t} else {\n\t\t\t\treturn a.itemSortOrder() < b.itemSortOrder() ? -1 : 1;\n\t\t\t}\n\t\t\t\n\t\t};\n\t\t\n\t\t_sortAccumulatedTime = function(a, b) {\n\t\t\t// -1 = sort a before b\n\t\t\t// 0 = unchanged\n\t\t\t// 1 = sort b before a\n\t\t\tvar retVal = 0;\n\t\t\t\n\t\t\t// if(a.isManualAdjustment() === false && b.isManualAdjustment() === true) {\n\t\t\t// \tretVal = -1;\n\t\t\t// } else if(a.isManualAdjustment() === true && b.isManualAdjustment() === false) {\n\t\t\t// \tretVal = 1;\n\t\t\t// } else {\n\t\t\t// \tif (a.timeCategoryDescription().toLowerCase() < b.timeCategoryDescription().toLowerCase()) {\n\t\t\t// \t\tretVal = -1;\n\t\t\t// \t} else {\n\t\t\t// \t\tretVal = 1;\n\t\t\t// \t}\n\t\t\t// }\n\t\t\t\n\t\t\tif (a.timeCategoryId() < b.timeCategoryId()) {\n\t\t\t\tretVal = -1;\n\t\t\t} else if (a.timeCategoryId() > b.timeCategoryId()) {\n\t\t\t\tretVal = 1;\n\t\t\t}\n\t\t\t\n\t\t\treturn retVal;\n\t\t}\n\t\t\n\t\t// extend knockout (accepts jQuery node and remove boolean)\n\t\t/*////////////////////////////////////////////////////////////*/\n\t\tko.unapplyBindings = function($node, remove) {\n\t\t\t// unbind events\n\t\t\t$node.find(\"*\").each(function() {\n\t\t\t\t$(this).unbind();\n\t\t\t});\n\n\t\t\t// Remove KO subscriptions and references\n\t\t\tif (remove) {\n\t\t\t\tko.removeNode($node[0]);\n\t\t\t} else {\n\t\t\t\tko.cleanNode($node[0]);\n\t\t\t}\n\t\t}\n\t\t\n\t\t// click event handlers\n\t\t/*////////////////////////////////////////////////////////////*/\n\t\t$('.ct-calendar').on('click', '.ct-calendar-days .ct-calendar-column', function(e) {\n\t\t\tvar $detailsElm = $('.ct-calendar-day-details'),\n\t\t\t\tscrollTopPos = $detailsElm.parent().position().top,\n\t\t\t\t$body = $('html, body');\n\t\t\t\n\t\t\t$('.selected').removeClass('selected');\n\t\t\t$(this).addClass('selected');\n\t\t\t\n\t\t\t$('.ct-calendar-month-details, .ct-calendar-balance-details').hide();\n\t\t\t$detailsElm.removeClass('hidden').delay(50).show();\n\t\t\t\n\t\t\tif (scrollTopPos > 100) {\n\t\t\t\tscrollTopPos -= 50;\n\t\t\t\t$body.delay(300).animate({scrollTop: scrollTopPos}, '500', 'swing', function() { \n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t\t\n\t\t$('.ct-calendar').on('click', '.ct-month-selector', function(e) {\n\t\t\tvar $this = $(this);\n\t\t\t$this.addClass('ct-month-selector-hover');\n\t\t\tsetTimeout(function () {\n\t\t\t\t$this.removeClass('ct-month-selector-hover');\n\t\t\t\tchangeMonth($this.hasClass('ct-month-next'));\n\t\t\t}, 150);\n\t\t});\n\t\t\n\t\t$('.ct-calendar').on('click', 'h1', function(e) {\n\t\t\t$('.ct-calendar-day-details').hide()\n\t\t\t$('.ct-calendar-month-details, .ct-calendar-balance-details').delay(50).show()\n\t\t});\n\t\t\n\t\t$('.ct-calendar').on('change', '#ct-show-avaliable-duty', function(e) {\n\t\t\t$this = $(this);\n\t\t\tif ($this.prop('checked') && getLocalStorage('myCapitechDutyWishFilter').departmentIds.length === 1 && getLocalStorage('myCapitechDutyWishFilter').departmentIds[0] === -1) {\n\t\t\t\t$this.prop('checked', false);\n\t\t\t\tsweetAlert({\n\t\t\t\t\ttitle: getResource('app.informationText'),\n\t\t\t\t\ttext: getResource('dutyWishFilter.setupDepartmentDutyFilter'),\n\t\t\t\t\ttype: 'info',\n\t\t\t\t\tshowCancelButton: true,\n\t\t\t\t\tconfirmButtonText: getResource('app.openFilter'),\n\t\t\t\t\tcancelButtonText: getResource('app.close')\n\t\t\t\t}, function(isConfirm) {\n\t\t\t\t\tif(isConfirm) {\n\t\t\t\t\t\twindow.location.href = 'profile.htm?v={gulp-my-capitech-version}#department-duty-filter';\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t\t\n\t\t$('.ct-btn-select-all').click(function(evt) {\n\t\t\tevt.preventDefault();\n\t\t\tvar $this = $(this);\n\t\t\tvar markCheckbox = true;\n\t\t\tif ($this.val() == 'false') {\n\t\t\t\tmarkCheckbox = false;\n\t\t\t}\n\t\t\t$this.parents('.ct-checkbox-group-wrapper').find('.ct-checkbox-group input:checkbox').each(function(index, obj) {\n\t\t\t\t$(obj).prop('checked', markCheckbox);\n\t\t\t});\n\t\t});\n\t\t\n\t\t// $('#ct-create-dutywish').on('change', '#dutyWishType', function(e) {\n\t\t// \tvar $this = $(this);\n\t\t// \tvar $component = $('#ct-create-dutywish');\n\t\t// \tvar selectedValue = $this.val();\n\t\t//\n\t\t// \tif (selectedValue == 'day') {\n\t\t// \t\t$('.ct-checkbox-days').hide(0);\n\t\t// \t\t$('.ct-checkbox-group-wrapper').removeClass('col-md-4').addClass('col-md-6');\n\t\t// \t} else {\n\t\t// \t\t$('.ct-checkbox-group-wrapper').removeClass('col-md-6').addClass('col-md-4');\n\t\t// \t\t$('.ct-checkbox-days').show(0);\n\t\t// \t}\n\t\t// });\n\t\t\n\t\t// init\n\t\t/*////////////////////////////////////////////////////////////*/\n\t\tinit();\n\t};\n}(jQuery));","(function ($) {\n \t$.fn.capitechChangePassword = function(options) {\n\t\tvar $ctChangePasswordElm = $(this);\n\t\t// functions\n\t\t/*////////////////////////////////////////////////////////////*/\n\t\tfunction init() {\n\t\t\tif (getLocalStorage(\"showChangePassword\") === true) {\n\t\t\t\t$ctChangePasswordElm.css(\"display\", \"block\");\n\t\t\t}\n\t\t\t$ctChangePasswordElm.submit(function(evt) {\n\t\t\t\tevt.preventDefault();\n\t\t\t\tvalidateInput();\n\t\t\t});\n\t\t\tif (getURLVariable(\"password-changed\") === \"true\" && getURLVariable(\"time-changed\")) {\n\t\t\t\tvar secondsSinceChanged = (new Date().getTime() - parseInt(getURLVariable(\"time-changed\"))) / 1000;\n\t\t\t\tconsole.log(\"seconds since changed: \" + secondsSinceChanged);\n\t\t\t\tif (secondsSinceChanged <= 10) {\n\t\t\t\t\tsweetAlert(getResource('app.informationTitle'), getResource('profile.passwordIsChanged'), \"success\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t\tfunction validateInput() {\n\t\t\tvar oldPassword = $ctChangePasswordElm.find('#old_password').val();\n\t\t\tvar newPassword = $ctChangePasswordElm.find('#password').val();\n\t\t\tvar newPasswordRepeated = $ctChangePasswordElm.find('#passwordRepeat').val();\n\t\t\t\n\t\t\tif (newPassword === newPasswordRepeated) {\n\t\t\t\tchangePassword(oldPassword, newPassword, newPasswordRepeated);\n\t\t\t} else {\n\t\t\t\tsweetAlert(getResource('app.informationTitle'), getResource('profile.passwordsIsNotEqual'), \"error\");\n\t\t\t}\n\t\t}\n\t\t\n\t\tfunction changePassword(oldPassword, newPassword, newPasswordRepeated) {\n\t\t\tvar success = function success(data, textStatus, jqXHR) {\n\t\t\t\tloaderIndicator(false);\n\t\t\t\tif (data.success === true) {\n\t\t\t\t\tpersistTokens(data.content[0]);\n\t\t\t\t\tvar redirectUrl = updateURLParameter(window.location.href, \"password-changed\", true);\n\t\t\t\t\tredirectUrl = updateURLParameter(redirectUrl, \"time-changed\", new Date().getTime());\n\t\t\t\t\twindow.location.href = redirectUrl;\n\t\t\t\t} else {\n\t\t\t\t\tsweetAlert(getResource('app.informationTitle'), handleServerErrorMessage(data.displayErrorMessage), \"error\");\n\t\t\t\t}\n\t\t\t};\n\t\t\tvar error = function error(jqXHR, textStatus, errorThrown) {\n\t\t\t\tloaderIndicator(false);\n\t\t\t\tsweetAlert(\"Error\", errorThrown, \"error\");\n\t\t\t};\n\t\t\tloaderIndicator(true);\n\t\t\t_api.changePassword_POST(success, error, getCookie(ACCESSTOKEN_COOKIE_NAME), oldPassword, newPassword, newPasswordRepeated);\n\t\t}\n\t\t\n\t\t// init\n\t\t/*////////////////////////////////////////////////////////////*/\n\t\tinit();\n\t\t\n\t};\n}(jQuery));","var ctDialogComponent;\n(function ($) {\n \t$.fn.capitechDialog = function() {\n\t\tvar $ctDialogElm = $(this);\n\t\tvar options = {}\n\t\tvar permissionsAndRegistrationSetup;\n\t\t\n\t\t// functions\n\t\t/*////////////////////////////////////////////////////////////*/\n\t\tfunction init() {\n\t\t\tpermissionsAndRegistrationSetup = getLocalStorage('myCapitechPermissionsAndRegistrationSetup');\n\t\t\tctDialogComponent = new dialogViewModel();\n\t\t\t$('*[data-ko-bind=\"ctDialogComponent\"]').each(function(index, obj) {\n\t\t\t\tko.applyBindings(ctDialogComponent, obj);\n\t\t\t});\n\t\t\tctDialogComponent.getThreads(50,0);\n\t\t}\n\t\t\n\t\tfunction updateUnReadCount() {\n\t\t\tvar unReadMessageCount = 0;\n\t\t\tko.utils.arrayForEach(ctDialogComponent.threads(), function(thread) {\n\t\t\t\tunReadMessageCount += thread.incomingMessagesCount() - thread.acknowledgeCount();\n\t\t\t});\n\t\t\tsetLocalStorage('myCapitechUnReadMessageCount', unReadMessageCount);\n\t\t\tctUnreadMessagesModel.unreadMessageCount(unReadMessageCount);\n\t\t}\n\t\t\n\t\t$(window).resize(function(event) {\n\t\t\tvar $activeThread = $('.ct-dialog-thread.active');\n\t\t\tif ($activeThread) {\n\t\t\t\tcalculateAndFixSizes($activeThread);\n\t\t\t}\n\t\t});\n\t\t\n\t\t// Models\n\t\t/*////////////////////////////////////////////////////////////*/\n\t\tvar dialogViewModel = function() {\n\t\t\tvar self = this;\n\t\t\t\n\t\t\tself.threads = ko.observableArray();\n\t\t\tself.selectedThread = ko.observable(new threadViewModel());\n\t\t\tself.newThreadMessageOpenForm = function() {\n\t\t\t\t$.magnificPopup.open({\n\t\t\t\t\tmainClass: 'dialog-slide-bottom',\n\t\t\t\t\tcloseOnBgClick: false,\n\t\t\t\t\titems: {\n\t\t\t\t\t\tsrc: $('#ct-dialog-compose'),\n\t\t\t\t\t\ttype: 'inline'\n\t\t\t\t\t},\n\t\t\t\t\tcallbacks: {\n\t\t\t\t\t\tbeforeOpen: function() {\n\t\t\t\t\t\t\t_api.getDepartmentDescriptions_POST(\n\t\t\t\t\t\t\t\tfunction(data, textStatus, jqXHR) {\n\t\t\t\t\t\t\t\t\tvar newItems = ko.utils.arrayMap(data.content, function(item) {\n\t\t\t\t\t\t\t\t\t\treturn new departmentViewModel(item.description, item.value);\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\tself.departments.removeAll();\n\t\t\t\t\t\t\t\t\tself.departments.push.apply(self.departments, newItems);\n\t\t\t\t\t\t\t\t\t// Get and set default department\n\t\t\t\t\t\t\t\t\tsetDefaultEmployeeDepartment(self);\n\t\t\t\t\t\t\t\t\t// Refresh select2 \n\t\t\t\t\t\t\t\t\t$('select#departmentId').each(function(index, el){\n\t\t\t\t\t\t\t\t\t\t$(el).data('select2').$container.find('*').addClass('needsclick');\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tfunction(jqXHR, textStatus, errorThrown) {\n\t\t\t\t\t\t\t\t\tsweetAlert(getResource('app.apiTimeoutTitle'), getResource(textStatus), \"error\");\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tgetCookie(ACCESSTOKEN_COOKIE_NAME)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t},\n\t\t\t\t\t\topen: function() {\n\t\t\t\t\t\t\tvar $thisElm = $(this.container[0]);\n\t\t\t\t\t\t\tinitializeComponents($thisElm);\n\t\t\t\t\t\t\t// Translate labels\n\t\t\t\t\t\t\ttranslateGUI($thisElm);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t// Init select2\n\t\t\t\t\t\t\t$('select#departmentId').select2({\n\t\t\t\t\t\t\t\ttheme: \"bootstrap\",\n\t\t\t\t\t\t\t\ttemplateResult: function(result, container) {\n\t\t\t\t\t\t\t\t\tif (!result.id) {\n\t\t\t\t\t\t\t\t\t\treturn result.text;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t$(container).addClass('needsclick');\n\t\t\t\t\t\t\t\t\treturn result.text;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\tself.departments = ko.observableArray();\n\t\t\tself.newThreadMessageDepartmentId = ko.observable();\n\t\t\tself.newThreadMessage = ko.observable(new messageViewModel());\n\t\t\tself.newThreadMessageSubmit = function() {\n\t\t\t\tvar success = function success(data, textStatus, jqXHR) {\n\t\t\t\t\t// Hide loader\n\t\t\t\t\tloaderIndicator(false);\n\t\t\t\t\tif (data.success == true) {\n\t\t\t\t\t\tvar receiverNames = [];\n\t\t\t\t\t\t\n\t\t\t\t\t\t$.each(ctDialogComponent.departments(), function (i, item) {\n\t\t\t\t\t\t\tif (item.value() == 50) {\n\t\t\t\t\t\t\t\treceiverNames = item.description();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t\t\n\t\t\t\t\t\t// Hide loader\n\t\t\t\t\t\tvar newThread = new threadViewModel({\n\t\t\t\t\t\t\tid: data.content[0].threadId,\n\t\t\t\t\t\t\ttopic: self.newThreadMessage().subject(),\n\t\t\t\t\t\t\tincomingMessagesCount: 0,\n\t\t\t\t\t\t\tisIncoming: false,\n\t\t\t\t\t\t\tisOutgoing: true,\n\t\t\t\t\t\t\tcreatedOn: moment().format(),\n\t\t\t\t\t\t\tlastMessageCreatedOn: moment().format(),\n\t\t\t\t\t\t\tstartedById: permissionsAndRegistrationSetup.id,\n\t\t\t\t\t\t\tstartedBy: permissionsAndRegistrationSetup.name,\n\t\t\t\t\t\t\treceiverNames: [receiverNames],\n\t\t\t\t\t\t\tdialogType: 'Department'\n\t\t\t\t\t\t});\n\t\t\t\t\t\tvar newMessage = new messageViewModel({\n\t\t\t\t\t\t\tid: data.content[0].messageId,\n\t\t\t\t\t\t\tthreadId: data.content[0].threadId,\n\t\t\t\t\t\t\ttopic: self.newThreadMessage().subject(),\n\t\t\t\t\t\t\tbody: self.newThreadMessage().body(),\n\t\t\t\t\t\t\tsenderFullName: permissionsAndRegistrationSetup.name\n\t\t\t\t\t\t});\n\t\t\t\t\t\t\n\t\t\t\t\t\tnewThread.messages().push(newMessage);\n\t\t\t\t\t\tself.threads.unshift(newThread);\n\t\t\t\t\t\tif ($('body').width() >= 800) {\n\t\t\t\t\t\t\t$('.ct-dialog-threads li').first().trigger('click');\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$.magnificPopup.close();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsweetAlert(getResource('app.informationTitle'), handleServerErrorMessage(data.displayErrorMessage), \"error\");\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tvar error = function error(jqXHR, textStatus, errorThrown) {\n\t\t\t\t\t// Hide loader\n\t\t\t\t\tloaderIndicator(false);\n\t\t\t\t\tsweetAlert(\"Error\", errorThrown, \"error\");\n\t\t\t\t};\n\t\t\t\t// Show loader\n\t\t\t\tloaderIndicator(true);\n\t\t\t\t_api.startDialog_POST(success, error, ctDialogComponent.newThreadMessageDepartmentId(), ctDialogComponent.newThreadMessage().subject(), ctDialogComponent.newThreadMessage().body(), getCookie(ACCESSTOKEN_COOKIE_NAME), null, null);\n\t\t\t}\n\t\t\tself.dialogMessageTemplate = ko.computed(function() {\n\t\t\t\treturn 'defaultIncomingTemplate';\n\t\t\t});\n\t\t\tself.getThreads = function(take, skip) {\n\t\t\t\tvar success = function success(data, textStatus, jqXHR) {\n\t\t\t\t\t// Hide loader\n\t\t\t\t\tloaderIndicator(false);\n\t\t\t\t\tif (data.success == true) {\n\t\t\t\t\t\t$.each(data.content, function(i, obj) {\n\t\t\t\t\t\t\tctDialogComponent.threads.push(new threadViewModel(obj));\n\t\t\t\t\t\t});\n\t\t\t\t\t\tupdateUnReadCount();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsweetAlert(getResource('app.informationTitle'), handleServerErrorMessage(data.displayErrorMessage), \"error\");\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tvar error = function error(jqXHR, textStatus, errorThrown) {\n\t\t\t\t\t// Hide loader\n\t\t\t\t\tloaderIndicator(false);\n\t\t\t\t\tsweetAlert(\"Error\", errorThrown, \"error\");\n\t\t\t\t};\n\t\t\t\t// Show loader\n\t\t\t\tloaderIndicator(true);\n\t\t\t\t_api.getDialogs_POST(success, error, take, skip, getCookie(ACCESSTOKEN_COOKIE_NAME));\n\t\t\t}\n\t\t\tself.sortThreads = function() {\n\t\t\t\t// Sort thread array\n\t\t\t\tself.threads.sort(_sortByLastMessageCreatedOnDESC);\n\t\t\t}\n\t\t}\n\t\t\n\t\tvar threadViewModel = function(properties) {\n\t\t\t// properties\n\t\t\tif(typeof(properties)==='undefined')\t\t\t\t\t\t\t\t\tproperties\t\t\t\t\t\t\t\t\t= {};\n\t\t\tif(typeof(properties.id)==='undefined')\t\t\t\t\t\t\t\t\tproperties.id\t\t\t\t\t\t\t\t= '';\n\t\t\tif(typeof(properties.createdOn)==='undefined')\t\t\t\t\t\t\tproperties.createdOn\t\t\t\t\t\t= '';\n\t\t\tif(typeof(properties.lastMessageCreatedOn)==='undefined')\t\t\t\tproperties.lastMessageCreatedOn \t\t\t= '';\n\t\t\tif(typeof(properties.startedById)==='undefined')\t\t\t\t\t\tproperties.startedById\t\t\t\t\t\t= '';\n\t\t\tif(typeof(properties.startedBy)==='undefined')\t\t\t\t\t\t\tproperties.startedBy\t\t\t\t\t\t= '';\n\t\t\tif(typeof(properties.topic)==='undefined')\t\t\t\t\t\t\t\tproperties.topic\t\t\t\t\t\t\t= '';\n\t\t\tif(typeof(properties.isOutgoing)==='undefined')\t\t\t\t\t\t\tproperties.isOutgoing\t\t\t\t\t\t= true;\n\t\t\tif(typeof(properties.isIncoming)==='undefined')\t\t\t\t\t\t\tproperties.isIncoming\t\t\t\t\t\t= false;\n\t\t\tif(typeof(properties.outgoingMessagesCount)==='undefined')\t\t\t\tproperties.outgoingMessagesCount\t\t\t= '';\n\t\t\tif(typeof(properties.incomingMessagesCount)==='undefined')\t\t\t\tproperties.incomingMessagesCount\t\t\t= '';\n\t\t\tif(typeof(properties.acknowledgeCount)==='undefined')\t\t\t\t\tproperties.acknowledgeCount\t\t\t\t\t= 0;\n\t\t\tif(typeof(properties.messages)==='undefined')\t\t\t\t\t\t\tproperties.messages\t\t\t\t\t\t\t= [];\n\t\t\tif(typeof(properties.unReadMessagesCount)==='undefined')\t\t\t\tproperties.unReadMessagesCount\t\t\t\t= 0;\n\t\t\tif(typeof(properties.dialogType)==='undefined')\t\t\t\t\t\t\tproperties.dialogType\t\t\t\t\t\t= 'Department';\n\t\t\tif(typeof(properties.hasUnAcknowledgedMessages)==='undefined')\t\t\tproperties.hasUnAcknowledgedMessages\t\t= false;\n\t\t\tif(typeof(properties.receiverNames)==='undefined')\t\t\t\t\t\tproperties.receiverNames\t\t\t\t\t= [];\n\t\t\t\n\t\t\tvar self = this;\n\t\t\tself.id\t\t\t\t\t\t\t\t\t= ko.observable(properties.id);\n\t\t\tself.createdOn\t\t\t\t\t\t\t= ko.observable(properties.createdOn);\n\t\t\tself.lastMessageCreatedOn\t\t\t\t= ko.observable(properties.lastMessageCreatedOn);\n\t\t\tself.startedById\t\t\t\t\t\t= ko.observable(properties.startedById);\n\t\t\tself.startedBy\t\t\t\t\t\t\t= ko.observable(properties.startedBy);\n\t\t\tself.topic\t\t\t\t\t\t\t\t= ko.observable(properties.topic);\n\t\t\tself.isOutgoing\t\t\t\t\t\t\t= ko.observable(properties.isOutgoing);\n\t\t\tself.isIncoming\t\t\t\t\t\t\t= ko.observable(properties.isIncoming);\n\t\t\tself.outgoingMessagesCount\t\t\t\t= ko.observable(properties.outgoingMessagesCount);\n\t\t\tself.incomingMessagesCount\t\t\t\t= ko.observable(properties.incomingMessagesCount);\n\t\t\tself.acknowledgeCount\t\t\t\t\t= ko.observable(properties.acknowledgeCount);\n\t\t\tself.messages\t\t\t\t\t\t\t= ko.observableArray(properties.messages);\n\t\t\tself.unReadMessagesCount\t\t\t\t= ko.observable(properties.unReadMessagesCount);\n\t\t\tself.dialogType\t\t\t\t\t\t\t= ko.observable(properties.dialogType);\n\t\t\tself.hasUnAcknowledgedMessages\t\t\t= ko.observable(properties.hasUnAcknowledgedMessages);\n\t\t\tself.receiverNames\t\t\t\t\t\t= ko.observable(properties.receiverNames.join(', '));\n\t\t\tself.newMessageContent\t\t\t\t\t= ko.observable('');\n\t\t\tself.lastMessageCreatedOnUnixTimestamp\t= ko.pureComputed(function(){\n\t\t\t\treturn moment(self.lastMessageCreatedOn()).unix();\n\t\t\t}, self);\n\t\t\tself.startedByOrStartedById \t\t\t= ko.pureComputed(function(){\n\t\t\t\tif (self.startedBy() !== '') {\n\t\t\t\t\treturn self.startedBy();\n\t\t\t\t} \n\t\t\t\treturn self.startedById();\n\t\t\t}, self);\n\t\t\tself.markupClasses = ko.pureComputed(function() {\n\t\t\t\tvar retClasses = '';\n\t\t\t\tif (self.isIncoming()) {\n\t\t\t\t\tretClasses = 'ct-dialog-incoming';\n\t\t\t\t} else {\n\t\t\t\t\tretClasses = 'ct-dialog-outgoing';\n\t\t\t\t}\n\t\t\t\tif (self.unReadMessagesCount() > 0) {\n\t\t\t\t\tretClasses = retClasses + ' ct-dialog-unread';\n\t\t\t\t} else {\n\t\t\t\t\tretClasses = retClasses + ' ct-dialog-read';\n\t\t\t\t}\n\t\t\t\tif (self.hasUnAcknowledgedMessages()) {\n\t\t\t\t\tretClasses = retClasses + ' ct-dialog-unacknowledged';\n\t\t\t\t} else {\n\t\t\t\t\tretClasses = retClasses + ' ct-dialog-acknowledged';\n\t\t\t\t}\n\t\t\t\treturn retClasses;\n\t\t\t}, self);\n\t\t\tself.iconMarkupClasses = ko.pureComputed(function() {\n\t\t\t\tif (self.dialogType() == 'Employee') {\n\t\t\t\t\treturn 'ct-icon-person-tall';\n\t\t\t\t} else if (self.dialogType() == 'Group') {\n\t\t\t\t\treturn 'ct-icon-group';\n\t\t\t\t} else if (self.dialogType() == 'Department') {\n\t\t\t\t\treturn 'ct-icon-department';\n\t\t\t\t}\n\t\t\t}, self);\n\t\t\tself.clickActionOpenThread = function(thread, event) {\n\t\t\t\tvar $this = $((event.currentTarget) ? event.currentTarget : event.srcElement);\n\t\t\t\tif ($this.hasClass('active') === false) {\n\t\t\t\t\tself.getMessages(50, 0, thread, $this);\n\t\t\t\t} else {\n\t\t\t\t\tself.toggleThreadActive($this);\n\t\t\t\t\tself.calculateAndFixSizes($this);\n\t\t\t\t}\n\t\t\t};\n\t\t\tself.getMessages = function(take, skip, thread, $selectedThreadObj) {\n\t\t\t\tvar success = function success(data, textStatus, jqXHR) {\n\t\t\t\t\tvar acknowledgedMessages = 0;\n\t\t\t\t\t// Hide loader\n\t\t\t\t\tloaderIndicator(false);\n\t\t\t\t\tif (data.success == true) {\n\t\t\t\t\t\tself.messages.removeAll();\n\t\t\t\t\t\t$.each(data.content, function(i, obj) {\n\t\t\t\t\t\t\tself.messages.push(new messageViewModel(obj));\n\t\t\t\t\t\t});\n\t\t\t\t\t\t// Count acknowledged messages and update thread\n\t\t\t\t\t\tko.utils.arrayForEach(self.messages(), function(message) {\n\t\t\t\t\t\t\tif (!message.isUnAcknowledged() && message.isIncoming()) {\n\t\t\t\t\t\t\t\tacknowledgedMessages++\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t\tself.acknowledgeCount(acknowledgedMessages);\n\t\t\t\t\t\tif (self.incomingMessagesCount() == self.acknowledgeCount()) {\n\t\t\t\t\t\t\tself.hasUnAcknowledgedMessages(false);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Sort messages\n\t\t\t\t\t\tself.messages.sort(_sortByCreatedOnASC);\n\t\t\t\t\t\t// Activate clicked thread\n\t\t\t\t\t\tctDialogComponent.selectedThread(self);\n\t\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\t\tthread.unReadMessagesCount(0);\n\t\t\t\t\t\t\tself.toggleThreadActive($selectedThreadObj);\n\t\t\t\t\t\t\tself.calculateAndFixSizes($selectedThreadObj);\n\t\t\t\t\t\t}, 50);\n\t\t\t\t\t\tupdateUnReadCount();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsweetAlert(getResource('app.informationTitle'), handleServerErrorMessage(data.displayErrorMessage), \"error\");\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tvar error = function error(jqXHR, textStatus, errorThrown) {\n\t\t\t\t\t// Hide loader\n\t\t\t\t\tloaderIndicator(false);\n\t\t\t\t\tsweetAlert(\"Error\", errorThrown, \"error\");\n\t\t\t\t};\n\t\t\t\t// Show loader\n\t\t\t\tloaderIndicator(true);\n\t\t\t\t_api.getDialogMessages_POST(success, error, self.id(), take, skip, getCookie(ACCESSTOKEN_COOKIE_NAME));\n\t\t\t};\n\t\t\tself.clickActionAcknowledgeAllMessages = function(thread) {\n\t\t\t\tvar success = function success(data, textStatus, jqXHR) {\n\t\t\t\t\t// Hide loader\n\t\t\t\t\tloaderIndicator(false);\n\t\t\t\t\tif (data.success == true) {\n\t\t\t\t\t\tself.incomingMessagesCount(0);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsweetAlert(getResource('app.informationTitle'), handleServerErrorMessage(data.displayErrorMessage), \"error\");\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tvar error = function error(jqXHR, textStatus, errorThrown) {\n\t\t\t\t\t// Hide loader\n\t\t\t\t\tloaderIndicator(false);\n\t\t\t\t\tsweetAlert(\"Error\", errorThrown, \"error\");\n\t\t\t\t};\n\t\t\t\t// Loop unread messages\n\t\t\t\tko.utils.arrayForEach(thread.messages(), function(message) {\n\t\t\t\t\t// Show loader\n\t\t\t\t\tloaderIndicator(true);\n\t\t\t\t\t_api.confirmMessage_POST(success, error, thread.id(), message.id(), getCookie(ACCESSTOKEN_COOKIE_NAME));\n\t\t\t\t});\n\t\t\t};\n\t\t\tself.clickActionReply = function(selectedThread) {\n\t\t\t\tvar acknowledgeRequiredBeforeReply = false;\n\t\t\t\tvar success = function success(data, textStatus, jqXHR) {\n\t\t\t\t\t// Hide loader\n\t\t\t\t\tloaderIndicator(false);\n\t\t\t\t\t$('#ct-dialog-reply-textarea').prop('disabled', false);\n\t\t\t\t\t$('#ct-dialog-button-reply-thread').prop('disabled', false);\n\t\t\t\t\tif (data.success == true) {\n\t\t\t\t\t\tself.messages.push(new messageViewModel({\n\t\t\t\t\t\t\tid: data.content,\n\t\t\t\t\t\t\tthreadId: selectedThread.id(),\n\t\t\t\t\t\t\tbody: selectedThread.newMessageContent(),\n\t\t\t\t\t\t\tsenderUsername: permissionsAndRegistrationSetup.id,\n\t\t\t\t\t\t\tsenderFullName: permissionsAndRegistrationSetup.name\n\t\t\t\t\t\t}));\n\t\t\t\t\t\tself.newMessageContent('');\n\t\t\t\t\t\tself.calculateAndFixSizes($('.ct-dialog-thread.active'));\n\t\t\t\t\t\t\n\t\t\t\t\t\t// Update thread last message date\n\t\t\t\t\t\tselectedThread.lastMessageCreatedOn(moment().format());\n\t\t\t\t\t\tctDialogComponent.sortThreads();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsweetAlert(getResource('app.informationTitle'), handleServerErrorMessage(data.displayErrorMessage), \"error\");\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tvar error = function error(jqXHR, textStatus, errorThrown) {\n\t\t\t\t\t// Hide loader\n\t\t\t\t\tloaderIndicator(false);\n\t\t\t\t\t$('#ct-dialog-reply-textarea').prop('disabled', false);\n\t\t\t\t\t$('#ct-dialog-button-reply-thread').prop('disabled', false);\n\t\t\t\t\tsweetAlert(\"Error\", errorThrown, \"error\");\n\t\t\t\t};\n\t\t\t\t\n\t\t\t\tko.utils.arrayForEach(selectedThread.messages(), function(message) {\n\t\t\t\t\tif (message.isUnAcknowledged()) {\n\t\t\t\t\t\tacknowledgeRequiredBeforeReply = true;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\t\n\t\t\t\tif (acknowledgeRequiredBeforeReply) {\n\t\t\t\t\tsweetAlert(getResource('dialog.acknowledgeRequiredTitle', 'Acknowledge required'), getResource('dialog.acknowledgeRequiredText', 'You have one or more messages that you need to confirm that you have read, please confirm these before replying.'), 'info');\n\t\t\t\t} else {\n\t\t\t\t\t// Show loader\n\t\t\t\t\t$('#ct-dialog-reply-textarea').prop('disabled', true);\n\t\t\t\t\t$('#ct-dialog-button-reply-thread').prop('disabled', true);\n\t\t\t\t\tloaderIndicator(true);\n\t\t\t\t\t_api.sendInDialog_POST(success, error, selectedThread.id(), selectedThread.newMessageContent(), getCookie(ACCESSTOKEN_COOKIE_NAME));\n\t\t\t\t}\n\t\t\t\t\n\t\t\t};\n\t\t\tself.toggleThreadActive = function($this) {\n\t\t\t\ttoggleThreadActive($this);\n\t\t\t}\n\t\t\tself.calculateAndFixSizes = function($this) {\n\t\t\t\tcalculateAndFixSizes($this);\n\t\t\t};\n\t\t};\n\t\t\n\t\tvar messageViewModel = function(properties) {\n\t\t\t// properties\n\t\t\tif(typeof(properties)==='undefined')\t\t\t\t\t\t\tproperties\t\t\t\t\t\t\t= {};\n\t\t\tif(typeof(properties.id)==='undefined')\t\t\t\t\t\t\tproperties.id\t\t\t\t\t\t= '';\n\t\t\tif(typeof(properties.threadId)==='undefined')\t\t\t\t\tproperties.threadId\t\t\t\t\t= '';\n\t\t\tif(typeof(properties.createdOn)==='undefined')\t\t\t\t\tproperties.createdOn\t\t\t\t= moment().format();\n\t\t\tif(typeof(properties.readOn)==='undefined')\t\t\t\t\t\tproperties.readOn\t\t\t\t\t= '';\n\t\t\tif(typeof(properties.subject)==='undefined')\t\t\t\t\tproperties.subject\t\t\t\t\t= '';\n\t\t\tif(typeof(properties.body)==='undefined')\t\t\t\t\t\tproperties.body\t\t\t\t\t\t= '';\n\t\t\tif(typeof(properties.senderUsername)==='undefined')\t\t\t\tproperties.senderUsername\t\t\t= '';\n\t\t\tif(typeof(properties.senderFullName)==='undefined')\t\t\t\tproperties.senderFullName\t\t\t= '';\n\t\t\tif(typeof(properties.isOutgoing)==='undefined')\t\t\t\t\tproperties.isOutgoing\t\t\t\t= true;\n\t\t\tif(typeof(properties.isIncoming)==='undefined')\t\t\t\t\tproperties.isIncoming\t\t\t\t= false;\n\t\t\tif(typeof(properties.createdOnUnixTimestamp)==='undefined')\t\tproperties.createdOnUnixTimestamp\t= moment(properties.createdOn).unix();\n\t\t\tif(typeof(properties.isUnAcknowledged)==='undefined')\t\t\tproperties.isUnAcknowledged\t\t\t= false;\n\t\t\t\n\t\t\tvar self = this;\n\t\t\tself.id\t\t\t\t\t\t\t= ko.observable(properties.id);\n\t\t\tself.threadId\t\t\t\t\t= ko.observable(properties.threadId);\n\t\t\tself.createdOn\t\t\t\t\t= ko.observable(properties.createdOn);\n\t\t\tself.readOn\t\t\t\t\t\t= ko.observable(properties.readOn);\n\t\t\tself.subject\t\t\t\t\t= ko.observable(properties.subject);\n\t\t\tself.body\t\t\t\t\t\t= ko.observable(properties.body);\n\t\t\tself.senderUsername\t\t\t\t= ko.observable(properties.senderUsername);\n\t\t\tself.senderFullName\t\t\t\t= ko.observable(properties.senderFullName);\n\t\t\tself.isOutgoing\t\t\t\t\t= ko.observable(properties.isOutgoing);\n\t\t\tself.isIncoming\t\t\t\t\t= ko.observable(properties.isIncoming);\n\t\t\tself.createdOnUnixTimestamp\t\t= ko.observable(properties.createdOnUnixTimestamp);\n\t\t\tself.isUnAcknowledged\t\t\t= ko.observable(properties.isUnAcknowledged);\n\t\t\tself.dialogMessageTemplate\t\t= ko.computed(function() {\n\t\t\t\treturn 'defaultIncomingTemplate';\n\t\t\t});\n\t\t\tself.senderFullNameOrSenderUsername = ko.pureComputed(function(){\n\t\t\t\tif (self.senderFullName() !== '') {\n\t\t\t\t\treturn self.senderFullName();\n\t\t\t\t} \n\t\t\t\treturn self.senderUsername();\n\t\t\t}, self);\n\t\t\tself.markupClasses = ko.pureComputed(function() {\n\t\t\t\tvar retClasses = \"\";\n\t\t\t\tif (self.isOutgoing()) {\n\t\t\t\t\tretClasses = 'ct-dialog-message-outgoing outgoing';\n\t\t\t\t} else {\n\t\t\t\t\tretClasses = 'ct-dialog-message-incoming incoming';\n\t\t\t\t\tif (self.isUnAcknowledged()) {\n\t\t\t\t\t\tretClasses = retClasses + ' ct-dialog-message-unacknowledged'\n\t\t\t\t\t} else {\n\t\t\t\t\t\tretClasses = retClasses + ' ct-dialog-message-acknowledged'\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn retClasses;\n\t\t\t}, self);\n\t\t\tself.createdOnAsDescription = ko.pureComputed(function() {\n\t\t\t\tif (moment().format('DD-MM-YYYY') == moment(self.createdOn()).format('DD-MM-YYYY')) {\n\t\t\t\t\treturn moment(self.createdOn()).from();\n\t\t\t\t} else {\n\t\t\t\t\treturn moment(self.createdOn()).format('ddd L LT');\n\t\t\t\t}\n\t\t\t}, self);\n\t\t\t\n\t\t\tself.clickActionAcknowledgeMessage = function(message) {\n\t\t\t\tvar success = function success(data, textStatus, jqXHR) {\n\t\t\t\t\t// Hide loader\n\t\t\t\t\tloaderIndicator(false);\n\t\t\t\t\tif (data.success == true) {\n\t\t\t\t\t\tmessage.isUnAcknowledged(false);\n\t\t\t\t\t\tctDialogComponent.selectedThread().acknowledgeCount(ctDialogComponent.selectedThread().acknowledgeCount() + 1);\n\t\t\t\t\t\tif (ctDialogComponent.selectedThread().incomingMessagesCount() == ctDialogComponent.selectedThread().acknowledgeCount()) {\n\t\t\t\t\t\t\tctDialogComponent.selectedThread().hasUnAcknowledgedMessages(false);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tupdateUnReadCount();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsweetAlert(getResource('app.informationTitle'), handleServerErrorMessage(data.displayErrorMessage), \"error\");\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tvar error = function error(jqXHR, textStatus, errorThrown) {\n\t\t\t\t\t// Hide loader\n\t\t\t\t\tloaderIndicator(false);\n\t\t\t\t\tsweetAlert(\"Error\", errorThrown, \"error\");\n\t\t\t\t};\n\t\t\t\t// Show loader\n\t\t\t\tloaderIndicator(true);\n\t\t\t\t_api.confirmMessage_POST(success, error, null, message.id(), getCookie(ACCESSTOKEN_COOKIE_NAME));\n\t\t\t};\n\t\t\t\n\t\t\t// Updates moment's pretty dates (23 minutes ago… etc.)\n\t\t\tsetInterval(function(){\n\t\t\t\tself.createdOn.notifySubscribers();\n\t\t\t}, 60 * 1000);\n\t\t};\n\t\t\n\t\tvar departmentViewModel = function(description, value) {\n\t\t\t// properties\n\t\t\tvar self = this;\n\t\t\tself.description = ko.observable(description);\n\t\t\tself.value = ko.observable(value);\n\t\t};\n\t\t\n\t\tfunction toggleThreadActive($this) {\n\t\t\tvar $body = $('body');\n\t\t\tvar $reply = $('.ct-dialog-reply');\n\t\t\t\n\t\t\tif ($this.hasClass('active') === false) {\n\t\t\t\t$reply.find('textarea').removeClass('active');\n\t\t\t\t$reply.find('.ct-dialog-reply').removeClass('reply-active');\n\t\t\t\t$('li.ct-dialog-thread.active').removeClass('active');\n\t\t\t\t$reply.addClass('active');\n\t\t\t\t$this.addClass('active');\n\t\t\t} else {\n\t\t\t\t$this.removeClass('active');\n\t\t\t\t$body.removeClass('ct-overflow-scroll');\n\t\t\t\t$('li.ct-dialog-thread.active ul.ct-dialog-thread-messages').height('');\n\t\t\t\t$('html').css('cssText', '');\n\t\t\t\t$body.css('cssText', '');\n\t\t\t\t$reply.removeClass('active');\n\t\t\t}\n\t\t}\n\t\t\n\t\tfunction calculateAndFixSizes($this) {\n\t\t\tvar $mainWrapper = $('.ct-dialog-threads');\n\t\t\tvar $childWrapper = $this.children('ul.ct-dialog-thread-messages');\n\t\t\tvar $childMessages = $childWrapper.children();\n\t\t\tvar childrenHeight = 0;\n\t\t\tvar bOpen = $this.hasClass('active');\n\t\t\tvar $reply = $('.ct-dialog-reply');\n\t\t\tvar $body = $('body');\n\t\t\tvar navHeight = $('#nav').height();\n\t\t\tvar subjectHeight = $this.find('.ct-dialog-subject').outerHeight(true);\n\t\t\n\t\t\tif (bOpen === false) {\n\t\t\t\t$childWrapper.css('height', '');\n\t\t\t} else {\n\t\t\t\t$childMessages.each(function(index, thisChild) {\n\t\t\t\t\t$child = $(thisChild);\n\t\t\t\t\t\n\t\t\t\t\t// Break if we have a message that needs acknowledge\n\t\t\t\t\tif ($child.hasClass('ct-dialog-message-unacknowledged')) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tchildrenHeight += $child.outerHeight(true);\n\t\t\t\t});\n\t\t\t\t\n\t\t\t\tif ($body.width() < 800) {\n\t\t\t\t\t$this.css('top', navHeight);\n\t\t\t\t\t$this.css('bottom', 0);\n\t\t\t\t\t$childWrapper.css('height', 'auto');\n\t\t\t\t\t$childWrapper.css('top', navHeight + subjectHeight + 10);\n\t\t\t\t\t$childWrapper.css('bottom', $reply.outerHeight(true));\n\t\t\t\t\t$body.addClass('ct-overflow-scroll');\n\t\t\t\t\t$('html').css('cssText', 'height: ' + window.innerHeight + 'px !important; position: relative !important; overflow: hidden !important;');\n\t\t\t\t\t$body.css('cssText', 'height: ' + window.innerHeight + 'px !important; position: relative !important; overflow: hidden !important;');\n\t\t\t\t} else {\n\t\t\t\t\t$childWrapper.css('top', '');\n\t\t\t\t\t$childWrapper.css('bottom', '');\n\t\t\t\t\t$childWrapper.css('height', $mainWrapper.height() - $reply.outerHeight(true));\n\t\t\t\t\t$body.removeClass('ct-overflow-scroll');\n\t\t\t\t\t$('html').css('cssText', '');\n\t\t\t\t\t$body.css('cssText', '');\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t$childWrapper.clearQueue().delay(800).animate({\n\t\t\t\t\tscrollTop: childrenHeight\n\t\t\t\t}, 400);\n\t\t\t}\n\t\t}\n\t\t\n\t\tfunction setDefaultEmployeeDepartment(self) {\n\t\t\tvar success = function success(data, textStatus, jqXHR) {\n\t\t\t\tvar modelData = {};\n\t\t\t\tloaderIndicator(false);\n\t\t\t\tif (data.success == true) {\n\t\t\t\t\tmodelData.employeeInformation = data.content[0];\n\t\t\t\t\tctEmployeeInformationModel = ko.viewmodel.fromModel(modelData.employeeInformation);\n\t\t\t\t\tself.newThreadMessageDepartmentId(ctEmployeeInformationModel.departmentId());\n\t\t\t\t} else {\n\t\t\t\t\tsweetAlert(getResource('app.informationTitle'), handleServerErrorMessage(data.displayErrorMessage), \"error\");\n\t\t\t\t}\n\t\t\t};\n\t\t\tvar error = function error(jqXHR, textStatus, errorThrown) {\n\t\t\t\tloaderIndicator(false);\n\t\t\t\tsweetAlert(\"Error\", errorThrown, \"error\");\n\t\t\t};\n\t\t\tloaderIndicator(true);\n\t\t\t_api.getEmployeePersonalInformation_POST(success, error, getCookie(ACCESSTOKEN_COOKIE_NAME));\n\t\t}\n\t\t\n\t\t// Sort functions\n\t\t/*////////////////////////////////////////////////////////////*/\n\t\t_sortByCreatedOnASC = function(a, b) {\n\t\t\treturn a.createdOnUnixTimestamp() < b.createdOnUnixTimestamp() ? -1 : 1;\n\t\t};\n\t\t_sortByLastMessageCreatedOnDESC = function(a, b) {\n\t\t\treturn a.lastMessageCreatedOnUnixTimestamp() > b.lastMessageCreatedOnUnixTimestamp() ? -1 : 1;\n\t\t};\n\t\t\n\t\t// init\n\t\t/*////////////////////////////////////////////////////////////*/\n\t\tinit();\n\t\t\n\t};\n}(jQuery));","var ctDutyWishPeriodModel;\n(function ($) {\n \t$.fn.capitechDutyWishPeriod = function() {\n\t\tvar properties = {\n\t\t\textend: {\n\t\t\t\t\"{root}\": function (root) {\n\t\t\t\t\troot.selectedDutyWishPeriod = ko.viewmodel.fromModel({bNew:true});\n\t\t\t\t\troot.dutyWishFormData = ko.viewmodel.fromModel(dutyWishFormData());\n\t\t\t\t\troot.deleteDutyWishPeriodClick = function (dutyWishPeriod) {\n\t\t\t\t\t\tdeleteDutyWishPeriod(dutyWishPeriod);\n\t\t\t\t\t};\n\t\t\t\t\troot.editDutyWishPeriodClick = function (dutyWishPeriod) {\n\t\t\t\t\t\tctDutyWishPeriodModel.selectedDutyWishPeriod = dutyWishPeriod;\n\t\t\t\t\t};\n\t\t\t\t\troot.addDutyWishPeriodClick = function (dutyWishPeriod) {\n\t\t\t\t\t\t$.magnificPopup.open({\n\t\t\t\t\t\t\tmainClass: 'dialog-slide-bottom',\n\t\t\t\t\t\t\tcloseOnBgClick: false,\n\t\t\t\t\t\t\titems: {\n\t\t\t\t\t\t\t\tsrc: $('#ct-create-dutywish-period'),\n\t\t\t\t\t\t\t\ttype: 'inline'\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tcallbacks: {\n\t\t\t\t\t\t\t\topen: function() {\n\t\t\t\t\t\t\t\t\tvar $thisElm = $(this.container[0]);\n\t\t\t\t\t\t\t\t\tinitializeComponents($thisElm);\n\t\t\t\t\t\t\t\t\t// Translate labels\n\t\t\t\t\t\t\t\t\ttranslateGUI($thisElm);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t};\n\t\t\t\t\treturn root;\n\t\t\t\t},\n\t\t\t\t\"{root}.dutyWishPeriods[i]\": function(dutyWishPeriod) {\n\t\t\t\t\tdutyWishPeriod.shortNoticeText = ko.computed(function() {\n\t\t\t\t\t\tvar currentStatus = dutyWishPeriod.isEmployeeAvaliableOnShortNotice();\n\t\t\t\t\t\tif (currentStatus) {\n\t\t\t\t\t\t\treturn getResource('dutyWish.shortNoticeTextTrue', 'Ja');\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn getResource('dutyWish.shortNoticeTextFalse', 'Nei');\n\t\t\t\t\t\t}\n\t\t\t\t\t}, dutyWishPeriod);\n\t\t\t\t\treturn dutyWishPeriod\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t\t// functions\n\t\t/*////////////////////////////////////////////////////////////*/\n\t\tfunction init() {\n\t\t\tvar modelData = {};\n\t\t\tmodelData.dutyWishPeriods = [];\n\t\t\tctDutyWishPeriodModel = ko.viewmodel.fromModel(modelData, properties);\n\t\t\t$('*[data-ko-bind=\"ctDutyWishPeriodModel\"]').each(function(index, obj) {\n\t\t\t\tko.applyBindings(ctDutyWishPeriodModel,obj);\n\t\t\t});\n\t\t\tgetDutyWishPeriods();\n\t\t}\n\t\t\n\t\tfunction getDutyWishPeriods() {\n\t\t\tvar success = function(data, textStatus, jqXHR) {\n\t\t\t\tvar modelData = {};\n\t\t\t\tloaderIndicator(false);\n\t\t\t\tif (data.success == true) {\n\t\t\t\t\tif (data.content.length > 0) {\n\t\t\t\t\t\tmodelData.dutyWishPeriods = data.content;\n\t\t\t\t\t\tko.viewmodel.updateFromModel(ctDutyWishPeriodModel, modelData);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tsweetAlert(getResource('app.informationTitle'), handleServerErrorMessage(data.displayErrorMessage), \"error\");\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar error = function error(jqXHR, textStatus, errorThrown) {\n\t\t\t\tloaderIndicator(false);\n\t\t\t\tsweetAlert(\"Error\", errorThrown, \"error\");\n\t\t\t};\n\t\t\tloaderIndicator();\n\t\t\t_api.getDutyWishPeriods_POST(success, error, getCookie(ACCESSTOKEN_COOKIE_NAME), '2015-01-01', '2015-12-12');\n\t\t}\n\t\t\n\t\tfunction deleteDutyWishPeriod(dutyWishPeriod) {\n\t\t\tvar success = function(data, textStatus, jqXHR) {\n\t\t\t\tloaderIndicator(false);\n\t\t\t\tif (data.success == false) {\n\t\t\t\t\tsweetAlert(getResource('app.informationTitle'), handleServerErrorMessage(data.displayErrorMessage), \"error\");\n\t\t\t\t} else {\n\t\t\t\t\tctDutyWishPeriodModel.dutyWishPeriods.remove(dutyWishPeriod);\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar error = function error(jqXHR, textStatus, errorThrown) {\n\t\t\t\tloaderIndicator(false);\n\t\t\t\tsweetAlert(\"Error\", errorThrown, \"error\");\n\t\t\t};\n\t\t\tloaderIndicator();\n\t\t\t_api.deleteDutyWishPeriod_POST(success, error, getCookie(ACCESSTOKEN_COOKIE_NAME), dutyWishPeriod.fromDate());\n\t\t}\n\t\t\n\t\t$('.ct-btn-select-all').click(function(evt) {\n\t\t\tevt.preventDefault();\n\t\t\tvar $this = $(this);\n\t\t\tvar markCheckbox = true;\n\t\t\tif ($this.val() == 'false') {\n\t\t\t\tmarkCheckbox = false;\n\t\t\t}\n\t\t\t$this.parents('.col-md-4').find('.ct-checkbox-group input:checkbox').each(function(index, obj) {\n\t\t\t\t$(obj).prop('checked', markCheckbox);\n\t\t\t});\n\t\t});\n\t\t\n\t\t$(this).find('form').submit(function(evt) {\n\t\t\tevt.preventDefault();\n\t\t\tvar $this = $(this);\n\t\t\tvar aNewDepartmentIds = [];\n\t\t\tvar aNewDutyTypeIds = [];\n\t\t\tvar aNewDays = [];\n\t\t\tvar isEmployeeAvaliableOnShortNotice = $this.find('#dutyWishPeriodAvaliableOnShortNotice').is(':checked');\n\t\t\tvar comment = $this.find('#dutyWishComment').val();\n\t\t\tvar dateFrom = $this.find('#dutyWishPeriodDateFrom').val();\n\t\t\tvar dateTo = $this.find('#dutyWishPeriodDateTo').val();\n\t\t\tvar success = function(data, textStatus, jqXHR) {\n\t\t\t\tloaderIndicator(false);\n\t\t\t\tif (data.success == true) {\n\t\t\t\t\tif (ctDutyWishPeriodModel.selectedDutyWishPeriod.bNew()) {\n\t\t\t\t\t\tgetDutyWishPeriods();\n\t\t\t\t\t}\n\t\t\t\t\t$.magnificPopup.close();\n\t\t\t\t} else {\n\t\t\t\t\tsweetAlert(getResource('app.informationTitle'), handleServerErrorMessage(data.displayErrorMessage), \"error\");\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar error = function error(jqXHR, textStatus, errorThrown) {\n\t\t\t\tloaderIndicator(false);\n\t\t\t\tsweetAlert(\"Error\", errorThrown, \"error\");\n\t\t\t};\n\t\t\t\n\t\t\t$this.find('input[name=departmentIds]:checked').map(function() {\n\t\t\t\taNewDepartmentIds.push(parseInt($(this).val()));\n\t\t\t});\n\t\t\t$this.find('input[name=dutyTypeIds]:checked').map(function() {\n\t\t\t\taNewDutyTypeIds.push(parseInt($(this).val()));\n\t\t\t});\n\t\t\t$this.find('input[name=days]:checked').map(function() {\n\t\t\t\taNewDays.push(parseInt($(this).val()));\n\t\t\t});\n\t\t\t\n\t\t\tloaderIndicator();\n\t\t\t_api.createDutyWishPeriod_POST(\n\t\t\t\tsuccess,\n\t\t\t\terror,\n\t\t\t\tgetCookie(ACCESSTOKEN_COOKIE_NAME),\n\t\t\t\tdateFrom, // fromDate\n\t\t\t\tdateTo, // toDate\n\t\t\t\taNewDays, // requestedDaysOfWeek\n\t\t\t\taNewDepartmentIds, // requestedDepartmentIds\n\t\t\t\taNewDutyTypeIds, // requestedDutyTypeIds\n\t\t\t\tcomment, // commentFromEmployee\n\t\t\t\tisEmployeeAvaliableOnShortNotice// isEmployeeAvaliableOnShortNotice\n\t\t\t);\n\t\t});\n\t\t\n\t\t// init\n\t\t/*////////////////////////////////////////////////////////////*/\n\t\tinit();\n\t\t\n\t};\n}(jQuery));","var ctEmployeeInformationModel;\n(function ($) {\n \t$.fn.capitechEmployeeInformation = function(options) {\n\t\tvar $ctEmployeeInformationElm = $(this);\n\t\t\n\t\t// functions\n\t\t/*////////////////////////////////////////////////////////////*/\n\t\tfunction init() {\n\t\t\tgetEmployeeInformation();\n\t\t}\n\t\t\n\t\tfunction getEmployeeInformation() {\n\t\t\tvar success = function success(data, textStatus, jqXHR) {\n\t\t\t\tvar modelData = {};\n\t\t\t\tloaderIndicator(false);\n\t\t\t\tif (data.success == true) {\n\t\t\t\t\tmodelData.employeeInformation = data.content[0];\n\t\t\t\t\tctEmployeeInformationModel = ko.viewmodel.fromModel(modelData.employeeInformation);\n\t\t\t\t\t$('*[data-ko-bind=\"ctEmployeeInformationModel\"]').each(function(index, obj) {\n\t\t\t\t\t\tko.applyBindings(ctEmployeeInformationModel, obj);\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tsweetAlert(getResource('app.informationTitle'), handleServerErrorMessage(data.displayErrorMessage), \"error\");\n\t\t\t\t}\n\t\t\t};\n\t\t\tvar error = function error(jqXHR, textStatus, errorThrown) {\n\t\t\t\tloaderIndicator(false);\n\t\t\t\tsweetAlert(\"Error\", errorThrown, \"error\");\n\t\t\t};\n\t\t\tloaderIndicator(true);\n\t\t\t_api.getEmployeePersonalInformation_POST(success, error, getCookie(ACCESSTOKEN_COOKIE_NAME));\n\t\t}\n\t\t\n\t\t// init\n\t\t/*////////////////////////////////////////////////////////////*/\n\t\tinit();\n\t\t\n\t};\n}(jQuery));","(function ($) {\n \t$.fn.capitechDepartmentDutyFilter = function(options) {\n\t\tvar ctWishFilterModel;\n\t\t\n\t\t// functions\n\t\t/*////////////////////////////////////////////////////////////*/\n\t\tfunction init() {\n\t\t\tcreateDepartmentDutyFilterModel();\n\t\t}\n\t\t\n\t\tfunction createDepartmentDutyFilterModel() {\n\t\t\tvar wishFilterFormValues = getLocalStorage('myCapitechDutyWishFilterValues');\n\t\t\tvar wishFilterSelectedValues = getLocalStorage('myCapitechDutyWishFilter');\n\t\t\tvar aSelectedDepartmentIds = wishFilterSelectedValues.departmentIds;\n\t\t\tvar aSelectedDutyTypeIds = wishFilterSelectedValues.dutyTypeIds;\n\t\t\n\t\t\tvar modelData = {};\n\t\t\tmodelData.dutyWishFilterDepartments = wishFilterFormValues.departments;\n\t\t\tmodelData.dutyWishFilterDutyTypes = wishFilterFormValues.dutyTypes;\n\t\t\tmodelData.bAlwaysShowDuties = wishFilterSelectedValues.displayAvaliableDutiesOnDaysIAlreadyHaveOtherDuties\n\t\t\n\t\t\t$(modelData.dutyWishFilterDepartments).each(function(index,obj) {\n\t\t\t\tif (isInArray(obj.id, aSelectedDepartmentIds)) {\n\t\t\t\t\tobj.bChecked = true;\n\t\t\t\t} else {\n\t\t\t\t\tobj.bChecked = false;\n\t\t\t\t}\n\t\t\t});\n\t\t\n\t\t\t$(modelData.dutyWishFilterDutyTypes).each(function(index,obj) {\n\t\t\t\tif (isInArray(obj.id, aSelectedDutyTypeIds)) {\n\t\t\t\t\tobj.bChecked = true;\n\t\t\t\t} else {\n\t\t\t\t\tobj.bChecked = false;\n\t\t\t\t}\n\t\t\t});\n\t\t\n\t\t\tctWishFilterModel = ko.viewmodel.fromModel(modelData);\n\t\t\t$('*[data-ko-bind=\"ctWishFilterModel\"]').each(function(index, obj) {\n\t\t\t\tko.applyBindings(ctWishFilterModel, obj);\n\t\t\t});\n\t\t}\n\t\t\n\t\t\n\t\t$('.ct-btn-select-all').click(function(evt) {\n\t\t\tevt.preventDefault();\n\t\t\tvar $this = $(this);\n\t\t\tvar markCheckbox = true;\n\t\t\tif ($this.val() == 'false') {\n\t\t\t\tmarkCheckbox = false;\n\t\t\t}\n\t\t\t$this.parents('.col-md-6').find('.ct-checkbox-group input:checkbox').each(function(index, obj) {\n\t\t\t\t$(obj).prop('checked', markCheckbox);\n\t\t\t});\n\t\t});\n\t\t\n\t\t$(this).submit(function(evt) {\n\t\t\tevt.preventDefault();\n\t\t\tvar $this = $(this);\n\t\t\tvar aNewDepartmentIds = [-1];\n\t\t\tvar aNewDutyTypeIds = [-1];\n\t\t\tvar newAlwaysShowDuties = $('#alwaysShowDuties').is(':checked');\n\t\t\tvar success = function(data, textStatus, jqXHR) {\n\t\t\t\tloaderIndicator(false);\n\t\t\t\tif (data.success == true) {\n\t\t\t\t\tvar myCapitechDutyWishFilter = getLocalStorage('myCapitechDutyWishFilter');\n\t\t\t\t\tmyCapitechDutyWishFilter.departmentIds = aNewDepartmentIds;\n\t\t\t\t\tmyCapitechDutyWishFilter.dutyTypeIds = aNewDutyTypeIds;\n\t\t\t\t\tmyCapitechDutyWishFilter.displayAvaliableDutiesOnDaysIAlreadyHaveOtherDuties = newAlwaysShowDuties;\n\t\t\t\t\tsetLocalStorage('myCapitechDutyWishFilter', myCapitechDutyWishFilter);\n\t\t\t\t\tsweetAlert(getResource('app.informationTitle'), getResource('filterDutyWish.filterChangedText', \"Avdeling og vaktfilteret er endret.\"), \"success\");\n\t\t\t\t} else {\n\t\t\t\t\tsweetAlert(getResource('app.informationTitle'), handleServerErrorMessage(data.displayErrorMessage), \"error\");\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar error = function error(jqXHR, textStatus, errorThrown) {\n\t\t\t\tloaderIndicator(false);\n\t\t\t\tsweetAlert(\"Error\", errorThrown, \"error\");\n\t\t\t};\n\t\t\t\n\t\t\t$this.find('input[name=departmentIds]:checked').map(function() {\n\t\t\t\taNewDepartmentIds.push(parseInt($(this).val()));\n\t\t\t});\n\t\t\t$this.find('input[name=dutyTypeIds]:checked').map(function() {\n\t\t\t\taNewDutyTypeIds.push(parseInt($(this).val()));\n\t\t\t});\n\t\t\t\n\t\t\tloaderIndicator();\n\t\t\t_api.saveDutyWishFilter_POST(success, error, getCookie(ACCESSTOKEN_COOKIE_NAME), aNewDepartmentIds, aNewDutyTypeIds, newAlwaysShowDuties);\n\t\t})\n\t\t\n\t\t// init\n\t\t/*////////////////////////////////////////////////////////////*/\n\t\tinit();\n\t\t\n\t};\n}(jQuery));","var ctFlextimeBalanceModel;\n(function ($) {\n \t$.fn.capitechFlexiTimeBalance = function(options) {\n\t\tvar $ctFlextimeBalanceElm = $(this);\n\t\t\n\t\t// functions\n\t\t/*////////////////////////////////////////////////////////////*/\n\t\tfunction init() {\n\t\t\tvar modelData = {};\n\t\t\tmodelData.flextimeBalance = [];\n\t\t\tmodelData.hasFlexitime = getLocalStorage('myCapitechPermissionsAndRegistrationSetup').hasFlexitime;\n\t\t\tctFlextimeBalanceModel = ko.viewmodel.fromModel(modelData);\n\t\t\t$('*[data-ko-bind=\"ctFlextimeBalanceModel\"]').each(function(index, obj) {\n\t\t\t\tko.applyBindings(ctFlextimeBalanceModel,obj);\n\t\t\t});\n\t\t\tif (getLocalStorage('myCapitechPermissionsAndRegistrationSetup').hasFlexitime === true) {\n\t\t\t\tgetFlexiTimeBalance();\n\t\t\t\t$('#flexitime-tab').trigger('click');\n\t\t\t} else {\n\t\t\t\t$('#vacation-tab').trigger('click');\n\t\t\t}\n\t\t}\n\t\t\n\t\tfunction getFlexiTimeBalance() {\n\t\t\tvar success = function success(data, textStatus, jqXHR) {\n\t\t\t\tvar modelData = {};\n\t\t\t\tloaderIndicator(false);\n\t\t\t\tif (data.success == true) {\n\t\t\t\t\tmodelData.flextimeBalance = data.content;\n\t\t\t\t\tmodelData.hasFlexitime = getLocalStorage('myCapitechPermissionsAndRegistrationSetup').hasFlexitime;\n\t\t\t\t\tko.viewmodel.updateFromModel(ctFlextimeBalanceModel, modelData);\n\t\t\t\t\t\n\t\t\t\t\t$ctFlextimeBalanceElm.find('.table-responsive').scrollLeft(1000);\n\t\t\t\t} else {\n\t\t\t\t\tsweetAlert(getResource('app.informationTitle'), handleServerErrorMessage(data.displayErrorMessage), \"error\");\n\t\t\t\t}\n\t\t\t};\n\t\t\tvar error = function error(jqXHR, textStatus, errorThrown) {\n\t\t\t\tloaderIndicator(false);\n\t\t\t\tsweetAlert(\"Error\", errorThrown, \"error\");\n\t\t\t};\n\t\t\t\n\t\t\tloaderIndicator(true);\n\t\t\t_api.getFlexiTimeBalance_POST(success, error, getCookie(ACCESSTOKEN_COOKIE_NAME), moment(new Date()).format('YYYY'));\n\t\t}\n\t\t// init\n\t\t/*////////////////////////////////////////////////////////////*/\n\t\tinit();\n\t};\n}(jQuery));","var ctFlexitimeModel;\n(function ($) {\n \t$.fn.capitechFlexitime = function(options) {\n\t\t\n\t\tvar $ctFlexitimeElm = $(this);\n\t\t\n\t\t// functions\n\t\t/*////////////////////////////////////////////////////////////*/\n\t\tfunction init() {\n\t\t\tgetFlexitime();\n\t\t}\n\t\t\n\t\tfunction getFlexitime() {\n\t\t\tvar currentDate = new Date();\n\t\t\tvar success = function success(data, textStatus, jqXHR) {\n\t\t\t\tvar modelData = {};\n\t\t\t\tloaderIndicator(false);\n\t\t\t\tif (data.success == true) {\n\t\t\t\t\tmodelData.flexitime = data.content;\n\t\t\t\t\tctFlexitimeModel = ko.viewmodel.fromModel(modelData);\n\t\t\t\t\t$('*[data-ko-bind=\"ctFlexitimeModel\"]').each(function(index, obj) {\n\t\t\t\t\t\tko.applyBindings(ctFlexitimeModel, obj);\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tsweetAlert(getResource('app.informationTitle'), handleServerErrorMessage(data.displayErrorMessage), \"error\");\n\t\t\t\t}\n\t\t\t};\n\t\t\tvar error = function error(jqXHR, textStatus, errorThrown) {\n\t\t\t\tloaderIndicator(false);\n\t\t\t\tsweetAlert(\"Error\", errorThrown, \"error\");\n\t\t\t};\n\t\t\tloaderIndicator(true);\n\t\t\t_api.getFlexiTimeTransactions_POST(success, error, getCookie(ACCESSTOKEN_COOKIE_NAME), currentDate.getFullYear());\n\t\t}\n\t\t\n\t\t// init\n\t\t/*////////////////////////////////////////////////////////////*/\n\t\tinit();\n\t\t\n\t};\n}(jQuery));","var ctHelpModel;\n(function ($) {\n \t$.fn.capitechHelp = function() {\n\t\t\n\t\tvar $ctHelpElm = $(this);\n\t\t\n\t\t// functions\n\t\t/*////////////////////////////////////////////////////////////*/\n\t\tfunction init() {\n\t\t\tgetHelpMarkup();\n\t\t}\n\t\t\n\t\tfunction getHelpMarkup() {\n\t\t\tvar success = function success(data, textStatus, jqXHR) {\n\t\t\t\tvar modelData = {};\n\t\t\t\tloaderIndicator(false);\n\t\t\t\tif (data.success == true && data.content.length > 0) {\n\t\t\t\t\tmodelData.helpMarkup = data.content;\n\t\t\t\t\tctHelpModel = ko.viewmodel.fromModel(modelData);\n\t\t\t\t\t$('*[data-ko-bind=\"ctHelpModel\"]').each(function(index, obj) {\n\t\t\t\t\t\tko.applyBindings(ctHelpModel, obj);\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tsweetAlert(getResource('app.informationTitle'), handleServerErrorMessage(data.displayErrorMessage), \"error\");\n\t\t\t\t}\n\t\t\t};\n\t\t\tvar error = function error(jqXHR, textStatus, errorThrown) {\n\t\t\t\tloaderIndicator(false);\n\t\t\t\tsweetAlert(\"Error\", errorThrown, \"error\");\n\t\t\t};\n\t\t\tloaderIndicator(true);\n\t\t\t_api.getHelpHtml_POST(success, error, _appSettingsObj.language);\n\t\t}\n\t\t\n\t\t// init\n\t\t/*////////////////////////////////////////////////////////////*/\n\t\tinit();\n\t\t\n\t};\n}(jQuery));","(function ($) {\n \t$.fn.capitechIncomingMessages = function() {\n\t\tvar ctIncomingMessagesModel;\n\t\tvar $ctIncomingMessagesElm = $(this);\n\t\tvar options = {}\n\t\t\n\t\t// functions\n\t\t/*////////////////////////////////////////////////////////////*/\n\t\tfunction init() {\n\t\t\toptions = { \n\t\t\t\textend: {\n\t\t\t\t\t\"{root}\": function(incomingMessages) {\n\t\t\t\t\t\tincomingMessageTemplate = function (incomingMessage) {\n\t\t\t\t\t\t\tif (incomingMessage.status() !== 'Acknowledged') {\n\t\t\t\t\t\t\t\treturn 'createdIncomingTemplate';\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\treturn 'defaultIncomingTemplate';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t\tmarkMessageAsAcknowledged = function (incomingMessage) {\n\t\t\t\t\t\t\tvar success = function success(data, textStatus, jqXHR) {\n\t\t\t\t\t\t\t\t// Hide loader\n\t\t\t\t\t\t\t\tloaderIndicator(false);\n\t\t\t\t\t\t\t\tif (data.success == true) {\n\t\t\t\t\t\t\t\t\tincomingMessage.status('Acknowledged');\n\t\t\t\t\t\t\t\t\tupdateUnReadCount();\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tsweetAlert(getResource('app.informationTitle'), handleServerErrorMessage(data.displayErrorMessage), \"error\");\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tvar error = function error(jqXHR, textStatus, errorThrown) {\n\t\t\t\t\t\t\t\t// Hide loader\n\t\t\t\t\t\t\t\tloaderIndicator(false);\n\t\t\t\t\t\t\t\tsweetAlert(\"Error\", errorThrown, \"error\");\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t// Show loader\n\t\t\t\t\t\t\tloaderIndicator(true);\n\t\t\t\t\t\t\t_api.markMessageAsAcknowledged_POST(success, error, getCookie(ACCESSTOKEN_COOKIE_NAME), incomingMessage.id());\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tgetIncomingMessages();\n\t\t}\n\t\t\n\t\tfunction getIncomingMessages() {\n\t\t\tvar success = function success(data, textStatus, jqXHR) {\n\t\t\t\tvar modelData = {};\n\t\t\t\t\n\t\t\t\t// Hide loader\n\t\t\t\tloaderIndicator(false);\n\t\t\t\t\n\t\t\t\tif (data.success == true) {\n\t\t\t\t\tmodelData.incomingMessages = data.content;\n\t\t\t\t\tctIncomingMessagesModel = ko.viewmodel.fromModel(modelData, options);\n\t\t\t\t\t$('*[data-ko-bind=\"ctIncomingMessagesModel\"]').each(function(index, obj) {\n\t\t\t\t\t\tko.applyBindings(ctIncomingMessagesModel, obj);\n\t\t\t\t\t});\n\t\t\t\t\t// Update unread messagecount\n\t\t\t\t\tupdateUnReadCount();\n\t\t\t\t} else {\n\t\t\t\t\tsweetAlert(getResource('app.informationTitle'), handleServerErrorMessage(data.displayErrorMessage), \"error\");\n\t\t\t\t}\n\t\t\t};\n\t\t\tvar error = function error(jqXHR, textStatus, errorThrown) {\n\t\t\t\t// Hide loader\n\t\t\t\tloaderIndicator(false);\n\t\t\t\tsweetAlert(\"Error\", errorThrown, \"error\");\n\t\t\t};\n\t\t\t// Show loader\n\t\t\tloaderIndicator(true);\n\t\t\t_api.getIncomingMessages_POST(success, error, getCookie(ACCESSTOKEN_COOKIE_NAME), true, null);\n\t\t}\n\t\t\n\t\tfunction updateUnReadCount() {\n\t\t\tvar unReadMessageCount = 0;\n\t\t\tko.utils.arrayForEach(ctIncomingMessagesModel.incomingMessages(), function(incomingMessage) {\n\t\t\t\tif (incomingMessage.status() !== 'Acknowledged') {\n\t\t\t\t\tunReadMessageCount += 1;\n\t\t\t\t}\n\t\t\t});\n\t\t\tsetLocalStorage('myCapitechUnReadMessageCount', unReadMessageCount);\n\t\t\tctUnreadMessagesModel.unreadMessageCount(unReadMessageCount);\n\t\t}\n\t\t\n\t\t// init\n\t\t/*////////////////////////////////////////////////////////////*/\n\t\tinit();\n\t\t\n\t};\n}(jQuery));","var ctNavigationModel;\n(function ($) {\n \t$.fn.capitechNavigation = function(options) {\n\t\t var options = {};\n\t\t\n\t\t// functions\n\t\t/*////////////////////////////////////////////////////////////*/\n\t\tfunction init() {\n\t\t\toptions = { \n\t\t\t\textend: {\n\t\t\t\t\t\"{root}\": function (root) {\n\t\t\t\t\t\troot.theme = ko.computed(function() {\n\t\t\t\t\t\t\tvar theme = getLocalStorage(\"myCapitechTheme\");\n\t\t\t\t\t\t\treturn theme + \"Theme\";\n\t\t\t\t\t\t});\n\t\t\t\t\t\troot.isCapitechLoginType = ko.computed(function() {\n\t\t\t\t\t\t\treturn getLocalStorage(\"loginType\") !== 'simployerSaam';\n\t\t\t\t\t\t});\n\t\t\t\t\t\troot.bClientSelectionAfterLogin = ko.computed(function() {\n\t\t\t\t\t\t\treturn getLocalStorage(\"clientSelectionAfterLogin\") === true;\n\t\t\t\t\t\t});\n\t\t\t\t\t\troot.clientId = ko.computed(function() {\n\t\t\t\t\t\t\treturn getCookie(CLIENTID_COOKIE_NAME);\n\t\t\t\t\t\t});\n\t\t\t\t\t\troot.clientName = ko.computed(function() {\n\t\t\t\t\t\t\treturn getLocalStorage(\"clientName\");\n\t\t\t\t\t\t}, root);\n\t\t\t\t\t\troot.newClientId = ko.observable(getCookie(CLIENTID_COOKIE_NAME));\n\t\t\t\t\t\troot.openChangeClientModal = function(self) {\n\t\t\t\t\t\t\tvar success = function(data) {\n\t\t\t\t\t\t\t\tvar modelData = {};\n\t\t\t\t\t\t\t\tmodelData.authorizedClients = data.content;\n\t\t\t\t\t\t\t\tko.viewmodel.updateFromModel(ctNavigationModel, modelData);\n\t\t\t\t\t\t\t\tctNavigationModel.newClientId(getCookie(CLIENTID_COOKIE_NAME));\n\t\t\t\t\t\t\t\tshowClientSelector();\n\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\tvar error = function(data) {\n\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t_api.getAuthorizedCapitechClients_POST(success, error, getCookie(REFRESHTOKEN_COOKIE_NAME));\n\t\t\t\t\t\t},\n\t\t\t\t\t\troot.changeClient = function() {\n\t\t\t\t\t\t\tvar success = function(data) {\n\t\t\t\t\t\t\t\tif (data.content && data.content.length > 0) {\n\t\t\t\t\t\t\t\t\tfor (var index = 0; index < ctNavigationModel.authorizedClients().length; index++) {\n\t\t\t\t\t\t\t\t\t\tvar authorizedClient = ctNavigationModel.authorizedClients()[index];\n\t\t\t\t\t\t\t\t\t\tif (ctNavigationModel.newClientId() === authorizedClient.clientId()) {\n\t\t\t\t\t\t\t\t\t\t\tsetLocalStorage(\"clientName\", authorizedClient.clientName());\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tpersistTokens(data.content[0]);\n\t\t\t\t\t\t\t\t\tsetLocalStorage('myCapitechAccessTokenExpires', data.content[0].accessTokenExpires);\n\t\t\t\t\t\t\t\t\tlocation.reload();\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tsweetAlert(getResource('app.informationText'), getResource('app.systemErrorMsg'), 'error');\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tloaderIndicator(false);\n\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\tvar error = function(data) {\n\t\t\t\t\t\t\t\tloaderIndicator(false);\n\t\t\t\t\t\t\t\tsweetAlert(getResource('app.informationTitle'), handleServerErrorMessage(data.displayErrorMessage), \"error\");\n\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t_api.changeClient_POST(success, error, getCookie(REFRESHTOKEN_COOKIE_NAME), ctNavigationModel.newClientId());\n\t\t\t\t\t\t\tloaderIndicator(true);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t\"{root}.navItems[i]\": function(navItem){\n\t\t\t\t\t\tnavItem.target = ko.computed(function() {\n\t\t\t\t\t\t\tif (navItem.openInNewWindow() === true) {\n\t\t\t\t\t\t\t\treturn navItem.linkUrl().replace(/\\W/g, '');\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\treturn '';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, navItem);\n\t\t\t\t\t},\n\t\t\t\t\t\"{root}.authorizedClients[i]\": function(authorizedClient) {\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tsetupNavigation();\n\t\t}\n\t\t\n\t\tfunction setupNavigation() {\n\t\t\tvar modelData = {\n\t\t\t\tnavItems: getLocalStorage('myCapitechExternalLinks'),\n\t\t\t\tunreadMessageCount: 0,\n\t\t\t\tpermissions: getLocalStorage('myCapitechPermissionsAndRegistrationSetup'),\n\t\t\t\tnewClientId: getCookie(CLIENTID_COOKIE_NAME),\n\t\t\t\tclientId: getCookie(CLIENTID_COOKIE_NAME),\n\t\t\t\tauthorizedClients: []\n\t\t\t};\n\t\t\tctNavigationModel = ko.viewmodel.fromModel(modelData, options);\n\t\t\t\n\t\t\t$('*[data-ko-bind=\"ctNavigationModel\"]').each(function(index, obj) {\n\t\t\t\tko.applyBindings(ctNavigationModel, obj);\n\t\t\t});\n\n\t\t\t$('.navigation-inited-opacity-zero').css('opacity', '1');\n\n\t\t\tif (ctUnreadMessagesModel === undefined) {\n\t\t\t\t$.fn.capitechUnreadMessages();\n\t\t\t\tgetUnReadMessageCount();\n\t\t\t}\n\n\t\t\tsetInterval(function () {\n\t\t\t\tgetUnReadMessageCount();\n\t\t\t}, 60000);\n\t\t}\n\n\t\tfunction getUnReadMessageCount() {\n\t\t\tctNavigationModel.unreadMessageCount(getLocalStorage('myCapitechUnReadMessageCount'));\n\t\t}\n\n\t\tfunction showClientSelector() {\n\t\t\t$.magnificPopup.open({\n\t\t\t\tmainClass: 'dialog-slide-bottom',\n\t\t\t\tcloseOnBgClick: false,\n\t\t\t\titems: {\n\t\t\t\t\tsrc: $('#ct-change-client'),\n\t\t\t\t\ttype: 'inline'\n\t\t\t\t},\n\t\t\t\tcallbacks: {\n\t\t\t\t\topen: function() {\n\t\t\t\t\t\tvar $thisElm = $(this.container[0]);\n\t\t\t\t\t\tvar browserWidth = $(window).width();\n\t\t\t\t\t\t\n\t\t\t\t\t\tinitializeComponents($thisElm);\n\t\t\t\t\t\t\n\t\t\t\t\t\t// Translate labels\n\t\t\t\t\t\ttranslateGUI($thisElm);\n\t\t\t\t\t\t\n\t\t\t\t\t\t// refreshSelect2Elements();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\t\n\t\t// init\n\t\t/*////////////////////////////////////////////////////////////*/\n\t\tinit();\n\t\t\n\t};\n}(jQuery));","var ctOutgoingMessagesFormModel;\n(function ($) {\n \t$.fn.capitechOutgoingMessagesForm = function(options) {\n\t\tvar $ctOutgoingMessagesFormElm = $(this);\n\t\t\n\t\t// functions\n\t\t/*////////////////////////////////////////////////////////////*/\n\t\tfunction sendOutgoingMessagesForm() {\n\t\t\tvar message = $ctOutgoingMessagesFormElm.find('#messageTextarea').val();\n\t\t\tvar messageDate = new Date();\n\t\t\t\n\t\t\tvar success = function success(data, textStatus, jqXHR) {\n\t\t\t\tvar message = $ctOutgoingMessagesFormElm.find('#messageTextarea').val();\n\t\t\t\tvar messageID;\n\t\t\t\t\n\t\t\t\tloaderIndicator(false);\n\t\t\t\t\n\t\t\t\tif (data.success == true) {\n\t\t\t\t\tmessageID = data.content[0];\n\t\t\t\t\tsweetAlert(getResource('message.sentSuccessTitle', 'Information'), getResource('message.sentSuccessText', 'Message successfully sent.'), \"success\");\n\t\t\t\t\ttry {\n\t\t\t\t\t\tctOutgoingMessagesModel.outgoingMessages.pushFromModel({\n\t\t\t\t\t\t\t'messageDate': new Date(),\n\t\t\t\t\t\t\t'messageTime': moment(messageDate).format('HH:mm'),\n\t\t\t\t\t\t\t'message': message,\n\t\t\t\t\t\t\t'messageDetail': message,\n\t\t\t\t\t\t\t'id': messageID,\n\t\t\t\t\t\t\t'status': 'Created'\n\t\t\t\t\t\t});\n\t\t\t\t\t\tctOutgoingMessagesModel.outgoingMessages.sort(_sortByTime);\n\t\t\t\t\t\tvar message = $ctOutgoingMessagesFormElm.find('#messageTextarea').val('');\n\t\t\t\t\t\t$('.ct-outgoing-messages-tab').tab('show');\n\t\t\t\t\t} catch (err) {}\n\t\t\t\t\t\n\t\t\t\t} else {\n\t\t\t\t\tsweetAlert(getResource('message.sentFailedTitle', 'Error'), handleServerErrorMessage(data.displayErrorMessage), \"error\");\n\t\t\t\t}\n\t\t\t};\n\t\t\tvar error = function error(jqXHR, textStatus, errorThrown) {\n\t\t\t\tloaderIndicator(false);\n\t\t\t\tsweetAlert(\"Error\", errorThrown, \"error\");\n\t\t\t};\n\t\t\tloaderIndicator(true);\n\t\t\t_api.createMessage_POST(success, error, getCookie(ACCESSTOKEN_COOKIE_NAME), message);\n\t\t}\n\t\t\n\t\t// \n\t\t/*////////////////////////////////////////////////////////////*/\n\t\t$ctOutgoingMessagesFormElm.submit(function(evt) {\n\t\t\tevt.preventDefault();\n\t\t\tsendOutgoingMessagesForm();\n\t\t})\n\t\t\n\t};\n}(jQuery));","var ctOutgoingMessagesModel;\n(function ($) {\n \t$.fn.capitechOutgoingMessages = function() {\n\t\tvar $ctOutgoingMessagesElm = $(this);\n\t\tvar options = { \n\t\t\textend: {\n\t\t\t\t\"{root}\": function(outgoingMessages) {\n\t\t\t\t\toutgoingMessageTemplate = function (outgoingMessage) {\n\t\t\t\t\t\tif (outgoingMessage.status() == 'Created') {\n\t\t\t\t\t\t\treturn 'createdOutgoingTemplate';\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn 'defaultOutgoingTemplate';\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\tdeleteOutgoingMessages = function (outgoingMessage) {\n\t\t\t\t\t\tvar success = function success(data, textStatus, jqXHR) {\n\t\t\t\t\t\t\t// Hide loader\n\t\t\t\t\t\t\tloaderIndicator(false);\n\t\t\t\t\t\t\tif (data.success == true) {\n\t\t\t\t\t\t\t\tctOutgoingMessagesModel.outgoingMessages.remove(outgoingMessage);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tsweetAlert(getResource('app.informationTitle'), handleServerErrorMessage(data.displayErrorMessage), \"error\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t\tvar error = function error(jqXHR, textStatus, errorThrown) {\n\t\t\t\t\t\t\t// Hide loader\n\t\t\t\t\t\t\tloaderIndicator(false);\n\t\t\t\t\t\t\tsweetAlert(\"Error\", errorThrown, \"error\");\n\t\t\t\t\t\t};\n\t\t\t\t\t\tsweetAlert({\n\t\t\t\t\t\t\ttitle: getResource('app.confirmDeletionTitle'),\n\t\t\t\t\t\t\ttype: \"warning\",\n\t\t\t\t\t\t\tshowCancelButton: true,\n\t\t\t\t\t\t\tconfirmButtonColor: \"#DD6B55\",\n\t\t\t\t\t\t\tconfirmButtonText: getResource('app.delete'),\n\t\t\t\t\t\t\tcancelButtonText: getResource('app.cancel')\n\t\t\t\t\t\t},function() {\n\t\t\t\t\t\t\t// Show loader\n\t\t\t\t\t\t\tloaderIndicator(true);\n\t\t\t\t\t\t\t// API delete\n\t\t\t\t\t\t\t_api.deleteMessage_POST(success, error, getCookie(ACCESSTOKEN_COOKIE_NAME), outgoingMessage.id());\n\t\t\t\t\t\t});\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t\t// functions\n\t\t/*////////////////////////////////////////////////////////////*/\n\t\tfunction init() {\n\t\t\tgetOutgoingMessages();\n\t\t}\n\t\t\n\t\tfunction getOutgoingMessages() {\n\t\t\tvar success = function success(data, textStatus, jqXHR) {\n\t\t\t\tvar modelData = {};\n\t\t\t\t// Hide loader\n\t\t\t\tloaderIndicator(false);\n\t\t\t\tif (data.success == true) {\n\t\t\t\t\tmodelData.outgoingMessages = data.content;\n\t\t\t\t\tctOutgoingMessagesModel = ko.viewmodel.fromModel(modelData,options);\n\t\t\t\t\t$('*[data-ko-bind=\"ctOutgoingMessagesModel\"]').each(function(index, obj) {\n\t\t\t\t\t\tko.applyBindings(ctOutgoingMessagesModel, obj);\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tsweetAlert(getResource('app.informationTitle'), handleServerErrorMessage(data.displayErrorMessage), \"error\");\n\t\t\t\t}\n\t\t\t};\n\t\t\tvar error = function error(jqXHR, textStatus, errorThrown) {\n\t\t\t\t// Hide loader\n\t\t\t\tloaderIndicator(false);\n\t\t\t\tsweetAlert(\"Error\", errorThrown, \"error\");\n\t\t\t};\n\t\t\t// Show loader\n\t\t\tloaderIndicator(true);\n\t\t\t_api.getOutgoingMessages_POST(success, error, getCookie(ACCESSTOKEN_COOKIE_NAME), true, 365);\n\t\t}\n\t\t\n\t\t_sortByTime = function(a, b) {\n\t\t\treturn a.messageDate() + a.messageTime() > b.messageDate() + b.messageTime() ? -1 : 1;\n\t\t};\n\t\t\n\t\t// init\n\t\t/*////////////////////////////////////////////////////////////*/\n\t\tinit();\n\t\t\n\t};\n}(jQuery));","var ctPermissionModel;\n(function ($) {\n \t$.fn.capitechPermissions = function(options) {\n\t\tvar $ctPermissionsElm = $(this);\n\t\t// functions\n\t\t/*////////////////////////////////////////////////////////////*/\n\t\tfunction init() {\n\t\t\tvar modelData = getLocalStorage('myCapitechPermissionsAndRegistrationSetup');\n\t\t\tctPermissionModel = ko.viewmodel.fromModel(modelData);\n\t\t\t\n\t\t\t$('*[data-ko-bind=\"ctPermissionModel\"]').each(function(index, obj) {\n\t\t\t\tko.applyBindings(ctPermissionModel,obj);\n\t\t\t});\n\t\t}\n\t\t\n\t\t// init\n\t\t/*////////////////////////////////////////////////////////////*/\n\t\tinit();\n\t\t\n\t};\n}(jQuery));","var ctReportModel;\n(function ($) {\n \t$.fn.capitechReport = function(options) {\n\t\t\n\t\tvar $this = $(this);\n\t\tvar $capitechReportElm = $this[0];\n\t\tctReportModel = ko.viewmodel.fromModel({content:[], selectedReportId:[], selectedReport:{}});\n\t\tko.applyBindings(ctReportModel,$capitechReportElm);\n\t\t\n\t\t// functions\n\t\t/*////////////////////////////////////////////////////////////*/\n\t\tfunction init() {\n\t\t\tsetInitialDates();\n\t\t\tgetAvaliableReports();\n\t\t}\n\t\t\n\t\tfunction getAvaliableReports() {\n\t\t\tvar success = function (data, textStatus, jqXHR) {\n\t\t\t\tloaderIndicator(false);\n\t\t\t\tif (data.success == true && data.content.length > 0) {\n\t\t\t\t\tko.viewmodel.updateFromModel(ctReportModel, data);\n\t\t\t\t\tctReportModel.selectedReportId(ctReportModel.content()[0].id());\n\t\t\t\t\tctReportModel.selectedReport = ctReportModel.content()[0];\n\t\t\t\t\tif (ctReportModel.content()[0].requiresFromAndToDates()) {\n\t\t\t\t\t\tshowHideDateFields('block');\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tsweetAlert(\"No reports\", \"You have no available reports.\", \"error\");\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar error = function (jqXHR, textStatus, errorThrown) {\n\t\t\t\tloaderIndicator(false);\n\t\t\t\tsweetAlert(\"Validation error\", \"API error: API not accessible\", \"error\");\n\t\t\t}\n\t\t\tloaderIndicator(true);\n\t\t\t_api.getAvaliableReports_POST(success, error, getCookie(ACCESSTOKEN_COOKIE_NAME), _appSettingsObj.language);\n\t\t}\n\t\t\n\t\tfunction getSelectedReport(reportId, reportDateFrom, reportDateTo) {\n\t\t\tvar success = function (data, textStatus, jqXHR) {\n\t\t\t\tvar markup = getResource('report.noContent', 'This report contains no data');\n\t\t\t\tloaderIndicator(false);\n\t\t\t\tif (data.success == true && data.content.length > 0) {\n\t\t\t\t\t\n\t\t\t\t\t$('#ct-rendered-report-title').text(data.content[0].name);\n\t\t\t\t\tif (data.content[0].hasResults) {\n\t\t\t\t\t\tmarkup = data.content[0].resultHtml;\n\t\t\t\t\t}\n\t\t\t\t\t$('#ct-rendered-report-content').html(markup);\n\t\t\t\t\t$('#ct-rendered-report').show(500);\n\t\t\t\t\t\n\t\t\t\t} else {\n\t\t\t\t\tsweetAlert(getResource('app.informationTitle'), handleServerErrorMessage(data.displayErrorMessage), \"error\");\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar error = function (jqXHR, textStatus, errorThrown) {\n\t\t\t\tloaderIndicator(false);\n\t\t\t\tdisplayAjaxErrorAlert(jqXHR, false);\n\t\t\t}\n\t\t\tloaderIndicator(true);\n\t\t\t_api.getReport_POST(success, error, getCookie(ACCESSTOKEN_COOKIE_NAME), _appSettingsObj.language, reportId, reportDateFrom, reportDateTo);\n\t\t}\n\t\t\n\t\tfunction showHideDateFields(displayType) {\n\t\t\tvar bRequired = true,\n\t\t\t\t$reportDateFrom = $('input#reportDateFrom'),\n\t\t\t\t$reportDateTo = $('input#reportDateTo');\n\t\t\t\t\n\t\t\tif (displayType == 'none') {\n\t\t\t\tbRequired = false;\n\t\t\t}\n\t\t\t\n\t\t\t$reportDateFrom.prop('required', bRequired)\n\t\t\t\t\t\t .parent().css('display', displayType);\n\t\t\t$reportDateTo.prop('required', bRequired)\n\t\t\t\t\t\t .parent().css('display', displayType);\n\t\t}\n\t\t\n\t\tfunction setInitialDates() {\n\t\t\tvar $reportDateFromElm = $this.find('input#reportDateFrom');\n\t\t\tvar $reportDateToElm = $this.find('input#reportDateTo');\n\t\t\tvar currentDate = new Date();\n\t\t\t\n\t\t\t$reportDateFromElm.val(moment(moment(currentDate).startOf('month')).format('YYYY-MM-DD'));\n\t\t\t$reportDateToElm.val(moment(currentDate).format('YYYY-MM-DD'));\n\t\t\t\n\t\t\t// Add mask if input type date not supported\n\t\t\tif (Modernizr.inputtypes.date === false) {\n\t\t\t\t$reportDateFromElm.inputmask({'formatAlias':'isoDate'});\n\t\t\t\t$reportDateToElm.inputmask({'formatAlias':'isoDate'});\n\t\t\t}\n\t\t}\n\t\t\n\t\t// event handlers\n\t\t/*////////////////////////////////////////////////////////////*/\n\t\t$($capitechReportElm).on('submit', 'form', function(evt) {\n\t\t\tevt.preventDefault();\n\t\t\t\n\t\t\tvar $this = $(this),\n\t\t\t\treportId,\n\t\t\t\treportDateFrom,\n\t\t\t\treportDateTo;\n\t\t\t\n\t\t\tif (ctReportModel.selectedReport.id()) {\n\t\t\t\t\treportId = ctReportModel.selectedReport.id();\n\t\t\t\t\treportDateFrom = $this.find('input#reportDateFrom').val();\n\t\t\t\t\treportDateTo = $this.find('input#reportDateTo').val();\n\t\t\t\tif (ctReportModel.selectedReport && ctReportModel.selectedReport.requiresFromAndToDates() !== true) {\n\t\t\t\t\treportDateFrom = null;\n\t\t\t\t\treportDateTo = null;\n\t\t\t\t}\n\t\t\t\tgetSelectedReport(reportId, reportDateFrom, reportDateTo);\n\t\t\t} else {\n\t\t\t\tsweetAlert(getResource('app.informationTitle'), getResource('report.pleaseSelectReport'), \"error\");\n\t\t\t}\n\t\t});\n\t\t\n\t\t$($capitechReportElm).on('focus blur change', 'select', function(evt) {\n\t\t\tvar selectedReportId = parseInt($(this).val());\n\t\t\tvar tempSelectedReport = ko.utils.arrayFirst(ctReportModel.content(), function(category) {\n\t\t\t\treturn parseInt(category.id()) === selectedReportId;\n\t\t\t});\n\t\t\tctReportModel.selectedReport = tempSelectedReport;\n\t\t\t\n\t\t\tif (ctReportModel.selectedReport && ctReportModel.selectedReport.requiresFromAndToDates()) {\n\t\t\t\tshowHideDateFields('block');\n\t\t\t} else {\n\t\t\t\tshowHideDateFields('none');\n\t\t\t}\n\t\t});\n\t\t\n\t\t// init\n\t\t/*////////////////////////////////////////////////////////////*/\n\t\tinit();\n\t\t\n\t};\n}(jQuery));","(function ($) {\n \t$.fn.capitechSettings = function() {\n\t\tvar $settingsForm = $(this);\n\t\t\n\t\tfunction fillFormItems() {\n\t\t\tvar appSettingsObj = _appSettingsObj;\n\t\t\t\n\t\t\tif (_appSettingsObj) {\n\t\t\t\t$.each(appSettingsObj, function(key, value) {\n\t\t\t\t\t$('#' + key).val(value);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\tfillFormItems();\n\t\t\n\t\t// Submit event\n\t\t$(this).on('submit', function(evt) {\n\t\t\tevt.preventDefault();\n\t\t\tsaveSettings();\n\t\t});\n\t\t\n\t\tfunction saveSettings(evt, username, password) {\n\t\t\tvar appSettingsObj = {};\n\t\t\t\n\t\t\t// Loop form items\n\t\t\t$settingsForm.find('input.form-control, select.form-control').each(function(index, obj) {\n\t\t\t\tvar $objKey = $(obj);\n\t\t\t\tappSettingsObj[$objKey.attr('name')] = $objKey.val()\n\t\t\t});\n\t\t\tsetLocalStorage('myCapitechSettings', appSettingsObj);\n\t\t\tlocation.reload();\n\t\t}\n\t\treturn;\n\t};\n}(jQuery));","var ctUnreadMessagesModel;\n(function ($) {\n \t$.fn.capitechUnreadMessages = function() {\n\t\tvar $ctUnreadMessagesElm = $(this);\n\t\tvar initUnreadMessageCount = parseInt(getLocalStorage('myCapitechUnReadMessageCount'));\n\t\t\n\t\t// functions\n\t\t/*////////////////////////////////////////////////////////////*/\n\t\tfunction init() {\n\t\t\tdisplayUnreadMessages();\n\t\t\tgetUnReadMessageCount();\n\t\t\tsetInterval(function () {\n\t\t\t\tgetUnReadMessageCount();\n\t\t\t}, 300000);\n\t\t}\n\t\t\n\t\tfunction displayUnreadMessages() {\n\t\t\tvar modelData = {};\n\t\t\tmodelData.unreadMessageCount = getLocalStorage('myCapitechUnReadMessageCount');\n\t\t\t\n\t\t\tctUnreadMessagesModel = new unreadMessagesViewModel(modelData);\n\t\t\t$('*[data-ko-bind=\"ctUnreadMessagesModel\"]').each(function(index, obj) {\n\t\t\t\tko.applyBindings(ctUnreadMessagesModel, obj);\n\t\t\t});\n\t\t}\n\t\t\n\t\tfunction getUnReadMessageCount() {\n\t\t\tvar success = function success(data, textStatus, jqXHR) {\n\t\t\t\tvar unreadMessageCount = 0;\n\t\t\t\tif (data.success == true && data.content.length === 1) {\n\t\t\t\t\tunreadMessageCount = parseInt(data.content[0]);\n\t\t\t\t\tctUnreadMessagesModel.unreadMessageCount(unreadMessageCount);\n\t\t\t\t\tif (initUnreadMessageCount < unreadMessageCount) {\n\t\t\t\t\t\t$('.ct-dialog-mobile-counter-wrapper').addClass('shake');\n\t\t\t\t\t} else {\n\t\t\t\t\t\tinitUnreadMessageCount = unreadMessageCount;\n\t\t\t\t\t\tsetLocalStorage('myCapitechUnReadMessageCount', unreadMessageCount);\n\t\t\t\t\t\t$('.ct-dialog-mobile-counter-wrapper').removeClass('shake');\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tsweetAlert(getResource('app.informationTitle'), handleServerErrorMessage(data.displayErrorMessage), \"error\");\n\t\t\t\t}\n\t\t\t};\n\t\t\tvar error = function error(jqXHR, textStatus, errorThrown) {\n\t\t\t\t// Do nothing.\n\t\t\t\t// sweetAlert(\"Error\", errorThrown, \"error\");\n\t\t\t};\n\t\t\t_api.getNumberOfPendingIncomingMessages_POST(success, error, getCookie(ACCESSTOKEN_COOKIE_NAME));\n\t\t}\n\t\t\n\t\tvar unreadMessagesViewModel = function(properties) {\n\t\t\t// properties\n\t\t\tif(typeof(properties)==='undefined')\t\t\t\t\tproperties\t\t\t\t\t\t= {};\n\t\t\tif(typeof(properties.unreadMessageCount)==='undefined')\tproperties.unreadMessageCount\t= '';\n\t\t\t\n\t\t\tvar self = this;\n\t\t\tself.unreadMessageCount\t= ko.observable(properties.unreadMessageCount);\n\t\t\tself.unreadMessageCountAsText = ko.pureComputed(function() {\n\t\t\t\t\n\t\t\t\tif (self.unreadMessageCount() === 0) {\n\t\t\t\t\treturn getResource('dialog.noneUnreadMessages', 'You have read all your messages');\n\t\t\t\t} else if (self.unreadMessageCount() === 1) {\n\t\t\t\t\treturn getResource('dialog.oneUnreadMessage', 'You have one unread message');\n\t\t\t\t} else {\n\t\t\t\t\treturn self.unreadMessageCount() + ' ' + getResource('dialog.manyOrNoneUnreadMessages', 'unread messages');\n\t\t\t\t}\n\t\t\t}, self);\n\t\t};\n\n\t\t// init\n\t\t/*////////////////////////////////////////////////////////////*/\n\t\tinit();\n\t};\n}(jQuery));","var ctUserSettingsComponent;\n(function ($) {\n \t$.fn.ctUserSettingsComponent = function(options) {\n\t\tvar $ctUserSettingsElm = $(this);\n\t\tvar options = {};\n\t\tvar defaultSettingItems = [\n\t\t\t{\n\t\t\t\t\"key\": \"language\",\n\t\t\t\t\"languageKey\": \"mySettings.language\",\n\t\t\t\t\"value\": getLocalStorage(\"myCapitechUserSettings\").language\n\t\t\t},{\n\t\t\t\t\"key\": \"selectCurrentDateOnStartup\",\n\t\t\t\t\"languageKey\": \"mySettings.selectCurrentDateOnStartup\",\n\t\t\t\t\"value\": \"false\"\n\t\t\t},{\n\t\t\t\t\"key\": \"useNativeTimeInput\",\n\t\t\t\t\"languageKey\": \"mySettings.useNativeTimeInputIfDeviceHasSupport\",\n\t\t\t\t\"value\": \"true\"\n\t\t\t}\n\t\t]\n\t\t\n\t\t// functions\n\t\t/*////////////////////////////////////////////////////////////*/\n\t\tfunction init() {\n\t\t\toptions = { \n\t\t\t\textend: {\n\t\t\t\t\t\"{root}\": function(userSettingItems) {\n\t\t\t\t\t\tuserSettingItemTemplate = function (userSettingItem) {\n\t\t\t\t\t\t\treturn 'user-setting-template-' + userSettingItem.type();\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\t\t\t\t\"{root}.userSettingItems[i]\": function(userSettingItem){\n\t\t\t\t\t\tuserSettingItem.type = ko.computed(function() {\n\t\t\t\t\t\t\tif (userSettingItem.key() === \"language\") {\n\t\t\t\t\t\t\t\treturn \"language\";\n\t\t\t\t\t\t\t} else if (userSettingItem.key() === \"selectCurrentDateOnStartup\") {\n\t\t\t\t\t\t\t\treturn \"boolean-select-current-date-on-startup\";\n\t\t\t\t\t\t\t} else if (userSettingItem.key() === \"useNativeTimeInput\") {\n\t\t\t\t\t\t\t\treturn \"boolean\";\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\treturn 'string';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, userSettingItem);\n\t\t\t\t\t\tuserSettingItem.translatedKeyText = ko.computed(function() {\n\t\t\t\t\t\t\treturn getResource(userSettingItem.languageKey());\n\t\t\t\t\t\t}, userSettingItem);\n\t\t\t\t\t\tuserSettingItem.translatedValueText = ko.computed(function() {\n\t\t\t\t\t\t\tif (userSettingItem.key() === \"selectCurrentDateOnStartup\") {\n\t\t\t\t\t\t\t\treturn getResource('mySettings.selectCurrentDateOnStartup' + capitalizeFirstLetter(userSettingItem.value()));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn getResource('mySettings.' + userSettingItem.value());\n\t\t\t\t\t\t}, userSettingItem);\n\t\t\t\t\t\tuserSettingItem.isEditing = ko.observable(false);\n\t\t\t\t\t\tuserSettingItem.oldValue = ko.observable(\"\");\n\t\t\t\t\t\tuserSettingItem.editUserSetting = function() {\n\t\t\t\t\t\t\tuserSettingItem.oldValue(userSettingItem.value());\n\t\t\t\t\t\t\tuserSettingItem.isEditing(true);\n\t\t\t\t\t\t};\n\t\t\t\t\t\tuserSettingItem.saveUserSetting = function(_self, evt) {\n\t\t\t\t\t\t\tevt.preventDefault();\n\t\t\t\t\t\t\tvar success = function success(data, textStatus, jqXHR) {\n\t\t\t\t\t\t\t\tloaderIndicator(false);\n\t\t\t\t\t\t\t\tif (data.success == true) {\n\t\t\t\t\t\t\t\t\tuserSettingItem.isEditing(false);\n\t\t\t\t\t\t\t\t\t// Update myCapitechUserSettings in localstorage\n\t\t\t\t\t\t\t\t\tvar tempSettings = getLocalStorage(\"myCapitechUserSettings\");\n\t\t\t\t\t\t\t\t\ttempSettings[userSettingItem.key()] = userSettingItem.value();\n\t\t\t\t\t\t\t\t\tsetLocalStorage(\"myCapitechUserSettings\", tempSettings);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t// Update myCapitechSettings in localstorage if language has been changed\n\t\t\t\t\t\t\t\t\tif (userSettingItem.key() === \"language\") {\n\t\t\t\t\t\t\t\t\t\tvar tempMyCapitechSettings = getLocalStorage(\"myCapitechSettings\");\n\t\t\t\t\t\t\t\t\t\ttempMyCapitechSettings.language = userSettingItem.value();\n\t\t\t\t\t\t\t\t\t\ttempMyCapitechSettings.languageShort = getShortLanguageCode(tempMyCapitechSettings.language);\n\t\t\t\t\t\t\t\t\t\t_appSettingsObj.language = userSettingItem.value();\n\t\t\t\t\t\t\t\t\t\tsetLocalStorage(\"myCapitechSettings\", tempMyCapitechSettings);\n\t\t\t\t\t\t\t\t\t\tgetAllLocalizations();\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tsweetAlert(getResource('app.informationTitle'), handleServerErrorMessage(data.displayErrorMessage), \"error\");\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tvar error = function error(jqXHR, textStatus, errorThrown) {\n\t\t\t\t\t\t\t\tloaderIndicator(false);\n\t\t\t\t\t\t\t\tsweetAlert(\"Error\", errorThrown, \"error\");\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tloaderIndicator(true);\n\t\t\t\t\t\t\t_api.upsertMyCapitechSetting_POST(success, error, getCookie(ACCESSTOKEN_COOKIE_NAME), userSettingItem.key(), userSettingItem.value());\n\t\t\t\t\t\t};\n\t\t\t\t\t\tuserSettingItem.cancelEditSetting = function() {\n\t\t\t\t\t\t\tuserSettingItem.isEditing(false);\n\t\t\t\t\t\t\tuserSettingItem.value(userSettingItem.oldValue());\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tgetUserSettings();\n\t\t}\n\t\t\n\t\tfunction getUserSettings() {\n\t\t\tvar success = function success(data, textStatus, jqXHR) {\n\t\t\t\tvar modelData = {};\n\t\t\t\tloaderIndicator(false);\n\t\t\t\tif (data.success == true) {\n\t\t\t\t\tmodelData.userSettingItems = defaultSettingItems;\n\t\t\t\t\t// Insert default settings if they dont exists\n\t\t\t\t\tdefaultSettingItems.forEach(function(defaultSettingItem) {\n\t\t\t\t\t\tvar existsInServerSettings = false;\n\t\t\t\t\t\tfor (var index = 0; index < data.content.length; index++) {\n\t\t\t\t\t\t\tvar serverSettingItem = data.content[index];\n\t\t\t\t\t\t\tif (serverSettingItem.key.toLowerCase() === defaultSettingItem.key.toLowerCase()) {\n\t\t\t\t\t\t\t\tdefaultSettingItem.value = serverSettingItem.value;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tctUserSettingsComponent = ko.viewmodel.fromModel(modelData, options);\n\t\t\t\t\tctUserSettingsComponent.userSettingItems.sort(_sortUserSettingsASC);\n\t\t\t\t\t$('*[data-ko-bind=\"ctUserSettingsModel\"]').each(function(index, obj) {\n\t\t\t\t\t\tko.applyBindings(ctUserSettingsComponent, obj);\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tsweetAlert(getResource('app.informationTitle'), handleServerErrorMessage(data.displayErrorMessage), \"error\");\n\t\t\t\t}\n\t\t\t};\n\t\t\tvar error = function error(jqXHR, textStatus, errorThrown) {\n\t\t\t\tloaderIndicator(false);\n\t\t\t\tsweetAlert(\"Error\", errorThrown, \"error\");\n\t\t\t};\n\t\t\tloaderIndicator(true);\n\t\t\t_api.getMyCapitechSettings_POST(success, error, getCookie(ACCESSTOKEN_COOKIE_NAME));\n\t\t}\n\n\t\tfunction getAllLocalizations() {\n\t\t\t_api.getAllLocalizations_POST(\n\t\t\t\tfunction(data, textStatus, jqXHR) {\n\t\t\t\t\tif (data.success == true) {\n\t\t\t\t\t\tvar languages = getLocalStorage(\"myCapitechLanguages\");\n\t\t\t\t\t\tlanguages[_appSettingsObj.language] = data.content;\n\t\t\t\t\t\tsetLocalStorage('myCapitechLanguages', languages);\n\t\t\t\t\t\twindow.location.reload(false);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsweetAlert(getResource('app.informationTitle'), handleServerErrorMessage(data.displayErrorMessage), \"error\");\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tfunction(jqXHR, textStatus, errorThrown) {\n\t\t\t\t\tdisplayAjaxErrorAlert(jqXHR);\n\t\t\t\t},\n\t\t\t\tgetLocalStorage(\"myCapitechSettings\").languageShort,\n\t\t\t\tnull\n\t\t\t);\n\t\t}\n\n\t\tfunction _sortUserSettingsASC(a ,b) {\n\t\t\treturn a.key() < b.key() ? -1 : 1;\n\t\t}\n\n\t\tfunction capitalizeFirstLetter(string) {\n\t\t\treturn string.charAt(0).toUpperCase() + string.slice(1);\n\t\t}\n\t\t\n\t\t// init\n\t\t/*////////////////////////////////////////////////////////////*/\n\t\tinit();\n\t\t\n\t};\n}(jQuery));","(function ($) {\n \t$.fn.capitechVacationBalance = function(options) {\n\t\tvar ctVacationBalanceModel;\n\t\tvar $ctVacationBalanceElm = $(this);\n\t\t\n\t\t// functions\n\t\t/*////////////////////////////////////////////////////////////*/\n\t\tfunction init() {\n\t\t\tgetVacationBalance();\n\t\t}\n\t\t\n\t\tfunction getVacationBalance() {\n\t\t\tvar success = function success(data, textStatus, jqXHR) {\n\t\t\t\tvar modelData = {};\n\t\t\t\tloaderIndicator(false);\n\t\t\t\tif (data.success == true && data.content.length === 1) {\n\t\t\t\t\tmodelData.vacationBalance = data.content;\n\t\t\t\t\tctVacationBalanceModel = ko.viewmodel.fromModel(modelData);\n\t\t\t\t\t$('*[data-ko-bind=\"ctVacationBalanceModel\"]').each(function(index, obj) {\n\t\t\t\t\t\tko.applyBindings(ctVacationBalanceModel, obj);\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tsweetAlert(getResource('app.informationTitle'), handleServerErrorMessage(data.displayErrorMessage), \"error\");\n\t\t\t\t}\n\t\t\t};\n\t\t\tvar error = function error(jqXHR, textStatus, errorThrown) {\n\t\t\t\tloaderIndicator(false);\n\t\t\t\tsweetAlert(\"Error\", errorThrown, \"error\");\n\t\t\t};\n\t\t\tloaderIndicator(true);\n\t\t\t_api.getVacationBalance_POST(success, error, getCookie(ACCESSTOKEN_COOKIE_NAME));\n\t\t}\n\t\t\n\t\t// init\n\t\t/*////////////////////////////////////////////////////////////*/\n\t\tinit();\n\t\t\n\t};\n}(jQuery));","var ctVacationModel;\n(function ($) {\n \t$.fn.capitechVacation = function() {\n\t\tvar $ctVacationElm = $(this);\n\t\tvar options = {};\n\t\t\n\t\t// functions\n\t\t/*////////////////////////////////////////////////////////////*/\n\t\tfunction init() {\n\t\t\toptions = { \n\t\t\t\textend: {\n\t\t\t\t\t\"{root}.vacation[i]\": function(vacation){\n\t\t\t\t\t\tvacation.translatedStatus = ko.computed(function() {\n\t\t\t\t\t\t\tvar vacationDate = moment(vacation.date()).toDate();\n\t\t\t\t\t\t\tvar currentDate = new Date();\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t// Avviklet\n\t\t\t\t\t\t\tif (vacationDate < currentDate) {\n\t\t\t\t\t\t\t\treturn getResource('vacation.statusDiscontinued', 'Avviklet');\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\treturn getResource('vacation.statusPlanned', 'Planlagt');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, vacation);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tgetVacation();\n\t\t}\n\t\t\n\t\tfunction getVacation() {\n\t\t\tvar success = function success(data, textStatus, jqXHR) {\n\t\t\t\tvar modelData = {};\n\t\t\t\tloaderIndicator(false);\n\t\t\t\tif (data.success == true) {\n\t\t\t\t\tmodelData.vacation = data.content;\n\t\t\t\t\tctVacationModel = ko.viewmodel.fromModel(modelData, options);\n\t\t\t\t\t$('*[data-ko-bind=\"ctVacationModel\"]').each(function(index, obj) {\n\t\t\t\t\t\tko.applyBindings(ctVacationModel, obj);\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tsweetAlert(getResource('app.informationTitle'), handleServerErrorMessage(data.displayErrorMessage), \"error\");\n\t\t\t\t}\n\t\t\t};\n\t\t\tvar error = function error(jqXHR, textStatus, errorThrown) {\n\t\t\t\tloaderIndicator(false);\n\t\t\t\tsweetAlert(\"Error\", errorThrown, \"error\");\n\t\t\t};\n\t\t\tloaderIndicator(true);\n\t\t\t_api.getVacationTransactions_POST(success, error, getCookie(ACCESSTOKEN_COOKIE_NAME));\n\t\t}\n\t\t\n\t\t// init\n\t\t/*////////////////////////////////////////////////////////////*/\n\t\tinit();\n\t\t\n\t};\n}(jQuery));","///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n//\n// Autogenerated on 02.07.2015 10:25:10\n//\n// Requires jQuery\n//\n// If there are multiple versions of a method, please remove all but the one you need\n// since javascript only supports one method per method name (the last version will overwrite the previous versions).\n//\n// Usage:\n// 1) Instantiate the api:\n//\n// var api = new Capitech.Api.WebtidApi(\"https://server.location.com/\");\n//\n//\n// 2) Call the methods.\n// The first and second parameteres is jQuery.ajax's 'success' and 'error'-methods, see http://api.jquery.com/jquery.ajax/\n// The other parameters are the parameters defined by the api.\n//\n// api.methodName(function(data, status, xhr) { console.log(data, status, xhr); }, function(data) { console.log(data); }, parameterA, parameterB, etc);\n//\n///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n(function(_parent, _jQuery) {\n \n namespace(\"Capitech.Api\");\n var self = Capitech.Api.WebtidApi = function(applicationRootPath) {\n this.applicationRootPath = applicationRootPath;\n return this;\n };\n\n self.prototype.authorize_POST = function(successFunc, errorFunc, clientId, username, password) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/authorize\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"clientId\": clientId, \"username\": username, \"password\": password };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n\n self.prototype.changeClient_POST = function(successFunc, errorFunc, refreshToken, clientId) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/changeClient\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"refreshToken\": refreshToken, \"clientId\": clientId };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.getAuthorizedCapitechClients_POST = function(successFunc, errorFunc, refreshToken) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/getAuthorizedCapitechClients\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"refreshToken\": refreshToken };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.getAvaliableCapitechClients_POST = function(successFunc, errorFunc) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/getAvaliableCapitechClients\", uriParameterData);\n var method = \"POST\";\n var parameterData = { };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.getServerVersion_GET = function(successFunc, errorFunc) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/getServerVersion\", uriParameterData);\n var method = \"GET\";\n var parameterData = { };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n\n self.prototype.getSettings_GET = function(successFunc, errorFunc) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/getSettings\", uriParameterData);\n var method = \"GET\";\n var parameterData = { };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.isClientApplicationVersionSupported_POST = function(successFunc, errorFunc, clientIdentifier, version) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/isClientApplicationVersionSupported\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"clientIdentifier\": clientIdentifier, \"version\": version };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.refreshAuthorization_POST = function(successFunc, errorFunc, refreshToken) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/refreshAuthorization\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"refreshToken\": refreshToken };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n\n self.prototype.signOut_POST = function(successFunc, errorFunc, accessToken) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/signOut\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"accessToken\": accessToken };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.createAbsenceRequest_POST = function(successFunc, errorFunc, accessToken, absenceCode, isShortTermAbsence, fromDate, fromTime, toDate, toTime, text) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/createAbsenceRequest\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"accessToken\": accessToken, \"absenceCode\": absenceCode, \"isShortTermAbsence\": isShortTermAbsence, \"fromDate\": fromDate, \"fromTime\": fromTime, \"toDate\": toDate, \"toTime\": toTime, \"text\": text };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.deleteAbsenceRequest_POST = function(successFunc, errorFunc, accessToken, absenceRequestId) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/deleteAbsenceRequest\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"accessToken\": accessToken, \"absenceRequestId\": absenceRequestId };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.getAbsenceCodes_POST = function(successFunc, errorFunc, accessToken) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/getAbsenceCodes\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"accessToken\": accessToken };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.getAbsenceRequests_POST = function(successFunc, errorFunc, accessToken, startDate) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/getAbsenceRequests\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"accessToken\": accessToken, \"startDate\": startDate };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.getAbsenceTransactions_POST = function(successFunc, errorFunc, accessToken, fromDate, toDate) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/getAbsenceTransactions\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"accessToken\": accessToken, \"fromDate\": fromDate, \"toDate\": toDate };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n\t\n\t\n\t\n self.prototype.acknowledgeMessage_POST = function(successFunc, errorFunc, DialogId, MessageId, AccessToken) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/acknowledgeMessage\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"DialogId\": DialogId, \"MessageId\": MessageId, \"AccessToken\": AccessToken };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.confirmMessage_POST = function(successFunc, errorFunc, DialogId, MessageId, AccessToken) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/confirmMessage\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"DialogId\": DialogId, \"MessageId\": MessageId, \"AccessToken\": AccessToken };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.getDialogMessages_POST = function(successFunc, errorFunc, threadId, Take, Skip, AccessToken) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/getDialogMessages\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"threadId\": threadId, \"Take\": Take, \"Skip\": Skip, \"AccessToken\": AccessToken };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.getDialogs_POST = function(successFunc, errorFunc, Take, Skip, AccessToken) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/getDialogs\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"Take\": Take, \"Skip\": Skip, \"AccessToken\": AccessToken };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.sendInDialog_POST = function(successFunc, errorFunc, DialogId, MessageBody, AccessToken) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/sendInDialog\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"DialogId\": DialogId, \"MessageBody\": MessageBody, \"AccessToken\": AccessToken };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.startDialog_POST = function(successFunc, errorFunc, ReceivingDepartmentId, Subject, Body, AccessToken) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/startDialog\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"ReceivingDepartmentId\": ReceivingDepartmentId, \"Subject\": Subject, \"Body\": Body, \"AccessToken\": AccessToken };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n\n self.prototype.getCompetenceroleDescriptions_POST = function(successFunc, errorFunc, accessToken) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/getCompetenceroleDescriptions\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"accessToken\": accessToken };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.getDepartmentDescriptions_POST = function(successFunc, errorFunc, accessToken) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/getDepartmentDescriptions\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"accessToken\": accessToken };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.getDimensionNames_POST = function(successFunc, errorFunc, accessToken, cultureCode) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/getDimensionNames\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"accessToken\": accessToken, \"cultureCode\": cultureCode };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n\n self.prototype.getDutyDefinitionDescriptions_POST = function(successFunc, errorFunc, accessToken) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/getDutyDefinitionDescriptions\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"accessToken\": accessToken };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.getDutyDescriptions_POST = function(successFunc, errorFunc, accessToken, departmentId) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/getDutyDescriptions\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"accessToken\": accessToken, \"departmentId\": departmentId };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.getFridim1Descriptions_POST = function(successFunc, errorFunc, accessToken) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/getFridim1Descriptions\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"accessToken\": accessToken };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.getFridim2Descriptions_POST = function(successFunc, errorFunc, accessToken) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/getFridim2Descriptions\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"accessToken\": accessToken };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.getHolidays_POST = function(successFunc, errorFunc, accessToken, fromDate, toDate) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/getHolidays\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"accessToken\": accessToken, \"fromDate\": fromDate, \"toDate\": toDate };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.getOrderDescriptions_POST = function(successFunc, errorFunc, accessToken) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/getOrderDescriptions\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"accessToken\": accessToken };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.getPhaseDescriptions_POST = function(successFunc, errorFunc, accessToken, projectId, subProjectId) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/getPhaseDescriptions\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"accessToken\": accessToken, \"projectId\": projectId, \"subProjectId\": subProjectId };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.getProjectDescriptions_POST = function(successFunc, errorFunc, accessToken) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/getProjectDescriptions\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"accessToken\": accessToken };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.getShiftDescriptions_POST = function(successFunc, errorFunc, accessToken) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/getShiftDescriptions\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"accessToken\": accessToken };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.getSubProjectDescriptions_POST = function(successFunc, errorFunc, accessToken, projectId) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/getSubProjectDescriptions\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"accessToken\": accessToken, \"projectId\": projectId };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.getTaskDescriptions_POST = function(successFunc, errorFunc, accessToken, departmentId) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/getTaskDescriptions\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"accessToken\": accessToken, \"departmentId\": departmentId };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.cancelRequestForAvaliableDuty_POST = function(successFunc, errorFunc, accessToken, departmentId, dutyPlanId, dutyId, fromDate) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/cancelRequestForAvaliableDuty\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"accessToken\": accessToken, \"departmentId\": departmentId, \"dutyPlanId\": dutyPlanId, \"dutyId\": dutyId, \"fromDate\": fromDate };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.createDutyWish_POST = function(successFunc, errorFunc, accessToken, date, requestedDepartmentIds, requestedDutyTypeIds, commentFromEmployee, isEmployeeAvaliableOnShortNotice) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/createDutyWish\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"accessToken\": accessToken, \"date\": date, \"requestedDepartmentIds\": requestedDepartmentIds, \"requestedDutyTypeIds\": requestedDutyTypeIds, \"commentFromEmployee\": commentFromEmployee, \"isEmployeeAvaliableOnShortNotice\": isEmployeeAvaliableOnShortNotice };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.createDutyWishPeriod_POST = function(successFunc, errorFunc, accessToken, fromDate, toDate, requestedDaysOfWeek, requestedDepartmentIds, requestedDutyTypeIds, commentFromEmployee, isEmployeeAvaliableOnShortNotice) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/createDutyWishPeriod\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"accessToken\": accessToken, \"fromDate\": fromDate, \"toDate\": toDate, \"requestedDaysOfWeek\": requestedDaysOfWeek, \"requestedDepartmentIds\": requestedDepartmentIds, \"requestedDutyTypeIds\": requestedDutyTypeIds, \"commentFromEmployee\": commentFromEmployee, \"isEmployeeAvaliableOnShortNotice\": isEmployeeAvaliableOnShortNotice };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.deleteDutyWish_POST = function(successFunc, errorFunc, accessToken, date) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/deleteDutyWish\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"accessToken\": accessToken, \"date\": date };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.deleteDutyWishPeriod_POST = function(successFunc, errorFunc, accessToken, originalFromDate) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/deleteDutyWishPeriod\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"accessToken\": accessToken, \"originalFromDate\": originalFromDate };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.getAvaliableDuties_POST = function(successFunc, errorFunc, accessToken, fromDate, toDate) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/getAvaliableDuties\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"accessToken\": accessToken, \"fromDate\": fromDate, \"toDate\": toDate };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.getDutyWish_POST = function(successFunc, errorFunc, accessToken, fromDate, toDate) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/getDutyWish\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"accessToken\": accessToken, \"fromDate\": fromDate, \"toDate\": toDate };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.getDutyWishFilter_POST = function(successFunc, errorFunc, accessToken) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/getDutyWishFilter\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"accessToken\": accessToken };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.getDutyWishPeriod_POST = function(successFunc, errorFunc, accessToken, fromDate) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/getDutyWishPeriod\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"accessToken\": accessToken, \"fromDate\": fromDate };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.getDutyWishPeriods_POST = function(successFunc, errorFunc, accessToken, fromDate, toDate) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/getDutyWishPeriods\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"accessToken\": accessToken, \"fromDate\": fromDate, \"toDate\": toDate };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.getPlannedDutiesForEmployee_POST = function(successFunc, errorFunc, accessToken, fromDate, toDate) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/getPlannedDutiesForEmployee\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"accessToken\": accessToken, \"fromDate\": fromDate, \"toDate\": toDate };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.getPossibleValuesForDutyWishFilter_POST = function(successFunc, errorFunc, accessToken) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/getPossibleValuesForDutyWishFilter\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"accessToken\": accessToken };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.getRequestedDuties_POST = function(successFunc, errorFunc, accessToken, fromDate, toDate) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/getRequestedDuties\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"accessToken\": accessToken, \"fromDate\": fromDate, \"toDate\": toDate };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.requestAvaliableDuty_POST = function(successFunc, errorFunc, accessToken, departmentId, dutyPlanId, dutyId, originalEmployeeId, originalFromDate, commentFromEmployee) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/requestAvaliableDuty\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"accessToken\": accessToken, \"departmentId\": departmentId, \"dutyPlanId\": dutyPlanId, \"dutyId\": dutyId, \"originalEmployeeId\": originalEmployeeId, \"originalFromDate\": originalFromDate, \"commentFromEmployee\": commentFromEmployee };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.saveDutyWishFilter_POST = function(successFunc, errorFunc, accessToken, departmentIds, dutyTypeIds, displayAvaliableDutiesOnDaysIAlreadyHaveOtherDuties) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/saveDutyWishFilter\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"accessToken\": accessToken, \"departmentIds\": departmentIds, \"dutyTypeIds\": dutyTypeIds, \"displayAvaliableDutiesOnDaysIAlreadyHaveOtherDuties\": displayAvaliableDutiesOnDaysIAlreadyHaveOtherDuties };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.updateDutyWishPeriod_POST = function(successFunc, errorFunc, accessToken, originalFromDate, newFromDate, newToDate, requestedDaysOfWeek, requestedDepartmentIds, requestedDutyTypeIds, newCommentFromEmployee, isEmployeeAvaliableOnShortNotice) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/updateDutyWishPeriod\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"accessToken\": accessToken, \"originalFromDate\": originalFromDate, \"newFromDate\": newFromDate, \"newToDate\": newToDate, \"requestedDaysOfWeek\": requestedDaysOfWeek, \"requestedDepartmentIds\": requestedDepartmentIds, \"requestedDutyTypeIds\": requestedDutyTypeIds, \"newCommentFromEmployee\": newCommentFromEmployee, \"isEmployeeAvaliableOnShortNotice\": isEmployeeAvaliableOnShortNotice };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.getFlexiTimeBalance_POST = function(successFunc, errorFunc, accessToken, year) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/getFlexiTimeBalance\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"accessToken\": accessToken, \"year\": year };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.getFlexiTimeTransactions_POST = function(successFunc, errorFunc, accessToken, year) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/getFlexiTimeTransactions\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"accessToken\": accessToken, \"year\": year };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.getAllLocalizations_POST = function(successFunc, errorFunc, cultureCode, clientId) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/getAllLocalizations\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"cultureCode\": cultureCode, \"clientId\": clientId };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.getHelpHtml_POST = function(successFunc, errorFunc, cultureCode) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/getHelpHtml\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"cultureCode\": cultureCode };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.getSingleLocalization_POST = function(successFunc, errorFunc, cultureCode, resourceKey, clientId) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/getSingleLocalization\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"cultureCode\": cultureCode, \"resourceKey\": resourceKey, \"clientId\": clientId };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.getTimeCategoryForManualAddition_POST = function(successFunc, errorFunc, accessToken) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/getTimeCategoryForManualAddition\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"accessToken\": accessToken };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.updateManualAddition_POST = function(successFunc, errorFunc, accessToken, inDate, inTime, details) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/updateManualAddition\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"accessToken\": accessToken, \"inDate\": inDate, \"inTime\": inTime, \"details\": details };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.createMessage_POST = function(successFunc, errorFunc, accessToken, message) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/createMessage\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"accessToken\": accessToken, \"message\": message };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.deleteMessage_POST = function(successFunc, errorFunc, accessToken, messageId) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/deleteMessage\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"accessToken\": accessToken, \"messageId\": messageId };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.getIncomingMessages_POST = function(successFunc, errorFunc, accessToken, includePendingMessages, numberOfDaysBackInTimeToIncludeAcknowledgedMessages) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/getIncomingMessages\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"accessToken\": accessToken, \"includePendingMessages\": includePendingMessages, \"numberOfDaysBackInTimeToIncludeAcknowledgedMessages\": numberOfDaysBackInTimeToIncludeAcknowledgedMessages };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.getNumberOfPendingIncomingMessages_POST = function(successFunc, errorFunc, accessToken) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/getNumberOfPendingIncomingMessages\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"accessToken\": accessToken };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.getOutgoingMessages_POST = function(successFunc, errorFunc, accessToken, numberOfDaysBackInTimeToInclude) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/getOutgoingMessages\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"accessToken\": accessToken, \"numberOfDaysBackInTimeToInclude\": numberOfDaysBackInTimeToInclude };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.markMessageAsAcknowledged_POST = function(successFunc, errorFunc, accessToken, messageId) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/markMessageAsAcknowledged\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"accessToken\": accessToken, \"messageId\": messageId };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n\n self.prototype.getMyCapitechSettings_POST = function(successFunc, errorFunc, accessToken) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/getMyCapitechSettings\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"accessToken\": accessToken };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.upsertMyCapitechSetting_POST = function(successFunc, errorFunc, accessToken, key, value) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/upsertMyCapitechSetting\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"accessToken\": accessToken, \"key\": key, \"value\": value };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n\n self.prototype.getExternalLinks_POST = function(successFunc, errorFunc, accessToken) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/getExternalLinks\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"accessToken\": accessToken };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.getAvaliableReports_POST = function(successFunc, errorFunc, accessToken, cultureCode) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/getAvaliableReports\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"accessToken\": accessToken, \"cultureCode\": cultureCode };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.getReport_POST = function(successFunc, errorFunc, accessToken, cultureCode, reportId, fromDate, toDate) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/getReport\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"accessToken\": accessToken, \"cultureCode\": cultureCode, \"reportId\": reportId, \"fromDate\": fromDate, \"toDate\": toDate };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.createCustomTimeTransaction_POST = function(successFunc, errorFunc, accessToken, dateIn, timeIn, dateOut, timeOut, departmentId, taskId, orderId, projectId, subProjectId, phaseId, dutyId, competenceRoleId, dutyDefinitionId, shiftId, fridim1Id, fridim2Id, text) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/createCustomTimeTransaction\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"accessToken\": accessToken, \"dateIn\": dateIn, \"timeIn\": timeIn, \"dateOut\": dateOut, \"timeOut\": timeOut, \"departmentId\": departmentId, \"taskId\": taskId, \"orderId\": orderId, \"projectId\": projectId, \"subProjectId\": subProjectId, \"phaseId\": phaseId, \"dutyId\": dutyId, \"competenceRoleId\": competenceRoleId, \"dutyDefinitionId\": dutyDefinitionId, \"shiftId\": shiftId, \"fridim1Id\": fridim1Id, \"fridim2Id\": fridim2Id, \"text\": text };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.createDefaultTimeTransactionIn_POST = function(successFunc, errorFunc, accessToken) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/createDefaultTimeTransactionIn\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"accessToken\": accessToken };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.createTimeTransactionOut_POST = function(successFunc, errorFunc, accessToken) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/createTimeTransactionOut\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"accessToken\": accessToken };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.deleteTimeTransaction_POST = function(successFunc, errorFunc, accessToken, existingDateIn, existingTimeIn) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/deleteTimeTransaction\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"accessToken\": accessToken, \"existingDateIn\": existingDateIn, \"existingTimeIn\": existingTimeIn };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.getAccumulatedTime_POST = function(successFunc, errorFunc, accessToken, fromDate, toDate) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/getAccumulatedTime\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"accessToken\": accessToken, \"fromDate\": fromDate, \"toDate\": toDate };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.getAccumulatedTimeForSingleTransaction_POST = function(successFunc, errorFunc, accessToken, inDate, inTime) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/getAccumulatedTimeForSingleTransaction\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"accessToken\": accessToken, \"inDate\": inDate, \"inTime\": inTime };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.getEmployeeRegistrationInformation_POST = function(successFunc, errorFunc, accessToken, capitechPlanDutyDate) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/getEmployeeRegistrationInformation\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"accessToken\": accessToken, \"capitechPlanDutyDate\": capitechPlanDutyDate };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.getTimeTransactionDetails_POST = function(successFunc, errorFunc, accessToken, fromDate, toDate) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/getTimeTransactionDetails\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"accessToken\": accessToken, \"fromDate\": fromDate, \"toDate\": toDate };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.getTimeTransactions_POST = function(successFunc, errorFunc, accessToken, fromDate, toDate) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/getTimeTransactions\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"accessToken\": accessToken, \"fromDate\": fromDate, \"toDate\": toDate };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.updateTimeTransaction_POST = function(successFunc, errorFunc, accessToken, existingDateIn, existingTimeIn, newDateIn, newTimeIn, newDateOut, newTimeOut, newDepartmentId, newTaskId, newOrderId, newProjectId, newSubProjectId, newPhaseId, newDutyId, newCompetenceRoleId, newDutyDefinitionId, newShiftId, newFridim1Id, newFridim2Id, newText) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/updateTimeTransaction\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"accessToken\": accessToken, \"existingDateIn\": existingDateIn, \"existingTimeIn\": existingTimeIn, \"newDateIn\": newDateIn, \"newTimeIn\": newTimeIn, \"newDateOut\": newDateOut, \"newTimeOut\": newTimeOut, \"newDepartmentId\": newDepartmentId, \"newTaskId\": newTaskId, \"newOrderId\": newOrderId, \"newProjectId\": newProjectId, \"newSubProjectId\": newSubProjectId, \"newPhaseId\": newPhaseId, \"newDutyId\": newDutyId, \"newCompetenceRoleId\": newCompetenceRoleId, \"newDutyDefinitionId\": newDutyDefinitionId, \"newShiftId\": newShiftId, \"newFridim1Id\": newFridim1Id, \"newFridim2Id\": newFridim2Id, \"newText\": newText };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.changePassword_POST = function(successFunc, errorFunc, accessToken, oldPassword, newPassword, newPasswordRepeated) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/changePassword\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"accessToken\": accessToken, \"oldPassword\": oldPassword, \"newPassword\": newPassword, \"newPasswordRepeated\": newPasswordRepeated };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n\n self.prototype.forgotPassword_POST = function(successFunc, errorFunc, clientId, emailAddress, cultureCode) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/forgotPassword\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"clientId\": clientId, \"emailAddress\": emailAddress, \"cultureCode\": cultureCode };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.getEmployeePersonalInformation_POST = function(successFunc, errorFunc, accessToken) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/getEmployeePersonalInformation\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"accessToken\": accessToken };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.getPostalTownFromNorwegianZipCode_POST = function(successFunc, errorFunc, norwegianZipCode) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/getPostalTownFromNorwegianZipCode\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"norwegianZipCode\": norwegianZipCode };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.getVacationBalance_POST = function(successFunc, errorFunc, accessToken) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/getVacationBalance\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"accessToken\": accessToken };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype.getVacationTransactions_POST = function(successFunc, errorFunc, accessToken) {\n var uriParameterData = { };\n var url = this._getUrl(\"api/public/v1/Webtid/getVacationTransactions\", uriParameterData);\n var method = \"POST\";\n var parameterData = { \"accessToken\": accessToken };\n this._call(url, method, parameterData, successFunc, errorFunc);\n }\n \n self.prototype._getUrl = function(methodRelativePath, uriParameters) {\n var url = this.applicationRootPath + methodRelativePath;\n for (var uriParameter in uriParameters) {\n var regex = new RegExp(uriParameter, \"g\");\n url = url.replace(regex, uriParameters[uriParameter]);\n }\n return url;\n };\n\n self.prototype._call = function(url, method, parameterData, success, error) {\n _jQuery.ajax({\n url: url,\n type: method,\n data: method == \"GET\" ? null : parameterData,\n dataType: 'json',\n success: success,\n error: error\n });\n };\n\n function namespace(namespaceString) {\n if (!namespaceString\n || typeof namespaceString !== \"string\"\n || arguments.length != 1) throw \"Argument 'namespaceString' must be a string\";\n\n var currentSection = _parent;\n var namespaceParts = namespaceString.split(\".\");\n\n for (var i = 0; i < namespaceParts.length; ++i) {\n var namespacePart = namespaceParts[i];\n\n if (!currentSection[namespacePart]) {\n currentSection[namespacePart] = {};\n }\n\n currentSection = currentSection[namespacePart];\n }\n return currentSection;\n };\n\n}(window, jQuery));","/* Mobile navigation click button\n---------------------------------------------------*/\n$(document).on('click', '.mobile-menu', function(){\n\tvar $this = $(this),\n\t\t$navWrapper = $('#nav .mobile-nav-wrapper'),\n\t\t$navWrapperHeight = $navWrapper.height(),\n\t\t$navWrapperContent = $('#nav ul'),\n\t\t$navWrapperContentHeight;\n\t\t\n\t$this.toggleClass('open');\n\n\tif ($navWrapperHeight) {\n\t\t$navWrapper.css({\n\t\t\theight: 0,\n\t\t\topacity: 0,\n\t\t});\n\t} else {\n\t\t$navWrapperContentHeight = $navWrapperContent.height();\n\t\t$navWrapper.css({\n\t\t\theight: $navWrapperContentHeight + 'px',\n\t\t\topacity: 1\n\t\t});\n\t}\n});\n\nif ((\"standalone\" in window.navigator) && window.navigator.standalone) {\n\t// For iOS fullscreen web apps\n\t$('body').on('click fastclick', 'a.app-navigation', function(evt) {\n\t\tvar nextPageURL = $(this).attr('href');\n\t\tevt.preventDefault();\n\t\tif (nextPageURL != undefined && nextPageURL.substr(0, 1) != '#' && $(this).attr('data-method') == undefined){\n\t\t\twindow.location.href = nextPageURL;\n\t\t}\n\t});\n}","$(document).ready(function() {\t\n\t/* Pop ups / modals\n\t----------------------------------------------------*/\n\t$('.popup-inline-responsive').magnificPopup({\n\t\ttype: 'ajax',\n\t\tfixedContentPos: false,\n\t\tfixedBgPos: true,\n\t\toverflowY: 'auto',\n\t\tcloseBtnInside: true,\n\t\tpreloader: true,\n\t\tcloseOnBgClick: false,\n\t\tmidClick: true,\n\t\tremovalDelay: 300,\n\t\tmainClass: 'dialog-slide-bottom',\n\t\tcallbacks: {\n\t\t\topen: function() {\n\t\t\t\tvar $mobileMenu = $('.mobile-menu');\n\t\t\t\tif ($mobileMenu.hasClass('open')) {\n\t\t\t\t\t$('.mobile-menu').trigger('click');\n\t\t\t\t}\n\t\t\t},\n\t\t\tclose: function() {\n\t\t\t\t// Nothing here yet\n\t\t\t},\n\t\t\tajaxContentAdded: function() {\n\t\t\t\tvar $thisElm = $(this.container[0]);\n\t\t\t\tinitializeComponents($thisElm);\n\t\t\t\ttranslateGUI($thisElm);\n\t\t\t}\n\t\t}\n\t});\n\t$(document).on('click', '.ct-btn-close-popup', function(e) {\n\t\te.preventDefault();\n\t\t$.magnificPopup.close();\n\t\tsetTimeout(function () {\n\t\t\t$(document.activeElement).blur();\n\t\t}, 400);\n\t});\n\t\n\t/* Try to open tab if hash exist in URL\n\t----------------------------------------------------*/\n\tvar urlHash = window.location.hash;\n\tif (urlHash.match('#')) {\n\t\t$('.nav-tabs a[href=#'+urlHash.split('#')[1]+']').tab('show') ;\n\t} \n});"]}