{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/moment/moment.js","webpack:///./node_modules/jquery/src/core.js","webpack:///./node_modules/jquery/src/var/isFunction.js","webpack:///./node_modules/jquery/src/var/document.js","webpack:///./node_modules/jquery/src/selector.js","webpack:///./node_modules/jquery/src/core/init.js","webpack:///./node_modules/jquery/src/data/var/dataPriv.js","webpack:///./node_modules/jquery/src/core/nodeName.js","webpack:///./node_modules/jquery/src/var/rnothtmlwhite.js","webpack:///./node_modules/jquery/src/var/support.js","webpack:///./node_modules/jquery/src/core/access.js","webpack:///./node_modules/jquery/src/ajax.js","webpack:///./node_modules/jquery/src/core/toType.js","webpack:///./node_modules/jquery/src/traversing.js","webpack:///./node_modules/jquery/src/deferred.js","webpack:///./node_modules/jquery/src/event.js","webpack:///./node_modules/jquery/src/var/arr.js","webpack:///./node_modules/jquery/src/var/isWindow.js","webpack:///./node_modules/jquery/src/core/camelCase.js","webpack:///./node_modules/jquery/src/css.js","webpack:///./node_modules/jquery/src/jquery.js","webpack:///./node_modules/jquery/src/var/slice.js","webpack:///./node_modules/jquery/src/var/class2type.js","webpack:///./node_modules/jquery/src/data/var/acceptData.js","webpack:///./node_modules/jquery/src/core/isAttached.js","webpack:///./node_modules/jquery/src/var/documentElement.js","webpack:///./node_modules/jquery/src/manipulation.js","webpack:///./node_modules/jquery/src/var/indexOf.js","webpack:///./node_modules/jquery/src/var/hasOwn.js","webpack:///./node_modules/jquery/src/callbacks.js","webpack:///./node_modules/jquery/src/queue.js","webpack:///./node_modules/jquery/src/effects.js","webpack:///./node_modules/jquery/src/var/rcssNum.js","webpack:///./node_modules/jquery/src/css/var/cssExpand.js","webpack:///./node_modules/jquery/src/var/rcheckableType.js","webpack:///./node_modules/jquery/src/css/var/rnumnonpx.js","webpack:///./node_modules/jquery/src/css/support.js","webpack:///./node_modules/jquery/src/attributes/support.js","webpack:///./node_modules/jquery/src/core/stripAndCollapse.js","webpack:///./node_modules/jquery/src/event/trigger.js","webpack:///./node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js","webpack:///./node_modules/jquery/src/var/getProto.js","webpack:///./node_modules/jquery/src/var/flat.js","webpack:///./node_modules/jquery/src/var/push.js","webpack:///./node_modules/jquery/src/var/toString.js","webpack:///./node_modules/jquery/src/var/fnToString.js","webpack:///./node_modules/jquery/src/core/DOMEval.js","webpack:///./node_modules/jquery/src/traversing/var/rneedsContext.js","webpack:///./node_modules/jquery/src/core/var/rsingleTag.js","webpack:///./node_modules/jquery/src/traversing/findFilter.js","webpack:///./node_modules/jquery/src/core/ready.js","webpack:///./node_modules/jquery/src/data/Data.js","webpack:///./node_modules/jquery/src/data/var/dataUser.js","webpack:///./node_modules/jquery/src/var/pnum.js","webpack:///./node_modules/jquery/src/css/var/isHiddenWithinTree.js","webpack:///./node_modules/jquery/src/css/adjustCSS.js","webpack:///./node_modules/jquery/src/manipulation/var/rtagName.js","webpack:///./node_modules/jquery/src/manipulation/var/rscriptType.js","webpack:///./node_modules/jquery/src/manipulation/wrapMap.js","webpack:///./node_modules/jquery/src/manipulation/support.js","webpack:///./node_modules/jquery/src/manipulation/getAll.js","webpack:///./node_modules/jquery/src/manipulation/setGlobalEval.js","webpack:///./node_modules/jquery/src/manipulation/buildFragment.js","webpack:///./node_modules/jquery/src/css/var/getStyles.js","webpack:///./node_modules/jquery/src/css/curCSS.js","webpack:///./node_modules/jquery/src/css/addGetHookIf.js","webpack:///./node_modules/jquery/src/css/finalPropName.js","webpack:///./node_modules/jquery/src/attributes/prop.js","webpack:///./node_modules/jquery/src/ajax/var/nonce.js","webpack:///./node_modules/jquery/src/ajax/var/rquery.js","webpack:///./node_modules/jquery/src/core/parseXML.js","webpack:///./node_modules/jquery/src/serialize.js","webpack:///./node_modules/jquery/src/core/parseHTML.js","webpack:///./node_modules/jquery/src/var/ObjectFunctionString.js","webpack:///./node_modules/jquery/src/selector-sizzle.js","webpack:///./node_modules/jquery/external/sizzle/dist/sizzle.js","webpack:///./node_modules/jquery/src/traversing/var/dir.js","webpack:///./node_modules/jquery/src/traversing/var/siblings.js","webpack:///./node_modules/jquery/src/deferred/exceptionHook.js","webpack:///./node_modules/jquery/src/core/readyException.js","webpack:///./node_modules/jquery/src/data.js","webpack:///./node_modules/jquery/src/queue/delay.js","webpack:///./node_modules/jquery/src/css/showHide.js","webpack:///./node_modules/jquery/src/css/var/swap.js","webpack:///./node_modules/jquery/src/css/var/rboxStyle.js","webpack:///./node_modules/jquery/src/effects/Tween.js","webpack:///./node_modules/jquery/src/attributes.js","webpack:///./node_modules/jquery/src/attributes/attr.js","webpack:///./node_modules/jquery/src/attributes/classes.js","webpack:///./node_modules/jquery/src/attributes/val.js","webpack:///./node_modules/jquery/src/event/focusin.js","webpack:///./node_modules/jquery/src/event/support.js","webpack:///./node_modules/jquery/src/manipulation/_evalUrl.js","webpack:///./node_modules/jquery/src/ajax/var/location.js","webpack:///./node_modules/jquery/src/wrap.js","webpack:///./node_modules/jquery/src/css/hiddenVisibleSelectors.js","webpack:///./node_modules/jquery/src/ajax/xhr.js","webpack:///./node_modules/jquery/src/ajax/script.js","webpack:///./node_modules/jquery/src/ajax/jsonp.js","webpack:///./node_modules/jquery/src/ajax/load.js","webpack:///./node_modules/jquery/src/core/support.js","webpack:///./node_modules/jquery/src/effects/animatedSelector.js","webpack:///./node_modules/jquery/src/offset.js","webpack:///./node_modules/jquery/src/dimensions.js","webpack:///./node_modules/jquery/src/deprecated.js","webpack:///./node_modules/jquery/src/deprecated/ajax-event-alias.js","webpack:///./node_modules/jquery/src/deprecated/event.js","webpack:///./node_modules/jquery/src/exports/amd.js","webpack:///./node_modules/jquery/src/exports/global.js","webpack:///(webpack)/buildin/module.js","webpack:///./vendor/bundle/ruby/2.6.0/gems/store_connect-11.0.19/app/assets/javascripts/theme/viewport.js","webpack:///./vendor/bundle/ruby/2.6.0/gems/store_connect-11.0.19/app/assets/javascripts/theme/quantity-picker.js","webpack:///./vendor/bundle/ruby/2.6.0/gems/store_connect-11.0.19/app/assets/javascripts/theme/store-path-url.js","webpack:///./node_modules/hoverintent/dist/hoverintent.min.js","webpack:///./vendor/bundle/ruby/2.6.0/gems/store_connect-11.0.19/app/assets/javascripts/theme/product-images.js","webpack:///./node_modules/moment/locale/af.js","webpack:///./node_modules/moment/locale/ar.js","webpack:///./node_modules/moment/locale/ar-dz.js","webpack:///./node_modules/moment/locale/ar-kw.js","webpack:///./node_modules/moment/locale/ar-ly.js","webpack:///./node_modules/moment/locale/ar-ma.js","webpack:///./node_modules/moment/locale/ar-sa.js","webpack:///./node_modules/moment/locale/ar-tn.js","webpack:///./node_modules/moment/locale/az.js","webpack:///./node_modules/moment/locale/be.js","webpack:///./node_modules/moment/locale/bg.js","webpack:///./node_modules/moment/locale/bm.js","webpack:///./node_modules/moment/locale/bn.js","webpack:///./node_modules/moment/locale/bn-bd.js","webpack:///./node_modules/moment/locale/bo.js","webpack:///./node_modules/moment/locale/br.js","webpack:///./node_modules/moment/locale/bs.js","webpack:///./node_modules/moment/locale/ca.js","webpack:///./node_modules/moment/locale/cs.js","webpack:///./node_modules/moment/locale/cv.js","webpack:///./node_modules/moment/locale/cy.js","webpack:///./node_modules/moment/locale/da.js","webpack:///./node_modules/moment/locale/de.js","webpack:///./node_modules/moment/locale/de-at.js","webpack:///./node_modules/moment/locale/de-ch.js","webpack:///./node_modules/moment/locale/dv.js","webpack:///./node_modules/moment/locale/el.js","webpack:///./node_modules/moment/locale/en-au.js","webpack:///./node_modules/moment/locale/en-ca.js","webpack:///./node_modules/moment/locale/en-gb.js","webpack:///./node_modules/moment/locale/en-ie.js","webpack:///./node_modules/moment/locale/en-il.js","webpack:///./node_modules/moment/locale/en-in.js","webpack:///./node_modules/moment/locale/en-nz.js","webpack:///./node_modules/moment/locale/en-sg.js","webpack:///./node_modules/moment/locale/eo.js","webpack:///./node_modules/moment/locale/es.js","webpack:///./node_modules/moment/locale/es-do.js","webpack:///./node_modules/moment/locale/es-mx.js","webpack:///./node_modules/moment/locale/es-us.js","webpack:///./node_modules/moment/locale/et.js","webpack:///./node_modules/moment/locale/eu.js","webpack:///./node_modules/moment/locale/fa.js","webpack:///./node_modules/moment/locale/fi.js","webpack:///./node_modules/moment/locale/fil.js","webpack:///./node_modules/moment/locale/fo.js","webpack:///./node_modules/moment/locale/fr.js","webpack:///./node_modules/moment/locale/fr-ca.js","webpack:///./node_modules/moment/locale/fr-ch.js","webpack:///./node_modules/moment/locale/fy.js","webpack:///./node_modules/moment/locale/ga.js","webpack:///./node_modules/moment/locale/gd.js","webpack:///./node_modules/moment/locale/gl.js","webpack:///./node_modules/moment/locale/gom-deva.js","webpack:///./node_modules/moment/locale/gom-latn.js","webpack:///./node_modules/moment/locale/gu.js","webpack:///./node_modules/moment/locale/he.js","webpack:///./node_modules/moment/locale/hi.js","webpack:///./node_modules/moment/locale/hr.js","webpack:///./node_modules/moment/locale/hu.js","webpack:///./node_modules/moment/locale/hy-am.js","webpack:///./node_modules/moment/locale/id.js","webpack:///./node_modules/moment/locale/is.js","webpack:///./node_modules/moment/locale/it.js","webpack:///./node_modules/moment/locale/it-ch.js","webpack:///./node_modules/moment/locale/ja.js","webpack:///./node_modules/moment/locale/jv.js","webpack:///./node_modules/moment/locale/ka.js","webpack:///./node_modules/moment/locale/kk.js","webpack:///./node_modules/moment/locale/km.js","webpack:///./node_modules/moment/locale/kn.js","webpack:///./node_modules/moment/locale/ko.js","webpack:///./node_modules/moment/locale/ku.js","webpack:///./node_modules/moment/locale/ky.js","webpack:///./node_modules/moment/locale/lb.js","webpack:///./node_modules/moment/locale/lo.js","webpack:///./node_modules/moment/locale/lt.js","webpack:///./node_modules/moment/locale/lv.js","webpack:///./node_modules/moment/locale/me.js","webpack:///./node_modules/moment/locale/mi.js","webpack:///./node_modules/moment/locale/mk.js","webpack:///./node_modules/moment/locale/ml.js","webpack:///./node_modules/moment/locale/mn.js","webpack:///./node_modules/moment/locale/mr.js","webpack:///./node_modules/moment/locale/ms.js","webpack:///./node_modules/moment/locale/ms-my.js","webpack:///./node_modules/moment/locale/mt.js","webpack:///./node_modules/moment/locale/my.js","webpack:///./node_modules/moment/locale/nb.js","webpack:///./node_modules/moment/locale/ne.js","webpack:///./node_modules/moment/locale/nl.js","webpack:///./node_modules/moment/locale/nl-be.js","webpack:///./node_modules/moment/locale/nn.js","webpack:///./node_modules/moment/locale/oc-lnc.js","webpack:///./node_modules/moment/locale/pa-in.js","webpack:///./node_modules/moment/locale/pl.js","webpack:///./node_modules/moment/locale/pt.js","webpack:///./node_modules/moment/locale/pt-br.js","webpack:///./node_modules/moment/locale/ro.js","webpack:///./node_modules/moment/locale/ru.js","webpack:///./node_modules/moment/locale/sd.js","webpack:///./node_modules/moment/locale/se.js","webpack:///./node_modules/moment/locale/si.js","webpack:///./node_modules/moment/locale/sk.js","webpack:///./node_modules/moment/locale/sl.js","webpack:///./node_modules/moment/locale/sq.js","webpack:///./node_modules/moment/locale/sr.js","webpack:///./node_modules/moment/locale/sr-cyrl.js","webpack:///./node_modules/moment/locale/ss.js","webpack:///./node_modules/moment/locale/sv.js","webpack:///./node_modules/moment/locale/sw.js","webpack:///./node_modules/moment/locale/ta.js","webpack:///./node_modules/moment/locale/te.js","webpack:///./node_modules/moment/locale/tet.js","webpack:///./node_modules/moment/locale/tg.js","webpack:///./node_modules/moment/locale/th.js","webpack:///./node_modules/moment/locale/tk.js","webpack:///./node_modules/moment/locale/tl-ph.js","webpack:///./node_modules/moment/locale/tlh.js","webpack:///./node_modules/moment/locale/tr.js","webpack:///./node_modules/moment/locale/tzl.js","webpack:///./node_modules/moment/locale/tzm.js","webpack:///./node_modules/moment/locale/tzm-latn.js","webpack:///./node_modules/moment/locale/ug-cn.js","webpack:///./node_modules/moment/locale/uk.js","webpack:///./node_modules/moment/locale/ur.js","webpack:///./node_modules/moment/locale/uz.js","webpack:///./node_modules/moment/locale/uz-latn.js","webpack:///./node_modules/moment/locale/vi.js","webpack:///./node_modules/moment/locale/x-pseudo.js","webpack:///./node_modules/moment/locale/yo.js","webpack:///./node_modules/moment/locale/zh-cn.js","webpack:///./node_modules/moment/locale/zh-hk.js","webpack:///./node_modules/moment/locale/zh-mo.js","webpack:///./node_modules/moment/locale/zh-tw.js","webpack:///./vendor/bundle/ruby/2.6.0/gems/store_connect-11.0.19/app/assets/javascripts/theme/modal.js","webpack:///./vendor/bundle/ruby/2.6.0/gems/store_connect-11.0.19/app/assets/javascripts/theme/accordion.js","webpack:///./vendor/bundle/ruby/2.6.0/gems/store_connect-11.0.19/app/assets/javascripts/theme/loader.js","webpack:///./vendor/bundle/ruby/2.6.0/gems/store_connect-11.0.19/app/assets/javascripts/theme/product-variants.js","webpack:///./vendor/bundle/ruby/2.6.0/gems/store_connect-11.0.19/app/assets/javascripts/theme/tabs.js","webpack:///./node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./node_modules/hammerjs/hammer.js","webpack:///./vendor/bundle/ruby/2.6.0/gems/store_connect-11.0.19/app/assets/javascripts/theme/nav.js","webpack:///(webpack)/buildin/amd-options.js","webpack:///./node_modules/@rails/activestorage/app/assets/javascripts/activestorage.js","webpack:///./vendor/bundle/ruby/2.6.0/gems/store_connect-11.0.19/app/assets/javascripts/store_connect/configure.js","webpack:///./vendor/bundle/ruby/2.6.0/gems/store_connect-11.0.19/app/assets/javascripts/store_connect/address.js","webpack:///./node_modules/select2/dist/js/select2.js","webpack:///./vendor/bundle/ruby/2.6.0/gems/store_connect-11.0.19/app/assets/javascripts/store_connect/payment_information.js","webpack:///./vendor/bundle/ruby/2.6.0/gems/store_connect-11.0.19/app/assets/javascripts/theme/date.js","webpack:///./vendor/bundle/ruby/2.6.0/gems/store_connect-11.0.19/app/assets/javascripts/theme/dropdown.js","webpack:///./vendor/bundle/ruby/2.6.0/gems/store_connect-11.0.19/app/assets/javascripts/theme/fulfilment.js","webpack:///./vendor/bundle/ruby/2.6.0/gems/store_connect-11.0.19/app/assets/javascripts/theme/live-cart-update.js","webpack:///./vendor/bundle/ruby/2.6.0/gems/store_connect-11.0.19/app/assets/javascripts/theme/menu.js","webpack:///./node_modules/ion-rangeslider/js/ion.rangeSlider.js","webpack:///./vendor/bundle/ruby/2.6.0/gems/store_connect-11.0.19/app/assets/javascripts/theme/product-comparison.js","webpack:///./vendor/bundle/ruby/2.6.0/gems/store_connect-11.0.19/app/assets/javascripts/theme/product-gallery.js","webpack:///./vendor/bundle/ruby/2.6.0/gems/store_connect-11.0.19/app/assets/javascripts/theme/toggle-active.js","webpack:///./vendor/bundle/ruby/2.6.0/gems/store_connect-11.0.19/app/assets/javascripts/theme/toggle-visibility.js","webpack:///./vendor/bundle/ruby/2.6.0/gems/store_connect-11.0.19/app/assets/javascripts/theme/cart.js","webpack:///./node_modules/tiny-slider/src/helpers/raf.js","webpack:///./node_modules/tiny-slider/src/helpers/caf.js","webpack:///./node_modules/tiny-slider/src/helpers/extend.js","webpack:///./node_modules/tiny-slider/src/helpers/checkStorageValue.js","webpack:///./node_modules/tiny-slider/src/helpers/setLocalStorage.js","webpack:///./node_modules/tiny-slider/src/helpers/getBody.js","webpack:///./node_modules/tiny-slider/src/helpers/docElement.js","webpack:///./node_modules/tiny-slider/src/helpers/setFakeBody.js","webpack:///./node_modules/tiny-slider/src/helpers/resetFakeBody.js","webpack:///./node_modules/tiny-slider/src/helpers/addCSSRule.js","webpack:///./node_modules/tiny-slider/src/helpers/getCssRulesLength.js","webpack:///./node_modules/tiny-slider/src/helpers/forEach.js","webpack:///./node_modules/tiny-slider/src/helpers/classListSupport.js","webpack:///./node_modules/tiny-slider/src/helpers/hasClass.js","webpack:///./node_modules/tiny-slider/src/helpers/addClass.js","webpack:///./node_modules/tiny-slider/src/helpers/removeClass.js","webpack:///./node_modules/tiny-slider/src/helpers/hasAttr.js","webpack:///./node_modules/tiny-slider/src/helpers/getAttr.js","webpack:///./node_modules/tiny-slider/src/helpers/isNodeList.js","webpack:///./node_modules/tiny-slider/src/helpers/setAttrs.js","webpack:///./node_modules/tiny-slider/src/helpers/removeAttrs.js","webpack:///./node_modules/tiny-slider/src/helpers/arrayFromNodeList.js","webpack:///./node_modules/tiny-slider/src/helpers/hideElement.js","webpack:///./node_modules/tiny-slider/src/helpers/showElement.js","webpack:///./node_modules/tiny-slider/src/helpers/isVisible.js","webpack:///./node_modules/tiny-slider/src/helpers/whichProperty.js","webpack:///./node_modules/tiny-slider/src/helpers/getEndProperty.js","webpack:///./node_modules/tiny-slider/src/helpers/passiveOption.js","webpack:///./node_modules/tiny-slider/src/helpers/addEvents.js","webpack:///./node_modules/tiny-slider/src/helpers/removeEvents.js","webpack:///./node_modules/tiny-slider/src/helpers/events.js","webpack:///./node_modules/tiny-slider/src/tiny-slider.js","webpack:///./node_modules/tiny-slider/src/helpers/calc.js","webpack:///./node_modules/tiny-slider/src/helpers/percentageLayout.js","webpack:///./node_modules/tiny-slider/src/helpers/mediaquerySupport.js","webpack:///./node_modules/tiny-slider/src/helpers/has3DTransforms.js","webpack:///./node_modules/tiny-slider/src/helpers/createStyleSheet.js","webpack:///./node_modules/tiny-slider/src/helpers/getSlideId.js","webpack:///./node_modules/tiny-slider/src/helpers/jsTransform.js","webpack:///./node_modules/tiny-slider/src/helpers/removeCSSRule.js","webpack:///./node_modules/tiny-slider/src/helpers/toDegree.js","webpack:///./node_modules/tiny-slider/src/helpers/getTouchDirection.js","webpack:///./vendor/bundle/ruby/2.6.0/gems/store_connect-11.0.19/app/assets/javascripts/theme/slider.js","webpack:///./vendor/bundle/ruby/2.6.0/gems/store_connect-11.0.19/app/assets/javascripts/store_connect/date.js","webpack:///./vendor/bundle/ruby/2.6.0/gems/store_connect-11.0.19/app/assets/javascripts/store_connect/preview-switcher.js","webpack:///./vendor/bundle/ruby/2.6.0/gems/store_connect-11.0.19/app/assets/javascripts/packs/store_connect.js","webpack:///./vendor/bundle/ruby/2.6.0/gems/store_connect-11.0.19/app/assets/javascripts/theme/bundle-filters.js","webpack:///./vendor/bundle/ruby/2.6.0/gems/store_connect-11.0.19/app/assets/javascripts/theme/option-card.js","webpack:///./vendor/bundle/ruby/2.6.0/gems/store_connect-11.0.19/app/assets/javascripts/theme/bundle.js","webpack:///./app/assets/javascripts/packs/proma-theme.js","webpack:///./vendor/bundle/ruby/2.6.0/gems/store_connect-11.0.19/vendor/assets/javascripts/ion.rangeSlider.min.js","webpack:///./vendor/bundle/ruby/2.6.0/gems/store_connect-11.0.19/vendor/assets/javascripts/hammer.min.js","webpack:///./node_modules/tiny-slider/dist/tiny-slider.js","webpack:///./vendor/bundle/ruby/2.6.0/gems/store_connect-11.0.19/vendor/assets/javascripts/select2.min.js","webpack:///./vendor/bundle/ruby/2.6.0/gems/store_connect-11.0.19/vendor/assets/javascripts/pickaday.js","webpack:///./app/assets/javascripts/theme/sort.js","webpack:///./app/assets/javascripts/theme/tabs.js","webpack:///./app/assets/javascripts/theme/price-slider.js","webpack:///./app/assets/javascripts/custom/modal.js","webpack:///./app/assets/javascripts/custom/option-select-show.js","webpack:///./app/assets/javascripts/custom/search-toggle.js","webpack:///./app/assets/javascripts/custom/tabs-vertical.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","factory","_typeof","iterator","obj","constructor","hookCallback","some","hooks","apply","arguments","isArray","input","Array","toString","isObject","hasOwnProp","a","b","isObjectEmpty","getOwnPropertyNames","length","k","isUndefined","isNumber","isDate","Date","map","arr","fn","res","push","extend","valueOf","createUTC","format","locale","strict","createLocalOrUTC","utc","getParsingFlags","_pf","empty","unusedTokens","unusedInput","overflow","charsLeftOver","nullInput","invalidEra","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","era","meridiem","rfc2822","weekdayMismatch","isValid","_isValid","flags","parsedParts","isNowValid","isNaN","_d","getTime","invalidWeekday","_strict","undefined","bigHour","isFrozen","createInvalid","NaN","fun","this","len","momentProperties","updateInProgress","copyConfig","to","from","prop","val","_isAMomentObject","_i","_f","_l","_tzm","_isUTC","_offset","_locale","Moment","config","updateOffset","isMoment","warn","msg","suppressDeprecationWarnings","console","deprecate","firstTime","deprecationHandler","arg","args","slice","join","Error","stack","keys","deprecations","deprecateSimple","isFunction","Function","mergeConfigs","parentConfig","childConfig","Locale","set","zeroFill","number","targetLength","forceSign","absNumber","Math","abs","zerosToFill","pow","max","substr","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","token","padded","ordinal","callback","func","localeData","formatMoment","expandFormat","array","match","replace","mom","output","makeFormatFunction","invalidDate","replaceLongDateFormatTokens","longDateFormat","lastIndex","test","aliases","addUnitAlias","unit","shorthand","lowerCase","toLowerCase","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","priorities","addUnitPriority","priority","isLeapYear","year","absFloor","ceil","floor","toInt","argumentForCoercion","coercedNumber","isFinite","makeGetSet","keepTime","set$1","month","date","daysInMonth","regexes","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchWord","addRegexToken","regex","strictRegex","isStrict","getParseRegexForToken","RegExp","regexEscape","matched","p1","p2","p3","p4","indexOf","tokens","addParseToken","addWeekParseToken","_w","addTimeToArrayFromToken","_a","x","modMonth","monthsShort","months","monthsShortRegex","monthsRegex","monthsParse","defaultLocaleMonths","split","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","handleStrictParse","monthName","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","setMonth","dayOfMonth","min","getSetMonth","computeMonthsParse","cmpLenRev","shortPieces","longPieces","mixedPieces","sort","_monthsRegex","_monthsShortRegex","_monthsStrictRegex","_monthsShortStrictRegex","daysInYear","y","parseTwoDigitYear","parseInt","getSetYear","createDate","h","M","ms","getFullYear","setFullYear","createUTCDate","UTC","getUTCFullYear","setUTCFullYear","firstWeekOffset","dow","doy","fwd","getUTCDay","dayOfYearFromWeeks","week","weekday","resYear","resDayOfYear","dayOfYear","weekOfYear","resWeek","weekOffset","weeksInYear","weekOffsetNext","shiftWeekdays","ws","concat","weekdaysMin","weekdaysShort","weekdays","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","weekdaysParse","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","day","computeWeekdaysParse","minp","shortp","longp","minPieces","_weekdaysRegex","_weekdaysShortRegex","_weekdaysMinRegex","_weekdaysStrictRegex","_weekdaysShortStrictRegex","_weekdaysMinStrictRegex","hFormat","hours","lowercase","minutes","matchMeridiem","_meridiemParse","seconds","kInput","_isPm","isPM","_meridiem","pos","pos1","pos2","globalLocale","getSetHour","baseConfig","calendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","LTS","LT","L","LL","LLL","LLLL","dayOfMonthOrdinalParse","relativeTime","future","past","ss","mm","hh","dd","w","ww","MM","yy","meridiemParse","locales","localeFamilies","commonPrefix","arr1","arr2","minl","normalizeLocale","loadLocale","oldLocale","_abbr","getSetGlobalLocale","e","values","data","getLocale","defineLocale","abbr","_config","parentLocale","forEach","names","j","next","chooseLocale","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromISO","allowTime","dateFormat","timeFormat","tzFormat","string","exec","configFromStringAndFormat","untruncateYear","yearStr","configFromRFC2822","parsedArray","monthStr","dayStr","hourStr","minuteStr","secondStr","result","weekdayStr","parsedInput","getDay","checkWeekday","obsOffset","militaryOffset","numOffset","hm","calculateOffset","setUTCMinutes","getUTCMinutes","defaults","configFromArray","currentDate","expectedWeekday","yearToUse","nowValue","now","_useUTC","getUTCMonth","getUTCDate","getMonth","getDate","currentDateArray","weekYear","temp","weekdayOverflow","curWeek","GG","W","E","createLocal","_week","gg","_dayOfYear","dayOfYearFromWeekInfo","_nextDay","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","hour","isPm","meridiemHour","meridiemFixWrap","erasConvertYear","prepareConfig","preparse","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","score","configFromStringAndArray","createFromInputFallback","configFromString","dayOrDate","minute","second","millisecond","configFromObject","configFromInput","isUTC","add","prototypeMin","other","prototypeMax","pickBy","moments","ordering","Duration","duration","years","quarters","quarter","weeks","isoWeek","days","milliseconds","unitHasDecimal","parseFloat","isDurationValid","_milliseconds","_days","_months","_data","_bubble","isDuration","absRound","round","offset","separator","utcOffset","sign","offsetFromString","chunkOffset","matcher","parts","matches","cloneWithOffset","model","diff","clone","setTime","local","getDateOffset","getTimezoneOffset","isUtc","aspNetRegex","isoRegex","createDuration","ret","diffRes","base","parseIso","isBefore","positiveMomentsDifference","inp","isAfter","createAdder","direction","period","tmp","addSubtract","isAdding","invalid","subtract","isString","String","isMomentInput","arrayTest","dataTypeTest","filter","item","isNumberOrStringArray","objectTest","propertyTest","properties","isMomentInputObject","isCalendarSpec","monthDiff","wholeMonthDiff","anchor","newLocaleData","defaultFormat","defaultFormatUtc","lang","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","matchEraAbbr","erasAbbrRegex","computeErasParse","abbrPieces","namePieces","narrowPieces","eras","narrow","_erasRegex","_erasNameRegex","_erasAbbrRegex","_erasNarrowRegex","addWeekYearFormatToken","getSetWeekYearHelper","weeksTarget","setWeekAll","dayOfYearData","erasNameRegex","erasNarrowRegex","erasParse","_eraYearOrdinalRegex","eraYearOrdinalParse","isoWeekYear","_dayOfMonthOrdinalParse","_ordinalParse","_dayOfMonthOrdinalParseLenient","getSetDayOfMonth","getSetMinute","getSetMillisecond","getSetSecond","parseMs","proto","preParsePostFormat","time","formats","sod","startOf","calendarFormat","asFloat","that","zoneDelta","endOf","startOfDate","isoWeekday","inputString","postformat","withoutSuffix","humanize","fromNow","toNow","invalidAt","localInput","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","parsingFlags","prioritized","unitsObj","u","getPrioritizedUnits","toArray","toObject","toDate","toISOString","keepOffset","inspect","prefix","suffix","zone","isLocal","for","toJSON","unix","creationData","eraName","since","until","eraNarrow","eraAbbr","eraYear","dir","isoWeeks","weekInfo","weeksInWeekYear","isoWeeksInYear","isoWeeksInISOWeekYear","parseWeekday","parseIsoWeekday","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","parseZone","tZone","hasAlignedHourOffset","isDST","isUtcOffset","zoneAbbr","zoneName","dates","isDSTShifted","_isDSTShifted","array1","array2","dontConvert","lengthDiff","diffs","compareArrays","proto$1","get$1","index","field","setter","listMonthsImpl","out","listWeekdaysImpl","localeSorted","shift","_calendar","_longDateFormat","formatUpper","toUpperCase","tok","_invalidDate","_ordinal","isFuture","_relativeTime","pastFuture","source","_eras","isFormat","_monthsShort","_monthsParseExact","firstDayOfYear","firstDayOfWeek","_weekdays","_weekdaysMin","_weekdaysShort","_weekdaysParseExact","_fullWeekdaysParse","charAt","isLower","langData","mathAbs","addSubtract$1","absCeil","daysToMonths","monthsToDays","makeAs","alias","as","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","makeGetter","thresholds","substituteTimeAgo","abs$1","toISOString$1","totalSign","ymSign","daysSign","hmsSign","total","toFixed","proto$2","monthsFromDays","argWithSuffix","argThresholds","withSuffix","th","assign","posNegDuration","relativeTime$1","toIsoString","version","updateLocale","tmpLocale","relativeTimeRounding","roundingFunction","relativeTimeThreshold","threshold","limit","myMoment","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","DATE","TIME","TIME_SECONDS","TIME_MS","WEEK","MONTH","getProto","_slice","flat","class2type","hasOwn","fnToString","ObjectFunctionString","support","isWindow","DOMEval","toType","jQuery","selector","context","init","isArrayLike","type","jquery","num","pushStack","elems","merge","prevObject","each","elem","first","eq","last","even","grep","_elem","odd","end","splice","options","src","copy","copyIsArray","target","deep","isPlainObject","expando","random","isReady","error","noop","Ctor","isEmptyObject","globalEval","code","doc","nonce","makeArray","results","inArray","invert","callbackExpect","guid","nodeType","window","document","rsingleTag","rootjQuery","rquickExpr","root","find","parseHTML","ownerDocument","attr","getElementById","ready","Data","nodeName","access","chainable","emptyGet","raw","bulk","_key","rnothtmlwhite","location","rquery","r20","rhash","rantiCache","rheaders","rnoContent","rprotocol","prefilters","transports","allTypes","originAnchor","createElement","addToPrefiltersOrTransports","structure","dataTypeExpression","dataType","dataTypes","unshift","inspectPrefiltersOrTransports","originalOptions","jqXHR","inspected","seekingTransport","selected","_","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","href","active","lastModified","etag","url","protocol","global","processData","async","contentType","accepts","text","html","xml","json","contents","responseFields","converters","JSON","parse","parseXML","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","transport","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","urlAnchor","completed","fireGlobals","uncached","callbackContext","globalEventContext","event","deferred","Deferred","completeDeferred","Callbacks","_statusCode","statusCode","requestHeaders","requestHeadersNames","strAbort","readyState","getResponseHeader","getAllResponseHeaders","setRequestHeader","overrideMimeType","mimeType","always","status","abort","statusText","finalText","done","promise","method","crossDomain","host","param","traditional","trigger","hasContent","cache","ifModified","headers","beforeSend","complete","success","fail","timeout","setTimeout","send","nativeStatusText","responses","isSuccess","response","modified","clearTimeout","ct","finalDataType","firstDataType","ajaxHandleResponses","conv2","current","conv","prev","dataFilter","throws","state","ajaxConvert","resolveWith","rejectWith","fireWith","getJSON","getScript","_siblings","rneedsContext","rparentsprev","guaranteedUnique","children","sibling","cur","has","targets","contains","closest","selectors","parentNode","matchesSelector","uniqueSort","prevAll","addBack","parent","parents","parentsUntil","nextAll","nextUntil","prevUntil","siblings","firstChild","contentDocument","content","childNodes","reverse","Identity","v","Thrower","ex","adoptValue","resolve","reject","noValue","then","tuples","_state","_promise","pipe","fns","newDefer","tuple","returned","progress","notify","onFulfilled","onRejected","onProgress","maxDepth","depth","handler","special","mightThrow","TypeError","notifyWith","process","exceptionHook","stackTrace","getStackHook","list","stateString","disable","lock","fire","when","singleValue","remaining","resolveContexts","resolveValues","primary","updateFunc","documentElement","rcheckableType","acceptData","dataPriv","rtypenamespace","returnTrue","returnFalse","expectSync","activeElement","err","safeActiveElement","_on","types","one","origFn","off","leverageNative","el","namespace","notAsync","saved","isTrigger","delegateType","stopPropagation","stopImmediatePropagation","preventDefault","Event","handleObjIn","eventHandle","events","handleObj","handlers","namespaces","origType","elemData","handle","triggered","dispatch","bindType","needsContext","expr","delegateCount","setup","addEventListener","remove","mappedTypes","origCount","hasData","teardown","removeEvent","nativeEvent","handlerQueue","fix","delegateTarget","preDispatch","isPropagationStopped","currentTarget","isImmediatePropagationStopped","rnamespace","postDispatch","_handlers","sel","matchedHandlers","matchedSelectors","button","disabled","addProp","hook","configurable","originalEvent","writable","load","noBubble","click","_default","beforeunload","returnValue","removeEventListener","props","isDefaultPrevented","defaultPrevented","relatedTarget","timeStamp","isSimulated","altKey","bubbles","cancelable","changedTouches","ctrlKey","detail","eventPhase","metaKey","pageX","pageY","shiftKey","view","charCode","keyCode","buttons","clientX","clientY","offsetX","offsetY","pointerId","pointerType","screenX","screenY","targetTouches","toElement","touches","which","focus","blur","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","on","rmsPrefix","rdashAlpha","fcamelCase","_all","letter","camelCase","rcssNum","rnumnonpx","cssExpand","getStyles","swap","curCSS","adjustCSS","addGetHookIf","finalPropName","rdisplayswap","rcustomProp","cssShow","position","visibility","display","cssNormalTransform","letterSpacing","fontWeight","setPositiveNumber","boxModelAdjustment","dimension","box","isBorderBox","styles","computedVal","extra","delta","css","getWidthOrHeight","boxSizingReliable","valueIsBorderBox","offsetProp","reliableTrDimensions","getClientRects","cssHooks","opacity","computed","cssNumber","cssProps","style","origName","isCustomProp","clearCloneStyle","setProperty","getBoundingClientRect","width","scrollboxSizeBuggy","scrollboxSize","marginLeft","reliableMarginLeft","left","margin","padding","border","expand","expanded","owner","isAttached","composed","getRootNode","rtagName","rscriptType","wrapMap","getAll","setGlobalEval","buildFragment","dataUser","rnoInnerhtml","rchecked","rcleanScript","manipulationTarget","disableScript","getAttribute","restoreScript","removeAttribute","cloneCopyEvent","dest","udataOld","udataCur","fixInput","checked","defaultValue","domManip","collection","ignored","fragment","scripts","hasScripts","node","iNoClone","valueIsFunction","checkClone","self","_evalUrl","noModule","textContent","_remove","keepData","nodes","cleanData","removeChild","htmlPrefilter","dataAndEvents","deepDataAndEvents","srcElements","destElements","cloneNode","inPage","noCloneChecked","isXMLDoc","detach","append","appendChild","prepend","insertBefore","before","after","nextSibling","innerHTML","replaceWith","replaceChild","appendTo","prependTo","insertAfter","replaceAll","original","insert","flag","createOptions","firing","memory","_fired","_locked","queue","firingIndex","once","stopOnFalse","unique","locked","fired","dequeue","startLength","_queueHooks","stop","clearQueue","count","defer","elements","isHiddenWithinTree","showHide","fxNow","inProgress","rfxtypes","rrun","schedule","hidden","requestAnimationFrame","fx","interval","tick","createFxNow","genFx","includeWidth","attrs","height","createTween","animation","tween","Animation","tweeners","stopped","currentTime","startTime","percent","tweens","run","opts","specialEasing","easing","originalProperties","Tween","gotoEnd","propFilter","start","timer","anim","tweener","toggle","oldfire","propTween","restoreDisplay","isBox","dataShow","unqueued","overflowX","overflowY","prefilter","speed","opt","speeds","old","fadeTo","show","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","slow","fast","pnum","computeStyleTests","div","container","cssText","divStyle","getComputedStyle","pixelPositionVal","top","reliableMarginLeftVal","roundPixelMeasures","right","pixelBoxStylesVal","boxSizingReliableVal","scrollboxSizeVal","offsetWidth","measure","reliableTrDimensionsVal","backgroundClip","pixelBoxStyles","pixelPosition","table","tr","trChild","trStyle","borderTopWidth","borderBottomWidth","offsetHeight","checkOn","optSelected","radioValue","rfocusMorph","stopPropagationCallback","onlyHandlers","bubbleType","ontype","lastElement","eventPath","defaultView","parentWindow","pop","simulate","triggerHandler","Rails","linkClickSelector","buttonClickSelector","exclude","inputChangeSelector","formSubmitSelector","formInputClickSelector","formDisableSelector","formEnableSelector","fileInputSelector","linkDisableSelector","buttonDisableSelector","loadCSPNonce","ref","querySelector","cspNonce","Element","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","element","getData","setData","$","querySelectorAll","csrfParam","csrfToken","meta","CSRFProtection","xhr","refreshCSRFTokens","CustomEvent","params","evt","createEvent","initCustomEvent","dispatchEvent","stopEverything","delegate","eventType","AcceptHeaders","createXHR","prepareOptions","processResponse","script","responseText","XMLHttpRequest","OPENED","accept","open","withCredentials","onreadystatechange","DONE","parser","setAttribute","head","DOMParser","parseFromString","isCrossDomain","serializeElement","additionalParam","inputs","option","encodeURIComponent","formElements","form","allowAction","handleConfirm","confirm","message","answer","disableFormElement","disableFormElements","disableLinkElement","enableFormElement","enableFormElements","enableLinkElement","isXhrRedirect","handleDisabledElement","enableElement","disableElement","replacement","originalText","handleMethod","formContent","link","action","body","isRemote","handleRemote","enctype","FormData","formSubmitButtonClick","formNoValidate","preventInsignificantClick","insignificantMetaClick","rails","_rails_loaded","getPrototypeOf","preservedScriptAttributes","winnow","qualifier","not","is","readyList","catch","readyException","readyWait","wait","doScroll","uid","valueParts","adjusted","scale","maxIterations","currentValue","initial","initialInUnit","thead","col","td","tbody","tfoot","colgroup","caption","optgroup","createDocumentFragment","lastChild","tag","getElementsByTagName","refElements","rhtml","selection","wrap","attached","createTextNode","opener","rboxStyle","minWidth","maxWidth","getPropertyValue","conditionFn","hookFn","cssPrefixes","emptyStyle","vendorProps","final","capName","vendorPropName","rfocusable","rclickable","removeProp","propFix","nType","propHooks","tabIndex","tabindex","selectedIndex","parserErrorElem","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","valueOrFunction","serialize","serializeArray","keepScripts","createHTMLDocument","implementation","parsed","Sizzle","pseudos","getText","isXML","escapeSelector","escape","Expr","tokenize","compile","select","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","preferredDoc","dirruns","classCache","createCache","tokenCache","compilerCache","nonnativeSelectorCache","sortOrder","pushNative","booleans","whitespace","identifier","attributes","rwhitespace","rtrim","rcomma","rcombinators","rdescend","rpseudo","ridentifier","matchExpr","rinputs","rheader","rnative","rsibling","runescape","funescape","nonHex","high","fromCharCode","rcssescape","fcssescape","ch","asCodePoint","charCodeAt","unloadHandler","inDisabledFieldset","addCombinator","els","seed","nid","groups","newSelector","newContext","id","getElementsByClassName","qsa","testContext","scope","toSelector","qsaError","cacheLength","markFunction","assert","addHandle","attrHandle","siblingCheck","sourceIndex","createInputPseudo","createButtonPseudo","createDisabledPseudo","isDisabled","createPositionalPseudo","argument","matchIndexes","namespaceURI","hasCompare","subWindow","attachEvent","className","createComment","getById","getElementsByName","attrId","getAttributeNode","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","specified","duplicates","detectDuplicates","sortStable","nodeValue","createPseudo","relative","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","what","_argument","simple","forward","ofType","_context","uniqueCache","outerCache","nodeIndex","useCache","uniqueID","pseudo","setFilters","idx","unmatched","elemLang","hash","hasFocus","_matchIndexes","radio","checkbox","file","password","image","submit","reset","combinator","skip","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","preMap","postMap","preexisting","contexts","multipleContexts","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","filters","parseOnly","soFar","preFilters","cached","setMatchers","elementMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","matcherFromGroupMatchers","compiled","_name","_sizzle","noConflict","truncate","rerrorNames","rbrace","rmultiDash","dataAttr","removeData","_removeData","delay","defaultDisplayMap","getDefaultDisplay","hide","eased","step","scrollTop","scrollLeft","linear","swing","cos","PI","boolHook","removeAttr","attrHooks","bool","attrNames","lowercaseName","stripAndCollapse","getClass","classesToArray","addClass","classes","curValue","clazz","finalValue","removeClass","toggleClass","stateVal","isValidValue","classNames","hasClass","rreturn","valHooks","optionSet","focusin","attaches","wrapAll","firstElementChild","wrapInner","htmlIsFunction","unwrap","visible","xhrSuccessStatus","xhrSupported","cors","_callback","errorCallback","username","xhrFields","onload","onerror","onabort","ontimeout","responseType","binary","scriptAttrs","charset","scriptCharset","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","animated","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","curElem","using","rect","win","pageYOffset","pageXOffset","offsetParent","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","proxy","holdReady","hold","parseJSON","isNumeric","trim","unbind","undelegate","hover","fnOver","fnOut","_jQuery","_$","noGlobal","webpackPolyfill","paths","BREAKPOINTS","smallAndUp","returnBreakpoint","mediumAndUp","largeAndUp","xlargeAndUp","hugeAndUp","breakpoint","RANGE","MANUAL_INPUT","initQtyPickers","picker","initQtyPickerOptions","pickers","activePicker","hideOptions","hideOtherPickers","classList","closeIfClickElsewhere","showPickerOptions","qty","innerText","maxQty","getQuantityOptions","update","showManualInput","label","setQuantity","storePath","storePathContent","sensitivity","f","T","handleFocus","currentId","images","thumbnails","thumb","previousSibling","mainImage","hammer","Hammer","hasManyImages","thumbnail","Image","alt","preloadImage","imageUrl","StoreConnectUI","ProductGallery","moment","symbolMap","numberMap","pluralForm","plurals","pluralize","str","weekdaysParseExact","suffixes","relativeTimeWithPlural","forms","standalone","lastDigit","last2Digits","monthsParseExact","relativeTimeWithMutation","mutationTable","substring","softMutation","mutation","lastNumber","minWeekdaysParse","fullWeekdaysParse","shortWeekdaysParse","monthsStrictRegex","monthsShortStrictRegex","longMonthsParse","shortMonthsParse","translate","ll","lll","llll","plural","processRelativeTime","monthsNominativeEl","monthsGenitiveEl","momentToFormat","_monthsGenitiveEl","_monthsNominativeEl","calendarEl","_calendarEl","monthsShortDot","numbersPast","numbersFuture","verbalNumber","monthsShortWithDots","monthsShortWithoutDots","weekEndings","eraYearOrdinalRegex","$0","$1","$2","isUpper","eifelerRegelAppliesToNumber","translateSingular","relativeTimeWithSingular","translator","words","correctGrammaticalCase","wordKey","relativeTimeMr","monthsNominative","monthsSubjective","numbersNouns","numberNoun","hundred","ten","word","numberAsNoun","processHoursFunction","nominative","accusative","genitive","modal","toggleActiveState","icons","icon","isContextual","contextual","loader","getLoader","activate","spinner","svg","createElementNS","circle","createSpinner","destination","createLoader","variants","resetButton","variantOptions","selectedOptions","returnSelectedVariantOptions","hideDuplicateImageThumbails","selectorNode","masterId","dataset","selectedVariantIds","sessionStorage","getItem","selectedIds","tagName","restoreSessionSelections","storeSessionSelections","selectElem","optionInput","_moveMasterThumbnail","setProductImages","moveVariantSelector","showOrHideVariantContent","removeItem","clearSessionSelections","bundle","allowedOptions","variantAllowedOptions","optionType","group","groupType","optionsInGroup","includes","disableOrEnableVariantOptions","selectedVariant","returnSelectedVariantAsString","leadProductImage","variant","variantId","requiredSelections","findAndReturnActiveVariant","findAndReturnSelectedVariant","productImages","thumbs","activeThumbs","activeThumbnails","isActive","uniqueUrls","_isMasterThumbnail","srcZoom","isSelected","setItem","stringify","_masterThumbnails","thumbnailContainer","sets","tabSets","setId","tabsInSet","triggersInSet","activeTabInSet","tab","getActiveTabElem","tabs","triggers","tabId","deactivateAllTabs","setClassForLastTab","tabInSet","getTabElem","triggerInSet","getTriggerElem","webpackContext","req","webpackContextResolve","exportName","VENDOR_PREFIXES","TEST_ELEMENT","setTimeoutContext","bindFn","invokeArrayArg","deprecationMessage","log","nextKey","inherit","child","childP","baseP","_super","boolOrFn","ifUndefined","val1","val2","addEventListeners","splitStr","removeEventListeners","hasParent","inStr","findByKey","uniqueArray","prefixed","camelProp","_uniqueId","getWindowForElement","SUPPORT_TOUCH","SUPPORT_POINTER_EVENTS","SUPPORT_ONLY_TOUCH","navigator","userAgent","INPUT_TYPE_TOUCH","INPUT_TYPE_MOUSE","DIRECTION_VERTICAL","DIRECTION_UP","PROPS_XY","PROPS_CLIENT_XY","Input","manager","inputTarget","domHandler","ev","enable","inputHandler","pointersLen","pointers","changedPointersLen","changedPointers","isFirst","isFinal","session","pointersLength","firstInput","simpleCloneInputData","firstMultiple","offsetCenter","center","getCenter","deltaTime","angle","getAngle","distance","getDistance","offsetDelta","prevDelta","prevInput","deltaX","deltaY","computeDeltaXY","offsetDirection","getDirection","overallVelocity","getVelocity","overallVelocityX","overallVelocityY","rotation","getRotation","maxPointers","velocity","velocityX","velocityY","lastInterval","computeIntervalInputData","srcEvent","computeInputData","emit","recognize","sqrt","atan2","evEl","evTarget","evWin","destroy","MOUSE_INPUT_MAP","mousedown","mousemove","mouseup","MOUSE_ELEMENT_EVENTS","MOUSE_WINDOW_EVENTS","MouseInput","pressed","POINTER_INPUT_MAP","pointerdown","pointermove","pointerup","pointercancel","pointerout","IE10_POINTER_TYPE_ENUM","POINTER_ELEMENT_EVENTS","POINTER_WINDOW_EVENTS","PointerEventInput","store","pointerEvents","MSPointerEvent","PointerEvent","removePointer","eventTypeNormalized","isTouch","storeIndex","SINGLE_TOUCH_INPUT_MAP","touchstart","touchmove","touchend","touchcancel","SINGLE_TOUCH_TARGET_EVENTS","SINGLE_TOUCH_WINDOW_EVENTS","SingleTouchInput","started","normalizeSingleTouches","all","changed","TOUCH_INPUT_MAP","TOUCH_TARGET_EVENTS","TouchInput","targetIds","getTouches","allTouches","changedTargetTouches","touch","TouchMouseInput","mouse","primaryTouch","lastTouches","recordTouches","eventData","setLastTouch","lastTouch","lts","isSyntheticEvent","dx","dy","inputEvent","inputData","isMouse","sourceCapabilities","firesTouchEvents","PREFIXED_TOUCH_ACTION","NATIVE_TOUCH_ACTION","TOUCH_ACTION_COMPUTE","TOUCH_ACTION_AUTO","TOUCH_ACTION_MANIPULATION","TOUCH_ACTION_NONE","TOUCH_ACTION_PAN_X","TOUCH_ACTION_PAN_Y","TOUCH_ACTION_MAP","touchMap","cssSupports","CSS","supports","getTouchActionProps","TouchAction","compute","actions","touchAction","recognizers","recognizer","getTouchAction","hasPanX","hasPanY","cleanTouchActions","preventDefaults","prevented","hasNone","isTapPointer","isTapMovement","isTapTouchTime","DIRECTION_LEFT","preventSrc","STATE_FAILED","Recognizer","simultaneous","requireFail","stateStr","directionStr","getRecognizerByNameIfManager","otherRecognizer","AttrRecognizer","PanRecognizer","pX","pY","PinchRecognizer","PressRecognizer","_timer","_input","RotateRecognizer","SwipeRecognizer","TapRecognizer","pTime","pCenter","preset","Manager","recognizeWith","dropRecognizeWith","requireFailure","dropRequireFailure","hasRequireFailures","canRecognizeWith","additionalEvent","tryEmit","canEmit","inputDataClone","attrTest","optionPointers","isRecognized","DIRECTION_HORIZONTAL","directionTest","hasMoved","inOut","validPointers","validMovement","validTime","taps","posThreshold","validTouchTime","failTimeout","validInterval","validMultiTap","tapCount","VERSION","domEvents","inputClass","userSelect","touchSelect","touchCallout","contentZooming","userDrag","tapHighlightColor","oldCssProps","toggleCssProps","force","curRecognizer","existing","gestureEvent","initEvent","gesture","triggerDomEvent","INPUT_START","INPUT_MOVE","INPUT_END","INPUT_CANCEL","STATE_POSSIBLE","STATE_BEGAN","STATE_CHANGED","STATE_ENDED","STATE_RECOGNIZED","STATE_CANCELLED","DIRECTION_NONE","DIRECTION_RIGHT","DIRECTION_DOWN","DIRECTION_ALL","Tap","Pan","Swipe","Pinch","Rotate","Press","prevNav","rootNav","navTrigger","nav","navId","close","prevNavId","btn","__webpack_amd_options__","sparkMd5","createCommonjsModule","hex_chr","md5cycle","md5blk","md5blks","md5blk_array","md51","tail","lo","hi","md51_array","subarray","Uint8Array","rhex","hex","toUtf8","unescape","utf8Str2ArrayBuffer","returnUInt8Array","buff","ArrayBuffer","arrayBuffer2Utf8Str","concatenateArrayBuffers","byteLength","buffer","hexToBinaryString","bytes","SparkMD5","clamp","targetArray","sourceArray","begin","appendBinary","_buff","_length","_hash","_finish","getState","setState","hashBinary","classCallCheck","instance","Constructor","createClass","defineProperties","descriptor","protoProps","staticProps","fileSlice","File","mozSlice","webkitSlice","FileChecksum","chunkSize","chunkCount","size","chunkIndex","_this","md5Buffer","fileReader","FileReader","fileReaderDidLoad","fileReaderDidError","readNextChunk","binaryDigest","base64digest","btoa","readAsArrayBuffer","findElement","eventInit","toArray$1","BlobRecord","checksum","filename","content_type","byte_size","getMetaValue","requestDidLoad","requestDidError","blob","direct_upload","directUploadData","_xhr","BlobUpload","_blob$directUploadDat","DirectUpload","upload","methodName","_len","messages","DirectUploadController","directUpload","hiddenInput","insertAdjacentElement","dispatchError","signed_id","loaded","alert","_this2","uploadRequestDidProgress","DirectUploadsController","files","controllers","createDirectUploadControllers","startNextController","controller","processingAttribute","submitButtonsByForm","WeakMap","didClick","didSubmitForm","didSubmitRemoteElement","handleFormSubmissionEvent","hasAttribute","delete","submitForm","ActiveStorage","StoreConnect","configure","ENV","BUGSNAG_KEY","bugsnagClient","bugsnag","apiKey","appVersion","STORE_CONNECT_VERSION","notifyReleaseStages","releaseStage","BUGSNAG_RELEASE_STAGE","appType","initBugsnag","address","state_id","country_id","country_select","billing_same_as_shipping_element","state_select","state_name","state_class","chosenIsRequired","chosen","addChosenToState","findStates","change","shipping_country_select","updateRequired","billing_same_as_shipping","shipping_country_id","shipping_country_select_value","URLSearchParams","labels","required","updateRequiredFields","buildStatesDropdown","address_autocomplete","select2","placeholder","S2","amd","requirejs","require","define","undef","main","_req","makeMap","defined","waiting","defining","aps","jsSuffixRegExp","hasProp","normalize","baseName","nameParts","nameSegment","mapValue","foundMap","foundI","foundStarMap","starI","part","baseParts","starMap","nodeIdCompat","makeRequire","relName","forceSync","makeNormalize","makeLoad","depName","callDep","splitPrefix","makeRelParts","makeConfig","relParts","plugin","relResourceName","pr","uri","deps","cjsModule","usingExports","callbackType","cfg","_defined","Utils","getMethods","theClass","methods","Extend","ChildClass","SuperClass","__hasProp","BaseConstructor","__super__","Decorate","DecoratorClass","decoratedMethods","superMethods","DecoratedClass","argCount","calledConstructor","ctr","displayName","superMethod","calledMethod","originalMethod","decoratedMethod","Observable","listeners","_type","invoke","generateChars","chars","_convertData","originalKey","dataLevel","hasScroll","$el","innerHeight","scrollHeight","innerWidth","scrollWidth","escapeMarkup","markup","replaceMap","appendMany","$element","$nodes","$jqNodes","__cache","GetUniqueElementId","select2Id","StoreData","GetData","RemoveData","Results","dataAdapter","render","$results","clear","displayMessage","hideLoading","$message","hideMessages","$options","$option","$dropdown","sorter","highlightFirstItem","$selected","ensureHighlightVisible","setClasses","showLoading","loading","loadingMore","$loading","_resultId","title","role","template","$children","$child","$childrenContainer","$container","isOpen","$highlighted","getHighlightedResults","currentIndex","nextIndex","$next","currentOffset","nextTop","nextOffset","outerHeight","nextBottom","mousewheel","bottom","isAtTop","isAtBottom","$this","BACKSPACE","TAB","ENTER","SHIFT","CTRL","ALT","ESC","SPACE","PAGE_UP","PAGE_DOWN","END","HOME","LEFT","UP","RIGHT","DOWN","DELETE","KEYS","BaseSelection","$selection","_tabindex","resultsId","_handleBlur","_attachCloseHandler","_detachCloseHandler","$select","isEnabled","SingleSelection","$rendered","selectionContainer","formatted","MultipleSelection","$selections","Placeholder","decorated","normalizePlaceholder","createPlaceholder","$placeholder","singlePlaceholder","AllowClear","_handleClear","_handleKeyboardClear","$clear","previousVal","unselectData","removeAll","$remove","Search","$search","$searchContainer","_transferTabIndex","_keyUpPrevented","$previousChoice","searchRemoveChoice","msie","documentMode","disableInputEvents","handleSearch","searchHadFocus","resizeSearch","term","EventRelay","relayEvents","preventableEvents","Translation","dict","translation","_cache","loadPath","path","translations","BaseAdapter","query","generateResultId","SelectAdapter","currentData","unselect","addOptions","normalizedData","_normalizeItem","ArrayAdapter","_dataToConvert","convertToOptions","elm","$existing","existingIds","onlyItem","$existingOption","existingData","newData","$newOption","AjaxAdapter","ajaxOptions","_applyDefaults","processResults","q","failure","$request","_request","request","_queryTimeout","Tags","tags","createTag","insertTag","wrapper","checkChildren","_removeOldTags","page","Tokenizer","tokenizer","dropdown","createAndSelect","tokenData","separators","termChar","MinimumInputLength","$e","minimumInputLength","minimum","MaximumInputLength","maximumInputLength","maximum","MaximumSelectionLength","maximumSelectionLength","_checkIfMaximumSelected","successCallback","Dropdown","showSearch","HidePlaceholder","removePlaceholder","modifiedData","InfiniteScroll","lastParams","$loadingMore","createLoadingMore","showLoadingMore","loadMoreIfNeeded","isLoadMoreVisible","loadMore","pagination","more","AttachBody","$dropdownParent","_showDropdown","_attachPositioningHandler","_bindContainerResultHandlers","_hideDropdown","_detachPositioningHandler","$dropdownContainer","_containerResultsHandlersBound","_positionDropdown","_resizeDropdown","scrollEvent","resizeEvent","orientationEvent","$watchers","$window","isCurrentlyAbove","isCurrentlyBelow","newDirection","viewport","enoughRoomAbove","enoughRoomBelow","$offsetParent","isConnected","outerWidth","countResults","MinimumResultsForSearch","minimumResultsForSearch","Infinity","SelectOnClose","_handleSelectOnClose","originalSelect2Event","$highlightedResults","CloseOnSelect","_selectTriggered","errorLoading","inputTooLong","overChars","inputTooShort","maximumSelected","noResults","searching","removeAllItems","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","language","_resolveLanguage","uniqueLanguages","_processTranslations","debug","stripDiacritics","amdLanguageBase","dropdownAutoWidth","scrollAfterSelect","templateResult","templateSelection","theme","applyFromElement","optionLanguage","defaultLanguage","elementLanguage","parentLanguage","languages","resolvedLanguages","baseLanguage","languageData","convertedData","Options","fromElement","InputCompat","excludedData","upperCaseLetter","attributeName","dataName","dataValue","Select2","_generateId","DataAdapter","_placeContainer","SelectionAdapter","DropdownAdapter","ResultsAdapter","_bindAdapters","_registerDomEvents","_registerDataEvents","_registerSelectionEvents","_registerDropdownEvents","_registerResultsEvents","_registerEvents","initialData","_syncAttributes","_resolveWidth","WIDTH","styleWidth","elementWidth","_syncA","_syncS","_syncSubtree","observer","MutationObserver","WebKitMutationObserver","MozMutationObserver","_observer","mutations","observe","childList","subtree","nonRelayEvents","toggleDropdown","_isChangeMutation","addedNodes","removedNodes","actualTrigger","preTriggerMap","preTriggerName","preTriggerArgs","newVal","detachEvent","disconnect","thisMethods","instanceOptions","showPaymentForm","providerId","showPaymentProviderCallbacks","lastProviderElement","lastProviderId","dateTimeStr","overrideFormat","formatter","Intl","DateTimeFormat","resolvedOptions","outputString","timeZone","localize","activeDropdown","menu","closeIfClickOutsideMenu","default","Fulfilment","prevSubset","choose","choice","subset","menuId","isRoot","plugin_count","is_old_ie","search","bound","F","searchElement","fromIndex","O","IonRangeSlider","current_plugin","calc_count","update_tm","old_from","old_to","old_min_interval","raf_id","dragging","force_redraw","no_diapason","has_tab_index","is_key","is_update","is_start","is_finish","is_active","is_resize","is_click","$cache","cont","rs","single","bar","line","s_single","s_from","s_to","shad_single","shad_from","shad_to","edge","grid","grid_labels","coords","x_gap","x_pointer","w_rs","w_rs_old","w_handle","p_gap","p_gap_left","p_gap_right","p_step","p_pointer","p_handle","p_single_fake","p_single_real","p_from_fake","p_from_real","p_to_fake","p_to_real","p_bar_x","p_bar_w","grid_gap","big_num","big","big_w","big_p","big_x","w_min","w_max","w_from","w_to","w_single","p_min","p_max","p_from_left","p_to_left","p_single_left","config_from_data","$inp","skin","min_interval","max_interval","drag_interval","p_values","from_fixed","from_min","from_max","from_shadow","to_fixed","to_min","to_max","to_shadow","prettify_enabled","prettify_separator","prettify","force_edges","keyboard","grid_margin","grid_num","grid_snap","hide_min_max","hide_from_to","postfix","max_postfix","decorate_both","values_separator","input_values_separator","block","extra_classes","onStart","onChange","onFinish","onUpdate","update_check","validate","slider","from_percent","from_value","to_percent","to_value","convertToPercent","toggleInput","setMinMax","calc","callOnUpdate","callOnStart","updateScene","container_html","setTopHandler","appendGrid","appendDisableMask","removeDisableMask","bindEvents","cursor","changeLevel","cancelAnimationFrame","pointerMove","pointerUp","pointerClick","pointerFocus","pointerDown","$handle","restoreOriginalMinInterval","callOnFinish","setTempMinInterval","calcPointerPercent","moveByKey","decorate","min_pretty","_prettify","max_pretty","calcHandlePercent","handle_x","getHandleX","chooseHandle","checkDiapason","convertToFakePercent","convertToRealPercent","calcWithStep","checkMinInterval","checkMaxInterval","real_x","full","half","new_from","new_to","convertToValue","from_pretty","to_pretty","calcMinMax","calcLabels","fake","real","checkEdges","drawHandles","drawLabels","calcGridMargin","calcGridLabels","drawShadow","writeToInput","callOnChange","text_single","text_from","text_to","values_num","single_left","to_left","is_from_min","is_from_max","is_to_min","is_to_max","no_min","diapason","one_percent","min_length","max_length","min_decimals","max_decimals","avg_decimals","rounded","p_current","p_next","p_num","vl","updateFrom","updateTo","updateResult","z","local_small_max","small_p","small_max","cacheGridLabels","$label","calcGridCollision","Number","POSITIVE_INFINITY","next_i","ionRangeSlider","lastTime","vendors","currTime","timeToCall","ProductComparison","product","productId","updateSelectedProducts","payload","category","ids","isZoomed","exitZoom","toggleZoom","imageStyleProps","styleProps","drag","enterZoom","closeButton","viewportProps","closeCartIfClicked","parentElement","Cart","tease","cart","raf","webkitRequestAnimationFrame","mozRequestAnimationFrame","msRequestAnimationFrame","cb","caf","mozCancelAnimationFrame","checkStorageValue","setLocalStorage","storage","getBody","docElement","setFakeBody","docOverflow","background","resetFakeBody","addCSSRule","sheet","rules","insertRule","addRule","getCssRulesLength","cssRules","classListSupport","hasAttr","getAttr","isNodeList","setAttrs","removeAttrs","attrLength","arrayFromNodeList","nl","hideElement","forceHide","showElement","isVisible","whichProperty","Props","getEndProperty","propIn","propOut","endProp","supportsPassive","passiveOption","passive","addEvents","preventScrolling","removeEvents","Events","topics","eventName","tns","axis","items","gutter","edgePadding","fixedWidth","autoWidth","viewportMax","slideBy","controls","controlsPosition","controlsText","controlsContainer","prevButton","nextButton","navPosition","navContainer","navAsThumbnails","arrowKeys","autoplay","autoplayPosition","autoplayTimeout","autoplayDirection","autoplayText","autoplayHoverPause","autoplayButton","autoplayButtonOutput","autoplayResetOnVisibility","animateIn","animateOut","animateNormal","animateDelay","loop","rewind","autoHeight","responsive","lazyload","lazyloadSelector","mouseDrag","swipeAngle","nested","preventActionWhenRunning","preventScrollOnTouch","freezable","onInit","useLocalStorage","tnsStorage","localStorageAccess","browserInfo","localStorage","CALC","vals","PERCENTAGELAYOUT","supported","outer","percentageLayout","CSSMQ","matchMedia","msMatchMedia","rule","styleSheet","currentStyle","mediaquerySupport","TRANSFORM","HAS3DTRANSFORMS","tf","has3d","cssTF","has3DTransforms","TRANSITIONDURATION","TRANSITIONDELAY","ANIMATIONDURATION","ANIMATIONDELAY","TRANSITIONEND","ANIMATIONEND","supportConsoleWarn","tnsList","optionsElements","carousel","responsiveTem","updateOptions","middleWrapper","breakpointZone","horizontal","outerWrapper","innerWrapper","containerParent","containerHTML","outerHTML","slideItems","slideCount","windowWidth","getWindowWidth","isOn","setBreakpointZone","slidePositions","imgsComplete","liveregionCurrent","itemsMax","media","getOption","getViewportWidth","fixedWidthViewportWidth","slideItemsOut","cloneCount","tem","getItemsMax","hasOption","slideCountNew","hasRightDeadZone","rightBoundary","getRightBoundary","updateIndexBeforeTransform","transformAttr","transformPrefix","transformPostfix","getIndexMax","getStartIndex","indexCached","indexMin","getCurrentSlide","indexMax","moveDirectionExpected","running","newContainerClasses","slideId","tnsId","getSlideId","freeze","getFreeze","frozen","controlsEvents","onControlsClick","getEvent","keyIndex","navEvents","onTransitionEnd","getTarget","navIndex","navClicked","targetIndexBase","pages","goTo","navCurrentIndex","animating","stopAutoplay","curElement","setFocus","navItems","hoverEvents","stopAutoplayTimer","autoplayHoverPaused","setAutoplayTimer","visibilityEvent","autoplayVisibilityPaused","docmentKeydownEvent","touchEvents","onPanStart","onPanMove","onPanEnd","dragEvents","hasControls","hasNav","hasAutoplay","hasTouch","hasMouseDrag","slideActiveClass","slideClonedClass","imgCompleteClass","imgEvents","imgLoaded","img","imgCompleted","preventScroll","prevIsButton","nextIsButton","controlsContainerHTML","prevButtonHTML","nextButtonHTML","navContainerHTML","getPages","pagesCached","getCurrentNavIndex","navCurrentIndexCached","navActiveClass","navStr","navStrCurrent","autoplayTimer","autoplayUserPaused","autoplayButtonHTML","autoplayHtmlStrings","translateInit","rafIndex","initPosition","lastPosition","panStart","getDist","resetVariblesWhenDisable","fragmentBefore","fragmentAfter","cloneFirst","cloneLast","initStructure","fontSize","slide","getSlideMarginLeft","getTransitionDurationStyle","getInnerWrapperStyles","getContainerWidth","getSlideWidthStyle","getSlideGutterStyle","getAnimationDurationStyle","middleWrapperStr","innerWrapperStr","containerStr","slideStr","itemsBP","fixedWidthBP","speedBP","edgePaddingBP","autoHeightBP","gutterBP","initSheet","initSliderTransform","updateIndex","leftEdge","rightEdge","transformCore","positionTick","resetDuration","doContainerTransform","getContainerTransformValue","moveElement","updateContentWrapperHeight","eve","animateSlide","getInfo","info","play","startAutoplay","pause","updateSliderHeight","updateInnerWrapperHeight","refresh","ownerNode","onResize","toggleAutoplay","clearInterval","htmlList","prevEl","previousElementSibling","parentEl","nextElementSibling","rebuild","condition","ind","getAbsIndex","absIndex","clientWidth","getInsertPosition","getClientWidth","gap","edgePaddingTem","gutterTem","fixedWidthTem","speedTem","gutterTemUnit","itemsTem","getCSSPrefix","imgs","imgsLoadedCheck","getImageArray","initSliderTransformStyleCheck","doContainerTransformSilent","initTools","initEvents","stylesApplicationCheck","initSliderTransformCore","setSlidePositions","updateSlideStatus","insertAdjacentHTML","getLiveRegionStr","txt","navHtml","hiddenStr","updateNavVisibility","isButton","updateControlsStatus","disableUI","resizeTasks","doAutoHeight","doLazyLoad","disableSlider","freezeSlider","additionalUpdates","bpChanged","breakpointZoneTem","needContainerTransform","indChanged","itemsChanged","disableTem","freezeTem","arrowKeysTem","controlsTem","navTem","touchTem","mouseDragTem","autoplayTem","autoplayHoverPauseTem","autoplayResetOnVisibilityTem","indexTem","autoHeightTem","controlsTextTem","centerTem","autoplayTextTem","classN","enableUI","enableSlider","unfreezeSlider","updateLiveRegion","updateGallerySlidePositions","deleteRule","removeRule","removeCSSRule","vp","getVisibleSlideRange","rangestart","rangeend","point","cell","srcset","imgSelector","navPrev","navCurrent","updateNavStatus","getMaxSlideHeight","slideStart","slideRange","heights","maxHeight","wp","attr2","range","getLowerCaseNodeName","isAriaDisabled","disEnableElement","prevDisabled","nextDisabled","disablePrev","disableNext","getCenterGap","denominator","classOut","classIn","isOut","sliderMoved","strTrans","propertyName","targetIndex","indexGap","factor","passEventObject","targetIn","setInterval","updateAutoplayButton","isTouchEvent","srcElement","preventDefaultBehavior","getMoveDirectionExpected","panUpdate","dist","preventClick","indexMoved","moved","rough","displayIndex","DEFAULT_PARAMS","slideshows","slideshowEl","slideshow","resizeId","formatDateTime","targetInputId","targetInput","activateTheme","selectedCategories","selectedBrands","removeFromArray","brand","updateSelectedState","brandId","categoryId","onChangeCallback","qtyInputs","addOrUpdateProductOption","triggerChangeEvent","bundleId","removeBtns","featureOptions","addToBundleBtns","enableAddToBundleButton","updateFeatureOptionCard","selectedInput","isOptional","optional","featureId","featureOptionCard","prevSelectedProductId","chooseFeatureOption","removeBtn","featureOption","updateQuantity","chooseProductVariant","isSingleOption","onSuccessCallback","optionId","generatePayload","card","headline","subheadline","featureHeadline","featureSubheadline","featureImg","productCard","optionCard","subHeadline","subHeadlineText","returnHeadline","edit","price","priceEl","clearOption","generateVariantPayload","productOptionSfid","startsWith","hoverintent","Viewport","g","la","oa","ma","Ea","Ga","Ha","D","ra","I","H","B","G","qa","Ra","K","J","C","A","Da","pa","Ia","Ja","Ka","La","Ma","Qa","Ta","Ua","Xa","Ya","N","$a","P","bb","Q","Fa","R","S","U","db","V","Y","ua","nb","Z","sb","qb","pb","ob","aa","ba","ca","da","ea","fa","ga","ha","ia","xa","ya","wa","ja","ka","na","sa","ta","za","Ba","Na","Oa","Pa","Sa","Va","Wa","Za","ab","eb","fb","gb","hb","ib","jb","kb","lb","mb","X","rb","tb","win$1","class","hasMoment","hasEventListeners","sto","addEvent","capture","cn","isWeekend","getDaysInMonth","setToStartOfDay","setHours","compareDates","overwrite","fireEvent","createEventObject","adjustCalendar","ariaLabel","reposition","defaultDate","setDefaultDate","firstDay","firstWeekOfYearMinDays","formatStrict","minDate","maxDate","yearRange","showWeekNumber","pickWholeWeek","minYear","maxYear","minMonth","maxMonth","startRange","endRange","isRTL","yearSuffix","showMonthAfterYear","showDaysInNextAndPreviousMonths","enableSelectionDaysInNextAndPreviousMonths","numberOfMonths","mainCalendar","blurFieldOnSelect","i18n","previousMonth","nextMonth","onSelect","onOpen","onClose","onDraw","keyboardInput","renderDayName","renderDay","ariaSelected","isEmpty","isToday","hasEvent","isInRange","isStartRange","isEndRange","yearDay","weekDay","dayInFirstWeek","dayShift","daysPerWeek","prevWeekDay","setDate","jan4th","msPerDay","daysBetween","renderWeek","renderRow","isRowSelected","renderBody","rows","renderHead","renderTitle","refYear","randId","monthHtml","yearHtml","_o","isMinYear","isMaxYear","renderTable","Pikaday","_onMouseDown","_v","prevMonth","_c","_onChange","gotoMonth","gotoYear","_onKeyChange","adjustDate","_parseFieldValue","_onInputChange","firedBy","_onInputFocus","_onInputClick","_onInputBlur","pEl","_b","_onClick","onchange","defDate","gotoDate","disableWeekends","disableDayFn","nom","setMinDate","setMaxDate","fallback","toDateString","getMoment","setMoment","preventOnSelect","draw","newCalendar","calendars","firstVisibleDate","lastVisibleDate","visibleDate","adjustCalendars","newDay","difference","gotoToday","setStartRange","setEndRange","_y","_m","adjustPosition","viewportWidth","viewportHeight","clientRect","leftAligned","bottomAligned","clientHeight","offsetLeft","offsetTop","row","yearOfPreviousMonth","yearOfNextMonth","daysInPreviousMonth","cells","isWeekSelected","dayNumber","monthNumber","yearNumber","dayConfig","Sort","Tabs","modalOpenTriggers","modalCloseTriggers","modals","closeModal","openModal","clicked","StoreConnectTheme","OptionSelectShowHandler","hideAll","showTarget","targetAttribute","TabVerticalHandler","showFirstVisibleTabByDefault","tabSectionId","firstVerticalTabSelector"],"mappings":"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AAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,OAAQ,KACR,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAQ,IACR,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,IACV,SAAU,IACV,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAQ,IACR,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAQ,IACR,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,SAAU,KACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAQ,IACR,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,SAAU,KACV,SAAU,IACV,SAAU,IACV,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAQ,IACR,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAQ,IACR,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAQ,IACR,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,SAAU,IACV,SAAU,IACV,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAQ,IACR,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAQ,IACR,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAQ,IACR,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAQ,IACR,SAAU,IACV,SAAU,IACV,OAAQ,IACR,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,OAAQ,KACR,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAQ,IACR,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,SAAU,KACV,SAAU,IACV,SAAU,IACV,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAQ,IACR,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,SAAU,IACV,SAAU,IACV,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAQ,IACR,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAQ,IACR,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,SAAU,IACV,SAAU,IACV,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAQ,IACR,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAQ,IACR,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAQ,IACR,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAQ,IACR,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,SAAU,IACV,SAAU,IACV,OAAQ,IACR,OAAQ,IACR,OAAQ,IACR,SAAU,IACV,S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,SAAI,IAAI,SAAI,IAAI,OAAI,IAAI,SAAI,IAAI,SAAI,IAAI,OAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,KAAK,OAAI,KAAK,SAAI,KAAK,SAAI,KAAK,SAAI,KAAK,SAAI,KAAK,SAAI,KAAK,SAAI,KAAK,SAAI,KAAK,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,OAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,KAAK,SAAI,KAAK,SAAI,KAAK,SAAI,KAAK,SAAI,IAAI,SAAI,IAAI,OAAI,IAAI,OAAI,IAAI,OAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,OAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,OAAI,IAAI,OAAI,IAAI,OAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,OAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,KAAK,SAAI,KAAK,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,OAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,KAAK,SAAI,KAAK,SAAI,IAAI,SAAI,IAAI,OAAI,IAAI,OAAI,IAAI,OAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,OAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,OAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,OAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,KAAK,SAAI,KAAK,SAAI,KAAK,SAAI,KAAK,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,KAAK,SAAI,IAAI,SAAI,IAAI,OAAI,IAAI,OAAI,IAAI,OAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,OAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,KAAK,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,OAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,OAAI,IAAI,OAAI,IAAI,OAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,OAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,OAAI,IAAI,SAAI,IAAI,SAAI,IAAI,OAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,KAAK,OAAI,KAAK,SAAI,KAAK,SAAI,KAAK,SAAI,KAAK,SAAI,KAAK,SAAI,KAAK,SAAI,KAAK,SAAI,KAAK,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,OAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,KAAK,SAAI,KAAK,SAAI,IAAI,SAAI,IAAI,OAAI,IAAI,OAAI,IAAI,OAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,OAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,KAAK,SAAI,IAAI,SAAI,IAAI,OAAI,IAAI,OAAI,IAAI,OAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,OAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,KAAK,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,OAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,KAAK,SAAI,IAAI,SAAI,IAAI,OAAI,IAAI,OAAI,IAAI,OAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,OAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,OAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,OAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,KAAK,SAAI,KAAK,SAAI,KAAK,SAAI,KAAK,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,OAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI,SAAI,IAAI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","file":"js/proma-theme-314dc3014b13dc39da00.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 298);\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js\n//! version : 2.29.1\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : global.moment = factory();\n})(this, function () {\n 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n } // This is done to register the method called with moment()\n // without creating circular dependencies.\n\n\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]';\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return input != null && Object.prototype.toString.call(input) === '[object Object]';\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return typeof input === 'number' || Object.prototype.toString.call(input) === '[object Number]';\n }\n\n function isDate(input) {\n return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]';\n }\n\n function map(arr, fn) {\n var res = [],\n i;\n\n for (i = 0; i < arr.length; ++i) {\n res.push(fn(arr[i], i));\n }\n\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n\n return m._pf;\n }\n\n var some;\n\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function some(fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid = !isNaN(m._d.getTime()) && flags.overflow < 0 && !flags.empty && !flags.invalidEra && !flags.invalidMonth && !flags.invalidWeekday && !flags.weekdayMismatch && !flags.nullInput && !flags.invalidFormat && !flags.userInvalidated && (!flags.meridiem || flags.meridiem && parsedParts);\n\n if (m._strict) {\n isNowValid = isNowValid && flags.charsLeftOver === 0 && flags.unusedTokens.length === 0 && flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n } // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n\n\n var momentProperties = hooks.momentProperties = [],\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i, prop, val;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentProperties.length > 0) {\n for (i = 0; i < momentProperties.length; i++) {\n prop = momentProperties[i];\n val = from[prop];\n\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n } // Moment prototype object\n\n\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n\n if (!this.isValid()) {\n this._d = new Date(NaN);\n } // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n\n\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return obj instanceof Moment || obj != null && obj._isAMomentObject != null;\n }\n\n function warn(msg) {\n if (hooks.suppressDeprecationWarnings === false && typeof console !== 'undefined' && console.warn) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n\n if (firstTime) {\n var args = [],\n arg,\n i,\n key;\n\n for (i = 0; i < arguments.length; i++) {\n arg = '';\n\n if (_typeof(arguments[i]) === 'object') {\n arg += '\\n[' + i + '] ';\n\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n\n args.push(arg);\n }\n\n warn(msg + '\\nArguments: ' + Array.prototype.slice.call(args).join('') + '\\n' + new Error().stack);\n firstTime = false;\n }\n\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return typeof Function !== 'undefined' && input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';\n }\n\n function set(config) {\n var prop, i;\n\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n\n this._config = config; // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n\n this._dayOfMonthOrdinalParseLenient = new RegExp((this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + '|' + /\\d{1,2}/.source);\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n\n for (prop in parentConfig) {\n if (hasOwnProp(parentConfig, prop) && !hasOwnProp(childConfig, prop) && isObject(parentConfig[prop])) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function keys(obj) {\n var i,\n res = [];\n\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L'\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (sign ? forceSign ? '+' : '' : '-') + Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber;\n }\n\n var formattingTokens = /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {}; // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n\n if (typeof callback === 'string') {\n func = function func() {\n return this[callback]();\n };\n }\n\n if (token) {\n formatTokenFunctions[token] = func;\n }\n\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(func.apply(this, arguments), token);\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n\n for (i = 0; i < length; i++) {\n output += isFunction(array[i]) ? array[i].call(mom, format) : array[i];\n }\n\n return output;\n };\n } // format date using native date object\n\n\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format);\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(localFormattingTokens, replaceLongDateFormatTokens);\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A'\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper.match(formattingTokens).map(function (tok) {\n if (tok === 'MMMM' || tok === 'MM' || tok === 'DD' || tok === 'dddd') {\n return tok.slice(1);\n }\n\n return tok;\n }).join('');\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years'\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output) ? output(number, withoutSuffix, string, isFuture) : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({\n unit: u,\n priority: priorities[u]\n });\n }\n }\n\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function isLeapYear(year) {\n return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n return mom.isValid() ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN;\n }\n\n function set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (unit === 'FullYear' && isLeapYear(mom.year()) && mom.month() === 1 && mom.date() === 29) {\n value = toInt(value);\n\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value, mom.month(), daysInMonth(value, mom.month()));\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n } // MOMENTS\n\n\n function stringGet(units) {\n units = normalizeUnits(units);\n\n if (isFunction(this[units])) {\n return this[units]();\n }\n\n return this;\n }\n\n function stringSet(units, value) {\n if (_typeof(units) === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i;\n\n for (i = 0; i < prioritized.length; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n\n return this;\n }\n\n var match1 = /\\d/,\n // 0 - 9\n match2 = /\\d\\d/,\n // 00 - 99\n match3 = /\\d{3}/,\n // 000 - 999\n match4 = /\\d{4}/,\n // 0000 - 9999\n match6 = /[+-]?\\d{6}/,\n // -999999 - 999999\n match1to2 = /\\d\\d?/,\n // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/,\n // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/,\n // 99999 - 999999\n match1to3 = /\\d{1,3}/,\n // 0 - 999\n match1to4 = /\\d{1,4}/,\n // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/,\n // -999999 - 999999\n matchUnsigned = /\\d+/,\n // 0 - inf\n matchSigned = /[+-]?\\d+/,\n // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi,\n // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi,\n // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/,\n // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord = /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n regexes;\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex) ? regex : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n } // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n\n\n function unescapeFormat(s) {\n return regexEscape(s.replace('\\\\', '').replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g, function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }));\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback;\n\n if (typeof token === 'string') {\n token = [token];\n }\n\n if (isNumber(callback)) {\n func = function func(input, array) {\n array[callback] = toInt(input);\n };\n }\n\n for (i = 0; i < token.length; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n function mod(n, x) {\n return (n % x + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function indexOf(o) {\n // I know\n var i;\n\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1 ? isLeapYear(year) ? 29 : 28 : 31 - modMonth % 7 % 2;\n } // FORMATTING\n\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n }); // ALIASES\n\n addUnitAlias('month', 'M'); // PRIORITY\n\n addUnitPriority('month', 8); // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict); // if we didn't find a month name, mark the date as invalid.\n\n\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n }); // LOCALES\n\n var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months) ? this._months : this._months['standalone'];\n }\n\n return isArray(this._months) ? this._months[m.month()] : this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format) ? 'format' : 'standalone'][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort) ? this._monthsShort : this._monthsShort['standalone'];\n }\n\n return isArray(this._monthsShort) ? this._monthsShort[m.month()] : this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(mom, '').toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n } // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n\n\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i');\n this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i');\n }\n\n if (!strict && !this._monthsParse[i]) {\n regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n } // test the regex\n\n\n if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) {\n return i;\n } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n } // MOMENTS\n\n\n function setMonth(mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value); // TODO: Another silent failure?\n\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n\n return this._monthsShortStrictRegex && isStrict ? this._monthsShortStrictRegex : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n\n return this._monthsStrictRegex && isStrict ? this._monthsStrictRegex : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom;\n\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n } // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n\n\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');\n this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\n } // FORMATTING\n\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year'); // ALIASES\n\n addUnitAlias('year', 'y'); // PRIORITIES\n\n addUnitPriority('year', 1); // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] = input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n }); // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n } // HOOKS\n\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n }; // MOMENTS\n\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date; // the date constructor remaps years 0-99 to 1900-1999\n\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args; // the Date.UTC function remaps years 0-99 to 1900-1999\n\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments); // preserve leap years using a full 400 year cycle, then reset\n\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n } // start-of-first-week - start-of-year\n\n\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n return -fwdlw + fwd - 1;\n } // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n\n\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n } // FORMATTING\n\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek'); // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W'); // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5); // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }); // HELPERS\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n } // MOMENTS\n\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n } // FORMATTING\n\n\n addFormatToken('d', 0, 'do', 'day');\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday'); // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E'); // PRIORITY\n\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11); // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict); // if we didn't get a weekday name, mark the date as invalid\n\n\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n }); // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n\n return isNaN(input) ? null : input;\n } // LOCALES\n\n\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays) ? this._weekdays : this._weekdays[m && m !== true && this._weekdays.isFormat.test(format) ? 'format' : 'standalone'];\n return m === true ? shiftWeekdays(weekdays, this._week.dow) : m ? weekdays[m.day()] : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true ? shiftWeekdays(this._weekdaysShort, this._week.dow) : m ? this._weekdaysShort[m.day()] : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true ? shiftWeekdays(this._weekdaysMin, this._week.dow) : m ? this._weekdaysMin[m.day()] : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(mom, '').toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(mom, '').toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._weekdaysParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._weekdaysParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$', 'i');\n this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$', 'i');\n this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$', 'i');\n }\n\n if (!this._weekdaysParse[i]) {\n regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n } // test the regex\n\n\n if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n } // MOMENTS\n\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n } // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n\n return this._weekdaysStrictRegex && isStrict ? this._weekdaysStrictRegex : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n\n return this._weekdaysShortStrictRegex && isStrict ? this._weekdaysShortStrictRegex : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n\n return this._weekdaysMinStrictRegex && isStrict ? this._weekdaysMinStrictRegex : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n } // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n\n\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n this._weekdaysStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');\n this._weekdaysShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\n this._weekdaysMinStrictRegex = new RegExp('^(' + minPieces.join('|') + ')', 'i');\n } // FORMATTING\n\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n addFormatToken('hmmss', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) + zeroFill(this.seconds(), 2);\n });\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n addFormatToken('Hmmss', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2) + zeroFill(this.seconds(), 2);\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(this.hours(), this.minutes(), lowercase);\n });\n }\n\n meridiem('a', true);\n meridiem('A', false); // ALIASES\n\n addUnitAlias('hour', 'h'); // PRIORITY\n\n addUnitPriority('hour', 13); // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n }); // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n week: defaultLocaleWeek,\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n meridiemParse: defaultLocaleMeridiemParse\n }; // internal storage for locale config files\n\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n } // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n\n\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n\n if (locale) {\n return locale;\n }\n\n if (next && next.length >= j && commonPrefix(split, next) >= j - 1) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n\n j--;\n }\n\n i++;\n }\n\n return globalLocale;\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire; // TODO: Find a better way to register and load all the locales in Node\n\n if (locales[name] === undefined && typeof module !== 'undefined' && module && module.exports) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n\n return locales[name];\n } // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n\n\n function getSetGlobalLocale(key, values) {\n var data;\n\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn('Locale ' + key + ' not found. Did you forget to load it?');\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n\n if (locales[name] != null) {\n deprecateSimple('defineLocaleOverride', 'use moment.updateLocale(localeName, config) to change ' + 'an existing locale. moment.defineLocale(localeName, ' + 'config) should only be used for creating a new locale ' + 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.');\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config\n });\n return null;\n }\n }\n }\n\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n } // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n\n\n getSetGlobalLocale(name);\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n\n config = mergeConfigs(parentConfig, config);\n\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n } // backwards compat for now: also set the locale\n\n\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n\n return locales[name];\n } // returns locale data\n\n\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n\n if (locale) {\n return locale;\n }\n\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow = a[MONTH] < 0 || a[MONTH] > 11 ? MONTH : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE : a[HOUR] < 0 || a[HOUR] > 24 || a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0) ? HOUR : a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE : a[SECOND] < 0 || a[SECOND] > 59 ? SECOND : a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND : -1;\n\n if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) {\n overflow = DATE;\n }\n\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n } // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n\n\n var extendedIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/], ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/], ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/], ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false], ['YYYY-DDD', /\\d{4}-\\d{3}/], ['YYYY-MM', /\\d{4}-\\d\\d/, false], ['YYYYYYMMDD', /[+-]\\d{10}/], ['YYYYMMDD', /\\d{8}/], ['GGGG[W]WWE', /\\d{4}W\\d{3}/], ['GGGG[W]WW', /\\d{4}W\\d{2}/, false], ['YYYYDDD', /\\d{7}/], ['YYYYMM', /\\d{6}/, false], ['YYYY', /\\d{4}/, false]],\n // iso time formats and regexes\n isoTimes = [['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/], ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/], ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/], ['HH:mm', /\\d\\d:\\d\\d/], ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/], ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/], ['HHmmss', /\\d\\d\\d\\d\\d\\d/], ['HHmm', /\\d\\d\\d\\d/], ['HH', /\\d\\d/]],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60\n }; // date from iso format\n\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat;\n\n if (match) {\n getParsingFlags(config).iso = true;\n\n for (i = 0, l = isoDates.length; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n\n if (match[3]) {\n for (i = 0, l = isoTimes.length; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {\n var result = [untruncateYear(yearStr), defaultLocaleMonthsShort.indexOf(monthStr), parseInt(dayStr, 10), parseInt(hourStr, 10), parseInt(minuteStr, 10)];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s.replace(/\\([^)]*\\)|[\\n\\t]/g, ' ').replace(/(\\s\\s+)/g, ' ').replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(parsedInput[0], parsedInput[1], parsedInput[2]).getDay();\n\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n } // date and time from ref 2822 format\n\n\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n\n if (match) {\n parsedArray = extractFromRFC2822Strings(match[4], match[3], match[2], match[5], match[6], match[7]);\n\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n config._d = createUTCDate.apply(null, config._a);\n\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n } // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n\n\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate('value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' + 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' + 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.', function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }); // Pick the first defined of two or three arguments.\n\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n\n if (b != null) {\n return b;\n }\n\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n\n if (config._useUTC) {\n return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()];\n }\n\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n } // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n\n\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config); //compute day of the year from weeks and weekdays\n\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n } //if the day of the year is set, figure out what it is\n\n\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n } // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n\n\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n } // Zero out whatever was not defaulted, including time\n\n\n for (; i < 7; i++) {\n config._a[i] = input[i] = config._a[i] == null ? i === 2 ? 1 : 0 : config._a[i];\n } // Check for 24:00:00.000\n\n\n if (config._a[HOUR] === 24 && config._a[MINUTE] === 0 && config._a[SECOND] === 0 && config._a[MILLISECOND] === 0) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input);\n expectedWeekday = config._useUTC ? config._d.getUTCDay() : config._d.getDay(); // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n } // check for mismatching day of week\n\n\n if (config._w && typeof config._w.d !== 'undefined' && config._w.d !== expectedWeekday) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n w = config._w;\n\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4; // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n\n weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(createLocal(), 1, 4).year);\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n curWeek = weekOfYear(createLocal(), dow, doy);\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year); // Default to current week.\n\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n } // constant that refers to the ISO standard\n\n\n hooks.ISO_8601 = function () {}; // constant that refers to the RFC 2822 form\n\n\n hooks.RFC_2822 = function () {}; // date from string and format string\n\n\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n\n config._a = [];\n getParsingFlags(config).empty = true; // This array is used to make a Date, either with `new Date` or `Date.UTC`\n\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era;\n tokens = expandFormat(config._f, config._locale).match(formattingTokens) || [];\n\n for (i = 0; i < tokens.length; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0];\n\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n\n string = string.slice(string.indexOf(parsedInput) + parsedInput.length);\n totalParsedInputLength += parsedInput.length;\n } // don't parse if it's not a known token\n\n\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n } // add remaining unparsed input length to the string\n\n\n getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength;\n\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n } // clear _12h flag if hour is <= 12\n\n\n if (config._a[HOUR] <= 12 && getParsingFlags(config).bigHour === true && config._a[HOUR] > 0) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem; // handle meridiem\n\n config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem); // handle era\n\n era = getParsingFlags(config).era;\n\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n\n if (isPm && hour < 12) {\n hour += 12;\n }\n\n if (!isPm && hour === 12) {\n hour = 0;\n }\n\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n } // date from string and array of format strings\n\n\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false;\n\n if (config._f.length === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < config._f.length; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n } // if there is any input that was not parsed add a penalty for that format\n\n\n currentScore += getParsingFlags(tempConfig).charsLeftOver; //or tokens\n\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (scoreToBeat == null || currentScore < scoreToBeat || validFormatFound) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map([i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond], function (obj) {\n return obj && parseInt(obj, 10);\n });\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || format === undefined && input === '') {\n return createInvalid({\n nullInput: true\n });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (isObject(input) && isObjectEmpty(input) || isArray(input) && input.length === 0) {\n input = undefined;\n } // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n\n\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate('moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/', function () {\n var other = createLocal.apply(null, arguments);\n\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }),\n prototypeMax = deprecate('moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/', function () {\n var other = createLocal.apply(null, arguments);\n\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }); // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n\n function pickBy(fn, moments) {\n var res, i;\n\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n\n if (!moments.length) {\n return createLocal();\n }\n\n res = moments[0];\n\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n\n return res;\n } // TODO: Use [].sort instead?\n\n\n function min() {\n var args = [].slice.call(arguments, 0);\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n return pickBy('isAfter', args);\n }\n\n var now = function now() {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = ['year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond'];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i;\n\n for (key in m) {\n if (hasOwnProp(m, key) && !(indexOf.call(ordering, key) !== -1 && (m[key] == null || !isNaN(m[key])))) {\n return false;\n }\n }\n\n for (i = 0; i < ordering.length; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n this._isValid = isDurationValid(normalizedInput); // representation for dateAddRemove\n\n this._milliseconds = +milliseconds + seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n\n this._days = +days + weeks * 7; // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n\n this._months = +months + quarters * 3 + years * 12;\n this._data = {};\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n } // compare two arrays, return the number of differences\n\n\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (dontConvert && array1[i] !== array2[i] || !dontConvert && toInt(array1[i]) !== toInt(array2[i])) {\n diffs++;\n }\n }\n\n return diffs + lengthDiff;\n } // FORMATTING\n\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n\n return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~offset % 60, 2);\n });\n }\n\n offset('Z', ':');\n offset('ZZ', ''); // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n }); // HELPERS\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n } // Return a moment from input, that is local/utc/zone equivalent to model.\n\n\n function cloneWithOffset(input, model) {\n var res, diff;\n\n if (model._isUTC) {\n res = model.clone();\n diff = (isMoment(input) || isDate(input) ? input.valueOf() : createLocal(input).valueOf()) - res.valueOf(); // Use low-level api, because this fn is low-level api.\n\n res._d.setTime(res._d.valueOf() + diff);\n\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n } // HOOKS\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n\n\n hooks.updateOffset = function () {}; // MOMENTS\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n\n\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n\n this._offset = input;\n this._isUTC = true;\n\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(this, createDuration(input - offset, 'm'), 1, false);\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n\n input = input ? createLocal(input).utcOffset() : 0;\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return this.utcOffset() > this.clone().month(0).utcOffset() || this.utcOffset() > this.clone().month(5).utcOffset();\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted = this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n } // ASP.NET json date format regex\n\n\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex = /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if (match = aspNetRegex.exec(input)) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign // the millisecond decimal point is included in the match\n\n };\n } else if (match = isoRegex.exec(input)) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign)\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (_typeof(duration) === 'object' && ('from' in duration || 'to' in duration)) {\n diffRes = momentsDifference(createLocal(duration.from), createLocal(duration.to));\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.')); // apply sign while we're at it\n\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n res.months = other.month() - base.month() + (other.year() - base.year()) * 12;\n\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n\n if (!(base.isValid() && other.isValid())) {\n return {\n milliseconds: 0,\n months: 0\n };\n }\n\n other = cloneWithOffset(other, base);\n\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n } // TODO: remove 'name' arg after deprecation is removed\n\n\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp; //invert the arguments, but complain about it\n\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period). ' + 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.');\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n } // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n\n\n function isMomentInput(input) {\n return isMoment(input) || isDate(input) || isString(input) || isNumber(input) || isNumberOrStringArray(input) || isMomentInputObject(input) || input === null || input === undefined;\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = ['years', 'year', 'y', 'months', 'month', 'M', 'days', 'day', 'd', 'dates', 'date', 'D', 'hours', 'hour', 'h', 'minutes', 'minute', 'm', 'seconds', 'second', 's', 'milliseconds', 'millisecond', 'ms'],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n\n if (arrayTest) {\n dataTypeTest = input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = ['sameDay', 'nextDay', 'lastDay', 'nextWeek', 'lastWeek', 'sameElse'],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6 ? 'sameElse' : diff < -1 ? 'lastWeek' : diff < 0 ? 'lastDay' : diff < 1 ? 'sameDay' : diff < 2 ? 'nextDay' : diff < 7 ? 'nextWeek' : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n } // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n\n\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output = formats && (isFunction(formats[format]) ? formats[format].call(this, now) : formats[format]);\n return this.format(output || this.localeData().calendar(format, this, createLocal(now)));\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n\n units = normalizeUnits(units) || 'millisecond';\n\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n\n units = normalizeUnits(units) || 'millisecond';\n\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n\n inclusivity = inclusivity || '()';\n return (inclusivity[0] === '(' ? this.isAfter(localFrom, units) : !this.isBefore(localFrom, units)) && (inclusivity[1] === ')' ? this.isBefore(localTo, units) : !this.isAfter(localTo, units));\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n\n units = normalizeUnits(units) || 'millisecond';\n\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf();\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n\n case 'month':\n output = monthDiff(this, that);\n break;\n\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n\n case 'second':\n output = (this - that) / 1e3;\n break;\n // 1000\n\n case 'minute':\n output = (this - that) / 6e4;\n break;\n // 1000 * 60\n\n case 'hour':\n output = (this - that) / 36e5;\n break;\n // 1000 * 60 * 60\n\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break;\n // 1000 * 60 * 60 * 24, negate dst\n\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break;\n // 1000 * 60 * 60 * 24 * 7, negate dst\n\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n } // difference in months\n\n\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months'); // linear across the month\n\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months'); // linear across the month\n\n adjust = (b - anchor) / (anchor2 - anchor);\n } //check for negative zero, return zero if negative zero\n\n\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(m, utc ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ');\n }\n\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000).toISOString().replace('Z', formatMoment(m, 'Z'));\n }\n }\n\n return formatMoment(m, utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ');\n }\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n\n\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc() ? hooks.defaultFormatUtc : hooks.defaultFormat;\n }\n\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (this.isValid() && (isMoment(time) && time.isValid() || createLocal(time).isValid())) {\n return createDuration({\n to: this,\n from: time\n }).locale(this.locale()).humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (this.isValid() && (isMoment(time) && time.isValid() || createLocal(time).isValid())) {\n return createDuration({\n from: this,\n to: time\n }).locale(this.locale()).humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n } // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n\n\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n\n return this;\n }\n }\n\n var lang = deprecate('moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.', function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n });\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR; // actual modulo - handles negative numbers (for dates before 1970):\n\n function mod$1(dividend, divisor) {\n return (dividend % divisor + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n\n case 'quarter':\n time = startOfDate(this.year(), this.month() - this.month() % 3, 1);\n break;\n\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n\n case 'week':\n time = startOfDate(this.year(), this.month(), this.date() - this.weekday());\n break;\n\n case 'isoWeek':\n time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1));\n break;\n\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR);\n break;\n\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n\n case 'quarter':\n time = startOfDate(this.year(), this.month() - this.month() % 3 + 3, 1) - 1;\n break;\n\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n\n case 'week':\n time = startOfDate(this.year(), this.month(), this.date() - this.weekday() + 7) - 1;\n break;\n\n case 'isoWeek':\n time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1) + 7) - 1;\n break;\n\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n\n case 'hour':\n time = this._d.valueOf();\n time += MS_PER_HOUR - mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR) - 1;\n break;\n\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds()\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n addParseToken(['N', 'NN', 'NNN', 'NNNN', 'NNNNN'], function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n });\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (_typeof(eras[i].since)) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (_typeof(eras[i].until)) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1; // truncate time\n\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until || eras[i].until <= val && val <= eras[i].since) {\n return (this.year() - hooks(eras[i].since).year()) * dir + eras[i].offset;\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp('^(' + narrowPieces.join('|') + ')', 'i');\n } // FORMATTING\n\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear'); // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG'); // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1); // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n });\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n }); // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(this, input, this.week(), this.weekday(), this.localeData()._week.dow, this.localeData()._week.doy);\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(this, input, this.isoWeek(), this.isoWeekday(), 1, 4);\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n } // FORMATTING\n\n\n addFormatToken('Q', 0, 'Qo', 'quarter'); // ALIASES\n\n addUnitAlias('quarter', 'Q'); // PRIORITY\n\n addUnitPriority('quarter', 7); // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n }); // MOMENTS\n\n function getSetQuarter(input) {\n return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3);\n } // FORMATTING\n\n\n addFormatToken('D', ['DD', 2], 'Do', 'date'); // ALIASES\n\n addUnitAlias('date', 'D'); // PRIORITY\n\n addUnitPriority('date', 9); // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict ? locale._dayOfMonthOrdinalParse || locale._ordinalParse : locale._dayOfMonthOrdinalParseLenient;\n });\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n }); // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true); // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear'); // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD'); // PRIORITY\n\n addUnitPriority('dayOfYear', 4); // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n }); // HELPERS\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n } // FORMATTING\n\n\n addFormatToken('m', ['mm', 2], 0, 'minute'); // ALIASES\n\n addUnitAlias('minute', 'm'); // PRIORITY\n\n addUnitPriority('minute', 14); // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE); // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false); // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second'); // ALIASES\n\n addUnitAlias('second', 's'); // PRIORITY\n\n addUnitPriority('second', 15); // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND); // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false); // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n }); // ALIASES\n\n addUnitAlias('millisecond', 'ms'); // PRIORITY\n\n addUnitPriority('millisecond', 16); // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n var token, getSetMillisecond;\n\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false); // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName'); // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth);\n proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth);\n proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear);\n proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', getSetZone);\n proto.isDSTShifted = deprecate('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', isDaylightSavingTimeShifted);\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n\n return out;\n } // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n\n\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [{\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD'\n }, {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC'\n }],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function ordinal(number) {\n var b = number % 10,\n output = toInt(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n }\n }); // Side effect imports\n\n hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', getSetGlobalLocale);\n hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', getLocale);\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n return duration._bubble();\n } // supports only 2.0-style add(1, 's') or add(duration)\n\n\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n } // supports only 2.0-style subtract(1, 's') or subtract(duration)\n\n\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays; // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n\n if (!(milliseconds >= 0 && days >= 0 && months >= 0 || milliseconds <= 0 && days <= 0 && months <= 0)) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n } // The following code bubbles up values, see the tests for\n // examples of what that means.\n\n\n data.milliseconds = milliseconds % 1000;\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n days += absFloor(hours / 24); // convert days to months\n\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays)); // 12 months -> 1 year\n\n years = absFloor(months / 12);\n months %= 12;\n data.days = days;\n data.months = months;\n data.years = years;\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return days * 4800 / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return months * 146097 / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n\n var days,\n months,\n milliseconds = this._milliseconds;\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n\n switch (units) {\n case 'month':\n return months;\n\n case 'quarter':\n return months / 3;\n\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n\n case 'day':\n return days + milliseconds / 864e5;\n\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n } // TODO: Use this.as('ms')?\n\n\n function valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n\n return this._milliseconds + this._days * 864e5 + this._months % 12 * 2592e6 + toInt(this._months / 12) * 31536e6;\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y');\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44,\n // a few seconds to seconds\n s: 45,\n // seconds to minute\n m: 45,\n // minutes to hour\n h: 22,\n // hours to day\n d: 26,\n // days to month/week\n w: null,\n // weeks to month\n M: 11 // months to year\n\n }; // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a = seconds <= thresholds.ss && ['s', seconds] || seconds < thresholds.s && ['ss', seconds] || minutes <= 1 && ['m'] || minutes < thresholds.m && ['mm', minutes] || hours <= 1 && ['h'] || hours < thresholds.h && ['hh', hours] || days <= 1 && ['d'] || days < thresholds.d && ['dd', days];\n\n if (thresholds.w != null) {\n a = a || weeks <= 1 && ['w'] || weeks < thresholds.w && ['ww', weeks];\n }\n\n a = a || months <= 1 && ['M'] || months < thresholds.M && ['MM', months] || years <= 1 && ['y'] || ['yy', years];\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n } // This function allows you to set the rounding function for relative time strings\n\n\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n\n return false;\n } // This function allows you to set a threshold for relative time strings\n\n\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n\n if (limit === undefined) {\n return thresholds[threshold];\n }\n\n thresholds[threshold] = limit;\n\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (_typeof(argWithSuffix) === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n\n if (_typeof(argThresholds) === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n } // 3600 seconds -> 60 minutes -> 1 hour\n\n\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60; // 12 months -> 1 year\n\n years = absFloor(months / 12);\n months %= 12; // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n return totalSign + 'P' + (years ? ymSign + years + 'Y' : '') + (months ? ymSign + months + 'M' : '') + (days ? daysSign + days + 'D' : '') + (hours || minutes || seconds ? 'T' : '') + (hours ? hmsSign + hours + 'H' : '') + (minutes ? hmsSign + minutes + 'M' : '') + (seconds ? hmsSign + s + 'S' : '');\n }\n\n var proto$2 = Duration.prototype;\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n proto$2.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', toISOString$1);\n proto$2.lang = lang; // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf'); // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n }); //! moment.js\n\n hooks.version = '2.29.1';\n setHookCallback(createLocal);\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto; // currently HTML5 input type only supports 24-hour formats\n\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm',\n // <input type=\"datetime-local\" />\n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss',\n // <input type=\"datetime-local\" step=\"1\" />\n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS',\n // <input type=\"datetime-local\" step=\"0.001\" />\n DATE: 'YYYY-MM-DD',\n // <input type=\"date\" />\n TIME: 'HH:mm',\n // <input type=\"time\" />\n TIME_SECONDS: 'HH:mm:ss',\n // <input type=\"time\" step=\"1\" />\n TIME_MS: 'HH:mm:ss.SSS',\n // <input type=\"time\" step=\"0.001\" />\n WEEK: 'GGGG-[W]WW',\n // <input type=\"week\" />\n MONTH: 'YYYY-MM' // <input type=\"month\" />\n\n };\n return hooks;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/* global Symbol */\n// Defining this global in .eslintrc.json would create a danger of using the global\n// unguarded in another place, it seems safer to define global only for this module\ndefine([\"./var/arr\", \"./var/getProto\", \"./var/slice\", \"./var/flat\", \"./var/push\", \"./var/indexOf\", \"./var/class2type\", \"./var/toString\", \"./var/hasOwn\", \"./var/fnToString\", \"./var/ObjectFunctionString\", \"./var/support\", \"./var/isFunction\", \"./var/isWindow\", \"./core/DOMEval\", \"./core/toType\"], function (arr, getProto, _slice, flat, push, indexOf, class2type, toString, hasOwn, fnToString, ObjectFunctionString, support, isFunction, isWindow, DOMEval, toType) {\n \"use strict\";\n\n var version = \"3.6.0\",\n // Define a local copy of jQuery\n jQuery = function jQuery(selector, context) {\n // The jQuery object is actually just the init constructor 'enhanced'\n // Need init if jQuery is called (just allow error to be thrown if not included)\n return new jQuery.fn.init(selector, context);\n };\n\n jQuery.fn = jQuery.prototype = {\n // The current version of jQuery being used\n jquery: version,\n constructor: jQuery,\n // The default length of a jQuery object is 0\n length: 0,\n toArray: function toArray() {\n return _slice.call(this);\n },\n // Get the Nth element in the matched element set OR\n // Get the whole matched element set as a clean array\n get: function get(num) {\n // Return all the elements in a clean array\n if (num == null) {\n return _slice.call(this);\n } // Return just the one element from the set\n\n\n return num < 0 ? this[num + this.length] : this[num];\n },\n // Take an array of elements and push it onto the stack\n // (returning the new matched element set)\n pushStack: function pushStack(elems) {\n // Build a new jQuery matched element set\n var ret = jQuery.merge(this.constructor(), elems); // Add the old object onto the stack (as a reference)\n\n ret.prevObject = this; // Return the newly-formed element set\n\n return ret;\n },\n // Execute a callback for every element in the matched set.\n each: function each(callback) {\n return jQuery.each(this, callback);\n },\n map: function map(callback) {\n return this.pushStack(jQuery.map(this, function (elem, i) {\n return callback.call(elem, i, elem);\n }));\n },\n slice: function slice() {\n return this.pushStack(_slice.apply(this, arguments));\n },\n first: function first() {\n return this.eq(0);\n },\n last: function last() {\n return this.eq(-1);\n },\n even: function even() {\n return this.pushStack(jQuery.grep(this, function (_elem, i) {\n return (i + 1) % 2;\n }));\n },\n odd: function odd() {\n return this.pushStack(jQuery.grep(this, function (_elem, i) {\n return i % 2;\n }));\n },\n eq: function eq(i) {\n var len = this.length,\n j = +i + (i < 0 ? len : 0);\n return this.pushStack(j >= 0 && j < len ? [this[j]] : []);\n },\n end: function end() {\n return this.prevObject || this.constructor();\n },\n // For internal use only.\n // Behaves like an Array's method, not like a jQuery method.\n push: push,\n sort: arr.sort,\n splice: arr.splice\n };\n\n jQuery.extend = jQuery.fn.extend = function () {\n var options,\n name,\n src,\n copy,\n copyIsArray,\n clone,\n target = arguments[0] || {},\n i = 1,\n length = arguments.length,\n deep = false; // Handle a deep copy situation\n\n if (typeof target === \"boolean\") {\n deep = target; // Skip the boolean and the target\n\n target = arguments[i] || {};\n i++;\n } // Handle case when target is a string or something (possible in deep copy)\n\n\n if (_typeof(target) !== \"object\" && !isFunction(target)) {\n target = {};\n } // Extend jQuery itself if only one argument is passed\n\n\n if (i === length) {\n target = this;\n i--;\n }\n\n for (; i < length; i++) {\n // Only deal with non-null/undefined values\n if ((options = arguments[i]) != null) {\n // Extend the base object\n for (name in options) {\n copy = options[name]; // Prevent Object.prototype pollution\n // Prevent never-ending loop\n\n if (name === \"__proto__\" || target === copy) {\n continue;\n } // Recurse if we're merging plain objects or arrays\n\n\n if (deep && copy && (jQuery.isPlainObject(copy) || (copyIsArray = Array.isArray(copy)))) {\n src = target[name]; // Ensure proper type for the source value\n\n if (copyIsArray && !Array.isArray(src)) {\n clone = [];\n } else if (!copyIsArray && !jQuery.isPlainObject(src)) {\n clone = {};\n } else {\n clone = src;\n }\n\n copyIsArray = false; // Never move original objects, clone them\n\n target[name] = jQuery.extend(deep, clone, copy); // Don't bring in undefined values\n } else if (copy !== undefined) {\n target[name] = copy;\n }\n }\n }\n } // Return the modified object\n\n\n return target;\n };\n\n jQuery.extend({\n // Unique for each copy of jQuery on the page\n expando: \"jQuery\" + (version + Math.random()).replace(/\\D/g, \"\"),\n // Assume jQuery is ready without the ready module\n isReady: true,\n error: function error(msg) {\n throw new Error(msg);\n },\n noop: function noop() {},\n isPlainObject: function isPlainObject(obj) {\n var proto, Ctor; // Detect obvious negatives\n // Use toString instead of jQuery.type to catch host objects\n\n if (!obj || toString.call(obj) !== \"[object Object]\") {\n return false;\n }\n\n proto = getProto(obj); // Objects with no prototype (e.g., `Object.create( null )`) are plain\n\n if (!proto) {\n return true;\n } // Objects with prototype are plain iff they were constructed by a global Object function\n\n\n Ctor = hasOwn.call(proto, \"constructor\") && proto.constructor;\n return typeof Ctor === \"function\" && fnToString.call(Ctor) === ObjectFunctionString;\n },\n isEmptyObject: function isEmptyObject(obj) {\n var name;\n\n for (name in obj) {\n return false;\n }\n\n return true;\n },\n // Evaluates a script in a provided context; falls back to the global one\n // if not specified.\n globalEval: function globalEval(code, options, doc) {\n DOMEval(code, {\n nonce: options && options.nonce\n }, doc);\n },\n each: function each(obj, callback) {\n var length,\n i = 0;\n\n if (isArrayLike(obj)) {\n length = obj.length;\n\n for (; i < length; i++) {\n if (callback.call(obj[i], i, obj[i]) === false) {\n break;\n }\n }\n } else {\n for (i in obj) {\n if (callback.call(obj[i], i, obj[i]) === false) {\n break;\n }\n }\n }\n\n return obj;\n },\n // results is for internal usage only\n makeArray: function makeArray(arr, results) {\n var ret = results || [];\n\n if (arr != null) {\n if (isArrayLike(Object(arr))) {\n jQuery.merge(ret, typeof arr === \"string\" ? [arr] : arr);\n } else {\n push.call(ret, arr);\n }\n }\n\n return ret;\n },\n inArray: function inArray(elem, arr, i) {\n return arr == null ? -1 : indexOf.call(arr, elem, i);\n },\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n merge: function merge(first, second) {\n var len = +second.length,\n j = 0,\n i = first.length;\n\n for (; j < len; j++) {\n first[i++] = second[j];\n }\n\n first.length = i;\n return first;\n },\n grep: function grep(elems, callback, invert) {\n var callbackInverse,\n matches = [],\n i = 0,\n length = elems.length,\n callbackExpect = !invert; // Go through the array, only saving the items\n // that pass the validator function\n\n for (; i < length; i++) {\n callbackInverse = !callback(elems[i], i);\n\n if (callbackInverse !== callbackExpect) {\n matches.push(elems[i]);\n }\n }\n\n return matches;\n },\n // arg is for internal usage only\n map: function map(elems, callback, arg) {\n var length,\n value,\n i = 0,\n ret = []; // Go through the array, translating each of the items to their new values\n\n if (isArrayLike(elems)) {\n length = elems.length;\n\n for (; i < length; i++) {\n value = callback(elems[i], i, arg);\n\n if (value != null) {\n ret.push(value);\n }\n } // Go through every key on the object,\n\n } else {\n for (i in elems) {\n value = callback(elems[i], i, arg);\n\n if (value != null) {\n ret.push(value);\n }\n }\n } // Flatten any nested arrays\n\n\n return flat(ret);\n },\n // A global GUID counter for objects\n guid: 1,\n // jQuery.support is not used in Core but other projects attach their\n // properties to it so it needs to exist.\n support: support\n });\n\n if (typeof Symbol === \"function\") {\n jQuery.fn[Symbol.iterator] = arr[Symbol.iterator];\n } // Populate the class2type map\n\n\n jQuery.each(\"Boolean Number String Function Array Date RegExp Object Error Symbol\".split(\" \"), function (_i, name) {\n class2type[\"[object \" + name + \"]\"] = name.toLowerCase();\n });\n\n function isArrayLike(obj) {\n // Support: real iOS 8.2 only (not reproducible in simulator)\n // `in` check used to prevent JIT error (gh-2145)\n // hasOwn isn't used here due to false negatives\n // regarding Nodelist length in IE\n var length = !!obj && \"length\" in obj && obj.length,\n type = toType(obj);\n\n if (isFunction(obj) || isWindow(obj)) {\n return false;\n }\n\n return type === \"array\" || length === 0 || typeof length === \"number\" && length > 0 && length - 1 in obj;\n }\n\n return jQuery;\n});","define(function () {\n \"use strict\";\n\n return function isFunction(obj) {\n // Support: Chrome <=57, Firefox <=52\n // In some browsers, typeof returns \"function\" for HTML <object> elements\n // (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n // We don't want to classify *any* DOM node as a function.\n // Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5\n // Plus for old WebKit, typeof returns \"function\" for HTML collections\n // (e.g., `typeof document.getElementsByTagName(\"div\") === \"function\"`). (gh-4756)\n return typeof obj === \"function\" && typeof obj.nodeType !== \"number\" && typeof obj.item !== \"function\";\n };\n});","define(function () {\n \"use strict\";\n\n return window.document;\n});","define([\"./selector-sizzle\"], function () {\n \"use strict\";\n});","// Initialize a jQuery object\ndefine([\"../core\", \"../var/document\", \"../var/isFunction\", \"./var/rsingleTag\", \"../traversing/findFilter\"], function (jQuery, document, isFunction, rsingleTag) {\n \"use strict\"; // A central reference to the root jQuery(document)\n\n var rootjQuery,\n // A simple way to check for HTML strings\n // Prioritize #id over <tag> to avoid XSS via location.hash (#9521)\n // Strict HTML recognition (#11290: must start with <)\n // Shortcut simple #id case for speed\n rquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n init = jQuery.fn.init = function (selector, context, root) {\n var match, elem; // HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\n if (!selector) {\n return this;\n } // Method init() accepts an alternate rootjQuery\n // so migrate can support jQuery.sub (gh-2101)\n\n\n root = root || rootjQuery; // Handle HTML strings\n\n if (typeof selector === \"string\") {\n if (selector[0] === \"<\" && selector[selector.length - 1] === \">\" && selector.length >= 3) {\n // Assume that strings that start and end with <> are HTML and skip the regex check\n match = [null, selector, null];\n } else {\n match = rquickExpr.exec(selector);\n } // Match html or make sure no context is specified for #id\n\n\n if (match && (match[1] || !context)) {\n // HANDLE: $(html) -> $(array)\n if (match[1]) {\n context = context instanceof jQuery ? context[0] : context; // Option to run scripts is true for back-compat\n // Intentionally let the error be thrown if parseHTML is not present\n\n jQuery.merge(this, jQuery.parseHTML(match[1], context && context.nodeType ? context.ownerDocument || context : document, true)); // HANDLE: $(html, props)\n\n if (rsingleTag.test(match[1]) && jQuery.isPlainObject(context)) {\n for (match in context) {\n // Properties of context are called as methods if possible\n if (isFunction(this[match])) {\n this[match](context[match]); // ...and otherwise set as attributes\n } else {\n this.attr(match, context[match]);\n }\n }\n }\n\n return this; // HANDLE: $(#id)\n } else {\n elem = document.getElementById(match[2]);\n\n if (elem) {\n // Inject the element directly into the jQuery object\n this[0] = elem;\n this.length = 1;\n }\n\n return this;\n } // HANDLE: $(expr, $(...))\n\n } else if (!context || context.jquery) {\n return (context || root).find(selector); // HANDLE: $(expr, context)\n // (which is just equivalent to: $(context).find(expr)\n } else {\n return this.constructor(context).find(selector);\n } // HANDLE: $(DOMElement)\n\n } else if (selector.nodeType) {\n this[0] = selector;\n this.length = 1;\n return this; // HANDLE: $(function)\n // Shortcut for document ready\n } else if (isFunction(selector)) {\n return root.ready !== undefined ? root.ready(selector) : // Execute immediately if ready is not present\n selector(jQuery);\n }\n\n return jQuery.makeArray(selector, this);\n }; // Give the init function the jQuery prototype for later instantiation\n\n\n init.prototype = jQuery.fn; // Initialize central reference\n\n rootjQuery = jQuery(document);\n return init;\n});","define([\"../Data\"], function (Data) {\n \"use strict\";\n\n return new Data();\n});","define(function () {\n \"use strict\";\n\n function nodeName(elem, name) {\n return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n }\n\n return nodeName;\n});","define(function () {\n \"use strict\"; // Only count HTML whitespace\n // Other whitespace should count in values\n // https://infra.spec.whatwg.org/#ascii-whitespace\n\n return /[^\\x20\\t\\r\\n\\f]+/g;\n});","define(function () {\n \"use strict\"; // All support tests are defined in their respective modules.\n\n return {};\n});","define([\"../core\", \"../core/toType\", \"../var/isFunction\"], function (jQuery, toType, isFunction) {\n \"use strict\"; // Multifunctional method to get and set values of a collection\n // The value/s can optionally be executed if it's a function\n\n var access = function access(elems, fn, key, value, chainable, emptyGet, raw) {\n var i = 0,\n len = elems.length,\n bulk = key == null; // Sets many values\n\n if (toType(key) === \"object\") {\n chainable = true;\n\n for (i in key) {\n access(elems, fn, i, key[i], true, emptyGet, raw);\n } // Sets one value\n\n } else if (value !== undefined) {\n chainable = true;\n\n if (!isFunction(value)) {\n raw = true;\n }\n\n if (bulk) {\n // Bulk operations run against the entire set\n if (raw) {\n fn.call(elems, value);\n fn = null; // ...except when executing function values\n } else {\n bulk = fn;\n\n fn = function fn(elem, _key, value) {\n return bulk.call(jQuery(elem), value);\n };\n }\n }\n\n if (fn) {\n for (; i < len; i++) {\n fn(elems[i], key, raw ? value : value.call(elems[i], i, fn(elems[i], key)));\n }\n }\n }\n\n if (chainable) {\n return elems;\n } // Gets\n\n\n if (bulk) {\n return fn.call(elems);\n }\n\n return len ? fn(elems[0], key) : emptyGet;\n };\n\n return access;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\ndefine([\"./core\", \"./var/document\", \"./var/isFunction\", \"./var/rnothtmlwhite\", \"./ajax/var/location\", \"./ajax/var/nonce\", \"./ajax/var/rquery\", \"./core/init\", \"./core/parseXML\", \"./event/trigger\", \"./deferred\", \"./serialize\" // jQuery.param\n], function (jQuery, document, isFunction, rnothtmlwhite, location, nonce, rquery) {\n \"use strict\";\n\n var r20 = /%20/g,\n rhash = /#.*$/,\n rantiCache = /([?&])_=[^&]*/,\n rheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n // #7653, #8125, #8152: local protocol detection\n rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n rnoContent = /^(?:GET|HEAD)$/,\n rprotocol = /^\\/\\//,\n\n /* Prefilters\n * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n * 2) These are called:\n * - BEFORE asking for a transport\n * - AFTER param serialization (s.data is a string if s.processData is true)\n * 3) key is the dataType\n * 4) the catchall symbol \"*\" can be used\n * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n */\n prefilters = {},\n\n /* Transports bindings\n * 1) key is the dataType\n * 2) the catchall symbol \"*\" can be used\n * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n */\n transports = {},\n // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression\n allTypes = \"*/\".concat(\"*\"),\n // Anchor tag for parsing the document origin\n originAnchor = document.createElement(\"a\");\n originAnchor.href = location.href; // Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\n\n function addToPrefiltersOrTransports(structure) {\n // dataTypeExpression is optional and defaults to \"*\"\n return function (dataTypeExpression, func) {\n if (typeof dataTypeExpression !== \"string\") {\n func = dataTypeExpression;\n dataTypeExpression = \"*\";\n }\n\n var dataType,\n i = 0,\n dataTypes = dataTypeExpression.toLowerCase().match(rnothtmlwhite) || [];\n\n if (isFunction(func)) {\n // For each dataType in the dataTypeExpression\n while (dataType = dataTypes[i++]) {\n // Prepend if requested\n if (dataType[0] === \"+\") {\n dataType = dataType.slice(1) || \"*\";\n (structure[dataType] = structure[dataType] || []).unshift(func); // Otherwise append\n } else {\n (structure[dataType] = structure[dataType] || []).push(func);\n }\n }\n }\n };\n } // Base inspection function for prefilters and transports\n\n\n function inspectPrefiltersOrTransports(structure, options, originalOptions, jqXHR) {\n var inspected = {},\n seekingTransport = structure === transports;\n\n function inspect(dataType) {\n var selected;\n inspected[dataType] = true;\n jQuery.each(structure[dataType] || [], function (_, prefilterOrFactory) {\n var dataTypeOrTransport = prefilterOrFactory(options, originalOptions, jqXHR);\n\n if (typeof dataTypeOrTransport === \"string\" && !seekingTransport && !inspected[dataTypeOrTransport]) {\n options.dataTypes.unshift(dataTypeOrTransport);\n inspect(dataTypeOrTransport);\n return false;\n } else if (seekingTransport) {\n return !(selected = dataTypeOrTransport);\n }\n });\n return selected;\n }\n\n return inspect(options.dataTypes[0]) || !inspected[\"*\"] && inspect(\"*\");\n } // A special extend for ajax options\n // that takes \"flat\" options (not to be deep extended)\n // Fixes #9887\n\n\n function ajaxExtend(target, src) {\n var key,\n deep,\n flatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n for (key in src) {\n if (src[key] !== undefined) {\n (flatOptions[key] ? target : deep || (deep = {}))[key] = src[key];\n }\n }\n\n if (deep) {\n jQuery.extend(true, target, deep);\n }\n\n return target;\n }\n /* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\n\n\n function ajaxHandleResponses(s, jqXHR, responses) {\n var ct,\n type,\n finalDataType,\n firstDataType,\n contents = s.contents,\n dataTypes = s.dataTypes; // Remove auto dataType and get content-type in the process\n\n while (dataTypes[0] === \"*\") {\n dataTypes.shift();\n\n if (ct === undefined) {\n ct = s.mimeType || jqXHR.getResponseHeader(\"Content-Type\");\n }\n } // Check if we're dealing with a known content-type\n\n\n if (ct) {\n for (type in contents) {\n if (contents[type] && contents[type].test(ct)) {\n dataTypes.unshift(type);\n break;\n }\n }\n } // Check to see if we have a response for the expected dataType\n\n\n if (dataTypes[0] in responses) {\n finalDataType = dataTypes[0];\n } else {\n // Try convertible dataTypes\n for (type in responses) {\n if (!dataTypes[0] || s.converters[type + \" \" + dataTypes[0]]) {\n finalDataType = type;\n break;\n }\n\n if (!firstDataType) {\n firstDataType = type;\n }\n } // Or just use first one\n\n\n finalDataType = finalDataType || firstDataType;\n } // If we found a dataType\n // We add the dataType to the list if needed\n // and return the corresponding response\n\n\n if (finalDataType) {\n if (finalDataType !== dataTypes[0]) {\n dataTypes.unshift(finalDataType);\n }\n\n return responses[finalDataType];\n }\n }\n /* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\n\n\n function ajaxConvert(s, response, jqXHR, isSuccess) {\n var conv2,\n current,\n conv,\n tmp,\n prev,\n converters = {},\n // Work with a copy of dataTypes in case we need to modify it for conversion\n dataTypes = s.dataTypes.slice(); // Create converters map with lowercased keys\n\n if (dataTypes[1]) {\n for (conv in s.converters) {\n converters[conv.toLowerCase()] = s.converters[conv];\n }\n }\n\n current = dataTypes.shift(); // Convert to each sequential dataType\n\n while (current) {\n if (s.responseFields[current]) {\n jqXHR[s.responseFields[current]] = response;\n } // Apply the dataFilter if provided\n\n\n if (!prev && isSuccess && s.dataFilter) {\n response = s.dataFilter(response, s.dataType);\n }\n\n prev = current;\n current = dataTypes.shift();\n\n if (current) {\n // There's only work to do if current dataType is non-auto\n if (current === \"*\") {\n current = prev; // Convert response if prev dataType is non-auto and differs from current\n } else if (prev !== \"*\" && prev !== current) {\n // Seek a direct converter\n conv = converters[prev + \" \" + current] || converters[\"* \" + current]; // If none found, seek a pair\n\n if (!conv) {\n for (conv2 in converters) {\n // If conv2 outputs current\n tmp = conv2.split(\" \");\n\n if (tmp[1] === current) {\n // If prev can be converted to accepted input\n conv = converters[prev + \" \" + tmp[0]] || converters[\"* \" + tmp[0]];\n\n if (conv) {\n // Condense equivalence converters\n if (conv === true) {\n conv = converters[conv2]; // Otherwise, insert the intermediate dataType\n } else if (converters[conv2] !== true) {\n current = tmp[0];\n dataTypes.unshift(tmp[1]);\n }\n\n break;\n }\n }\n }\n } // Apply converter (if not an equivalence)\n\n\n if (conv !== true) {\n // Unless errors are allowed to bubble, catch and return them\n if (conv && s.throws) {\n response = conv(response);\n } else {\n try {\n response = conv(response);\n } catch (e) {\n return {\n state: \"parsererror\",\n error: conv ? e : \"No conversion from \" + prev + \" to \" + current\n };\n }\n }\n }\n }\n }\n }\n\n return {\n state: \"success\",\n data: response\n };\n }\n\n jQuery.extend({\n // Counter for holding the number of active queries\n active: 0,\n // Last-Modified header cache for next request\n lastModified: {},\n etag: {},\n ajaxSettings: {\n url: location.href,\n type: \"GET\",\n isLocal: rlocalProtocol.test(location.protocol),\n global: true,\n processData: true,\n async: true,\n contentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\n /*\n timeout: 0,\n data: null,\n dataType: null,\n username: null,\n password: null,\n cache: null,\n throws: false,\n traditional: false,\n headers: {},\n */\n accepts: {\n \"*\": allTypes,\n text: \"text/plain\",\n html: \"text/html\",\n xml: \"application/xml, text/xml\",\n json: \"application/json, text/javascript\"\n },\n contents: {\n xml: /\\bxml\\b/,\n html: /\\bhtml/,\n json: /\\bjson\\b/\n },\n responseFields: {\n xml: \"responseXML\",\n text: \"responseText\",\n json: \"responseJSON\"\n },\n // Data converters\n // Keys separate source (or catchall \"*\") and destination types with a single space\n converters: {\n // Convert anything to text\n \"* text\": String,\n // Text to html (true = no transformation)\n \"text html\": true,\n // Evaluate text as a json expression\n \"text json\": JSON.parse,\n // Parse text as xml\n \"text xml\": jQuery.parseXML\n },\n // For options that shouldn't be deep extended:\n // you can add your own custom options here if\n // and when you create one that shouldn't be\n // deep extended (see ajaxExtend)\n flatOptions: {\n url: true,\n context: true\n }\n },\n // Creates a full fledged settings object into target\n // with both ajaxSettings and settings fields.\n // If target is omitted, writes into ajaxSettings.\n ajaxSetup: function ajaxSetup(target, settings) {\n return settings ? // Building a settings object\n ajaxExtend(ajaxExtend(target, jQuery.ajaxSettings), settings) : // Extending ajaxSettings\n ajaxExtend(jQuery.ajaxSettings, target);\n },\n ajaxPrefilter: addToPrefiltersOrTransports(prefilters),\n ajaxTransport: addToPrefiltersOrTransports(transports),\n // Main method\n ajax: function ajax(url, options) {\n // If url is an object, simulate pre-1.5 signature\n if (_typeof(url) === \"object\") {\n options = url;\n url = undefined;\n } // Force options to be an object\n\n\n options = options || {};\n\n var transport,\n // URL without anti-cache param\n cacheURL,\n // Response headers\n responseHeadersString,\n responseHeaders,\n // timeout handle\n timeoutTimer,\n // Url cleanup var\n urlAnchor,\n // Request state (becomes false upon send and true upon completion)\n completed,\n // To know if global events are to be dispatched\n fireGlobals,\n // Loop variable\n i,\n // uncached part of the url\n uncached,\n // Create the final options object\n s = jQuery.ajaxSetup({}, options),\n // Callbacks context\n callbackContext = s.context || s,\n // Context for global events is callbackContext if it is a DOM node or jQuery collection\n globalEventContext = s.context && (callbackContext.nodeType || callbackContext.jquery) ? jQuery(callbackContext) : jQuery.event,\n // Deferreds\n deferred = jQuery.Deferred(),\n completeDeferred = jQuery.Callbacks(\"once memory\"),\n // Status-dependent callbacks\n _statusCode = s.statusCode || {},\n // Headers (they are sent all at once)\n requestHeaders = {},\n requestHeadersNames = {},\n // Default abort message\n strAbort = \"canceled\",\n // Fake xhr\n jqXHR = {\n readyState: 0,\n // Builds headers hashtable if needed\n getResponseHeader: function getResponseHeader(key) {\n var match;\n\n if (completed) {\n if (!responseHeaders) {\n responseHeaders = {};\n\n while (match = rheaders.exec(responseHeadersString)) {\n responseHeaders[match[1].toLowerCase() + \" \"] = (responseHeaders[match[1].toLowerCase() + \" \"] || []).concat(match[2]);\n }\n }\n\n match = responseHeaders[key.toLowerCase() + \" \"];\n }\n\n return match == null ? null : match.join(\", \");\n },\n // Raw string\n getAllResponseHeaders: function getAllResponseHeaders() {\n return completed ? responseHeadersString : null;\n },\n // Caches the header\n setRequestHeader: function setRequestHeader(name, value) {\n if (completed == null) {\n name = requestHeadersNames[name.toLowerCase()] = requestHeadersNames[name.toLowerCase()] || name;\n requestHeaders[name] = value;\n }\n\n return this;\n },\n // Overrides response content-type header\n overrideMimeType: function overrideMimeType(type) {\n if (completed == null) {\n s.mimeType = type;\n }\n\n return this;\n },\n // Status-dependent callbacks\n statusCode: function statusCode(map) {\n var code;\n\n if (map) {\n if (completed) {\n // Execute the appropriate callbacks\n jqXHR.always(map[jqXHR.status]);\n } else {\n // Lazy-add the new callbacks in a way that preserves old ones\n for (code in map) {\n _statusCode[code] = [_statusCode[code], map[code]];\n }\n }\n }\n\n return this;\n },\n // Cancel the request\n abort: function abort(statusText) {\n var finalText = statusText || strAbort;\n\n if (transport) {\n transport.abort(finalText);\n }\n\n done(0, finalText);\n return this;\n }\n }; // Attach deferreds\n\n\n deferred.promise(jqXHR); // Add protocol if not provided (prefilters might expect it)\n // Handle falsy url in the settings object (#10093: consistency with old signature)\n // We also use the url parameter if available\n\n s.url = ((url || s.url || location.href) + \"\").replace(rprotocol, location.protocol + \"//\"); // Alias method option to type as per ticket #12004\n\n s.type = options.method || options.type || s.method || s.type; // Extract dataTypes list\n\n s.dataTypes = (s.dataType || \"*\").toLowerCase().match(rnothtmlwhite) || [\"\"]; // A cross-domain request is in order when the origin doesn't match the current origin.\n\n if (s.crossDomain == null) {\n urlAnchor = document.createElement(\"a\"); // Support: IE <=8 - 11, Edge 12 - 15\n // IE throws exception on accessing the href property if url is malformed,\n // e.g. http://example.com:80x/\n\n try {\n urlAnchor.href = s.url; // Support: IE <=8 - 11 only\n // Anchor's host property isn't correctly set when s.url is relative\n\n urlAnchor.href = urlAnchor.href;\n s.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !== urlAnchor.protocol + \"//\" + urlAnchor.host;\n } catch (e) {\n // If there is an error parsing the URL, assume it is crossDomain,\n // it can be rejected by the transport if it is invalid\n s.crossDomain = true;\n }\n } // Convert data if not already a string\n\n\n if (s.data && s.processData && typeof s.data !== \"string\") {\n s.data = jQuery.param(s.data, s.traditional);\n } // Apply prefilters\n\n\n inspectPrefiltersOrTransports(prefilters, s, options, jqXHR); // If request was aborted inside a prefilter, stop there\n\n if (completed) {\n return jqXHR;\n } // We can fire global events as of now if asked to\n // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)\n\n\n fireGlobals = jQuery.event && s.global; // Watch for a new set of requests\n\n if (fireGlobals && jQuery.active++ === 0) {\n jQuery.event.trigger(\"ajaxStart\");\n } // Uppercase the type\n\n\n s.type = s.type.toUpperCase(); // Determine if request has content\n\n s.hasContent = !rnoContent.test(s.type); // Save the URL in case we're toying with the If-Modified-Since\n // and/or If-None-Match header later on\n // Remove hash to simplify url manipulation\n\n cacheURL = s.url.replace(rhash, \"\"); // More options handling for requests with no content\n\n if (!s.hasContent) {\n // Remember the hash so we can put it back\n uncached = s.url.slice(cacheURL.length); // If data is available and should be processed, append data to url\n\n if (s.data && (s.processData || typeof s.data === \"string\")) {\n cacheURL += (rquery.test(cacheURL) ? \"&\" : \"?\") + s.data; // #9682: remove data so that it's not used in an eventual retry\n\n delete s.data;\n } // Add or update anti-cache param if needed\n\n\n if (s.cache === false) {\n cacheURL = cacheURL.replace(rantiCache, \"$1\");\n uncached = (rquery.test(cacheURL) ? \"&\" : \"?\") + \"_=\" + nonce.guid++ + uncached;\n } // Put hash and anti-cache on the URL that will be requested (gh-1732)\n\n\n s.url = cacheURL + uncached; // Change '%20' to '+' if this is encoded form body content (gh-2658)\n } else if (s.data && s.processData && (s.contentType || \"\").indexOf(\"application/x-www-form-urlencoded\") === 0) {\n s.data = s.data.replace(r20, \"+\");\n } // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\n\n if (s.ifModified) {\n if (jQuery.lastModified[cacheURL]) {\n jqXHR.setRequestHeader(\"If-Modified-Since\", jQuery.lastModified[cacheURL]);\n }\n\n if (jQuery.etag[cacheURL]) {\n jqXHR.setRequestHeader(\"If-None-Match\", jQuery.etag[cacheURL]);\n }\n } // Set the correct header, if data is being sent\n\n\n if (s.data && s.hasContent && s.contentType !== false || options.contentType) {\n jqXHR.setRequestHeader(\"Content-Type\", s.contentType);\n } // Set the Accepts header for the server, depending on the dataType\n\n\n jqXHR.setRequestHeader(\"Accept\", s.dataTypes[0] && s.accepts[s.dataTypes[0]] ? s.accepts[s.dataTypes[0]] + (s.dataTypes[0] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\") : s.accepts[\"*\"]); // Check for headers option\n\n for (i in s.headers) {\n jqXHR.setRequestHeader(i, s.headers[i]);\n } // Allow custom headers/mimetypes and early abort\n\n\n if (s.beforeSend && (s.beforeSend.call(callbackContext, jqXHR, s) === false || completed)) {\n // Abort if not done already and return\n return jqXHR.abort();\n } // Aborting is no longer a cancellation\n\n\n strAbort = \"abort\"; // Install callbacks on deferreds\n\n completeDeferred.add(s.complete);\n jqXHR.done(s.success);\n jqXHR.fail(s.error); // Get transport\n\n transport = inspectPrefiltersOrTransports(transports, s, options, jqXHR); // If no transport, we auto-abort\n\n if (!transport) {\n done(-1, \"No Transport\");\n } else {\n jqXHR.readyState = 1; // Send global event\n\n if (fireGlobals) {\n globalEventContext.trigger(\"ajaxSend\", [jqXHR, s]);\n } // If request was aborted inside ajaxSend, stop there\n\n\n if (completed) {\n return jqXHR;\n } // Timeout\n\n\n if (s.async && s.timeout > 0) {\n timeoutTimer = window.setTimeout(function () {\n jqXHR.abort(\"timeout\");\n }, s.timeout);\n }\n\n try {\n completed = false;\n transport.send(requestHeaders, done);\n } catch (e) {\n // Rethrow post-completion exceptions\n if (completed) {\n throw e;\n } // Propagate others as results\n\n\n done(-1, e);\n }\n } // Callback for when everything is done\n\n\n function done(status, nativeStatusText, responses, headers) {\n var isSuccess,\n success,\n error,\n response,\n modified,\n statusText = nativeStatusText; // Ignore repeat invocations\n\n if (completed) {\n return;\n }\n\n completed = true; // Clear timeout if it exists\n\n if (timeoutTimer) {\n window.clearTimeout(timeoutTimer);\n } // Dereference transport for early garbage collection\n // (no matter how long the jqXHR object will be used)\n\n\n transport = undefined; // Cache response headers\n\n responseHeadersString = headers || \"\"; // Set readyState\n\n jqXHR.readyState = status > 0 ? 4 : 0; // Determine if successful\n\n isSuccess = status >= 200 && status < 300 || status === 304; // Get response data\n\n if (responses) {\n response = ajaxHandleResponses(s, jqXHR, responses);\n } // Use a noop converter for missing script but not if jsonp\n\n\n if (!isSuccess && jQuery.inArray(\"script\", s.dataTypes) > -1 && jQuery.inArray(\"json\", s.dataTypes) < 0) {\n s.converters[\"text script\"] = function () {};\n } // Convert no matter what (that way responseXXX fields are always set)\n\n\n response = ajaxConvert(s, response, jqXHR, isSuccess); // If successful, handle type chaining\n\n if (isSuccess) {\n // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n if (s.ifModified) {\n modified = jqXHR.getResponseHeader(\"Last-Modified\");\n\n if (modified) {\n jQuery.lastModified[cacheURL] = modified;\n }\n\n modified = jqXHR.getResponseHeader(\"etag\");\n\n if (modified) {\n jQuery.etag[cacheURL] = modified;\n }\n } // if no content\n\n\n if (status === 204 || s.type === \"HEAD\") {\n statusText = \"nocontent\"; // if not modified\n } else if (status === 304) {\n statusText = \"notmodified\"; // If we have data, let's convert it\n } else {\n statusText = response.state;\n success = response.data;\n error = response.error;\n isSuccess = !error;\n }\n } else {\n // Extract error from statusText and normalize for non-aborts\n error = statusText;\n\n if (status || !statusText) {\n statusText = \"error\";\n\n if (status < 0) {\n status = 0;\n }\n }\n } // Set data for the fake xhr object\n\n\n jqXHR.status = status;\n jqXHR.statusText = (nativeStatusText || statusText) + \"\"; // Success/Error\n\n if (isSuccess) {\n deferred.resolveWith(callbackContext, [success, statusText, jqXHR]);\n } else {\n deferred.rejectWith(callbackContext, [jqXHR, statusText, error]);\n } // Status-dependent callbacks\n\n\n jqXHR.statusCode(_statusCode);\n _statusCode = undefined;\n\n if (fireGlobals) {\n globalEventContext.trigger(isSuccess ? \"ajaxSuccess\" : \"ajaxError\", [jqXHR, s, isSuccess ? success : error]);\n } // Complete\n\n\n completeDeferred.fireWith(callbackContext, [jqXHR, statusText]);\n\n if (fireGlobals) {\n globalEventContext.trigger(\"ajaxComplete\", [jqXHR, s]); // Handle the global AJAX counter\n\n if (! --jQuery.active) {\n jQuery.event.trigger(\"ajaxStop\");\n }\n }\n }\n\n return jqXHR;\n },\n getJSON: function getJSON(url, data, callback) {\n return jQuery.get(url, data, callback, \"json\");\n },\n getScript: function getScript(url, callback) {\n return jQuery.get(url, undefined, callback, \"script\");\n }\n });\n jQuery.each([\"get\", \"post\"], function (_i, method) {\n jQuery[method] = function (url, data, callback, type) {\n // Shift arguments if data argument was omitted\n if (isFunction(data)) {\n type = type || callback;\n callback = data;\n data = undefined;\n } // The url can be an options object (which then must have .url)\n\n\n return jQuery.ajax(jQuery.extend({\n url: url,\n type: method,\n dataType: type,\n data: data,\n success: callback\n }, jQuery.isPlainObject(url) && url));\n };\n });\n jQuery.ajaxPrefilter(function (s) {\n var i;\n\n for (i in s.headers) {\n if (i.toLowerCase() === \"content-type\") {\n s.contentType = s.headers[i] || \"\";\n }\n }\n });\n return jQuery;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\ndefine([\"../var/class2type\", \"../var/toString\"], function (class2type, toString) {\n \"use strict\";\n\n function toType(obj) {\n if (obj == null) {\n return obj + \"\";\n } // Support: Android <=2.3 only (functionish RegExp)\n\n\n return _typeof(obj) === \"object\" || typeof obj === \"function\" ? class2type[toString.call(obj)] || \"object\" : _typeof(obj);\n }\n\n return toType;\n});","define([\"./core\", \"./var/getProto\", \"./var/indexOf\", \"./traversing/var/dir\", \"./traversing/var/siblings\", \"./traversing/var/rneedsContext\", \"./core/nodeName\", \"./core/init\", \"./traversing/findFilter\", \"./selector\"], function (jQuery, getProto, indexOf, dir, _siblings, rneedsContext, nodeName) {\n \"use strict\";\n\n var rparentsprev = /^(?:parents|prev(?:Until|All))/,\n // Methods guaranteed to produce a unique set when starting from a unique set\n guaranteedUnique = {\n children: true,\n contents: true,\n next: true,\n prev: true\n };\n jQuery.fn.extend({\n has: function has(target) {\n var targets = jQuery(target, this),\n l = targets.length;\n return this.filter(function () {\n var i = 0;\n\n for (; i < l; i++) {\n if (jQuery.contains(this, targets[i])) {\n return true;\n }\n }\n });\n },\n closest: function closest(selectors, context) {\n var cur,\n i = 0,\n l = this.length,\n matched = [],\n targets = typeof selectors !== \"string\" && jQuery(selectors); // Positional selectors never match, since there's no _selection_ context\n\n if (!rneedsContext.test(selectors)) {\n for (; i < l; i++) {\n for (cur = this[i]; cur && cur !== context; cur = cur.parentNode) {\n // Always skip document fragments\n if (cur.nodeType < 11 && (targets ? targets.index(cur) > -1 : // Don't pass non-elements to Sizzle\n cur.nodeType === 1 && jQuery.find.matchesSelector(cur, selectors))) {\n matched.push(cur);\n break;\n }\n }\n }\n }\n\n return this.pushStack(matched.length > 1 ? jQuery.uniqueSort(matched) : matched);\n },\n // Determine the position of an element within the set\n index: function index(elem) {\n // No argument, return index in parent\n if (!elem) {\n return this[0] && this[0].parentNode ? this.first().prevAll().length : -1;\n } // Index in selector\n\n\n if (typeof elem === \"string\") {\n return indexOf.call(jQuery(elem), this[0]);\n } // Locate the position of the desired element\n\n\n return indexOf.call(this, // If it receives a jQuery object, the first element is used\n elem.jquery ? elem[0] : elem);\n },\n add: function add(selector, context) {\n return this.pushStack(jQuery.uniqueSort(jQuery.merge(this.get(), jQuery(selector, context))));\n },\n addBack: function addBack(selector) {\n return this.add(selector == null ? this.prevObject : this.prevObject.filter(selector));\n }\n });\n\n function sibling(cur, dir) {\n while ((cur = cur[dir]) && cur.nodeType !== 1) {}\n\n return cur;\n }\n\n jQuery.each({\n parent: function parent(elem) {\n var parent = elem.parentNode;\n return parent && parent.nodeType !== 11 ? parent : null;\n },\n parents: function parents(elem) {\n return dir(elem, \"parentNode\");\n },\n parentsUntil: function parentsUntil(elem, _i, until) {\n return dir(elem, \"parentNode\", until);\n },\n next: function next(elem) {\n return sibling(elem, \"nextSibling\");\n },\n prev: function prev(elem) {\n return sibling(elem, \"previousSibling\");\n },\n nextAll: function nextAll(elem) {\n return dir(elem, \"nextSibling\");\n },\n prevAll: function prevAll(elem) {\n return dir(elem, \"previousSibling\");\n },\n nextUntil: function nextUntil(elem, _i, until) {\n return dir(elem, \"nextSibling\", until);\n },\n prevUntil: function prevUntil(elem, _i, until) {\n return dir(elem, \"previousSibling\", until);\n },\n siblings: function siblings(elem) {\n return _siblings((elem.parentNode || {}).firstChild, elem);\n },\n children: function children(elem) {\n return _siblings(elem.firstChild);\n },\n contents: function contents(elem) {\n if (elem.contentDocument != null && // Support: IE 11+\n // <object> elements with no `data` attribute has an object\n // `contentDocument` with a `null` prototype.\n getProto(elem.contentDocument)) {\n return elem.contentDocument;\n } // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n // Treat the template element as a regular one in browsers that\n // don't support it.\n\n\n if (nodeName(elem, \"template\")) {\n elem = elem.content || elem;\n }\n\n return jQuery.merge([], elem.childNodes);\n }\n }, function (name, fn) {\n jQuery.fn[name] = function (until, selector) {\n var matched = jQuery.map(this, fn, until);\n\n if (name.slice(-5) !== \"Until\") {\n selector = until;\n }\n\n if (selector && typeof selector === \"string\") {\n matched = jQuery.filter(selector, matched);\n }\n\n if (this.length > 1) {\n // Remove duplicates\n if (!guaranteedUnique[name]) {\n jQuery.uniqueSort(matched);\n } // Reverse order for parents* and prev-derivatives\n\n\n if (rparentsprev.test(name)) {\n matched.reverse();\n }\n }\n\n return this.pushStack(matched);\n };\n });\n return jQuery;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\ndefine([\"./core\", \"./var/isFunction\", \"./var/slice\", \"./callbacks\"], function (jQuery, isFunction, slice) {\n \"use strict\";\n\n function Identity(v) {\n return v;\n }\n\n function Thrower(ex) {\n throw ex;\n }\n\n function adoptValue(value, resolve, reject, noValue) {\n var method;\n\n try {\n // Check for promise aspect first to privilege synchronous behavior\n if (value && isFunction(method = value.promise)) {\n method.call(value).done(resolve).fail(reject); // Other thenables\n } else if (value && isFunction(method = value.then)) {\n method.call(value, resolve, reject); // Other non-thenables\n } else {\n // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n // * false: [ value ].slice( 0 ) => resolve( value )\n // * true: [ value ].slice( 1 ) => resolve()\n resolve.apply(undefined, [value].slice(noValue));\n } // For Promises/A+, convert exceptions into rejections\n // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n // Deferred#then to conditionally suppress rejection.\n\n } catch (value) {\n // Support: Android 4.0 only\n // Strict mode functions invoked without .call/.apply get global-object context\n reject.apply(undefined, [value]);\n }\n }\n\n jQuery.extend({\n Deferred: function Deferred(func) {\n var tuples = [// action, add listener, callbacks,\n // ... .then handlers, argument index, [final state]\n [\"notify\", \"progress\", jQuery.Callbacks(\"memory\"), jQuery.Callbacks(\"memory\"), 2], [\"resolve\", \"done\", jQuery.Callbacks(\"once memory\"), jQuery.Callbacks(\"once memory\"), 0, \"resolved\"], [\"reject\", \"fail\", jQuery.Callbacks(\"once memory\"), jQuery.Callbacks(\"once memory\"), 1, \"rejected\"]],\n _state = \"pending\",\n _promise = {\n state: function state() {\n return _state;\n },\n always: function always() {\n deferred.done(arguments).fail(arguments);\n return this;\n },\n \"catch\": function _catch(fn) {\n return _promise.then(null, fn);\n },\n // Keep pipe for back-compat\n pipe: function pipe()\n /* fnDone, fnFail, fnProgress */\n {\n var fns = arguments;\n return jQuery.Deferred(function (newDefer) {\n jQuery.each(tuples, function (_i, tuple) {\n // Map tuples (progress, done, fail) to arguments (done, fail, progress)\n var fn = isFunction(fns[tuple[4]]) && fns[tuple[4]]; // deferred.progress(function() { bind to newDefer or newDefer.notify })\n // deferred.done(function() { bind to newDefer or newDefer.resolve })\n // deferred.fail(function() { bind to newDefer or newDefer.reject })\n\n deferred[tuple[1]](function () {\n var returned = fn && fn.apply(this, arguments);\n\n if (returned && isFunction(returned.promise)) {\n returned.promise().progress(newDefer.notify).done(newDefer.resolve).fail(newDefer.reject);\n } else {\n newDefer[tuple[0] + \"With\"](this, fn ? [returned] : arguments);\n }\n });\n });\n fns = null;\n }).promise();\n },\n then: function then(onFulfilled, onRejected, onProgress) {\n var maxDepth = 0;\n\n function resolve(depth, deferred, handler, special) {\n return function () {\n var that = this,\n args = arguments,\n mightThrow = function mightThrow() {\n var returned, then; // Support: Promises/A+ section 2.3.3.3.3\n // https://promisesaplus.com/#point-59\n // Ignore double-resolution attempts\n\n if (depth < maxDepth) {\n return;\n }\n\n returned = handler.apply(that, args); // Support: Promises/A+ section 2.3.1\n // https://promisesaplus.com/#point-48\n\n if (returned === deferred.promise()) {\n throw new TypeError(\"Thenable self-resolution\");\n } // Support: Promises/A+ sections 2.3.3.1, 3.5\n // https://promisesaplus.com/#point-54\n // https://promisesaplus.com/#point-75\n // Retrieve `then` only once\n\n\n then = returned && ( // Support: Promises/A+ section 2.3.4\n // https://promisesaplus.com/#point-64\n // Only check objects and functions for thenability\n _typeof(returned) === \"object\" || typeof returned === \"function\") && returned.then; // Handle a returned thenable\n\n if (isFunction(then)) {\n // Special processors (notify) just wait for resolution\n if (special) {\n then.call(returned, resolve(maxDepth, deferred, Identity, special), resolve(maxDepth, deferred, Thrower, special)); // Normal processors (resolve) also hook into progress\n } else {\n // ...and disregard older resolution values\n maxDepth++;\n then.call(returned, resolve(maxDepth, deferred, Identity, special), resolve(maxDepth, deferred, Thrower, special), resolve(maxDepth, deferred, Identity, deferred.notifyWith));\n } // Handle all other returned values\n\n } else {\n // Only substitute handlers pass on context\n // and multiple values (non-spec behavior)\n if (handler !== Identity) {\n that = undefined;\n args = [returned];\n } // Process the value(s)\n // Default process is resolve\n\n\n (special || deferred.resolveWith)(that, args);\n }\n },\n // Only normal processors (resolve) catch and reject exceptions\n process = special ? mightThrow : function () {\n try {\n mightThrow();\n } catch (e) {\n if (jQuery.Deferred.exceptionHook) {\n jQuery.Deferred.exceptionHook(e, process.stackTrace);\n } // Support: Promises/A+ section 2.3.3.3.4.1\n // https://promisesaplus.com/#point-61\n // Ignore post-resolution exceptions\n\n\n if (depth + 1 >= maxDepth) {\n // Only substitute handlers pass on context\n // and multiple values (non-spec behavior)\n if (handler !== Thrower) {\n that = undefined;\n args = [e];\n }\n\n deferred.rejectWith(that, args);\n }\n }\n }; // Support: Promises/A+ section 2.3.3.3.1\n // https://promisesaplus.com/#point-57\n // Re-resolve promises immediately to dodge false rejection from\n // subsequent errors\n\n\n if (depth) {\n process();\n } else {\n // Call an optional hook to record the stack, in case of exception\n // since it's otherwise lost when execution goes async\n if (jQuery.Deferred.getStackHook) {\n process.stackTrace = jQuery.Deferred.getStackHook();\n }\n\n window.setTimeout(process);\n }\n };\n }\n\n return jQuery.Deferred(function (newDefer) {\n // progress_handlers.add( ... )\n tuples[0][3].add(resolve(0, newDefer, isFunction(onProgress) ? onProgress : Identity, newDefer.notifyWith)); // fulfilled_handlers.add( ... )\n\n tuples[1][3].add(resolve(0, newDefer, isFunction(onFulfilled) ? onFulfilled : Identity)); // rejected_handlers.add( ... )\n\n tuples[2][3].add(resolve(0, newDefer, isFunction(onRejected) ? onRejected : Thrower));\n }).promise();\n },\n // Get a promise for this deferred\n // If obj is provided, the promise aspect is added to the object\n promise: function promise(obj) {\n return obj != null ? jQuery.extend(obj, _promise) : _promise;\n }\n },\n deferred = {}; // Add list-specific methods\n\n jQuery.each(tuples, function (i, tuple) {\n var list = tuple[2],\n stateString = tuple[5]; // promise.progress = list.add\n // promise.done = list.add\n // promise.fail = list.add\n\n _promise[tuple[1]] = list.add; // Handle state\n\n if (stateString) {\n list.add(function () {\n // state = \"resolved\" (i.e., fulfilled)\n // state = \"rejected\"\n _state = stateString;\n }, // rejected_callbacks.disable\n // fulfilled_callbacks.disable\n tuples[3 - i][2].disable, // rejected_handlers.disable\n // fulfilled_handlers.disable\n tuples[3 - i][3].disable, // progress_callbacks.lock\n tuples[0][2].lock, // progress_handlers.lock\n tuples[0][3].lock);\n } // progress_handlers.fire\n // fulfilled_handlers.fire\n // rejected_handlers.fire\n\n\n list.add(tuple[3].fire); // deferred.notify = function() { deferred.notifyWith(...) }\n // deferred.resolve = function() { deferred.resolveWith(...) }\n // deferred.reject = function() { deferred.rejectWith(...) }\n\n deferred[tuple[0]] = function () {\n deferred[tuple[0] + \"With\"](this === deferred ? undefined : this, arguments);\n return this;\n }; // deferred.notifyWith = list.fireWith\n // deferred.resolveWith = list.fireWith\n // deferred.rejectWith = list.fireWith\n\n\n deferred[tuple[0] + \"With\"] = list.fireWith;\n }); // Make the deferred a promise\n\n _promise.promise(deferred); // Call given func if any\n\n\n if (func) {\n func.call(deferred, deferred);\n } // All done!\n\n\n return deferred;\n },\n // Deferred helper\n when: function when(singleValue) {\n var // count of uncompleted subordinates\n remaining = arguments.length,\n // count of unprocessed arguments\n i = remaining,\n // subordinate fulfillment data\n resolveContexts = Array(i),\n resolveValues = slice.call(arguments),\n // the primary Deferred\n primary = jQuery.Deferred(),\n // subordinate callback factory\n updateFunc = function updateFunc(i) {\n return function (value) {\n resolveContexts[i] = this;\n resolveValues[i] = arguments.length > 1 ? slice.call(arguments) : value;\n\n if (! --remaining) {\n primary.resolveWith(resolveContexts, resolveValues);\n }\n };\n }; // Single- and empty arguments are adopted like Promise.resolve\n\n\n if (remaining <= 1) {\n adoptValue(singleValue, primary.done(updateFunc(i)).resolve, primary.reject, !remaining); // Use .then() to unwrap secondary thenables (cf. gh-3000)\n\n if (primary.state() === \"pending\" || isFunction(resolveValues[i] && resolveValues[i].then)) {\n return primary.then();\n }\n } // Multiple arguments are aggregated like Promise.all array elements\n\n\n while (i--) {\n adoptValue(resolveValues[i], updateFunc(i), primary.reject);\n }\n\n return primary.promise();\n }\n });\n return jQuery;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\ndefine([\"./core\", \"./var/document\", \"./var/documentElement\", \"./var/isFunction\", \"./var/rnothtmlwhite\", \"./var/rcheckableType\", \"./var/slice\", \"./data/var/acceptData\", \"./data/var/dataPriv\", \"./core/nodeName\", \"./core/init\", \"./selector\"], function (jQuery, document, documentElement, isFunction, rnothtmlwhite, rcheckableType, slice, acceptData, dataPriv, nodeName) {\n \"use strict\";\n\n var rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\n function returnTrue() {\n return true;\n }\n\n function returnFalse() {\n return false;\n } // Support: IE <=9 - 11+\n // focus() and blur() are asynchronous, except when they are no-op.\n // So expect focus to be synchronous when the element is already active,\n // and blur to be synchronous when the element is not already active.\n // (focus and blur are always synchronous in other supported browsers,\n // this just defines when we can count on it).\n\n\n function expectSync(elem, type) {\n return elem === safeActiveElement() === (type === \"focus\");\n } // Support: IE <=9 only\n // Accessing document.activeElement can throw unexpectedly\n // https://bugs.jquery.com/ticket/13393\n\n\n function safeActiveElement() {\n try {\n return document.activeElement;\n } catch (err) {}\n }\n\n function _on(elem, types, selector, data, fn, one) {\n var origFn, type; // Types can be a map of types/handlers\n\n if (_typeof(types) === \"object\") {\n // ( types-Object, selector, data )\n if (typeof selector !== \"string\") {\n // ( types-Object, data )\n data = data || selector;\n selector = undefined;\n }\n\n for (type in types) {\n _on(elem, type, selector, data, types[type], one);\n }\n\n return elem;\n }\n\n if (data == null && fn == null) {\n // ( types, fn )\n fn = selector;\n data = selector = undefined;\n } else if (fn == null) {\n if (typeof selector === \"string\") {\n // ( types, selector, fn )\n fn = data;\n data = undefined;\n } else {\n // ( types, data, fn )\n fn = data;\n data = selector;\n selector = undefined;\n }\n }\n\n if (fn === false) {\n fn = returnFalse;\n } else if (!fn) {\n return elem;\n }\n\n if (one === 1) {\n origFn = fn;\n\n fn = function fn(event) {\n // Can use an empty set, since event contains the info\n jQuery().off(event);\n return origFn.apply(this, arguments);\n }; // Use same guid so caller can remove using origFn\n\n\n fn.guid = origFn.guid || (origFn.guid = jQuery.guid++);\n }\n\n return elem.each(function () {\n jQuery.event.add(this, types, fn, data, selector);\n });\n }\n /*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\n\n\n jQuery.event = {\n global: {},\n add: function add(elem, types, handler, data, selector) {\n var handleObjIn,\n eventHandle,\n tmp,\n events,\n t,\n handleObj,\n special,\n handlers,\n type,\n namespaces,\n origType,\n elemData = dataPriv.get(elem); // Only attach events to objects that accept data\n\n if (!acceptData(elem)) {\n return;\n } // Caller can pass in an object of custom data in lieu of the handler\n\n\n if (handler.handler) {\n handleObjIn = handler;\n handler = handleObjIn.handler;\n selector = handleObjIn.selector;\n } // Ensure that invalid selectors throw exceptions at attach time\n // Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\n\n if (selector) {\n jQuery.find.matchesSelector(documentElement, selector);\n } // Make sure that the handler has a unique ID, used to find/remove it later\n\n\n if (!handler.guid) {\n handler.guid = jQuery.guid++;\n } // Init the element's event structure and main handler, if this is the first\n\n\n if (!(events = elemData.events)) {\n events = elemData.events = Object.create(null);\n }\n\n if (!(eventHandle = elemData.handle)) {\n eventHandle = elemData.handle = function (e) {\n // Discard the second event of a jQuery.event.trigger() and\n // when an event is called after a page has unloaded\n return typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ? jQuery.event.dispatch.apply(elem, arguments) : undefined;\n };\n } // Handle multiple events separated by a space\n\n\n types = (types || \"\").match(rnothtmlwhite) || [\"\"];\n t = types.length;\n\n while (t--) {\n tmp = rtypenamespace.exec(types[t]) || [];\n type = origType = tmp[1];\n namespaces = (tmp[2] || \"\").split(\".\").sort(); // There *must* be a type, no attaching namespace-only handlers\n\n if (!type) {\n continue;\n } // If event changes its type, use the special event handlers for the changed type\n\n\n special = jQuery.event.special[type] || {}; // If selector defined, determine special event api type, otherwise given type\n\n type = (selector ? special.delegateType : special.bindType) || type; // Update special based on newly reset type\n\n special = jQuery.event.special[type] || {}; // handleObj is passed to all event handlers\n\n handleObj = jQuery.extend({\n type: type,\n origType: origType,\n data: data,\n handler: handler,\n guid: handler.guid,\n selector: selector,\n needsContext: selector && jQuery.expr.match.needsContext.test(selector),\n namespace: namespaces.join(\".\")\n }, handleObjIn); // Init the event handler queue if we're the first\n\n if (!(handlers = events[type])) {\n handlers = events[type] = [];\n handlers.delegateCount = 0; // Only use addEventListener if the special events handler returns false\n\n if (!special.setup || special.setup.call(elem, data, namespaces, eventHandle) === false) {\n if (elem.addEventListener) {\n elem.addEventListener(type, eventHandle);\n }\n }\n }\n\n if (special.add) {\n special.add.call(elem, handleObj);\n\n if (!handleObj.handler.guid) {\n handleObj.handler.guid = handler.guid;\n }\n } // Add to the element's handler list, delegates in front\n\n\n if (selector) {\n handlers.splice(handlers.delegateCount++, 0, handleObj);\n } else {\n handlers.push(handleObj);\n } // Keep track of which events have ever been used, for event optimization\n\n\n jQuery.event.global[type] = true;\n }\n },\n // Detach an event or set of events from an element\n remove: function remove(elem, types, handler, selector, mappedTypes) {\n var j,\n origCount,\n tmp,\n events,\n t,\n handleObj,\n special,\n handlers,\n type,\n namespaces,\n origType,\n elemData = dataPriv.hasData(elem) && dataPriv.get(elem);\n\n if (!elemData || !(events = elemData.events)) {\n return;\n } // Once for each type.namespace in types; type may be omitted\n\n\n types = (types || \"\").match(rnothtmlwhite) || [\"\"];\n t = types.length;\n\n while (t--) {\n tmp = rtypenamespace.exec(types[t]) || [];\n type = origType = tmp[1];\n namespaces = (tmp[2] || \"\").split(\".\").sort(); // Unbind all events (on this namespace, if provided) for the element\n\n if (!type) {\n for (type in events) {\n jQuery.event.remove(elem, type + types[t], handler, selector, true);\n }\n\n continue;\n }\n\n special = jQuery.event.special[type] || {};\n type = (selector ? special.delegateType : special.bindType) || type;\n handlers = events[type] || [];\n tmp = tmp[2] && new RegExp(\"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\"); // Remove matching events\n\n origCount = j = handlers.length;\n\n while (j--) {\n handleObj = handlers[j];\n\n if ((mappedTypes || origType === handleObj.origType) && (!handler || handler.guid === handleObj.guid) && (!tmp || tmp.test(handleObj.namespace)) && (!selector || selector === handleObj.selector || selector === \"**\" && handleObj.selector)) {\n handlers.splice(j, 1);\n\n if (handleObj.selector) {\n handlers.delegateCount--;\n }\n\n if (special.remove) {\n special.remove.call(elem, handleObj);\n }\n }\n } // Remove generic event handler if we removed something and no more handlers exist\n // (avoids potential for endless recursion during removal of special event handlers)\n\n\n if (origCount && !handlers.length) {\n if (!special.teardown || special.teardown.call(elem, namespaces, elemData.handle) === false) {\n jQuery.removeEvent(elem, type, elemData.handle);\n }\n\n delete events[type];\n }\n } // Remove data and the expando if it's no longer used\n\n\n if (jQuery.isEmptyObject(events)) {\n dataPriv.remove(elem, \"handle events\");\n }\n },\n dispatch: function dispatch(nativeEvent) {\n var i,\n j,\n ret,\n matched,\n handleObj,\n handlerQueue,\n args = new Array(arguments.length),\n // Make a writable jQuery.Event from the native event object\n event = jQuery.event.fix(nativeEvent),\n handlers = (dataPriv.get(this, \"events\") || Object.create(null))[event.type] || [],\n special = jQuery.event.special[event.type] || {}; // Use the fix-ed jQuery.Event rather than the (read-only) native event\n\n args[0] = event;\n\n for (i = 1; i < arguments.length; i++) {\n args[i] = arguments[i];\n }\n\n event.delegateTarget = this; // Call the preDispatch hook for the mapped type, and let it bail if desired\n\n if (special.preDispatch && special.preDispatch.call(this, event) === false) {\n return;\n } // Determine handlers\n\n\n handlerQueue = jQuery.event.handlers.call(this, event, handlers); // Run delegates first; they may want to stop propagation beneath us\n\n i = 0;\n\n while ((matched = handlerQueue[i++]) && !event.isPropagationStopped()) {\n event.currentTarget = matched.elem;\n j = 0;\n\n while ((handleObj = matched.handlers[j++]) && !event.isImmediatePropagationStopped()) {\n // If the event is namespaced, then each handler is only invoked if it is\n // specially universal or its namespaces are a superset of the event's.\n if (!event.rnamespace || handleObj.namespace === false || event.rnamespace.test(handleObj.namespace)) {\n event.handleObj = handleObj;\n event.data = handleObj.data;\n ret = ((jQuery.event.special[handleObj.origType] || {}).handle || handleObj.handler).apply(matched.elem, args);\n\n if (ret !== undefined) {\n if ((event.result = ret) === false) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n }\n }\n } // Call the postDispatch hook for the mapped type\n\n\n if (special.postDispatch) {\n special.postDispatch.call(this, event);\n }\n\n return event.result;\n },\n handlers: function handlers(event, _handlers) {\n var i,\n handleObj,\n sel,\n matchedHandlers,\n matchedSelectors,\n handlerQueue = [],\n delegateCount = _handlers.delegateCount,\n cur = event.target; // Find delegate handlers\n\n if (delegateCount && // Support: IE <=9\n // Black-hole SVG <use> instance trees (trac-13180)\n cur.nodeType && // Support: Firefox <=42\n // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n // Support: IE 11 only\n // ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n !(event.type === \"click\" && event.button >= 1)) {\n for (; cur !== this; cur = cur.parentNode || this) {\n // Don't check non-elements (#13208)\n // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n if (cur.nodeType === 1 && !(event.type === \"click\" && cur.disabled === true)) {\n matchedHandlers = [];\n matchedSelectors = {};\n\n for (i = 0; i < delegateCount; i++) {\n handleObj = _handlers[i]; // Don't conflict with Object.prototype properties (#13203)\n\n sel = handleObj.selector + \" \";\n\n if (matchedSelectors[sel] === undefined) {\n matchedSelectors[sel] = handleObj.needsContext ? jQuery(sel, this).index(cur) > -1 : jQuery.find(sel, this, null, [cur]).length;\n }\n\n if (matchedSelectors[sel]) {\n matchedHandlers.push(handleObj);\n }\n }\n\n if (matchedHandlers.length) {\n handlerQueue.push({\n elem: cur,\n handlers: matchedHandlers\n });\n }\n }\n }\n } // Add the remaining (directly-bound) handlers\n\n\n cur = this;\n\n if (delegateCount < _handlers.length) {\n handlerQueue.push({\n elem: cur,\n handlers: _handlers.slice(delegateCount)\n });\n }\n\n return handlerQueue;\n },\n addProp: function addProp(name, hook) {\n Object.defineProperty(jQuery.Event.prototype, name, {\n enumerable: true,\n configurable: true,\n get: isFunction(hook) ? function () {\n if (this.originalEvent) {\n return hook(this.originalEvent);\n }\n } : function () {\n if (this.originalEvent) {\n return this.originalEvent[name];\n }\n },\n set: function set(value) {\n Object.defineProperty(this, name, {\n enumerable: true,\n configurable: true,\n writable: true,\n value: value\n });\n }\n });\n },\n fix: function fix(originalEvent) {\n return originalEvent[jQuery.expando] ? originalEvent : new jQuery.Event(originalEvent);\n },\n special: {\n load: {\n // Prevent triggered image.load events from bubbling to window.load\n noBubble: true\n },\n click: {\n // Utilize native event to ensure correct state for checkable inputs\n setup: function setup(data) {\n // For mutual compressibility with _default, replace `this` access with a local var.\n // `|| data` is dead code meant only to preserve the variable through minification.\n var el = this || data; // Claim the first handler\n\n if (rcheckableType.test(el.type) && el.click && nodeName(el, \"input\")) {\n // dataPriv.set( el, \"click\", ... )\n leverageNative(el, \"click\", returnTrue);\n } // Return false to allow normal processing in the caller\n\n\n return false;\n },\n trigger: function trigger(data) {\n // For mutual compressibility with _default, replace `this` access with a local var.\n // `|| data` is dead code meant only to preserve the variable through minification.\n var el = this || data; // Force setup before triggering a click\n\n if (rcheckableType.test(el.type) && el.click && nodeName(el, \"input\")) {\n leverageNative(el, \"click\");\n } // Return non-false to allow normal event-path propagation\n\n\n return true;\n },\n // For cross-browser consistency, suppress native .click() on links\n // Also prevent it if we're currently inside a leveraged native-event stack\n _default: function _default(event) {\n var target = event.target;\n return rcheckableType.test(target.type) && target.click && nodeName(target, \"input\") && dataPriv.get(target, \"click\") || nodeName(target, \"a\");\n }\n },\n beforeunload: {\n postDispatch: function postDispatch(event) {\n // Support: Firefox 20+\n // Firefox doesn't alert if the returnValue field is not set.\n if (event.result !== undefined && event.originalEvent) {\n event.originalEvent.returnValue = event.result;\n }\n }\n }\n }\n }; // Ensure the presence of an event listener that handles manually-triggered\n // synthetic events by interrupting progress until reinvoked in response to\n // *native* events that it fires directly, ensuring that state changes have\n // already occurred before other listeners are invoked.\n\n function leverageNative(el, type, expectSync) {\n // Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add\n if (!expectSync) {\n if (dataPriv.get(el, type) === undefined) {\n jQuery.event.add(el, type, returnTrue);\n }\n\n return;\n } // Register the controller as a special universal handler for all event namespaces\n\n\n dataPriv.set(el, type, false);\n jQuery.event.add(el, type, {\n namespace: false,\n handler: function handler(event) {\n var notAsync,\n result,\n saved = dataPriv.get(this, type);\n\n if (event.isTrigger & 1 && this[type]) {\n // Interrupt processing of the outer synthetic .trigger()ed event\n // Saved data should be false in such cases, but might be a leftover capture object\n // from an async native handler (gh-4350)\n if (!saved.length) {\n // Store arguments for use when handling the inner native event\n // There will always be at least one argument (an event object), so this array\n // will not be confused with a leftover capture object.\n saved = slice.call(arguments);\n dataPriv.set(this, type, saved); // Trigger the native event and capture its result\n // Support: IE <=9 - 11+\n // focus() and blur() are asynchronous\n\n notAsync = expectSync(this, type);\n this[type]();\n result = dataPriv.get(this, type);\n\n if (saved !== result || notAsync) {\n dataPriv.set(this, type, false);\n } else {\n result = {};\n }\n\n if (saved !== result) {\n // Cancel the outer synthetic event\n event.stopImmediatePropagation();\n event.preventDefault(); // Support: Chrome 86+\n // In Chrome, if an element having a focusout handler is blurred by\n // clicking outside of it, it invokes the handler synchronously. If\n // that handler calls `.remove()` on the element, the data is cleared,\n // leaving `result` undefined. We need to guard against this.\n\n return result && result.value;\n } // If this is an inner synthetic event for an event with a bubbling surrogate\n // (focus or blur), assume that the surrogate already propagated from triggering the\n // native event and prevent that from happening again here.\n // This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n // bubbling surrogate propagates *after* the non-bubbling base), but that seems\n // less bad than duplication.\n\n } else if ((jQuery.event.special[type] || {}).delegateType) {\n event.stopPropagation();\n } // If this is a native event triggered above, everything is now in order\n // Fire an inner synthetic event with the original arguments\n\n } else if (saved.length) {\n // ...and capture the result\n dataPriv.set(this, type, {\n value: jQuery.event.trigger( // Support: IE <=9 - 11+\n // Extend with the prototype to reset the above stopImmediatePropagation()\n jQuery.extend(saved[0], jQuery.Event.prototype), saved.slice(1), this)\n }); // Abort handling of the native event\n\n event.stopImmediatePropagation();\n }\n }\n });\n }\n\n jQuery.removeEvent = function (elem, type, handle) {\n // This \"if\" is needed for plain objects\n if (elem.removeEventListener) {\n elem.removeEventListener(type, handle);\n }\n };\n\n jQuery.Event = function (src, props) {\n // Allow instantiation without the 'new' keyword\n if (!(this instanceof jQuery.Event)) {\n return new jQuery.Event(src, props);\n } // Event object\n\n\n if (src && src.type) {\n this.originalEvent = src;\n this.type = src.type; // Events bubbling up the document may have been marked as prevented\n // by a handler lower down the tree; reflect the correct value.\n\n this.isDefaultPrevented = src.defaultPrevented || src.defaultPrevented === undefined && // Support: Android <=2.3 only\n src.returnValue === false ? returnTrue : returnFalse; // Create target properties\n // Support: Safari <=6 - 7 only\n // Target should not be a text node (#504, #13143)\n\n this.target = src.target && src.target.nodeType === 3 ? src.target.parentNode : src.target;\n this.currentTarget = src.currentTarget;\n this.relatedTarget = src.relatedTarget; // Event type\n } else {\n this.type = src;\n } // Put explicitly provided properties onto the event object\n\n\n if (props) {\n jQuery.extend(this, props);\n } // Create a timestamp if incoming event doesn't have one\n\n\n this.timeStamp = src && src.timeStamp || Date.now(); // Mark it as fixed\n\n this[jQuery.expando] = true;\n }; // jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n // https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\n\n\n jQuery.Event.prototype = {\n constructor: jQuery.Event,\n isDefaultPrevented: returnFalse,\n isPropagationStopped: returnFalse,\n isImmediatePropagationStopped: returnFalse,\n isSimulated: false,\n preventDefault: function preventDefault() {\n var e = this.originalEvent;\n this.isDefaultPrevented = returnTrue;\n\n if (e && !this.isSimulated) {\n e.preventDefault();\n }\n },\n stopPropagation: function stopPropagation() {\n var e = this.originalEvent;\n this.isPropagationStopped = returnTrue;\n\n if (e && !this.isSimulated) {\n e.stopPropagation();\n }\n },\n stopImmediatePropagation: function stopImmediatePropagation() {\n var e = this.originalEvent;\n this.isImmediatePropagationStopped = returnTrue;\n\n if (e && !this.isSimulated) {\n e.stopImmediatePropagation();\n }\n\n this.stopPropagation();\n }\n }; // Includes all common event props including KeyEvent and MouseEvent specific props\n\n jQuery.each({\n altKey: true,\n bubbles: true,\n cancelable: true,\n changedTouches: true,\n ctrlKey: true,\n detail: true,\n eventPhase: true,\n metaKey: true,\n pageX: true,\n pageY: true,\n shiftKey: true,\n view: true,\n \"char\": true,\n code: true,\n charCode: true,\n key: true,\n keyCode: true,\n button: true,\n buttons: true,\n clientX: true,\n clientY: true,\n offsetX: true,\n offsetY: true,\n pointerId: true,\n pointerType: true,\n screenX: true,\n screenY: true,\n targetTouches: true,\n toElement: true,\n touches: true,\n which: true\n }, jQuery.event.addProp);\n jQuery.each({\n focus: \"focusin\",\n blur: \"focusout\"\n }, function (type, delegateType) {\n jQuery.event.special[type] = {\n // Utilize native event if possible so blur/focus sequence is correct\n setup: function setup() {\n // Claim the first handler\n // dataPriv.set( this, \"focus\", ... )\n // dataPriv.set( this, \"blur\", ... )\n leverageNative(this, type, expectSync); // Return false to allow normal processing in the caller\n\n return false;\n },\n trigger: function trigger() {\n // Force setup before trigger\n leverageNative(this, type); // Return non-false to allow normal event-path propagation\n\n return true;\n },\n // Suppress native focus or blur as it's already being fired\n // in leverageNative.\n _default: function _default() {\n return true;\n },\n delegateType: delegateType\n };\n }); // Create mouseenter/leave events using mouseover/out and event-time checks\n // so that event delegation works in jQuery.\n // Do the same for pointerenter/pointerleave and pointerover/pointerout\n //\n // Support: Safari 7 only\n // Safari sends mouseenter too often; see:\n // https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n // for the description of the bug (it existed in older Chrome versions as well).\n\n jQuery.each({\n mouseenter: \"mouseover\",\n mouseleave: \"mouseout\",\n pointerenter: \"pointerover\",\n pointerleave: \"pointerout\"\n }, function (orig, fix) {\n jQuery.event.special[orig] = {\n delegateType: fix,\n bindType: fix,\n handle: function handle(event) {\n var ret,\n target = this,\n related = event.relatedTarget,\n handleObj = event.handleObj; // For mouseenter/leave call the handler if related is outside the target.\n // NB: No relatedTarget if the mouse left/entered the browser window\n\n if (!related || related !== target && !jQuery.contains(target, related)) {\n event.type = handleObj.origType;\n ret = handleObj.handler.apply(this, arguments);\n event.type = fix;\n }\n\n return ret;\n }\n };\n });\n jQuery.fn.extend({\n on: function on(types, selector, data, fn) {\n return _on(this, types, selector, data, fn);\n },\n one: function one(types, selector, data, fn) {\n return _on(this, types, selector, data, fn, 1);\n },\n off: function off(types, selector, fn) {\n var handleObj, type;\n\n if (types && types.preventDefault && types.handleObj) {\n // ( event ) dispatched jQuery.Event\n handleObj = types.handleObj;\n jQuery(types.delegateTarget).off(handleObj.namespace ? handleObj.origType + \".\" + handleObj.namespace : handleObj.origType, handleObj.selector, handleObj.handler);\n return this;\n }\n\n if (_typeof(types) === \"object\") {\n // ( types-object [, selector] )\n for (type in types) {\n this.off(type, selector, types[type]);\n }\n\n return this;\n }\n\n if (selector === false || typeof selector === \"function\") {\n // ( types [, fn] )\n fn = selector;\n selector = undefined;\n }\n\n if (fn === false) {\n fn = returnFalse;\n }\n\n return this.each(function () {\n jQuery.event.remove(this, types, fn, selector);\n });\n }\n });\n return jQuery;\n});","define(function () {\n \"use strict\";\n\n return [];\n});","define(function () {\n \"use strict\";\n\n return function isWindow(obj) {\n return obj != null && obj === obj.window;\n };\n});","define([], function () {\n \"use strict\"; // Matches dashed string for camelizing\n\n var rmsPrefix = /^-ms-/,\n rdashAlpha = /-([a-z])/g; // Used by camelCase as callback to replace()\n\n function fcamelCase(_all, letter) {\n return letter.toUpperCase();\n } // Convert dashed to camelCase; used by the css and data modules\n // Support: IE <=9 - 11, Edge 12 - 15\n // Microsoft forgot to hump their vendor prefix (#9572)\n\n\n function camelCase(string) {\n return string.replace(rmsPrefix, \"ms-\").replace(rdashAlpha, fcamelCase);\n }\n\n return camelCase;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\ndefine([\"./core\", \"./core/access\", \"./core/camelCase\", \"./core/nodeName\", \"./var/rcssNum\", \"./css/var/rnumnonpx\", \"./css/var/cssExpand\", \"./css/var/getStyles\", \"./css/var/swap\", \"./css/curCSS\", \"./css/adjustCSS\", \"./css/addGetHookIf\", \"./css/support\", \"./css/finalPropName\", \"./core/init\", \"./core/ready\", \"./selector\" // contains\n], function (jQuery, access, camelCase, nodeName, rcssNum, rnumnonpx, cssExpand, getStyles, swap, curCSS, adjustCSS, addGetHookIf, support, finalPropName) {\n \"use strict\";\n\n var // Swappable if display is none or starts with table\n // except \"table\", \"table-cell\", or \"table-caption\"\n // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n rdisplayswap = /^(none|table(?!-c[ea]).+)/,\n rcustomProp = /^--/,\n cssShow = {\n position: \"absolute\",\n visibility: \"hidden\",\n display: \"block\"\n },\n cssNormalTransform = {\n letterSpacing: \"0\",\n fontWeight: \"400\"\n };\n\n function setPositiveNumber(_elem, value, subtract) {\n // Any relative (+/-) values have already been\n // normalized at this point\n var matches = rcssNum.exec(value);\n return matches ? // Guard against undefined \"subtract\", e.g., when used as in cssHooks\n Math.max(0, matches[2] - (subtract || 0)) + (matches[3] || \"px\") : value;\n }\n\n function boxModelAdjustment(elem, dimension, box, isBorderBox, styles, computedVal) {\n var i = dimension === \"width\" ? 1 : 0,\n extra = 0,\n delta = 0; // Adjustment may not be necessary\n\n if (box === (isBorderBox ? \"border\" : \"content\")) {\n return 0;\n }\n\n for (; i < 4; i += 2) {\n // Both box models exclude margin\n if (box === \"margin\") {\n delta += jQuery.css(elem, box + cssExpand[i], true, styles);\n } // If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\n\n if (!isBorderBox) {\n // Add padding\n delta += jQuery.css(elem, \"padding\" + cssExpand[i], true, styles); // For \"border\" or \"margin\", add border\n\n if (box !== \"padding\") {\n delta += jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles); // But still keep track of it otherwise\n } else {\n extra += jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles);\n } // If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n // \"padding\" or \"margin\"\n\n } else {\n // For \"content\", subtract padding\n if (box === \"content\") {\n delta -= jQuery.css(elem, \"padding\" + cssExpand[i], true, styles);\n } // For \"content\" or \"padding\", subtract border\n\n\n if (box !== \"margin\") {\n delta -= jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles);\n }\n }\n } // Account for positive content-box scroll gutter when requested by providing computedVal\n\n\n if (!isBorderBox && computedVal >= 0) {\n // offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n // Assuming integer scroll gutter, subtract the rest and round down\n delta += Math.max(0, Math.ceil(elem[\"offset\" + dimension[0].toUpperCase() + dimension.slice(1)] - computedVal - delta - extra - 0.5 // If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n // Use an explicit zero to avoid NaN (gh-3964)\n )) || 0;\n }\n\n return delta;\n }\n\n function getWidthOrHeight(elem, dimension, extra) {\n // Start with computed style\n var styles = getStyles(elem),\n // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n // Fake content-box until we know it's needed to know the true value.\n boxSizingNeeded = !support.boxSizingReliable() || extra,\n isBorderBox = boxSizingNeeded && jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\",\n valueIsBorderBox = isBorderBox,\n val = curCSS(elem, dimension, styles),\n offsetProp = \"offset\" + dimension[0].toUpperCase() + dimension.slice(1); // Support: Firefox <=54\n // Return a confounding non-pixel value or feign ignorance, as appropriate.\n\n if (rnumnonpx.test(val)) {\n if (!extra) {\n return val;\n }\n\n val = \"auto\";\n } // Support: IE 9 - 11 only\n // Use offsetWidth/offsetHeight for when box sizing is unreliable.\n // In those cases, the computed value can be trusted to be border-box.\n\n\n if ((!support.boxSizingReliable() && isBorderBox || // Support: IE 10 - 11+, Edge 15 - 18+\n // IE/Edge misreport `getComputedStyle` of table rows with width/height\n // set in CSS while `offset*` properties report correct values.\n // Interestingly, in some cases IE 9 doesn't suffer from this issue.\n !support.reliableTrDimensions() && nodeName(elem, \"tr\") || // Fall back to offsetWidth/offsetHeight when value is \"auto\"\n // This happens for inline elements with no explicit setting (gh-3571)\n val === \"auto\" || // Support: Android <=4.1 - 4.3 only\n // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n !parseFloat(val) && jQuery.css(elem, \"display\", false, styles) === \"inline\") && // Make sure the element is visible & connected\n elem.getClientRects().length) {\n isBorderBox = jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\"; // Where available, offsetWidth/offsetHeight approximate border box dimensions.\n // Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n // retrieved value as a content box dimension.\n\n valueIsBorderBox = offsetProp in elem;\n\n if (valueIsBorderBox) {\n val = elem[offsetProp];\n }\n } // Normalize \"\" and auto\n\n\n val = parseFloat(val) || 0; // Adjust for the element's box model\n\n return val + boxModelAdjustment(elem, dimension, extra || (isBorderBox ? \"border\" : \"content\"), valueIsBorderBox, styles, // Provide the current computed size to request scroll gutter calculation (gh-3589)\n val) + \"px\";\n }\n\n jQuery.extend({\n // Add in style property hooks for overriding the default\n // behavior of getting and setting a style property\n cssHooks: {\n opacity: {\n get: function get(elem, computed) {\n if (computed) {\n // We should always get a number back from opacity\n var ret = curCSS(elem, \"opacity\");\n return ret === \"\" ? \"1\" : ret;\n }\n }\n }\n },\n // Don't automatically add \"px\" to these possibly-unitless properties\n cssNumber: {\n \"animationIterationCount\": true,\n \"columnCount\": true,\n \"fillOpacity\": true,\n \"flexGrow\": true,\n \"flexShrink\": true,\n \"fontWeight\": true,\n \"gridArea\": true,\n \"gridColumn\": true,\n \"gridColumnEnd\": true,\n \"gridColumnStart\": true,\n \"gridRow\": true,\n \"gridRowEnd\": true,\n \"gridRowStart\": true,\n \"lineHeight\": true,\n \"opacity\": true,\n \"order\": true,\n \"orphans\": true,\n \"widows\": true,\n \"zIndex\": true,\n \"zoom\": true\n },\n // Add in properties whose names you wish to fix before\n // setting or getting the value\n cssProps: {},\n // Get and set the style property on a DOM Node\n style: function style(elem, name, value, extra) {\n // Don't set styles on text and comment nodes\n if (!elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style) {\n return;\n } // Make sure that we're working with the right name\n\n\n var ret,\n type,\n hooks,\n origName = camelCase(name),\n isCustomProp = rcustomProp.test(name),\n style = elem.style; // Make sure that we're working with the right name. We don't\n // want to query the value if it is a CSS custom property\n // since they are user-defined.\n\n if (!isCustomProp) {\n name = finalPropName(origName);\n } // Gets hook for the prefixed version, then unprefixed version\n\n\n hooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName]; // Check if we're setting a value\n\n if (value !== undefined) {\n type = _typeof(value); // Convert \"+=\" or \"-=\" to relative numbers (#7345)\n\n if (type === \"string\" && (ret = rcssNum.exec(value)) && ret[1]) {\n value = adjustCSS(elem, name, ret); // Fixes bug #9237\n\n type = \"number\";\n } // Make sure that null and NaN values aren't set (#7116)\n\n\n if (value == null || value !== value) {\n return;\n } // If a number was passed in, add the unit (except for certain CSS properties)\n // The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n // \"px\" to a few hardcoded values.\n\n\n if (type === \"number\" && !isCustomProp) {\n value += ret && ret[3] || (jQuery.cssNumber[origName] ? \"\" : \"px\");\n } // background-* props affect original clone's values\n\n\n if (!support.clearCloneStyle && value === \"\" && name.indexOf(\"background\") === 0) {\n style[name] = \"inherit\";\n } // If a hook was provided, use that value, otherwise just set the specified value\n\n\n if (!hooks || !(\"set\" in hooks) || (value = hooks.set(elem, value, extra)) !== undefined) {\n if (isCustomProp) {\n style.setProperty(name, value);\n } else {\n style[name] = value;\n }\n }\n } else {\n // If a hook was provided get the non-computed value from there\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, false, extra)) !== undefined) {\n return ret;\n } // Otherwise just get the value from the style object\n\n\n return style[name];\n }\n },\n css: function css(elem, name, extra, styles) {\n var val,\n num,\n hooks,\n origName = camelCase(name),\n isCustomProp = rcustomProp.test(name); // Make sure that we're working with the right name. We don't\n // want to modify the value if it is a CSS custom property\n // since they are user-defined.\n\n if (!isCustomProp) {\n name = finalPropName(origName);\n } // Try prefixed name followed by the unprefixed name\n\n\n hooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName]; // If a hook was provided get the computed value from there\n\n if (hooks && \"get\" in hooks) {\n val = hooks.get(elem, true, extra);\n } // Otherwise, if a way to get the computed value exists, use that\n\n\n if (val === undefined) {\n val = curCSS(elem, name, styles);\n } // Convert \"normal\" to computed value\n\n\n if (val === \"normal\" && name in cssNormalTransform) {\n val = cssNormalTransform[name];\n } // Make numeric if forced or a qualifier was provided and val looks numeric\n\n\n if (extra === \"\" || extra) {\n num = parseFloat(val);\n return extra === true || isFinite(num) ? num || 0 : val;\n }\n\n return val;\n }\n });\n jQuery.each([\"height\", \"width\"], function (_i, dimension) {\n jQuery.cssHooks[dimension] = {\n get: function get(elem, computed, extra) {\n if (computed) {\n // Certain elements can have dimension info if we invisibly show them\n // but it must have a current display style that would benefit\n return rdisplayswap.test(jQuery.css(elem, \"display\")) && ( // Support: Safari 8+\n // Table columns in Safari have non-zero offsetWidth & zero\n // getBoundingClientRect().width unless display is changed.\n // Support: IE <=11 only\n // Running getBoundingClientRect on a disconnected node\n // in IE throws an error.\n !elem.getClientRects().length || !elem.getBoundingClientRect().width) ? swap(elem, cssShow, function () {\n return getWidthOrHeight(elem, dimension, extra);\n }) : getWidthOrHeight(elem, dimension, extra);\n }\n },\n set: function set(elem, value, extra) {\n var matches,\n styles = getStyles(elem),\n // Only read styles.position if the test has a chance to fail\n // to avoid forcing a reflow.\n scrollboxSizeBuggy = !support.scrollboxSize() && styles.position === \"absolute\",\n // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n boxSizingNeeded = scrollboxSizeBuggy || extra,\n isBorderBox = boxSizingNeeded && jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\",\n subtract = extra ? boxModelAdjustment(elem, dimension, extra, isBorderBox, styles) : 0; // Account for unreliable border-box dimensions by comparing offset* to computed and\n // faking a content-box to get border and padding (gh-3699)\n\n if (isBorderBox && scrollboxSizeBuggy) {\n subtract -= Math.ceil(elem[\"offset\" + dimension[0].toUpperCase() + dimension.slice(1)] - parseFloat(styles[dimension]) - boxModelAdjustment(elem, dimension, \"border\", false, styles) - 0.5);\n } // Convert to pixels if value adjustment is needed\n\n\n if (subtract && (matches = rcssNum.exec(value)) && (matches[3] || \"px\") !== \"px\") {\n elem.style[dimension] = value;\n value = jQuery.css(elem, dimension);\n }\n\n return setPositiveNumber(elem, value, subtract);\n }\n };\n });\n jQuery.cssHooks.marginLeft = addGetHookIf(support.reliableMarginLeft, function (elem, computed) {\n if (computed) {\n return (parseFloat(curCSS(elem, \"marginLeft\")) || elem.getBoundingClientRect().left - swap(elem, {\n marginLeft: 0\n }, function () {\n return elem.getBoundingClientRect().left;\n })) + \"px\";\n }\n }); // These hooks are used by animate to expand properties\n\n jQuery.each({\n margin: \"\",\n padding: \"\",\n border: \"Width\"\n }, function (prefix, suffix) {\n jQuery.cssHooks[prefix + suffix] = {\n expand: function expand(value) {\n var i = 0,\n expanded = {},\n // Assumes a single number if not a string\n parts = typeof value === \"string\" ? value.split(\" \") : [value];\n\n for (; i < 4; i++) {\n expanded[prefix + cssExpand[i] + suffix] = parts[i] || parts[i - 2] || parts[0];\n }\n\n return expanded;\n }\n };\n\n if (prefix !== \"margin\") {\n jQuery.cssHooks[prefix + suffix].set = setPositiveNumber;\n }\n });\n jQuery.fn.extend({\n css: function css(name, value) {\n return access(this, function (elem, name, value) {\n var styles,\n len,\n map = {},\n i = 0;\n\n if (Array.isArray(name)) {\n styles = getStyles(elem);\n len = name.length;\n\n for (; i < len; i++) {\n map[name[i]] = jQuery.css(elem, name[i], false, styles);\n }\n\n return map;\n }\n\n return value !== undefined ? jQuery.style(elem, name, value) : jQuery.css(elem, name);\n }, name, value, arguments.length > 1);\n }\n });\n return jQuery;\n});","define([\"./core\", \"./selector\", \"./traversing\", \"./callbacks\", \"./deferred\", \"./deferred/exceptionHook\", \"./core/ready\", \"./data\", \"./queue\", \"./queue/delay\", \"./attributes\", \"./event\", \"./event/focusin\", \"./manipulation\", \"./manipulation/_evalUrl\", \"./wrap\", \"./css\", \"./css/hiddenVisibleSelectors\", \"./serialize\", \"./ajax\", \"./ajax/xhr\", \"./ajax/script\", \"./ajax/jsonp\", \"./ajax/load\", \"./core/parseXML\", \"./core/parseHTML\", \"./effects\", \"./effects/animatedSelector\", \"./offset\", \"./dimensions\", \"./deprecated\", \"./exports/amd\", \"./exports/global\"], function (jQuery) {\n \"use strict\";\n\n return jQuery;\n});","define([\"./arr\"], function (arr) {\n \"use strict\";\n\n return arr.slice;\n});","define(function () {\n \"use strict\"; // [[Class]] -> type pairs\n\n return {};\n});","define(function () {\n \"use strict\";\n /**\n * Determines whether an object can have data\n */\n\n return function (owner) {\n // Accepts only:\n // - Node\n // - Node.ELEMENT_NODE\n // - Node.DOCUMENT_NODE\n // - Object\n // - Any\n return owner.nodeType === 1 || owner.nodeType === 9 || !+owner.nodeType;\n };\n});","define([\"../core\", \"../var/documentElement\", \"../selector\" // jQuery.contains\n], function (jQuery, documentElement) {\n \"use strict\";\n\n var isAttached = function isAttached(elem) {\n return jQuery.contains(elem.ownerDocument, elem);\n },\n composed = {\n composed: true\n }; // Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n // Check attachment across shadow DOM boundaries when possible (gh-3504)\n // Support: iOS 10.0-10.2 only\n // Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n // leading to errors. We need to check for `getRootNode`.\n\n\n if (documentElement.getRootNode) {\n isAttached = function isAttached(elem) {\n return jQuery.contains(elem.ownerDocument, elem) || elem.getRootNode(composed) === elem.ownerDocument;\n };\n }\n\n return isAttached;\n});","define([\"./document\"], function (document) {\n \"use strict\";\n\n return document.documentElement;\n});","define([\"./core\", \"./core/isAttached\", \"./var/flat\", \"./var/isFunction\", \"./var/push\", \"./var/rcheckableType\", \"./core/access\", \"./manipulation/var/rtagName\", \"./manipulation/var/rscriptType\", \"./manipulation/wrapMap\", \"./manipulation/getAll\", \"./manipulation/setGlobalEval\", \"./manipulation/buildFragment\", \"./manipulation/support\", \"./data/var/dataPriv\", \"./data/var/dataUser\", \"./data/var/acceptData\", \"./core/DOMEval\", \"./core/nodeName\", \"./core/init\", \"./traversing\", \"./selector\", \"./event\"], function (jQuery, isAttached, flat, isFunction, push, rcheckableType, access, rtagName, rscriptType, wrapMap, getAll, setGlobalEval, buildFragment, support, dataPriv, dataUser, acceptData, DOMEval, nodeName) {\n \"use strict\";\n\n var // Support: IE <=10 - 11, Edge 12 - 13 only\n // In IE/Edge using regex groups here causes severe slowdowns.\n // See https://connect.microsoft.com/IE/feedback/details/1736512/\n rnoInnerhtml = /<script|<style|<link/i,\n // checked=\"checked\" or checked\n rchecked = /checked\\s*(?:[^=]|=\\s*.checked.)/i,\n rcleanScript = /^\\s*<!(?:\\[CDATA\\[|--)|(?:\\]\\]|--)>\\s*$/g; // Prefer a tbody over its parent table for containing new rows\n\n function manipulationTarget(elem, content) {\n if (nodeName(elem, \"table\") && nodeName(content.nodeType !== 11 ? content : content.firstChild, \"tr\")) {\n return jQuery(elem).children(\"tbody\")[0] || elem;\n }\n\n return elem;\n } // Replace/restore the type attribute of script elements for safe DOM manipulation\n\n\n function disableScript(elem) {\n elem.type = (elem.getAttribute(\"type\") !== null) + \"/\" + elem.type;\n return elem;\n }\n\n function restoreScript(elem) {\n if ((elem.type || \"\").slice(0, 5) === \"true/\") {\n elem.type = elem.type.slice(5);\n } else {\n elem.removeAttribute(\"type\");\n }\n\n return elem;\n }\n\n function cloneCopyEvent(src, dest) {\n var i, l, type, pdataOld, udataOld, udataCur, events;\n\n if (dest.nodeType !== 1) {\n return;\n } // 1. Copy private data: events, handlers, etc.\n\n\n if (dataPriv.hasData(src)) {\n pdataOld = dataPriv.get(src);\n events = pdataOld.events;\n\n if (events) {\n dataPriv.remove(dest, \"handle events\");\n\n for (type in events) {\n for (i = 0, l = events[type].length; i < l; i++) {\n jQuery.event.add(dest, type, events[type][i]);\n }\n }\n }\n } // 2. Copy user data\n\n\n if (dataUser.hasData(src)) {\n udataOld = dataUser.access(src);\n udataCur = jQuery.extend({}, udataOld);\n dataUser.set(dest, udataCur);\n }\n } // Fix IE bugs, see support tests\n\n\n function fixInput(src, dest) {\n var nodeName = dest.nodeName.toLowerCase(); // Fails to persist the checked state of a cloned checkbox or radio button.\n\n if (nodeName === \"input\" && rcheckableType.test(src.type)) {\n dest.checked = src.checked; // Fails to return the selected option to the default selected state when cloning options\n } else if (nodeName === \"input\" || nodeName === \"textarea\") {\n dest.defaultValue = src.defaultValue;\n }\n }\n\n function domManip(collection, args, callback, ignored) {\n // Flatten any nested arrays\n args = flat(args);\n var fragment,\n first,\n scripts,\n hasScripts,\n node,\n doc,\n i = 0,\n l = collection.length,\n iNoClone = l - 1,\n value = args[0],\n valueIsFunction = isFunction(value); // We can't cloneNode fragments that contain checked, in WebKit\n\n if (valueIsFunction || l > 1 && typeof value === \"string\" && !support.checkClone && rchecked.test(value)) {\n return collection.each(function (index) {\n var self = collection.eq(index);\n\n if (valueIsFunction) {\n args[0] = value.call(this, index, self.html());\n }\n\n domManip(self, args, callback, ignored);\n });\n }\n\n if (l) {\n fragment = buildFragment(args, collection[0].ownerDocument, false, collection, ignored);\n first = fragment.firstChild;\n\n if (fragment.childNodes.length === 1) {\n fragment = first;\n } // Require either new content or an interest in ignored elements to invoke the callback\n\n\n if (first || ignored) {\n scripts = jQuery.map(getAll(fragment, \"script\"), disableScript);\n hasScripts = scripts.length; // Use the original fragment for the last item\n // instead of the first because it can end up\n // being emptied incorrectly in certain situations (#8070).\n\n for (; i < l; i++) {\n node = fragment;\n\n if (i !== iNoClone) {\n node = jQuery.clone(node, true, true); // Keep references to cloned scripts for later restoration\n\n if (hasScripts) {\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n jQuery.merge(scripts, getAll(node, \"script\"));\n }\n }\n\n callback.call(collection[i], node, i);\n }\n\n if (hasScripts) {\n doc = scripts[scripts.length - 1].ownerDocument; // Reenable scripts\n\n jQuery.map(scripts, restoreScript); // Evaluate executable scripts on first document insertion\n\n for (i = 0; i < hasScripts; i++) {\n node = scripts[i];\n\n if (rscriptType.test(node.type || \"\") && !dataPriv.access(node, \"globalEval\") && jQuery.contains(doc, node)) {\n if (node.src && (node.type || \"\").toLowerCase() !== \"module\") {\n // Optional AJAX dependency, but won't run scripts if not present\n if (jQuery._evalUrl && !node.noModule) {\n jQuery._evalUrl(node.src, {\n nonce: node.nonce || node.getAttribute(\"nonce\")\n }, doc);\n }\n } else {\n DOMEval(node.textContent.replace(rcleanScript, \"\"), node, doc);\n }\n }\n }\n }\n }\n }\n\n return collection;\n }\n\n function _remove(elem, selector, keepData) {\n var node,\n nodes = selector ? jQuery.filter(selector, elem) : elem,\n i = 0;\n\n for (; (node = nodes[i]) != null; i++) {\n if (!keepData && node.nodeType === 1) {\n jQuery.cleanData(getAll(node));\n }\n\n if (node.parentNode) {\n if (keepData && isAttached(node)) {\n setGlobalEval(getAll(node, \"script\"));\n }\n\n node.parentNode.removeChild(node);\n }\n }\n\n return elem;\n }\n\n jQuery.extend({\n htmlPrefilter: function htmlPrefilter(html) {\n return html;\n },\n clone: function clone(elem, dataAndEvents, deepDataAndEvents) {\n var i,\n l,\n srcElements,\n destElements,\n clone = elem.cloneNode(true),\n inPage = isAttached(elem); // Fix IE cloning issues\n\n if (!support.noCloneChecked && (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem)) {\n // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\n destElements = getAll(clone);\n srcElements = getAll(elem);\n\n for (i = 0, l = srcElements.length; i < l; i++) {\n fixInput(srcElements[i], destElements[i]);\n }\n } // Copy the events from the original to the clone\n\n\n if (dataAndEvents) {\n if (deepDataAndEvents) {\n srcElements = srcElements || getAll(elem);\n destElements = destElements || getAll(clone);\n\n for (i = 0, l = srcElements.length; i < l; i++) {\n cloneCopyEvent(srcElements[i], destElements[i]);\n }\n } else {\n cloneCopyEvent(elem, clone);\n }\n } // Preserve script evaluation history\n\n\n destElements = getAll(clone, \"script\");\n\n if (destElements.length > 0) {\n setGlobalEval(destElements, !inPage && getAll(elem, \"script\"));\n } // Return the cloned set\n\n\n return clone;\n },\n cleanData: function cleanData(elems) {\n var data,\n elem,\n type,\n special = jQuery.event.special,\n i = 0;\n\n for (; (elem = elems[i]) !== undefined; i++) {\n if (acceptData(elem)) {\n if (data = elem[dataPriv.expando]) {\n if (data.events) {\n for (type in data.events) {\n if (special[type]) {\n jQuery.event.remove(elem, type); // This is a shortcut to avoid jQuery.event.remove's overhead\n } else {\n jQuery.removeEvent(elem, type, data.handle);\n }\n }\n } // Support: Chrome <=35 - 45+\n // Assign undefined instead of using delete, see Data#remove\n\n\n elem[dataPriv.expando] = undefined;\n }\n\n if (elem[dataUser.expando]) {\n // Support: Chrome <=35 - 45+\n // Assign undefined instead of using delete, see Data#remove\n elem[dataUser.expando] = undefined;\n }\n }\n }\n }\n });\n jQuery.fn.extend({\n detach: function detach(selector) {\n return _remove(this, selector, true);\n },\n remove: function remove(selector) {\n return _remove(this, selector);\n },\n text: function text(value) {\n return access(this, function (value) {\n return value === undefined ? jQuery.text(this) : this.empty().each(function () {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n this.textContent = value;\n }\n });\n }, null, value, arguments.length);\n },\n append: function append() {\n return domManip(this, arguments, function (elem) {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n var target = manipulationTarget(this, elem);\n target.appendChild(elem);\n }\n });\n },\n prepend: function prepend() {\n return domManip(this, arguments, function (elem) {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n var target = manipulationTarget(this, elem);\n target.insertBefore(elem, target.firstChild);\n }\n });\n },\n before: function before() {\n return domManip(this, arguments, function (elem) {\n if (this.parentNode) {\n this.parentNode.insertBefore(elem, this);\n }\n });\n },\n after: function after() {\n return domManip(this, arguments, function (elem) {\n if (this.parentNode) {\n this.parentNode.insertBefore(elem, this.nextSibling);\n }\n });\n },\n empty: function empty() {\n var elem,\n i = 0;\n\n for (; (elem = this[i]) != null; i++) {\n if (elem.nodeType === 1) {\n // Prevent memory leaks\n jQuery.cleanData(getAll(elem, false)); // Remove any remaining nodes\n\n elem.textContent = \"\";\n }\n }\n\n return this;\n },\n clone: function clone(dataAndEvents, deepDataAndEvents) {\n dataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n return this.map(function () {\n return jQuery.clone(this, dataAndEvents, deepDataAndEvents);\n });\n },\n html: function html(value) {\n return access(this, function (value) {\n var elem = this[0] || {},\n i = 0,\n l = this.length;\n\n if (value === undefined && elem.nodeType === 1) {\n return elem.innerHTML;\n } // See if we can take a shortcut and just use innerHTML\n\n\n if (typeof value === \"string\" && !rnoInnerhtml.test(value) && !wrapMap[(rtagName.exec(value) || [\"\", \"\"])[1].toLowerCase()]) {\n value = jQuery.htmlPrefilter(value);\n\n try {\n for (; i < l; i++) {\n elem = this[i] || {}; // Remove element nodes and prevent memory leaks\n\n if (elem.nodeType === 1) {\n jQuery.cleanData(getAll(elem, false));\n elem.innerHTML = value;\n }\n }\n\n elem = 0; // If using innerHTML throws an exception, use the fallback method\n } catch (e) {}\n }\n\n if (elem) {\n this.empty().append(value);\n }\n }, null, value, arguments.length);\n },\n replaceWith: function replaceWith() {\n var ignored = []; // Make the changes, replacing each non-ignored context element with the new content\n\n return domManip(this, arguments, function (elem) {\n var parent = this.parentNode;\n\n if (jQuery.inArray(this, ignored) < 0) {\n jQuery.cleanData(getAll(this));\n\n if (parent) {\n parent.replaceChild(elem, this);\n }\n } // Force callback invocation\n\n }, ignored);\n }\n });\n jQuery.each({\n appendTo: \"append\",\n prependTo: \"prepend\",\n insertBefore: \"before\",\n insertAfter: \"after\",\n replaceAll: \"replaceWith\"\n }, function (name, original) {\n jQuery.fn[name] = function (selector) {\n var elems,\n ret = [],\n insert = jQuery(selector),\n last = insert.length - 1,\n i = 0;\n\n for (; i <= last; i++) {\n elems = i === last ? this : this.clone(true);\n jQuery(insert[i])[original](elems); // Support: Android <=4.0 only, PhantomJS 1 only\n // .get() because push.apply(_, arraylike) throws on ancient WebKit\n\n push.apply(ret, elems.get());\n }\n\n return this.pushStack(ret);\n };\n });\n return jQuery;\n});","define([\"./arr\"], function (arr) {\n \"use strict\";\n\n return arr.indexOf;\n});","define([\"./class2type\"], function (class2type) {\n \"use strict\";\n\n return class2type.hasOwnProperty;\n});","define([\"./core\", \"./core/toType\", \"./var/isFunction\", \"./var/rnothtmlwhite\"], function (jQuery, toType, isFunction, rnothtmlwhite) {\n \"use strict\"; // Convert String-formatted options into Object-formatted ones\n\n function createOptions(options) {\n var object = {};\n jQuery.each(options.match(rnothtmlwhite) || [], function (_, flag) {\n object[flag] = true;\n });\n return object;\n }\n /*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\n\n\n jQuery.Callbacks = function (options) {\n // Convert options from String-formatted to Object-formatted if needed\n // (we check in cache first)\n options = typeof options === \"string\" ? createOptions(options) : jQuery.extend({}, options);\n\n var // Flag to know if list is currently firing\n firing,\n // Last fire value for non-forgettable lists\n memory,\n // Flag to know if list was already fired\n _fired,\n // Flag to prevent firing\n _locked,\n // Actual callback list\n list = [],\n // Queue of execution data for repeatable lists\n queue = [],\n // Index of currently firing callback (modified by add/remove as needed)\n firingIndex = -1,\n // Fire callbacks\n fire = function fire() {\n // Enforce single-firing\n _locked = _locked || options.once; // Execute callbacks for all pending executions,\n // respecting firingIndex overrides and runtime changes\n\n _fired = firing = true;\n\n for (; queue.length; firingIndex = -1) {\n memory = queue.shift();\n\n while (++firingIndex < list.length) {\n // Run callback and check for early termination\n if (list[firingIndex].apply(memory[0], memory[1]) === false && options.stopOnFalse) {\n // Jump to end and forget the data so .add doesn't re-fire\n firingIndex = list.length;\n memory = false;\n }\n }\n } // Forget the data if we're done with it\n\n\n if (!options.memory) {\n memory = false;\n }\n\n firing = false; // Clean up if we're done firing for good\n\n if (_locked) {\n // Keep an empty list if we have data for future add calls\n if (memory) {\n list = []; // Otherwise, this object is spent\n } else {\n list = \"\";\n }\n }\n },\n // Actual Callbacks object\n self = {\n // Add a callback or a collection of callbacks to the list\n add: function add() {\n if (list) {\n // If we have memory from a past run, we should fire after adding\n if (memory && !firing) {\n firingIndex = list.length - 1;\n queue.push(memory);\n }\n\n (function add(args) {\n jQuery.each(args, function (_, arg) {\n if (isFunction(arg)) {\n if (!options.unique || !self.has(arg)) {\n list.push(arg);\n }\n } else if (arg && arg.length && toType(arg) !== \"string\") {\n // Inspect recursively\n add(arg);\n }\n });\n })(arguments);\n\n if (memory && !firing) {\n fire();\n }\n }\n\n return this;\n },\n // Remove a callback from the list\n remove: function remove() {\n jQuery.each(arguments, function (_, arg) {\n var index;\n\n while ((index = jQuery.inArray(arg, list, index)) > -1) {\n list.splice(index, 1); // Handle firing indexes\n\n if (index <= firingIndex) {\n firingIndex--;\n }\n }\n });\n return this;\n },\n // Check if a given callback is in the list.\n // If no argument is given, return whether or not list has callbacks attached.\n has: function has(fn) {\n return fn ? jQuery.inArray(fn, list) > -1 : list.length > 0;\n },\n // Remove all callbacks from the list\n empty: function empty() {\n if (list) {\n list = [];\n }\n\n return this;\n },\n // Disable .fire and .add\n // Abort any current/pending executions\n // Clear all callbacks and values\n disable: function disable() {\n _locked = queue = [];\n list = memory = \"\";\n return this;\n },\n disabled: function disabled() {\n return !list;\n },\n // Disable .fire\n // Also disable .add unless we have memory (since it would have no effect)\n // Abort any pending executions\n lock: function lock() {\n _locked = queue = [];\n\n if (!memory && !firing) {\n list = memory = \"\";\n }\n\n return this;\n },\n locked: function locked() {\n return !!_locked;\n },\n // Call all callbacks with the given context and arguments\n fireWith: function fireWith(context, args) {\n if (!_locked) {\n args = args || [];\n args = [context, args.slice ? args.slice() : args];\n queue.push(args);\n\n if (!firing) {\n fire();\n }\n }\n\n return this;\n },\n // Call all the callbacks with the given arguments\n fire: function fire() {\n self.fireWith(this, arguments);\n return this;\n },\n // To know if the callbacks have already been called at least once\n fired: function fired() {\n return !!_fired;\n }\n };\n\n return self;\n };\n\n return jQuery;\n});","define([\"./core\", \"./data/var/dataPriv\", \"./deferred\", \"./callbacks\"], function (jQuery, dataPriv) {\n \"use strict\";\n\n jQuery.extend({\n queue: function queue(elem, type, data) {\n var queue;\n\n if (elem) {\n type = (type || \"fx\") + \"queue\";\n queue = dataPriv.get(elem, type); // Speed up dequeue by getting out quickly if this is just a lookup\n\n if (data) {\n if (!queue || Array.isArray(data)) {\n queue = dataPriv.access(elem, type, jQuery.makeArray(data));\n } else {\n queue.push(data);\n }\n }\n\n return queue || [];\n }\n },\n dequeue: function dequeue(elem, type) {\n type = type || \"fx\";\n\n var queue = jQuery.queue(elem, type),\n startLength = queue.length,\n fn = queue.shift(),\n hooks = jQuery._queueHooks(elem, type),\n next = function next() {\n jQuery.dequeue(elem, type);\n }; // If the fx queue is dequeued, always remove the progress sentinel\n\n\n if (fn === \"inprogress\") {\n fn = queue.shift();\n startLength--;\n }\n\n if (fn) {\n // Add a progress sentinel to prevent the fx queue from being\n // automatically dequeued\n if (type === \"fx\") {\n queue.unshift(\"inprogress\");\n } // Clear up the last queue stop function\n\n\n delete hooks.stop;\n fn.call(elem, next, hooks);\n }\n\n if (!startLength && hooks) {\n hooks.empty.fire();\n }\n },\n // Not public - generate a queueHooks object, or return the current one\n _queueHooks: function _queueHooks(elem, type) {\n var key = type + \"queueHooks\";\n return dataPriv.get(elem, key) || dataPriv.access(elem, key, {\n empty: jQuery.Callbacks(\"once memory\").add(function () {\n dataPriv.remove(elem, [type + \"queue\", key]);\n })\n });\n }\n });\n jQuery.fn.extend({\n queue: function queue(type, data) {\n var setter = 2;\n\n if (typeof type !== \"string\") {\n data = type;\n type = \"fx\";\n setter--;\n }\n\n if (arguments.length < setter) {\n return jQuery.queue(this[0], type);\n }\n\n return data === undefined ? this : this.each(function () {\n var queue = jQuery.queue(this, type, data); // Ensure a hooks for this queue\n\n jQuery._queueHooks(this, type);\n\n if (type === \"fx\" && queue[0] !== \"inprogress\") {\n jQuery.dequeue(this, type);\n }\n });\n },\n dequeue: function dequeue(type) {\n return this.each(function () {\n jQuery.dequeue(this, type);\n });\n },\n clearQueue: function clearQueue(type) {\n return this.queue(type || \"fx\", []);\n },\n // Get a promise resolved when queues of a certain type\n // are emptied (fx is the type by default)\n promise: function promise(type, obj) {\n var tmp,\n count = 1,\n defer = jQuery.Deferred(),\n elements = this,\n i = this.length,\n resolve = function resolve() {\n if (! --count) {\n defer.resolveWith(elements, [elements]);\n }\n };\n\n if (typeof type !== \"string\") {\n obj = type;\n type = undefined;\n }\n\n type = type || \"fx\";\n\n while (i--) {\n tmp = dataPriv.get(elements[i], type + \"queueHooks\");\n\n if (tmp && tmp.empty) {\n count++;\n tmp.empty.add(resolve);\n }\n }\n\n resolve();\n return defer.promise(obj);\n }\n });\n return jQuery;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\ndefine([\"./core\", \"./core/camelCase\", \"./var/document\", \"./var/isFunction\", \"./var/rcssNum\", \"./var/rnothtmlwhite\", \"./css/var/cssExpand\", \"./css/var/isHiddenWithinTree\", \"./css/adjustCSS\", \"./data/var/dataPriv\", \"./css/showHide\", \"./core/init\", \"./queue\", \"./deferred\", \"./traversing\", \"./manipulation\", \"./css\", \"./effects/Tween\"], function (jQuery, camelCase, document, isFunction, rcssNum, rnothtmlwhite, cssExpand, isHiddenWithinTree, adjustCSS, dataPriv, showHide) {\n \"use strict\";\n\n var fxNow,\n inProgress,\n rfxtypes = /^(?:toggle|show|hide)$/,\n rrun = /queueHooks$/;\n\n function schedule() {\n if (inProgress) {\n if (document.hidden === false && window.requestAnimationFrame) {\n window.requestAnimationFrame(schedule);\n } else {\n window.setTimeout(schedule, jQuery.fx.interval);\n }\n\n jQuery.fx.tick();\n }\n } // Animations created synchronously will run synchronously\n\n\n function createFxNow() {\n window.setTimeout(function () {\n fxNow = undefined;\n });\n return fxNow = Date.now();\n } // Generate parameters to create a standard animation\n\n\n function genFx(type, includeWidth) {\n var which,\n i = 0,\n attrs = {\n height: type\n }; // If we include width, step value is 1 to do all cssExpand values,\n // otherwise step value is 2 to skip over Left and Right\n\n includeWidth = includeWidth ? 1 : 0;\n\n for (; i < 4; i += 2 - includeWidth) {\n which = cssExpand[i];\n attrs[\"margin\" + which] = attrs[\"padding\" + which] = type;\n }\n\n if (includeWidth) {\n attrs.opacity = attrs.width = type;\n }\n\n return attrs;\n }\n\n function createTween(value, prop, animation) {\n var tween,\n collection = (Animation.tweeners[prop] || []).concat(Animation.tweeners[\"*\"]),\n index = 0,\n length = collection.length;\n\n for (; index < length; index++) {\n if (tween = collection[index].call(animation, prop, value)) {\n // We're done with this property\n return tween;\n }\n }\n }\n\n function defaultPrefilter(elem, props, opts) {\n var prop,\n value,\n toggle,\n hooks,\n oldfire,\n propTween,\n restoreDisplay,\n display,\n isBox = \"width\" in props || \"height\" in props,\n anim = this,\n orig = {},\n style = elem.style,\n hidden = elem.nodeType && isHiddenWithinTree(elem),\n dataShow = dataPriv.get(elem, \"fxshow\"); // Queue-skipping animations hijack the fx hooks\n\n if (!opts.queue) {\n hooks = jQuery._queueHooks(elem, \"fx\");\n\n if (hooks.unqueued == null) {\n hooks.unqueued = 0;\n oldfire = hooks.empty.fire;\n\n hooks.empty.fire = function () {\n if (!hooks.unqueued) {\n oldfire();\n }\n };\n }\n\n hooks.unqueued++;\n anim.always(function () {\n // Ensure the complete handler is called before this completes\n anim.always(function () {\n hooks.unqueued--;\n\n if (!jQuery.queue(elem, \"fx\").length) {\n hooks.empty.fire();\n }\n });\n });\n } // Detect show/hide animations\n\n\n for (prop in props) {\n value = props[prop];\n\n if (rfxtypes.test(value)) {\n delete props[prop];\n toggle = toggle || value === \"toggle\";\n\n if (value === (hidden ? \"hide\" : \"show\")) {\n // Pretend to be hidden if this is a \"show\" and\n // there is still data from a stopped show/hide\n if (value === \"show\" && dataShow && dataShow[prop] !== undefined) {\n hidden = true; // Ignore all other no-op show/hide data\n } else {\n continue;\n }\n }\n\n orig[prop] = dataShow && dataShow[prop] || jQuery.style(elem, prop);\n }\n } // Bail out if this is a no-op like .hide().hide()\n\n\n propTween = !jQuery.isEmptyObject(props);\n\n if (!propTween && jQuery.isEmptyObject(orig)) {\n return;\n } // Restrict \"overflow\" and \"display\" styles during box animations\n\n\n if (isBox && elem.nodeType === 1) {\n // Support: IE <=9 - 11, Edge 12 - 15\n // Record all 3 overflow attributes because IE does not infer the shorthand\n // from identically-valued overflowX and overflowY and Edge just mirrors\n // the overflowX value there.\n opts.overflow = [style.overflow, style.overflowX, style.overflowY]; // Identify a display type, preferring old show/hide data over the CSS cascade\n\n restoreDisplay = dataShow && dataShow.display;\n\n if (restoreDisplay == null) {\n restoreDisplay = dataPriv.get(elem, \"display\");\n }\n\n display = jQuery.css(elem, \"display\");\n\n if (display === \"none\") {\n if (restoreDisplay) {\n display = restoreDisplay;\n } else {\n // Get nonempty value(s) by temporarily forcing visibility\n showHide([elem], true);\n restoreDisplay = elem.style.display || restoreDisplay;\n display = jQuery.css(elem, \"display\");\n showHide([elem]);\n }\n } // Animate inline elements as inline-block\n\n\n if (display === \"inline\" || display === \"inline-block\" && restoreDisplay != null) {\n if (jQuery.css(elem, \"float\") === \"none\") {\n // Restore the original display value at the end of pure show/hide animations\n if (!propTween) {\n anim.done(function () {\n style.display = restoreDisplay;\n });\n\n if (restoreDisplay == null) {\n display = style.display;\n restoreDisplay = display === \"none\" ? \"\" : display;\n }\n }\n\n style.display = \"inline-block\";\n }\n }\n }\n\n if (opts.overflow) {\n style.overflow = \"hidden\";\n anim.always(function () {\n style.overflow = opts.overflow[0];\n style.overflowX = opts.overflow[1];\n style.overflowY = opts.overflow[2];\n });\n } // Implement show/hide animations\n\n\n propTween = false;\n\n for (prop in orig) {\n // General show/hide setup for this element animation\n if (!propTween) {\n if (dataShow) {\n if (\"hidden\" in dataShow) {\n hidden = dataShow.hidden;\n }\n } else {\n dataShow = dataPriv.access(elem, \"fxshow\", {\n display: restoreDisplay\n });\n } // Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\n\n if (toggle) {\n dataShow.hidden = !hidden;\n } // Show elements before animating them\n\n\n if (hidden) {\n showHide([elem], true);\n }\n /* eslint-disable no-loop-func */\n\n\n anim.done(function () {\n /* eslint-enable no-loop-func */\n // The final step of a \"hide\" animation is actually hiding the element\n if (!hidden) {\n showHide([elem]);\n }\n\n dataPriv.remove(elem, \"fxshow\");\n\n for (prop in orig) {\n jQuery.style(elem, prop, orig[prop]);\n }\n });\n } // Per-property setup\n\n\n propTween = createTween(hidden ? dataShow[prop] : 0, prop, anim);\n\n if (!(prop in dataShow)) {\n dataShow[prop] = propTween.start;\n\n if (hidden) {\n propTween.end = propTween.start;\n propTween.start = 0;\n }\n }\n }\n }\n\n function propFilter(props, specialEasing) {\n var index, name, easing, value, hooks; // camelCase, specialEasing and expand cssHook pass\n\n for (index in props) {\n name = camelCase(index);\n easing = specialEasing[name];\n value = props[index];\n\n if (Array.isArray(value)) {\n easing = value[1];\n value = props[index] = value[0];\n }\n\n if (index !== name) {\n props[name] = value;\n delete props[index];\n }\n\n hooks = jQuery.cssHooks[name];\n\n if (hooks && \"expand\" in hooks) {\n value = hooks.expand(value);\n delete props[name]; // Not quite $.extend, this won't overwrite existing keys.\n // Reusing 'index' because we have the correct \"name\"\n\n for (index in value) {\n if (!(index in props)) {\n props[index] = value[index];\n specialEasing[index] = easing;\n }\n }\n } else {\n specialEasing[name] = easing;\n }\n }\n }\n\n function Animation(elem, properties, options) {\n var result,\n stopped,\n index = 0,\n length = Animation.prefilters.length,\n deferred = jQuery.Deferred().always(function () {\n // Don't match elem in the :animated selector\n delete tick.elem;\n }),\n tick = function tick() {\n if (stopped) {\n return false;\n }\n\n var currentTime = fxNow || createFxNow(),\n remaining = Math.max(0, animation.startTime + animation.duration - currentTime),\n // Support: Android 2.3 only\n // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)\n temp = remaining / animation.duration || 0,\n percent = 1 - temp,\n index = 0,\n length = animation.tweens.length;\n\n for (; index < length; index++) {\n animation.tweens[index].run(percent);\n }\n\n deferred.notifyWith(elem, [animation, percent, remaining]); // If there's more to do, yield\n\n if (percent < 1 && length) {\n return remaining;\n } // If this was an empty animation, synthesize a final progress notification\n\n\n if (!length) {\n deferred.notifyWith(elem, [animation, 1, 0]);\n } // Resolve the animation and report its conclusion\n\n\n deferred.resolveWith(elem, [animation]);\n return false;\n },\n animation = deferred.promise({\n elem: elem,\n props: jQuery.extend({}, properties),\n opts: jQuery.extend(true, {\n specialEasing: {},\n easing: jQuery.easing._default\n }, options),\n originalProperties: properties,\n originalOptions: options,\n startTime: fxNow || createFxNow(),\n duration: options.duration,\n tweens: [],\n createTween: function createTween(prop, end) {\n var tween = jQuery.Tween(elem, animation.opts, prop, end, animation.opts.specialEasing[prop] || animation.opts.easing);\n animation.tweens.push(tween);\n return tween;\n },\n stop: function stop(gotoEnd) {\n var index = 0,\n // If we are going to the end, we want to run all the tweens\n // otherwise we skip this part\n length = gotoEnd ? animation.tweens.length : 0;\n\n if (stopped) {\n return this;\n }\n\n stopped = true;\n\n for (; index < length; index++) {\n animation.tweens[index].run(1);\n } // Resolve when we played the last frame; otherwise, reject\n\n\n if (gotoEnd) {\n deferred.notifyWith(elem, [animation, 1, 0]);\n deferred.resolveWith(elem, [animation, gotoEnd]);\n } else {\n deferred.rejectWith(elem, [animation, gotoEnd]);\n }\n\n return this;\n }\n }),\n props = animation.props;\n\n propFilter(props, animation.opts.specialEasing);\n\n for (; index < length; index++) {\n result = Animation.prefilters[index].call(animation, elem, props, animation.opts);\n\n if (result) {\n if (isFunction(result.stop)) {\n jQuery._queueHooks(animation.elem, animation.opts.queue).stop = result.stop.bind(result);\n }\n\n return result;\n }\n }\n\n jQuery.map(props, createTween, animation);\n\n if (isFunction(animation.opts.start)) {\n animation.opts.start.call(elem, animation);\n } // Attach callbacks from options\n\n\n animation.progress(animation.opts.progress).done(animation.opts.done, animation.opts.complete).fail(animation.opts.fail).always(animation.opts.always);\n jQuery.fx.timer(jQuery.extend(tick, {\n elem: elem,\n anim: animation,\n queue: animation.opts.queue\n }));\n return animation;\n }\n\n jQuery.Animation = jQuery.extend(Animation, {\n tweeners: {\n \"*\": [function (prop, value) {\n var tween = this.createTween(prop, value);\n adjustCSS(tween.elem, prop, rcssNum.exec(value), tween);\n return tween;\n }]\n },\n tweener: function tweener(props, callback) {\n if (isFunction(props)) {\n callback = props;\n props = [\"*\"];\n } else {\n props = props.match(rnothtmlwhite);\n }\n\n var prop,\n index = 0,\n length = props.length;\n\n for (; index < length; index++) {\n prop = props[index];\n Animation.tweeners[prop] = Animation.tweeners[prop] || [];\n Animation.tweeners[prop].unshift(callback);\n }\n },\n prefilters: [defaultPrefilter],\n prefilter: function prefilter(callback, prepend) {\n if (prepend) {\n Animation.prefilters.unshift(callback);\n } else {\n Animation.prefilters.push(callback);\n }\n }\n });\n\n jQuery.speed = function (speed, easing, fn) {\n var opt = speed && _typeof(speed) === \"object\" ? jQuery.extend({}, speed) : {\n complete: fn || !fn && easing || isFunction(speed) && speed,\n duration: speed,\n easing: fn && easing || easing && !isFunction(easing) && easing\n }; // Go to the end state if fx are off\n\n if (jQuery.fx.off) {\n opt.duration = 0;\n } else {\n if (typeof opt.duration !== \"number\") {\n if (opt.duration in jQuery.fx.speeds) {\n opt.duration = jQuery.fx.speeds[opt.duration];\n } else {\n opt.duration = jQuery.fx.speeds._default;\n }\n }\n } // Normalize opt.queue - true/undefined/null -> \"fx\"\n\n\n if (opt.queue == null || opt.queue === true) {\n opt.queue = \"fx\";\n } // Queueing\n\n\n opt.old = opt.complete;\n\n opt.complete = function () {\n if (isFunction(opt.old)) {\n opt.old.call(this);\n }\n\n if (opt.queue) {\n jQuery.dequeue(this, opt.queue);\n }\n };\n\n return opt;\n };\n\n jQuery.fn.extend({\n fadeTo: function fadeTo(speed, to, easing, callback) {\n // Show any hidden elements after setting opacity to 0\n return this.filter(isHiddenWithinTree).css(\"opacity\", 0).show() // Animate to the value specified\n .end().animate({\n opacity: to\n }, speed, easing, callback);\n },\n animate: function animate(prop, speed, easing, callback) {\n var empty = jQuery.isEmptyObject(prop),\n optall = jQuery.speed(speed, easing, callback),\n doAnimation = function doAnimation() {\n // Operate on a copy of prop so per-property easing won't be lost\n var anim = Animation(this, jQuery.extend({}, prop), optall); // Empty animations, or finishing resolves immediately\n\n if (empty || dataPriv.get(this, \"finish\")) {\n anim.stop(true);\n }\n };\n\n doAnimation.finish = doAnimation;\n return empty || optall.queue === false ? this.each(doAnimation) : this.queue(optall.queue, doAnimation);\n },\n stop: function stop(type, clearQueue, gotoEnd) {\n var stopQueue = function stopQueue(hooks) {\n var stop = hooks.stop;\n delete hooks.stop;\n stop(gotoEnd);\n };\n\n if (typeof type !== \"string\") {\n gotoEnd = clearQueue;\n clearQueue = type;\n type = undefined;\n }\n\n if (clearQueue) {\n this.queue(type || \"fx\", []);\n }\n\n return this.each(function () {\n var dequeue = true,\n index = type != null && type + \"queueHooks\",\n timers = jQuery.timers,\n data = dataPriv.get(this);\n\n if (index) {\n if (data[index] && data[index].stop) {\n stopQueue(data[index]);\n }\n } else {\n for (index in data) {\n if (data[index] && data[index].stop && rrun.test(index)) {\n stopQueue(data[index]);\n }\n }\n }\n\n for (index = timers.length; index--;) {\n if (timers[index].elem === this && (type == null || timers[index].queue === type)) {\n timers[index].anim.stop(gotoEnd);\n dequeue = false;\n timers.splice(index, 1);\n }\n } // Start the next in the queue if the last step wasn't forced.\n // Timers currently will call their complete callbacks, which\n // will dequeue but only if they were gotoEnd.\n\n\n if (dequeue || !gotoEnd) {\n jQuery.dequeue(this, type);\n }\n });\n },\n finish: function finish(type) {\n if (type !== false) {\n type = type || \"fx\";\n }\n\n return this.each(function () {\n var index,\n data = dataPriv.get(this),\n queue = data[type + \"queue\"],\n hooks = data[type + \"queueHooks\"],\n timers = jQuery.timers,\n length = queue ? queue.length : 0; // Enable finishing flag on private data\n\n data.finish = true; // Empty the queue first\n\n jQuery.queue(this, type, []);\n\n if (hooks && hooks.stop) {\n hooks.stop.call(this, true);\n } // Look for any active animations, and finish them\n\n\n for (index = timers.length; index--;) {\n if (timers[index].elem === this && timers[index].queue === type) {\n timers[index].anim.stop(true);\n timers.splice(index, 1);\n }\n } // Look for any animations in the old queue and finish them\n\n\n for (index = 0; index < length; index++) {\n if (queue[index] && queue[index].finish) {\n queue[index].finish.call(this);\n }\n } // Turn off finishing flag\n\n\n delete data.finish;\n });\n }\n });\n jQuery.each([\"toggle\", \"show\", \"hide\"], function (_i, name) {\n var cssFn = jQuery.fn[name];\n\n jQuery.fn[name] = function (speed, easing, callback) {\n return speed == null || typeof speed === \"boolean\" ? cssFn.apply(this, arguments) : this.animate(genFx(name, true), speed, easing, callback);\n };\n }); // Generate shortcuts for custom animations\n\n jQuery.each({\n slideDown: genFx(\"show\"),\n slideUp: genFx(\"hide\"),\n slideToggle: genFx(\"toggle\"),\n fadeIn: {\n opacity: \"show\"\n },\n fadeOut: {\n opacity: \"hide\"\n },\n fadeToggle: {\n opacity: \"toggle\"\n }\n }, function (name, props) {\n jQuery.fn[name] = function (speed, easing, callback) {\n return this.animate(props, speed, easing, callback);\n };\n });\n jQuery.timers = [];\n\n jQuery.fx.tick = function () {\n var timer,\n i = 0,\n timers = jQuery.timers;\n fxNow = Date.now();\n\n for (; i < timers.length; i++) {\n timer = timers[i]; // Run the timer and safely remove it when done (allowing for external removal)\n\n if (!timer() && timers[i] === timer) {\n timers.splice(i--, 1);\n }\n }\n\n if (!timers.length) {\n jQuery.fx.stop();\n }\n\n fxNow = undefined;\n };\n\n jQuery.fx.timer = function (timer) {\n jQuery.timers.push(timer);\n jQuery.fx.start();\n };\n\n jQuery.fx.interval = 13;\n\n jQuery.fx.start = function () {\n if (inProgress) {\n return;\n }\n\n inProgress = true;\n schedule();\n };\n\n jQuery.fx.stop = function () {\n inProgress = null;\n };\n\n jQuery.fx.speeds = {\n slow: 600,\n fast: 200,\n // Default speed\n _default: 400\n };\n return jQuery;\n});","define([\"../var/pnum\"], function (pnum) {\n \"use strict\";\n\n return new RegExp(\"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\");\n});","define(function () {\n \"use strict\";\n\n return [\"Top\", \"Right\", \"Bottom\", \"Left\"];\n});","define(function () {\n \"use strict\";\n\n return /^(?:checkbox|radio)$/i;\n});","define([\"../../var/pnum\"], function (pnum) {\n \"use strict\";\n\n return new RegExp(\"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\");\n});","define([\"../core\", \"../var/document\", \"../var/documentElement\", \"../var/support\"], function (jQuery, document, documentElement, support) {\n \"use strict\";\n\n (function () {\n // Executing both pixelPosition & boxSizingReliable tests require only one layout\n // so they're executed at the same time to save the second computation.\n function computeStyleTests() {\n // This is a singleton, we need to execute it only once\n if (!div) {\n return;\n }\n\n container.style.cssText = \"position:absolute;left:-11111px;width:60px;\" + \"margin-top:1px;padding:0;border:0\";\n div.style.cssText = \"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" + \"margin:auto;border:1px;padding:1px;\" + \"width:60%;top:1%\";\n documentElement.appendChild(container).appendChild(div);\n var divStyle = window.getComputedStyle(div);\n pixelPositionVal = divStyle.top !== \"1%\"; // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\n reliableMarginLeftVal = roundPixelMeasures(divStyle.marginLeft) === 12; // Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n // Some styles come back with percentage values, even though they shouldn't\n\n div.style.right = \"60%\";\n pixelBoxStylesVal = roundPixelMeasures(divStyle.right) === 36; // Support: IE 9 - 11 only\n // Detect misreporting of content dimensions for box-sizing:border-box elements\n\n boxSizingReliableVal = roundPixelMeasures(divStyle.width) === 36; // Support: IE 9 only\n // Detect overflow:scroll screwiness (gh-3699)\n // Support: Chrome <=64\n // Don't get tricked when zoom affects offsetWidth (gh-4029)\n\n div.style.position = \"absolute\";\n scrollboxSizeVal = roundPixelMeasures(div.offsetWidth / 3) === 12;\n documentElement.removeChild(container); // Nullify the div so it wouldn't be stored in the memory and\n // it will also be a sign that checks already performed\n\n div = null;\n }\n\n function roundPixelMeasures(measure) {\n return Math.round(parseFloat(measure));\n }\n\n var pixelPositionVal,\n boxSizingReliableVal,\n scrollboxSizeVal,\n pixelBoxStylesVal,\n reliableTrDimensionsVal,\n reliableMarginLeftVal,\n container = document.createElement(\"div\"),\n div = document.createElement(\"div\"); // Finish early in limited (non-browser) environments\n\n if (!div.style) {\n return;\n } // Support: IE <=9 - 11 only\n // Style of cloned element affects source element cloned (#8908)\n\n\n div.style.backgroundClip = \"content-box\";\n div.cloneNode(true).style.backgroundClip = \"\";\n support.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n jQuery.extend(support, {\n boxSizingReliable: function boxSizingReliable() {\n computeStyleTests();\n return boxSizingReliableVal;\n },\n pixelBoxStyles: function pixelBoxStyles() {\n computeStyleTests();\n return pixelBoxStylesVal;\n },\n pixelPosition: function pixelPosition() {\n computeStyleTests();\n return pixelPositionVal;\n },\n reliableMarginLeft: function reliableMarginLeft() {\n computeStyleTests();\n return reliableMarginLeftVal;\n },\n scrollboxSize: function scrollboxSize() {\n computeStyleTests();\n return scrollboxSizeVal;\n },\n // Support: IE 9 - 11+, Edge 15 - 18+\n // IE/Edge misreport `getComputedStyle` of table rows with width/height\n // set in CSS while `offset*` properties report correct values.\n // Behavior in IE 9 is more subtle than in newer versions & it passes\n // some versions of this test; make sure not to make it pass there!\n //\n // Support: Firefox 70+\n // Only Firefox includes border widths\n // in computed dimensions. (gh-4529)\n reliableTrDimensions: function reliableTrDimensions() {\n var table, tr, trChild, trStyle;\n\n if (reliableTrDimensionsVal == null) {\n table = document.createElement(\"table\");\n tr = document.createElement(\"tr\");\n trChild = document.createElement(\"div\");\n table.style.cssText = \"position:absolute;left:-11111px;border-collapse:separate\";\n tr.style.cssText = \"border:1px solid\"; // Support: Chrome 86+\n // Height set through cssText does not get applied.\n // Computed height then comes back as 0.\n\n tr.style.height = \"1px\";\n trChild.style.height = \"9px\"; // Support: Android 8 Chrome 86+\n // In our bodyBackground.html iframe,\n // display for all div elements is set to \"inline\",\n // which causes a problem only in Android 8 Chrome 86.\n // Ensuring the div is display: block\n // gets around this issue.\n\n trChild.style.display = \"block\";\n documentElement.appendChild(table).appendChild(tr).appendChild(trChild);\n trStyle = window.getComputedStyle(tr);\n reliableTrDimensionsVal = parseInt(trStyle.height, 10) + parseInt(trStyle.borderTopWidth, 10) + parseInt(trStyle.borderBottomWidth, 10) === tr.offsetHeight;\n documentElement.removeChild(table);\n }\n\n return reliableTrDimensionsVal;\n }\n });\n })();\n\n return support;\n});","define([\"../var/document\", \"../var/support\"], function (document, support) {\n \"use strict\";\n\n (function () {\n var input = document.createElement(\"input\"),\n select = document.createElement(\"select\"),\n opt = select.appendChild(document.createElement(\"option\"));\n input.type = \"checkbox\"; // Support: Android <=4.3 only\n // Default value for a checkbox should be \"on\"\n\n support.checkOn = input.value !== \"\"; // Support: IE <=11 only\n // Must access selectedIndex to make default options select\n\n support.optSelected = opt.selected; // Support: IE <=11 only\n // An input loses its value after becoming a radio\n\n input = document.createElement(\"input\");\n input.value = \"t\";\n input.type = \"radio\";\n support.radioValue = input.value === \"t\";\n })();\n\n return support;\n});","define([\"../var/rnothtmlwhite\"], function (rnothtmlwhite) {\n \"use strict\"; // Strip and collapse whitespace according to HTML spec\n // https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\n function stripAndCollapse(value) {\n var tokens = value.match(rnothtmlwhite) || [];\n return tokens.join(\" \");\n }\n\n return stripAndCollapse;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\ndefine([\"../core\", \"../var/document\", \"../data/var/dataPriv\", \"../data/var/acceptData\", \"../var/hasOwn\", \"../var/isFunction\", \"../var/isWindow\", \"../event\"], function (jQuery, document, dataPriv, acceptData, hasOwn, isFunction, isWindow) {\n \"use strict\";\n\n var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n stopPropagationCallback = function stopPropagationCallback(e) {\n e.stopPropagation();\n };\n\n jQuery.extend(jQuery.event, {\n trigger: function trigger(event, data, elem, onlyHandlers) {\n var i,\n cur,\n tmp,\n bubbleType,\n ontype,\n handle,\n special,\n lastElement,\n eventPath = [elem || document],\n type = hasOwn.call(event, \"type\") ? event.type : event,\n namespaces = hasOwn.call(event, \"namespace\") ? event.namespace.split(\".\") : [];\n cur = lastElement = tmp = elem = elem || document; // Don't do events on text and comment nodes\n\n if (elem.nodeType === 3 || elem.nodeType === 8) {\n return;\n } // focus/blur morphs to focusin/out; ensure we're not firing them right now\n\n\n if (rfocusMorph.test(type + jQuery.event.triggered)) {\n return;\n }\n\n if (type.indexOf(\".\") > -1) {\n // Namespaced trigger; create a regexp to match event type in handle()\n namespaces = type.split(\".\");\n type = namespaces.shift();\n namespaces.sort();\n }\n\n ontype = type.indexOf(\":\") < 0 && \"on\" + type; // Caller can pass in a jQuery.Event object, Object, or just an event type string\n\n event = event[jQuery.expando] ? event : new jQuery.Event(type, _typeof(event) === \"object\" && event); // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\n event.isTrigger = onlyHandlers ? 2 : 3;\n event.namespace = namespaces.join(\".\");\n event.rnamespace = event.namespace ? new RegExp(\"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\") : null; // Clean up the event in case it is being reused\n\n event.result = undefined;\n\n if (!event.target) {\n event.target = elem;\n } // Clone any incoming data and prepend the event, creating the handler arg list\n\n\n data = data == null ? [event] : jQuery.makeArray(data, [event]); // Allow special events to draw outside the lines\n\n special = jQuery.event.special[type] || {};\n\n if (!onlyHandlers && special.trigger && special.trigger.apply(elem, data) === false) {\n return;\n } // Determine event propagation path in advance, per W3C events spec (#9951)\n // Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\n\n if (!onlyHandlers && !special.noBubble && !isWindow(elem)) {\n bubbleType = special.delegateType || type;\n\n if (!rfocusMorph.test(bubbleType + type)) {\n cur = cur.parentNode;\n }\n\n for (; cur; cur = cur.parentNode) {\n eventPath.push(cur);\n tmp = cur;\n } // Only add window if we got to document (e.g., not plain obj or detached DOM)\n\n\n if (tmp === (elem.ownerDocument || document)) {\n eventPath.push(tmp.defaultView || tmp.parentWindow || window);\n }\n } // Fire handlers on the event path\n\n\n i = 0;\n\n while ((cur = eventPath[i++]) && !event.isPropagationStopped()) {\n lastElement = cur;\n event.type = i > 1 ? bubbleType : special.bindType || type; // jQuery handler\n\n handle = (dataPriv.get(cur, \"events\") || Object.create(null))[event.type] && dataPriv.get(cur, \"handle\");\n\n if (handle) {\n handle.apply(cur, data);\n } // Native handler\n\n\n handle = ontype && cur[ontype];\n\n if (handle && handle.apply && acceptData(cur)) {\n event.result = handle.apply(cur, data);\n\n if (event.result === false) {\n event.preventDefault();\n }\n }\n }\n\n event.type = type; // If nobody prevented the default action, do it now\n\n if (!onlyHandlers && !event.isDefaultPrevented()) {\n if ((!special._default || special._default.apply(eventPath.pop(), data) === false) && acceptData(elem)) {\n // Call a native DOM method on the target with the same name as the event.\n // Don't do default actions on window, that's where global variables be (#6170)\n if (ontype && isFunction(elem[type]) && !isWindow(elem)) {\n // Don't re-trigger an onFOO event when we call its FOO() method\n tmp = elem[ontype];\n\n if (tmp) {\n elem[ontype] = null;\n } // Prevent re-triggering of the same event, since we already bubbled it above\n\n\n jQuery.event.triggered = type;\n\n if (event.isPropagationStopped()) {\n lastElement.addEventListener(type, stopPropagationCallback);\n }\n\n elem[type]();\n\n if (event.isPropagationStopped()) {\n lastElement.removeEventListener(type, stopPropagationCallback);\n }\n\n jQuery.event.triggered = undefined;\n\n if (tmp) {\n elem[ontype] = tmp;\n }\n }\n }\n }\n\n return event.result;\n },\n // Piggyback on a donor event to simulate a different one\n // Used only for `focus(in | out)` events\n simulate: function simulate(type, elem, event) {\n var e = jQuery.extend(new jQuery.Event(), event, {\n type: type,\n isSimulated: true\n });\n jQuery.event.trigger(e, null, elem);\n }\n });\n jQuery.fn.extend({\n trigger: function trigger(type, data) {\n return this.each(function () {\n jQuery.event.trigger(type, data, this);\n });\n },\n triggerHandler: function triggerHandler(type, data) {\n var elem = this[0];\n\n if (elem) {\n return jQuery.event.trigger(type, data, elem, true);\n }\n }\n });\n return jQuery;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*\nUnobtrusive JavaScript\nhttps://github.com/rails/rails/blob/main/actionview/app/assets/javascripts\nReleased under the MIT license\n */\n;\n(function () {\n var context = this;\n (function () {\n (function () {\n this.Rails = {\n linkClickSelector: 'a[data-confirm], a[data-method], a[data-remote]:not([disabled]), a[data-disable-with], a[data-disable]',\n buttonClickSelector: {\n selector: 'button[data-remote]:not([form]), button[data-confirm]:not([form])',\n exclude: 'form button'\n },\n inputChangeSelector: 'select[data-remote], input[data-remote], textarea[data-remote]',\n formSubmitSelector: 'form:not([data-turbo=true])',\n formInputClickSelector: 'form:not([data-turbo=true]) input[type=submit], form:not([data-turbo=true]) input[type=image], form:not([data-turbo=true]) button[type=submit], form:not([data-turbo=true]) button:not([type]), input[type=submit][form], input[type=image][form], button[type=submit][form], button[form]:not([type])',\n formDisableSelector: 'input[data-disable-with]:enabled, button[data-disable-with]:enabled, textarea[data-disable-with]:enabled, input[data-disable]:enabled, button[data-disable]:enabled, textarea[data-disable]:enabled',\n formEnableSelector: 'input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled, input[data-disable]:disabled, button[data-disable]:disabled, textarea[data-disable]:disabled',\n fileInputSelector: 'input[name][type=file]:not([disabled])',\n linkDisableSelector: 'a[data-disable-with], a[data-disable]',\n buttonDisableSelector: 'button[data-remote][data-disable-with], button[data-remote][data-disable]'\n };\n }).call(this);\n }).call(context);\n var Rails = context.Rails;\n (function () {\n (function () {\n var nonce;\n nonce = null;\n\n Rails.loadCSPNonce = function () {\n var ref;\n return nonce = (ref = document.querySelector(\"meta[name=csp-nonce]\")) != null ? ref.content : void 0;\n };\n\n Rails.cspNonce = function () {\n return nonce != null ? nonce : Rails.loadCSPNonce();\n };\n }).call(this);\n (function () {\n var expando, m;\n m = Element.prototype.matches || Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector;\n\n Rails.matches = function (element, selector) {\n if (selector.exclude != null) {\n return m.call(element, selector.selector) && !m.call(element, selector.exclude);\n } else {\n return m.call(element, selector);\n }\n };\n\n expando = '_ujsData';\n\n Rails.getData = function (element, key) {\n var ref;\n return (ref = element[expando]) != null ? ref[key] : void 0;\n };\n\n Rails.setData = function (element, key, value) {\n if (element[expando] == null) {\n element[expando] = {};\n }\n\n return element[expando][key] = value;\n };\n\n Rails.$ = function (selector) {\n return Array.prototype.slice.call(document.querySelectorAll(selector));\n };\n }).call(this);\n (function () {\n var $, csrfParam, csrfToken;\n $ = Rails.$;\n\n csrfToken = Rails.csrfToken = function () {\n var meta;\n meta = document.querySelector('meta[name=csrf-token]');\n return meta && meta.content;\n };\n\n csrfParam = Rails.csrfParam = function () {\n var meta;\n meta = document.querySelector('meta[name=csrf-param]');\n return meta && meta.content;\n };\n\n Rails.CSRFProtection = function (xhr) {\n var token;\n token = csrfToken();\n\n if (token != null) {\n return xhr.setRequestHeader('X-CSRF-Token', token);\n }\n };\n\n Rails.refreshCSRFTokens = function () {\n var param, token;\n token = csrfToken();\n param = csrfParam();\n\n if (token != null && param != null) {\n return $('form input[name=\"' + param + '\"]').forEach(function (input) {\n return input.value = token;\n });\n }\n };\n }).call(this);\n (function () {\n var CustomEvent, fire, matches, preventDefault;\n matches = Rails.matches;\n CustomEvent = window.CustomEvent;\n\n if (typeof CustomEvent !== 'function') {\n CustomEvent = function CustomEvent(event, params) {\n var evt;\n evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n };\n\n CustomEvent.prototype = window.Event.prototype;\n preventDefault = CustomEvent.prototype.preventDefault;\n\n CustomEvent.prototype.preventDefault = function () {\n var result;\n result = preventDefault.call(this);\n\n if (this.cancelable && !this.defaultPrevented) {\n Object.defineProperty(this, 'defaultPrevented', {\n get: function get() {\n return true;\n }\n });\n }\n\n return result;\n };\n }\n\n fire = Rails.fire = function (obj, name, data) {\n var event;\n event = new CustomEvent(name, {\n bubbles: true,\n cancelable: true,\n detail: data\n });\n obj.dispatchEvent(event);\n return !event.defaultPrevented;\n };\n\n Rails.stopEverything = function (e) {\n fire(e.target, 'ujs:everythingStopped');\n e.preventDefault();\n e.stopPropagation();\n return e.stopImmediatePropagation();\n };\n\n Rails.delegate = function (element, selector, eventType, handler) {\n return element.addEventListener(eventType, function (e) {\n var target;\n target = e.target;\n\n while (!(!(target instanceof Element) || matches(target, selector))) {\n target = target.parentNode;\n }\n\n if (target instanceof Element && handler.call(target, e) === false) {\n e.preventDefault();\n return e.stopPropagation();\n }\n });\n };\n }).call(this);\n (function () {\n var AcceptHeaders, CSRFProtection, createXHR, cspNonce, fire, prepareOptions, processResponse;\n cspNonce = Rails.cspNonce, CSRFProtection = Rails.CSRFProtection, fire = Rails.fire;\n AcceptHeaders = {\n '*': '*/*',\n text: 'text/plain',\n html: 'text/html',\n xml: 'application/xml, text/xml',\n json: 'application/json, text/javascript',\n script: 'text/javascript, application/javascript, application/ecmascript, application/x-ecmascript'\n };\n\n Rails.ajax = function (options) {\n var xhr;\n options = prepareOptions(options);\n xhr = createXHR(options, function () {\n var ref, response;\n response = processResponse((ref = xhr.response) != null ? ref : xhr.responseText, xhr.getResponseHeader('Content-Type'));\n\n if (Math.floor(xhr.status / 100) === 2) {\n if (typeof options.success === \"function\") {\n options.success(response, xhr.statusText, xhr);\n }\n } else {\n if (typeof options.error === \"function\") {\n options.error(response, xhr.statusText, xhr);\n }\n }\n\n return typeof options.complete === \"function\" ? options.complete(xhr, xhr.statusText) : void 0;\n });\n\n if (options.beforeSend != null && !options.beforeSend(xhr, options)) {\n return false;\n }\n\n if (xhr.readyState === XMLHttpRequest.OPENED) {\n return xhr.send(options.data);\n }\n };\n\n prepareOptions = function prepareOptions(options) {\n options.url = options.url || location.href;\n options.type = options.type.toUpperCase();\n\n if (options.type === 'GET' && options.data) {\n if (options.url.indexOf('?') < 0) {\n options.url += '?' + options.data;\n } else {\n options.url += '&' + options.data;\n }\n }\n\n if (AcceptHeaders[options.dataType] == null) {\n options.dataType = '*';\n }\n\n options.accept = AcceptHeaders[options.dataType];\n\n if (options.dataType !== '*') {\n options.accept += ', */*; q=0.01';\n }\n\n return options;\n };\n\n createXHR = function createXHR(options, done) {\n var xhr;\n xhr = new XMLHttpRequest();\n xhr.open(options.type, options.url, true);\n xhr.setRequestHeader('Accept', options.accept);\n\n if (typeof options.data === 'string') {\n xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');\n }\n\n if (!options.crossDomain) {\n xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n CSRFProtection(xhr);\n }\n\n xhr.withCredentials = !!options.withCredentials;\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === XMLHttpRequest.DONE) {\n return done(xhr);\n }\n };\n\n return xhr;\n };\n\n processResponse = function processResponse(response, type) {\n var parser, script;\n\n if (typeof response === 'string' && typeof type === 'string') {\n if (type.match(/\\bjson\\b/)) {\n try {\n response = JSON.parse(response);\n } catch (error) {}\n } else if (type.match(/\\b(?:java|ecma)script\\b/)) {\n script = document.createElement('script');\n script.setAttribute('nonce', cspNonce());\n script.text = response;\n document.head.appendChild(script).parentNode.removeChild(script);\n } else if (type.match(/\\b(xml|html|svg)\\b/)) {\n parser = new DOMParser();\n type = type.replace(/;.+/, '');\n\n try {\n response = parser.parseFromString(response, type);\n } catch (error) {}\n }\n }\n\n return response;\n };\n\n Rails.href = function (element) {\n return element.href;\n };\n\n Rails.isCrossDomain = function (url) {\n var e, originAnchor, urlAnchor;\n originAnchor = document.createElement('a');\n originAnchor.href = location.href;\n urlAnchor = document.createElement('a');\n\n try {\n urlAnchor.href = url;\n return !((!urlAnchor.protocol || urlAnchor.protocol === ':') && !urlAnchor.host || originAnchor.protocol + '//' + originAnchor.host === urlAnchor.protocol + '//' + urlAnchor.host);\n } catch (error) {\n e = error;\n return true;\n }\n };\n }).call(this);\n (function () {\n var matches, toArray;\n matches = Rails.matches;\n\n toArray = function toArray(e) {\n return Array.prototype.slice.call(e);\n };\n\n Rails.serializeElement = function (element, additionalParam) {\n var inputs, params;\n inputs = [element];\n\n if (matches(element, 'form')) {\n inputs = toArray(element.elements);\n }\n\n params = [];\n inputs.forEach(function (input) {\n if (!input.name || input.disabled) {\n return;\n }\n\n if (matches(input, 'fieldset[disabled] *')) {\n return;\n }\n\n if (matches(input, 'select')) {\n return toArray(input.options).forEach(function (option) {\n if (option.selected) {\n return params.push({\n name: input.name,\n value: option.value\n });\n }\n });\n } else if (input.checked || ['radio', 'checkbox', 'submit'].indexOf(input.type) === -1) {\n return params.push({\n name: input.name,\n value: input.value\n });\n }\n });\n\n if (additionalParam) {\n params.push(additionalParam);\n }\n\n return params.map(function (param) {\n if (param.name != null) {\n return encodeURIComponent(param.name) + \"=\" + encodeURIComponent(param.value);\n } else {\n return param;\n }\n }).join('&');\n };\n\n Rails.formElements = function (form, selector) {\n if (matches(form, 'form')) {\n return toArray(form.elements).filter(function (el) {\n return matches(el, selector);\n });\n } else {\n return toArray(form.querySelectorAll(selector));\n }\n };\n }).call(this);\n (function () {\n var allowAction, fire, stopEverything;\n fire = Rails.fire, stopEverything = Rails.stopEverything;\n\n Rails.handleConfirm = function (e) {\n if (!allowAction(this)) {\n return stopEverything(e);\n }\n };\n\n Rails.confirm = function (message, element) {\n return confirm(message);\n };\n\n allowAction = function allowAction(element) {\n var answer, callback, message;\n message = element.getAttribute('data-confirm');\n\n if (!message) {\n return true;\n }\n\n answer = false;\n\n if (fire(element, 'confirm')) {\n try {\n answer = Rails.confirm(message, element);\n } catch (error) {}\n\n callback = fire(element, 'confirm:complete', [answer]);\n }\n\n return answer && callback;\n };\n }).call(this);\n (function () {\n var disableFormElement, disableFormElements, disableLinkElement, enableFormElement, enableFormElements, enableLinkElement, formElements, getData, isXhrRedirect, matches, setData, stopEverything;\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, stopEverything = Rails.stopEverything, formElements = Rails.formElements;\n\n Rails.handleDisabledElement = function (e) {\n var element;\n element = this;\n\n if (element.disabled) {\n return stopEverything(e);\n }\n };\n\n Rails.enableElement = function (e) {\n var element;\n\n if (e instanceof Event) {\n if (isXhrRedirect(e)) {\n return;\n }\n\n element = e.target;\n } else {\n element = e;\n }\n\n if (matches(element, Rails.linkDisableSelector)) {\n return enableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formEnableSelector)) {\n return enableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return enableFormElements(element);\n }\n };\n\n Rails.disableElement = function (e) {\n var element;\n element = e instanceof Event ? e.target : e;\n\n if (matches(element, Rails.linkDisableSelector)) {\n return disableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formDisableSelector)) {\n return disableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return disableFormElements(element);\n }\n };\n\n disableLinkElement = function disableLinkElement(element) {\n var replacement;\n\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n\n replacement = element.getAttribute('data-disable-with');\n\n if (replacement != null) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n }\n\n element.addEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', true);\n };\n\n enableLinkElement = function enableLinkElement(element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n\n if (originalText != null) {\n element.innerHTML = originalText;\n setData(element, 'ujs:enable-with', null);\n }\n\n element.removeEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', null);\n };\n\n disableFormElements = function disableFormElements(form) {\n return formElements(form, Rails.formDisableSelector).forEach(disableFormElement);\n };\n\n disableFormElement = function disableFormElement(element) {\n var replacement;\n\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n\n replacement = element.getAttribute('data-disable-with');\n\n if (replacement != null) {\n if (matches(element, 'button')) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n } else {\n setData(element, 'ujs:enable-with', element.value);\n element.value = replacement;\n }\n }\n\n element.disabled = true;\n return setData(element, 'ujs:disabled', true);\n };\n\n enableFormElements = function enableFormElements(form) {\n return formElements(form, Rails.formEnableSelector).forEach(enableFormElement);\n };\n\n enableFormElement = function enableFormElement(element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n\n if (originalText != null) {\n if (matches(element, 'button')) {\n element.innerHTML = originalText;\n } else {\n element.value = originalText;\n }\n\n setData(element, 'ujs:enable-with', null);\n }\n\n element.disabled = false;\n return setData(element, 'ujs:disabled', null);\n };\n\n isXhrRedirect = function isXhrRedirect(event) {\n var ref, xhr;\n xhr = (ref = event.detail) != null ? ref[0] : void 0;\n return (xhr != null ? xhr.getResponseHeader(\"X-Xhr-Redirect\") : void 0) != null;\n };\n }).call(this);\n (function () {\n var stopEverything;\n stopEverything = Rails.stopEverything;\n\n Rails.handleMethod = function (e) {\n var csrfParam, csrfToken, form, formContent, href, link, method;\n link = this;\n method = link.getAttribute('data-method');\n\n if (!method) {\n return;\n }\n\n href = Rails.href(link);\n csrfToken = Rails.csrfToken();\n csrfParam = Rails.csrfParam();\n form = document.createElement('form');\n formContent = \"<input name='_method' value='\" + method + \"' type='hidden' />\";\n\n if (csrfParam != null && csrfToken != null && !Rails.isCrossDomain(href)) {\n formContent += \"<input name='\" + csrfParam + \"' value='\" + csrfToken + \"' type='hidden' />\";\n }\n\n formContent += '<input type=\"submit\" />';\n form.method = 'post';\n form.action = href;\n form.target = link.target;\n form.innerHTML = formContent;\n form.style.display = 'none';\n document.body.appendChild(form);\n form.querySelector('[type=\"submit\"]').click();\n return stopEverything(e);\n };\n }).call(this);\n (function () {\n var ajax,\n fire,\n getData,\n isCrossDomain,\n isRemote,\n matches,\n serializeElement,\n setData,\n stopEverything,\n slice = [].slice;\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, fire = Rails.fire, stopEverything = Rails.stopEverything, ajax = Rails.ajax, isCrossDomain = Rails.isCrossDomain, serializeElement = Rails.serializeElement;\n\n isRemote = function isRemote(element) {\n var value;\n value = element.getAttribute('data-remote');\n return value != null && value !== 'false';\n };\n\n Rails.handleRemote = function (e) {\n var button, data, dataType, element, method, url, withCredentials;\n element = this;\n\n if (!isRemote(element)) {\n return true;\n }\n\n if (!fire(element, 'ajax:before')) {\n fire(element, 'ajax:stopped');\n return false;\n }\n\n withCredentials = element.getAttribute('data-with-credentials');\n dataType = element.getAttribute('data-type') || 'script';\n\n if (matches(element, Rails.formSubmitSelector)) {\n button = getData(element, 'ujs:submit-button');\n method = getData(element, 'ujs:submit-button-formmethod') || element.method;\n url = getData(element, 'ujs:submit-button-formaction') || element.getAttribute('action') || location.href;\n\n if (method.toUpperCase() === 'GET') {\n url = url.replace(/\\?.*$/, '');\n }\n\n if (element.enctype === 'multipart/form-data') {\n data = new FormData(element);\n\n if (button != null) {\n data.append(button.name, button.value);\n }\n } else {\n data = serializeElement(element, button);\n }\n\n setData(element, 'ujs:submit-button', null);\n setData(element, 'ujs:submit-button-formmethod', null);\n setData(element, 'ujs:submit-button-formaction', null);\n } else if (matches(element, Rails.buttonClickSelector) || matches(element, Rails.inputChangeSelector)) {\n method = element.getAttribute('data-method');\n url = element.getAttribute('data-url');\n data = serializeElement(element, element.getAttribute('data-params'));\n } else {\n method = element.getAttribute('data-method');\n url = Rails.href(element);\n data = element.getAttribute('data-params');\n }\n\n ajax({\n type: method || 'GET',\n url: url,\n data: data,\n dataType: dataType,\n beforeSend: function beforeSend(xhr, options) {\n if (fire(element, 'ajax:beforeSend', [xhr, options])) {\n return fire(element, 'ajax:send', [xhr]);\n } else {\n fire(element, 'ajax:stopped');\n return false;\n }\n },\n success: function success() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:success', args);\n },\n error: function error() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:error', args);\n },\n complete: function complete() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:complete', args);\n },\n crossDomain: isCrossDomain(url),\n withCredentials: withCredentials != null && withCredentials !== 'false'\n });\n return stopEverything(e);\n };\n\n Rails.formSubmitButtonClick = function (e) {\n var button, form;\n button = this;\n form = button.form;\n\n if (!form) {\n return;\n }\n\n if (button.name) {\n setData(form, 'ujs:submit-button', {\n name: button.name,\n value: button.value\n });\n }\n\n setData(form, 'ujs:formnovalidate-button', button.formNoValidate);\n setData(form, 'ujs:submit-button-formaction', button.getAttribute('formaction'));\n return setData(form, 'ujs:submit-button-formmethod', button.getAttribute('formmethod'));\n };\n\n Rails.preventInsignificantClick = function (e) {\n var data, insignificantMetaClick, link, metaClick, method, nonPrimaryMouseClick;\n link = this;\n method = (link.getAttribute('data-method') || 'GET').toUpperCase();\n data = link.getAttribute('data-params');\n metaClick = e.metaKey || e.ctrlKey;\n insignificantMetaClick = metaClick && method === 'GET' && !data;\n nonPrimaryMouseClick = e.button != null && e.button !== 0;\n\n if (nonPrimaryMouseClick || insignificantMetaClick) {\n return e.stopImmediatePropagation();\n }\n };\n }).call(this);\n (function () {\n var $, CSRFProtection, delegate, disableElement, enableElement, fire, formSubmitButtonClick, getData, handleConfirm, handleDisabledElement, handleMethod, handleRemote, loadCSPNonce, preventInsignificantClick, refreshCSRFTokens;\n fire = Rails.fire, delegate = Rails.delegate, getData = Rails.getData, $ = Rails.$, refreshCSRFTokens = Rails.refreshCSRFTokens, CSRFProtection = Rails.CSRFProtection, loadCSPNonce = Rails.loadCSPNonce, enableElement = Rails.enableElement, disableElement = Rails.disableElement, handleDisabledElement = Rails.handleDisabledElement, handleConfirm = Rails.handleConfirm, preventInsignificantClick = Rails.preventInsignificantClick, handleRemote = Rails.handleRemote, formSubmitButtonClick = Rails.formSubmitButtonClick, handleMethod = Rails.handleMethod;\n\n if (typeof jQuery !== \"undefined\" && jQuery !== null && jQuery.ajax != null) {\n if (jQuery.rails) {\n throw new Error('If you load both jquery_ujs and rails-ujs, use rails-ujs only.');\n }\n\n jQuery.rails = Rails;\n jQuery.ajaxPrefilter(function (options, originalOptions, xhr) {\n if (!options.crossDomain) {\n return CSRFProtection(xhr);\n }\n });\n }\n\n Rails.start = function () {\n if (window._rails_loaded) {\n throw new Error('rails-ujs has already been loaded!');\n }\n\n window.addEventListener('pageshow', function () {\n $(Rails.formEnableSelector).forEach(function (el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n return $(Rails.linkDisableSelector).forEach(function (el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n });\n delegate(document, Rails.linkDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.linkDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.linkClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.linkClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.linkClickSelector, 'click', handleConfirm);\n delegate(document, Rails.linkClickSelector, 'click', disableElement);\n delegate(document, Rails.linkClickSelector, 'click', handleRemote);\n delegate(document, Rails.linkClickSelector, 'click', handleMethod);\n delegate(document, Rails.buttonClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.buttonClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleConfirm);\n delegate(document, Rails.buttonClickSelector, 'click', disableElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleRemote);\n delegate(document, Rails.inputChangeSelector, 'change', handleDisabledElement);\n delegate(document, Rails.inputChangeSelector, 'change', handleConfirm);\n delegate(document, Rails.inputChangeSelector, 'change', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', handleDisabledElement);\n delegate(document, Rails.formSubmitSelector, 'submit', handleConfirm);\n delegate(document, Rails.formSubmitSelector, 'submit', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', function (e) {\n return setTimeout(function () {\n return disableElement(e);\n }, 13);\n });\n delegate(document, Rails.formSubmitSelector, 'ajax:send', disableElement);\n delegate(document, Rails.formSubmitSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.formInputClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.formInputClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.formInputClickSelector, 'click', handleConfirm);\n delegate(document, Rails.formInputClickSelector, 'click', formSubmitButtonClick);\n document.addEventListener('DOMContentLoaded', refreshCSRFTokens);\n document.addEventListener('DOMContentLoaded', loadCSPNonce);\n return window._rails_loaded = true;\n };\n\n if (window.Rails === Rails && fire(document, 'rails:attachBindings')) {\n Rails.start();\n }\n }).call(this);\n }).call(this);\n\n if ((typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) === \"object\" && module.exports) {\n module.exports = Rails;\n } else if (typeof define === \"function\" && define.amd) {\n define(Rails);\n }\n}).call(this);","define(function () {\n \"use strict\";\n\n return Object.getPrototypeOf;\n});","define([\"./arr\"], function (arr) {\n \"use strict\"; // Support: IE 9 - 11+, Edge 18+, Android Browser 4.0 - 4.3 only, iOS 7 - 11 only, Safari 11 only,\n // Firefox <= 61 only\n // Provide fallback for browsers without Array#flat.\n\n return arr.flat ? function (array) {\n return arr.flat.call(array);\n } : function (array) {\n return arr.concat.apply([], array);\n };\n});","define([\"./arr\"], function (arr) {\n \"use strict\";\n\n return arr.push;\n});","define([\"./class2type\"], function (class2type) {\n \"use strict\";\n\n return class2type.toString;\n});","define([\"./hasOwn\"], function (hasOwn) {\n \"use strict\";\n\n return hasOwn.toString;\n});","define([\"../var/document\"], function (document) {\n \"use strict\";\n\n var preservedScriptAttributes = {\n type: true,\n src: true,\n nonce: true,\n noModule: true\n };\n\n function DOMEval(code, node, doc) {\n doc = doc || document;\n var i,\n val,\n script = doc.createElement(\"script\");\n script.text = code;\n\n if (node) {\n for (i in preservedScriptAttributes) {\n // Support: Firefox 64+, Edge 18+\n // Some browsers don't support the \"nonce\" property on scripts.\n // On the other hand, just using `getAttribute` is not enough as\n // the `nonce` attribute is reset to an empty string whenever it\n // becomes browsing-context connected.\n // See https://github.com/whatwg/html/issues/2369\n // See https://html.spec.whatwg.org/#nonce-attributes\n // The `node.getAttribute` check was added for the sake of\n // `jQuery.globalEval` so that it can fake a nonce-containing node\n // via an object.\n val = node[i] || node.getAttribute && node.getAttribute(i);\n\n if (val) {\n script.setAttribute(i, val);\n }\n }\n }\n\n doc.head.appendChild(script).parentNode.removeChild(script);\n }\n\n return DOMEval;\n});","define([\"../../core\", \"../../selector\"], function (jQuery) {\n \"use strict\";\n\n return jQuery.expr.match.needsContext;\n});","define(function () {\n \"use strict\"; // rsingleTag matches a string consisting of a single HTML element with no attributes\n // and captures the element's name\n\n return /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i;\n});","define([\"../core\", \"../var/indexOf\", \"../var/isFunction\", \"./var/rneedsContext\", \"../selector\"], function (jQuery, indexOf, isFunction, rneedsContext) {\n \"use strict\"; // Implement the identical functionality for filter and not\n\n function winnow(elements, qualifier, not) {\n if (isFunction(qualifier)) {\n return jQuery.grep(elements, function (elem, i) {\n return !!qualifier.call(elem, i, elem) !== not;\n });\n } // Single element\n\n\n if (qualifier.nodeType) {\n return jQuery.grep(elements, function (elem) {\n return elem === qualifier !== not;\n });\n } // Arraylike of elements (jQuery, arguments, Array)\n\n\n if (typeof qualifier !== \"string\") {\n return jQuery.grep(elements, function (elem) {\n return indexOf.call(qualifier, elem) > -1 !== not;\n });\n } // Filtered directly for both simple and complex selectors\n\n\n return jQuery.filter(qualifier, elements, not);\n }\n\n jQuery.filter = function (expr, elems, not) {\n var elem = elems[0];\n\n if (not) {\n expr = \":not(\" + expr + \")\";\n }\n\n if (elems.length === 1 && elem.nodeType === 1) {\n return jQuery.find.matchesSelector(elem, expr) ? [elem] : [];\n }\n\n return jQuery.find.matches(expr, jQuery.grep(elems, function (elem) {\n return elem.nodeType === 1;\n }));\n };\n\n jQuery.fn.extend({\n find: function find(selector) {\n var i,\n ret,\n len = this.length,\n self = this;\n\n if (typeof selector !== \"string\") {\n return this.pushStack(jQuery(selector).filter(function () {\n for (i = 0; i < len; i++) {\n if (jQuery.contains(self[i], this)) {\n return true;\n }\n }\n }));\n }\n\n ret = this.pushStack([]);\n\n for (i = 0; i < len; i++) {\n jQuery.find(selector, self[i], ret);\n }\n\n return len > 1 ? jQuery.uniqueSort(ret) : ret;\n },\n filter: function filter(selector) {\n return this.pushStack(winnow(this, selector || [], false));\n },\n not: function not(selector) {\n return this.pushStack(winnow(this, selector || [], true));\n },\n is: function is(selector) {\n return !!winnow(this, // If this is a positional/relative selector, check membership in the returned set\n // so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n typeof selector === \"string\" && rneedsContext.test(selector) ? jQuery(selector) : selector || [], false).length;\n }\n });\n});","define([\"../core\", \"../var/document\", \"../core/readyException\", \"../deferred\"], function (jQuery, document) {\n \"use strict\"; // The deferred used on DOM ready\n\n var readyList = jQuery.Deferred();\n\n jQuery.fn.ready = function (fn) {\n readyList.then(fn) // Wrap jQuery.readyException in a function so that the lookup\n // happens at the time of error handling instead of callback\n // registration.\n .catch(function (error) {\n jQuery.readyException(error);\n });\n return this;\n };\n\n jQuery.extend({\n // Is the DOM ready to be used? Set to true once it occurs.\n isReady: false,\n // A counter to track how many items to wait for before\n // the ready event fires. See #6781\n readyWait: 1,\n // Handle when the DOM is ready\n ready: function ready(wait) {\n // Abort if there are pending holds or we're already ready\n if (wait === true ? --jQuery.readyWait : jQuery.isReady) {\n return;\n } // Remember that the DOM is ready\n\n\n jQuery.isReady = true; // If a normal DOM Ready event fired, decrement, and wait if need be\n\n if (wait !== true && --jQuery.readyWait > 0) {\n return;\n } // If there are functions bound, to execute\n\n\n readyList.resolveWith(document, [jQuery]);\n }\n });\n jQuery.ready.then = readyList.then; // The ready event handler and self cleanup method\n\n function completed() {\n document.removeEventListener(\"DOMContentLoaded\", completed);\n window.removeEventListener(\"load\", completed);\n jQuery.ready();\n } // Catch cases where $(document).ready() is called\n // after the browser event has already occurred.\n // Support: IE <=9 - 10 only\n // Older IE sometimes signals \"interactive\" too soon\n\n\n if (document.readyState === \"complete\" || document.readyState !== \"loading\" && !document.documentElement.doScroll) {\n // Handle it asynchronously to allow scripts the opportunity to delay ready\n window.setTimeout(jQuery.ready);\n } else {\n // Use the handy event callback\n document.addEventListener(\"DOMContentLoaded\", completed); // A fallback to window.onload, that will always work\n\n window.addEventListener(\"load\", completed);\n }\n});","define([\"../core\", \"../core/camelCase\", \"../var/rnothtmlwhite\", \"./var/acceptData\"], function (jQuery, camelCase, rnothtmlwhite, acceptData) {\n \"use strict\";\n\n function Data() {\n this.expando = jQuery.expando + Data.uid++;\n }\n\n Data.uid = 1;\n Data.prototype = {\n cache: function cache(owner) {\n // Check if the owner object already has a cache\n var value = owner[this.expando]; // If not, create one\n\n if (!value) {\n value = {}; // We can accept data for non-element nodes in modern browsers,\n // but we should not, see #8335.\n // Always return an empty object.\n\n if (acceptData(owner)) {\n // If it is a node unlikely to be stringify-ed or looped over\n // use plain assignment\n if (owner.nodeType) {\n owner[this.expando] = value; // Otherwise secure it in a non-enumerable property\n // configurable must be true to allow the property to be\n // deleted when data is removed\n } else {\n Object.defineProperty(owner, this.expando, {\n value: value,\n configurable: true\n });\n }\n }\n }\n\n return value;\n },\n set: function set(owner, data, value) {\n var prop,\n cache = this.cache(owner); // Handle: [ owner, key, value ] args\n // Always use camelCase key (gh-2257)\n\n if (typeof data === \"string\") {\n cache[camelCase(data)] = value; // Handle: [ owner, { properties } ] args\n } else {\n // Copy the properties one-by-one to the cache object\n for (prop in data) {\n cache[camelCase(prop)] = data[prop];\n }\n }\n\n return cache;\n },\n get: function get(owner, key) {\n return key === undefined ? this.cache(owner) : // Always use camelCase key (gh-2257)\n owner[this.expando] && owner[this.expando][camelCase(key)];\n },\n access: function access(owner, key, value) {\n // In cases where either:\n //\n // 1. No key was specified\n // 2. A string key was specified, but no value provided\n //\n // Take the \"read\" path and allow the get method to determine\n // which value to return, respectively either:\n //\n // 1. The entire cache object\n // 2. The data stored at the key\n //\n if (key === undefined || key && typeof key === \"string\" && value === undefined) {\n return this.get(owner, key);\n } // When the key is not a string, or both a key and value\n // are specified, set or extend (existing objects) with either:\n //\n // 1. An object of properties\n // 2. A key and value\n //\n\n\n this.set(owner, key, value); // Since the \"set\" path can have two possible entry points\n // return the expected data based on which path was taken[*]\n\n return value !== undefined ? value : key;\n },\n remove: function remove(owner, key) {\n var i,\n cache = owner[this.expando];\n\n if (cache === undefined) {\n return;\n }\n\n if (key !== undefined) {\n // Support array or space separated string of keys\n if (Array.isArray(key)) {\n // If key is an array of keys...\n // We always set camelCase keys, so remove that.\n key = key.map(camelCase);\n } else {\n key = camelCase(key); // If a key with the spaces exists, use it.\n // Otherwise, create an array by matching non-whitespace\n\n key = key in cache ? [key] : key.match(rnothtmlwhite) || [];\n }\n\n i = key.length;\n\n while (i--) {\n delete cache[key[i]];\n }\n } // Remove the expando if there's no more data\n\n\n if (key === undefined || jQuery.isEmptyObject(cache)) {\n // Support: Chrome <=35 - 45\n // Webkit & Blink performance suffers when deleting properties\n // from DOM nodes, so set to undefined instead\n // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n if (owner.nodeType) {\n owner[this.expando] = undefined;\n } else {\n delete owner[this.expando];\n }\n }\n },\n hasData: function hasData(owner) {\n var cache = owner[this.expando];\n return cache !== undefined && !jQuery.isEmptyObject(cache);\n }\n };\n return Data;\n});","define([\"../Data\"], function (Data) {\n \"use strict\";\n\n return new Data();\n});","define(function () {\n \"use strict\";\n\n return /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/.source;\n});","define([\"../../core\", \"../../core/isAttached\" // css is assumed\n], function (jQuery, isAttached) {\n \"use strict\"; // isHiddenWithinTree reports if an element has a non-\"none\" display style (inline and/or\n // through the CSS cascade), which is useful in deciding whether or not to make it visible.\n // It differs from the :hidden selector (jQuery.expr.pseudos.hidden) in two important ways:\n // * A hidden ancestor does not force an element to be classified as hidden.\n // * Being disconnected from the document does not force an element to be classified as hidden.\n // These differences improve the behavior of .toggle() et al. when applied to elements that are\n // detached or contained within hidden ancestors (gh-2404, gh-2863).\n\n return function (elem, el) {\n // isHiddenWithinTree might be called from jQuery#filter function;\n // in that case, element will be second argument\n elem = el || elem; // Inline style trumps all\n\n return elem.style.display === \"none\" || elem.style.display === \"\" && // Otherwise, check computed style\n // Support: Firefox <=43 - 45\n // Disconnected elements can have computed display: none, so first confirm that elem is\n // in the document.\n isAttached(elem) && jQuery.css(elem, \"display\") === \"none\";\n };\n});","define([\"../core\", \"../var/rcssNum\"], function (jQuery, rcssNum) {\n \"use strict\";\n\n function adjustCSS(elem, prop, valueParts, tween) {\n var adjusted,\n scale,\n maxIterations = 20,\n currentValue = tween ? function () {\n return tween.cur();\n } : function () {\n return jQuery.css(elem, prop, \"\");\n },\n initial = currentValue(),\n unit = valueParts && valueParts[3] || (jQuery.cssNumber[prop] ? \"\" : \"px\"),\n // Starting value computation is required for potential unit mismatches\n initialInUnit = elem.nodeType && (jQuery.cssNumber[prop] || unit !== \"px\" && +initial) && rcssNum.exec(jQuery.css(elem, prop));\n\n if (initialInUnit && initialInUnit[3] !== unit) {\n // Support: Firefox <=54\n // Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n initial = initial / 2; // Trust units reported by jQuery.css\n\n unit = unit || initialInUnit[3]; // Iteratively approximate from a nonzero starting point\n\n initialInUnit = +initial || 1;\n\n while (maxIterations--) {\n // Evaluate and update our best guess (doubling guesses that zero out).\n // Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n jQuery.style(elem, prop, initialInUnit + unit);\n\n if ((1 - scale) * (1 - (scale = currentValue() / initial || 0.5)) <= 0) {\n maxIterations = 0;\n }\n\n initialInUnit = initialInUnit / scale;\n }\n\n initialInUnit = initialInUnit * 2;\n jQuery.style(elem, prop, initialInUnit + unit); // Make sure we update the tween properties later on\n\n valueParts = valueParts || [];\n }\n\n if (valueParts) {\n initialInUnit = +initialInUnit || +initial || 0; // Apply relative offset (+=/-=) if specified\n\n adjusted = valueParts[1] ? initialInUnit + (valueParts[1] + 1) * valueParts[2] : +valueParts[2];\n\n if (tween) {\n tween.unit = unit;\n tween.start = initialInUnit;\n tween.end = adjusted;\n }\n }\n\n return adjusted;\n }\n\n return adjustCSS;\n});","define(function () {\n \"use strict\"; // rtagName captures the name from the first start tag in a string of HTML\n // https://html.spec.whatwg.org/multipage/syntax.html#tag-open-state\n // https://html.spec.whatwg.org/multipage/syntax.html#tag-name-state\n\n return /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i;\n});","define(function () {\n \"use strict\";\n\n return /^$|^module$|\\/(?:java|ecma)script/i;\n});","define([\"./support\"], function (support) {\n \"use strict\"; // We have to close these tags to support XHTML (#13200)\n\n var wrapMap = {\n // XHTML parsers do not magically insert elements in the\n // same way that tag soup parsers do. So we cannot shorten\n // this by omitting <tbody> or other required elements.\n thead: [1, \"<table>\", \"</table>\"],\n col: [2, \"<table><colgroup>\", \"</colgroup></table>\"],\n tr: [2, \"<table><tbody>\", \"</tbody></table>\"],\n td: [3, \"<table><tbody><tr>\", \"</tr></tbody></table>\"],\n _default: [0, \"\", \"\"]\n };\n wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\n wrapMap.th = wrapMap.td; // Support: IE <=9 only\n\n if (!support.option) {\n wrapMap.optgroup = wrapMap.option = [1, \"<select multiple='multiple'>\", \"</select>\"];\n }\n\n return wrapMap;\n});","define([\"../var/document\", \"../var/support\"], function (document, support) {\n \"use strict\";\n\n (function () {\n var fragment = document.createDocumentFragment(),\n div = fragment.appendChild(document.createElement(\"div\")),\n input = document.createElement(\"input\"); // Support: Android 4.0 - 4.3 only\n // Check state lost if the name is set (#11217)\n // Support: Windows Web Apps (WWA)\n // `name` and `type` must use .setAttribute for WWA (#14901)\n\n input.setAttribute(\"type\", \"radio\");\n input.setAttribute(\"checked\", \"checked\");\n input.setAttribute(\"name\", \"t\");\n div.appendChild(input); // Support: Android <=4.1 only\n // Older WebKit doesn't clone checked state correctly in fragments\n\n support.checkClone = div.cloneNode(true).cloneNode(true).lastChild.checked; // Support: IE <=11 only\n // Make sure textarea (and checkbox) defaultValue is properly cloned\n\n div.innerHTML = \"<textarea>x</textarea>\";\n support.noCloneChecked = !!div.cloneNode(true).lastChild.defaultValue; // Support: IE <=9 only\n // IE <=9 replaces <option> tags with their contents when inserted outside of\n // the select element.\n\n div.innerHTML = \"<option></option>\";\n support.option = !!div.lastChild;\n })();\n\n return support;\n});","define([\"../core\", \"../core/nodeName\"], function (jQuery, nodeName) {\n \"use strict\";\n\n function getAll(context, tag) {\n // Support: IE <=9 - 11 only\n // Use typeof to avoid zero-argument method invocation on host objects (#15151)\n var ret;\n\n if (typeof context.getElementsByTagName !== \"undefined\") {\n ret = context.getElementsByTagName(tag || \"*\");\n } else if (typeof context.querySelectorAll !== \"undefined\") {\n ret = context.querySelectorAll(tag || \"*\");\n } else {\n ret = [];\n }\n\n if (tag === undefined || tag && nodeName(context, tag)) {\n return jQuery.merge([context], ret);\n }\n\n return ret;\n }\n\n return getAll;\n});","define([\"../data/var/dataPriv\"], function (dataPriv) {\n \"use strict\"; // Mark scripts as having already been evaluated\n\n function setGlobalEval(elems, refElements) {\n var i = 0,\n l = elems.length;\n\n for (; i < l; i++) {\n dataPriv.set(elems[i], \"globalEval\", !refElements || dataPriv.get(refElements[i], \"globalEval\"));\n }\n }\n\n return setGlobalEval;\n});","define([\"../core\", \"../core/toType\", \"../core/isAttached\", \"./var/rtagName\", \"./var/rscriptType\", \"./wrapMap\", \"./getAll\", \"./setGlobalEval\"], function (jQuery, toType, isAttached, rtagName, rscriptType, wrapMap, getAll, setGlobalEval) {\n \"use strict\";\n\n var rhtml = /<|&#?\\w+;/;\n\n function buildFragment(elems, context, scripts, selection, ignored) {\n var elem,\n tmp,\n tag,\n wrap,\n attached,\n j,\n fragment = context.createDocumentFragment(),\n nodes = [],\n i = 0,\n l = elems.length;\n\n for (; i < l; i++) {\n elem = elems[i];\n\n if (elem || elem === 0) {\n // Add nodes directly\n if (toType(elem) === \"object\") {\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n jQuery.merge(nodes, elem.nodeType ? [elem] : elem); // Convert non-html into a text node\n } else if (!rhtml.test(elem)) {\n nodes.push(context.createTextNode(elem)); // Convert html into DOM nodes\n } else {\n tmp = tmp || fragment.appendChild(context.createElement(\"div\")); // Deserialize a standard representation\n\n tag = (rtagName.exec(elem) || [\"\", \"\"])[1].toLowerCase();\n wrap = wrapMap[tag] || wrapMap._default;\n tmp.innerHTML = wrap[1] + jQuery.htmlPrefilter(elem) + wrap[2]; // Descend through wrappers to the right content\n\n j = wrap[0];\n\n while (j--) {\n tmp = tmp.lastChild;\n } // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n\n\n jQuery.merge(nodes, tmp.childNodes); // Remember the top-level container\n\n tmp = fragment.firstChild; // Ensure the created nodes are orphaned (#12392)\n\n tmp.textContent = \"\";\n }\n }\n } // Remove wrapper from fragment\n\n\n fragment.textContent = \"\";\n i = 0;\n\n while (elem = nodes[i++]) {\n // Skip elements already in the context collection (trac-4087)\n if (selection && jQuery.inArray(elem, selection) > -1) {\n if (ignored) {\n ignored.push(elem);\n }\n\n continue;\n }\n\n attached = isAttached(elem); // Append to fragment\n\n tmp = getAll(fragment.appendChild(elem), \"script\"); // Preserve script evaluation history\n\n if (attached) {\n setGlobalEval(tmp);\n } // Capture executables\n\n\n if (scripts) {\n j = 0;\n\n while (elem = tmp[j++]) {\n if (rscriptType.test(elem.type || \"\")) {\n scripts.push(elem);\n }\n }\n }\n }\n\n return fragment;\n }\n\n return buildFragment;\n});","define(function () {\n \"use strict\";\n\n return function (elem) {\n // Support: IE <=11 only, Firefox <=30 (#15098, #14150)\n // IE throws on elements created in popups\n // FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n var view = elem.ownerDocument.defaultView;\n\n if (!view || !view.opener) {\n view = window;\n }\n\n return view.getComputedStyle(elem);\n };\n});","define([\"../core\", \"../core/isAttached\", \"./var/rboxStyle\", \"./var/rnumnonpx\", \"./var/getStyles\", \"./support\"], function (jQuery, isAttached, rboxStyle, rnumnonpx, getStyles, support) {\n \"use strict\";\n\n function curCSS(elem, name, computed) {\n var width,\n minWidth,\n maxWidth,\n ret,\n // Support: Firefox 51+\n // Retrieving style before computed somehow\n // fixes an issue with getting wrong values\n // on detached elements\n style = elem.style;\n computed = computed || getStyles(elem); // getPropertyValue is needed for:\n // .css('filter') (IE 9 only, #12537)\n // .css('--customProperty) (#3144)\n\n if (computed) {\n ret = computed.getPropertyValue(name) || computed[name];\n\n if (ret === \"\" && !isAttached(elem)) {\n ret = jQuery.style(elem, name);\n } // A tribute to the \"awesome hack by Dean Edwards\"\n // Android Browser returns percentage for some values,\n // but width seems to be reliably pixels.\n // This is against the CSSOM draft spec:\n // https://drafts.csswg.org/cssom/#resolved-values\n\n\n if (!support.pixelBoxStyles() && rnumnonpx.test(ret) && rboxStyle.test(name)) {\n // Remember the original values\n width = style.width;\n minWidth = style.minWidth;\n maxWidth = style.maxWidth; // Put in the new values to get a computed value out\n\n style.minWidth = style.maxWidth = style.width = ret;\n ret = computed.width; // Revert the changed values\n\n style.width = width;\n style.minWidth = minWidth;\n style.maxWidth = maxWidth;\n }\n }\n\n return ret !== undefined ? // Support: IE <=9 - 11 only\n // IE returns zIndex value as an integer.\n ret + \"\" : ret;\n }\n\n return curCSS;\n});","define(function () {\n \"use strict\";\n\n function addGetHookIf(conditionFn, hookFn) {\n // Define the hook, we'll check on the first run if it's really needed.\n return {\n get: function get() {\n if (conditionFn()) {\n // Hook not needed (or it's not possible to use it due\n // to missing dependency), remove it.\n delete this.get;\n return;\n } // Hook needed; redefine it so that the support test is not executed again.\n\n\n return (this.get = hookFn).apply(this, arguments);\n }\n };\n }\n\n return addGetHookIf;\n});","define([\"../var/document\", \"../core\"], function (document, jQuery) {\n \"use strict\";\n\n var cssPrefixes = [\"Webkit\", \"Moz\", \"ms\"],\n emptyStyle = document.createElement(\"div\").style,\n vendorProps = {}; // Return a vendor-prefixed property or undefined\n\n function vendorPropName(name) {\n // Check for vendor prefixed names\n var capName = name[0].toUpperCase() + name.slice(1),\n i = cssPrefixes.length;\n\n while (i--) {\n name = cssPrefixes[i] + capName;\n\n if (name in emptyStyle) {\n return name;\n }\n }\n } // Return a potentially-mapped jQuery.cssProps or vendor prefixed property\n\n\n function finalPropName(name) {\n var final = jQuery.cssProps[name] || vendorProps[name];\n\n if (final) {\n return final;\n }\n\n if (name in emptyStyle) {\n return name;\n }\n\n return vendorProps[name] = vendorPropName(name) || name;\n }\n\n return finalPropName;\n});","define([\"../core\", \"../core/access\", \"./support\", \"../selector\"], function (jQuery, access, support) {\n \"use strict\";\n\n var rfocusable = /^(?:input|select|textarea|button)$/i,\n rclickable = /^(?:a|area)$/i;\n jQuery.fn.extend({\n prop: function prop(name, value) {\n return access(this, jQuery.prop, name, value, arguments.length > 1);\n },\n removeProp: function removeProp(name) {\n return this.each(function () {\n delete this[jQuery.propFix[name] || name];\n });\n }\n });\n jQuery.extend({\n prop: function prop(elem, name, value) {\n var ret,\n hooks,\n nType = elem.nodeType; // Don't get/set properties on text, comment and attribute nodes\n\n if (nType === 3 || nType === 8 || nType === 2) {\n return;\n }\n\n if (nType !== 1 || !jQuery.isXMLDoc(elem)) {\n // Fix name and attach hooks\n name = jQuery.propFix[name] || name;\n hooks = jQuery.propHooks[name];\n }\n\n if (value !== undefined) {\n if (hooks && \"set\" in hooks && (ret = hooks.set(elem, value, name)) !== undefined) {\n return ret;\n }\n\n return elem[name] = value;\n }\n\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, name)) !== null) {\n return ret;\n }\n\n return elem[name];\n },\n propHooks: {\n tabIndex: {\n get: function get(elem) {\n // Support: IE <=9 - 11 only\n // elem.tabIndex doesn't always return the\n // correct value when it hasn't been explicitly set\n // https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/\n // Use proper attribute retrieval(#12072)\n var tabindex = jQuery.find.attr(elem, \"tabindex\");\n\n if (tabindex) {\n return parseInt(tabindex, 10);\n }\n\n if (rfocusable.test(elem.nodeName) || rclickable.test(elem.nodeName) && elem.href) {\n return 0;\n }\n\n return -1;\n }\n }\n },\n propFix: {\n \"for\": \"htmlFor\",\n \"class\": \"className\"\n }\n }); // Support: IE <=11 only\n // Accessing the selectedIndex property\n // forces the browser to respect setting selected\n // on the option\n // The getter ensures a default option is selected\n // when in an optgroup\n // eslint rule \"no-unused-expressions\" is disabled for this code\n // since it considers such accessions noop\n\n if (!support.optSelected) {\n jQuery.propHooks.selected = {\n get: function get(elem) {\n /* eslint no-unused-expressions: \"off\" */\n var parent = elem.parentNode;\n\n if (parent && parent.parentNode) {\n parent.parentNode.selectedIndex;\n }\n\n return null;\n },\n set: function set(elem) {\n /* eslint no-unused-expressions: \"off\" */\n var parent = elem.parentNode;\n\n if (parent) {\n parent.selectedIndex;\n\n if (parent.parentNode) {\n parent.parentNode.selectedIndex;\n }\n }\n }\n };\n }\n\n jQuery.each([\"tabIndex\", \"readOnly\", \"maxLength\", \"cellSpacing\", \"cellPadding\", \"rowSpan\", \"colSpan\", \"useMap\", \"frameBorder\", \"contentEditable\"], function () {\n jQuery.propFix[this.toLowerCase()] = this;\n });\n});","define(function () {\n \"use strict\";\n\n return {\n guid: Date.now()\n };\n});","define(function () {\n \"use strict\";\n\n return /\\?/;\n});","define([\"../core\"], function (jQuery) {\n \"use strict\"; // Cross-browser xml parsing\n\n jQuery.parseXML = function (data) {\n var xml, parserErrorElem;\n\n if (!data || typeof data !== \"string\") {\n return null;\n } // Support: IE 9 - 11 only\n // IE throws on parseFromString with invalid input.\n\n\n try {\n xml = new window.DOMParser().parseFromString(data, \"text/xml\");\n } catch (e) {}\n\n parserErrorElem = xml && xml.getElementsByTagName(\"parsererror\")[0];\n\n if (!xml || parserErrorElem) {\n jQuery.error(\"Invalid XML: \" + (parserErrorElem ? jQuery.map(parserErrorElem.childNodes, function (el) {\n return el.textContent;\n }).join(\"\\n\") : data));\n }\n\n return xml;\n };\n\n return jQuery.parseXML;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\ndefine([\"./core\", \"./core/toType\", \"./var/rcheckableType\", \"./var/isFunction\", \"./core/init\", \"./traversing\", // filter\n\"./attributes/prop\"], function (jQuery, toType, rcheckableType, isFunction) {\n \"use strict\";\n\n var rbracket = /\\[\\]$/,\n rCRLF = /\\r?\\n/g,\n rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n rsubmittable = /^(?:input|select|textarea|keygen)/i;\n\n function buildParams(prefix, obj, traditional, add) {\n var name;\n\n if (Array.isArray(obj)) {\n // Serialize array item.\n jQuery.each(obj, function (i, v) {\n if (traditional || rbracket.test(prefix)) {\n // Treat each array item as a scalar.\n add(prefix, v);\n } else {\n // Item is non-scalar (array or object), encode its numeric index.\n buildParams(prefix + \"[\" + (_typeof(v) === \"object\" && v != null ? i : \"\") + \"]\", v, traditional, add);\n }\n });\n } else if (!traditional && toType(obj) === \"object\") {\n // Serialize object item.\n for (name in obj) {\n buildParams(prefix + \"[\" + name + \"]\", obj[name], traditional, add);\n }\n } else {\n // Serialize scalar item.\n add(prefix, obj);\n }\n } // Serialize an array of form elements or a set of\n // key/values into a query string\n\n\n jQuery.param = function (a, traditional) {\n var prefix,\n s = [],\n add = function add(key, valueOrFunction) {\n // If value is a function, invoke it and use its return value\n var value = isFunction(valueOrFunction) ? valueOrFunction() : valueOrFunction;\n s[s.length] = encodeURIComponent(key) + \"=\" + encodeURIComponent(value == null ? \"\" : value);\n };\n\n if (a == null) {\n return \"\";\n } // If an array was passed in, assume that it is an array of form elements.\n\n\n if (Array.isArray(a) || a.jquery && !jQuery.isPlainObject(a)) {\n // Serialize the form elements\n jQuery.each(a, function () {\n add(this.name, this.value);\n });\n } else {\n // If traditional, encode the \"old\" way (the way 1.3.2 or older\n // did it), otherwise encode params recursively.\n for (prefix in a) {\n buildParams(prefix, a[prefix], traditional, add);\n }\n } // Return the resulting serialization\n\n\n return s.join(\"&\");\n };\n\n jQuery.fn.extend({\n serialize: function serialize() {\n return jQuery.param(this.serializeArray());\n },\n serializeArray: function serializeArray() {\n return this.map(function () {\n // Can add propHook for \"elements\" to filter or add form elements\n var elements = jQuery.prop(this, \"elements\");\n return elements ? jQuery.makeArray(elements) : this;\n }).filter(function () {\n var type = this.type; // Use .is( \":disabled\" ) so that fieldset[disabled] works\n\n return this.name && !jQuery(this).is(\":disabled\") && rsubmittable.test(this.nodeName) && !rsubmitterTypes.test(type) && (this.checked || !rcheckableType.test(type));\n }).map(function (_i, elem) {\n var val = jQuery(this).val();\n\n if (val == null) {\n return null;\n }\n\n if (Array.isArray(val)) {\n return jQuery.map(val, function (val) {\n return {\n name: elem.name,\n value: val.replace(rCRLF, \"\\r\\n\")\n };\n });\n }\n\n return {\n name: elem.name,\n value: val.replace(rCRLF, \"\\r\\n\")\n };\n }).get();\n }\n });\n return jQuery;\n});","define([\"../core\", \"../var/document\", \"./var/rsingleTag\", \"../manipulation/buildFragment\", // This is the only module that needs core/support\n\"./support\"], function (jQuery, document, rsingleTag, buildFragment, support) {\n \"use strict\"; // Argument \"data\" should be string of html\n // context (optional): If specified, the fragment will be created in this context,\n // defaults to document\n // keepScripts (optional): If true, will include scripts passed in the html string\n\n jQuery.parseHTML = function (data, context, keepScripts) {\n if (typeof data !== \"string\") {\n return [];\n }\n\n if (typeof context === \"boolean\") {\n keepScripts = context;\n context = false;\n }\n\n var base, parsed, scripts;\n\n if (!context) {\n // Stop scripts or inline event handlers from being executed immediately\n // by using document.implementation\n if (support.createHTMLDocument) {\n context = document.implementation.createHTMLDocument(\"\"); // Set the base href for the created document\n // so any parsed elements with URLs\n // are based on the document's URL (gh-2965)\n\n base = context.createElement(\"base\");\n base.href = document.location.href;\n context.head.appendChild(base);\n } else {\n context = document;\n }\n }\n\n parsed = rsingleTag.exec(data);\n scripts = !keepScripts && []; // Single tag\n\n if (parsed) {\n return [context.createElement(parsed[1])];\n }\n\n parsed = buildFragment([data], context, scripts);\n\n if (scripts && scripts.length) {\n jQuery(scripts).remove();\n }\n\n return jQuery.merge([], parsed.childNodes);\n };\n\n return jQuery.parseHTML;\n});","define([\"./fnToString\"], function (fnToString) {\n \"use strict\";\n\n return fnToString.call(Object);\n});","define([\"./core\", \"../external/sizzle/dist/sizzle\"], function (jQuery, Sizzle) {\n \"use strict\";\n\n jQuery.find = Sizzle;\n jQuery.expr = Sizzle.selectors; // Deprecated\n\n jQuery.expr[\":\"] = jQuery.expr.pseudos;\n jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\n jQuery.text = Sizzle.getText;\n jQuery.isXMLDoc = Sizzle.isXML;\n jQuery.contains = Sizzle.contains;\n jQuery.escapeSelector = Sizzle.escape;\n});","/*!\n * Sizzle CSS Selector Engine v2.3.6\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://js.foundation/\n *\n * Date: 2021-02-16\n */\n(function (window) {\n var i,\n support,\n Expr,\n getText,\n isXML,\n tokenize,\n compile,\n select,\n outermostContext,\n sortInput,\n hasDuplicate,\n // Local document vars\n setDocument,\n document,\n docElem,\n documentIsHTML,\n rbuggyQSA,\n rbuggyMatches,\n matches,\n contains,\n // Instance-specific data\n expando = \"sizzle\" + 1 * new Date(),\n preferredDoc = window.document,\n dirruns = 0,\n done = 0,\n classCache = createCache(),\n tokenCache = createCache(),\n compilerCache = createCache(),\n nonnativeSelectorCache = createCache(),\n sortOrder = function sortOrder(a, b) {\n if (a === b) {\n hasDuplicate = true;\n }\n\n return 0;\n },\n // Instance methods\n hasOwn = {}.hasOwnProperty,\n arr = [],\n pop = arr.pop,\n pushNative = arr.push,\n push = arr.push,\n slice = arr.slice,\n // Use a stripped-down indexOf as it's faster than native\n // https://jsperf.com/thor-indexof-vs-for/5\n indexOf = function indexOf(list, elem) {\n var i = 0,\n len = list.length;\n\n for (; i < len; i++) {\n if (list[i] === elem) {\n return i;\n }\n }\n\n return -1;\n },\n booleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|\" + \"ismap|loop|multiple|open|readonly|required|scoped\",\n // Regular expressions\n // http://www.w3.org/TR/css3-selectors/#whitespace\n whitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n // https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n identifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n attributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace + // Operator (capture 2)\n \"*([*^$|!~]?=)\" + whitespace + // \"Attribute values must be CSS identifiers [capture 5]\n // or strings [capture 3 or capture 4]\"\n \"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" + whitespace + \"*\\\\]\",\n pseudos = \":(\" + identifier + \")(?:\\\\((\" + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n // 1. quoted (capture 3; capture 4 or capture 5)\n \"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" + // 2. simple (capture 6)\n \"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" + // 3. anything else (capture 2)\n \".*\" + \")\\\\)|)\",\n // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n rwhitespace = new RegExp(whitespace + \"+\", \"g\"),\n rtrim = new RegExp(\"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\", \"g\"),\n rcomma = new RegExp(\"^\" + whitespace + \"*,\" + whitespace + \"*\"),\n rcombinators = new RegExp(\"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace + \"*\"),\n rdescend = new RegExp(whitespace + \"|>\"),\n rpseudo = new RegExp(pseudos),\n ridentifier = new RegExp(\"^\" + identifier + \"$\"),\n matchExpr = {\n \"ID\": new RegExp(\"^#(\" + identifier + \")\"),\n \"CLASS\": new RegExp(\"^\\\\.(\" + identifier + \")\"),\n \"TAG\": new RegExp(\"^(\" + identifier + \"|[*])\"),\n \"ATTR\": new RegExp(\"^\" + attributes),\n \"PSEUDO\": new RegExp(\"^\" + pseudos),\n \"CHILD\": new RegExp(\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" + whitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" + whitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\"),\n \"bool\": new RegExp(\"^(?:\" + booleans + \")$\", \"i\"),\n // For use in libraries implementing .is()\n // We use this for POS matching in `select`\n \"needsContext\": new RegExp(\"^\" + whitespace + \"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace + \"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\")\n },\n rhtml = /HTML$/i,\n rinputs = /^(?:input|select|textarea|button)$/i,\n rheader = /^h\\d$/i,\n rnative = /^[^{]+\\{\\s*\\[native \\w/,\n // Easily-parseable/retrievable ID or TAG or CLASS selectors\n rquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n rsibling = /[+~]/,\n // CSS escapes\n // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n runescape = new RegExp(\"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\"),\n funescape = function funescape(escape, nonHex) {\n var high = \"0x\" + escape.slice(1) - 0x10000;\n return nonHex ? // Strip the backslash prefix from a non-hex escape sequence\n nonHex : // Replace a hexadecimal escape sequence with the encoded Unicode code point\n // Support: IE <=11+\n // For values outside the Basic Multilingual Plane (BMP), manually construct a\n // surrogate pair\n high < 0 ? String.fromCharCode(high + 0x10000) : String.fromCharCode(high >> 10 | 0xD800, high & 0x3FF | 0xDC00);\n },\n // CSS string/identifier serialization\n // https://drafts.csswg.org/cssom/#common-serializing-idioms\n rcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n fcssescape = function fcssescape(ch, asCodePoint) {\n if (asCodePoint) {\n // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n if (ch === \"\\0\") {\n return \"\\uFFFD\";\n } // Control characters and (dependent upon position) numbers get escaped as code points\n\n\n return ch.slice(0, -1) + \"\\\\\" + ch.charCodeAt(ch.length - 1).toString(16) + \" \";\n } // Other potentially-special ASCII characters get backslash-escaped\n\n\n return \"\\\\\" + ch;\n },\n // Used for iframes\n // See setDocument()\n // Removing the function wrapper causes a \"Permission Denied\"\n // error in IE\n unloadHandler = function unloadHandler() {\n setDocument();\n },\n inDisabledFieldset = addCombinator(function (elem) {\n return elem.disabled === true && elem.nodeName.toLowerCase() === \"fieldset\";\n }, {\n dir: \"parentNode\",\n next: \"legend\"\n }); // Optimize for push.apply( _, NodeList )\n\n\n try {\n push.apply(arr = slice.call(preferredDoc.childNodes), preferredDoc.childNodes); // Support: Android<4.0\n // Detect silently failing push.apply\n // eslint-disable-next-line no-unused-expressions\n\n arr[preferredDoc.childNodes.length].nodeType;\n } catch (e) {\n push = {\n apply: arr.length ? // Leverage slice if possible\n function (target, els) {\n pushNative.apply(target, slice.call(els));\n } : // Support: IE<9\n // Otherwise append directly\n function (target, els) {\n var j = target.length,\n i = 0; // Can't trust NodeList.length\n\n while (target[j++] = els[i++]) {}\n\n target.length = j - 1;\n }\n };\n }\n\n function Sizzle(selector, context, results, seed) {\n var m,\n i,\n elem,\n nid,\n match,\n groups,\n newSelector,\n newContext = context && context.ownerDocument,\n // nodeType defaults to 9, since context defaults to document\n nodeType = context ? context.nodeType : 9;\n results = results || []; // Return early from calls with invalid selector or context\n\n if (typeof selector !== \"string\" || !selector || nodeType !== 1 && nodeType !== 9 && nodeType !== 11) {\n return results;\n } // Try to shortcut find operations (as opposed to filters) in HTML documents\n\n\n if (!seed) {\n setDocument(context);\n context = context || document;\n\n if (documentIsHTML) {\n // If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n // (excepting DocumentFragment context, where the methods don't exist)\n if (nodeType !== 11 && (match = rquickExpr.exec(selector))) {\n // ID selector\n if (m = match[1]) {\n // Document context\n if (nodeType === 9) {\n if (elem = context.getElementById(m)) {\n // Support: IE, Opera, Webkit\n // TODO: identify versions\n // getElementById can match elements by name instead of ID\n if (elem.id === m) {\n results.push(elem);\n return results;\n }\n } else {\n return results;\n } // Element context\n\n } else {\n // Support: IE, Opera, Webkit\n // TODO: identify versions\n // getElementById can match elements by name instead of ID\n if (newContext && (elem = newContext.getElementById(m)) && contains(context, elem) && elem.id === m) {\n results.push(elem);\n return results;\n }\n } // Type selector\n\n } else if (match[2]) {\n push.apply(results, context.getElementsByTagName(selector));\n return results; // Class selector\n } else if ((m = match[3]) && support.getElementsByClassName && context.getElementsByClassName) {\n push.apply(results, context.getElementsByClassName(m));\n return results;\n }\n } // Take advantage of querySelectorAll\n\n\n if (support.qsa && !nonnativeSelectorCache[selector + \" \"] && (!rbuggyQSA || !rbuggyQSA.test(selector)) && ( // Support: IE 8 only\n // Exclude object elements\n nodeType !== 1 || context.nodeName.toLowerCase() !== \"object\")) {\n newSelector = selector;\n newContext = context; // qSA considers elements outside a scoping root when evaluating child or\n // descendant combinators, which is not what we want.\n // In such cases, we work around the behavior by prefixing every selector in the\n // list with an ID selector referencing the scope context.\n // The technique has to be used as well when a leading combinator is used\n // as such selectors are not recognized by querySelectorAll.\n // Thanks to Andrew Dupont for this technique.\n\n if (nodeType === 1 && (rdescend.test(selector) || rcombinators.test(selector))) {\n // Expand context for sibling selectors\n newContext = rsibling.test(selector) && testContext(context.parentNode) || context; // We can use :scope instead of the ID hack if the browser\n // supports it & if we're not changing the context.\n\n if (newContext !== context || !support.scope) {\n // Capture the context ID, setting it first if necessary\n if (nid = context.getAttribute(\"id\")) {\n nid = nid.replace(rcssescape, fcssescape);\n } else {\n context.setAttribute(\"id\", nid = expando);\n }\n } // Prefix every selector in the list\n\n\n groups = tokenize(selector);\n i = groups.length;\n\n while (i--) {\n groups[i] = (nid ? \"#\" + nid : \":scope\") + \" \" + toSelector(groups[i]);\n }\n\n newSelector = groups.join(\",\");\n }\n\n try {\n push.apply(results, newContext.querySelectorAll(newSelector));\n return results;\n } catch (qsaError) {\n nonnativeSelectorCache(selector, true);\n } finally {\n if (nid === expando) {\n context.removeAttribute(\"id\");\n }\n }\n }\n }\n } // All others\n\n\n return select(selector.replace(rtrim, \"$1\"), context, results, seed);\n }\n /**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\n\n\n function createCache() {\n var keys = [];\n\n function cache(key, value) {\n // Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n if (keys.push(key + \" \") > Expr.cacheLength) {\n // Only keep the most recent entries\n delete cache[keys.shift()];\n }\n\n return cache[key + \" \"] = value;\n }\n\n return cache;\n }\n /**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\n\n\n function markFunction(fn) {\n fn[expando] = true;\n return fn;\n }\n /**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\n\n\n function assert(fn) {\n var el = document.createElement(\"fieldset\");\n\n try {\n return !!fn(el);\n } catch (e) {\n return false;\n } finally {\n // Remove from its parent by default\n if (el.parentNode) {\n el.parentNode.removeChild(el);\n } // release memory in IE\n\n\n el = null;\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 */\n\n\n function addHandle(attrs, handler) {\n var arr = attrs.split(\"|\"),\n i = arr.length;\n\n while (i--) {\n Expr.attrHandle[arr[i]] = handler;\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 */\n\n\n function siblingCheck(a, b) {\n var cur = b && a,\n diff = cur && a.nodeType === 1 && b.nodeType === 1 && a.sourceIndex - b.sourceIndex; // Use IE sourceIndex if available on both nodes\n\n if (diff) {\n return diff;\n } // Check if b follows a\n\n\n if (cur) {\n while (cur = cur.nextSibling) {\n if (cur === b) {\n return -1;\n }\n }\n }\n\n return a ? 1 : -1;\n }\n /**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\n\n\n function createInputPseudo(type) {\n return function (elem) {\n var name = elem.nodeName.toLowerCase();\n return name === \"input\" && elem.type === type;\n };\n }\n /**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\n\n\n function createButtonPseudo(type) {\n return function (elem) {\n var name = elem.nodeName.toLowerCase();\n return (name === \"input\" || name === \"button\") && elem.type === type;\n };\n }\n /**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\n\n\n function createDisabledPseudo(disabled) {\n // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n return function (elem) {\n // Only certain elements can match :enabled or :disabled\n // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n if (\"form\" in elem) {\n // Check for inherited disabledness on relevant non-disabled elements:\n // * listed form-associated elements in a disabled fieldset\n // https://html.spec.whatwg.org/multipage/forms.html#category-listed\n // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n // * option elements in a disabled optgroup\n // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n // All such elements have a \"form\" property.\n if (elem.parentNode && elem.disabled === false) {\n // Option elements defer to a parent optgroup if present\n if (\"label\" in elem) {\n if (\"label\" in elem.parentNode) {\n return elem.parentNode.disabled === disabled;\n } else {\n return elem.disabled === disabled;\n }\n } // Support: IE 6 - 11\n // Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\n\n return elem.isDisabled === disabled || // Where there is no isDisabled, check manually\n\n /* jshint -W018 */\n elem.isDisabled !== !disabled && inDisabledFieldset(elem) === disabled;\n }\n\n return elem.disabled === disabled; // Try to winnow out elements that can't be disabled before trusting the disabled property.\n // Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n // even exist on them, let alone have a boolean value.\n } else if (\"label\" in elem) {\n return elem.disabled === disabled;\n } // Remaining elements are neither :enabled nor :disabled\n\n\n return false;\n };\n }\n /**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\n\n\n function createPositionalPseudo(fn) {\n return markFunction(function (argument) {\n argument = +argument;\n return markFunction(function (seed, matches) {\n var j,\n matchIndexes = fn([], seed.length, argument),\n i = matchIndexes.length; // Match elements found at the specified indexes\n\n while (i--) {\n if (seed[j = matchIndexes[i]]) {\n seed[j] = !(matches[j] = seed[j]);\n }\n }\n });\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 */\n\n\n function testContext(context) {\n return context && typeof context.getElementsByTagName !== \"undefined\" && context;\n } // Expose support vars for convenience\n\n\n support = Sizzle.support = {};\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 */\n\n isXML = Sizzle.isXML = function (elem) {\n var namespace = elem && elem.namespaceURI,\n docElem = elem && (elem.ownerDocument || elem).documentElement; // Support: IE <=8\n // Assume HTML when documentElement doesn't yet exist, such as inside loading iframes\n // https://bugs.jquery.com/ticket/4833\n\n return !rhtml.test(namespace || docElem && docElem.nodeName || \"HTML\");\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 */\n\n\n setDocument = Sizzle.setDocument = function (node) {\n var hasCompare,\n subWindow,\n doc = node ? node.ownerDocument || node : preferredDoc; // Return early if doc is invalid or already selected\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n\n if (doc == document || doc.nodeType !== 9 || !doc.documentElement) {\n return document;\n } // Update global variables\n\n\n document = doc;\n docElem = document.documentElement;\n documentIsHTML = !isXML(document); // Support: IE 9 - 11+, Edge 12 - 18+\n // Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n\n if (preferredDoc != document && (subWindow = document.defaultView) && subWindow.top !== subWindow) {\n // Support: IE 11, Edge\n if (subWindow.addEventListener) {\n subWindow.addEventListener(\"unload\", unloadHandler, false); // Support: IE 9 - 10 only\n } else if (subWindow.attachEvent) {\n subWindow.attachEvent(\"onunload\", unloadHandler);\n }\n } // Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,\n // Safari 4 - 5 only, Opera <=11.6 - 12.x only\n // IE/Edge & older browsers don't support the :scope pseudo-class.\n // Support: Safari 6.0 only\n // Safari 6.0 supports :scope but it's an alias of :root there.\n\n\n support.scope = assert(function (el) {\n docElem.appendChild(el).appendChild(document.createElement(\"div\"));\n return typeof el.querySelectorAll !== \"undefined\" && !el.querySelectorAll(\":scope fieldset div\").length;\n });\n /* Attributes\n ---------------------------------------------------------------------- */\n // Support: IE<8\n // Verify that getAttribute really returns attributes and not properties\n // (excepting IE8 booleans)\n\n support.attributes = assert(function (el) {\n el.className = \"i\";\n return !el.getAttribute(\"className\");\n });\n /* getElement(s)By*\n ---------------------------------------------------------------------- */\n // Check if getElementsByTagName(\"*\") returns only elements\n\n support.getElementsByTagName = assert(function (el) {\n el.appendChild(document.createComment(\"\"));\n return !el.getElementsByTagName(\"*\").length;\n }); // Support: IE<9\n\n support.getElementsByClassName = rnative.test(document.getElementsByClassName); // Support: IE<10\n // Check if getElementById returns elements by name\n // The broken getElementById methods don't pick up programmatically-set names,\n // so use a roundabout getElementsByName test\n\n support.getById = assert(function (el) {\n docElem.appendChild(el).id = expando;\n return !document.getElementsByName || !document.getElementsByName(expando).length;\n }); // ID filter and find\n\n if (support.getById) {\n Expr.filter[\"ID\"] = function (id) {\n var attrId = id.replace(runescape, funescape);\n return function (elem) {\n return elem.getAttribute(\"id\") === attrId;\n };\n };\n\n Expr.find[\"ID\"] = function (id, context) {\n if (typeof context.getElementById !== \"undefined\" && documentIsHTML) {\n var elem = context.getElementById(id);\n return elem ? [elem] : [];\n }\n };\n } else {\n Expr.filter[\"ID\"] = function (id) {\n var attrId = id.replace(runescape, funescape);\n return function (elem) {\n var node = typeof elem.getAttributeNode !== \"undefined\" && elem.getAttributeNode(\"id\");\n return node && node.value === attrId;\n };\n }; // Support: IE 6 - 7 only\n // getElementById is not reliable as a find shortcut\n\n\n Expr.find[\"ID\"] = function (id, context) {\n if (typeof context.getElementById !== \"undefined\" && documentIsHTML) {\n var node,\n i,\n elems,\n elem = context.getElementById(id);\n\n if (elem) {\n // Verify the id attribute\n node = elem.getAttributeNode(\"id\");\n\n if (node && node.value === id) {\n return [elem];\n } // Fall back on getElementsByName\n\n\n elems = context.getElementsByName(id);\n i = 0;\n\n while (elem = elems[i++]) {\n node = elem.getAttributeNode(\"id\");\n\n if (node && node.value === id) {\n return [elem];\n }\n }\n }\n\n return [];\n }\n };\n } // Tag\n\n\n Expr.find[\"TAG\"] = support.getElementsByTagName ? function (tag, context) {\n if (typeof context.getElementsByTagName !== \"undefined\") {\n return context.getElementsByTagName(tag); // DocumentFragment nodes don't have gEBTN\n } else if (support.qsa) {\n return context.querySelectorAll(tag);\n }\n } : function (tag, context) {\n var elem,\n tmp = [],\n i = 0,\n // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n results = context.getElementsByTagName(tag); // Filter out possible comments\n\n if (tag === \"*\") {\n while (elem = results[i++]) {\n if (elem.nodeType === 1) {\n tmp.push(elem);\n }\n }\n\n return tmp;\n }\n\n return results;\n }; // Class\n\n Expr.find[\"CLASS\"] = support.getElementsByClassName && function (className, context) {\n if (typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML) {\n return context.getElementsByClassName(className);\n }\n };\n /* QSA/matchesSelector\n ---------------------------------------------------------------------- */\n // QSA and matchesSelector support\n // matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\n\n rbuggyMatches = []; // qSa(:focus) reports false when true (Chrome 21)\n // We allow this because of a bug in IE8/9 that throws an error\n // whenever `document.activeElement` is accessed on an iframe\n // So, we allow :focus to pass through QSA all the time to avoid the IE error\n // See https://bugs.jquery.com/ticket/13378\n\n rbuggyQSA = [];\n\n if (support.qsa = rnative.test(document.querySelectorAll)) {\n // Build QSA regex\n // Regex strategy adopted from Diego Perini\n assert(function (el) {\n var input; // Select is set to empty string on purpose\n // This is to test IE's treatment of not explicitly\n // setting a boolean content attribute,\n // since its presence should be enough\n // https://bugs.jquery.com/ticket/12359\n\n docElem.appendChild(el).innerHTML = \"<a id='\" + expando + \"'></a>\" + \"<select id='\" + expando + \"-\\r\\\\' msallowcapture=''>\" + \"<option selected=''></option></select>\"; // Support: IE8, Opera 11-12.16\n // Nothing should be selected when empty strings follow ^= or $= or *=\n // The test attribute must be unknown in Opera but \"safe\" for WinRT\n // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\n if (el.querySelectorAll(\"[msallowcapture^='']\").length) {\n rbuggyQSA.push(\"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\");\n } // Support: IE8\n // Boolean attributes and \"value\" are not treated correctly\n\n\n if (!el.querySelectorAll(\"[selected]\").length) {\n rbuggyQSA.push(\"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\");\n } // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\n\n if (!el.querySelectorAll(\"[id~=\" + expando + \"-]\").length) {\n rbuggyQSA.push(\"~=\");\n } // Support: IE 11+, Edge 15 - 18+\n // IE 11/Edge don't find elements on a `[name='']` query in some cases.\n // Adding a temporary attribute to the document before the selection works\n // around the issue.\n // Interestingly, IE 10 & older don't seem to have the issue.\n\n\n input = document.createElement(\"input\");\n input.setAttribute(\"name\", \"\");\n el.appendChild(input);\n\n if (!el.querySelectorAll(\"[name='']\").length) {\n rbuggyQSA.push(\"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" + whitespace + \"*(?:''|\\\"\\\")\");\n } // Webkit/Opera - :checked should return selected option elements\n // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n // IE8 throws error here and will not see later tests\n\n\n if (!el.querySelectorAll(\":checked\").length) {\n rbuggyQSA.push(\":checked\");\n } // Support: Safari 8+, iOS 8+\n // https://bugs.webkit.org/show_bug.cgi?id=136851\n // In-page `selector#id sibling-combinator selector` fails\n\n\n if (!el.querySelectorAll(\"a#\" + expando + \"+*\").length) {\n rbuggyQSA.push(\".#.+[+~]\");\n } // Support: Firefox <=3.6 - 5 only\n // Old Firefox doesn't throw on a badly-escaped identifier.\n\n\n el.querySelectorAll(\"\\\\\\f\");\n rbuggyQSA.push(\"[\\\\r\\\\n\\\\f]\");\n });\n assert(function (el) {\n el.innerHTML = \"<a href='' disabled='disabled'></a>\" + \"<select disabled='disabled'><option/></select>\"; // Support: Windows 8 Native Apps\n // The type and name attributes are restricted during .innerHTML assignment\n\n var input = document.createElement(\"input\");\n input.setAttribute(\"type\", \"hidden\");\n el.appendChild(input).setAttribute(\"name\", \"D\"); // Support: IE8\n // Enforce case-sensitivity of name attribute\n\n if (el.querySelectorAll(\"[name=d]\").length) {\n rbuggyQSA.push(\"name\" + whitespace + \"*[*^$|!~]?=\");\n } // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n // IE8 throws error here and will not see later tests\n\n\n if (el.querySelectorAll(\":enabled\").length !== 2) {\n rbuggyQSA.push(\":enabled\", \":disabled\");\n } // Support: IE9-11+\n // IE's :disabled selector does not pick up the children of disabled fieldsets\n\n\n docElem.appendChild(el).disabled = true;\n\n if (el.querySelectorAll(\":disabled\").length !== 2) {\n rbuggyQSA.push(\":enabled\", \":disabled\");\n } // Support: Opera 10 - 11 only\n // Opera 10-11 does not throw on post-comma invalid pseudos\n\n\n el.querySelectorAll(\"*,:x\");\n rbuggyQSA.push(\",.*:\");\n });\n }\n\n if (support.matchesSelector = rnative.test(matches = docElem.matches || docElem.webkitMatchesSelector || docElem.mozMatchesSelector || docElem.oMatchesSelector || docElem.msMatchesSelector)) {\n assert(function (el) {\n // Check to see if it's possible to do matchesSelector\n // on a disconnected node (IE 9)\n support.disconnectedMatch = matches.call(el, \"*\"); // This should fail with an exception\n // Gecko does not error, returns false instead\n\n matches.call(el, \"[s!='']:x\");\n rbuggyMatches.push(\"!=\", pseudos);\n });\n }\n\n rbuggyQSA = rbuggyQSA.length && new RegExp(rbuggyQSA.join(\"|\"));\n rbuggyMatches = rbuggyMatches.length && new RegExp(rbuggyMatches.join(\"|\"));\n /* Contains\n ---------------------------------------------------------------------- */\n\n hasCompare = rnative.test(docElem.compareDocumentPosition); // Element contains another\n // Purposefully self-exclusive\n // As in, an element does not contain itself\n\n contains = hasCompare || rnative.test(docElem.contains) ? function (a, b) {\n var adown = a.nodeType === 9 ? a.documentElement : a,\n bup = b && b.parentNode;\n return a === bup || !!(bup && bup.nodeType === 1 && (adown.contains ? adown.contains(bup) : a.compareDocumentPosition && a.compareDocumentPosition(bup) & 16));\n } : function (a, b) {\n if (b) {\n while (b = b.parentNode) {\n if (b === a) {\n return true;\n }\n }\n }\n\n return false;\n };\n /* Sorting\n ---------------------------------------------------------------------- */\n // Document order sorting\n\n sortOrder = hasCompare ? function (a, b) {\n // Flag for duplicate removal\n if (a === b) {\n hasDuplicate = true;\n return 0;\n } // Sort on method existence if only one input has compareDocumentPosition\n\n\n var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\n if (compare) {\n return compare;\n } // Calculate position if both inputs belong to the same document\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n\n\n compare = (a.ownerDocument || a) == (b.ownerDocument || b) ? a.compareDocumentPosition(b) : // Otherwise we know they are disconnected\n 1; // Disconnected nodes\n\n if (compare & 1 || !support.sortDetached && b.compareDocumentPosition(a) === compare) {\n // Choose the first element that is related to our preferred document\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if (a == document || a.ownerDocument == preferredDoc && contains(preferredDoc, a)) {\n return -1;\n } // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n\n\n if (b == document || b.ownerDocument == preferredDoc && contains(preferredDoc, b)) {\n return 1;\n } // Maintain original order\n\n\n return sortInput ? indexOf(sortInput, a) - indexOf(sortInput, b) : 0;\n }\n\n return compare & 4 ? -1 : 1;\n } : function (a, b) {\n // Exit early if the nodes are identical\n if (a === b) {\n hasDuplicate = true;\n return 0;\n }\n\n var cur,\n i = 0,\n aup = a.parentNode,\n bup = b.parentNode,\n ap = [a],\n bp = [b]; // Parentless nodes are either documents or disconnected\n\n if (!aup || !bup) {\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n\n /* eslint-disable eqeqeq */\n return a == document ? -1 : b == document ? 1 :\n /* eslint-enable eqeqeq */\n aup ? -1 : bup ? 1 : sortInput ? indexOf(sortInput, a) - indexOf(sortInput, b) : 0; // If the nodes are siblings, we can do a quick check\n } else if (aup === bup) {\n return siblingCheck(a, b);\n } // Otherwise we need full lists of their ancestors for comparison\n\n\n cur = a;\n\n while (cur = cur.parentNode) {\n ap.unshift(cur);\n }\n\n cur = b;\n\n while (cur = cur.parentNode) {\n bp.unshift(cur);\n } // Walk down the tree looking for a discrepancy\n\n\n while (ap[i] === bp[i]) {\n i++;\n }\n\n return i ? // Do a sibling check if the nodes have a common ancestor\n siblingCheck(ap[i], bp[i]) : // Otherwise nodes in our document sort first\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n\n /* eslint-disable eqeqeq */\n ap[i] == preferredDoc ? -1 : bp[i] == preferredDoc ? 1 :\n /* eslint-enable eqeqeq */\n 0;\n };\n return document;\n };\n\n Sizzle.matches = function (expr, elements) {\n return Sizzle(expr, null, null, elements);\n };\n\n Sizzle.matchesSelector = function (elem, expr) {\n setDocument(elem);\n\n if (support.matchesSelector && documentIsHTML && !nonnativeSelectorCache[expr + \" \"] && (!rbuggyMatches || !rbuggyMatches.test(expr)) && (!rbuggyQSA || !rbuggyQSA.test(expr))) {\n try {\n var ret = matches.call(elem, expr); // IE 9's matchesSelector returns false on disconnected nodes\n\n if (ret || support.disconnectedMatch || // As well, disconnected nodes are said to be in a document\n // fragment in IE 9\n elem.document && elem.document.nodeType !== 11) {\n return ret;\n }\n } catch (e) {\n nonnativeSelectorCache(expr, true);\n }\n }\n\n return Sizzle(expr, document, null, [elem]).length > 0;\n };\n\n Sizzle.contains = function (context, elem) {\n // Set document vars if needed\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if ((context.ownerDocument || context) != document) {\n setDocument(context);\n }\n\n return contains(context, elem);\n };\n\n Sizzle.attr = function (elem, name) {\n // Set document vars if needed\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if ((elem.ownerDocument || elem) != document) {\n setDocument(elem);\n }\n\n var fn = Expr.attrHandle[name.toLowerCase()],\n // Don't get fooled by Object.prototype properties (jQuery #13807)\n val = fn && hasOwn.call(Expr.attrHandle, name.toLowerCase()) ? fn(elem, name, !documentIsHTML) : undefined;\n return val !== undefined ? val : support.attributes || !documentIsHTML ? elem.getAttribute(name) : (val = elem.getAttributeNode(name)) && val.specified ? val.value : null;\n };\n\n Sizzle.escape = function (sel) {\n return (sel + \"\").replace(rcssescape, fcssescape);\n };\n\n Sizzle.error = function (msg) {\n throw new Error(\"Syntax error, unrecognized expression: \" + msg);\n };\n /**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\n\n\n Sizzle.uniqueSort = function (results) {\n var elem,\n duplicates = [],\n j = 0,\n i = 0; // Unless we *know* we can detect duplicates, assume their presence\n\n hasDuplicate = !support.detectDuplicates;\n sortInput = !support.sortStable && results.slice(0);\n results.sort(sortOrder);\n\n if (hasDuplicate) {\n while (elem = results[i++]) {\n if (elem === results[i]) {\n j = duplicates.push(i);\n }\n }\n\n while (j--) {\n results.splice(duplicates[j], 1);\n }\n } // Clear input after sorting to release objects\n // See https://github.com/jquery/sizzle/pull/225\n\n\n sortInput = null;\n return results;\n };\n /**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\n\n\n getText = Sizzle.getText = function (elem) {\n var node,\n ret = \"\",\n i = 0,\n nodeType = elem.nodeType;\n\n if (!nodeType) {\n // If no nodeType, this is expected to be an array\n while (node = elem[i++]) {\n // Do not traverse comment nodes\n ret += getText(node);\n }\n } else if (nodeType === 1 || nodeType === 9 || nodeType === 11) {\n // Use textContent for elements\n // innerText usage removed for consistency of new lines (jQuery #11153)\n if (typeof elem.textContent === \"string\") {\n return elem.textContent;\n } else {\n // Traverse its children\n for (elem = elem.firstChild; elem; elem = elem.nextSibling) {\n ret += getText(elem);\n }\n }\n } else if (nodeType === 3 || nodeType === 4) {\n return elem.nodeValue;\n } // Do not include comment or processing instruction nodes\n\n\n return ret;\n };\n\n Expr = Sizzle.selectors = {\n // Can be adjusted by the user\n cacheLength: 50,\n createPseudo: markFunction,\n match: matchExpr,\n attrHandle: {},\n find: {},\n relative: {\n \">\": {\n dir: \"parentNode\",\n first: true\n },\n \" \": {\n dir: \"parentNode\"\n },\n \"+\": {\n dir: \"previousSibling\",\n first: true\n },\n \"~\": {\n dir: \"previousSibling\"\n }\n },\n preFilter: {\n \"ATTR\": function ATTR(match) {\n match[1] = match[1].replace(runescape, funescape); // Move the given value to match[3] whether quoted or unquoted\n\n match[3] = (match[3] || match[4] || match[5] || \"\").replace(runescape, funescape);\n\n if (match[2] === \"~=\") {\n match[3] = \" \" + match[3] + \" \";\n }\n\n return match.slice(0, 4);\n },\n \"CHILD\": function CHILD(match) {\n /* matches from matchExpr[\"CHILD\"]\n \t1 type (only|nth|...)\n \t2 what (child|of-type)\n \t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n \t4 xn-component of xn+y argument ([+-]?\\d*n|)\n \t5 sign of xn-component\n \t6 x of xn-component\n \t7 sign of y-component\n \t8 y of y-component\n */\n match[1] = match[1].toLowerCase();\n\n if (match[1].slice(0, 3) === \"nth\") {\n // nth-* requires argument\n if (!match[3]) {\n Sizzle.error(match[0]);\n } // numeric x and y parameters for Expr.filter.CHILD\n // remember that false/true cast respectively to 0/1\n\n\n match[4] = +(match[4] ? match[5] + (match[6] || 1) : 2 * (match[3] === \"even\" || match[3] === \"odd\"));\n match[5] = +(match[7] + match[8] || match[3] === \"odd\"); // other types prohibit arguments\n } else if (match[3]) {\n Sizzle.error(match[0]);\n }\n\n return match;\n },\n \"PSEUDO\": function PSEUDO(match) {\n var excess,\n unquoted = !match[6] && match[2];\n\n if (matchExpr[\"CHILD\"].test(match[0])) {\n return null;\n } // Accept quoted arguments as-is\n\n\n if (match[3]) {\n match[2] = match[4] || match[5] || \"\"; // Strip excess characters from unquoted arguments\n } else if (unquoted && rpseudo.test(unquoted) && ( // Get excess from tokenize (recursively)\n excess = tokenize(unquoted, true)) && ( // advance to the next closing parenthesis\n excess = unquoted.indexOf(\")\", unquoted.length - excess) - unquoted.length)) {\n // excess is a negative index\n match[0] = match[0].slice(0, excess);\n match[2] = unquoted.slice(0, excess);\n } // Return only captures needed by the pseudo filter method (type and argument)\n\n\n return match.slice(0, 3);\n }\n },\n filter: {\n \"TAG\": function TAG(nodeNameSelector) {\n var nodeName = nodeNameSelector.replace(runescape, funescape).toLowerCase();\n return nodeNameSelector === \"*\" ? function () {\n return true;\n } : function (elem) {\n return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n };\n },\n \"CLASS\": function CLASS(className) {\n var pattern = classCache[className + \" \"];\n return pattern || (pattern = new RegExp(\"(^|\" + whitespace + \")\" + className + \"(\" + whitespace + \"|$)\")) && classCache(className, function (elem) {\n return pattern.test(typeof elem.className === \"string\" && elem.className || typeof elem.getAttribute !== \"undefined\" && elem.getAttribute(\"class\") || \"\");\n });\n },\n \"ATTR\": function ATTR(name, operator, check) {\n return function (elem) {\n var result = Sizzle.attr(elem, name);\n\n if (result == null) {\n return operator === \"!=\";\n }\n\n if (!operator) {\n return true;\n }\n\n result += \"\";\n /* eslint-disable max-len */\n\n return operator === \"=\" ? result === check : operator === \"!=\" ? result !== check : operator === \"^=\" ? check && result.indexOf(check) === 0 : operator === \"*=\" ? check && result.indexOf(check) > -1 : operator === \"$=\" ? check && result.slice(-check.length) === check : operator === \"~=\" ? (\" \" + result.replace(rwhitespace, \" \") + \" \").indexOf(check) > -1 : operator === \"|=\" ? result === check || result.slice(0, check.length + 1) === check + \"-\" : false;\n /* eslint-enable max-len */\n };\n },\n \"CHILD\": function CHILD(type, what, _argument, first, last) {\n var simple = type.slice(0, 3) !== \"nth\",\n forward = type.slice(-4) !== \"last\",\n ofType = what === \"of-type\";\n return first === 1 && last === 0 ? // Shortcut for :nth-*(n)\n function (elem) {\n return !!elem.parentNode;\n } : function (elem, _context, xml) {\n var cache,\n uniqueCache,\n outerCache,\n node,\n nodeIndex,\n start,\n dir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n parent = elem.parentNode,\n name = ofType && elem.nodeName.toLowerCase(),\n useCache = !xml && !ofType,\n diff = false;\n\n if (parent) {\n // :(first|last|only)-(child|of-type)\n if (simple) {\n while (dir) {\n node = elem;\n\n while (node = node[dir]) {\n if (ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1) {\n return false;\n }\n } // Reverse direction for :only-* (if we haven't yet done so)\n\n\n start = dir = type === \"only\" && !start && \"nextSibling\";\n }\n\n return true;\n }\n\n start = [forward ? parent.firstChild : parent.lastChild]; // non-xml :nth-child(...) stores cache data on `parent`\n\n if (forward && useCache) {\n // Seek `elem` from a previously-cached index\n // ...in a gzip-friendly way\n node = parent;\n outerCache = node[expando] || (node[expando] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {});\n cache = uniqueCache[type] || [];\n nodeIndex = cache[0] === dirruns && cache[1];\n diff = nodeIndex && cache[2];\n node = nodeIndex && parent.childNodes[nodeIndex];\n\n while (node = ++nodeIndex && node && node[dir] || ( // Fallback to seeking `elem` from the start\n diff = nodeIndex = 0) || start.pop()) {\n // When found, cache indexes on `parent` and break\n if (node.nodeType === 1 && ++diff && node === elem) {\n uniqueCache[type] = [dirruns, nodeIndex, diff];\n break;\n }\n }\n } else {\n // Use previously-cached element index if available\n if (useCache) {\n // ...in a gzip-friendly way\n node = elem;\n outerCache = node[expando] || (node[expando] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {});\n cache = uniqueCache[type] || [];\n nodeIndex = cache[0] === dirruns && cache[1];\n diff = nodeIndex;\n } // xml :nth-child(...)\n // or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\n\n if (diff === false) {\n // Use the same loop as above to seek `elem` from the start\n while (node = ++nodeIndex && node && node[dir] || (diff = nodeIndex = 0) || start.pop()) {\n if ((ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1) && ++diff) {\n // Cache the index of each encountered element\n if (useCache) {\n outerCache = node[expando] || (node[expando] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {});\n uniqueCache[type] = [dirruns, diff];\n }\n\n if (node === elem) {\n break;\n }\n }\n }\n }\n } // Incorporate the offset, then check against cycle size\n\n\n diff -= last;\n return diff === first || diff % first === 0 && diff / first >= 0;\n }\n };\n },\n \"PSEUDO\": function PSEUDO(pseudo, argument) {\n // pseudo-class names are case-insensitive\n // http://www.w3.org/TR/selectors/#pseudo-classes\n // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n // Remember that setFilters inherits from pseudos\n var args,\n fn = Expr.pseudos[pseudo] || Expr.setFilters[pseudo.toLowerCase()] || Sizzle.error(\"unsupported pseudo: \" + pseudo); // The user may use createPseudo to indicate that\n // arguments are needed to create the filter function\n // just as Sizzle does\n\n if (fn[expando]) {\n return fn(argument);\n } // But maintain support for old signatures\n\n\n if (fn.length > 1) {\n args = [pseudo, pseudo, \"\", argument];\n return Expr.setFilters.hasOwnProperty(pseudo.toLowerCase()) ? markFunction(function (seed, matches) {\n var idx,\n matched = fn(seed, argument),\n i = matched.length;\n\n while (i--) {\n idx = indexOf(seed, matched[i]);\n seed[idx] = !(matches[idx] = matched[i]);\n }\n }) : function (elem) {\n return fn(elem, 0, args);\n };\n }\n\n return fn;\n }\n },\n pseudos: {\n // Potentially complex pseudos\n \"not\": markFunction(function (selector) {\n // Trim the selector passed to compile\n // to avoid treating leading and trailing\n // spaces as combinators\n var input = [],\n results = [],\n matcher = compile(selector.replace(rtrim, \"$1\"));\n return matcher[expando] ? markFunction(function (seed, matches, _context, xml) {\n var elem,\n unmatched = matcher(seed, null, xml, []),\n i = seed.length; // Match elements unmatched by `matcher`\n\n while (i--) {\n if (elem = unmatched[i]) {\n seed[i] = !(matches[i] = elem);\n }\n }\n }) : function (elem, _context, xml) {\n input[0] = elem;\n matcher(input, null, xml, results); // Don't keep the element (issue #299)\n\n input[0] = null;\n return !results.pop();\n };\n }),\n \"has\": markFunction(function (selector) {\n return function (elem) {\n return Sizzle(selector, elem).length > 0;\n };\n }),\n \"contains\": markFunction(function (text) {\n text = text.replace(runescape, funescape);\n return function (elem) {\n return (elem.textContent || getText(elem)).indexOf(text) > -1;\n };\n }),\n // \"Whether an element is represented by a :lang() selector\n // is based solely on the element's language value\n // being equal to the identifier C,\n // or beginning with the identifier C immediately followed by \"-\".\n // The matching of C against the element's language value is performed case-insensitively.\n // The identifier C does not have to be a valid language name.\"\n // http://www.w3.org/TR/selectors/#lang-pseudo\n \"lang\": markFunction(function (lang) {\n // lang value must be a valid identifier\n if (!ridentifier.test(lang || \"\")) {\n Sizzle.error(\"unsupported lang: \" + lang);\n }\n\n lang = lang.replace(runescape, funescape).toLowerCase();\n return function (elem) {\n var elemLang;\n\n do {\n if (elemLang = documentIsHTML ? elem.lang : elem.getAttribute(\"xml:lang\") || elem.getAttribute(\"lang\")) {\n elemLang = elemLang.toLowerCase();\n return elemLang === lang || elemLang.indexOf(lang + \"-\") === 0;\n }\n } while ((elem = elem.parentNode) && elem.nodeType === 1);\n\n return false;\n };\n }),\n // Miscellaneous\n \"target\": function target(elem) {\n var hash = window.location && window.location.hash;\n return hash && hash.slice(1) === elem.id;\n },\n \"root\": function root(elem) {\n return elem === docElem;\n },\n \"focus\": function focus(elem) {\n return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);\n },\n // Boolean properties\n \"enabled\": createDisabledPseudo(false),\n \"disabled\": createDisabledPseudo(true),\n \"checked\": function checked(elem) {\n // In CSS3, :checked should return both checked and selected elements\n // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n var nodeName = elem.nodeName.toLowerCase();\n return nodeName === \"input\" && !!elem.checked || nodeName === \"option\" && !!elem.selected;\n },\n \"selected\": function selected(elem) {\n // Accessing this property makes selected-by-default\n // options in Safari work properly\n if (elem.parentNode) {\n // eslint-disable-next-line no-unused-expressions\n elem.parentNode.selectedIndex;\n }\n\n return elem.selected === true;\n },\n // Contents\n \"empty\": function empty(elem) {\n // http://www.w3.org/TR/selectors/#empty-pseudo\n // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n // but not by others (comment: 8; processing instruction: 7; etc.)\n // nodeType < 6 works because attributes (2) do not appear as children\n for (elem = elem.firstChild; elem; elem = elem.nextSibling) {\n if (elem.nodeType < 6) {\n return false;\n }\n }\n\n return true;\n },\n \"parent\": function parent(elem) {\n return !Expr.pseudos[\"empty\"](elem);\n },\n // Element/input types\n \"header\": function header(elem) {\n return rheader.test(elem.nodeName);\n },\n \"input\": function input(elem) {\n return rinputs.test(elem.nodeName);\n },\n \"button\": function button(elem) {\n var name = elem.nodeName.toLowerCase();\n return name === \"input\" && elem.type === \"button\" || name === \"button\";\n },\n \"text\": function text(elem) {\n var attr;\n return elem.nodeName.toLowerCase() === \"input\" && elem.type === \"text\" && ( // Support: IE<8\n // New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n (attr = elem.getAttribute(\"type\")) == null || attr.toLowerCase() === \"text\");\n },\n // Position-in-collection\n \"first\": createPositionalPseudo(function () {\n return [0];\n }),\n \"last\": createPositionalPseudo(function (_matchIndexes, length) {\n return [length - 1];\n }),\n \"eq\": createPositionalPseudo(function (_matchIndexes, length, argument) {\n return [argument < 0 ? argument + length : argument];\n }),\n \"even\": createPositionalPseudo(function (matchIndexes, length) {\n var i = 0;\n\n for (; i < length; i += 2) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n }),\n \"odd\": createPositionalPseudo(function (matchIndexes, length) {\n var i = 1;\n\n for (; i < length; i += 2) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n }),\n \"lt\": createPositionalPseudo(function (matchIndexes, length, argument) {\n var i = argument < 0 ? argument + length : argument > length ? length : argument;\n\n for (; --i >= 0;) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n }),\n \"gt\": createPositionalPseudo(function (matchIndexes, length, argument) {\n var i = argument < 0 ? argument + length : argument;\n\n for (; ++i < length;) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n })\n }\n };\n Expr.pseudos[\"nth\"] = Expr.pseudos[\"eq\"]; // Add button/input type pseudos\n\n for (i in {\n radio: true,\n checkbox: true,\n file: true,\n password: true,\n image: true\n }) {\n Expr.pseudos[i] = createInputPseudo(i);\n }\n\n for (i in {\n submit: true,\n reset: true\n }) {\n Expr.pseudos[i] = createButtonPseudo(i);\n } // Easy API for creating new setFilters\n\n\n function setFilters() {}\n\n setFilters.prototype = Expr.filters = Expr.pseudos;\n Expr.setFilters = new setFilters();\n\n tokenize = Sizzle.tokenize = function (selector, parseOnly) {\n var matched,\n match,\n tokens,\n type,\n soFar,\n groups,\n preFilters,\n cached = tokenCache[selector + \" \"];\n\n if (cached) {\n return parseOnly ? 0 : cached.slice(0);\n }\n\n soFar = selector;\n groups = [];\n preFilters = Expr.preFilter;\n\n while (soFar) {\n // Comma and first run\n if (!matched || (match = rcomma.exec(soFar))) {\n if (match) {\n // Don't consume trailing commas as valid\n soFar = soFar.slice(match[0].length) || soFar;\n }\n\n groups.push(tokens = []);\n }\n\n matched = false; // Combinators\n\n if (match = rcombinators.exec(soFar)) {\n matched = match.shift();\n tokens.push({\n value: matched,\n // Cast descendant combinators to space\n type: match[0].replace(rtrim, \" \")\n });\n soFar = soFar.slice(matched.length);\n } // Filters\n\n\n for (type in Expr.filter) {\n if ((match = matchExpr[type].exec(soFar)) && (!preFilters[type] || (match = preFilters[type](match)))) {\n matched = match.shift();\n tokens.push({\n value: matched,\n type: type,\n matches: match\n });\n soFar = soFar.slice(matched.length);\n }\n }\n\n if (!matched) {\n break;\n }\n } // Return the length of the invalid excess\n // if we're just parsing\n // Otherwise, throw an error or return tokens\n\n\n return parseOnly ? soFar.length : soFar ? Sizzle.error(selector) : // Cache the tokens\n tokenCache(selector, groups).slice(0);\n };\n\n function toSelector(tokens) {\n var i = 0,\n len = tokens.length,\n selector = \"\";\n\n for (; i < len; i++) {\n selector += tokens[i].value;\n }\n\n return selector;\n }\n\n function addCombinator(matcher, combinator, base) {\n var dir = combinator.dir,\n skip = combinator.next,\n key = skip || dir,\n checkNonElements = base && key === \"parentNode\",\n doneName = done++;\n return combinator.first ? // Check against closest ancestor/preceding element\n function (elem, context, xml) {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n return matcher(elem, context, xml);\n }\n }\n\n return false;\n } : // Check against all ancestor/preceding elements\n function (elem, context, xml) {\n var oldCache,\n uniqueCache,\n outerCache,\n newCache = [dirruns, doneName]; // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\n if (xml) {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n if (matcher(elem, context, xml)) {\n return true;\n }\n }\n }\n } else {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n outerCache = elem[expando] || (elem[expando] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[elem.uniqueID] || (outerCache[elem.uniqueID] = {});\n\n if (skip && skip === elem.nodeName.toLowerCase()) {\n elem = elem[dir] || elem;\n } else if ((oldCache = uniqueCache[key]) && oldCache[0] === dirruns && oldCache[1] === doneName) {\n // Assign to newCache so results back-propagate to previous elements\n return newCache[2] = oldCache[2];\n } else {\n // Reuse newcache so results back-propagate to previous elements\n uniqueCache[key] = newCache; // A match means we're done; a fail means we have to keep checking\n\n if (newCache[2] = matcher(elem, context, xml)) {\n return true;\n }\n }\n }\n }\n }\n\n return false;\n };\n }\n\n function elementMatcher(matchers) {\n return matchers.length > 1 ? function (elem, context, xml) {\n var i = matchers.length;\n\n while (i--) {\n if (!matchers[i](elem, context, xml)) {\n return false;\n }\n }\n\n return true;\n } : matchers[0];\n }\n\n function multipleContexts(selector, contexts, results) {\n var i = 0,\n len = contexts.length;\n\n for (; i < len; i++) {\n Sizzle(selector, contexts[i], results);\n }\n\n return results;\n }\n\n function condense(unmatched, map, filter, context, xml) {\n var elem,\n newUnmatched = [],\n i = 0,\n len = unmatched.length,\n mapped = map != null;\n\n for (; i < len; i++) {\n if (elem = unmatched[i]) {\n if (!filter || filter(elem, context, xml)) {\n newUnmatched.push(elem);\n\n if (mapped) {\n map.push(i);\n }\n }\n }\n }\n\n return newUnmatched;\n }\n\n function setMatcher(preFilter, selector, matcher, postFilter, postFinder, postSelector) {\n if (postFilter && !postFilter[expando]) {\n postFilter = setMatcher(postFilter);\n }\n\n if (postFinder && !postFinder[expando]) {\n postFinder = setMatcher(postFinder, postSelector);\n }\n\n return markFunction(function (seed, results, context, xml) {\n var temp,\n i,\n elem,\n preMap = [],\n postMap = [],\n preexisting = results.length,\n // Get initial elements from seed or context\n elems = seed || multipleContexts(selector || \"*\", context.nodeType ? [context] : context, []),\n // Prefilter to get matcher input, preserving a map for seed-results synchronization\n matcherIn = preFilter && (seed || !selector) ? condense(elems, preMap, preFilter, context, xml) : elems,\n matcherOut = matcher ? // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n postFinder || (seed ? preFilter : preexisting || postFilter) ? // ...intermediate processing is necessary\n [] : // ...otherwise use results directly\n results : matcherIn; // Find primary matches\n\n if (matcher) {\n matcher(matcherIn, matcherOut, context, xml);\n } // Apply postFilter\n\n\n if (postFilter) {\n temp = condense(matcherOut, postMap);\n postFilter(temp, [], context, xml); // Un-match failing elements by moving them back to matcherIn\n\n i = temp.length;\n\n while (i--) {\n if (elem = temp[i]) {\n matcherOut[postMap[i]] = !(matcherIn[postMap[i]] = elem);\n }\n }\n }\n\n if (seed) {\n if (postFinder || preFilter) {\n if (postFinder) {\n // Get the final matcherOut by condensing this intermediate into postFinder contexts\n temp = [];\n i = matcherOut.length;\n\n while (i--) {\n if (elem = matcherOut[i]) {\n // Restore matcherIn since elem is not yet a final match\n temp.push(matcherIn[i] = elem);\n }\n }\n\n postFinder(null, matcherOut = [], temp, xml);\n } // Move matched elements from seed to results to keep them synchronized\n\n\n i = matcherOut.length;\n\n while (i--) {\n if ((elem = matcherOut[i]) && (temp = postFinder ? indexOf(seed, elem) : preMap[i]) > -1) {\n seed[temp] = !(results[temp] = elem);\n }\n }\n } // Add elements to results, through postFinder if defined\n\n } else {\n matcherOut = condense(matcherOut === results ? matcherOut.splice(preexisting, matcherOut.length) : matcherOut);\n\n if (postFinder) {\n postFinder(null, results, matcherOut, xml);\n } else {\n push.apply(results, matcherOut);\n }\n }\n });\n }\n\n function matcherFromTokens(tokens) {\n var checkContext,\n matcher,\n j,\n len = tokens.length,\n leadingRelative = Expr.relative[tokens[0].type],\n implicitRelative = leadingRelative || Expr.relative[\" \"],\n i = leadingRelative ? 1 : 0,\n // The foundational matcher ensures that elements are reachable from top-level context(s)\n matchContext = addCombinator(function (elem) {\n return elem === checkContext;\n }, implicitRelative, true),\n matchAnyContext = addCombinator(function (elem) {\n return indexOf(checkContext, elem) > -1;\n }, implicitRelative, true),\n matchers = [function (elem, context, xml) {\n var ret = !leadingRelative && (xml || context !== outermostContext) || ((checkContext = context).nodeType ? matchContext(elem, context, xml) : matchAnyContext(elem, context, xml)); // Avoid hanging onto element (issue #299)\n\n checkContext = null;\n return ret;\n }];\n\n for (; i < len; i++) {\n if (matcher = Expr.relative[tokens[i].type]) {\n matchers = [addCombinator(elementMatcher(matchers), matcher)];\n } else {\n matcher = Expr.filter[tokens[i].type].apply(null, tokens[i].matches); // Return special upon seeing a positional matcher\n\n if (matcher[expando]) {\n // Find the next relative operator (if any) for proper handling\n j = ++i;\n\n for (; j < len; j++) {\n if (Expr.relative[tokens[j].type]) {\n break;\n }\n }\n\n return setMatcher(i > 1 && elementMatcher(matchers), i > 1 && toSelector( // If the preceding token was a descendant combinator, insert an implicit any-element `*`\n tokens.slice(0, i - 1).concat({\n value: tokens[i - 2].type === \" \" ? \"*\" : \"\"\n })).replace(rtrim, \"$1\"), matcher, i < j && matcherFromTokens(tokens.slice(i, j)), j < len && matcherFromTokens(tokens = tokens.slice(j)), j < len && toSelector(tokens));\n }\n\n matchers.push(matcher);\n }\n }\n\n return elementMatcher(matchers);\n }\n\n function matcherFromGroupMatchers(elementMatchers, setMatchers) {\n var bySet = setMatchers.length > 0,\n byElement = elementMatchers.length > 0,\n superMatcher = function superMatcher(seed, context, xml, results, outermost) {\n var elem,\n j,\n matcher,\n matchedCount = 0,\n i = \"0\",\n unmatched = seed && [],\n setMatched = [],\n contextBackup = outermostContext,\n // We must always have either seed elements or outermost context\n elems = seed || byElement && Expr.find[\"TAG\"](\"*\", outermost),\n // Use integer dirruns iff this is the outermost matcher\n dirrunsUnique = dirruns += contextBackup == null ? 1 : Math.random() || 0.1,\n len = elems.length;\n\n if (outermost) {\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n outermostContext = context == document || context || outermost;\n } // Add elements passing elementMatchers directly to results\n // Support: IE<9, Safari\n // Tolerate NodeList properties (IE: \"length\"; Safari: <number>) matching elements by id\n\n\n for (; i !== len && (elem = elems[i]) != null; i++) {\n if (byElement && elem) {\n j = 0; // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n\n if (!context && elem.ownerDocument != document) {\n setDocument(elem);\n xml = !documentIsHTML;\n }\n\n while (matcher = elementMatchers[j++]) {\n if (matcher(elem, context || document, xml)) {\n results.push(elem);\n break;\n }\n }\n\n if (outermost) {\n dirruns = dirrunsUnique;\n }\n } // Track unmatched elements for set filters\n\n\n if (bySet) {\n // They will have gone through all possible matchers\n if (elem = !matcher && elem) {\n matchedCount--;\n } // Lengthen the array for every element, matched or not\n\n\n if (seed) {\n unmatched.push(elem);\n }\n }\n } // `i` is now the count of elements visited above, and adding it to `matchedCount`\n // makes the latter nonnegative.\n\n\n matchedCount += i; // Apply set filters to unmatched elements\n // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n // equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n // no element matchers and no seed.\n // Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n // case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n // numerically zero.\n\n if (bySet && i !== matchedCount) {\n j = 0;\n\n while (matcher = setMatchers[j++]) {\n matcher(unmatched, setMatched, context, xml);\n }\n\n if (seed) {\n // Reintegrate element matches to eliminate the need for sorting\n if (matchedCount > 0) {\n while (i--) {\n if (!(unmatched[i] || setMatched[i])) {\n setMatched[i] = pop.call(results);\n }\n }\n } // Discard index placeholder values to get only actual matches\n\n\n setMatched = condense(setMatched);\n } // Add matches to results\n\n\n push.apply(results, setMatched); // Seedless set matches succeeding multiple successful matchers stipulate sorting\n\n if (outermost && !seed && setMatched.length > 0 && matchedCount + setMatchers.length > 1) {\n Sizzle.uniqueSort(results);\n }\n } // Override manipulation of globals by nested matchers\n\n\n if (outermost) {\n dirruns = dirrunsUnique;\n outermostContext = contextBackup;\n }\n\n return unmatched;\n };\n\n return bySet ? markFunction(superMatcher) : superMatcher;\n }\n\n compile = Sizzle.compile = function (selector, match\n /* Internal Use Only */\n ) {\n var i,\n setMatchers = [],\n elementMatchers = [],\n cached = compilerCache[selector + \" \"];\n\n if (!cached) {\n // Generate a function of recursive functions that can be used to check each element\n if (!match) {\n match = tokenize(selector);\n }\n\n i = match.length;\n\n while (i--) {\n cached = matcherFromTokens(match[i]);\n\n if (cached[expando]) {\n setMatchers.push(cached);\n } else {\n elementMatchers.push(cached);\n }\n } // Cache the compiled function\n\n\n cached = compilerCache(selector, matcherFromGroupMatchers(elementMatchers, setMatchers)); // Save selector and tokenization\n\n cached.selector = selector;\n }\n\n return cached;\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 */\n\n\n select = Sizzle.select = function (selector, context, results, seed) {\n var i,\n tokens,\n token,\n type,\n find,\n compiled = typeof selector === \"function\" && selector,\n match = !seed && tokenize(selector = compiled.selector || selector);\n results = results || []; // Try to minimize operations if there is only one selector in the list and no seed\n // (the latter of which guarantees us context)\n\n if (match.length === 1) {\n // Reduce context if the leading compound selector is an ID\n tokens = match[0] = match[0].slice(0);\n\n if (tokens.length > 2 && (token = tokens[0]).type === \"ID\" && context.nodeType === 9 && documentIsHTML && Expr.relative[tokens[1].type]) {\n context = (Expr.find[\"ID\"](token.matches[0].replace(runescape, funescape), context) || [])[0];\n\n if (!context) {\n return results; // Precompiled matchers will still verify ancestry, so step up a level\n } else if (compiled) {\n context = context.parentNode;\n }\n\n selector = selector.slice(tokens.shift().value.length);\n } // Fetch a seed set for right-to-left matching\n\n\n i = matchExpr[\"needsContext\"].test(selector) ? 0 : tokens.length;\n\n while (i--) {\n token = tokens[i]; // Abort if we hit a combinator\n\n if (Expr.relative[type = token.type]) {\n break;\n }\n\n if (find = Expr.find[type]) {\n // Search, expanding context for leading sibling combinators\n if (seed = find(token.matches[0].replace(runescape, funescape), rsibling.test(tokens[0].type) && testContext(context.parentNode) || context)) {\n // If seed is empty or no tokens remain, we can return early\n tokens.splice(i, 1);\n selector = seed.length && toSelector(tokens);\n\n if (!selector) {\n push.apply(results, seed);\n return results;\n }\n\n break;\n }\n }\n }\n } // Compile and execute a filtering function if one is not provided\n // Provide `match` to avoid retokenization if we modified the selector above\n\n\n (compiled || compile(selector, match))(seed, context, !documentIsHTML, results, !context || rsibling.test(selector) && testContext(context.parentNode) || context);\n return results;\n }; // One-time assignments\n // Sort stability\n\n\n support.sortStable = expando.split(\"\").sort(sortOrder).join(\"\") === expando; // Support: Chrome 14-35+\n // Always assume duplicates if they aren't passed to the comparison function\n\n support.detectDuplicates = !!hasDuplicate; // Initialize against the default document\n\n setDocument(); // Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n // Detached nodes confoundingly follow *each other*\n\n support.sortDetached = assert(function (el) {\n // Should return 1, but returns 4 (following)\n return el.compareDocumentPosition(document.createElement(\"fieldset\")) & 1;\n }); // Support: IE<8\n // Prevent attribute/property \"interpolation\"\n // https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\n\n if (!assert(function (el) {\n el.innerHTML = \"<a href='#'></a>\";\n return el.firstChild.getAttribute(\"href\") === \"#\";\n })) {\n addHandle(\"type|href|height|width\", function (elem, name, isXML) {\n if (!isXML) {\n return elem.getAttribute(name, name.toLowerCase() === \"type\" ? 1 : 2);\n }\n });\n } // Support: IE<9\n // Use defaultValue in place of getAttribute(\"value\")\n\n\n if (!support.attributes || !assert(function (el) {\n el.innerHTML = \"<input/>\";\n el.firstChild.setAttribute(\"value\", \"\");\n return el.firstChild.getAttribute(\"value\") === \"\";\n })) {\n addHandle(\"value\", function (elem, _name, isXML) {\n if (!isXML && elem.nodeName.toLowerCase() === \"input\") {\n return elem.defaultValue;\n }\n });\n } // Support: IE<9\n // Use getAttributeNode to fetch booleans when getAttribute lies\n\n\n if (!assert(function (el) {\n return el.getAttribute(\"disabled\") == null;\n })) {\n addHandle(booleans, function (elem, name, isXML) {\n var val;\n\n if (!isXML) {\n return elem[name] === true ? name.toLowerCase() : (val = elem.getAttributeNode(name)) && val.specified ? val.value : null;\n }\n });\n } // EXPOSE\n\n\n var _sizzle = window.Sizzle;\n\n Sizzle.noConflict = function () {\n if (window.Sizzle === Sizzle) {\n window.Sizzle = _sizzle;\n }\n\n return Sizzle;\n };\n\n if (typeof define === \"function\" && define.amd) {\n define(function () {\n return Sizzle;\n }); // Sizzle requires that there be a global window in Common-JS like environments\n } else if (typeof module !== \"undefined\" && module.exports) {\n module.exports = Sizzle;\n } else {\n window.Sizzle = Sizzle;\n } // EXPOSE\n\n})(window);","define([\"../../core\"], function (jQuery) {\n \"use strict\";\n\n return function (elem, dir, until) {\n var matched = [],\n truncate = until !== undefined;\n\n while ((elem = elem[dir]) && elem.nodeType !== 9) {\n if (elem.nodeType === 1) {\n if (truncate && jQuery(elem).is(until)) {\n break;\n }\n\n matched.push(elem);\n }\n }\n\n return matched;\n };\n});","define(function () {\n \"use strict\";\n\n return function (n, elem) {\n var matched = [];\n\n for (; n; n = n.nextSibling) {\n if (n.nodeType === 1 && n !== elem) {\n matched.push(n);\n }\n }\n\n return matched;\n };\n});","define([\"../core\", \"../deferred\"], function (jQuery) {\n \"use strict\"; // These usually indicate a programmer mistake during development,\n // warn about them ASAP rather than swallowing them by default.\n\n var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\n jQuery.Deferred.exceptionHook = function (error, stack) {\n // Support: IE 8 - 9 only\n // Console exists when dev tools are open, which can happen at any time\n if (window.console && window.console.warn && error && rerrorNames.test(error.name)) {\n window.console.warn(\"jQuery.Deferred exception: \" + error.message, error.stack, stack);\n }\n };\n});","define([\"../core\"], function (jQuery) {\n \"use strict\";\n\n jQuery.readyException = function (error) {\n window.setTimeout(function () {\n throw error;\n });\n };\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\ndefine([\"./core\", \"./core/access\", \"./core/camelCase\", \"./data/var/dataPriv\", \"./data/var/dataUser\"], function (jQuery, access, camelCase, dataPriv, dataUser) {\n \"use strict\"; //\tImplementation Summary\n //\n //\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n //\t2. Improve the module's maintainability by reducing the storage\n //\t\tpaths to a single mechanism.\n //\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n //\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n //\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n //\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\n var rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n rmultiDash = /[A-Z]/g;\n\n function getData(data) {\n if (data === \"true\") {\n return true;\n }\n\n if (data === \"false\") {\n return false;\n }\n\n if (data === \"null\") {\n return null;\n } // Only convert to a number if it doesn't change the string\n\n\n if (data === +data + \"\") {\n return +data;\n }\n\n if (rbrace.test(data)) {\n return JSON.parse(data);\n }\n\n return data;\n }\n\n function dataAttr(elem, key, data) {\n var name; // If nothing was found internally, try to fetch any\n // data from the HTML5 data-* attribute\n\n if (data === undefined && elem.nodeType === 1) {\n name = \"data-\" + key.replace(rmultiDash, \"-$&\").toLowerCase();\n data = elem.getAttribute(name);\n\n if (typeof data === \"string\") {\n try {\n data = getData(data);\n } catch (e) {} // Make sure we set the data so it isn't changed later\n\n\n dataUser.set(elem, key, data);\n } else {\n data = undefined;\n }\n }\n\n return data;\n }\n\n jQuery.extend({\n hasData: function hasData(elem) {\n return dataUser.hasData(elem) || dataPriv.hasData(elem);\n },\n data: function data(elem, name, _data) {\n return dataUser.access(elem, name, _data);\n },\n removeData: function removeData(elem, name) {\n dataUser.remove(elem, name);\n },\n // TODO: Now that all calls to _data and _removeData have been replaced\n // with direct calls to dataPriv methods, these can be deprecated.\n _data: function _data(elem, name, data) {\n return dataPriv.access(elem, name, data);\n },\n _removeData: function _removeData(elem, name) {\n dataPriv.remove(elem, name);\n }\n });\n jQuery.fn.extend({\n data: function data(key, value) {\n var i,\n name,\n data,\n elem = this[0],\n attrs = elem && elem.attributes; // Gets all values\n\n if (key === undefined) {\n if (this.length) {\n data = dataUser.get(elem);\n\n if (elem.nodeType === 1 && !dataPriv.get(elem, \"hasDataAttrs\")) {\n i = attrs.length;\n\n while (i--) {\n // Support: IE 11 only\n // The attrs elements can be null (#14894)\n if (attrs[i]) {\n name = attrs[i].name;\n\n if (name.indexOf(\"data-\") === 0) {\n name = camelCase(name.slice(5));\n dataAttr(elem, name, data[name]);\n }\n }\n }\n\n dataPriv.set(elem, \"hasDataAttrs\", true);\n }\n }\n\n return data;\n } // Sets multiple values\n\n\n if (_typeof(key) === \"object\") {\n return this.each(function () {\n dataUser.set(this, key);\n });\n }\n\n return access(this, function (value) {\n var data; // The calling jQuery object (element matches) is not empty\n // (and therefore has an element appears at this[ 0 ]) and the\n // `value` parameter was not undefined. An empty jQuery object\n // will result in `undefined` for elem = this[ 0 ] which will\n // throw an exception if an attempt to read a data cache is made.\n\n if (elem && value === undefined) {\n // Attempt to get data from the cache\n // The key will always be camelCased in Data\n data = dataUser.get(elem, key);\n\n if (data !== undefined) {\n return data;\n } // Attempt to \"discover\" the data in\n // HTML5 custom data-* attrs\n\n\n data = dataAttr(elem, key);\n\n if (data !== undefined) {\n return data;\n } // We tried really hard, but the data doesn't exist.\n\n\n return;\n } // Set the data...\n\n\n this.each(function () {\n // We always store the camelCased key\n dataUser.set(this, key, value);\n });\n }, null, value, arguments.length > 1, null, true);\n },\n removeData: function removeData(key) {\n return this.each(function () {\n dataUser.remove(this, key);\n });\n }\n });\n return jQuery;\n});","define([\"../core\", \"../queue\", \"../effects\" // Delay is optional because of this dependency\n], function (jQuery) {\n \"use strict\"; // Based off of the plugin by Clint Helfers, with permission.\n // https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/\n\n jQuery.fn.delay = function (time, type) {\n time = jQuery.fx ? jQuery.fx.speeds[time] || time : time;\n type = type || \"fx\";\n return this.queue(type, function (next, hooks) {\n var timeout = window.setTimeout(next, time);\n\n hooks.stop = function () {\n window.clearTimeout(timeout);\n };\n });\n };\n\n return jQuery.fn.delay;\n});","define([\"../core\", \"../data/var/dataPriv\", \"../css/var/isHiddenWithinTree\"], function (jQuery, dataPriv, isHiddenWithinTree) {\n \"use strict\";\n\n var defaultDisplayMap = {};\n\n function getDefaultDisplay(elem) {\n var temp,\n doc = elem.ownerDocument,\n nodeName = elem.nodeName,\n display = defaultDisplayMap[nodeName];\n\n if (display) {\n return display;\n }\n\n temp = doc.body.appendChild(doc.createElement(nodeName));\n display = jQuery.css(temp, \"display\");\n temp.parentNode.removeChild(temp);\n\n if (display === \"none\") {\n display = \"block\";\n }\n\n defaultDisplayMap[nodeName] = display;\n return display;\n }\n\n function showHide(elements, show) {\n var display,\n elem,\n values = [],\n index = 0,\n length = elements.length; // Determine new display value for elements that need to change\n\n for (; index < length; index++) {\n elem = elements[index];\n\n if (!elem.style) {\n continue;\n }\n\n display = elem.style.display;\n\n if (show) {\n // Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n // check is required in this first loop unless we have a nonempty display value (either\n // inline or about-to-be-restored)\n if (display === \"none\") {\n values[index] = dataPriv.get(elem, \"display\") || null;\n\n if (!values[index]) {\n elem.style.display = \"\";\n }\n }\n\n if (elem.style.display === \"\" && isHiddenWithinTree(elem)) {\n values[index] = getDefaultDisplay(elem);\n }\n } else {\n if (display !== \"none\") {\n values[index] = \"none\"; // Remember what we're overwriting\n\n dataPriv.set(elem, \"display\", display);\n }\n }\n } // Set the display of the elements in a second loop to avoid constant reflow\n\n\n for (index = 0; index < length; index++) {\n if (values[index] != null) {\n elements[index].style.display = values[index];\n }\n }\n\n return elements;\n }\n\n jQuery.fn.extend({\n show: function show() {\n return showHide(this, true);\n },\n hide: function hide() {\n return showHide(this);\n },\n toggle: function toggle(state) {\n if (typeof state === \"boolean\") {\n return state ? this.show() : this.hide();\n }\n\n return this.each(function () {\n if (isHiddenWithinTree(this)) {\n jQuery(this).show();\n } else {\n jQuery(this).hide();\n }\n });\n }\n });\n return showHide;\n});","define(function () {\n \"use strict\"; // A method for quickly swapping in/out CSS properties to get correct calculations.\n\n return function (elem, options, callback) {\n var ret,\n name,\n old = {}; // Remember the old values, and insert the new ones\n\n for (name in options) {\n old[name] = elem.style[name];\n elem.style[name] = options[name];\n }\n\n ret = callback.call(elem); // Revert the old values\n\n for (name in options) {\n elem.style[name] = old[name];\n }\n\n return ret;\n };\n});","define([\"./cssExpand\"], function (cssExpand) {\n \"use strict\";\n\n return new RegExp(cssExpand.join(\"|\"), \"i\");\n});","define([\"../core\", \"../css/finalPropName\", \"../css\"], function (jQuery, finalPropName) {\n \"use strict\";\n\n function Tween(elem, options, prop, end, easing) {\n return new Tween.prototype.init(elem, options, prop, end, easing);\n }\n\n jQuery.Tween = Tween;\n Tween.prototype = {\n constructor: Tween,\n init: function init(elem, options, prop, end, easing, unit) {\n this.elem = elem;\n this.prop = prop;\n this.easing = easing || jQuery.easing._default;\n this.options = options;\n this.start = this.now = this.cur();\n this.end = end;\n this.unit = unit || (jQuery.cssNumber[prop] ? \"\" : \"px\");\n },\n cur: function cur() {\n var hooks = Tween.propHooks[this.prop];\n return hooks && hooks.get ? hooks.get(this) : Tween.propHooks._default.get(this);\n },\n run: function run(percent) {\n var eased,\n hooks = Tween.propHooks[this.prop];\n\n if (this.options.duration) {\n this.pos = eased = jQuery.easing[this.easing](percent, this.options.duration * percent, 0, 1, this.options.duration);\n } else {\n this.pos = eased = percent;\n }\n\n this.now = (this.end - this.start) * eased + this.start;\n\n if (this.options.step) {\n this.options.step.call(this.elem, this.now, this);\n }\n\n if (hooks && hooks.set) {\n hooks.set(this);\n } else {\n Tween.propHooks._default.set(this);\n }\n\n return this;\n }\n };\n Tween.prototype.init.prototype = Tween.prototype;\n Tween.propHooks = {\n _default: {\n get: function get(tween) {\n var result; // Use a property on the element directly when it is not a DOM element,\n // or when there is no matching style property that exists.\n\n if (tween.elem.nodeType !== 1 || tween.elem[tween.prop] != null && tween.elem.style[tween.prop] == null) {\n return tween.elem[tween.prop];\n } // Passing an empty string as a 3rd parameter to .css will automatically\n // attempt a parseFloat and fallback to a string if the parse fails.\n // Simple values such as \"10px\" are parsed to Float;\n // complex values such as \"rotate(1rad)\" are returned as-is.\n\n\n result = jQuery.css(tween.elem, tween.prop, \"\"); // Empty strings, null, undefined and \"auto\" are converted to 0.\n\n return !result || result === \"auto\" ? 0 : result;\n },\n set: function set(tween) {\n // Use step hook for back compat.\n // Use cssHook if its there.\n // Use .style if available and use plain properties where available.\n if (jQuery.fx.step[tween.prop]) {\n jQuery.fx.step[tween.prop](tween);\n } else if (tween.elem.nodeType === 1 && (jQuery.cssHooks[tween.prop] || tween.elem.style[finalPropName(tween.prop)] != null)) {\n jQuery.style(tween.elem, tween.prop, tween.now + tween.unit);\n } else {\n tween.elem[tween.prop] = tween.now;\n }\n }\n }\n }; // Support: IE <=9 only\n // Panic based approach to setting things on disconnected nodes\n\n Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n set: function set(tween) {\n if (tween.elem.nodeType && tween.elem.parentNode) {\n tween.elem[tween.prop] = tween.now;\n }\n }\n };\n jQuery.easing = {\n linear: function linear(p) {\n return p;\n },\n swing: function swing(p) {\n return 0.5 - Math.cos(p * Math.PI) / 2;\n },\n _default: \"swing\"\n };\n jQuery.fx = Tween.prototype.init; // Back compat <1.8 extension point\n\n jQuery.fx.step = {};\n});","define([\"./core\", \"./attributes/attr\", \"./attributes/prop\", \"./attributes/classes\", \"./attributes/val\"], function (jQuery) {\n \"use strict\"; // Return jQuery for attributes-only inclusion\n\n return jQuery;\n});","define([\"../core\", \"../core/access\", \"../core/nodeName\", \"./support\", \"../var/rnothtmlwhite\", \"../selector\"], function (jQuery, access, nodeName, support, rnothtmlwhite) {\n \"use strict\";\n\n var boolHook,\n attrHandle = jQuery.expr.attrHandle;\n jQuery.fn.extend({\n attr: function attr(name, value) {\n return access(this, jQuery.attr, name, value, arguments.length > 1);\n },\n removeAttr: function removeAttr(name) {\n return this.each(function () {\n jQuery.removeAttr(this, name);\n });\n }\n });\n jQuery.extend({\n attr: function attr(elem, name, value) {\n var ret,\n hooks,\n nType = elem.nodeType; // Don't get/set attributes on text, comment and attribute nodes\n\n if (nType === 3 || nType === 8 || nType === 2) {\n return;\n } // Fallback to prop when attributes are not supported\n\n\n if (typeof elem.getAttribute === \"undefined\") {\n return jQuery.prop(elem, name, value);\n } // Attribute hooks are determined by the lowercase version\n // Grab necessary hook if one is defined\n\n\n if (nType !== 1 || !jQuery.isXMLDoc(elem)) {\n hooks = jQuery.attrHooks[name.toLowerCase()] || (jQuery.expr.match.bool.test(name) ? boolHook : undefined);\n }\n\n if (value !== undefined) {\n if (value === null) {\n jQuery.removeAttr(elem, name);\n return;\n }\n\n if (hooks && \"set\" in hooks && (ret = hooks.set(elem, value, name)) !== undefined) {\n return ret;\n }\n\n elem.setAttribute(name, value + \"\");\n return value;\n }\n\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, name)) !== null) {\n return ret;\n }\n\n ret = jQuery.find.attr(elem, name); // Non-existent attributes return null, we normalize to undefined\n\n return ret == null ? undefined : ret;\n },\n attrHooks: {\n type: {\n set: function set(elem, value) {\n if (!support.radioValue && value === \"radio\" && nodeName(elem, \"input\")) {\n var val = elem.value;\n elem.setAttribute(\"type\", value);\n\n if (val) {\n elem.value = val;\n }\n\n return value;\n }\n }\n }\n },\n removeAttr: function removeAttr(elem, value) {\n var name,\n i = 0,\n // Attribute names can contain non-HTML whitespace characters\n // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n attrNames = value && value.match(rnothtmlwhite);\n\n if (attrNames && elem.nodeType === 1) {\n while (name = attrNames[i++]) {\n elem.removeAttribute(name);\n }\n }\n }\n }); // Hooks for boolean attributes\n\n boolHook = {\n set: function set(elem, value, name) {\n if (value === false) {\n // Remove boolean attributes when set to false\n jQuery.removeAttr(elem, name);\n } else {\n elem.setAttribute(name, name);\n }\n\n return name;\n }\n };\n jQuery.each(jQuery.expr.match.bool.source.match(/\\w+/g), function (_i, name) {\n var getter = attrHandle[name] || jQuery.find.attr;\n\n attrHandle[name] = function (elem, name, isXML) {\n var ret,\n handle,\n lowercaseName = name.toLowerCase();\n\n if (!isXML) {\n // Avoid an infinite loop by temporarily removing this function from the getter\n handle = attrHandle[lowercaseName];\n attrHandle[lowercaseName] = ret;\n ret = getter(elem, name, isXML) != null ? lowercaseName : null;\n attrHandle[lowercaseName] = handle;\n }\n\n return ret;\n };\n });\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\ndefine([\"../core\", \"../core/stripAndCollapse\", \"../var/isFunction\", \"../var/rnothtmlwhite\", \"../data/var/dataPriv\", \"../core/init\"], function (jQuery, stripAndCollapse, isFunction, rnothtmlwhite, dataPriv) {\n \"use strict\";\n\n function getClass(elem) {\n return elem.getAttribute && elem.getAttribute(\"class\") || \"\";\n }\n\n function classesToArray(value) {\n if (Array.isArray(value)) {\n return value;\n }\n\n if (typeof value === \"string\") {\n return value.match(rnothtmlwhite) || [];\n }\n\n return [];\n }\n\n jQuery.fn.extend({\n addClass: function addClass(value) {\n var classes,\n elem,\n cur,\n curValue,\n clazz,\n j,\n finalValue,\n i = 0;\n\n if (isFunction(value)) {\n return this.each(function (j) {\n jQuery(this).addClass(value.call(this, j, getClass(this)));\n });\n }\n\n classes = classesToArray(value);\n\n if (classes.length) {\n while (elem = this[i++]) {\n curValue = getClass(elem);\n cur = elem.nodeType === 1 && \" \" + stripAndCollapse(curValue) + \" \";\n\n if (cur) {\n j = 0;\n\n while (clazz = classes[j++]) {\n if (cur.indexOf(\" \" + clazz + \" \") < 0) {\n cur += clazz + \" \";\n }\n } // Only assign if different to avoid unneeded rendering.\n\n\n finalValue = stripAndCollapse(cur);\n\n if (curValue !== finalValue) {\n elem.setAttribute(\"class\", finalValue);\n }\n }\n }\n }\n\n return this;\n },\n removeClass: function removeClass(value) {\n var classes,\n elem,\n cur,\n curValue,\n clazz,\n j,\n finalValue,\n i = 0;\n\n if (isFunction(value)) {\n return this.each(function (j) {\n jQuery(this).removeClass(value.call(this, j, getClass(this)));\n });\n }\n\n if (!arguments.length) {\n return this.attr(\"class\", \"\");\n }\n\n classes = classesToArray(value);\n\n if (classes.length) {\n while (elem = this[i++]) {\n curValue = getClass(elem); // This expression is here for better compressibility (see addClass)\n\n cur = elem.nodeType === 1 && \" \" + stripAndCollapse(curValue) + \" \";\n\n if (cur) {\n j = 0;\n\n while (clazz = classes[j++]) {\n // Remove *all* instances\n while (cur.indexOf(\" \" + clazz + \" \") > -1) {\n cur = cur.replace(\" \" + clazz + \" \", \" \");\n }\n } // Only assign if different to avoid unneeded rendering.\n\n\n finalValue = stripAndCollapse(cur);\n\n if (curValue !== finalValue) {\n elem.setAttribute(\"class\", finalValue);\n }\n }\n }\n }\n\n return this;\n },\n toggleClass: function toggleClass(value, stateVal) {\n var type = _typeof(value),\n isValidValue = type === \"string\" || Array.isArray(value);\n\n if (typeof stateVal === \"boolean\" && isValidValue) {\n return stateVal ? this.addClass(value) : this.removeClass(value);\n }\n\n if (isFunction(value)) {\n return this.each(function (i) {\n jQuery(this).toggleClass(value.call(this, i, getClass(this), stateVal), stateVal);\n });\n }\n\n return this.each(function () {\n var className, i, self, classNames;\n\n if (isValidValue) {\n // Toggle individual class names\n i = 0;\n self = jQuery(this);\n classNames = classesToArray(value);\n\n while (className = classNames[i++]) {\n // Check each className given, space separated list\n if (self.hasClass(className)) {\n self.removeClass(className);\n } else {\n self.addClass(className);\n }\n } // Toggle whole class name\n\n } else if (value === undefined || type === \"boolean\") {\n className = getClass(this);\n\n if (className) {\n // Store className if set\n dataPriv.set(this, \"__className__\", className);\n } // If the element has a class name or if we're passed `false`,\n // then remove the whole classname (if there was one, the above saved it).\n // Otherwise bring back whatever was previously saved (if anything),\n // falling back to the empty string if nothing was stored.\n\n\n if (this.setAttribute) {\n this.setAttribute(\"class\", className || value === false ? \"\" : dataPriv.get(this, \"__className__\") || \"\");\n }\n }\n });\n },\n hasClass: function hasClass(selector) {\n var className,\n elem,\n i = 0;\n className = \" \" + selector + \" \";\n\n while (elem = this[i++]) {\n if (elem.nodeType === 1 && (\" \" + stripAndCollapse(getClass(elem)) + \" \").indexOf(className) > -1) {\n return true;\n }\n }\n\n return false;\n }\n });\n});","define([\"../core\", \"../core/stripAndCollapse\", \"./support\", \"../core/nodeName\", \"../var/isFunction\", \"../core/init\"], function (jQuery, stripAndCollapse, support, nodeName, isFunction) {\n \"use strict\";\n\n var rreturn = /\\r/g;\n jQuery.fn.extend({\n val: function val(value) {\n var hooks,\n ret,\n valueIsFunction,\n elem = this[0];\n\n if (!arguments.length) {\n if (elem) {\n hooks = jQuery.valHooks[elem.type] || jQuery.valHooks[elem.nodeName.toLowerCase()];\n\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, \"value\")) !== undefined) {\n return ret;\n }\n\n ret = elem.value; // Handle most common string cases\n\n if (typeof ret === \"string\") {\n return ret.replace(rreturn, \"\");\n } // Handle cases where value is null/undef or number\n\n\n return ret == null ? \"\" : ret;\n }\n\n return;\n }\n\n valueIsFunction = isFunction(value);\n return this.each(function (i) {\n var val;\n\n if (this.nodeType !== 1) {\n return;\n }\n\n if (valueIsFunction) {\n val = value.call(this, i, jQuery(this).val());\n } else {\n val = value;\n } // Treat null/undefined as \"\"; convert numbers to string\n\n\n if (val == null) {\n val = \"\";\n } else if (typeof val === \"number\") {\n val += \"\";\n } else if (Array.isArray(val)) {\n val = jQuery.map(val, function (value) {\n return value == null ? \"\" : value + \"\";\n });\n }\n\n hooks = jQuery.valHooks[this.type] || jQuery.valHooks[this.nodeName.toLowerCase()]; // If set returns undefined, fall back to normal setting\n\n if (!hooks || !(\"set\" in hooks) || hooks.set(this, val, \"value\") === undefined) {\n this.value = val;\n }\n });\n }\n });\n jQuery.extend({\n valHooks: {\n option: {\n get: function get(elem) {\n var val = jQuery.find.attr(elem, \"value\");\n return val != null ? val : // Support: IE <=10 - 11 only\n // option.text throws exceptions (#14686, #14858)\n // Strip and collapse whitespace\n // https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n stripAndCollapse(jQuery.text(elem));\n }\n },\n select: {\n get: function get(elem) {\n var value,\n option,\n i,\n options = elem.options,\n index = elem.selectedIndex,\n one = elem.type === \"select-one\",\n values = one ? null : [],\n max = one ? index + 1 : options.length;\n\n if (index < 0) {\n i = max;\n } else {\n i = one ? index : 0;\n } // Loop through all the selected options\n\n\n for (; i < max; i++) {\n option = options[i]; // Support: IE <=9 only\n // IE8-9 doesn't update selected after form reset (#2551)\n\n if ((option.selected || i === index) && // Don't return options that are disabled or in a disabled optgroup\n !option.disabled && (!option.parentNode.disabled || !nodeName(option.parentNode, \"optgroup\"))) {\n // Get the specific value for the option\n value = jQuery(option).val(); // We don't need an array for one selects\n\n if (one) {\n return value;\n } // Multi-Selects return an array\n\n\n values.push(value);\n }\n }\n\n return values;\n },\n set: function set(elem, value) {\n var optionSet,\n option,\n options = elem.options,\n values = jQuery.makeArray(value),\n i = options.length;\n\n while (i--) {\n option = options[i];\n /* eslint-disable no-cond-assign */\n\n if (option.selected = jQuery.inArray(jQuery.valHooks.option.get(option), values) > -1) {\n optionSet = true;\n }\n /* eslint-enable no-cond-assign */\n\n } // Force browsers to behave consistently when non-matching value is set\n\n\n if (!optionSet) {\n elem.selectedIndex = -1;\n }\n\n return values;\n }\n }\n }\n }); // Radios and checkboxes getter/setter\n\n jQuery.each([\"radio\", \"checkbox\"], function () {\n jQuery.valHooks[this] = {\n set: function set(elem, value) {\n if (Array.isArray(value)) {\n return elem.checked = jQuery.inArray(jQuery(elem).val(), value) > -1;\n }\n }\n };\n\n if (!support.checkOn) {\n jQuery.valHooks[this].get = function (elem) {\n return elem.getAttribute(\"value\") === null ? \"on\" : elem.value;\n };\n }\n });\n});","define([\"../core\", \"../data/var/dataPriv\", \"./support\", \"../event\", \"./trigger\"], function (jQuery, dataPriv, support) {\n \"use strict\"; // Support: Firefox <=44\n // Firefox doesn't have focus(in | out) events\n // Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n //\n // Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n // focus(in | out) events fire after focus & blur events,\n // which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n // Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\n\n if (!support.focusin) {\n jQuery.each({\n focus: \"focusin\",\n blur: \"focusout\"\n }, function (orig, fix) {\n // Attach a single capturing handler on the document while someone wants focusin/focusout\n var handler = function handler(event) {\n jQuery.event.simulate(fix, event.target, jQuery.event.fix(event));\n };\n\n jQuery.event.special[fix] = {\n setup: function setup() {\n // Handle: regular nodes (via `this.ownerDocument`), window\n // (via `this.document`) & document (via `this`).\n var doc = this.ownerDocument || this.document || this,\n attaches = dataPriv.access(doc, fix);\n\n if (!attaches) {\n doc.addEventListener(orig, handler, true);\n }\n\n dataPriv.access(doc, fix, (attaches || 0) + 1);\n },\n teardown: function teardown() {\n var doc = this.ownerDocument || this.document || this,\n attaches = dataPriv.access(doc, fix) - 1;\n\n if (!attaches) {\n doc.removeEventListener(orig, handler, true);\n dataPriv.remove(doc, fix);\n } else {\n dataPriv.access(doc, fix, attaches);\n }\n }\n };\n });\n }\n\n return jQuery;\n});","define([\"../var/support\"], function (support) {\n \"use strict\";\n\n support.focusin = \"onfocusin\" in window;\n return support;\n});","define([\"../ajax\"], function (jQuery) {\n \"use strict\";\n\n jQuery._evalUrl = function (url, options, doc) {\n return jQuery.ajax({\n url: url,\n // Make this explicit, since user can override this through ajaxSetup (#11264)\n type: \"GET\",\n dataType: \"script\",\n cache: true,\n async: false,\n global: false,\n // Only evaluate the response if it is successful (gh-4126)\n // dataFilter is not invoked for failure responses, so using it instead\n // of the default converter is kludgy but it works.\n converters: {\n \"text script\": function textScript() {}\n },\n dataFilter: function dataFilter(response) {\n jQuery.globalEval(response, options, doc);\n }\n });\n };\n\n return jQuery._evalUrl;\n});","define(function () {\n \"use strict\";\n\n return window.location;\n});","define([\"./core\", \"./var/isFunction\", \"./core/init\", \"./manipulation\", // clone\n\"./traversing\" // parent, contents\n], function (jQuery, isFunction) {\n \"use strict\";\n\n jQuery.fn.extend({\n wrapAll: function wrapAll(html) {\n var wrap;\n\n if (this[0]) {\n if (isFunction(html)) {\n html = html.call(this[0]);\n } // The elements to wrap the target around\n\n\n wrap = jQuery(html, this[0].ownerDocument).eq(0).clone(true);\n\n if (this[0].parentNode) {\n wrap.insertBefore(this[0]);\n }\n\n wrap.map(function () {\n var elem = this;\n\n while (elem.firstElementChild) {\n elem = elem.firstElementChild;\n }\n\n return elem;\n }).append(this);\n }\n\n return this;\n },\n wrapInner: function wrapInner(html) {\n if (isFunction(html)) {\n return this.each(function (i) {\n jQuery(this).wrapInner(html.call(this, i));\n });\n }\n\n return this.each(function () {\n var self = jQuery(this),\n contents = self.contents();\n\n if (contents.length) {\n contents.wrapAll(html);\n } else {\n self.append(html);\n }\n });\n },\n wrap: function wrap(html) {\n var htmlIsFunction = isFunction(html);\n return this.each(function (i) {\n jQuery(this).wrapAll(htmlIsFunction ? html.call(this, i) : html);\n });\n },\n unwrap: function unwrap(selector) {\n this.parent(selector).not(\"body\").each(function () {\n jQuery(this).replaceWith(this.childNodes);\n });\n return this;\n }\n });\n return jQuery;\n});","define([\"../core\", \"../selector\"], function (jQuery) {\n \"use strict\";\n\n jQuery.expr.pseudos.hidden = function (elem) {\n return !jQuery.expr.pseudos.visible(elem);\n };\n\n jQuery.expr.pseudos.visible = function (elem) {\n return !!(elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length);\n };\n});","define([\"../core\", \"../var/support\", \"../ajax\"], function (jQuery, support) {\n \"use strict\";\n\n jQuery.ajaxSettings.xhr = function () {\n try {\n return new window.XMLHttpRequest();\n } catch (e) {}\n };\n\n var xhrSuccessStatus = {\n // File protocol always yields status code 0, assume 200\n 0: 200,\n // Support: IE <=9 only\n // #1450: sometimes IE returns 1223 when it should be 204\n 1223: 204\n },\n xhrSupported = jQuery.ajaxSettings.xhr();\n support.cors = !!xhrSupported && \"withCredentials\" in xhrSupported;\n support.ajax = xhrSupported = !!xhrSupported;\n jQuery.ajaxTransport(function (options) {\n var _callback, errorCallback; // Cross domain only allowed if supported through XMLHttpRequest\n\n\n if (support.cors || xhrSupported && !options.crossDomain) {\n return {\n send: function send(headers, complete) {\n var i,\n xhr = options.xhr();\n xhr.open(options.type, options.url, options.async, options.username, options.password); // Apply custom fields if provided\n\n if (options.xhrFields) {\n for (i in options.xhrFields) {\n xhr[i] = options.xhrFields[i];\n }\n } // Override mime type if needed\n\n\n if (options.mimeType && xhr.overrideMimeType) {\n xhr.overrideMimeType(options.mimeType);\n } // X-Requested-With header\n // For cross-domain requests, seeing as conditions for a preflight are\n // akin to a jigsaw puzzle, we simply never set it to be sure.\n // (it can always be set on a per-request basis or even using ajaxSetup)\n // For same-domain requests, won't change header if already provided.\n\n\n if (!options.crossDomain && !headers[\"X-Requested-With\"]) {\n headers[\"X-Requested-With\"] = \"XMLHttpRequest\";\n } // Set headers\n\n\n for (i in headers) {\n xhr.setRequestHeader(i, headers[i]);\n } // Callback\n\n\n _callback = function callback(type) {\n return function () {\n if (_callback) {\n _callback = errorCallback = xhr.onload = xhr.onerror = xhr.onabort = xhr.ontimeout = xhr.onreadystatechange = null;\n\n if (type === \"abort\") {\n xhr.abort();\n } else if (type === \"error\") {\n // Support: IE <=9 only\n // On a manual native abort, IE9 throws\n // errors on any property access that is not readyState\n if (typeof xhr.status !== \"number\") {\n complete(0, \"error\");\n } else {\n complete( // File: protocol always yields status 0; see #8605, #14207\n xhr.status, xhr.statusText);\n }\n } else {\n complete(xhrSuccessStatus[xhr.status] || xhr.status, xhr.statusText, // Support: IE <=9 only\n // IE9 has no XHR2 but throws on binary (trac-11426)\n // For XHR2 non-text, let the caller handle it (gh-2498)\n (xhr.responseType || \"text\") !== \"text\" || typeof xhr.responseText !== \"string\" ? {\n binary: xhr.response\n } : {\n text: xhr.responseText\n }, xhr.getAllResponseHeaders());\n }\n }\n };\n }; // Listen to events\n\n\n xhr.onload = _callback();\n errorCallback = xhr.onerror = xhr.ontimeout = _callback(\"error\"); // Support: IE 9 only\n // Use onreadystatechange to replace onabort\n // to handle uncaught aborts\n\n if (xhr.onabort !== undefined) {\n xhr.onabort = errorCallback;\n } else {\n xhr.onreadystatechange = function () {\n // Check readyState before timeout as it changes\n if (xhr.readyState === 4) {\n // Allow onerror to be called first,\n // but that will not handle a native abort\n // Also, save errorCallback to a variable\n // as xhr.onerror cannot be accessed\n window.setTimeout(function () {\n if (_callback) {\n errorCallback();\n }\n });\n }\n };\n } // Create the abort callback\n\n\n _callback = _callback(\"abort\");\n\n try {\n // Do send the request (this may raise an exception)\n xhr.send(options.hasContent && options.data || null);\n } catch (e) {\n // #14683: Only rethrow if this hasn't been notified as an error yet\n if (_callback) {\n throw e;\n }\n }\n },\n abort: function abort() {\n if (_callback) {\n _callback();\n }\n }\n };\n }\n });\n});","define([\"../core\", \"../var/document\", \"../ajax\"], function (jQuery, document) {\n \"use strict\"; // Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\n\n jQuery.ajaxPrefilter(function (s) {\n if (s.crossDomain) {\n s.contents.script = false;\n }\n }); // Install script dataType\n\n jQuery.ajaxSetup({\n accepts: {\n script: \"text/javascript, application/javascript, \" + \"application/ecmascript, application/x-ecmascript\"\n },\n contents: {\n script: /\\b(?:java|ecma)script\\b/\n },\n converters: {\n \"text script\": function textScript(text) {\n jQuery.globalEval(text);\n return text;\n }\n }\n }); // Handle cache's special case and crossDomain\n\n jQuery.ajaxPrefilter(\"script\", function (s) {\n if (s.cache === undefined) {\n s.cache = false;\n }\n\n if (s.crossDomain) {\n s.type = \"GET\";\n }\n }); // Bind script tag hack transport\n\n jQuery.ajaxTransport(\"script\", function (s) {\n // This transport only deals with cross domain or forced-by-attrs requests\n if (s.crossDomain || s.scriptAttrs) {\n var script, _callback;\n\n return {\n send: function send(_, complete) {\n script = jQuery(\"<script>\").attr(s.scriptAttrs || {}).prop({\n charset: s.scriptCharset,\n src: s.url\n }).on(\"load error\", _callback = function callback(evt) {\n script.remove();\n _callback = null;\n\n if (evt) {\n complete(evt.type === \"error\" ? 404 : 200, evt.type);\n }\n }); // Use native DOM manipulation to avoid our domManip AJAX trickery\n\n document.head.appendChild(script[0]);\n },\n abort: function abort() {\n if (_callback) {\n _callback();\n }\n }\n };\n }\n });\n});","define([\"../core\", \"../var/isFunction\", \"./var/nonce\", \"./var/rquery\", \"../ajax\"], function (jQuery, isFunction, nonce, rquery) {\n \"use strict\";\n\n var oldCallbacks = [],\n rjsonp = /(=)\\?(?=&|$)|\\?\\?/; // Default jsonp settings\n\n jQuery.ajaxSetup({\n jsonp: \"callback\",\n jsonpCallback: function jsonpCallback() {\n var callback = oldCallbacks.pop() || jQuery.expando + \"_\" + nonce.guid++;\n this[callback] = true;\n return callback;\n }\n }); // Detect, normalize options and install callbacks for jsonp requests\n\n jQuery.ajaxPrefilter(\"json jsonp\", function (s, originalSettings, jqXHR) {\n var callbackName,\n overwritten,\n responseContainer,\n jsonProp = s.jsonp !== false && (rjsonp.test(s.url) ? \"url\" : typeof s.data === \"string\" && (s.contentType || \"\").indexOf(\"application/x-www-form-urlencoded\") === 0 && rjsonp.test(s.data) && \"data\"); // Handle iff the expected data type is \"jsonp\" or we have a parameter to set\n\n if (jsonProp || s.dataTypes[0] === \"jsonp\") {\n // Get callback name, remembering preexisting value associated with it\n callbackName = s.jsonpCallback = isFunction(s.jsonpCallback) ? s.jsonpCallback() : s.jsonpCallback; // Insert callback into url or form data\n\n if (jsonProp) {\n s[jsonProp] = s[jsonProp].replace(rjsonp, \"$1\" + callbackName);\n } else if (s.jsonp !== false) {\n s.url += (rquery.test(s.url) ? \"&\" : \"?\") + s.jsonp + \"=\" + callbackName;\n } // Use data converter to retrieve json after script execution\n\n\n s.converters[\"script json\"] = function () {\n if (!responseContainer) {\n jQuery.error(callbackName + \" was not called\");\n }\n\n return responseContainer[0];\n }; // Force json dataType\n\n\n s.dataTypes[0] = \"json\"; // Install callback\n\n overwritten = window[callbackName];\n\n window[callbackName] = function () {\n responseContainer = arguments;\n }; // Clean-up function (fires after converters)\n\n\n jqXHR.always(function () {\n // If previous value didn't exist - remove it\n if (overwritten === undefined) {\n jQuery(window).removeProp(callbackName); // Otherwise restore preexisting value\n } else {\n window[callbackName] = overwritten;\n } // Save back as free\n\n\n if (s[callbackName]) {\n // Make sure that re-using the options doesn't screw things around\n s.jsonpCallback = originalSettings.jsonpCallback; // Save the callback name for future use\n\n oldCallbacks.push(callbackName);\n } // Call if it was a function and we have a response\n\n\n if (responseContainer && isFunction(overwritten)) {\n overwritten(responseContainer[0]);\n }\n\n responseContainer = overwritten = undefined;\n }); // Delegate to script\n\n return \"script\";\n }\n });\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\ndefine([\"../core\", \"../core/stripAndCollapse\", \"../var/isFunction\", \"../core/parseHTML\", \"../ajax\", \"../traversing\", \"../manipulation\", \"../selector\"], function (jQuery, stripAndCollapse, isFunction) {\n \"use strict\";\n /**\n * Load a url into a page\n */\n\n jQuery.fn.load = function (url, params, callback) {\n var selector,\n type,\n response,\n self = this,\n off = url.indexOf(\" \");\n\n if (off > -1) {\n selector = stripAndCollapse(url.slice(off));\n url = url.slice(0, off);\n } // If it's a function\n\n\n if (isFunction(params)) {\n // We assume that it's the callback\n callback = params;\n params = undefined; // Otherwise, build a param string\n } else if (params && _typeof(params) === \"object\") {\n type = \"POST\";\n } // If we have elements to modify, make the request\n\n\n if (self.length > 0) {\n jQuery.ajax({\n url: url,\n // If \"type\" variable is undefined, then \"GET\" method will be used.\n // Make value of this field explicit since\n // user can override it through ajaxSetup method\n type: type || \"GET\",\n dataType: \"html\",\n data: params\n }).done(function (responseText) {\n // Save response for use in complete callback\n response = arguments;\n self.html(selector ? // If a selector was specified, locate the right elements in a dummy div\n // Exclude scripts to avoid IE 'Permission Denied' errors\n jQuery(\"<div>\").append(jQuery.parseHTML(responseText)).find(selector) : // Otherwise use the full result\n responseText); // If the request succeeds, this function gets \"data\", \"status\", \"jqXHR\"\n // but they are ignored because response was set above.\n // If it fails, this function gets \"jqXHR\", \"status\", \"error\"\n }).always(callback && function (jqXHR, status) {\n self.each(function () {\n callback.apply(this, response || [jqXHR.responseText, status, jqXHR]);\n });\n });\n }\n\n return this;\n };\n});","define([\"../var/document\", \"../var/support\"], function (document, support) {\n \"use strict\"; // Support: Safari 8 only\n // In Safari 8 documents created via document.implementation.createHTMLDocument\n // collapse sibling forms: the second one becomes a child of the first one.\n // Because of that, this security measure has to be disabled in Safari 8.\n // https://bugs.webkit.org/show_bug.cgi?id=137337\n\n support.createHTMLDocument = function () {\n var body = document.implementation.createHTMLDocument(\"\").body;\n body.innerHTML = \"<form></form><form></form>\";\n return body.childNodes.length === 2;\n }();\n\n return support;\n});","define([\"../core\", \"../selector\", \"../effects\"], function (jQuery) {\n \"use strict\";\n\n jQuery.expr.pseudos.animated = function (elem) {\n return jQuery.grep(jQuery.timers, function (fn) {\n return elem === fn.elem;\n }).length;\n };\n});","define([\"./core\", \"./core/access\", \"./var/documentElement\", \"./var/isFunction\", \"./css/var/rnumnonpx\", \"./css/curCSS\", \"./css/addGetHookIf\", \"./css/support\", \"./var/isWindow\", \"./core/init\", \"./css\", \"./selector\" // contains\n], function (jQuery, access, documentElement, isFunction, rnumnonpx, curCSS, addGetHookIf, support, isWindow) {\n \"use strict\";\n\n jQuery.offset = {\n setOffset: function setOffset(elem, options, i) {\n var curPosition,\n curLeft,\n curCSSTop,\n curTop,\n curOffset,\n curCSSLeft,\n calculatePosition,\n position = jQuery.css(elem, \"position\"),\n curElem = jQuery(elem),\n props = {}; // Set position first, in-case top/left are set even on static elem\n\n if (position === \"static\") {\n elem.style.position = \"relative\";\n }\n\n curOffset = curElem.offset();\n curCSSTop = jQuery.css(elem, \"top\");\n curCSSLeft = jQuery.css(elem, \"left\");\n calculatePosition = (position === \"absolute\" || position === \"fixed\") && (curCSSTop + curCSSLeft).indexOf(\"auto\") > -1; // Need to be able to calculate position if either\n // top or left is auto and position is either absolute or fixed\n\n if (calculatePosition) {\n curPosition = curElem.position();\n curTop = curPosition.top;\n curLeft = curPosition.left;\n } else {\n curTop = parseFloat(curCSSTop) || 0;\n curLeft = parseFloat(curCSSLeft) || 0;\n }\n\n if (isFunction(options)) {\n // Use jQuery.extend here to allow modification of coordinates argument (gh-1848)\n options = options.call(elem, i, jQuery.extend({}, curOffset));\n }\n\n if (options.top != null) {\n props.top = options.top - curOffset.top + curTop;\n }\n\n if (options.left != null) {\n props.left = options.left - curOffset.left + curLeft;\n }\n\n if (\"using\" in options) {\n options.using.call(elem, props);\n } else {\n curElem.css(props);\n }\n }\n };\n jQuery.fn.extend({\n // offset() relates an element's border box to the document origin\n offset: function offset(options) {\n // Preserve chaining for setter\n if (arguments.length) {\n return options === undefined ? this : this.each(function (i) {\n jQuery.offset.setOffset(this, options, i);\n });\n }\n\n var rect,\n win,\n elem = this[0];\n\n if (!elem) {\n return;\n } // Return zeros for disconnected and hidden (display: none) elements (gh-2310)\n // Support: IE <=11 only\n // Running getBoundingClientRect on a\n // disconnected node in IE throws an error\n\n\n if (!elem.getClientRects().length) {\n return {\n top: 0,\n left: 0\n };\n } // Get document-relative position by adding viewport scroll to viewport-relative gBCR\n\n\n rect = elem.getBoundingClientRect();\n win = elem.ownerDocument.defaultView;\n return {\n top: rect.top + win.pageYOffset,\n left: rect.left + win.pageXOffset\n };\n },\n // position() relates an element's margin box to its offset parent's padding box\n // This corresponds to the behavior of CSS absolute positioning\n position: function position() {\n if (!this[0]) {\n return;\n }\n\n var offsetParent,\n offset,\n doc,\n elem = this[0],\n parentOffset = {\n top: 0,\n left: 0\n }; // position:fixed elements are offset from the viewport, which itself always has zero offset\n\n if (jQuery.css(elem, \"position\") === \"fixed\") {\n // Assume position:fixed implies availability of getBoundingClientRect\n offset = elem.getBoundingClientRect();\n } else {\n offset = this.offset(); // Account for the *real* offset parent, which can be the document or its root element\n // when a statically positioned element is identified\n\n doc = elem.ownerDocument;\n offsetParent = elem.offsetParent || doc.documentElement;\n\n while (offsetParent && (offsetParent === doc.body || offsetParent === doc.documentElement) && jQuery.css(offsetParent, \"position\") === \"static\") {\n offsetParent = offsetParent.parentNode;\n }\n\n if (offsetParent && offsetParent !== elem && offsetParent.nodeType === 1) {\n // Incorporate borders into its offset, since they are outside its content origin\n parentOffset = jQuery(offsetParent).offset();\n parentOffset.top += jQuery.css(offsetParent, \"borderTopWidth\", true);\n parentOffset.left += jQuery.css(offsetParent, \"borderLeftWidth\", true);\n }\n } // Subtract parent offsets and element margins\n\n\n return {\n top: offset.top - parentOffset.top - jQuery.css(elem, \"marginTop\", true),\n left: offset.left - parentOffset.left - jQuery.css(elem, \"marginLeft\", true)\n };\n },\n // This method will return documentElement in the following cases:\n // 1) For the element inside the iframe without offsetParent, this method will return\n // documentElement of the parent window\n // 2) For the hidden or detached element\n // 3) For body or html element, i.e. in case of the html node - it will return itself\n //\n // but those exceptions were never presented as a real life use-cases\n // and might be considered as more preferable results.\n //\n // This logic, however, is not guaranteed and can change at any point in the future\n offsetParent: function offsetParent() {\n return this.map(function () {\n var offsetParent = this.offsetParent;\n\n while (offsetParent && jQuery.css(offsetParent, \"position\") === \"static\") {\n offsetParent = offsetParent.offsetParent;\n }\n\n return offsetParent || documentElement;\n });\n }\n }); // Create scrollLeft and scrollTop methods\n\n jQuery.each({\n scrollLeft: \"pageXOffset\",\n scrollTop: \"pageYOffset\"\n }, function (method, prop) {\n var top = \"pageYOffset\" === prop;\n\n jQuery.fn[method] = function (val) {\n return access(this, function (elem, method, val) {\n // Coalesce documents and windows\n var win;\n\n if (isWindow(elem)) {\n win = elem;\n } else if (elem.nodeType === 9) {\n win = elem.defaultView;\n }\n\n if (val === undefined) {\n return win ? win[prop] : elem[method];\n }\n\n if (win) {\n win.scrollTo(!top ? val : win.pageXOffset, top ? val : win.pageYOffset);\n } else {\n elem[method] = val;\n }\n }, method, val, arguments.length);\n };\n }); // Support: Safari <=7 - 9.1, Chrome <=37 - 49\n // Add the top/left cssHooks using jQuery.fn.position\n // Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084\n // Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347\n // getComputedStyle returns percent when specified for top/left/bottom/right;\n // rather than make the css module depend on the offset module, just check for it here\n\n jQuery.each([\"top\", \"left\"], function (_i, prop) {\n jQuery.cssHooks[prop] = addGetHookIf(support.pixelPosition, function (elem, computed) {\n if (computed) {\n computed = curCSS(elem, prop); // If curCSS returns percentage, fallback to offset\n\n return rnumnonpx.test(computed) ? jQuery(elem).position()[prop] + \"px\" : computed;\n }\n });\n });\n return jQuery;\n});","define([\"./core\", \"./core/access\", \"./var/isWindow\", \"./css\"], function (jQuery, access, isWindow) {\n \"use strict\"; // Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods\n\n jQuery.each({\n Height: \"height\",\n Width: \"width\"\n }, function (name, type) {\n jQuery.each({\n padding: \"inner\" + name,\n content: type,\n \"\": \"outer\" + name\n }, function (defaultExtra, funcName) {\n // Margin is only for outerHeight, outerWidth\n jQuery.fn[funcName] = function (margin, value) {\n var chainable = arguments.length && (defaultExtra || typeof margin !== \"boolean\"),\n extra = defaultExtra || (margin === true || value === true ? \"margin\" : \"border\");\n return access(this, function (elem, type, value) {\n var doc;\n\n if (isWindow(elem)) {\n // $( window ).outerWidth/Height return w/h including scrollbars (gh-1729)\n return funcName.indexOf(\"outer\") === 0 ? elem[\"inner\" + name] : elem.document.documentElement[\"client\" + name];\n } // Get document width or height\n\n\n if (elem.nodeType === 9) {\n doc = elem.documentElement; // Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],\n // whichever is greatest\n\n return Math.max(elem.body[\"scroll\" + name], doc[\"scroll\" + name], elem.body[\"offset\" + name], doc[\"offset\" + name], doc[\"client\" + name]);\n }\n\n return value === undefined ? // Get width or height on the element, requesting but not forcing parseFloat\n jQuery.css(elem, type, extra) : // Set width or height on the element\n jQuery.style(elem, type, value, extra);\n }, type, chainable ? margin : undefined, chainable);\n };\n });\n });\n return jQuery;\n});","define([\"./core\", \"./core/nodeName\", \"./core/camelCase\", \"./core/toType\", \"./var/isFunction\", \"./var/isWindow\", \"./var/slice\", \"./deprecated/ajax-event-alias\", \"./deprecated/event\"], function (jQuery, nodeName, camelCase, toType, isFunction, isWindow, slice) {\n \"use strict\"; // Support: Android <=4.0 only\n // Make sure we trim BOM and NBSP\n\n var rtrim = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g; // Bind a function to a context, optionally partially applying any\n // arguments.\n // jQuery.proxy is deprecated to promote standards (specifically Function#bind)\n // However, it is not slated for removal any time soon\n\n jQuery.proxy = function (fn, context) {\n var tmp, args, proxy;\n\n if (typeof context === \"string\") {\n tmp = fn[context];\n context = fn;\n fn = tmp;\n } // Quick check to determine if target is callable, in the spec\n // this throws a TypeError, but we will just return undefined.\n\n\n if (!isFunction(fn)) {\n return undefined;\n } // Simulated bind\n\n\n args = slice.call(arguments, 2);\n\n proxy = function proxy() {\n return fn.apply(context || this, args.concat(slice.call(arguments)));\n }; // Set the guid of unique handler to the same of original handler, so it can be removed\n\n\n proxy.guid = fn.guid = fn.guid || jQuery.guid++;\n return proxy;\n };\n\n jQuery.holdReady = function (hold) {\n if (hold) {\n jQuery.readyWait++;\n } else {\n jQuery.ready(true);\n }\n };\n\n jQuery.isArray = Array.isArray;\n jQuery.parseJSON = JSON.parse;\n jQuery.nodeName = nodeName;\n jQuery.isFunction = isFunction;\n jQuery.isWindow = isWindow;\n jQuery.camelCase = camelCase;\n jQuery.type = toType;\n jQuery.now = Date.now;\n\n jQuery.isNumeric = function (obj) {\n // As of jQuery 3.0, isNumeric is limited to\n // strings and numbers (primitives or objects)\n // that can be coerced to finite numbers (gh-2662)\n var type = jQuery.type(obj);\n return (type === \"number\" || type === \"string\") && // parseFloat NaNs numeric-cast false positives (\"\")\n // ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\n // subtraction forces infinities to NaN\n !isNaN(obj - parseFloat(obj));\n };\n\n jQuery.trim = function (text) {\n return text == null ? \"\" : (text + \"\").replace(rtrim, \"\");\n };\n});","define([\"../core\", \"../ajax\", \"../event\"], function (jQuery) {\n \"use strict\";\n\n jQuery.each([\"ajaxStart\", \"ajaxStop\", \"ajaxComplete\", \"ajaxError\", \"ajaxSuccess\", \"ajaxSend\"], function (_i, type) {\n jQuery.fn[type] = function (fn) {\n return this.on(type, fn);\n };\n });\n});","define([\"../core\", \"../event\", \"../event/trigger\"], function (jQuery) {\n \"use strict\";\n\n jQuery.fn.extend({\n bind: function bind(types, data, fn) {\n return this.on(types, null, data, fn);\n },\n unbind: function unbind(types, fn) {\n return this.off(types, null, fn);\n },\n delegate: function delegate(selector, types, data, fn) {\n return this.on(types, selector, data, fn);\n },\n undelegate: function undelegate(selector, types, fn) {\n // ( namespace ) or ( selector, types [, fn] )\n return arguments.length === 1 ? this.off(selector, \"**\") : this.off(types, selector || \"**\", fn);\n },\n hover: function hover(fnOver, fnOut) {\n return this.mouseenter(fnOver).mouseleave(fnOut || fnOver);\n }\n });\n jQuery.each((\"blur focus focusin focusout resize scroll click dblclick \" + \"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave \" + \"change select submit keydown keypress keyup contextmenu\").split(\" \"), function (_i, name) {\n // Handle event binding\n jQuery.fn[name] = function (data, fn) {\n return arguments.length > 0 ? this.on(name, null, data, fn) : this.trigger(name);\n };\n });\n});","define([\"../core\"], function (jQuery) {\n \"use strict\"; // Register as a named AMD module, since jQuery can be concatenated with other\n // files that may use define, but not via a proper concatenation script that\n // understands anonymous AMD modules. A named AMD is safest and most robust\n // way to register. Lowercase jquery is used because AMD module names are\n // derived from file names, and jQuery is normally delivered in a lowercase\n // file name. Do this after creating the global so that if an AMD module wants\n // to call noConflict to hide this version of jQuery, it will work.\n // Note that for maximum portability, libraries that are not jQuery should\n // declare themselves as anonymous modules, and avoid setting a global if an\n // AMD loader is present. jQuery is a special case. For more information, see\n // https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon\n\n if (typeof define === \"function\" && define.amd) {\n define(\"jquery\", [], function () {\n return jQuery;\n });\n }\n});","define([\"../core\"], function (jQuery) {\n \"use strict\";\n\n var // Map over jQuery in case of overwrite\n _jQuery = window.jQuery,\n // Map over the $ in case of overwrite\n _$ = window.$;\n\n jQuery.noConflict = function (deep) {\n if (window.$ === jQuery) {\n window.$ = _$;\n }\n\n if (deep && window.jQuery === jQuery) {\n window.jQuery = _jQuery;\n }\n\n return jQuery;\n }; // Expose jQuery and $ identifiers, even in AMD\n // (#7102#comment:10, https://github.com/jquery/jquery/pull/557)\n // and CommonJS for browser emulators (#13566)\n\n\n if (typeof noGlobal === \"undefined\") {\n window.jQuery = window.$ = jQuery;\n }\n});","module.exports = function (module) {\n if (!module.webpackPolyfill) {\n module.deprecate = function () {};\n\n module.paths = []; // module.parent = undefined by default\n\n if (!module.children) module.children = [];\n Object.defineProperty(module, \"loaded\", {\n enumerable: true,\n get: function get() {\n return module.l;\n }\n });\n Object.defineProperty(module, \"id\", {\n enumerable: true,\n get: function get() {\n return module.i;\n }\n });\n module.webpackPolyfill = 1;\n }\n\n return module;\n};","const BREAKPOINTS = [\n {id: 0, name: 'base'},\n {id: 1, name: 'small'},\n {id: 2, name: 'medium'},\n {id: 3, name: 'large'},\n {id: 4, name: 'xlarge'},\n {id: 5, name: 'huge'}\n]\n\nexport const smallAndUp = () => returnBreakpoint() >= 1\n\nexport const mediumAndUp = () => returnBreakpoint() > 1\n\nexport const largeAndUp = () => returnBreakpoint() > 2\n\nexport const xlargeAndUp = () => returnBreakpoint() > 3\n\nexport const hugeAndUp = () => returnBreakpoint() > 4\n\n\nfunction returnBreakpoint() {\n let breakpoint\n\n if (document.querySelector('[data-breakpoint]') === null) {\n createBreakpointElements()\n }\n\n for (var i = 0; i < BREAKPOINTS.length; i++) {\n const elem = document.querySelector(`[data-breakpoint=\"${ BREAKPOINTS[i].id }\"]`)\n\n if (elem && isVisible(elem)) {\n breakpoint = BREAKPOINTS[i]\n break\n }\n }\n\n return breakpoint.id\n}\n\nfunction createBreakpointElements() {\n BREAKPOINTS.map(breakpoint => {\n const elem = document.createElement(\"div\")\n\n elem.setAttribute('data-breakpoint', breakpoint.id)\n document.querySelector('body').append(elem)\n });\n}\n\nfunction isVisible(element) {\n return window.getComputedStyle(element).display !== 'none'\n}\n","const RANGE = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];\nconst MANUAL_INPUT = \"MANUAL_INPUT\";\n\ndocument.addEventListener('DOMContentLoaded', initQtyPickers);\n\nexport function initQtyPickers() {\n [...document.querySelectorAll('[data-qty-picker]')].map(picker => {\n const trigger = picker.querySelector('button');\n const input = picker.querySelector('input');\n const min = input.min || 1;\n const max = input.max || null;\n\n initQtyPickerOptions(picker, min, max);\n trigger.addEventListener('click', () => showPickerOptions(picker));\n });\n}\n\nexport function initQtyPickerOptions(picker, min, max) {\n reset(picker, min, max);\n getQuantityOptions(min, max).map(option => {\n picker.querySelector('ul').append(option);\n option.querySelector('button').addEventListener('click', event => {\n if (!document.querySelector('[data-sc-cart-page]')) {\n event.preventDefault();\n }\n if (event.currentTarget.value === MANUAL_INPUT) {\n event.preventDefault();\n hideOptions(picker);\n showManualInput(picker);\n } else {\n setQuantity(event.currentTarget.value, picker);\n }\n });\n });\n}\n\nexport function showPickerOptions(picker) {\n const pickers = document.querySelectorAll('[data-qty-picker]');\n const list = picker.querySelector('ul');\n\n hideOtherPickers(picker, pickers);\n list.classList.add('is-active');\n list.setAttribute('aria-hidden', false);\n document.addEventListener('click', e => closeIfClickElsewhere(e, picker));\n}\n\nexport function setQuantity(value, picker) {\n const input = picker.querySelector('input');\n const label = picker.querySelector('[data-qty-picker-value]');\n\n hideOptions(picker);\n input.value = value;\n input.dispatchEvent(new Event('change'));\n label.innerText = value;\n}\n\nfunction getQuantityOptions(min, max) {\n const maxQty = max === \"Infinity\" ? 10 : max;\n const range = RANGE.slice(min, parseInt(maxQty || 10) + 1);\n\n return range.map(qty => {\n const option = document.createElement('li');\n const button = document.createElement('button');\n const noMax = max >= 10 || !max;\n\n if (qty === 10 && noMax) {\n button.value = MANUAL_INPUT;\n button.innerText = \"10+\";\n } else {\n button.value = qty;\n button.innerText = qty;\n }\n\n option.append(button);\n return option;\n });\n}\n\nfunction reset(picker, min, max) {\n const qty = picker.querySelector('[data-qty-picker-value]');\n const value = parseInt(qty.innerText);\n\n if (value > parseInt(max) || value < parseInt(min)) {\n picker.querySelector('[data-qty-picker-value]').innerText = min;\n }\n picker.querySelector('[data-qty-picker-trigger]').classList.remove('is-hidden');\n picker.querySelector('input').classList.remove('is-active');\n picker.querySelector('ul').innerHTML = '';\n}\n\nfunction hideOptions(picker) {\n const list = picker.querySelector('ul');\n\n list.classList.remove('is-active');\n list.setAttribute('aria-hidden', true);\n}\n\nfunction hideOtherPickers(activePicker, pickers) {\n [...pickers].map(picker => {\n if (picker !== activePicker) hideOptions(picker);\n });\n}\n\nfunction showManualInput(picker) {\n const input = picker.querySelector('input');\n const trigger = picker.querySelector('[data-qty-picker-trigger]');\n const update = picker.querySelector('[data-qty-picker-update]');\n\n if (update) update.style.display = 'block';\n trigger.classList.add('is-hidden');\n input.classList.add('is-active');\n input.focus();\n}\n\nfunction closeIfClickElsewhere(event, picker) {\n if (!picker.contains(event.target)) hideOptions(picker);\n}\n","export default function (url) {\n const storePath = document.querySelector('meta[name=\"sc-path\"]');\n if (storePath) {\n const storePathContent = storePath.content;\n\n if (storePathContent) {\n return `/${storePathContent}${url}`;\n }\n }\n return url;\n}\n","!function (e, t) {\n if (\"function\" == typeof define && define.amd) define(\"hoverintent\", [\"module\"], t);else if (\"undefined\" != typeof exports) t(module);else {\n var n = {\n exports: {}\n };\n t(n), e.hoverintent = n.exports;\n }\n}(this, function (e) {\n \"use strict\";\n\n var t = Object.assign || function (e) {\n for (var t = 1; t < arguments.length; t++) {\n var n = arguments[t];\n\n for (var o in n) {\n Object.prototype.hasOwnProperty.call(n, o) && (e[o] = n[o]);\n }\n }\n\n return e;\n };\n\n e.exports = function (e, n, o) {\n function i(e, t) {\n return y && (y = clearTimeout(y)), b = 0, p ? void 0 : o.call(e, t);\n }\n\n function r(e) {\n m = e.clientX, d = e.clientY;\n }\n\n function u(e, t) {\n if (y && (y = clearTimeout(y)), Math.abs(h - m) + Math.abs(E - d) < x.sensitivity) return b = 1, p ? void 0 : n.call(e, t);\n h = m, E = d, y = setTimeout(function () {\n u(e, t);\n }, x.interval);\n }\n\n function s(t) {\n return L = !0, y && (y = clearTimeout(y)), e.removeEventListener(\"mousemove\", r, !1), 1 !== b && (h = t.clientX, E = t.clientY, e.addEventListener(\"mousemove\", r, !1), y = setTimeout(function () {\n u(e, t);\n }, x.interval)), this;\n }\n\n function c(t) {\n return L = !1, y && (y = clearTimeout(y)), e.removeEventListener(\"mousemove\", r, !1), 1 === b && (y = setTimeout(function () {\n i(e, t);\n }, x.timeout)), this;\n }\n\n function v(t) {\n L || (p = !0, n.call(e, t));\n }\n\n function a(t) {\n !L && p && (p = !1, o.call(e, t));\n }\n\n function f() {\n e.addEventListener(\"focus\", v, !1), e.addEventListener(\"blur\", a, !1);\n }\n\n function l() {\n e.removeEventListener(\"focus\", v, !1), e.removeEventListener(\"blur\", a, !1);\n }\n\n var m,\n d,\n h,\n E,\n L = !1,\n p = !1,\n T = {},\n b = 0,\n y = 0,\n x = {\n sensitivity: 7,\n interval: 100,\n timeout: 0,\n handleFocus: !1\n };\n return T.options = function (e) {\n var n = e.handleFocus !== x.handleFocus;\n return x = t({}, x, e), n && (x.handleFocus ? f() : l()), T;\n }, T.remove = function () {\n e && (e.removeEventListener(\"mouseover\", s, !1), e.removeEventListener(\"mouseout\", c, !1), l());\n }, e && (e.addEventListener(\"mouseover\", s, !1), e.addEventListener(\"mouseout\", c, !1)), T;\n };\n});","import 'hammerjs'\n\n\n// We are dealing with three image sizes in this component:\n// 1. thumbnail\n// 2. large - main product image\n// 3. huge - gallery for zooming\n//\n// On the initial load we fetch all the product thumbnails and the\n// first product's 'large' image. When the user clicks on a product\n// thumbnail we fetch it's 'large' product image. When a user clicks\n// on the 'large' product image to open the gallery, which fetch the\n// 'huge' product image for zooming.\n\nlet images = {};\nlet currentId;\n\ndocument.addEventListener('DOMContentLoaded', () => {\n if (document.querySelector('[data-product-image]')) {\n init();\n }\n});\n\nexport default function init() {\n const container = document.querySelector('[data-product-image-container]');\n const thumbnails = document.querySelectorAll('[data-product-thumbnail]');\n const mainImage = document.querySelector('[data-product-image]');\n const hammer = new Hammer(container);\n const hasManyImages = thumbnails.length > 0;\n\n if (container === null) return;\n\n currentId = thumbnails[0];\n images[currentId] = mainImage;\n\n if (hasManyImages) {\n hammer.on('swiperight', prev);\n hammer.on('swipeleft', next);\n\n [...thumbnails].forEach(thumbnail => {\n // Initially we load the first hero product image only\n // The thumbnail's data attributes contain the urls for the\n // larger images, which we store and load when needed.\n preloadImage(thumbnail);\n // Set new image when a thumbnail is clicked\n thumbnail.addEventListener('click', () => set(thumbnail.id));\n });\n }\n\n // When we load the Product Gallery we pass it the 'zoom' image\n // url (i.e. the 'huge' size) from our images array\n container.addEventListener('click', () => {\n const imageUrl = hasManyImages ?\n images[currentId].getAttribute('data-src-zoom') :\n mainImage.getAttribute('data-src-zoom');\n\n window.StoreConnectUI.ProductGallery.init(imageUrl)\n });\n}\n\nexport function set(id) {\n const image = document.querySelector('[data-product-image]');\n const thumbnails = document.querySelectorAll('[data-product-thumbnail]');\n\n // Replace the existing image from array of preloaded images\n // and update the active state for all thumbnails\n currentId = id;\n\n image.replaceWith(images[id]);\n\n if (thumbnails.length > 0) {\n [...thumbnails].forEach(thumb => {\n thumb.id == id ?\n thumb.classList.add('is-active') :\n thumb.classList.remove('is-active');\n });\n }\n}\n\nexport function next() {\n set(\n document.querySelector(\n `[data-product-thumbnail=\"${currentId}\"]`\n ).nextSibling.id\n );\n}\n\nexport function prev() {\n set(\n document.querySelector(\n `[data-product-thumbnail=\"${currentId}\"]`\n ).previousSibling.id\n );\n}\n\nfunction preloadImage(thumbnail) {\n const image = new Image();\n\n image.src = thumbnail.getAttribute('data-src');\n image.alt = thumbnail.getAttribute('alt');\n image.setAttribute('data-product-image', thumbnail.getAttribute('data-product-thumbnail'));\n image.setAttribute('data-src-zoom', thumbnail.getAttribute('data-src-zoom'));\n\n images[thumbnail.id] = image;\n}\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Afrikaans [af]\n//! author : Werner Mollentze : https://github.com/wernerm\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var af = moment.defineLocale('af', {\n months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split('_'),\n monthsShort: 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split('_'),\n weekdaysShort: 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'),\n weekdaysMin: 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'),\n meridiemParse: /vm|nm/i,\n isPM: function isPM(input) {\n return /^nm$/i.test(input);\n },\n meridiem: function meridiem(hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'vm' : 'VM';\n } else {\n return isLower ? 'nm' : 'NM';\n }\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Vandag om] LT',\n nextDay: '[Môre om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[Gister om] LT',\n lastWeek: '[Laas] dddd [om] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'oor %s',\n past: '%s gelede',\n s: \"'n paar sekondes\",\n ss: '%d sekondes',\n m: \"'n minuut\",\n mm: '%d minute',\n h: \"'n uur\",\n hh: '%d ure',\n d: \"'n dag\",\n dd: '%d dae',\n M: \"'n maand\",\n MM: '%d maande',\n y: \"'n jaar\",\n yy: '%d jaar'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function ordinal(number) {\n return number + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de'); // Thanks to Joris Röling : https://github.com/jjupiter\n },\n week: {\n dow: 1,\n // Maandag is die eerste dag van die week.\n doy: 4 // Die week wat die 4de Januarie bevat is die eerste week van die jaar.\n\n }\n });\n return af;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Arabic [ar]\n//! author : Abdel Said: https://github.com/abdelsaid\n//! author : Ahmed Elkhatib\n//! author : forabi https://github.com/forabi\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var symbolMap = {\n 1: 'Ù¡',\n 2: 'Ù¢',\n 3: 'Ù£',\n 4: 'Ù¤',\n 5: 'Ù¥',\n 6: 'Ù¦',\n 7: 'Ù§',\n 8: 'Ù¨',\n 9: 'Ù©',\n 0: 'Ù '\n },\n numberMap = {\n 'Ù¡': '1',\n 'Ù¢': '2',\n 'Ù£': '3',\n 'Ù¤': '4',\n 'Ù¥': '5',\n 'Ù¦': '6',\n 'Ù§': '7',\n 'Ù¨': '8',\n 'Ù©': '9',\n 'Ù ': '0'\n },\n pluralForm = function pluralForm(n) {\n return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5;\n },\n plurals = {\n s: ['أقل من ثانية', 'ثانية واØدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'],\n m: ['أقل من دقيقة', 'دقيقة واØدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'],\n h: ['أقل من ساعة', 'ساعة واØدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'],\n d: ['أقل من يوم', 'يوم واØد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'],\n M: ['أقل من شهر', 'شهر واØد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'],\n y: ['أقل من عام', 'عام واØد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام']\n },\n pluralize = function pluralize(u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n\n return str.replace(/%d/i, number);\n };\n },\n months = ['يناير', 'Ùبراير', 'مارس', 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوÙمبر', 'ديسمبر'];\n\n var ar = moment.defineLocale('ar', {\n months: months,\n monthsShort: months,\n weekdays: 'الأØد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'Ø£Øد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'Ø_Ù†_Ø«_ر_Ø®_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: \"D/\\u200FM/\\u200FYYYY\",\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n meridiemParse: /ص|Ù…/,\n isPM: function isPM(input) {\n return 'Ù…' === input;\n },\n meridiem: function meridiem(hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'Ù…';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y')\n },\n preparse: function preparse(string) {\n return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n }).replace(/ØŒ/g, ',');\n },\n postformat: function postformat(string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n }).replace(/,/g, 'ØŒ');\n },\n week: {\n dow: 6,\n // Saturday is the first day of the week.\n doy: 12 // The week that contains Jan 12th is the first week of the year.\n\n }\n });\n return ar;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Arabic (Algeria) [ar-dz]\n//! author : Amine Roukh: https://github.com/Amine27\n//! author : Abdel Said: https://github.com/abdelsaid\n//! author : Ahmed Elkhatib\n//! author : forabi https://github.com/forabi\n//! author : Noureddine LOUAHEDJ : https://github.com/noureddinem\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var pluralForm = function pluralForm(n) {\n return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5;\n },\n plurals = {\n s: ['أقل من ثانية', 'ثانية واØدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'],\n m: ['أقل من دقيقة', 'دقيقة واØدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'],\n h: ['أقل من ساعة', 'ساعة واØدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'],\n d: ['أقل من يوم', 'يوم واØد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'],\n M: ['أقل من شهر', 'شهر واØد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'],\n y: ['أقل من عام', 'عام واØد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام']\n },\n pluralize = function pluralize(u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n\n return str.replace(/%d/i, number);\n };\n },\n months = ['جانÙÙŠ', 'ÙÙŠÙري', 'مارس', 'Ø£Ùريل', 'ماي', 'جوان', 'جويلية', 'أوت', 'سبتمبر', 'أكتوبر', 'نوÙمبر', 'ديسمبر'];\n\n var arDz = moment.defineLocale('ar-dz', {\n months: months,\n monthsShort: months,\n weekdays: 'الأØد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'Ø£Øد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'Ø_Ù†_Ø«_ر_Ø®_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: \"D/\\u200FM/\\u200FYYYY\",\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n meridiemParse: /ص|Ù…/,\n isPM: function isPM(input) {\n return 'Ù…' === input;\n },\n meridiem: function meridiem(hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'Ù…';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y')\n },\n postformat: function postformat(string) {\n return string.replace(/,/g, 'ØŒ');\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return arDz;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Arabic (Kuwait) [ar-kw]\n//! author : Nusret Parlak: https://github.com/nusretparlak\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var arKw = moment.defineLocale('ar-kw', {\n months: 'يناير_Ùبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),\n monthsShort: 'يناير_Ùبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),\n weekdays: 'الأØد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'اØد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'Ø_Ù†_Ø«_ر_Ø®_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'ÙÙŠ %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات'\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 12 // The week that contains Jan 12th is the first week of the year.\n\n }\n });\n return arKw;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Arabic (Lybia) [ar-ly]\n//! author : Ali Hmer: https://github.com/kikoanis\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var symbolMap = {\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n 8: '8',\n 9: '9',\n 0: '0'\n },\n pluralForm = function pluralForm(n) {\n return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5;\n },\n plurals = {\n s: ['أقل من ثانية', 'ثانية واØدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'],\n m: ['أقل من دقيقة', 'دقيقة واØدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'],\n h: ['أقل من ساعة', 'ساعة واØدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'],\n d: ['أقل من يوم', 'يوم واØد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'],\n M: ['أقل من شهر', 'شهر واØد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'],\n y: ['أقل من عام', 'عام واØد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام']\n },\n pluralize = function pluralize(u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n\n return str.replace(/%d/i, number);\n };\n },\n months = ['يناير', 'Ùبراير', 'مارس', 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوÙمبر', 'ديسمبر'];\n\n var arLy = moment.defineLocale('ar-ly', {\n months: months,\n monthsShort: months,\n weekdays: 'الأØد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'Ø£Øد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'Ø_Ù†_Ø«_ر_Ø®_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: \"D/\\u200FM/\\u200FYYYY\",\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n meridiemParse: /ص|Ù…/,\n isPM: function isPM(input) {\n return 'Ù…' === input;\n },\n meridiem: function meridiem(hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'Ù…';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y')\n },\n preparse: function preparse(string) {\n return string.replace(/ØŒ/g, ',');\n },\n postformat: function postformat(string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n }).replace(/,/g, 'ØŒ');\n },\n week: {\n dow: 6,\n // Saturday is the first day of the week.\n doy: 12 // The week that contains Jan 12th is the first week of the year.\n\n }\n });\n return arLy;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Arabic (Morocco) [ar-ma]\n//! author : ElFadili Yassine : https://github.com/ElFadiliY\n//! author : Abdel Said : https://github.com/abdelsaid\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var arMa = moment.defineLocale('ar-ma', {\n months: 'يناير_Ùبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),\n monthsShort: 'يناير_Ùبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),\n weekdays: 'الأØد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'اØد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'Ø_Ù†_Ø«_ر_Ø®_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'ÙÙŠ %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات'\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return arMa;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Arabic (Saudi Arabia) [ar-sa]\n//! author : Suhail Alkowaileet : https://github.com/xsoh\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var symbolMap = {\n 1: 'Ù¡',\n 2: 'Ù¢',\n 3: 'Ù£',\n 4: 'Ù¤',\n 5: 'Ù¥',\n 6: 'Ù¦',\n 7: 'Ù§',\n 8: 'Ù¨',\n 9: 'Ù©',\n 0: 'Ù '\n },\n numberMap = {\n 'Ù¡': '1',\n 'Ù¢': '2',\n 'Ù£': '3',\n 'Ù¤': '4',\n 'Ù¥': '5',\n 'Ù¦': '6',\n 'Ù§': '7',\n 'Ù¨': '8',\n 'Ù©': '9',\n 'Ù ': '0'\n };\n var arSa = moment.defineLocale('ar-sa', {\n months: 'يناير_Ùبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوÙمبر_ديسمبر'.split('_'),\n monthsShort: 'يناير_Ùبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوÙمبر_ديسمبر'.split('_'),\n weekdays: 'الأØد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'Ø£Øد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'Ø_Ù†_Ø«_ر_Ø®_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n meridiemParse: /ص|Ù…/,\n isPM: function isPM(input) {\n return 'Ù…' === input;\n },\n meridiem: function meridiem(hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'Ù…';\n }\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'ÙÙŠ %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات'\n },\n preparse: function preparse(string) {\n return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n }).replace(/ØŒ/g, ',');\n },\n postformat: function postformat(string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n }).replace(/,/g, 'ØŒ');\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n\n }\n });\n return arSa;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Arabic (Tunisia) [ar-tn]\n//! author : Nader Toukabri : https://github.com/naderio\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var arTn = moment.defineLocale('ar-tn', {\n months: 'جانÙÙŠ_ÙÙŠÙري_مارس_Ø£Ùريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوÙمبر_ديسمبر'.split('_'),\n monthsShort: 'جانÙÙŠ_ÙÙŠÙري_مارس_Ø£Ùريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوÙمبر_ديسمبر'.split('_'),\n weekdays: 'الأØد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'Ø£Øد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'Ø_Ù†_Ø«_ر_Ø®_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'ÙÙŠ %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات'\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return arTn;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Azerbaijani [az]\n//! author : topchiyev : https://github.com/topchiyev\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var suffixes = {\n 1: '-inci',\n 5: '-inci',\n 8: '-inci',\n 70: '-inci',\n 80: '-inci',\n 2: '-nci',\n 7: '-nci',\n 20: '-nci',\n 50: '-nci',\n 3: '-üncü',\n 4: '-üncü',\n 100: '-üncü',\n 6: '-ncı',\n 9: '-uncu',\n 10: '-uncu',\n 30: '-uncu',\n 60: '-ıncı',\n 90: '-ıncı'\n };\n var az = moment.defineLocale('az', {\n months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split('_'),\n monthsShort: 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'),\n weekdays: 'Bazar_Bazar ertÉ™si_ÇərÅŸÉ™nbÉ™ axÅŸamı_ÇərÅŸÉ™nbÉ™_CümÉ™ axÅŸamı_CümÉ™_ŞənbÉ™'.split('_'),\n weekdaysShort: 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'),\n weekdaysMin: 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[bugün saat] LT',\n nextDay: '[sabah saat] LT',\n nextWeek: '[gÉ™lÉ™n hÉ™ftÉ™] dddd [saat] LT',\n lastDay: '[dünÉ™n] LT',\n lastWeek: '[keçən hÉ™ftÉ™] dddd [saat] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s sonra',\n past: '%s É™vvÉ™l',\n s: 'bir neçə saniyÉ™',\n ss: '%d saniyÉ™',\n m: 'bir dÉ™qiqÉ™',\n mm: '%d dÉ™qiqÉ™',\n h: 'bir saat',\n hh: '%d saat',\n d: 'bir gün',\n dd: '%d gün',\n M: 'bir ay',\n MM: '%d ay',\n y: 'bir il',\n yy: '%d il'\n },\n meridiemParse: /gecÉ™|sÉ™hÉ™r|gündüz|axÅŸam/,\n isPM: function isPM(input) {\n return /^(gündüz|axÅŸam)$/.test(input);\n },\n meridiem: function meridiem(hour, minute, isLower) {\n if (hour < 4) {\n return 'gecÉ™';\n } else if (hour < 12) {\n return 'sÉ™hÉ™r';\n } else if (hour < 17) {\n return 'gündüz';\n } else {\n return 'axÅŸam';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,\n ordinal: function ordinal(number) {\n if (number === 0) {\n // special case for zero\n return number + '-ıncı';\n }\n\n var a = number % 10,\n b = number % 100 - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n }\n });\n return az;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Belarusian [be]\n//! author : Dmitry Demidov : https://github.com/demidov91\n//! author: Praleska: http://praleska.pro/\n//! Author : Menelion Elensúle : https://github.com/Oire\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11 ? forms[0] : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2];\n }\n\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'Ñекунда_Ñекунды_Ñекунд' : 'Ñекунду_Ñекунды_Ñекунд',\n mm: withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін',\n hh: withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін',\n dd: 'дзень_дні_дзён',\n MM: 'меÑÑц_меÑÑцы_меÑÑцаў',\n yy: 'год_гады_гадоў'\n };\n\n if (key === 'm') {\n return withoutSuffix ? 'хвіліна' : 'хвіліну';\n } else if (key === 'h') {\n return withoutSuffix ? 'гадзіна' : 'гадзіну';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n\n var be = moment.defineLocale('be', {\n months: {\n format: 'ÑтудзенÑ_лютага_Ñакавіка_краÑавіка_траўнÑ_чÑрвенÑ_ліпенÑ_жніўнÑ_вераÑнÑ_каÑтрычніка_ліÑтапада_ÑнежнÑ'.split('_'),\n standalone: 'Ñтудзень_люты_Ñакавік_краÑавік_травень_чÑрвень_ліпень_жнівень_вераÑень_каÑтрычнік_ліÑтапад_Ñнежань'.split('_')\n },\n monthsShort: 'Ñтуд_лют_Ñак_краÑ_трав_чÑрв_ліп_жнів_вер_каÑÑ‚_ліÑÑ‚_Ñнеж'.split('_'),\n weekdays: {\n format: 'нÑдзелю_панÑдзелак_аўторак_Ñераду_чацвер_пÑтніцу_Ñуботу'.split('_'),\n standalone: 'нÑдзелÑ_панÑдзелак_аўторак_Ñерада_чацвер_пÑтніца_Ñубота'.split('_'),\n isFormat: /\\[ ?[Ууў] ?(?:мінулую|наÑтупную)? ?\\] ?dddd/\n },\n weekdaysShort: 'нд_пн_ат_ÑÑ€_чц_пт_Ñб'.split('_'),\n weekdaysMin: 'нд_пн_ат_ÑÑ€_чц_пт_Ñб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY г.',\n LLL: 'D MMMM YYYY г., HH:mm',\n LLLL: 'dddd, D MMMM YYYY г., HH:mm'\n },\n calendar: {\n sameDay: '[Ð¡Ñ‘Ð½Ð½Ñ Ñž] LT',\n nextDay: '[Заўтра Ñž] LT',\n lastDay: '[Учора Ñž] LT',\n nextWeek: function nextWeek() {\n return '[У] dddd [Ñž] LT';\n },\n lastWeek: function lastWeek() {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return '[У мінулую] dddd [Ñž] LT';\n\n case 1:\n case 2:\n case 4:\n return '[У мінулы] dddd [Ñž] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'праз %s',\n past: '%s таму',\n s: 'некалькі Ñекунд',\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: relativeTimeWithPlural,\n hh: relativeTimeWithPlural,\n d: 'дзень',\n dd: relativeTimeWithPlural,\n M: 'меÑÑц',\n MM: relativeTimeWithPlural,\n y: 'год',\n yy: relativeTimeWithPlural\n },\n meridiemParse: /ночы|раніцы|днÑ|вечара/,\n isPM: function isPM(input) {\n return /^(днÑ|вечара)$/.test(input);\n },\n meridiem: function meridiem(hour, minute, isLower) {\n if (hour < 4) {\n return 'ночы';\n } else if (hour < 12) {\n return 'раніцы';\n } else if (hour < 17) {\n return 'днÑ';\n } else {\n return 'вечара';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(Ñ–|Ñ‹|га)/,\n ordinal: function ordinal(number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return (number % 10 === 2 || number % 10 === 3) && number % 100 !== 12 && number % 100 !== 13 ? number + '-Ñ–' : number + '-Ñ‹';\n\n case 'D':\n return number + '-га';\n\n default:\n return number;\n }\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n }\n });\n return be;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Bulgarian [bg]\n//! author : Krasen Borisov : https://github.com/kraz\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var bg = moment.defineLocale('bg', {\n months: 'Ñнуари_февруари_март_април_май_юни_юли_авгуÑÑ‚_Ñептември_октомври_ноември_декември'.split('_'),\n monthsShort: 'Ñну_фев_мар_апр_май_юни_юли_авг_Ñеп_окт_ное_дек'.split('_'),\n weekdays: 'неделÑ_понеделник_вторник_ÑÑ€Ñда_четвъртък_петък_Ñъбота'.split('_'),\n weekdaysShort: 'нед_пон_вто_ÑÑ€Ñ_чет_пет_Ñъб'.split('_'),\n weekdaysMin: 'нд_пн_вт_ÑÑ€_чт_пт_Ñб'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[Ð”Ð½ÐµÑ Ð²] LT',\n nextDay: '[Утре в] LT',\n nextWeek: 'dddd [в] LT',\n lastDay: '[Вчера в] LT',\n lastWeek: function lastWeek() {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[Миналата] dddd [в] LT';\n\n case 1:\n case 2:\n case 4:\n case 5:\n return '[МиналиÑ] dddd [в] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'Ñлед %s',\n past: 'преди %s',\n s: 'нÑколко Ñекунди',\n ss: '%d Ñекунди',\n m: 'минута',\n mm: '%d минути',\n h: 'чаÑ',\n hh: '%d чаÑа',\n d: 'ден',\n dd: '%d дена',\n w: 'Ñедмица',\n ww: '%d Ñедмици',\n M: 'меÑец',\n MM: '%d меÑеца',\n y: 'година',\n yy: '%d години'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal: function ordinal(number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n }\n });\n return bg;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Bambara [bm]\n//! author : Estelle Comment : https://github.com/estellecomment\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var bm = moment.defineLocale('bm', {\n months: 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_MÉ›kalo_ZuwÉ›nkalo_Zuluyekalo_Utikalo_SÉ›tanburukalo_É”kutÉ”burukalo_Nowanburukalo_Desanburukalo'.split('_'),\n monthsShort: 'Zan_Few_Mar_Awi_MÉ›_Zuw_Zul_Uti_SÉ›t_É”ku_Now_Des'.split('_'),\n weekdays: 'Kari_NtÉ›nÉ›n_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'),\n weekdaysShort: 'Kar_NtÉ›_Tar_Ara_Ala_Jum_Sib'.split('_'),\n weekdaysMin: 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'MMMM [tile] D [san] YYYY',\n LLL: 'MMMM [tile] D [san] YYYY [lÉ›rÉ›] HH:mm',\n LLLL: 'dddd MMMM [tile] D [san] YYYY [lÉ›rÉ›] HH:mm'\n },\n calendar: {\n sameDay: '[Bi lÉ›rÉ›] LT',\n nextDay: '[Sini lÉ›rÉ›] LT',\n nextWeek: 'dddd [don lÉ›rÉ›] LT',\n lastDay: '[Kunu lÉ›rÉ›] LT',\n lastWeek: 'dddd [tÉ›mÉ›nen lÉ›rÉ›] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s kÉ”nÉ”',\n past: 'a bÉ› %s bÉ”',\n s: 'sanga dama dama',\n ss: 'sekondi %d',\n m: 'miniti kelen',\n mm: 'miniti %d',\n h: 'lÉ›rÉ› kelen',\n hh: 'lÉ›rÉ› %d',\n d: 'tile kelen',\n dd: 'tile %d',\n M: 'kalo kelen',\n MM: 'kalo %d',\n y: 'san kelen',\n yy: 'san %d'\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return bm;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Bengali [bn]\n//! author : Kaushik Gandhi : https://github.com/kaushikgandhi\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var symbolMap = {\n 1: '১',\n 2: '২',\n 3: '৩',\n 4: '৪',\n 5: '৫',\n 6: '৬',\n 7: 'à§',\n 8: '৮',\n 9: '৯',\n 0: '০'\n },\n numberMap = {\n '১': '1',\n '২': '2',\n '৩': '3',\n '৪': '4',\n '৫': '5',\n '৬': '6',\n 'à§': '7',\n '৮': '8',\n '৯': '9',\n '০': '0'\n };\n var bn = moment.defineLocale('bn', {\n months: 'জানà§à§Ÿà¦¾à¦°à¦¿_ফেবà§à¦°à§à§Ÿà¦¾à¦°à¦¿_মারà§à¦š_à¦à¦ªà§à¦°à¦¿à¦²_মে_জà§à¦¨_জà§à¦²à¦¾à¦‡_আগসà§à¦Ÿ_সেপà§à¦Ÿà§‡à¦®à§à¦¬à¦°_অকà§à¦Ÿà§‹à¦¬à¦°_নà¦à§‡à¦®à§à¦¬à¦°_ডিসেমà§à¦¬à¦°'.split('_'),\n monthsShort: 'জানà§_ফেবà§à¦°à§_মারà§à¦š_à¦à¦ªà§à¦°à¦¿à¦²_মে_জà§à¦¨_জà§à¦²à¦¾à¦‡_আগসà§à¦Ÿ_সেপà§à¦Ÿ_অকà§à¦Ÿà§‹_নà¦à§‡_ডিসে'.split('_'),\n weekdays: 'রবিবার_সোমবার_মঙà§à¦—লবার_বà§à¦§à¦¬à¦¾à¦°_বৃহসà§à¦ªà¦¤à¦¿à¦¬à¦¾à¦°_শà§à¦•à§à¦°à¦¬à¦¾à¦°_শনিবার'.split('_'),\n weekdaysShort: 'রবি_সোম_মঙà§à¦—ল_বà§à¦§_বৃহসà§à¦ªà¦¤à¦¿_শà§à¦•à§à¦°_শনি'.split('_'),\n weekdaysMin: 'রবি_সোম_মঙà§à¦—ল_বà§à¦§_বৃহ_শà§à¦•à§à¦°_শনি'.split('_'),\n longDateFormat: {\n LT: 'A h:mm সময়',\n LTS: 'A h:mm:ss সময়',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm সময়',\n LLLL: 'dddd, D MMMM YYYY, A h:mm সময়'\n },\n calendar: {\n sameDay: '[আজ] LT',\n nextDay: '[আগামীকাল] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[গতকাল] LT',\n lastWeek: '[গত] dddd, LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s পরে',\n past: '%s আগে',\n s: 'কয়েক সেকেনà§à¦¡',\n ss: '%d সেকেনà§à¦¡',\n m: 'à¦à¦• মিনিট',\n mm: '%d মিনিট',\n h: 'à¦à¦• ঘনà§à¦Ÿà¦¾',\n hh: '%d ঘনà§à¦Ÿà¦¾',\n d: 'à¦à¦• দিন',\n dd: '%d দিন',\n M: 'à¦à¦• মাস',\n MM: '%d মাস',\n y: 'à¦à¦• বছর',\n yy: '%d বছর'\n },\n preparse: function preparse(string) {\n return string.replace(/[১২৩৪৫৬à§à§®à§¯à§¦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function postformat(string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /রাত|সকাল|দà§à¦ªà§à¦°|বিকাল|রাত/,\n meridiemHour: function meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n\n if (meridiem === 'রাত' && hour >= 4 || meridiem === 'দà§à¦ªà§à¦°' && hour < 5 || meridiem === 'বিকাল') {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function meridiem(hour, minute, isLower) {\n if (hour < 4) {\n return 'রাত';\n } else if (hour < 10) {\n return 'সকাল';\n } else if (hour < 17) {\n return 'দà§à¦ªà§à¦°';\n } else if (hour < 20) {\n return 'বিকাল';\n } else {\n return 'রাত';\n }\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n\n }\n });\n return bn;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Bengali (Bangladesh) [bn-bd]\n//! author : Asraf Hossain Patoary : https://github.com/ashwoolford\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var symbolMap = {\n 1: '১',\n 2: '২',\n 3: '৩',\n 4: '৪',\n 5: '৫',\n 6: '৬',\n 7: 'à§',\n 8: '৮',\n 9: '৯',\n 0: '০'\n },\n numberMap = {\n '১': '1',\n '২': '2',\n '৩': '3',\n '৪': '4',\n '৫': '5',\n '৬': '6',\n 'à§': '7',\n '৮': '8',\n '৯': '9',\n '০': '0'\n };\n var bnBd = moment.defineLocale('bn-bd', {\n months: 'জানà§à§Ÿà¦¾à¦°à¦¿_ফেবà§à¦°à§à§Ÿà¦¾à¦°à¦¿_মারà§à¦š_à¦à¦ªà§à¦°à¦¿à¦²_মে_জà§à¦¨_জà§à¦²à¦¾à¦‡_আগসà§à¦Ÿ_সেপà§à¦Ÿà§‡à¦®à§à¦¬à¦°_অকà§à¦Ÿà§‹à¦¬à¦°_নà¦à§‡à¦®à§à¦¬à¦°_ডিসেমà§à¦¬à¦°'.split('_'),\n monthsShort: 'জানà§_ফেবà§à¦°à§_মারà§à¦š_à¦à¦ªà§à¦°à¦¿à¦²_মে_জà§à¦¨_জà§à¦²à¦¾à¦‡_আগসà§à¦Ÿ_সেপà§à¦Ÿ_অকà§à¦Ÿà§‹_নà¦à§‡_ডিসে'.split('_'),\n weekdays: 'রবিবার_সোমবার_মঙà§à¦—লবার_বà§à¦§à¦¬à¦¾à¦°_বৃহসà§à¦ªà¦¤à¦¿à¦¬à¦¾à¦°_শà§à¦•à§à¦°à¦¬à¦¾à¦°_শনিবার'.split('_'),\n weekdaysShort: 'রবি_সোম_মঙà§à¦—ল_বà§à¦§_বৃহসà§à¦ªà¦¤à¦¿_শà§à¦•à§à¦°_শনি'.split('_'),\n weekdaysMin: 'রবি_সোম_মঙà§à¦—ল_বà§à¦§_বৃহ_শà§à¦•à§à¦°_শনি'.split('_'),\n longDateFormat: {\n LT: 'A h:mm সময়',\n LTS: 'A h:mm:ss সময়',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm সময়',\n LLLL: 'dddd, D MMMM YYYY, A h:mm সময়'\n },\n calendar: {\n sameDay: '[আজ] LT',\n nextDay: '[আগামীকাল] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[গতকাল] LT',\n lastWeek: '[গত] dddd, LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s পরে',\n past: '%s আগে',\n s: 'কয়েক সেকেনà§à¦¡',\n ss: '%d সেকেনà§à¦¡',\n m: 'à¦à¦• মিনিট',\n mm: '%d মিনিট',\n h: 'à¦à¦• ঘনà§à¦Ÿà¦¾',\n hh: '%d ঘনà§à¦Ÿà¦¾',\n d: 'à¦à¦• দিন',\n dd: '%d দিন',\n M: 'à¦à¦• মাস',\n MM: '%d মাস',\n y: 'à¦à¦• বছর',\n yy: '%d বছর'\n },\n preparse: function preparse(string) {\n return string.replace(/[১২৩৪৫৬à§à§®à§¯à§¦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function postformat(string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /রাত|à¦à§‹à¦°|সকাল|দà§à¦ªà§à¦°|বিকাল|সনà§à¦§à§à¦¯à¦¾|রাত/,\n meridiemHour: function meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n\n if (meridiem === 'রাত') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'à¦à§‹à¦°') {\n return hour;\n } else if (meridiem === 'সকাল') {\n return hour;\n } else if (meridiem === 'দà§à¦ªà§à¦°') {\n return hour >= 3 ? hour : hour + 12;\n } else if (meridiem === 'বিকাল') {\n return hour + 12;\n } else if (meridiem === 'সনà§à¦§à§à¦¯à¦¾') {\n return hour + 12;\n }\n },\n meridiem: function meridiem(hour, minute, isLower) {\n if (hour < 4) {\n return 'রাত';\n } else if (hour < 6) {\n return 'à¦à§‹à¦°';\n } else if (hour < 12) {\n return 'সকাল';\n } else if (hour < 15) {\n return 'দà§à¦ªà§à¦°';\n } else if (hour < 18) {\n return 'বিকাল';\n } else if (hour < 20) {\n return 'সনà§à¦§à§à¦¯à¦¾';\n } else {\n return 'রাত';\n }\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n\n }\n });\n return bnBd;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Tibetan [bo]\n//! author : Thupten N. Chakrishar : https://github.com/vajradog\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var symbolMap = {\n 1: '༡',\n 2: '༢',\n 3: '༣',\n 4: '༤',\n 5: '༥',\n 6: '༦',\n 7: '༧',\n 8: '༨',\n 9: '༩',\n 0: '༠'\n },\n numberMap = {\n '༡': '1',\n '༢': '2',\n '༣': '3',\n '༤': '4',\n '༥': '5',\n '༦': '6',\n '༧': '7',\n '༨': '8',\n '༩': '9',\n '༠': '0'\n };\n var bo = moment.defineLocale('bo', {\n months: 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split('_'),\n monthsShort: 'ཟླ་1_ཟླ་2_ཟླ་3_ཟླ་4_ཟླ་5_ཟླ་6_ཟླ་7_ཟླ་8_ཟླ་9_ཟླ་10_ཟླ་11_ཟླ་12'.split('_'),\n monthsShortRegex: /^(ཟླ་\\d{1,2})/,\n monthsParseExact: true,\n weekdays: 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split('_'),\n weekdaysShort: 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split('_'),\n weekdaysMin: 'ཉི_ཟླ_མིག_ལྷག_ཕུར_སངས_སྤེན'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm'\n },\n calendar: {\n sameDay: '[དི་རིང] LT',\n nextDay: '[སང་ཉིན] LT',\n nextWeek: '[བདུན་ཕྲག་རྗེས་མ], LT',\n lastDay: '[à½à¼‹à½¦à½„] LT',\n lastWeek: '[བདུན་ཕྲག་མà½à½ ་མ] dddd, LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s ལ་',\n past: '%s སྔན་ལ',\n s: 'ལམ་སང',\n ss: '%d སà¾à½¢à¼‹à½†à¼',\n m: 'སà¾à½¢à¼‹à½˜à¼‹à½‚ཅིག',\n mm: '%d སà¾à½¢à¼‹à½˜',\n h: 'ཆུ་ཚོད་གཅིག',\n hh: '%d ཆུ་ཚོད',\n d: 'ཉིན་གཅིག',\n dd: '%d ཉིན་',\n M: 'ཟླ་བ་གཅིག',\n MM: '%d ཟླ་བ',\n y: 'ལོ་གཅིག',\n yy: '%d ལོ'\n },\n preparse: function preparse(string) {\n return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function postformat(string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,\n meridiemHour: function meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n\n if (meridiem === 'མཚན་མོ' && hour >= 4 || meridiem === 'ཉིན་གུང' && hour < 5 || meridiem === 'དགོང་དག') {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function meridiem(hour, minute, isLower) {\n if (hour < 4) {\n return 'མཚན་མོ';\n } else if (hour < 10) {\n return 'ཞོགས་ཀས';\n } else if (hour < 17) {\n return 'ཉིན་གུང';\n } else if (hour < 20) {\n return 'དགོང་དག';\n } else {\n return 'མཚན་མོ';\n }\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n\n }\n });\n return bo;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Breton [br]\n//! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n function relativeTimeWithMutation(number, withoutSuffix, key) {\n var format = {\n mm: 'munutenn',\n MM: 'miz',\n dd: 'devezh'\n };\n return number + ' ' + mutation(format[key], number);\n }\n\n function specialMutationForYears(number) {\n switch (lastNumber(number)) {\n case 1:\n case 3:\n case 4:\n case 5:\n case 9:\n return number + ' bloaz';\n\n default:\n return number + ' vloaz';\n }\n }\n\n function lastNumber(number) {\n if (number > 9) {\n return lastNumber(number % 10);\n }\n\n return number;\n }\n\n function mutation(text, number) {\n if (number === 2) {\n return softMutation(text);\n }\n\n return text;\n }\n\n function softMutation(text) {\n var mutationTable = {\n m: 'v',\n b: 'v',\n d: 'z'\n };\n\n if (mutationTable[text.charAt(0)] === undefined) {\n return text;\n }\n\n return mutationTable[text.charAt(0)] + text.substring(1);\n }\n\n var monthsParse = [/^gen/i, /^c[ʼ\\']hwe/i, /^meu/i, /^ebr/i, /^mae/i, /^(mez|eve)/i, /^gou/i, /^eos/i, /^gwe/i, /^her/i, /^du/i, /^ker/i],\n monthsRegex = /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n monthsStrictRegex = /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i,\n monthsShortStrictRegex = /^(gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n fullWeekdaysParse = [/^sul/i, /^lun/i, /^meurzh/i, /^merc[ʼ\\']her/i, /^yaou/i, /^gwener/i, /^sadorn/i],\n shortWeekdaysParse = [/^Sul/i, /^Lun/i, /^Meu/i, /^Mer/i, /^Yao/i, /^Gwe/i, /^Sad/i],\n minWeekdaysParse = [/^Su/i, /^Lu/i, /^Me([^r]|$)/i, /^Mer/i, /^Ya/i, /^Gw/i, /^Sa/i];\n var br = moment.defineLocale('br', {\n months: 'Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split('_'),\n monthsShort: 'Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'),\n weekdays: 'Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn'.split('_'),\n weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'),\n weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'),\n weekdaysParse: minWeekdaysParse,\n fullWeekdaysParse: fullWeekdaysParse,\n shortWeekdaysParse: shortWeekdaysParse,\n minWeekdaysParse: minWeekdaysParse,\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: monthsStrictRegex,\n monthsShortStrictRegex: monthsShortStrictRegex,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [a viz] MMMM YYYY',\n LLL: 'D [a viz] MMMM YYYY HH:mm',\n LLLL: 'dddd, D [a viz] MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Hiziv da] LT',\n nextDay: '[Warcʼhoazh da] LT',\n nextWeek: 'dddd [da] LT',\n lastDay: '[Decʼh da] LT',\n lastWeek: 'dddd [paset da] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'a-benn %s',\n past: '%s ʼzo',\n s: 'un nebeud segondennoù',\n ss: '%d eilenn',\n m: 'ur vunutenn',\n mm: relativeTimeWithMutation,\n h: 'un eur',\n hh: '%d eur',\n d: 'un devezh',\n dd: relativeTimeWithMutation,\n M: 'ur miz',\n MM: relativeTimeWithMutation,\n y: 'ur bloaz',\n yy: specialMutationForYears\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(añ|vet)/,\n ordinal: function ordinal(number) {\n var output = number === 1 ? 'añ' : 'vet';\n return number + output;\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n },\n meridiemParse: /a.m.|g.m./,\n // goude merenn | a-raok merenn\n isPM: function isPM(token) {\n return token === 'g.m.';\n },\n meridiem: function meridiem(hour, minute, isLower) {\n return hour < 12 ? 'a.m.' : 'g.m.';\n }\n });\n return br;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Bosnian [bs]\n//! author : Nedim Cholich : https://github.com/frontyard\n//! based on (hr) translation by Bojan Marković\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n\n return result;\n\n case 'm':\n return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n\n return result;\n\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jednog sata';\n\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n\n return result;\n\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n\n return result;\n\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n\n return result;\n\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n\n return result;\n }\n }\n\n var bs = moment.defineLocale('bs', {\n months: 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split('_'),\n monthsShort: 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_Äetvrtak_petak_subota'.split('_'),\n weekdaysShort: 'ned._pon._uto._sri._Äet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_Äe_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function nextWeek() {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n\n case 3:\n return '[u] [srijedu] [u] LT';\n\n case 6:\n return '[u] [subotu] [u] LT';\n\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[juÄer u] LT',\n lastWeek: function lastWeek() {\n switch (this.day()) {\n case 0:\n case 3:\n return '[proÅ¡lu] dddd [u] LT';\n\n case 6:\n return '[proÅ¡le] [subote] [u] LT';\n\n case 1:\n case 2:\n case 4:\n case 5:\n return '[proÅ¡li] dddd [u] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'par sekundi',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: 'dan',\n dd: translate,\n M: 'mjesec',\n MM: translate,\n y: 'godinu',\n yy: translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n }\n });\n return bs;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Catalan [ca]\n//! author : Juan G. Hurtado : https://github.com/juanghurtado\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var ca = moment.defineLocale('ca', {\n months: {\n standalone: 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split('_'),\n format: \"de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre\".split('_'),\n isFormat: /D[oD]?(\\s)+MMMM/\n },\n monthsShort: 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split('_'),\n monthsParseExact: true,\n weekdays: 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split('_'),\n weekdaysShort: 'dg._dl._dt._dc._dj._dv._ds.'.split('_'),\n weekdaysMin: 'dg_dl_dt_dc_dj_dv_ds'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [de] YYYY',\n ll: 'D MMM YYYY',\n LLL: 'D MMMM [de] YYYY [a les] H:mm',\n lll: 'D MMM YYYY, H:mm',\n LLLL: 'dddd D MMMM [de] YYYY [a les] H:mm',\n llll: 'ddd D MMM YYYY, H:mm'\n },\n calendar: {\n sameDay: function sameDay() {\n return '[avui a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n nextDay: function nextDay() {\n return '[demà a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n nextWeek: function nextWeek() {\n return 'dddd [a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n lastDay: function lastDay() {\n return '[ahir a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n lastWeek: function lastWeek() {\n return '[el] dddd [passat a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: \"d'aquà %s\",\n past: 'fa %s',\n s: 'uns segons',\n ss: '%d segons',\n m: 'un minut',\n mm: '%d minuts',\n h: 'una hora',\n hh: '%d hores',\n d: 'un dia',\n dd: '%d dies',\n M: 'un mes',\n MM: '%d mesos',\n y: 'un any',\n yy: '%d anys'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n ordinal: function ordinal(number, period) {\n var output = number === 1 ? 'r' : number === 2 ? 'n' : number === 3 ? 'r' : number === 4 ? 't' : 'è';\n\n if (period === 'w' || period === 'W') {\n output = 'a';\n }\n\n return number + output;\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return ca;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Czech [cs]\n//! author : petrbela : https://github.com/petrbela\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var months = 'leden_únor_bÅ™ezen_duben_kvÄ›ten_Äerven_Äervenec_srpen_zářÃ_Å™Ãjen_listopad_prosinec'.split('_'),\n monthsShort = 'led_úno_bÅ™e_dub_kvÄ›_Ävn_Ävc_srp_zář_Å™Ãj_lis_pro'.split('_'),\n monthsParse = [/^led/i, /^úno/i, /^bÅ™e/i, /^dub/i, /^kvÄ›/i, /^(Ävn|Äerven$|Äervna)/i, /^(Ävc|Äervenec|Äervence)/i, /^srp/i, /^zář/i, /^Å™Ãj/i, /^lis/i, /^pro/i],\n // NOTE: 'Äerven' is substring of 'Äervenec'; therefore 'Äervenec' must precede 'Äerven' in the regex to be fully matched.\n // Otherwise parser matches '1. Äervenec' as '1. Äerven' + 'ec'.\n monthsRegex = /^(leden|únor|bÅ™ezen|duben|kvÄ›ten|Äervenec|Äervence|Äerven|Äervna|srpen|zářÃ|Å™Ãjen|listopad|prosinec|led|úno|bÅ™e|dub|kvÄ›|Ävn|Ävc|srp|zář|Å™Ãj|lis|pro)/i;\n\n function plural(n) {\n return n > 1 && n < 5 && ~~(n / 10) !== 1;\n }\n\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n\n switch (key) {\n case 's':\n // a few seconds / in a few seconds / a few seconds ago\n return withoutSuffix || isFuture ? 'pár sekund' : 'pár sekundami';\n\n case 'ss':\n // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'sekundy' : 'sekund');\n } else {\n return result + 'sekundami';\n }\n\n case 'm':\n // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou';\n\n case 'mm':\n // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'minuty' : 'minut');\n } else {\n return result + 'minutami';\n }\n\n case 'h':\n // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n\n case 'hh':\n // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'hodiny' : 'hodin');\n } else {\n return result + 'hodinami';\n }\n\n case 'd':\n // a day / in a day / a day ago\n return withoutSuffix || isFuture ? 'den' : 'dnem';\n\n case 'dd':\n // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'dny' : 'dnÃ');\n } else {\n return result + 'dny';\n }\n\n case 'M':\n // a month / in a month / a month ago\n return withoutSuffix || isFuture ? 'mÄ›sÃc' : 'mÄ›sÃcem';\n\n case 'MM':\n // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'mÄ›sÃce' : 'mÄ›sÃců');\n } else {\n return result + 'mÄ›sÃci';\n }\n\n case 'y':\n // a year / in a year / a year ago\n return withoutSuffix || isFuture ? 'rok' : 'rokem';\n\n case 'yy':\n // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'roky' : 'let');\n } else {\n return result + 'lety';\n }\n\n }\n }\n\n var cs = moment.defineLocale('cs', {\n months: months,\n monthsShort: monthsShort,\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n // NOTE: 'Äerven' is substring of 'Äervenec'; therefore 'Äervenec' must precede 'Äerven' in the regex to be fully matched.\n // Otherwise parser matches '1. Äervenec' as '1. Äerven' + 'ec'.\n monthsStrictRegex: /^(leden|ledna|února|únor|bÅ™ezen|bÅ™ezna|duben|dubna|kvÄ›ten|kvÄ›tna|Äervenec|Äervence|Äerven|Äervna|srpen|srpna|zářÃ|Å™Ãjen|Å™Ãjna|listopadu|listopad|prosinec|prosince)/i,\n monthsShortStrictRegex: /^(led|úno|bÅ™e|dub|kvÄ›|Ävn|Ävc|srp|zář|Å™Ãj|lis|pro)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'nedÄ›le_pondÄ›lÃ_úterý_stÅ™eda_Ätvrtek_pátek_sobota'.split('_'),\n weekdaysShort: 'ne_po_út_st_Ät_pá_so'.split('_'),\n weekdaysMin: 'ne_po_út_st_Ät_pá_so'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd D. MMMM YYYY H:mm',\n l: 'D. M. YYYY'\n },\n calendar: {\n sameDay: '[dnes v] LT',\n nextDay: '[zÃtra v] LT',\n nextWeek: function nextWeek() {\n switch (this.day()) {\n case 0:\n return '[v nedÄ›li v] LT';\n\n case 1:\n case 2:\n return '[v] dddd [v] LT';\n\n case 3:\n return '[ve stÅ™edu v] LT';\n\n case 4:\n return '[ve Ätvrtek v] LT';\n\n case 5:\n return '[v pátek v] LT';\n\n case 6:\n return '[v sobotu v] LT';\n }\n },\n lastDay: '[vÄera v] LT',\n lastWeek: function lastWeek() {\n switch (this.day()) {\n case 0:\n return '[minulou nedÄ›li v] LT';\n\n case 1:\n case 2:\n return '[minulé] dddd [v] LT';\n\n case 3:\n return '[minulou stÅ™edu v] LT';\n\n case 4:\n case 5:\n return '[minulý] dddd [v] LT';\n\n case 6:\n return '[minulou sobotu v] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'za %s',\n past: 'pÅ™ed %s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return cs;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Chuvash [cv]\n//! author : Anatoly Mironov : https://github.com/mirontoli\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var cv = moment.defineLocale('cv', {\n months: 'кӑрлач_нарӑÑ_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split('_'),\n monthsShort: 'кӑр_нар_пуш_ака_май_Ò«Ó—Ñ€_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'),\n weekdays: 'вырÑарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_Ñрнекун_шӑматкун'.split('_'),\n weekdaysShort: 'выр_тун_ытл_юн_кӗҫ_Ñрн_шӑм'.split('_'),\n weekdaysMin: 'вр_тн_Ñ‹Ñ‚_юн_кҫ_ÑÑ€_шм'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]',\n LLL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n LLLL: 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm'\n },\n calendar: {\n sameDay: '[ПаÑн] LT [Ñехетре]',\n nextDay: '[Ыран] LT [Ñехетре]',\n lastDay: '[Ӗнер] LT [Ñехетре]',\n nextWeek: '[ҪитеÑ] dddd LT [Ñехетре]',\n lastWeek: '[Иртнӗ] dddd LT [Ñехетре]',\n sameElse: 'L'\n },\n relativeTime: {\n future: function future(output) {\n var affix = /Ñехет$/i.exec(output) ? 'рен' : /ҫул$/i.exec(output) ? 'тан' : 'ран';\n return output + affix;\n },\n past: '%s каÑлла',\n s: 'пӗр-ик ҫеккунт',\n ss: '%d ҫеккунт',\n m: 'пӗр минут',\n mm: '%d минут',\n h: 'пӗр Ñехет',\n hh: '%d Ñехет',\n d: 'пӗр кун',\n dd: '%d кун',\n M: 'пӗр уйӑх',\n MM: '%d уйӑх',\n y: 'пӗр ҫул',\n yy: '%d ҫул'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-мӗш/,\n ordinal: '%d-мӗш',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n }\n });\n return cv;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Welsh [cy]\n//! author : Robert Allen : https://github.com/robgallen\n//! author : https://github.com/ryangreaves\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var cy = moment.defineLocale('cy', {\n months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split('_'),\n monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split('_'),\n weekdays: 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split('_'),\n weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'),\n weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'),\n weekdaysParseExact: true,\n // time formats are the same as en-gb\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Heddiw am] LT',\n nextDay: '[Yfory am] LT',\n nextWeek: 'dddd [am] LT',\n lastDay: '[Ddoe am] LT',\n lastWeek: 'dddd [diwethaf am] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'mewn %s',\n past: '%s yn ôl',\n s: 'ychydig eiliadau',\n ss: '%d eiliad',\n m: 'munud',\n mm: '%d munud',\n h: 'awr',\n hh: '%d awr',\n d: 'diwrnod',\n dd: '%d diwrnod',\n M: 'mis',\n MM: '%d mis',\n y: 'blwyddyn',\n yy: '%d flynedd'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,\n // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh\n ordinal: function ordinal(number) {\n var b = number,\n output = '',\n lookup = ['', 'af', 'il', 'ydd', 'ydd', 'ed', 'ed', 'ed', 'fed', 'fed', 'fed', // 1af to 10fed\n 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'fed' // 11eg to 20fed\n ];\n\n if (b > 20) {\n if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) {\n output = 'fed'; // not 30ain, 70ain or 90ain\n } else {\n output = 'ain';\n }\n } else if (b > 0) {\n output = lookup[b];\n }\n\n return number + output;\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return cy;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Danish [da]\n//! author : Ulrik Nielsen : https://github.com/mrbase\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var da = moment.defineLocale('da', {\n months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split('_'),\n monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort: 'søn_man_tir_ons_tor_fre_lør'.split('_'),\n weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm'\n },\n calendar: {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'pÃ¥ dddd [kl.] LT',\n lastDay: '[i gÃ¥r kl.] LT',\n lastWeek: '[i] dddd[s kl.] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'om %s',\n past: '%s siden',\n s: 'fÃ¥ sekunder',\n ss: '%d sekunder',\n m: 'et minut',\n mm: '%d minutter',\n h: 'en time',\n hh: '%d timer',\n d: 'en dag',\n dd: '%d dage',\n M: 'en mÃ¥ned',\n MM: '%d mÃ¥neder',\n y: 'et Ã¥r',\n yy: '%d Ã¥r'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return da;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : German [de]\n//! author : lluchs : https://github.com/lluchs\n//! author: Menelion Elensúle: https://github.com/Oire\n//! author : Mikolaj Dadela : https://github.com/mik01aj\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren']\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var de = moment.defineLocale('de', {\n months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),\n monthsShort: 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),\n weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]'\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: '%d Wochen',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return de;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : German (Austria) [de-at]\n//! author : lluchs : https://github.com/lluchs\n//! author: Menelion Elensúle: https://github.com/Oire\n//! author : Martin Groller : https://github.com/MadMG\n//! author : Mikolaj Dadela : https://github.com/mik01aj\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren']\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var deAt = moment.defineLocale('de-at', {\n months: 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),\n monthsShort: 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),\n weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]'\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: '%d Wochen',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return deAt;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : German (Switzerland) [de-ch]\n//! author : sschueller : https://github.com/sschueller\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren']\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var deCh = moment.defineLocale('de-ch', {\n months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),\n monthsShort: 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),\n weekdaysShort: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]'\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: '%d Wochen',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return deCh;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Maldivian [dv]\n//! author : Jawish Hameed : https://github.com/jawish\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var months = ['Þ–Þ¬Þ‚ÞªÞ‡Þ¦ÞƒÞ©', 'ÞŠÞ¬Þ„Þ°ÞƒÞªÞ‡Þ¦ÞƒÞ©', 'Þ‰Þ§ÞƒÞ¨Þ—Þª', 'Þ‡ÞÞ•Þ°ÞƒÞ©ÞÞª', 'Þ‰Þ', 'Þ–Þ«Þ‚Þ°', 'Þ–ÞªÞÞ¦Þ‡Þ¨', 'Þ‡Þ¯ÞŽÞ¦ÞÞ°Þ“Þª', 'ÞÞ¬Þ•Þ°Þ“Þ¬Þ‰Þ°Þ„Þ¦ÞƒÞª', 'Þ‡Þ®Þ†Þ°Þ“Þ¯Þ„Þ¦ÞƒÞª', 'Þ‚Þ®ÞˆÞ¬Þ‰Þ°Þ„Þ¦ÞƒÞª', 'Þ‘Þ¨ÞÞ¬Þ‰Þ°Þ„Þ¦ÞƒÞª'],\n weekdays = ['އާދިއްތަ', 'Þ€Þ¯Þ‰Þ¦', 'Þ‡Þ¦Þ‚Þ°ÞŽÞ§ÞƒÞ¦', 'Þ„ÞªÞ‹Þ¦', 'Þ„ÞªÞƒÞ§Þްފަތި', 'Þ€ÞªÞ†ÞªÞƒÞª', 'Þ€Þ®Þ‚Þ¨Þ€Þ¨ÞƒÞª'];\n var dv = moment.defineLocale('dv', {\n months: months,\n monthsShort: months,\n weekdays: weekdays,\n weekdaysShort: weekdays,\n weekdaysMin: 'Þ‡Þ§Þ‹Þ¨_Þ€Þ¯Þ‰Þ¦_Þ‡Þ¦Þ‚Þ°_Þ„ÞªÞ‹Þ¦_Þ„ÞªÞƒÞ§_Þ€ÞªÞ†Þª_Þ€Þ®Þ‚Þ¨'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/M/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n meridiemParse: /Þ‰Þ†|Þ‰ÞŠ/,\n isPM: function isPM(input) {\n return 'Þ‰ÞŠ' === input;\n },\n meridiem: function meridiem(hour, minute, isLower) {\n if (hour < 12) {\n return 'Þ‰Þ†';\n } else {\n return 'Þ‰ÞŠ';\n }\n },\n calendar: {\n sameDay: '[Þ‰Þ¨Þ‡Þ¦Þ‹Þª] LT',\n nextDay: '[Þ‰Þ§Þ‹Þ¦Þ‰Þ§] LT',\n nextWeek: 'dddd LT',\n lastDay: '[Þ‡Þ¨Þ‡Þ°Þ”Þ¬] LT',\n lastWeek: '[ފާއިތުވި] dddd LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'ތެރÞÞŽÞ¦Þ‡Þ¨ %s',\n past: 'Þ†ÞªÞƒÞ¨Þ‚Þ° %s',\n s: 'Þިކުންތުކޮޅެއް',\n ss: 'd% Þިކުންތު',\n m: 'Þ‰Þ¨Þ‚Þ¨Þ“Þ¬Þ‡Þ°',\n mm: 'Þ‰Þ¨Þ‚Þ¨Þ“Þª %d',\n h: 'ÞŽÞ¦Þ‘Þ¨Þ‡Þ¨ÞƒÞ¬Þ‡Þ°',\n hh: 'ÞŽÞ¦Þ‘Þ¨Þ‡Þ¨ÞƒÞª %d',\n d: 'Þ‹ÞªÞˆÞ¦Þ€Þ¬Þ‡Þ°',\n dd: 'Þ‹ÞªÞˆÞ¦ÞÞ° %d',\n M: 'Þ‰Þ¦Þ€Þ¬Þ‡Þ°',\n MM: 'Þ‰Þ¦ÞÞ° %d',\n y: 'Þ‡Þ¦Þ€Þ¦ÞƒÞ¬Þ‡Þ°',\n yy: 'Þ‡Þ¦Þ€Þ¦ÞƒÞª %d'\n },\n preparse: function preparse(string) {\n return string.replace(/ØŒ/g, ',');\n },\n postformat: function postformat(string) {\n return string.replace(/,/g, 'ØŒ');\n },\n week: {\n dow: 7,\n // Sunday is the first day of the week.\n doy: 12 // The week that contains Jan 12th is the first week of the year.\n\n }\n });\n return dv;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Greek [el]\n//! author : Aggelos Karalias : https://github.com/mehiel\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n function isFunction(input) {\n return typeof Function !== 'undefined' && input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';\n }\n\n var el = moment.defineLocale('el', {\n monthsNominativeEl: 'ΙανουάÏιος_ΦεβÏουάÏιος_ΜάÏτιος_ΑπÏίλιος_Μάιος_ΙοÏνιος_ΙοÏλιος_ΑÏγουστος_ΣεπτÎμβÏιος_ΟκτώβÏιος_ÎοÎμβÏιος_ΔεκÎμβÏιος'.split('_'),\n monthsGenitiveEl: 'ΙανουαÏίου_ΦεβÏουαÏίου_ΜαÏτίου_ΑπÏιλίου_ΜαÎου_Ιουνίου_Ιουλίου_ΑυγοÏστου_ΣεπτεμβÏίου_ΟκτωβÏίου_ÎοεμβÏίου_ΔεκεμβÏίου'.split('_'),\n months: function months(momentToFormat, format) {\n if (!momentToFormat) {\n return this._monthsNominativeEl;\n } else if (typeof format === 'string' && /D/.test(format.substring(0, format.indexOf('MMMM')))) {\n // if there is a day number before 'MMMM'\n return this._monthsGenitiveEl[momentToFormat.month()];\n } else {\n return this._monthsNominativeEl[momentToFormat.month()];\n }\n },\n monthsShort: 'Ιαν_Φεβ_ΜαÏ_ΑπÏ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Îοε_Δεκ'.split('_'),\n weekdays: 'ΚυÏιακή_ΔευτÎÏα_ΤÏίτη_ΤετάÏτη_Î Îμπτη_ΠαÏασκευή_Σάββατο'.split('_'),\n weekdaysShort: 'ΚυÏ_Δευ_ΤÏι_Τετ_Πεμ_ΠαÏ_Σαβ'.split('_'),\n weekdaysMin: 'Κυ_Δε_ΤÏ_Τε_Πε_Πα_Σα'.split('_'),\n meridiem: function meridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'μμ' : 'ΜΜ';\n } else {\n return isLower ? 'πμ' : 'Î Îœ';\n }\n },\n isPM: function isPM(input) {\n return (input + '').toLowerCase()[0] === 'μ';\n },\n meridiemParse: /[Î Îœ]\\.?Îœ?\\.?/i,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A'\n },\n calendarEl: {\n sameDay: '[ΣήμεÏα {}] LT',\n nextDay: '[ΑÏÏιο {}] LT',\n nextWeek: 'dddd [{}] LT',\n lastDay: '[Χθες {}] LT',\n lastWeek: function lastWeek() {\n switch (this.day()) {\n case 6:\n return '[το Ï€ÏοηγοÏμενο] dddd [{}] LT';\n\n default:\n return '[την Ï€ÏοηγοÏμενη] dddd [{}] LT';\n }\n },\n sameElse: 'L'\n },\n calendar: function calendar(key, mom) {\n var output = this._calendarEl[key],\n hours = mom && mom.hours();\n\n if (isFunction(output)) {\n output = output.apply(mom);\n }\n\n return output.replace('{}', hours % 12 === 1 ? 'στη' : 'στις');\n },\n relativeTime: {\n future: 'σε %s',\n past: '%s Ï€Ïιν',\n s: 'λίγα δευτεÏόλεπτα',\n ss: '%d δευτεÏόλεπτα',\n m: 'Îνα λεπτό',\n mm: '%d λεπτά',\n h: 'μία ÏŽÏα',\n hh: '%d ÏŽÏες',\n d: 'μία μÎÏα',\n dd: '%d μÎÏες',\n M: 'Îνας μήνας',\n MM: '%d μήνες',\n y: 'Îνας χÏόνος',\n yy: '%d χÏόνια'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}η/,\n ordinal: '%dη',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4st is the first week of the year.\n\n }\n });\n return el;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : English (Australia) [en-au]\n//! author : Jared Morse : https://github.com/jarcoal\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var enAu = moment.defineLocale('en-au', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A'\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function ordinal(number) {\n var b = number % 10,\n output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return enAu;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : English (Canada) [en-ca]\n//! author : Jonathan Abourbih : https://github.com/jonbca\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var enCa = moment.defineLocale('en-ca', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'YYYY-MM-DD',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A'\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function ordinal(number) {\n var b = number % 10,\n output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n }\n });\n return enCa;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : English (United Kingdom) [en-gb]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var enGb = moment.defineLocale('en-gb', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function ordinal(number) {\n var b = number % 10,\n output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return enGb;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : English (Ireland) [en-ie]\n//! author : Chris Cartlidge : https://github.com/chriscartlidge\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var enIe = moment.defineLocale('en-ie', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function ordinal(number) {\n var b = number % 10,\n output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return enIe;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : English (Israel) [en-il]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var enIl = moment.defineLocale('en-il', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function ordinal(number) {\n var b = number % 10,\n output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n }\n });\n return enIl;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : English (India) [en-in]\n//! author : Jatin Agrawal : https://github.com/jatinag22\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var enIn = moment.defineLocale('en-in', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A'\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function ordinal(number) {\n var b = number % 10,\n output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 1st is the first week of the year.\n\n }\n });\n return enIn;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : English (New Zealand) [en-nz]\n//! author : Luke McGregor : https://github.com/lukemcgregor\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var enNz = moment.defineLocale('en-nz', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A'\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function ordinal(number) {\n var b = number % 10,\n output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return enNz;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : English (Singapore) [en-sg]\n//! author : Matthew Castrillon-Madrigal : https://github.com/techdimension\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var enSg = moment.defineLocale('en-sg', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function ordinal(number) {\n var b = number % 10,\n output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return enSg;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Esperanto [eo]\n//! author : Colin Dean : https://github.com/colindean\n//! author : Mia Nordentoft Imperatori : https://github.com/miestasmia\n//! comment : miestasmia corrected the translation by colindean\n//! comment : Vivakvo corrected the translation by colindean and miestasmia\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var eo = moment.defineLocale('eo', {\n months: 'januaro_februaro_marto_aprilo_majo_junio_julio_aÅgusto_septembro_oktobro_novembro_decembro'.split('_'),\n monthsShort: 'jan_feb_mart_apr_maj_jun_jul_aÅg_sept_okt_nov_dec'.split('_'),\n weekdays: 'dimanĉo_lundo_mardo_merkredo_ĵaÅdo_vendredo_sabato'.split('_'),\n weekdaysShort: 'dim_lun_mard_merk_ĵaÅ_ven_sab'.split('_'),\n weekdaysMin: 'di_lu_ma_me_ĵa_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: '[la] D[-an de] MMMM, YYYY',\n LLL: '[la] D[-an de] MMMM, YYYY HH:mm',\n LLLL: 'dddd[n], [la] D[-an de] MMMM, YYYY HH:mm',\n llll: 'ddd, [la] D[-an de] MMM, YYYY HH:mm'\n },\n meridiemParse: /[ap]\\.t\\.m/i,\n isPM: function isPM(input) {\n return input.charAt(0).toLowerCase() === 'p';\n },\n meridiem: function meridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'p.t.m.' : 'P.T.M.';\n } else {\n return isLower ? 'a.t.m.' : 'A.T.M.';\n }\n },\n calendar: {\n sameDay: '[HodiaÅ je] LT',\n nextDay: '[MorgaÅ je] LT',\n nextWeek: 'dddd[n je] LT',\n lastDay: '[HieraÅ je] LT',\n lastWeek: '[pasintan] dddd[n je] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'post %s',\n past: 'antaÅ %s',\n s: 'kelkaj sekundoj',\n ss: '%d sekundoj',\n m: 'unu minuto',\n mm: '%d minutoj',\n h: 'unu horo',\n hh: '%d horoj',\n d: 'unu tago',\n //ne 'diurno', ĉar estas uzita por proksimumo\n dd: '%d tagoj',\n M: 'unu monato',\n MM: '%d monatoj',\n y: 'unu jaro',\n yy: '%d jaroj'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}a/,\n ordinal: '%da',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n }\n });\n return eo;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Spanish [es]\n//! author : Julio Napurà : https://github.com/julionc\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),\n _monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i],\n monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var es = moment.defineLocale('es', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),\n monthsShort: function monthsShort(m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return _monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm'\n },\n calendar: {\n sameDay: function sameDay() {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function nextDay() {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function nextWeek() {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function lastDay() {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function lastWeek() {\n return '[el] dddd [pasado a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un dÃa',\n dd: '%d dÃas',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n },\n invalidDate: 'Fecha inválida'\n });\n return es;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Spanish (Dominican Republic) [es-do]\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),\n _monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i],\n monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esDo = moment.defineLocale('es-do', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),\n monthsShort: function monthsShort(m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return _monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY h:mm A',\n LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A'\n },\n calendar: {\n sameDay: function sameDay() {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function nextDay() {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function nextWeek() {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function lastDay() {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function lastWeek() {\n return '[el] dddd [pasado a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un dÃa',\n dd: '%d dÃas',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return esDo;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Spanish (Mexico) [es-mx]\n//! author : JC Franco : https://github.com/jcfranco\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),\n _monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i],\n monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esMx = moment.defineLocale('es-mx', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),\n monthsShort: function monthsShort(m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return _monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm'\n },\n calendar: {\n sameDay: function sameDay() {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function nextDay() {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function nextWeek() {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function lastDay() {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function lastWeek() {\n return '[el] dddd [pasado a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un dÃa',\n dd: '%d dÃas',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n },\n invalidDate: 'Fecha inválida'\n });\n return esMx;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Spanish (United States) [es-us]\n//! author : bustta : https://github.com/bustta\n//! author : chrisrodz : https://github.com/chrisrodz\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),\n _monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i],\n monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esUs = moment.defineLocale('es-us', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),\n monthsShort: function monthsShort(m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return _monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'MM/DD/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY h:mm A',\n LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A'\n },\n calendar: {\n sameDay: function sameDay() {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function nextDay() {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function nextWeek() {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function lastDay() {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function lastWeek() {\n return '[el] dddd [pasado a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un dÃa',\n dd: '%d dÃas',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n\n }\n });\n return esUs;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Estonian [et]\n//! author : Henry Kehlmann : https://github.com/madhenry\n//! improvements : Illimar Tambek : https://github.com/ragulka\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['mõne sekundi', 'mõni sekund', 'paar sekundit'],\n ss: [number + 'sekundi', number + 'sekundit'],\n m: ['ühe minuti', 'üks minut'],\n mm: [number + ' minuti', number + ' minutit'],\n h: ['ühe tunni', 'tund aega', 'üks tund'],\n hh: [number + ' tunni', number + ' tundi'],\n d: ['ühe päeva', 'üks päev'],\n M: ['kuu aja', 'kuu aega', 'üks kuu'],\n MM: [number + ' kuu', number + ' kuud'],\n y: ['ühe aasta', 'aasta', 'üks aasta'],\n yy: [number + ' aasta', number + ' aastat']\n };\n\n if (withoutSuffix) {\n return format[key][2] ? format[key][2] : format[key][1];\n }\n\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var et = moment.defineLocale('et', {\n months: 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split('_'),\n monthsShort: 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'),\n weekdays: 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split('_'),\n weekdaysShort: 'P_E_T_K_N_R_L'.split('_'),\n weekdaysMin: 'P_E_T_K_N_R_L'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[Täna,] LT',\n nextDay: '[Homme,] LT',\n nextWeek: '[Järgmine] dddd LT',\n lastDay: '[Eile,] LT',\n lastWeek: '[Eelmine] dddd LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s pärast',\n past: '%s tagasi',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: '%d päeva',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return et;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Basque [eu]\n//! author : Eneko Illarramendi : https://github.com/eillarra\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var eu = moment.defineLocale('eu', {\n months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split('_'),\n monthsShort: 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split('_'),\n monthsParseExact: true,\n weekdays: 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split('_'),\n weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'),\n weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY[ko] MMMM[ren] D[a]',\n LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm',\n LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm',\n l: 'YYYY-M-D',\n ll: 'YYYY[ko] MMM D[a]',\n lll: 'YYYY[ko] MMM D[a] HH:mm',\n llll: 'ddd, YYYY[ko] MMM D[a] HH:mm'\n },\n calendar: {\n sameDay: '[gaur] LT[etan]',\n nextDay: '[bihar] LT[etan]',\n nextWeek: 'dddd LT[etan]',\n lastDay: '[atzo] LT[etan]',\n lastWeek: '[aurreko] dddd LT[etan]',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s barru',\n past: 'duela %s',\n s: 'segundo batzuk',\n ss: '%d segundo',\n m: 'minutu bat',\n mm: '%d minutu',\n h: 'ordu bat',\n hh: '%d ordu',\n d: 'egun bat',\n dd: '%d egun',\n M: 'hilabete bat',\n MM: '%d hilabete',\n y: 'urte bat',\n yy: '%d urte'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n }\n });\n return eu;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Persian [fa]\n//! author : Ebrahim Byagowi : https://github.com/ebraminio\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var symbolMap = {\n 1: 'Û±',\n 2: 'Û²',\n 3: 'Û³',\n 4: 'Û´',\n 5: 'Ûµ',\n 6: 'Û¶',\n 7: 'Û·',\n 8: 'Û¸',\n 9: 'Û¹',\n 0: 'Û°'\n },\n numberMap = {\n 'Û±': '1',\n 'Û²': '2',\n 'Û³': '3',\n 'Û´': '4',\n 'Ûµ': '5',\n 'Û¶': '6',\n 'Û·': '7',\n 'Û¸': '8',\n 'Û¹': '9',\n 'Û°': '0'\n };\n var fa = moment.defineLocale('fa', {\n months: 'ژانویه_Ùوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'),\n monthsShort: 'ژانویه_Ùوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'),\n weekdays: \"\\u06CC\\u06A9\\u200C\\u0634\\u0646\\u0628\\u0647_\\u062F\\u0648\\u0634\\u0646\\u0628\\u0647_\\u0633\\u0647\\u200C\\u0634\\u0646\\u0628\\u0647_\\u0686\\u0647\\u0627\\u0631\\u0634\\u0646\\u0628\\u0647_\\u067E\\u0646\\u062C\\u200C\\u0634\\u0646\\u0628\\u0647_\\u062C\\u0645\\u0639\\u0647_\\u0634\\u0646\\u0628\\u0647\".split('_'),\n weekdaysShort: \"\\u06CC\\u06A9\\u200C\\u0634\\u0646\\u0628\\u0647_\\u062F\\u0648\\u0634\\u0646\\u0628\\u0647_\\u0633\\u0647\\u200C\\u0634\\u0646\\u0628\\u0647_\\u0686\\u0647\\u0627\\u0631\\u0634\\u0646\\u0628\\u0647_\\u067E\\u0646\\u062C\\u200C\\u0634\\u0646\\u0628\\u0647_\\u062C\\u0645\\u0639\\u0647_\\u0634\\u0646\\u0628\\u0647\".split('_'),\n weekdaysMin: 'ÛŒ_د_س_Ú†_Ù¾_ج_Ø´'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n meridiemParse: /قبل از ظهر|بعد از ظهر/,\n isPM: function isPM(input) {\n return /بعد از ظهر/.test(input);\n },\n meridiem: function meridiem(hour, minute, isLower) {\n if (hour < 12) {\n return 'قبل از ظهر';\n } else {\n return 'بعد از ظهر';\n }\n },\n calendar: {\n sameDay: '[امروز ساعت] LT',\n nextDay: '[Ùردا ساعت] LT',\n nextWeek: 'dddd [ساعت] LT',\n lastDay: '[دیروز ساعت] LT',\n lastWeek: 'dddd [پیش] [ساعت] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'در %s',\n past: '%s پیش',\n s: 'چند ثانیه',\n ss: '%d ثانیه',\n m: 'یک دقیقه',\n mm: '%d دقیقه',\n h: 'یک ساعت',\n hh: '%d ساعت',\n d: 'یک روز',\n dd: '%d روز',\n M: 'یک ماه',\n MM: '%d ماه',\n y: 'یک سال',\n yy: '%d سال'\n },\n preparse: function preparse(string) {\n return string.replace(/[Û°-Û¹]/g, function (match) {\n return numberMap[match];\n }).replace(/ØŒ/g, ',');\n },\n postformat: function postformat(string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n }).replace(/,/g, 'ØŒ');\n },\n dayOfMonthOrdinalParse: /\\d{1,2}Ù…/,\n ordinal: '%dÙ…',\n week: {\n dow: 6,\n // Saturday is the first day of the week.\n doy: 12 // The week that contains Jan 12th is the first week of the year.\n\n }\n });\n return fa;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Finnish [fi]\n//! author : Tarmo Aidantausta : https://github.com/bleadof\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var numbersPast = 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(' '),\n numbersFuture = ['nolla', 'yhden', 'kahden', 'kolmen', 'neljän', 'viiden', 'kuuden', numbersPast[7], numbersPast[8], numbersPast[9]];\n\n function translate(number, withoutSuffix, key, isFuture) {\n var result = '';\n\n switch (key) {\n case 's':\n return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';\n\n case 'ss':\n result = isFuture ? 'sekunnin' : 'sekuntia';\n break;\n\n case 'm':\n return isFuture ? 'minuutin' : 'minuutti';\n\n case 'mm':\n result = isFuture ? 'minuutin' : 'minuuttia';\n break;\n\n case 'h':\n return isFuture ? 'tunnin' : 'tunti';\n\n case 'hh':\n result = isFuture ? 'tunnin' : 'tuntia';\n break;\n\n case 'd':\n return isFuture ? 'päivän' : 'päivä';\n\n case 'dd':\n result = isFuture ? 'päivän' : 'päivää';\n break;\n\n case 'M':\n return isFuture ? 'kuukauden' : 'kuukausi';\n\n case 'MM':\n result = isFuture ? 'kuukauden' : 'kuukautta';\n break;\n\n case 'y':\n return isFuture ? 'vuoden' : 'vuosi';\n\n case 'yy':\n result = isFuture ? 'vuoden' : 'vuotta';\n break;\n }\n\n result = verbalNumber(number, isFuture) + ' ' + result;\n return result;\n }\n\n function verbalNumber(number, isFuture) {\n return number < 10 ? isFuture ? numbersFuture[number] : numbersPast[number] : number;\n }\n\n var fi = moment.defineLocale('fi', {\n months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split('_'),\n monthsShort: 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split('_'),\n weekdays: 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split('_'),\n weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'),\n weekdaysMin: 'su_ma_ti_ke_to_pe_la'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM[ta] YYYY',\n LLL: 'Do MMMM[ta] YYYY, [klo] HH.mm',\n LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm',\n l: 'D.M.YYYY',\n ll: 'Do MMM YYYY',\n lll: 'Do MMM YYYY, [klo] HH.mm',\n llll: 'ddd, Do MMM YYYY, [klo] HH.mm'\n },\n calendar: {\n sameDay: '[tänään] [klo] LT',\n nextDay: '[huomenna] [klo] LT',\n nextWeek: 'dddd [klo] LT',\n lastDay: '[eilen] [klo] LT',\n lastWeek: '[viime] dddd[na] [klo] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s päästä',\n past: '%s sitten',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return fi;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Filipino [fil]\n//! author : Dan Hagman : https://github.com/hagmandan\n//! author : Matthew Co : https://github.com/matthewdeeco\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var fil = moment.defineLocale('fil', {\n months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split('_'),\n monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split('_'),\n weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'MM/D/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY HH:mm',\n LLLL: 'dddd, MMMM DD, YYYY HH:mm'\n },\n calendar: {\n sameDay: 'LT [ngayong araw]',\n nextDay: '[Bukas ng] LT',\n nextWeek: 'LT [sa susunod na] dddd',\n lastDay: 'LT [kahapon]',\n lastWeek: 'LT [noong nakaraang] dddd',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'sa loob ng %s',\n past: '%s ang nakalipas',\n s: 'ilang segundo',\n ss: '%d segundo',\n m: 'isang minuto',\n mm: '%d minuto',\n h: 'isang oras',\n hh: '%d oras',\n d: 'isang araw',\n dd: '%d araw',\n M: 'isang buwan',\n MM: '%d buwan',\n y: 'isang taon',\n yy: '%d taon'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function ordinal(number) {\n return number;\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return fil;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Faroese [fo]\n//! author : Ragnar Johannesen : https://github.com/ragnar123\n//! author : Kristian Sakarisson : https://github.com/sakarisson\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var fo = moment.defineLocale('fo', {\n months: 'januar_februar_mars_aprÃl_mai_juni_juli_august_september_oktober_november_desember'.split('_'),\n monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),\n weekdays: 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_frÃggjadagur_leygardagur'.split('_'),\n weekdaysShort: 'sun_mán_týs_mik_hós_frÃ_ley'.split('_'),\n weekdaysMin: 'su_má_tý_mi_hó_fr_le'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D. MMMM, YYYY HH:mm'\n },\n calendar: {\n sameDay: '[à dag kl.] LT',\n nextDay: '[à morgin kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[à gjár kl.] LT',\n lastWeek: '[sÃðstu] dddd [kl] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'um %s',\n past: '%s sÃðani',\n s: 'fá sekund',\n ss: '%d sekundir',\n m: 'ein minuttur',\n mm: '%d minuttir',\n h: 'ein tÃmi',\n hh: '%d tÃmar',\n d: 'ein dagur',\n dd: '%d dagar',\n M: 'ein mánaður',\n MM: '%d mánaðir',\n y: 'eitt ár',\n yy: '%d ár'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return fo;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : French [fr]\n//! author : John Fischer : https://github.com/jfroffice\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var monthsStrictRegex = /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,\n monthsShortStrictRegex = /(janv\\.?|févr\\.?|mars|avr\\.?|mai|juin|juil\\.?|août|sept\\.?|oct\\.?|nov\\.?|déc\\.?)/i,\n monthsRegex = /(janv\\.?|févr\\.?|mars|avr\\.?|mai|juin|juil\\.?|août|sept\\.?|oct\\.?|nov\\.?|déc\\.?|janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,\n monthsParse = [/^janv/i, /^févr/i, /^mars/i, /^avr/i, /^mai/i, /^juin/i, /^juil/i, /^août/i, /^sept/i, /^oct/i, /^nov/i, /^déc/i];\n var fr = moment.defineLocale('fr', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),\n monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: monthsStrictRegex,\n monthsShortStrictRegex: monthsShortStrictRegex,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Aujourd’hui à ] LT',\n nextDay: '[Demain à ] LT',\n nextWeek: 'dddd [à ] LT',\n lastDay: '[Hier à ] LT',\n lastWeek: 'dddd [dernier à ] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n w: 'une semaine',\n ww: '%d semaines',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|)/,\n ordinal: function ordinal(number, period) {\n switch (period) {\n // TODO: Return 'e' when day of month > 1. Move this case inside\n // block for masculine words below.\n // See https://github.com/moment/moment/issues/3375\n case 'D':\n return number + (number === 1 ? 'er' : '');\n // Words with masculine grammatical gender: mois, trimestre, jour\n\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n // Words with feminine grammatical gender: semaine\n\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return fr;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : French (Canada) [fr-ca]\n//! author : Jonathan Abourbih : https://github.com/jonbca\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var frCa = moment.defineLocale('fr-ca', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),\n monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Aujourd’hui à ] LT',\n nextDay: '[Demain à ] LT',\n nextWeek: 'dddd [à ] LT',\n lastDay: '[Hier à ] LT',\n lastWeek: 'dddd [dernier à ] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal: function ordinal(number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n // Words with feminine grammatical gender: semaine\n\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n }\n });\n return frCa;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : French (Switzerland) [fr-ch]\n//! author : Gaspard Bucher : https://github.com/gaspard\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var frCh = moment.defineLocale('fr-ch', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),\n monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Aujourd’hui à ] LT',\n nextDay: '[Demain à ] LT',\n nextWeek: 'dddd [à ] LT',\n lastDay: '[Hier à ] LT',\n lastWeek: 'dddd [dernier à ] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal: function ordinal(number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n // Words with feminine grammatical gender: semaine\n\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return frCh;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Frisian [fy]\n//! author : Robin van der Vliet : https://github.com/robin0van0der0v\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var monthsShortWithDots = 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_'),\n monthsShortWithoutDots = 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_');\n var fy = moment.defineLocale('fy', {\n months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split('_'),\n monthsShort: function monthsShort(m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n monthsParseExact: true,\n weekdays: 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split('_'),\n weekdaysShort: 'si._mo._ti._wo._to._fr._so.'.split('_'),\n weekdaysMin: 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[hjoed om] LT',\n nextDay: '[moarn om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[juster om] LT',\n lastWeek: '[ôfrûne] dddd [om] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'oer %s',\n past: '%s lyn',\n s: 'in pear sekonden',\n ss: '%d sekonden',\n m: 'ien minút',\n mm: '%d minuten',\n h: 'ien oere',\n hh: '%d oeren',\n d: 'ien dei',\n dd: '%d dagen',\n M: 'ien moanne',\n MM: '%d moannen',\n y: 'ien jier',\n yy: '%d jierren'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function ordinal(number) {\n return number + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de');\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return fy;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Irish or Irish Gaelic [ga]\n//! author : André Silva : https://github.com/askpt\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var months = ['Eanáir', 'Feabhra', 'Márta', 'Aibreán', 'Bealtaine', 'Meitheamh', 'Iúil', 'Lúnasa', 'Meán Fómhair', 'Deireadh Fómhair', 'Samhain', 'Nollaig'],\n monthsShort = ['Ean', 'Feabh', 'Márt', 'Aib', 'Beal', 'Meith', 'Iúil', 'Lún', 'M.F.', 'D.F.', 'Samh', 'Noll'],\n weekdays = ['Dé Domhnaigh', 'Dé Luain', 'Dé Máirt', 'Dé Céadaoin', 'Déardaoin', 'Dé hAoine', 'Dé Sathairn'],\n weekdaysShort = ['Domh', 'Luan', 'Máirt', 'Céad', 'Déar', 'Aoine', 'Sath'],\n weekdaysMin = ['Do', 'Lu', 'Má', 'Cé', 'Dé', 'A', 'Sa'];\n var ga = moment.defineLocale('ga', {\n months: months,\n monthsShort: monthsShort,\n monthsParseExact: true,\n weekdays: weekdays,\n weekdaysShort: weekdaysShort,\n weekdaysMin: weekdaysMin,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Inniu ag] LT',\n nextDay: '[Amárach ag] LT',\n nextWeek: 'dddd [ag] LT',\n lastDay: '[Inné ag] LT',\n lastWeek: 'dddd [seo caite] [ag] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'i %s',\n past: '%s ó shin',\n s: 'cúpla soicind',\n ss: '%d soicind',\n m: 'nóiméad',\n mm: '%d nóiméad',\n h: 'uair an chloig',\n hh: '%d uair an chloig',\n d: 'lá',\n dd: '%d lá',\n M: 'mÃ',\n MM: '%d mÃonna',\n y: 'bliain',\n yy: '%d bliain'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n ordinal: function ordinal(number) {\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n return number + output;\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return ga;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Scottish Gaelic [gd]\n//! author : Jon Ashdown : https://github.com/jonashdown\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var months = ['Am Faoilleach', 'An Gearran', 'Am Mà rt', 'An Giblean', 'An Cèitean', 'An t-Ã’gmhios', 'An t-Iuchar', 'An Lùnastal', 'An t-Sultain', 'An Dà mhair', 'An t-Samhain', 'An Dùbhlachd'],\n monthsShort = ['Faoi', 'Gear', 'Mà rt', 'Gibl', 'Cèit', 'Ã’gmh', 'Iuch', 'Lùn', 'Sult', 'Dà mh', 'Samh', 'Dùbh'],\n weekdays = ['Didòmhnaich', 'Diluain', 'Dimà irt', 'Diciadain', 'Diardaoin', 'Dihaoine', 'Disathairne'],\n weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'],\n weekdaysMin = ['Dò', 'Lu', 'Mà ', 'Ci', 'Ar', 'Ha', 'Sa'];\n var gd = moment.defineLocale('gd', {\n months: months,\n monthsShort: monthsShort,\n monthsParseExact: true,\n weekdays: weekdays,\n weekdaysShort: weekdaysShort,\n weekdaysMin: weekdaysMin,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[An-diugh aig] LT',\n nextDay: '[A-mà ireach aig] LT',\n nextWeek: 'dddd [aig] LT',\n lastDay: '[An-dè aig] LT',\n lastWeek: 'dddd [seo chaidh] [aig] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'ann an %s',\n past: 'bho chionn %s',\n s: 'beagan diogan',\n ss: '%d diogan',\n m: 'mionaid',\n mm: '%d mionaidean',\n h: 'uair',\n hh: '%d uairean',\n d: 'latha',\n dd: '%d latha',\n M: 'mìos',\n MM: '%d mìosan',\n y: 'bliadhna',\n yy: '%d bliadhna'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n ordinal: function ordinal(number) {\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n return number + output;\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return gd;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Galician [gl]\n//! author : Juan G. Hurtado : https://github.com/juanghurtado\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var gl = moment.defineLocale('gl', {\n months: 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split('_'),\n monthsShort: 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mé_xo_ve_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm'\n },\n calendar: {\n sameDay: function sameDay() {\n return '[hoxe ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';\n },\n nextDay: function nextDay() {\n return '[mañá ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';\n },\n nextWeek: function nextWeek() {\n return 'dddd [' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT';\n },\n lastDay: function lastDay() {\n return '[onte ' + (this.hours() !== 1 ? 'á' : 'a') + '] LT';\n },\n lastWeek: function lastWeek() {\n return '[o] dddd [pasado ' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT';\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: function future(str) {\n if (str.indexOf('un') === 0) {\n return 'n' + str;\n }\n\n return 'en ' + str;\n },\n past: 'hai %s',\n s: 'uns segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'unha hora',\n hh: '%d horas',\n d: 'un dÃa',\n dd: '%d dÃas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un ano',\n yy: '%d anos'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return gl;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Konkani Devanagari script [gom-deva]\n//! author : The Discoverer : https://github.com/WikiDiscoverer\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['थोडया सॅकंडांनी', 'थोडे सॅकंड'],\n ss: [number + ' सॅकंडांनी', number + ' सॅकंड'],\n m: ['à¤à¤•à¤¾ मिणटान', 'à¤à¤• मिनूट'],\n mm: [number + ' मिणटांनी', number + ' मिणटां'],\n h: ['à¤à¤•à¤¾ वरान', 'à¤à¤• वर'],\n hh: [number + ' वरांनी', number + ' वरां'],\n d: ['à¤à¤•à¤¾ दिसान', 'à¤à¤• दीस'],\n dd: [number + ' दिसांनी', number + ' दीस'],\n M: ['à¤à¤•à¤¾ मà¥à¤¹à¤¯à¤¨à¥à¤¯à¤¾à¤¨', 'à¤à¤• मà¥à¤¹à¤¯à¤¨à¥‹'],\n MM: [number + ' मà¥à¤¹à¤¯à¤¨à¥à¤¯à¤¾à¤¨à¥€', number + ' मà¥à¤¹à¤¯à¤¨à¥‡'],\n y: ['à¤à¤•à¤¾ वरà¥à¤¸à¤¾à¤¨', 'à¤à¤• वरà¥à¤¸'],\n yy: [number + ' वरà¥à¤¸à¤¾à¤‚नी', number + ' वरà¥à¤¸à¤¾à¤‚']\n };\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var gomDeva = moment.defineLocale('gom-deva', {\n months: {\n standalone: 'जानेवारी_फेबà¥à¤°à¥à¤µà¤¾à¤°à¥€_मारà¥à¤š_à¤à¤ªà¥à¤°à¥€à¤²_मे_जून_जà¥à¤²à¤¯_ऑगसà¥à¤Ÿ_सपà¥à¤Ÿà¥‡à¤‚बर_ऑकà¥à¤Ÿà¥‹à¤¬à¤°_नोवà¥à¤¹à¥‡à¤‚बर_डिसेंबर'.split('_'),\n format: 'जानेवारीचà¥à¤¯à¤¾_फेबà¥à¤°à¥à¤µà¤¾à¤°à¥€à¤šà¥à¤¯à¤¾_मारà¥à¤šà¤¾à¤šà¥à¤¯à¤¾_à¤à¤ªà¥à¤°à¥€à¤²à¤¾à¤šà¥à¤¯à¤¾_मेयाचà¥à¤¯à¤¾_जूनाचà¥à¤¯à¤¾_जà¥à¤²à¤¯à¤¾à¤šà¥à¤¯à¤¾_ऑगसà¥à¤Ÿà¤¾à¤šà¥à¤¯à¤¾_सपà¥à¤Ÿà¥‡à¤‚बराचà¥à¤¯à¤¾_ऑकà¥à¤Ÿà¥‹à¤¬à¤°à¤¾à¤šà¥à¤¯à¤¾_नोवà¥à¤¹à¥‡à¤‚बराचà¥à¤¯à¤¾_डिसेंबराचà¥à¤¯à¤¾'.split('_'),\n isFormat: /MMMM(\\s)+D[oD]?/\n },\n monthsShort: 'जाने._फेबà¥à¤°à¥._मारà¥à¤š_à¤à¤ªà¥à¤°à¥€._मे_जून_जà¥à¤²._ऑग._सपà¥à¤Ÿà¥‡à¤‚._ऑकà¥à¤Ÿà¥‹._नोवà¥à¤¹à¥‡à¤‚._डिसें.'.split('_'),\n monthsParseExact: true,\n weekdays: 'आयतार_सोमार_मंगळार_बà¥à¤§à¤µà¤¾à¤°_बिरेसà¥à¤¤à¤¾à¤°_सà¥à¤•à¥à¤°à¤¾à¤°_शेनवार'.split('_'),\n weekdaysShort: 'आयत._सोम._मंगळ._बà¥à¤§._बà¥à¤°à¥‡à¤¸à¥à¤¤._सà¥à¤•à¥à¤°._शेन.'.split('_'),\n weekdaysMin: 'आ_सो_मं_बà¥_बà¥à¤°à¥‡_सà¥_शे'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'A h:mm [वाजतां]',\n LTS: 'A h:mm:ss [वाजतां]',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY A h:mm [वाजतां]',\n LLLL: 'dddd, MMMM Do, YYYY, A h:mm [वाजतां]',\n llll: 'ddd, D MMM YYYY, A h:mm [वाजतां]'\n },\n calendar: {\n sameDay: '[आयज] LT',\n nextDay: '[फालà¥à¤¯à¤¾à¤‚] LT',\n nextWeek: '[फà¥à¤¡à¤²à¥‹] dddd[,] LT',\n lastDay: '[काल] LT',\n lastWeek: '[फाटलो] dddd[,] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s',\n past: '%s आदीं',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(वेर)/,\n ordinal: function ordinal(number, period) {\n switch (period) {\n // the ordinal 'वेर' only applies to day of the month\n case 'D':\n return number + 'वेर';\n\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n case 'w':\n case 'W':\n return number;\n }\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week\n doy: 3 // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)\n\n },\n meridiemParse: /राती|सकाळीं|दनपारां|सांजे/,\n meridiemHour: function meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n\n if (meridiem === 'राती') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'सकाळीं') {\n return hour;\n } else if (meridiem === 'दनपारां') {\n return hour > 12 ? hour : hour + 12;\n } else if (meridiem === 'सांजे') {\n return hour + 12;\n }\n },\n meridiem: function meridiem(hour, minute, isLower) {\n if (hour < 4) {\n return 'राती';\n } else if (hour < 12) {\n return 'सकाळीं';\n } else if (hour < 16) {\n return 'दनपारां';\n } else if (hour < 20) {\n return 'सांजे';\n } else {\n return 'राती';\n }\n }\n });\n return gomDeva;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Konkani Latin script [gom-latn]\n//! author : The Discoverer : https://github.com/WikiDiscoverer\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['thoddea sekondamni', 'thodde sekond'],\n ss: [number + ' sekondamni', number + ' sekond'],\n m: ['eka mintan', 'ek minut'],\n mm: [number + ' mintamni', number + ' mintam'],\n h: ['eka voran', 'ek vor'],\n hh: [number + ' voramni', number + ' voram'],\n d: ['eka disan', 'ek dis'],\n dd: [number + ' disamni', number + ' dis'],\n M: ['eka mhoinean', 'ek mhoino'],\n MM: [number + ' mhoineamni', number + ' mhoine'],\n y: ['eka vorsan', 'ek voros'],\n yy: [number + ' vorsamni', number + ' vorsam']\n };\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var gomLatn = moment.defineLocale('gom-latn', {\n months: {\n standalone: 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split('_'),\n format: 'Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea'.split('_'),\n isFormat: /MMMM(\\s)+D[oD]?/\n },\n monthsShort: 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays: \"Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var\".split('_'),\n weekdaysShort: 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'),\n weekdaysMin: 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'A h:mm [vazta]',\n LTS: 'A h:mm:ss [vazta]',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY A h:mm [vazta]',\n LLLL: 'dddd, MMMM Do, YYYY, A h:mm [vazta]',\n llll: 'ddd, D MMM YYYY, A h:mm [vazta]'\n },\n calendar: {\n sameDay: '[Aiz] LT',\n nextDay: '[Faleam] LT',\n nextWeek: '[Fuddlo] dddd[,] LT',\n lastDay: '[Kal] LT',\n lastWeek: '[Fattlo] dddd[,] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s',\n past: '%s adim',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er)/,\n ordinal: function ordinal(number, period) {\n switch (period) {\n // the ordinal 'er' only applies to day of the month\n case 'D':\n return number + 'er';\n\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n case 'w':\n case 'W':\n return number;\n }\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week\n doy: 3 // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)\n\n },\n meridiemParse: /rati|sokallim|donparam|sanje/,\n meridiemHour: function meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n\n if (meridiem === 'rati') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'sokallim') {\n return hour;\n } else if (meridiem === 'donparam') {\n return hour > 12 ? hour : hour + 12;\n } else if (meridiem === 'sanje') {\n return hour + 12;\n }\n },\n meridiem: function meridiem(hour, minute, isLower) {\n if (hour < 4) {\n return 'rati';\n } else if (hour < 12) {\n return 'sokallim';\n } else if (hour < 16) {\n return 'donparam';\n } else if (hour < 20) {\n return 'sanje';\n } else {\n return 'rati';\n }\n }\n });\n return gomLatn;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Gujarati [gu]\n//! author : Kaushik Thanki : https://github.com/Kaushik1987\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var symbolMap = {\n 1: '૧',\n 2: '૨',\n 3: 'à«©',\n 4: '૪',\n 5: 'à««',\n 6: '૬',\n 7: 'à«',\n 8: 'à«®',\n 9: '૯',\n 0: '૦'\n },\n numberMap = {\n '૧': '1',\n '૨': '2',\n 'à«©': '3',\n '૪': '4',\n 'à««': '5',\n '૬': '6',\n 'à«': '7',\n 'à«®': '8',\n '૯': '9',\n '૦': '0'\n };\n var gu = moment.defineLocale('gu', {\n months: 'જાનà«àª¯à«àª†àª°à«€_ફેબà«àª°à«àª†àª°à«€_મારà«àªš_àªàªªà«àª°àª¿àª²_મે_જૂન_જà«àª²àª¾àªˆ_ઑગસà«àªŸ_સપà«àªŸà«‡àª®à«àª¬àª°_ઑકà«àªŸà«àª¬àª°_નવેમà«àª¬àª°_ડિસેમà«àª¬àª°'.split('_'),\n monthsShort: 'જાનà«àª¯à«._ફેબà«àª°à«._મારà«àªš_àªàªªà«àª°àª¿._મે_જૂન_જà«àª²àª¾._ઑગ._સપà«àªŸà«‡._ઑકà«àªŸà«._નવે._ડિસે.'.split('_'),\n monthsParseExact: true,\n weekdays: 'રવિવાર_સોમવાર_મંગળવાર_બà«àª§à«àªµàª¾àª°_ગà«àª°à«àªµàª¾àª°_શà«àª•à«àª°àªµàª¾àª°_શનિવાર'.split('_'),\n weekdaysShort: 'રવિ_સોમ_મંગળ_બà«àª§à«_ગà«àª°à«_શà«àª•à«àª°_શનિ'.split('_'),\n weekdaysMin: 'ર_સો_મં_બà«_ગà«_શà«_શ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm વાગà«àª¯à«‡',\n LTS: 'A h:mm:ss વાગà«àª¯à«‡',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm વાગà«àª¯à«‡',\n LLLL: 'dddd, D MMMM YYYY, A h:mm વાગà«àª¯à«‡'\n },\n calendar: {\n sameDay: '[આજ] LT',\n nextDay: '[કાલે] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ગઇકાલે] LT',\n lastWeek: '[પાછલા] dddd, LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s મા',\n past: '%s પહેલા',\n s: 'અમà«àª• પળો',\n ss: '%d સેકંડ',\n m: 'àªàª• મિનિટ',\n mm: '%d મિનિટ',\n h: 'àªàª• કલાક',\n hh: '%d કલાક',\n d: 'àªàª• દિવસ',\n dd: '%d દિવસ',\n M: 'àªàª• મહિનો',\n MM: '%d મહિનો',\n y: 'àªàª• વરà«àª·',\n yy: '%d વરà«àª·'\n },\n preparse: function preparse(string) {\n return string.replace(/[૧૨૩૪૫૬à«à«®à«¯à«¦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function postformat(string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Gujarati notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati.\n meridiemParse: /રાત|બપોર|સવાર|સાંજ/,\n meridiemHour: function meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n\n if (meridiem === 'રાત') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'સવાર') {\n return hour;\n } else if (meridiem === 'બપોર') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'સાંજ') {\n return hour + 12;\n }\n },\n meridiem: function meridiem(hour, minute, isLower) {\n if (hour < 4) {\n return 'રાત';\n } else if (hour < 10) {\n return 'સવાર';\n } else if (hour < 17) {\n return 'બપોર';\n } else if (hour < 20) {\n return 'સાંજ';\n } else {\n return 'રાત';\n }\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n\n }\n });\n return gu;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Hebrew [he]\n//! author : Tomer Cohen : https://github.com/tomer\n//! author : Moshe Simantov : https://github.com/DevelopmentIL\n//! author : Tal Ater : https://github.com/TalAter\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var he = moment.defineLocale('he', {\n months: '×™× ×•×ר_פברו×ר_מרץ_×פריל_מ××™_×™×•× ×™_יולי_×וגוסט_ספטמבר_×וקטובר_× ×•×‘×ž×‘×¨_דצמבר'.split('_'),\n monthsShort: '×™× ×•×³_פבר׳_מרץ_×פר׳_מ××™_×™×•× ×™_יולי_×וג׳_ספט׳_×וק׳_× ×•×‘×³_דצמ׳'.split('_'),\n weekdays: 'ר×שון_×©× ×™_שלישי_רביעי_חמישי_שישי_שבת'.split('_'),\n weekdaysShort: '×׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'),\n weekdaysMin: '×_ב_×’_ד_×”_ו_ש'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [ב]MMMM YYYY',\n LLL: 'D [ב]MMMM YYYY HH:mm',\n LLLL: 'dddd, D [ב]MMMM YYYY HH:mm',\n l: 'D/M/YYYY',\n ll: 'D MMM YYYY',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd, D MMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[×”×™×•× ×‘Ö¾]LT',\n nextDay: '[מחר ב־]LT',\n nextWeek: 'dddd [בשעה] LT',\n lastDay: '[×תמול ב־]LT',\n lastWeek: '[ביו×] dddd [×”×חרון בשעה] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'בעוד %s',\n past: '×œ×¤× ×™ %s',\n s: 'מספר ×©× ×™×•×ª',\n ss: '%d ×©× ×™×•×ª',\n m: 'דקה',\n mm: '%d דקות',\n h: 'שעה',\n hh: function hh(number) {\n if (number === 2) {\n return 'שעתיי×';\n }\n\n return number + ' שעות';\n },\n d: 'יו×',\n dd: function dd(number) {\n if (number === 2) {\n return 'יומיי×';\n }\n\n return number + ' ימי×';\n },\n M: 'חודש',\n MM: function MM(number) {\n if (number === 2) {\n return 'חודשיי×';\n }\n\n return number + ' חודשי×';\n },\n y: '×©× ×”',\n yy: function yy(number) {\n if (number === 2) {\n return '×©× ×ª×™×™×';\n } else if (number % 10 === 0 && number !== 10) {\n return number + ' ×©× ×”';\n }\n\n return number + ' ×©× ×™×';\n }\n },\n meridiemParse: /××—×”\"צ|×œ×¤× ×”\"צ|×חרי הצהריי×|×œ×¤× ×™ הצהריי×|×œ×¤× ×•×ª בוקר|בבוקר|בערב/i,\n isPM: function isPM(input) {\n return /^(××—×”\"צ|×חרי הצהריי×|בערב)$/.test(input);\n },\n meridiem: function meridiem(hour, minute, isLower) {\n if (hour < 5) {\n return '×œ×¤× ×•×ª בוקר';\n } else if (hour < 10) {\n return 'בבוקר';\n } else if (hour < 12) {\n return isLower ? '×œ×¤× ×”\"צ' : '×œ×¤× ×™ הצהריי×';\n } else if (hour < 18) {\n return isLower ? '××—×”\"צ' : '×חרי הצהריי×';\n } else {\n return 'בערב';\n }\n }\n });\n return he;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Hindi [hi]\n//! author : Mayank Singhal : https://github.com/mayanksinghal\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var symbolMap = {\n 1: '१',\n 2: '२',\n 3: '३',\n 4: '४',\n 5: '५',\n 6: '६',\n 7: 'à¥',\n 8: '८',\n 9: '९',\n 0: '०'\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n 'à¥': '7',\n '८': '8',\n '९': '9',\n '०': '0'\n },\n monthsParse = [/^जन/i, /^फ़र|फर/i, /^मारà¥à¤š/i, /^अपà¥à¤°à¥ˆ/i, /^मई/i, /^जून/i, /^जà¥à¤²/i, /^अग/i, /^सितं|सित/i, /^अकà¥à¤Ÿà¥‚/i, /^नव|नवं/i, /^दिसं|दिस/i],\n shortMonthsParse = [/^जन/i, /^फ़र/i, /^मारà¥à¤š/i, /^अपà¥à¤°à¥ˆ/i, /^मई/i, /^जून/i, /^जà¥à¤²/i, /^अग/i, /^सित/i, /^अकà¥à¤Ÿà¥‚/i, /^नव/i, /^दिस/i];\n var hi = moment.defineLocale('hi', {\n months: {\n format: 'जनवरी_फ़रवरी_मारà¥à¤š_अपà¥à¤°à¥ˆà¤²_मई_जून_जà¥à¤²à¤¾à¤ˆ_अगसà¥à¤¤_सितमà¥à¤¬à¤°_अकà¥à¤Ÿà¥‚बर_नवमà¥à¤¬à¤°_दिसमà¥à¤¬à¤°'.split('_'),\n standalone: 'जनवरी_फरवरी_मारà¥à¤š_अपà¥à¤°à¥ˆà¤²_मई_जून_जà¥à¤²à¤¾à¤ˆ_अगसà¥à¤¤_सितंबर_अकà¥à¤Ÿà¥‚बर_नवंबर_दिसंबर'.split('_')\n },\n monthsShort: 'जन._फ़र._मारà¥à¤š_अपà¥à¤°à¥ˆ._मई_जून_जà¥à¤²._अग._सित._अकà¥à¤Ÿà¥‚._नव._दिस.'.split('_'),\n weekdays: 'रविवार_सोमवार_मंगलवार_बà¥à¤§à¤µà¤¾à¤°_गà¥à¤°à¥‚वार_शà¥à¤•à¥à¤°à¤µà¤¾à¤°_शनिवार'.split('_'),\n weekdaysShort: 'रवि_सोम_मंगल_बà¥à¤§_गà¥à¤°à¥‚_शà¥à¤•à¥à¤°_शनि'.split('_'),\n weekdaysMin: 'र_सो_मं_बà¥_गà¥_शà¥_श'.split('_'),\n longDateFormat: {\n LT: 'A h:mm बजे',\n LTS: 'A h:mm:ss बजे',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm बजे',\n LLLL: 'dddd, D MMMM YYYY, A h:mm बजे'\n },\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: shortMonthsParse,\n monthsRegex: /^(जनवरी|जन\\.?|फ़रवरी|फरवरी|फ़र\\.?|मारà¥à¤š?|अपà¥à¤°à¥ˆà¤²|अपà¥à¤°à¥ˆ\\.?|मई?|जून?|जà¥à¤²à¤¾à¤ˆ|जà¥à¤²\\.?|अगसà¥à¤¤|अग\\.?|सितमà¥à¤¬à¤°|सितंबर|सित\\.?|अकà¥à¤Ÿà¥‚बर|अकà¥à¤Ÿà¥‚\\.?|नवमà¥à¤¬à¤°|नवंबर|नव\\.?|दिसमà¥à¤¬à¤°|दिसंबर|दिस\\.?)/i,\n monthsShortRegex: /^(जनवरी|जन\\.?|फ़रवरी|फरवरी|फ़र\\.?|मारà¥à¤š?|अपà¥à¤°à¥ˆà¤²|अपà¥à¤°à¥ˆ\\.?|मई?|जून?|जà¥à¤²à¤¾à¤ˆ|जà¥à¤²\\.?|अगसà¥à¤¤|अग\\.?|सितमà¥à¤¬à¤°|सितंबर|सित\\.?|अकà¥à¤Ÿà¥‚बर|अकà¥à¤Ÿà¥‚\\.?|नवमà¥à¤¬à¤°|नवंबर|नव\\.?|दिसमà¥à¤¬à¤°|दिसंबर|दिस\\.?)/i,\n monthsStrictRegex: /^(जनवरी?|फ़रवरी|फरवरी?|मारà¥à¤š?|अपà¥à¤°à¥ˆà¤²?|मई?|जून?|जà¥à¤²à¤¾à¤ˆ?|अगसà¥à¤¤?|सितमà¥à¤¬à¤°|सितंबर|सित?\\.?|अकà¥à¤Ÿà¥‚बर|अकà¥à¤Ÿà¥‚\\.?|नवमà¥à¤¬à¤°|नवंबर?|दिसमà¥à¤¬à¤°|दिसंबर?)/i,\n monthsShortStrictRegex: /^(जन\\.?|फ़र\\.?|मारà¥à¤š?|अपà¥à¤°à¥ˆ\\.?|मई?|जून?|जà¥à¤²\\.?|अग\\.?|सित\\.?|अकà¥à¤Ÿà¥‚\\.?|नव\\.?|दिस\\.?)/i,\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[कल] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[कल] LT',\n lastWeek: '[पिछले] dddd, LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s में',\n past: '%s पहले',\n s: 'कà¥à¤› ही कà¥à¤·à¤£',\n ss: '%d सेकंड',\n m: 'à¤à¤• मिनट',\n mm: '%d मिनट',\n h: 'à¤à¤• घंटा',\n hh: '%d घंटे',\n d: 'à¤à¤• दिन',\n dd: '%d दिन',\n M: 'à¤à¤• महीने',\n MM: '%d महीने',\n y: 'à¤à¤• वरà¥à¤·',\n yy: '%d वरà¥à¤·'\n },\n preparse: function preparse(string) {\n return string.replace(/[१२३४५६à¥à¥®à¥¯à¥¦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function postformat(string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Hindi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.\n meridiemParse: /रात|सà¥à¤¬à¤¹|दोपहर|शाम/,\n meridiemHour: function meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n\n if (meridiem === 'रात') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'सà¥à¤¬à¤¹') {\n return hour;\n } else if (meridiem === 'दोपहर') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'शाम') {\n return hour + 12;\n }\n },\n meridiem: function meridiem(hour, minute, isLower) {\n if (hour < 4) {\n return 'रात';\n } else if (hour < 10) {\n return 'सà¥à¤¬à¤¹';\n } else if (hour < 17) {\n return 'दोपहर';\n } else if (hour < 20) {\n return 'शाम';\n } else {\n return 'रात';\n }\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n\n }\n });\n return hi;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Croatian [hr]\n//! author : Bojan Marković : https://github.com/bmarkovic\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n\n return result;\n\n case 'm':\n return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n\n return result;\n\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jednog sata';\n\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n\n return result;\n\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n\n return result;\n\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n\n return result;\n\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n\n return result;\n }\n }\n\n var hr = moment.defineLocale('hr', {\n months: {\n format: 'sijeÄnja_veljaÄe_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split('_'),\n standalone: 'sijeÄanj_veljaÄa_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split('_')\n },\n monthsShort: 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split('_'),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_Äetvrtak_petak_subota'.split('_'),\n weekdaysShort: 'ned._pon._uto._sri._Äet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_Äe_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM YYYY',\n LLL: 'Do MMMM YYYY H:mm',\n LLLL: 'dddd, Do MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function nextWeek() {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n\n case 3:\n return '[u] [srijedu] [u] LT';\n\n case 6:\n return '[u] [subotu] [u] LT';\n\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[juÄer u] LT',\n lastWeek: function lastWeek() {\n switch (this.day()) {\n case 0:\n return '[proÅ¡lu] [nedjelju] [u] LT';\n\n case 3:\n return '[proÅ¡lu] [srijedu] [u] LT';\n\n case 6:\n return '[proÅ¡le] [subote] [u] LT';\n\n case 1:\n case 2:\n case 4:\n case 5:\n return '[proÅ¡li] dddd [u] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'par sekundi',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: 'dan',\n dd: translate,\n M: 'mjesec',\n MM: translate,\n y: 'godinu',\n yy: translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n }\n });\n return hr;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Hungarian [hu]\n//! author : Adam Brunner : https://github.com/adambrunner\n//! author : Peter Viszt : https://github.com/passatgt\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var weekEndings = 'vasárnap hétfÅ‘n kedden szerdán csütörtökön pénteken szombaton'.split(' ');\n\n function translate(number, withoutSuffix, key, isFuture) {\n var num = number;\n\n switch (key) {\n case 's':\n return isFuture || withoutSuffix ? 'néhány másodperc' : 'néhány másodperce';\n\n case 'ss':\n return num + (isFuture || withoutSuffix) ? ' másodperc' : ' másodperce';\n\n case 'm':\n return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce');\n\n case 'mm':\n return num + (isFuture || withoutSuffix ? ' perc' : ' perce');\n\n case 'h':\n return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája');\n\n case 'hh':\n return num + (isFuture || withoutSuffix ? ' óra' : ' órája');\n\n case 'd':\n return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja');\n\n case 'dd':\n return num + (isFuture || withoutSuffix ? ' nap' : ' napja');\n\n case 'M':\n return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n\n case 'MM':\n return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n\n case 'y':\n return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve');\n\n case 'yy':\n return num + (isFuture || withoutSuffix ? ' év' : ' éve');\n }\n\n return '';\n }\n\n function week(isFuture) {\n return (isFuture ? '' : '[múlt] ') + '[' + weekEndings[this.day()] + '] LT[-kor]';\n }\n\n var hu = moment.defineLocale('hu', {\n months: 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split('_'),\n monthsShort: 'jan._feb._márc._ápr._máj._jún._júl._aug._szept._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'vasárnap_hétfÅ‘_kedd_szerda_csütörtök_péntek_szombat'.split('_'),\n weekdaysShort: 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'),\n weekdaysMin: 'v_h_k_sze_cs_p_szo'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'YYYY.MM.DD.',\n LL: 'YYYY. MMMM D.',\n LLL: 'YYYY. MMMM D. H:mm',\n LLLL: 'YYYY. MMMM D., dddd H:mm'\n },\n meridiemParse: /de|du/i,\n isPM: function isPM(input) {\n return input.charAt(1).toLowerCase() === 'u';\n },\n meridiem: function meridiem(hours, minutes, isLower) {\n if (hours < 12) {\n return isLower === true ? 'de' : 'DE';\n } else {\n return isLower === true ? 'du' : 'DU';\n }\n },\n calendar: {\n sameDay: '[ma] LT[-kor]',\n nextDay: '[holnap] LT[-kor]',\n nextWeek: function nextWeek() {\n return week.call(this, true);\n },\n lastDay: '[tegnap] LT[-kor]',\n lastWeek: function lastWeek() {\n return week.call(this, false);\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s múlva',\n past: '%s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return hu;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Armenian [hy-am]\n//! author : Armendarabyan : https://github.com/armendarabyan\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var hyAm = moment.defineLocale('hy-am', {\n months: {\n format: 'Õ°Õ¸Ö‚Õ¶Õ¾Õ¡Ö€Õ«_ÖƒÕ¥Õ¿Ö€Õ¾Õ¡Ö€Õ«_Õ´Õ¡Ö€Õ¿Õ«_Õ¡ÕºÖ€Õ«Õ¬Õ«_Õ´Õ¡ÕµÕ«Õ½Õ«_Õ°Õ¸Ö‚Õ¶Õ«Õ½Õ«_Õ°Õ¸Ö‚Õ¬Õ«Õ½Õ«_Ö…Õ£Õ¸Õ½Õ¿Õ¸Õ½Õ«_Õ½Õ¥ÕºÕ¿Õ¥Õ´Õ¢Õ¥Ö€Õ«_Õ°Õ¸Õ¯Õ¿Õ¥Õ´Õ¢Õ¥Ö€Õ«_Õ¶Õ¸ÕµÕ¥Õ´Õ¢Õ¥Ö€Õ«_Õ¤Õ¥Õ¯Õ¿Õ¥Õ´Õ¢Õ¥Ö€Õ«'.split('_'),\n standalone: 'Õ°Õ¸Ö‚Õ¶Õ¾Õ¡Ö€_ÖƒÕ¥Õ¿Ö€Õ¾Õ¡Ö€_Õ´Õ¡Ö€Õ¿_Õ¡ÕºÖ€Õ«Õ¬_Õ´Õ¡ÕµÕ«Õ½_Õ°Õ¸Ö‚Õ¶Õ«Õ½_Õ°Õ¸Ö‚Õ¬Õ«Õ½_Ö…Õ£Õ¸Õ½Õ¿Õ¸Õ½_Õ½Õ¥ÕºÕ¿Õ¥Õ´Õ¢Õ¥Ö€_Õ°Õ¸Õ¯Õ¿Õ¥Õ´Õ¢Õ¥Ö€_Õ¶Õ¸ÕµÕ¥Õ´Õ¢Õ¥Ö€_Õ¤Õ¥Õ¯Õ¿Õ¥Õ´Õ¢Õ¥Ö€'.split('_')\n },\n monthsShort: 'Õ°Õ¶Õ¾_ÖƒÕ¿Ö€_Õ´Ö€Õ¿_Õ¡ÕºÖ€_Õ´ÕµÕ½_Õ°Õ¶Õ½_Õ°Õ¬Õ½_Ö…Õ£Õ½_Õ½ÕºÕ¿_Õ°Õ¯Õ¿_Õ¶Õ´Õ¢_Õ¤Õ¯Õ¿'.split('_'),\n weekdays: 'Õ¯Õ«Ö€Õ¡Õ¯Õ«_Õ¥Ö€Õ¯Õ¸Ö‚Õ·Õ¡Õ¢Õ©Õ«_Õ¥Ö€Õ¥Ö„Õ·Õ¡Õ¢Õ©Õ«_Õ¹Õ¸Ö€Õ¥Ö„Õ·Õ¡Õ¢Õ©Õ«_Õ°Õ«Õ¶Õ£Õ·Õ¡Õ¢Õ©Õ«_Õ¸Ö‚Ö€Õ¢Õ¡Õ©_Õ·Õ¡Õ¢Õ¡Õ©'.split('_'),\n weekdaysShort: 'Õ¯Ö€Õ¯_Õ¥Ö€Õ¯_Õ¥Ö€Ö„_Õ¹Ö€Ö„_Õ°Õ¶Õ£_Õ¸Ö‚Ö€Õ¢_Õ·Õ¢Õ©'.split('_'),\n weekdaysMin: 'Õ¯Ö€Õ¯_Õ¥Ö€Õ¯_Õ¥Ö€Ö„_Õ¹Ö€Ö„_Õ°Õ¶Õ£_Õ¸Ö‚Ö€Õ¢_Õ·Õ¢Õ©'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY Õ©.',\n LLL: 'D MMMM YYYY Õ©., HH:mm',\n LLLL: 'dddd, D MMMM YYYY Õ©., HH:mm'\n },\n calendar: {\n sameDay: '[Õ¡ÕµÕ½Ö…Ö€] LT',\n nextDay: '[Õ¾Õ¡Õ²Õ¨] LT',\n lastDay: '[Õ¥Ö€Õ¥Õ¯] LT',\n nextWeek: function nextWeek() {\n return 'dddd [Ö…Ö€Õ¨ ÕªÕ¡Õ´Õ¨] LT';\n },\n lastWeek: function lastWeek() {\n return '[Õ¡Õ¶ÖÕ¡Õ®] dddd [Ö…Ö€Õ¨ ÕªÕ¡Õ´Õ¨] LT';\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s Õ°Õ¥Õ¿Õ¸',\n past: '%s Õ¡Õ¼Õ¡Õ»',\n s: 'Õ´Õ« Ö„Õ¡Õ¶Õ« Õ¾Õ¡ÕµÖ€Õ¯ÕµÕ¡Õ¶',\n ss: '%d Õ¾Õ¡ÕµÖ€Õ¯ÕµÕ¡Õ¶',\n m: 'Ö€Õ¸ÕºÕ¥',\n mm: '%d Ö€Õ¸ÕºÕ¥',\n h: 'ÕªÕ¡Õ´',\n hh: '%d ÕªÕ¡Õ´',\n d: 'Ö…Ö€',\n dd: '%d Ö…Ö€',\n M: 'Õ¡Õ´Õ«Õ½',\n MM: '%d Õ¡Õ´Õ«Õ½',\n y: 'Õ¿Õ¡Ö€Õ«',\n yy: '%d Õ¿Õ¡Ö€Õ«'\n },\n meridiemParse: /Õ£Õ«Õ·Õ¥Ö€Õ¾Õ¡|Õ¡Õ¼Õ¡Õ¾Õ¸Õ¿Õ¾Õ¡|ÖÕ¥Ö€Õ¥Õ¯Õ¾Õ¡|Õ¥Ö€Õ¥Õ¯Õ¸ÕµÕ¡Õ¶/,\n isPM: function isPM(input) {\n return /^(ÖÕ¥Ö€Õ¥Õ¯Õ¾Õ¡|Õ¥Ö€Õ¥Õ¯Õ¸ÕµÕ¡Õ¶)$/.test(input);\n },\n meridiem: function meridiem(hour) {\n if (hour < 4) {\n return 'Õ£Õ«Õ·Õ¥Ö€Õ¾Õ¡';\n } else if (hour < 12) {\n return 'Õ¡Õ¼Õ¡Õ¾Õ¸Õ¿Õ¾Õ¡';\n } else if (hour < 17) {\n return 'ÖÕ¥Ö€Õ¥Õ¯Õ¾Õ¡';\n } else {\n return 'Õ¥Ö€Õ¥Õ¯Õ¸ÕµÕ¡Õ¶';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}|\\d{1,2}-(Õ«Õ¶|Ö€Õ¤)/,\n ordinal: function ordinal(number, period) {\n switch (period) {\n case 'DDD':\n case 'w':\n case 'W':\n case 'DDDo':\n if (number === 1) {\n return number + '-Õ«Õ¶';\n }\n\n return number + '-Ö€Õ¤';\n\n default:\n return number;\n }\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n }\n });\n return hyAm;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Indonesian [id]\n//! author : Mohammad Satrio Utomo : https://github.com/tyok\n//! reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var id = moment.defineLocale('id', {\n months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split('_'),\n monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),\n weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),\n weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm'\n },\n meridiemParse: /pagi|siang|sore|malam/,\n meridiemHour: function meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'siang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sore' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function meridiem(hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'siang';\n } else if (hours < 19) {\n return 'sore';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Besok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kemarin pukul] LT',\n lastWeek: 'dddd [lalu pukul] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lalu',\n s: 'beberapa detik',\n ss: '%d detik',\n m: 'semenit',\n mm: '%d menit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun'\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n\n }\n });\n return id;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Icelandic [is]\n//! author : Hinrik Örn Sigurðsson : https://github.com/hinrik\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n function plural(n) {\n if (n % 100 === 11) {\n return true;\n } else if (n % 10 === 1) {\n return false;\n }\n\n return true;\n }\n\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n\n switch (key) {\n case 's':\n return withoutSuffix || isFuture ? 'nokkrar sekúndur' : 'nokkrum sekúndum';\n\n case 'ss':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum');\n }\n\n return result + 'sekúnda';\n\n case 'm':\n return withoutSuffix ? 'mÃnúta' : 'mÃnútu';\n\n case 'mm':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'mÃnútur' : 'mÃnútum');\n } else if (withoutSuffix) {\n return result + 'mÃnúta';\n }\n\n return result + 'mÃnútu';\n\n case 'hh':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'klukkustundir' : 'klukkustundum');\n }\n\n return result + 'klukkustund';\n\n case 'd':\n if (withoutSuffix) {\n return 'dagur';\n }\n\n return isFuture ? 'dag' : 'degi';\n\n case 'dd':\n if (plural(number)) {\n if (withoutSuffix) {\n return result + 'dagar';\n }\n\n return result + (isFuture ? 'daga' : 'dögum');\n } else if (withoutSuffix) {\n return result + 'dagur';\n }\n\n return result + (isFuture ? 'dag' : 'degi');\n\n case 'M':\n if (withoutSuffix) {\n return 'mánuður';\n }\n\n return isFuture ? 'mánuð' : 'mánuði';\n\n case 'MM':\n if (plural(number)) {\n if (withoutSuffix) {\n return result + 'mánuðir';\n }\n\n return result + (isFuture ? 'mánuði' : 'mánuðum');\n } else if (withoutSuffix) {\n return result + 'mánuður';\n }\n\n return result + (isFuture ? 'mánuð' : 'mánuði');\n\n case 'y':\n return withoutSuffix || isFuture ? 'ár' : 'ári';\n\n case 'yy':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'ár' : 'árum');\n }\n\n return result + (withoutSuffix || isFuture ? 'ár' : 'ári');\n }\n }\n\n var is = moment.defineLocale('is', {\n months: 'janúar_febrúar_mars_aprÃl_maÃ_júnÃ_júlÃ_ágúst_september_október_nóvember_desember'.split('_'),\n monthsShort: 'jan_feb_mar_apr_maÃ_jún_júl_ágú_sep_okt_nóv_des'.split('_'),\n weekdays: 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split('_'),\n weekdaysShort: 'sun_mán_þri_mið_fim_fös_lau'.split('_'),\n weekdaysMin: 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] H:mm',\n LLLL: 'dddd, D. MMMM YYYY [kl.] H:mm'\n },\n calendar: {\n sameDay: '[à dag kl.] LT',\n nextDay: '[á morgun kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[à gær kl.] LT',\n lastWeek: '[sÃðasta] dddd [kl.] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'eftir %s',\n past: 'fyrir %s sÃðan',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: 'klukkustund',\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return is;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Italian [it]\n//! author : Lorenzo : https://github.com/aliem\n//! author: Mattia Larentis: https://github.com/nostalgiaz\n//! author: Marco : https://github.com/Manfre98\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var it = moment.defineLocale('it', {\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split('_'),\n monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split('_'),\n weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: function sameDay() {\n return '[Oggi a' + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") + ']LT';\n },\n nextDay: function nextDay() {\n return '[Domani a' + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") + ']LT';\n },\n nextWeek: function nextWeek() {\n return 'dddd [a' + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") + ']LT';\n },\n lastDay: function lastDay() {\n return '[Ieri a' + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") + ']LT';\n },\n lastWeek: function lastWeek() {\n switch (this.day()) {\n case 0:\n return '[La scorsa] dddd [a' + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") + ']LT';\n\n default:\n return '[Lo scorso] dddd [a' + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") + ']LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'tra %s',\n past: '%s fa',\n s: 'alcuni secondi',\n ss: '%d secondi',\n m: 'un minuto',\n mm: '%d minuti',\n h: \"un'ora\",\n hh: '%d ore',\n d: 'un giorno',\n dd: '%d giorni',\n w: 'una settimana',\n ww: '%d settimane',\n M: 'un mese',\n MM: '%d mesi',\n y: 'un anno',\n yy: '%d anni'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return it;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Italian (Switzerland) [it-ch]\n//! author : xfh : https://github.com/xfh\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var itCh = moment.defineLocale('it-ch', {\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split('_'),\n monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split('_'),\n weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Oggi alle] LT',\n nextDay: '[Domani alle] LT',\n nextWeek: 'dddd [alle] LT',\n lastDay: '[Ieri alle] LT',\n lastWeek: function lastWeek() {\n switch (this.day()) {\n case 0:\n return '[la scorsa] dddd [alle] LT';\n\n default:\n return '[lo scorso] dddd [alle] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: function future(s) {\n return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s;\n },\n past: '%s fa',\n s: 'alcuni secondi',\n ss: '%d secondi',\n m: 'un minuto',\n mm: '%d minuti',\n h: \"un'ora\",\n hh: '%d ore',\n d: 'un giorno',\n dd: '%d giorni',\n M: 'un mese',\n MM: '%d mesi',\n y: 'un anno',\n yy: '%d anni'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return itCh;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Japanese [ja]\n//! author : LI Long : https://github.com/baryon\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var ja = moment.defineLocale('ja', {\n eras: [{\n since: '2019-05-01',\n offset: 1,\n name: '令和',\n narrow: 'ã‹¿',\n abbr: 'R'\n }, {\n since: '1989-01-08',\n until: '2019-04-30',\n offset: 1,\n name: 'å¹³æˆ',\n narrow: 'ã»',\n abbr: 'H'\n }, {\n since: '1926-12-25',\n until: '1989-01-07',\n offset: 1,\n name: 'æ˜å’Œ',\n narrow: 'ã¼',\n abbr: 'S'\n }, {\n since: '1912-07-30',\n until: '1926-12-24',\n offset: 1,\n name: '大æ£',\n narrow: 'ã½',\n abbr: 'T'\n }, {\n since: '1873-01-01',\n until: '1912-07-29',\n offset: 6,\n name: '明治',\n narrow: 'ã¾',\n abbr: 'M'\n }, {\n since: '0001-01-01',\n until: '1873-12-31',\n offset: 1,\n name: '西暦',\n narrow: 'AD',\n abbr: 'AD'\n }, {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: '紀元å‰',\n narrow: 'BC',\n abbr: 'BC'\n }],\n eraYearOrdinalRegex: /(å…ƒ|\\d+)å¹´/,\n eraYearOrdinalParse: function eraYearOrdinalParse(input, match) {\n return match[1] === 'å…ƒ' ? 1 : parseInt(match[1] || input, 10);\n },\n months: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n weekdays: '日曜日_月曜日_ç«æ›œæ—¥_水曜日_木曜日_金曜日_土曜日'.split('_'),\n weekdaysShort: 'æ—¥_月_ç«_æ°´_木_金_土'.split('_'),\n weekdaysMin: 'æ—¥_月_ç«_æ°´_木_金_土'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYYå¹´M月Dæ—¥',\n LLL: 'YYYYå¹´M月Dæ—¥ HH:mm',\n LLLL: 'YYYYå¹´M月Dæ—¥ dddd HH:mm',\n l: 'YYYY/MM/DD',\n ll: 'YYYYå¹´M月Dæ—¥',\n lll: 'YYYYå¹´M月Dæ—¥ HH:mm',\n llll: 'YYYYå¹´M月Dæ—¥(ddd) HH:mm'\n },\n meridiemParse: /åˆå‰|åˆå¾Œ/i,\n isPM: function isPM(input) {\n return input === 'åˆå¾Œ';\n },\n meridiem: function meridiem(hour, minute, isLower) {\n if (hour < 12) {\n return 'åˆå‰';\n } else {\n return 'åˆå¾Œ';\n }\n },\n calendar: {\n sameDay: '[今日] LT',\n nextDay: '[明日] LT',\n nextWeek: function nextWeek(now) {\n if (now.week() !== this.week()) {\n return '[æ¥é€±]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n lastDay: '[昨日] LT',\n lastWeek: function lastWeek(now) {\n if (this.week() !== now.week()) {\n return '[先週]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n sameElse: 'L'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}æ—¥/,\n ordinal: function ordinal(number, period) {\n switch (period) {\n case 'y':\n return number === 1 ? '元年' : number + 'å¹´';\n\n case 'd':\n case 'D':\n case 'DDD':\n return number + 'æ—¥';\n\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%så‰',\n s: '数秒',\n ss: '%d秒',\n m: '1分',\n mm: '%d分',\n h: '1時間',\n hh: '%d時間',\n d: '1æ—¥',\n dd: '%dæ—¥',\n M: '1ヶ月',\n MM: '%dヶ月',\n y: '1å¹´',\n yy: '%då¹´'\n }\n });\n return ja;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Javanese [jv]\n//! author : Rony Lantip : https://github.com/lantip\n//! reference: http://jv.wikipedia.org/wiki/Basa_Jawa\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var jv = moment.defineLocale('jv', {\n months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split('_'),\n monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'),\n weekdays: 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'),\n weekdaysShort: 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'),\n weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm'\n },\n meridiemParse: /enjing|siyang|sonten|ndalu/,\n meridiemHour: function meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n\n if (meridiem === 'enjing') {\n return hour;\n } else if (meridiem === 'siyang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sonten' || meridiem === 'ndalu') {\n return hour + 12;\n }\n },\n meridiem: function meridiem(hours, minutes, isLower) {\n if (hours < 11) {\n return 'enjing';\n } else if (hours < 15) {\n return 'siyang';\n } else if (hours < 19) {\n return 'sonten';\n } else {\n return 'ndalu';\n }\n },\n calendar: {\n sameDay: '[Dinten puniko pukul] LT',\n nextDay: '[Mbenjang pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kala wingi pukul] LT',\n lastWeek: 'dddd [kepengker pukul] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'wonten ing %s',\n past: '%s ingkang kepengker',\n s: 'sawetawis detik',\n ss: '%d detik',\n m: 'setunggal menit',\n mm: '%d menit',\n h: 'setunggal jam',\n hh: '%d jam',\n d: 'sedinten',\n dd: '%d dinten',\n M: 'sewulan',\n MM: '%d wulan',\n y: 'setaun',\n yy: '%d taun'\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n }\n });\n return jv;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Georgian [ka]\n//! author : Irakli Janiashvili : https://github.com/IrakliJani\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var ka = moment.defineLocale('ka', {\n months: 'იáƒáƒœáƒ•áƒáƒ ი_თებერვáƒáƒšáƒ˜_მáƒáƒ ტი_áƒáƒžáƒ ილი_მáƒáƒ˜áƒ¡áƒ˜_ივნისი_ივლისი_áƒáƒ’ვისტáƒ_სექტემბერი_áƒáƒ¥áƒ¢áƒáƒ›áƒ‘ერი_ნáƒáƒ”მბერი_დეკემბერი'.split('_'),\n monthsShort: 'იáƒáƒœ_თებ_მáƒáƒ _áƒáƒžáƒ _მáƒáƒ˜_ივნ_ივლ_áƒáƒ’ვ_სექ_áƒáƒ¥áƒ¢_ნáƒáƒ”_დეკ'.split('_'),\n weekdays: {\n standalone: 'კვირáƒ_áƒáƒ შáƒáƒ‘áƒáƒ—ი_სáƒáƒ›áƒ¨áƒáƒ‘áƒáƒ—ი_áƒáƒ—ხშáƒáƒ‘áƒáƒ—ი_ხუთშáƒáƒ‘áƒáƒ—ი_პáƒáƒ áƒáƒ¡áƒ™áƒ”ვი_შáƒáƒ‘áƒáƒ—ი'.split('_'),\n format: 'კვირáƒáƒ¡_áƒáƒ შáƒáƒ‘áƒáƒ—ს_სáƒáƒ›áƒ¨áƒáƒ‘áƒáƒ—ს_áƒáƒ—ხშáƒáƒ‘áƒáƒ—ს_ხუთშáƒáƒ‘áƒáƒ—ს_პáƒáƒ áƒáƒ¡áƒ™áƒ”ვს_შáƒáƒ‘áƒáƒ—ს'.split('_'),\n isFormat: /(წინáƒ|შემდეგ)/\n },\n weekdaysShort: 'კვი_áƒáƒ შ_სáƒáƒ›_áƒáƒ—ხ_ხუთ_პáƒáƒ _შáƒáƒ‘'.split('_'),\n weekdaysMin: 'კვ_áƒáƒ _სáƒ_áƒáƒ—_ხუ_პáƒ_შáƒ'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[დღეს] LT[-ზე]',\n nextDay: '[ხვáƒáƒš] LT[-ზე]',\n lastDay: '[გუშინ] LT[-ზე]',\n nextWeek: '[შემდეგ] dddd LT[-ზე]',\n lastWeek: '[წინáƒ] dddd LT-ზე',\n sameElse: 'L'\n },\n relativeTime: {\n future: function future(s) {\n return s.replace(/(წáƒáƒ›|წუთ|სáƒáƒáƒ—|წელ|დღ|თვ)(ი|ე)/, function ($0, $1, $2) {\n return $2 === 'ი' ? $1 + 'ში' : $1 + $2 + 'ში';\n });\n },\n past: function past(s) {\n if (/(წáƒáƒ›áƒ˜|წუთი|სáƒáƒáƒ—ი|დღე|თვე)/.test(s)) {\n return s.replace(/(ი|ე)$/, 'ის წინ');\n }\n\n if (/წელი/.test(s)) {\n return s.replace(/წელი$/, 'წლის წინ');\n }\n\n return s;\n },\n s: 'რáƒáƒ›áƒ“ენიმე წáƒáƒ›áƒ˜',\n ss: '%d წáƒáƒ›áƒ˜',\n m: 'წუთი',\n mm: '%d წუთი',\n h: 'სáƒáƒáƒ—ი',\n hh: '%d სáƒáƒáƒ—ი',\n d: 'დღე',\n dd: '%d დღე',\n M: 'თვე',\n MM: '%d თვე',\n y: 'წელი',\n yy: '%d წელი'\n },\n dayOfMonthOrdinalParse: /0|1-ლი|მე-\\d{1,2}|\\d{1,2}-ე/,\n ordinal: function ordinal(number) {\n if (number === 0) {\n return number;\n }\n\n if (number === 1) {\n return number + '-ლი';\n }\n\n if (number < 20 || number <= 100 && number % 20 === 0 || number % 100 === 0) {\n return 'მე-' + number;\n }\n\n return number + '-ე';\n },\n week: {\n dow: 1,\n doy: 7\n }\n });\n return ka;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Kazakh [kk]\n//! authors : Nurlan Rakhimzhanov : https://github.com/nurlan\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var suffixes = {\n 0: '-ші',\n 1: '-ші',\n 2: '-ші',\n 3: '-ші',\n 4: '-ші',\n 5: '-ші',\n 6: '-шы',\n 7: '-ші',\n 8: '-ші',\n 9: '-шы',\n 10: '-шы',\n 20: '-шы',\n 30: '-шы',\n 40: '-шы',\n 50: '-ші',\n 60: '-шы',\n 70: '-ші',\n 80: '-ші',\n 90: '-шы',\n 100: '-ші'\n };\n var kk = moment.defineLocale('kk', {\n months: 'қаңтар_ақпан_наурыз_Ñәуір_мамыр_мауÑым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқÑан'.split('_'),\n monthsShort: 'қаң_ақп_нау_Ñәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'),\n weekdays: 'жекÑенбі_дүйÑенбі_ÑейÑенбі_ÑәрÑенбі_бейÑенбі_жұма_Ñенбі'.split('_'),\n weekdaysShort: 'жек_дүй_Ñей_Ñәр_бей_жұм_Ñен'.split('_'),\n weekdaysMin: 'жк_дй_Ñй_ÑÑ€_бй_жм_Ñн'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Бүгін Ñағат] LT',\n nextDay: '[Ертең Ñағат] LT',\n nextWeek: 'dddd [Ñағат] LT',\n lastDay: '[Кеше Ñағат] LT',\n lastWeek: '[Өткен аптаның] dddd [Ñағат] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s ішінде',\n past: '%s бұрын',\n s: 'бірнеше Ñекунд',\n ss: '%d Ñекунд',\n m: 'бір минут',\n mm: '%d минут',\n h: 'бір Ñағат',\n hh: '%d Ñағат',\n d: 'бір күн',\n dd: '%d күн',\n M: 'бір ай',\n MM: '%d ай',\n y: 'бір жыл',\n yy: '%d жыл'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ші|шы)/,\n ordinal: function ordinal(number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n }\n });\n return kk;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Cambodian [km]\n//! author : Kruy Vanna : https://github.com/kruyvanna\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var symbolMap = {\n 1: '១',\n 2: '២',\n 3: '៣',\n 4: '៤',\n 5: '៥',\n 6: '៦',\n 7: '៧',\n 8: '៨',\n 9: '៩',\n 0: '០'\n },\n numberMap = {\n '១': '1',\n '២': '2',\n '៣': '3',\n '៤': '4',\n '៥': '5',\n '៦': '6',\n '៧': '7',\n '៨': '8',\n '៩': '9',\n '០': '0'\n };\n var km = moment.defineLocale('km', {\n months: 'មករា_កុម្ភៈ_មីនា_មáŸážŸáž¶_ឧសភា_មិážáž»áž“ា_កក្កដា_សីហា_កញ្ញា_ážáž»áž›áž¶_វិច្ឆិកា_ធ្នូ'.split('_'),\n monthsShort: 'មករា_កុម្ភៈ_មីនា_មáŸážŸáž¶_ឧសភា_មិážáž»áž“ា_កក្កដា_សីហា_កញ្ញា_ážáž»áž›áž¶_វិច្ឆិកា_ធ្នូ'.split('_'),\n weekdays: 'អាទិážáŸ’áž™_áž…áŸáž“្ទ_អង្គារ_ពុធ_ព្រហស្បážáž·áŸ_សុក្រ_សៅរáŸ'.split('_'),\n weekdaysShort: 'អា_áž…_អ_áž–_ព្រ_សុ_ស'.split('_'),\n weekdaysMin: 'អា_áž…_អ_áž–_ព្រ_សុ_ស'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n meridiemParse: /ព្រឹក|ល្ងាច/,\n isPM: function isPM(input) {\n return input === 'ល្ងាច';\n },\n meridiem: function meridiem(hour, minute, isLower) {\n if (hour < 12) {\n return 'ព្រឹក';\n } else {\n return 'ល្ងាច';\n }\n },\n calendar: {\n sameDay: '[ážáŸ’ងៃនáŸáŸ‡ ម៉ោង] LT',\n nextDay: '[ស្អែក ម៉ោង] LT',\n nextWeek: 'dddd [ម៉ោង] LT',\n lastDay: '[ម្សិលមិញ ម៉ោង] LT',\n lastWeek: 'dddd [សប្ážáž¶áž áŸáž˜áž»áž“] [ម៉ោង] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%sទៀáž',\n past: '%sមុន',\n s: 'ប៉ុន្មានវិនាទី',\n ss: '%d វិនាទី',\n m: 'មួយនាទី',\n mm: '%d នាទី',\n h: 'មួយម៉ោង',\n hh: '%d ម៉ោង',\n d: 'មួយážáŸ’ងៃ',\n dd: '%d ážáŸ’ងៃ',\n M: 'មួយážáŸ‚',\n MM: '%d ážáŸ‚',\n y: 'មួយឆ្នាំ',\n yy: '%d ឆ្នាំ'\n },\n dayOfMonthOrdinalParse: /ទី\\d{1,2}/,\n ordinal: 'ទី%d',\n preparse: function preparse(string) {\n return string.replace(/[១២៣៤៥៦៧៨៩០]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function postformat(string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return km;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Kannada [kn]\n//! author : Rajeev Naik : https://github.com/rajeevnaikte\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var symbolMap = {\n 1: '೧',\n 2: '೨',\n 3: '೩',\n 4: '೪',\n 5: '೫',\n 6: '೬',\n 7: 'à³',\n 8: 'à³®',\n 9: '೯',\n 0: '೦'\n },\n numberMap = {\n '೧': '1',\n '೨': '2',\n '೩': '3',\n '೪': '4',\n '೫': '5',\n '೬': '6',\n 'à³': '7',\n 'à³®': '8',\n '೯': '9',\n '೦': '0'\n };\n var kn = moment.defineLocale('kn', {\n months: 'ಜನವರಿ_ಫೆಬà³à²°à²µà²°à²¿_ಮಾರà³à²šà³_à²à²ªà³à²°à²¿à²²à³_ಮೇ_ಜೂನà³_ಜà³à²²à³†à³–_ಆಗಸà³à²Ÿà³_ಸೆಪà³à²Ÿà³†à²‚ಬರà³_ಅಕà³à²Ÿà³†à³‚ೕಬರà³_ನವೆಂಬರà³_ಡಿಸೆಂಬರà³'.split('_'),\n monthsShort: 'ಜನ_ಫೆಬà³à²°_ಮಾರà³à²šà³_à²à²ªà³à²°à²¿à²²à³_ಮೇ_ಜೂನà³_ಜà³à²²à³†à³–_ಆಗಸà³à²Ÿà³_ಸೆಪà³à²Ÿà³†à²‚_ಅಕà³à²Ÿà³†à³‚ೕ_ನವೆಂ_ಡಿಸೆಂ'.split('_'),\n monthsParseExact: true,\n weekdays: 'à²à²¾à²¨à³à²µà²¾à²°_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬà³à²§à²µà²¾à²°_ಗà³à²°à³à²µà²¾à²°_ಶà³à²•à³à²°à²µà²¾à²°_ಶನಿವಾರ'.split('_'),\n weekdaysShort: 'à²à²¾à²¨à³_ಸೋಮ_ಮಂಗಳ_ಬà³à²§_ಗà³à²°à³_ಶà³à²•à³à²°_ಶನಿ'.split('_'),\n weekdaysMin: 'à²à²¾_ಸೋ_ಮಂ_ಬà³_ಗà³_ಶà³_ಶ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm'\n },\n calendar: {\n sameDay: '[ಇಂದà³] LT',\n nextDay: '[ನಾಳೆ] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ನಿನà³à²¨à³†] LT',\n lastWeek: '[ಕೊನೆಯ] dddd, LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s ನಂತರ',\n past: '%s ಹಿಂದೆ',\n s: 'ಕೆಲವೠಕà³à²·à²£à²—ಳà³',\n ss: '%d ಸೆಕೆಂಡà³à²—ಳà³',\n m: 'ಒಂದೠನಿಮಿಷ',\n mm: '%d ನಿಮಿಷ',\n h: 'ಒಂದೠಗಂಟೆ',\n hh: '%d ಗಂಟೆ',\n d: 'ಒಂದೠದಿನ',\n dd: '%d ದಿನ',\n M: 'ಒಂದೠತಿಂಗಳà³',\n MM: '%d ತಿಂಗಳà³',\n y: 'ಒಂದೠವರà³à²·',\n yy: '%d ವರà³à²·'\n },\n preparse: function preparse(string) {\n return string.replace(/[೧೨೩೪೫೬à³à³®à³¯à³¦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function postformat(string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /ರಾತà³à²°à²¿|ಬೆಳಿಗà³à²—ೆ|ಮಧà³à²¯à²¾à²¹à³à²¨|ಸಂಜೆ/,\n meridiemHour: function meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n\n if (meridiem === 'ರಾತà³à²°à²¿') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ಬೆಳಿಗà³à²—ೆ') {\n return hour;\n } else if (meridiem === 'ಮಧà³à²¯à²¾à²¹à³à²¨') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ಸಂಜೆ') {\n return hour + 12;\n }\n },\n meridiem: function meridiem(hour, minute, isLower) {\n if (hour < 4) {\n return 'ರಾತà³à²°à²¿';\n } else if (hour < 10) {\n return 'ಬೆಳಿಗà³à²—ೆ';\n } else if (hour < 17) {\n return 'ಮಧà³à²¯à²¾à²¹à³à²¨';\n } else if (hour < 20) {\n return 'ಸಂಜೆ';\n } else {\n return 'ರಾತà³à²°à²¿';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ನೇ)/,\n ordinal: function ordinal(number) {\n return number + 'ನೇ';\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n\n }\n });\n return kn;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Korean [ko]\n//! author : Kyungwook, Park : https://github.com/kyungw00k\n//! author : Jeeeyul Lee <jeeeyul@gmail.com>\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var ko = moment.defineLocale('ko', {\n months: '1ì›”_2ì›”_3ì›”_4ì›”_5ì›”_6ì›”_7ì›”_8ì›”_9ì›”_10ì›”_11ì›”_12ì›”'.split('_'),\n monthsShort: '1ì›”_2ì›”_3ì›”_4ì›”_5ì›”_6ì›”_7ì›”_8ì›”_9ì›”_10ì›”_11ì›”_12ì›”'.split('_'),\n weekdays: 'ì¼ìš”ì¼_월요ì¼_화요ì¼_수요ì¼_목요ì¼_금요ì¼_í† ìš”ì¼'.split('_'),\n weekdaysShort: 'ì¼_ì›”_í™”_수_목_금_í† '.split('_'),\n weekdaysMin: 'ì¼_ì›”_í™”_수_목_금_í† '.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'YYYY.MM.DD.',\n LL: 'YYYYë…„ MMMM Dì¼',\n LLL: 'YYYYë…„ MMMM Dì¼ A h:mm',\n LLLL: 'YYYYë…„ MMMM Dì¼ dddd A h:mm',\n l: 'YYYY.MM.DD.',\n ll: 'YYYYë…„ MMMM Dì¼',\n lll: 'YYYYë…„ MMMM Dì¼ A h:mm',\n llll: 'YYYYë…„ MMMM Dì¼ dddd A h:mm'\n },\n calendar: {\n sameDay: '오늘 LT',\n nextDay: 'ë‚´ì¼ LT',\n nextWeek: 'dddd LT',\n lastDay: 'ì–´ì œ LT',\n lastWeek: '지난주 dddd LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s 후',\n past: '%s ì „',\n s: '몇 ì´ˆ',\n ss: '%dì´ˆ',\n m: '1분',\n mm: '%d분',\n h: 'í•œ 시간',\n hh: '%d시간',\n d: '하루',\n dd: '%dì¼',\n M: 'í•œ 달',\n MM: '%d달',\n y: 'ì¼ ë…„',\n yy: '%dë…„'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ì¼|ì›”|주)/,\n ordinal: function ordinal(number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + 'ì¼';\n\n case 'M':\n return number + 'ì›”';\n\n case 'w':\n case 'W':\n return number + '주';\n\n default:\n return number;\n }\n },\n meridiemParse: /ì˜¤ì „|오후/,\n isPM: function isPM(token) {\n return token === '오후';\n },\n meridiem: function meridiem(hour, minute, isUpper) {\n return hour < 12 ? 'ì˜¤ì „' : '오후';\n }\n });\n return ko;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Kurdish [ku]\n//! author : Shahram Mebashar : https://github.com/ShahramMebashar\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var symbolMap = {\n 1: 'Ù¡',\n 2: 'Ù¢',\n 3: 'Ù£',\n 4: 'Ù¤',\n 5: 'Ù¥',\n 6: 'Ù¦',\n 7: 'Ù§',\n 8: 'Ù¨',\n 9: 'Ù©',\n 0: 'Ù '\n },\n numberMap = {\n 'Ù¡': '1',\n 'Ù¢': '2',\n 'Ù£': '3',\n 'Ù¤': '4',\n 'Ù¥': '5',\n 'Ù¦': '6',\n 'Ù§': '7',\n 'Ù¨': '8',\n 'Ù©': '9',\n 'Ù ': '0'\n },\n months = ['کانونی دووەم', 'شوبات', 'ئازار', 'نیسان', 'ئایار', 'Øوزەیران', 'تەمموز', 'ئاب', 'ئەیلوول', 'تشرینی یەكەم', 'تشرینی دووەم', 'كانونی یەکەم'];\n var ku = moment.defineLocale('ku', {\n months: months,\n monthsShort: months,\n weekdays: 'یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌'.split('_'),\n weekdaysShort: 'یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌'.split('_'),\n weekdaysMin: 'ÛŒ_د_س_Ú†_Ù¾_Ù‡_Ø´'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n meridiemParse: /ئێواره‌|به‌یانی/,\n isPM: function isPM(input) {\n return /ئێواره‌/.test(input);\n },\n meridiem: function meridiem(hour, minute, isLower) {\n if (hour < 12) {\n return 'به‌یانی';\n } else {\n return 'ئێواره‌';\n }\n },\n calendar: {\n sameDay: '[ئه‌مرۆ كاتژمێر] LT',\n nextDay: '[به‌یانی كاتژمێر] LT',\n nextWeek: 'dddd [كاتژمێر] LT',\n lastDay: '[دوێنێ كاتژمێر] LT',\n lastWeek: 'dddd [كاتژمێر] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'له‌ %s',\n past: '%s',\n s: 'چه‌ند چركه‌یه‌ك',\n ss: 'چركه‌ %d',\n m: 'یه‌ك خوله‌ك',\n mm: '%d خوله‌ك',\n h: 'یه‌ك كاتژمێر',\n hh: '%d كاتژمێر',\n d: 'یه‌ك Ú•Û†Ú˜',\n dd: '%d Ú•Û†Ú˜',\n M: 'یه‌ك مانگ',\n MM: '%d مانگ',\n y: 'یه‌ك ساڵ',\n yy: '%d ساڵ'\n },\n preparse: function preparse(string) {\n return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n }).replace(/ØŒ/g, ',');\n },\n postformat: function postformat(string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n }).replace(/,/g, 'ØŒ');\n },\n week: {\n dow: 6,\n // Saturday is the first day of the week.\n doy: 12 // The week that contains Jan 12th is the first week of the year.\n\n }\n });\n return ku;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Kyrgyz [ky]\n//! author : Chyngyz Arystan uulu : https://github.com/chyngyz\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var suffixes = {\n 0: '-чү',\n 1: '-чи',\n 2: '-чи',\n 3: '-чү',\n 4: '-чү',\n 5: '-чи',\n 6: '-чы',\n 7: '-чи',\n 8: '-чи',\n 9: '-чу',\n 10: '-чу',\n 20: '-чы',\n 30: '-чу',\n 40: '-чы',\n 50: '-чү',\n 60: '-чы',\n 70: '-чи',\n 80: '-чи',\n 90: '-чу',\n 100: '-чү'\n };\n var ky = moment.defineLocale('ky', {\n months: 'Ñнварь_февраль_март_апрель_май_июнь_июль_авгуÑÑ‚_ÑентÑбрь_октÑбрь_ноÑбрь_декабрь'.split('_'),\n monthsShort: 'Ñнв_фев_март_апр_май_июнь_июль_авг_Ñен_окт_ноÑ_дек'.split('_'),\n weekdays: 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split('_'),\n weekdaysShort: 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'),\n weekdaysMin: 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Бүгүн Ñаат] LT',\n nextDay: '[Ðртең Ñаат] LT',\n nextWeek: 'dddd [Ñаат] LT',\n lastDay: '[КечÑÑ Ñаат] LT',\n lastWeek: '[Өткөн аптанын] dddd [күнү] [Ñаат] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s ичинде',\n past: '%s мурун',\n s: 'бирнече Ñекунд',\n ss: '%d Ñекунд',\n m: 'бир мүнөт',\n mm: '%d мүнөт',\n h: 'бир Ñаат',\n hh: '%d Ñаат',\n d: 'бир күн',\n dd: '%d күн',\n M: 'бир ай',\n MM: '%d ай',\n y: 'бир жыл',\n yy: '%d жыл'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(чи|чы|чү|чу)/,\n ordinal: function ordinal(number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n }\n });\n return ky;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Luxembourgish [lb]\n//! author : mweimerskirch : https://github.com/mweimerskirch\n//! author : David Raison : https://github.com/kwisatz\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eng Minutt', 'enger Minutt'],\n h: ['eng Stonn', 'enger Stonn'],\n d: ['een Dag', 'engem Dag'],\n M: ['ee Mount', 'engem Mount'],\n y: ['ee Joer', 'engem Joer']\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n function processFutureTime(string) {\n var number = string.substr(0, string.indexOf(' '));\n\n if (eifelerRegelAppliesToNumber(number)) {\n return 'a ' + string;\n }\n\n return 'an ' + string;\n }\n\n function processPastTime(string) {\n var number = string.substr(0, string.indexOf(' '));\n\n if (eifelerRegelAppliesToNumber(number)) {\n return 'viru ' + string;\n }\n\n return 'virun ' + string;\n }\n /**\n * Returns true if the word before the given number loses the '-n' ending.\n * e.g. 'an 10 Deeg' but 'a 5 Deeg'\n *\n * @param number {integer}\n * @returns {boolean}\n */\n\n\n function eifelerRegelAppliesToNumber(number) {\n number = parseInt(number, 10);\n\n if (isNaN(number)) {\n return false;\n }\n\n if (number < 0) {\n // Negative Number --> always true\n return true;\n } else if (number < 10) {\n // Only 1 digit\n if (4 <= number && number <= 7) {\n return true;\n }\n\n return false;\n } else if (number < 100) {\n // 2 digits\n var lastDigit = number % 10,\n firstDigit = number / 10;\n\n if (lastDigit === 0) {\n return eifelerRegelAppliesToNumber(firstDigit);\n }\n\n return eifelerRegelAppliesToNumber(lastDigit);\n } else if (number < 10000) {\n // 3 or 4 digits --> recursively check first digit\n while (number >= 10) {\n number = number / 10;\n }\n\n return eifelerRegelAppliesToNumber(number);\n } else {\n // Anything larger than 4 digits: recursively check first n-3 digits\n number = number / 1000;\n return eifelerRegelAppliesToNumber(number);\n }\n }\n\n var lb = moment.defineLocale('lb', {\n months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),\n monthsShort: 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays: 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split('_'),\n weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm [Auer]',\n LTS: 'H:mm:ss [Auer]',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm [Auer]',\n LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]'\n },\n calendar: {\n sameDay: '[Haut um] LT',\n sameElse: 'L',\n nextDay: '[Muer um] LT',\n nextWeek: 'dddd [um] LT',\n lastDay: '[Gëschter um] LT',\n lastWeek: function lastWeek() {\n // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule\n switch (this.day()) {\n case 2:\n case 4:\n return '[Leschten] dddd [um] LT';\n\n default:\n return '[Leschte] dddd [um] LT';\n }\n }\n },\n relativeTime: {\n future: processFutureTime,\n past: processPastTime,\n s: 'e puer Sekonnen',\n ss: '%d Sekonnen',\n m: processRelativeTime,\n mm: '%d Minutten',\n h: processRelativeTime,\n hh: '%d Stonnen',\n d: processRelativeTime,\n dd: '%d Deeg',\n M: processRelativeTime,\n MM: '%d Méint',\n y: processRelativeTime,\n yy: '%d Joer'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return lb;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Lao [lo]\n//! author : Ryan Hart : https://github.com/ryanhart2\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var lo = moment.defineLocale('lo', {\n months: 'ມັງàºàºàº™_àºàº¸àº¡àºžàº²_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_àºà»àº¥àº°àºàº»àº”_ສິງຫາ_àºàº±àº™àºàº²_ຕຸລາ_ພະຈິàº_ທັນວາ'.split('_'),\n monthsShort: 'ມັງàºàºàº™_àºàº¸àº¡àºžàº²_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_àºà»àº¥àº°àºàº»àº”_ສິງຫາ_àºàº±àº™àºàº²_ຕຸລາ_ພະຈິàº_ທັນວາ'.split('_'),\n weekdays: 'àºàº²àº—ິດ_ຈັນ_àºàº±àº‡àº„ານ_ພຸດ_ພະຫັດ_ສຸàº_ເສົາ'.split('_'),\n weekdaysShort: 'ທິດ_ຈັນ_àºàº±àº‡àº„ານ_ພຸດ_ພະຫັດ_ສຸàº_ເສົາ'.split('_'),\n weekdaysMin: 'ທ_ຈ_àºàº„_ພ_ພຫ_ສàº_ສ'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'ວັນdddd D MMMM YYYY HH:mm'\n },\n meridiemParse: /ຕàºàº™à»€àºŠàº»à»‰àº²|ຕàºàº™à»àº¥àº‡/,\n isPM: function isPM(input) {\n return input === 'ຕàºàº™à»àº¥àº‡';\n },\n meridiem: function meridiem(hour, minute, isLower) {\n if (hour < 12) {\n return 'ຕàºàº™à»€àºŠàº»à»‰àº²';\n } else {\n return 'ຕàºàº™à»àº¥àº‡';\n }\n },\n calendar: {\n sameDay: '[ມື້ນີ້ເວລາ] LT',\n nextDay: '[ມື້àºàº·à»ˆàº™à»€àº§àº¥àº²] LT',\n nextWeek: '[ວັນ]dddd[ໜ້າເວລາ] LT',\n lastDay: '[ມື້ວານນີ້ເວລາ] LT',\n lastWeek: '[ວັນ]dddd[à»àº¥à»‰àº§àº™àºµà»‰à»€àº§àº¥àº²] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'àºàºµàº %s',\n past: '%sຜ່ານມາ',\n s: 'ບà»à»ˆà»€àº—ົ່າໃດວິນາທີ',\n ss: '%d ວິນາທີ',\n m: '1 ນາທີ',\n mm: '%d ນາທີ',\n h: '1 ຊົ່ວໂມງ',\n hh: '%d ຊົ່ວໂມງ',\n d: '1 ມື້',\n dd: '%d ມື້',\n M: '1 ເດືàºàº™',\n MM: '%d ເດືàºàº™',\n y: '1 ປີ',\n yy: '%d ປີ'\n },\n dayOfMonthOrdinalParse: /(ທີ່)\\d{1,2}/,\n ordinal: function ordinal(number) {\n return 'ທີ່' + number;\n }\n });\n return lo;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Lithuanian [lt]\n//! author : Mindaugas MozÅ«ras : https://github.com/mmozuras\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var units = {\n ss: 'sekundÄ—_sekundžių_sekundes',\n m: 'minutÄ—_minutÄ—s_minutÄ™',\n mm: 'minutÄ—s_minuÄių_minutes',\n h: 'valanda_valandos_valandÄ…',\n hh: 'valandos_valandų_valandas',\n d: 'diena_dienos_dienÄ…',\n dd: 'dienos_dienų_dienas',\n M: 'mÄ—nuo_mÄ—nesio_mÄ—nesį',\n MM: 'mÄ—nesiai_mÄ—nesių_mÄ—nesius',\n y: 'metai_metų_metus',\n yy: 'metai_metų_metus'\n };\n\n function translateSeconds(number, withoutSuffix, key, isFuture) {\n if (withoutSuffix) {\n return 'kelios sekundÄ—s';\n } else {\n return isFuture ? 'kelių sekundžių' : 'kelias sekundes';\n }\n }\n\n function translateSingular(number, withoutSuffix, key, isFuture) {\n return withoutSuffix ? forms(key)[0] : isFuture ? forms(key)[1] : forms(key)[2];\n }\n\n function special(number) {\n return number % 10 === 0 || number > 10 && number < 20;\n }\n\n function forms(key) {\n return units[key].split('_');\n }\n\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n\n if (number === 1) {\n return result + translateSingular(number, withoutSuffix, key[0], isFuture);\n } else if (withoutSuffix) {\n return result + (special(number) ? forms(key)[1] : forms(key)[0]);\n } else {\n if (isFuture) {\n return result + forms(key)[1];\n } else {\n return result + (special(number) ? forms(key)[1] : forms(key)[2]);\n }\n }\n }\n\n var lt = moment.defineLocale('lt', {\n months: {\n format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjÅ«Äio_rugsÄ—jo_spalio_lapkriÄio_gruodžio'.split('_'),\n standalone: 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjÅ«tis_rugsÄ—jis_spalis_lapkritis_gruodis'.split('_'),\n isFormat: /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?|MMMM?(\\[[^\\[\\]]*\\]|\\s)+D[oD]?/\n },\n monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'),\n weekdays: {\n format: 'sekmadienį_pirmadienį_antradienį_treÄiadienį_ketvirtadienį_penktadienį_Å¡eÅ¡tadienį'.split('_'),\n standalone: 'sekmadienis_pirmadienis_antradienis_treÄiadienis_ketvirtadienis_penktadienis_Å¡eÅ¡tadienis'.split('_'),\n isFormat: /dddd HH:mm/\n },\n weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_Å eÅ¡'.split('_'),\n weekdaysMin: 'S_P_A_T_K_Pn_Å '.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY [m.] MMMM D [d.]',\n LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]',\n l: 'YYYY-MM-DD',\n ll: 'YYYY [m.] MMMM D [d.]',\n lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]'\n },\n calendar: {\n sameDay: '[Å iandien] LT',\n nextDay: '[Rytoj] LT',\n nextWeek: 'dddd LT',\n lastDay: '[Vakar] LT',\n lastWeek: '[PraÄ—jusį] dddd LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'po %s',\n past: 'prieÅ¡ %s',\n s: translateSeconds,\n ss: translate,\n m: translateSingular,\n mm: translate,\n h: translateSingular,\n hh: translate,\n d: translateSingular,\n dd: translate,\n M: translateSingular,\n MM: translate,\n y: translateSingular,\n yy: translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-oji/,\n ordinal: function ordinal(number) {\n return number + '-oji';\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return lt;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Latvian [lv]\n//! author : Kristaps Karlsons : https://github.com/skakri\n//! author : JÄnis Elmeris : https://github.com/JanisE\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var units = {\n ss: 'sekundes_sekundÄ“m_sekunde_sekundes'.split('_'),\n m: 'minÅ«tes_minÅ«tÄ“m_minÅ«te_minÅ«tes'.split('_'),\n mm: 'minÅ«tes_minÅ«tÄ“m_minÅ«te_minÅ«tes'.split('_'),\n h: 'stundas_stundÄm_stunda_stundas'.split('_'),\n hh: 'stundas_stundÄm_stunda_stundas'.split('_'),\n d: 'dienas_dienÄm_diena_dienas'.split('_'),\n dd: 'dienas_dienÄm_diena_dienas'.split('_'),\n M: 'mÄ“neÅ¡a_mÄ“neÅ¡iem_mÄ“nesis_mÄ“neÅ¡i'.split('_'),\n MM: 'mÄ“neÅ¡a_mÄ“neÅ¡iem_mÄ“nesis_mÄ“neÅ¡i'.split('_'),\n y: 'gada_gadiem_gads_gadi'.split('_'),\n yy: 'gada_gadiem_gads_gadi'.split('_')\n };\n /**\n * @param withoutSuffix boolean true = a length of time; false = before/after a period of time.\n */\n\n function format(forms, number, withoutSuffix) {\n if (withoutSuffix) {\n // E.g. \"21 minÅ«te\", \"3 minÅ«tes\".\n return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3];\n } else {\n // E.g. \"21 minÅ«tes\" as in \"pÄ“c 21 minÅ«tes\".\n // E.g. \"3 minÅ«tÄ“m\" as in \"pÄ“c 3 minÅ«tÄ“m\".\n return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1];\n }\n }\n\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n return number + ' ' + format(units[key], number, withoutSuffix);\n }\n\n function relativeTimeWithSingular(number, withoutSuffix, key) {\n return format(units[key], number, withoutSuffix);\n }\n\n function relativeSeconds(number, withoutSuffix) {\n return withoutSuffix ? 'dažas sekundes' : 'dažÄm sekundÄ“m';\n }\n\n var lv = moment.defineLocale('lv', {\n months: 'janvÄris_februÄris_marts_aprÄ«lis_maijs_jÅ«nijs_jÅ«lijs_augusts_septembris_oktobris_novembris_decembris'.split('_'),\n monthsShort: 'jan_feb_mar_apr_mai_jÅ«n_jÅ«l_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'svÄ“tdiena_pirmdiena_otrdiena_treÅ¡diena_ceturtdiena_piektdiena_sestdiena'.split('_'),\n weekdaysShort: 'Sv_P_O_T_C_Pk_S'.split('_'),\n weekdaysMin: 'Sv_P_O_T_C_Pk_S'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY.',\n LL: 'YYYY. [gada] D. MMMM',\n LLL: 'YYYY. [gada] D. MMMM, HH:mm',\n LLLL: 'YYYY. [gada] D. MMMM, dddd, HH:mm'\n },\n calendar: {\n sameDay: '[Å odien pulksten] LT',\n nextDay: '[RÄ«t pulksten] LT',\n nextWeek: 'dddd [pulksten] LT',\n lastDay: '[Vakar pulksten] LT',\n lastWeek: '[PagÄjuÅ¡Ä] dddd [pulksten] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'pÄ“c %s',\n past: 'pirms %s',\n s: relativeSeconds,\n ss: relativeTimeWithPlural,\n m: relativeTimeWithSingular,\n mm: relativeTimeWithPlural,\n h: relativeTimeWithSingular,\n hh: relativeTimeWithPlural,\n d: relativeTimeWithSingular,\n dd: relativeTimeWithPlural,\n M: relativeTimeWithSingular,\n MM: relativeTimeWithPlural,\n y: relativeTimeWithSingular,\n yy: relativeTimeWithPlural\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return lv;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Montenegrin [me]\n//! author : Miodrag NikaÄ <miodrag@restartit.me> : https://github.com/miodragnikac\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['sekund', 'sekunda', 'sekundi'],\n m: ['jedan minut', 'jednog minuta'],\n mm: ['minut', 'minuta', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n dd: ['dan', 'dana', 'dana'],\n MM: ['mjesec', 'mjeseca', 'mjeseci'],\n yy: ['godina', 'godine', 'godina']\n },\n correctGrammaticalCase: function correctGrammaticalCase(number, wordKey) {\n return number === 1 ? wordKey[0] : number >= 2 && number <= 4 ? wordKey[1] : wordKey[2];\n },\n translate: function translate(number, withoutSuffix, key) {\n var wordKey = translator.words[key];\n\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return number + ' ' + translator.correctGrammaticalCase(number, wordKey);\n }\n }\n };\n var me = moment.defineLocale('me', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split('_'),\n monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_Äetvrtak_petak_subota'.split('_'),\n weekdaysShort: 'ned._pon._uto._sri._Äet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_Äe_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sjutra u] LT',\n nextWeek: function nextWeek() {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n\n case 3:\n return '[u] [srijedu] [u] LT';\n\n case 6:\n return '[u] [subotu] [u] LT';\n\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[juÄe u] LT',\n lastWeek: function lastWeek() {\n var lastWeekDays = ['[proÅ¡le] [nedjelje] [u] LT', '[proÅ¡log] [ponedjeljka] [u] LT', '[proÅ¡log] [utorka] [u] LT', '[proÅ¡le] [srijede] [u] LT', '[proÅ¡log] [Äetvrtka] [u] LT', '[proÅ¡log] [petka] [u] LT', '[proÅ¡le] [subote] [u] LT'];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'nekoliko sekundi',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: 'dan',\n dd: translator.translate,\n M: 'mjesec',\n MM: translator.translate,\n y: 'godinu',\n yy: translator.translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n }\n });\n return me;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Maori [mi]\n//! author : John Corrigan <robbiecloset@gmail.com> : https://github.com/johnideal\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var mi = moment.defineLocale('mi', {\n months: 'Kohi-tÄte_Hui-tanguru_PoutÅ«-te-rangi_Paenga-whÄwhÄ_Haratua_Pipiri_HÅngoingoi_Here-turi-kÅkÄ_Mahuru_Whiringa-Ä-nuku_Whiringa-Ä-rangi_Hakihea'.split('_'),\n monthsShort: 'Kohi_Hui_Pou_Pae_Hara_Pipi_HÅngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split('_'),\n monthsRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsShortRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsShortStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,2}/i,\n weekdays: 'RÄtapu_Mane_TÅ«rei_Wenerei_TÄite_Paraire_HÄtarei'.split('_'),\n weekdaysShort: 'Ta_Ma_TÅ«_We_TÄi_Pa_HÄ'.split('_'),\n weekdaysMin: 'Ta_Ma_TÅ«_We_TÄi_Pa_HÄ'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [i] HH:mm',\n LLLL: 'dddd, D MMMM YYYY [i] HH:mm'\n },\n calendar: {\n sameDay: '[i teie mahana, i] LT',\n nextDay: '[apopo i] LT',\n nextWeek: 'dddd [i] LT',\n lastDay: '[inanahi i] LT',\n lastWeek: 'dddd [whakamutunga i] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'i roto i %s',\n past: '%s i mua',\n s: 'te hÄ“kona ruarua',\n ss: '%d hÄ“kona',\n m: 'he meneti',\n mm: '%d meneti',\n h: 'te haora',\n hh: '%d haora',\n d: 'he ra',\n dd: '%d ra',\n M: 'he marama',\n MM: '%d marama',\n y: 'he tau',\n yy: '%d tau'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return mi;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Macedonian [mk]\n//! author : Borislav Mickov : https://github.com/B0k0\n//! author : Sashko Todorov : https://github.com/bkyceh\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var mk = moment.defineLocale('mk', {\n months: 'јануари_февруари_март_април_мај_јуни_јули_авгуÑÑ‚_Ñептември_октомври_ноември_декември'.split('_'),\n monthsShort: 'јан_фев_мар_апр_мај_јун_јул_авг_Ñеп_окт_ное_дек'.split('_'),\n weekdays: 'недела_понеделник_вторник_Ñреда_четврток_петок_Ñабота'.split('_'),\n weekdaysShort: 'нед_пон_вто_Ñре_чет_пет_Ñаб'.split('_'),\n weekdaysMin: 'нe_пo_вт_ÑÑ€_че_пе_Ña'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[Ð”ÐµÐ½ÐµÑ Ð²Ð¾] LT',\n nextDay: '[Утре во] LT',\n nextWeek: '[Во] dddd [во] LT',\n lastDay: '[Вчера во] LT',\n lastWeek: function lastWeek() {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[Изминатата] dddd [во] LT';\n\n case 1:\n case 2:\n case 4:\n case 5:\n return '[Изминатиот] dddd [во] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'за %s',\n past: 'пред %s',\n s: 'неколку Ñекунди',\n ss: '%d Ñекунди',\n m: 'една минута',\n mm: '%d минути',\n h: 'еден чаÑ',\n hh: '%d чаÑа',\n d: 'еден ден',\n dd: '%d дена',\n M: 'еден меÑец',\n MM: '%d меÑеци',\n y: 'една година',\n yy: '%d години'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal: function ordinal(number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n }\n });\n return mk;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Malayalam [ml]\n//! author : Floyd Pink : https://github.com/floydpink\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var ml = moment.defineLocale('ml', {\n months: 'ജനàµà´µà´°à´¿_ഫെബàµà´°àµà´µà´°à´¿_മാർചàµà´šàµ_à´à´ªàµà´°à´¿àµ½_മേയàµ_ജൂൺ_ജൂലൈ_à´“à´—à´¸àµà´±àµà´±àµ_സെപàµà´±àµà´±à´‚ബർ_à´’à´•àµà´Ÿàµ‹à´¬àµ¼_നവംബർ_ഡിസംബർ'.split('_'),\n monthsShort: 'ജനàµ._ഫെബàµà´°àµ._മാർ._à´à´ªàµà´°à´¿._മേയàµ_ജൂൺ_ജൂലൈ._à´“à´—._സെപàµà´±àµà´±._à´’à´•àµà´Ÿàµ‹._നവം._ഡിസം.'.split('_'),\n monthsParseExact: true,\n weekdays: 'ഞായറാഴàµà´š_തിങàµà´•à´³à´¾à´´àµà´š_ചൊവàµà´µà´¾à´´àµà´š_à´¬àµà´§à´¨à´¾à´´àµà´š_à´µàµà´¯à´¾à´´à´¾à´´àµà´š_വെളàµà´³à´¿à´¯à´¾à´´àµà´š_ശനിയാഴàµà´š'.split('_'),\n weekdaysShort: 'ഞായർ_തിങàµà´•àµ¾_ചൊവàµà´µ_à´¬àµà´§àµ»_à´µàµà´¯à´¾à´´à´‚_വെളàµà´³à´¿_ശനി'.split('_'),\n weekdaysMin: 'à´žà´¾_തി_ചൊ_à´¬àµ_à´µàµà´¯à´¾_വെ_à´¶'.split('_'),\n longDateFormat: {\n LT: 'A h:mm -à´¨àµ',\n LTS: 'A h:mm:ss -à´¨àµ',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm -à´¨àµ',\n LLLL: 'dddd, D MMMM YYYY, A h:mm -à´¨àµ'\n },\n calendar: {\n sameDay: '[ഇനàµà´¨àµ] LT',\n nextDay: '[നാളെ] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ഇനàµà´¨à´²àµ†] LT',\n lastWeek: '[à´•à´´à´¿à´žàµà´ž] dddd, LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s à´•à´´à´¿à´žàµà´žàµ',\n past: '%s à´®àµàµ»à´ªàµ',\n s: 'അൽപ നിമിഷങàµà´™àµ¾',\n ss: '%d സെകàµà´•àµ»à´¡àµ',\n m: 'ഒരൠമിനിറàµà´±àµ',\n mm: '%d മിനിറàµà´±àµ',\n h: 'ഒരൠമണികàµà´•àµ‚ർ',\n hh: '%d മണികàµà´•àµ‚ർ',\n d: 'ഒരൠദിവസം',\n dd: '%d ദിവസം',\n M: 'ഒരൠമാസം',\n MM: '%d മാസം',\n y: 'ഒരൠവർഷം',\n yy: '%d വർഷം'\n },\n meridiemParse: /രാതàµà´°à´¿|രാവിലെ|ഉചàµà´š à´•à´´à´¿à´žàµà´žàµ|വൈകàµà´¨àµà´¨àµ‡à´°à´‚|രാതàµà´°à´¿/i,\n meridiemHour: function meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n\n if (meridiem === 'രാതàµà´°à´¿' && hour >= 4 || meridiem === 'ഉചàµà´š à´•à´´à´¿à´žàµà´žàµ' || meridiem === 'വൈകàµà´¨àµà´¨àµ‡à´°à´‚') {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function meridiem(hour, minute, isLower) {\n if (hour < 4) {\n return 'രാതàµà´°à´¿';\n } else if (hour < 12) {\n return 'രാവിലെ';\n } else if (hour < 17) {\n return 'ഉചàµà´š à´•à´´à´¿à´žàµà´žàµ';\n } else if (hour < 20) {\n return 'വൈകàµà´¨àµà´¨àµ‡à´°à´‚';\n } else {\n return 'രാതàµà´°à´¿';\n }\n }\n });\n return ml;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Mongolian [mn]\n//! author : Javkhlantugs Nyamdorj : https://github.com/javkhaanj7\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n function translate(number, withoutSuffix, key, isFuture) {\n switch (key) {\n case 's':\n return withoutSuffix ? 'Ñ…ÑдхÑн Ñекунд' : 'Ñ…ÑдхÑн Ñекундын';\n\n case 'ss':\n return number + (withoutSuffix ? ' Ñекунд' : ' Ñекундын');\n\n case 'm':\n case 'mm':\n return number + (withoutSuffix ? ' минут' : ' минутын');\n\n case 'h':\n case 'hh':\n return number + (withoutSuffix ? ' цаг' : ' цагийн');\n\n case 'd':\n case 'dd':\n return number + (withoutSuffix ? ' өдөр' : ' өдрийн');\n\n case 'M':\n case 'MM':\n return number + (withoutSuffix ? ' Ñар' : ' Ñарын');\n\n case 'y':\n case 'yy':\n return number + (withoutSuffix ? ' жил' : ' жилийн');\n\n default:\n return number;\n }\n }\n\n var mn = moment.defineLocale('mn', {\n months: 'ÐÑгдүгÑÑÑ€ Ñар_Хоёрдугаар Ñар_Гуравдугаар Ñар_ДөрөвдүгÑÑÑ€ Ñар_Тавдугаар Ñар_Зургадугаар Ñар_Долдугаар Ñар_Ðаймдугаар Ñар_ЕÑдүгÑÑÑ€ Ñар_Ðравдугаар Ñар_Ðрван нÑгдүгÑÑÑ€ Ñар_Ðрван хоёрдугаар Ñар'.split('_'),\n monthsShort: '1 Ñар_2 Ñар_3 Ñар_4 Ñар_5 Ñар_6 Ñар_7 Ñар_8 Ñар_9 Ñар_10 Ñар_11 Ñар_12 Ñар'.split('_'),\n monthsParseExact: true,\n weekdays: 'ÐÑм_Даваа_ÐœÑгмар_Лхагва_ПүрÑв_БааÑан_БÑмба'.split('_'),\n weekdaysShort: 'ÐÑм_Дав_ÐœÑг_Лха_Пүр_Баа_БÑм'.split('_'),\n weekdaysMin: 'ÐÑ_Да_ÐœÑ_Лх_Пү_Ба_БÑ'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY оны MMMMын D',\n LLL: 'YYYY оны MMMMын D HH:mm',\n LLLL: 'dddd, YYYY оны MMMMын D HH:mm'\n },\n meridiemParse: /Ò®Ó¨|ҮХ/i,\n isPM: function isPM(input) {\n return input === 'ҮХ';\n },\n meridiem: function meridiem(hour, minute, isLower) {\n if (hour < 12) {\n return 'Ò®Ó¨';\n } else {\n return 'ҮХ';\n }\n },\n calendar: {\n sameDay: '[Өнөөдөр] LT',\n nextDay: '[Маргааш] LT',\n nextWeek: '[ИрÑÑ…] dddd LT',\n lastDay: '[Өчигдөр] LT',\n lastWeek: '[ӨнгөрÑөн] dddd LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s дараа',\n past: '%s өмнө',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2} өдөр/,\n ordinal: function ordinal(number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + ' өдөр';\n\n default:\n return number;\n }\n }\n });\n return mn;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Marathi [mr]\n//! author : Harshad Kale : https://github.com/kalehv\n//! author : Vivek Athalye : https://github.com/vnathalye\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var symbolMap = {\n 1: '१',\n 2: '२',\n 3: '३',\n 4: '४',\n 5: '५',\n 6: '६',\n 7: 'à¥',\n 8: '८',\n 9: '९',\n 0: '०'\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n 'à¥': '7',\n '८': '8',\n '९': '9',\n '०': '0'\n };\n\n function relativeTimeMr(number, withoutSuffix, string, isFuture) {\n var output = '';\n\n if (withoutSuffix) {\n switch (string) {\n case 's':\n output = 'काही सेकंद';\n break;\n\n case 'ss':\n output = '%d सेकंद';\n break;\n\n case 'm':\n output = 'à¤à¤• मिनिट';\n break;\n\n case 'mm':\n output = '%d मिनिटे';\n break;\n\n case 'h':\n output = 'à¤à¤• तास';\n break;\n\n case 'hh':\n output = '%d तास';\n break;\n\n case 'd':\n output = 'à¤à¤• दिवस';\n break;\n\n case 'dd':\n output = '%d दिवस';\n break;\n\n case 'M':\n output = 'à¤à¤• महिना';\n break;\n\n case 'MM':\n output = '%d महिने';\n break;\n\n case 'y':\n output = 'à¤à¤• वरà¥à¤·';\n break;\n\n case 'yy':\n output = '%d वरà¥à¤·à¥‡';\n break;\n }\n } else {\n switch (string) {\n case 's':\n output = 'काही सेकंदां';\n break;\n\n case 'ss':\n output = '%d सेकंदां';\n break;\n\n case 'm':\n output = 'à¤à¤•à¤¾ मिनिटा';\n break;\n\n case 'mm':\n output = '%d मिनिटां';\n break;\n\n case 'h':\n output = 'à¤à¤•à¤¾ तासा';\n break;\n\n case 'hh':\n output = '%d तासां';\n break;\n\n case 'd':\n output = 'à¤à¤•à¤¾ दिवसा';\n break;\n\n case 'dd':\n output = '%d दिवसां';\n break;\n\n case 'M':\n output = 'à¤à¤•à¤¾ महिनà¥à¤¯à¤¾';\n break;\n\n case 'MM':\n output = '%d महिनà¥à¤¯à¤¾à¤‚';\n break;\n\n case 'y':\n output = 'à¤à¤•à¤¾ वरà¥à¤·à¤¾';\n break;\n\n case 'yy':\n output = '%d वरà¥à¤·à¤¾à¤‚';\n break;\n }\n }\n\n return output.replace(/%d/i, number);\n }\n\n var mr = moment.defineLocale('mr', {\n months: 'जानेवारी_फेबà¥à¤°à¥à¤µà¤¾à¤°à¥€_मारà¥à¤š_à¤à¤ªà¥à¤°à¤¿à¤²_मे_जून_जà¥à¤²à¥ˆ_ऑगसà¥à¤Ÿ_सपà¥à¤Ÿà¥‡à¤‚बर_ऑकà¥à¤Ÿà¥‹à¤¬à¤°_नोवà¥à¤¹à¥‡à¤‚बर_डिसेंबर'.split('_'),\n monthsShort: 'जाने._फेबà¥à¤°à¥._मारà¥à¤š._à¤à¤ªà¥à¤°à¤¿._मे._जून._जà¥à¤²à¥ˆ._ऑग._सपà¥à¤Ÿà¥‡à¤‚._ऑकà¥à¤Ÿà¥‹._नोवà¥à¤¹à¥‡à¤‚._डिसें.'.split('_'),\n monthsParseExact: true,\n weekdays: 'रविवार_सोमवार_मंगळवार_बà¥à¤§à¤µà¤¾à¤°_गà¥à¤°à¥‚वार_शà¥à¤•à¥à¤°à¤µà¤¾à¤°_शनिवार'.split('_'),\n weekdaysShort: 'रवि_सोम_मंगळ_बà¥à¤§_गà¥à¤°à¥‚_शà¥à¤•à¥à¤°_शनि'.split('_'),\n weekdaysMin: 'र_सो_मं_बà¥_गà¥_शà¥_श'.split('_'),\n longDateFormat: {\n LT: 'A h:mm वाजता',\n LTS: 'A h:mm:ss वाजता',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm वाजता',\n LLLL: 'dddd, D MMMM YYYY, A h:mm वाजता'\n },\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[उदà¥à¤¯à¤¾] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[काल] LT',\n lastWeek: '[मागील] dddd, LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%sमधà¥à¤¯à¥‡',\n past: '%sपूरà¥à¤µà¥€',\n s: relativeTimeMr,\n ss: relativeTimeMr,\n m: relativeTimeMr,\n mm: relativeTimeMr,\n h: relativeTimeMr,\n hh: relativeTimeMr,\n d: relativeTimeMr,\n dd: relativeTimeMr,\n M: relativeTimeMr,\n MM: relativeTimeMr,\n y: relativeTimeMr,\n yy: relativeTimeMr\n },\n preparse: function preparse(string) {\n return string.replace(/[१२३४५६à¥à¥®à¥¯à¥¦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function postformat(string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /पहाटे|सकाळी|दà¥à¤ªà¤¾à¤°à¥€|सायंकाळी|रातà¥à¤°à¥€/,\n meridiemHour: function meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n\n if (meridiem === 'पहाटे' || meridiem === 'सकाळी') {\n return hour;\n } else if (meridiem === 'दà¥à¤ªà¤¾à¤°à¥€' || meridiem === 'सायंकाळी' || meridiem === 'रातà¥à¤°à¥€') {\n return hour >= 12 ? hour : hour + 12;\n }\n },\n meridiem: function meridiem(hour, minute, isLower) {\n if (hour >= 0 && hour < 6) {\n return 'पहाटे';\n } else if (hour < 12) {\n return 'सकाळी';\n } else if (hour < 17) {\n return 'दà¥à¤ªà¤¾à¤°à¥€';\n } else if (hour < 20) {\n return 'सायंकाळी';\n } else {\n return 'रातà¥à¤°à¥€';\n }\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n\n }\n });\n return mr;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Malay [ms]\n//! author : Weldan Jamili : https://github.com/weldan\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var ms = moment.defineLocale('ms', {\n months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split('_'),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm'\n },\n meridiemParse: /pagi|tengahari|petang|malam/,\n meridiemHour: function meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'tengahari') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'petang' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function meridiem(hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'tengahari';\n } else if (hours < 19) {\n return 'petang';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Esok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kelmarin pukul] LT',\n lastWeek: 'dddd [lepas pukul] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lepas',\n s: 'beberapa saat',\n ss: '%d saat',\n m: 'seminit',\n mm: '%d minit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun'\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n }\n });\n return ms;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Malay [ms-my]\n//! note : DEPRECATED, the correct one is [ms]\n//! author : Weldan Jamili : https://github.com/weldan\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var msMy = moment.defineLocale('ms-my', {\n months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split('_'),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm'\n },\n meridiemParse: /pagi|tengahari|petang|malam/,\n meridiemHour: function meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'tengahari') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'petang' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function meridiem(hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'tengahari';\n } else if (hours < 19) {\n return 'petang';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Esok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kelmarin pukul] LT',\n lastWeek: 'dddd [lepas pukul] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lepas',\n s: 'beberapa saat',\n ss: '%d saat',\n m: 'seminit',\n mm: '%d minit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun'\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n }\n });\n return msMy;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Maltese (Malta) [mt]\n//! author : Alessandro Maruccia : https://github.com/alesma\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var mt = moment.defineLocale('mt', {\n months: 'Jannar_Frar_Marzu_April_Mejju_Ä unju_Lulju_Awwissu_Settembru_Ottubru_Novembru_DiÄ‹embru'.split('_'),\n monthsShort: 'Jan_Fra_Mar_Apr_Mej_Ä un_Lul_Aww_Set_Ott_Nov_DiÄ‹'.split('_'),\n weekdays: 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ä imgħa_Is-Sibt'.split('_'),\n weekdaysShort: 'Ħad_Tne_Tli_Erb_Ħam_Ä im_Sib'.split('_'),\n weekdaysMin: 'Ħa_Tn_Tl_Er_Ħa_Ä i_Si'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Illum fil-]LT',\n nextDay: '[Għada fil-]LT',\n nextWeek: 'dddd [fil-]LT',\n lastDay: '[Il-bieraħ fil-]LT',\n lastWeek: 'dddd [li għadda] [fil-]LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'f’ %s',\n past: '%s ilu',\n s: 'ftit sekondi',\n ss: '%d sekondi',\n m: 'minuta',\n mm: '%d minuti',\n h: 'siegħa',\n hh: '%d siegħat',\n d: 'Ä¡urnata',\n dd: '%d Ä¡ranet',\n M: 'xahar',\n MM: '%d xhur',\n y: 'sena',\n yy: '%d sni'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return mt;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Burmese [my]\n//! author : Squar team, mysquar.com\n//! author : David Rossellat : https://github.com/gholadr\n//! author : Tin Aung Lin : https://github.com/thanyawzinmin\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var symbolMap = {\n 1: 'á',\n 2: 'á‚',\n 3: 'áƒ',\n 4: 'á„',\n 5: 'á…',\n 6: 'á†',\n 7: 'á‡',\n 8: 'áˆ',\n 9: 'á‰',\n 0: 'á€'\n },\n numberMap = {\n 'á': '1',\n 'á‚': '2',\n 'áƒ': '3',\n 'á„': '4',\n 'á…': '5',\n 'á†': '6',\n 'á‡': '7',\n 'áˆ': '8',\n 'á‰': '9',\n 'á€': '0'\n };\n var my = moment.defineLocale('my', {\n months: 'ဇန်နá€á€«á€›á€®_ဖေဖော်á€á€«á€›á€®_မá€á€º_ဧပြီ_မေ_ဇွန်_ဇူလá€á€¯á€„်_သြဂုá€á€º_စက်á€á€„်ဘာ_အောက်á€á€á€¯á€˜á€¬_နá€á€¯á€á€„်ဘာ_ဒီဇင်ဘာ'.split('_'),\n monthsShort: 'ဇန်_ဖေ_မá€á€º_ပြီ_မေ_ဇွန်_လá€á€¯á€„်_သြ_စက်_အောက်_နá€á€¯_ဒီ'.split('_'),\n weekdays: 'á€á€”င်္ဂနွေ_á€á€”င်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပá€á€±á€¸_သောကြာ_စနေ'.split('_'),\n weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[ယနေ.] LT [မှာ]',\n nextDay: '[မနက်ဖြန်] LT [မှာ]',\n nextWeek: 'dddd LT [မှာ]',\n lastDay: '[မနေ.က] LT [မှာ]',\n lastWeek: '[ပြီးá€á€²á€·á€žá€±á€¬] dddd LT [မှာ]',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'လာမည့် %s မှာ',\n past: 'လွန်á€á€²á€·á€žá€±á€¬ %s က',\n s: 'စက္ကန်.အနည်းငယ်',\n ss: '%d စက္ကန့်',\n m: 'á€á€…်မá€á€”စ်',\n mm: '%d မá€á€”စ်',\n h: 'á€á€…်နာရီ',\n hh: '%d နာရီ',\n d: 'á€á€…်ရက်',\n dd: '%d ရက်',\n M: 'á€á€…်လ',\n MM: '%d လ',\n y: 'á€á€…်နှစ်',\n yy: '%d နှစ်'\n },\n preparse: function preparse(string) {\n return string.replace(/[áá‚áƒá„á…á†á‡áˆá‰á€]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function postformat(string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return my;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Norwegian BokmÃ¥l [nb]\n//! authors : Espen Hovlandsdal : https://github.com/rexxars\n//! Sigurd Gartmann : https://github.com/sigurdga\n//! Stephen Ramthun : https://github.com/stephenramthun\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var nb = moment.defineLocale('nb', {\n months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'),\n monthsShort: 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),\n monthsParseExact: true,\n weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort: 'sø._ma._ti._on._to._fr._lø.'.split('_'),\n weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] HH:mm',\n LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm'\n },\n calendar: {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[i gÃ¥r kl.] LT',\n lastWeek: '[forrige] dddd [kl.] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'om %s',\n past: '%s siden',\n s: 'noen sekunder',\n ss: '%d sekunder',\n m: 'ett minutt',\n mm: '%d minutter',\n h: 'en time',\n hh: '%d timer',\n d: 'en dag',\n dd: '%d dager',\n w: 'en uke',\n ww: '%d uker',\n M: 'en mÃ¥ned',\n MM: '%d mÃ¥neder',\n y: 'ett Ã¥r',\n yy: '%d Ã¥r'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return nb;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Nepalese [ne]\n//! author : suvash : https://github.com/suvash\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var symbolMap = {\n 1: '१',\n 2: '२',\n 3: '३',\n 4: '४',\n 5: '५',\n 6: '६',\n 7: 'à¥',\n 8: '८',\n 9: '९',\n 0: '०'\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n 'à¥': '7',\n '८': '8',\n '९': '9',\n '०': '0'\n };\n var ne = moment.defineLocale('ne', {\n months: 'जनवरी_फेबà¥à¤°à¥à¤µà¤°à¥€_मारà¥à¤š_अपà¥à¤°à¤¿à¤²_मई_जà¥à¤¨_जà¥à¤²à¤¾à¤ˆ_अगषà¥à¤Ÿ_सेपà¥à¤Ÿà¥‡à¤®à¥à¤¬à¤°_अकà¥à¤Ÿà¥‹à¤¬à¤°_नोà¤à¥‡à¤®à¥à¤¬à¤°_डिसेमà¥à¤¬à¤°'.split('_'),\n monthsShort: 'जन._फेबà¥à¤°à¥._मारà¥à¤š_अपà¥à¤°à¤¿._मई_जà¥à¤¨_जà¥à¤²à¤¾à¤ˆ._अग._सेपà¥à¤Ÿ._अकà¥à¤Ÿà¥‹._नोà¤à¥‡._डिसे.'.split('_'),\n monthsParseExact: true,\n weekdays: 'आइतबार_सोमबार_मङà¥à¤—लबार_बà¥à¤§à¤¬à¤¾à¤°_बिहिबार_शà¥à¤•à¥à¤°à¤¬à¤¾à¤°_शनिबार'.split('_'),\n weekdaysShort: 'आइत._सोम._मङà¥à¤—ल._बà¥à¤§._बिहि._शà¥à¤•à¥à¤°._शनि.'.split('_'),\n weekdaysMin: 'आ._सो._मं._बà¥._बि._शà¥._श.'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'Aको h:mm बजे',\n LTS: 'Aको h:mm:ss बजे',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, Aको h:mm बजे',\n LLLL: 'dddd, D MMMM YYYY, Aको h:mm बजे'\n },\n preparse: function preparse(string) {\n return string.replace(/[१२३४५६à¥à¥®à¥¯à¥¦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function postformat(string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /राति|बिहान|दिउà¤à¤¸à¥‹|साà¤à¤/,\n meridiemHour: function meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n\n if (meridiem === 'राति') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'बिहान') {\n return hour;\n } else if (meridiem === 'दिउà¤à¤¸à¥‹') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'साà¤à¤') {\n return hour + 12;\n }\n },\n meridiem: function meridiem(hour, minute, isLower) {\n if (hour < 3) {\n return 'राति';\n } else if (hour < 12) {\n return 'बिहान';\n } else if (hour < 16) {\n return 'दिउà¤à¤¸à¥‹';\n } else if (hour < 20) {\n return 'साà¤à¤';\n } else {\n return 'राति';\n }\n },\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[à¤à¥‹à¤²à¤¿] LT',\n nextWeek: '[आउà¤à¤¦à¥‹] dddd[,] LT',\n lastDay: '[हिजो] LT',\n lastWeek: '[गà¤à¤•à¥‹] dddd[,] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%sमा',\n past: '%s अगाडि',\n s: 'केही कà¥à¤·à¤£',\n ss: '%d सेकेणà¥à¤¡',\n m: 'à¤à¤• मिनेट',\n mm: '%d मिनेट',\n h: 'à¤à¤• घणà¥à¤Ÿà¤¾',\n hh: '%d घणà¥à¤Ÿà¤¾',\n d: 'à¤à¤• दिन',\n dd: '%d दिन',\n M: 'à¤à¤• महिना',\n MM: '%d महिना',\n y: 'à¤à¤• बरà¥à¤·',\n yy: '%d बरà¥à¤·'\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n\n }\n });\n return ne;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Dutch [nl]\n//! author : Joris Röling : https://github.com/jorisroling\n//! author : Jacob Middag : https://github.com/middagj\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n monthsParse = [/^jan/i, /^feb/i, /^maart|mrt.?$/i, /^apr/i, /^mei$/i, /^jun[i.]?$/i, /^jul[i.]?$/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i],\n monthsRegex = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n var nl = moment.defineLocale('nl', {\n months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'),\n monthsShort: function monthsShort(m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex: /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),\n weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'over %s',\n past: '%s geleden',\n s: 'een paar seconden',\n ss: '%d seconden',\n m: 'één minuut',\n mm: '%d minuten',\n h: 'één uur',\n hh: '%d uur',\n d: 'één dag',\n dd: '%d dagen',\n w: 'één week',\n ww: '%d weken',\n M: 'één maand',\n MM: '%d maanden',\n y: 'één jaar',\n yy: '%d jaar'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function ordinal(number) {\n return number + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de');\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return nl;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Dutch (Belgium) [nl-be]\n//! author : Joris Röling : https://github.com/jorisroling\n//! author : Jacob Middag : https://github.com/middagj\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n monthsParse = [/^jan/i, /^feb/i, /^maart|mrt.?$/i, /^apr/i, /^mei$/i, /^jun[i.]?$/i, /^jul[i.]?$/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i],\n monthsRegex = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n var nlBe = moment.defineLocale('nl-be', {\n months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'),\n monthsShort: function monthsShort(m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex: /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),\n weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'over %s',\n past: '%s geleden',\n s: 'een paar seconden',\n ss: '%d seconden',\n m: 'één minuut',\n mm: '%d minuten',\n h: 'één uur',\n hh: '%d uur',\n d: 'één dag',\n dd: '%d dagen',\n M: 'één maand',\n MM: '%d maanden',\n y: 'één jaar',\n yy: '%d jaar'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function ordinal(number) {\n return number + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de');\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return nlBe;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Nynorsk [nn]\n//! authors : https://github.com/mechuwind\n//! Stephen Ramthun : https://github.com/stephenramthun\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var nn = moment.defineLocale('nn', {\n months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'),\n monthsShort: 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),\n monthsParseExact: true,\n weekdays: 'sundag_mÃ¥ndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'),\n weekdaysShort: 'su._mÃ¥._ty._on._to._fr._lau.'.split('_'),\n weekdaysMin: 'su_mÃ¥_ty_on_to_fr_la'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] H:mm',\n LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm'\n },\n calendar: {\n sameDay: '[I dag klokka] LT',\n nextDay: '[I morgon klokka] LT',\n nextWeek: 'dddd [klokka] LT',\n lastDay: '[I gÃ¥r klokka] LT',\n lastWeek: '[FøregÃ¥ande] dddd [klokka] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'om %s',\n past: '%s sidan',\n s: 'nokre sekund',\n ss: '%d sekund',\n m: 'eit minutt',\n mm: '%d minutt',\n h: 'ein time',\n hh: '%d timar',\n d: 'ein dag',\n dd: '%d dagar',\n w: 'ei veke',\n ww: '%d veker',\n M: 'ein mÃ¥nad',\n MM: '%d mÃ¥nader',\n y: 'eit Ã¥r',\n yy: '%d Ã¥r'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return nn;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Occitan, lengadocian dialecte [oc-lnc]\n//! author : Quentin PAGÈS : https://github.com/Quenty31\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var ocLnc = moment.defineLocale('oc-lnc', {\n months: {\n standalone: 'genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre'.split('_'),\n format: \"de genièr_de febrièr_de març_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre\".split('_'),\n isFormat: /D[oD]?(\\s)+MMMM/\n },\n monthsShort: 'gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte'.split('_'),\n weekdaysShort: 'dg._dl._dm._dc._dj._dv._ds.'.split('_'),\n weekdaysMin: 'dg_dl_dm_dc_dj_dv_ds'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [de] YYYY',\n ll: 'D MMM YYYY',\n LLL: 'D MMMM [de] YYYY [a] H:mm',\n lll: 'D MMM YYYY, H:mm',\n LLLL: 'dddd D MMMM [de] YYYY [a] H:mm',\n llll: 'ddd D MMM YYYY, H:mm'\n },\n calendar: {\n sameDay: '[uèi a] LT',\n nextDay: '[deman a] LT',\n nextWeek: 'dddd [a] LT',\n lastDay: '[ièr a] LT',\n lastWeek: 'dddd [passat a] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: \"d'aquà %s\",\n past: 'fa %s',\n s: 'unas segondas',\n ss: '%d segondas',\n m: 'una minuta',\n mm: '%d minutas',\n h: 'una ora',\n hh: '%d oras',\n d: 'un jorn',\n dd: '%d jorns',\n M: 'un mes',\n MM: '%d meses',\n y: 'un an',\n yy: '%d ans'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n ordinal: function ordinal(number, period) {\n var output = number === 1 ? 'r' : number === 2 ? 'n' : number === 3 ? 'r' : number === 4 ? 't' : 'è';\n\n if (period === 'w' || period === 'W') {\n output = 'a';\n }\n\n return number + output;\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4\n }\n });\n return ocLnc;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Punjabi (India) [pa-in]\n//! author : Harpreet Singh : https://github.com/harpreetkhalsagtbit\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var symbolMap = {\n 1: '੧',\n 2: '੨',\n 3: 'à©©',\n 4: '੪',\n 5: 'à©«',\n 6: '੬',\n 7: 'à©',\n 8: 'à©®',\n 9: '੯',\n 0: '੦'\n },\n numberMap = {\n '੧': '1',\n '੨': '2',\n 'à©©': '3',\n '੪': '4',\n 'à©«': '5',\n '੬': '6',\n 'à©': '7',\n 'à©®': '8',\n '੯': '9',\n '੦': '0'\n };\n var paIn = moment.defineLocale('pa-in', {\n // There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi.\n months: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪà©à¨°à©ˆà¨²_ਮਈ_ਜੂਨ_ਜà©à¨²à¨¾à¨ˆ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split('_'),\n monthsShort: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪà©à¨°à©ˆà¨²_ਮਈ_ਜੂਨ_ਜà©à¨²à¨¾à¨ˆ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split('_'),\n weekdays: 'à¨à¨¤à¨µà¨¾à¨°_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬà©à¨§à¨µà¨¾à¨°_ਵੀਰਵਾਰ_ਸ਼à©à©±à¨•à¨°à¨µà¨¾à¨°_ਸ਼ਨੀਚਰਵਾਰ'.split('_'),\n weekdaysShort: 'à¨à¨¤_ਸੋਮ_ਮੰਗਲ_ਬà©à¨§_ਵੀਰ_ਸ਼à©à¨•à¨°_ਸ਼ਨੀ'.split('_'),\n weekdaysMin: 'à¨à¨¤_ਸੋਮ_ਮੰਗਲ_ਬà©à¨§_ਵੀਰ_ਸ਼à©à¨•à¨°_ਸ਼ਨੀ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm ਵਜੇ',\n LTS: 'A h:mm:ss ਵਜੇ',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm ਵਜੇ',\n LLLL: 'dddd, D MMMM YYYY, A h:mm ਵਜੇ'\n },\n calendar: {\n sameDay: '[ਅਜ] LT',\n nextDay: '[ਕਲ] LT',\n nextWeek: '[ਅਗਲਾ] dddd, LT',\n lastDay: '[ਕਲ] LT',\n lastWeek: '[ਪਿਛਲੇ] dddd, LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s ਵਿੱਚ',\n past: '%s ਪਿਛਲੇ',\n s: 'ਕà©à¨ ਸਕਿੰਟ',\n ss: '%d ਸਕਿੰਟ',\n m: 'ਇਕ ਮਿੰਟ',\n mm: '%d ਮਿੰਟ',\n h: 'ਇੱਕ ਘੰਟਾ',\n hh: '%d ਘੰਟੇ',\n d: 'ਇੱਕ ਦਿਨ',\n dd: '%d ਦਿਨ',\n M: 'ਇੱਕ ਮਹੀਨਾ',\n MM: '%d ਮਹੀਨੇ',\n y: 'ਇੱਕ ਸਾਲ',\n yy: '%d ਸਾਲ'\n },\n preparse: function preparse(string) {\n return string.replace(/[੧੨੩੪੫੬à©à©®à©¯à©¦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function postformat(string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Punjabi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi.\n meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦà©à¨ªà¨¹à¨¿à¨°|ਸ਼ਾਮ/,\n meridiemHour: function meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n\n if (meridiem === 'ਰਾਤ') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ਸਵੇਰ') {\n return hour;\n } else if (meridiem === 'ਦà©à¨ªà¨¹à¨¿à¨°') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ਸ਼ਾਮ') {\n return hour + 12;\n }\n },\n meridiem: function meridiem(hour, minute, isLower) {\n if (hour < 4) {\n return 'ਰਾਤ';\n } else if (hour < 10) {\n return 'ਸਵੇਰ';\n } else if (hour < 17) {\n return 'ਦà©à¨ªà¨¹à¨¿à¨°';\n } else if (hour < 20) {\n return 'ਸ਼ਾਮ';\n } else {\n return 'ਰਾਤ';\n }\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n\n }\n });\n return paIn;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Polish [pl]\n//! author : Rafal Hirsz : https://github.com/evoL\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var monthsNominative = 'styczeÅ„_luty_marzec_kwiecieÅ„_maj_czerwiec_lipiec_sierpieÅ„_wrzesieÅ„_październik_listopad_grudzieÅ„'.split('_'),\n monthsSubjective = 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_wrzeÅ›nia_października_listopada_grudnia'.split('_'),\n monthsParse = [/^sty/i, /^lut/i, /^mar/i, /^kwi/i, /^maj/i, /^cze/i, /^lip/i, /^sie/i, /^wrz/i, /^paź/i, /^lis/i, /^gru/i];\n\n function plural(n) {\n return n % 10 < 5 && n % 10 > 1 && ~~(n / 10) % 10 !== 1;\n }\n\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n\n switch (key) {\n case 'ss':\n return result + (plural(number) ? 'sekundy' : 'sekund');\n\n case 'm':\n return withoutSuffix ? 'minuta' : 'minutÄ™';\n\n case 'mm':\n return result + (plural(number) ? 'minuty' : 'minut');\n\n case 'h':\n return withoutSuffix ? 'godzina' : 'godzinÄ™';\n\n case 'hh':\n return result + (plural(number) ? 'godziny' : 'godzin');\n\n case 'ww':\n return result + (plural(number) ? 'tygodnie' : 'tygodni');\n\n case 'MM':\n return result + (plural(number) ? 'miesiÄ…ce' : 'miesiÄ™cy');\n\n case 'yy':\n return result + (plural(number) ? 'lata' : 'lat');\n }\n }\n\n var pl = moment.defineLocale('pl', {\n months: function months(momentToFormat, format) {\n if (!momentToFormat) {\n return monthsNominative;\n } else if (/D MMMM/.test(format)) {\n return monthsSubjective[momentToFormat.month()];\n } else {\n return monthsNominative[momentToFormat.month()];\n }\n },\n monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'),\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'niedziela_poniedziaÅ‚ek_wtorek_Å›roda_czwartek_piÄ…tek_sobota'.split('_'),\n weekdaysShort: 'ndz_pon_wt_Å›r_czw_pt_sob'.split('_'),\n weekdaysMin: 'Nd_Pn_Wt_Åšr_Cz_Pt_So'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[DziÅ› o] LT',\n nextDay: '[Jutro o] LT',\n nextWeek: function nextWeek() {\n switch (this.day()) {\n case 0:\n return '[W niedzielÄ™ o] LT';\n\n case 2:\n return '[We wtorek o] LT';\n\n case 3:\n return '[W Å›rodÄ™ o] LT';\n\n case 6:\n return '[W sobotÄ™ o] LT';\n\n default:\n return '[W] dddd [o] LT';\n }\n },\n lastDay: '[Wczoraj o] LT',\n lastWeek: function lastWeek() {\n switch (this.day()) {\n case 0:\n return '[W zeszÅ‚Ä… niedzielÄ™ o] LT';\n\n case 3:\n return '[W zeszÅ‚Ä… Å›rodÄ™ o] LT';\n\n case 6:\n return '[W zeszÅ‚Ä… sobotÄ™ o] LT';\n\n default:\n return '[W zeszÅ‚y] dddd [o] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'za %s',\n past: '%s temu',\n s: 'kilka sekund',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: '1 dzieÅ„',\n dd: '%d dni',\n w: 'tydzieÅ„',\n ww: translate,\n M: 'miesiÄ…c',\n MM: translate,\n y: 'rok',\n yy: translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return pl;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Portuguese [pt]\n//! author : Jefferson : https://github.com/jalex79\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var pt = moment.defineLocale('pt', {\n months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split('_'),\n monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\n weekdays: 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split('_'),\n weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),\n weekdaysMin: 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY HH:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Hoje à s] LT',\n nextDay: '[Amanhã à s] LT',\n nextWeek: 'dddd [à s] LT',\n lastDay: '[Ontem à s] LT',\n lastWeek: function lastWeek() {\n return this.day() === 0 || this.day() === 6 ? '[Último] dddd [à s] LT' // Saturday + Sunday\n : '[Última] dddd [à s] LT'; // Monday - Friday\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'em %s',\n past: 'há %s',\n s: 'segundos',\n ss: '%d segundos',\n m: 'um minuto',\n mm: '%d minutos',\n h: 'uma hora',\n hh: '%d horas',\n d: 'um dia',\n dd: '%d dias',\n w: 'uma semana',\n ww: '%d semanas',\n M: 'um mês',\n MM: '%d meses',\n y: 'um ano',\n yy: '%d anos'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return pt;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Portuguese (Brazil) [pt-br]\n//! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var ptBr = moment.defineLocale('pt-br', {\n months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split('_'),\n monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\n weekdays: 'domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado'.split('_'),\n weekdaysShort: 'dom_seg_ter_qua_qui_sex_sáb'.split('_'),\n weekdaysMin: 'do_2ª_3ª_4ª_5ª_6ª_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY [à s] HH:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY [à s] HH:mm'\n },\n calendar: {\n sameDay: '[Hoje à s] LT',\n nextDay: '[Amanhã à s] LT',\n nextWeek: 'dddd [à s] LT',\n lastDay: '[Ontem à s] LT',\n lastWeek: function lastWeek() {\n return this.day() === 0 || this.day() === 6 ? '[Último] dddd [à s] LT' // Saturday + Sunday\n : '[Última] dddd [à s] LT'; // Monday - Friday\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'em %s',\n past: 'há %s',\n s: 'poucos segundos',\n ss: '%d segundos',\n m: 'um minuto',\n mm: '%d minutos',\n h: 'uma hora',\n hh: '%d horas',\n d: 'um dia',\n dd: '%d dias',\n M: 'um mês',\n MM: '%d meses',\n y: 'um ano',\n yy: '%d anos'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n invalidDate: 'Data inválida'\n });\n return ptBr;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Romanian [ro]\n//! author : Vlad Gurdiga : https://github.com/gurdiga\n//! author : Valentin Agachi : https://github.com/avaly\n//! author : Emanuel Cepoi : https://github.com/cepem\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: 'secunde',\n mm: 'minute',\n hh: 'ore',\n dd: 'zile',\n ww: 'săptămâni',\n MM: 'luni',\n yy: 'ani'\n },\n separator = ' ';\n\n if (number % 100 >= 20 || number >= 100 && number % 100 === 0) {\n separator = ' de ';\n }\n\n return number + separator + format[key];\n }\n\n var ro = moment.defineLocale('ro', {\n months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split('_'),\n monthsShort: 'ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'duminică_luni_marÈ›i_miercuri_joi_vineri_sâmbătă'.split('_'),\n weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),\n weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[azi la] LT',\n nextDay: '[mâine la] LT',\n nextWeek: 'dddd [la] LT',\n lastDay: '[ieri la] LT',\n lastWeek: '[fosta] dddd [la] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'peste %s',\n past: '%s în urmă',\n s: 'câteva secunde',\n ss: relativeTimeWithPlural,\n m: 'un minut',\n mm: relativeTimeWithPlural,\n h: 'o oră',\n hh: relativeTimeWithPlural,\n d: 'o zi',\n dd: relativeTimeWithPlural,\n w: 'o săptămână',\n ww: relativeTimeWithPlural,\n M: 'o lună',\n MM: relativeTimeWithPlural,\n y: 'un an',\n yy: relativeTimeWithPlural\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n }\n });\n return ro;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Russian [ru]\n//! author : Viktorminator : https://github.com/Viktorminator\n//! author : Menelion Elensúle : https://github.com/Oire\n//! author : Коренберг Марк : https://github.com/socketpair\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11 ? forms[0] : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2];\n }\n\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'Ñекунда_Ñекунды_Ñекунд' : 'Ñекунду_Ñекунды_Ñекунд',\n mm: withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',\n hh: 'чаÑ_чаÑа_чаÑов',\n dd: 'день_днÑ_дней',\n ww: 'неделÑ_недели_недель',\n MM: 'меÑÑц_меÑÑца_меÑÑцев',\n yy: 'год_года_лет'\n };\n\n if (key === 'm') {\n return withoutSuffix ? 'минута' : 'минуту';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n\n var monthsParse = [/^Ñнв/i, /^фев/i, /^мар/i, /^апр/i, /^ма[йÑ]/i, /^июн/i, /^июл/i, /^авг/i, /^Ñен/i, /^окт/i, /^ноÑ/i, /^дек/i]; // http://new.gramota.ru/spravka/rules/139-prop : § 103\n // Ð¡Ð¾ÐºÑ€Ð°Ñ‰ÐµÐ½Ð¸Ñ Ð¼ÐµÑÑцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637\n // CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753\n\n var ru = moment.defineLocale('ru', {\n months: {\n format: 'ÑнварÑ_февралÑ_марта_апрелÑ_маÑ_июнÑ_июлÑ_авгуÑта_ÑентÑбрÑ_октÑбрÑ_ноÑбрÑ_декабрÑ'.split('_'),\n standalone: 'Ñнварь_февраль_март_апрель_май_июнь_июль_авгуÑÑ‚_ÑентÑбрь_октÑбрь_ноÑбрь_декабрь'.split('_')\n },\n monthsShort: {\n // по CLDR именно \"июл.\" и \"июн.\", но какой ÑмыÑл менÑÑ‚ÑŒ букву на точку?\n format: 'Ñнв._февр._мар._апр._маÑ_июнÑ_июлÑ_авг._Ñент._окт._ноÑб._дек.'.split('_'),\n standalone: 'Ñнв._февр._март_апр._май_июнь_июль_авг._Ñент._окт._ноÑб._дек.'.split('_')\n },\n weekdays: {\n standalone: 'воÑкреÑенье_понедельник_вторник_Ñреда_четверг_пÑтница_Ñуббота'.split('_'),\n format: 'воÑкреÑенье_понедельник_вторник_Ñреду_четверг_пÑтницу_Ñубботу'.split('_'),\n isFormat: /\\[ ?[Вв] ?(?:прошлую|Ñледующую|Ñту)? ?] ?dddd/\n },\n weekdaysShort: 'вÑ_пн_вт_ÑÑ€_чт_пт_Ñб'.split('_'),\n weekdaysMin: 'вÑ_пн_вт_ÑÑ€_чт_пт_Ñб'.split('_'),\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n // полные Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ Ñ Ð¿Ð°Ð´ÐµÐ¶Ð°Ð¼Ð¸, по три буквы, Ð´Ð»Ñ Ð½ÐµÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ñ…, по 4 буквы, ÑÐ¾ÐºÑ€Ð°Ñ‰ÐµÐ½Ð¸Ñ Ñ Ñ‚Ð¾Ñ‡ÐºÐ¾Ð¹ и без точки\n monthsRegex: /^(Ñнвар[ÑŒÑ]|Ñнв\\.?|феврал[ÑŒÑ]|февр?\\.?|марта?|мар\\.?|апрел[ÑŒÑ]|апр\\.?|ма[йÑ]|июн[ÑŒÑ]|июн\\.?|июл[ÑŒÑ]|июл\\.?|авгуÑта?|авг\\.?|ÑентÑбр[ÑŒÑ]|Ñент?\\.?|октÑбр[ÑŒÑ]|окт\\.?|ноÑбр[ÑŒÑ]|ноÑб?\\.?|декабр[ÑŒÑ]|дек\\.?)/i,\n // ÐºÐ¾Ð¿Ð¸Ñ Ð¿Ñ€ÐµÐ´Ñ‹Ð´ÑƒÑ‰ÐµÐ³Ð¾\n monthsShortRegex: /^(Ñнвар[ÑŒÑ]|Ñнв\\.?|феврал[ÑŒÑ]|февр?\\.?|марта?|мар\\.?|апрел[ÑŒÑ]|апр\\.?|ма[йÑ]|июн[ÑŒÑ]|июн\\.?|июл[ÑŒÑ]|июл\\.?|авгуÑта?|авг\\.?|ÑентÑбр[ÑŒÑ]|Ñент?\\.?|октÑбр[ÑŒÑ]|окт\\.?|ноÑбр[ÑŒÑ]|ноÑб?\\.?|декабр[ÑŒÑ]|дек\\.?)/i,\n // полные Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ Ñ Ð¿Ð°Ð´ÐµÐ¶Ð°Ð¼Ð¸\n monthsStrictRegex: /^(Ñнвар[ÑÑŒ]|феврал[ÑÑŒ]|марта?|апрел[ÑÑŒ]|ма[Ñй]|июн[ÑÑŒ]|июл[ÑÑŒ]|авгуÑта?|ÑентÑбр[ÑÑŒ]|октÑбр[ÑÑŒ]|ноÑбр[ÑÑŒ]|декабр[ÑÑŒ])/i,\n // Выражение, которое ÑоответÑтвует только Ñокращённым формам\n monthsShortStrictRegex: /^(Ñнв\\.|февр?\\.|мар[Ñ‚.]|апр\\.|ма[Ñй]|июн[ÑŒÑ.]|июл[ÑŒÑ.]|авг\\.|Ñент?\\.|окт\\.|ноÑб?\\.|дек\\.)/i,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY г.',\n LLL: 'D MMMM YYYY г., H:mm',\n LLLL: 'dddd, D MMMM YYYY г., H:mm'\n },\n calendar: {\n sameDay: '[СегоднÑ, в] LT',\n nextDay: '[Завтра, в] LT',\n lastDay: '[Вчера, в] LT',\n nextWeek: function nextWeek(now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[Ð’ Ñледующее] dddd, [в] LT';\n\n case 1:\n case 2:\n case 4:\n return '[Ð’ Ñледующий] dddd, [в] LT';\n\n case 3:\n case 5:\n case 6:\n return '[Ð’ Ñледующую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[Ð’] dddd, [в] LT';\n }\n }\n },\n lastWeek: function lastWeek(now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[Ð’ прошлое] dddd, [в] LT';\n\n case 1:\n case 2:\n case 4:\n return '[Ð’ прошлый] dddd, [в] LT';\n\n case 3:\n case 5:\n case 6:\n return '[Ð’ прошлую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[Ð’] dddd, [в] LT';\n }\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'через %s',\n past: '%s назад',\n s: 'неÑколько Ñекунд',\n ss: relativeTimeWithPlural,\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: 'чаÑ',\n hh: relativeTimeWithPlural,\n d: 'день',\n dd: relativeTimeWithPlural,\n w: 'неделÑ',\n ww: relativeTimeWithPlural,\n M: 'меÑÑц',\n MM: relativeTimeWithPlural,\n y: 'год',\n yy: relativeTimeWithPlural\n },\n meridiemParse: /ночи|утра|днÑ|вечера/i,\n isPM: function isPM(input) {\n return /^(днÑ|вечера)$/.test(input);\n },\n meridiem: function meridiem(hour, minute, isLower) {\n if (hour < 4) {\n return 'ночи';\n } else if (hour < 12) {\n return 'утра';\n } else if (hour < 17) {\n return 'днÑ';\n } else {\n return 'вечера';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го|Ñ)/,\n ordinal: function ordinal(number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n return number + '-й';\n\n case 'D':\n return number + '-го';\n\n case 'w':\n case 'W':\n return number + '-Ñ';\n\n default:\n return number;\n }\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return ru;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Sindhi [sd]\n//! author : Narain Sagar : https://github.com/narainsagar\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var months = ['جنوري', 'Ùيبروري', 'مارچ', 'اپريل', 'مئي', 'جون', 'جولاءÙ', 'آگسٽ', 'سيپٽمبر', 'آڪٽوبر', 'نومبر', 'ڊسمبر'],\n days = ['آچر', 'سومر', 'اڱارو', 'اربع', 'خميس', 'جمع', 'ڇنڇر'];\n var sd = moment.defineLocale('sd', {\n months: months,\n monthsShort: months,\n weekdays: days,\n weekdaysShort: days,\n weekdaysMin: days,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'ddddØŒ D MMMM YYYY HH:mm'\n },\n meridiemParse: /صبØ|شام/,\n isPM: function isPM(input) {\n return 'شام' === input;\n },\n meridiem: function meridiem(hour, minute, isLower) {\n if (hour < 12) {\n return 'صبØ';\n }\n\n return 'شام';\n },\n calendar: {\n sameDay: '[اڄ] LT',\n nextDay: '[سڀاڻي] LT',\n nextWeek: 'dddd [اڳين Ù‡Ùتي تي] LT',\n lastDay: '[ڪالهه] LT',\n lastWeek: '[گزريل Ù‡Ùتي] dddd [تي] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s پوء',\n past: '%s اڳ',\n s: 'چند سيڪنڊ',\n ss: '%d سيڪنڊ',\n m: 'Ù‡Úª منٽ',\n mm: '%d منٽ',\n h: 'Ù‡Úª ڪلاڪ',\n hh: '%d ڪلاڪ',\n d: 'Ù‡Úª Úينهن',\n dd: '%d Úينهن',\n M: 'Ù‡Úª مهينو',\n MM: '%d مهينا',\n y: 'Ù‡Úª سال',\n yy: '%d سال'\n },\n preparse: function preparse(string) {\n return string.replace(/ØŒ/g, ',');\n },\n postformat: function postformat(string) {\n return string.replace(/,/g, 'ØŒ');\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return sd;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Northern Sami [se]\n//! authors : BÃ¥rd Rolstad Henriksen : https://github.com/karamell\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var se = moment.defineLocale('se', {\n months: 'oÄ‘Ä‘ajagemánnu_guovvamánnu_njukÄamánnu_cuoÅ‹ománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_ÄakÄamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split('_'),\n monthsShort: 'oÄ‘Ä‘j_guov_njuk_cuo_mies_geas_suoi_borg_ÄakÄ_golg_skáb_juov'.split('_'),\n weekdays: 'sotnabeaivi_vuossárga_maÅ‹Å‹ebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split('_'),\n weekdaysShort: 'sotn_vuos_maÅ‹_gask_duor_bear_láv'.split('_'),\n weekdaysMin: 's_v_m_g_d_b_L'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'MMMM D. [b.] YYYY',\n LLL: 'MMMM D. [b.] YYYY [ti.] HH:mm',\n LLLL: 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm'\n },\n calendar: {\n sameDay: '[otne ti] LT',\n nextDay: '[ihttin ti] LT',\n nextWeek: 'dddd [ti] LT',\n lastDay: '[ikte ti] LT',\n lastWeek: '[ovddit] dddd [ti] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s geažes',\n past: 'maÅ‹it %s',\n s: 'moadde sekunddat',\n ss: '%d sekunddat',\n m: 'okta minuhta',\n mm: '%d minuhtat',\n h: 'okta diimmu',\n hh: '%d diimmut',\n d: 'okta beaivi',\n dd: '%d beaivvit',\n M: 'okta mánnu',\n MM: '%d mánut',\n y: 'okta jahki',\n yy: '%d jagit'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return se;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Sinhalese [si]\n//! author : Sampath Sitinamaluwa : https://github.com/sampathsris\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n /*jshint -W100*/\n\n var si = moment.defineLocale('si', {\n months: 'ජනවà·à¶»à·’_පෙබරවà·à¶»à·’_මà·à¶»à·Šà¶à·”_අප්â€à¶»à·šà¶½à·Š_මà·à¶ºà·’_ජූනි_ජූලි_අගà·à·ƒà·Šà¶à·”_à·ƒà·à¶´à·Šà¶à·à¶¸à·Šà¶¶à¶»à·Š_ඔක්à¶à·à¶¶à¶»à·Š_නොවà·à¶¸à·Šà¶¶à¶»à·Š_දෙසà·à¶¸à·Šà¶¶à¶»à·Š'.split('_'),\n monthsShort: 'ජන_පෙබ_මà·à¶»à·Š_අප්_මà·à¶ºà·’_ජූනි_ජූලි_අගà·_à·ƒà·à¶´à·Š_ඔක්_නොවà·_දෙසà·'.split('_'),\n weekdays: 'ඉරිදà·_සඳුදà·_අඟහරුවà·à¶¯à·_බදà·à¶¯à·_බ්â€à¶»à·„ස්පà¶à·’න්දà·_සිකුරà·à¶¯à·_සෙනසුරà·à¶¯à·'.split('_'),\n weekdaysShort: 'ඉරි_සඳු_අඟ_බදà·_බ්â€à¶»à·„_සිකු_සෙන'.split('_'),\n weekdaysMin: 'ඉ_à·ƒ_අ_බ_බ්â€à¶»_සි_සෙ'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'a h:mm',\n LTS: 'a h:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY MMMM D',\n LLL: 'YYYY MMMM D, a h:mm',\n LLLL: 'YYYY MMMM D [à·€à·à¶±à·’] dddd, a h:mm:ss'\n },\n calendar: {\n sameDay: '[අද] LT[ට]',\n nextDay: '[හෙට] LT[ට]',\n nextWeek: 'dddd LT[ට]',\n lastDay: '[ඊයේ] LT[ට]',\n lastWeek: '[පසුගිය] dddd LT[ට]',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%sකින්',\n past: '%sකට පෙර',\n s: 'à¶à¶à·Šà¶´à¶» කිහිපය',\n ss: 'à¶à¶à·Šà¶´à¶» %d',\n m: 'මිනිà¶à·Šà¶à·”à·€',\n mm: 'මිනිà¶à·Šà¶à·” %d',\n h: 'පà·à¶º',\n hh: 'පà·à¶º %d',\n d: 'දිනය',\n dd: 'දින %d',\n M: 'මà·à·ƒà¶º',\n MM: 'මà·à·ƒ %d',\n y: 'වසර',\n yy: 'වසර %d'\n },\n dayOfMonthOrdinalParse: /\\d{1,2} à·€à·à¶±à·’/,\n ordinal: function ordinal(number) {\n return number + ' à·€à·à¶±à·’';\n },\n meridiemParse: /පෙර වරු|පස් වරු|පෙ.à·€|ප.à·€./,\n isPM: function isPM(input) {\n return input === 'ප.à·€.' || input === 'පස් වරු';\n },\n meridiem: function meridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'ප.à·€.' : 'පස් වරු';\n } else {\n return isLower ? 'පෙ.à·€.' : 'පෙර වරු';\n }\n }\n });\n return si;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Slovak [sk]\n//! author : Martin Minka : https://github.com/k2s\n//! based on work of petrbela : https://github.com/petrbela\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var months = 'január_február_marec_aprÃl_máj_jún_júl_august_september_október_november_december'.split('_'),\n monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');\n\n function plural(n) {\n return n > 1 && n < 5;\n }\n\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n\n switch (key) {\n case 's':\n // a few seconds / in a few seconds / a few seconds ago\n return withoutSuffix || isFuture ? 'pár sekúnd' : 'pár sekundami';\n\n case 'ss':\n // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'sekundy' : 'sekúnd');\n } else {\n return result + 'sekundami';\n }\n\n case 'm':\n // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minúta' : isFuture ? 'minútu' : 'minútou';\n\n case 'mm':\n // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'minúty' : 'minút');\n } else {\n return result + 'minútami';\n }\n\n case 'h':\n // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n\n case 'hh':\n // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'hodiny' : 'hodÃn');\n } else {\n return result + 'hodinami';\n }\n\n case 'd':\n // a day / in a day / a day ago\n return withoutSuffix || isFuture ? 'deň' : 'dňom';\n\n case 'dd':\n // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'dni' : 'dnÃ');\n } else {\n return result + 'dňami';\n }\n\n case 'M':\n // a month / in a month / a month ago\n return withoutSuffix || isFuture ? 'mesiac' : 'mesiacom';\n\n case 'MM':\n // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'mesiace' : 'mesiacov');\n } else {\n return result + 'mesiacmi';\n }\n\n case 'y':\n // a year / in a year / a year ago\n return withoutSuffix || isFuture ? 'rok' : 'rokom';\n\n case 'yy':\n // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'roky' : 'rokov');\n } else {\n return result + 'rokmi';\n }\n\n }\n }\n\n var sk = moment.defineLocale('sk', {\n months: months,\n monthsShort: monthsShort,\n weekdays: 'nedeľa_pondelok_utorok_streda_Å¡tvrtok_piatok_sobota'.split('_'),\n weekdaysShort: 'ne_po_ut_st_Å¡t_pi_so'.split('_'),\n weekdaysMin: 'ne_po_ut_st_Å¡t_pi_so'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd D. MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[dnes o] LT',\n nextDay: '[zajtra o] LT',\n nextWeek: function nextWeek() {\n switch (this.day()) {\n case 0:\n return '[v nedeľu o] LT';\n\n case 1:\n case 2:\n return '[v] dddd [o] LT';\n\n case 3:\n return '[v stredu o] LT';\n\n case 4:\n return '[vo Å¡tvrtok o] LT';\n\n case 5:\n return '[v piatok o] LT';\n\n case 6:\n return '[v sobotu o] LT';\n }\n },\n lastDay: '[vÄera o] LT',\n lastWeek: function lastWeek() {\n switch (this.day()) {\n case 0:\n return '[minulú nedeľu o] LT';\n\n case 1:\n case 2:\n return '[minulý] dddd [o] LT';\n\n case 3:\n return '[minulú stredu o] LT';\n\n case 4:\n case 5:\n return '[minulý] dddd [o] LT';\n\n case 6:\n return '[minulú sobotu o] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'za %s',\n past: 'pred %s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return sk;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Slovenian [sl]\n//! author : Robert SedovÅ¡ek : https://github.com/sedovsek\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n\n switch (key) {\n case 's':\n return withoutSuffix || isFuture ? 'nekaj sekund' : 'nekaj sekundami';\n\n case 'ss':\n if (number === 1) {\n result += withoutSuffix ? 'sekundo' : 'sekundi';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah';\n } else {\n result += 'sekund';\n }\n\n return result;\n\n case 'm':\n return withoutSuffix ? 'ena minuta' : 'eno minuto';\n\n case 'mm':\n if (number === 1) {\n result += withoutSuffix ? 'minuta' : 'minuto';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'minuti' : 'minutama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'minute' : 'minutami';\n } else {\n result += withoutSuffix || isFuture ? 'minut' : 'minutami';\n }\n\n return result;\n\n case 'h':\n return withoutSuffix ? 'ena ura' : 'eno uro';\n\n case 'hh':\n if (number === 1) {\n result += withoutSuffix ? 'ura' : 'uro';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'uri' : 'urama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'ure' : 'urami';\n } else {\n result += withoutSuffix || isFuture ? 'ur' : 'urami';\n }\n\n return result;\n\n case 'd':\n return withoutSuffix || isFuture ? 'en dan' : 'enim dnem';\n\n case 'dd':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'dan' : 'dnem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevoma';\n } else {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevi';\n }\n\n return result;\n\n case 'M':\n return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem';\n\n case 'MM':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'mesec' : 'mesecem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'meseca' : 'mesecema';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'mesece' : 'meseci';\n } else {\n result += withoutSuffix || isFuture ? 'mesecev' : 'meseci';\n }\n\n return result;\n\n case 'y':\n return withoutSuffix || isFuture ? 'eno leto' : 'enim letom';\n\n case 'yy':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'leto' : 'letom';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'leti' : 'letoma';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'leta' : 'leti';\n } else {\n result += withoutSuffix || isFuture ? 'let' : 'leti';\n }\n\n return result;\n }\n }\n\n var sl = moment.defineLocale('sl', {\n months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split('_'),\n monthsShort: 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'nedelja_ponedeljek_torek_sreda_Äetrtek_petek_sobota'.split('_'),\n weekdaysShort: 'ned._pon._tor._sre._Äet._pet._sob.'.split('_'),\n weekdaysMin: 'ne_po_to_sr_Äe_pe_so'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD. MM. YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[danes ob] LT',\n nextDay: '[jutri ob] LT',\n nextWeek: function nextWeek() {\n switch (this.day()) {\n case 0:\n return '[v] [nedeljo] [ob] LT';\n\n case 3:\n return '[v] [sredo] [ob] LT';\n\n case 6:\n return '[v] [soboto] [ob] LT';\n\n case 1:\n case 2:\n case 4:\n case 5:\n return '[v] dddd [ob] LT';\n }\n },\n lastDay: '[vÄeraj ob] LT',\n lastWeek: function lastWeek() {\n switch (this.day()) {\n case 0:\n return '[prejÅ¡njo] [nedeljo] [ob] LT';\n\n case 3:\n return '[prejÅ¡njo] [sredo] [ob] LT';\n\n case 6:\n return '[prejÅ¡njo] [soboto] [ob] LT';\n\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prejÅ¡nji] dddd [ob] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'Äez %s',\n past: 'pred %s',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n }\n });\n return sl;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Albanian [sq]\n//! author : Flakërim Ismani : https://github.com/flakerimi\n//! author : Menelion Elensúle : https://github.com/Oire\n//! author : Oerd Cukalla : https://github.com/oerd\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var sq = moment.defineLocale('sq', {\n months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split('_'),\n monthsShort: 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'),\n weekdays: 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split('_'),\n weekdaysShort: 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'),\n weekdaysMin: 'D_H_Ma_Më_E_P_Sh'.split('_'),\n weekdaysParseExact: true,\n meridiemParse: /PD|MD/,\n isPM: function isPM(input) {\n return input.charAt(0) === 'M';\n },\n meridiem: function meridiem(hours, minutes, isLower) {\n return hours < 12 ? 'PD' : 'MD';\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Sot në] LT',\n nextDay: '[Nesër në] LT',\n nextWeek: 'dddd [në] LT',\n lastDay: '[Dje në] LT',\n lastWeek: 'dddd [e kaluar në] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'në %s',\n past: '%s më parë',\n s: 'disa sekonda',\n ss: '%d sekonda',\n m: 'një minutë',\n mm: '%d minuta',\n h: 'një orë',\n hh: '%d orë',\n d: 'një ditë',\n dd: '%d ditë',\n M: 'një muaj',\n MM: '%d muaj',\n y: 'një vit',\n yy: '%d vite'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return sq;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Serbian [sr]\n//! author : Milan JanaÄković<milanjanackovic@gmail.com> : https://github.com/milan-j\n//! author : Stefan Crnjaković <stefan@hotmail.rs> : https://github.com/crnjakovic\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['sekunda', 'sekunde', 'sekundi'],\n m: ['jedan minut', 'jedne minute'],\n mm: ['minut', 'minute', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n dd: ['dan', 'dana', 'dana'],\n MM: ['mesec', 'meseca', 'meseci'],\n yy: ['godina', 'godine', 'godina']\n },\n correctGrammaticalCase: function correctGrammaticalCase(number, wordKey) {\n return number === 1 ? wordKey[0] : number >= 2 && number <= 4 ? wordKey[1] : wordKey[2];\n },\n translate: function translate(number, withoutSuffix, key) {\n var wordKey = translator.words[key];\n\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return number + ' ' + translator.correctGrammaticalCase(number, wordKey);\n }\n }\n };\n var sr = moment.defineLocale('sr', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split('_'),\n monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'nedelja_ponedeljak_utorak_sreda_Äetvrtak_petak_subota'.split('_'),\n weekdaysShort: 'ned._pon._uto._sre._Äet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_Äe_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D. M. YYYY.',\n LL: 'D. MMMM YYYY.',\n LLL: 'D. MMMM YYYY. H:mm',\n LLLL: 'dddd, D. MMMM YYYY. H:mm'\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function nextWeek() {\n switch (this.day()) {\n case 0:\n return '[u] [nedelju] [u] LT';\n\n case 3:\n return '[u] [sredu] [u] LT';\n\n case 6:\n return '[u] [subotu] [u] LT';\n\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[juÄe u] LT',\n lastWeek: function lastWeek() {\n var lastWeekDays = ['[proÅ¡le] [nedelje] [u] LT', '[proÅ¡log] [ponedeljka] [u] LT', '[proÅ¡log] [utorka] [u] LT', '[proÅ¡le] [srede] [u] LT', '[proÅ¡log] [Äetvrtka] [u] LT', '[proÅ¡log] [petka] [u] LT', '[proÅ¡le] [subote] [u] LT'];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'za %s',\n past: 'pre %s',\n s: 'nekoliko sekundi',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: 'dan',\n dd: translator.translate,\n M: 'mesec',\n MM: translator.translate,\n y: 'godinu',\n yy: translator.translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n }\n });\n return sr;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Serbian Cyrillic [sr-cyrl]\n//! author : Milan JanaÄković<milanjanackovic@gmail.com> : https://github.com/milan-j\n//! author : Stefan Crnjaković <stefan@hotmail.rs> : https://github.com/crnjakovic\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['Ñекунда', 'Ñекунде', 'Ñекунди'],\n m: ['један минут', 'једне минуте'],\n mm: ['минут', 'минуте', 'минута'],\n h: ['један Ñат', 'једног Ñата'],\n hh: ['Ñат', 'Ñата', 'Ñати'],\n dd: ['дан', 'дана', 'дана'],\n MM: ['меÑец', 'меÑеца', 'меÑеци'],\n yy: ['година', 'године', 'година']\n },\n correctGrammaticalCase: function correctGrammaticalCase(number, wordKey) {\n return number === 1 ? wordKey[0] : number >= 2 && number <= 4 ? wordKey[1] : wordKey[2];\n },\n translate: function translate(number, withoutSuffix, key) {\n var wordKey = translator.words[key];\n\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return number + ' ' + translator.correctGrammaticalCase(number, wordKey);\n }\n }\n };\n var srCyrl = moment.defineLocale('sr-cyrl', {\n months: 'јануар_фебруар_март_април_мај_јун_јул_авгуÑÑ‚_Ñептембар_октобар_новембар_децембар'.split('_'),\n monthsShort: 'јан._феб._мар._апр._мај_јун_јул_авг._Ñеп._окт._нов._дец.'.split('_'),\n monthsParseExact: true,\n weekdays: 'недеља_понедељак_уторак_Ñреда_четвртак_петак_Ñубота'.split('_'),\n weekdaysShort: 'нед._пон._уто._Ñре._чет._пет._Ñуб.'.split('_'),\n weekdaysMin: 'не_по_ут_ÑÑ€_че_пе_Ñу'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D. M. YYYY.',\n LL: 'D. MMMM YYYY.',\n LLL: 'D. MMMM YYYY. H:mm',\n LLLL: 'dddd, D. MMMM YYYY. H:mm'\n },\n calendar: {\n sameDay: '[Ð´Ð°Ð½Ð°Ñ Ñƒ] LT',\n nextDay: '[Ñутра у] LT',\n nextWeek: function nextWeek() {\n switch (this.day()) {\n case 0:\n return '[у] [недељу] [у] LT';\n\n case 3:\n return '[у] [Ñреду] [у] LT';\n\n case 6:\n return '[у] [Ñуботу] [у] LT';\n\n case 1:\n case 2:\n case 4:\n case 5:\n return '[у] dddd [у] LT';\n }\n },\n lastDay: '[јуче у] LT',\n lastWeek: function lastWeek() {\n var lastWeekDays = ['[прошле] [недеље] [у] LT', '[прошлог] [понедељка] [у] LT', '[прошлог] [уторка] [у] LT', '[прошле] [Ñреде] [у] LT', '[прошлог] [четвртка] [у] LT', '[прошлог] [петка] [у] LT', '[прошле] [Ñуботе] [у] LT'];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'за %s',\n past: 'пре %s',\n s: 'неколико Ñекунди',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: 'дан',\n dd: translator.translate,\n M: 'меÑец',\n MM: translator.translate,\n y: 'годину',\n yy: translator.translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 1st is the first week of the year.\n\n }\n });\n return srCyrl;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : siSwati [ss]\n//! author : Nicolai Davies<mail@nicolai.io> : https://github.com/nicolaidavies\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var ss = moment.defineLocale('ss', {\n months: \"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni\".split('_'),\n monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'),\n weekdays: 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split('_'),\n weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'),\n weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A'\n },\n calendar: {\n sameDay: '[Namuhla nga] LT',\n nextDay: '[Kusasa nga] LT',\n nextWeek: 'dddd [nga] LT',\n lastDay: '[Itolo nga] LT',\n lastWeek: 'dddd [leliphelile] [nga] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'nga %s',\n past: 'wenteka nga %s',\n s: 'emizuzwana lomcane',\n ss: '%d mzuzwana',\n m: 'umzuzu',\n mm: '%d emizuzu',\n h: 'lihora',\n hh: '%d emahora',\n d: 'lilanga',\n dd: '%d emalanga',\n M: 'inyanga',\n MM: '%d tinyanga',\n y: 'umnyaka',\n yy: '%d iminyaka'\n },\n meridiemParse: /ekuseni|emini|entsambama|ebusuku/,\n meridiem: function meridiem(hours, minutes, isLower) {\n if (hours < 11) {\n return 'ekuseni';\n } else if (hours < 15) {\n return 'emini';\n } else if (hours < 19) {\n return 'entsambama';\n } else {\n return 'ebusuku';\n }\n },\n meridiemHour: function meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n\n if (meridiem === 'ekuseni') {\n return hour;\n } else if (meridiem === 'emini') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') {\n if (hour === 0) {\n return 0;\n }\n\n return hour + 12;\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: '%d',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return ss;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Swedish [sv]\n//! author : Jens Alm : https://github.com/ulmus\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var sv = moment.defineLocale('sv', {\n months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split('_'),\n monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'söndag_mÃ¥ndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'),\n weekdaysShort: 'sön_mÃ¥n_tis_ons_tor_fre_lör'.split('_'),\n weekdaysMin: 'sö_mÃ¥_ti_on_to_fr_lö'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [kl.] HH:mm',\n LLLL: 'dddd D MMMM YYYY [kl.] HH:mm',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd D MMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Idag] LT',\n nextDay: '[Imorgon] LT',\n lastDay: '[IgÃ¥r] LT',\n nextWeek: '[PÃ¥] dddd LT',\n lastWeek: '[I] dddd[s] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'om %s',\n past: 'för %s sedan',\n s: 'nÃ¥gra sekunder',\n ss: '%d sekunder',\n m: 'en minut',\n mm: '%d minuter',\n h: 'en timme',\n hh: '%d timmar',\n d: 'en dag',\n dd: '%d dagar',\n M: 'en mÃ¥nad',\n MM: '%d mÃ¥nader',\n y: 'ett Ã¥r',\n yy: '%d Ã¥r'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(\\:e|\\:a)/,\n ordinal: function ordinal(number) {\n var b = number % 10,\n output = ~~(number % 100 / 10) === 1 ? ':e' : b === 1 ? ':a' : b === 2 ? ':a' : b === 3 ? ':e' : ':e';\n return number + output;\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return sv;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Swahili [sw]\n//! author : Fahad Kassim : https://github.com/fadsel\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var sw = moment.defineLocale('sw', {\n months: 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split('_'),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split('_'),\n weekdaysShort: 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'),\n weekdaysMin: 'J2_J3_J4_J5_Al_Ij_J1'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'hh:mm A',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[leo saa] LT',\n nextDay: '[kesho saa] LT',\n nextWeek: '[wiki ijayo] dddd [saat] LT',\n lastDay: '[jana] LT',\n lastWeek: '[wiki iliyopita] dddd [saat] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s baadaye',\n past: 'tokea %s',\n s: 'hivi punde',\n ss: 'sekunde %d',\n m: 'dakika moja',\n mm: 'dakika %d',\n h: 'saa limoja',\n hh: 'masaa %d',\n d: 'siku moja',\n dd: 'siku %d',\n M: 'mwezi mmoja',\n MM: 'miezi %d',\n y: 'mwaka mmoja',\n yy: 'miaka %d'\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n }\n });\n return sw;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Tamil [ta]\n//! author : Arjunkumar Krishnamoorthy : https://github.com/tk120404\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var symbolMap = {\n 1: '௧',\n 2: '௨',\n 3: '௩',\n 4: '௪',\n 5: '௫',\n 6: '௬',\n 7: 'à¯',\n 8: '௮',\n 9: '௯',\n 0: '௦'\n },\n numberMap = {\n '௧': '1',\n '௨': '2',\n '௩': '3',\n '௪': '4',\n '௫': '5',\n '௬': '6',\n 'à¯': '7',\n '௮': '8',\n '௯': '9',\n '௦': '0'\n };\n var ta = moment.defineLocale('ta', {\n months: 'ஜனவரி_பிபà¯à®°à®µà®°à®¿_மாரà¯à®šà¯_à®à®ªà¯à®°à®²à¯_மே_ஜூனà¯_ஜூலை_ஆகஸà¯à®Ÿà¯_செபà¯à®Ÿà¯†à®®à¯à®ªà®°à¯_அகà¯à®Ÿà¯‡à®¾à®ªà®°à¯_நவமà¯à®ªà®°à¯_டிசமà¯à®ªà®°à¯'.split('_'),\n monthsShort: 'ஜனவரி_பிபà¯à®°à®µà®°à®¿_மாரà¯à®šà¯_à®à®ªà¯à®°à®²à¯_மே_ஜூனà¯_ஜூலை_ஆகஸà¯à®Ÿà¯_செபà¯à®Ÿà¯†à®®à¯à®ªà®°à¯_அகà¯à®Ÿà¯‡à®¾à®ªà®°à¯_நவமà¯à®ªà®°à¯_டிசமà¯à®ªà®°à¯'.split('_'),\n weekdays: 'ஞாயிறà¯à®±à¯à®•à¯à®•à®¿à®´à®®à¯ˆ_திஙà¯à®•à®Ÿà¯à®•à®¿à®´à®®à¯ˆ_செவà¯à®µà®¾à®¯à¯à®•à®¿à®´à®®à¯ˆ_பà¯à®¤à®©à¯à®•à®¿à®´à®®à¯ˆ_வியாழகà¯à®•à®¿à®´à®®à¯ˆ_வெளà¯à®³à®¿à®•à¯à®•à®¿à®´à®®à¯ˆ_சனிகà¯à®•à®¿à®´à®®à¯ˆ'.split('_'),\n weekdaysShort: 'ஞாயிறà¯_திஙà¯à®•à®³à¯_செவà¯à®µà®¾à®¯à¯_பà¯à®¤à®©à¯_வியாழனà¯_வெளà¯à®³à®¿_சனி'.split('_'),\n weekdaysMin: 'ஞா_தி_செ_பà¯_வி_வெ_ச'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, HH:mm',\n LLLL: 'dddd, D MMMM YYYY, HH:mm'\n },\n calendar: {\n sameDay: '[இனà¯à®±à¯] LT',\n nextDay: '[நாளை] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[நேறà¯à®±à¯] LT',\n lastWeek: '[கடநà¯à®¤ வாரமà¯] dddd, LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s இலà¯',\n past: '%s à®®à¯à®©à¯',\n s: 'ஒர௠சில விநாடிகளà¯',\n ss: '%d விநாடிகளà¯',\n m: 'ஒர௠நிமிடமà¯',\n mm: '%d நிமிடஙà¯à®•à®³à¯',\n h: 'ஒர௠மணி நேரமà¯',\n hh: '%d மணி நேரமà¯',\n d: 'ஒர௠நாளà¯',\n dd: '%d நாடà¯à®•à®³à¯',\n M: 'ஒர௠மாதமà¯',\n MM: '%d மாதஙà¯à®•à®³à¯',\n y: 'ஒர௠வரà¯à®Ÿà®®à¯',\n yy: '%d ஆணà¯à®Ÿà¯à®•à®³à¯'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}வதà¯/,\n ordinal: function ordinal(number) {\n return number + 'வதà¯';\n },\n preparse: function preparse(string) {\n return string.replace(/[௧௨௩௪௫௬à¯à¯®à¯¯à¯¦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function postformat(string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // refer http://ta.wikipedia.org/s/1er1\n meridiemParse: /யாமமà¯|வைகறை|காலை|நணà¯à®ªà®•à®²à¯|எறà¯à®ªà®¾à®Ÿà¯|மாலை/,\n meridiem: function meridiem(hour, minute, isLower) {\n if (hour < 2) {\n return ' யாமமà¯';\n } else if (hour < 6) {\n return ' வைகறை'; // வைகறை\n } else if (hour < 10) {\n return ' காலை'; // காலை\n } else if (hour < 14) {\n return ' நணà¯à®ªà®•à®²à¯'; // நணà¯à®ªà®•à®²à¯\n } else if (hour < 18) {\n return ' எறà¯à®ªà®¾à®Ÿà¯'; // எறà¯à®ªà®¾à®Ÿà¯\n } else if (hour < 22) {\n return ' மாலை'; // மாலை\n } else {\n return ' யாமமà¯';\n }\n },\n meridiemHour: function meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n\n if (meridiem === 'யாமமà¯') {\n return hour < 2 ? hour : hour + 12;\n } else if (meridiem === 'வைகறை' || meridiem === 'காலை') {\n return hour;\n } else if (meridiem === 'நணà¯à®ªà®•à®²à¯') {\n return hour >= 10 ? hour : hour + 12;\n } else {\n return hour + 12;\n }\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n\n }\n });\n return ta;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Telugu [te]\n//! author : Krishna Chaitanya Thota : https://github.com/kcthota\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var te = moment.defineLocale('te', {\n months: 'జనవరి_à°«à°¿à°¬à±à°°à°µà°°à°¿_మారà±à°šà°¿_à°à°ªà±à°°à°¿à°²à±_మే_జూనà±_à°œà±à°²à±ˆ_ఆగసà±à°Ÿà±_సెపà±à°Ÿà±†à°‚బరà±_à°…à°•à±à°Ÿà±‹à°¬à°°à±_నవంబరà±_డిసెంబరà±'.split('_'),\n monthsShort: 'జన._à°«à°¿à°¬à±à°°._మారà±à°šà°¿_à°à°ªà±à°°à°¿._మే_జూనà±_à°œà±à°²à±ˆ_ఆగ._సెపà±._à°…à°•à±à°Ÿà±‹._నవ._డిసె.'.split('_'),\n monthsParseExact: true,\n weekdays: 'ఆదివారం_సోమవారం_మంగళవారం_à°¬à±à°§à°µà°¾à°°à°‚_à°—à±à°°à±à°µà°¾à°°à°‚_à°¶à±à°•à±à°°à°µà°¾à°°à°‚_శనివారం'.split('_'),\n weekdaysShort: 'ఆది_సోమ_మంగళ_à°¬à±à°§_à°—à±à°°à±_à°¶à±à°•à±à°°_శని'.split('_'),\n weekdaysMin: 'à°†_సో_మం_à°¬à±_à°—à±_à°¶à±_à°¶'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm'\n },\n calendar: {\n sameDay: '[నేడà±] LT',\n nextDay: '[రేపà±] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[నినà±à°¨] LT',\n lastWeek: '[à°—à°¤] dddd, LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s లో',\n past: '%s à°•à±à°°à°¿à°¤à°‚',\n s: 'కొనà±à°¨à°¿ à°•à±à°·à°£à°¾à°²à±',\n ss: '%d సెకనà±à°²à±',\n m: 'à°’à°• నిమిషం',\n mm: '%d నిమిషాలà±',\n h: 'à°’à°• à°—à°‚à°Ÿ',\n hh: '%d à°—à°‚à°Ÿà°²à±',\n d: 'à°’à°• రోజà±',\n dd: '%d రోజà±à°²à±',\n M: 'à°’à°• నెల',\n MM: '%d నెలలà±',\n y: 'à°’à°• సంవతà±à°¸à°°à°‚',\n yy: '%d సంవతà±à°¸à°°à°¾à°²à±'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}à°µ/,\n ordinal: '%dà°µ',\n meridiemParse: /రాతà±à°°à°¿|ఉదయం|మధà±à°¯à°¾à°¹à±à°¨à°‚|సాయంతà±à°°à°‚/,\n meridiemHour: function meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n\n if (meridiem === 'రాతà±à°°à°¿') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ఉదయం') {\n return hour;\n } else if (meridiem === 'మధà±à°¯à°¾à°¹à±à°¨à°‚') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'సాయంతà±à°°à°‚') {\n return hour + 12;\n }\n },\n meridiem: function meridiem(hour, minute, isLower) {\n if (hour < 4) {\n return 'రాతà±à°°à°¿';\n } else if (hour < 10) {\n return 'ఉదయం';\n } else if (hour < 17) {\n return 'మధà±à°¯à°¾à°¹à±à°¨à°‚';\n } else if (hour < 20) {\n return 'సాయంతà±à°°à°‚';\n } else {\n return 'రాతà±à°°à°¿';\n }\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n\n }\n });\n return te;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Tetun Dili (East Timor) [tet]\n//! author : Joshua Brooks : https://github.com/joshbrooks\n//! author : Onorio De J. Afonso : https://github.com/marobo\n//! author : Sonia Simoes : https://github.com/soniasimoes\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var tet = moment.defineLocale('tet', {\n months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split('_'),\n monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),\n weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'),\n weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'),\n weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Ohin iha] LT',\n nextDay: '[Aban iha] LT',\n nextWeek: 'dddd [iha] LT',\n lastDay: '[Horiseik iha] LT',\n lastWeek: 'dddd [semana kotuk] [iha] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'iha %s',\n past: '%s liuba',\n s: 'segundu balun',\n ss: 'segundu %d',\n m: 'minutu ida',\n mm: 'minutu %d',\n h: 'oras ida',\n hh: 'oras %d',\n d: 'loron ida',\n dd: 'loron %d',\n M: 'fulan ida',\n MM: 'fulan %d',\n y: 'tinan ida',\n yy: 'tinan %d'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function ordinal(number) {\n var b = number % 10,\n output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return tet;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Tajik [tg]\n//! author : Orif N. Jr. : https://github.com/orif-jr\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var suffixes = {\n 0: '-ум',\n 1: '-ум',\n 2: '-юм',\n 3: '-юм',\n 4: '-ум',\n 5: '-ум',\n 6: '-ум',\n 7: '-ум',\n 8: '-ум',\n 9: '-ум',\n 10: '-ум',\n 12: '-ум',\n 13: '-ум',\n 20: '-ум',\n 30: '-юм',\n 40: '-ум',\n 50: '-ум',\n 60: '-ум',\n 70: '-ум',\n 80: '-ум',\n 90: '-ум',\n 100: '-ум'\n };\n var tg = moment.defineLocale('tg', {\n months: {\n format: 'Ñнвари_феврали_марти_апрели_майи_июни_июли_авгуÑти_ÑентÑбри_октÑбри_ноÑбри_декабри'.split('_'),\n standalone: 'Ñнвар_феврал_март_апрел_май_июн_июл_авгуÑÑ‚_ÑентÑбр_октÑбр_ноÑбр_декабр'.split('_')\n },\n monthsShort: 'Ñнв_фев_мар_апр_май_июн_июл_авг_Ñен_окт_ноÑ_дек'.split('_'),\n weekdays: 'Ñкшанбе_душанбе_Ñешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split('_'),\n weekdaysShort: 'Ñшб_дшб_Ñшб_чшб_пшб_ҷум_шнб'.split('_'),\n weekdaysMin: 'Ñш_дш_Ñш_чш_пш_ҷм_шб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Имрӯз Ñоати] LT',\n nextDay: '[Фардо Ñоати] LT',\n lastDay: '[Дирӯз Ñоати] LT',\n nextWeek: 'dddd[и] [ҳафтаи оÑнда Ñоати] LT',\n lastWeek: 'dddd[и] [ҳафтаи гузашта Ñоати] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'баъди %s',\n past: '%s пеш',\n s: 'Ñкчанд ÑониÑ',\n m: 'Ñк дақиқа',\n mm: '%d дақиқа',\n h: 'Ñк Ñоат',\n hh: '%d Ñоат',\n d: 'Ñк рӯз',\n dd: '%d рӯз',\n M: 'Ñк моҳ',\n MM: '%d моҳ',\n y: 'Ñк Ñол',\n yy: '%d Ñол'\n },\n meridiemParse: /шаб|Ñубҳ|рӯз|бегоҳ/,\n meridiemHour: function meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n\n if (meridiem === 'шаб') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'Ñубҳ') {\n return hour;\n } else if (meridiem === 'рӯз') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'бегоҳ') {\n return hour + 12;\n }\n },\n meridiem: function meridiem(hour, minute, isLower) {\n if (hour < 4) {\n return 'шаб';\n } else if (hour < 11) {\n return 'Ñубҳ';\n } else if (hour < 16) {\n return 'рӯз';\n } else if (hour < 19) {\n return 'бегоҳ';\n } else {\n return 'шаб';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ум|юм)/,\n ordinal: function ordinal(number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 1th is the first week of the year.\n\n }\n });\n return tg;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Thai [th]\n//! author : Kridsada Thanabulpong : https://github.com/sirn\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var th = moment.defineLocale('th', {\n months: 'มà¸à¸£à¸²à¸„ม_à¸à¸¸à¸¡à¸ าพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_à¸à¸£à¸à¸Žà¸²à¸„ม_สิงหาคม_à¸à¸±à¸™à¸¢à¸²à¸¢à¸™_ตุลาคม_พฤศจิà¸à¸²à¸¢à¸™_ธันวาคม'.split('_'),\n monthsShort: 'ม.ค._à¸.พ._มี.ค._เม.ย._พ.ค._มิ.ย._à¸.ค._ส.ค._à¸.ย._ต.ค._พ.ย._ธ.ค.'.split('_'),\n monthsParseExact: true,\n weekdays: 'à¸à¸²à¸—ิตย์_จันทร์_à¸à¸±à¸‡à¸„าร_พุธ_พฤหัสบดี_ศุà¸à¸£à¹Œ_เสาร์'.split('_'),\n weekdaysShort: 'à¸à¸²à¸—ิตย์_จันทร์_à¸à¸±à¸‡à¸„าร_พุธ_พฤหัส_ศุà¸à¸£à¹Œ_เสาร์'.split('_'),\n // yes, three characters difference\n weekdaysMin: 'à¸à¸²._จ._à¸._พ._พฤ._ศ._ส.'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY เวลา H:mm',\n LLLL: 'วันddddที่ D MMMM YYYY เวลา H:mm'\n },\n meridiemParse: /à¸à¹ˆà¸à¸™à¹€à¸—ี่ยง|หลังเที่ยง/,\n isPM: function isPM(input) {\n return input === 'หลังเที่ยง';\n },\n meridiem: function meridiem(hour, minute, isLower) {\n if (hour < 12) {\n return 'à¸à¹ˆà¸à¸™à¹€à¸—ี่ยง';\n } else {\n return 'หลังเที่ยง';\n }\n },\n calendar: {\n sameDay: '[วันนี้ เวลา] LT',\n nextDay: '[พรุ่งนี้ เวลา] LT',\n nextWeek: 'dddd[หน้า เวลา] LT',\n lastDay: '[เมื่à¸à¸§à¸²à¸™à¸™à¸µà¹‰ เวลา] LT',\n lastWeek: '[วัน]dddd[ที่à¹à¸¥à¹‰à¸§ เวลา] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'à¸à¸µà¸ %s',\n past: '%sที่à¹à¸¥à¹‰à¸§',\n s: 'ไม่à¸à¸µà¹ˆà¸§à¸´à¸™à¸²à¸—ี',\n ss: '%d วินาที',\n m: '1 นาที',\n mm: '%d นาที',\n h: '1 ชั่วโมง',\n hh: '%d ชั่วโมง',\n d: '1 วัน',\n dd: '%d วัน',\n w: '1 สัปดาห์',\n ww: '%d สัปดาห์',\n M: '1 เดืà¸à¸™',\n MM: '%d เดืà¸à¸™',\n y: '1 ปี',\n yy: '%d ปี'\n }\n });\n return th;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Turkmen [tk]\n//! author : Atamyrat Abdyrahmanov : https://github.com/atamyratabdy\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var suffixes = {\n 1: \"'inji\",\n 5: \"'inji\",\n 8: \"'inji\",\n 70: \"'inji\",\n 80: \"'inji\",\n 2: \"'nji\",\n 7: \"'nji\",\n 20: \"'nji\",\n 50: \"'nji\",\n 3: \"'ünji\",\n 4: \"'ünji\",\n 100: \"'ünji\",\n 6: \"'njy\",\n 9: \"'unjy\",\n 10: \"'unjy\",\n 30: \"'unjy\",\n 60: \"'ynjy\",\n 90: \"'ynjy\"\n };\n var tk = moment.defineLocale('tk', {\n months: 'Ãanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr'.split('_'),\n monthsShort: 'Ãan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek'.split('_'),\n weekdays: 'ÃekÅŸenbe_DuÅŸenbe_SiÅŸenbe_ÇarÅŸenbe_PenÅŸenbe_Anna_Åženbe'.split('_'),\n weekdaysShort: 'Ãek_DuÅŸ_SiÅŸ_Çar_Pen_Ann_Åžen'.split('_'),\n weekdaysMin: 'Ãk_DÅŸ_SÅŸ_Çr_Pn_An_Åžn'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[bugün sagat] LT',\n nextDay: '[ertir sagat] LT',\n nextWeek: '[indiki] dddd [sagat] LT',\n lastDay: '[düýn] LT',\n lastWeek: '[geçen] dddd [sagat] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s soň',\n past: '%s öň',\n s: 'birnäçe sekunt',\n m: 'bir minut',\n mm: '%d minut',\n h: 'bir sagat',\n hh: '%d sagat',\n d: 'bir gün',\n dd: '%d gün',\n M: 'bir aý',\n MM: '%d aý',\n y: 'bir ýyl',\n yy: '%d ýyl'\n },\n ordinal: function ordinal(number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'Do':\n case 'DD':\n return number;\n\n default:\n if (number === 0) {\n // special case for zero\n return number + \"'unjy\";\n }\n\n var a = number % 10,\n b = number % 100 - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n }\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n }\n });\n return tk;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Tagalog (Philippines) [tl-ph]\n//! author : Dan Hagman : https://github.com/hagmandan\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var tlPh = moment.defineLocale('tl-ph', {\n months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split('_'),\n monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split('_'),\n weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'MM/D/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY HH:mm',\n LLLL: 'dddd, MMMM DD, YYYY HH:mm'\n },\n calendar: {\n sameDay: 'LT [ngayong araw]',\n nextDay: '[Bukas ng] LT',\n nextWeek: 'LT [sa susunod na] dddd',\n lastDay: 'LT [kahapon]',\n lastWeek: 'LT [noong nakaraang] dddd',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'sa loob ng %s',\n past: '%s ang nakalipas',\n s: 'ilang segundo',\n ss: '%d segundo',\n m: 'isang minuto',\n mm: '%d minuto',\n h: 'isang oras',\n hh: '%d oras',\n d: 'isang araw',\n dd: '%d araw',\n M: 'isang buwan',\n MM: '%d buwan',\n y: 'isang taon',\n yy: '%d taon'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function ordinal(number) {\n return number;\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return tlPh;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Klingon [tlh]\n//! author : Dominika Kruk : https://github.com/amaranthrose\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_');\n\n function translateFuture(output) {\n var time = output;\n time = output.indexOf('jaj') !== -1 ? time.slice(0, -3) + 'leS' : output.indexOf('jar') !== -1 ? time.slice(0, -3) + 'waQ' : output.indexOf('DIS') !== -1 ? time.slice(0, -3) + 'nem' : time + ' pIq';\n return time;\n }\n\n function translatePast(output) {\n var time = output;\n time = output.indexOf('jaj') !== -1 ? time.slice(0, -3) + 'Hu’' : output.indexOf('jar') !== -1 ? time.slice(0, -3) + 'wen' : output.indexOf('DIS') !== -1 ? time.slice(0, -3) + 'ben' : time + ' ret';\n return time;\n }\n\n function translate(number, withoutSuffix, string, isFuture) {\n var numberNoun = numberAsNoun(number);\n\n switch (string) {\n case 'ss':\n return numberNoun + ' lup';\n\n case 'mm':\n return numberNoun + ' tup';\n\n case 'hh':\n return numberNoun + ' rep';\n\n case 'dd':\n return numberNoun + ' jaj';\n\n case 'MM':\n return numberNoun + ' jar';\n\n case 'yy':\n return numberNoun + ' DIS';\n }\n }\n\n function numberAsNoun(number) {\n var hundred = Math.floor(number % 1000 / 100),\n ten = Math.floor(number % 100 / 10),\n one = number % 10,\n word = '';\n\n if (hundred > 0) {\n word += numbersNouns[hundred] + 'vatlh';\n }\n\n if (ten > 0) {\n word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH';\n }\n\n if (one > 0) {\n word += (word !== '' ? ' ' : '') + numbersNouns[one];\n }\n\n return word === '' ? 'pagh' : word;\n }\n\n var tlh = moment.defineLocale('tlh', {\n months: 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split('_'),\n monthsShort: 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split('_'),\n monthsParseExact: true,\n weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n weekdaysShort: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n weekdaysMin: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[DaHjaj] LT',\n nextDay: '[wa’leS] LT',\n nextWeek: 'LLL',\n lastDay: '[wa’Hu’] LT',\n lastWeek: 'LLL',\n sameElse: 'L'\n },\n relativeTime: {\n future: translateFuture,\n past: translatePast,\n s: 'puS lup',\n ss: translate,\n m: 'wa’ tup',\n mm: translate,\n h: 'wa’ rep',\n hh: translate,\n d: 'wa’ jaj',\n dd: translate,\n M: 'wa’ jar',\n MM: translate,\n y: 'wa’ DIS',\n yy: translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return tlh;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Turkish [tr]\n//! authors : Erhan Gundogan : https://github.com/erhangundogan,\n//! Burak YiÄŸit Kaya: https://github.com/BYK\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var suffixes = {\n 1: \"'inci\",\n 5: \"'inci\",\n 8: \"'inci\",\n 70: \"'inci\",\n 80: \"'inci\",\n 2: \"'nci\",\n 7: \"'nci\",\n 20: \"'nci\",\n 50: \"'nci\",\n 3: \"'üncü\",\n 4: \"'üncü\",\n 100: \"'üncü\",\n 6: \"'ncı\",\n 9: \"'uncu\",\n 10: \"'uncu\",\n 30: \"'uncu\",\n 60: \"'ıncı\",\n 90: \"'ıncı\"\n };\n var tr = moment.defineLocale('tr', {\n months: 'Ocak_Åžubat_Mart_Nisan_Mayıs_Haziran_Temmuz_AÄŸustos_Eylül_Ekim_Kasım_Aralık'.split('_'),\n monthsShort: 'Oca_Åžub_Mar_Nis_May_Haz_Tem_AÄŸu_Eyl_Eki_Kas_Ara'.split('_'),\n weekdays: 'Pazar_Pazartesi_Salı_ÇarÅŸamba_PerÅŸembe_Cuma_Cumartesi'.split('_'),\n weekdaysShort: 'Paz_Pts_Sal_Çar_Per_Cum_Cts'.split('_'),\n weekdaysMin: 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),\n meridiem: function meridiem(hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'öö' : 'ÖÖ';\n } else {\n return isLower ? 'ös' : 'ÖS';\n }\n },\n meridiemParse: /öö|ÖÖ|ös|ÖS/,\n isPM: function isPM(input) {\n return input === 'ös' || input === 'ÖS';\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[bugün saat] LT',\n nextDay: '[yarın saat] LT',\n nextWeek: '[gelecek] dddd [saat] LT',\n lastDay: '[dün] LT',\n lastWeek: '[geçen] dddd [saat] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s sonra',\n past: '%s önce',\n s: 'birkaç saniye',\n ss: '%d saniye',\n m: 'bir dakika',\n mm: '%d dakika',\n h: 'bir saat',\n hh: '%d saat',\n d: 'bir gün',\n dd: '%d gün',\n w: 'bir hafta',\n ww: '%d hafta',\n M: 'bir ay',\n MM: '%d ay',\n y: 'bir yıl',\n yy: '%d yıl'\n },\n ordinal: function ordinal(number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'Do':\n case 'DD':\n return number;\n\n default:\n if (number === 0) {\n // special case for zero\n return number + \"'ıncı\";\n }\n\n var a = number % 10,\n b = number % 100 - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n }\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n }\n });\n return tr;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Talossan [tzl]\n//! author : Robin van der Vliet : https://github.com/robin0van0der0v\n//! author : Iustì Canun\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals.\n // This is currently too difficult (maybe even impossible) to add.\n\n var tzl = moment.defineLocale('tzl', {\n months: 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split('_'),\n monthsShort: 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'),\n weekdays: 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'),\n weekdaysShort: 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'),\n weekdaysMin: 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM [dallas] YYYY',\n LLL: 'D. MMMM [dallas] YYYY HH.mm',\n LLLL: 'dddd, [li] D. MMMM [dallas] YYYY HH.mm'\n },\n meridiemParse: /d\\'o|d\\'a/i,\n isPM: function isPM(input) {\n return \"d'o\" === input.toLowerCase();\n },\n meridiem: function meridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? \"d'o\" : \"D'O\";\n } else {\n return isLower ? \"d'a\" : \"D'A\";\n }\n },\n calendar: {\n sameDay: '[oxhi à ] LT',\n nextDay: '[demà à ] LT',\n nextWeek: 'dddd [à ] LT',\n lastDay: '[ieiri à ] LT',\n lastWeek: '[sür el] dddd [lasteu à ] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'osprei %s',\n past: 'ja%s',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['viensas secunds', \"'iensas secunds\"],\n ss: [number + ' secunds', '' + number + ' secunds'],\n m: [\"'n mÃut\", \"'iens mÃut\"],\n mm: [number + ' mÃuts', '' + number + ' mÃuts'],\n h: [\"'n þora\", \"'iensa þora\"],\n hh: [number + ' þoras', '' + number + ' þoras'],\n d: [\"'n ziua\", \"'iensa ziua\"],\n dd: [number + ' ziuas', '' + number + ' ziuas'],\n M: [\"'n mes\", \"'iens mes\"],\n MM: [number + ' mesen', '' + number + ' mesen'],\n y: [\"'n ar\", \"'iens ar\"],\n yy: [number + ' ars', '' + number + ' ars']\n };\n return isFuture ? format[key][0] : withoutSuffix ? format[key][0] : format[key][1];\n }\n\n return tzl;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Central Atlas Tamazight [tzm]\n//! author : Abdel Said : https://github.com/abdelsaid\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var tzm = moment.defineLocale('tzm', {\n months: 'ⵉâµâµâ´°âµ¢âµ”_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓâµâµ¢âµ“_ⵢⵓâµâµ¢âµ“âµ£_ⵖⵓⵛⵜ_ⵛⵓⵜⴰâµâ´±âµ‰âµ”_ⴽⵟⵓⴱⵕ_âµâµ“ⵡⴰâµâ´±âµ‰âµ”_ⴷⵓⵊâµâ´±âµ‰âµ”'.split('_'),\n monthsShort: 'ⵉâµâµâ´°âµ¢âµ”_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓâµâµ¢âµ“_ⵢⵓâµâµ¢âµ“âµ£_ⵖⵓⵛⵜ_ⵛⵓⵜⴰâµâ´±âµ‰âµ”_ⴽⵟⵓⴱⵕ_âµâµ“ⵡⴰâµâ´±âµ‰âµ”_ⴷⵓⵊâµâ´±âµ‰âµ”'.split('_'),\n weekdays: 'ⴰⵙⴰⵎⴰⵙ_â´°âµ¢âµâ´°âµ™_ⴰⵙⵉâµâ´°âµ™_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n weekdaysShort: 'ⴰⵙⴰⵎⴰⵙ_â´°âµ¢âµâ´°âµ™_ⴰⵙⵉâµâ´°âµ™_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n weekdaysMin: 'ⴰⵙⴰⵎⴰⵙ_â´°âµ¢âµâ´°âµ™_ⴰⵙⵉâµâ´°âµ™_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[ⴰⵙⴷⵅ â´´] LT',\n nextDay: '[ⴰⵙⴽⴰ â´´] LT',\n nextWeek: 'dddd [â´´] LT',\n lastDay: '[ⴰⵚⴰâµâµœ â´´] LT',\n lastWeek: 'dddd [â´´] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'â´·â´°â´·âµ… âµ™ ⵢⴰⵠ%s',\n past: 'ⵢⴰⵠ%s',\n s: 'ⵉⵎⵉⴽ',\n ss: '%d ⵉⵎⵉⴽ',\n m: 'ⵎⵉâµâµ“â´º',\n mm: '%d ⵎⵉâµâµ“â´º',\n h: 'ⵙⴰⵄⴰ',\n hh: '%d ⵜⴰⵙⵙⴰⵄⵉâµ',\n d: 'ⴰⵙⵙ',\n dd: '%d oⵙⵙⴰâµ',\n M: 'â´°âµ¢oⵓⵔ',\n MM: '%d ⵉⵢⵢⵉⵔâµ',\n y: 'ⴰⵙⴳⴰⵙ',\n yy: '%d ⵉⵙⴳⴰⵙâµ'\n },\n week: {\n dow: 6,\n // Saturday is the first day of the week.\n doy: 12 // The week that contains Jan 12th is the first week of the year.\n\n }\n });\n return tzm;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Central Atlas Tamazight Latin [tzm-latn]\n//! author : Abdel Said : https://github.com/abdelsaid\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var tzmLatn = moment.defineLocale('tzm-latn', {\n months: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_É£wÅ¡t_Å¡wtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split('_'),\n monthsShort: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_É£wÅ¡t_Å¡wtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split('_'),\n weekdays: 'asamas_aynas_asinas_akras_akwas_asimwas_asiá¸yas'.split('_'),\n weekdaysShort: 'asamas_aynas_asinas_akras_akwas_asimwas_asiá¸yas'.split('_'),\n weekdaysMin: 'asamas_aynas_asinas_akras_akwas_asimwas_asiá¸yas'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[asdkh g] LT',\n nextDay: '[aska g] LT',\n nextWeek: 'dddd [g] LT',\n lastDay: '[assant g] LT',\n lastWeek: 'dddd [g] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'dadkh s yan %s',\n past: 'yan %s',\n s: 'imik',\n ss: '%d imik',\n m: 'minuá¸',\n mm: '%d minuá¸',\n h: 'saÉ›a',\n hh: '%d tassaÉ›in',\n d: 'ass',\n dd: '%d ossan',\n M: 'ayowr',\n MM: '%d iyyirn',\n y: 'asgas',\n yy: '%d isgasn'\n },\n week: {\n dow: 6,\n // Saturday is the first day of the week.\n doy: 12 // The week that contains Jan 12th is the first week of the year.\n\n }\n });\n return tzmLatn;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Uyghur (China) [ug-cn]\n//! author: boyaq : https://github.com/boyaq\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var ugCn = moment.defineLocale('ug-cn', {\n months: 'يانۋار_ÙÛۋرال_مارت_ئاپرÛÙ„_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سÛنتەبىر_ئۆكتەبىر_نويابىر_دÛكابىر'.split('_'),\n monthsShort: 'يانۋار_ÙÛۋرال_مارت_ئاپرÛÙ„_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سÛنتەبىر_ئۆكتەبىر_نويابىر_دÛكابىر'.split('_'),\n weekdays: 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە'.split('_'),\n weekdaysShort: 'ÙŠÛ•_دۈ_سە_چا_Ù¾Û•_جۈ_Ø´Û•'.split('_'),\n weekdaysMin: 'ÙŠÛ•_دۈ_سە_چا_Ù¾Û•_جۈ_Ø´Û•'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY-يىلىM-ئاينىÚD-كۈنى',\n LLL: 'YYYY-يىلىM-ئاينىÚD-كۈنى، HH:mm',\n LLLL: 'ddddØŒ YYYY-يىلىM-ئاينىÚD-كۈنى، HH:mm'\n },\n meridiemParse: /ÙŠÛرىم ÙƒÛÚ†Û•|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن ÙƒÛيىن|ÙƒÛ•Ú†/,\n meridiemHour: function meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n\n if (meridiem === 'ÙŠÛرىم ÙƒÛÚ†Û•' || meridiem === 'سەھەر' || meridiem === 'چۈشتىن بۇرۇن') {\n return hour;\n } else if (meridiem === 'چۈشتىن ÙƒÛيىن' || meridiem === 'ÙƒÛ•Ú†') {\n return hour + 12;\n } else {\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem: function meridiem(hour, minute, isLower) {\n var hm = hour * 100 + minute;\n\n if (hm < 600) {\n return 'ÙŠÛرىم ÙƒÛÚ†Û•';\n } else if (hm < 900) {\n return 'سەھەر';\n } else if (hm < 1130) {\n return 'چۈشتىن بۇرۇن';\n } else if (hm < 1230) {\n return 'چۈش';\n } else if (hm < 1800) {\n return 'چۈشتىن ÙƒÛيىن';\n } else {\n return 'ÙƒÛ•Ú†';\n }\n },\n calendar: {\n sameDay: '[بۈگۈن سائەت] LT',\n nextDay: '[ئەتە سائەت] LT',\n nextWeek: '[ÙƒÛلەركى] dddd [سائەت] LT',\n lastDay: '[تۆنۈگۈن] LT',\n lastWeek: '[ئالدىنقى] dddd [سائەت] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s ÙƒÛيىن',\n past: '%s بۇرۇن',\n s: 'Ù†Û•Ú†Ú†Û• سÛكونت',\n ss: '%d سÛكونت',\n m: 'بىر مىنۇت',\n mm: '%d مىنۇت',\n h: 'بىر سائەت',\n hh: '%d سائەت',\n d: 'بىر ÙƒÛˆÙ†',\n dd: '%d ÙƒÛˆÙ†',\n M: 'بىر ئاي',\n MM: '%d ئاي',\n y: 'بىر يىل',\n yy: '%d يىل'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,\n ordinal: function ordinal(number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '-كۈنى';\n\n case 'w':\n case 'W':\n return number + '-ھەپتە';\n\n default:\n return number;\n }\n },\n preparse: function preparse(string) {\n return string.replace(/ØŒ/g, ',');\n },\n postformat: function postformat(string) {\n return string.replace(/,/g, 'ØŒ');\n },\n week: {\n // GB/T 7408-1994《数æ®å…ƒå’Œäº¤æ¢æ ¼å¼Â·ä¿¡æ¯äº¤æ¢Â·æ—¥æœŸå’Œæ—¶é—´è¡¨ç¤ºæ³•ã€‹ä¸ŽISO 8601:1988ç‰æ•ˆ\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 1st is the first week of the year.\n\n }\n });\n return ugCn;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Ukrainian [uk]\n//! author : zemlanin : https://github.com/zemlanin\n//! Author : Menelion Elensúle : https://github.com/Oire\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11 ? forms[0] : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2];\n }\n\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'Ñекунда_Ñекунди_Ñекунд' : 'Ñекунду_Ñекунди_Ñекунд',\n mm: withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин',\n hh: withoutSuffix ? 'година_години_годин' : 'годину_години_годин',\n dd: 'день_дні_днів',\n MM: 'міÑÑць_міÑÑці_міÑÑців',\n yy: 'рік_роки_років'\n };\n\n if (key === 'm') {\n return withoutSuffix ? 'хвилина' : 'хвилину';\n } else if (key === 'h') {\n return withoutSuffix ? 'година' : 'годину';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n\n function weekdaysCaseReplace(m, format) {\n var weekdays = {\n nominative: 'неділÑ_понеділок_вівторок_Ñереда_четвер_п’ÑтницÑ_Ñубота'.split('_'),\n accusative: 'неділю_понеділок_вівторок_Ñереду_четвер_п’Ñтницю_Ñуботу'.split('_'),\n genitive: 'неділі_понеділка_вівторка_Ñереди_четверга_п’Ñтниці_Ñуботи'.split('_')\n },\n nounCase;\n\n if (m === true) {\n return weekdays['nominative'].slice(1, 7).concat(weekdays['nominative'].slice(0, 1));\n }\n\n if (!m) {\n return weekdays['nominative'];\n }\n\n nounCase = /(\\[[ВвУу]\\]) ?dddd/.test(format) ? 'accusative' : /\\[?(?:минулої|наÑтупної)? ?\\] ?dddd/.test(format) ? 'genitive' : 'nominative';\n return weekdays[nounCase][m.day()];\n }\n\n function processHoursFunction(str) {\n return function () {\n return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT';\n };\n }\n\n var uk = moment.defineLocale('uk', {\n months: {\n format: 'ÑічнÑ_лютого_березнÑ_квітнÑ_травнÑ_червнÑ_липнÑ_ÑерпнÑ_вереÑнÑ_жовтнÑ_лиÑтопада_груднÑ'.split('_'),\n standalone: 'Ñічень_лютий_березень_квітень_травень_червень_липень_Ñерпень_вереÑень_жовтень_лиÑтопад_грудень'.split('_')\n },\n monthsShort: 'Ñіч_лют_бер_квіт_трав_черв_лип_Ñерп_вер_жовт_лиÑÑ‚_груд'.split('_'),\n weekdays: weekdaysCaseReplace,\n weekdaysShort: 'нд_пн_вт_ÑÑ€_чт_пт_Ñб'.split('_'),\n weekdaysMin: 'нд_пн_вт_ÑÑ€_чт_пт_Ñб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY Ñ€.',\n LLL: 'D MMMM YYYY Ñ€., HH:mm',\n LLLL: 'dddd, D MMMM YYYY Ñ€., HH:mm'\n },\n calendar: {\n sameDay: processHoursFunction('[Сьогодні '),\n nextDay: processHoursFunction('[Завтра '),\n lastDay: processHoursFunction('[Вчора '),\n nextWeek: processHoursFunction('[У] dddd ['),\n lastWeek: function lastWeek() {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return processHoursFunction('[Минулої] dddd [').call(this);\n\n case 1:\n case 2:\n case 4:\n return processHoursFunction('[Минулого] dddd [').call(this);\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'за %s',\n past: '%s тому',\n s: 'декілька Ñекунд',\n ss: relativeTimeWithPlural,\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: 'годину',\n hh: relativeTimeWithPlural,\n d: 'день',\n dd: relativeTimeWithPlural,\n M: 'міÑÑць',\n MM: relativeTimeWithPlural,\n y: 'рік',\n yy: relativeTimeWithPlural\n },\n // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason\n meridiemParse: /ночі|ранку|днÑ|вечора/,\n isPM: function isPM(input) {\n return /^(днÑ|вечора)$/.test(input);\n },\n meridiem: function meridiem(hour, minute, isLower) {\n if (hour < 4) {\n return 'ночі';\n } else if (hour < 12) {\n return 'ранку';\n } else if (hour < 17) {\n return 'днÑ';\n } else {\n return 'вечора';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го)/,\n ordinal: function ordinal(number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return number + '-й';\n\n case 'D':\n return number + '-го';\n\n default:\n return number;\n }\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n }\n });\n return uk;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Urdu [ur]\n//! author : Sawood Alam : https://github.com/ibnesayeed\n//! author : Zack : https://github.com/ZackVision\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var months = ['جنوری', 'Ùروری', 'مارچ', 'اپریل', 'مئی', 'جون', 'جولائی', 'اگست', 'ستمبر', 'اکتوبر', 'نومبر', 'دسمبر'],\n days = ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعÛ', 'ÛÙتÛ'];\n var ur = moment.defineLocale('ur', {\n months: months,\n monthsShort: months,\n weekdays: days,\n weekdaysShort: days,\n weekdaysMin: days,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'ddddØŒ D MMMM YYYY HH:mm'\n },\n meridiemParse: /صبØ|شام/,\n isPM: function isPM(input) {\n return 'شام' === input;\n },\n meridiem: function meridiem(hour, minute, isLower) {\n if (hour < 12) {\n return 'صبØ';\n }\n\n return 'شام';\n },\n calendar: {\n sameDay: '[آج بوقت] LT',\n nextDay: '[Ú©Ù„ بوقت] LT',\n nextWeek: 'dddd [بوقت] LT',\n lastDay: '[Ú¯Ø°Ø´ØªÛ Ø±ÙˆØ² بوقت] LT',\n lastWeek: '[گذشتÛ] dddd [بوقت] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s بعد',\n past: '%s قبل',\n s: 'چند سیکنڈ',\n ss: '%d سیکنڈ',\n m: 'ایک منٹ',\n mm: '%d منٹ',\n h: 'ایک گھنٹÛ',\n hh: '%d گھنٹے',\n d: 'ایک دن',\n dd: '%d دن',\n M: 'ایک ماÛ',\n MM: '%d ماÛ',\n y: 'ایک سال',\n yy: '%d سال'\n },\n preparse: function preparse(string) {\n return string.replace(/ØŒ/g, ',');\n },\n postformat: function postformat(string) {\n return string.replace(/,/g, 'ØŒ');\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return ur;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Uzbek [uz]\n//! author : Sardor Muminov : https://github.com/muminoff\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var uz = moment.defineLocale('uz', {\n months: 'Ñнвар_феврал_март_апрел_май_июн_июл_авгуÑÑ‚_ÑентÑбр_октÑбр_ноÑбр_декабр'.split('_'),\n monthsShort: 'Ñнв_фев_мар_апр_май_июн_июл_авг_Ñен_окт_ноÑ_дек'.split('_'),\n weekdays: 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'),\n weekdaysShort: 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'),\n weekdaysMin: 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'D MMMM YYYY, dddd HH:mm'\n },\n calendar: {\n sameDay: '[Бугун Ñоат] LT [да]',\n nextDay: '[Ðртага] LT [да]',\n nextWeek: 'dddd [куни Ñоат] LT [да]',\n lastDay: '[Кеча Ñоат] LT [да]',\n lastWeek: '[Утган] dddd [куни Ñоат] LT [да]',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'Якин %s ичида',\n past: 'Бир неча %s олдин',\n s: 'фурÑат',\n ss: '%d фурÑат',\n m: 'бир дакика',\n mm: '%d дакика',\n h: 'бир Ñоат',\n hh: '%d Ñоат',\n d: 'бир кун',\n dd: '%d кун',\n M: 'бир ой',\n MM: '%d ой',\n y: 'бир йил',\n yy: '%d йил'\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return uz;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Uzbek Latin [uz-latn]\n//! author : Rasulbek Mirzayev : github.com/Rasulbeeek\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var uzLatn = moment.defineLocale('uz-latn', {\n months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split('_'),\n monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'),\n weekdays: 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split('_'),\n weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'),\n weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'D MMMM YYYY, dddd HH:mm'\n },\n calendar: {\n sameDay: '[Bugun soat] LT [da]',\n nextDay: '[Ertaga] LT [da]',\n nextWeek: 'dddd [kuni soat] LT [da]',\n lastDay: '[Kecha soat] LT [da]',\n lastWeek: \"[O'tgan] dddd [kuni soat] LT [da]\",\n sameElse: 'L'\n },\n relativeTime: {\n future: 'Yaqin %s ichida',\n past: 'Bir necha %s oldin',\n s: 'soniya',\n ss: '%d soniya',\n m: 'bir daqiqa',\n mm: '%d daqiqa',\n h: 'bir soat',\n hh: '%d soat',\n d: 'bir kun',\n dd: '%d kun',\n M: 'bir oy',\n MM: '%d oy',\n y: 'bir yil',\n yy: '%d yil'\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n }\n });\n return uzLatn;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Vietnamese [vi]\n//! author : Bang Nguyen : https://github.com/bangnk\n//! author : Chien Kira : https://github.com/chienkira\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var vi = moment.defineLocale('vi', {\n months: 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split('_'),\n monthsShort: 'Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12'.split('_'),\n monthsParseExact: true,\n weekdays: 'chủ nháºt_thứ hai_thứ ba_thứ tÆ°_thứ năm_thứ sáu_thứ bảy'.split('_'),\n weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysParseExact: true,\n meridiemParse: /sa|ch/i,\n isPM: function isPM(input) {\n return /^ch$/i.test(input);\n },\n meridiem: function meridiem(hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'sa' : 'SA';\n } else {\n return isLower ? 'ch' : 'CH';\n }\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [năm] YYYY',\n LLL: 'D MMMM [năm] YYYY HH:mm',\n LLLL: 'dddd, D MMMM [năm] YYYY HH:mm',\n l: 'DD/M/YYYY',\n ll: 'D MMM YYYY',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd, D MMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Hôm nay lúc] LT',\n nextDay: '[Ngà y mai lúc] LT',\n nextWeek: 'dddd [tuần tá»›i lúc] LT',\n lastDay: '[Hôm qua lúc] LT',\n lastWeek: 'dddd [tuần trÆ°á»›c lúc] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s tá»›i',\n past: '%s trÆ°á»›c',\n s: 'và i giây',\n ss: '%d giây',\n m: 'má»™t phút',\n mm: '%d phút',\n h: 'má»™t giá»',\n hh: '%d giá»',\n d: 'má»™t ngà y',\n dd: '%d ngà y',\n w: 'má»™t tuần',\n ww: '%d tuần',\n M: 'má»™t tháng',\n MM: '%d tháng',\n y: 'má»™t năm',\n yy: '%d năm'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function ordinal(number) {\n return number;\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return vi;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Pseudo [x-pseudo]\n//! author : Andrew Hood : https://github.com/andrewhood125\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var xPseudo = moment.defineLocale('x-pseudo', {\n months: 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Ãp~rÃl_~Máý_~Júñé~_Júl~ý_Ãú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split('_'),\n monthsShort: 'J~áñ_~Féb_~Már_~Ãpr_~Máý_~Júñ_~Júl_~Ãúg_~Sép_~Óct_~Ñóv_~Déc'.split('_'),\n monthsParseExact: true,\n weekdays: 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~FrÃd~áý_S~átúr~dáý'.split('_'),\n weekdaysShort: 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~FrÃ_~Sát'.split('_'),\n weekdaysMin: 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[T~ódá~ý át] LT',\n nextDay: '[T~ómó~rró~w át] LT',\n nextWeek: 'dddd [át] LT',\n lastDay: '[Ã~ést~érdá~ý át] LT',\n lastWeek: '[L~ást] dddd [át] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'Ã~ñ %s',\n past: '%s á~gó',\n s: 'á ~féw ~sécó~ñds',\n ss: '%d s~écóñ~ds',\n m: 'á ~mÃñ~úté',\n mm: '%d m~Ãñú~tés',\n h: 'á~ñ hó~úr',\n hh: '%d h~óúrs',\n d: 'á ~dáý',\n dd: '%d d~áýs',\n M: 'á ~móñ~th',\n MM: '%d m~óñt~hs',\n y: 'á ~ýéár',\n yy: '%d ý~éárs'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function ordinal(number) {\n var b = number % 10,\n output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return xPseudo;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Yoruba Nigeria [yo]\n//! author : Atolagbe Abisoye : https://github.com/andela-batolagbe\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var yo = moment.defineLocale('yo', {\n months: 'SẹÌrẹÌ_EÌ€reÌ€leÌ€_Ẹrẹ̀naÌ€_IÌ€gbeÌ_EÌ€bibi_OÌ€kuÌ€du_Agẹmo_OÌ€guÌn_Owewe_Ọ̀waÌ€raÌ€_BeÌluÌ_Ọ̀pẹ̀̀'.split('_'),\n monthsShort: 'SẹÌr_EÌ€rl_Ẹrn_IÌ€gb_EÌ€bi_OÌ€kuÌ€_Agẹ_OÌ€guÌ_Owe_Ọ̀waÌ€_BeÌl_Ọ̀pẹ̀̀'.split('_'),\n weekdays: 'AÌ€iÌ€kuÌ_AjeÌ_IÌ€sẹÌgun_Ọjá»ÌruÌ_Ọjá»Ìbá»_ẸtiÌ€_AÌ€baÌmẹÌta'.split('_'),\n weekdaysShort: 'AÌ€iÌ€k_AjeÌ_IÌ€sẹÌ_Ọjr_Ọjb_ẸtiÌ€_AÌ€baÌ'.split('_'),\n weekdaysMin: 'AÌ€iÌ€_Aj_IÌ€s_Ọr_Ọb_Ẹt_AÌ€b'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A'\n },\n calendar: {\n sameDay: '[OÌ€niÌ€ ni] LT',\n nextDay: '[Ọ̀la ni] LT',\n nextWeek: \"dddd [Ọsẹ̀ toÌn'bá»] [ni] LT\",\n lastDay: '[AÌ€na ni] LT',\n lastWeek: 'dddd [Ọsẹ̀ toÌlá»Ì] [ni] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'niÌ %s',\n past: '%s ká»jaÌ',\n s: 'iÌ€sẹjuÌ aayaÌ die',\n ss: 'aayaÌ %d',\n m: 'iÌ€sẹjuÌ kan',\n mm: 'iÌ€sẹjuÌ %d',\n h: 'waÌkati kan',\n hh: 'waÌkati %d',\n d: 'á»já»Ì kan',\n dd: 'á»já»Ì %d',\n M: 'osuÌ€ kan',\n MM: 'osuÌ€ %d',\n y: 'á»duÌn kan',\n yy: 'á»duÌn %d'\n },\n dayOfMonthOrdinalParse: /á»já»Ì\\s\\d{1,2}/,\n ordinal: 'á»já»Ì %d',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return yo;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Chinese (China) [zh-cn]\n//! author : suupic : https://github.com/suupic\n//! author : Zeno Zeng : https://github.com/zenozeng\n//! author : uu109 : https://github.com/uu109\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var zhCn = moment.defineLocale('zh-cn', {\n months: '一月_二月_三月_四月_五月_å…月_七月_八月_ä¹æœˆ_å月_å一月_å二月'.split('_'),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期å…'.split('_'),\n weekdaysShort: '周日_周一_周二_周三_周四_周五_周å…'.split('_'),\n weekdaysMin: 'æ—¥_一_二_三_å››_五_å…'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYYå¹´M月Dæ—¥',\n LLL: 'YYYYå¹´M月Dæ—¥Ah点mm分',\n LLLL: 'YYYYå¹´M月Dæ—¥ddddAh点mm分',\n l: 'YYYY/M/D',\n ll: 'YYYYå¹´M月Dæ—¥',\n lll: 'YYYYå¹´M月Dæ—¥ HH:mm',\n llll: 'YYYYå¹´M月Dæ—¥dddd HH:mm'\n },\n meridiemParse: /凌晨|早上|上åˆ|ä¸åˆ|下åˆ|晚上/,\n meridiemHour: function meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上åˆ') {\n return hour;\n } else if (meridiem === '下åˆ' || meridiem === '晚上') {\n return hour + 12;\n } else {\n // 'ä¸åˆ'\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem: function meridiem(hour, minute, isLower) {\n var hm = hour * 100 + minute;\n\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上åˆ';\n } else if (hm < 1230) {\n return 'ä¸åˆ';\n } else if (hm < 1800) {\n return '下åˆ';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天]LT',\n nextDay: '[明天]LT',\n nextWeek: function nextWeek(now) {\n if (now.week() !== this.week()) {\n return '[下]dddLT';\n } else {\n return '[本]dddLT';\n }\n },\n lastDay: '[昨天]LT',\n lastWeek: function lastWeek(now) {\n if (this.week() !== now.week()) {\n return '[上]dddLT';\n } else {\n return '[本]dddLT';\n }\n },\n sameElse: 'L'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(æ—¥|月|周)/,\n ordinal: function ordinal(number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + 'æ—¥';\n\n case 'M':\n return number + '月';\n\n case 'w':\n case 'W':\n return number + '周';\n\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%såŽ',\n past: '%så‰',\n s: 'å‡ ç§’',\n ss: '%d 秒',\n m: '1 分钟',\n mm: '%d 分钟',\n h: '1 å°æ—¶',\n hh: '%d å°æ—¶',\n d: '1 天',\n dd: '%d 天',\n w: '1 周',\n ww: '%d 周',\n M: '1 个月',\n MM: '%d 个月',\n y: '1 å¹´',\n yy: '%d å¹´'\n },\n week: {\n // GB/T 7408-1994《数æ®å…ƒå’Œäº¤æ¢æ ¼å¼Â·ä¿¡æ¯äº¤æ¢Â·æ—¥æœŸå’Œæ—¶é—´è¡¨ç¤ºæ³•ã€‹ä¸ŽISO 8601:1988ç‰æ•ˆ\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return zhCn;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Chinese (Hong Kong) [zh-hk]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n//! author : Konstantin : https://github.com/skfd\n//! author : Anthony : https://github.com/anthonylau\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var zhHk = moment.defineLocale('zh-hk', {\n months: '一月_二月_三月_四月_五月_å…月_七月_八月_ä¹æœˆ_å月_å一月_å二月'.split('_'),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期å…'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週å…'.split('_'),\n weekdaysMin: 'æ—¥_一_二_三_å››_五_å…'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYYå¹´M月Dæ—¥',\n LLL: 'YYYYå¹´M月Dæ—¥ HH:mm',\n LLLL: 'YYYYå¹´M月Dæ—¥dddd HH:mm',\n l: 'YYYY/M/D',\n ll: 'YYYYå¹´M月Dæ—¥',\n lll: 'YYYYå¹´M月Dæ—¥ HH:mm',\n llll: 'YYYYå¹´M月Dæ—¥dddd HH:mm'\n },\n meridiemParse: /凌晨|早上|上åˆ|ä¸åˆ|下åˆ|晚上/,\n meridiemHour: function meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上åˆ') {\n return hour;\n } else if (meridiem === 'ä¸åˆ') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下åˆ' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function meridiem(hour, minute, isLower) {\n var hm = hour * 100 + minute;\n\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1200) {\n return '上åˆ';\n } else if (hm === 1200) {\n return 'ä¸åˆ';\n } else if (hm < 1800) {\n return '下åˆ';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天]LT',\n nextDay: '[明天]LT',\n nextWeek: '[下]ddddLT',\n lastDay: '[昨天]LT',\n lastWeek: '[上]ddddLT',\n sameElse: 'L'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(æ—¥|月|週)/,\n ordinal: function ordinal(number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + 'æ—¥';\n\n case 'M':\n return number + '月';\n\n case 'w':\n case 'W':\n return number + '週';\n\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%så‰',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分é˜',\n mm: '%d 分é˜',\n h: '1 å°æ™‚',\n hh: '%d å°æ™‚',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 å¹´',\n yy: '%d å¹´'\n }\n });\n return zhHk;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Chinese (Macau) [zh-mo]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n//! author : Tan Yuanhong : https://github.com/le0tan\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var zhMo = moment.defineLocale('zh-mo', {\n months: '一月_二月_三月_四月_五月_å…月_七月_八月_ä¹æœˆ_å月_å一月_å二月'.split('_'),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期å…'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週å…'.split('_'),\n weekdaysMin: 'æ—¥_一_二_三_å››_五_å…'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'YYYYå¹´M月Dæ—¥',\n LLL: 'YYYYå¹´M月Dæ—¥ HH:mm',\n LLLL: 'YYYYå¹´M月Dæ—¥dddd HH:mm',\n l: 'D/M/YYYY',\n ll: 'YYYYå¹´M月Dæ—¥',\n lll: 'YYYYå¹´M月Dæ—¥ HH:mm',\n llll: 'YYYYå¹´M月Dæ—¥dddd HH:mm'\n },\n meridiemParse: /凌晨|早上|上åˆ|ä¸åˆ|下åˆ|晚上/,\n meridiemHour: function meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上åˆ') {\n return hour;\n } else if (meridiem === 'ä¸åˆ') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下åˆ' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function meridiem(hour, minute, isLower) {\n var hm = hour * 100 + minute;\n\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上åˆ';\n } else if (hm < 1230) {\n return 'ä¸åˆ';\n } else if (hm < 1800) {\n return '下åˆ';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天] LT',\n nextDay: '[明天] LT',\n nextWeek: '[下]dddd LT',\n lastDay: '[昨天] LT',\n lastWeek: '[上]dddd LT',\n sameElse: 'L'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(æ—¥|月|週)/,\n ordinal: function ordinal(number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + 'æ—¥';\n\n case 'M':\n return number + '月';\n\n case 'w':\n case 'W':\n return number + '週';\n\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%så…§',\n past: '%så‰',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分é˜',\n mm: '%d 分é˜',\n h: '1 å°æ™‚',\n hh: '%d å°æ™‚',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 å¹´',\n yy: '%d å¹´'\n }\n });\n return zhMo;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n//! locale : Chinese (Taiwan) [zh-tw]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var zhTw = moment.defineLocale('zh-tw', {\n months: '一月_二月_三月_四月_五月_å…月_七月_八月_ä¹æœˆ_å月_å一月_å二月'.split('_'),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期å…'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週å…'.split('_'),\n weekdaysMin: 'æ—¥_一_二_三_å››_五_å…'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYYå¹´M月Dæ—¥',\n LLL: 'YYYYå¹´M月Dæ—¥ HH:mm',\n LLLL: 'YYYYå¹´M月Dæ—¥dddd HH:mm',\n l: 'YYYY/M/D',\n ll: 'YYYYå¹´M月Dæ—¥',\n lll: 'YYYYå¹´M月Dæ—¥ HH:mm',\n llll: 'YYYYå¹´M月Dæ—¥dddd HH:mm'\n },\n meridiemParse: /凌晨|早上|上åˆ|ä¸åˆ|下åˆ|晚上/,\n meridiemHour: function meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上åˆ') {\n return hour;\n } else if (meridiem === 'ä¸åˆ') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下åˆ' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function meridiem(hour, minute, isLower) {\n var hm = hour * 100 + minute;\n\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上åˆ';\n } else if (hm < 1230) {\n return 'ä¸åˆ';\n } else if (hm < 1800) {\n return '下åˆ';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天] LT',\n nextDay: '[明天] LT',\n nextWeek: '[下]dddd LT',\n lastDay: '[昨天] LT',\n lastWeek: '[上]dddd LT',\n sameElse: 'L'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(æ—¥|月|週)/,\n ordinal: function ordinal(number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + 'æ—¥';\n\n case 'M':\n return number + '月';\n\n case 'w':\n case 'W':\n return number + '週';\n\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%så‰',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分é˜',\n mm: '%d 分é˜',\n h: '1 å°æ™‚',\n hh: '%d å°æ™‚',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 å¹´',\n yy: '%d å¹´'\n }\n });\n return zhTw;\n});","document.addEventListener('DOMContentLoaded', init);\n\nfunction init() {\n [...document.querySelectorAll('[data-modal-trigger]')].map(trigger => {\n trigger.addEventListener('click', toggle);\n });\n}\n\nfunction toggle(event) {\n const id = event.currentTarget.getAttribute('data-modal-trigger'),\n modal = document.querySelector(`[data-modal=\"${id}\"]`);\n\n if (modal.classList.contains('is-active')) {\n modal.classList.remove('is-active');\n document.querySelector('body').style.overflow = 'visible';\n } else {\n modal.classList.add('is-active');\n document.querySelector('body').style.overflow = 'hidden';\n }\n}\n\nexport default init;\n","document.addEventListener('DOMContentLoaded', init)\n\nexport default function init() {\n [...document.querySelectorAll('[data-accordion-trigger]')].map(trigger => {\n trigger.addEventListener('click', toggleActiveState)\n })\n}\n\nfunction toggleActiveState(e) {\n const parent = e.currentTarget.parentNode\n const target = parent.querySelector('[data-accordion-target]')\n const icons = parent.querySelectorAll('[data-accordion-icon]')\n\n if (target.getAttribute('aria-expanded') === 'true') {\n target.setAttribute('aria-expanded', 'false')\n } else {\n target.setAttribute('aria-expanded', 'true')\n }\n\n [...icons].map(icon => icon.classList.toggle('is-active'))\n parent.classList.toggle('is-active')\n target.classList.toggle('is-expanded')\n}\n","function Loader(settings) {\n const target = settings.target || null;\n const isContextual = settings.contextual;\n\n return {\n on: () => {\n const loader = getLoader(target);\n loader ? activate(loader) : createLoader(target);\n },\n\n off: () => {\n const loader = getLoader(target);\n if (loader === null) return;\n loader.classList.remove('is-active');\n }\n }\n\n function activate(loader) {\n if (loader.classList.contains('Loader')) {\n loader.classList.add('is-active');\n } else if (isContextual) {\n loader.classList.add('Loader','is-active', 'is-contextual');\n } else {\n loader.classList.add('Loader','is-active');\n }\n }\n\n function getLoader(target) {\n const origin = target || document.querySelector('body');\n return origin.querySelector('[data-loader]');\n }\n\n function createLoader(target) {\n const loader = document.createElement('div');\n const spinner = createSpinner();\n const destination = target || document.querySelector('body');\n\n loader.setAttribute('data-loader', '');\n loader.classList.add('Loader','is-active');\n if (isContextual) loader.classList.add('is-contextual');\n destination.prepend(loader);\n loader.append(spinner);\n }\n\n function createSpinner() {\n const url = 'http://www.w3.org/2000/svg';\n const svg = document.createElementNS(url, 'svg');\n const circle = document.createElementNS(url, 'circle');\n\n svg.setAttribute('viewBox', '0 0 50 50');\n svg.classList.add('spinner');\n circle.setAttribute('cx', '25');\n circle.setAttribute('cy', '25');\n circle.setAttribute('r','20');\n circle.setAttribute('fill', 'none');\n circle.setAttribute('stroke-width', '5');\n circle.classList.add('path');\n svg.appendChild(circle);\n\n return svg;\n }\n}\n\nexport default Loader;\n","import { set as setProductImage } from './product-images';\n\nconst HIDE_MASTER_IMAGE = false;\n\ndocument.addEventListener('DOMContentLoaded', init);\n\nexport default function init() {\n const variants = document.querySelectorAll('[data-variant-id]');\n const resetButton = document.querySelector('[data-variant-reset-button]');\n const variantOptions = [...document.querySelectorAll('[data-variant-option]')];\n const selectedOptions = returnSelectedVariantOptions(variantOptions);\n\n if (variants.length === 0) return;\n\n // If selected options exist upon initialisation we\n // select them so the appropriate content is shown\n if (selectedOptions.length > 0) {\n selectedOptions.map(option => {\n select(option, variantOptions, selectedOptions);\n });\n }\n\n // Don't show duplicate images on master variant\n else {\n hideDuplicateImageThumbails();\n restoreSessionSelections(variantOptions);\n }\n\n // Event listeners\n variantOptions.map(option => {\n option.addEventListener('change', event => {\n select(event.target, variantOptions);\n storeSessionSelections(variantOptions);\n });\n });\n\n document.querySelectorAll('[data-variant-group] select').forEach(selectElem => {\n selectElem.addEventListener('change', event => {\n const option = [...event.target.querySelectorAll('option')].filter(o => o.selected)[0];\n\n select(option, variantOptions);\n storeSessionSelections(variantOptions);\n })\n })\n\n if (resetButton) {\n resetButton.addEventListener('click', () => {\n reset(variantOptions);\n });\n }\n\n //Temporarily show all hidden content from old selector\n [...document.querySelectorAll('[data-variant-selector]')].map(node => {\n node.style.display = 'block';\n });\n}\n\nexport function select(option, options, selected = null) {\n const bundle = document.querySelector('[data-bundle]');\n\n disableOrEnableVariantOptions(option, options);\n\n // TODO: Should be cleaned up when integrated with core\n if (bundle) {\n const variants = document.querySelectorAll('[data-variant-id]');\n const leadProduct = document.querySelector('[data-lead-product]');\n const options = [...leadProduct.querySelectorAll('[data-variant-option]')];\n const selectedOptions = returnSelectedVariantOptions(options);\n const requiredSelections = document.querySelectorAll('[data-variant-group]').length;\n const selectedVariant = returnSelectedVariantAsString(selectedOptions, requiredSelections);\n const leadProductImage = document.querySelector('[data-lead-product-image]');\n\n [...variants].map(variant => {\n if (variant.dataset.variantId === selectedVariant) {\n variant.classList.remove('is-hidden');\n if (variant.getAttribute('data-variant-image-src') && leadProductImage) {\n leadProductImage.src = variant.getAttribute('data-variant-image-src');\n }\n return;\n }\n variant.classList.add('is-hidden');\n });\n\n\n } else {\n const selectedOptions = selected || returnSelectedVariantOptions(options);\n const requiredSelections = document.querySelectorAll('[data-variant-group]').length;\n const selectedVariant = returnSelectedVariantAsString(selectedOptions, requiredSelections);\n const canAddToCart = selectedOptions.length === requiredSelections;\n\n if (canAddToCart) {\n _moveMasterThumbnail();\n setProductImages(selectedVariant);\n moveVariantSelector(selectedVariant);\n showOrHideVariantContent(selectedVariant);\n }\n }\n}\n\nexport function reset(variantOptions) {\n variantOptions.map(optionInput => {\n if (optionInput.tagName === 'OPTION') optionInput.selected = false;\n if (optionInput.tagName === 'INPUT') optionInput.checked = false;\n optionInput.disabled = false;\n });\n _moveMasterThumbnail('prepend');\n setProductImages();\n moveVariantSelector();\n showOrHideVariantContent();\n hideDuplicateImageThumbails();\n clearSessionSelections();\n}\n\nfunction setProductImages(selectedVariant) {\n const source = findAndReturnActiveVariant('[data-product-images]');\n const target = findAndReturnSelectedVariant(selectedVariant, '[data-product-images]');\n\n if (source === undefined || target === undefined) {\n return;\n }\n\n const active = JSON.parse(target.dataset.productImages);\n const thumbs = document.querySelectorAll('[data-product-thumbnail]');\n const activeThumbs = returnActiveFromThumbnails(active, thumbs);\n\n // Move products images to the active variant container\n [...source.children].map(node => target.appendChild(node));\n\n // rearrange the images for the selected variant to reflect its order\n const list = target.querySelector('[data-product-thumbnails]');\n let index = [];\n try { index = JSON.parse(target.getAttribute('data-product-images')); } catch {}\n\n if (list && index.length > 0) {\n [...list.children]\n .forEach(node => {\n const idx = index.indexOf(node.id);\n idx >= 0 ? list.insertBefore(node, list.children[idx]) : list.appendChild(node);\n });\n }\n\n if (thumbs.length === 0) return;\n\n if (activeThumbs.length > 0) {\n // Show only thumbnails associated with the selected variant\n [...thumbs].map(thumb => thumb.classList.add('is-hidden'));\n [...activeThumbs].map(thumb => thumb.classList.remove('is-hidden'));\n // Set main product image\n setProductImage(activeThumbs[0].id);\n // Hide master image if variant is selected\n if (selectedVariant && HIDE_MASTER_IMAGE) {\n _masterThumbnails().map(thumb => thumb.classList.add('is-hidden'));\n }\n\n // If no images belong to this variant use the master image\n } else {\n setProductImage(thumbs[0].id);\n [...thumbs].map(thumb => thumb.classList.add('is-hidden'));\n }\n}\n\nfunction returnActiveFromThumbnails(activeThumbnails, thumbnails) {\n return [...thumbnails].filter(thumb => {\n const isActive = activeThumbnails.includes(thumb.id);\n const isNotMasterImage = thumb !== thumbnails[0];\n\n if (HIDE_MASTER_IMAGE) {\n return isActive && isNotMasterImage;\n }\n return isActive;\n });\n}\n\nfunction hideDuplicateImageThumbails() {\n const thumbnails = document.querySelectorAll('[data-product-thumbnail]');\n\n if (thumbnails.length === 0) return;\n\n let uniqueUrls = [];\n\n [...thumbnails]\n .filter(thumb => !_isMasterThumbnail(thumb))\n .map(thumb => {\n if (uniqueUrls.includes(thumb.dataset.srcZoom)) {\n thumb.classList.add('is-hidden');\n return;\n }\n uniqueUrls.push(thumb.dataset.srcZoom);\n thumb.classList.remove('is-hidden');\n });\n\n if (HIDE_MASTER_IMAGE) {\n _masterThumbnails().map(thumb => thumb.classList.add('is-hidden'));\n }\n}\n\nfunction moveVariantSelector(selectedVariant) {\n const source = findAndReturnActiveVariant('[data-variant-option-selector]');\n const target = findAndReturnSelectedVariant(selectedVariant, '[data-variant-option-selector]');\n if (source) {\n return [...source.children].map(node => target.appendChild(node));\n }\n}\n\nfunction showOrHideVariantContent(selectedVariant) {\n [...document.querySelectorAll('[data-variant-id]')].map(node => {\n const isMaster = !node.dataset.variantId;\n const isSelected = isMaster ?\n selectedVariant === undefined :\n node.dataset.variantId === selectedVariant;\n\n node.style.display = isSelected ? 'block' : 'none';\n });\n}\n\nfunction disableOrEnableVariantOptions(option, variantOptions) {\n const allowedOptions = option.dataset.variantAllowedOptions;\n const optionType = option.dataset.type;\n\n if (!allowedOptions || allowedOptions === \"{}\") return;\n\n [...document.querySelectorAll('[data-variant-option]')].map(group => {\n const groupType = group.dataset.type;\n const optionsInGroup = variantOptions.filter(o => o.dataset.type === groupType);\n\n if (groupType === optionType) return;\n optionsInGroup.map(option => {\n option.disabled = !JSON.parse(allowedOptions)[groupType].includes(option.value);\n });\n });\n}\n\nfunction returnSelectedVariantOptions(variantOptions) {\n return variantOptions\n .filter(opt => opt.checked || opt.selected)\n .sort((a, b) => {\n if (a.dataset.type < b.dataset.type) return -1;\n if (a.dataset.type > b.dataset.type) return 1;\n return 0;\n });\n}\n\nfunction storeSessionSelections(variantOptions) {\n const selectorNode = document.querySelector('[data-variant-option-selector]');\n const masterId = selectorNode.dataset.masterId;\n const selectedIds = returnSelectedVariantOptions(variantOptions).map(elem => elem.id);\n window.sessionStorage.setItem(`${masterId}:selected-variants`, JSON.stringify(selectedIds));\n}\n\nfunction clearSessionSelections() {\n const selectorNode = document.querySelector('[data-variant-option-selector]');\n const masterId = selectorNode.dataset.masterId;\n window.sessionStorage.removeItem(`${masterId}:selected-variants`);\n}\n\nfunction restoreSessionSelections(variantOptions) {\n const selectorNode = document.querySelector('[data-variant-option-selector]');\n if (!selectorNode) { return; }\n const masterId = selectorNode.dataset.masterId;\n const selectedVariantIds = JSON.parse(window.sessionStorage.getItem(`${masterId}:selected-variants`));\n let selectedIds = null;\n // Parse the array and clean it of nulls and empty strings if they exist\n if (Array.isArray(selectedVariantIds)) {\n selectedIds = selectedVariantIds.filter(x => x);\n }\n\n if (selectedIds) {\n selectedIds.forEach(id => {\n var option = document.querySelector(`#${id}`);\n\n if (!option) return\n\n if (option.tagName === 'OPTION') {\n option.selected = true;\n select(option, variantOptions);\n } else {\n option.checked = true;\n select(option, variantOptions);\n }\n });\n }\n}\n\nfunction findAndReturnActiveVariant(selector) {\n const variants = [...document.querySelectorAll('[data-variant-id]')]\n .filter(node => node.style.display === 'block')[0];\n\n if (variants) { return variants.querySelector(selector); }\n\n return undefined;\n}\n\nfunction findAndReturnSelectedVariant(selectedVariant, selector) {\n return selectedVariant ?\n document.querySelector(`[data-variant-id=\"${selectedVariant}\"] ${selector}`) :\n document.querySelector(`[data-variant-id] ${selector}`);\n}\n\nfunction returnSelectedVariantAsString(selectedOptions, requiredSelections) {\n if (selectedOptions.length === requiredSelections) {\n return selectedOptions.map(option => option.value).join(' ');\n }\n}\n\n// private functions\n\nfunction _isMasterThumbnail(thumb) {\n return thumb.getAttribute('data-product-master') === 'true';\n}\n\nfunction _masterThumbnails() {\n return [...document.querySelectorAll('[data-product-master=true]')];\n}\n\nfunction _moveMasterThumbnail(action = 'append') {\n if (HIDE_MASTER_IMAGE) { return; }\n\n const thumbnailContainer = document.getElementsByClassName('SC-ProductImages_thumbnails_track')[0];\n const masterThumbnails = _masterThumbnails();\n masterThumbnails.map(thumb => {\n thumb.remove();\n if (action === 'append')\n thumbnailContainer.append(thumb);\n else\n thumbnailContainer.prepend(thumb);\n })\n}\n","let sets = {};\n\ndocument.addEventListener('DOMContentLoaded', init);\n\nfunction init() {\n const tabSets = document.querySelectorAll('[data-tabs]');\n\n if (tabSets.length > 0) {\n [...tabSets].map(set => {\n const setId = set.getAttribute('data-tabs');\n const tabsInSet = [...set.querySelectorAll('[data-tab]')];\n const triggersInSet = [...set.querySelectorAll('[data-tab-trigger]')];\n const activeTabInSet = getActiveTabElem(tabsInSet);\n\n sets[setId] = {\n tabs: tabsInSet,\n triggers: triggersInSet,\n active: activeTabInSet\n }\n\n if (tabsInSet.length === 0) {\n return;\n }\n // Activate the first tab if none are already active\n if (activeTabInSet === undefined) {\n const firstTabId = getId(tabsInSet[0]);\n\n activate(firstTabId, setId);\n }\n\n // Attach click handlers\n triggersInSet.map(trigger => trigger.addEventListener('click', () => {\n const tabId = trigger.getAttribute('data-tab-trigger');\n\n deactivateAllTabs(setId);\n activate(tabId, setId);\n }));\n\n // Adds 'is-last' class to last tab in set\n setClassForLastTab(setId);\n });\n }\n}\n\nfunction activate(tabId, setId) {\n const set = document.querySelector(`[data-tabs='${setId}']`);\n const tabInSet = getTabElem(tabId, set);\n const triggerInSet = getTriggerElem(tabId, set);\n\n sets[setId].active = tabInSet;\n tabInSet.classList.remove('sc-hide');\n triggerInSet.classList.toggle('is-active');\n}\n\nfunction deactivateAllTabs(setId) {\n sets[setId].tabs.map(tab => tab.classList.add('sc-hide'));\n sets[setId].triggers.map(trigger => trigger.classList.remove('is-active'));\n}\n\nfunction getId(tab) {\n return tab.getAttribute('data-tab');\n}\n\nfunction getTabElem(id, set) {\n return set.querySelector(`[data-tab='${id}']`);\n}\n\nfunction getTriggerElem(id, set) {\n return set.querySelector(`[data-tab-trigger='${id}']`);\n}\n\nfunction getActiveTabElem(tabsInSet) {\n return tabsInSet.filter(tab => !tab.classList.contains('sc-hide'))[0];\n}\n\nfunction setClassForLastTab(setId) {\n const tabsInSet = sets[setId].tabs;\n const lastTabInSet = tabsInSet[tabsInSet.length - 1];\n\n lastTabInSet.classList.add('is-last');\n}\n\nfunction returnNextTab() {\n return tabs[tabs.indexOf(active) + 1];\n}\n\nfunction returnPrevTab() {\n return tabs[tabs.indexOf(active) - 1];\n}\n\nfunction next() {\n const id = returnNextTab().getAttribute('data-tab');\n\n deactivateAllTabs();\n activate(id);\n}\n\nfunction prev() {\n const id = returnPrevTab().getAttribute('data-tab');\n\n deactivateAllTabs();\n activate(id);\n}\n\nexport default init;\n","var map = {\n\t\"./af\": 118,\n\t\"./af.js\": 118,\n\t\"./ar\": 119,\n\t\"./ar-dz\": 120,\n\t\"./ar-dz.js\": 120,\n\t\"./ar-kw\": 121,\n\t\"./ar-kw.js\": 121,\n\t\"./ar-ly\": 122,\n\t\"./ar-ly.js\": 122,\n\t\"./ar-ma\": 123,\n\t\"./ar-ma.js\": 123,\n\t\"./ar-sa\": 124,\n\t\"./ar-sa.js\": 124,\n\t\"./ar-tn\": 125,\n\t\"./ar-tn.js\": 125,\n\t\"./ar.js\": 119,\n\t\"./az\": 126,\n\t\"./az.js\": 126,\n\t\"./be\": 127,\n\t\"./be.js\": 127,\n\t\"./bg\": 128,\n\t\"./bg.js\": 128,\n\t\"./bm\": 129,\n\t\"./bm.js\": 129,\n\t\"./bn\": 130,\n\t\"./bn-bd\": 131,\n\t\"./bn-bd.js\": 131,\n\t\"./bn.js\": 130,\n\t\"./bo\": 132,\n\t\"./bo.js\": 132,\n\t\"./br\": 133,\n\t\"./br.js\": 133,\n\t\"./bs\": 134,\n\t\"./bs.js\": 134,\n\t\"./ca\": 135,\n\t\"./ca.js\": 135,\n\t\"./cs\": 136,\n\t\"./cs.js\": 136,\n\t\"./cv\": 137,\n\t\"./cv.js\": 137,\n\t\"./cy\": 138,\n\t\"./cy.js\": 138,\n\t\"./da\": 139,\n\t\"./da.js\": 139,\n\t\"./de\": 140,\n\t\"./de-at\": 141,\n\t\"./de-at.js\": 141,\n\t\"./de-ch\": 142,\n\t\"./de-ch.js\": 142,\n\t\"./de.js\": 140,\n\t\"./dv\": 143,\n\t\"./dv.js\": 143,\n\t\"./el\": 144,\n\t\"./el.js\": 144,\n\t\"./en-au\": 145,\n\t\"./en-au.js\": 145,\n\t\"./en-ca\": 146,\n\t\"./en-ca.js\": 146,\n\t\"./en-gb\": 147,\n\t\"./en-gb.js\": 147,\n\t\"./en-ie\": 148,\n\t\"./en-ie.js\": 148,\n\t\"./en-il\": 149,\n\t\"./en-il.js\": 149,\n\t\"./en-in\": 150,\n\t\"./en-in.js\": 150,\n\t\"./en-nz\": 151,\n\t\"./en-nz.js\": 151,\n\t\"./en-sg\": 152,\n\t\"./en-sg.js\": 152,\n\t\"./eo\": 153,\n\t\"./eo.js\": 153,\n\t\"./es\": 154,\n\t\"./es-do\": 155,\n\t\"./es-do.js\": 155,\n\t\"./es-mx\": 156,\n\t\"./es-mx.js\": 156,\n\t\"./es-us\": 157,\n\t\"./es-us.js\": 157,\n\t\"./es.js\": 154,\n\t\"./et\": 158,\n\t\"./et.js\": 158,\n\t\"./eu\": 159,\n\t\"./eu.js\": 159,\n\t\"./fa\": 160,\n\t\"./fa.js\": 160,\n\t\"./fi\": 161,\n\t\"./fi.js\": 161,\n\t\"./fil\": 162,\n\t\"./fil.js\": 162,\n\t\"./fo\": 163,\n\t\"./fo.js\": 163,\n\t\"./fr\": 164,\n\t\"./fr-ca\": 165,\n\t\"./fr-ca.js\": 165,\n\t\"./fr-ch\": 166,\n\t\"./fr-ch.js\": 166,\n\t\"./fr.js\": 164,\n\t\"./fy\": 167,\n\t\"./fy.js\": 167,\n\t\"./ga\": 168,\n\t\"./ga.js\": 168,\n\t\"./gd\": 169,\n\t\"./gd.js\": 169,\n\t\"./gl\": 170,\n\t\"./gl.js\": 170,\n\t\"./gom-deva\": 171,\n\t\"./gom-deva.js\": 171,\n\t\"./gom-latn\": 172,\n\t\"./gom-latn.js\": 172,\n\t\"./gu\": 173,\n\t\"./gu.js\": 173,\n\t\"./he\": 174,\n\t\"./he.js\": 174,\n\t\"./hi\": 175,\n\t\"./hi.js\": 175,\n\t\"./hr\": 176,\n\t\"./hr.js\": 176,\n\t\"./hu\": 177,\n\t\"./hu.js\": 177,\n\t\"./hy-am\": 178,\n\t\"./hy-am.js\": 178,\n\t\"./id\": 179,\n\t\"./id.js\": 179,\n\t\"./is\": 180,\n\t\"./is.js\": 180,\n\t\"./it\": 181,\n\t\"./it-ch\": 182,\n\t\"./it-ch.js\": 182,\n\t\"./it.js\": 181,\n\t\"./ja\": 183,\n\t\"./ja.js\": 183,\n\t\"./jv\": 184,\n\t\"./jv.js\": 184,\n\t\"./ka\": 185,\n\t\"./ka.js\": 185,\n\t\"./kk\": 186,\n\t\"./kk.js\": 186,\n\t\"./km\": 187,\n\t\"./km.js\": 187,\n\t\"./kn\": 188,\n\t\"./kn.js\": 188,\n\t\"./ko\": 189,\n\t\"./ko.js\": 189,\n\t\"./ku\": 190,\n\t\"./ku.js\": 190,\n\t\"./ky\": 191,\n\t\"./ky.js\": 191,\n\t\"./lb\": 192,\n\t\"./lb.js\": 192,\n\t\"./lo\": 193,\n\t\"./lo.js\": 193,\n\t\"./lt\": 194,\n\t\"./lt.js\": 194,\n\t\"./lv\": 195,\n\t\"./lv.js\": 195,\n\t\"./me\": 196,\n\t\"./me.js\": 196,\n\t\"./mi\": 197,\n\t\"./mi.js\": 197,\n\t\"./mk\": 198,\n\t\"./mk.js\": 198,\n\t\"./ml\": 199,\n\t\"./ml.js\": 199,\n\t\"./mn\": 200,\n\t\"./mn.js\": 200,\n\t\"./mr\": 201,\n\t\"./mr.js\": 201,\n\t\"./ms\": 202,\n\t\"./ms-my\": 203,\n\t\"./ms-my.js\": 203,\n\t\"./ms.js\": 202,\n\t\"./mt\": 204,\n\t\"./mt.js\": 204,\n\t\"./my\": 205,\n\t\"./my.js\": 205,\n\t\"./nb\": 206,\n\t\"./nb.js\": 206,\n\t\"./ne\": 207,\n\t\"./ne.js\": 207,\n\t\"./nl\": 208,\n\t\"./nl-be\": 209,\n\t\"./nl-be.js\": 209,\n\t\"./nl.js\": 208,\n\t\"./nn\": 210,\n\t\"./nn.js\": 210,\n\t\"./oc-lnc\": 211,\n\t\"./oc-lnc.js\": 211,\n\t\"./pa-in\": 212,\n\t\"./pa-in.js\": 212,\n\t\"./pl\": 213,\n\t\"./pl.js\": 213,\n\t\"./pt\": 214,\n\t\"./pt-br\": 215,\n\t\"./pt-br.js\": 215,\n\t\"./pt.js\": 214,\n\t\"./ro\": 216,\n\t\"./ro.js\": 216,\n\t\"./ru\": 217,\n\t\"./ru.js\": 217,\n\t\"./sd\": 218,\n\t\"./sd.js\": 218,\n\t\"./se\": 219,\n\t\"./se.js\": 219,\n\t\"./si\": 220,\n\t\"./si.js\": 220,\n\t\"./sk\": 221,\n\t\"./sk.js\": 221,\n\t\"./sl\": 222,\n\t\"./sl.js\": 222,\n\t\"./sq\": 223,\n\t\"./sq.js\": 223,\n\t\"./sr\": 224,\n\t\"./sr-cyrl\": 225,\n\t\"./sr-cyrl.js\": 225,\n\t\"./sr.js\": 224,\n\t\"./ss\": 226,\n\t\"./ss.js\": 226,\n\t\"./sv\": 227,\n\t\"./sv.js\": 227,\n\t\"./sw\": 228,\n\t\"./sw.js\": 228,\n\t\"./ta\": 229,\n\t\"./ta.js\": 229,\n\t\"./te\": 230,\n\t\"./te.js\": 230,\n\t\"./tet\": 231,\n\t\"./tet.js\": 231,\n\t\"./tg\": 232,\n\t\"./tg.js\": 232,\n\t\"./th\": 233,\n\t\"./th.js\": 233,\n\t\"./tk\": 234,\n\t\"./tk.js\": 234,\n\t\"./tl-ph\": 235,\n\t\"./tl-ph.js\": 235,\n\t\"./tlh\": 236,\n\t\"./tlh.js\": 236,\n\t\"./tr\": 237,\n\t\"./tr.js\": 237,\n\t\"./tzl\": 238,\n\t\"./tzl.js\": 238,\n\t\"./tzm\": 239,\n\t\"./tzm-latn\": 240,\n\t\"./tzm-latn.js\": 240,\n\t\"./tzm.js\": 239,\n\t\"./ug-cn\": 241,\n\t\"./ug-cn.js\": 241,\n\t\"./uk\": 242,\n\t\"./uk.js\": 242,\n\t\"./ur\": 243,\n\t\"./ur.js\": 243,\n\t\"./uz\": 244,\n\t\"./uz-latn\": 245,\n\t\"./uz-latn.js\": 245,\n\t\"./uz.js\": 244,\n\t\"./vi\": 246,\n\t\"./vi.js\": 246,\n\t\"./x-pseudo\": 247,\n\t\"./x-pseudo.js\": 247,\n\t\"./yo\": 248,\n\t\"./yo.js\": 248,\n\t\"./zh-cn\": 249,\n\t\"./zh-cn.js\": 249,\n\t\"./zh-hk\": 250,\n\t\"./zh-hk.js\": 250,\n\t\"./zh-mo\": 251,\n\t\"./zh-mo.js\": 251,\n\t\"./zh-tw\": 252,\n\t\"./zh-tw.js\": 252\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 258;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*! Hammer.JS - v2.0.7 - 2016-04-22\n * http://hammerjs.github.io/\n *\n * Copyright (c) 2016 Jorik Tangelder;\n * Licensed under the MIT license */\n(function (window, document, exportName, undefined) {\n 'use strict';\n\n var VENDOR_PREFIXES = ['', 'webkit', 'Moz', 'MS', 'ms', 'o'];\n var TEST_ELEMENT = document.createElement('div');\n var TYPE_FUNCTION = 'function';\n var round = Math.round;\n var abs = Math.abs;\n var now = Date.now;\n /**\n * set a timeout with a given scope\n * @param {Function} fn\n * @param {Number} timeout\n * @param {Object} context\n * @returns {number}\n */\n\n function setTimeoutContext(fn, timeout, context) {\n return setTimeout(bindFn(fn, context), timeout);\n }\n /**\n * if the argument is an array, we want to execute the fn on each entry\n * if it aint an array we don't want to do a thing.\n * this is used by all the methods that accept a single and array argument.\n * @param {*|Array} arg\n * @param {String} fn\n * @param {Object} [context]\n * @returns {Boolean}\n */\n\n\n function invokeArrayArg(arg, fn, context) {\n if (Array.isArray(arg)) {\n each(arg, context[fn], context);\n return true;\n }\n\n return false;\n }\n /**\n * walk objects and arrays\n * @param {Object} obj\n * @param {Function} iterator\n * @param {Object} context\n */\n\n\n function each(obj, iterator, context) {\n var i;\n\n if (!obj) {\n return;\n }\n\n if (obj.forEach) {\n obj.forEach(iterator, context);\n } else if (obj.length !== undefined) {\n i = 0;\n\n while (i < obj.length) {\n iterator.call(context, obj[i], i, obj);\n i++;\n }\n } else {\n for (i in obj) {\n obj.hasOwnProperty(i) && iterator.call(context, obj[i], i, obj);\n }\n }\n }\n /**\n * wrap a method with a deprecation warning and stack trace\n * @param {Function} method\n * @param {String} name\n * @param {String} message\n * @returns {Function} A new function wrapping the supplied method.\n */\n\n\n function deprecate(method, name, message) {\n var deprecationMessage = 'DEPRECATED METHOD: ' + name + '\\n' + message + ' AT \\n';\n return function () {\n var e = new Error('get-stack-trace');\n var stack = e && e.stack ? e.stack.replace(/^[^\\(]+?[\\n$]/gm, '').replace(/^\\s+at\\s+/gm, '').replace(/^Object.<anonymous>\\s*\\(/gm, '{anonymous}()@') : 'Unknown Stack Trace';\n var log = window.console && (window.console.warn || window.console.log);\n\n if (log) {\n log.call(window.console, deprecationMessage, stack);\n }\n\n return method.apply(this, arguments);\n };\n }\n /**\n * extend object.\n * means that properties in dest will be overwritten by the ones in src.\n * @param {Object} target\n * @param {...Object} objects_to_assign\n * @returns {Object} target\n */\n\n\n var assign;\n\n if (typeof Object.assign !== 'function') {\n assign = function assign(target) {\n if (target === undefined || target === null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n\n var output = Object(target);\n\n for (var index = 1; index < arguments.length; index++) {\n var source = arguments[index];\n\n if (source !== undefined && source !== null) {\n for (var nextKey in source) {\n if (source.hasOwnProperty(nextKey)) {\n output[nextKey] = source[nextKey];\n }\n }\n }\n }\n\n return output;\n };\n } else {\n assign = Object.assign;\n }\n /**\n * extend object.\n * means that properties in dest will be overwritten by the ones in src.\n * @param {Object} dest\n * @param {Object} src\n * @param {Boolean} [merge=false]\n * @returns {Object} dest\n */\n\n\n var extend = deprecate(function extend(dest, src, merge) {\n var keys = Object.keys(src);\n var i = 0;\n\n while (i < keys.length) {\n if (!merge || merge && dest[keys[i]] === undefined) {\n dest[keys[i]] = src[keys[i]];\n }\n\n i++;\n }\n\n return dest;\n }, 'extend', 'Use `assign`.');\n /**\n * merge the values from src in the dest.\n * means that properties that exist in dest will not be overwritten by src\n * @param {Object} dest\n * @param {Object} src\n * @returns {Object} dest\n */\n\n var merge = deprecate(function merge(dest, src) {\n return extend(dest, src, true);\n }, 'merge', 'Use `assign`.');\n /**\n * simple class inheritance\n * @param {Function} child\n * @param {Function} base\n * @param {Object} [properties]\n */\n\n function inherit(child, base, properties) {\n var baseP = base.prototype,\n childP;\n childP = child.prototype = Object.create(baseP);\n childP.constructor = child;\n childP._super = baseP;\n\n if (properties) {\n assign(childP, properties);\n }\n }\n /**\n * simple function bind\n * @param {Function} fn\n * @param {Object} context\n * @returns {Function}\n */\n\n\n function bindFn(fn, context) {\n return function boundFn() {\n return fn.apply(context, arguments);\n };\n }\n /**\n * let a boolean value also be a function that must return a boolean\n * this first item in args will be used as the context\n * @param {Boolean|Function} val\n * @param {Array} [args]\n * @returns {Boolean}\n */\n\n\n function boolOrFn(val, args) {\n if (_typeof(val) == TYPE_FUNCTION) {\n return val.apply(args ? args[0] || undefined : undefined, args);\n }\n\n return val;\n }\n /**\n * use the val2 when val1 is undefined\n * @param {*} val1\n * @param {*} val2\n * @returns {*}\n */\n\n\n function ifUndefined(val1, val2) {\n return val1 === undefined ? val2 : val1;\n }\n /**\n * addEventListener with multiple events at once\n * @param {EventTarget} target\n * @param {String} types\n * @param {Function} handler\n */\n\n\n function addEventListeners(target, types, handler) {\n each(splitStr(types), function (type) {\n target.addEventListener(type, handler, false);\n });\n }\n /**\n * removeEventListener with multiple events at once\n * @param {EventTarget} target\n * @param {String} types\n * @param {Function} handler\n */\n\n\n function removeEventListeners(target, types, handler) {\n each(splitStr(types), function (type) {\n target.removeEventListener(type, handler, false);\n });\n }\n /**\n * find if a node is in the given parent\n * @method hasParent\n * @param {HTMLElement} node\n * @param {HTMLElement} parent\n * @return {Boolean} found\n */\n\n\n function hasParent(node, parent) {\n while (node) {\n if (node == parent) {\n return true;\n }\n\n node = node.parentNode;\n }\n\n return false;\n }\n /**\n * small indexOf wrapper\n * @param {String} str\n * @param {String} find\n * @returns {Boolean} found\n */\n\n\n function inStr(str, find) {\n return str.indexOf(find) > -1;\n }\n /**\n * split string on whitespace\n * @param {String} str\n * @returns {Array} words\n */\n\n\n function splitStr(str) {\n return str.trim().split(/\\s+/g);\n }\n /**\n * find if a array contains the object using indexOf or a simple polyFill\n * @param {Array} src\n * @param {String} find\n * @param {String} [findByKey]\n * @return {Boolean|Number} false when not found, or the index\n */\n\n\n function inArray(src, find, findByKey) {\n if (src.indexOf && !findByKey) {\n return src.indexOf(find);\n } else {\n var i = 0;\n\n while (i < src.length) {\n if (findByKey && src[i][findByKey] == find || !findByKey && src[i] === find) {\n return i;\n }\n\n i++;\n }\n\n return -1;\n }\n }\n /**\n * convert array-like objects to real arrays\n * @param {Object} obj\n * @returns {Array}\n */\n\n\n function toArray(obj) {\n return Array.prototype.slice.call(obj, 0);\n }\n /**\n * unique array with objects based on a key (like 'id') or just by the array's value\n * @param {Array} src [{id:1},{id:2},{id:1}]\n * @param {String} [key]\n * @param {Boolean} [sort=False]\n * @returns {Array} [{id:1},{id:2}]\n */\n\n\n function uniqueArray(src, key, sort) {\n var results = [];\n var values = [];\n var i = 0;\n\n while (i < src.length) {\n var val = key ? src[i][key] : src[i];\n\n if (inArray(values, val) < 0) {\n results.push(src[i]);\n }\n\n values[i] = val;\n i++;\n }\n\n if (sort) {\n if (!key) {\n results = results.sort();\n } else {\n results = results.sort(function sortUniqueArray(a, b) {\n return a[key] > b[key];\n });\n }\n }\n\n return results;\n }\n /**\n * get the prefixed property\n * @param {Object} obj\n * @param {String} property\n * @returns {String|Undefined} prefixed\n */\n\n\n function prefixed(obj, property) {\n var prefix, prop;\n var camelProp = property[0].toUpperCase() + property.slice(1);\n var i = 0;\n\n while (i < VENDOR_PREFIXES.length) {\n prefix = VENDOR_PREFIXES[i];\n prop = prefix ? prefix + camelProp : property;\n\n if (prop in obj) {\n return prop;\n }\n\n i++;\n }\n\n return undefined;\n }\n /**\n * get a unique id\n * @returns {number} uniqueId\n */\n\n\n var _uniqueId = 1;\n\n function uniqueId() {\n return _uniqueId++;\n }\n /**\n * get the window object of an element\n * @param {HTMLElement} element\n * @returns {DocumentView|Window}\n */\n\n\n function getWindowForElement(element) {\n var doc = element.ownerDocument || element;\n return doc.defaultView || doc.parentWindow || window;\n }\n\n var MOBILE_REGEX = /mobile|tablet|ip(ad|hone|od)|android/i;\n var SUPPORT_TOUCH = ('ontouchstart' in window);\n var SUPPORT_POINTER_EVENTS = prefixed(window, 'PointerEvent') !== undefined;\n var SUPPORT_ONLY_TOUCH = SUPPORT_TOUCH && MOBILE_REGEX.test(navigator.userAgent);\n var INPUT_TYPE_TOUCH = 'touch';\n var INPUT_TYPE_PEN = 'pen';\n var INPUT_TYPE_MOUSE = 'mouse';\n var INPUT_TYPE_KINECT = 'kinect';\n var COMPUTE_INTERVAL = 25;\n var INPUT_START = 1;\n var INPUT_MOVE = 2;\n var INPUT_END = 4;\n var INPUT_CANCEL = 8;\n var DIRECTION_NONE = 1;\n var DIRECTION_LEFT = 2;\n var DIRECTION_RIGHT = 4;\n var DIRECTION_UP = 8;\n var DIRECTION_DOWN = 16;\n var DIRECTION_HORIZONTAL = DIRECTION_LEFT | DIRECTION_RIGHT;\n var DIRECTION_VERTICAL = DIRECTION_UP | DIRECTION_DOWN;\n var DIRECTION_ALL = DIRECTION_HORIZONTAL | DIRECTION_VERTICAL;\n var PROPS_XY = ['x', 'y'];\n var PROPS_CLIENT_XY = ['clientX', 'clientY'];\n /**\n * create new input type manager\n * @param {Manager} manager\n * @param {Function} callback\n * @returns {Input}\n * @constructor\n */\n\n function Input(manager, callback) {\n var self = this;\n this.manager = manager;\n this.callback = callback;\n this.element = manager.element;\n this.target = manager.options.inputTarget; // smaller wrapper around the handler, for the scope and the enabled state of the manager,\n // so when disabled the input events are completely bypassed.\n\n this.domHandler = function (ev) {\n if (boolOrFn(manager.options.enable, [manager])) {\n self.handler(ev);\n }\n };\n\n this.init();\n }\n\n Input.prototype = {\n /**\n * should handle the inputEvent data and trigger the callback\n * @virtual\n */\n handler: function handler() {},\n\n /**\n * bind the events\n */\n init: function init() {\n this.evEl && addEventListeners(this.element, this.evEl, this.domHandler);\n this.evTarget && addEventListeners(this.target, this.evTarget, this.domHandler);\n this.evWin && addEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\n },\n\n /**\n * unbind the events\n */\n destroy: function destroy() {\n this.evEl && removeEventListeners(this.element, this.evEl, this.domHandler);\n this.evTarget && removeEventListeners(this.target, this.evTarget, this.domHandler);\n this.evWin && removeEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\n }\n };\n /**\n * create new input type manager\n * called by the Manager constructor\n * @param {Hammer} manager\n * @returns {Input}\n */\n\n function createInputInstance(manager) {\n var Type;\n var inputClass = manager.options.inputClass;\n\n if (inputClass) {\n Type = inputClass;\n } else if (SUPPORT_POINTER_EVENTS) {\n Type = PointerEventInput;\n } else if (SUPPORT_ONLY_TOUCH) {\n Type = TouchInput;\n } else if (!SUPPORT_TOUCH) {\n Type = MouseInput;\n } else {\n Type = TouchMouseInput;\n }\n\n return new Type(manager, inputHandler);\n }\n /**\n * handle input events\n * @param {Manager} manager\n * @param {String} eventType\n * @param {Object} input\n */\n\n\n function inputHandler(manager, eventType, input) {\n var pointersLen = input.pointers.length;\n var changedPointersLen = input.changedPointers.length;\n var isFirst = eventType & INPUT_START && pointersLen - changedPointersLen === 0;\n var isFinal = eventType & (INPUT_END | INPUT_CANCEL) && pointersLen - changedPointersLen === 0;\n input.isFirst = !!isFirst;\n input.isFinal = !!isFinal;\n\n if (isFirst) {\n manager.session = {};\n } // source event is the normalized value of the domEvents\n // like 'touchstart, mouseup, pointerdown'\n\n\n input.eventType = eventType; // compute scale, rotation etc\n\n computeInputData(manager, input); // emit secret event\n\n manager.emit('hammer.input', input);\n manager.recognize(input);\n manager.session.prevInput = input;\n }\n /**\n * extend the data with some usable properties like scale, rotate, velocity etc\n * @param {Object} manager\n * @param {Object} input\n */\n\n\n function computeInputData(manager, input) {\n var session = manager.session;\n var pointers = input.pointers;\n var pointersLength = pointers.length; // store the first input to calculate the distance and direction\n\n if (!session.firstInput) {\n session.firstInput = simpleCloneInputData(input);\n } // to compute scale and rotation we need to store the multiple touches\n\n\n if (pointersLength > 1 && !session.firstMultiple) {\n session.firstMultiple = simpleCloneInputData(input);\n } else if (pointersLength === 1) {\n session.firstMultiple = false;\n }\n\n var firstInput = session.firstInput;\n var firstMultiple = session.firstMultiple;\n var offsetCenter = firstMultiple ? firstMultiple.center : firstInput.center;\n var center = input.center = getCenter(pointers);\n input.timeStamp = now();\n input.deltaTime = input.timeStamp - firstInput.timeStamp;\n input.angle = getAngle(offsetCenter, center);\n input.distance = getDistance(offsetCenter, center);\n computeDeltaXY(session, input);\n input.offsetDirection = getDirection(input.deltaX, input.deltaY);\n var overallVelocity = getVelocity(input.deltaTime, input.deltaX, input.deltaY);\n input.overallVelocityX = overallVelocity.x;\n input.overallVelocityY = overallVelocity.y;\n input.overallVelocity = abs(overallVelocity.x) > abs(overallVelocity.y) ? overallVelocity.x : overallVelocity.y;\n input.scale = firstMultiple ? getScale(firstMultiple.pointers, pointers) : 1;\n input.rotation = firstMultiple ? getRotation(firstMultiple.pointers, pointers) : 0;\n input.maxPointers = !session.prevInput ? input.pointers.length : input.pointers.length > session.prevInput.maxPointers ? input.pointers.length : session.prevInput.maxPointers;\n computeIntervalInputData(session, input); // find the correct target\n\n var target = manager.element;\n\n if (hasParent(input.srcEvent.target, target)) {\n target = input.srcEvent.target;\n }\n\n input.target = target;\n }\n\n function computeDeltaXY(session, input) {\n var center = input.center;\n var offset = session.offsetDelta || {};\n var prevDelta = session.prevDelta || {};\n var prevInput = session.prevInput || {};\n\n if (input.eventType === INPUT_START || prevInput.eventType === INPUT_END) {\n prevDelta = session.prevDelta = {\n x: prevInput.deltaX || 0,\n y: prevInput.deltaY || 0\n };\n offset = session.offsetDelta = {\n x: center.x,\n y: center.y\n };\n }\n\n input.deltaX = prevDelta.x + (center.x - offset.x);\n input.deltaY = prevDelta.y + (center.y - offset.y);\n }\n /**\n * velocity is calculated every x ms\n * @param {Object} session\n * @param {Object} input\n */\n\n\n function computeIntervalInputData(session, input) {\n var last = session.lastInterval || input,\n deltaTime = input.timeStamp - last.timeStamp,\n velocity,\n velocityX,\n velocityY,\n direction;\n\n if (input.eventType != INPUT_CANCEL && (deltaTime > COMPUTE_INTERVAL || last.velocity === undefined)) {\n var deltaX = input.deltaX - last.deltaX;\n var deltaY = input.deltaY - last.deltaY;\n var v = getVelocity(deltaTime, deltaX, deltaY);\n velocityX = v.x;\n velocityY = v.y;\n velocity = abs(v.x) > abs(v.y) ? v.x : v.y;\n direction = getDirection(deltaX, deltaY);\n session.lastInterval = input;\n } else {\n // use latest velocity info if it doesn't overtake a minimum period\n velocity = last.velocity;\n velocityX = last.velocityX;\n velocityY = last.velocityY;\n direction = last.direction;\n }\n\n input.velocity = velocity;\n input.velocityX = velocityX;\n input.velocityY = velocityY;\n input.direction = direction;\n }\n /**\n * create a simple clone from the input used for storage of firstInput and firstMultiple\n * @param {Object} input\n * @returns {Object} clonedInputData\n */\n\n\n function simpleCloneInputData(input) {\n // make a simple copy of the pointers because we will get a reference if we don't\n // we only need clientXY for the calculations\n var pointers = [];\n var i = 0;\n\n while (i < input.pointers.length) {\n pointers[i] = {\n clientX: round(input.pointers[i].clientX),\n clientY: round(input.pointers[i].clientY)\n };\n i++;\n }\n\n return {\n timeStamp: now(),\n pointers: pointers,\n center: getCenter(pointers),\n deltaX: input.deltaX,\n deltaY: input.deltaY\n };\n }\n /**\n * get the center of all the pointers\n * @param {Array} pointers\n * @return {Object} center contains `x` and `y` properties\n */\n\n\n function getCenter(pointers) {\n var pointersLength = pointers.length; // no need to loop when only one touch\n\n if (pointersLength === 1) {\n return {\n x: round(pointers[0].clientX),\n y: round(pointers[0].clientY)\n };\n }\n\n var x = 0,\n y = 0,\n i = 0;\n\n while (i < pointersLength) {\n x += pointers[i].clientX;\n y += pointers[i].clientY;\n i++;\n }\n\n return {\n x: round(x / pointersLength),\n y: round(y / pointersLength)\n };\n }\n /**\n * calculate the velocity between two points. unit is in px per ms.\n * @param {Number} deltaTime\n * @param {Number} x\n * @param {Number} y\n * @return {Object} velocity `x` and `y`\n */\n\n\n function getVelocity(deltaTime, x, y) {\n return {\n x: x / deltaTime || 0,\n y: y / deltaTime || 0\n };\n }\n /**\n * get the direction between two points\n * @param {Number} x\n * @param {Number} y\n * @return {Number} direction\n */\n\n\n function getDirection(x, y) {\n if (x === y) {\n return DIRECTION_NONE;\n }\n\n if (abs(x) >= abs(y)) {\n return x < 0 ? DIRECTION_LEFT : DIRECTION_RIGHT;\n }\n\n return y < 0 ? DIRECTION_UP : DIRECTION_DOWN;\n }\n /**\n * calculate the absolute distance between two points\n * @param {Object} p1 {x, y}\n * @param {Object} p2 {x, y}\n * @param {Array} [props] containing x and y keys\n * @return {Number} distance\n */\n\n\n function getDistance(p1, p2, props) {\n if (!props) {\n props = PROPS_XY;\n }\n\n var x = p2[props[0]] - p1[props[0]],\n y = p2[props[1]] - p1[props[1]];\n return Math.sqrt(x * x + y * y);\n }\n /**\n * calculate the angle between two coordinates\n * @param {Object} p1\n * @param {Object} p2\n * @param {Array} [props] containing x and y keys\n * @return {Number} angle\n */\n\n\n function getAngle(p1, p2, props) {\n if (!props) {\n props = PROPS_XY;\n }\n\n var x = p2[props[0]] - p1[props[0]],\n y = p2[props[1]] - p1[props[1]];\n return Math.atan2(y, x) * 180 / Math.PI;\n }\n /**\n * calculate the rotation degrees between two pointersets\n * @param {Array} start array of pointers\n * @param {Array} end array of pointers\n * @return {Number} rotation\n */\n\n\n function getRotation(start, end) {\n return getAngle(end[1], end[0], PROPS_CLIENT_XY) + getAngle(start[1], start[0], PROPS_CLIENT_XY);\n }\n /**\n * calculate the scale factor between two pointersets\n * no scale is 1, and goes down to 0 when pinched together, and bigger when pinched out\n * @param {Array} start array of pointers\n * @param {Array} end array of pointers\n * @return {Number} scale\n */\n\n\n function getScale(start, end) {\n return getDistance(end[0], end[1], PROPS_CLIENT_XY) / getDistance(start[0], start[1], PROPS_CLIENT_XY);\n }\n\n var MOUSE_INPUT_MAP = {\n mousedown: INPUT_START,\n mousemove: INPUT_MOVE,\n mouseup: INPUT_END\n };\n var MOUSE_ELEMENT_EVENTS = 'mousedown';\n var MOUSE_WINDOW_EVENTS = 'mousemove mouseup';\n /**\n * Mouse events input\n * @constructor\n * @extends Input\n */\n\n function MouseInput() {\n this.evEl = MOUSE_ELEMENT_EVENTS;\n this.evWin = MOUSE_WINDOW_EVENTS;\n this.pressed = false; // mousedown state\n\n Input.apply(this, arguments);\n }\n\n inherit(MouseInput, Input, {\n /**\n * handle mouse events\n * @param {Object} ev\n */\n handler: function MEhandler(ev) {\n var eventType = MOUSE_INPUT_MAP[ev.type]; // on start we want to have the left mouse button down\n\n if (eventType & INPUT_START && ev.button === 0) {\n this.pressed = true;\n }\n\n if (eventType & INPUT_MOVE && ev.which !== 1) {\n eventType = INPUT_END;\n } // mouse must be down\n\n\n if (!this.pressed) {\n return;\n }\n\n if (eventType & INPUT_END) {\n this.pressed = false;\n }\n\n this.callback(this.manager, eventType, {\n pointers: [ev],\n changedPointers: [ev],\n pointerType: INPUT_TYPE_MOUSE,\n srcEvent: ev\n });\n }\n });\n var POINTER_INPUT_MAP = {\n pointerdown: INPUT_START,\n pointermove: INPUT_MOVE,\n pointerup: INPUT_END,\n pointercancel: INPUT_CANCEL,\n pointerout: INPUT_CANCEL\n }; // in IE10 the pointer types is defined as an enum\n\n var IE10_POINTER_TYPE_ENUM = {\n 2: INPUT_TYPE_TOUCH,\n 3: INPUT_TYPE_PEN,\n 4: INPUT_TYPE_MOUSE,\n 5: INPUT_TYPE_KINECT // see https://twitter.com/jacobrossi/status/480596438489890816\n\n };\n var POINTER_ELEMENT_EVENTS = 'pointerdown';\n var POINTER_WINDOW_EVENTS = 'pointermove pointerup pointercancel'; // IE10 has prefixed support, and case-sensitive\n\n if (window.MSPointerEvent && !window.PointerEvent) {\n POINTER_ELEMENT_EVENTS = 'MSPointerDown';\n POINTER_WINDOW_EVENTS = 'MSPointerMove MSPointerUp MSPointerCancel';\n }\n /**\n * Pointer events input\n * @constructor\n * @extends Input\n */\n\n\n function PointerEventInput() {\n this.evEl = POINTER_ELEMENT_EVENTS;\n this.evWin = POINTER_WINDOW_EVENTS;\n Input.apply(this, arguments);\n this.store = this.manager.session.pointerEvents = [];\n }\n\n inherit(PointerEventInput, Input, {\n /**\n * handle mouse events\n * @param {Object} ev\n */\n handler: function PEhandler(ev) {\n var store = this.store;\n var removePointer = false;\n var eventTypeNormalized = ev.type.toLowerCase().replace('ms', '');\n var eventType = POINTER_INPUT_MAP[eventTypeNormalized];\n var pointerType = IE10_POINTER_TYPE_ENUM[ev.pointerType] || ev.pointerType;\n var isTouch = pointerType == INPUT_TYPE_TOUCH; // get index of the event in the store\n\n var storeIndex = inArray(store, ev.pointerId, 'pointerId'); // start and mouse must be down\n\n if (eventType & INPUT_START && (ev.button === 0 || isTouch)) {\n if (storeIndex < 0) {\n store.push(ev);\n storeIndex = store.length - 1;\n }\n } else if (eventType & (INPUT_END | INPUT_CANCEL)) {\n removePointer = true;\n } // it not found, so the pointer hasn't been down (so it's probably a hover)\n\n\n if (storeIndex < 0) {\n return;\n } // update the event in the store\n\n\n store[storeIndex] = ev;\n this.callback(this.manager, eventType, {\n pointers: store,\n changedPointers: [ev],\n pointerType: pointerType,\n srcEvent: ev\n });\n\n if (removePointer) {\n // remove from the store\n store.splice(storeIndex, 1);\n }\n }\n });\n var SINGLE_TOUCH_INPUT_MAP = {\n touchstart: INPUT_START,\n touchmove: INPUT_MOVE,\n touchend: INPUT_END,\n touchcancel: INPUT_CANCEL\n };\n var SINGLE_TOUCH_TARGET_EVENTS = 'touchstart';\n var SINGLE_TOUCH_WINDOW_EVENTS = 'touchstart touchmove touchend touchcancel';\n /**\n * Touch events input\n * @constructor\n * @extends Input\n */\n\n function SingleTouchInput() {\n this.evTarget = SINGLE_TOUCH_TARGET_EVENTS;\n this.evWin = SINGLE_TOUCH_WINDOW_EVENTS;\n this.started = false;\n Input.apply(this, arguments);\n }\n\n inherit(SingleTouchInput, Input, {\n handler: function TEhandler(ev) {\n var type = SINGLE_TOUCH_INPUT_MAP[ev.type]; // should we handle the touch events?\n\n if (type === INPUT_START) {\n this.started = true;\n }\n\n if (!this.started) {\n return;\n }\n\n var touches = normalizeSingleTouches.call(this, ev, type); // when done, reset the started state\n\n if (type & (INPUT_END | INPUT_CANCEL) && touches[0].length - touches[1].length === 0) {\n this.started = false;\n }\n\n this.callback(this.manager, type, {\n pointers: touches[0],\n changedPointers: touches[1],\n pointerType: INPUT_TYPE_TOUCH,\n srcEvent: ev\n });\n }\n });\n /**\n * @this {TouchInput}\n * @param {Object} ev\n * @param {Number} type flag\n * @returns {undefined|Array} [all, changed]\n */\n\n function normalizeSingleTouches(ev, type) {\n var all = toArray(ev.touches);\n var changed = toArray(ev.changedTouches);\n\n if (type & (INPUT_END | INPUT_CANCEL)) {\n all = uniqueArray(all.concat(changed), 'identifier', true);\n }\n\n return [all, changed];\n }\n\n var TOUCH_INPUT_MAP = {\n touchstart: INPUT_START,\n touchmove: INPUT_MOVE,\n touchend: INPUT_END,\n touchcancel: INPUT_CANCEL\n };\n var TOUCH_TARGET_EVENTS = 'touchstart touchmove touchend touchcancel';\n /**\n * Multi-user touch events input\n * @constructor\n * @extends Input\n */\n\n function TouchInput() {\n this.evTarget = TOUCH_TARGET_EVENTS;\n this.targetIds = {};\n Input.apply(this, arguments);\n }\n\n inherit(TouchInput, Input, {\n handler: function MTEhandler(ev) {\n var type = TOUCH_INPUT_MAP[ev.type];\n var touches = getTouches.call(this, ev, type);\n\n if (!touches) {\n return;\n }\n\n this.callback(this.manager, type, {\n pointers: touches[0],\n changedPointers: touches[1],\n pointerType: INPUT_TYPE_TOUCH,\n srcEvent: ev\n });\n }\n });\n /**\n * @this {TouchInput}\n * @param {Object} ev\n * @param {Number} type flag\n * @returns {undefined|Array} [all, changed]\n */\n\n function getTouches(ev, type) {\n var allTouches = toArray(ev.touches);\n var targetIds = this.targetIds; // when there is only one touch, the process can be simplified\n\n if (type & (INPUT_START | INPUT_MOVE) && allTouches.length === 1) {\n targetIds[allTouches[0].identifier] = true;\n return [allTouches, allTouches];\n }\n\n var i,\n targetTouches,\n changedTouches = toArray(ev.changedTouches),\n changedTargetTouches = [],\n target = this.target; // get target touches from touches\n\n targetTouches = allTouches.filter(function (touch) {\n return hasParent(touch.target, target);\n }); // collect touches\n\n if (type === INPUT_START) {\n i = 0;\n\n while (i < targetTouches.length) {\n targetIds[targetTouches[i].identifier] = true;\n i++;\n }\n } // filter changed touches to only contain touches that exist in the collected target ids\n\n\n i = 0;\n\n while (i < changedTouches.length) {\n if (targetIds[changedTouches[i].identifier]) {\n changedTargetTouches.push(changedTouches[i]);\n } // cleanup removed touches\n\n\n if (type & (INPUT_END | INPUT_CANCEL)) {\n delete targetIds[changedTouches[i].identifier];\n }\n\n i++;\n }\n\n if (!changedTargetTouches.length) {\n return;\n }\n\n return [// merge targetTouches with changedTargetTouches so it contains ALL touches, including 'end' and 'cancel'\n uniqueArray(targetTouches.concat(changedTargetTouches), 'identifier', true), changedTargetTouches];\n }\n /**\n * Combined touch and mouse input\n *\n * Touch has a higher priority then mouse, and while touching no mouse events are allowed.\n * This because touch devices also emit mouse events while doing a touch.\n *\n * @constructor\n * @extends Input\n */\n\n\n var DEDUP_TIMEOUT = 2500;\n var DEDUP_DISTANCE = 25;\n\n function TouchMouseInput() {\n Input.apply(this, arguments);\n var handler = bindFn(this.handler, this);\n this.touch = new TouchInput(this.manager, handler);\n this.mouse = new MouseInput(this.manager, handler);\n this.primaryTouch = null;\n this.lastTouches = [];\n }\n\n inherit(TouchMouseInput, Input, {\n /**\n * handle mouse and touch events\n * @param {Hammer} manager\n * @param {String} inputEvent\n * @param {Object} inputData\n */\n handler: function TMEhandler(manager, inputEvent, inputData) {\n var isTouch = inputData.pointerType == INPUT_TYPE_TOUCH,\n isMouse = inputData.pointerType == INPUT_TYPE_MOUSE;\n\n if (isMouse && inputData.sourceCapabilities && inputData.sourceCapabilities.firesTouchEvents) {\n return;\n } // when we're in a touch event, record touches to de-dupe synthetic mouse event\n\n\n if (isTouch) {\n recordTouches.call(this, inputEvent, inputData);\n } else if (isMouse && isSyntheticEvent.call(this, inputData)) {\n return;\n }\n\n this.callback(manager, inputEvent, inputData);\n },\n\n /**\n * remove the event listeners\n */\n destroy: function destroy() {\n this.touch.destroy();\n this.mouse.destroy();\n }\n });\n\n function recordTouches(eventType, eventData) {\n if (eventType & INPUT_START) {\n this.primaryTouch = eventData.changedPointers[0].identifier;\n setLastTouch.call(this, eventData);\n } else if (eventType & (INPUT_END | INPUT_CANCEL)) {\n setLastTouch.call(this, eventData);\n }\n }\n\n function setLastTouch(eventData) {\n var touch = eventData.changedPointers[0];\n\n if (touch.identifier === this.primaryTouch) {\n var lastTouch = {\n x: touch.clientX,\n y: touch.clientY\n };\n this.lastTouches.push(lastTouch);\n var lts = this.lastTouches;\n\n var removeLastTouch = function removeLastTouch() {\n var i = lts.indexOf(lastTouch);\n\n if (i > -1) {\n lts.splice(i, 1);\n }\n };\n\n setTimeout(removeLastTouch, DEDUP_TIMEOUT);\n }\n }\n\n function isSyntheticEvent(eventData) {\n var x = eventData.srcEvent.clientX,\n y = eventData.srcEvent.clientY;\n\n for (var i = 0; i < this.lastTouches.length; i++) {\n var t = this.lastTouches[i];\n var dx = Math.abs(x - t.x),\n dy = Math.abs(y - t.y);\n\n if (dx <= DEDUP_DISTANCE && dy <= DEDUP_DISTANCE) {\n return true;\n }\n }\n\n return false;\n }\n\n var PREFIXED_TOUCH_ACTION = prefixed(TEST_ELEMENT.style, 'touchAction');\n var NATIVE_TOUCH_ACTION = PREFIXED_TOUCH_ACTION !== undefined; // magical touchAction value\n\n var TOUCH_ACTION_COMPUTE = 'compute';\n var TOUCH_ACTION_AUTO = 'auto';\n var TOUCH_ACTION_MANIPULATION = 'manipulation'; // not implemented\n\n var TOUCH_ACTION_NONE = 'none';\n var TOUCH_ACTION_PAN_X = 'pan-x';\n var TOUCH_ACTION_PAN_Y = 'pan-y';\n var TOUCH_ACTION_MAP = getTouchActionProps();\n /**\n * Touch Action\n * sets the touchAction property or uses the js alternative\n * @param {Manager} manager\n * @param {String} value\n * @constructor\n */\n\n function TouchAction(manager, value) {\n this.manager = manager;\n this.set(value);\n }\n\n TouchAction.prototype = {\n /**\n * set the touchAction value on the element or enable the polyfill\n * @param {String} value\n */\n set: function set(value) {\n // find out the touch-action by the event handlers\n if (value == TOUCH_ACTION_COMPUTE) {\n value = this.compute();\n }\n\n if (NATIVE_TOUCH_ACTION && this.manager.element.style && TOUCH_ACTION_MAP[value]) {\n this.manager.element.style[PREFIXED_TOUCH_ACTION] = value;\n }\n\n this.actions = value.toLowerCase().trim();\n },\n\n /**\n * just re-set the touchAction value\n */\n update: function update() {\n this.set(this.manager.options.touchAction);\n },\n\n /**\n * compute the value for the touchAction property based on the recognizer's settings\n * @returns {String} value\n */\n compute: function compute() {\n var actions = [];\n each(this.manager.recognizers, function (recognizer) {\n if (boolOrFn(recognizer.options.enable, [recognizer])) {\n actions = actions.concat(recognizer.getTouchAction());\n }\n });\n return cleanTouchActions(actions.join(' '));\n },\n\n /**\n * this method is called on each input cycle and provides the preventing of the browser behavior\n * @param {Object} input\n */\n preventDefaults: function preventDefaults(input) {\n var srcEvent = input.srcEvent;\n var direction = input.offsetDirection; // if the touch action did prevented once this session\n\n if (this.manager.session.prevented) {\n srcEvent.preventDefault();\n return;\n }\n\n var actions = this.actions;\n var hasNone = inStr(actions, TOUCH_ACTION_NONE) && !TOUCH_ACTION_MAP[TOUCH_ACTION_NONE];\n var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_Y];\n var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_X];\n\n if (hasNone) {\n //do not prevent defaults if this is a tap gesture\n var isTapPointer = input.pointers.length === 1;\n var isTapMovement = input.distance < 2;\n var isTapTouchTime = input.deltaTime < 250;\n\n if (isTapPointer && isTapMovement && isTapTouchTime) {\n return;\n }\n }\n\n if (hasPanX && hasPanY) {\n // `pan-x pan-y` means browser handles all scrolling/panning, do not prevent\n return;\n }\n\n if (hasNone || hasPanY && direction & DIRECTION_HORIZONTAL || hasPanX && direction & DIRECTION_VERTICAL) {\n return this.preventSrc(srcEvent);\n }\n },\n\n /**\n * call preventDefault to prevent the browser's default behavior (scrolling in most cases)\n * @param {Object} srcEvent\n */\n preventSrc: function preventSrc(srcEvent) {\n this.manager.session.prevented = true;\n srcEvent.preventDefault();\n }\n };\n /**\n * when the touchActions are collected they are not a valid value, so we need to clean things up. *\n * @param {String} actions\n * @returns {*}\n */\n\n function cleanTouchActions(actions) {\n // none\n if (inStr(actions, TOUCH_ACTION_NONE)) {\n return TOUCH_ACTION_NONE;\n }\n\n var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X);\n var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y); // if both pan-x and pan-y are set (different recognizers\n // for different directions, e.g. horizontal pan but vertical swipe?)\n // we need none (as otherwise with pan-x pan-y combined none of these\n // recognizers will work, since the browser would handle all panning\n\n if (hasPanX && hasPanY) {\n return TOUCH_ACTION_NONE;\n } // pan-x OR pan-y\n\n\n if (hasPanX || hasPanY) {\n return hasPanX ? TOUCH_ACTION_PAN_X : TOUCH_ACTION_PAN_Y;\n } // manipulation\n\n\n if (inStr(actions, TOUCH_ACTION_MANIPULATION)) {\n return TOUCH_ACTION_MANIPULATION;\n }\n\n return TOUCH_ACTION_AUTO;\n }\n\n function getTouchActionProps() {\n if (!NATIVE_TOUCH_ACTION) {\n return false;\n }\n\n var touchMap = {};\n var cssSupports = window.CSS && window.CSS.supports;\n ['auto', 'manipulation', 'pan-y', 'pan-x', 'pan-x pan-y', 'none'].forEach(function (val) {\n // If css.supports is not supported but there is native touch-action assume it supports\n // all values. This is the case for IE 10 and 11.\n touchMap[val] = cssSupports ? window.CSS.supports('touch-action', val) : true;\n });\n return touchMap;\n }\n /**\n * Recognizer flow explained; *\n * All recognizers have the initial state of POSSIBLE when a input session starts.\n * The definition of a input session is from the first input until the last input, with all it's movement in it. *\n * Example session for mouse-input: mousedown -> mousemove -> mouseup\n *\n * On each recognizing cycle (see Manager.recognize) the .recognize() method is executed\n * which determines with state it should be.\n *\n * If the recognizer has the state FAILED, CANCELLED or RECOGNIZED (equals ENDED), it is reset to\n * POSSIBLE to give it another change on the next cycle.\n *\n * Possible\n * |\n * +-----+---------------+\n * | |\n * +-----+-----+ |\n * | | |\n * Failed Cancelled |\n * +-------+------+\n * | |\n * Recognized Began\n * |\n * Changed\n * |\n * Ended/Recognized\n */\n\n\n var STATE_POSSIBLE = 1;\n var STATE_BEGAN = 2;\n var STATE_CHANGED = 4;\n var STATE_ENDED = 8;\n var STATE_RECOGNIZED = STATE_ENDED;\n var STATE_CANCELLED = 16;\n var STATE_FAILED = 32;\n /**\n * Recognizer\n * Every recognizer needs to extend from this class.\n * @constructor\n * @param {Object} options\n */\n\n function Recognizer(options) {\n this.options = assign({}, this.defaults, options || {});\n this.id = uniqueId();\n this.manager = null; // default is enable true\n\n this.options.enable = ifUndefined(this.options.enable, true);\n this.state = STATE_POSSIBLE;\n this.simultaneous = {};\n this.requireFail = [];\n }\n\n Recognizer.prototype = {\n /**\n * @virtual\n * @type {Object}\n */\n defaults: {},\n\n /**\n * set options\n * @param {Object} options\n * @return {Recognizer}\n */\n set: function set(options) {\n assign(this.options, options); // also update the touchAction, in case something changed about the directions/enabled state\n\n this.manager && this.manager.touchAction.update();\n return this;\n },\n\n /**\n * recognize simultaneous with an other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n recognizeWith: function recognizeWith(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'recognizeWith', this)) {\n return this;\n }\n\n var simultaneous = this.simultaneous;\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n\n if (!simultaneous[otherRecognizer.id]) {\n simultaneous[otherRecognizer.id] = otherRecognizer;\n otherRecognizer.recognizeWith(this);\n }\n\n return this;\n },\n\n /**\n * drop the simultaneous link. it doesnt remove the link on the other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n dropRecognizeWith: function dropRecognizeWith(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'dropRecognizeWith', this)) {\n return this;\n }\n\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n delete this.simultaneous[otherRecognizer.id];\n return this;\n },\n\n /**\n * recognizer can only run when an other is failing\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n requireFailure: function requireFailure(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'requireFailure', this)) {\n return this;\n }\n\n var requireFail = this.requireFail;\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n\n if (inArray(requireFail, otherRecognizer) === -1) {\n requireFail.push(otherRecognizer);\n otherRecognizer.requireFailure(this);\n }\n\n return this;\n },\n\n /**\n * drop the requireFailure link. it does not remove the link on the other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n dropRequireFailure: function dropRequireFailure(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'dropRequireFailure', this)) {\n return this;\n }\n\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n var index = inArray(this.requireFail, otherRecognizer);\n\n if (index > -1) {\n this.requireFail.splice(index, 1);\n }\n\n return this;\n },\n\n /**\n * has require failures boolean\n * @returns {boolean}\n */\n hasRequireFailures: function hasRequireFailures() {\n return this.requireFail.length > 0;\n },\n\n /**\n * if the recognizer can recognize simultaneous with an other recognizer\n * @param {Recognizer} otherRecognizer\n * @returns {Boolean}\n */\n canRecognizeWith: function canRecognizeWith(otherRecognizer) {\n return !!this.simultaneous[otherRecognizer.id];\n },\n\n /**\n * You should use `tryEmit` instead of `emit` directly to check\n * that all the needed recognizers has failed before emitting.\n * @param {Object} input\n */\n emit: function emit(input) {\n var self = this;\n var state = this.state;\n\n function emit(event) {\n self.manager.emit(event, input);\n } // 'panstart' and 'panmove'\n\n\n if (state < STATE_ENDED) {\n emit(self.options.event + stateStr(state));\n }\n\n emit(self.options.event); // simple 'eventName' events\n\n if (input.additionalEvent) {\n // additional event(panleft, panright, pinchin, pinchout...)\n emit(input.additionalEvent);\n } // panend and pancancel\n\n\n if (state >= STATE_ENDED) {\n emit(self.options.event + stateStr(state));\n }\n },\n\n /**\n * Check that all the require failure recognizers has failed,\n * if true, it emits a gesture event,\n * otherwise, setup the state to FAILED.\n * @param {Object} input\n */\n tryEmit: function tryEmit(input) {\n if (this.canEmit()) {\n return this.emit(input);\n } // it's failing anyway\n\n\n this.state = STATE_FAILED;\n },\n\n /**\n * can we emit?\n * @returns {boolean}\n */\n canEmit: function canEmit() {\n var i = 0;\n\n while (i < this.requireFail.length) {\n if (!(this.requireFail[i].state & (STATE_FAILED | STATE_POSSIBLE))) {\n return false;\n }\n\n i++;\n }\n\n return true;\n },\n\n /**\n * update the recognizer\n * @param {Object} inputData\n */\n recognize: function recognize(inputData) {\n // make a new copy of the inputData\n // so we can change the inputData without messing up the other recognizers\n var inputDataClone = assign({}, inputData); // is is enabled and allow recognizing?\n\n if (!boolOrFn(this.options.enable, [this, inputDataClone])) {\n this.reset();\n this.state = STATE_FAILED;\n return;\n } // reset when we've reached the end\n\n\n if (this.state & (STATE_RECOGNIZED | STATE_CANCELLED | STATE_FAILED)) {\n this.state = STATE_POSSIBLE;\n }\n\n this.state = this.process(inputDataClone); // the recognizer has recognized a gesture\n // so trigger an event\n\n if (this.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED | STATE_CANCELLED)) {\n this.tryEmit(inputDataClone);\n }\n },\n\n /**\n * return the state of the recognizer\n * the actual recognizing happens in this method\n * @virtual\n * @param {Object} inputData\n * @returns {Const} STATE\n */\n process: function process(inputData) {},\n // jshint ignore:line\n\n /**\n * return the preferred touch-action\n * @virtual\n * @returns {Array}\n */\n getTouchAction: function getTouchAction() {},\n\n /**\n * called when the gesture isn't allowed to recognize\n * like when another is being recognized or it is disabled\n * @virtual\n */\n reset: function reset() {}\n };\n /**\n * get a usable string, used as event postfix\n * @param {Const} state\n * @returns {String} state\n */\n\n function stateStr(state) {\n if (state & STATE_CANCELLED) {\n return 'cancel';\n } else if (state & STATE_ENDED) {\n return 'end';\n } else if (state & STATE_CHANGED) {\n return 'move';\n } else if (state & STATE_BEGAN) {\n return 'start';\n }\n\n return '';\n }\n /**\n * direction cons to string\n * @param {Const} direction\n * @returns {String}\n */\n\n\n function directionStr(direction) {\n if (direction == DIRECTION_DOWN) {\n return 'down';\n } else if (direction == DIRECTION_UP) {\n return 'up';\n } else if (direction == DIRECTION_LEFT) {\n return 'left';\n } else if (direction == DIRECTION_RIGHT) {\n return 'right';\n }\n\n return '';\n }\n /**\n * get a recognizer by name if it is bound to a manager\n * @param {Recognizer|String} otherRecognizer\n * @param {Recognizer} recognizer\n * @returns {Recognizer}\n */\n\n\n function getRecognizerByNameIfManager(otherRecognizer, recognizer) {\n var manager = recognizer.manager;\n\n if (manager) {\n return manager.get(otherRecognizer);\n }\n\n return otherRecognizer;\n }\n /**\n * This recognizer is just used as a base for the simple attribute recognizers.\n * @constructor\n * @extends Recognizer\n */\n\n\n function AttrRecognizer() {\n Recognizer.apply(this, arguments);\n }\n\n inherit(AttrRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof AttrRecognizer\n */\n defaults: {\n /**\n * @type {Number}\n * @default 1\n */\n pointers: 1\n },\n\n /**\n * Used to check if it the recognizer receives valid input, like input.distance > 10.\n * @memberof AttrRecognizer\n * @param {Object} input\n * @returns {Boolean} recognized\n */\n attrTest: function attrTest(input) {\n var optionPointers = this.options.pointers;\n return optionPointers === 0 || input.pointers.length === optionPointers;\n },\n\n /**\n * Process the input and return the state for the recognizer\n * @memberof AttrRecognizer\n * @param {Object} input\n * @returns {*} State\n */\n process: function process(input) {\n var state = this.state;\n var eventType = input.eventType;\n var isRecognized = state & (STATE_BEGAN | STATE_CHANGED);\n var isValid = this.attrTest(input); // on cancel input and we've recognized before, return STATE_CANCELLED\n\n if (isRecognized && (eventType & INPUT_CANCEL || !isValid)) {\n return state | STATE_CANCELLED;\n } else if (isRecognized || isValid) {\n if (eventType & INPUT_END) {\n return state | STATE_ENDED;\n } else if (!(state & STATE_BEGAN)) {\n return STATE_BEGAN;\n }\n\n return state | STATE_CHANGED;\n }\n\n return STATE_FAILED;\n }\n });\n /**\n * Pan\n * Recognized when the pointer is down and moved in the allowed direction.\n * @constructor\n * @extends AttrRecognizer\n */\n\n function PanRecognizer() {\n AttrRecognizer.apply(this, arguments);\n this.pX = null;\n this.pY = null;\n }\n\n inherit(PanRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof PanRecognizer\n */\n defaults: {\n event: 'pan',\n threshold: 10,\n pointers: 1,\n direction: DIRECTION_ALL\n },\n getTouchAction: function getTouchAction() {\n var direction = this.options.direction;\n var actions = [];\n\n if (direction & DIRECTION_HORIZONTAL) {\n actions.push(TOUCH_ACTION_PAN_Y);\n }\n\n if (direction & DIRECTION_VERTICAL) {\n actions.push(TOUCH_ACTION_PAN_X);\n }\n\n return actions;\n },\n directionTest: function directionTest(input) {\n var options = this.options;\n var hasMoved = true;\n var distance = input.distance;\n var direction = input.direction;\n var x = input.deltaX;\n var y = input.deltaY; // lock to axis?\n\n if (!(direction & options.direction)) {\n if (options.direction & DIRECTION_HORIZONTAL) {\n direction = x === 0 ? DIRECTION_NONE : x < 0 ? DIRECTION_LEFT : DIRECTION_RIGHT;\n hasMoved = x != this.pX;\n distance = Math.abs(input.deltaX);\n } else {\n direction = y === 0 ? DIRECTION_NONE : y < 0 ? DIRECTION_UP : DIRECTION_DOWN;\n hasMoved = y != this.pY;\n distance = Math.abs(input.deltaY);\n }\n }\n\n input.direction = direction;\n return hasMoved && distance > options.threshold && direction & options.direction;\n },\n attrTest: function attrTest(input) {\n return AttrRecognizer.prototype.attrTest.call(this, input) && (this.state & STATE_BEGAN || !(this.state & STATE_BEGAN) && this.directionTest(input));\n },\n emit: function emit(input) {\n this.pX = input.deltaX;\n this.pY = input.deltaY;\n var direction = directionStr(input.direction);\n\n if (direction) {\n input.additionalEvent = this.options.event + direction;\n }\n\n this._super.emit.call(this, input);\n }\n });\n /**\n * Pinch\n * Recognized when two or more pointers are moving toward (zoom-in) or away from each other (zoom-out).\n * @constructor\n * @extends AttrRecognizer\n */\n\n function PinchRecognizer() {\n AttrRecognizer.apply(this, arguments);\n }\n\n inherit(PinchRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof PinchRecognizer\n */\n defaults: {\n event: 'pinch',\n threshold: 0,\n pointers: 2\n },\n getTouchAction: function getTouchAction() {\n return [TOUCH_ACTION_NONE];\n },\n attrTest: function attrTest(input) {\n return this._super.attrTest.call(this, input) && (Math.abs(input.scale - 1) > this.options.threshold || this.state & STATE_BEGAN);\n },\n emit: function emit(input) {\n if (input.scale !== 1) {\n var inOut = input.scale < 1 ? 'in' : 'out';\n input.additionalEvent = this.options.event + inOut;\n }\n\n this._super.emit.call(this, input);\n }\n });\n /**\n * Press\n * Recognized when the pointer is down for x ms without any movement.\n * @constructor\n * @extends Recognizer\n */\n\n function PressRecognizer() {\n Recognizer.apply(this, arguments);\n this._timer = null;\n this._input = null;\n }\n\n inherit(PressRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof PressRecognizer\n */\n defaults: {\n event: 'press',\n pointers: 1,\n time: 251,\n // minimal time of the pointer to be pressed\n threshold: 9 // a minimal movement is ok, but keep it low\n\n },\n getTouchAction: function getTouchAction() {\n return [TOUCH_ACTION_AUTO];\n },\n process: function process(input) {\n var options = this.options;\n var validPointers = input.pointers.length === options.pointers;\n var validMovement = input.distance < options.threshold;\n var validTime = input.deltaTime > options.time;\n this._input = input; // we only allow little movement\n // and we've reached an end event, so a tap is possible\n\n if (!validMovement || !validPointers || input.eventType & (INPUT_END | INPUT_CANCEL) && !validTime) {\n this.reset();\n } else if (input.eventType & INPUT_START) {\n this.reset();\n this._timer = setTimeoutContext(function () {\n this.state = STATE_RECOGNIZED;\n this.tryEmit();\n }, options.time, this);\n } else if (input.eventType & INPUT_END) {\n return STATE_RECOGNIZED;\n }\n\n return STATE_FAILED;\n },\n reset: function reset() {\n clearTimeout(this._timer);\n },\n emit: function emit(input) {\n if (this.state !== STATE_RECOGNIZED) {\n return;\n }\n\n if (input && input.eventType & INPUT_END) {\n this.manager.emit(this.options.event + 'up', input);\n } else {\n this._input.timeStamp = now();\n this.manager.emit(this.options.event, this._input);\n }\n }\n });\n /**\n * Rotate\n * Recognized when two or more pointer are moving in a circular motion.\n * @constructor\n * @extends AttrRecognizer\n */\n\n function RotateRecognizer() {\n AttrRecognizer.apply(this, arguments);\n }\n\n inherit(RotateRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof RotateRecognizer\n */\n defaults: {\n event: 'rotate',\n threshold: 0,\n pointers: 2\n },\n getTouchAction: function getTouchAction() {\n return [TOUCH_ACTION_NONE];\n },\n attrTest: function attrTest(input) {\n return this._super.attrTest.call(this, input) && (Math.abs(input.rotation) > this.options.threshold || this.state & STATE_BEGAN);\n }\n });\n /**\n * Swipe\n * Recognized when the pointer is moving fast (velocity), with enough distance in the allowed direction.\n * @constructor\n * @extends AttrRecognizer\n */\n\n function SwipeRecognizer() {\n AttrRecognizer.apply(this, arguments);\n }\n\n inherit(SwipeRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof SwipeRecognizer\n */\n defaults: {\n event: 'swipe',\n threshold: 10,\n velocity: 0.3,\n direction: DIRECTION_HORIZONTAL | DIRECTION_VERTICAL,\n pointers: 1\n },\n getTouchAction: function getTouchAction() {\n return PanRecognizer.prototype.getTouchAction.call(this);\n },\n attrTest: function attrTest(input) {\n var direction = this.options.direction;\n var velocity;\n\n if (direction & (DIRECTION_HORIZONTAL | DIRECTION_VERTICAL)) {\n velocity = input.overallVelocity;\n } else if (direction & DIRECTION_HORIZONTAL) {\n velocity = input.overallVelocityX;\n } else if (direction & DIRECTION_VERTICAL) {\n velocity = input.overallVelocityY;\n }\n\n return this._super.attrTest.call(this, input) && direction & input.offsetDirection && input.distance > this.options.threshold && input.maxPointers == this.options.pointers && abs(velocity) > this.options.velocity && input.eventType & INPUT_END;\n },\n emit: function emit(input) {\n var direction = directionStr(input.offsetDirection);\n\n if (direction) {\n this.manager.emit(this.options.event + direction, input);\n }\n\n this.manager.emit(this.options.event, input);\n }\n });\n /**\n * A tap is ecognized when the pointer is doing a small tap/click. Multiple taps are recognized if they occur\n * between the given interval and position. The delay option can be used to recognize multi-taps without firing\n * a single tap.\n *\n * The eventData from the emitted event contains the property `tapCount`, which contains the amount of\n * multi-taps being recognized.\n * @constructor\n * @extends Recognizer\n */\n\n function TapRecognizer() {\n Recognizer.apply(this, arguments); // previous time and center,\n // used for tap counting\n\n this.pTime = false;\n this.pCenter = false;\n this._timer = null;\n this._input = null;\n this.count = 0;\n }\n\n inherit(TapRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof PinchRecognizer\n */\n defaults: {\n event: 'tap',\n pointers: 1,\n taps: 1,\n interval: 300,\n // max time between the multi-tap taps\n time: 250,\n // max time of the pointer to be down (like finger on the screen)\n threshold: 9,\n // a minimal movement is ok, but keep it low\n posThreshold: 10 // a multi-tap can be a bit off the initial position\n\n },\n getTouchAction: function getTouchAction() {\n return [TOUCH_ACTION_MANIPULATION];\n },\n process: function process(input) {\n var options = this.options;\n var validPointers = input.pointers.length === options.pointers;\n var validMovement = input.distance < options.threshold;\n var validTouchTime = input.deltaTime < options.time;\n this.reset();\n\n if (input.eventType & INPUT_START && this.count === 0) {\n return this.failTimeout();\n } // we only allow little movement\n // and we've reached an end event, so a tap is possible\n\n\n if (validMovement && validTouchTime && validPointers) {\n if (input.eventType != INPUT_END) {\n return this.failTimeout();\n }\n\n var validInterval = this.pTime ? input.timeStamp - this.pTime < options.interval : true;\n var validMultiTap = !this.pCenter || getDistance(this.pCenter, input.center) < options.posThreshold;\n this.pTime = input.timeStamp;\n this.pCenter = input.center;\n\n if (!validMultiTap || !validInterval) {\n this.count = 1;\n } else {\n this.count += 1;\n }\n\n this._input = input; // if tap count matches we have recognized it,\n // else it has began recognizing...\n\n var tapCount = this.count % options.taps;\n\n if (tapCount === 0) {\n // no failing requirements, immediately trigger the tap event\n // or wait as long as the multitap interval to trigger\n if (!this.hasRequireFailures()) {\n return STATE_RECOGNIZED;\n } else {\n this._timer = setTimeoutContext(function () {\n this.state = STATE_RECOGNIZED;\n this.tryEmit();\n }, options.interval, this);\n return STATE_BEGAN;\n }\n }\n }\n\n return STATE_FAILED;\n },\n failTimeout: function failTimeout() {\n this._timer = setTimeoutContext(function () {\n this.state = STATE_FAILED;\n }, this.options.interval, this);\n return STATE_FAILED;\n },\n reset: function reset() {\n clearTimeout(this._timer);\n },\n emit: function emit() {\n if (this.state == STATE_RECOGNIZED) {\n this._input.tapCount = this.count;\n this.manager.emit(this.options.event, this._input);\n }\n }\n });\n /**\n * Simple way to create a manager with a default set of recognizers.\n * @param {HTMLElement} element\n * @param {Object} [options]\n * @constructor\n */\n\n function Hammer(element, options) {\n options = options || {};\n options.recognizers = ifUndefined(options.recognizers, Hammer.defaults.preset);\n return new Manager(element, options);\n }\n /**\n * @const {string}\n */\n\n\n Hammer.VERSION = '2.0.7';\n /**\n * default settings\n * @namespace\n */\n\n Hammer.defaults = {\n /**\n * set if DOM events are being triggered.\n * But this is slower and unused by simple implementations, so disabled by default.\n * @type {Boolean}\n * @default false\n */\n domEvents: false,\n\n /**\n * The value for the touchAction property/fallback.\n * When set to `compute` it will magically set the correct value based on the added recognizers.\n * @type {String}\n * @default compute\n */\n touchAction: TOUCH_ACTION_COMPUTE,\n\n /**\n * @type {Boolean}\n * @default true\n */\n enable: true,\n\n /**\n * EXPERIMENTAL FEATURE -- can be removed/changed\n * Change the parent input target element.\n * If Null, then it is being set the to main element.\n * @type {Null|EventTarget}\n * @default null\n */\n inputTarget: null,\n\n /**\n * force an input class\n * @type {Null|Function}\n * @default null\n */\n inputClass: null,\n\n /**\n * Default recognizer setup when calling `Hammer()`\n * When creating a new Manager these will be skipped.\n * @type {Array}\n */\n preset: [// RecognizerClass, options, [recognizeWith, ...], [requireFailure, ...]\n [RotateRecognizer, {\n enable: false\n }], [PinchRecognizer, {\n enable: false\n }, ['rotate']], [SwipeRecognizer, {\n direction: DIRECTION_HORIZONTAL\n }], [PanRecognizer, {\n direction: DIRECTION_HORIZONTAL\n }, ['swipe']], [TapRecognizer], [TapRecognizer, {\n event: 'doubletap',\n taps: 2\n }, ['tap']], [PressRecognizer]],\n\n /**\n * Some CSS properties can be used to improve the working of Hammer.\n * Add them to this method and they will be set when creating a new Manager.\n * @namespace\n */\n cssProps: {\n /**\n * Disables text selection to improve the dragging gesture. Mainly for desktop browsers.\n * @type {String}\n * @default 'none'\n */\n userSelect: 'none',\n\n /**\n * Disable the Windows Phone grippers when pressing an element.\n * @type {String}\n * @default 'none'\n */\n touchSelect: 'none',\n\n /**\n * Disables the default callout shown when you touch and hold a touch target.\n * On iOS, when you touch and hold a touch target such as a link, Safari displays\n * a callout containing information about the link. This property allows you to disable that callout.\n * @type {String}\n * @default 'none'\n */\n touchCallout: 'none',\n\n /**\n * Specifies whether zooming is enabled. Used by IE10>\n * @type {String}\n * @default 'none'\n */\n contentZooming: 'none',\n\n /**\n * Specifies that an entire element should be draggable instead of its contents. Mainly for desktop browsers.\n * @type {String}\n * @default 'none'\n */\n userDrag: 'none',\n\n /**\n * Overrides the highlight color shown when the user taps a link or a JavaScript\n * clickable element in iOS. This property obeys the alpha value, if specified.\n * @type {String}\n * @default 'rgba(0,0,0,0)'\n */\n tapHighlightColor: 'rgba(0,0,0,0)'\n }\n };\n var STOP = 1;\n var FORCED_STOP = 2;\n /**\n * Manager\n * @param {HTMLElement} element\n * @param {Object} [options]\n * @constructor\n */\n\n function Manager(element, options) {\n this.options = assign({}, Hammer.defaults, options || {});\n this.options.inputTarget = this.options.inputTarget || element;\n this.handlers = {};\n this.session = {};\n this.recognizers = [];\n this.oldCssProps = {};\n this.element = element;\n this.input = createInputInstance(this);\n this.touchAction = new TouchAction(this, this.options.touchAction);\n toggleCssProps(this, true);\n each(this.options.recognizers, function (item) {\n var recognizer = this.add(new item[0](item[1]));\n item[2] && recognizer.recognizeWith(item[2]);\n item[3] && recognizer.requireFailure(item[3]);\n }, this);\n }\n\n Manager.prototype = {\n /**\n * set options\n * @param {Object} options\n * @returns {Manager}\n */\n set: function set(options) {\n assign(this.options, options); // Options that need a little more setup\n\n if (options.touchAction) {\n this.touchAction.update();\n }\n\n if (options.inputTarget) {\n // Clean up existing event listeners and reinitialize\n this.input.destroy();\n this.input.target = options.inputTarget;\n this.input.init();\n }\n\n return this;\n },\n\n /**\n * stop recognizing for this session.\n * This session will be discarded, when a new [input]start event is fired.\n * When forced, the recognizer cycle is stopped immediately.\n * @param {Boolean} [force]\n */\n stop: function stop(force) {\n this.session.stopped = force ? FORCED_STOP : STOP;\n },\n\n /**\n * run the recognizers!\n * called by the inputHandler function on every movement of the pointers (touches)\n * it walks through all the recognizers and tries to detect the gesture that is being made\n * @param {Object} inputData\n */\n recognize: function recognize(inputData) {\n var session = this.session;\n\n if (session.stopped) {\n return;\n } // run the touch-action polyfill\n\n\n this.touchAction.preventDefaults(inputData);\n var recognizer;\n var recognizers = this.recognizers; // this holds the recognizer that is being recognized.\n // so the recognizer's state needs to be BEGAN, CHANGED, ENDED or RECOGNIZED\n // if no recognizer is detecting a thing, it is set to `null`\n\n var curRecognizer = session.curRecognizer; // reset when the last recognizer is recognized\n // or when we're in a new session\n\n if (!curRecognizer || curRecognizer && curRecognizer.state & STATE_RECOGNIZED) {\n curRecognizer = session.curRecognizer = null;\n }\n\n var i = 0;\n\n while (i < recognizers.length) {\n recognizer = recognizers[i]; // find out if we are allowed try to recognize the input for this one.\n // 1. allow if the session is NOT forced stopped (see the .stop() method)\n // 2. allow if we still haven't recognized a gesture in this session, or the this recognizer is the one\n // that is being recognized.\n // 3. allow if the recognizer is allowed to run simultaneous with the current recognized recognizer.\n // this can be setup with the `recognizeWith()` method on the recognizer.\n\n if (session.stopped !== FORCED_STOP && ( // 1\n !curRecognizer || recognizer == curRecognizer || // 2\n recognizer.canRecognizeWith(curRecognizer))) {\n // 3\n recognizer.recognize(inputData);\n } else {\n recognizer.reset();\n } // if the recognizer has been recognizing the input as a valid gesture, we want to store this one as the\n // current active recognizer. but only if we don't already have an active recognizer\n\n\n if (!curRecognizer && recognizer.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED)) {\n curRecognizer = session.curRecognizer = recognizer;\n }\n\n i++;\n }\n },\n\n /**\n * get a recognizer by its event name.\n * @param {Recognizer|String} recognizer\n * @returns {Recognizer|Null}\n */\n get: function get(recognizer) {\n if (recognizer instanceof Recognizer) {\n return recognizer;\n }\n\n var recognizers = this.recognizers;\n\n for (var i = 0; i < recognizers.length; i++) {\n if (recognizers[i].options.event == recognizer) {\n return recognizers[i];\n }\n }\n\n return null;\n },\n\n /**\n * add a recognizer to the manager\n * existing recognizers with the same event name will be removed\n * @param {Recognizer} recognizer\n * @returns {Recognizer|Manager}\n */\n add: function add(recognizer) {\n if (invokeArrayArg(recognizer, 'add', this)) {\n return this;\n } // remove existing\n\n\n var existing = this.get(recognizer.options.event);\n\n if (existing) {\n this.remove(existing);\n }\n\n this.recognizers.push(recognizer);\n recognizer.manager = this;\n this.touchAction.update();\n return recognizer;\n },\n\n /**\n * remove a recognizer by name or instance\n * @param {Recognizer|String} recognizer\n * @returns {Manager}\n */\n remove: function remove(recognizer) {\n if (invokeArrayArg(recognizer, 'remove', this)) {\n return this;\n }\n\n recognizer = this.get(recognizer); // let's make sure this recognizer exists\n\n if (recognizer) {\n var recognizers = this.recognizers;\n var index = inArray(recognizers, recognizer);\n\n if (index !== -1) {\n recognizers.splice(index, 1);\n this.touchAction.update();\n }\n }\n\n return this;\n },\n\n /**\n * bind event\n * @param {String} events\n * @param {Function} handler\n * @returns {EventEmitter} this\n */\n on: function on(events, handler) {\n if (events === undefined) {\n return;\n }\n\n if (handler === undefined) {\n return;\n }\n\n var handlers = this.handlers;\n each(splitStr(events), function (event) {\n handlers[event] = handlers[event] || [];\n handlers[event].push(handler);\n });\n return this;\n },\n\n /**\n * unbind event, leave emit blank to remove all handlers\n * @param {String} events\n * @param {Function} [handler]\n * @returns {EventEmitter} this\n */\n off: function off(events, handler) {\n if (events === undefined) {\n return;\n }\n\n var handlers = this.handlers;\n each(splitStr(events), function (event) {\n if (!handler) {\n delete handlers[event];\n } else {\n handlers[event] && handlers[event].splice(inArray(handlers[event], handler), 1);\n }\n });\n return this;\n },\n\n /**\n * emit event to the listeners\n * @param {String} event\n * @param {Object} data\n */\n emit: function emit(event, data) {\n // we also want to trigger dom events\n if (this.options.domEvents) {\n triggerDomEvent(event, data);\n } // no handlers, so skip it all\n\n\n var handlers = this.handlers[event] && this.handlers[event].slice();\n\n if (!handlers || !handlers.length) {\n return;\n }\n\n data.type = event;\n\n data.preventDefault = function () {\n data.srcEvent.preventDefault();\n };\n\n var i = 0;\n\n while (i < handlers.length) {\n handlers[i](data);\n i++;\n }\n },\n\n /**\n * destroy the manager and unbinds all events\n * it doesn't unbind dom events, that is the user own responsibility\n */\n destroy: function destroy() {\n this.element && toggleCssProps(this, false);\n this.handlers = {};\n this.session = {};\n this.input.destroy();\n this.element = null;\n }\n };\n /**\n * add/remove the css properties as defined in manager.options.cssProps\n * @param {Manager} manager\n * @param {Boolean} add\n */\n\n function toggleCssProps(manager, add) {\n var element = manager.element;\n\n if (!element.style) {\n return;\n }\n\n var prop;\n each(manager.options.cssProps, function (value, name) {\n prop = prefixed(element.style, name);\n\n if (add) {\n manager.oldCssProps[prop] = element.style[prop];\n element.style[prop] = value;\n } else {\n element.style[prop] = manager.oldCssProps[prop] || '';\n }\n });\n\n if (!add) {\n manager.oldCssProps = {};\n }\n }\n /**\n * trigger dom event\n * @param {String} event\n * @param {Object} data\n */\n\n\n function triggerDomEvent(event, data) {\n var gestureEvent = document.createEvent('Event');\n gestureEvent.initEvent(event, true, true);\n gestureEvent.gesture = data;\n data.target.dispatchEvent(gestureEvent);\n }\n\n assign(Hammer, {\n INPUT_START: INPUT_START,\n INPUT_MOVE: INPUT_MOVE,\n INPUT_END: INPUT_END,\n INPUT_CANCEL: INPUT_CANCEL,\n STATE_POSSIBLE: STATE_POSSIBLE,\n STATE_BEGAN: STATE_BEGAN,\n STATE_CHANGED: STATE_CHANGED,\n STATE_ENDED: STATE_ENDED,\n STATE_RECOGNIZED: STATE_RECOGNIZED,\n STATE_CANCELLED: STATE_CANCELLED,\n STATE_FAILED: STATE_FAILED,\n DIRECTION_NONE: DIRECTION_NONE,\n DIRECTION_LEFT: DIRECTION_LEFT,\n DIRECTION_RIGHT: DIRECTION_RIGHT,\n DIRECTION_UP: DIRECTION_UP,\n DIRECTION_DOWN: DIRECTION_DOWN,\n DIRECTION_HORIZONTAL: DIRECTION_HORIZONTAL,\n DIRECTION_VERTICAL: DIRECTION_VERTICAL,\n DIRECTION_ALL: DIRECTION_ALL,\n Manager: Manager,\n Input: Input,\n TouchAction: TouchAction,\n TouchInput: TouchInput,\n MouseInput: MouseInput,\n PointerEventInput: PointerEventInput,\n TouchMouseInput: TouchMouseInput,\n SingleTouchInput: SingleTouchInput,\n Recognizer: Recognizer,\n AttrRecognizer: AttrRecognizer,\n Tap: TapRecognizer,\n Pan: PanRecognizer,\n Swipe: SwipeRecognizer,\n Pinch: PinchRecognizer,\n Rotate: RotateRecognizer,\n Press: PressRecognizer,\n on: addEventListeners,\n off: removeEventListeners,\n each: each,\n merge: merge,\n extend: extend,\n assign: assign,\n inherit: inherit,\n bindFn: bindFn,\n prefixed: prefixed\n }); // this prevents errors when Hammer is loaded in the presence of an AMD\n // style loader but by script tag, not by the loader.\n\n var freeGlobal = typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}; // jshint ignore:line\n\n freeGlobal.Hammer = Hammer;\n\n if (typeof define === 'function' && define.amd) {\n define(function () {\n return Hammer;\n });\n } else if (typeof module != 'undefined' && module.exports) {\n module.exports = Hammer;\n } else {\n window[exportName] = Hammer;\n }\n})(window, document, 'Hammer');","// Deprecated: Use menu.js\n\nimport hoverintent from 'hoverintent/dist/hoverintent.min'\nimport { largeAndUp } from './viewport'\n\nlet prevNav\n\ndocument.addEventListener('DOMContentLoaded', init)\n\n\n/**\n * Initialise event listeners\n */\n\nfunction init() {\n const triggers = [...document.querySelectorAll('[data-nav-trigger]')]\n\n if (largeAndUp()) {\n triggers.map(trigger => {\n hoverintent(trigger.parentNode, show, hide)\n })\n } else {\n triggers.map(trigger => {\n trigger.addEventListener('click', open)\n })\n }\n\n [...document.querySelectorAll('[data-nav-close]')].map(btn => {\n btn.addEventListener('click', close)\n })\n}\n\n\n/**\n * Desktop event handlers\n */\n\nfunction show(e) {\n const rootNav = document.querySelector('[data-nav=root]')\n const navTrigger = e.target.parentNode\n const nav = navTrigger.querySelector('[data-nav]') || rootNav\n\n // Unset previously active\n if (prevNav) prevNav.classList.remove('is-active')\n prevNav = nav\n\n e.target.classList.add('is-active')\n nav.classList.add('is-active')\n navTrigger.classList.add('is-active')\n}\n\nfunction hide(e) {\n prevNav.classList.remove('is-active')\n e.target.parentNode.classList.remove('is-active')\n e.target.parentNode.querySelector('[data-nav-trigger]')\n .classList.remove('is-active')\n}\n\n\n/**\n * Handheld event handlers\n */\n\nfunction open(event) {\n const navTrigger = event.target\n const navId = navTrigger.getAttribute('data-nav-trigger')\n const nav = document.querySelector('[data-nav=\"' + navId + '\"]')\n\n if (nav) {\n event.preventDefault()\n prevNav = nav\n nav.classList.add('is-active')\n document.querySelector('body').style.overflow = \"hidden\"\n }\n}\n\nfunction close(event) {\n const prevNavId = event.target.getAttribute('data-nav-close')\n\n prevNav.classList.remove('is-active')\n\n if (prevNavId) {\n prevNav = document.querySelector('[data-nav=\"' + prevNavId + '\"]')\n } else {\n prevNav = null\n document.querySelector('body').style.overflow = 'visible'\n }\n}\n","/* globals __webpack_amd_options__ */\nmodule.exports = __webpack_amd_options__;\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === \"object\" && typeof module !== \"undefined\" ? factory(exports) : typeof define === \"function\" && define.amd ? define([\"exports\"], factory) : factory(global.ActiveStorage = {});\n})(this, function (exports) {\n \"use strict\";\n\n function createCommonjsModule(fn, module) {\n return module = {\n exports: {}\n }, fn(module, module.exports), module.exports;\n }\n\n var sparkMd5 = createCommonjsModule(function (module, exports) {\n (function (factory) {\n {\n module.exports = factory();\n }\n })(function (undefined) {\n var hex_chr = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\"];\n\n function md5cycle(x, k) {\n var a = x[0],\n b = x[1],\n c = x[2],\n d = x[3];\n a += (b & c | ~b & d) + k[0] - 680876936 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[1] - 389564586 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[2] + 606105819 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[3] - 1044525330 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[4] - 176418897 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[5] + 1200080426 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[6] - 1473231341 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[7] - 45705983 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[8] + 1770035416 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[9] - 1958414417 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[10] - 42063 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[11] - 1990404162 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[12] + 1804603682 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[13] - 40341101 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[14] - 1502002290 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[15] + 1236535329 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & d | c & ~d) + k[1] - 165796510 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[6] - 1069501632 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[11] + 643717713 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[0] - 373897302 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[5] - 701558691 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[10] + 38016083 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[15] - 660478335 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[4] - 405537848 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[9] + 568446438 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[14] - 1019803690 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[3] - 187363961 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[8] + 1163531501 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[13] - 1444681467 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[2] - 51403784 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[7] + 1735328473 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[12] - 1926607734 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b ^ c ^ d) + k[5] - 378558 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[8] - 2022574463 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[11] + 1839030562 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[14] - 35309556 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[1] - 1530992060 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[4] + 1272893353 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[7] - 155497632 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[10] - 1094730640 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[13] + 681279174 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[0] - 358537222 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[3] - 722521979 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[6] + 76029189 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[9] - 640364487 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[12] - 421815835 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[15] + 530742520 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[2] - 995338651 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (c ^ (b | ~d)) + k[0] - 198630844 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[7] + 1126891415 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[14] - 1416354905 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[5] - 57434055 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[12] + 1700485571 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[3] - 1894986606 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[10] - 1051523 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[1] - 2054922799 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[8] + 1873313359 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[15] - 30611744 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[6] - 1560198380 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[13] + 1309151649 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[4] - 145523070 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[11] - 1120210379 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[2] + 718787259 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[9] - 343485551 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n x[0] = a + x[0] | 0;\n x[1] = b + x[1] | 0;\n x[2] = c + x[2] | 0;\n x[3] = d + x[3] | 0;\n }\n\n function md5blk(s) {\n var md5blks = [],\n i;\n\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) << 24);\n }\n\n return md5blks;\n }\n\n function md5blk_array(a) {\n var md5blks = [],\n i;\n\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = a[i] + (a[i + 1] << 8) + (a[i + 2] << 16) + (a[i + 3] << 24);\n }\n\n return md5blks;\n }\n\n function md51(s) {\n var n = s.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk(s.substring(i - 64, i)));\n }\n\n s = s.substring(i - 64);\n length = s.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= s.charCodeAt(i) << (i % 4 << 3);\n }\n\n tail[i >> 2] |= 128 << (i % 4 << 3);\n\n if (i > 55) {\n md5cycle(state, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n\n function md51_array(a) {\n var n = a.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk_array(a.subarray(i - 64, i)));\n }\n\n a = i - 64 < n ? a.subarray(i - 64) : new Uint8Array(0);\n length = a.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= a[i] << (i % 4 << 3);\n }\n\n tail[i >> 2] |= 128 << (i % 4 << 3);\n\n if (i > 55) {\n md5cycle(state, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n\n function rhex(n) {\n var s = \"\",\n j;\n\n for (j = 0; j < 4; j += 1) {\n s += hex_chr[n >> j * 8 + 4 & 15] + hex_chr[n >> j * 8 & 15];\n }\n\n return s;\n }\n\n function hex(x) {\n var i;\n\n for (i = 0; i < x.length; i += 1) {\n x[i] = rhex(x[i]);\n }\n\n return x.join(\"\");\n }\n\n if (hex(md51(\"hello\")) !== \"5d41402abc4b2a76b9719d911017c592\") ;\n\n if (typeof ArrayBuffer !== \"undefined\" && !ArrayBuffer.prototype.slice) {\n (function () {\n function clamp(val, length) {\n val = val | 0 || 0;\n\n if (val < 0) {\n return Math.max(val + length, 0);\n }\n\n return Math.min(val, length);\n }\n\n ArrayBuffer.prototype.slice = function (from, to) {\n var length = this.byteLength,\n begin = clamp(from, length),\n end = length,\n num,\n target,\n targetArray,\n sourceArray;\n\n if (to !== undefined) {\n end = clamp(to, length);\n }\n\n if (begin > end) {\n return new ArrayBuffer(0);\n }\n\n num = end - begin;\n target = new ArrayBuffer(num);\n targetArray = new Uint8Array(target);\n sourceArray = new Uint8Array(this, begin, num);\n targetArray.set(sourceArray);\n return target;\n };\n })();\n }\n\n function toUtf8(str) {\n if (/[\\u0080-\\uFFFF]/.test(str)) {\n str = unescape(encodeURIComponent(str));\n }\n\n return str;\n }\n\n function utf8Str2ArrayBuffer(str, returnUInt8Array) {\n var length = str.length,\n buff = new ArrayBuffer(length),\n arr = new Uint8Array(buff),\n i;\n\n for (i = 0; i < length; i += 1) {\n arr[i] = str.charCodeAt(i);\n }\n\n return returnUInt8Array ? arr : buff;\n }\n\n function arrayBuffer2Utf8Str(buff) {\n return String.fromCharCode.apply(null, new Uint8Array(buff));\n }\n\n function concatenateArrayBuffers(first, second, returnUInt8Array) {\n var result = new Uint8Array(first.byteLength + second.byteLength);\n result.set(new Uint8Array(first));\n result.set(new Uint8Array(second), first.byteLength);\n return returnUInt8Array ? result : result.buffer;\n }\n\n function hexToBinaryString(hex) {\n var bytes = [],\n length = hex.length,\n x;\n\n for (x = 0; x < length - 1; x += 2) {\n bytes.push(parseInt(hex.substr(x, 2), 16));\n }\n\n return String.fromCharCode.apply(String, bytes);\n }\n\n function SparkMD5() {\n this.reset();\n }\n\n SparkMD5.prototype.append = function (str) {\n this.appendBinary(toUtf8(str));\n return this;\n };\n\n SparkMD5.prototype.appendBinary = function (contents) {\n this._buff += contents;\n this._length += contents.length;\n var length = this._buff.length,\n i;\n\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk(this._buff.substring(i - 64, i)));\n }\n\n this._buff = this._buff.substring(i - 64);\n return this;\n };\n\n SparkMD5.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n i,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n ret;\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff.charCodeAt(i) << (i % 4 << 3);\n }\n\n this._finish(tail, length);\n\n ret = hex(this._hash);\n\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n\n this.reset();\n return ret;\n };\n\n SparkMD5.prototype.reset = function () {\n this._buff = \"\";\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n return this;\n };\n\n SparkMD5.prototype.getState = function () {\n return {\n buff: this._buff,\n length: this._length,\n hash: this._hash\n };\n };\n\n SparkMD5.prototype.setState = function (state) {\n this._buff = state.buff;\n this._length = state.length;\n this._hash = state.hash;\n return this;\n };\n\n SparkMD5.prototype.destroy = function () {\n delete this._hash;\n delete this._buff;\n delete this._length;\n };\n\n SparkMD5.prototype._finish = function (tail, length) {\n var i = length,\n tmp,\n lo,\n hi;\n tail[i >> 2] |= 128 << (i % 4 << 3);\n\n if (i > 55) {\n md5cycle(this._hash, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n tmp = this._length * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(this._hash, tail);\n };\n\n SparkMD5.hash = function (str, raw) {\n return SparkMD5.hashBinary(toUtf8(str), raw);\n };\n\n SparkMD5.hashBinary = function (content, raw) {\n var hash = md51(content),\n ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n\n SparkMD5.ArrayBuffer = function () {\n this.reset();\n };\n\n SparkMD5.ArrayBuffer.prototype.append = function (arr) {\n var buff = concatenateArrayBuffers(this._buff.buffer, arr, true),\n length = buff.length,\n i;\n this._length += arr.byteLength;\n\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk_array(buff.subarray(i - 64, i)));\n }\n\n this._buff = i - 64 < length ? new Uint8Array(buff.buffer.slice(i - 64)) : new Uint8Array(0);\n return this;\n };\n\n SparkMD5.ArrayBuffer.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n i,\n ret;\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff[i] << (i % 4 << 3);\n }\n\n this._finish(tail, length);\n\n ret = hex(this._hash);\n\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n\n this.reset();\n return ret;\n };\n\n SparkMD5.ArrayBuffer.prototype.reset = function () {\n this._buff = new Uint8Array(0);\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n return this;\n };\n\n SparkMD5.ArrayBuffer.prototype.getState = function () {\n var state = SparkMD5.prototype.getState.call(this);\n state.buff = arrayBuffer2Utf8Str(state.buff);\n return state;\n };\n\n SparkMD5.ArrayBuffer.prototype.setState = function (state) {\n state.buff = utf8Str2ArrayBuffer(state.buff, true);\n return SparkMD5.prototype.setState.call(this, state);\n };\n\n SparkMD5.ArrayBuffer.prototype.destroy = SparkMD5.prototype.destroy;\n SparkMD5.ArrayBuffer.prototype._finish = SparkMD5.prototype._finish;\n\n SparkMD5.ArrayBuffer.hash = function (arr, raw) {\n var hash = md51_array(new Uint8Array(arr)),\n ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n\n return SparkMD5;\n });\n });\n\n var classCallCheck = function classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n };\n\n var createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n var fileSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice;\n\n var FileChecksum = function () {\n createClass(FileChecksum, null, [{\n key: \"create\",\n value: function create(file, callback) {\n var instance = new FileChecksum(file);\n instance.create(callback);\n }\n }]);\n\n function FileChecksum(file) {\n classCallCheck(this, FileChecksum);\n this.file = file;\n this.chunkSize = 2097152;\n this.chunkCount = Math.ceil(this.file.size / this.chunkSize);\n this.chunkIndex = 0;\n }\n\n createClass(FileChecksum, [{\n key: \"create\",\n value: function create(callback) {\n var _this = this;\n\n this.callback = callback;\n this.md5Buffer = new sparkMd5.ArrayBuffer();\n this.fileReader = new FileReader();\n this.fileReader.addEventListener(\"load\", function (event) {\n return _this.fileReaderDidLoad(event);\n });\n this.fileReader.addEventListener(\"error\", function (event) {\n return _this.fileReaderDidError(event);\n });\n this.readNextChunk();\n }\n }, {\n key: \"fileReaderDidLoad\",\n value: function fileReaderDidLoad(event) {\n this.md5Buffer.append(event.target.result);\n\n if (!this.readNextChunk()) {\n var binaryDigest = this.md5Buffer.end(true);\n var base64digest = btoa(binaryDigest);\n this.callback(null, base64digest);\n }\n }\n }, {\n key: \"fileReaderDidError\",\n value: function fileReaderDidError(event) {\n this.callback(\"Error reading \" + this.file.name);\n }\n }, {\n key: \"readNextChunk\",\n value: function readNextChunk() {\n if (this.chunkIndex < this.chunkCount || this.chunkIndex == 0 && this.chunkCount == 0) {\n var start = this.chunkIndex * this.chunkSize;\n var end = Math.min(start + this.chunkSize, this.file.size);\n var bytes = fileSlice.call(this.file, start, end);\n this.fileReader.readAsArrayBuffer(bytes);\n this.chunkIndex++;\n return true;\n } else {\n return false;\n }\n }\n }]);\n return FileChecksum;\n }();\n\n function getMetaValue(name) {\n var element = findElement(document.head, 'meta[name=\"' + name + '\"]');\n\n if (element) {\n return element.getAttribute(\"content\");\n }\n }\n\n function findElements(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n\n var elements = root.querySelectorAll(selector);\n return toArray$1(elements);\n }\n\n function findElement(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n\n return root.querySelector(selector);\n }\n\n function dispatchEvent(element, type) {\n var eventInit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var disabled = element.disabled;\n var bubbles = eventInit.bubbles,\n cancelable = eventInit.cancelable,\n detail = eventInit.detail;\n var event = document.createEvent(\"Event\");\n event.initEvent(type, bubbles || true, cancelable || true);\n event.detail = detail || {};\n\n try {\n element.disabled = false;\n element.dispatchEvent(event);\n } finally {\n element.disabled = disabled;\n }\n\n return event;\n }\n\n function toArray$1(value) {\n if (Array.isArray(value)) {\n return value;\n } else if (Array.from) {\n return Array.from(value);\n } else {\n return [].slice.call(value);\n }\n }\n\n var BlobRecord = function () {\n function BlobRecord(file, checksum, url) {\n var _this = this;\n\n classCallCheck(this, BlobRecord);\n this.file = file;\n this.attributes = {\n filename: file.name,\n content_type: file.type || \"application/octet-stream\",\n byte_size: file.size,\n checksum: checksum\n };\n this.xhr = new XMLHttpRequest();\n this.xhr.open(\"POST\", url, true);\n this.xhr.responseType = \"json\";\n this.xhr.setRequestHeader(\"Content-Type\", \"application/json\");\n this.xhr.setRequestHeader(\"Accept\", \"application/json\");\n this.xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n var csrfToken = getMetaValue(\"csrf-token\");\n\n if (csrfToken != undefined) {\n this.xhr.setRequestHeader(\"X-CSRF-Token\", csrfToken);\n }\n\n this.xhr.addEventListener(\"load\", function (event) {\n return _this.requestDidLoad(event);\n });\n this.xhr.addEventListener(\"error\", function (event) {\n return _this.requestDidError(event);\n });\n }\n\n createClass(BlobRecord, [{\n key: \"create\",\n value: function create(callback) {\n this.callback = callback;\n this.xhr.send(JSON.stringify({\n blob: this.attributes\n }));\n }\n }, {\n key: \"requestDidLoad\",\n value: function requestDidLoad(event) {\n if (this.status >= 200 && this.status < 300) {\n var response = this.response;\n var direct_upload = response.direct_upload;\n delete response.direct_upload;\n this.attributes = response;\n this.directUploadData = direct_upload;\n this.callback(null, this.toJSON());\n } else {\n this.requestDidError(event);\n }\n }\n }, {\n key: \"requestDidError\",\n value: function requestDidError(event) {\n this.callback('Error creating Blob for \"' + this.file.name + '\". Status: ' + this.status);\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var result = {};\n\n for (var key in this.attributes) {\n result[key] = this.attributes[key];\n }\n\n return result;\n }\n }, {\n key: \"status\",\n get: function get$$1() {\n return this.xhr.status;\n }\n }, {\n key: \"response\",\n get: function get$$1() {\n var _xhr = this.xhr,\n responseType = _xhr.responseType,\n response = _xhr.response;\n\n if (responseType == \"json\") {\n return response;\n } else {\n return JSON.parse(response);\n }\n }\n }]);\n return BlobRecord;\n }();\n\n var BlobUpload = function () {\n function BlobUpload(blob) {\n var _this = this;\n\n classCallCheck(this, BlobUpload);\n this.blob = blob;\n this.file = blob.file;\n var _blob$directUploadDat = blob.directUploadData,\n url = _blob$directUploadDat.url,\n headers = _blob$directUploadDat.headers;\n this.xhr = new XMLHttpRequest();\n this.xhr.open(\"PUT\", url, true);\n this.xhr.responseType = \"text\";\n\n for (var key in headers) {\n this.xhr.setRequestHeader(key, headers[key]);\n }\n\n this.xhr.addEventListener(\"load\", function (event) {\n return _this.requestDidLoad(event);\n });\n this.xhr.addEventListener(\"error\", function (event) {\n return _this.requestDidError(event);\n });\n }\n\n createClass(BlobUpload, [{\n key: \"create\",\n value: function create(callback) {\n this.callback = callback;\n this.xhr.send(this.file.slice());\n }\n }, {\n key: \"requestDidLoad\",\n value: function requestDidLoad(event) {\n var _xhr = this.xhr,\n status = _xhr.status,\n response = _xhr.response;\n\n if (status >= 200 && status < 300) {\n this.callback(null, response);\n } else {\n this.requestDidError(event);\n }\n }\n }, {\n key: \"requestDidError\",\n value: function requestDidError(event) {\n this.callback('Error storing \"' + this.file.name + '\". Status: ' + this.xhr.status);\n }\n }]);\n return BlobUpload;\n }();\n\n var id = 0;\n\n var DirectUpload = function () {\n function DirectUpload(file, url, delegate) {\n classCallCheck(this, DirectUpload);\n this.id = ++id;\n this.file = file;\n this.url = url;\n this.delegate = delegate;\n }\n\n createClass(DirectUpload, [{\n key: \"create\",\n value: function create(callback) {\n var _this = this;\n\n FileChecksum.create(this.file, function (error, checksum) {\n if (error) {\n callback(error);\n return;\n }\n\n var blob = new BlobRecord(_this.file, checksum, _this.url);\n notify(_this.delegate, \"directUploadWillCreateBlobWithXHR\", blob.xhr);\n blob.create(function (error) {\n if (error) {\n callback(error);\n } else {\n var upload = new BlobUpload(blob);\n notify(_this.delegate, \"directUploadWillStoreFileWithXHR\", upload.xhr);\n upload.create(function (error) {\n if (error) {\n callback(error);\n } else {\n callback(null, blob.toJSON());\n }\n });\n }\n });\n });\n }\n }]);\n return DirectUpload;\n }();\n\n function notify(object, methodName) {\n if (object && typeof object[methodName] == \"function\") {\n for (var _len = arguments.length, messages = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n messages[_key - 2] = arguments[_key];\n }\n\n return object[methodName].apply(object, messages);\n }\n }\n\n var DirectUploadController = function () {\n function DirectUploadController(input, file) {\n classCallCheck(this, DirectUploadController);\n this.input = input;\n this.file = file;\n this.directUpload = new DirectUpload(this.file, this.url, this);\n this.dispatch(\"initialize\");\n }\n\n createClass(DirectUploadController, [{\n key: \"start\",\n value: function start(callback) {\n var _this = this;\n\n var hiddenInput = document.createElement(\"input\");\n hiddenInput.type = \"hidden\";\n hiddenInput.name = this.input.name;\n this.input.insertAdjacentElement(\"beforebegin\", hiddenInput);\n this.dispatch(\"start\");\n this.directUpload.create(function (error, attributes) {\n if (error) {\n hiddenInput.parentNode.removeChild(hiddenInput);\n\n _this.dispatchError(error);\n } else {\n hiddenInput.value = attributes.signed_id;\n }\n\n _this.dispatch(\"end\");\n\n callback(error);\n });\n }\n }, {\n key: \"uploadRequestDidProgress\",\n value: function uploadRequestDidProgress(event) {\n var progress = event.loaded / event.total * 100;\n\n if (progress) {\n this.dispatch(\"progress\", {\n progress: progress\n });\n }\n }\n }, {\n key: \"dispatch\",\n value: function dispatch(name) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n detail.file = this.file;\n detail.id = this.directUpload.id;\n return dispatchEvent(this.input, \"direct-upload:\" + name, {\n detail: detail\n });\n }\n }, {\n key: \"dispatchError\",\n value: function dispatchError(error) {\n var event = this.dispatch(\"error\", {\n error: error\n });\n\n if (!event.defaultPrevented) {\n alert(error);\n }\n }\n }, {\n key: \"directUploadWillCreateBlobWithXHR\",\n value: function directUploadWillCreateBlobWithXHR(xhr) {\n this.dispatch(\"before-blob-request\", {\n xhr: xhr\n });\n }\n }, {\n key: \"directUploadWillStoreFileWithXHR\",\n value: function directUploadWillStoreFileWithXHR(xhr) {\n var _this2 = this;\n\n this.dispatch(\"before-storage-request\", {\n xhr: xhr\n });\n xhr.upload.addEventListener(\"progress\", function (event) {\n return _this2.uploadRequestDidProgress(event);\n });\n }\n }, {\n key: \"url\",\n get: function get$$1() {\n return this.input.getAttribute(\"data-direct-upload-url\");\n }\n }]);\n return DirectUploadController;\n }();\n\n var inputSelector = \"input[type=file][data-direct-upload-url]:not([disabled])\";\n\n var DirectUploadsController = function () {\n function DirectUploadsController(form) {\n classCallCheck(this, DirectUploadsController);\n this.form = form;\n this.inputs = findElements(form, inputSelector).filter(function (input) {\n return input.files.length;\n });\n }\n\n createClass(DirectUploadsController, [{\n key: \"start\",\n value: function start(callback) {\n var _this = this;\n\n var controllers = this.createDirectUploadControllers();\n\n var startNextController = function startNextController() {\n var controller = controllers.shift();\n\n if (controller) {\n controller.start(function (error) {\n if (error) {\n callback(error);\n\n _this.dispatch(\"end\");\n } else {\n startNextController();\n }\n });\n } else {\n callback();\n\n _this.dispatch(\"end\");\n }\n };\n\n this.dispatch(\"start\");\n startNextController();\n }\n }, {\n key: \"createDirectUploadControllers\",\n value: function createDirectUploadControllers() {\n var controllers = [];\n this.inputs.forEach(function (input) {\n toArray$1(input.files).forEach(function (file) {\n var controller = new DirectUploadController(input, file);\n controllers.push(controller);\n });\n });\n return controllers;\n }\n }, {\n key: \"dispatch\",\n value: function dispatch(name) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return dispatchEvent(this.form, \"direct-uploads:\" + name, {\n detail: detail\n });\n }\n }]);\n return DirectUploadsController;\n }();\n\n var processingAttribute = \"data-direct-uploads-processing\";\n var submitButtonsByForm = new WeakMap();\n var started = false;\n\n function start() {\n if (!started) {\n started = true;\n document.addEventListener(\"click\", didClick, true);\n document.addEventListener(\"submit\", didSubmitForm);\n document.addEventListener(\"ajax:before\", didSubmitRemoteElement);\n }\n }\n\n function didClick(event) {\n var target = event.target;\n\n if ((target.tagName == \"INPUT\" || target.tagName == \"BUTTON\") && target.type == \"submit\" && target.form) {\n submitButtonsByForm.set(target.form, target);\n }\n }\n\n function didSubmitForm(event) {\n handleFormSubmissionEvent(event);\n }\n\n function didSubmitRemoteElement(event) {\n if (event.target.tagName == \"FORM\") {\n handleFormSubmissionEvent(event);\n }\n }\n\n function handleFormSubmissionEvent(event) {\n var form = event.target;\n\n if (form.hasAttribute(processingAttribute)) {\n event.preventDefault();\n return;\n }\n\n var controller = new DirectUploadsController(form);\n var inputs = controller.inputs;\n\n if (inputs.length) {\n event.preventDefault();\n form.setAttribute(processingAttribute, \"\");\n inputs.forEach(disable);\n controller.start(function (error) {\n form.removeAttribute(processingAttribute);\n\n if (error) {\n inputs.forEach(enable);\n } else {\n submitForm(form);\n }\n });\n }\n }\n\n function submitForm(form) {\n var button = submitButtonsByForm.get(form) || findElement(form, \"input[type=submit], button[type=submit]\");\n\n if (button) {\n var _button = button,\n disabled = _button.disabled;\n button.disabled = false;\n button.focus();\n button.click();\n button.disabled = disabled;\n } else {\n button = document.createElement(\"input\");\n button.type = \"submit\";\n button.style.display = \"none\";\n form.appendChild(button);\n button.click();\n form.removeChild(button);\n }\n\n submitButtonsByForm.delete(form);\n }\n\n function disable(input) {\n input.disabled = true;\n }\n\n function enable(input) {\n input.disabled = false;\n }\n\n function autostart() {\n if (window.ActiveStorage) {\n start();\n }\n }\n\n setTimeout(autostart, 1);\n exports.start = start;\n exports.DirectUpload = DirectUpload;\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n});","// This file is being required on top of application.js\n// Frontend dependencies e.g. jquery will not be accessible from here\n\nwindow.StoreConnect = window.StoreConnect || {};\nwindow.StoreConnect.configure = function (ENV) {\n\n function initBugsnag(ENV) {\n const bugsnagSrc = \"//d2wy8f7a9ursnm.cloudfront.net/v6/bugsnag.min.js\"\n const script = document.createElement('script');\n script.src = bugsnagSrc;\n\n script.onload = function () {\n if (ENV.BUGSNAG_KEY) {\n // Attaching to window so we can easily debug, and test as well\n window.bugsnagClient = bugsnag({\n apiKey: ENV.BUGSNAG_KEY,\n appVersion: ENV.STORE_CONNECT_VERSION,\n notifyReleaseStages: ['production', 'staging'],\n releaseStage: ENV.BUGSNAG_RELEASE_STAGE,\n appType: 'client'\n });\n\n } else {\n throw new Error(\"Failed to configure Bugsnag, missing BUGSNAG_KEY\");\n }\n };\n\n // Trigger to load\n document.head.appendChild(script);\n }\n\n initBugsnag(ENV);\n};\n","// TODO: Refactor so address forms (shipping and billing forms) update independently based on data from server.\n// As of now updating Required Fields based on selected Country doesn't\n// work well because a change in one country field (either shipping_country or billing_country) updates both forms.\n// To temporarily remedy this, we've hardcoded `updateRequired` method calls to only use value of shipping country\n// hence updating billing country won't do anything to the form.\nimport Rails from '@rails/ujs';\nimport 'select2'\n\nwindow.StoreConnect = window.StoreConnect || {};\n\nwindow.StoreConnect.address = function(options) {\n var state_id = options['state_id'];\n var country_id = options['country_id'];\n var country_select = $('#' + country_id);\n const billing_same_as_shipping_element = document.getElementById(options['billing_same_id']);\n\n var state_select = $('#' + state_id);\n var state_name = state_select.attr('name');\n var state_class = state_select.attr('class');\n if (state_class === undefined) {\n state_class = ''\n }\n\n statesDropdown();\n var billing_same_as_shipping = false;\n if (billing_same_as_shipping_element) {\n billing_same_as_shipping = billing_same_as_shipping_element.checked;\n billing_same_as_shipping_element.addEventListener(\"change\", event => {\n updateRequired(country_select.val(), event.target.checked);\n });\n }\n\n // Temporarily limiting update of required fields based on chosen shipping country, see note at the top\n var shipping_country_id = country_id && country_id.includes('shipping_country') ? country_id : null;\n var shipping_country_select = shipping_country_id ? $('#' + shipping_country_id) : null;\n var shipping_country_select_value = shipping_country_select ? shipping_country_select.val() : '';\n\n if (shipping_country_select) updateRequired(shipping_country_select_value, billing_same_as_shipping);\n\n // ====== ***** METHODS ***** ===================================================================== //\n function updateRequiredFields(data){\n [...document.querySelectorAll('[data-required-fields-form] input, [data-required-fields-form] select')].map(input => {\n const name = input.name.match(/\\[(.*)\\]/);\n if (name) {\n const label = input.labels[0];\n if (data.includes(name[1])) {\n input.required = true;\n input.dataset.required = true;\n label.dataset.required = true;\n } else {\n input.required = false;\n delete input.dataset.required;\n delete label.dataset.required;\n }\n }\n });\n }\n\n function updateRequired(country_id, billing_same_as_shipping) {\n Rails.ajax({\n url: \"/checkout/required_fields\",\n type: 'POST',\n data: new URLSearchParams({ country_id: country_id, billing_same_as_shipping: billing_same_as_shipping }).toString(),\n success: function (data) { updateRequiredFields(data) }\n });\n }\n\n function statesDropdown() {\n addChosenToCountry();\n addChosenToState();\n\n findStates(country_select.val());\n\n country_select.change(function () {\n // Temporarily limiting update of required fields based on chosen shipping country, see note at the top\n if (shipping_country_select) updateRequired(shipping_country_select.val());\n return findStates($(this).val());\n });\n\n }\n\n function addChosenToState(){\n if (chosenIsRequired() && stateIsNotText()) {\n $('#' + state_id).chosen(options['chosen_options']);\n }\n }\n\n function stateIsNotText(){\n return !$('#' + state_id).is(\"[type=text]\");\n }\n\n\n function addChosenToCountry(){\n if (chosenIsRequired()) {\n country_select.chosen(options['chosen_options']);\n }\n }\n\n function removeChosenFromFields(){\n if (chosenIsRequired()) {\n $(\"#\" + options['state_id'] + \"_chosen\").remove();\n }\n }\n\n function chosenIsRequired(){\n return options.hasOwnProperty(\"chosen_ui\") && options['chosen_ui'];\n }\n\n function findStates(id) {\n if (id === \"\") { return(false) };\n //Remove all Chosen from existing fields\n removeChosenFromFields();\n\n //Perform AJAX request to get the data; on success, build the dropdown\n $.ajax({\n url: \"/checkout/find_states\",\n type: 'post',\n dataType: 'json',\n cache: false,\n data: {country_id: id},\n success: function (data) { buildStatesDropdown(data) }\n });\n }\n\n //Build the HTML for our dropdown menus\n function buildStatesDropdown(data) {\n let html;\n\n if (data.length === 0) {\n html = '<input id=\"' + state_id + '\" name=\"' + state_name + '\" class=\"' + state_class + '\" type=\"text\" type=\"text\" value=\"\" >';\n } else {\n html = '<select id=\"' + state_id + '\" name=\"' + state_name + '\" class=\"' + state_class + '\" >';\n html += '<option value=\"\">'+ find_select_option_text('state') +'</option>'\n\n for (let i = 0; i < data.length; i++) {\n html += '<option value=' + data[i][0]\n if(state_select.data('selected') === data[i][0]) {\n html += ' selected'\n }\n html += '>' + data[i][1] + '</option>';\n }\n\n html += '</select>';\n }\n\n $('#' + state_id).replaceWith(html);\n\n //This has to happen AFTER we've replaced the dropdown or text\n if (data.length > 0) {\n addChosenToState();\n }\n }\n\n function find_select_option_text(type){\n return options['state_place_holder']\n }\n}\n\n\nwindow.StoreConnect.address_autocomplete = function(options) {\n $('#checkout_customer_information_form_address_autocomplete').select2({\n placeholder: 'Find Address',\n width: 'style',\n ajax: {\n url: '/checkout/valid_addresses',\n dataType: 'json'\n },\n });\n\n $('#checkout_customer_information_form_address_autocomplete').on('select2:select', function (e) {\n const address = e.params.data;\n $('#checkout_customer_information_form_shipping_address_1').val(address['address_1']);\n $('#checkout_customer_information_form_shipping_city').val(address['city']);\n $('#checkout_customer_information_form_shipping_state').val(address['state']);\n $('#checkout_customer_information_form_shipping_postal_code').val(address['postal_code']);\n });\n\n if (options['supported_countries'].length > 0) {\n $('#checkout_customer_information_form_shipping_country').change(function () {\n if ($(this).val() == 'AU') {\n $('#address_autocomplete_container').show();\n } else {\n $('#address_autocomplete_container').hide();\n }\n });\n\n $('#checkout_customer_information_form_shipping_country').val(options['supported_countries'][0]);\n }\n}\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*!\n * Select2 4.0.13\n * https://select2.github.io\n *\n * Released under the MIT license\n * https://github.com/select2/select2/blob/master/LICENSE.md\n */\n;\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 module === \"undefined\" ? \"undefined\" : _typeof(module)) === 'object' && module.exports) {\n // Node/CommonJS\n module.exports = function (root, jQuery) {\n if (jQuery === undefined) {\n // require('jQuery') returns a factory that requires window to\n // build a jQuery instance, we normalize how we use modules\n // that require this pattern but the window provided is a noop\n // if it's defined (how jquery works)\n if (typeof window !== 'undefined') {\n jQuery = require('jquery');\n } else {\n jQuery = require('jquery')(root);\n }\n }\n\n factory(jQuery);\n return jQuery;\n };\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 = 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 }\n\n var S2;\n\n (function () {\n if (!S2 || !S2.requirejs) {\n if (!S2) {\n S2 = {};\n } else {\n require = S2;\n }\n /**\n * @license almond 0.3.3 Copyright jQuery Foundation and other contributors.\n * Released under MIT license, http://github.com/requirejs/almond/LICENSE\n */\n //Going sloppy to avoid 'use strict' string cost, but strict practices should\n //be followed.\n\n /*global setTimeout: false */\n\n\n var requirejs, require, define;\n\n (function (undef) {\n var main,\n _req,\n makeMap,\n 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 * 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\n\n function normalize(name, baseName) {\n var nameParts,\n nameSegment,\n mapValue,\n foundMap,\n lastIndex,\n foundI,\n foundStarMap,\n starI,\n i,\n j,\n part,\n normalizedBaseParts,\n baseParts = baseName && baseName.split(\"/\"),\n map = config.map,\n starMap = map && map['*'] || {}; //Adjust any relative paths.\n\n if (name) {\n name = name.split('/');\n lastIndex = name.length - 1; // If wanting node ID compatibility, strip .js from end\n // of IDs. Have to do this here, and not in nameToUrl\n // because node allows either .js or non .js to map\n // to same file.\n\n if (config.nodeIdCompat && jsSuffixRegExp.test(name[lastIndex])) {\n name[lastIndex] = name[lastIndex].replace(jsSuffixRegExp, '');\n } // Starts with a '.' so need the baseName\n\n\n if (name[0].charAt(0) === '.' && baseParts) {\n //Convert baseName to array, and lop off the last part,\n //so that . matches that 'directory' and not name of the baseName's\n //module. For instance, baseName of 'one/two/three', maps to\n //'one/two/three.js', but we want the directory, 'one/two' for\n //this normalization.\n normalizedBaseParts = baseParts.slice(0, baseParts.length - 1);\n name = normalizedBaseParts.concat(name);\n } //start trimDots\n\n\n for (i = 0; i < name.length; i++) {\n part = name[i];\n\n if (part === '.') {\n name.splice(i, 1);\n i -= 1;\n } else if (part === '..') {\n // If at the start, or previous value is still ..,\n // keep them so that when converted to a path it may\n // still work when converted to a path, even though\n // as an ID it is less than ideal. In larger point\n // releases, may be better to just kick out an error.\n if (i === 0 || i === 1 && name[2] === '..' || name[i - 1] === '..') {\n continue;\n } else if (i > 0) {\n name.splice(i - 1, 2);\n i -= 2;\n }\n }\n } //end trimDots\n\n\n name = name.join('/');\n } //Apply map config if available.\n\n\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('/')]; //baseName segment has config, find if it has one for\n //this name.\n\n if (mapValue) {\n mapValue = mapValue[nameSegment];\n\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 } //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\n\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); //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\n if (typeof args[0] !== 'string' && args.length === 1) {\n args.push(null);\n }\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\n return defined[name];\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\n\n function splitPrefix(name) {\n var prefix,\n index = name ? name.indexOf('!') : -1;\n\n if (index > -1) {\n prefix = name.substring(0, index);\n name = name.substring(index + 1, name.length);\n }\n\n return [prefix, name];\n } //Creates a parts array for a relName where first part is plugin ID,\n //second part is resource ID. Assumes relName has already been normalized.\n\n\n function makeRelParts(relName) {\n return relName ? splitPrefix(relName) : [];\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\n\n makeMap = function makeMap(name, relParts) {\n var plugin,\n parts = splitPrefix(name),\n prefix = parts[0],\n relResourceName = relParts[1];\n name = parts[1];\n\n if (prefix) {\n prefix = normalize(prefix, relResourceName);\n plugin = callDep(prefix);\n } //Normalize according\n\n\n if (prefix) {\n if (plugin && plugin.normalize) {\n name = plugin.normalize(name, makeNormalize(relResourceName));\n } else {\n name = normalize(name, relResourceName);\n }\n } else {\n name = normalize(name, relResourceName);\n parts = splitPrefix(name);\n prefix = parts[0];\n name = parts[1];\n\n if (prefix) {\n plugin = callDep(prefix);\n }\n } //Using ridiculous property names for space reasons\n\n\n return {\n f: prefix ? prefix + '!' + name : name,\n //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 require(name) {\n return makeRequire(name);\n },\n exports: function exports(name) {\n var e = defined[name];\n\n if (typeof e !== 'undefined') {\n return e;\n } else {\n return defined[name] = {};\n }\n },\n module: function module(name) {\n return {\n id: name,\n uri: '',\n exports: defined[name],\n config: makeConfig(name)\n };\n }\n };\n\n main = function main(name, deps, callback, relName) {\n var cjsModule,\n depName,\n ret,\n map,\n i,\n relParts,\n args = [],\n callbackType = _typeof(callback),\n usingExports; //Use name if no relName\n\n\n relName = relName || name;\n relParts = makeRelParts(relName); //Call the callback to define the module, if necessary.\n\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\n for (i = 0; i < deps.length; i += 1) {\n map = makeMap(deps[i], relParts);\n depName = map.f; //Fast path CommonJS standard dependencies.\n\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) || hasProp(waiting, depName) || 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 && 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 req(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 } //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\n\n return callDep(makeMap(deps, makeRelParts(callback)).f);\n } else if (!deps.splice) {\n //deps is a config object, not an array.\n config = deps;\n\n if (config.deps) {\n _req(config.deps, config.callback);\n }\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 } //Support require(['a'])\n\n\n callback = callback || function () {}; //If relName is a function, it is an errback handler,\n //so remove it.\n\n\n if (typeof relName === 'function') {\n relName = forceSync;\n forceSync = alt;\n } //Simulate async callback;\n\n\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 * Just drops the config on the floor, but returns req in case\n * the config return value is used.\n */\n\n\n _req.config = function (cfg) {\n return _req(cfg);\n };\n /**\n * Expose module registry for debugging and tooling\n */\n\n\n requirejs._defined = defined;\n\n define = function define(name, deps, callback) {\n if (typeof name !== 'string') {\n throw new Error('See almond README: incorrect module build, no module name');\n } //This module may not have dependencies\n\n\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\n S2.requirejs = requirejs;\n S2.require = require;\n S2.define = define;\n }\n })();\n\n S2.define(\"almond\", function () {});\n /* global jQuery:false, $:false */\n\n S2.define('jquery', [], function () {\n var _$ = jQuery || $;\n\n if (_$ == null && console && console.error) {\n console.error('Select2: An instance of jQuery or a jQuery-compatible library was not ' + 'found. Make sure that you are including jQuery before Select2 on your ' + 'web page.');\n }\n\n return _$;\n });\n S2.define('select2/utils', ['jquery'], 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 return ChildClass;\n };\n\n function getMethods(theClass) {\n var proto = theClass.prototype;\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 var argCount = DecoratorClass.prototype.constructor.length;\n var calledConstructor = SuperClass.prototype.constructor;\n\n if (argCount > 0) {\n unshift.call(arguments, SuperClass.prototype.constructor);\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 DecoratedClass.prototype[superMethod] = SuperClass.prototype[superMethod];\n }\n\n var calledMethod = function calledMethod(methodName) {\n // Stub out the original method if it's not decorating an actual method\n var originalMethod = function originalMethod() {};\n\n if (methodName in DecoratedClass.prototype) {\n originalMethod = DecoratedClass.prototype[methodName];\n }\n\n var decoratedMethod = DecoratorClass.prototype[methodName];\n return function () {\n var unshift = Array.prototype.unshift;\n unshift.call(arguments, originalMethod);\n return decoratedMethod.apply(this, arguments);\n };\n };\n\n for (var d = 0; d < decoratedMethods.length; d++) {\n var decoratedMethod = decoratedMethods[d];\n DecoratedClass.prototype[decoratedMethod] = calledMethod(decoratedMethod);\n }\n\n return DecoratedClass;\n };\n\n var Observable = function Observable() {\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 var params = slice.call(arguments, 1);\n this.listeners = this.listeners || {}; // Params should always come in as an array\n\n if (params == null) {\n params = [];\n } // If there are no arguments to the event, use a temporary object\n\n\n if (params.length === 0) {\n params.push({});\n } // Set the `_type` of the first object to the event\n\n\n params[0]._type = event;\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 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]; // Lowercase the first letter\n // By default, dash-separated becomes camelCase\n\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 var $el = $(el);\n var overflowX = el.style.overflowX;\n var overflowY = el.style.overflowY; //Check both x and y declarations\n\n if (overflowX === overflowY && (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 || $el.innerWidth() < el.scrollWidth;\n };\n\n Utils.escapeMarkup = function (markup) {\n var replaceMap = {\n '\\\\': '\',\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n '\\'': ''',\n '/': '/'\n }; // Do not try to escape the markup if it's not a string\n\n if (typeof markup !== 'string') {\n return markup;\n }\n\n return String(markup).replace(/[&<>\"'\\/\\\\]/g, function (match) {\n return replaceMap[match];\n });\n }; // Append an array of jQuery nodes to a given element.\n\n\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 $.map($nodes, function (node) {\n $jqNodes = $jqNodes.add(node);\n });\n $nodes = $jqNodes;\n }\n\n $element.append($nodes);\n }; // Cache objects in Utils.__cache instead of $.data (see #4346)\n\n\n Utils.__cache = {};\n var id = 0;\n\n Utils.GetUniqueElementId = function (element) {\n // Get a unique element Id. If element has no id,\n // creates a new unique number, stores it in the id\n // attribute and returns the new id.\n // If an id already exists, it simply returns it.\n var select2Id = element.getAttribute('data-select2-id');\n\n if (select2Id == null) {\n // If element has id, use it.\n if (element.id) {\n select2Id = element.id;\n element.setAttribute('data-select2-id', select2Id);\n } else {\n element.setAttribute('data-select2-id', ++id);\n select2Id = id.toString();\n }\n }\n\n return select2Id;\n };\n\n Utils.StoreData = function (element, name, value) {\n // Stores an item in the cache for a specified element.\n // name is the cache key.\n var id = Utils.GetUniqueElementId(element);\n\n if (!Utils.__cache[id]) {\n Utils.__cache[id] = {};\n }\n\n Utils.__cache[id][name] = value;\n };\n\n Utils.GetData = function (element, name) {\n // Retrieves a value from the cache by its key (name)\n // name is optional. If no name specified, return\n // all cache items for the specified element.\n // and for a specified element.\n var id = Utils.GetUniqueElementId(element);\n\n if (name) {\n if (Utils.__cache[id]) {\n if (Utils.__cache[id][name] != null) {\n return Utils.__cache[id][name];\n }\n\n return $(element).data(name); // Fallback to HTML5 data attribs.\n }\n\n return $(element).data(name); // Fallback to HTML5 data attribs.\n } else {\n return Utils.__cache[id];\n }\n };\n\n Utils.RemoveData = function (element) {\n // Removes all cached items for a specified element.\n var id = Utils.GetUniqueElementId(element);\n\n if (Utils.__cache[id] != null) {\n delete Utils.__cache[id];\n }\n\n element.removeAttribute('data-select2-id');\n };\n\n return Utils;\n });\n S2.define('select2/results', ['jquery', './utils'], 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 = $('<ul class=\"select2-results__options\" role=\"listbox\"></ul>');\n\n if (this.options.get('multiple')) {\n $results.attr('aria-multiselectable', 'true');\n }\n\n this.$results = $results;\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 this.clear();\n this.hideLoading();\n var $message = $('<li role=\"alert\" aria-live=\"assertive\"' + ' class=\"select2-results__option\"></li>');\n var message = this.options.get('translations').get(params.message);\n $message.append(escapeMarkup(message(params.args)));\n $message[0].className += ' select2-results__message';\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 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 var $option = this.option(item);\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 return sorter(data);\n };\n\n Results.prototype.highlightFirstItem = function () {\n var $options = this.$results.find('.select2-results__option[aria-selected]');\n var $selected = $options.filter('[aria-selected=true]'); // Check if there are any selected options\n\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 this.ensureHighlightVisible();\n };\n\n Results.prototype.setClasses = function () {\n var self = this;\n this.data.current(function (selected) {\n var selectedIds = $.map(selected, function (s) {\n return s.id.toString();\n });\n var $options = self.$results.find('.select2-results__option[aria-selected]');\n $options.each(function () {\n var $option = $(this);\n var item = Utils.GetData(this, 'data'); // id needs to be converted to a string when comparing\n\n var id = '' + item.id;\n\n if (item.element != null && item.element.selected || 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 };\n\n Results.prototype.showLoading = function (params) {\n this.hideLoading();\n var loadingMore = this.options.get('translations').get('searching');\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 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 var attrs = {\n 'role': 'option',\n 'aria-selected': 'false'\n };\n var matches = window.Element.prototype.matches || window.Element.prototype.msMatchesSelector || window.Element.prototype.webkitMatchesSelector;\n\n if (data.element != null && matches.call(data.element, ':disabled') || data.element == null && 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 option.setAttribute(attr, val);\n }\n\n if (data.children) {\n var $option = $(option);\n var label = document.createElement('strong');\n label.className = 'select2-results__group';\n var $label = $(label);\n this.template(data, label);\n var $children = [];\n\n for (var c = 0; c < data.children.length; c++) {\n var child = data.children[c];\n var $child = this.option(child);\n $children.push($child);\n }\n\n var $childrenContainer = $('<ul></ul>', {\n 'class': 'select2-results__options select2-results__options--nested'\n });\n $childrenContainer.append($children);\n $option.append(label);\n $option.append($childrenContainer);\n } else {\n this.template(data, option);\n }\n\n Utils.StoreData(option, 'data', data);\n return option;\n };\n\n Results.prototype.bind = function (container, $container) {\n var self = this;\n var id = container.id + '-results';\n this.$results.attr('id', id);\n container.on('results:all', function (params) {\n self.clear();\n self.append(params.data);\n\n if (container.isOpen()) {\n self.setClasses();\n self.highlightFirstItem();\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 container.on('query', function (params) {\n self.hideMessages();\n self.showLoading(params);\n });\n container.on('select', function () {\n if (!container.isOpen()) {\n return;\n }\n\n self.setClasses();\n\n if (self.options.get('scrollAfterSelect')) {\n self.highlightFirstItem();\n }\n });\n container.on('unselect', function () {\n if (!container.isOpen()) {\n return;\n }\n\n self.setClasses();\n\n if (self.options.get('scrollAfterSelect')) {\n self.highlightFirstItem();\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 self.setClasses();\n self.ensureHighlightVisible();\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 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 container.on('results:select', function () {\n var $highlighted = self.getHighlightedResults();\n\n if ($highlighted.length === 0) {\n return;\n }\n\n var data = Utils.GetData($highlighted[0], '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 container.on('results:previous', function () {\n var $highlighted = self.getHighlightedResults();\n var $options = self.$results.find('[aria-selected]');\n var currentIndex = $options.index($highlighted); // If we are already at the top, don't move further\n // If no options, currentIndex will be -1\n\n if (currentIndex <= 0) {\n return;\n }\n\n var nextIndex = currentIndex - 1; // If none are highlighted, highlight the first\n\n if ($highlighted.length === 0) {\n nextIndex = 0;\n }\n\n var $next = $options.eq(nextIndex);\n $next.trigger('mouseenter');\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 container.on('results:next', function () {\n var $highlighted = self.getHighlightedResults();\n var $options = self.$results.find('[aria-selected]');\n var currentIndex = $options.index($highlighted);\n var nextIndex = currentIndex + 1; // If we are at the last option, stay there\n\n if (nextIndex >= $options.length) {\n return;\n }\n\n var $next = $options.eq(nextIndex);\n $next.trigger('mouseenter');\n var currentOffset = self.$results.offset().top + 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 container.on('results:focus', function (params) {\n params.element.addClass('select2-results__option--highlighted');\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 var bottom = self.$results.get(0).scrollHeight - top + e.deltaY;\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 e.preventDefault();\n e.stopPropagation();\n } else if (isAtBottom) {\n self.$results.scrollTop(self.$results.get(0).scrollHeight - self.$results.height());\n e.preventDefault();\n e.stopPropagation();\n }\n });\n }\n\n this.$results.on('mouseup', '.select2-results__option[aria-selected]', function (evt) {\n var $this = $(this);\n var data = Utils.GetData(this, '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 this.$results.on('mouseenter', '.select2-results__option[aria-selected]', function (evt) {\n var data = Utils.GetData(this, 'data');\n self.getHighlightedResults().removeClass('select2-results__option--highlighted');\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.find('.select2-results__option--highlighted');\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 var currentIndex = $options.index($highlighted);\n var currentOffset = this.$results.offset().top;\n var nextTop = $highlighted.offset().top;\n var nextOffset = this.$results.scrollTop() + (nextTop - currentOffset);\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 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 S2.define('select2/keys', [], 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 return KEYS;\n });\n S2.define('select2/selection/base', ['jquery', '../utils', '../keys'], 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 = $('<span class=\"select2-selection\" role=\"combobox\" ' + ' aria-haspopup=\"true\" aria-expanded=\"false\">' + '</span>');\n this._tabindex = 0;\n\n if (Utils.GetData(this.$element[0], 'old-tabindex') != null) {\n this._tabindex = Utils.GetData(this.$element[0], '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 $selection.attr('aria-disabled', 'false');\n this.$selection = $selection;\n return $selection;\n };\n\n BaseSelection.prototype.bind = function (container, $container) {\n var self = this;\n var resultsId = container.id + '-results';\n this.container = container;\n this.$selection.on('focus', function (evt) {\n self.trigger('focus', evt);\n });\n this.$selection.on('blur', function (evt) {\n self._handleBlur(evt);\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 container.on('results:focus', function (params) {\n self.$selection.attr('aria-activedescendant', params.data._resultId);\n });\n container.on('selection:update', function (params) {\n self.update(params.data);\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 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 self.$selection.trigger('focus');\n\n self._detachCloseHandler(container);\n });\n container.on('enable', function () {\n self.$selection.attr('tabindex', self._tabindex);\n self.$selection.attr('aria-disabled', 'false');\n });\n container.on('disable', function () {\n self.$selection.attr('tabindex', '-1');\n self.$selection.attr('aria-disabled', 'true');\n });\n };\n\n BaseSelection.prototype._handleBlur = function (evt) {\n var self = this; // This needs to be delayed as the active element is the body when the tab\n // key is pressed, possibly along with others.\n\n window.setTimeout(function () {\n // Don't trigger `blur` if the focus is still in the selection\n if (document.activeElement == self.$selection[0] || $.contains(self.$selection[0], document.activeElement)) {\n return;\n }\n\n self.trigger('blur', evt);\n }, 1);\n };\n\n BaseSelection.prototype._attachCloseHandler = function (container) {\n $(document.body).on('mousedown.select2.' + container.id, function (e) {\n var $target = $(e.target);\n var $select = $target.closest('.select2');\n var $all = $('.select2.select2-container--open');\n $all.each(function () {\n if (this == $select[0]) {\n return;\n }\n\n var $element = Utils.GetData(this, 'element');\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 * Helper method to abstract the \"enabled\" (not \"disabled\") state of this\n * object.\n *\n * @return {true} if the instance is not disabled.\n * @return {false} if the instance is disabled.\n */\n\n\n BaseSelection.prototype.isEnabled = function () {\n return !this.isDisabled();\n };\n /**\n * Helper method to abstract the \"disabled\" state of this object.\n *\n * @return {true} if the disabled option is true.\n * @return {false} if the disabled option is false.\n */\n\n\n BaseSelection.prototype.isDisabled = function () {\n return this.options.get('disabled');\n };\n\n return BaseSelection;\n });\n S2.define('select2/selection/single', ['jquery', './base', '../utils', '../keys'], 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 $selection.html('<span class=\"select2-selection__rendered\"></span>' + '<span class=\"select2-selection__arrow\" role=\"presentation\">' + '<b role=\"presentation\"></b>' + '</span>');\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 this.$selection.find('.select2-selection__rendered').attr('id', id).attr('role', 'textbox').attr('aria-readonly', 'true');\n this.$selection.attr('aria-labelledby', id);\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 this.$selection.on('focus', function (evt) {// User focuses on the container\n });\n this.$selection.on('blur', function (evt) {// User exits the container\n });\n container.on('focus', function (evt) {\n if (!container.isOpen()) {\n self.$selection.trigger('focus');\n }\n });\n };\n\n SingleSelection.prototype.clear = function () {\n var $rendered = this.$selection.find('.select2-selection__rendered');\n $rendered.empty();\n $rendered.removeAttr('title'); // clear tooltip on 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 return escapeMarkup(template(data, container));\n };\n\n SingleSelection.prototype.selectionContainer = function () {\n return $('<span></span>');\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 var $rendered = this.$selection.find('.select2-selection__rendered');\n var formatted = this.display(selection, $rendered);\n $rendered.empty().append(formatted);\n var title = selection.title || selection.text;\n\n if (title) {\n $rendered.attr('title', title);\n } else {\n $rendered.removeAttr('title');\n }\n };\n\n return SingleSelection;\n });\n S2.define('select2/selection/multiple', ['jquery', './base', '../utils'], 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 $selection.html('<ul class=\"select2-selection__rendered\"></ul>');\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 this.$selection.on('click', '.select2-selection__choice__remove', function (evt) {\n // Ignore the event if it is disabled\n if (self.isDisabled()) {\n return;\n }\n\n var $remove = $(this);\n var $selection = $remove.parent();\n var data = Utils.GetData($selection[0], 'data');\n self.trigger('unselect', {\n originalEvent: evt,\n data: data\n });\n });\n };\n\n MultipleSelection.prototype.clear = function () {\n var $rendered = this.$selection.find('.select2-selection__rendered');\n $rendered.empty();\n $rendered.removeAttr('title');\n };\n\n MultipleSelection.prototype.display = function (data, container) {\n var template = this.options.get('templateSelection');\n var escapeMarkup = this.options.get('escapeMarkup');\n return escapeMarkup(template(data, container));\n };\n\n MultipleSelection.prototype.selectionContainer = function () {\n var $container = $('<li class=\"select2-selection__choice\">' + '<span class=\"select2-selection__choice__remove\" role=\"presentation\">' + '×' + '</span>' + '</li>');\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 var $selection = this.selectionContainer();\n var formatted = this.display(selection, $selection);\n $selection.append(formatted);\n var title = selection.title || selection.text;\n\n if (title) {\n $selection.attr('title', title);\n }\n\n Utils.StoreData($selection[0], 'data', selection);\n $selections.push($selection);\n }\n\n var $rendered = this.$selection.find('.select2-selection__rendered');\n Utils.appendMany($rendered, $selections);\n };\n\n return MultipleSelection;\n });\n S2.define('select2/selection/placeholder', ['../utils'], function (Utils) {\n function Placeholder(decorated, $element, options) {\n this.placeholder = this.normalizePlaceholder(options.get('placeholder'));\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 $placeholder.html(this.display(placeholder));\n $placeholder.addClass('select2-selection__placeholder').removeClass('select2-selection__choice');\n return $placeholder;\n };\n\n Placeholder.prototype.update = function (decorated, data) {\n var singlePlaceholder = data.length == 1 && data[0].id != this.placeholder.id;\n var multipleSelections = data.length > 1;\n\n if (multipleSelections || singlePlaceholder) {\n return decorated.call(this, data);\n }\n\n this.clear();\n var $placeholder = this.createPlaceholder(this.placeholder);\n this.$selection.find('.select2-selection__rendered').append($placeholder);\n };\n\n return Placeholder;\n });\n S2.define('select2/selection/allowClear', ['jquery', '../keys', '../utils'], function ($, KEYS, Utils) {\n function AllowClear() {}\n\n AllowClear.prototype.bind = function (decorated, container, $container) {\n var self = this;\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('Select2: The `allowClear` option should be used in combination ' + 'with the `placeholder` option.');\n }\n }\n\n this.$selection.on('mousedown', '.select2-selection__clear', function (evt) {\n self._handleClear(evt);\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.isDisabled()) {\n return;\n }\n\n var $clear = this.$selection.find('.select2-selection__clear'); // Ignore the event if nothing has been selected\n\n if ($clear.length === 0) {\n return;\n }\n\n evt.stopPropagation();\n var data = Utils.GetData($clear[0], 'data');\n var previousVal = this.$element.val();\n this.$element.val(this.placeholder.id);\n var unselectData = {\n data: data\n };\n this.trigger('clear', unselectData);\n\n if (unselectData.prevented) {\n this.$element.val(previousVal);\n return;\n }\n\n for (var d = 0; d < data.length; d++) {\n unselectData = {\n data: data[d]\n }; // Trigger the `unselect` event, so people can prevent it from being\n // cleared.\n\n this.trigger('unselect', unselectData); // If the event was prevented, don't clear it out.\n\n if (unselectData.prevented) {\n this.$element.val(previousVal);\n return;\n }\n }\n\n this.$element.trigger('input').trigger('change');\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 || data.length === 0) {\n return;\n }\n\n var removeAll = this.options.get('translations').get('removeAllItems');\n var $remove = $('<span class=\"select2-selection__clear\" title=\"' + removeAll() + '\">' + '×' + '</span>');\n Utils.StoreData($remove[0], 'data', data);\n this.$selection.find('.select2-selection__rendered').prepend($remove);\n };\n\n return AllowClear;\n });\n S2.define('select2/selection/search', ['jquery', '../utils', '../keys'], 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 = $('<li class=\"select2-search select2-search--inline\">' + '<input class=\"select2-search__field\" type=\"search\" tabindex=\"-1\"' + ' autocomplete=\"off\" autocorrect=\"off\" autocapitalize=\"none\"' + ' spellcheck=\"false\" role=\"searchbox\" aria-autocomplete=\"list\" />' + '</li>');\n this.$searchContainer = $search;\n this.$search = $search.find('input');\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 var resultsId = container.id + '-results';\n decorated.call(this, container, $container);\n container.on('open', function () {\n self.$search.attr('aria-controls', resultsId);\n self.$search.trigger('focus');\n });\n container.on('close', function () {\n self.$search.val('');\n self.$search.removeAttr('aria-controls');\n self.$search.removeAttr('aria-activedescendant');\n self.$search.trigger('focus');\n });\n container.on('enable', function () {\n self.$search.prop('disabled', false);\n\n self._transferTabIndex();\n });\n container.on('disable', function () {\n self.$search.prop('disabled', true);\n });\n container.on('focus', function (evt) {\n self.$search.trigger('focus');\n });\n container.on('results:focus', function (params) {\n if (params.data._resultId) {\n self.$search.attr('aria-activedescendant', params.data._resultId);\n } else {\n self.$search.removeAttr('aria-activedescendant');\n }\n });\n this.$selection.on('focusin', '.select2-search--inline', function (evt) {\n self.trigger('focus', evt);\n });\n this.$selection.on('focusout', '.select2-search--inline', function (evt) {\n self._handleBlur(evt);\n });\n this.$selection.on('keydown', '.select2-search--inline', function (evt) {\n evt.stopPropagation();\n self.trigger('keypress', evt);\n self._keyUpPrevented = evt.isDefaultPrevented();\n var key = evt.which;\n\n if (key === KEYS.BACKSPACE && self.$search.val() === '') {\n var $previousChoice = self.$searchContainer.prev('.select2-selection__choice');\n\n if ($previousChoice.length > 0) {\n var item = Utils.GetData($previousChoice[0], 'data');\n self.searchRemoveChoice(item);\n evt.preventDefault();\n }\n }\n });\n this.$selection.on('click', '.select2-search--inline', function (evt) {\n if (self.$search.val()) {\n evt.stopPropagation();\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\n var msie = document.documentMode;\n var disableInputEvents = msie && msie <= 11; // 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\n this.$selection.on('input.searchcheck', '.select2-search--inline', 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 } // Unbind the duplicated `keyup` event\n\n\n self.$selection.off('keyup.search');\n });\n this.$selection.on('keyup.search input.search', '.select2-search--inline', 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; // We can freely ignore events from modifier keys\n\n if (key == KEYS.SHIFT || key == KEYS.CTRL || key == KEYS.ALT) {\n return;\n } // Tabbing will be handled during the `keydown` phase\n\n\n if (key == KEYS.TAB) {\n return;\n }\n\n self.handleSearch(evt);\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\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 this.$search.attr('placeholder', '');\n decorated.call(this, data);\n this.$selection.find('.select2-selection__rendered').append(this.$searchContainer);\n this.resizeSearch();\n\n if (searchHadFocus) {\n this.$search.trigger('focus');\n }\n };\n\n Search.prototype.handleSearch = function () {\n this.resizeSearch();\n\n if (!this._keyUpPrevented) {\n var input = this.$search.val();\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 this.$search.val(item.text);\n this.handleSearch();\n };\n\n Search.prototype.resizeSearch = function () {\n this.$search.css('width', '25px');\n var width = '';\n\n if (this.$search.attr('placeholder') !== '') {\n width = this.$selection.find('.select2-selection__rendered').width();\n } else {\n var minimumWidth = this.$search.val().length + 1;\n width = minimumWidth * 0.75 + 'em';\n }\n\n this.$search.css('width', width);\n };\n\n return Search;\n });\n S2.define('select2/selection/eventRelay', ['jquery'], function ($) {\n function EventRelay() {}\n\n EventRelay.prototype.bind = function (decorated, container, $container) {\n var self = this;\n var relayEvents = ['open', 'opening', 'close', 'closing', 'select', 'selecting', 'unselect', 'unselecting', 'clear', 'clearing'];\n var preventableEvents = ['opening', 'closing', 'selecting', 'unselecting', 'clearing'];\n decorated.call(this, container, $container);\n container.on('*', function (name, params) {\n // Ignore events that should not be relayed\n if ($.inArray(name, relayEvents) === -1) {\n return;\n } // The parameters should always be an object\n\n\n params = params || {}; // Generate the jQuery event for the Select2 event\n\n var evt = $.Event('select2:' + name, {\n params: params\n });\n self.$element.trigger(evt); // Only handle preventable events if it was one\n\n if ($.inArray(name, preventableEvents) === -1) {\n return;\n }\n\n params.prevented = evt.isDefaultPrevented();\n });\n };\n\n return EventRelay;\n });\n S2.define('select2/translation', ['jquery', 'require'], 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 }; // Static functions\n\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 S2.define('select2/diacritics', [], function () {\n var diacritics = {\n \"\\u24B6\": 'A',\n \"\\uFF21\": 'A',\n \"\\xC0\": 'A',\n \"\\xC1\": 'A',\n \"\\xC2\": 'A',\n \"\\u1EA6\": 'A',\n \"\\u1EA4\": 'A',\n \"\\u1EAA\": 'A',\n \"\\u1EA8\": 'A',\n \"\\xC3\": '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 \"\\xC4\": 'A',\n \"\\u01DE\": 'A',\n \"\\u1EA2\": 'A',\n \"\\xC5\": '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 \"\\xC6\": '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 \"\\xC7\": '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 \"\\xC8\": 'E',\n \"\\xC9\": 'E',\n \"\\xCA\": '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 \"\\xCB\": '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 \"\\xCC\": 'I',\n \"\\xCD\": 'I',\n \"\\xCE\": 'I',\n \"\\u0128\": 'I',\n \"\\u012A\": 'I',\n \"\\u012C\": 'I',\n \"\\u0130\": 'I',\n \"\\xCF\": '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 \"\\xD1\": '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 \"\\xD2\": 'O',\n \"\\xD3\": 'O',\n \"\\xD4\": 'O',\n \"\\u1ED2\": 'O',\n \"\\u1ED0\": 'O',\n \"\\u1ED6\": 'O',\n \"\\u1ED4\": 'O',\n \"\\xD5\": '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 \"\\xD6\": '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 \"\\xD8\": 'O',\n \"\\u01FE\": 'O',\n \"\\u0186\": 'O',\n \"\\u019F\": 'O',\n \"\\uA74A\": 'O',\n \"\\uA74C\": 'O',\n \"\\u0152\": 'OE',\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 \"\\xD9\": 'U',\n \"\\xDA\": 'U',\n \"\\xDB\": 'U',\n \"\\u0168\": 'U',\n \"\\u1E78\": 'U',\n \"\\u016A\": 'U',\n \"\\u1E7A\": 'U',\n \"\\u016C\": 'U',\n \"\\xDC\": '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 \"\\xDD\": '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 \"\\xE0\": 'a',\n \"\\xE1\": 'a',\n \"\\xE2\": 'a',\n \"\\u1EA7\": 'a',\n \"\\u1EA5\": 'a',\n \"\\u1EAB\": 'a',\n \"\\u1EA9\": 'a',\n \"\\xE3\": '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 \"\\xE4\": 'a',\n \"\\u01DF\": 'a',\n \"\\u1EA3\": 'a',\n \"\\xE5\": '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 \"\\xE6\": '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 \"\\xE7\": '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 \"\\xE8\": 'e',\n \"\\xE9\": 'e',\n \"\\xEA\": '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 \"\\xEB\": '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 \"\\xEC\": 'i',\n \"\\xED\": 'i',\n \"\\xEE\": 'i',\n \"\\u0129\": 'i',\n \"\\u012B\": 'i',\n \"\\u012D\": 'i',\n \"\\xEF\": '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 \"\\xF1\": '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 \"\\xF2\": 'o',\n \"\\xF3\": 'o',\n \"\\xF4\": 'o',\n \"\\u1ED3\": 'o',\n \"\\u1ED1\": 'o',\n \"\\u1ED7\": 'o',\n \"\\u1ED5\": 'o',\n \"\\xF5\": '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 \"\\xF6\": '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 \"\\xF8\": 'o',\n \"\\u01FF\": 'o',\n \"\\u0254\": 'o',\n \"\\uA74B\": 'o',\n \"\\uA74D\": 'o',\n \"\\u0275\": 'o',\n \"\\u0153\": 'oe',\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 \"\\xDF\": '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 \"\\xF9\": 'u',\n \"\\xFA\": 'u',\n \"\\xFB\": 'u',\n \"\\u0169\": 'u',\n \"\\u1E79\": 'u',\n \"\\u016B\": 'u',\n \"\\u1E7B\": 'u',\n \"\\u016D\": 'u',\n \"\\xFC\": '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 \"\\xFD\": 'y',\n \"\\u0177\": 'y',\n \"\\u1EF9\": 'y',\n \"\\u0233\": 'y',\n \"\\u1E8F\": 'y',\n \"\\xFF\": '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 \"\\u03CE\": \"\\u03C9\",\n \"\\u03C2\": \"\\u03C3\",\n \"\\u2019\": '\\''\n };\n return diacritics;\n });\n S2.define('select2/data/base', ['../utils'], 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) {// Can be implemented in subclasses\n };\n\n BaseAdapter.prototype.destroy = function () {// Can be implemented in subclasses\n };\n\n BaseAdapter.prototype.generateResultId = function (container, data) {\n var id = container.id + '-result-';\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\n return id;\n };\n\n return BaseAdapter;\n });\n S2.define('select2/data/select', ['./base', '../utils', 'jquery'], 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 this.$element.find(':selected').each(function () {\n var $option = $(this);\n var option = self.item($option);\n data.push(option);\n });\n callback(data);\n };\n\n SelectAdapter.prototype.select = function (data) {\n var self = this;\n data.selected = true; // If data.element is a DOM node, use it instead\n\n if ($(data.element).is('option')) {\n data.element.selected = true;\n this.$element.trigger('input').trigger('change');\n return;\n }\n\n if (this.$element.prop('multiple')) {\n this.current(function (currentData) {\n var val = [];\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('input').trigger('change');\n });\n } else {\n var val = data.id;\n this.$element.val(val);\n this.$element.trigger('input').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 this.$element.trigger('input').trigger('change');\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 self.$element.trigger('input').trigger('change');\n });\n };\n\n SelectAdapter.prototype.bind = function (container, $container) {\n var self = this;\n this.container = container;\n container.on('select', function (params) {\n self.select(params.data);\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 Utils.RemoveData(this);\n });\n };\n\n SelectAdapter.prototype.query = function (params, callback) {\n var data = [];\n var self = this;\n var $options = this.$element.children();\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 var matches = self.matches(params, option);\n\n if (matches !== null) {\n data.push(matches);\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 !== undefined) {\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\n normalizedData.element = option; // Override the option's data with the combined data\n\n Utils.StoreData(option, 'data', normalizedData);\n return $option;\n };\n\n SelectAdapter.prototype.item = function ($option) {\n var data = {};\n data = Utils.GetData($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 var $children = $option.children('option');\n var children = [];\n\n for (var c = 0; c < $children.length; c++) {\n var $child = $($children[c]);\n var child = this.item($child);\n children.push(child);\n }\n\n data.children = children;\n }\n\n data = this._normalizeItem(data);\n data.element = $option[0];\n Utils.StoreData($option[0], 'data', data);\n return data;\n };\n\n SelectAdapter.prototype._normalizeItem = function (item) {\n if (item !== Object(item)) {\n item = {\n id: item,\n text: item\n };\n }\n\n item = $.extend({}, {\n text: ''\n }, item);\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 return matcher(params, data);\n };\n\n return SelectAdapter;\n });\n S2.define('select2/data/array', ['./select', '../utils', 'jquery'], function (SelectAdapter, Utils, $) {\n function ArrayAdapter($element, options) {\n this._dataToConvert = options.get('data') || [];\n\n ArrayAdapter.__super__.constructor.call(this, $element, options);\n }\n\n Utils.Extend(ArrayAdapter, SelectAdapter);\n\n ArrayAdapter.prototype.bind = function (container, $container) {\n ArrayAdapter.__super__.bind.call(this, container, $container);\n\n this.addOptions(this.convertToOptions(this._dataToConvert));\n };\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 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 var $existing = this.$element.find('option');\n var existingIds = $existing.map(function () {\n return self.item($(this)).id;\n }).get();\n var $options = []; // Filter out all items except for the one passed in the argument\n\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]); // Skip items which were pre-loaded, only merge the data\n\n\n if ($.inArray(item.id, existingIds) >= 0) {\n var $existingOption = $existing.filter(onlyItem(item));\n var existingData = this.item($existingOption);\n var newData = $.extend(true, {}, item, existingData);\n var $newOption = this.option(newData);\n $existingOption.replaceWith($newOption);\n continue;\n }\n\n var $option = this.option(item);\n\n if (item.children) {\n var $children = this.convertToOptions(item.children);\n Utils.appendMany($option, $children);\n }\n\n $options.push($option);\n }\n\n return $options;\n };\n\n return ArrayAdapter;\n });\n S2.define('select2/data/ajax', ['./array', '../utils', 'jquery'], 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 data(params) {\n return $.extend({}, params, {\n q: params.term\n });\n },\n transport: function transport(params, success, failure) {\n var $request = $.ajax(params);\n $request.then(success);\n $request.fail(failure);\n return $request;\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('Select2: The AJAX results did not return an array in the ' + '`results` key of the response.');\n }\n }\n\n callback(results);\n }, function () {\n // Attempt to detect if a request was aborted\n // Only works if the transport exposes a status property\n if ('status' in $request && ($request.status === 0 || $request.status === '0')) {\n return;\n }\n\n self.trigger('results:message', {\n message: 'errorLoading'\n });\n });\n self._request = $request;\n }\n\n if (this.ajaxOptions.delay && params.term != null) {\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 S2.define('select2/data/tags', ['jquery'], function ($) {\n function Tags(decorated, $element, options) {\n var tags = options.get('tags');\n var createTag = options.get('createTag');\n\n if (createTag !== undefined) {\n this.createTag = createTag;\n }\n\n var insertTag = options.get('insertTag');\n\n if (insertTag !== undefined) {\n this.insertTag = insertTag;\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\n var item = this._normalizeItem(tag);\n\n var $option = this.option(item);\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 var checkChildren = option.children != null && !wrapper({\n results: option.children\n }, true);\n var optionText = (option.text || '').toUpperCase();\n var paramsTerm = (params.term || '').toUpperCase();\n var checkText = optionText === paramsTerm;\n\n if (checkText || checkChildren) {\n if (child) {\n return false;\n }\n\n obj.data = data;\n callback(obj);\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 self.addOptions([$option]);\n self.insertTag(data, tag);\n }\n\n obj.results = data;\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 $options = this.$element.find('option[data-select2-tag]');\n $options.each(function () {\n if (this.selected) {\n return;\n }\n\n $(this).remove();\n });\n };\n\n return Tags;\n });\n S2.define('select2/data/tokenizer', ['jquery'], 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 this.$search = container.dropdown.$search || container.selection.$search || $container.find('.select2-search__field');\n };\n\n Tokenizer.prototype.query = function (decorated, params, callback) {\n var self = this;\n\n function createAndSelect(data) {\n // Normalize the data object so we can use it for checks\n var item = self._normalizeItem(data); // Check if the data object already exists as a tag\n // Select it if it doesn't\n\n\n var $existingOptions = self.$element.find('option').filter(function () {\n return $(this).val() === item.id;\n }); // If an existing option wasn't found for it, create the option\n\n if (!$existingOptions.length) {\n var $option = self.option(item);\n $option.attr('data-select2-tag', true);\n\n self._removeOldTags();\n\n self.addOptions([$option]);\n } // Select the item, now that we know there is an option for it\n\n\n select(item);\n }\n\n function select(data) {\n self.trigger('select', {\n data: data\n });\n }\n\n params.term = params.term || '';\n var tokenData = this.tokenizer(params, this.options, createAndSelect);\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.trigger('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 continue;\n }\n\n var part = term.substr(0, i);\n var partParams = $.extend({}, params, {\n term: part\n });\n var data = createTag(partParams);\n\n if (data == null) {\n i++;\n continue;\n }\n\n callback(data); // Reset the term to not include the tokenized portion\n\n term = term.substr(i + 1) || '';\n i = 0;\n }\n\n return {\n term: term\n };\n };\n\n return Tokenizer;\n });\n S2.define('select2/data/minimumInputLength', [], function () {\n function MinimumInputLength(decorated, $e, options) {\n this.minimumInputLength = options.get('minimumInputLength');\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 return;\n }\n\n decorated.call(this, params, callback);\n };\n\n return MinimumInputLength;\n });\n S2.define('select2/data/maximumInputLength', [], function () {\n function MaximumInputLength(decorated, $e, options) {\n this.maximumInputLength = options.get('maximumInputLength');\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 && 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 return;\n }\n\n decorated.call(this, params, callback);\n };\n\n return MaximumInputLength;\n });\n S2.define('select2/data/maximumSelectionLength', [], function () {\n function MaximumSelectionLength(decorated, $e, options) {\n this.maximumSelectionLength = options.get('maximumSelectionLength');\n decorated.call(this, $e, options);\n }\n\n MaximumSelectionLength.prototype.bind = function (decorated, container, $container) {\n var self = this;\n decorated.call(this, container, $container);\n container.on('select', function () {\n self._checkIfMaximumSelected();\n });\n };\n\n MaximumSelectionLength.prototype.query = function (decorated, params, callback) {\n var self = this;\n\n this._checkIfMaximumSelected(function () {\n decorated.call(self, params, callback);\n });\n };\n\n MaximumSelectionLength.prototype._checkIfMaximumSelected = function (_, successCallback) {\n var self = this;\n this.current(function (currentData) {\n var count = currentData != null ? currentData.length : 0;\n\n if (self.maximumSelectionLength > 0 && count >= self.maximumSelectionLength) {\n self.trigger('results:message', {\n message: 'maximumSelected',\n args: {\n maximum: self.maximumSelectionLength\n }\n });\n return;\n }\n\n if (successCallback) {\n successCallback();\n }\n });\n };\n\n return MaximumSelectionLength;\n });\n S2.define('select2/dropdown', ['jquery', './utils'], 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 = $('<span class=\"select2-dropdown\">' + '<span class=\"select2-results\"></span>' + '</span>');\n $dropdown.attr('dir', this.options.get('dir'));\n this.$dropdown = $dropdown;\n return $dropdown;\n };\n\n Dropdown.prototype.bind = function () {// Should be implemented in subclasses\n };\n\n Dropdown.prototype.position = function ($dropdown, $container) {// Should be implemented 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 S2.define('select2/dropdown/search', ['jquery', '../utils'], function ($, Utils) {\n function Search() {}\n\n Search.prototype.render = function (decorated) {\n var $rendered = decorated.call(this);\n var $search = $('<span class=\"select2-search select2-search--dropdown\">' + '<input class=\"select2-search__field\" type=\"search\" tabindex=\"-1\"' + ' autocomplete=\"off\" autocorrect=\"off\" autocapitalize=\"none\"' + ' spellcheck=\"false\" role=\"searchbox\" aria-autocomplete=\"list\" />' + '</span>');\n this.$searchContainer = $search;\n this.$search = $search.find('input');\n $rendered.prepend($search);\n return $rendered;\n };\n\n Search.prototype.bind = function (decorated, container, $container) {\n var self = this;\n var resultsId = container.id + '-results';\n decorated.call(this, container, $container);\n this.$search.on('keydown', function (evt) {\n self.trigger('keypress', evt);\n self._keyUpPrevented = evt.isDefaultPrevented();\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\n this.$search.on('input', function (evt) {\n // Unbind the duplicated `keyup` event\n $(this).off('keyup');\n });\n this.$search.on('keyup input', function (evt) {\n self.handleSearch(evt);\n });\n container.on('open', function () {\n self.$search.attr('tabindex', 0);\n self.$search.attr('aria-controls', resultsId);\n self.$search.trigger('focus');\n window.setTimeout(function () {\n self.$search.trigger('focus');\n }, 0);\n });\n container.on('close', function () {\n self.$search.attr('tabindex', -1);\n self.$search.removeAttr('aria-controls');\n self.$search.removeAttr('aria-activedescendant');\n self.$search.val('');\n self.$search.trigger('blur');\n });\n container.on('focus', function () {\n if (!container.isOpen()) {\n self.$search.trigger('focus');\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 container.on('results:focus', function (params) {\n if (params.data._resultId) {\n self.$search.attr('aria-activedescendant', params.data._resultId);\n } else {\n self.$search.removeAttr('aria-activedescendant');\n }\n });\n };\n\n Search.prototype.handleSearch = function (evt) {\n if (!this._keyUpPrevented) {\n var input = this.$search.val();\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 S2.define('select2/dropdown/hidePlaceholder', [], function () {\n function HidePlaceholder(decorated, $element, options, dataAdapter) {\n this.placeholder = this.normalizePlaceholder(options.get('placeholder'));\n decorated.call(this, $element, options, dataAdapter);\n }\n\n HidePlaceholder.prototype.append = function (decorated, data) {\n data.results = this.removePlaceholder(data.results);\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 S2.define('select2/dropdown/infiniteScroll', ['jquery'], function ($) {\n function InfiniteScroll(decorated, $element, options, dataAdapter) {\n this.lastParams = {};\n decorated.call(this, $element, options, dataAdapter);\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 decorated.call(this, data);\n\n if (this.showLoadingMore(data)) {\n this.$results.append(this.$loadingMore);\n this.loadMoreIfNeeded();\n }\n };\n\n InfiniteScroll.prototype.bind = function (decorated, container, $container) {\n var self = this;\n decorated.call(this, container, $container);\n container.on('query', function (params) {\n self.lastParams = params;\n self.loading = true;\n });\n container.on('query:append', function (params) {\n self.lastParams = params;\n self.loading = true;\n });\n this.$results.on('scroll', this.loadMoreIfNeeded.bind(this));\n };\n\n InfiniteScroll.prototype.loadMoreIfNeeded = function () {\n var isLoadMoreVisible = $.contains(document.documentElement, this.$loadingMore[0]);\n\n if (this.loading || !isLoadMoreVisible) {\n return;\n }\n\n var currentOffset = this.$results.offset().top + this.$results.outerHeight(false);\n var loadingMoreOffset = this.$loadingMore.offset().top + this.$loadingMore.outerHeight(false);\n\n if (currentOffset + 50 >= loadingMoreOffset) {\n this.loadMore();\n }\n };\n\n InfiniteScroll.prototype.loadMore = function () {\n this.loading = true;\n var params = $.extend({}, {\n page: 1\n }, this.lastParams);\n params.page++;\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 = $('<li ' + 'class=\"select2-results__option select2-results__option--load-more\"' + 'role=\"option\" aria-disabled=\"true\"></li>');\n var message = this.options.get('translations').get('loadingMore');\n $option.html(message(this.lastParams));\n return $option;\n };\n\n return InfiniteScroll;\n });\n S2.define('select2/dropdown/attachBody', ['jquery', '../utils'], function ($, Utils) {\n function AttachBody(decorated, $element, options) {\n this.$dropdownParent = $(options.get('dropdownParent') || document.body);\n decorated.call(this, $element, options);\n }\n\n AttachBody.prototype.bind = function (decorated, container, $container) {\n var self = this;\n decorated.call(this, container, $container);\n container.on('open', function () {\n self._showDropdown();\n\n self._attachPositioningHandler(container); // Must bind after the results handlers to ensure correct sizing\n\n\n self._bindContainerResultHandlers(container);\n });\n container.on('close', function () {\n self._hideDropdown();\n\n self._detachPositioningHandler(container);\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 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 $dropdown.removeClass('select2');\n $dropdown.addClass('select2-container--open');\n $dropdown.css({\n position: 'absolute',\n top: -999999\n });\n this.$container = $container;\n };\n\n AttachBody.prototype.render = function (decorated) {\n var $container = $('<span></span>');\n var $dropdown = decorated.call(this);\n $container.append($dropdown);\n this.$dropdownContainer = $container;\n return $container;\n };\n\n AttachBody.prototype._hideDropdown = function (decorated) {\n this.$dropdownContainer.detach();\n };\n\n AttachBody.prototype._bindContainerResultHandlers = function (decorated, container) {\n // These should only be bound once\n if (this._containerResultsHandlersBound) {\n return;\n }\n\n var self = this;\n container.on('results:all', function () {\n self._positionDropdown();\n\n self._resizeDropdown();\n });\n container.on('results:append', function () {\n self._positionDropdown();\n\n self._resizeDropdown();\n });\n container.on('results:message', function () {\n self._positionDropdown();\n\n self._resizeDropdown();\n });\n container.on('select', function () {\n self._positionDropdown();\n\n self._resizeDropdown();\n });\n container.on('unselect', function () {\n self._positionDropdown();\n\n self._resizeDropdown();\n });\n this._containerResultsHandlersBound = true;\n };\n\n AttachBody.prototype._attachPositioningHandler = function (decorated, container) {\n var self = this;\n var scrollEvent = 'scroll.select2.' + container.id;\n var resizeEvent = 'resize.select2.' + container.id;\n var orientationEvent = 'orientationchange.select2.' + container.id;\n var $watchers = this.$container.parents().filter(Utils.hasScroll);\n $watchers.each(function () {\n Utils.StoreData(this, 'select2-scroll-position', {\n x: $(this).scrollLeft(),\n y: $(this).scrollTop()\n });\n });\n $watchers.on(scrollEvent, function (ev) {\n var position = Utils.GetData(this, 'select2-scroll-position');\n $(this).scrollTop(position.y);\n });\n $(window).on(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent, function (e) {\n self._positionDropdown();\n\n self._resizeDropdown();\n });\n };\n\n AttachBody.prototype._detachPositioningHandler = 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 var $watchers = this.$container.parents().filter(Utils.hasScroll);\n $watchers.off(scrollEvent);\n $(window).off(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent);\n };\n\n AttachBody.prototype._positionDropdown = function () {\n var $window = $(window);\n var isCurrentlyAbove = this.$dropdown.hasClass('select2-dropdown--above');\n var isCurrentlyBelow = this.$dropdown.hasClass('select2-dropdown--below');\n var newDirection = null;\n var offset = this.$container.offset();\n offset.bottom = offset.top + this.$container.outerHeight(false);\n var container = {\n height: this.$container.outerHeight(false)\n };\n container.top = offset.top;\n container.bottom = offset.top + container.height;\n var dropdown = {\n height: this.$dropdown.outerHeight(false)\n };\n var viewport = {\n top: $window.scrollTop(),\n bottom: $window.scrollTop() + $window.height()\n };\n var enoughRoomAbove = viewport.top < offset.top - dropdown.height;\n var enoughRoomBelow = viewport.bottom > offset.bottom + dropdown.height;\n var css = {\n left: offset.left,\n top: container.bottom\n }; // Determine what the parent element is to use for calculating the offset\n\n var $offsetParent = this.$dropdownParent; // For statically positioned elements, we need to get the element\n // that is determining the offset\n\n if ($offsetParent.css('position') === 'static') {\n $offsetParent = $offsetParent.offsetParent();\n }\n\n var parentOffset = {\n top: 0,\n left: 0\n };\n\n if ($.contains(document.body, $offsetParent[0]) || $offsetParent[0].isConnected) {\n parentOffset = $offsetParent.offset();\n }\n\n css.top -= parentOffset.top;\n css.left -= parentOffset.left;\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' || isCurrentlyAbove && newDirection !== 'below') {\n css.top = container.top - parentOffset.top - dropdown.height;\n }\n\n if (newDirection != null) {\n this.$dropdown.removeClass('select2-dropdown--below select2-dropdown--above').addClass('select2-dropdown--' + newDirection);\n this.$container.removeClass('select2-container--below select2-container--above').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.position = 'relative';\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\n this._resizeDropdown();\n };\n\n return AttachBody;\n });\n S2.define('select2/dropdown/minimumResultsForSearch', [], 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 S2.define('select2/dropdown/selectOnClose', ['../utils'], function (Utils) {\n function SelectOnClose() {}\n\n SelectOnClose.prototype.bind = function (decorated, container, $container) {\n var self = this;\n decorated.call(this, container, $container);\n container.on('close', function (params) {\n self._handleSelectOnClose(params);\n });\n };\n\n SelectOnClose.prototype._handleSelectOnClose = function (_, params) {\n if (params && params.originalSelect2Event != null) {\n var event = params.originalSelect2Event; // Don't select an item if the close event was triggered from a select or\n // unselect event\n\n if (event._type === 'select' || event._type === 'unselect') {\n return;\n }\n }\n\n var $highlightedResults = this.getHighlightedResults(); // Only select highlighted results\n\n if ($highlightedResults.length < 1) {\n return;\n }\n\n var data = Utils.GetData($highlightedResults[0], 'data'); // Don't re-select already selected resulte\n\n if (data.element != null && data.element.selected || data.element == null && data.selected) {\n return;\n }\n\n this.trigger('select', {\n data: data\n });\n };\n\n return SelectOnClose;\n });\n S2.define('select2/dropdown/closeOnSelect', [], function () {\n function CloseOnSelect() {}\n\n CloseOnSelect.prototype.bind = function (decorated, container, $container) {\n var self = this;\n decorated.call(this, container, $container);\n container.on('select', function (evt) {\n self._selectTriggered(evt);\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; // Don't close if the control key is being held\n\n if (originalEvent && (originalEvent.ctrlKey || originalEvent.metaKey)) {\n return;\n }\n\n this.trigger('close', {\n originalEvent: originalEvent,\n originalSelect2Event: evt\n });\n };\n\n return CloseOnSelect;\n });\n S2.define('select2/i18n/en', [], function () {\n // English\n return {\n errorLoading: function errorLoading() {\n return 'The results could not be loaded.';\n },\n inputTooLong: function inputTooLong(args) {\n var overChars = args.input.length - args.maximum;\n var message = 'Please delete ' + overChars + ' character';\n\n if (overChars != 1) {\n message += 's';\n }\n\n return message;\n },\n inputTooShort: function inputTooShort(args) {\n var remainingChars = args.minimum - args.input.length;\n var message = 'Please enter ' + remainingChars + ' or more characters';\n return message;\n },\n loadingMore: function loadingMore() {\n return 'Loading more results…';\n },\n maximumSelected: function maximumSelected(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 noResults() {\n return 'No results found';\n },\n searching: function searching() {\n return 'Searching…';\n },\n removeAllItems: function removeAllItems() {\n return 'Remove all items';\n }\n };\n });\n S2.define('select2/defaults', ['jquery', 'require', './results', './selection/single', './selection/multiple', './selection/placeholder', './selection/allowClear', './selection/search', './selection/eventRelay', './utils', './translation', './diacritics', './data/select', './data/array', './data/ajax', './data/tags', './data/tokenizer', './data/minimumInputLength', './data/maximumInputLength', './data/maximumSelectionLength', './dropdown', './dropdown/search', './dropdown/hidePlaceholder', './dropdown/infiniteScroll', './dropdown/attachBody', './dropdown/minimumResultsForSearch', './dropdown/selectOnClose', './dropdown/closeOnSelect', './i18n/en'], function ($, require, ResultsList, SingleSelection, MultipleSelection, Placeholder, AllowClear, SelectionSearch, EventRelay, Utils, Translation, DIACRITICS, SelectData, ArrayData, AjaxData, Tags, Tokenizer, MinimumInputLength, MaximumInputLength, MaximumSelectionLength, Dropdown, DropdownSearch, HidePlaceholder, InfiniteScroll, AttachBody, MinimumResultsForSearch, SelectOnClose, CloseOnSelect, EnglishTranslation) {\n function Defaults() {\n this.reset();\n }\n\n Defaults.prototype.apply = function (options) {\n options = $.extend(true, {}, 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(options.dataAdapter, MinimumInputLength);\n }\n\n if (options.maximumInputLength > 0) {\n options.dataAdapter = Utils.Decorate(options.dataAdapter, MaximumInputLength);\n }\n\n if (options.maximumSelectionLength > 0) {\n options.dataAdapter = Utils.Decorate(options.dataAdapter, MaximumSelectionLength);\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(options.dataAdapter, Tokenizer);\n }\n\n if (options.query != null) {\n var Query = require(options.amdBase + 'compat/query');\n\n options.dataAdapter = Utils.Decorate(options.dataAdapter, Query);\n }\n\n if (options.initSelection != null) {\n var InitSelection = require(options.amdBase + 'compat/initSelection');\n\n options.dataAdapter = Utils.Decorate(options.dataAdapter, InitSelection);\n }\n }\n\n if (options.resultsAdapter == null) {\n options.resultsAdapter = ResultsList;\n\n if (options.ajax != null) {\n options.resultsAdapter = Utils.Decorate(options.resultsAdapter, InfiniteScroll);\n }\n\n if (options.placeholder != null) {\n options.resultsAdapter = Utils.Decorate(options.resultsAdapter, HidePlaceholder);\n }\n\n if (options.selectOnClose) {\n options.resultsAdapter = Utils.Decorate(options.resultsAdapter, SelectOnClose);\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 options.dropdownAdapter = SearchableDropdown;\n }\n\n if (options.minimumResultsForSearch !== 0) {\n options.dropdownAdapter = Utils.Decorate(options.dropdownAdapter, MinimumResultsForSearch);\n }\n\n if (options.closeOnSelect) {\n options.dropdownAdapter = Utils.Decorate(options.dropdownAdapter, CloseOnSelect);\n }\n\n if (options.dropdownCssClass != null || options.dropdownCss != null || options.adaptDropdownCssClass != null) {\n var DropdownCSS = require(options.amdBase + 'compat/dropdownCss');\n\n options.dropdownAdapter = Utils.Decorate(options.dropdownAdapter, DropdownCSS);\n }\n\n options.dropdownAdapter = Utils.Decorate(options.dropdownAdapter, AttachBody);\n }\n\n if (options.selectionAdapter == null) {\n if (options.multiple) {\n options.selectionAdapter = MultipleSelection;\n } else {\n options.selectionAdapter = SingleSelection;\n } // Add the placeholder mixin if a placeholder was specified\n\n\n if (options.placeholder != null) {\n options.selectionAdapter = Utils.Decorate(options.selectionAdapter, Placeholder);\n }\n\n if (options.allowClear) {\n options.selectionAdapter = Utils.Decorate(options.selectionAdapter, AllowClear);\n }\n\n if (options.multiple) {\n options.selectionAdapter = Utils.Decorate(options.selectionAdapter, SelectionSearch);\n }\n\n if (options.containerCssClass != null || options.containerCss != null || options.adaptContainerCssClass != null) {\n var ContainerCSS = require(options.amdBase + 'compat/containerCss');\n\n options.selectionAdapter = Utils.Decorate(options.selectionAdapter, ContainerCSS);\n }\n\n options.selectionAdapter = Utils.Decorate(options.selectionAdapter, EventRelay);\n } // If the defaults were not previously applied from an element, it is\n // possible for the language option to have not been resolved\n\n\n options.language = this._resolveLanguage(options.language); // Always fall back to English since it will always be complete\n\n options.language.push('en');\n var uniqueLanguages = [];\n\n for (var l = 0; l < options.language.length; l++) {\n var language = options.language[l];\n\n if (uniqueLanguages.indexOf(language) === -1) {\n uniqueLanguages.push(language);\n }\n }\n\n options.language = uniqueLanguages;\n options.translations = this._processTranslations(options.language, options.debug);\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 } // Do a recursive check for options with children\n\n\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); // Check each child of the option\n\n for (var c = data.children.length - 1; c >= 0; c--) {\n var child = data.children[c];\n var matches = matcher(params, child); // If there wasn't a match, remove the object in the array\n\n if (matches == null) {\n match.children.splice(c, 1);\n }\n } // If any children matched, return the new object\n\n\n if (match.children.length > 0) {\n return match;\n } // If there were no matching children, check just the plain object\n\n\n return matcher(params, match);\n }\n\n var original = stripDiacritics(data.text).toUpperCase();\n var term = stripDiacritics(params.term).toUpperCase(); // Check if the text contains the term\n\n if (original.indexOf(term) > -1) {\n return data;\n } // If it doesn't contain the term, don't return anything\n\n\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: {},\n matcher: matcher,\n minimumInputLength: 0,\n maximumInputLength: 0,\n maximumSelectionLength: 0,\n minimumResultsForSearch: 0,\n selectOnClose: false,\n scrollAfterSelect: false,\n sorter: function sorter(data) {\n return data;\n },\n templateResult: function templateResult(result) {\n return result.text;\n },\n templateSelection: function templateSelection(selection) {\n return selection.text;\n },\n theme: 'default',\n width: 'resolve'\n };\n };\n\n Defaults.prototype.applyFromElement = function (options, $element) {\n var optionLanguage = options.language;\n var defaultLanguage = this.defaults.language;\n var elementLanguage = $element.prop('lang');\n var parentLanguage = $element.closest('[lang]').prop('lang');\n var languages = Array.prototype.concat.call(this._resolveLanguage(elementLanguage), this._resolveLanguage(optionLanguage), this._resolveLanguage(defaultLanguage), this._resolveLanguage(parentLanguage));\n options.language = languages;\n return options;\n };\n\n Defaults.prototype._resolveLanguage = function (language) {\n if (!language) {\n return [];\n }\n\n if ($.isEmptyObject(language)) {\n return [];\n }\n\n if ($.isPlainObject(language)) {\n return [language];\n }\n\n var languages;\n\n if (!$.isArray(language)) {\n languages = [language];\n } else {\n languages = language;\n }\n\n var resolvedLanguages = [];\n\n for (var l = 0; l < languages.length; l++) {\n resolvedLanguages.push(languages[l]);\n\n if (typeof languages[l] === 'string' && languages[l].indexOf('-') > 0) {\n // Extract the region information if it is included\n var languageParts = languages[l].split('-');\n var baseLanguage = languageParts[0];\n resolvedLanguages.push(baseLanguage);\n }\n }\n\n return resolvedLanguages;\n };\n\n Defaults.prototype._processTranslations = function (languages, debug) {\n var translations = new Translation();\n\n for (var l = 0; l < languages.length; l++) {\n var languageData = new Translation();\n var language = languages[l];\n\n if (typeof language === 'string') {\n try {\n // Try to load it with the original name\n languageData = Translation.loadPath(language);\n } catch (e) {\n try {\n // If we couldn't load it, check if it wasn't the full path\n language = this.defaults.amdLanguageBase + language;\n languageData = Translation.loadPath(language);\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 (debug && window.console && console.warn) {\n console.warn('Select2: The language file for \"' + language + '\" could ' + 'not be automatically loaded. A fallback will be used instead.');\n }\n }\n }\n } else if ($.isPlainObject(language)) {\n languageData = new Translation(language);\n } else {\n languageData = language;\n }\n\n translations.extend(languageData);\n }\n\n return translations;\n };\n\n Defaults.prototype.set = function (key, value) {\n var camelKey = $.camelCase(key);\n var data = {};\n data[camelKey] = value;\n\n var convertedData = Utils._convertData(data);\n\n $.extend(true, this.defaults, convertedData);\n };\n\n var defaults = new Defaults();\n return defaults;\n });\n S2.define('select2/options', ['require', 'jquery', './defaults', './utils'], 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 if ($element != null) {\n this.options = Defaults.applyFromElement(this.options, $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(this.options.dataAdapter, InputCompat);\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.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 (Utils.GetData($e[0], 'select2Tags')) {\n if (this.options.debug && window.console && console.warn) {\n console.warn('Select2: The `data-select2-tags` attribute has been changed to ' + 'use the `data-data` and `data-tags=\"true\"` attributes and will be ' + 'removed in future versions of Select2.');\n }\n\n Utils.StoreData($e[0], 'data', Utils.GetData($e[0], 'select2Tags'));\n Utils.StoreData($e[0], 'tags', true);\n }\n\n if (Utils.GetData($e[0], 'ajaxUrl')) {\n if (this.options.debug && window.console && console.warn) {\n console.warn('Select2: The `data-ajax-url` attribute has been changed to ' + '`data-ajax--url` and support for the old attribute will be removed' + ' in future versions of Select2.');\n }\n\n $e.attr('ajax--url', Utils.GetData($e[0], 'ajaxUrl'));\n Utils.StoreData($e[0], 'ajax-Url', Utils.GetData($e[0], 'ajaxUrl'));\n }\n\n var dataset = {};\n\n function upperCaseLetter(_, letter) {\n return letter.toUpperCase();\n } // Pre-load all of the attributes which are prefixed with `data-`\n\n\n for (var attr = 0; attr < $e[0].attributes.length; attr++) {\n var attributeName = $e[0].attributes[attr].name;\n var prefix = 'data-';\n\n if (attributeName.substr(0, prefix.length) == prefix) {\n // Get the contents of the attribute after `data-`\n var dataName = attributeName.substring(prefix.length); // Get the data contents from the consistent source\n // This is more than likely the jQuery data helper\n\n var dataValue = Utils.GetData($e[0], dataName); // camelCase the attribute name to match the spec\n\n var camelDataName = dataName.replace(/-([a-z])/g, upperCaseLetter); // Store the data attribute contents into the dataset since\n\n dataset[camelDataName] = dataValue;\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\n\n if ($.fn.jquery && $.fn.jquery.substr(0, 2) == '1.' && $e[0].dataset) {\n dataset = $.extend(true, {}, $e[0].dataset, dataset);\n } // Prefer our internal data cache if it exists\n\n\n var data = $.extend(true, {}, Utils.GetData($e[0]), dataset);\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 S2.define('select2/core', ['jquery', './options', './utils', './keys'], function ($, Options, Utils, KEYS) {\n var Select2 = function Select2($element, options) {\n if (Utils.GetData($element[0], 'select2') != null) {\n Utils.GetData($element[0], 'select2').destroy();\n }\n\n this.$element = $element;\n this.id = this._generateId($element);\n options = options || {};\n this.options = new Options(options, $element);\n\n Select2.__super__.constructor.call(this); // Set up the tabindex\n\n\n var tabindex = $element.attr('tabindex') || 0;\n Utils.StoreData($element[0], 'old-tabindex', tabindex);\n $element.attr('tabindex', '-1'); // Set up containers and adapters\n\n var DataAdapter = this.options.get('dataAdapter');\n this.dataAdapter = new DataAdapter($element, this.options);\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 this.selection.position(this.$selection, $container);\n var DropdownAdapter = this.options.get('dropdownAdapter');\n this.dropdown = new DropdownAdapter($element, this.options);\n this.$dropdown = this.dropdown.render();\n this.dropdown.position(this.$dropdown, $container);\n var ResultsAdapter = this.options.get('resultsAdapter');\n this.results = new ResultsAdapter($element, this.options, this.dataAdapter);\n this.$results = this.results.render();\n this.results.position(this.$results, this.$dropdown); // Bind events\n\n var self = this; // Bind the container to all of the adapters\n\n this._bindAdapters(); // Register any DOM event handlers\n\n\n this._registerDomEvents(); // Register any internal event handlers\n\n\n this._registerDataEvents();\n\n this._registerSelectionEvents();\n\n this._registerDropdownEvents();\n\n this._registerResultsEvents();\n\n this._registerEvents(); // Set the initial state\n\n\n this.dataAdapter.current(function (initialData) {\n self.trigger('selection:update', {\n data: initialData\n });\n }); // Hide the original select\n\n $element.addClass('select2-hidden-accessible');\n $element.attr('aria-hidden', 'true'); // Synchronize any monitored attributes\n\n this._syncAttributes();\n\n Utils.StoreData($element[0], 'select2', this); // Ensure backwards compatibility with $element.data('select2').\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 = id.replace(/(:|\\.|\\[|\\]|,)/g, '');\n id = 'select2-' + id;\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 if (method == 'computedstyle') {\n var computedStyle = window.getComputedStyle($element[0]);\n return computedStyle.width;\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 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 this.$element.on('change.select2', function () {\n self.dataAdapter.current(function (data) {\n self.trigger('selection:update', {\n data: data\n });\n });\n });\n this.$element.on('focus.select2', function (evt) {\n self.trigger('focus', evt);\n });\n this._syncA = Utils.bind(this._syncAttributes, this);\n this._syncS = Utils.bind(this._syncSubtree, this);\n\n if (this.$element[0].attachEvent) {\n this.$element[0].attachEvent('onpropertychange', this._syncA);\n }\n\n var observer = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;\n\n if (observer != null) {\n this._observer = new observer(function (mutations) {\n self._syncA();\n\n self._syncS(null, mutations);\n });\n\n this._observer.observe(this.$element[0], {\n attributes: true,\n childList: true,\n subtree: false\n });\n } else if (this.$element[0].addEventListener) {\n this.$element[0].addEventListener('DOMAttrModified', self._syncA, false);\n this.$element[0].addEventListener('DOMNodeInserted', self._syncS, false);\n this.$element[0].addEventListener('DOMNodeRemoved', self._syncS, false);\n }\n };\n\n Select2.prototype._registerDataEvents = function () {\n var self = this;\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 this.selection.on('toggle', function () {\n self.toggleDropdown();\n });\n this.selection.on('focus', function (params) {\n self.focus(params);\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 this.dropdown.on('*', function (name, params) {\n self.trigger(name, params);\n });\n };\n\n Select2.prototype._registerResultsEvents = function () {\n var self = this;\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 this.on('open', function () {\n self.$container.addClass('select2-container--open');\n });\n this.on('close', function () {\n self.$container.removeClass('select2-container--open');\n });\n this.on('enable', function () {\n self.$container.removeClass('select2-container--disabled');\n });\n this.on('disable', function () {\n self.$container.addClass('select2-container--disabled');\n });\n this.on('blur', function () {\n self.$container.removeClass('select2-container--focus');\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 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 this.on('keypress', function (evt) {\n var key = evt.which;\n\n if (self.isOpen()) {\n if (key === KEYS.ESC || key === KEYS.TAB || key === KEYS.UP && evt.altKey) {\n self.close(evt);\n evt.preventDefault();\n } else if (key === KEYS.ENTER) {\n self.trigger('results:select', {});\n evt.preventDefault();\n } else if (key === KEYS.SPACE && evt.ctrlKey) {\n self.trigger('results:toggle', {});\n evt.preventDefault();\n } else if (key === KEYS.UP) {\n self.trigger('results:previous', {});\n evt.preventDefault();\n } else if (key === KEYS.DOWN) {\n self.trigger('results:next', {});\n evt.preventDefault();\n }\n } else {\n if (key === KEYS.ENTER || key === KEYS.SPACE || key === KEYS.DOWN && evt.altKey) {\n self.open();\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.isDisabled()) {\n if (this.isOpen()) {\n this.close();\n }\n\n this.trigger('disable', {});\n } else {\n this.trigger('enable', {});\n }\n };\n\n Select2.prototype._isChangeMutation = function (evt, mutations) {\n var changed = false;\n var self = this; // Ignore any mutation events raised for elements that aren't options or\n // optgroups. This handles the case when the select element is destroyed\n\n if (evt && evt.target && evt.target.nodeName !== 'OPTION' && evt.target.nodeName !== 'OPTGROUP') {\n return;\n }\n\n if (!mutations) {\n // If mutation events aren't supported, then we can only assume that the\n // change affected the selections\n changed = true;\n } else if (mutations.addedNodes && mutations.addedNodes.length > 0) {\n for (var n = 0; n < mutations.addedNodes.length; n++) {\n var node = mutations.addedNodes[n];\n\n if (node.selected) {\n changed = true;\n }\n }\n } else if (mutations.removedNodes && mutations.removedNodes.length > 0) {\n changed = true;\n } else if ($.isArray(mutations)) {\n $.each(mutations, function (evt, mutation) {\n if (self._isChangeMutation(evt, mutation)) {\n // We've found a change mutation.\n // Let's escape from the loop and continue\n changed = true;\n return false;\n }\n });\n }\n\n return changed;\n };\n\n Select2.prototype._syncSubtree = function (evt, mutations) {\n var changed = this._isChangeMutation(evt, mutations);\n\n var self = this; // Only re-pull the data if we think there is a change\n\n if (changed) {\n this.dataAdapter.current(function (currentData) {\n self.trigger('selection:update', {\n data: currentData\n });\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\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 'clear': 'clearing'\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 actualTrigger.call(this, preTriggerName, preTriggerArgs);\n\n if (preTriggerArgs.prevented) {\n args.prevented = true;\n return;\n }\n }\n\n actualTrigger.call(this, name, args);\n };\n\n Select2.prototype.toggleDropdown = function () {\n if (this.isDisabled()) {\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 if (this.isDisabled()) {\n return;\n }\n\n this.trigger('query', {});\n };\n\n Select2.prototype.close = function (evt) {\n if (!this.isOpen()) {\n return;\n }\n\n this.trigger('close', {\n originalEvent: evt\n });\n };\n /**\n * Helper method to abstract the \"enabled\" (not \"disabled\") state of this\n * object.\n *\n * @return {true} if the instance is not disabled.\n * @return {false} if the instance is disabled.\n */\n\n\n Select2.prototype.isEnabled = function () {\n return !this.isDisabled();\n };\n /**\n * Helper method to abstract the \"disabled\" state of this object.\n *\n * @return {true} if the disabled option is true.\n * @return {false} if the disabled option is false.\n */\n\n\n Select2.prototype.isDisabled = function () {\n return this.options.get('disabled');\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('Select2: The `select2(\"enable\")` method has been deprecated and will' + ' be removed in later Select2 versions. Use $element.prop(\"disabled\")' + ' instead.');\n }\n\n if (args == null || args.length === 0) {\n args = [true];\n }\n\n var disabled = !args[0];\n this.$element.prop('disabled', disabled);\n };\n\n Select2.prototype.data = function () {\n if (this.options.get('debug') && arguments.length > 0 && window.console && console.warn) {\n console.warn('Select2: Data can no longer be set using `select2(\"data\")`. You ' + 'should consider setting the value instead using `$element.val()`.');\n }\n\n var data = [];\n this.dataAdapter.current(function (currentData) {\n data = currentData;\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('Select2: The `select2(\"val\")` method has been deprecated and will be' + ' removed in later Select2 versions. Use $element.val() instead.');\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('input').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._syncA);\n }\n\n if (this._observer != null) {\n this._observer.disconnect();\n\n this._observer = null;\n } else if (this.$element[0].removeEventListener) {\n this.$element[0].removeEventListener('DOMAttrModified', this._syncA, false);\n this.$element[0].removeEventListener('DOMNodeInserted', this._syncS, false);\n this.$element[0].removeEventListener('DOMNodeRemoved', this._syncS, false);\n }\n\n this._syncA = null;\n this._syncS = null;\n this.$element.off('.select2');\n this.$element.attr('tabindex', Utils.GetData(this.$element[0], 'old-tabindex'));\n this.$element.removeClass('select2-hidden-accessible');\n this.$element.attr('aria-hidden', 'false');\n Utils.RemoveData(this.$element[0]);\n this.$element.removeData('select2');\n this.dataAdapter.destroy();\n this.selection.destroy();\n this.dropdown.destroy();\n this.results.destroy();\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 = $('<span class=\"select2 select2-container\">' + '<span class=\"selection\"></span>' + '<span class=\"dropdown-wrapper\" aria-hidden=\"true\"></span>' + '</span>');\n $container.attr('dir', this.options.get('dir'));\n this.$container = $container;\n this.$container.addClass('select2-container--' + this.options.get('theme'));\n Utils.StoreData($container[0], 'element', this.$element);\n return $container;\n };\n\n return Select2;\n });\n S2.define('jquery-mousewheel', ['jquery'], function ($) {\n // Used to shim jQuery.mousewheel for non-full builds.\n return $;\n });\n S2.define('jquery.select2', ['jquery', 'jquery-mousewheel', './select2/core', './select2/defaults', './select2/utils'], function ($, _, Select2, Defaults, Utils) {\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 var instance = new Select2($(this), instanceOptions);\n });\n return this;\n } else if (typeof options === 'string') {\n var ret;\n var args = Array.prototype.slice.call(arguments, 1);\n this.each(function () {\n var instance = Utils.GetData(this, 'select2');\n\n if (instance == null && window.console && console.error) {\n console.error('The select2(\\'' + options + '\\') method was called on an ' + 'element that is not using Select2.');\n }\n\n ret = instance[options].apply(instance, args);\n }); // Check if we should be returning `this`\n\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 }); // Return the AMD loader configuration so it can be used outside of this file\n\n return {\n define: S2.define,\n require: S2.require\n };\n }(); // Autoload the jQuery bindings\n // We know that all of the modules exist above this, so we're safe\n\n\n var select2 = S2.require('jquery.select2'); // 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\n\n jQuery.fn.select2.amd = S2; // Return the Select2 instance for anyone who is importing it.\n\n return select2;\n});","window.StoreConnect = window.StoreConnect || {};\n\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n const tabTriggers = document.querySelectorAll(\"[data-tab-trigger]\");\n [...tabTriggers].map((tab) => {\n tab.addEventListener(\"click\", event => {\n const providerId = event.target.getAttribute(\"data-tab-trigger\");\n\n if (providerId) {\n showPaymentForm(providerId);\n }\n });\n });\n\n const lastProviderElement = document.querySelector(\"[data-last-used-provider]\");\n if (lastProviderElement) {\n const lastProviderId = lastProviderElement.getAttribute(\"data-last-used-provider\");\n if (lastProviderId) {\n showPaymentForm(lastProviderId);\n }\n }\n});\n\nfunction showPaymentForm(providerId) {\n document\n .querySelectorAll(\"[data-tab]\")\n .forEach((tab) => tab.classList.add(\"sc-hide\"));\n document\n .querySelectorAll(\"[data-tab-trigger]\")\n .forEach((tab) => tab.classList.remove(\"is-active\"));\n\n const tab = document.querySelector(`[data-tab='${providerId}']`);\n const trigger = document.querySelector(`[data-tab-trigger='${providerId}']`);\n\n tab.classList.remove(\"sc-hide\");\n trigger.classList.add(\"is-active\");\n\n if (window.StoreConnect.showPaymentProviderCallbacks[providerId]) {\n window.StoreConnect.showPaymentProviderCallbacks[providerId].show();\n }\n}\n\nwindow.StoreConnect.showPaymentProviderCallbacks = {};\n","(function () {\n document.addEventListener('DOMContentLoaded', () => {\n const elems = document.querySelectorAll('[data-datetime]');\n\n [...elems].map(elem => localize(elem));\n });\n\n function localize(elem) {\n dateTimeStr = elem.getAttribute('data-datetime')\n overrideFormat = elem.getAttribute('data-datetime-format')\n\n dateFormat = {\n year: 'numeric',\n month: 'numeric',\n day: 'numeric',\n }\n timeFormat = {\n hour: 'numeric',\n minute: 'numeric',\n }\n\n switch (overrideFormat) {\n case \"date\":\n format = {\n ...dateFormat\n }\n break;\n case \"time\":\n format = {\n ...timeFormat\n }\n break;\n default:\n format = {\n ...dateFormat,\n ...timeFormat\n }\n }\n\n formatter = new Intl.DateTimeFormat(Intl.DateTimeFormat().resolvedOptions().locale, format);\n outputString = formatter.format(Date.parse(dateTimeStr));\n\n // Mainly used for sharp. Remove if no longer needed\n if(overrideFormat == \"special\") {\n outputString = outputString.replaceAll(\"/\",\"-\");\n }\n\n elem.innerHTML = outputString\n\n elem.setAttribute('title', Intl.DateTimeFormat().resolvedOptions().timeZone);\n }\n})();\n","let activeDropdown = null;\n\ndocument.addEventListener('DOMContentLoaded', () => {\n const triggers = document.querySelectorAll('[data-dropdown-trigger]');\n\n if (triggers.length > 0) {\n [...triggers].forEach(trigger => init(trigger));\n }\n});\n\nfunction init(trigger) {\n const dropdown = trigger.parentNode;\n const options = [...dropdown.querySelectorAll('[data-dropdown-option]')];\n const label = trigger.querySelector('[data-dropdown-selection]');\n\n trigger.addEventListener('click', () => {\n dropdown === activeDropdown ? close(dropdown) : open(dropdown);\n });\n\n options.map(option => option.addEventListener('click', () => {\n if (option.type === 'checkbox') return;\n if (label) label.innerText = option.value || label.dataset.default;\n close(dropdown);\n }));\n}\n\nfunction open(dropdown) {\n const menu = dropdown.querySelector('[data-dropdown-target]');\n\n if (activeDropdown) close(activeDropdown);\n activeDropdown = dropdown;\n document.addEventListener('click', closeIfClickOutsideMenu);\n dropdown.classList.add('is-active');\n dropdown.querySelector('[data-dropdown-trigger]').classList.add('is-active');\n menu.classList.remove('sc-hide');\n menu.classList.add('is-active');\n menu.setAttribute('aria-expanded','true');\n}\n\nfunction close(dropdown) {\n const menu = dropdown.querySelector('[data-dropdown-target]');\n\n activeDropdown = null;\n document.removeEventListener('click', closeIfClickOutsideMenu);\n dropdown.classList.remove('is-active');\n dropdown.querySelector('[data-dropdown-trigger]').classList.remove('is-active');\n menu.classList.remove('is-active');\n menu.classList.add('sc-hide');\n menu.setAttribute('aria-expanded','false');\n}\n\nfunction closeIfClickOutsideMenu(event) {\n if (activeDropdown.parentNode.contains(event.target)) return;\n event.preventDefault();\n close(activeDropdown);\n}\n","window.StoreConnectUI = window.StoreConnectUI || {};\n\nwindow.StoreConnectUI.Fulfilment = (function() {\n let prevSubset;\n\n document.addEventListener('DOMContentLoaded', init);\n\n function init() {\n [...document.querySelectorAll('[data-fulfilment-option-trigger]')]\n .map(trigger => trigger.addEventListener('click', choose));\n }\n\n function choose(event) {\n const choice = event.currentTarget.parentNode;\n const subset = choice.querySelector('[data-fulfilment-option-subset]');\n\n // We manually handle checking inputs\n // to avoid multiple events firing\n event.preventDefault();\n\n // If there is a previously opened subset of options\n // we close it when a new choice is made\n if (prevSubset && !prevSubset.contains(choice)) {\n close(prevSubset);\n }\n\n\n // If our chosen option has a subset of options we\n // open the subset. Otherwise, we select the option.\n subset ? open(subset) : select(choice);\n\n enableSubmitButton();\n }\n\n function select(option) {\n [...document.querySelectorAll('[data-fulfilment-option]')]\n .map(option => option.classList.remove('is-selected'));\n option.classList.add('is-selected');\n option.querySelector('input[type=radio]').checked = true;\n }\n\n function close(subset) {\n subset.classList.remove('is-active');\n subset.parentNode.classList.remove('is-active');\n }\n\n function open(subset) {\n subset.classList.add('is-active');\n subset.parentNode.classList.add('is-active');\n prevSubset = subset;\n }\n\n function enableSubmitButton() {\n document.querySelector('[data-fulfilment-button]').removeAttribute('disabled');\n }\n})();\n","import {initQtyPickers} from './quantity-picker';\nimport Rails from \"@rails/ujs\";\n\ndocument.addEventListener('DOMContentLoaded', () => {\n const quantityPickers = document.querySelectorAll(\"form[data-submit-on-change=true] [data-qty-picker] input\");\n\n if (quantityPickers.length > 0) {\n document.body.addEventListener(\"ajax:success\", initQtyPickers);\n }\n});\n","import hoverintent from 'hoverintent/dist/hoverintent.min'\nimport { largeAndUp } from './viewport'\n\ndocument.addEventListener('DOMContentLoaded', init);\n\n\n/**\n * Initialise event listeners\n */\n\nfunction init() {\n const triggers = [...document.querySelectorAll('[data-menu-init]')];\n const backBtns = [...document.querySelectorAll('[data-menu-x]')];\n\n backBtns.map(btn => btn.addEventListener('click', close));\n\n // Desktop events\n if (largeAndUp()) {\n triggers.map(trigger => {\n hoverintent(trigger.closest('li'), show, hide)\n });\n }\n\n // Handheld events\n else {\n triggers.map(trigger => {\n trigger.addEventListener('click', open)\n });\n }\n}\n\n\n/**\n * Desktop event handlers\n */\n\nfunction show(event) {\n const group = event.target.closest('li');\n const menu = group.querySelector('[data-menu]');\n\n if (menu) {\n group.classList.add('is-active');\n menu.classList.add('is-active');\n }\n}\n\nfunction hide(event) {\n const group = event.target.closest('li')\n const menu = group.querySelector('[data-menu]');\n\n if (menu) {\n group.classList.remove('is-active');\n menu.classList.remove('is-active');\n }\n}\n\n\n/**\n * Handheld event handlers\n */\n\nfunction open(event) {\n const menuId = event.target.getAttribute('data-menu-init');\n const menu = document.querySelector(`[data-menu=\"${menuId}\"]`);\n\n if (menu) {\n event.preventDefault();\n menu.classList.add('is-active');\n document.querySelector('body').style.overflow = \"hidden\";\n }\n}\n\nfunction close(event) {\n const body = document.querySelector('body');\n const menu = event.target.closest('[data-menu]');\n const isRoot = menu.classList.contains('tier1');\n\n menu.classList.remove('is-active');\n if (isRoot) body.style.overflow = 'visible';\n}\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n// Ion.RangeSlider\n// version 2.3.1 Build: 382\n// © Denis Ineshin, 2019\n// https://github.com/IonDen\n//\n// Project page: http://ionden.com/a/plugins/ion.rangeSlider/en.html\n// GitHub page: https://github.com/IonDen/ion.rangeSlider\n//\n// Released under MIT licence:\n// http://ionden.com/a/plugins/licence-en.html\n// =====================================================================================================================\n;\n\n(function (factory) {\n if ((typeof jQuery === 'undefined' || !jQuery) && typeof define === \"function\" && define.amd) {\n define([\"jquery\"], function (jQuery) {\n return factory(jQuery, document, window, navigator);\n });\n } else if ((typeof jQuery === 'undefined' || !jQuery) && (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === \"object\") {\n factory(require(\"jquery\"), document, window, navigator);\n } else {\n factory(jQuery, document, window, navigator);\n }\n})(function ($, document, window, navigator, undefined) {\n \"use strict\"; // =================================================================================================================\n // Service\n\n var plugin_count = 0; // IE8 fix\n\n var is_old_ie = function () {\n var n = navigator.userAgent,\n r = /msie\\s\\d+/i,\n v;\n\n if (n.search(r) > 0) {\n v = r.exec(n).toString();\n v = v.split(\" \")[1];\n\n if (v < 9) {\n $(\"html\").addClass(\"lt-ie9\");\n return true;\n }\n }\n\n return false;\n }();\n\n if (!Function.prototype.bind) {\n Function.prototype.bind = function bind(that) {\n var target = this;\n var slice = [].slice;\n\n if (typeof target != \"function\") {\n throw new TypeError();\n }\n\n var args = slice.call(arguments, 1),\n bound = function bound() {\n if (this instanceof bound) {\n var F = function F() {};\n\n F.prototype = target.prototype;\n var self = new F();\n var result = target.apply(self, args.concat(slice.call(arguments)));\n\n if (Object(result) === result) {\n return result;\n }\n\n return self;\n } else {\n return target.apply(that, args.concat(slice.call(arguments)));\n }\n };\n\n return bound;\n };\n }\n\n if (!Array.prototype.indexOf) {\n Array.prototype.indexOf = function (searchElement, fromIndex) {\n var k;\n\n if (this == null) {\n throw new TypeError('\"this\" is null or not defined');\n }\n\n var O = Object(this);\n var len = O.length >>> 0;\n\n if (len === 0) {\n return -1;\n }\n\n var n = +fromIndex || 0;\n\n if (Math.abs(n) === Infinity) {\n n = 0;\n }\n\n if (n >= len) {\n return -1;\n }\n\n k = Math.max(n >= 0 ? n : len - Math.abs(n), 0);\n\n while (k < len) {\n if (k in O && O[k] === searchElement) {\n return k;\n }\n\n k++;\n }\n\n return -1;\n };\n } // =================================================================================================================\n // Template\n\n\n var base_html = '<span class=\"irs\">' + '<span class=\"irs-line\" tabindex=\"0\"></span>' + '<span class=\"irs-min\">0</span><span class=\"irs-max\">1</span>' + '<span class=\"irs-from\">0</span><span class=\"irs-to\">0</span><span class=\"irs-single\">0</span>' + '</span>' + '<span class=\"irs-grid\"></span>';\n var single_html = '<span class=\"irs-bar irs-bar--single\"></span>' + '<span class=\"irs-shadow shadow-single\"></span>' + '<span class=\"irs-handle single\"><i></i><i></i><i></i></span>';\n var double_html = '<span class=\"irs-bar\"></span>' + '<span class=\"irs-shadow shadow-from\"></span>' + '<span class=\"irs-shadow shadow-to\"></span>' + '<span class=\"irs-handle from\"><i></i><i></i><i></i></span>' + '<span class=\"irs-handle to\"><i></i><i></i><i></i></span>';\n var disable_html = '<span class=\"irs-disable-mask\"></span>'; // =================================================================================================================\n // Core\n\n /**\n * Main plugin constructor\n *\n * @param input {Object} link to base input element\n * @param options {Object} slider config\n * @param plugin_count {Number}\n * @constructor\n */\n\n var IonRangeSlider = function IonRangeSlider(input, options, plugin_count) {\n this.VERSION = \"2.3.1\";\n this.input = input;\n this.plugin_count = plugin_count;\n this.current_plugin = 0;\n this.calc_count = 0;\n this.update_tm = 0;\n this.old_from = 0;\n this.old_to = 0;\n this.old_min_interval = null;\n this.raf_id = null;\n this.dragging = false;\n this.force_redraw = false;\n this.no_diapason = false;\n this.has_tab_index = true;\n this.is_key = false;\n this.is_update = false;\n this.is_start = true;\n this.is_finish = false;\n this.is_active = false;\n this.is_resize = false;\n this.is_click = false;\n options = options || {}; // cache for links to all DOM elements\n\n this.$cache = {\n win: $(window),\n body: $(document.body),\n input: $(input),\n cont: null,\n rs: null,\n min: null,\n max: null,\n from: null,\n to: null,\n single: null,\n bar: null,\n line: null,\n s_single: null,\n s_from: null,\n s_to: null,\n shad_single: null,\n shad_from: null,\n shad_to: null,\n edge: null,\n grid: null,\n grid_labels: []\n }; // storage for measure variables\n\n this.coords = {\n // left\n x_gap: 0,\n x_pointer: 0,\n // width\n w_rs: 0,\n w_rs_old: 0,\n w_handle: 0,\n // percents\n p_gap: 0,\n p_gap_left: 0,\n p_gap_right: 0,\n p_step: 0,\n p_pointer: 0,\n p_handle: 0,\n p_single_fake: 0,\n p_single_real: 0,\n p_from_fake: 0,\n p_from_real: 0,\n p_to_fake: 0,\n p_to_real: 0,\n p_bar_x: 0,\n p_bar_w: 0,\n // grid\n grid_gap: 0,\n big_num: 0,\n big: [],\n big_w: [],\n big_p: [],\n big_x: []\n }; // storage for labels measure variables\n\n this.labels = {\n // width\n w_min: 0,\n w_max: 0,\n w_from: 0,\n w_to: 0,\n w_single: 0,\n // percents\n p_min: 0,\n p_max: 0,\n p_from_fake: 0,\n p_from_left: 0,\n p_to_fake: 0,\n p_to_left: 0,\n p_single_fake: 0,\n p_single_left: 0\n };\n /**\n * get and validate config\n */\n\n var $inp = this.$cache.input,\n val = $inp.prop(\"value\"),\n config,\n config_from_data,\n prop; // default config\n\n config = {\n skin: \"flat\",\n type: \"single\",\n min: 10,\n max: 100,\n from: null,\n to: null,\n step: 1,\n min_interval: 0,\n max_interval: 0,\n drag_interval: false,\n values: [],\n p_values: [],\n from_fixed: false,\n from_min: null,\n from_max: null,\n from_shadow: false,\n to_fixed: false,\n to_min: null,\n to_max: null,\n to_shadow: false,\n prettify_enabled: true,\n prettify_separator: \" \",\n prettify: null,\n force_edges: false,\n keyboard: true,\n grid: false,\n grid_margin: true,\n grid_num: 4,\n grid_snap: false,\n hide_min_max: false,\n hide_from_to: false,\n prefix: \"\",\n postfix: \"\",\n max_postfix: \"\",\n decorate_both: true,\n values_separator: \" — \",\n input_values_separator: \";\",\n disable: false,\n block: false,\n extra_classes: \"\",\n scope: null,\n onStart: null,\n onChange: null,\n onFinish: null,\n onUpdate: null\n }; // check if base element is input\n\n if ($inp[0].nodeName !== \"INPUT\") {\n console && console.warn && console.warn(\"Base element should be <input>!\", $inp[0]);\n } // config from data-attributes extends js config\n\n\n config_from_data = {\n skin: $inp.data(\"skin\"),\n type: $inp.data(\"type\"),\n min: $inp.data(\"min\"),\n max: $inp.data(\"max\"),\n from: $inp.data(\"from\"),\n to: $inp.data(\"to\"),\n step: $inp.data(\"step\"),\n min_interval: $inp.data(\"minInterval\"),\n max_interval: $inp.data(\"maxInterval\"),\n drag_interval: $inp.data(\"dragInterval\"),\n values: $inp.data(\"values\"),\n from_fixed: $inp.data(\"fromFixed\"),\n from_min: $inp.data(\"fromMin\"),\n from_max: $inp.data(\"fromMax\"),\n from_shadow: $inp.data(\"fromShadow\"),\n to_fixed: $inp.data(\"toFixed\"),\n to_min: $inp.data(\"toMin\"),\n to_max: $inp.data(\"toMax\"),\n to_shadow: $inp.data(\"toShadow\"),\n prettify_enabled: $inp.data(\"prettifyEnabled\"),\n prettify_separator: $inp.data(\"prettifySeparator\"),\n force_edges: $inp.data(\"forceEdges\"),\n keyboard: $inp.data(\"keyboard\"),\n grid: $inp.data(\"grid\"),\n grid_margin: $inp.data(\"gridMargin\"),\n grid_num: $inp.data(\"gridNum\"),\n grid_snap: $inp.data(\"gridSnap\"),\n hide_min_max: $inp.data(\"hideMinMax\"),\n hide_from_to: $inp.data(\"hideFromTo\"),\n prefix: $inp.data(\"prefix\"),\n postfix: $inp.data(\"postfix\"),\n max_postfix: $inp.data(\"maxPostfix\"),\n decorate_both: $inp.data(\"decorateBoth\"),\n values_separator: $inp.data(\"valuesSeparator\"),\n input_values_separator: $inp.data(\"inputValuesSeparator\"),\n disable: $inp.data(\"disable\"),\n block: $inp.data(\"block\"),\n extra_classes: $inp.data(\"extraClasses\")\n };\n config_from_data.values = config_from_data.values && config_from_data.values.split(\",\");\n\n for (prop in config_from_data) {\n if (config_from_data.hasOwnProperty(prop)) {\n if (config_from_data[prop] === undefined || config_from_data[prop] === \"\") {\n delete config_from_data[prop];\n }\n }\n } // input value extends default config\n\n\n if (val !== undefined && val !== \"\") {\n val = val.split(config_from_data.input_values_separator || options.input_values_separator || \";\");\n\n if (val[0] && val[0] == +val[0]) {\n val[0] = +val[0];\n }\n\n if (val[1] && val[1] == +val[1]) {\n val[1] = +val[1];\n }\n\n if (options && options.values && options.values.length) {\n config.from = val[0] && options.values.indexOf(val[0]);\n config.to = val[1] && options.values.indexOf(val[1]);\n } else {\n config.from = val[0] && +val[0];\n config.to = val[1] && +val[1];\n }\n } // js config extends default config\n\n\n $.extend(config, options); // data config extends config\n\n $.extend(config, config_from_data);\n this.options = config; // validate config, to be sure that all data types are correct\n\n this.update_check = {};\n this.validate(); // default result object, returned to callbacks\n\n this.result = {\n input: this.$cache.input,\n slider: null,\n min: this.options.min,\n max: this.options.max,\n from: this.options.from,\n from_percent: 0,\n from_value: null,\n to: this.options.to,\n to_percent: 0,\n to_value: null\n };\n this.init();\n };\n\n IonRangeSlider.prototype = {\n /**\n * Starts or updates the plugin instance\n *\n * @param [is_update] {boolean}\n */\n init: function init(is_update) {\n this.no_diapason = false;\n this.coords.p_step = this.convertToPercent(this.options.step, true);\n this.target = \"base\";\n this.toggleInput();\n this.append();\n this.setMinMax();\n\n if (is_update) {\n this.force_redraw = true;\n this.calc(true); // callbacks called\n\n this.callOnUpdate();\n } else {\n this.force_redraw = true;\n this.calc(true); // callbacks called\n\n this.callOnStart();\n }\n\n this.updateScene();\n },\n\n /**\n * Appends slider template to a DOM\n */\n append: function append() {\n var container_html = '<span class=\"irs irs--' + this.options.skin + ' js-irs-' + this.plugin_count + ' ' + this.options.extra_classes + '\"></span>';\n this.$cache.input.before(container_html);\n this.$cache.input.prop(\"readonly\", true);\n this.$cache.cont = this.$cache.input.prev();\n this.result.slider = this.$cache.cont;\n this.$cache.cont.html(base_html);\n this.$cache.rs = this.$cache.cont.find(\".irs\");\n this.$cache.min = this.$cache.cont.find(\".irs-min\");\n this.$cache.max = this.$cache.cont.find(\".irs-max\");\n this.$cache.from = this.$cache.cont.find(\".irs-from\");\n this.$cache.to = this.$cache.cont.find(\".irs-to\");\n this.$cache.single = this.$cache.cont.find(\".irs-single\");\n this.$cache.line = this.$cache.cont.find(\".irs-line\");\n this.$cache.grid = this.$cache.cont.find(\".irs-grid\");\n\n if (this.options.type === \"single\") {\n this.$cache.cont.append(single_html);\n this.$cache.bar = this.$cache.cont.find(\".irs-bar\");\n this.$cache.edge = this.$cache.cont.find(\".irs-bar-edge\");\n this.$cache.s_single = this.$cache.cont.find(\".single\");\n this.$cache.from[0].style.visibility = \"hidden\";\n this.$cache.to[0].style.visibility = \"hidden\";\n this.$cache.shad_single = this.$cache.cont.find(\".shadow-single\");\n } else {\n this.$cache.cont.append(double_html);\n this.$cache.bar = this.$cache.cont.find(\".irs-bar\");\n this.$cache.s_from = this.$cache.cont.find(\".from\");\n this.$cache.s_to = this.$cache.cont.find(\".to\");\n this.$cache.shad_from = this.$cache.cont.find(\".shadow-from\");\n this.$cache.shad_to = this.$cache.cont.find(\".shadow-to\");\n this.setTopHandler();\n }\n\n if (this.options.hide_from_to) {\n this.$cache.from[0].style.display = \"none\";\n this.$cache.to[0].style.display = \"none\";\n this.$cache.single[0].style.display = \"none\";\n }\n\n this.appendGrid();\n\n if (this.options.disable) {\n this.appendDisableMask();\n this.$cache.input[0].disabled = true;\n } else {\n this.$cache.input[0].disabled = false;\n this.removeDisableMask();\n this.bindEvents();\n } // block only if not disabled\n\n\n if (!this.options.disable) {\n if (this.options.block) {\n this.appendDisableMask();\n } else {\n this.removeDisableMask();\n }\n }\n\n if (this.options.drag_interval) {\n this.$cache.bar[0].style.cursor = \"ew-resize\";\n }\n },\n\n /**\n * Determine which handler has a priority\n * works only for double slider type\n */\n setTopHandler: function setTopHandler() {\n var min = this.options.min,\n max = this.options.max,\n from = this.options.from,\n to = this.options.to;\n\n if (from > min && to === max) {\n this.$cache.s_from.addClass(\"type_last\");\n } else if (to < max) {\n this.$cache.s_to.addClass(\"type_last\");\n }\n },\n\n /**\n * Determine which handles was clicked last\n * and which handler should have hover effect\n *\n * @param target {String}\n */\n changeLevel: function changeLevel(target) {\n switch (target) {\n case \"single\":\n this.coords.p_gap = this.toFixed(this.coords.p_pointer - this.coords.p_single_fake);\n this.$cache.s_single.addClass(\"state_hover\");\n break;\n\n case \"from\":\n this.coords.p_gap = this.toFixed(this.coords.p_pointer - this.coords.p_from_fake);\n this.$cache.s_from.addClass(\"state_hover\");\n this.$cache.s_from.addClass(\"type_last\");\n this.$cache.s_to.removeClass(\"type_last\");\n break;\n\n case \"to\":\n this.coords.p_gap = this.toFixed(this.coords.p_pointer - this.coords.p_to_fake);\n this.$cache.s_to.addClass(\"state_hover\");\n this.$cache.s_to.addClass(\"type_last\");\n this.$cache.s_from.removeClass(\"type_last\");\n break;\n\n case \"both\":\n this.coords.p_gap_left = this.toFixed(this.coords.p_pointer - this.coords.p_from_fake);\n this.coords.p_gap_right = this.toFixed(this.coords.p_to_fake - this.coords.p_pointer);\n this.$cache.s_to.removeClass(\"type_last\");\n this.$cache.s_from.removeClass(\"type_last\");\n break;\n }\n },\n\n /**\n * Then slider is disabled\n * appends extra layer with opacity\n */\n appendDisableMask: function appendDisableMask() {\n this.$cache.cont.append(disable_html);\n this.$cache.cont.addClass(\"irs-disabled\");\n },\n\n /**\n * Then slider is not disabled\n * remove disable mask\n */\n removeDisableMask: function removeDisableMask() {\n this.$cache.cont.remove(\".irs-disable-mask\");\n this.$cache.cont.removeClass(\"irs-disabled\");\n },\n\n /**\n * Remove slider instance\n * and unbind all events\n */\n remove: function remove() {\n this.$cache.cont.remove();\n this.$cache.cont = null;\n this.$cache.line.off(\"keydown.irs_\" + this.plugin_count);\n this.$cache.body.off(\"touchmove.irs_\" + this.plugin_count);\n this.$cache.body.off(\"mousemove.irs_\" + this.plugin_count);\n this.$cache.win.off(\"touchend.irs_\" + this.plugin_count);\n this.$cache.win.off(\"mouseup.irs_\" + this.plugin_count);\n\n if (is_old_ie) {\n this.$cache.body.off(\"mouseup.irs_\" + this.plugin_count);\n this.$cache.body.off(\"mouseleave.irs_\" + this.plugin_count);\n }\n\n this.$cache.grid_labels = [];\n this.coords.big = [];\n this.coords.big_w = [];\n this.coords.big_p = [];\n this.coords.big_x = [];\n cancelAnimationFrame(this.raf_id);\n },\n\n /**\n * bind all slider events\n */\n bindEvents: function bindEvents() {\n if (this.no_diapason) {\n return;\n }\n\n this.$cache.body.on(\"touchmove.irs_\" + this.plugin_count, this.pointerMove.bind(this));\n this.$cache.body.on(\"mousemove.irs_\" + this.plugin_count, this.pointerMove.bind(this));\n this.$cache.win.on(\"touchend.irs_\" + this.plugin_count, this.pointerUp.bind(this));\n this.$cache.win.on(\"mouseup.irs_\" + this.plugin_count, this.pointerUp.bind(this));\n this.$cache.line.on(\"touchstart.irs_\" + this.plugin_count, this.pointerClick.bind(this, \"click\"));\n this.$cache.line.on(\"mousedown.irs_\" + this.plugin_count, this.pointerClick.bind(this, \"click\"));\n this.$cache.line.on(\"focus.irs_\" + this.plugin_count, this.pointerFocus.bind(this));\n\n if (this.options.drag_interval && this.options.type === \"double\") {\n this.$cache.bar.on(\"touchstart.irs_\" + this.plugin_count, this.pointerDown.bind(this, \"both\"));\n this.$cache.bar.on(\"mousedown.irs_\" + this.plugin_count, this.pointerDown.bind(this, \"both\"));\n } else {\n this.$cache.bar.on(\"touchstart.irs_\" + this.plugin_count, this.pointerClick.bind(this, \"click\"));\n this.$cache.bar.on(\"mousedown.irs_\" + this.plugin_count, this.pointerClick.bind(this, \"click\"));\n }\n\n if (this.options.type === \"single\") {\n this.$cache.single.on(\"touchstart.irs_\" + this.plugin_count, this.pointerDown.bind(this, \"single\"));\n this.$cache.s_single.on(\"touchstart.irs_\" + this.plugin_count, this.pointerDown.bind(this, \"single\"));\n this.$cache.shad_single.on(\"touchstart.irs_\" + this.plugin_count, this.pointerClick.bind(this, \"click\"));\n this.$cache.single.on(\"mousedown.irs_\" + this.plugin_count, this.pointerDown.bind(this, \"single\"));\n this.$cache.s_single.on(\"mousedown.irs_\" + this.plugin_count, this.pointerDown.bind(this, \"single\"));\n this.$cache.edge.on(\"mousedown.irs_\" + this.plugin_count, this.pointerClick.bind(this, \"click\"));\n this.$cache.shad_single.on(\"mousedown.irs_\" + this.plugin_count, this.pointerClick.bind(this, \"click\"));\n } else {\n this.$cache.single.on(\"touchstart.irs_\" + this.plugin_count, this.pointerDown.bind(this, null));\n this.$cache.single.on(\"mousedown.irs_\" + this.plugin_count, this.pointerDown.bind(this, null));\n this.$cache.from.on(\"touchstart.irs_\" + this.plugin_count, this.pointerDown.bind(this, \"from\"));\n this.$cache.s_from.on(\"touchstart.irs_\" + this.plugin_count, this.pointerDown.bind(this, \"from\"));\n this.$cache.to.on(\"touchstart.irs_\" + this.plugin_count, this.pointerDown.bind(this, \"to\"));\n this.$cache.s_to.on(\"touchstart.irs_\" + this.plugin_count, this.pointerDown.bind(this, \"to\"));\n this.$cache.shad_from.on(\"touchstart.irs_\" + this.plugin_count, this.pointerClick.bind(this, \"click\"));\n this.$cache.shad_to.on(\"touchstart.irs_\" + this.plugin_count, this.pointerClick.bind(this, \"click\"));\n this.$cache.from.on(\"mousedown.irs_\" + this.plugin_count, this.pointerDown.bind(this, \"from\"));\n this.$cache.s_from.on(\"mousedown.irs_\" + this.plugin_count, this.pointerDown.bind(this, \"from\"));\n this.$cache.to.on(\"mousedown.irs_\" + this.plugin_count, this.pointerDown.bind(this, \"to\"));\n this.$cache.s_to.on(\"mousedown.irs_\" + this.plugin_count, this.pointerDown.bind(this, \"to\"));\n this.$cache.shad_from.on(\"mousedown.irs_\" + this.plugin_count, this.pointerClick.bind(this, \"click\"));\n this.$cache.shad_to.on(\"mousedown.irs_\" + this.plugin_count, this.pointerClick.bind(this, \"click\"));\n }\n\n if (this.options.keyboard) {\n this.$cache.line.on(\"keydown.irs_\" + this.plugin_count, this.key.bind(this, \"keyboard\"));\n }\n\n if (is_old_ie) {\n this.$cache.body.on(\"mouseup.irs_\" + this.plugin_count, this.pointerUp.bind(this));\n this.$cache.body.on(\"mouseleave.irs_\" + this.plugin_count, this.pointerUp.bind(this));\n }\n },\n\n /**\n * Focus with tabIndex\n *\n * @param e {Object} event object\n */\n pointerFocus: function pointerFocus(e) {\n if (!this.target) {\n var x;\n var $handle;\n\n if (this.options.type === \"single\") {\n $handle = this.$cache.single;\n } else {\n $handle = this.$cache.from;\n }\n\n x = $handle.offset().left;\n x += $handle.width() / 2 - 1;\n this.pointerClick(\"single\", {\n preventDefault: function preventDefault() {},\n pageX: x\n });\n }\n },\n\n /**\n * Mousemove or touchmove\n * only for handlers\n *\n * @param e {Object} event object\n */\n pointerMove: function pointerMove(e) {\n if (!this.dragging) {\n return;\n }\n\n var x = e.pageX || e.originalEvent.touches && e.originalEvent.touches[0].pageX;\n this.coords.x_pointer = x - this.coords.x_gap;\n this.calc();\n },\n\n /**\n * Mouseup or touchend\n * only for handlers\n *\n * @param e {Object} event object\n */\n pointerUp: function pointerUp(e) {\n if (this.current_plugin !== this.plugin_count) {\n return;\n }\n\n if (this.is_active) {\n this.is_active = false;\n } else {\n return;\n }\n\n this.$cache.cont.find(\".state_hover\").removeClass(\"state_hover\");\n this.force_redraw = true;\n\n if (is_old_ie) {\n $(\"*\").prop(\"unselectable\", false);\n }\n\n this.updateScene();\n this.restoreOriginalMinInterval(); // callbacks call\n\n if ($.contains(this.$cache.cont[0], e.target) || this.dragging) {\n this.callOnFinish();\n }\n\n this.dragging = false;\n },\n\n /**\n * Mousedown or touchstart\n * only for handlers\n *\n * @param target {String|null}\n * @param e {Object} event object\n */\n pointerDown: function pointerDown(target, e) {\n e.preventDefault();\n var x = e.pageX || e.originalEvent.touches && e.originalEvent.touches[0].pageX;\n\n if (e.button === 2) {\n return;\n }\n\n if (target === \"both\") {\n this.setTempMinInterval();\n }\n\n if (!target) {\n target = this.target || \"from\";\n }\n\n this.current_plugin = this.plugin_count;\n this.target = target;\n this.is_active = true;\n this.dragging = true;\n this.coords.x_gap = this.$cache.rs.offset().left;\n this.coords.x_pointer = x - this.coords.x_gap;\n this.calcPointerPercent();\n this.changeLevel(target);\n\n if (is_old_ie) {\n $(\"*\").prop(\"unselectable\", true);\n }\n\n this.$cache.line.trigger(\"focus\");\n this.updateScene();\n },\n\n /**\n * Mousedown or touchstart\n * for other slider elements, like diapason line\n *\n * @param target {String}\n * @param e {Object} event object\n */\n pointerClick: function pointerClick(target, e) {\n e.preventDefault();\n var x = e.pageX || e.originalEvent.touches && e.originalEvent.touches[0].pageX;\n\n if (e.button === 2) {\n return;\n }\n\n this.current_plugin = this.plugin_count;\n this.target = target;\n this.is_click = true;\n this.coords.x_gap = this.$cache.rs.offset().left;\n this.coords.x_pointer = +(x - this.coords.x_gap).toFixed();\n this.force_redraw = true;\n this.calc();\n this.$cache.line.trigger(\"focus\");\n },\n\n /**\n * Keyborard controls for focused slider\n *\n * @param target {String}\n * @param e {Object} event object\n * @returns {boolean|undefined}\n */\n key: function key(target, e) {\n if (this.current_plugin !== this.plugin_count || e.altKey || e.ctrlKey || e.shiftKey || e.metaKey) {\n return;\n }\n\n switch (e.which) {\n case 83: // W\n\n case 65: // A\n\n case 40: // DOWN\n\n case 37:\n // LEFT\n e.preventDefault();\n this.moveByKey(false);\n break;\n\n case 87: // S\n\n case 68: // D\n\n case 38: // UP\n\n case 39:\n // RIGHT\n e.preventDefault();\n this.moveByKey(true);\n break;\n }\n\n return true;\n },\n\n /**\n * Move by key\n *\n * @param right {boolean} direction to move\n */\n moveByKey: function moveByKey(right) {\n var p = this.coords.p_pointer;\n var p_step = (this.options.max - this.options.min) / 100;\n p_step = this.options.step / p_step;\n\n if (right) {\n p += p_step;\n } else {\n p -= p_step;\n }\n\n this.coords.x_pointer = this.toFixed(this.coords.w_rs / 100 * p);\n this.is_key = true;\n this.calc();\n },\n\n /**\n * Set visibility and content\n * of Min and Max labels\n */\n setMinMax: function setMinMax() {\n if (!this.options) {\n return;\n }\n\n if (this.options.hide_min_max) {\n this.$cache.min[0].style.display = \"none\";\n this.$cache.max[0].style.display = \"none\";\n return;\n }\n\n if (this.options.values.length) {\n this.$cache.min.html(this.decorate(this.options.p_values[this.options.min]));\n this.$cache.max.html(this.decorate(this.options.p_values[this.options.max]));\n } else {\n var min_pretty = this._prettify(this.options.min);\n\n var max_pretty = this._prettify(this.options.max);\n\n this.result.min_pretty = min_pretty;\n this.result.max_pretty = max_pretty;\n this.$cache.min.html(this.decorate(min_pretty, this.options.min));\n this.$cache.max.html(this.decorate(max_pretty, this.options.max));\n }\n\n this.labels.w_min = this.$cache.min.outerWidth(false);\n this.labels.w_max = this.$cache.max.outerWidth(false);\n },\n\n /**\n * Then dragging interval, prevent interval collapsing\n * using min_interval option\n */\n setTempMinInterval: function setTempMinInterval() {\n var interval = this.result.to - this.result.from;\n\n if (this.old_min_interval === null) {\n this.old_min_interval = this.options.min_interval;\n }\n\n this.options.min_interval = interval;\n },\n\n /**\n * Restore min_interval option to original\n */\n restoreOriginalMinInterval: function restoreOriginalMinInterval() {\n if (this.old_min_interval !== null) {\n this.options.min_interval = this.old_min_interval;\n this.old_min_interval = null;\n }\n },\n // =============================================================================================================\n // Calculations\n\n /**\n * All calculations and measures start here\n *\n * @param update {boolean=}\n */\n calc: function calc(update) {\n if (!this.options) {\n return;\n }\n\n this.calc_count++;\n\n if (this.calc_count === 10 || update) {\n this.calc_count = 0;\n this.coords.w_rs = this.$cache.rs.outerWidth(false);\n this.calcHandlePercent();\n }\n\n if (!this.coords.w_rs) {\n return;\n }\n\n this.calcPointerPercent();\n var handle_x = this.getHandleX();\n\n if (this.target === \"both\") {\n this.coords.p_gap = 0;\n handle_x = this.getHandleX();\n }\n\n if (this.target === \"click\") {\n this.coords.p_gap = this.coords.p_handle / 2;\n handle_x = this.getHandleX();\n\n if (this.options.drag_interval) {\n this.target = \"both_one\";\n } else {\n this.target = this.chooseHandle(handle_x);\n }\n }\n\n switch (this.target) {\n case \"base\":\n var w = (this.options.max - this.options.min) / 100,\n f = (this.result.from - this.options.min) / w,\n t = (this.result.to - this.options.min) / w;\n this.coords.p_single_real = this.toFixed(f);\n this.coords.p_from_real = this.toFixed(f);\n this.coords.p_to_real = this.toFixed(t);\n this.coords.p_single_real = this.checkDiapason(this.coords.p_single_real, this.options.from_min, this.options.from_max);\n this.coords.p_from_real = this.checkDiapason(this.coords.p_from_real, this.options.from_min, this.options.from_max);\n this.coords.p_to_real = this.checkDiapason(this.coords.p_to_real, this.options.to_min, this.options.to_max);\n this.coords.p_single_fake = this.convertToFakePercent(this.coords.p_single_real);\n this.coords.p_from_fake = this.convertToFakePercent(this.coords.p_from_real);\n this.coords.p_to_fake = this.convertToFakePercent(this.coords.p_to_real);\n this.target = null;\n break;\n\n case \"single\":\n if (this.options.from_fixed) {\n break;\n }\n\n this.coords.p_single_real = this.convertToRealPercent(handle_x);\n this.coords.p_single_real = this.calcWithStep(this.coords.p_single_real);\n this.coords.p_single_real = this.checkDiapason(this.coords.p_single_real, this.options.from_min, this.options.from_max);\n this.coords.p_single_fake = this.convertToFakePercent(this.coords.p_single_real);\n break;\n\n case \"from\":\n if (this.options.from_fixed) {\n break;\n }\n\n this.coords.p_from_real = this.convertToRealPercent(handle_x);\n this.coords.p_from_real = this.calcWithStep(this.coords.p_from_real);\n\n if (this.coords.p_from_real > this.coords.p_to_real) {\n this.coords.p_from_real = this.coords.p_to_real;\n }\n\n this.coords.p_from_real = this.checkDiapason(this.coords.p_from_real, this.options.from_min, this.options.from_max);\n this.coords.p_from_real = this.checkMinInterval(this.coords.p_from_real, this.coords.p_to_real, \"from\");\n this.coords.p_from_real = this.checkMaxInterval(this.coords.p_from_real, this.coords.p_to_real, \"from\");\n this.coords.p_from_fake = this.convertToFakePercent(this.coords.p_from_real);\n break;\n\n case \"to\":\n if (this.options.to_fixed) {\n break;\n }\n\n this.coords.p_to_real = this.convertToRealPercent(handle_x);\n this.coords.p_to_real = this.calcWithStep(this.coords.p_to_real);\n\n if (this.coords.p_to_real < this.coords.p_from_real) {\n this.coords.p_to_real = this.coords.p_from_real;\n }\n\n this.coords.p_to_real = this.checkDiapason(this.coords.p_to_real, this.options.to_min, this.options.to_max);\n this.coords.p_to_real = this.checkMinInterval(this.coords.p_to_real, this.coords.p_from_real, \"to\");\n this.coords.p_to_real = this.checkMaxInterval(this.coords.p_to_real, this.coords.p_from_real, \"to\");\n this.coords.p_to_fake = this.convertToFakePercent(this.coords.p_to_real);\n break;\n\n case \"both\":\n if (this.options.from_fixed || this.options.to_fixed) {\n break;\n }\n\n handle_x = this.toFixed(handle_x + this.coords.p_handle * 0.001);\n this.coords.p_from_real = this.convertToRealPercent(handle_x) - this.coords.p_gap_left;\n this.coords.p_from_real = this.calcWithStep(this.coords.p_from_real);\n this.coords.p_from_real = this.checkDiapason(this.coords.p_from_real, this.options.from_min, this.options.from_max);\n this.coords.p_from_real = this.checkMinInterval(this.coords.p_from_real, this.coords.p_to_real, \"from\");\n this.coords.p_from_fake = this.convertToFakePercent(this.coords.p_from_real);\n this.coords.p_to_real = this.convertToRealPercent(handle_x) + this.coords.p_gap_right;\n this.coords.p_to_real = this.calcWithStep(this.coords.p_to_real);\n this.coords.p_to_real = this.checkDiapason(this.coords.p_to_real, this.options.to_min, this.options.to_max);\n this.coords.p_to_real = this.checkMinInterval(this.coords.p_to_real, this.coords.p_from_real, \"to\");\n this.coords.p_to_fake = this.convertToFakePercent(this.coords.p_to_real);\n break;\n\n case \"both_one\":\n if (this.options.from_fixed || this.options.to_fixed) {\n break;\n }\n\n var real_x = this.convertToRealPercent(handle_x),\n from = this.result.from_percent,\n to = this.result.to_percent,\n full = to - from,\n half = full / 2,\n new_from = real_x - half,\n new_to = real_x + half;\n\n if (new_from < 0) {\n new_from = 0;\n new_to = new_from + full;\n }\n\n if (new_to > 100) {\n new_to = 100;\n new_from = new_to - full;\n }\n\n this.coords.p_from_real = this.calcWithStep(new_from);\n this.coords.p_from_real = this.checkDiapason(this.coords.p_from_real, this.options.from_min, this.options.from_max);\n this.coords.p_from_fake = this.convertToFakePercent(this.coords.p_from_real);\n this.coords.p_to_real = this.calcWithStep(new_to);\n this.coords.p_to_real = this.checkDiapason(this.coords.p_to_real, this.options.to_min, this.options.to_max);\n this.coords.p_to_fake = this.convertToFakePercent(this.coords.p_to_real);\n break;\n }\n\n if (this.options.type === \"single\") {\n this.coords.p_bar_x = this.coords.p_handle / 2;\n this.coords.p_bar_w = this.coords.p_single_fake;\n this.result.from_percent = this.coords.p_single_real;\n this.result.from = this.convertToValue(this.coords.p_single_real);\n this.result.from_pretty = this._prettify(this.result.from);\n\n if (this.options.values.length) {\n this.result.from_value = this.options.values[this.result.from];\n }\n } else {\n this.coords.p_bar_x = this.toFixed(this.coords.p_from_fake + this.coords.p_handle / 2);\n this.coords.p_bar_w = this.toFixed(this.coords.p_to_fake - this.coords.p_from_fake);\n this.result.from_percent = this.coords.p_from_real;\n this.result.from = this.convertToValue(this.coords.p_from_real);\n this.result.from_pretty = this._prettify(this.result.from);\n this.result.to_percent = this.coords.p_to_real;\n this.result.to = this.convertToValue(this.coords.p_to_real);\n this.result.to_pretty = this._prettify(this.result.to);\n\n if (this.options.values.length) {\n this.result.from_value = this.options.values[this.result.from];\n this.result.to_value = this.options.values[this.result.to];\n }\n }\n\n this.calcMinMax();\n this.calcLabels();\n },\n\n /**\n * calculates pointer X in percent\n */\n calcPointerPercent: function calcPointerPercent() {\n if (!this.coords.w_rs) {\n this.coords.p_pointer = 0;\n return;\n }\n\n if (this.coords.x_pointer < 0 || isNaN(this.coords.x_pointer)) {\n this.coords.x_pointer = 0;\n } else if (this.coords.x_pointer > this.coords.w_rs) {\n this.coords.x_pointer = this.coords.w_rs;\n }\n\n this.coords.p_pointer = this.toFixed(this.coords.x_pointer / this.coords.w_rs * 100);\n },\n convertToRealPercent: function convertToRealPercent(fake) {\n var full = 100 - this.coords.p_handle;\n return fake / full * 100;\n },\n convertToFakePercent: function convertToFakePercent(real) {\n var full = 100 - this.coords.p_handle;\n return real / 100 * full;\n },\n getHandleX: function getHandleX() {\n var max = 100 - this.coords.p_handle,\n x = this.toFixed(this.coords.p_pointer - this.coords.p_gap);\n\n if (x < 0) {\n x = 0;\n } else if (x > max) {\n x = max;\n }\n\n return x;\n },\n calcHandlePercent: function calcHandlePercent() {\n if (this.options.type === \"single\") {\n this.coords.w_handle = this.$cache.s_single.outerWidth(false);\n } else {\n this.coords.w_handle = this.$cache.s_from.outerWidth(false);\n }\n\n this.coords.p_handle = this.toFixed(this.coords.w_handle / this.coords.w_rs * 100);\n },\n\n /**\n * Find closest handle to pointer click\n *\n * @param real_x {Number}\n * @returns {String}\n */\n chooseHandle: function chooseHandle(real_x) {\n if (this.options.type === \"single\") {\n return \"single\";\n } else {\n var m_point = this.coords.p_from_real + (this.coords.p_to_real - this.coords.p_from_real) / 2;\n\n if (real_x >= m_point) {\n return this.options.to_fixed ? \"from\" : \"to\";\n } else {\n return this.options.from_fixed ? \"to\" : \"from\";\n }\n }\n },\n\n /**\n * Measure Min and Max labels width in percent\n */\n calcMinMax: function calcMinMax() {\n if (!this.coords.w_rs) {\n return;\n }\n\n this.labels.p_min = this.labels.w_min / this.coords.w_rs * 100;\n this.labels.p_max = this.labels.w_max / this.coords.w_rs * 100;\n },\n\n /**\n * Measure labels width and X in percent\n */\n calcLabels: function calcLabels() {\n if (!this.coords.w_rs || this.options.hide_from_to) {\n return;\n }\n\n if (this.options.type === \"single\") {\n this.labels.w_single = this.$cache.single.outerWidth(false);\n this.labels.p_single_fake = this.labels.w_single / this.coords.w_rs * 100;\n this.labels.p_single_left = this.coords.p_single_fake + this.coords.p_handle / 2 - this.labels.p_single_fake / 2;\n this.labels.p_single_left = this.checkEdges(this.labels.p_single_left, this.labels.p_single_fake);\n } else {\n this.labels.w_from = this.$cache.from.outerWidth(false);\n this.labels.p_from_fake = this.labels.w_from / this.coords.w_rs * 100;\n this.labels.p_from_left = this.coords.p_from_fake + this.coords.p_handle / 2 - this.labels.p_from_fake / 2;\n this.labels.p_from_left = this.toFixed(this.labels.p_from_left);\n this.labels.p_from_left = this.checkEdges(this.labels.p_from_left, this.labels.p_from_fake);\n this.labels.w_to = this.$cache.to.outerWidth(false);\n this.labels.p_to_fake = this.labels.w_to / this.coords.w_rs * 100;\n this.labels.p_to_left = this.coords.p_to_fake + this.coords.p_handle / 2 - this.labels.p_to_fake / 2;\n this.labels.p_to_left = this.toFixed(this.labels.p_to_left);\n this.labels.p_to_left = this.checkEdges(this.labels.p_to_left, this.labels.p_to_fake);\n this.labels.w_single = this.$cache.single.outerWidth(false);\n this.labels.p_single_fake = this.labels.w_single / this.coords.w_rs * 100;\n this.labels.p_single_left = (this.labels.p_from_left + this.labels.p_to_left + this.labels.p_to_fake) / 2 - this.labels.p_single_fake / 2;\n this.labels.p_single_left = this.toFixed(this.labels.p_single_left);\n this.labels.p_single_left = this.checkEdges(this.labels.p_single_left, this.labels.p_single_fake);\n }\n },\n // =============================================================================================================\n // Drawings\n\n /**\n * Main function called in request animation frame\n * to update everything\n */\n updateScene: function updateScene() {\n if (this.raf_id) {\n cancelAnimationFrame(this.raf_id);\n this.raf_id = null;\n }\n\n clearTimeout(this.update_tm);\n this.update_tm = null;\n\n if (!this.options) {\n return;\n }\n\n this.drawHandles();\n\n if (this.is_active) {\n this.raf_id = requestAnimationFrame(this.updateScene.bind(this));\n } else {\n this.update_tm = setTimeout(this.updateScene.bind(this), 300);\n }\n },\n\n /**\n * Draw handles\n */\n drawHandles: function drawHandles() {\n this.coords.w_rs = this.$cache.rs.outerWidth(false);\n\n if (!this.coords.w_rs) {\n return;\n }\n\n if (this.coords.w_rs !== this.coords.w_rs_old) {\n this.target = \"base\";\n this.is_resize = true;\n }\n\n if (this.coords.w_rs !== this.coords.w_rs_old || this.force_redraw) {\n this.setMinMax();\n this.calc(true);\n this.drawLabels();\n\n if (this.options.grid) {\n this.calcGridMargin();\n this.calcGridLabels();\n }\n\n this.force_redraw = true;\n this.coords.w_rs_old = this.coords.w_rs;\n this.drawShadow();\n }\n\n if (!this.coords.w_rs) {\n return;\n }\n\n if (!this.dragging && !this.force_redraw && !this.is_key) {\n return;\n }\n\n if (this.old_from !== this.result.from || this.old_to !== this.result.to || this.force_redraw || this.is_key) {\n this.drawLabels();\n this.$cache.bar[0].style.left = this.coords.p_bar_x + \"%\";\n this.$cache.bar[0].style.width = this.coords.p_bar_w + \"%\";\n\n if (this.options.type === \"single\") {\n this.$cache.bar[0].style.left = 0;\n this.$cache.bar[0].style.width = this.coords.p_bar_w + this.coords.p_bar_x + \"%\";\n this.$cache.s_single[0].style.left = this.coords.p_single_fake + \"%\";\n this.$cache.single[0].style.left = this.labels.p_single_left + \"%\";\n } else {\n this.$cache.s_from[0].style.left = this.coords.p_from_fake + \"%\";\n this.$cache.s_to[0].style.left = this.coords.p_to_fake + \"%\";\n\n if (this.old_from !== this.result.from || this.force_redraw) {\n this.$cache.from[0].style.left = this.labels.p_from_left + \"%\";\n }\n\n if (this.old_to !== this.result.to || this.force_redraw) {\n this.$cache.to[0].style.left = this.labels.p_to_left + \"%\";\n }\n\n this.$cache.single[0].style.left = this.labels.p_single_left + \"%\";\n }\n\n this.writeToInput();\n\n if ((this.old_from !== this.result.from || this.old_to !== this.result.to) && !this.is_start) {\n this.$cache.input.trigger(\"change\");\n this.$cache.input.trigger(\"input\");\n }\n\n this.old_from = this.result.from;\n this.old_to = this.result.to; // callbacks call\n\n if (!this.is_resize && !this.is_update && !this.is_start && !this.is_finish) {\n this.callOnChange();\n }\n\n if (this.is_key || this.is_click) {\n this.is_key = false;\n this.is_click = false;\n this.callOnFinish();\n }\n\n this.is_update = false;\n this.is_resize = false;\n this.is_finish = false;\n }\n\n this.is_start = false;\n this.is_key = false;\n this.is_click = false;\n this.force_redraw = false;\n },\n\n /**\n * Draw labels\n * measure labels collisions\n * collapse close labels\n */\n drawLabels: function drawLabels() {\n if (!this.options) {\n return;\n }\n\n var values_num = this.options.values.length;\n var p_values = this.options.p_values;\n var text_single;\n var text_from;\n var text_to;\n var from_pretty;\n var to_pretty;\n\n if (this.options.hide_from_to) {\n return;\n }\n\n if (this.options.type === \"single\") {\n if (values_num) {\n text_single = this.decorate(p_values[this.result.from]);\n this.$cache.single.html(text_single);\n } else {\n from_pretty = this._prettify(this.result.from);\n text_single = this.decorate(from_pretty, this.result.from);\n this.$cache.single.html(text_single);\n }\n\n this.calcLabels();\n\n if (this.labels.p_single_left < this.labels.p_min + 1) {\n this.$cache.min[0].style.visibility = \"hidden\";\n } else {\n this.$cache.min[0].style.visibility = \"visible\";\n }\n\n if (this.labels.p_single_left + this.labels.p_single_fake > 100 - this.labels.p_max - 1) {\n this.$cache.max[0].style.visibility = \"hidden\";\n } else {\n this.$cache.max[0].style.visibility = \"visible\";\n }\n } else {\n if (values_num) {\n if (this.options.decorate_both) {\n text_single = this.decorate(p_values[this.result.from]);\n text_single += this.options.values_separator;\n text_single += this.decorate(p_values[this.result.to]);\n } else {\n text_single = this.decorate(p_values[this.result.from] + this.options.values_separator + p_values[this.result.to]);\n }\n\n text_from = this.decorate(p_values[this.result.from]);\n text_to = this.decorate(p_values[this.result.to]);\n this.$cache.single.html(text_single);\n this.$cache.from.html(text_from);\n this.$cache.to.html(text_to);\n } else {\n from_pretty = this._prettify(this.result.from);\n to_pretty = this._prettify(this.result.to);\n\n if (this.options.decorate_both) {\n text_single = this.decorate(from_pretty, this.result.from);\n text_single += this.options.values_separator;\n text_single += this.decorate(to_pretty, this.result.to);\n } else {\n text_single = this.decorate(from_pretty + this.options.values_separator + to_pretty, this.result.to);\n }\n\n text_from = this.decorate(from_pretty, this.result.from);\n text_to = this.decorate(to_pretty, this.result.to);\n this.$cache.single.html(text_single);\n this.$cache.from.html(text_from);\n this.$cache.to.html(text_to);\n }\n\n this.calcLabels();\n var min = Math.min(this.labels.p_single_left, this.labels.p_from_left),\n single_left = this.labels.p_single_left + this.labels.p_single_fake,\n to_left = this.labels.p_to_left + this.labels.p_to_fake,\n max = Math.max(single_left, to_left);\n\n if (this.labels.p_from_left + this.labels.p_from_fake >= this.labels.p_to_left) {\n this.$cache.from[0].style.visibility = \"hidden\";\n this.$cache.to[0].style.visibility = \"hidden\";\n this.$cache.single[0].style.visibility = \"visible\";\n\n if (this.result.from === this.result.to) {\n if (this.target === \"from\") {\n this.$cache.from[0].style.visibility = \"visible\";\n } else if (this.target === \"to\") {\n this.$cache.to[0].style.visibility = \"visible\";\n } else if (!this.target) {\n this.$cache.from[0].style.visibility = \"visible\";\n }\n\n this.$cache.single[0].style.visibility = \"hidden\";\n max = to_left;\n } else {\n this.$cache.from[0].style.visibility = \"hidden\";\n this.$cache.to[0].style.visibility = \"hidden\";\n this.$cache.single[0].style.visibility = \"visible\";\n max = Math.max(single_left, to_left);\n }\n } else {\n this.$cache.from[0].style.visibility = \"visible\";\n this.$cache.to[0].style.visibility = \"visible\";\n this.$cache.single[0].style.visibility = \"hidden\";\n }\n\n if (min < this.labels.p_min + 1) {\n this.$cache.min[0].style.visibility = \"hidden\";\n } else {\n this.$cache.min[0].style.visibility = \"visible\";\n }\n\n if (max > 100 - this.labels.p_max - 1) {\n this.$cache.max[0].style.visibility = \"hidden\";\n } else {\n this.$cache.max[0].style.visibility = \"visible\";\n }\n }\n },\n\n /**\n * Draw shadow intervals\n */\n drawShadow: function drawShadow() {\n var o = this.options,\n c = this.$cache,\n is_from_min = typeof o.from_min === \"number\" && !isNaN(o.from_min),\n is_from_max = typeof o.from_max === \"number\" && !isNaN(o.from_max),\n is_to_min = typeof o.to_min === \"number\" && !isNaN(o.to_min),\n is_to_max = typeof o.to_max === \"number\" && !isNaN(o.to_max),\n from_min,\n from_max,\n to_min,\n to_max;\n\n if (o.type === \"single\") {\n if (o.from_shadow && (is_from_min || is_from_max)) {\n from_min = this.convertToPercent(is_from_min ? o.from_min : o.min);\n from_max = this.convertToPercent(is_from_max ? o.from_max : o.max) - from_min;\n from_min = this.toFixed(from_min - this.coords.p_handle / 100 * from_min);\n from_max = this.toFixed(from_max - this.coords.p_handle / 100 * from_max);\n from_min = from_min + this.coords.p_handle / 2;\n c.shad_single[0].style.display = \"block\";\n c.shad_single[0].style.left = from_min + \"%\";\n c.shad_single[0].style.width = from_max + \"%\";\n } else {\n c.shad_single[0].style.display = \"none\";\n }\n } else {\n if (o.from_shadow && (is_from_min || is_from_max)) {\n from_min = this.convertToPercent(is_from_min ? o.from_min : o.min);\n from_max = this.convertToPercent(is_from_max ? o.from_max : o.max) - from_min;\n from_min = this.toFixed(from_min - this.coords.p_handle / 100 * from_min);\n from_max = this.toFixed(from_max - this.coords.p_handle / 100 * from_max);\n from_min = from_min + this.coords.p_handle / 2;\n c.shad_from[0].style.display = \"block\";\n c.shad_from[0].style.left = from_min + \"%\";\n c.shad_from[0].style.width = from_max + \"%\";\n } else {\n c.shad_from[0].style.display = \"none\";\n }\n\n if (o.to_shadow && (is_to_min || is_to_max)) {\n to_min = this.convertToPercent(is_to_min ? o.to_min : o.min);\n to_max = this.convertToPercent(is_to_max ? o.to_max : o.max) - to_min;\n to_min = this.toFixed(to_min - this.coords.p_handle / 100 * to_min);\n to_max = this.toFixed(to_max - this.coords.p_handle / 100 * to_max);\n to_min = to_min + this.coords.p_handle / 2;\n c.shad_to[0].style.display = \"block\";\n c.shad_to[0].style.left = to_min + \"%\";\n c.shad_to[0].style.width = to_max + \"%\";\n } else {\n c.shad_to[0].style.display = \"none\";\n }\n }\n },\n\n /**\n * Write values to input element\n */\n writeToInput: function writeToInput() {\n if (this.options.type === \"single\") {\n if (this.options.values.length) {\n this.$cache.input.prop(\"value\", this.result.from_value);\n } else {\n this.$cache.input.prop(\"value\", this.result.from);\n }\n\n this.$cache.input.data(\"from\", this.result.from);\n } else {\n if (this.options.values.length) {\n this.$cache.input.prop(\"value\", this.result.from_value + this.options.input_values_separator + this.result.to_value);\n } else {\n this.$cache.input.prop(\"value\", this.result.from + this.options.input_values_separator + this.result.to);\n }\n\n this.$cache.input.data(\"from\", this.result.from);\n this.$cache.input.data(\"to\", this.result.to);\n }\n },\n // =============================================================================================================\n // Callbacks\n callOnStart: function callOnStart() {\n this.writeToInput();\n\n if (this.options.onStart && typeof this.options.onStart === \"function\") {\n if (this.options.scope) {\n this.options.onStart.call(this.options.scope, this.result);\n } else {\n this.options.onStart(this.result);\n }\n }\n },\n callOnChange: function callOnChange() {\n this.writeToInput();\n\n if (this.options.onChange && typeof this.options.onChange === \"function\") {\n if (this.options.scope) {\n this.options.onChange.call(this.options.scope, this.result);\n } else {\n this.options.onChange(this.result);\n }\n }\n },\n callOnFinish: function callOnFinish() {\n this.writeToInput();\n\n if (this.options.onFinish && typeof this.options.onFinish === \"function\") {\n if (this.options.scope) {\n this.options.onFinish.call(this.options.scope, this.result);\n } else {\n this.options.onFinish(this.result);\n }\n }\n },\n callOnUpdate: function callOnUpdate() {\n this.writeToInput();\n\n if (this.options.onUpdate && typeof this.options.onUpdate === \"function\") {\n if (this.options.scope) {\n this.options.onUpdate.call(this.options.scope, this.result);\n } else {\n this.options.onUpdate(this.result);\n }\n }\n },\n // =============================================================================================================\n // Service methods\n toggleInput: function toggleInput() {\n this.$cache.input.toggleClass(\"irs-hidden-input\");\n\n if (this.has_tab_index) {\n this.$cache.input.prop(\"tabindex\", -1);\n } else {\n this.$cache.input.removeProp(\"tabindex\");\n }\n\n this.has_tab_index = !this.has_tab_index;\n },\n\n /**\n * Convert real value to percent\n *\n * @param value {Number} X in real\n * @param no_min {boolean=} don't use min value\n * @returns {Number} X in percent\n */\n convertToPercent: function convertToPercent(value, no_min) {\n var diapason = this.options.max - this.options.min,\n one_percent = diapason / 100,\n val,\n percent;\n\n if (!diapason) {\n this.no_diapason = true;\n return 0;\n }\n\n if (no_min) {\n val = value;\n } else {\n val = value - this.options.min;\n }\n\n percent = val / one_percent;\n return this.toFixed(percent);\n },\n\n /**\n * Convert percent to real values\n *\n * @param percent {Number} X in percent\n * @returns {Number} X in real\n */\n convertToValue: function convertToValue(percent) {\n var min = this.options.min,\n max = this.options.max,\n min_decimals = min.toString().split(\".\")[1],\n max_decimals = max.toString().split(\".\")[1],\n min_length,\n max_length,\n avg_decimals = 0,\n abs = 0;\n\n if (percent === 0) {\n return this.options.min;\n }\n\n if (percent === 100) {\n return this.options.max;\n }\n\n if (min_decimals) {\n min_length = min_decimals.length;\n avg_decimals = min_length;\n }\n\n if (max_decimals) {\n max_length = max_decimals.length;\n avg_decimals = max_length;\n }\n\n if (min_length && max_length) {\n avg_decimals = min_length >= max_length ? min_length : max_length;\n }\n\n if (min < 0) {\n abs = Math.abs(min);\n min = +(min + abs).toFixed(avg_decimals);\n max = +(max + abs).toFixed(avg_decimals);\n }\n\n var number = (max - min) / 100 * percent + min,\n string = this.options.step.toString().split(\".\")[1],\n result;\n\n if (string) {\n number = +number.toFixed(string.length);\n } else {\n number = number / this.options.step;\n number = number * this.options.step;\n number = +number.toFixed(0);\n }\n\n if (abs) {\n number -= abs;\n }\n\n if (string) {\n result = +number.toFixed(string.length);\n } else {\n result = this.toFixed(number);\n }\n\n if (result < this.options.min) {\n result = this.options.min;\n } else if (result > this.options.max) {\n result = this.options.max;\n }\n\n return result;\n },\n\n /**\n * Round percent value with step\n *\n * @param percent {Number}\n * @returns percent {Number} rounded\n */\n calcWithStep: function calcWithStep(percent) {\n var rounded = Math.round(percent / this.coords.p_step) * this.coords.p_step;\n\n if (rounded > 100) {\n rounded = 100;\n }\n\n if (percent === 100) {\n rounded = 100;\n }\n\n return this.toFixed(rounded);\n },\n checkMinInterval: function checkMinInterval(p_current, p_next, type) {\n var o = this.options,\n current,\n next;\n\n if (!o.min_interval) {\n return p_current;\n }\n\n current = this.convertToValue(p_current);\n next = this.convertToValue(p_next);\n\n if (type === \"from\") {\n if (next - current < o.min_interval) {\n current = next - o.min_interval;\n }\n } else {\n if (current - next < o.min_interval) {\n current = next + o.min_interval;\n }\n }\n\n return this.convertToPercent(current);\n },\n checkMaxInterval: function checkMaxInterval(p_current, p_next, type) {\n var o = this.options,\n current,\n next;\n\n if (!o.max_interval) {\n return p_current;\n }\n\n current = this.convertToValue(p_current);\n next = this.convertToValue(p_next);\n\n if (type === \"from\") {\n if (next - current > o.max_interval) {\n current = next - o.max_interval;\n }\n } else {\n if (current - next > o.max_interval) {\n current = next + o.max_interval;\n }\n }\n\n return this.convertToPercent(current);\n },\n checkDiapason: function checkDiapason(p_num, min, max) {\n var num = this.convertToValue(p_num),\n o = this.options;\n\n if (typeof min !== \"number\") {\n min = o.min;\n }\n\n if (typeof max !== \"number\") {\n max = o.max;\n }\n\n if (num < min) {\n num = min;\n }\n\n if (num > max) {\n num = max;\n }\n\n return this.convertToPercent(num);\n },\n toFixed: function toFixed(num) {\n num = num.toFixed(20);\n return +num;\n },\n _prettify: function _prettify(num) {\n if (!this.options.prettify_enabled) {\n return num;\n }\n\n if (this.options.prettify && typeof this.options.prettify === \"function\") {\n return this.options.prettify(num);\n } else {\n return this.prettify(num);\n }\n },\n prettify: function prettify(num) {\n var n = num.toString();\n return n.replace(/(\\d{1,3}(?=(?:\\d\\d\\d)+(?!\\d)))/g, \"$1\" + this.options.prettify_separator);\n },\n checkEdges: function checkEdges(left, width) {\n if (!this.options.force_edges) {\n return this.toFixed(left);\n }\n\n if (left < 0) {\n left = 0;\n } else if (left > 100 - width) {\n left = 100 - width;\n }\n\n return this.toFixed(left);\n },\n validate: function validate() {\n var o = this.options,\n r = this.result,\n v = o.values,\n vl = v.length,\n value,\n i;\n if (typeof o.min === \"string\") o.min = +o.min;\n if (typeof o.max === \"string\") o.max = +o.max;\n if (typeof o.from === \"string\") o.from = +o.from;\n if (typeof o.to === \"string\") o.to = +o.to;\n if (typeof o.step === \"string\") o.step = +o.step;\n if (typeof o.from_min === \"string\") o.from_min = +o.from_min;\n if (typeof o.from_max === \"string\") o.from_max = +o.from_max;\n if (typeof o.to_min === \"string\") o.to_min = +o.to_min;\n if (typeof o.to_max === \"string\") o.to_max = +o.to_max;\n if (typeof o.grid_num === \"string\") o.grid_num = +o.grid_num;\n\n if (o.max < o.min) {\n o.max = o.min;\n }\n\n if (vl) {\n o.p_values = [];\n o.min = 0;\n o.max = vl - 1;\n o.step = 1;\n o.grid_num = o.max;\n o.grid_snap = true;\n\n for (i = 0; i < vl; i++) {\n value = +v[i];\n\n if (!isNaN(value)) {\n v[i] = value;\n value = this._prettify(value);\n } else {\n value = v[i];\n }\n\n o.p_values.push(value);\n }\n }\n\n if (typeof o.from !== \"number\" || isNaN(o.from)) {\n o.from = o.min;\n }\n\n if (typeof o.to !== \"number\" || isNaN(o.to)) {\n o.to = o.max;\n }\n\n if (o.type === \"single\") {\n if (o.from < o.min) o.from = o.min;\n if (o.from > o.max) o.from = o.max;\n } else {\n if (o.from < o.min) o.from = o.min;\n if (o.from > o.max) o.from = o.max;\n if (o.to < o.min) o.to = o.min;\n if (o.to > o.max) o.to = o.max;\n\n if (this.update_check.from) {\n if (this.update_check.from !== o.from) {\n if (o.from > o.to) o.from = o.to;\n }\n\n if (this.update_check.to !== o.to) {\n if (o.to < o.from) o.to = o.from;\n }\n }\n\n if (o.from > o.to) o.from = o.to;\n if (o.to < o.from) o.to = o.from;\n }\n\n if (typeof o.step !== \"number\" || isNaN(o.step) || !o.step || o.step < 0) {\n o.step = 1;\n }\n\n if (typeof o.from_min === \"number\" && o.from < o.from_min) {\n o.from = o.from_min;\n }\n\n if (typeof o.from_max === \"number\" && o.from > o.from_max) {\n o.from = o.from_max;\n }\n\n if (typeof o.to_min === \"number\" && o.to < o.to_min) {\n o.to = o.to_min;\n }\n\n if (typeof o.to_max === \"number\" && o.from > o.to_max) {\n o.to = o.to_max;\n }\n\n if (r) {\n if (r.min !== o.min) {\n r.min = o.min;\n }\n\n if (r.max !== o.max) {\n r.max = o.max;\n }\n\n if (r.from < r.min || r.from > r.max) {\n r.from = o.from;\n }\n\n if (r.to < r.min || r.to > r.max) {\n r.to = o.to;\n }\n }\n\n if (typeof o.min_interval !== \"number\" || isNaN(o.min_interval) || !o.min_interval || o.min_interval < 0) {\n o.min_interval = 0;\n }\n\n if (typeof o.max_interval !== \"number\" || isNaN(o.max_interval) || !o.max_interval || o.max_interval < 0) {\n o.max_interval = 0;\n }\n\n if (o.min_interval && o.min_interval > o.max - o.min) {\n o.min_interval = o.max - o.min;\n }\n\n if (o.max_interval && o.max_interval > o.max - o.min) {\n o.max_interval = o.max - o.min;\n }\n },\n decorate: function decorate(num, original) {\n var decorated = \"\",\n o = this.options;\n\n if (o.prefix) {\n decorated += o.prefix;\n }\n\n decorated += num;\n\n if (o.max_postfix) {\n if (o.values.length && num === o.p_values[o.max]) {\n decorated += o.max_postfix;\n\n if (o.postfix) {\n decorated += \" \";\n }\n } else if (original === o.max) {\n decorated += o.max_postfix;\n\n if (o.postfix) {\n decorated += \" \";\n }\n }\n }\n\n if (o.postfix) {\n decorated += o.postfix;\n }\n\n return decorated;\n },\n updateFrom: function updateFrom() {\n this.result.from = this.options.from;\n this.result.from_percent = this.convertToPercent(this.result.from);\n this.result.from_pretty = this._prettify(this.result.from);\n\n if (this.options.values) {\n this.result.from_value = this.options.values[this.result.from];\n }\n },\n updateTo: function updateTo() {\n this.result.to = this.options.to;\n this.result.to_percent = this.convertToPercent(this.result.to);\n this.result.to_pretty = this._prettify(this.result.to);\n\n if (this.options.values) {\n this.result.to_value = this.options.values[this.result.to];\n }\n },\n updateResult: function updateResult() {\n this.result.min = this.options.min;\n this.result.max = this.options.max;\n this.updateFrom();\n this.updateTo();\n },\n // =============================================================================================================\n // Grid\n appendGrid: function appendGrid() {\n if (!this.options.grid) {\n return;\n }\n\n var o = this.options,\n i,\n z,\n total = o.max - o.min,\n big_num = o.grid_num,\n big_p = 0,\n big_w = 0,\n small_max = 4,\n local_small_max,\n small_p,\n small_w = 0,\n result,\n html = '';\n this.calcGridMargin();\n\n if (o.grid_snap) {\n big_num = total / o.step;\n }\n\n if (big_num > 50) big_num = 50;\n big_p = this.toFixed(100 / big_num);\n\n if (big_num > 4) {\n small_max = 3;\n }\n\n if (big_num > 7) {\n small_max = 2;\n }\n\n if (big_num > 14) {\n small_max = 1;\n }\n\n if (big_num > 28) {\n small_max = 0;\n }\n\n for (i = 0; i < big_num + 1; i++) {\n local_small_max = small_max;\n big_w = this.toFixed(big_p * i);\n\n if (big_w > 100) {\n big_w = 100;\n }\n\n this.coords.big[i] = big_w;\n small_p = (big_w - big_p * (i - 1)) / (local_small_max + 1);\n\n for (z = 1; z <= local_small_max; z++) {\n if (big_w === 0) {\n break;\n }\n\n small_w = this.toFixed(big_w - small_p * z);\n html += '<span class=\"irs-grid-pol small\" style=\"left: ' + small_w + '%\"></span>';\n }\n\n html += '<span class=\"irs-grid-pol\" style=\"left: ' + big_w + '%\"></span>';\n result = this.convertToValue(big_w);\n\n if (o.values.length) {\n result = o.p_values[result];\n } else {\n result = this._prettify(result);\n }\n\n html += '<span class=\"irs-grid-text js-grid-text-' + i + '\" style=\"left: ' + big_w + '%\">' + result + '</span>';\n }\n\n this.coords.big_num = Math.ceil(big_num + 1);\n this.$cache.cont.addClass(\"irs-with-grid\");\n this.$cache.grid.html(html);\n this.cacheGridLabels();\n },\n cacheGridLabels: function cacheGridLabels() {\n var $label,\n i,\n num = this.coords.big_num;\n\n for (i = 0; i < num; i++) {\n $label = this.$cache.grid.find(\".js-grid-text-\" + i);\n this.$cache.grid_labels.push($label);\n }\n\n this.calcGridLabels();\n },\n calcGridLabels: function calcGridLabels() {\n var i,\n label,\n start = [],\n finish = [],\n num = this.coords.big_num;\n\n for (i = 0; i < num; i++) {\n this.coords.big_w[i] = this.$cache.grid_labels[i].outerWidth(false);\n this.coords.big_p[i] = this.toFixed(this.coords.big_w[i] / this.coords.w_rs * 100);\n this.coords.big_x[i] = this.toFixed(this.coords.big_p[i] / 2);\n start[i] = this.toFixed(this.coords.big[i] - this.coords.big_x[i]);\n finish[i] = this.toFixed(start[i] + this.coords.big_p[i]);\n }\n\n if (this.options.force_edges) {\n if (start[0] < -this.coords.grid_gap) {\n start[0] = -this.coords.grid_gap;\n finish[0] = this.toFixed(start[0] + this.coords.big_p[0]);\n this.coords.big_x[0] = this.coords.grid_gap;\n }\n\n if (finish[num - 1] > 100 + this.coords.grid_gap) {\n finish[num - 1] = 100 + this.coords.grid_gap;\n start[num - 1] = this.toFixed(finish[num - 1] - this.coords.big_p[num - 1]);\n this.coords.big_x[num - 1] = this.toFixed(this.coords.big_p[num - 1] - this.coords.grid_gap);\n }\n }\n\n this.calcGridCollision(2, start, finish);\n this.calcGridCollision(4, start, finish);\n\n for (i = 0; i < num; i++) {\n label = this.$cache.grid_labels[i][0];\n\n if (this.coords.big_x[i] !== Number.POSITIVE_INFINITY) {\n label.style.marginLeft = -this.coords.big_x[i] + \"%\";\n }\n }\n },\n // Collisions Calc Beta\n // TODO: Refactor then have plenty of time\n calcGridCollision: function calcGridCollision(step, start, finish) {\n var i,\n next_i,\n label,\n num = this.coords.big_num;\n\n for (i = 0; i < num; i += step) {\n next_i = i + step / 2;\n\n if (next_i >= num) {\n break;\n }\n\n label = this.$cache.grid_labels[next_i][0];\n\n if (finish[i] <= start[next_i]) {\n label.style.visibility = \"visible\";\n } else {\n label.style.visibility = \"hidden\";\n }\n }\n },\n calcGridMargin: function calcGridMargin() {\n if (!this.options.grid_margin) {\n return;\n }\n\n this.coords.w_rs = this.$cache.rs.outerWidth(false);\n\n if (!this.coords.w_rs) {\n return;\n }\n\n if (this.options.type === \"single\") {\n this.coords.w_handle = this.$cache.s_single.outerWidth(false);\n } else {\n this.coords.w_handle = this.$cache.s_from.outerWidth(false);\n }\n\n this.coords.p_handle = this.toFixed(this.coords.w_handle / this.coords.w_rs * 100);\n this.coords.grid_gap = this.toFixed(this.coords.p_handle / 2 - 0.1);\n this.$cache.grid[0].style.width = this.toFixed(100 - this.coords.p_handle) + \"%\";\n this.$cache.grid[0].style.left = this.coords.grid_gap + \"%\";\n },\n // =============================================================================================================\n // Public methods\n update: function update(options) {\n if (!this.input) {\n return;\n }\n\n this.is_update = true;\n this.options.from = this.result.from;\n this.options.to = this.result.to;\n this.update_check.from = this.result.from;\n this.update_check.to = this.result.to;\n this.options = $.extend(this.options, options);\n this.validate();\n this.updateResult(options);\n this.toggleInput();\n this.remove();\n this.init(true);\n },\n reset: function reset() {\n if (!this.input) {\n return;\n }\n\n this.updateResult();\n this.update();\n },\n destroy: function destroy() {\n if (!this.input) {\n return;\n }\n\n this.toggleInput();\n this.$cache.input.prop(\"readonly\", false);\n $.data(this.input, \"ionRangeSlider\", null);\n this.remove();\n this.input = null;\n this.options = null;\n }\n };\n\n $.fn.ionRangeSlider = function (options) {\n return this.each(function () {\n if (!$.data(this, \"ionRangeSlider\")) {\n $.data(this, \"ionRangeSlider\", new IonRangeSlider(this, options, plugin_count++));\n }\n });\n }; // =================================================================================================================\n // http://paulirish.com/2011/requestanimationframe-for-smart-animating/\n // http://my.opera.com/emoller/blog/2011/12/20/requestanimationframe-for-smart-er-animating\n // requestAnimationFrame polyfill by Erik Möller. fixes from Paul Irish and Tino Zijdel\n // MIT license\n\n\n (function () {\n var lastTime = 0;\n var vendors = ['ms', 'moz', 'webkit', 'o'];\n\n for (var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {\n window.requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame'];\n window.cancelAnimationFrame = window[vendors[x] + 'CancelAnimationFrame'] || window[vendors[x] + 'CancelRequestAnimationFrame'];\n }\n\n if (!window.requestAnimationFrame) window.requestAnimationFrame = function (callback, element) {\n var currTime = new Date().getTime();\n var timeToCall = Math.max(0, 16 - (currTime - lastTime));\n var id = window.setTimeout(function () {\n callback(currTime + timeToCall);\n }, timeToCall);\n lastTime = currTime + timeToCall;\n return id;\n };\n if (!window.cancelAnimationFrame) window.cancelAnimationFrame = function (id) {\n clearTimeout(id);\n };\n })();\n});","$(function() {\n // Note: In future store this in local storage\n var ProductComparison = [];\n\n $('[data-js-compare-add]').on('change', function(e) {\n updateSelectedProducts(e.target);\n $('[data-js-compare]').toggleClass('is-hidden', no_selection());\n $('[data-js-compare-trigger]').attr('disabled', nothing_to_compare());\n $('[data-js-compare-count]').text(ProductComparison.length);\n });\n\n $('[data-js-compare-trigger]').on('click', function(e) {\n var payload = {\n category: e.target.getAttribute('data-js-compare-trigger'),\n ids: ProductComparison\n }\n\n $.get('/product_comparison', payload, function(response) {\n $('[data-js-screen]').removeClass('is-hidden')\n $('[data-js-screen-body]').html(response);\n });\n });\n\n $('[data-js-compare-cancel]').on('click', function() {\n ProductComparison = [];\n $('[data-js-compare]').addClass('is-hidden');\n $('[data-js-compare-add]').prop('checked', false);\n });\n\n $('[data-js-screen-close]').on('click', function() {\n $('[data-js-screen]').addClass('is-hidden');\n });\n\n function updateSelectedProducts(product) {\n // Add product to state\n if (product.checked) {\n ProductComparison.push(product.id);\n return;\n }\n\n // Remove product from state\n ProductComparison = ProductComparison.filter(function(productId) {\n return productId !== product.id;\n });\n }\n\n function no_selection() {\n return ProductComparison.length < 1;\n }\n\n function nothing_to_compare() {\n return ProductComparison.length < 2;\n }\n});\n","import 'hammerjs';\n\nwindow.StoreConnectUI = window.StoreConnectUI || {};\n\nwindow.StoreConnectUI.ProductGallery = (function () {\n let isZoomed = false,\n lastPosX = 0,\n lastPosY = 0,\n hammer;\n\n const drag = (e, styleProps) => {\n const x = e.deltaX + lastPosX,\n y = e.deltaY + lastPosY;\n\n // Release the drag\n if (e.isFinal) {\n e.target.classList.remove('is-dragging');\n e.target.setAttribute('style', styleProps);\n return;\n }\n\n // Move image position with cursor/touch position\n e.target.classList.add('is-dragging');\n e.target.setAttribute('style',\n 'transition: none;' +\n 'transform: translateX(calc(-50% + ' + x + 'px)) translateY(calc(-50% + ' + y + 'px));'\n );\n }\n\n function init(imageUrl) {\n const image = document.querySelector('[data-product-gallery-image]');\n const closeButton = document.querySelector('[data-product-gallery-close]');\n const viewportProps = document.querySelector('meta[name=viewport]').getAttribute('content');\n\n hammer = new Hammer(image);\n\n // Show the gallery modal and disable scrolling and viewport zooming\n document.querySelector('[data-product-gallery]').classList.add('is-active');\n document.querySelector('body').classList.add('is-not-scrollable');\n document.querySelector('meta[name=viewport]').setAttribute('content', `${viewportProps}, user-scalable=0`);\n // Load the 'huge' image size\n image.setAttribute('src', imageUrl);\n // The modal can be closed by swiping down or clicking the close button\n closeButton.addEventListener('click', close);\n // Toggle zoom mode on click\n image.addEventListener('click', toggleZoom);\n }\n\n function close() {\n // Reset zoom, close the gallery modal, and restore <body> scrolling\n exitZoom();\n document.querySelector('[data-product-gallery]').classList.remove('is-active');\n document.querySelector('body').classList.remove('is-not-scrollable');\n }\n\n function enterZoom() {\n const image = document.querySelector('[data-product-gallery-image'),\n imageStyleProps = image.getAttribute('style');\n\n isZoomed = true;\n hammer.on('pan', (e) => drag(e, imageStyleProps));\n image.classList.add('is-zoomed');\n }\n\n function exitZoom() {\n isZoomed = false;\n hammer.off('pan');\n document.querySelector('[data-product-gallery-image').classList.remove('is-zoomed');\n }\n\n function toggleZoom() {\n isZoomed ? exitZoom() : enterZoom();\n }\n\n return {\n init: (imageUrl) => init(imageUrl),\n }\n}());\n\n// Deprecated:\n// Projects using webpacker should import functions\n// directly as ES6 modules.\nconst ProductGallery = window.StoreConnectUI.ProductGallery;\n","$(function() {\n // TODO: Remove implementation\n\n function toggleActiveState () {\n var target = $(this).data('jsToggleActiveTrigger');\n\n if (target) {\n $('[data-js-toggle-active-target=' + target + ']').toggleClass('is-active');\n }\n }\n\n $('input[type=checkbox][data-js-toggle-active-trigger]').change(toggleActiveState);\n $('[data-js-toggle-active-trigger]:not(input[type=checkbox])').click(toggleActiveState);\n});\n","document.addEventListener('DOMContentLoaded', function() {\n const triggers = document.querySelectorAll('[data-toggle-visibility]');\n\n [...triggers].map(trigger => trigger.addEventListener('click', toggle));\n});\n\nfunction toggle(event) {\n const id = event.currentTarget.getAttribute('data-toggle-visibility');\n const targets = document.querySelectorAll('[data-toggle-visibility-target=' + id + ']');\n\n [...targets].map(target => target.classList.toggle('is-hidden'));\n}\n","const Cart = (() => {\n const TEASE_INTERVAL = 7000;\n\n $(function() {\n if (document.querySelector('[data-cart-tease]')) {\n Cart.tease();\n }\n });\n\n function closeCartIfClicked(e) {\n let target = e.target,\n parents = [];\n\n while (target) {\n parents.unshift(target);\n target = target.parentElement;\n }\n\n parents.map(parent => {\n if (!parent.hasAttribute('data-nav=cart')) {\n Cart.close();\n }\n });\n }\n\n return {\n open: () => {\n const cart = document.querySelector('[data-nav=cart]');\n if (cart) { cart.classList.add('is-active'); }\n },\n\n close: () => {\n document.querySelector('body').removeEventListener('click', closeCartIfClicked);\n const cart = document.querySelector('[data-nav=cart]');\n if (cart) { cart.classList.remove('is-active'); }\n },\n\n tease: () => {\n const cart = document.querySelector('[data-nav=cart]');\n\n if (cart) {\n Cart.open();\n setTimeout(() => cart.classList.remove('is-active'), TEASE_INTERVAL);\n }\n document.querySelector('body').addEventListener('click', closeCartIfClicked);\n }\n }\n})();\n","var win = window;\nexport var raf = win.requestAnimationFrame || win.webkitRequestAnimationFrame || win.mozRequestAnimationFrame || win.msRequestAnimationFrame || function (cb) {\n return setTimeout(cb, 16);\n};","var win = window;\nexport var caf = win.cancelAnimationFrame || win.mozCancelAnimationFrame || function (id) {\n clearTimeout(id);\n};","export function extend() {\n var obj,\n name,\n copy,\n target = arguments[0] || {},\n i = 1,\n length = arguments.length;\n\n for (; i < length; i++) {\n if ((obj = arguments[i]) !== null) {\n for (name in obj) {\n copy = obj[name];\n\n if (target === copy) {\n continue;\n } else if (copy !== undefined) {\n target[name] = copy;\n }\n }\n }\n }\n\n return target;\n}","export function checkStorageValue(value) {\n return ['true', 'false'].indexOf(value) >= 0 ? JSON.parse(value) : value;\n}","export function setLocalStorage(storage, key, value, access) {\n if (access) {\n try {\n storage.setItem(key, value);\n } catch (e) {}\n }\n\n return value;\n}","export function getBody() {\n var doc = document,\n body = doc.body;\n\n if (!body) {\n body = doc.createElement('body');\n body.fake = true;\n }\n\n return body;\n}","export var docElement = document.documentElement;","import { docElement } from './docElement.js';\nexport function setFakeBody(body) {\n var docOverflow = '';\n\n if (body.fake) {\n docOverflow = docElement.style.overflow; //avoid crashing IE8, if background image is used\n\n body.style.background = ''; //Safari 5.13/5.1.4 OSX stops loading if ::-webkit-scrollbar is used and scrollbars are visible\n\n body.style.overflow = docElement.style.overflow = 'hidden';\n docElement.appendChild(body);\n }\n\n return docOverflow;\n}","import { docElement } from './docElement.js';\nexport function resetFakeBody(body, docOverflow) {\n if (body.fake) {\n body.remove();\n docElement.style.overflow = docOverflow; // Trigger layout so kinetic scrolling isn't disabled in iOS6+\n // eslint-disable-next-line\n\n docElement.offsetHeight;\n }\n}","// cross browsers addRule method\nimport { raf } from './raf.js';\nexport function addCSSRule(sheet, selector, rules, index) {\n // return raf(function() {\n 'insertRule' in sheet ? sheet.insertRule(selector + '{' + rules + '}', index) : sheet.addRule(selector, rules, index); // });\n}","export function getCssRulesLength(sheet) {\n var rule = 'insertRule' in sheet ? sheet.cssRules : sheet.rules;\n return rule.length;\n}","// https://toddmotto.com/ditch-the-array-foreach-call-nodelist-hack/\nexport function forEach(arr, callback, scope) {\n for (var i = 0, l = arr.length; i < l; i++) {\n callback.call(scope, arr[i], i);\n }\n}","export var classListSupport = ('classList' in document.createElement('_'));","import { classListSupport } from './classListSupport.js';\nvar hasClass = classListSupport ? function (el, str) {\n return el.classList.contains(str);\n} : function (el, str) {\n return el.className.indexOf(str) >= 0;\n};\nexport { classListSupport, hasClass };","import { classListSupport, hasClass } from './hasClass.js';\nvar addClass = classListSupport ? function (el, str) {\n if (!hasClass(el, str)) {\n el.classList.add(str);\n }\n} : function (el, str) {\n if (!hasClass(el, str)) {\n el.className += ' ' + str;\n }\n};\nexport { addClass };","import { classListSupport, hasClass } from './hasClass.js';\nvar removeClass = classListSupport ? function (el, str) {\n if (hasClass(el, str)) {\n el.classList.remove(str);\n }\n} : function (el, str) {\n if (hasClass(el, str)) {\n el.className = el.className.replace(str, '');\n }\n};\nexport { removeClass };","export function hasAttr(el, attr) {\n return el.hasAttribute(attr);\n}","export function getAttr(el, attr) {\n return el.getAttribute(attr);\n}","export function isNodeList(el) {\n // Only NodeList has the \"item()\" function\n return typeof el.item !== \"undefined\";\n}","import { isNodeList } from \"./isNodeList.js\";\nexport function setAttrs(els, attrs) {\n els = isNodeList(els) || els instanceof Array ? els : [els];\n\n if (Object.prototype.toString.call(attrs) !== '[object Object]') {\n return;\n }\n\n for (var i = els.length; i--;) {\n for (var key in attrs) {\n els[i].setAttribute(key, attrs[key]);\n }\n }\n}","import { isNodeList } from \"./isNodeList.js\";\nexport function removeAttrs(els, attrs) {\n els = isNodeList(els) || els instanceof Array ? els : [els];\n attrs = attrs instanceof Array ? attrs : [attrs];\n var attrLength = attrs.length;\n\n for (var i = els.length; i--;) {\n for (var j = attrLength; j--;) {\n els[i].removeAttribute(attrs[j]);\n }\n }\n}","export function arrayFromNodeList(nl) {\n var arr = [];\n\n for (var i = 0, l = nl.length; i < l; i++) {\n arr.push(nl[i]);\n }\n\n return arr;\n}","export function hideElement(el, forceHide) {\n if (el.style.display !== 'none') {\n el.style.display = 'none';\n }\n}","export function showElement(el, forceHide) {\n if (el.style.display === 'none') {\n el.style.display = '';\n }\n}","export function isVisible(el) {\n return window.getComputedStyle(el).display !== 'none';\n}","export function whichProperty(props) {\n if (typeof props === 'string') {\n var arr = [props],\n Props = props.charAt(0).toUpperCase() + props.substr(1),\n prefixes = ['Webkit', 'Moz', 'ms', 'O'];\n prefixes.forEach(function (prefix) {\n if (prefix !== 'ms' || props === 'transform') {\n arr.push(prefix + Props);\n }\n });\n props = arr;\n }\n\n var el = document.createElement('fakeelement'),\n len = props.length;\n\n for (var i = 0; i < props.length; i++) {\n var prop = props[i];\n\n if (el.style[prop] !== undefined) {\n return prop;\n }\n }\n\n return false; // explicit for ie9-\n}","// get transitionend, animationend based on transitionDuration\n// @propin: string\n// @propOut: string, first-letter uppercase\n// Usage: getEndProperty('WebkitTransitionDuration', 'Transition') => webkitTransitionEnd\nexport function getEndProperty(propIn, propOut) {\n var endProp = false;\n\n if (/^Webkit/.test(propIn)) {\n endProp = 'webkit' + propOut + 'End';\n } else if (/^O/.test(propIn)) {\n endProp = 'o' + propOut + 'End';\n } else if (propIn) {\n endProp = propOut.toLowerCase() + 'end';\n }\n\n return endProp;\n}","// Test via a getter in the options object to see if the passive property is accessed\nvar supportsPassive = false;\n\ntry {\n var opts = Object.defineProperty({}, 'passive', {\n get: function get() {\n supportsPassive = true;\n }\n });\n window.addEventListener(\"test\", null, opts);\n} catch (e) {}\n\nexport var passiveOption = supportsPassive ? {\n passive: true\n} : false;","import { passiveOption } from './passiveOption.js';\nexport function addEvents(el, obj, preventScrolling) {\n for (var prop in obj) {\n var option = ['touchstart', 'touchmove'].indexOf(prop) >= 0 && !preventScrolling ? passiveOption : false;\n el.addEventListener(prop, obj[prop], option);\n }\n}","import { passiveOption } from './passiveOption.js';\nexport function removeEvents(el, obj) {\n for (var prop in obj) {\n var option = ['touchstart', 'touchmove'].indexOf(prop) >= 0 ? passiveOption : false;\n el.removeEventListener(prop, obj[prop], option);\n }\n}","export function Events() {\n return {\n topics: {},\n on: function on(eventName, fn) {\n this.topics[eventName] = this.topics[eventName] || [];\n this.topics[eventName].push(fn);\n },\n off: function off(eventName, fn) {\n if (this.topics[eventName]) {\n for (var i = 0; i < this.topics[eventName].length; i++) {\n if (this.topics[eventName][i] === fn) {\n this.topics[eventName].splice(i, 1);\n break;\n }\n }\n }\n },\n emit: function emit(eventName, data) {\n data.type = eventName;\n\n if (this.topics[eventName]) {\n this.topics[eventName].forEach(function (fn) {\n fn(data, eventName);\n });\n }\n }\n };\n}\n;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n// Object.keys\nif (!Object.keys) {\n Object.keys = function (object) {\n var keys = [];\n\n for (var name in object) {\n if (Object.prototype.hasOwnProperty.call(object, name)) {\n keys.push(name);\n }\n }\n\n return keys;\n };\n} // ChildNode.remove\n\n\nif (!(\"remove\" in Element.prototype)) {\n Element.prototype.remove = function () {\n if (this.parentNode) {\n this.parentNode.removeChild(this);\n }\n };\n}\n\nimport { raf } from './helpers/raf.js';\nimport { caf } from './helpers/caf.js';\nimport { extend } from './helpers/extend.js';\nimport { checkStorageValue } from './helpers/checkStorageValue.js';\nimport { setLocalStorage } from './helpers/setLocalStorage.js';\nimport { getSlideId } from './helpers/getSlideId.js';\nimport { calc } from './helpers/calc.js';\nimport { percentageLayout } from './helpers/percentageLayout.js';\nimport { mediaquerySupport } from './helpers/mediaquerySupport.js';\nimport { createStyleSheet } from './helpers/createStyleSheet.js';\nimport { addCSSRule } from './helpers/addCSSRule.js';\nimport { removeCSSRule } from './helpers/removeCSSRule.js';\nimport { getCssRulesLength } from './helpers/getCssRulesLength.js';\nimport { toDegree } from './helpers/toDegree.js';\nimport { getTouchDirection } from './helpers/getTouchDirection.js';\nimport { forEach } from './helpers/forEach.js';\nimport { hasClass } from './helpers/hasClass.js';\nimport { addClass } from './helpers/addClass.js';\nimport { removeClass } from './helpers/removeClass.js';\nimport { hasAttr } from './helpers/hasAttr.js';\nimport { getAttr } from './helpers/getAttr.js';\nimport { setAttrs } from './helpers/setAttrs.js';\nimport { removeAttrs } from './helpers/removeAttrs.js';\nimport { arrayFromNodeList } from './helpers/arrayFromNodeList.js';\nimport { hideElement } from './helpers/hideElement.js';\nimport { showElement } from './helpers/showElement.js';\nimport { isVisible } from './helpers/isVisible.js';\nimport { whichProperty } from './helpers/whichProperty.js';\nimport { has3DTransforms } from './helpers/has3DTransforms.js';\nimport { getEndProperty } from './helpers/getEndProperty.js';\nimport { addEvents } from './helpers/addEvents.js';\nimport { removeEvents } from './helpers/removeEvents.js';\nimport { Events } from './helpers/events.js';\nimport { jsTransform } from './helpers/jsTransform.js';\nexport var tns = function tns(options) {\n options = extend({\n container: '.slider',\n mode: 'carousel',\n axis: 'horizontal',\n items: 1,\n gutter: 0,\n edgePadding: 0,\n fixedWidth: false,\n autoWidth: false,\n viewportMax: false,\n slideBy: 1,\n center: false,\n controls: true,\n controlsPosition: 'top',\n controlsText: ['prev', 'next'],\n controlsContainer: false,\n prevButton: false,\n nextButton: false,\n nav: true,\n navPosition: 'top',\n navContainer: false,\n navAsThumbnails: false,\n arrowKeys: false,\n speed: 300,\n autoplay: false,\n autoplayPosition: 'top',\n autoplayTimeout: 5000,\n autoplayDirection: 'forward',\n autoplayText: ['start', 'stop'],\n autoplayHoverPause: false,\n autoplayButton: false,\n autoplayButtonOutput: true,\n autoplayResetOnVisibility: true,\n animateIn: 'tns-fadeIn',\n animateOut: 'tns-fadeOut',\n animateNormal: 'tns-normal',\n animateDelay: false,\n loop: true,\n rewind: false,\n autoHeight: false,\n responsive: false,\n lazyload: false,\n lazyloadSelector: '.tns-lazy-img',\n touch: true,\n mouseDrag: false,\n swipeAngle: 15,\n nested: false,\n preventActionWhenRunning: false,\n preventScrollOnTouch: false,\n freezable: true,\n onInit: false,\n useLocalStorage: true,\n nonce: false\n }, options || {});\n var doc = document,\n win = window,\n KEYS = {\n ENTER: 13,\n SPACE: 32,\n LEFT: 37,\n RIGHT: 39\n },\n tnsStorage = {},\n localStorageAccess = options.useLocalStorage;\n\n if (localStorageAccess) {\n // check browser version and local storage access\n var browserInfo = navigator.userAgent;\n var uid = new Date();\n\n try {\n tnsStorage = win.localStorage;\n\n if (tnsStorage) {\n tnsStorage.setItem(uid, uid);\n localStorageAccess = tnsStorage.getItem(uid) == uid;\n tnsStorage.removeItem(uid);\n } else {\n localStorageAccess = false;\n }\n\n if (!localStorageAccess) {\n tnsStorage = {};\n }\n } catch (e) {\n localStorageAccess = false;\n }\n\n if (localStorageAccess) {\n // remove storage when browser version changes\n if (tnsStorage['tnsApp'] && tnsStorage['tnsApp'] !== browserInfo) {\n ['tC', 'tPL', 'tMQ', 'tTf', 't3D', 'tTDu', 'tTDe', 'tADu', 'tADe', 'tTE', 'tAE'].forEach(function (item) {\n tnsStorage.removeItem(item);\n });\n } // update browserInfo\n\n\n localStorage['tnsApp'] = browserInfo;\n }\n }\n\n var CALC = tnsStorage['tC'] ? checkStorageValue(tnsStorage['tC']) : setLocalStorage(tnsStorage, 'tC', calc(), localStorageAccess),\n PERCENTAGELAYOUT = tnsStorage['tPL'] ? checkStorageValue(tnsStorage['tPL']) : setLocalStorage(tnsStorage, 'tPL', percentageLayout(), localStorageAccess),\n CSSMQ = tnsStorage['tMQ'] ? checkStorageValue(tnsStorage['tMQ']) : setLocalStorage(tnsStorage, 'tMQ', mediaquerySupport(), localStorageAccess),\n TRANSFORM = tnsStorage['tTf'] ? checkStorageValue(tnsStorage['tTf']) : setLocalStorage(tnsStorage, 'tTf', whichProperty('transform'), localStorageAccess),\n HAS3DTRANSFORMS = tnsStorage['t3D'] ? checkStorageValue(tnsStorage['t3D']) : setLocalStorage(tnsStorage, 't3D', has3DTransforms(TRANSFORM), localStorageAccess),\n TRANSITIONDURATION = tnsStorage['tTDu'] ? checkStorageValue(tnsStorage['tTDu']) : setLocalStorage(tnsStorage, 'tTDu', whichProperty('transitionDuration'), localStorageAccess),\n TRANSITIONDELAY = tnsStorage['tTDe'] ? checkStorageValue(tnsStorage['tTDe']) : setLocalStorage(tnsStorage, 'tTDe', whichProperty('transitionDelay'), localStorageAccess),\n ANIMATIONDURATION = tnsStorage['tADu'] ? checkStorageValue(tnsStorage['tADu']) : setLocalStorage(tnsStorage, 'tADu', whichProperty('animationDuration'), localStorageAccess),\n ANIMATIONDELAY = tnsStorage['tADe'] ? checkStorageValue(tnsStorage['tADe']) : setLocalStorage(tnsStorage, 'tADe', whichProperty('animationDelay'), localStorageAccess),\n TRANSITIONEND = tnsStorage['tTE'] ? checkStorageValue(tnsStorage['tTE']) : setLocalStorage(tnsStorage, 'tTE', getEndProperty(TRANSITIONDURATION, 'Transition'), localStorageAccess),\n ANIMATIONEND = tnsStorage['tAE'] ? checkStorageValue(tnsStorage['tAE']) : setLocalStorage(tnsStorage, 'tAE', getEndProperty(ANIMATIONDURATION, 'Animation'), localStorageAccess); // get element nodes from selectors\n\n var supportConsoleWarn = win.console && typeof win.console.warn === \"function\",\n tnsList = ['container', 'controlsContainer', 'prevButton', 'nextButton', 'navContainer', 'autoplayButton'],\n optionsElements = {};\n tnsList.forEach(function (item) {\n if (typeof options[item] === 'string') {\n var str = options[item],\n el = doc.querySelector(str);\n optionsElements[item] = str;\n\n if (el && el.nodeName) {\n options[item] = el;\n } else {\n if (supportConsoleWarn) {\n console.warn('Can\\'t find', options[item]);\n }\n\n return;\n }\n }\n }); // make sure at least 1 slide\n\n if (options.container.children.length < 1) {\n if (supportConsoleWarn) {\n console.warn('No slides found in', options.container);\n }\n\n return;\n } // update options\n\n\n var responsive = options.responsive,\n nested = options.nested,\n carousel = options.mode === 'carousel' ? true : false;\n\n if (responsive) {\n // apply responsive[0] to options and remove it\n if (0 in responsive) {\n options = extend(options, responsive[0]);\n delete responsive[0];\n }\n\n var responsiveTem = {};\n\n for (var key in responsive) {\n var val = responsive[key]; // update responsive\n // from: 300: 2\n // to:\n // 300: {\n // items: 2\n // }\n\n val = typeof val === 'number' ? {\n items: val\n } : val;\n responsiveTem[key] = val;\n }\n\n responsive = responsiveTem;\n responsiveTem = null;\n } // update options\n\n\n function updateOptions(obj) {\n for (var key in obj) {\n if (!carousel) {\n if (key === 'slideBy') {\n obj[key] = 'page';\n }\n\n if (key === 'edgePadding') {\n obj[key] = false;\n }\n\n if (key === 'autoHeight') {\n obj[key] = false;\n }\n } // update responsive options\n\n\n if (key === 'responsive') {\n updateOptions(obj[key]);\n }\n }\n }\n\n if (!carousel) {\n updateOptions(options);\n } // === define and set variables ===\n\n\n if (!carousel) {\n options.axis = 'horizontal';\n options.slideBy = 'page';\n options.edgePadding = false;\n var animateIn = options.animateIn,\n animateOut = options.animateOut,\n animateDelay = options.animateDelay,\n animateNormal = options.animateNormal;\n }\n\n var horizontal = options.axis === 'horizontal' ? true : false,\n outerWrapper = doc.createElement('div'),\n innerWrapper = doc.createElement('div'),\n middleWrapper,\n container = options.container,\n containerParent = container.parentNode,\n containerHTML = container.outerHTML,\n slideItems = container.children,\n slideCount = slideItems.length,\n breakpointZone,\n windowWidth = getWindowWidth(),\n isOn = false;\n\n if (responsive) {\n setBreakpointZone();\n }\n\n if (carousel) {\n container.className += ' tns-vpfix';\n } // fixedWidth: viewport > rightBoundary > indexMax\n\n\n var autoWidth = options.autoWidth,\n fixedWidth = getOption('fixedWidth'),\n edgePadding = getOption('edgePadding'),\n gutter = getOption('gutter'),\n viewport = getViewportWidth(),\n center = getOption('center'),\n items = !autoWidth ? Math.floor(getOption('items')) : 1,\n slideBy = getOption('slideBy'),\n viewportMax = options.viewportMax || options.fixedWidthViewportWidth,\n arrowKeys = getOption('arrowKeys'),\n speed = getOption('speed'),\n rewind = options.rewind,\n loop = rewind ? false : options.loop,\n autoHeight = getOption('autoHeight'),\n controls = getOption('controls'),\n controlsText = getOption('controlsText'),\n nav = getOption('nav'),\n touch = getOption('touch'),\n mouseDrag = getOption('mouseDrag'),\n autoplay = getOption('autoplay'),\n autoplayTimeout = getOption('autoplayTimeout'),\n autoplayText = getOption('autoplayText'),\n autoplayHoverPause = getOption('autoplayHoverPause'),\n autoplayResetOnVisibility = getOption('autoplayResetOnVisibility'),\n sheet = createStyleSheet(null, getOption('nonce')),\n lazyload = options.lazyload,\n lazyloadSelector = options.lazyloadSelector,\n slidePositions,\n // collection of slide positions\n slideItemsOut = [],\n cloneCount = loop ? getCloneCountForLoop() : 0,\n slideCountNew = !carousel ? slideCount + cloneCount : slideCount + cloneCount * 2,\n hasRightDeadZone = (fixedWidth || autoWidth) && !loop ? true : false,\n rightBoundary = fixedWidth ? getRightBoundary() : null,\n updateIndexBeforeTransform = !carousel || !loop ? true : false,\n // transform\n transformAttr = horizontal ? 'left' : 'top',\n transformPrefix = '',\n transformPostfix = '',\n // index\n getIndexMax = function () {\n if (fixedWidth) {\n return function () {\n return center && !loop ? slideCount - 1 : Math.ceil(-rightBoundary / (fixedWidth + gutter));\n };\n } else if (autoWidth) {\n return function () {\n for (var i = 0; i < slideCountNew; i++) {\n if (slidePositions[i] >= -rightBoundary) {\n return i;\n }\n }\n };\n } else {\n return function () {\n if (center && carousel && !loop) {\n return slideCount - 1;\n } else {\n return loop || carousel ? Math.max(0, slideCountNew - Math.ceil(items)) : slideCountNew - 1;\n }\n };\n }\n }(),\n index = getStartIndex(getOption('startIndex')),\n indexCached = index,\n displayIndex = getCurrentSlide(),\n indexMin = 0,\n indexMax = !autoWidth ? getIndexMax() : null,\n // resize\n resizeTimer,\n preventActionWhenRunning = options.preventActionWhenRunning,\n swipeAngle = options.swipeAngle,\n moveDirectionExpected = swipeAngle ? '?' : true,\n running = false,\n onInit = options.onInit,\n events = new Events(),\n // id, class\n newContainerClasses = ' tns-slider tns-' + options.mode,\n slideId = container.id || getSlideId(),\n disable = getOption('disable'),\n disabled = false,\n freezable = options.freezable,\n freeze = freezable && !autoWidth ? getFreeze() : false,\n frozen = false,\n controlsEvents = {\n 'click': onControlsClick,\n 'keydown': onControlsKeydown\n },\n navEvents = {\n 'click': onNavClick,\n 'keydown': onNavKeydown\n },\n hoverEvents = {\n 'mouseover': mouseoverPause,\n 'mouseout': mouseoutRestart\n },\n visibilityEvent = {\n 'visibilitychange': onVisibilityChange\n },\n docmentKeydownEvent = {\n 'keydown': onDocumentKeydown\n },\n touchEvents = {\n 'touchstart': onPanStart,\n 'touchmove': onPanMove,\n 'touchend': onPanEnd,\n 'touchcancel': onPanEnd\n },\n dragEvents = {\n 'mousedown': onPanStart,\n 'mousemove': onPanMove,\n 'mouseup': onPanEnd,\n 'mouseleave': onPanEnd\n },\n hasControls = hasOption('controls'),\n hasNav = hasOption('nav'),\n navAsThumbnails = autoWidth ? true : options.navAsThumbnails,\n hasAutoplay = hasOption('autoplay'),\n hasTouch = hasOption('touch'),\n hasMouseDrag = hasOption('mouseDrag'),\n slideActiveClass = 'tns-slide-active',\n slideClonedClass = 'tns-slide-cloned',\n imgCompleteClass = 'tns-complete',\n imgEvents = {\n 'load': onImgLoaded,\n 'error': onImgFailed\n },\n imgsComplete,\n liveregionCurrent,\n preventScroll = options.preventScrollOnTouch === 'force' ? true : false; // controls\n\n\n if (hasControls) {\n var controlsContainer = options.controlsContainer,\n controlsContainerHTML = options.controlsContainer ? options.controlsContainer.outerHTML : '',\n prevButton = options.prevButton,\n nextButton = options.nextButton,\n prevButtonHTML = options.prevButton ? options.prevButton.outerHTML : '',\n nextButtonHTML = options.nextButton ? options.nextButton.outerHTML : '',\n prevIsButton,\n nextIsButton;\n } // nav\n\n\n if (hasNav) {\n var navContainer = options.navContainer,\n navContainerHTML = options.navContainer ? options.navContainer.outerHTML : '',\n navItems,\n pages = autoWidth ? slideCount : getPages(),\n pagesCached = 0,\n navClicked = -1,\n navCurrentIndex = getCurrentNavIndex(),\n navCurrentIndexCached = navCurrentIndex,\n navActiveClass = 'tns-nav-active',\n navStr = 'Carousel Page ',\n navStrCurrent = ' (Current Slide)';\n } // autoplay\n\n\n if (hasAutoplay) {\n var autoplayDirection = options.autoplayDirection === 'forward' ? 1 : -1,\n autoplayButton = options.autoplayButton,\n autoplayButtonHTML = options.autoplayButton ? options.autoplayButton.outerHTML : '',\n autoplayHtmlStrings = ['<span class=\\'tns-visually-hidden\\'>', ' animation</span>'],\n autoplayTimer,\n animating,\n autoplayHoverPaused,\n autoplayUserPaused,\n autoplayVisibilityPaused;\n }\n\n if (hasTouch || hasMouseDrag) {\n var initPosition = {},\n lastPosition = {},\n translateInit,\n disX,\n disY,\n panStart = false,\n rafIndex,\n getDist = horizontal ? function (a, b) {\n return a.x - b.x;\n } : function (a, b) {\n return a.y - b.y;\n };\n } // disable slider when slidecount <= items\n\n\n if (!autoWidth) {\n resetVariblesWhenDisable(disable || freeze);\n }\n\n if (TRANSFORM) {\n transformAttr = TRANSFORM;\n transformPrefix = 'translate';\n\n if (HAS3DTRANSFORMS) {\n transformPrefix += horizontal ? '3d(' : '3d(0px, ';\n transformPostfix = horizontal ? ', 0px, 0px)' : ', 0px)';\n } else {\n transformPrefix += horizontal ? 'X(' : 'Y(';\n transformPostfix = ')';\n }\n }\n\n if (carousel) {\n container.className = container.className.replace('tns-vpfix', '');\n }\n\n initStructure();\n initSheet();\n initSliderTransform(); // === COMMON FUNCTIONS === //\n\n function resetVariblesWhenDisable(condition) {\n if (condition) {\n controls = nav = touch = mouseDrag = arrowKeys = autoplay = autoplayHoverPause = autoplayResetOnVisibility = false;\n }\n }\n\n function getCurrentSlide() {\n var tem = carousel ? index - cloneCount : index;\n\n while (tem < 0) {\n tem += slideCount;\n }\n\n return tem % slideCount + 1;\n }\n\n function getStartIndex(ind) {\n ind = ind ? Math.max(0, Math.min(loop ? slideCount - 1 : slideCount - items, ind)) : 0;\n return carousel ? ind + cloneCount : ind;\n }\n\n function getAbsIndex(i) {\n if (i == null) {\n i = index;\n }\n\n if (carousel) {\n i -= cloneCount;\n }\n\n while (i < 0) {\n i += slideCount;\n }\n\n return Math.floor(i % slideCount);\n }\n\n function getCurrentNavIndex() {\n var absIndex = getAbsIndex(),\n result;\n result = navAsThumbnails ? absIndex : fixedWidth || autoWidth ? Math.ceil((absIndex + 1) * pages / slideCount - 1) : Math.floor(absIndex / items); // set active nav to the last one when reaches the right edge\n\n if (!loop && carousel && index === indexMax) {\n result = pages - 1;\n }\n\n return result;\n }\n\n function getItemsMax() {\n // fixedWidth or autoWidth while viewportMax is not available\n if (autoWidth || fixedWidth && !viewportMax) {\n return slideCount - 1; // most cases\n } else {\n var str = fixedWidth ? 'fixedWidth' : 'items',\n arr = [];\n\n if (fixedWidth || options[str] < slideCount) {\n arr.push(options[str]);\n }\n\n if (responsive) {\n for (var bp in responsive) {\n var tem = responsive[bp][str];\n\n if (tem && (fixedWidth || tem < slideCount)) {\n arr.push(tem);\n }\n }\n }\n\n if (!arr.length) {\n arr.push(0);\n }\n\n return Math.ceil(fixedWidth ? viewportMax / Math.min.apply(null, arr) : Math.max.apply(null, arr));\n }\n }\n\n function getCloneCountForLoop() {\n var itemsMax = getItemsMax(),\n result = carousel ? Math.ceil((itemsMax * 5 - slideCount) / 2) : itemsMax * 4 - slideCount;\n result = Math.max(itemsMax, result);\n return hasOption('edgePadding') ? result + 1 : result;\n }\n\n function getWindowWidth() {\n return win.innerWidth || doc.documentElement.clientWidth || doc.body.clientWidth;\n }\n\n function getInsertPosition(pos) {\n return pos === 'top' ? 'afterbegin' : 'beforeend';\n }\n\n function getClientWidth(el) {\n if (el == null) {\n return;\n }\n\n var div = doc.createElement('div'),\n rect,\n width;\n el.appendChild(div);\n rect = div.getBoundingClientRect();\n width = rect.right - rect.left;\n div.remove();\n return width || getClientWidth(el.parentNode);\n }\n\n function getViewportWidth() {\n var gap = edgePadding ? edgePadding * 2 - gutter : 0;\n return getClientWidth(containerParent) - gap;\n }\n\n function hasOption(item) {\n if (options[item]) {\n return true;\n } else {\n if (responsive) {\n for (var bp in responsive) {\n if (responsive[bp][item]) {\n return true;\n }\n }\n }\n\n return false;\n }\n } // get option:\n // fixed width: viewport, fixedWidth, gutter => items\n // others: window width => all variables\n // all: items => slideBy\n\n\n function getOption(item, ww) {\n if (ww == null) {\n ww = windowWidth;\n }\n\n if (item === 'items' && fixedWidth) {\n return Math.floor((viewport + gutter) / (fixedWidth + gutter)) || 1;\n } else {\n var result = options[item];\n\n if (responsive) {\n for (var bp in responsive) {\n // bp: convert string to number\n if (ww >= parseInt(bp)) {\n if (item in responsive[bp]) {\n result = responsive[bp][item];\n }\n }\n }\n }\n\n if (item === 'slideBy' && result === 'page') {\n result = getOption('items');\n }\n\n if (!carousel && (item === 'slideBy' || item === 'items')) {\n result = Math.floor(result);\n }\n\n return result;\n }\n }\n\n function getSlideMarginLeft(i) {\n return CALC ? CALC + '(' + i * 100 + '% / ' + slideCountNew + ')' : i * 100 / slideCountNew + '%';\n }\n\n function getInnerWrapperStyles(edgePaddingTem, gutterTem, fixedWidthTem, speedTem, autoHeightBP) {\n var str = '';\n\n if (edgePaddingTem !== undefined) {\n var gap = edgePaddingTem;\n\n if (gutterTem) {\n gap -= gutterTem;\n }\n\n str = horizontal ? 'margin: 0 ' + gap + 'px 0 ' + edgePaddingTem + 'px;' : 'margin: ' + edgePaddingTem + 'px 0 ' + gap + 'px 0;';\n } else if (gutterTem && !fixedWidthTem) {\n var gutterTemUnit = '-' + gutterTem + 'px',\n dir = horizontal ? gutterTemUnit + ' 0 0' : '0 ' + gutterTemUnit + ' 0';\n str = 'margin: 0 ' + dir + ';';\n }\n\n if (!carousel && autoHeightBP && TRANSITIONDURATION && speedTem) {\n str += getTransitionDurationStyle(speedTem);\n }\n\n return str;\n }\n\n function getContainerWidth(fixedWidthTem, gutterTem, itemsTem) {\n if (fixedWidthTem) {\n return (fixedWidthTem + gutterTem) * slideCountNew + 'px';\n } else {\n return CALC ? CALC + '(' + slideCountNew * 100 + '% / ' + itemsTem + ')' : slideCountNew * 100 / itemsTem + '%';\n }\n }\n\n function getSlideWidthStyle(fixedWidthTem, gutterTem, itemsTem) {\n var width;\n\n if (fixedWidthTem) {\n width = fixedWidthTem + gutterTem + 'px';\n } else {\n if (!carousel) {\n itemsTem = Math.floor(itemsTem);\n }\n\n var dividend = carousel ? slideCountNew : itemsTem;\n width = CALC ? CALC + '(100% / ' + dividend + ')' : 100 / dividend + '%';\n }\n\n width = 'width:' + width; // inner slider: overwrite outer slider styles\n\n return nested !== 'inner' ? width + ';' : width + ' !important;';\n }\n\n function getSlideGutterStyle(gutterTem) {\n var str = ''; // gutter maybe interger || 0\n // so can't use 'if (gutter)'\n\n if (gutterTem !== false) {\n var prop = horizontal ? 'padding-' : 'margin-',\n dir = horizontal ? 'right' : 'bottom';\n str = prop + dir + ': ' + gutterTem + 'px;';\n }\n\n return str;\n }\n\n function getCSSPrefix(name, num) {\n var prefix = name.substring(0, name.length - num).toLowerCase();\n\n if (prefix) {\n prefix = '-' + prefix + '-';\n }\n\n return prefix;\n }\n\n function getTransitionDurationStyle(speed) {\n return getCSSPrefix(TRANSITIONDURATION, 18) + 'transition-duration:' + speed / 1000 + 's;';\n }\n\n function getAnimationDurationStyle(speed) {\n return getCSSPrefix(ANIMATIONDURATION, 17) + 'animation-duration:' + speed / 1000 + 's;';\n }\n\n function initStructure() {\n var classOuter = 'tns-outer',\n classInner = 'tns-inner',\n hasGutter = hasOption('gutter');\n outerWrapper.className = classOuter;\n innerWrapper.className = classInner;\n outerWrapper.id = slideId + '-ow';\n innerWrapper.id = slideId + '-iw'; // set container properties\n\n if (container.id === '') {\n container.id = slideId;\n }\n\n newContainerClasses += PERCENTAGELAYOUT || autoWidth ? ' tns-subpixel' : ' tns-no-subpixel';\n newContainerClasses += CALC ? ' tns-calc' : ' tns-no-calc';\n\n if (autoWidth) {\n newContainerClasses += ' tns-autowidth';\n }\n\n newContainerClasses += ' tns-' + options.axis;\n container.className += newContainerClasses; // add constrain layer for carousel\n\n if (carousel) {\n middleWrapper = doc.createElement('div');\n middleWrapper.id = slideId + '-mw';\n middleWrapper.className = 'tns-ovh';\n outerWrapper.appendChild(middleWrapper);\n middleWrapper.appendChild(innerWrapper);\n } else {\n outerWrapper.appendChild(innerWrapper);\n }\n\n if (autoHeight) {\n var wp = middleWrapper ? middleWrapper : innerWrapper;\n wp.className += ' tns-ah';\n }\n\n containerParent.insertBefore(outerWrapper, container);\n innerWrapper.appendChild(container); // add id, class, aria attributes\n // before clone slides\n\n forEach(slideItems, function (item, i) {\n addClass(item, 'tns-item');\n\n if (!item.id) {\n item.id = slideId + '-item' + i;\n }\n\n if (!carousel && animateNormal) {\n addClass(item, animateNormal);\n }\n\n setAttrs(item, {\n 'aria-hidden': 'true',\n 'tabindex': '-1'\n });\n }); // ## clone slides\n // carousel: n + slides + n\n // gallery: slides + n\n\n if (cloneCount) {\n var fragmentBefore = doc.createDocumentFragment(),\n fragmentAfter = doc.createDocumentFragment();\n\n for (var j = cloneCount; j--;) {\n var num = j % slideCount,\n cloneFirst = slideItems[num].cloneNode(true);\n addClass(cloneFirst, slideClonedClass);\n removeAttrs(cloneFirst, 'id');\n fragmentAfter.insertBefore(cloneFirst, fragmentAfter.firstChild);\n\n if (carousel) {\n var cloneLast = slideItems[slideCount - 1 - num].cloneNode(true);\n addClass(cloneLast, slideClonedClass);\n removeAttrs(cloneLast, 'id');\n fragmentBefore.appendChild(cloneLast);\n }\n }\n\n container.insertBefore(fragmentBefore, container.firstChild);\n container.appendChild(fragmentAfter);\n slideItems = container.children;\n }\n }\n\n function initSliderTransform() {\n // ## images loaded/failed\n if (hasOption('autoHeight') || autoWidth || !horizontal) {\n var imgs = container.querySelectorAll('img'); // add img load event listener\n\n forEach(imgs, function (img) {\n var src = img.src;\n\n if (!lazyload) {\n // not data img\n if (src && src.indexOf('data:image') < 0) {\n img.src = '';\n addEvents(img, imgEvents);\n addClass(img, 'loading');\n img.src = src; // data img\n } else {\n imgLoaded(img);\n }\n }\n }); // set imgsComplete\n\n raf(function () {\n imgsLoadedCheck(arrayFromNodeList(imgs), function () {\n imgsComplete = true;\n });\n }); // reset imgs for auto height: check visible imgs only\n\n if (hasOption('autoHeight')) {\n imgs = getImageArray(index, Math.min(index + items - 1, slideCountNew - 1));\n }\n\n lazyload ? initSliderTransformStyleCheck() : raf(function () {\n imgsLoadedCheck(arrayFromNodeList(imgs), initSliderTransformStyleCheck);\n });\n } else {\n // set container transform property\n if (carousel) {\n doContainerTransformSilent();\n } // update slider tools and events\n\n\n initTools();\n initEvents();\n }\n }\n\n function initSliderTransformStyleCheck() {\n if (autoWidth && slideCount > 1) {\n // check styles application\n var num = loop ? index : slideCount - 1;\n\n (function stylesApplicationCheck() {\n var left = slideItems[num].getBoundingClientRect().left;\n var right = slideItems[num - 1].getBoundingClientRect().right;\n Math.abs(left - right) <= 1 ? initSliderTransformCore() : setTimeout(function () {\n stylesApplicationCheck();\n }, 16);\n })();\n } else {\n initSliderTransformCore();\n }\n }\n\n function initSliderTransformCore() {\n // run Fn()s which are rely on image loading\n if (!horizontal || autoWidth) {\n setSlidePositions();\n\n if (autoWidth) {\n rightBoundary = getRightBoundary();\n\n if (freezable) {\n freeze = getFreeze();\n }\n\n indexMax = getIndexMax(); // <= slidePositions, rightBoundary <=\n\n resetVariblesWhenDisable(disable || freeze);\n } else {\n updateContentWrapperHeight();\n }\n } // set container transform property\n\n\n if (carousel) {\n doContainerTransformSilent();\n } // update slider tools and events\n\n\n initTools();\n initEvents();\n }\n\n function initSheet() {\n // gallery:\n // set animation classes and left value for gallery slider\n if (!carousel) {\n for (var i = index, l = index + Math.min(slideCount, items); i < l; i++) {\n var item = slideItems[i];\n item.style.left = (i - index) * 100 / items + '%';\n addClass(item, animateIn);\n removeClass(item, animateNormal);\n }\n } // #### LAYOUT\n // ## INLINE-BLOCK VS FLOAT\n // ## PercentageLayout:\n // slides: inline-block\n // remove blank space between slides by set font-size: 0\n // ## Non PercentageLayout:\n // slides: float\n // margin-right: -100%\n // margin-left: ~\n // Resource: https://docs.google.com/spreadsheets/d/147up245wwTXeQYve3BRSAD4oVcvQmuGsFteJOeA5xNQ/edit?usp=sharing\n\n\n if (horizontal) {\n if (PERCENTAGELAYOUT || autoWidth) {\n addCSSRule(sheet, '#' + slideId + ' > .tns-item', 'font-size:' + win.getComputedStyle(slideItems[0]).fontSize + ';', getCssRulesLength(sheet));\n addCSSRule(sheet, '#' + slideId, 'font-size:0;', getCssRulesLength(sheet));\n } else if (carousel) {\n forEach(slideItems, function (slide, i) {\n slide.style.marginLeft = getSlideMarginLeft(i);\n });\n }\n } // ## BASIC STYLES\n\n\n if (CSSMQ) {\n // middle wrapper style\n if (TRANSITIONDURATION) {\n var str = middleWrapper && options.autoHeight ? getTransitionDurationStyle(options.speed) : '';\n addCSSRule(sheet, '#' + slideId + '-mw', str, getCssRulesLength(sheet));\n } // inner wrapper styles\n\n\n str = getInnerWrapperStyles(options.edgePadding, options.gutter, options.fixedWidth, options.speed, options.autoHeight);\n addCSSRule(sheet, '#' + slideId + '-iw', str, getCssRulesLength(sheet)); // container styles\n\n if (carousel) {\n str = horizontal && !autoWidth ? 'width:' + getContainerWidth(options.fixedWidth, options.gutter, options.items) + ';' : '';\n\n if (TRANSITIONDURATION) {\n str += getTransitionDurationStyle(speed);\n }\n\n addCSSRule(sheet, '#' + slideId, str, getCssRulesLength(sheet));\n } // slide styles\n\n\n str = horizontal && !autoWidth ? getSlideWidthStyle(options.fixedWidth, options.gutter, options.items) : '';\n\n if (options.gutter) {\n str += getSlideGutterStyle(options.gutter);\n } // set gallery items transition-duration\n\n\n if (!carousel) {\n if (TRANSITIONDURATION) {\n str += getTransitionDurationStyle(speed);\n }\n\n if (ANIMATIONDURATION) {\n str += getAnimationDurationStyle(speed);\n }\n }\n\n if (str) {\n addCSSRule(sheet, '#' + slideId + ' > .tns-item', str, getCssRulesLength(sheet));\n } // non CSS mediaqueries: IE8\n // ## update inner wrapper, container, slides if needed\n // set inline styles for inner wrapper & container\n // insert stylesheet (one line) for slides only (since slides are many)\n\n } else {\n // middle wrapper styles\n update_carousel_transition_duration(); // inner wrapper styles\n\n innerWrapper.style.cssText = getInnerWrapperStyles(edgePadding, gutter, fixedWidth, autoHeight); // container styles\n\n if (carousel && horizontal && !autoWidth) {\n container.style.width = getContainerWidth(fixedWidth, gutter, items);\n } // slide styles\n\n\n var str = horizontal && !autoWidth ? getSlideWidthStyle(fixedWidth, gutter, items) : '';\n\n if (gutter) {\n str += getSlideGutterStyle(gutter);\n } // append to the last line\n\n\n if (str) {\n addCSSRule(sheet, '#' + slideId + ' > .tns-item', str, getCssRulesLength(sheet));\n }\n } // ## MEDIAQUERIES\n\n\n if (responsive && CSSMQ) {\n for (var bp in responsive) {\n // bp: convert string to number\n bp = parseInt(bp);\n var opts = responsive[bp],\n str = '',\n middleWrapperStr = '',\n innerWrapperStr = '',\n containerStr = '',\n slideStr = '',\n itemsBP = !autoWidth ? getOption('items', bp) : null,\n fixedWidthBP = getOption('fixedWidth', bp),\n speedBP = getOption('speed', bp),\n edgePaddingBP = getOption('edgePadding', bp),\n autoHeightBP = getOption('autoHeight', bp),\n gutterBP = getOption('gutter', bp); // middle wrapper string\n\n if (TRANSITIONDURATION && middleWrapper && getOption('autoHeight', bp) && 'speed' in opts) {\n middleWrapperStr = '#' + slideId + '-mw{' + getTransitionDurationStyle(speedBP) + '}';\n } // inner wrapper string\n\n\n if ('edgePadding' in opts || 'gutter' in opts) {\n innerWrapperStr = '#' + slideId + '-iw{' + getInnerWrapperStyles(edgePaddingBP, gutterBP, fixedWidthBP, speedBP, autoHeightBP) + '}';\n } // container string\n\n\n if (carousel && horizontal && !autoWidth && ('fixedWidth' in opts || 'items' in opts || fixedWidth && 'gutter' in opts)) {\n containerStr = 'width:' + getContainerWidth(fixedWidthBP, gutterBP, itemsBP) + ';';\n }\n\n if (TRANSITIONDURATION && 'speed' in opts) {\n containerStr += getTransitionDurationStyle(speedBP);\n }\n\n if (containerStr) {\n containerStr = '#' + slideId + '{' + containerStr + '}';\n } // slide string\n\n\n if ('fixedWidth' in opts || fixedWidth && 'gutter' in opts || !carousel && 'items' in opts) {\n slideStr += getSlideWidthStyle(fixedWidthBP, gutterBP, itemsBP);\n }\n\n if ('gutter' in opts) {\n slideStr += getSlideGutterStyle(gutterBP);\n } // set gallery items transition-duration\n\n\n if (!carousel && 'speed' in opts) {\n if (TRANSITIONDURATION) {\n slideStr += getTransitionDurationStyle(speedBP);\n }\n\n if (ANIMATIONDURATION) {\n slideStr += getAnimationDurationStyle(speedBP);\n }\n }\n\n if (slideStr) {\n slideStr = '#' + slideId + ' > .tns-item{' + slideStr + '}';\n } // add up\n\n\n str = middleWrapperStr + innerWrapperStr + containerStr + slideStr;\n\n if (str) {\n sheet.insertRule('@media (min-width: ' + bp / 16 + 'em) {' + str + '}', sheet.cssRules.length);\n }\n }\n }\n }\n\n function initTools() {\n // == slides ==\n updateSlideStatus(); // == live region ==\n\n outerWrapper.insertAdjacentHTML('afterbegin', '<div class=\"tns-liveregion tns-visually-hidden\" aria-live=\"polite\" aria-atomic=\"true\">slide <span class=\"current\">' + getLiveRegionStr() + '</span> of ' + slideCount + '</div>');\n liveregionCurrent = outerWrapper.querySelector('.tns-liveregion .current'); // == autoplayInit ==\n\n if (hasAutoplay) {\n var txt = autoplay ? 'stop' : 'start';\n\n if (autoplayButton) {\n setAttrs(autoplayButton, {\n 'data-action': txt\n });\n } else if (options.autoplayButtonOutput) {\n outerWrapper.insertAdjacentHTML(getInsertPosition(options.autoplayPosition), '<button type=\"button\" data-action=\"' + txt + '\">' + autoplayHtmlStrings[0] + txt + autoplayHtmlStrings[1] + autoplayText[0] + '</button>');\n autoplayButton = outerWrapper.querySelector('[data-action]');\n } // add event\n\n\n if (autoplayButton) {\n addEvents(autoplayButton, {\n 'click': toggleAutoplay\n });\n }\n\n if (autoplay) {\n startAutoplay();\n\n if (autoplayHoverPause) {\n addEvents(container, hoverEvents);\n }\n\n if (autoplayResetOnVisibility) {\n addEvents(container, visibilityEvent);\n }\n }\n } // == navInit ==\n\n\n if (hasNav) {\n var initIndex = !carousel ? 0 : cloneCount; // customized nav\n // will not hide the navs in case they're thumbnails\n\n if (navContainer) {\n setAttrs(navContainer, {\n 'aria-label': 'Carousel Pagination'\n });\n navItems = navContainer.children;\n forEach(navItems, function (item, i) {\n setAttrs(item, {\n 'data-nav': i,\n 'tabindex': '-1',\n 'aria-label': navStr + (i + 1),\n 'aria-controls': slideId\n });\n }); // generated nav\n } else {\n var navHtml = '',\n hiddenStr = navAsThumbnails ? '' : 'style=\"display:none\"';\n\n for (var i = 0; i < slideCount; i++) {\n // hide nav items by default\n navHtml += '<button type=\"button\" data-nav=\"' + i + '\" tabindex=\"-1\" aria-controls=\"' + slideId + '\" ' + hiddenStr + ' aria-label=\"' + navStr + (i + 1) + '\"></button>';\n }\n\n navHtml = '<div class=\"tns-nav\" aria-label=\"Carousel Pagination\">' + navHtml + '</div>';\n outerWrapper.insertAdjacentHTML(getInsertPosition(options.navPosition), navHtml);\n navContainer = outerWrapper.querySelector('.tns-nav');\n navItems = navContainer.children;\n }\n\n updateNavVisibility(); // add transition\n\n if (TRANSITIONDURATION) {\n var prefix = TRANSITIONDURATION.substring(0, TRANSITIONDURATION.length - 18).toLowerCase(),\n str = 'transition: all ' + speed / 1000 + 's';\n\n if (prefix) {\n str = '-' + prefix + '-' + str;\n }\n\n addCSSRule(sheet, '[aria-controls^=' + slideId + '-item]', str, getCssRulesLength(sheet));\n }\n\n setAttrs(navItems[navCurrentIndex], {\n 'aria-label': navStr + (navCurrentIndex + 1) + navStrCurrent\n });\n removeAttrs(navItems[navCurrentIndex], 'tabindex');\n addClass(navItems[navCurrentIndex], navActiveClass); // add events\n\n addEvents(navContainer, navEvents);\n } // == controlsInit ==\n\n\n if (hasControls) {\n if (!controlsContainer && (!prevButton || !nextButton)) {\n outerWrapper.insertAdjacentHTML(getInsertPosition(options.controlsPosition), '<div class=\"tns-controls\" aria-label=\"Carousel Navigation\" tabindex=\"0\"><button type=\"button\" data-controls=\"prev\" tabindex=\"-1\" aria-controls=\"' + slideId + '\">' + controlsText[0] + '</button><button type=\"button\" data-controls=\"next\" tabindex=\"-1\" aria-controls=\"' + slideId + '\">' + controlsText[1] + '</button></div>');\n controlsContainer = outerWrapper.querySelector('.tns-controls');\n }\n\n if (!prevButton || !nextButton) {\n prevButton = controlsContainer.children[0];\n nextButton = controlsContainer.children[1];\n }\n\n if (options.controlsContainer) {\n setAttrs(controlsContainer, {\n 'aria-label': 'Carousel Navigation',\n 'tabindex': '0'\n });\n }\n\n if (options.controlsContainer || options.prevButton && options.nextButton) {\n setAttrs([prevButton, nextButton], {\n 'aria-controls': slideId,\n 'tabindex': '-1'\n });\n }\n\n if (options.controlsContainer || options.prevButton && options.nextButton) {\n setAttrs(prevButton, {\n 'data-controls': 'prev'\n });\n setAttrs(nextButton, {\n 'data-controls': 'next'\n });\n }\n\n prevIsButton = isButton(prevButton);\n nextIsButton = isButton(nextButton);\n updateControlsStatus(); // add events\n\n if (controlsContainer) {\n addEvents(controlsContainer, controlsEvents);\n } else {\n addEvents(prevButton, controlsEvents);\n addEvents(nextButton, controlsEvents);\n }\n } // hide tools if needed\n\n\n disableUI();\n }\n\n function initEvents() {\n // add events\n if (carousel && TRANSITIONEND) {\n var eve = {};\n eve[TRANSITIONEND] = onTransitionEnd;\n addEvents(container, eve);\n }\n\n if (touch) {\n addEvents(container, touchEvents, options.preventScrollOnTouch);\n }\n\n if (mouseDrag) {\n addEvents(container, dragEvents);\n }\n\n if (arrowKeys) {\n addEvents(doc, docmentKeydownEvent);\n }\n\n if (nested === 'inner') {\n events.on('outerResized', function () {\n resizeTasks();\n events.emit('innerLoaded', info());\n });\n } else if (responsive || fixedWidth || autoWidth || autoHeight || !horizontal) {\n addEvents(win, {\n 'resize': onResize\n });\n }\n\n if (autoHeight) {\n if (nested === 'outer') {\n events.on('innerLoaded', doAutoHeight);\n } else if (!disable) {\n doAutoHeight();\n }\n }\n\n doLazyLoad();\n\n if (disable) {\n disableSlider();\n } else if (freeze) {\n freezeSlider();\n }\n\n events.on('indexChanged', additionalUpdates);\n\n if (nested === 'inner') {\n events.emit('innerLoaded', info());\n }\n\n if (typeof onInit === 'function') {\n onInit(info());\n }\n\n isOn = true;\n }\n\n function destroy() {\n // sheet\n sheet.disabled = true;\n\n if (sheet.ownerNode) {\n sheet.ownerNode.remove();\n } // remove win event listeners\n\n\n removeEvents(win, {\n 'resize': onResize\n }); // arrowKeys, controls, nav\n\n if (arrowKeys) {\n removeEvents(doc, docmentKeydownEvent);\n }\n\n if (controlsContainer) {\n removeEvents(controlsContainer, controlsEvents);\n }\n\n if (navContainer) {\n removeEvents(navContainer, navEvents);\n } // autoplay\n\n\n removeEvents(container, hoverEvents);\n removeEvents(container, visibilityEvent);\n\n if (autoplayButton) {\n removeEvents(autoplayButton, {\n 'click': toggleAutoplay\n });\n }\n\n if (autoplay) {\n clearInterval(autoplayTimer);\n } // container\n\n\n if (carousel && TRANSITIONEND) {\n var eve = {};\n eve[TRANSITIONEND] = onTransitionEnd;\n removeEvents(container, eve);\n }\n\n if (touch) {\n removeEvents(container, touchEvents);\n }\n\n if (mouseDrag) {\n removeEvents(container, dragEvents);\n } // cache Object values in options && reset HTML\n\n\n var htmlList = [containerHTML, controlsContainerHTML, prevButtonHTML, nextButtonHTML, navContainerHTML, autoplayButtonHTML];\n tnsList.forEach(function (item, i) {\n var el = item === 'container' ? outerWrapper : options[item];\n\n if (_typeof(el) === 'object' && el) {\n var prevEl = el.previousElementSibling ? el.previousElementSibling : false,\n parentEl = el.parentNode;\n el.outerHTML = htmlList[i];\n options[item] = prevEl ? prevEl.nextElementSibling : parentEl.firstElementChild;\n }\n }); // reset variables\n\n tnsList = animateIn = animateOut = animateDelay = animateNormal = horizontal = outerWrapper = innerWrapper = container = containerParent = containerHTML = slideItems = slideCount = breakpointZone = windowWidth = autoWidth = fixedWidth = edgePadding = gutter = viewport = items = slideBy = viewportMax = arrowKeys = speed = rewind = loop = autoHeight = sheet = lazyload = slidePositions = slideItemsOut = cloneCount = slideCountNew = hasRightDeadZone = rightBoundary = updateIndexBeforeTransform = transformAttr = transformPrefix = transformPostfix = getIndexMax = index = indexCached = indexMin = indexMax = resizeTimer = swipeAngle = moveDirectionExpected = running = onInit = events = newContainerClasses = slideId = disable = disabled = freezable = freeze = frozen = controlsEvents = navEvents = hoverEvents = visibilityEvent = docmentKeydownEvent = touchEvents = dragEvents = hasControls = hasNav = navAsThumbnails = hasAutoplay = hasTouch = hasMouseDrag = slideActiveClass = imgCompleteClass = imgEvents = imgsComplete = controls = controlsText = controlsContainer = controlsContainerHTML = prevButton = nextButton = prevIsButton = nextIsButton = nav = navContainer = navContainerHTML = navItems = pages = pagesCached = navClicked = navCurrentIndex = navCurrentIndexCached = navActiveClass = navStr = navStrCurrent = autoplay = autoplayTimeout = autoplayDirection = autoplayText = autoplayHoverPause = autoplayButton = autoplayButtonHTML = autoplayResetOnVisibility = autoplayHtmlStrings = autoplayTimer = animating = autoplayHoverPaused = autoplayUserPaused = autoplayVisibilityPaused = initPosition = lastPosition = translateInit = disX = disY = panStart = rafIndex = getDist = touch = mouseDrag = null; // check variables\n // [animateIn, animateOut, animateDelay, animateNormal, horizontal, outerWrapper, innerWrapper, container, containerParent, containerHTML, slideItems, slideCount, breakpointZone, windowWidth, autoWidth, fixedWidth, edgePadding, gutter, viewport, items, slideBy, viewportMax, arrowKeys, speed, rewind, loop, autoHeight, sheet, lazyload, slidePositions, slideItemsOut, cloneCount, slideCountNew, hasRightDeadZone, rightBoundary, updateIndexBeforeTransform, transformAttr, transformPrefix, transformPostfix, getIndexMax, index, indexCached, indexMin, indexMax, resizeTimer, swipeAngle, moveDirectionExpected, running, onInit, events, newContainerClasses, slideId, disable, disabled, freezable, freeze, frozen, controlsEvents, navEvents, hoverEvents, visibilityEvent, docmentKeydownEvent, touchEvents, dragEvents, hasControls, hasNav, navAsThumbnails, hasAutoplay, hasTouch, hasMouseDrag, slideActiveClass, imgCompleteClass, imgEvents, imgsComplete, controls, controlsText, controlsContainer, controlsContainerHTML, prevButton, nextButton, prevIsButton, nextIsButton, nav, navContainer, navContainerHTML, navItems, pages, pagesCached, navClicked, navCurrentIndex, navCurrentIndexCached, navActiveClass, navStr, navStrCurrent, autoplay, autoplayTimeout, autoplayDirection, autoplayText, autoplayHoverPause, autoplayButton, autoplayButtonHTML, autoplayResetOnVisibility, autoplayHtmlStrings, autoplayTimer, animating, autoplayHoverPaused, autoplayUserPaused, autoplayVisibilityPaused, initPosition, lastPosition, translateInit, disX, disY, panStart, rafIndex, getDist, touch, mouseDrag ].forEach(function(item) { if (item !== null) { console.log(item); } });\n\n for (var a in this) {\n if (a !== 'rebuild') {\n this[a] = null;\n }\n }\n\n isOn = false;\n } // === ON RESIZE ===\n // responsive || fixedWidth || autoWidth || !horizontal\n\n\n function onResize(e) {\n raf(function () {\n resizeTasks(getEvent(e));\n });\n }\n\n function resizeTasks(e) {\n if (!isOn) {\n return;\n }\n\n if (nested === 'outer') {\n events.emit('outerResized', info(e));\n }\n\n windowWidth = getWindowWidth();\n var bpChanged,\n breakpointZoneTem = breakpointZone,\n needContainerTransform = false;\n\n if (responsive) {\n setBreakpointZone();\n bpChanged = breakpointZoneTem !== breakpointZone; // if (hasRightDeadZone) { needContainerTransform = true; } // *?\n\n if (bpChanged) {\n events.emit('newBreakpointStart', info(e));\n }\n }\n\n var indChanged,\n itemsChanged,\n itemsTem = items,\n disableTem = disable,\n freezeTem = freeze,\n arrowKeysTem = arrowKeys,\n controlsTem = controls,\n navTem = nav,\n touchTem = touch,\n mouseDragTem = mouseDrag,\n autoplayTem = autoplay,\n autoplayHoverPauseTem = autoplayHoverPause,\n autoplayResetOnVisibilityTem = autoplayResetOnVisibility,\n indexTem = index;\n\n if (bpChanged) {\n var fixedWidthTem = fixedWidth,\n autoHeightTem = autoHeight,\n controlsTextTem = controlsText,\n centerTem = center,\n autoplayTextTem = autoplayText;\n\n if (!CSSMQ) {\n var gutterTem = gutter,\n edgePaddingTem = edgePadding;\n }\n } // get option:\n // fixed width: viewport, fixedWidth, gutter => items\n // others: window width => all variables\n // all: items => slideBy\n\n\n arrowKeys = getOption('arrowKeys');\n controls = getOption('controls');\n nav = getOption('nav');\n touch = getOption('touch');\n center = getOption('center');\n mouseDrag = getOption('mouseDrag');\n autoplay = getOption('autoplay');\n autoplayHoverPause = getOption('autoplayHoverPause');\n autoplayResetOnVisibility = getOption('autoplayResetOnVisibility');\n\n if (bpChanged) {\n disable = getOption('disable');\n fixedWidth = getOption('fixedWidth');\n speed = getOption('speed');\n autoHeight = getOption('autoHeight');\n controlsText = getOption('controlsText');\n autoplayText = getOption('autoplayText');\n autoplayTimeout = getOption('autoplayTimeout');\n\n if (!CSSMQ) {\n edgePadding = getOption('edgePadding');\n gutter = getOption('gutter');\n }\n } // update options\n\n\n resetVariblesWhenDisable(disable);\n viewport = getViewportWidth(); // <= edgePadding, gutter\n\n if ((!horizontal || autoWidth) && !disable) {\n setSlidePositions();\n\n if (!horizontal) {\n updateContentWrapperHeight(); // <= setSlidePositions\n\n needContainerTransform = true;\n }\n }\n\n if (fixedWidth || autoWidth) {\n rightBoundary = getRightBoundary(); // autoWidth: <= viewport, slidePositions, gutter\n // fixedWidth: <= viewport, fixedWidth, gutter\n\n indexMax = getIndexMax(); // autoWidth: <= rightBoundary, slidePositions\n // fixedWidth: <= rightBoundary, fixedWidth, gutter\n }\n\n if (bpChanged || fixedWidth) {\n items = getOption('items');\n slideBy = getOption('slideBy');\n itemsChanged = items !== itemsTem;\n\n if (itemsChanged) {\n if (!fixedWidth && !autoWidth) {\n indexMax = getIndexMax();\n } // <= items\n // check index before transform in case\n // slider reach the right edge then items become bigger\n\n\n updateIndex();\n }\n }\n\n if (bpChanged) {\n if (disable !== disableTem) {\n if (disable) {\n disableSlider();\n } else {\n enableSlider(); // <= slidePositions, rightBoundary, indexMax\n }\n }\n }\n\n if (freezable && (bpChanged || fixedWidth || autoWidth)) {\n freeze = getFreeze(); // <= autoWidth: slidePositions, gutter, viewport, rightBoundary\n // <= fixedWidth: fixedWidth, gutter, rightBoundary\n // <= others: items\n\n if (freeze !== freezeTem) {\n if (freeze) {\n doContainerTransform(getContainerTransformValue(getStartIndex(0)));\n freezeSlider();\n } else {\n unfreezeSlider();\n needContainerTransform = true;\n }\n }\n }\n\n resetVariblesWhenDisable(disable || freeze); // controls, nav, touch, mouseDrag, arrowKeys, autoplay, autoplayHoverPause, autoplayResetOnVisibility\n\n if (!autoplay) {\n autoplayHoverPause = autoplayResetOnVisibility = false;\n }\n\n if (arrowKeys !== arrowKeysTem) {\n arrowKeys ? addEvents(doc, docmentKeydownEvent) : removeEvents(doc, docmentKeydownEvent);\n }\n\n if (controls !== controlsTem) {\n if (controls) {\n if (controlsContainer) {\n showElement(controlsContainer);\n } else {\n if (prevButton) {\n showElement(prevButton);\n }\n\n if (nextButton) {\n showElement(nextButton);\n }\n }\n } else {\n if (controlsContainer) {\n hideElement(controlsContainer);\n } else {\n if (prevButton) {\n hideElement(prevButton);\n }\n\n if (nextButton) {\n hideElement(nextButton);\n }\n }\n }\n }\n\n if (nav !== navTem) {\n if (nav) {\n showElement(navContainer);\n updateNavVisibility();\n } else {\n hideElement(navContainer);\n }\n }\n\n if (touch !== touchTem) {\n touch ? addEvents(container, touchEvents, options.preventScrollOnTouch) : removeEvents(container, touchEvents);\n }\n\n if (mouseDrag !== mouseDragTem) {\n mouseDrag ? addEvents(container, dragEvents) : removeEvents(container, dragEvents);\n }\n\n if (autoplay !== autoplayTem) {\n if (autoplay) {\n if (autoplayButton) {\n showElement(autoplayButton);\n }\n\n if (!animating && !autoplayUserPaused) {\n startAutoplay();\n }\n } else {\n if (autoplayButton) {\n hideElement(autoplayButton);\n }\n\n if (animating) {\n stopAutoplay();\n }\n }\n }\n\n if (autoplayHoverPause !== autoplayHoverPauseTem) {\n autoplayHoverPause ? addEvents(container, hoverEvents) : removeEvents(container, hoverEvents);\n }\n\n if (autoplayResetOnVisibility !== autoplayResetOnVisibilityTem) {\n autoplayResetOnVisibility ? addEvents(doc, visibilityEvent) : removeEvents(doc, visibilityEvent);\n }\n\n if (bpChanged) {\n if (fixedWidth !== fixedWidthTem || center !== centerTem) {\n needContainerTransform = true;\n }\n\n if (autoHeight !== autoHeightTem) {\n if (!autoHeight) {\n innerWrapper.style.height = '';\n }\n }\n\n if (controls && controlsText !== controlsTextTem) {\n prevButton.innerHTML = controlsText[0];\n nextButton.innerHTML = controlsText[1];\n }\n\n if (autoplayButton && autoplayText !== autoplayTextTem) {\n var i = autoplay ? 1 : 0,\n html = autoplayButton.innerHTML,\n len = html.length - autoplayTextTem[i].length;\n\n if (html.substring(len) === autoplayTextTem[i]) {\n autoplayButton.innerHTML = html.substring(0, len) + autoplayText[i];\n }\n }\n } else {\n if (center && (fixedWidth || autoWidth)) {\n needContainerTransform = true;\n }\n }\n\n if (itemsChanged || fixedWidth && !autoWidth) {\n pages = getPages();\n updateNavVisibility();\n }\n\n indChanged = index !== indexTem;\n\n if (indChanged) {\n events.emit('indexChanged', info());\n needContainerTransform = true;\n } else if (itemsChanged) {\n if (!indChanged) {\n additionalUpdates();\n }\n } else if (fixedWidth || autoWidth) {\n doLazyLoad();\n updateSlideStatus();\n updateLiveRegion();\n }\n\n if (itemsChanged && !carousel) {\n updateGallerySlidePositions();\n }\n\n if (!disable && !freeze) {\n // non-mediaqueries: IE8\n if (bpChanged && !CSSMQ) {\n // middle wrapper styles\n // inner wrapper styles\n if (edgePadding !== edgePaddingTem || gutter !== gutterTem) {\n innerWrapper.style.cssText = getInnerWrapperStyles(edgePadding, gutter, fixedWidth, speed, autoHeight);\n }\n\n if (horizontal) {\n // container styles\n if (carousel) {\n container.style.width = getContainerWidth(fixedWidth, gutter, items);\n } // slide styles\n\n\n var str = getSlideWidthStyle(fixedWidth, gutter, items) + getSlideGutterStyle(gutter); // remove the last line and\n // add new styles\n\n removeCSSRule(sheet, getCssRulesLength(sheet) - 1);\n addCSSRule(sheet, '#' + slideId + ' > .tns-item', str, getCssRulesLength(sheet));\n }\n } // auto height\n\n\n if (autoHeight) {\n doAutoHeight();\n }\n\n if (needContainerTransform) {\n doContainerTransformSilent();\n indexCached = index;\n }\n }\n\n if (bpChanged) {\n events.emit('newBreakpointEnd', info(e));\n }\n } // === INITIALIZATION FUNCTIONS === //\n\n\n function getFreeze() {\n if (!fixedWidth && !autoWidth) {\n var a = center ? items - (items - 1) / 2 : items;\n return slideCount <= a;\n }\n\n var width = fixedWidth ? (fixedWidth + gutter) * slideCount : slidePositions[slideCount],\n vp = edgePadding ? viewport + edgePadding * 2 : viewport + gutter;\n\n if (center) {\n vp -= fixedWidth ? (viewport - fixedWidth) / 2 : (viewport - (slidePositions[index + 1] - slidePositions[index] - gutter)) / 2;\n }\n\n return width <= vp;\n }\n\n function setBreakpointZone() {\n breakpointZone = 0;\n\n for (var bp in responsive) {\n bp = parseInt(bp); // convert string to number\n\n if (windowWidth >= bp) {\n breakpointZone = bp;\n }\n }\n } // (slideBy, indexMin, indexMax) => index\n\n\n var updateIndex = function () {\n return loop ? carousel ? // loop + carousel\n function () {\n var leftEdge = indexMin,\n rightEdge = indexMax;\n leftEdge += slideBy;\n rightEdge -= slideBy; // adjust edges when has edge paddings\n // or fixed-width slider with extra space on the right side\n\n if (edgePadding) {\n leftEdge += 1;\n rightEdge -= 1;\n } else if (fixedWidth) {\n if ((viewport + gutter) % (fixedWidth + gutter)) {\n rightEdge -= 1;\n }\n }\n\n if (cloneCount) {\n if (index > rightEdge) {\n index -= slideCount;\n } else if (index < leftEdge) {\n index += slideCount;\n }\n }\n } : // loop + gallery\n function () {\n if (index > indexMax) {\n while (index >= indexMin + slideCount) {\n index -= slideCount;\n }\n } else if (index < indexMin) {\n while (index <= indexMax - slideCount) {\n index += slideCount;\n }\n }\n } : // non-loop\n function () {\n index = Math.max(indexMin, Math.min(indexMax, index));\n };\n }();\n\n function disableUI() {\n if (!autoplay && autoplayButton) {\n hideElement(autoplayButton);\n }\n\n if (!nav && navContainer) {\n hideElement(navContainer);\n }\n\n if (!controls) {\n if (controlsContainer) {\n hideElement(controlsContainer);\n } else {\n if (prevButton) {\n hideElement(prevButton);\n }\n\n if (nextButton) {\n hideElement(nextButton);\n }\n }\n }\n }\n\n function enableUI() {\n if (autoplay && autoplayButton) {\n showElement(autoplayButton);\n }\n\n if (nav && navContainer) {\n showElement(navContainer);\n }\n\n if (controls) {\n if (controlsContainer) {\n showElement(controlsContainer);\n } else {\n if (prevButton) {\n showElement(prevButton);\n }\n\n if (nextButton) {\n showElement(nextButton);\n }\n }\n }\n }\n\n function freezeSlider() {\n if (frozen) {\n return;\n } // remove edge padding from inner wrapper\n\n\n if (edgePadding) {\n innerWrapper.style.margin = '0px';\n } // add class tns-transparent to cloned slides\n\n\n if (cloneCount) {\n var str = 'tns-transparent';\n\n for (var i = cloneCount; i--;) {\n if (carousel) {\n addClass(slideItems[i], str);\n }\n\n addClass(slideItems[slideCountNew - i - 1], str);\n }\n } // update tools\n\n\n disableUI();\n frozen = true;\n }\n\n function unfreezeSlider() {\n if (!frozen) {\n return;\n } // restore edge padding for inner wrapper\n // for mordern browsers\n\n\n if (edgePadding && CSSMQ) {\n innerWrapper.style.margin = '';\n } // remove class tns-transparent to cloned slides\n\n\n if (cloneCount) {\n var str = 'tns-transparent';\n\n for (var i = cloneCount; i--;) {\n if (carousel) {\n removeClass(slideItems[i], str);\n }\n\n removeClass(slideItems[slideCountNew - i - 1], str);\n }\n } // update tools\n\n\n enableUI();\n frozen = false;\n }\n\n function disableSlider() {\n if (disabled) {\n return;\n }\n\n sheet.disabled = true;\n container.className = container.className.replace(newContainerClasses.substring(1), '');\n removeAttrs(container, ['style']);\n\n if (loop) {\n for (var j = cloneCount; j--;) {\n if (carousel) {\n hideElement(slideItems[j]);\n }\n\n hideElement(slideItems[slideCountNew - j - 1]);\n }\n } // vertical slider\n\n\n if (!horizontal || !carousel) {\n removeAttrs(innerWrapper, ['style']);\n } // gallery\n\n\n if (!carousel) {\n for (var i = index, l = index + slideCount; i < l; i++) {\n var item = slideItems[i];\n removeAttrs(item, ['style']);\n removeClass(item, animateIn);\n removeClass(item, animateNormal);\n }\n } // update tools\n\n\n disableUI();\n disabled = true;\n }\n\n function enableSlider() {\n if (!disabled) {\n return;\n }\n\n sheet.disabled = false;\n container.className += newContainerClasses;\n doContainerTransformSilent();\n\n if (loop) {\n for (var j = cloneCount; j--;) {\n if (carousel) {\n showElement(slideItems[j]);\n }\n\n showElement(slideItems[slideCountNew - j - 1]);\n }\n } // gallery\n\n\n if (!carousel) {\n for (var i = index, l = index + slideCount; i < l; i++) {\n var item = slideItems[i],\n classN = i < index + items ? animateIn : animateNormal;\n item.style.left = (i - index) * 100 / items + '%';\n addClass(item, classN);\n }\n } // update tools\n\n\n enableUI();\n disabled = false;\n }\n\n function updateLiveRegion() {\n var str = getLiveRegionStr();\n\n if (liveregionCurrent.innerHTML !== str) {\n liveregionCurrent.innerHTML = str;\n }\n }\n\n function getLiveRegionStr() {\n var arr = getVisibleSlideRange(),\n start = arr[0] + 1,\n end = arr[1] + 1;\n return start === end ? start + '' : start + ' to ' + end;\n }\n\n function getVisibleSlideRange(val) {\n if (val == null) {\n val = getContainerTransformValue();\n }\n\n var start = index,\n end,\n rangestart,\n rangeend; // get range start, range end for autoWidth and fixedWidth\n\n if (center || edgePadding) {\n if (autoWidth || fixedWidth) {\n rangestart = -(parseFloat(val) + edgePadding);\n rangeend = rangestart + viewport + edgePadding * 2;\n }\n } else {\n if (autoWidth) {\n rangestart = slidePositions[index];\n rangeend = rangestart + viewport;\n }\n } // get start, end\n // - check auto width\n\n\n if (autoWidth) {\n slidePositions.forEach(function (point, i) {\n if (i < slideCountNew) {\n if ((center || edgePadding) && point <= rangestart + 0.5) {\n start = i;\n }\n\n if (rangeend - point >= 0.5) {\n end = i;\n }\n }\n }); // - check percentage width, fixed width\n } else {\n if (fixedWidth) {\n var cell = fixedWidth + gutter;\n\n if (center || edgePadding) {\n start = Math.floor(rangestart / cell);\n end = Math.ceil(rangeend / cell - 1);\n } else {\n end = start + Math.ceil(viewport / cell) - 1;\n }\n } else {\n if (center || edgePadding) {\n var a = items - 1;\n\n if (center) {\n start -= a / 2;\n end = index + a / 2;\n } else {\n end = index + a;\n }\n\n if (edgePadding) {\n var b = edgePadding * items / viewport;\n start -= b;\n end += b;\n }\n\n start = Math.floor(start);\n end = Math.ceil(end);\n } else {\n end = start + items - 1;\n }\n }\n\n start = Math.max(start, 0);\n end = Math.min(end, slideCountNew - 1);\n }\n\n return [start, end];\n }\n\n function doLazyLoad() {\n if (lazyload && !disable) {\n var arg = getVisibleSlideRange();\n arg.push(lazyloadSelector);\n getImageArray.apply(null, arg).forEach(function (img) {\n if (!hasClass(img, imgCompleteClass)) {\n // stop propagation transitionend event to container\n var eve = {};\n\n eve[TRANSITIONEND] = function (e) {\n e.stopPropagation();\n };\n\n addEvents(img, eve);\n addEvents(img, imgEvents); // update src\n\n img.src = getAttr(img, 'data-src'); // update srcset\n\n var srcset = getAttr(img, 'data-srcset');\n\n if (srcset) {\n img.srcset = srcset;\n }\n\n addClass(img, 'loading');\n }\n });\n }\n }\n\n function onImgLoaded(e) {\n imgLoaded(getTarget(e));\n }\n\n function onImgFailed(e) {\n imgFailed(getTarget(e));\n }\n\n function imgLoaded(img) {\n addClass(img, 'loaded');\n imgCompleted(img);\n }\n\n function imgFailed(img) {\n addClass(img, 'failed');\n imgCompleted(img);\n }\n\n function imgCompleted(img) {\n addClass(img, imgCompleteClass);\n removeClass(img, 'loading');\n removeEvents(img, imgEvents);\n }\n\n function getImageArray(start, end, imgSelector) {\n var imgs = [];\n\n if (!imgSelector) {\n imgSelector = 'img';\n }\n\n while (start <= end) {\n forEach(slideItems[start].querySelectorAll(imgSelector), function (img) {\n imgs.push(img);\n });\n start++;\n }\n\n return imgs;\n } // check if all visible images are loaded\n // and update container height if it's done\n\n\n function doAutoHeight() {\n var imgs = getImageArray.apply(null, getVisibleSlideRange());\n raf(function () {\n imgsLoadedCheck(imgs, updateInnerWrapperHeight);\n });\n }\n\n function imgsLoadedCheck(imgs, cb) {\n // execute callback function if all images are complete\n if (imgsComplete) {\n return cb();\n } // check image classes\n\n\n imgs.forEach(function (img, index) {\n if (!lazyload && img.complete) {\n imgCompleted(img);\n } // Check image.complete\n\n\n if (hasClass(img, imgCompleteClass)) {\n imgs.splice(index, 1);\n }\n }); // execute callback function if selected images are all complete\n\n if (!imgs.length) {\n return cb();\n } // otherwise execute this functiona again\n\n\n raf(function () {\n imgsLoadedCheck(imgs, cb);\n });\n }\n\n function additionalUpdates() {\n doLazyLoad();\n updateSlideStatus();\n updateLiveRegion();\n updateControlsStatus();\n updateNavStatus();\n }\n\n function update_carousel_transition_duration() {\n if (carousel && autoHeight) {\n middleWrapper.style[TRANSITIONDURATION] = speed / 1000 + 's';\n }\n }\n\n function getMaxSlideHeight(slideStart, slideRange) {\n var heights = [];\n\n for (var i = slideStart, l = Math.min(slideStart + slideRange, slideCountNew); i < l; i++) {\n heights.push(slideItems[i].offsetHeight);\n }\n\n return Math.max.apply(null, heights);\n } // update inner wrapper height\n // 1. get the max-height of the visible slides\n // 2. set transitionDuration to speed\n // 3. update inner wrapper height to max-height\n // 4. set transitionDuration to 0s after transition done\n\n\n function updateInnerWrapperHeight() {\n var maxHeight = autoHeight ? getMaxSlideHeight(index, items) : getMaxSlideHeight(cloneCount, slideCount),\n wp = middleWrapper ? middleWrapper : innerWrapper;\n\n if (wp.style.height !== maxHeight) {\n wp.style.height = maxHeight + 'px';\n }\n } // get the distance from the top edge of the first slide to each slide\n // (init) => slidePositions\n\n\n function setSlidePositions() {\n slidePositions = [0];\n var attr = horizontal ? 'left' : 'top',\n attr2 = horizontal ? 'right' : 'bottom',\n base = slideItems[0].getBoundingClientRect()[attr];\n forEach(slideItems, function (item, i) {\n // skip the first slide\n if (i) {\n slidePositions.push(item.getBoundingClientRect()[attr] - base);\n } // add the end edge\n\n\n if (i === slideCountNew - 1) {\n slidePositions.push(item.getBoundingClientRect()[attr2] - base);\n }\n });\n } // update slide\n\n\n function updateSlideStatus() {\n var range = getVisibleSlideRange(),\n start = range[0],\n end = range[1];\n forEach(slideItems, function (item, i) {\n // show slides\n if (i >= start && i <= end) {\n if (hasAttr(item, 'aria-hidden')) {\n removeAttrs(item, ['aria-hidden', 'tabindex']);\n addClass(item, slideActiveClass);\n } // hide slides\n\n } else {\n if (!hasAttr(item, 'aria-hidden')) {\n setAttrs(item, {\n 'aria-hidden': 'true',\n 'tabindex': '-1'\n });\n removeClass(item, slideActiveClass);\n }\n }\n });\n } // gallery: update slide position\n\n\n function updateGallerySlidePositions() {\n var l = index + Math.min(slideCount, items);\n\n for (var i = slideCountNew; i--;) {\n var item = slideItems[i];\n\n if (i >= index && i < l) {\n // add transitions to visible slides when adjusting their positions\n addClass(item, 'tns-moving');\n item.style.left = (i - index) * 100 / items + '%';\n addClass(item, animateIn);\n removeClass(item, animateNormal);\n } else if (item.style.left) {\n item.style.left = '';\n addClass(item, animateNormal);\n removeClass(item, animateIn);\n } // remove outlet animation\n\n\n removeClass(item, animateOut);\n } // removing '.tns-moving'\n\n\n setTimeout(function () {\n forEach(slideItems, function (el) {\n removeClass(el, 'tns-moving');\n });\n }, 300);\n } // set tabindex on Nav\n\n\n function updateNavStatus() {\n // get current nav\n if (nav) {\n navCurrentIndex = navClicked >= 0 ? navClicked : getCurrentNavIndex();\n navClicked = -1;\n\n if (navCurrentIndex !== navCurrentIndexCached) {\n var navPrev = navItems[navCurrentIndexCached],\n navCurrent = navItems[navCurrentIndex];\n setAttrs(navPrev, {\n 'tabindex': '-1',\n 'aria-label': navStr + (navCurrentIndexCached + 1)\n });\n removeClass(navPrev, navActiveClass);\n setAttrs(navCurrent, {\n 'aria-label': navStr + (navCurrentIndex + 1) + navStrCurrent\n });\n removeAttrs(navCurrent, 'tabindex');\n addClass(navCurrent, navActiveClass);\n navCurrentIndexCached = navCurrentIndex;\n }\n }\n }\n\n function getLowerCaseNodeName(el) {\n return el.nodeName.toLowerCase();\n }\n\n function isButton(el) {\n return getLowerCaseNodeName(el) === 'button';\n }\n\n function isAriaDisabled(el) {\n return el.getAttribute('aria-disabled') === 'true';\n }\n\n function disEnableElement(isButton, el, val) {\n if (isButton) {\n el.disabled = val;\n } else {\n el.setAttribute('aria-disabled', val.toString());\n }\n } // set 'disabled' to true on controls when reach the edges\n\n\n function updateControlsStatus() {\n if (!controls || rewind || loop) {\n return;\n }\n\n var prevDisabled = prevIsButton ? prevButton.disabled : isAriaDisabled(prevButton),\n nextDisabled = nextIsButton ? nextButton.disabled : isAriaDisabled(nextButton),\n disablePrev = index <= indexMin ? true : false,\n disableNext = !rewind && index >= indexMax ? true : false;\n\n if (disablePrev && !prevDisabled) {\n disEnableElement(prevIsButton, prevButton, true);\n }\n\n if (!disablePrev && prevDisabled) {\n disEnableElement(prevIsButton, prevButton, false);\n }\n\n if (disableNext && !nextDisabled) {\n disEnableElement(nextIsButton, nextButton, true);\n }\n\n if (!disableNext && nextDisabled) {\n disEnableElement(nextIsButton, nextButton, false);\n }\n } // set duration\n\n\n function resetDuration(el, str) {\n if (TRANSITIONDURATION) {\n el.style[TRANSITIONDURATION] = str;\n }\n }\n\n function getSliderWidth() {\n return fixedWidth ? (fixedWidth + gutter) * slideCountNew : slidePositions[slideCountNew];\n }\n\n function getCenterGap(num) {\n if (num == null) {\n num = index;\n }\n\n var gap = edgePadding ? gutter : 0;\n return autoWidth ? (viewport - gap - (slidePositions[num + 1] - slidePositions[num] - gutter)) / 2 : fixedWidth ? (viewport - fixedWidth) / 2 : (items - 1) / 2;\n }\n\n function getRightBoundary() {\n var gap = edgePadding ? gutter : 0,\n result = viewport + gap - getSliderWidth();\n\n if (center && !loop) {\n result = fixedWidth ? -(fixedWidth + gutter) * (slideCountNew - 1) - getCenterGap() : getCenterGap(slideCountNew - 1) - slidePositions[slideCountNew - 1];\n }\n\n if (result > 0) {\n result = 0;\n }\n\n return result;\n }\n\n function getContainerTransformValue(num) {\n if (num == null) {\n num = index;\n }\n\n var val;\n\n if (horizontal && !autoWidth) {\n if (fixedWidth) {\n val = -(fixedWidth + gutter) * num;\n\n if (center) {\n val += getCenterGap();\n }\n } else {\n var denominator = TRANSFORM ? slideCountNew : items;\n\n if (center) {\n num -= getCenterGap();\n }\n\n val = -num * 100 / denominator;\n }\n } else {\n val = -slidePositions[num];\n\n if (center && autoWidth) {\n val += getCenterGap();\n }\n }\n\n if (hasRightDeadZone) {\n val = Math.max(val, rightBoundary);\n }\n\n val += horizontal && !autoWidth && !fixedWidth ? '%' : 'px';\n return val;\n }\n\n function doContainerTransformSilent(val) {\n resetDuration(container, '0s');\n doContainerTransform(val);\n }\n\n function doContainerTransform(val) {\n if (val == null) {\n val = getContainerTransformValue();\n }\n\n container.style[transformAttr] = transformPrefix + val + transformPostfix;\n }\n\n function animateSlide(number, classOut, classIn, isOut) {\n var l = number + items;\n\n if (!loop) {\n l = Math.min(l, slideCountNew);\n }\n\n for (var i = number; i < l; i++) {\n var item = slideItems[i]; // set item positions\n\n if (!isOut) {\n item.style.left = (i - index) * 100 / items + '%';\n }\n\n if (animateDelay && TRANSITIONDELAY) {\n item.style[TRANSITIONDELAY] = item.style[ANIMATIONDELAY] = animateDelay * (i - number) / 1000 + 's';\n }\n\n removeClass(item, classOut);\n addClass(item, classIn);\n\n if (isOut) {\n slideItemsOut.push(item);\n }\n }\n } // make transfer after click/drag:\n // 1. change 'transform' property for mordern browsers\n // 2. change 'left' property for legacy browsers\n\n\n var transformCore = function () {\n return carousel ? function () {\n resetDuration(container, '');\n\n if (TRANSITIONDURATION || !speed) {\n // for morden browsers with non-zero duration or\n // zero duration for all browsers\n doContainerTransform(); // run fallback function manually\n // when duration is 0 / container is hidden\n\n if (!speed || !isVisible(container)) {\n onTransitionEnd();\n }\n } else {\n // for old browser with non-zero duration\n jsTransform(container, transformAttr, transformPrefix, transformPostfix, getContainerTransformValue(), speed, onTransitionEnd);\n }\n\n if (!horizontal) {\n updateContentWrapperHeight();\n }\n } : function () {\n slideItemsOut = [];\n var eve = {};\n eve[TRANSITIONEND] = eve[ANIMATIONEND] = onTransitionEnd;\n removeEvents(slideItems[indexCached], eve);\n addEvents(slideItems[index], eve);\n animateSlide(indexCached, animateIn, animateOut, true);\n animateSlide(index, animateNormal, animateIn); // run fallback function manually\n // when transition or animation not supported / duration is 0\n\n if (!TRANSITIONEND || !ANIMATIONEND || !speed || !isVisible(container)) {\n onTransitionEnd();\n }\n };\n }();\n\n function render(e, sliderMoved) {\n if (updateIndexBeforeTransform) {\n updateIndex();\n } // render when slider was moved (touch or drag) even though index may not change\n\n\n if (index !== indexCached || sliderMoved) {\n // events\n events.emit('indexChanged', info());\n events.emit('transitionStart', info());\n\n if (autoHeight) {\n doAutoHeight();\n } // pause autoplay when click or keydown from user\n\n\n if (animating && e && ['click', 'keydown'].indexOf(e.type) >= 0) {\n stopAutoplay();\n }\n\n running = true;\n transformCore();\n }\n }\n /*\n * Transfer prefixed properties to the same format\n * CSS: -Webkit-Transform => webkittransform\n * JS: WebkitTransform => webkittransform\n * @param {string} str - property\n *\n */\n\n\n function strTrans(str) {\n return str.toLowerCase().replace(/-/g, '');\n } // AFTER TRANSFORM\n // Things need to be done after a transfer:\n // 1. check index\n // 2. add classes to visible slide\n // 3. disable controls buttons when reach the first/last slide in non-loop slider\n // 4. update nav status\n // 5. lazyload images\n // 6. update container height\n\n\n function onTransitionEnd(event) {\n // check running on gallery mode\n // make sure trantionend/animationend events run only once\n if (carousel || running) {\n events.emit('transitionEnd', info(event));\n\n if (!carousel && slideItemsOut.length > 0) {\n for (var i = 0; i < slideItemsOut.length; i++) {\n var item = slideItemsOut[i]; // set item positions\n\n item.style.left = '';\n\n if (ANIMATIONDELAY && TRANSITIONDELAY) {\n item.style[ANIMATIONDELAY] = '';\n item.style[TRANSITIONDELAY] = '';\n }\n\n removeClass(item, animateOut);\n addClass(item, animateNormal);\n }\n }\n /* update slides, nav, controls after checking ...\n * => legacy browsers who don't support 'event'\n * have to check event first, otherwise event.target will cause an error\n * => or 'gallery' mode:\n * + event target is slide item\n * => or 'carousel' mode:\n * + event target is container,\n * + event.property is the same with transform attribute\n */\n\n\n if (!event || !carousel && event.target.parentNode === container || event.target === container && strTrans(event.propertyName) === strTrans(transformAttr)) {\n if (!updateIndexBeforeTransform) {\n var indexTem = index;\n updateIndex();\n\n if (index !== indexTem) {\n events.emit('indexChanged', info());\n doContainerTransformSilent();\n }\n }\n\n if (nested === 'inner') {\n events.emit('innerLoaded', info());\n }\n\n running = false;\n indexCached = index;\n }\n }\n } // # ACTIONS\n\n\n function goTo(targetIndex, e) {\n if (freeze) {\n return;\n } // prev slideBy\n\n\n if (targetIndex === 'prev') {\n onControlsClick(e, -1); // next slideBy\n } else if (targetIndex === 'next') {\n onControlsClick(e, 1); // go to exact slide\n } else {\n if (running) {\n if (preventActionWhenRunning) {\n return;\n } else {\n onTransitionEnd();\n }\n }\n\n var absIndex = getAbsIndex(),\n indexGap = 0;\n\n if (targetIndex === 'first') {\n indexGap = -absIndex;\n } else if (targetIndex === 'last') {\n indexGap = carousel ? slideCount - items - absIndex : slideCount - 1 - absIndex;\n } else {\n if (typeof targetIndex !== 'number') {\n targetIndex = parseInt(targetIndex);\n }\n\n if (!isNaN(targetIndex)) {\n // from directly called goTo function\n if (!e) {\n targetIndex = Math.max(0, Math.min(slideCount - 1, targetIndex));\n }\n\n indexGap = targetIndex - absIndex;\n }\n } // gallery: make sure new page won't overlap with current page\n\n\n if (!carousel && indexGap && Math.abs(indexGap) < items) {\n var factor = indexGap > 0 ? 1 : -1;\n indexGap += index + indexGap - slideCount >= indexMin ? slideCount * factor : slideCount * 2 * factor * -1;\n }\n\n index += indexGap; // make sure index is in range\n\n if (carousel && loop) {\n if (index < indexMin) {\n index += slideCount;\n }\n\n if (index > indexMax) {\n index -= slideCount;\n }\n } // if index is changed, start rendering\n\n\n if (getAbsIndex(index) !== getAbsIndex(indexCached)) {\n render(e);\n }\n }\n } // on controls click\n\n\n function onControlsClick(e, dir) {\n if (running) {\n if (preventActionWhenRunning) {\n return;\n } else {\n onTransitionEnd();\n }\n }\n\n var passEventObject;\n\n if (!dir) {\n e = getEvent(e);\n var target = getTarget(e);\n\n while (target !== controlsContainer && [prevButton, nextButton].indexOf(target) < 0) {\n target = target.parentNode;\n }\n\n var targetIn = [prevButton, nextButton].indexOf(target);\n\n if (targetIn >= 0) {\n passEventObject = true;\n dir = targetIn === 0 ? -1 : 1;\n }\n }\n\n if (rewind) {\n if (index === indexMin && dir === -1) {\n goTo('last', e);\n return;\n } else if (index === indexMax && dir === 1) {\n goTo('first', e);\n return;\n }\n }\n\n if (dir) {\n index += slideBy * dir;\n\n if (autoWidth) {\n index = Math.floor(index);\n } // pass e when click control buttons or keydown\n\n\n render(passEventObject || e && e.type === 'keydown' ? e : null);\n }\n } // on nav click\n\n\n function onNavClick(e) {\n if (running) {\n if (preventActionWhenRunning) {\n return;\n } else {\n onTransitionEnd();\n }\n }\n\n e = getEvent(e);\n var target = getTarget(e),\n navIndex; // find the clicked nav item\n\n while (target !== navContainer && !hasAttr(target, 'data-nav')) {\n target = target.parentNode;\n }\n\n if (hasAttr(target, 'data-nav')) {\n var navIndex = navClicked = Number(getAttr(target, 'data-nav')),\n targetIndexBase = fixedWidth || autoWidth ? navIndex * slideCount / pages : navIndex * items,\n targetIndex = navAsThumbnails ? navIndex : Math.min(Math.ceil(targetIndexBase), slideCount - 1);\n goTo(targetIndex, e);\n\n if (navCurrentIndex === navIndex) {\n if (animating) {\n stopAutoplay();\n }\n\n navClicked = -1; // reset navClicked\n }\n }\n } // autoplay functions\n\n\n function setAutoplayTimer() {\n autoplayTimer = setInterval(function () {\n onControlsClick(null, autoplayDirection);\n }, autoplayTimeout);\n animating = true;\n }\n\n function stopAutoplayTimer() {\n clearInterval(autoplayTimer);\n animating = false;\n }\n\n function updateAutoplayButton(action, txt) {\n setAttrs(autoplayButton, {\n 'data-action': action\n });\n autoplayButton.innerHTML = autoplayHtmlStrings[0] + action + autoplayHtmlStrings[1] + txt;\n }\n\n function startAutoplay() {\n setAutoplayTimer();\n\n if (autoplayButton) {\n updateAutoplayButton('stop', autoplayText[1]);\n }\n }\n\n function stopAutoplay() {\n stopAutoplayTimer();\n\n if (autoplayButton) {\n updateAutoplayButton('start', autoplayText[0]);\n }\n } // programaitcally play/pause the slider\n\n\n function play() {\n if (autoplay && !animating) {\n startAutoplay();\n autoplayUserPaused = false;\n }\n }\n\n function pause() {\n if (animating) {\n stopAutoplay();\n autoplayUserPaused = true;\n }\n }\n\n function toggleAutoplay() {\n if (animating) {\n stopAutoplay();\n autoplayUserPaused = true;\n } else {\n startAutoplay();\n autoplayUserPaused = false;\n }\n }\n\n function onVisibilityChange() {\n if (doc.hidden) {\n if (animating) {\n stopAutoplayTimer();\n autoplayVisibilityPaused = true;\n }\n } else if (autoplayVisibilityPaused) {\n setAutoplayTimer();\n autoplayVisibilityPaused = false;\n }\n }\n\n function mouseoverPause() {\n if (animating) {\n stopAutoplayTimer();\n autoplayHoverPaused = true;\n }\n }\n\n function mouseoutRestart() {\n if (autoplayHoverPaused) {\n setAutoplayTimer();\n autoplayHoverPaused = false;\n }\n } // keydown events on document\n\n\n function onDocumentKeydown(e) {\n e = getEvent(e);\n var keyIndex = [KEYS.LEFT, KEYS.RIGHT].indexOf(e.keyCode);\n\n if (keyIndex >= 0) {\n onControlsClick(e, keyIndex === 0 ? -1 : 1);\n }\n } // on key control\n\n\n function onControlsKeydown(e) {\n e = getEvent(e);\n var keyIndex = [KEYS.LEFT, KEYS.RIGHT].indexOf(e.keyCode);\n\n if (keyIndex >= 0) {\n if (keyIndex === 0) {\n if (!prevButton.disabled) {\n onControlsClick(e, -1);\n }\n } else if (!nextButton.disabled) {\n onControlsClick(e, 1);\n }\n }\n } // set focus\n\n\n function setFocus(el) {\n el.focus();\n } // on key nav\n\n\n function onNavKeydown(e) {\n e = getEvent(e);\n var curElement = doc.activeElement;\n\n if (!hasAttr(curElement, 'data-nav')) {\n return;\n } // var code = e.keyCode,\n\n\n var keyIndex = [KEYS.LEFT, KEYS.RIGHT, KEYS.ENTER, KEYS.SPACE].indexOf(e.keyCode),\n navIndex = Number(getAttr(curElement, 'data-nav'));\n\n if (keyIndex >= 0) {\n if (keyIndex === 0) {\n if (navIndex > 0) {\n setFocus(navItems[navIndex - 1]);\n }\n } else if (keyIndex === 1) {\n if (navIndex < pages - 1) {\n setFocus(navItems[navIndex + 1]);\n }\n } else {\n navClicked = navIndex;\n goTo(navIndex, e);\n }\n }\n }\n\n function getEvent(e) {\n e = e || win.event;\n return isTouchEvent(e) ? e.changedTouches[0] : e;\n }\n\n function getTarget(e) {\n return e.target || win.event.srcElement;\n }\n\n function isTouchEvent(e) {\n return e.type.indexOf('touch') >= 0;\n }\n\n function preventDefaultBehavior(e) {\n e.preventDefault ? e.preventDefault() : e.returnValue = false;\n }\n\n function getMoveDirectionExpected() {\n return getTouchDirection(toDegree(lastPosition.y - initPosition.y, lastPosition.x - initPosition.x), swipeAngle) === options.axis;\n }\n\n function onPanStart(e) {\n if (running) {\n if (preventActionWhenRunning) {\n return;\n } else {\n onTransitionEnd();\n }\n }\n\n if (autoplay && animating) {\n stopAutoplayTimer();\n }\n\n panStart = true;\n\n if (rafIndex) {\n caf(rafIndex);\n rafIndex = null;\n }\n\n var $ = getEvent(e);\n events.emit(isTouchEvent(e) ? 'touchStart' : 'dragStart', info(e));\n\n if (!isTouchEvent(e) && ['img', 'a'].indexOf(getLowerCaseNodeName(getTarget(e))) >= 0) {\n preventDefaultBehavior(e);\n }\n\n lastPosition.x = initPosition.x = $.clientX;\n lastPosition.y = initPosition.y = $.clientY;\n\n if (carousel) {\n translateInit = parseFloat(container.style[transformAttr].replace(transformPrefix, ''));\n resetDuration(container, '0s');\n }\n }\n\n function onPanMove(e) {\n if (panStart) {\n var $ = getEvent(e);\n lastPosition.x = $.clientX;\n lastPosition.y = $.clientY;\n\n if (carousel) {\n if (!rafIndex) {\n rafIndex = raf(function () {\n panUpdate(e);\n });\n }\n } else {\n if (moveDirectionExpected === '?') {\n moveDirectionExpected = getMoveDirectionExpected();\n }\n\n if (moveDirectionExpected) {\n preventScroll = true;\n }\n }\n\n if ((typeof e.cancelable !== 'boolean' || e.cancelable) && preventScroll) {\n e.preventDefault();\n }\n }\n }\n\n function panUpdate(e) {\n if (!moveDirectionExpected) {\n panStart = false;\n return;\n }\n\n caf(rafIndex);\n\n if (panStart) {\n rafIndex = raf(function () {\n panUpdate(e);\n });\n }\n\n if (moveDirectionExpected === '?') {\n moveDirectionExpected = getMoveDirectionExpected();\n }\n\n if (moveDirectionExpected) {\n if (!preventScroll && isTouchEvent(e)) {\n preventScroll = true;\n }\n\n try {\n if (e.type) {\n events.emit(isTouchEvent(e) ? 'touchMove' : 'dragMove', info(e));\n }\n } catch (err) {}\n\n var x = translateInit,\n dist = getDist(lastPosition, initPosition);\n\n if (!horizontal || fixedWidth || autoWidth) {\n x += dist;\n x += 'px';\n } else {\n var percentageX = TRANSFORM ? dist * items * 100 / ((viewport + gutter) * slideCountNew) : dist * 100 / (viewport + gutter);\n x += percentageX;\n x += '%';\n }\n\n container.style[transformAttr] = transformPrefix + x + transformPostfix;\n }\n }\n\n function onPanEnd(e) {\n if (panStart) {\n if (rafIndex) {\n caf(rafIndex);\n rafIndex = null;\n }\n\n if (carousel) {\n resetDuration(container, '');\n }\n\n panStart = false;\n var $ = getEvent(e);\n lastPosition.x = $.clientX;\n lastPosition.y = $.clientY;\n var dist = getDist(lastPosition, initPosition);\n\n if (Math.abs(dist)) {\n // drag vs click\n if (!isTouchEvent(e)) {\n // prevent \"click\"\n var target = getTarget(e);\n addEvents(target, {\n 'click': function preventClick(e) {\n preventDefaultBehavior(e);\n removeEvents(target, {\n 'click': preventClick\n });\n }\n });\n }\n\n if (carousel) {\n rafIndex = raf(function () {\n if (horizontal && !autoWidth) {\n var indexMoved = -dist * items / (viewport + gutter);\n indexMoved = dist > 0 ? Math.floor(indexMoved) : Math.ceil(indexMoved);\n index += indexMoved;\n } else {\n var moved = -(translateInit + dist);\n\n if (moved <= 0) {\n index = indexMin;\n } else if (moved >= slidePositions[slideCountNew - 1]) {\n index = indexMax;\n } else {\n var i = 0;\n\n while (i < slideCountNew && moved >= slidePositions[i]) {\n index = i;\n\n if (moved > slidePositions[i] && dist < 0) {\n index += 1;\n }\n\n i++;\n }\n }\n }\n\n render(e, dist);\n events.emit(isTouchEvent(e) ? 'touchEnd' : 'dragEnd', info(e));\n });\n } else {\n if (moveDirectionExpected) {\n onControlsClick(e, dist > 0 ? -1 : 1);\n }\n }\n }\n } // reset\n\n\n if (options.preventScrollOnTouch === 'auto') {\n preventScroll = false;\n }\n\n if (swipeAngle) {\n moveDirectionExpected = '?';\n }\n\n if (autoplay && !animating) {\n setAutoplayTimer();\n }\n } // === RESIZE FUNCTIONS === //\n // (slidePositions, index, items) => vertical_conentWrapper.height\n\n\n function updateContentWrapperHeight() {\n var wp = middleWrapper ? middleWrapper : innerWrapper;\n wp.style.height = slidePositions[index + items] - slidePositions[index] + 'px';\n }\n\n function getPages() {\n var rough = fixedWidth ? (fixedWidth + gutter) * slideCount / viewport : slideCount / items;\n return Math.min(Math.ceil(rough), slideCount);\n }\n /*\n * 1. update visible nav items list\n * 2. add \"hidden\" attributes to previous visible nav items\n * 3. remove \"hidden\" attrubutes to new visible nav items\n */\n\n\n function updateNavVisibility() {\n if (!nav || navAsThumbnails) {\n return;\n }\n\n if (pages !== pagesCached) {\n var min = pagesCached,\n max = pages,\n fn = showElement;\n\n if (pagesCached > pages) {\n min = pages;\n max = pagesCached;\n fn = hideElement;\n }\n\n while (min < max) {\n fn(navItems[min]);\n min++;\n } // cache pages\n\n\n pagesCached = pages;\n }\n }\n\n function info(e) {\n return {\n container: container,\n slideItems: slideItems,\n navContainer: navContainer,\n navItems: navItems,\n controlsContainer: controlsContainer,\n hasControls: hasControls,\n prevButton: prevButton,\n nextButton: nextButton,\n items: items,\n slideBy: slideBy,\n cloneCount: cloneCount,\n slideCount: slideCount,\n slideCountNew: slideCountNew,\n index: index,\n indexCached: indexCached,\n displayIndex: getCurrentSlide(),\n navCurrentIndex: navCurrentIndex,\n navCurrentIndexCached: navCurrentIndexCached,\n pages: pages,\n pagesCached: pagesCached,\n sheet: sheet,\n isOn: isOn,\n event: e || {}\n };\n }\n\n return {\n version: '2.9.3',\n getInfo: info,\n events: events,\n goTo: goTo,\n play: play,\n pause: pause,\n isOn: isOn,\n updateSliderHeight: updateInnerWrapperHeight,\n refresh: initSliderTransform,\n destroy: destroy,\n rebuild: function rebuild() {\n return tns(extend(options, optionsElements));\n }\n };\n};","// get css-calc \n// @return - false | calc | -webkit-calc | -moz-calc\n// @usage - var calc = getCalc(); \nimport { getBody } from './getBody.js';\nimport { setFakeBody } from './setFakeBody.js';\nimport { resetFakeBody } from './resetFakeBody.js';\nexport function calc() {\n var doc = document,\n body = getBody(),\n docOverflow = setFakeBody(body),\n div = doc.createElement('div'),\n result = false;\n body.appendChild(div);\n\n try {\n var str = '(10px * 10)',\n vals = ['calc' + str, '-moz-calc' + str, '-webkit-calc' + str],\n val;\n\n for (var i = 0; i < 3; i++) {\n val = vals[i];\n div.style.width = val;\n\n if (div.offsetWidth === 100) {\n result = val.replace(str, '');\n break;\n }\n }\n } catch (e) {}\n\n body.fake ? resetFakeBody(body, docOverflow) : div.remove();\n return result;\n}","// get subpixel support value\n// @return - boolean\nimport { getBody } from './getBody.js';\nimport { setFakeBody } from './setFakeBody.js';\nimport { resetFakeBody } from './resetFakeBody.js';\nexport function percentageLayout() {\n // check subpixel layout supporting\n var doc = document,\n body = getBody(),\n docOverflow = setFakeBody(body),\n wrapper = doc.createElement('div'),\n outer = doc.createElement('div'),\n str = '',\n count = 70,\n perPage = 3,\n supported = false;\n wrapper.className = \"tns-t-subp2\";\n outer.className = \"tns-t-ct\";\n\n for (var i = 0; i < count; i++) {\n str += '<div></div>';\n }\n\n outer.innerHTML = str;\n wrapper.appendChild(outer);\n body.appendChild(wrapper);\n supported = Math.abs(wrapper.getBoundingClientRect().left - outer.children[count - perPage].getBoundingClientRect().left) < 2;\n body.fake ? resetFakeBody(body, docOverflow) : wrapper.remove();\n return supported;\n}","import { getBody } from './getBody.js';\nimport { setFakeBody } from './setFakeBody.js';\nimport { resetFakeBody } from './resetFakeBody.js';\nexport function mediaquerySupport() {\n if (window.matchMedia || window.msMatchMedia) {\n return true;\n }\n\n var doc = document,\n body = getBody(),\n docOverflow = setFakeBody(body),\n div = doc.createElement('div'),\n style = doc.createElement('style'),\n rule = '@media all and (min-width:1px){.tns-mq-test{position:absolute}}',\n position;\n style.type = 'text/css';\n div.className = 'tns-mq-test';\n body.appendChild(style);\n body.appendChild(div);\n\n if (style.styleSheet) {\n style.styleSheet.cssText = rule;\n } else {\n style.appendChild(doc.createTextNode(rule));\n }\n\n position = window.getComputedStyle ? window.getComputedStyle(div).position : div.currentStyle['position'];\n body.fake ? resetFakeBody(body, docOverflow) : div.remove();\n return position === \"absolute\";\n}","import { getBody } from './getBody.js';\nimport { setFakeBody } from './setFakeBody.js';\nimport { resetFakeBody } from './resetFakeBody.js';\nexport function has3DTransforms(tf) {\n if (!tf) {\n return false;\n }\n\n if (!window.getComputedStyle) {\n return false;\n }\n\n var doc = document,\n body = getBody(),\n docOverflow = setFakeBody(body),\n el = doc.createElement('p'),\n has3d,\n cssTF = tf.length > 9 ? '-' + tf.slice(0, -9).toLowerCase() + '-' : '';\n cssTF += 'transform'; // Add it to the body to get the computed style\n\n body.insertBefore(el, null);\n el.style[tf] = 'translate3d(1px,1px,1px)';\n has3d = window.getComputedStyle(el).getPropertyValue(cssTF);\n body.fake ? resetFakeBody(body, docOverflow) : el.remove();\n return has3d !== undefined && has3d.length > 0 && has3d !== \"none\";\n}","// create and append style sheet\nexport function createStyleSheet(media, nonce) {\n // Create the <style> tag\n var style = document.createElement(\"style\"); // style.setAttribute(\"type\", \"text/css\");\n // Add a media (and/or media query) here if you'd like!\n // style.setAttribute(\"media\", \"screen\")\n // style.setAttribute(\"media\", \"only screen and (max-width : 1024px)\")\n\n if (media) {\n style.setAttribute(\"media\", media);\n } // Add nonce attribute for Content Security Policy\n\n\n if (nonce) {\n style.setAttribute(\"nonce\", nonce);\n } // WebKit hack :(\n // style.appendChild(document.createTextNode(\"\"));\n // Add the <style> element to the page\n\n\n document.querySelector('head').appendChild(style);\n return style.sheet ? style.sheet : style.styleSheet;\n}\n;","export function getSlideId() {\n var id = window.tnsId;\n window.tnsId = !id ? 1 : id + 1;\n return 'tns' + window.tnsId;\n}","export function jsTransform(element, attr, prefix, postfix, to, duration, callback) {\n var tick = Math.min(duration, 10),\n unit = to.indexOf('%') >= 0 ? '%' : 'px',\n to = to.replace(unit, ''),\n from = Number(element.style[attr].replace(prefix, '').replace(postfix, '').replace(unit, '')),\n positionTick = (to - from) / duration * tick,\n running;\n setTimeout(moveElement, tick);\n\n function moveElement() {\n duration -= tick;\n from += positionTick;\n element.style[attr] = prefix + from + unit + postfix;\n\n if (duration > 0) {\n setTimeout(moveElement, tick);\n } else {\n callback();\n }\n }\n}","// cross browsers addRule method\nimport { raf } from './raf.js';\nexport function removeCSSRule(sheet, index) {\n // return raf(function() {\n 'deleteRule' in sheet ? sheet.deleteRule(index) : sheet.removeRule(index); // });\n}","export function toDegree(y, x) {\n return Math.atan2(y, x) * (180 / Math.PI);\n}","export function getTouchDirection(angle, range) {\n var direction = false,\n gap = Math.abs(90 - Math.abs(angle));\n\n if (gap >= 90 - range) {\n direction = 'horizontal';\n } else if (gap <= range) {\n direction = 'vertical';\n }\n\n return direction;\n}","import { tns } from \"tiny-slider/src/tiny-slider\"\n\nconst DEFAULT_PARAMS = {\n autoplay: true,\n autoplayHoverPause: true,\n autoplayButtonOutput: false,\n arrowKeys: true,\n autoHeight: true,\n center: true,\n controlsText: ['', '']\n}\n\nlet slideshows = []\n\ndocument.addEventListener('DOMContentLoaded', init)\n\nexport default function init(params) {\n if (document.querySelectorAll('[data-slideshow]')) {\n [...document.querySelectorAll('[data-slideshow]')].map(slideshowEl => {\n const container = {container: '[data-slideshow=' + slideshowEl.getAttribute('data-slideshow') + ']'}\n const slideshow = tns({...DEFAULT_PARAMS, ...params, ...container})\n\n let resizeId\n\n slideshows.push(slideshowEl)\n window.addEventListener('resize', () => {\n clearTimeout(resizeId)\n resizeId = setTimeout(() => slideshow.updateSliderHeight(), 300)\n })\n })\n }\n}\n","import 'moment'\n\nwindow.StoreConnect = window.StoreConnect || {};\n\nwindow.StoreConnect.formatDateTime = function(value, targetInputId) {\n const date = moment(value);\n const targetInput = document.getElementById(targetInputId)\n\n if (date.isValid() && targetInput) {\n targetInput.value = date.toISOString();\n }\n};\n","document.addEventListener('DOMContentLoaded', init)\n\nexport default function init() {\n const trigger = document.querySelector('[data-theme-preview-recents]');\n if (trigger) {\n trigger.addEventListener('change', activateTheme);\n }\n}\n\nfunction activateTheme(e) {\n const target = e.currentTarget\n\n if (target.value) {\n const params = new URLSearchParams(window.location.search)\n params.delete(\"theme-preview\")\n params.append(\"theme-preview\", target.value)\n window.location.search = params;\n }\n}\n","require('@rails/ujs').start()\nrequire('@rails/activestorage').start()\n\nimport {} from '../store_connect/configure.js'\nimport {} from '../store_connect/address.js'\nimport {} from '../store_connect/date.js'\nimport {} from '../store_connect/payment_information.js'\nimport {} from '../store_connect/preview-switcher.js'\n","let selectedCategories = [];\nlet selectedBrands = [];\n\nfunction init() {\n [...document.querySelectorAll('[data-bundle-filter-option]')].map(option => {\n option.addEventListener('click', event => {\n updateSelectedState(event.target);\n filterProductList();\n });\n });\n}\n\nfunction updateSelectedState(option) {\n const brand = option.getAttribute('data-brand');\n const category = option.getAttribute('data-category');\n\n if (option.checked) {\n if (brand && !selectedBrands.includes(brand)) {\n selectedBrands.push(brand);\n }\n if (category && !selectedCategories.includes(category)) {\n selectedCategories.push(category);\n }\n } else {\n if (brand && selectedBrands.includes(brand)) {\n removeFromArray(brand, selectedBrands);\n }\n if (category && selectedCategories.includes(category)) {\n removeFromArray(category, selectedCategories);\n }\n }\n}\n\nfunction filterProductList() {\n const container = document.querySelector('[data-bundle-filterable]');\n\n [...container.querySelectorAll('[data-product-option-sfid]')].map(product => {\n const brandId = product.getAttribute('data-product-brand-sfid');\n const categoryId = product.getAttribute('data-category-sfid');\n\n if (selectedCategories.length === 0 && selectedBrands.length === 0) {\n product.classList.remove('is-hidden');\n } else if (\n (selectedBrands.includes(brandId) || selectedBrands.length === 0) &&\n (selectedCategories.includes(categoryId) || selectedCategories.length === 0)\n ) {\n product.classList.remove('is-hidden');\n } else {\n product.classList.add('is-hidden');\n }\n });\n}\n\nfunction removeFromArray(item, array) {\n const index = array.indexOf(item);\n\n if (index > -1) { array.splice(index, 1); }\n}\n\nexport default init;\n","import { addOrUpdateProductOption } from './bundle';\n\nlet triggers, inputs, prevSubset;\n\nfunction init(onChangeCallback) {\n triggers = [...document.querySelectorAll('[data-option-card-trigger]')];\n inputs = [...document.querySelectorAll('[data-single-option-radio-input]')];\n\n inputs.map(input => {\n input.addEventListener('change', event => {\n const id = event.currentTarget.value;\n const option = document.querySelector(`[data-single-option=\"${id}\"]`);\n const qtyInputs = [...document.querySelectorAll('[data-qty-picker] input')];\n const input = option.querySelector('[data-qty-picker] input');\n\n if (input) {\n qtyInputs.map(input => input.value = 0);\n input.value = 1;\n\n addOrUpdateProductOption(input.id, input.name + \"=\" + input.value);\n }\n });\n });\n\n triggers.map(trigger => {\n trigger.addEventListener('click', (event) => {\n choose(event, onChangeCallback);\n });\n });\n}\n\nfunction choose(event, onChangeCallback) {\n const choice = event.currentTarget.parentNode;\n const subset = choice.querySelector('[data-option-card-subset]');\n\n // We manually handle checking inputs\n // to avoid multiple events firing\n event.preventDefault();\n\n // Unselect other options\n triggers.map(trigger => {\n trigger.parentNode.classList.remove('is-selected')\n });\n\n // If there is a previously opened subset of options\n // we close it when a new choice is made\n if (prevSubset && !prevSubset.contains(choice)) {\n prevSubset.classList.remove('is-active');\n prevSubset.parentNode.classList.remove('is-active');\n }\n\n // If our chosen option has a subset of options\n // we open the subset\n if (subset) {\n subset.classList.add('is-active');\n subset.parentNode.classList.add('is-active');\n prevSubset = subset;\n\n\n // Otherwise, we select the option\n } else {\n const input = choice.querySelector('input[type=radio]');\n\n choice.classList.add('is-selected');\n input.checked = true;\n triggerChangeEvent(input);\n }\n\n onChangeCallback(event);\n}\n\nfunction triggerChangeEvent(input) {\n const event = document.createEvent(\"HTMLEvents\");\n\n event.initEvent(\"change\", false, true);\n input.dispatchEvent(event);\n}\n\nexport default init;\n","import Rails from '@rails/ujs';\nimport initAccordion from './accordion';\nimport initBundleFilters from './bundle-filters';\nimport initModal from './modal';\nimport initTabs from './tabs';\nimport initOptionCard from './option-card';\nimport initVariants from './product-variants';\nimport { initQtyPickers } from './quantity-picker';\nimport storePathUrl from './store-path-url';\n\nlet container, bundleId;\n\ndocument.addEventListener('DOMContentLoaded', () => {\n container = document.querySelector('[data-bundle]');\n\n if (container) {\n bundleId = container.getAttribute(\"data-bundle\");\n\n Rails.ajax({\n url: storePathUrl('/cpq/bundles'),\n type: 'POST',\n data: 'lead_product_sfid=' + bundleId,\n success: init,\n });\n }\n});\n\nconst init = () => {\n const removeBtns = [...container.querySelectorAll('[data-feature-remove]')];\n const featureOptions = [...container.querySelectorAll('[data-feature-option]')];\n const addToBundleBtns = document.querySelectorAll(\"[data-add-option-to-bundle]\");\n\n // Init imported components\n initBundleFilters();\n initAccordion();\n initModal();\n initTabs();\n initOptionCard(enableAddToBundleButton);\n initVariants();\n initQtyPickers();\n\n // Update UI to reflected saved selections\n featureOptions.filter(option => option.dataset.selected).map(option => {\n const productId = option.dataset.selected;\n\n container.querySelector(`input[value=\"${productId}\"]`).checked = true;\n updateFeatureOptionCard(option, productId);\n });\n\n // Event listener: Add product to bundle\n [...addToBundleBtns].map(button => {\n button.addEventListener(\"click\", event => {\n const form = event.target.form;\n const selectedInput = form.querySelector('[data-single-option-radio-input]:checked');\n\n event.preventDefault();\n chooseFeatureOption(form, selectedInput.value);\n })\n });\n\n\n // Event listener: Remove product from bundle\n removeBtns.map(removeBtn => {\n removeBtn.addEventListener('click', event => {\n const featureOption = event.currentTarget.closest('[data-feature-option]');\n const featureId = featureOption.dataset.featureOption;\n const productId = featureOption.dataset.selected;\n const loader = featureOption.querySelector('[data-loader]');\n\n loader.classList.add('is-active');\n\n addOrUpdateProductOption(productId, featureId, 0, true, success => {\n loader.classList.remove('is-active');\n container.querySelector(`input[value=\"${productId}\"]`).checked = false;\n updateFeatureOptionCard(featureOption, null);\n });\n });\n });\n\n // Event listener: Quantity change\n [...container.querySelectorAll('[data-qty-picker] input')]\n .map(input => input.addEventListener('change', updateQuantity));\n\n // Event listener: Select product variant\n [...container.querySelectorAll('[data-variant-option]')]\n .map(option => option.addEventListener('change', chooseProductVariant));\n\n document.querySelectorAll('[data-variant-group] select').forEach(selectElem => {\n selectElem.addEventListener('change', chooseProductVariant)\n })\n}\n\nexport const addOrUpdateProductOption = (productId, featureId, qty, isSingleOption, onSuccessCallback) => {\n const button = document.querySelector('[data-bundle-add-to-cart]');\n const payload = generatePayload(productId, featureId, qty, isSingleOption);\n\n if (button) {\n button.disabled = true;\n button.value = \"Updating...\";\n }\n\n Rails.ajax({\n url: storePathUrl('/cpq/bundles/' + bundleId + '/product_options/' + productId),\n type: 'PATCH',\n data: payload,\n success: () => onSuccessCallback(),\n });\n}\n\nfunction chooseFeatureOption(form, productId) {\n const isOptional = form.dataset.optional == \"true\";\n const featureId = form.id;\n const featureOptionCard = container.querySelector(`[data-feature-option=\"${featureId}\"]`);\n const prevSelectedProductId = featureOptionCard.dataset.selected;\n const loader = featureOptionCard.querySelector('[data-loader]');\n\n loader.classList.add('is-active');\n\n // If a product is optional we must first remove the existing selection\n // before adding a new one.\n // Note: to simplify the logic here this could be handled in the backend\n if (isOptional && prevSelectedProductId) {\n addOrUpdateProductOption(prevSelectedProductId, featureId, 0, true, success => {\n addOrUpdateProductOption(productId, featureId, 1, true, success => {\n loader.classList.remove('is-active');\n updateFeatureOptionCard(featureOptionCard, productId);\n });\n });\n } else {\n addOrUpdateProductOption(productId, featureId, 1, true, success => {\n loader.classList.remove('is-active');\n updateFeatureOptionCard(featureOptionCard, productId);\n });\n }\n}\n\nfunction updateFeatureOptionCard(card, productId) {\n const img = card.querySelector('[data-feature-img]');\n const headline = card.querySelector('[data-feature-headline]');\n const subheadline = card.querySelector('[data-feature-subheadline]');\n const remove = card.querySelector('[data-feature-remove]');\n const trigger = card.querySelector('[data-modal-trigger]');\n\n let data = {\n headline: headline.dataset.featureHeadline,\n subheadline: subheadline.dataset.featureSubheadline,\n imageUrl: img ? img.dataset.featureImg : null\n }\n\n card.dataset.selected = \"\";\n\n if (productId) {\n const input = document.querySelector(`input[value=\"${productId}\"]`);\n const productCard = input.form.querySelector(`[data-single-option=\"${input.value}\"]`);\n const optionCard = input.form.querySelector(`[data-product-option-sfid=\"${input.dataset.optionId}\"]`);\n const subHeadline = productCard.querySelector('[data-single-option-subheading]');\n const image = optionCard.querySelector('[data-single-option-image]');\n\n let subHeadlineText, imageUrl;\n\n if (subHeadline) subHeadlineText = subHeadline.innerText;\n if (image) imageUrl = image.src;\n\n data = {\n headline: returnHeadline(optionCard, productCard),\n subheadline: subHeadlineText,\n imageUrl: imageUrl\n };\n\n card.dataset.selected = productId;\n trigger.querySelector('span').innerText = trigger.dataset.edit;\n\n if (data.imageUrl) {\n img.src = data.imageUrl;\n img.classList.remove('sc-hide');\n } else img.classList.add('sc-hide');\n\n if (remove) {\n remove.classList.remove('sc-hide');\n trigger.classList.add('sc-hide');\n }\n } else {\n img.classList.add('sc-hide');\n trigger.querySelector('span').innerText = trigger.dataset.add;\n if (remove) {\n remove.classList.add('sc-hide');\n trigger.classList.remove('sc-hide');\n }\n }\n\n headline.innerText = data.headline;\n subheadline.innerText = data.subheadline;\n}\n\nfunction returnHeadline(optionCard, productCard) {\n return optionCard.querySelector('[data-option-card-subset]') ?\n productCard.querySelector('[data-single-option-heading]').innerText :\n optionCard.querySelector('[data-single-option-heading]').innerText;\n}\n\nfunction chooseProductVariant(e) {\n const id = e.target.form.id;\n const featureId = e.target.form.querySelector('[data-feature]').value;\n const price = e.target.getAttribute('data-price');\n const priceEl = e.target.form.querySelector('[data-bundle-product-option-price]');\n const clearOption = document.querySelector(`[data-clear-product-option=\"${id}]\"`);\n const payload = generateVariantPayload(e.target.name, e.target.value, featureId);\n\n if (clearOption) {\n clearOption.checked = false;\n }\n\n Rails.ajax({\n url: storePathUrl('/cpq/bundles/' + bundleId + '/product_options/' + id),\n type: 'PATCH',\n data: payload,\n success: () => {\n if (priceEl) {\n priceEl.innerText = price;\n }\n }\n });\n}\n\nfunction updateQuantity(e) {\n const featureId = e.target.form.id;\n const productId = e.target.form.dataset.productOptionSfid;\n const qty = e.target.form.querySelector('[data-qty-picker] input').value;\n\n if (productId) {\n addOrUpdateProductOption(productId, featureId, qty, false, () => {});\n }\n}\n\nfunction enableAddToBundleButton(event) {\n const button = event.currentTarget.closest('.SC-Modal').querySelector('[data-add-option-to-bundle]');\n\n if (button.hasAttribute('disabled')) {\n button.removeAttribute('disabled');\n }\n}\n\nfunction generatePayload(optionId, featureId, qty, isSingleOption) {\n const payload = \"product_option[sfid]=\" + optionId +\n \"&product_option[quantity]=\" + qty +\n \"&product_option[feature]=\" + featureId;\n\n if (isSingleOption) {\n return payload + \"&product_option[single_option]=1\";\n }\n\n return payload;\n}\n\nfunction generateVariantPayload(name, value, featureId) {\n // Because we are re-using the `variant_options` partial, we need to massage\n // the data slightly to match what the CPQ::ProductOptionsController expects\n if (name.startsWith('variant[')) {\n const variants = name.replace('variant[', 'variants][');\n\n return `product_option[${variants}[${value}][quantity]=1&product_option[feature]=${featureId}`;\n }\n\n else {\n const payload = name.includes('quantity') ?\n `${name}=${value}` :\n `${name}[${value}][quantity]=1`;\n\n // to avoid duplicate names, inputs have the product option sfid as a prefix,\n // here we strip out the sfid (and its trailing underscore) when constructing the payload\n return payload.substring(id.length + 1) + \"&product_option[feature]=\" + featureId;\n }\n}\n","import 'store_connect/packs/store_connect';\n\nimport 'ion.rangeSlider.min';\n// import 'hover-intent.min';\nimport hoverintent from 'hoverintent/dist/hoverintent.min';\nwindow.hoverintent = hoverintent;\nimport 'hammer.min';\nimport 'tiny-slider';\nimport 'select2.min';\nimport 'pickaday';\n\nimport 'store_connect/theme/bundle';\nimport 'store_connect/theme/live-cart-update';\nimport '../theme/sort';\nimport '../theme/tabs';\nimport '../theme/price-slider';\n\nimport * as Viewport from 'store_connect/theme/viewport';\nwindow.StoreConnectUI.Viewport = Viewport;\nimport 'store_connect/theme/date';\nimport 'store_connect/theme/accordion';\nimport 'store_connect/theme/cart';\nimport 'store_connect/theme/loader';\nimport 'store_connect/theme/menu';\nimport 'store_connect/theme/dropdown';\nimport 'store_connect/theme/nav';\nimport 'store_connect/theme/product-comparison';\nimport 'store_connect/theme/product-images';\nimport 'store_connect/theme/product-gallery';\nimport 'store_connect/theme/quantity-picker';\nimport 'store_connect/theme/slider';\nimport 'store_connect/theme/tabs';\nimport 'store_connect/theme/toggle-active';\nimport 'store_connect/theme/toggle-visibility';\nimport 'store_connect/theme/toggle-required';\nimport 'store_connect/theme/nav';\nimport 'store_connect/theme/fulfilment';\nimport 'store_connect/theme/product-variants';\n\nimport '../custom/modal';\nimport '../custom/option-select-show';\nimport '../custom/search-toggle';\nimport '../custom/tabs-vertical';\n","// Ion.RangeSlider, 2.3.1, © Denis Ineshin, 2010 - 2019, IonDen.com, Build date: 2019-12-19 16:56:44\n!function(i){\"undefined\"!=typeof jQuery&&jQuery||\"function\"!=typeof define||!define.amd?\"undefined\"!=typeof jQuery&&jQuery||\"object\"!=typeof exports?i(jQuery,document,window,navigator):i(require(\"jquery\"),document,window,navigator):define([\"jquery\"],function(t){return i(t,document,window,navigator)})}(function(a,c,l,t,_){\"use strict\";var i,s,o=0,e=(i=t.userAgent,s=/msie\\s\\d+/i,0<i.search(s)&&s.exec(i).toString().split(\" \")[1]<9&&(a(\"html\").addClass(\"lt-ie9\"),!0));Function.prototype.bind||(Function.prototype.bind=function(o){var e=this,h=[].slice;if(\"function\"!=typeof e)throw new TypeError;var r=h.call(arguments,1),n=function(){if(this instanceof n){var t=function(){};t.prototype=e.prototype;var i=new t,s=e.apply(i,r.concat(h.call(arguments)));return Object(s)===s?s:i}return e.apply(o,r.concat(h.call(arguments)))};return n}),Array.prototype.indexOf||(Array.prototype.indexOf=function(t,i){var s;if(null==this)throw new TypeError('\"this\" is null or not defined');var o=Object(this),e=o.length>>>0;if(0==e)return-1;var h=+i||0;if(Math.abs(h)===1/0&&(h=0),e<=h)return-1;for(s=Math.max(0<=h?h:e-Math.abs(h),0);s<e;){if(s in o&&o[s]===t)return s;s++}return-1});function h(t,i,s){this.VERSION=\"2.3.1\",this.input=t,this.plugin_count=s,this.current_plugin=0,this.calc_count=0,this.update_tm=0,this.old_from=0,this.old_to=0,this.old_min_interval=null,this.raf_id=null,this.dragging=!1,this.force_redraw=!1,this.no_diapason=!1,this.has_tab_index=!0,this.is_key=!1,this.is_update=!1,this.is_start=!0,this.is_finish=!1,this.is_active=!1,this.is_resize=!1,this.is_click=!1,i=i||{},this.$cache={win:a(l),body:a(c.body),input:a(t),cont:null,rs:null,min:null,max:null,from:null,to:null,single:null,bar:null,line:null,s_single:null,s_from:null,s_to:null,shad_single:null,shad_from:null,shad_to:null,edge:null,grid:null,grid_labels:[]},this.coords={x_gap:0,x_pointer:0,w_rs:0,w_rs_old:0,w_handle:0,p_gap:0,p_gap_left:0,p_gap_right:0,p_step:0,p_pointer:0,p_handle:0,p_single_fake:0,p_single_real:0,p_from_fake:0,p_from_real:0,p_to_fake:0,p_to_real:0,p_bar_x:0,p_bar_w:0,grid_gap:0,big_num:0,big:[],big_w:[],big_p:[],big_x:[]},this.labels={w_min:0,w_max:0,w_from:0,w_to:0,w_single:0,p_min:0,p_max:0,p_from_fake:0,p_from_left:0,p_to_fake:0,p_to_left:0,p_single_fake:0,p_single_left:0};var o,e,h,r=this.$cache.input,n=r.prop(\"value\");for(h in o={skin:\"flat\",type:\"single\",min:10,max:100,from:null,to:null,step:1,min_interval:0,max_interval:0,drag_interval:!1,values:[],p_values:[],from_fixed:!1,from_min:null,from_max:null,from_shadow:!1,to_fixed:!1,to_min:null,to_max:null,to_shadow:!1,prettify_enabled:!0,prettify_separator:\" \",prettify:null,force_edges:!1,keyboard:!0,grid:!1,grid_margin:!0,grid_num:4,grid_snap:!1,hide_min_max:!1,hide_from_to:!1,prefix:\"\",postfix:\"\",max_postfix:\"\",decorate_both:!0,values_separator:\" — \",input_values_separator:\";\",disable:!1,block:!1,extra_classes:\"\",scope:null,onStart:null,onChange:null,onFinish:null,onUpdate:null},\"INPUT\"!==r[0].nodeName&&console&&console.warn&&console.warn(\"Base element should be <input>!\",r[0]),(e={skin:r.data(\"skin\"),type:r.data(\"type\"),min:r.data(\"min\"),max:r.data(\"max\"),from:r.data(\"from\"),to:r.data(\"to\"),step:r.data(\"step\"),min_interval:r.data(\"minInterval\"),max_interval:r.data(\"maxInterval\"),drag_interval:r.data(\"dragInterval\"),values:r.data(\"values\"),from_fixed:r.data(\"fromFixed\"),from_min:r.data(\"fromMin\"),from_max:r.data(\"fromMax\"),from_shadow:r.data(\"fromShadow\"),to_fixed:r.data(\"toFixed\"),to_min:r.data(\"toMin\"),to_max:r.data(\"toMax\"),to_shadow:r.data(\"toShadow\"),prettify_enabled:r.data(\"prettifyEnabled\"),prettify_separator:r.data(\"prettifySeparator\"),force_edges:r.data(\"forceEdges\"),keyboard:r.data(\"keyboard\"),grid:r.data(\"grid\"),grid_margin:r.data(\"gridMargin\"),grid_num:r.data(\"gridNum\"),grid_snap:r.data(\"gridSnap\"),hide_min_max:r.data(\"hideMinMax\"),hide_from_to:r.data(\"hideFromTo\"),prefix:r.data(\"prefix\"),postfix:r.data(\"postfix\"),max_postfix:r.data(\"maxPostfix\"),decorate_both:r.data(\"decorateBoth\"),values_separator:r.data(\"valuesSeparator\"),input_values_separator:r.data(\"inputValuesSeparator\"),disable:r.data(\"disable\"),block:r.data(\"block\"),extra_classes:r.data(\"extraClasses\")}).values=e.values&&e.values.split(\",\"),e)e.hasOwnProperty(h)&&(e[h]!==_&&\"\"!==e[h]||delete e[h]);n!==_&&\"\"!==n&&((n=n.split(e.input_values_separator||i.input_values_separator||\";\"))[0]&&n[0]==+n[0]&&(n[0]=+n[0]),n[1]&&n[1]==+n[1]&&(n[1]=+n[1]),i&&i.values&&i.values.length?(o.from=n[0]&&i.values.indexOf(n[0]),o.to=n[1]&&i.values.indexOf(n[1])):(o.from=n[0]&&+n[0],o.to=n[1]&&+n[1])),a.extend(o,i),a.extend(o,e),this.options=o,this.update_check={},this.validate(),this.result={input:this.$cache.input,slider:null,min:this.options.min,max:this.options.max,from:this.options.from,from_percent:0,from_value:null,to:this.options.to,to_percent:0,to_value:null},this.init()}h.prototype={init:function(t){this.no_diapason=!1,this.coords.p_step=this.convertToPercent(this.options.step,!0),this.target=\"base\",this.toggleInput(),this.append(),this.setMinMax(),t?(this.force_redraw=!0,this.calc(!0),this.callOnUpdate()):(this.force_redraw=!0,this.calc(!0),this.callOnStart()),this.updateScene()},append:function(){var t='<span class=\"irs irs--'+this.options.skin+\" js-irs-\"+this.plugin_count+\" \"+this.options.extra_classes+'\"></span>';this.$cache.input.before(t),this.$cache.input.prop(\"readonly\",!0),this.$cache.cont=this.$cache.input.prev(),this.result.slider=this.$cache.cont,this.$cache.cont.html('<span class=\"irs\"><span class=\"irs-line\" tabindex=\"0\"></span><span class=\"irs-min\">0</span><span class=\"irs-max\">1</span><span class=\"irs-from\">0</span><span class=\"irs-to\">0</span><span class=\"irs-single\">0</span></span><span class=\"irs-grid\"></span>'),this.$cache.rs=this.$cache.cont.find(\".irs\"),this.$cache.min=this.$cache.cont.find(\".irs-min\"),this.$cache.max=this.$cache.cont.find(\".irs-max\"),this.$cache.from=this.$cache.cont.find(\".irs-from\"),this.$cache.to=this.$cache.cont.find(\".irs-to\"),this.$cache.single=this.$cache.cont.find(\".irs-single\"),this.$cache.line=this.$cache.cont.find(\".irs-line\"),this.$cache.grid=this.$cache.cont.find(\".irs-grid\"),\"single\"===this.options.type?(this.$cache.cont.append('<span class=\"irs-bar irs-bar--single\"></span><span class=\"irs-shadow shadow-single\"></span><span class=\"irs-handle single\"><i></i><i></i><i></i></span>'),this.$cache.bar=this.$cache.cont.find(\".irs-bar\"),this.$cache.edge=this.$cache.cont.find(\".irs-bar-edge\"),this.$cache.s_single=this.$cache.cont.find(\".single\"),this.$cache.from[0].style.visibility=\"hidden\",this.$cache.to[0].style.visibility=\"hidden\",this.$cache.shad_single=this.$cache.cont.find(\".shadow-single\")):(this.$cache.cont.append('<span class=\"irs-bar\"></span><span class=\"irs-shadow shadow-from\"></span><span class=\"irs-shadow shadow-to\"></span><span class=\"irs-handle from\"><i></i><i></i><i></i></span><span class=\"irs-handle to\"><i></i><i></i><i></i></span>'),this.$cache.bar=this.$cache.cont.find(\".irs-bar\"),this.$cache.s_from=this.$cache.cont.find(\".from\"),this.$cache.s_to=this.$cache.cont.find(\".to\"),this.$cache.shad_from=this.$cache.cont.find(\".shadow-from\"),this.$cache.shad_to=this.$cache.cont.find(\".shadow-to\"),this.setTopHandler()),this.options.hide_from_to&&(this.$cache.from[0].style.display=\"none\",this.$cache.to[0].style.display=\"none\",this.$cache.single[0].style.display=\"none\"),this.appendGrid(),this.options.disable?(this.appendDisableMask(),this.$cache.input[0].disabled=!0):(this.$cache.input[0].disabled=!1,this.removeDisableMask(),this.bindEvents()),this.options.disable||(this.options.block?this.appendDisableMask():this.removeDisableMask()),this.options.drag_interval&&(this.$cache.bar[0].style.cursor=\"ew-resize\")},setTopHandler:function(){var t=this.options.min,i=this.options.max,s=this.options.from,o=this.options.to;t<s&&o===i?this.$cache.s_from.addClass(\"type_last\"):o<i&&this.$cache.s_to.addClass(\"type_last\")},changeLevel:function(t){switch(t){case\"single\":this.coords.p_gap=this.toFixed(this.coords.p_pointer-this.coords.p_single_fake),this.$cache.s_single.addClass(\"state_hover\");break;case\"from\":this.coords.p_gap=this.toFixed(this.coords.p_pointer-this.coords.p_from_fake),this.$cache.s_from.addClass(\"state_hover\"),this.$cache.s_from.addClass(\"type_last\"),this.$cache.s_to.removeClass(\"type_last\");break;case\"to\":this.coords.p_gap=this.toFixed(this.coords.p_pointer-this.coords.p_to_fake),this.$cache.s_to.addClass(\"state_hover\"),this.$cache.s_to.addClass(\"type_last\"),this.$cache.s_from.removeClass(\"type_last\");break;case\"both\":this.coords.p_gap_left=this.toFixed(this.coords.p_pointer-this.coords.p_from_fake),this.coords.p_gap_right=this.toFixed(this.coords.p_to_fake-this.coords.p_pointer),this.$cache.s_to.removeClass(\"type_last\"),this.$cache.s_from.removeClass(\"type_last\")}},appendDisableMask:function(){this.$cache.cont.append('<span class=\"irs-disable-mask\"></span>'),this.$cache.cont.addClass(\"irs-disabled\")},removeDisableMask:function(){this.$cache.cont.remove(\".irs-disable-mask\"),this.$cache.cont.removeClass(\"irs-disabled\")},remove:function(){this.$cache.cont.remove(),this.$cache.cont=null,this.$cache.line.off(\"keydown.irs_\"+this.plugin_count),this.$cache.body.off(\"touchmove.irs_\"+this.plugin_count),this.$cache.body.off(\"mousemove.irs_\"+this.plugin_count),this.$cache.win.off(\"touchend.irs_\"+this.plugin_count),this.$cache.win.off(\"mouseup.irs_\"+this.plugin_count),e&&(this.$cache.body.off(\"mouseup.irs_\"+this.plugin_count),this.$cache.body.off(\"mouseleave.irs_\"+this.plugin_count)),this.$cache.grid_labels=[],this.coords.big=[],this.coords.big_w=[],this.coords.big_p=[],this.coords.big_x=[],cancelAnimationFrame(this.raf_id)},bindEvents:function(){this.no_diapason||(this.$cache.body.on(\"touchmove.irs_\"+this.plugin_count,this.pointerMove.bind(this)),this.$cache.body.on(\"mousemove.irs_\"+this.plugin_count,this.pointerMove.bind(this)),this.$cache.win.on(\"touchend.irs_\"+this.plugin_count,this.pointerUp.bind(this)),this.$cache.win.on(\"mouseup.irs_\"+this.plugin_count,this.pointerUp.bind(this)),this.$cache.line.on(\"touchstart.irs_\"+this.plugin_count,this.pointerClick.bind(this,\"click\")),this.$cache.line.on(\"mousedown.irs_\"+this.plugin_count,this.pointerClick.bind(this,\"click\")),this.$cache.line.on(\"focus.irs_\"+this.plugin_count,this.pointerFocus.bind(this)),this.options.drag_interval&&\"double\"===this.options.type?(this.$cache.bar.on(\"touchstart.irs_\"+this.plugin_count,this.pointerDown.bind(this,\"both\")),this.$cache.bar.on(\"mousedown.irs_\"+this.plugin_count,this.pointerDown.bind(this,\"both\"))):(this.$cache.bar.on(\"touchstart.irs_\"+this.plugin_count,this.pointerClick.bind(this,\"click\")),this.$cache.bar.on(\"mousedown.irs_\"+this.plugin_count,this.pointerClick.bind(this,\"click\"))),\"single\"===this.options.type?(this.$cache.single.on(\"touchstart.irs_\"+this.plugin_count,this.pointerDown.bind(this,\"single\")),this.$cache.s_single.on(\"touchstart.irs_\"+this.plugin_count,this.pointerDown.bind(this,\"single\")),this.$cache.shad_single.on(\"touchstart.irs_\"+this.plugin_count,this.pointerClick.bind(this,\"click\")),this.$cache.single.on(\"mousedown.irs_\"+this.plugin_count,this.pointerDown.bind(this,\"single\")),this.$cache.s_single.on(\"mousedown.irs_\"+this.plugin_count,this.pointerDown.bind(this,\"single\")),this.$cache.edge.on(\"mousedown.irs_\"+this.plugin_count,this.pointerClick.bind(this,\"click\")),this.$cache.shad_single.on(\"mousedown.irs_\"+this.plugin_count,this.pointerClick.bind(this,\"click\"))):(this.$cache.single.on(\"touchstart.irs_\"+this.plugin_count,this.pointerDown.bind(this,null)),this.$cache.single.on(\"mousedown.irs_\"+this.plugin_count,this.pointerDown.bind(this,null)),this.$cache.from.on(\"touchstart.irs_\"+this.plugin_count,this.pointerDown.bind(this,\"from\")),this.$cache.s_from.on(\"touchstart.irs_\"+this.plugin_count,this.pointerDown.bind(this,\"from\")),this.$cache.to.on(\"touchstart.irs_\"+this.plugin_count,this.pointerDown.bind(this,\"to\")),this.$cache.s_to.on(\"touchstart.irs_\"+this.plugin_count,this.pointerDown.bind(this,\"to\")),this.$cache.shad_from.on(\"touchstart.irs_\"+this.plugin_count,this.pointerClick.bind(this,\"click\")),this.$cache.shad_to.on(\"touchstart.irs_\"+this.plugin_count,this.pointerClick.bind(this,\"click\")),this.$cache.from.on(\"mousedown.irs_\"+this.plugin_count,this.pointerDown.bind(this,\"from\")),this.$cache.s_from.on(\"mousedown.irs_\"+this.plugin_count,this.pointerDown.bind(this,\"from\")),this.$cache.to.on(\"mousedown.irs_\"+this.plugin_count,this.pointerDown.bind(this,\"to\")),this.$cache.s_to.on(\"mousedown.irs_\"+this.plugin_count,this.pointerDown.bind(this,\"to\")),this.$cache.shad_from.on(\"mousedown.irs_\"+this.plugin_count,this.pointerClick.bind(this,\"click\")),this.$cache.shad_to.on(\"mousedown.irs_\"+this.plugin_count,this.pointerClick.bind(this,\"click\"))),this.options.keyboard&&this.$cache.line.on(\"keydown.irs_\"+this.plugin_count,this.key.bind(this,\"keyboard\")),e&&(this.$cache.body.on(\"mouseup.irs_\"+this.plugin_count,this.pointerUp.bind(this)),this.$cache.body.on(\"mouseleave.irs_\"+this.plugin_count,this.pointerUp.bind(this))))},pointerFocus:function(t){var i,s;this.target||(i=(s=\"single\"===this.options.type?this.$cache.single:this.$cache.from).offset().left,i+=s.width()/2-1,this.pointerClick(\"single\",{preventDefault:function(){},pageX:i}))},pointerMove:function(t){if(this.dragging){var i=t.pageX||t.originalEvent.touches&&t.originalEvent.touches[0].pageX;this.coords.x_pointer=i-this.coords.x_gap,this.calc()}},pointerUp:function(t){this.current_plugin===this.plugin_count&&this.is_active&&(this.is_active=!1,this.$cache.cont.find(\".state_hover\").removeClass(\"state_hover\"),this.force_redraw=!0,e&&a(\"*\").prop(\"unselectable\",!1),this.updateScene(),this.restoreOriginalMinInterval(),(a.contains(this.$cache.cont[0],t.target)||this.dragging)&&this.callOnFinish(),this.dragging=!1)},pointerDown:function(t,i){i.preventDefault();var s=i.pageX||i.originalEvent.touches&&i.originalEvent.touches[0].pageX;2!==i.button&&(\"both\"===t&&this.setTempMinInterval(),t=t||(this.target||\"from\"),this.current_plugin=this.plugin_count,this.target=t,this.is_active=!0,this.dragging=!0,this.coords.x_gap=this.$cache.rs.offset().left,this.coords.x_pointer=s-this.coords.x_gap,this.calcPointerPercent(),this.changeLevel(t),e&&a(\"*\").prop(\"unselectable\",!0),this.$cache.line.trigger(\"focus\"),this.updateScene())},pointerClick:function(t,i){i.preventDefault();var s=i.pageX||i.originalEvent.touches&&i.originalEvent.touches[0].pageX;2!==i.button&&(this.current_plugin=this.plugin_count,this.target=t,this.is_click=!0,this.coords.x_gap=this.$cache.rs.offset().left,this.coords.x_pointer=+(s-this.coords.x_gap).toFixed(),this.force_redraw=!0,this.calc(),this.$cache.line.trigger(\"focus\"))},key:function(t,i){if(!(this.current_plugin!==this.plugin_count||i.altKey||i.ctrlKey||i.shiftKey||i.metaKey)){switch(i.which){case 83:case 65:case 40:case 37:i.preventDefault(),this.moveByKey(!1);break;case 87:case 68:case 38:case 39:i.preventDefault(),this.moveByKey(!0)}return!0}},moveByKey:function(t){var i=this.coords.p_pointer,s=(this.options.max-this.options.min)/100;s=this.options.step/s,t?i+=s:i-=s,this.coords.x_pointer=this.toFixed(this.coords.w_rs/100*i),this.is_key=!0,this.calc()},setMinMax:function(){if(this.options){if(this.options.hide_min_max)return this.$cache.min[0].style.display=\"none\",void(this.$cache.max[0].style.display=\"none\");if(this.options.values.length)this.$cache.min.html(this.decorate(this.options.p_values[this.options.min])),this.$cache.max.html(this.decorate(this.options.p_values[this.options.max]));else{var t=this._prettify(this.options.min),i=this._prettify(this.options.max);this.result.min_pretty=t,this.result.max_pretty=i,this.$cache.min.html(this.decorate(t,this.options.min)),this.$cache.max.html(this.decorate(i,this.options.max))}this.labels.w_min=this.$cache.min.outerWidth(!1),this.labels.w_max=this.$cache.max.outerWidth(!1)}},setTempMinInterval:function(){var t=this.result.to-this.result.from;null===this.old_min_interval&&(this.old_min_interval=this.options.min_interval),this.options.min_interval=t},restoreOriginalMinInterval:function(){null!==this.old_min_interval&&(this.options.min_interval=this.old_min_interval,this.old_min_interval=null)},calc:function(t){if(this.options&&(this.calc_count++,10!==this.calc_count&&!t||(this.calc_count=0,this.coords.w_rs=this.$cache.rs.outerWidth(!1),this.calcHandlePercent()),this.coords.w_rs)){this.calcPointerPercent();var i=this.getHandleX();switch(\"both\"===this.target&&(this.coords.p_gap=0,i=this.getHandleX()),\"click\"===this.target&&(this.coords.p_gap=this.coords.p_handle/2,i=this.getHandleX(),this.options.drag_interval?this.target=\"both_one\":this.target=this.chooseHandle(i)),this.target){case\"base\":var s=(this.options.max-this.options.min)/100,o=(this.result.from-this.options.min)/s,e=(this.result.to-this.options.min)/s;this.coords.p_single_real=this.toFixed(o),this.coords.p_from_real=this.toFixed(o),this.coords.p_to_real=this.toFixed(e),this.coords.p_single_real=this.checkDiapason(this.coords.p_single_real,this.options.from_min,this.options.from_max),this.coords.p_from_real=this.checkDiapason(this.coords.p_from_real,this.options.from_min,this.options.from_max),this.coords.p_to_real=this.checkDiapason(this.coords.p_to_real,this.options.to_min,this.options.to_max),this.coords.p_single_fake=this.convertToFakePercent(this.coords.p_single_real),this.coords.p_from_fake=this.convertToFakePercent(this.coords.p_from_real),this.coords.p_to_fake=this.convertToFakePercent(this.coords.p_to_real),this.target=null;break;case\"single\":if(this.options.from_fixed)break;this.coords.p_single_real=this.convertToRealPercent(i),this.coords.p_single_real=this.calcWithStep(this.coords.p_single_real),this.coords.p_single_real=this.checkDiapason(this.coords.p_single_real,this.options.from_min,this.options.from_max),this.coords.p_single_fake=this.convertToFakePercent(this.coords.p_single_real);break;case\"from\":if(this.options.from_fixed)break;this.coords.p_from_real=this.convertToRealPercent(i),this.coords.p_from_real=this.calcWithStep(this.coords.p_from_real),this.coords.p_from_real>this.coords.p_to_real&&(this.coords.p_from_real=this.coords.p_to_real),this.coords.p_from_real=this.checkDiapason(this.coords.p_from_real,this.options.from_min,this.options.from_max),this.coords.p_from_real=this.checkMinInterval(this.coords.p_from_real,this.coords.p_to_real,\"from\"),this.coords.p_from_real=this.checkMaxInterval(this.coords.p_from_real,this.coords.p_to_real,\"from\"),this.coords.p_from_fake=this.convertToFakePercent(this.coords.p_from_real);break;case\"to\":if(this.options.to_fixed)break;this.coords.p_to_real=this.convertToRealPercent(i),this.coords.p_to_real=this.calcWithStep(this.coords.p_to_real),this.coords.p_to_real<this.coords.p_from_real&&(this.coords.p_to_real=this.coords.p_from_real),this.coords.p_to_real=this.checkDiapason(this.coords.p_to_real,this.options.to_min,this.options.to_max),this.coords.p_to_real=this.checkMinInterval(this.coords.p_to_real,this.coords.p_from_real,\"to\"),this.coords.p_to_real=this.checkMaxInterval(this.coords.p_to_real,this.coords.p_from_real,\"to\"),this.coords.p_to_fake=this.convertToFakePercent(this.coords.p_to_real);break;case\"both\":if(this.options.from_fixed||this.options.to_fixed)break;i=this.toFixed(i+.001*this.coords.p_handle),this.coords.p_from_real=this.convertToRealPercent(i)-this.coords.p_gap_left,this.coords.p_from_real=this.calcWithStep(this.coords.p_from_real),this.coords.p_from_real=this.checkDiapason(this.coords.p_from_real,this.options.from_min,this.options.from_max),this.coords.p_from_real=this.checkMinInterval(this.coords.p_from_real,this.coords.p_to_real,\"from\"),this.coords.p_from_fake=this.convertToFakePercent(this.coords.p_from_real),this.coords.p_to_real=this.convertToRealPercent(i)+this.coords.p_gap_right,this.coords.p_to_real=this.calcWithStep(this.coords.p_to_real),this.coords.p_to_real=this.checkDiapason(this.coords.p_to_real,this.options.to_min,this.options.to_max),this.coords.p_to_real=this.checkMinInterval(this.coords.p_to_real,this.coords.p_from_real,\"to\"),this.coords.p_to_fake=this.convertToFakePercent(this.coords.p_to_real);break;case\"both_one\":if(this.options.from_fixed||this.options.to_fixed)break;var h=this.convertToRealPercent(i),r=this.result.from_percent,n=this.result.to_percent-r,a=n/2,c=h-a,l=h+a;c<0&&(l=(c=0)+n),100<l&&(c=(l=100)-n),this.coords.p_from_real=this.calcWithStep(c),this.coords.p_from_real=this.checkDiapason(this.coords.p_from_real,this.options.from_min,this.options.from_max),this.coords.p_from_fake=this.convertToFakePercent(this.coords.p_from_real),this.coords.p_to_real=this.calcWithStep(l),this.coords.p_to_real=this.checkDiapason(this.coords.p_to_real,this.options.to_min,this.options.to_max),this.coords.p_to_fake=this.convertToFakePercent(this.coords.p_to_real)}\"single\"===this.options.type?(this.coords.p_bar_x=this.coords.p_handle/2,this.coords.p_bar_w=this.coords.p_single_fake,this.result.from_percent=this.coords.p_single_real,this.result.from=this.convertToValue(this.coords.p_single_real),this.result.from_pretty=this._prettify(this.result.from),this.options.values.length&&(this.result.from_value=this.options.values[this.result.from])):(this.coords.p_bar_x=this.toFixed(this.coords.p_from_fake+this.coords.p_handle/2),this.coords.p_bar_w=this.toFixed(this.coords.p_to_fake-this.coords.p_from_fake),this.result.from_percent=this.coords.p_from_real,this.result.from=this.convertToValue(this.coords.p_from_real),this.result.from_pretty=this._prettify(this.result.from),this.result.to_percent=this.coords.p_to_real,this.result.to=this.convertToValue(this.coords.p_to_real),this.result.to_pretty=this._prettify(this.result.to),this.options.values.length&&(this.result.from_value=this.options.values[this.result.from],this.result.to_value=this.options.values[this.result.to])),this.calcMinMax(),this.calcLabels()}},calcPointerPercent:function(){this.coords.w_rs?(this.coords.x_pointer<0||isNaN(this.coords.x_pointer)?this.coords.x_pointer=0:this.coords.x_pointer>this.coords.w_rs&&(this.coords.x_pointer=this.coords.w_rs),this.coords.p_pointer=this.toFixed(this.coords.x_pointer/this.coords.w_rs*100)):this.coords.p_pointer=0},convertToRealPercent:function(t){return t/(100-this.coords.p_handle)*100},convertToFakePercent:function(t){return t/100*(100-this.coords.p_handle)},getHandleX:function(){var t=100-this.coords.p_handle,i=this.toFixed(this.coords.p_pointer-this.coords.p_gap);return i<0?i=0:t<i&&(i=t),i},calcHandlePercent:function(){\"single\"===this.options.type?this.coords.w_handle=this.$cache.s_single.outerWidth(!1):this.coords.w_handle=this.$cache.s_from.outerWidth(!1),this.coords.p_handle=this.toFixed(this.coords.w_handle/this.coords.w_rs*100)},chooseHandle:function(t){return\"single\"===this.options.type?\"single\":this.coords.p_from_real+(this.coords.p_to_real-this.coords.p_from_real)/2<=t?this.options.to_fixed?\"from\":\"to\":this.options.from_fixed?\"to\":\"from\"},calcMinMax:function(){this.coords.w_rs&&(this.labels.p_min=this.labels.w_min/this.coords.w_rs*100,this.labels.p_max=this.labels.w_max/this.coords.w_rs*100)},calcLabels:function(){this.coords.w_rs&&!this.options.hide_from_to&&(\"single\"===this.options.type?(this.labels.w_single=this.$cache.single.outerWidth(!1),this.labels.p_single_fake=this.labels.w_single/this.coords.w_rs*100,this.labels.p_single_left=this.coords.p_single_fake+this.coords.p_handle/2-this.labels.p_single_fake/2):(this.labels.w_from=this.$cache.from.outerWidth(!1),this.labels.p_from_fake=this.labels.w_from/this.coords.w_rs*100,this.labels.p_from_left=this.coords.p_from_fake+this.coords.p_handle/2-this.labels.p_from_fake/2,this.labels.p_from_left=this.toFixed(this.labels.p_from_left),this.labels.p_from_left=this.checkEdges(this.labels.p_from_left,this.labels.p_from_fake),this.labels.w_to=this.$cache.to.outerWidth(!1),this.labels.p_to_fake=this.labels.w_to/this.coords.w_rs*100,this.labels.p_to_left=this.coords.p_to_fake+this.coords.p_handle/2-this.labels.p_to_fake/2,this.labels.p_to_left=this.toFixed(this.labels.p_to_left),this.labels.p_to_left=this.checkEdges(this.labels.p_to_left,this.labels.p_to_fake),this.labels.w_single=this.$cache.single.outerWidth(!1),this.labels.p_single_fake=this.labels.w_single/this.coords.w_rs*100,this.labels.p_single_left=(this.labels.p_from_left+this.labels.p_to_left+this.labels.p_to_fake)/2-this.labels.p_single_fake/2,this.labels.p_single_left=this.toFixed(this.labels.p_single_left)),this.labels.p_single_left=this.checkEdges(this.labels.p_single_left,this.labels.p_single_fake))},updateScene:function(){this.raf_id&&(cancelAnimationFrame(this.raf_id),this.raf_id=null),clearTimeout(this.update_tm),this.update_tm=null,this.options&&(this.drawHandles(),this.is_active?this.raf_id=requestAnimationFrame(this.updateScene.bind(this)):this.update_tm=setTimeout(this.updateScene.bind(this),300))},drawHandles:function(){this.coords.w_rs=this.$cache.rs.outerWidth(!1),this.coords.w_rs&&(this.coords.w_rs!==this.coords.w_rs_old&&(this.target=\"base\",this.is_resize=!0),this.coords.w_rs===this.coords.w_rs_old&&!this.force_redraw||(this.setMinMax(),this.calc(!0),this.drawLabels(),this.options.grid&&(this.calcGridMargin(),this.calcGridLabels()),this.force_redraw=!0,this.coords.w_rs_old=this.coords.w_rs,this.drawShadow()),this.coords.w_rs&&(this.dragging||this.force_redraw||this.is_key)&&((this.old_from!==this.result.from||this.old_to!==this.result.to||this.force_redraw||this.is_key)&&(this.drawLabels(),this.$cache.bar[0].style.left=this.coords.p_bar_x+\"%\",this.$cache.bar[0].style.width=this.coords.p_bar_w+\"%\",\"single\"===this.options.type?(this.$cache.bar[0].style.left=0,this.$cache.bar[0].style.width=this.coords.p_bar_w+this.coords.p_bar_x+\"%\",this.$cache.s_single[0].style.left=this.coords.p_single_fake+\"%\"):(this.$cache.s_from[0].style.left=this.coords.p_from_fake+\"%\",this.$cache.s_to[0].style.left=this.coords.p_to_fake+\"%\",this.old_from===this.result.from&&!this.force_redraw||(this.$cache.from[0].style.left=this.labels.p_from_left+\"%\"),this.old_to===this.result.to&&!this.force_redraw||(this.$cache.to[0].style.left=this.labels.p_to_left+\"%\")),this.$cache.single[0].style.left=this.labels.p_single_left+\"%\",this.writeToInput(),this.old_from===this.result.from&&this.old_to===this.result.to||this.is_start||(this.$cache.input.trigger(\"change\"),this.$cache.input.trigger(\"input\")),this.old_from=this.result.from,this.old_to=this.result.to,this.is_resize||this.is_update||this.is_start||this.is_finish||this.callOnChange(),(this.is_key||this.is_click)&&(this.is_key=!1,this.is_click=!1,this.callOnFinish()),this.is_update=!1,this.is_resize=!1,this.is_finish=!1),this.is_start=!1,this.is_key=!1,this.is_click=!1,this.force_redraw=!1))},drawLabels:function(){if(this.options){var t,i,s,o,e,h=this.options.values.length,r=this.options.p_values;if(!this.options.hide_from_to)if(\"single\"===this.options.type)t=h?this.decorate(r[this.result.from]):(o=this._prettify(this.result.from),this.decorate(o,this.result.from)),this.$cache.single.html(t),this.calcLabels(),this.labels.p_single_left<this.labels.p_min+1?this.$cache.min[0].style.visibility=\"hidden\":this.$cache.min[0].style.visibility=\"visible\",this.labels.p_single_left+this.labels.p_single_fake>100-this.labels.p_max-1?this.$cache.max[0].style.visibility=\"hidden\":this.$cache.max[0].style.visibility=\"visible\";else{s=h?(this.options.decorate_both?(t=this.decorate(r[this.result.from]),t+=this.options.values_separator,t+=this.decorate(r[this.result.to])):t=this.decorate(r[this.result.from]+this.options.values_separator+r[this.result.to]),i=this.decorate(r[this.result.from]),this.decorate(r[this.result.to])):(o=this._prettify(this.result.from),e=this._prettify(this.result.to),this.options.decorate_both?(t=this.decorate(o,this.result.from),t+=this.options.values_separator,t+=this.decorate(e,this.result.to)):t=this.decorate(o+this.options.values_separator+e,this.result.to),i=this.decorate(o,this.result.from),this.decorate(e,this.result.to)),this.$cache.single.html(t),this.$cache.from.html(i),this.$cache.to.html(s),this.calcLabels();var n=Math.min(this.labels.p_single_left,this.labels.p_from_left),a=this.labels.p_single_left+this.labels.p_single_fake,c=this.labels.p_to_left+this.labels.p_to_fake,l=Math.max(a,c);this.labels.p_from_left+this.labels.p_from_fake>=this.labels.p_to_left?(this.$cache.from[0].style.visibility=\"hidden\",this.$cache.to[0].style.visibility=\"hidden\",this.$cache.single[0].style.visibility=\"visible\",l=this.result.from===this.result.to?(\"from\"===this.target?this.$cache.from[0].style.visibility=\"visible\":\"to\"===this.target?this.$cache.to[0].style.visibility=\"visible\":this.target||(this.$cache.from[0].style.visibility=\"visible\"),this.$cache.single[0].style.visibility=\"hidden\",c):(this.$cache.from[0].style.visibility=\"hidden\",this.$cache.to[0].style.visibility=\"hidden\",this.$cache.single[0].style.visibility=\"visible\",Math.max(a,c))):(this.$cache.from[0].style.visibility=\"visible\",this.$cache.to[0].style.visibility=\"visible\",this.$cache.single[0].style.visibility=\"hidden\"),n<this.labels.p_min+1?this.$cache.min[0].style.visibility=\"hidden\":this.$cache.min[0].style.visibility=\"visible\",l>100-this.labels.p_max-1?this.$cache.max[0].style.visibility=\"hidden\":this.$cache.max[0].style.visibility=\"visible\"}}},drawShadow:function(){var t,i,s,o,e=this.options,h=this.$cache,r=\"number\"==typeof e.from_min&&!isNaN(e.from_min),n=\"number\"==typeof e.from_max&&!isNaN(e.from_max),a=\"number\"==typeof e.to_min&&!isNaN(e.to_min),c=\"number\"==typeof e.to_max&&!isNaN(e.to_max);\"single\"===e.type?e.from_shadow&&(r||n)?(t=this.convertToPercent(r?e.from_min:e.min),i=this.convertToPercent(n?e.from_max:e.max)-t,t=this.toFixed(t-this.coords.p_handle/100*t),i=this.toFixed(i-this.coords.p_handle/100*i),t+=this.coords.p_handle/2,h.shad_single[0].style.display=\"block\",h.shad_single[0].style.left=t+\"%\",h.shad_single[0].style.width=i+\"%\"):h.shad_single[0].style.display=\"none\":(e.from_shadow&&(r||n)?(t=this.convertToPercent(r?e.from_min:e.min),i=this.convertToPercent(n?e.from_max:e.max)-t,t=this.toFixed(t-this.coords.p_handle/100*t),i=this.toFixed(i-this.coords.p_handle/100*i),t+=this.coords.p_handle/2,h.shad_from[0].style.display=\"block\",h.shad_from[0].style.left=t+\"%\",h.shad_from[0].style.width=i+\"%\"):h.shad_from[0].style.display=\"none\",e.to_shadow&&(a||c)?(s=this.convertToPercent(a?e.to_min:e.min),o=this.convertToPercent(c?e.to_max:e.max)-s,s=this.toFixed(s-this.coords.p_handle/100*s),o=this.toFixed(o-this.coords.p_handle/100*o),s+=this.coords.p_handle/2,h.shad_to[0].style.display=\"block\",h.shad_to[0].style.left=s+\"%\",h.shad_to[0].style.width=o+\"%\"):h.shad_to[0].style.display=\"none\")},writeToInput:function(){\"single\"===this.options.type?(this.options.values.length?this.$cache.input.prop(\"value\",this.result.from_value):this.$cache.input.prop(\"value\",this.result.from),this.$cache.input.data(\"from\",this.result.from)):(this.options.values.length?this.$cache.input.prop(\"value\",this.result.from_value+this.options.input_values_separator+this.result.to_value):this.$cache.input.prop(\"value\",this.result.from+this.options.input_values_separator+this.result.to),this.$cache.input.data(\"from\",this.result.from),this.$cache.input.data(\"to\",this.result.to))},callOnStart:function(){this.writeToInput(),this.options.onStart&&\"function\"==typeof this.options.onStart&&(this.options.scope?this.options.onStart.call(this.options.scope,this.result):this.options.onStart(this.result))},callOnChange:function(){this.writeToInput(),this.options.onChange&&\"function\"==typeof this.options.onChange&&(this.options.scope?this.options.onChange.call(this.options.scope,this.result):this.options.onChange(this.result))},callOnFinish:function(){this.writeToInput(),this.options.onFinish&&\"function\"==typeof this.options.onFinish&&(this.options.scope?this.options.onFinish.call(this.options.scope,this.result):this.options.onFinish(this.result))},callOnUpdate:function(){this.writeToInput(),this.options.onUpdate&&\"function\"==typeof this.options.onUpdate&&(this.options.scope?this.options.onUpdate.call(this.options.scope,this.result):this.options.onUpdate(this.result))},toggleInput:function(){this.$cache.input.toggleClass(\"irs-hidden-input\"),this.has_tab_index?this.$cache.input.prop(\"tabindex\",-1):this.$cache.input.removeProp(\"tabindex\"),this.has_tab_index=!this.has_tab_index},convertToPercent:function(t,i){var s,o=this.options.max-this.options.min,e=o/100;return o?(s=(i?t:t-this.options.min)/e,this.toFixed(s)):(this.no_diapason=!0,0)},convertToValue:function(t){var i,s,o=this.options.min,e=this.options.max,h=o.toString().split(\".\")[1],r=e.toString().split(\".\")[1],n=0,a=0;if(0===t)return this.options.min;if(100===t)return this.options.max;h&&(n=i=h.length),r&&(n=s=r.length),i&&s&&(n=s<=i?i:s),o<0&&(o=+(o+(a=Math.abs(o))).toFixed(n),e=+(e+a).toFixed(n));var c,l=(e-o)/100*t+o,_=this.options.step.toString().split(\".\")[1];return l=_?+l.toFixed(_.length):(l/=this.options.step,+(l*=this.options.step).toFixed(0)),a&&(l-=a),(c=_?+l.toFixed(_.length):this.toFixed(l))<this.options.min?c=this.options.min:c>this.options.max&&(c=this.options.max),c},calcWithStep:function(t){var i=Math.round(t/this.coords.p_step)*this.coords.p_step;return 100<i&&(i=100),100===t&&(i=100),this.toFixed(i)},checkMinInterval:function(t,i,s){var o,e,h=this.options;return h.min_interval?(o=this.convertToValue(t),e=this.convertToValue(i),\"from\"===s?e-o<h.min_interval&&(o=e-h.min_interval):o-e<h.min_interval&&(o=e+h.min_interval),this.convertToPercent(o)):t},checkMaxInterval:function(t,i,s){var o,e,h=this.options;return h.max_interval?(o=this.convertToValue(t),e=this.convertToValue(i),\"from\"===s?e-o>h.max_interval&&(o=e-h.max_interval):o-e>h.max_interval&&(o=e+h.max_interval),this.convertToPercent(o)):t},checkDiapason:function(t,i,s){var o=this.convertToValue(t),e=this.options;return\"number\"!=typeof i&&(i=e.min),\"number\"!=typeof s&&(s=e.max),o<i&&(o=i),s<o&&(o=s),this.convertToPercent(o)},toFixed:function(t){return+(t=t.toFixed(20))},_prettify:function(t){return this.options.prettify_enabled?this.options.prettify&&\"function\"==typeof this.options.prettify?this.options.prettify(t):this.prettify(t):t},prettify:function(t){return t.toString().replace(/(\\d{1,3}(?=(?:\\d\\d\\d)+(?!\\d)))/g,\"$1\"+this.options.prettify_separator)},checkEdges:function(t,i){return this.options.force_edges&&(t<0?t=0:100-i<t&&(t=100-i)),this.toFixed(t)},validate:function(){var t,i,s=this.options,o=this.result,e=s.values,h=e.length;if(\"string\"==typeof s.min&&(s.min=+s.min),\"string\"==typeof s.max&&(s.max=+s.max),\"string\"==typeof s.from&&(s.from=+s.from),\"string\"==typeof s.to&&(s.to=+s.to),\"string\"==typeof s.step&&(s.step=+s.step),\"string\"==typeof s.from_min&&(s.from_min=+s.from_min),\"string\"==typeof s.from_max&&(s.from_max=+s.from_max),\"string\"==typeof s.to_min&&(s.to_min=+s.to_min),\"string\"==typeof s.to_max&&(s.to_max=+s.to_max),\"string\"==typeof s.grid_num&&(s.grid_num=+s.grid_num),s.max<s.min&&(s.max=s.min),h)for(s.p_values=[],s.min=0,s.max=h-1,s.step=1,s.grid_num=s.max,s.grid_snap=!0,i=0;i<h;i++)t=+e[i],t=isNaN(t)?e[i]:(e[i]=t,this._prettify(t)),s.p_values.push(t);\"number\"==typeof s.from&&!isNaN(s.from)||(s.from=s.min),\"number\"==typeof s.to&&!isNaN(s.to)||(s.to=s.max),\"single\"===s.type?(s.from<s.min&&(s.from=s.min),s.from>s.max&&(s.from=s.max)):(s.from<s.min&&(s.from=s.min),s.from>s.max&&(s.from=s.max),s.to<s.min&&(s.to=s.min),s.to>s.max&&(s.to=s.max),this.update_check.from&&(this.update_check.from!==s.from&&s.from>s.to&&(s.from=s.to),this.update_check.to!==s.to&&s.to<s.from&&(s.to=s.from)),s.from>s.to&&(s.from=s.to),s.to<s.from&&(s.to=s.from)),(\"number\"!=typeof s.step||isNaN(s.step)||!s.step||s.step<0)&&(s.step=1),\"number\"==typeof s.from_min&&s.from<s.from_min&&(s.from=s.from_min),\"number\"==typeof s.from_max&&s.from>s.from_max&&(s.from=s.from_max),\"number\"==typeof s.to_min&&s.to<s.to_min&&(s.to=s.to_min),\"number\"==typeof s.to_max&&s.from>s.to_max&&(s.to=s.to_max),o&&(o.min!==s.min&&(o.min=s.min),o.max!==s.max&&(o.max=s.max),(o.from<o.min||o.from>o.max)&&(o.from=s.from),(o.to<o.min||o.to>o.max)&&(o.to=s.to)),(\"number\"!=typeof s.min_interval||isNaN(s.min_interval)||!s.min_interval||s.min_interval<0)&&(s.min_interval=0),(\"number\"!=typeof s.max_interval||isNaN(s.max_interval)||!s.max_interval||s.max_interval<0)&&(s.max_interval=0),s.min_interval&&s.min_interval>s.max-s.min&&(s.min_interval=s.max-s.min),s.max_interval&&s.max_interval>s.max-s.min&&(s.max_interval=s.max-s.min)},decorate:function(t,i){var s=\"\",o=this.options;return o.prefix&&(s+=o.prefix),s+=t,o.max_postfix&&(o.values.length&&t===o.p_values[o.max]?(s+=o.max_postfix,o.postfix&&(s+=\" \")):i===o.max&&(s+=o.max_postfix,o.postfix&&(s+=\" \"))),o.postfix&&(s+=o.postfix),s},updateFrom:function(){this.result.from=this.options.from,this.result.from_percent=this.convertToPercent(this.result.from),this.result.from_pretty=this._prettify(this.result.from),this.options.values&&(this.result.from_value=this.options.values[this.result.from])},updateTo:function(){this.result.to=this.options.to,this.result.to_percent=this.convertToPercent(this.result.to),this.result.to_pretty=this._prettify(this.result.to),this.options.values&&(this.result.to_value=this.options.values[this.result.to])},updateResult:function(){this.result.min=this.options.min,this.result.max=this.options.max,this.updateFrom(),this.updateTo()},appendGrid:function(){if(this.options.grid){var t,i,s,o,e,h,r=this.options,n=r.max-r.min,a=r.grid_num,c=0,l=4,_=\"\";for(this.calcGridMargin(),r.grid_snap&&(a=n/r.step),50<a&&(a=50),s=this.toFixed(100/a),4<a&&(l=3),7<a&&(l=2),14<a&&(l=1),28<a&&(l=0),t=0;t<a+1;t++){for(o=l,100<(c=this.toFixed(s*t))&&(c=100),e=((this.coords.big[t]=c)-s*(t-1))/(o+1),i=1;i<=o&&0!==c;i++)_+='<span class=\"irs-grid-pol small\" style=\"left: '+this.toFixed(c-e*i)+'%\"></span>';_+='<span class=\"irs-grid-pol\" style=\"left: '+c+'%\"></span>',h=this.convertToValue(c),_+='<span class=\"irs-grid-text js-grid-text-'+t+'\" style=\"left: '+c+'%\">'+(h=r.values.length?r.p_values[h]:this._prettify(h))+\"</span>\"}this.coords.big_num=Math.ceil(a+1),this.$cache.cont.addClass(\"irs-with-grid\"),this.$cache.grid.html(_),this.cacheGridLabels()}},cacheGridLabels:function(){var t,i,s=this.coords.big_num;for(i=0;i<s;i++)t=this.$cache.grid.find(\".js-grid-text-\"+i),this.$cache.grid_labels.push(t);this.calcGridLabels()},calcGridLabels:function(){var t,i,s=[],o=[],e=this.coords.big_num;for(t=0;t<e;t++)this.coords.big_w[t]=this.$cache.grid_labels[t].outerWidth(!1),this.coords.big_p[t]=this.toFixed(this.coords.big_w[t]/this.coords.w_rs*100),this.coords.big_x[t]=this.toFixed(this.coords.big_p[t]/2),s[t]=this.toFixed(this.coords.big[t]-this.coords.big_x[t]),o[t]=this.toFixed(s[t]+this.coords.big_p[t]);for(this.options.force_edges&&(s[0]<-this.coords.grid_gap&&(s[0]=-this.coords.grid_gap,o[0]=this.toFixed(s[0]+this.coords.big_p[0]),this.coords.big_x[0]=this.coords.grid_gap),o[e-1]>100+this.coords.grid_gap&&(o[e-1]=100+this.coords.grid_gap,s[e-1]=this.toFixed(o[e-1]-this.coords.big_p[e-1]),this.coords.big_x[e-1]=this.toFixed(this.coords.big_p[e-1]-this.coords.grid_gap))),this.calcGridCollision(2,s,o),this.calcGridCollision(4,s,o),t=0;t<e;t++)i=this.$cache.grid_labels[t][0],this.coords.big_x[t]!==Number.POSITIVE_INFINITY&&(i.style.marginLeft=-this.coords.big_x[t]+\"%\")},calcGridCollision:function(t,i,s){var o,e,h,r=this.coords.big_num;for(o=0;o<r&&!(r<=(e=o+t/2));o+=t)h=this.$cache.grid_labels[e][0],s[o]<=i[e]?h.style.visibility=\"visible\":h.style.visibility=\"hidden\"},calcGridMargin:function(){this.options.grid_margin&&(this.coords.w_rs=this.$cache.rs.outerWidth(!1),this.coords.w_rs&&(\"single\"===this.options.type?this.coords.w_handle=this.$cache.s_single.outerWidth(!1):this.coords.w_handle=this.$cache.s_from.outerWidth(!1),this.coords.p_handle=this.toFixed(this.coords.w_handle/this.coords.w_rs*100),this.coords.grid_gap=this.toFixed(this.coords.p_handle/2-.1),this.$cache.grid[0].style.width=this.toFixed(100-this.coords.p_handle)+\"%\",this.$cache.grid[0].style.left=this.coords.grid_gap+\"%\"))},update:function(t){this.input&&(this.is_update=!0,this.options.from=this.result.from,this.options.to=this.result.to,this.update_check.from=this.result.from,this.update_check.to=this.result.to,this.options=a.extend(this.options,t),this.validate(),this.updateResult(t),this.toggleInput(),this.remove(),this.init(!0))},reset:function(){this.input&&(this.updateResult(),this.update())},destroy:function(){this.input&&(this.toggleInput(),this.$cache.input.prop(\"readonly\",!1),a.data(this.input,\"ionRangeSlider\",null),this.remove(),this.input=null,this.options=null)}},a.fn.ionRangeSlider=function(t){return this.each(function(){a.data(this,\"ionRangeSlider\")||a.data(this,\"ionRangeSlider\",new h(this,t,o++))})},function(){for(var h=0,t=[\"ms\",\"moz\",\"webkit\",\"o\"],i=0;i<t.length&&!l.requestAnimationFrame;++i)l.requestAnimationFrame=l[t[i]+\"RequestAnimationFrame\"],l.cancelAnimationFrame=l[t[i]+\"CancelAnimationFrame\"]||l[t[i]+\"CancelRequestAnimationFrame\"];l.requestAnimationFrame||(l.requestAnimationFrame=function(t,i){var s=(new Date).getTime(),o=Math.max(0,16-(s-h)),e=l.setTimeout(function(){t(s+o)},o);return h=s+o,e}),l.cancelAnimationFrame||(l.cancelAnimationFrame=function(t){clearTimeout(t)})}()});","/*! Hammer.JS - v2.0.8 - 2016-04-23\n * http://hammerjs.github.io/\n *\n * Copyright (c) 2016 Jorik Tangelder;\n * Licensed under the MIT license */\n!function(a,b,c,d){\"use strict\";function e(a,b,c){return setTimeout(j(a,c),b)}function f(a,b,c){return Array.isArray(a)?(g(a,c[b],c),!0):!1}function g(a,b,c){var e;if(a)if(a.forEach)a.forEach(b,c);else if(a.length!==d)for(e=0;e<a.length;)b.call(c,a[e],e,a),e++;else for(e in a)a.hasOwnProperty(e)&&b.call(c,a[e],e,a)}function h(b,c,d){var e=\"DEPRECATED METHOD: \"+c+\"\\n\"+d+\" AT \\n\";return function(){var c=new Error(\"get-stack-trace\"),d=c&&c.stack?c.stack.replace(/^[^\\(]+?[\\n$]/gm,\"\").replace(/^\\s+at\\s+/gm,\"\").replace(/^Object.<anonymous>\\s*\\(/gm,\"{anonymous}()@\"):\"Unknown Stack Trace\",f=a.console&&(a.console.warn||a.console.log);return f&&f.call(a.console,e,d),b.apply(this,arguments)}}function i(a,b,c){var d,e=b.prototype;d=a.prototype=Object.create(e),d.constructor=a,d._super=e,c&&la(d,c)}function j(a,b){return function(){return a.apply(b,arguments)}}function k(a,b){return typeof a==oa?a.apply(b?b[0]||d:d,b):a}function l(a,b){return a===d?b:a}function m(a,b,c){g(q(b),function(b){a.addEventListener(b,c,!1)})}function n(a,b,c){g(q(b),function(b){a.removeEventListener(b,c,!1)})}function o(a,b){for(;a;){if(a==b)return!0;a=a.parentNode}return!1}function p(a,b){return a.indexOf(b)>-1}function q(a){return a.trim().split(/\\s+/g)}function r(a,b,c){if(a.indexOf&&!c)return a.indexOf(b);for(var d=0;d<a.length;){if(c&&a[d][c]==b||!c&&a[d]===b)return d;d++}return-1}function s(a){return Array.prototype.slice.call(a,0)}function t(a,b,c){for(var d=[],e=[],f=0;f<a.length;){var g=b?a[f][b]:a[f];r(e,g)<0&&d.push(a[f]),e[f]=g,f++}return c&&(d=b?d.sort(function(a,c){return a[b]>c[b]}):d.sort()),d}function u(a,b){for(var c,e,f=b[0].toUpperCase()+b.slice(1),g=0;g<ma.length;){if(c=ma[g],e=c?c+f:b,e in a)return e;g++}return d}function v(){return ua++}function w(b){var c=b.ownerDocument||b;return c.defaultView||c.parentWindow||a}function x(a,b){var c=this;this.manager=a,this.callback=b,this.element=a.element,this.target=a.options.inputTarget,this.domHandler=function(b){k(a.options.enable,[a])&&c.handler(b)},this.init()}function y(a){var b,c=a.options.inputClass;return new(b=c?c:xa?M:ya?P:wa?R:L)(a,z)}function z(a,b,c){var d=c.pointers.length,e=c.changedPointers.length,f=b&Ea&&d-e===0,g=b&(Ga|Ha)&&d-e===0;c.isFirst=!!f,c.isFinal=!!g,f&&(a.session={}),c.eventType=b,A(a,c),a.emit(\"hammer.input\",c),a.recognize(c),a.session.prevInput=c}function A(a,b){var c=a.session,d=b.pointers,e=d.length;c.firstInput||(c.firstInput=D(b)),e>1&&!c.firstMultiple?c.firstMultiple=D(b):1===e&&(c.firstMultiple=!1);var f=c.firstInput,g=c.firstMultiple,h=g?g.center:f.center,i=b.center=E(d);b.timeStamp=ra(),b.deltaTime=b.timeStamp-f.timeStamp,b.angle=I(h,i),b.distance=H(h,i),B(c,b),b.offsetDirection=G(b.deltaX,b.deltaY);var j=F(b.deltaTime,b.deltaX,b.deltaY);b.overallVelocityX=j.x,b.overallVelocityY=j.y,b.overallVelocity=qa(j.x)>qa(j.y)?j.x:j.y,b.scale=g?K(g.pointers,d):1,b.rotation=g?J(g.pointers,d):0,b.maxPointers=c.prevInput?b.pointers.length>c.prevInput.maxPointers?b.pointers.length:c.prevInput.maxPointers:b.pointers.length,C(c,b);var k=a.element;o(b.srcEvent.target,k)&&(k=b.srcEvent.target),b.target=k}function B(a,b){var c=b.center,d=a.offsetDelta||{},e=a.prevDelta||{},f=a.prevInput||{};b.eventType!==Ea&&f.eventType!==Ga||(e=a.prevDelta={x:f.deltaX||0,y:f.deltaY||0},d=a.offsetDelta={x:c.x,y:c.y}),b.deltaX=e.x+(c.x-d.x),b.deltaY=e.y+(c.y-d.y)}function C(a,b){var c,e,f,g,h=a.lastInterval||b,i=b.timeStamp-h.timeStamp;if(b.eventType!=Ha&&(i>Da||h.velocity===d)){var j=b.deltaX-h.deltaX,k=b.deltaY-h.deltaY,l=F(i,j,k);e=l.x,f=l.y,c=qa(l.x)>qa(l.y)?l.x:l.y,g=G(j,k),a.lastInterval=b}else c=h.velocity,e=h.velocityX,f=h.velocityY,g=h.direction;b.velocity=c,b.velocityX=e,b.velocityY=f,b.direction=g}function D(a){for(var b=[],c=0;c<a.pointers.length;)b[c]={clientX:pa(a.pointers[c].clientX),clientY:pa(a.pointers[c].clientY)},c++;return{timeStamp:ra(),pointers:b,center:E(b),deltaX:a.deltaX,deltaY:a.deltaY}}function E(a){var b=a.length;if(1===b)return{x:pa(a[0].clientX),y:pa(a[0].clientY)};for(var c=0,d=0,e=0;b>e;)c+=a[e].clientX,d+=a[e].clientY,e++;return{x:pa(c/b),y:pa(d/b)}}function F(a,b,c){return{x:b/a||0,y:c/a||0}}function G(a,b){return a===b?Ia:qa(a)>=qa(b)?0>a?Ja:Ka:0>b?La:Ma}function H(a,b,c){c||(c=Qa);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return Math.sqrt(d*d+e*e)}function I(a,b,c){c||(c=Qa);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return 180*Math.atan2(e,d)/Math.PI}function J(a,b){return I(b[1],b[0],Ra)+I(a[1],a[0],Ra)}function K(a,b){return H(b[0],b[1],Ra)/H(a[0],a[1],Ra)}function L(){this.evEl=Ta,this.evWin=Ua,this.pressed=!1,x.apply(this,arguments)}function M(){this.evEl=Xa,this.evWin=Ya,x.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function N(){this.evTarget=$a,this.evWin=_a,this.started=!1,x.apply(this,arguments)}function O(a,b){var c=s(a.touches),d=s(a.changedTouches);return b&(Ga|Ha)&&(c=t(c.concat(d),\"identifier\",!0)),[c,d]}function P(){this.evTarget=bb,this.targetIds={},x.apply(this,arguments)}function Q(a,b){var c=s(a.touches),d=this.targetIds;if(b&(Ea|Fa)&&1===c.length)return d[c[0].identifier]=!0,[c,c];var e,f,g=s(a.changedTouches),h=[],i=this.target;if(f=c.filter(function(a){return o(a.target,i)}),b===Ea)for(e=0;e<f.length;)d[f[e].identifier]=!0,e++;for(e=0;e<g.length;)d[g[e].identifier]&&h.push(g[e]),b&(Ga|Ha)&&delete d[g[e].identifier],e++;return h.length?[t(f.concat(h),\"identifier\",!0),h]:void 0}function R(){x.apply(this,arguments);var a=j(this.handler,this);this.touch=new P(this.manager,a),this.mouse=new L(this.manager,a),this.primaryTouch=null,this.lastTouches=[]}function S(a,b){a&Ea?(this.primaryTouch=b.changedPointers[0].identifier,T.call(this,b)):a&(Ga|Ha)&&T.call(this,b)}function T(a){var b=a.changedPointers[0];if(b.identifier===this.primaryTouch){var c={x:b.clientX,y:b.clientY};this.lastTouches.push(c);var d=this.lastTouches,e=function(){var a=d.indexOf(c);a>-1&&d.splice(a,1)};setTimeout(e,cb)}}function U(a){for(var b=a.srcEvent.clientX,c=a.srcEvent.clientY,d=0;d<this.lastTouches.length;d++){var e=this.lastTouches[d],f=Math.abs(b-e.x),g=Math.abs(c-e.y);if(db>=f&&db>=g)return!0}return!1}function V(a,b){this.manager=a,this.set(b)}function W(a){if(p(a,jb))return jb;var b=p(a,kb),c=p(a,lb);return b&&c?jb:b||c?b?kb:lb:p(a,ib)?ib:hb}function X(){if(!fb)return!1;var b={},c=a.CSS&&a.CSS.supports;return[\"auto\",\"manipulation\",\"pan-y\",\"pan-x\",\"pan-x pan-y\",\"none\"].forEach(function(d){b[d]=c?a.CSS.supports(\"touch-action\",d):!0}),b}function Y(a){this.options=la({},this.defaults,a||{}),this.id=v(),this.manager=null,this.options.enable=l(this.options.enable,!0),this.state=nb,this.simultaneous={},this.requireFail=[]}function Z(a){return a&sb?\"cancel\":a&qb?\"end\":a&pb?\"move\":a&ob?\"start\":\"\"}function $(a){return a==Ma?\"down\":a==La?\"up\":a==Ja?\"left\":a==Ka?\"right\":\"\"}function _(a,b){var c=b.manager;return c?c.get(a):a}function aa(){Y.apply(this,arguments)}function ba(){aa.apply(this,arguments),this.pX=null,this.pY=null}function ca(){aa.apply(this,arguments)}function da(){Y.apply(this,arguments),this._timer=null,this._input=null}function ea(){aa.apply(this,arguments)}function fa(){aa.apply(this,arguments)}function ga(){Y.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}function ha(a,b){return b=b||{},b.recognizers=l(b.recognizers,ha.defaults.preset),new ia(a,b)}function ia(a,b){this.options=la({},ha.defaults,b||{}),this.options.inputTarget=this.options.inputTarget||a,this.handlers={},this.session={},this.recognizers=[],this.oldCssProps={},this.element=a,this.input=y(this),this.touchAction=new V(this,this.options.touchAction),ja(this,!0),g(this.options.recognizers,function(a){var b=this.add(new a[0](a[1]));a[2]&&b.recognizeWith(a[2]),a[3]&&b.requireFailure(a[3])},this)}function ja(a,b){var c=a.element;if(c.style){var d;g(a.options.cssProps,function(e,f){d=u(c.style,f),b?(a.oldCssProps[d]=c.style[d],c.style[d]=e):c.style[d]=a.oldCssProps[d]||\"\"}),b||(a.oldCssProps={})}}function ka(a,c){var d=b.createEvent(\"Event\");d.initEvent(a,!0,!0),d.gesture=c,c.target.dispatchEvent(d)}var la,ma=[\"\",\"webkit\",\"Moz\",\"MS\",\"ms\",\"o\"],na=b.createElement(\"div\"),oa=\"function\",pa=Math.round,qa=Math.abs,ra=Date.now;la=\"function\"!=typeof Object.assign?function(a){if(a===d||null===a)throw new TypeError(\"Cannot convert undefined or null to object\");for(var b=Object(a),c=1;c<arguments.length;c++){var e=arguments[c];if(e!==d&&null!==e)for(var f in e)e.hasOwnProperty(f)&&(b[f]=e[f])}return b}:Object.assign;var sa=h(function(a,b,c){for(var e=Object.keys(b),f=0;f<e.length;)(!c||c&&a[e[f]]===d)&&(a[e[f]]=b[e[f]]),f++;return a},\"extend\",\"Use `assign`.\"),ta=h(function(a,b){return sa(a,b,!0)},\"merge\",\"Use `assign`.\"),ua=1,va=/mobile|tablet|ip(ad|hone|od)|android/i,wa=\"ontouchstart\"in a,xa=u(a,\"PointerEvent\")!==d,ya=wa&&va.test(navigator.userAgent),za=\"touch\",Aa=\"pen\",Ba=\"mouse\",Ca=\"kinect\",Da=25,Ea=1,Fa=2,Ga=4,Ha=8,Ia=1,Ja=2,Ka=4,La=8,Ma=16,Na=Ja|Ka,Oa=La|Ma,Pa=Na|Oa,Qa=[\"x\",\"y\"],Ra=[\"clientX\",\"clientY\"];x.prototype={handler:function(){},init:function(){this.evEl&&m(this.element,this.evEl,this.domHandler),this.evTarget&&m(this.target,this.evTarget,this.domHandler),this.evWin&&m(w(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&n(this.element,this.evEl,this.domHandler),this.evTarget&&n(this.target,this.evTarget,this.domHandler),this.evWin&&n(w(this.element),this.evWin,this.domHandler)}};var Sa={mousedown:Ea,mousemove:Fa,mouseup:Ga},Ta=\"mousedown\",Ua=\"mousemove mouseup\";i(L,x,{handler:function(a){var b=Sa[a.type];b&Ea&&0===a.button&&(this.pressed=!0),b&Fa&&1!==a.which&&(b=Ga),this.pressed&&(b&Ga&&(this.pressed=!1),this.callback(this.manager,b,{pointers:[a],changedPointers:[a],pointerType:Ba,srcEvent:a}))}});var Va={pointerdown:Ea,pointermove:Fa,pointerup:Ga,pointercancel:Ha,pointerout:Ha},Wa={2:za,3:Aa,4:Ba,5:Ca},Xa=\"pointerdown\",Ya=\"pointermove pointerup pointercancel\";a.MSPointerEvent&&!a.PointerEvent&&(Xa=\"MSPointerDown\",Ya=\"MSPointerMove MSPointerUp MSPointerCancel\"),i(M,x,{handler:function(a){var b=this.store,c=!1,d=a.type.toLowerCase().replace(\"ms\",\"\"),e=Va[d],f=Wa[a.pointerType]||a.pointerType,g=f==za,h=r(b,a.pointerId,\"pointerId\");e&Ea&&(0===a.button||g)?0>h&&(b.push(a),h=b.length-1):e&(Ga|Ha)&&(c=!0),0>h||(b[h]=a,this.callback(this.manager,e,{pointers:b,changedPointers:[a],pointerType:f,srcEvent:a}),c&&b.splice(h,1))}});var Za={touchstart:Ea,touchmove:Fa,touchend:Ga,touchcancel:Ha},$a=\"touchstart\",_a=\"touchstart touchmove touchend touchcancel\";i(N,x,{handler:function(a){var b=Za[a.type];if(b===Ea&&(this.started=!0),this.started){var c=O.call(this,a,b);b&(Ga|Ha)&&c[0].length-c[1].length===0&&(this.started=!1),this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:za,srcEvent:a})}}});var ab={touchstart:Ea,touchmove:Fa,touchend:Ga,touchcancel:Ha},bb=\"touchstart touchmove touchend touchcancel\";i(P,x,{handler:function(a){var b=ab[a.type],c=Q.call(this,a,b);c&&this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:za,srcEvent:a})}});var cb=2500,db=25;i(R,x,{handler:function(a,b,c){var d=c.pointerType==za,e=c.pointerType==Ba;if(!(e&&c.sourceCapabilities&&c.sourceCapabilities.firesTouchEvents)){if(d)S.call(this,b,c);else if(e&&U.call(this,c))return;this.callback(a,b,c)}},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var eb=u(na.style,\"touchAction\"),fb=eb!==d,gb=\"compute\",hb=\"auto\",ib=\"manipulation\",jb=\"none\",kb=\"pan-x\",lb=\"pan-y\",mb=X();V.prototype={set:function(a){a==gb&&(a=this.compute()),fb&&this.manager.element.style&&mb[a]&&(this.manager.element.style[eb]=a),this.actions=a.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var a=[];return g(this.manager.recognizers,function(b){k(b.options.enable,[b])&&(a=a.concat(b.getTouchAction()))}),W(a.join(\" \"))},preventDefaults:function(a){var b=a.srcEvent,c=a.offsetDirection;if(this.manager.session.prevented)return void b.preventDefault();var d=this.actions,e=p(d,jb)&&!mb[jb],f=p(d,lb)&&!mb[lb],g=p(d,kb)&&!mb[kb];if(e){var h=1===a.pointers.length,i=a.distance<2,j=a.deltaTime<250;if(h&&i&&j)return}return g&&f?void 0:e||f&&c&Na||g&&c&Oa?this.preventSrc(b):void 0},preventSrc:function(a){this.manager.session.prevented=!0,a.preventDefault()}};var nb=1,ob=2,pb=4,qb=8,rb=qb,sb=16,tb=32;Y.prototype={defaults:{},set:function(a){return la(this.options,a),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(a){if(f(a,\"recognizeWith\",this))return this;var b=this.simultaneous;return a=_(a,this),b[a.id]||(b[a.id]=a,a.recognizeWith(this)),this},dropRecognizeWith:function(a){return f(a,\"dropRecognizeWith\",this)?this:(a=_(a,this),delete this.simultaneous[a.id],this)},requireFailure:function(a){if(f(a,\"requireFailure\",this))return this;var b=this.requireFail;return a=_(a,this),-1===r(b,a)&&(b.push(a),a.requireFailure(this)),this},dropRequireFailure:function(a){if(f(a,\"dropRequireFailure\",this))return this;a=_(a,this);var b=r(this.requireFail,a);return b>-1&&this.requireFail.splice(b,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(a){return!!this.simultaneous[a.id]},emit:function(a){function b(b){c.manager.emit(b,a)}var c=this,d=this.state;qb>d&&b(c.options.event+Z(d)),b(c.options.event),a.additionalEvent&&b(a.additionalEvent),d>=qb&&b(c.options.event+Z(d))},tryEmit:function(a){return this.canEmit()?this.emit(a):void(this.state=tb)},canEmit:function(){for(var a=0;a<this.requireFail.length;){if(!(this.requireFail[a].state&(tb|nb)))return!1;a++}return!0},recognize:function(a){var b=la({},a);return k(this.options.enable,[this,b])?(this.state&(rb|sb|tb)&&(this.state=nb),this.state=this.process(b),void(this.state&(ob|pb|qb|sb)&&this.tryEmit(b))):(this.reset(),void(this.state=tb))},process:function(a){},getTouchAction:function(){},reset:function(){}},i(aa,Y,{defaults:{pointers:1},attrTest:function(a){var b=this.options.pointers;return 0===b||a.pointers.length===b},process:function(a){var b=this.state,c=a.eventType,d=b&(ob|pb),e=this.attrTest(a);return d&&(c&Ha||!e)?b|sb:d||e?c&Ga?b|qb:b&ob?b|pb:ob:tb}}),i(ba,aa,{defaults:{event:\"pan\",threshold:10,pointers:1,direction:Pa},getTouchAction:function(){var a=this.options.direction,b=[];return a&Na&&b.push(lb),a&Oa&&b.push(kb),b},directionTest:function(a){var b=this.options,c=!0,d=a.distance,e=a.direction,f=a.deltaX,g=a.deltaY;return e&b.direction||(b.direction&Na?(e=0===f?Ia:0>f?Ja:Ka,c=f!=this.pX,d=Math.abs(a.deltaX)):(e=0===g?Ia:0>g?La:Ma,c=g!=this.pY,d=Math.abs(a.deltaY))),a.direction=e,c&&d>b.threshold&&e&b.direction},attrTest:function(a){return aa.prototype.attrTest.call(this,a)&&(this.state&ob||!(this.state&ob)&&this.directionTest(a))},emit:function(a){this.pX=a.deltaX,this.pY=a.deltaY;var b=$(a.direction);b&&(a.additionalEvent=this.options.event+b),this._super.emit.call(this,a)}}),i(ca,aa,{defaults:{event:\"pinch\",threshold:0,pointers:2},getTouchAction:function(){return[jb]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.scale-1)>this.options.threshold||this.state&ob)},emit:function(a){if(1!==a.scale){var b=a.scale<1?\"in\":\"out\";a.additionalEvent=this.options.event+b}this._super.emit.call(this,a)}}),i(da,Y,{defaults:{event:\"press\",pointers:1,time:251,threshold:9},getTouchAction:function(){return[hb]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distance<b.threshold,f=a.deltaTime>b.time;if(this._input=a,!d||!c||a.eventType&(Ga|Ha)&&!f)this.reset();else if(a.eventType&Ea)this.reset(),this._timer=e(function(){this.state=rb,this.tryEmit()},b.time,this);else if(a.eventType&Ga)return rb;return tb},reset:function(){clearTimeout(this._timer)},emit:function(a){this.state===rb&&(a&&a.eventType&Ga?this.manager.emit(this.options.event+\"up\",a):(this._input.timeStamp=ra(),this.manager.emit(this.options.event,this._input)))}}),i(ea,aa,{defaults:{event:\"rotate\",threshold:0,pointers:2},getTouchAction:function(){return[jb]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.rotation)>this.options.threshold||this.state&ob)}}),i(fa,aa,{defaults:{event:\"swipe\",threshold:10,velocity:.3,direction:Na|Oa,pointers:1},getTouchAction:function(){return ba.prototype.getTouchAction.call(this)},attrTest:function(a){var b,c=this.options.direction;return c&(Na|Oa)?b=a.overallVelocity:c&Na?b=a.overallVelocityX:c&Oa&&(b=a.overallVelocityY),this._super.attrTest.call(this,a)&&c&a.offsetDirection&&a.distance>this.options.threshold&&a.maxPointers==this.options.pointers&&qa(b)>this.options.velocity&&a.eventType&Ga},emit:function(a){var b=$(a.offsetDirection);b&&this.manager.emit(this.options.event+b,a),this.manager.emit(this.options.event,a)}}),i(ga,Y,{defaults:{event:\"tap\",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[ib]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distance<b.threshold,f=a.deltaTime<b.time;if(this.reset(),a.eventType&Ea&&0===this.count)return this.failTimeout();if(d&&f&&c){if(a.eventType!=Ga)return this.failTimeout();var g=this.pTime?a.timeStamp-this.pTime<b.interval:!0,h=!this.pCenter||H(this.pCenter,a.center)<b.posThreshold;this.pTime=a.timeStamp,this.pCenter=a.center,h&&g?this.count+=1:this.count=1,this._input=a;var i=this.count%b.taps;if(0===i)return this.hasRequireFailures()?(this._timer=e(function(){this.state=rb,this.tryEmit()},b.interval,this),ob):rb}return tb},failTimeout:function(){return this._timer=e(function(){this.state=tb},this.options.interval,this),tb},reset:function(){clearTimeout(this._timer)},emit:function(){this.state==rb&&(this._input.tapCount=this.count,this.manager.emit(this.options.event,this._input))}}),ha.VERSION=\"2.0.8\",ha.defaults={domEvents:!1,touchAction:gb,enable:!0,inputTarget:null,inputClass:null,preset:[[ea,{enable:!1}],[ca,{enable:!1},[\"rotate\"]],[fa,{direction:Na}],[ba,{direction:Na},[\"swipe\"]],[ga],[ga,{event:\"doubletap\",taps:2},[\"tap\"]],[da]],cssProps:{userSelect:\"none\",touchSelect:\"none\",touchCallout:\"none\",contentZooming:\"none\",userDrag:\"none\",tapHighlightColor:\"rgba(0,0,0,0)\"}};var ub=1,vb=2;ia.prototype={set:function(a){return la(this.options,a),a.touchAction&&this.touchAction.update(),a.inputTarget&&(this.input.destroy(),this.input.target=a.inputTarget,this.input.init()),this},stop:function(a){this.session.stopped=a?vb:ub},recognize:function(a){var b=this.session;if(!b.stopped){this.touchAction.preventDefaults(a);var c,d=this.recognizers,e=b.curRecognizer;(!e||e&&e.state&rb)&&(e=b.curRecognizer=null);for(var f=0;f<d.length;)c=d[f],b.stopped===vb||e&&c!=e&&!c.canRecognizeWith(e)?c.reset():c.recognize(a),!e&&c.state&(ob|pb|qb)&&(e=b.curRecognizer=c),f++}},get:function(a){if(a instanceof Y)return a;for(var b=this.recognizers,c=0;c<b.length;c++)if(b[c].options.event==a)return b[c];return null},add:function(a){if(f(a,\"add\",this))return this;var b=this.get(a.options.event);return b&&this.remove(b),this.recognizers.push(a),a.manager=this,this.touchAction.update(),a},remove:function(a){if(f(a,\"remove\",this))return this;if(a=this.get(a)){var b=this.recognizers,c=r(b,a);-1!==c&&(b.splice(c,1),this.touchAction.update())}return this},on:function(a,b){if(a!==d&&b!==d){var c=this.handlers;return g(q(a),function(a){c[a]=c[a]||[],c[a].push(b)}),this}},off:function(a,b){if(a!==d){var c=this.handlers;return g(q(a),function(a){b?c[a]&&c[a].splice(r(c[a],b),1):delete c[a]}),this}},emit:function(a,b){this.options.domEvents&&ka(a,b);var c=this.handlers[a]&&this.handlers[a].slice();if(c&&c.length){b.type=a,b.preventDefault=function(){b.srcEvent.preventDefault()};for(var d=0;d<c.length;)c[d](b),d++}},destroy:function(){this.element&&ja(this,!1),this.handlers={},this.session={},this.input.destroy(),this.element=null}},la(ha,{INPUT_START:Ea,INPUT_MOVE:Fa,INPUT_END:Ga,INPUT_CANCEL:Ha,STATE_POSSIBLE:nb,STATE_BEGAN:ob,STATE_CHANGED:pb,STATE_ENDED:qb,STATE_RECOGNIZED:rb,STATE_CANCELLED:sb,STATE_FAILED:tb,DIRECTION_NONE:Ia,DIRECTION_LEFT:Ja,DIRECTION_RIGHT:Ka,DIRECTION_UP:La,DIRECTION_DOWN:Ma,DIRECTION_HORIZONTAL:Na,DIRECTION_VERTICAL:Oa,DIRECTION_ALL:Pa,Manager:ia,Input:x,TouchAction:V,TouchInput:P,MouseInput:L,PointerEventInput:M,TouchMouseInput:R,SingleTouchInput:N,Recognizer:Y,AttrRecognizer:aa,Tap:ga,Pan:ba,Swipe:fa,Pinch:ca,Rotate:ea,Press:da,on:m,off:n,each:g,merge:ta,extend:sa,assign:la,inherit:i,bindFn:j,prefixed:u});var wb=\"undefined\"!=typeof a?a:\"undefined\"!=typeof self?self:{};wb.Hammer=ha,\"function\"==typeof define&&define.amd?define(function(){return ha}):\"undefined\"!=typeof module&&module.exports?module.exports=ha:a[c]=ha}(window,document,\"Hammer\");\n//# sourceMappingURL=hammer.min.js.map","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar tns = function () {\n var win = window;\n\n var raf = win.requestAnimationFrame || win.webkitRequestAnimationFrame || win.mozRequestAnimationFrame || win.msRequestAnimationFrame || function (cb) {\n return setTimeout(cb, 16);\n };\n\n var win$1 = window;\n\n var caf = win$1.cancelAnimationFrame || win$1.mozCancelAnimationFrame || function (id) {\n clearTimeout(id);\n };\n\n function extend() {\n var obj,\n name,\n copy,\n target = arguments[0] || {},\n i = 1,\n length = arguments.length;\n\n for (; i < length; i++) {\n if ((obj = arguments[i]) !== null) {\n for (name in obj) {\n copy = obj[name];\n\n if (target === copy) {\n continue;\n } else if (copy !== undefined) {\n target[name] = copy;\n }\n }\n }\n }\n\n return target;\n }\n\n function checkStorageValue(value) {\n return ['true', 'false'].indexOf(value) >= 0 ? JSON.parse(value) : value;\n }\n\n function setLocalStorage(storage, key, value, access) {\n if (access) {\n try {\n storage.setItem(key, value);\n } catch (e) {}\n }\n\n return value;\n }\n\n function getSlideId() {\n var id = window.tnsId;\n window.tnsId = !id ? 1 : id + 1;\n return 'tns' + window.tnsId;\n }\n\n function getBody() {\n var doc = document,\n body = doc.body;\n\n if (!body) {\n body = doc.createElement('body');\n body.fake = true;\n }\n\n return body;\n }\n\n var docElement = document.documentElement;\n\n function setFakeBody(body) {\n var docOverflow = '';\n\n if (body.fake) {\n docOverflow = docElement.style.overflow; //avoid crashing IE8, if background image is used\n\n body.style.background = ''; //Safari 5.13/5.1.4 OSX stops loading if ::-webkit-scrollbar is used and scrollbars are visible\n\n body.style.overflow = docElement.style.overflow = 'hidden';\n docElement.appendChild(body);\n }\n\n return docOverflow;\n }\n\n function resetFakeBody(body, docOverflow) {\n if (body.fake) {\n body.remove();\n docElement.style.overflow = docOverflow; // Trigger layout so kinetic scrolling isn't disabled in iOS6+\n // eslint-disable-next-line\n\n docElement.offsetHeight;\n }\n } // get css-calc \n\n\n function calc() {\n var doc = document,\n body = getBody(),\n docOverflow = setFakeBody(body),\n div = doc.createElement('div'),\n result = false;\n body.appendChild(div);\n\n try {\n var str = '(10px * 10)',\n vals = ['calc' + str, '-moz-calc' + str, '-webkit-calc' + str],\n val;\n\n for (var i = 0; i < 3; i++) {\n val = vals[i];\n div.style.width = val;\n\n if (div.offsetWidth === 100) {\n result = val.replace(str, '');\n break;\n }\n }\n } catch (e) {}\n\n body.fake ? resetFakeBody(body, docOverflow) : div.remove();\n return result;\n } // get subpixel support value\n\n\n function percentageLayout() {\n // check subpixel layout supporting\n var doc = document,\n body = getBody(),\n docOverflow = setFakeBody(body),\n wrapper = doc.createElement('div'),\n outer = doc.createElement('div'),\n str = '',\n count = 70,\n perPage = 3,\n supported = false;\n wrapper.className = \"tns-t-subp2\";\n outer.className = \"tns-t-ct\";\n\n for (var i = 0; i < count; i++) {\n str += '<div></div>';\n }\n\n outer.innerHTML = str;\n wrapper.appendChild(outer);\n body.appendChild(wrapper);\n supported = Math.abs(wrapper.getBoundingClientRect().left - outer.children[count - perPage].getBoundingClientRect().left) < 2;\n body.fake ? resetFakeBody(body, docOverflow) : wrapper.remove();\n return supported;\n }\n\n function mediaquerySupport() {\n if (window.matchMedia || window.msMatchMedia) {\n return true;\n }\n\n var doc = document,\n body = getBody(),\n docOverflow = setFakeBody(body),\n div = doc.createElement('div'),\n style = doc.createElement('style'),\n rule = '@media all and (min-width:1px){.tns-mq-test{position:absolute}}',\n position;\n style.type = 'text/css';\n div.className = 'tns-mq-test';\n body.appendChild(style);\n body.appendChild(div);\n\n if (style.styleSheet) {\n style.styleSheet.cssText = rule;\n } else {\n style.appendChild(doc.createTextNode(rule));\n }\n\n position = window.getComputedStyle ? window.getComputedStyle(div).position : div.currentStyle['position'];\n body.fake ? resetFakeBody(body, docOverflow) : div.remove();\n return position === \"absolute\";\n } // create and append style sheet\n\n\n function createStyleSheet(media, nonce) {\n // Create the <style> tag\n var style = document.createElement(\"style\"); // style.setAttribute(\"type\", \"text/css\");\n // Add a media (and/or media query) here if you'd like!\n // style.setAttribute(\"media\", \"screen\")\n // style.setAttribute(\"media\", \"only screen and (max-width : 1024px)\")\n\n if (media) {\n style.setAttribute(\"media\", media);\n } // Add nonce attribute for Content Security Policy\n\n\n if (nonce) {\n style.setAttribute(\"nonce\", nonce);\n } // WebKit hack :(\n // style.appendChild(document.createTextNode(\"\"));\n // Add the <style> element to the page\n\n\n document.querySelector('head').appendChild(style);\n return style.sheet ? style.sheet : style.styleSheet;\n } // cross browsers addRule method\n\n\n function addCSSRule(sheet, selector, rules, index) {\n // return raf(function() {\n 'insertRule' in sheet ? sheet.insertRule(selector + '{' + rules + '}', index) : sheet.addRule(selector, rules, index); // });\n } // cross browsers addRule method\n\n\n function removeCSSRule(sheet, index) {\n // return raf(function() {\n 'deleteRule' in sheet ? sheet.deleteRule(index) : sheet.removeRule(index); // });\n }\n\n function getCssRulesLength(sheet) {\n var rule = 'insertRule' in sheet ? sheet.cssRules : sheet.rules;\n return rule.length;\n }\n\n function toDegree(y, x) {\n return Math.atan2(y, x) * (180 / Math.PI);\n }\n\n function getTouchDirection(angle, range) {\n var direction = false,\n gap = Math.abs(90 - Math.abs(angle));\n\n if (gap >= 90 - range) {\n direction = 'horizontal';\n } else if (gap <= range) {\n direction = 'vertical';\n }\n\n return direction;\n } // https://toddmotto.com/ditch-the-array-foreach-call-nodelist-hack/\n\n\n function forEach(arr, callback, scope) {\n for (var i = 0, l = arr.length; i < l; i++) {\n callback.call(scope, arr[i], i);\n }\n }\n\n var classListSupport = ('classList' in document.createElement('_'));\n var hasClass = classListSupport ? function (el, str) {\n return el.classList.contains(str);\n } : function (el, str) {\n return el.className.indexOf(str) >= 0;\n };\n var addClass = classListSupport ? function (el, str) {\n if (!hasClass(el, str)) {\n el.classList.add(str);\n }\n } : function (el, str) {\n if (!hasClass(el, str)) {\n el.className += ' ' + str;\n }\n };\n var removeClass = classListSupport ? function (el, str) {\n if (hasClass(el, str)) {\n el.classList.remove(str);\n }\n } : function (el, str) {\n if (hasClass(el, str)) {\n el.className = el.className.replace(str, '');\n }\n };\n\n function hasAttr(el, attr) {\n return el.hasAttribute(attr);\n }\n\n function getAttr(el, attr) {\n return el.getAttribute(attr);\n }\n\n function isNodeList(el) {\n // Only NodeList has the \"item()\" function\n return typeof el.item !== \"undefined\";\n }\n\n function setAttrs(els, attrs) {\n els = isNodeList(els) || els instanceof Array ? els : [els];\n\n if (Object.prototype.toString.call(attrs) !== '[object Object]') {\n return;\n }\n\n for (var i = els.length; i--;) {\n for (var key in attrs) {\n els[i].setAttribute(key, attrs[key]);\n }\n }\n }\n\n function removeAttrs(els, attrs) {\n els = isNodeList(els) || els instanceof Array ? els : [els];\n attrs = attrs instanceof Array ? attrs : [attrs];\n var attrLength = attrs.length;\n\n for (var i = els.length; i--;) {\n for (var j = attrLength; j--;) {\n els[i].removeAttribute(attrs[j]);\n }\n }\n }\n\n function arrayFromNodeList(nl) {\n var arr = [];\n\n for (var i = 0, l = nl.length; i < l; i++) {\n arr.push(nl[i]);\n }\n\n return arr;\n }\n\n function hideElement(el, forceHide) {\n if (el.style.display !== 'none') {\n el.style.display = 'none';\n }\n }\n\n function showElement(el, forceHide) {\n if (el.style.display === 'none') {\n el.style.display = '';\n }\n }\n\n function isVisible(el) {\n return window.getComputedStyle(el).display !== 'none';\n }\n\n function whichProperty(props) {\n if (typeof props === 'string') {\n var arr = [props],\n Props = props.charAt(0).toUpperCase() + props.substr(1),\n prefixes = ['Webkit', 'Moz', 'ms', 'O'];\n prefixes.forEach(function (prefix) {\n if (prefix !== 'ms' || props === 'transform') {\n arr.push(prefix + Props);\n }\n });\n props = arr;\n }\n\n var el = document.createElement('fakeelement'),\n len = props.length;\n\n for (var i = 0; i < props.length; i++) {\n var prop = props[i];\n\n if (el.style[prop] !== undefined) {\n return prop;\n }\n }\n\n return false; // explicit for ie9-\n }\n\n function has3DTransforms(tf) {\n if (!tf) {\n return false;\n }\n\n if (!window.getComputedStyle) {\n return false;\n }\n\n var doc = document,\n body = getBody(),\n docOverflow = setFakeBody(body),\n el = doc.createElement('p'),\n has3d,\n cssTF = tf.length > 9 ? '-' + tf.slice(0, -9).toLowerCase() + '-' : '';\n cssTF += 'transform'; // Add it to the body to get the computed style\n\n body.insertBefore(el, null);\n el.style[tf] = 'translate3d(1px,1px,1px)';\n has3d = window.getComputedStyle(el).getPropertyValue(cssTF);\n body.fake ? resetFakeBody(body, docOverflow) : el.remove();\n return has3d !== undefined && has3d.length > 0 && has3d !== \"none\";\n } // get transitionend, animationend based on transitionDuration\n // @propin: string\n // @propOut: string, first-letter uppercase\n // Usage: getEndProperty('WebkitTransitionDuration', 'Transition') => webkitTransitionEnd\n\n\n function getEndProperty(propIn, propOut) {\n var endProp = false;\n\n if (/^Webkit/.test(propIn)) {\n endProp = 'webkit' + propOut + 'End';\n } else if (/^O/.test(propIn)) {\n endProp = 'o' + propOut + 'End';\n } else if (propIn) {\n endProp = propOut.toLowerCase() + 'end';\n }\n\n return endProp;\n } // Test via a getter in the options object to see if the passive property is accessed\n\n\n var supportsPassive = false;\n\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get: function get() {\n supportsPassive = true;\n }\n });\n window.addEventListener(\"test\", null, opts);\n } catch (e) {}\n\n var passiveOption = supportsPassive ? {\n passive: true\n } : false;\n\n function addEvents(el, obj, preventScrolling) {\n for (var prop in obj) {\n var option = ['touchstart', 'touchmove'].indexOf(prop) >= 0 && !preventScrolling ? passiveOption : false;\n el.addEventListener(prop, obj[prop], option);\n }\n }\n\n function removeEvents(el, obj) {\n for (var prop in obj) {\n var option = ['touchstart', 'touchmove'].indexOf(prop) >= 0 ? passiveOption : false;\n el.removeEventListener(prop, obj[prop], option);\n }\n }\n\n function Events() {\n return {\n topics: {},\n on: function on(eventName, fn) {\n this.topics[eventName] = this.topics[eventName] || [];\n this.topics[eventName].push(fn);\n },\n off: function off(eventName, fn) {\n if (this.topics[eventName]) {\n for (var i = 0; i < this.topics[eventName].length; i++) {\n if (this.topics[eventName][i] === fn) {\n this.topics[eventName].splice(i, 1);\n break;\n }\n }\n }\n },\n emit: function emit(eventName, data) {\n data.type = eventName;\n\n if (this.topics[eventName]) {\n this.topics[eventName].forEach(function (fn) {\n fn(data, eventName);\n });\n }\n }\n };\n }\n\n function jsTransform(element, attr, prefix, postfix, to, duration, callback) {\n var tick = Math.min(duration, 10),\n unit = to.indexOf('%') >= 0 ? '%' : 'px',\n to = to.replace(unit, ''),\n from = Number(element.style[attr].replace(prefix, '').replace(postfix, '').replace(unit, '')),\n positionTick = (to - from) / duration * tick,\n running;\n setTimeout(moveElement, tick);\n\n function moveElement() {\n duration -= tick;\n from += positionTick;\n element.style[attr] = prefix + from + unit + postfix;\n\n if (duration > 0) {\n setTimeout(moveElement, tick);\n } else {\n callback();\n }\n }\n } // Object.keys\n\n\n if (!Object.keys) {\n Object.keys = function (object) {\n var keys = [];\n\n for (var name in object) {\n if (Object.prototype.hasOwnProperty.call(object, name)) {\n keys.push(name);\n }\n }\n\n return keys;\n };\n } // ChildNode.remove\n\n\n if (!(\"remove\" in Element.prototype)) {\n Element.prototype.remove = function () {\n if (this.parentNode) {\n this.parentNode.removeChild(this);\n }\n };\n }\n\n var tns = function tns(options) {\n options = extend({\n container: '.slider',\n mode: 'carousel',\n axis: 'horizontal',\n items: 1,\n gutter: 0,\n edgePadding: 0,\n fixedWidth: false,\n autoWidth: false,\n viewportMax: false,\n slideBy: 1,\n center: false,\n controls: true,\n controlsPosition: 'top',\n controlsText: ['prev', 'next'],\n controlsContainer: false,\n prevButton: false,\n nextButton: false,\n nav: true,\n navPosition: 'top',\n navContainer: false,\n navAsThumbnails: false,\n arrowKeys: false,\n speed: 300,\n autoplay: false,\n autoplayPosition: 'top',\n autoplayTimeout: 5000,\n autoplayDirection: 'forward',\n autoplayText: ['start', 'stop'],\n autoplayHoverPause: false,\n autoplayButton: false,\n autoplayButtonOutput: true,\n autoplayResetOnVisibility: true,\n animateIn: 'tns-fadeIn',\n animateOut: 'tns-fadeOut',\n animateNormal: 'tns-normal',\n animateDelay: false,\n loop: true,\n rewind: false,\n autoHeight: false,\n responsive: false,\n lazyload: false,\n lazyloadSelector: '.tns-lazy-img',\n touch: true,\n mouseDrag: false,\n swipeAngle: 15,\n nested: false,\n preventActionWhenRunning: false,\n preventScrollOnTouch: false,\n freezable: true,\n onInit: false,\n useLocalStorage: true,\n nonce: false\n }, options || {});\n var doc = document,\n win = window,\n KEYS = {\n ENTER: 13,\n SPACE: 32,\n LEFT: 37,\n RIGHT: 39\n },\n tnsStorage = {},\n localStorageAccess = options.useLocalStorage;\n\n if (localStorageAccess) {\n // check browser version and local storage access\n var browserInfo = navigator.userAgent;\n var uid = new Date();\n\n try {\n tnsStorage = win.localStorage;\n\n if (tnsStorage) {\n tnsStorage.setItem(uid, uid);\n localStorageAccess = tnsStorage.getItem(uid) == uid;\n tnsStorage.removeItem(uid);\n } else {\n localStorageAccess = false;\n }\n\n if (!localStorageAccess) {\n tnsStorage = {};\n }\n } catch (e) {\n localStorageAccess = false;\n }\n\n if (localStorageAccess) {\n // remove storage when browser version changes\n if (tnsStorage['tnsApp'] && tnsStorage['tnsApp'] !== browserInfo) {\n ['tC', 'tPL', 'tMQ', 'tTf', 't3D', 'tTDu', 'tTDe', 'tADu', 'tADe', 'tTE', 'tAE'].forEach(function (item) {\n tnsStorage.removeItem(item);\n });\n } // update browserInfo\n\n\n localStorage['tnsApp'] = browserInfo;\n }\n }\n\n var CALC = tnsStorage['tC'] ? checkStorageValue(tnsStorage['tC']) : setLocalStorage(tnsStorage, 'tC', calc(), localStorageAccess),\n PERCENTAGELAYOUT = tnsStorage['tPL'] ? checkStorageValue(tnsStorage['tPL']) : setLocalStorage(tnsStorage, 'tPL', percentageLayout(), localStorageAccess),\n CSSMQ = tnsStorage['tMQ'] ? checkStorageValue(tnsStorage['tMQ']) : setLocalStorage(tnsStorage, 'tMQ', mediaquerySupport(), localStorageAccess),\n TRANSFORM = tnsStorage['tTf'] ? checkStorageValue(tnsStorage['tTf']) : setLocalStorage(tnsStorage, 'tTf', whichProperty('transform'), localStorageAccess),\n HAS3DTRANSFORMS = tnsStorage['t3D'] ? checkStorageValue(tnsStorage['t3D']) : setLocalStorage(tnsStorage, 't3D', has3DTransforms(TRANSFORM), localStorageAccess),\n TRANSITIONDURATION = tnsStorage['tTDu'] ? checkStorageValue(tnsStorage['tTDu']) : setLocalStorage(tnsStorage, 'tTDu', whichProperty('transitionDuration'), localStorageAccess),\n TRANSITIONDELAY = tnsStorage['tTDe'] ? checkStorageValue(tnsStorage['tTDe']) : setLocalStorage(tnsStorage, 'tTDe', whichProperty('transitionDelay'), localStorageAccess),\n ANIMATIONDURATION = tnsStorage['tADu'] ? checkStorageValue(tnsStorage['tADu']) : setLocalStorage(tnsStorage, 'tADu', whichProperty('animationDuration'), localStorageAccess),\n ANIMATIONDELAY = tnsStorage['tADe'] ? checkStorageValue(tnsStorage['tADe']) : setLocalStorage(tnsStorage, 'tADe', whichProperty('animationDelay'), localStorageAccess),\n TRANSITIONEND = tnsStorage['tTE'] ? checkStorageValue(tnsStorage['tTE']) : setLocalStorage(tnsStorage, 'tTE', getEndProperty(TRANSITIONDURATION, 'Transition'), localStorageAccess),\n ANIMATIONEND = tnsStorage['tAE'] ? checkStorageValue(tnsStorage['tAE']) : setLocalStorage(tnsStorage, 'tAE', getEndProperty(ANIMATIONDURATION, 'Animation'), localStorageAccess); // get element nodes from selectors\n\n var supportConsoleWarn = win.console && typeof win.console.warn === \"function\",\n tnsList = ['container', 'controlsContainer', 'prevButton', 'nextButton', 'navContainer', 'autoplayButton'],\n optionsElements = {};\n tnsList.forEach(function (item) {\n if (typeof options[item] === 'string') {\n var str = options[item],\n el = doc.querySelector(str);\n optionsElements[item] = str;\n\n if (el && el.nodeName) {\n options[item] = el;\n } else {\n if (supportConsoleWarn) {\n console.warn('Can\\'t find', options[item]);\n }\n\n return;\n }\n }\n }); // make sure at least 1 slide\n\n if (options.container.children.length < 1) {\n if (supportConsoleWarn) {\n console.warn('No slides found in', options.container);\n }\n\n return;\n } // update options\n\n\n var responsive = options.responsive,\n nested = options.nested,\n carousel = options.mode === 'carousel' ? true : false;\n\n if (responsive) {\n // apply responsive[0] to options and remove it\n if (0 in responsive) {\n options = extend(options, responsive[0]);\n delete responsive[0];\n }\n\n var responsiveTem = {};\n\n for (var key in responsive) {\n var val = responsive[key]; // update responsive\n // from: 300: 2\n // to:\n // 300: {\n // items: 2\n // }\n\n val = typeof val === 'number' ? {\n items: val\n } : val;\n responsiveTem[key] = val;\n }\n\n responsive = responsiveTem;\n responsiveTem = null;\n } // update options\n\n\n function updateOptions(obj) {\n for (var key in obj) {\n if (!carousel) {\n if (key === 'slideBy') {\n obj[key] = 'page';\n }\n\n if (key === 'edgePadding') {\n obj[key] = false;\n }\n\n if (key === 'autoHeight') {\n obj[key] = false;\n }\n } // update responsive options\n\n\n if (key === 'responsive') {\n updateOptions(obj[key]);\n }\n }\n }\n\n if (!carousel) {\n updateOptions(options);\n } // === define and set variables ===\n\n\n if (!carousel) {\n options.axis = 'horizontal';\n options.slideBy = 'page';\n options.edgePadding = false;\n var animateIn = options.animateIn,\n animateOut = options.animateOut,\n animateDelay = options.animateDelay,\n animateNormal = options.animateNormal;\n }\n\n var horizontal = options.axis === 'horizontal' ? true : false,\n outerWrapper = doc.createElement('div'),\n innerWrapper = doc.createElement('div'),\n middleWrapper,\n container = options.container,\n containerParent = container.parentNode,\n containerHTML = container.outerHTML,\n slideItems = container.children,\n slideCount = slideItems.length,\n breakpointZone,\n windowWidth = getWindowWidth(),\n isOn = false;\n\n if (responsive) {\n setBreakpointZone();\n }\n\n if (carousel) {\n container.className += ' tns-vpfix';\n } // fixedWidth: viewport > rightBoundary > indexMax\n\n\n var autoWidth = options.autoWidth,\n fixedWidth = getOption('fixedWidth'),\n edgePadding = getOption('edgePadding'),\n gutter = getOption('gutter'),\n viewport = getViewportWidth(),\n center = getOption('center'),\n items = !autoWidth ? Math.floor(getOption('items')) : 1,\n slideBy = getOption('slideBy'),\n viewportMax = options.viewportMax || options.fixedWidthViewportWidth,\n arrowKeys = getOption('arrowKeys'),\n speed = getOption('speed'),\n rewind = options.rewind,\n loop = rewind ? false : options.loop,\n autoHeight = getOption('autoHeight'),\n controls = getOption('controls'),\n controlsText = getOption('controlsText'),\n nav = getOption('nav'),\n touch = getOption('touch'),\n mouseDrag = getOption('mouseDrag'),\n autoplay = getOption('autoplay'),\n autoplayTimeout = getOption('autoplayTimeout'),\n autoplayText = getOption('autoplayText'),\n autoplayHoverPause = getOption('autoplayHoverPause'),\n autoplayResetOnVisibility = getOption('autoplayResetOnVisibility'),\n sheet = createStyleSheet(null, getOption('nonce')),\n lazyload = options.lazyload,\n lazyloadSelector = options.lazyloadSelector,\n slidePositions,\n // collection of slide positions\n slideItemsOut = [],\n cloneCount = loop ? getCloneCountForLoop() : 0,\n slideCountNew = !carousel ? slideCount + cloneCount : slideCount + cloneCount * 2,\n hasRightDeadZone = (fixedWidth || autoWidth) && !loop ? true : false,\n rightBoundary = fixedWidth ? getRightBoundary() : null,\n updateIndexBeforeTransform = !carousel || !loop ? true : false,\n // transform\n transformAttr = horizontal ? 'left' : 'top',\n transformPrefix = '',\n transformPostfix = '',\n // index\n getIndexMax = function () {\n if (fixedWidth) {\n return function () {\n return center && !loop ? slideCount - 1 : Math.ceil(-rightBoundary / (fixedWidth + gutter));\n };\n } else if (autoWidth) {\n return function () {\n for (var i = 0; i < slideCountNew; i++) {\n if (slidePositions[i] >= -rightBoundary) {\n return i;\n }\n }\n };\n } else {\n return function () {\n if (center && carousel && !loop) {\n return slideCount - 1;\n } else {\n return loop || carousel ? Math.max(0, slideCountNew - Math.ceil(items)) : slideCountNew - 1;\n }\n };\n }\n }(),\n index = getStartIndex(getOption('startIndex')),\n indexCached = index,\n displayIndex = getCurrentSlide(),\n indexMin = 0,\n indexMax = !autoWidth ? getIndexMax() : null,\n // resize\n resizeTimer,\n preventActionWhenRunning = options.preventActionWhenRunning,\n swipeAngle = options.swipeAngle,\n moveDirectionExpected = swipeAngle ? '?' : true,\n running = false,\n onInit = options.onInit,\n events = new Events(),\n // id, class\n newContainerClasses = ' tns-slider tns-' + options.mode,\n slideId = container.id || getSlideId(),\n disable = getOption('disable'),\n disabled = false,\n freezable = options.freezable,\n freeze = freezable && !autoWidth ? getFreeze() : false,\n frozen = false,\n controlsEvents = {\n 'click': onControlsClick,\n 'keydown': onControlsKeydown\n },\n navEvents = {\n 'click': onNavClick,\n 'keydown': onNavKeydown\n },\n hoverEvents = {\n 'mouseover': mouseoverPause,\n 'mouseout': mouseoutRestart\n },\n visibilityEvent = {\n 'visibilitychange': onVisibilityChange\n },\n docmentKeydownEvent = {\n 'keydown': onDocumentKeydown\n },\n touchEvents = {\n 'touchstart': onPanStart,\n 'touchmove': onPanMove,\n 'touchend': onPanEnd,\n 'touchcancel': onPanEnd\n },\n dragEvents = {\n 'mousedown': onPanStart,\n 'mousemove': onPanMove,\n 'mouseup': onPanEnd,\n 'mouseleave': onPanEnd\n },\n hasControls = hasOption('controls'),\n hasNav = hasOption('nav'),\n navAsThumbnails = autoWidth ? true : options.navAsThumbnails,\n hasAutoplay = hasOption('autoplay'),\n hasTouch = hasOption('touch'),\n hasMouseDrag = hasOption('mouseDrag'),\n slideActiveClass = 'tns-slide-active',\n slideClonedClass = 'tns-slide-cloned',\n imgCompleteClass = 'tns-complete',\n imgEvents = {\n 'load': onImgLoaded,\n 'error': onImgFailed\n },\n imgsComplete,\n liveregionCurrent,\n preventScroll = options.preventScrollOnTouch === 'force' ? true : false; // controls\n\n\n if (hasControls) {\n var controlsContainer = options.controlsContainer,\n controlsContainerHTML = options.controlsContainer ? options.controlsContainer.outerHTML : '',\n prevButton = options.prevButton,\n nextButton = options.nextButton,\n prevButtonHTML = options.prevButton ? options.prevButton.outerHTML : '',\n nextButtonHTML = options.nextButton ? options.nextButton.outerHTML : '',\n prevIsButton,\n nextIsButton;\n } // nav\n\n\n if (hasNav) {\n var navContainer = options.navContainer,\n navContainerHTML = options.navContainer ? options.navContainer.outerHTML : '',\n navItems,\n pages = autoWidth ? slideCount : getPages(),\n pagesCached = 0,\n navClicked = -1,\n navCurrentIndex = getCurrentNavIndex(),\n navCurrentIndexCached = navCurrentIndex,\n navActiveClass = 'tns-nav-active',\n navStr = 'Carousel Page ',\n navStrCurrent = ' (Current Slide)';\n } // autoplay\n\n\n if (hasAutoplay) {\n var autoplayDirection = options.autoplayDirection === 'forward' ? 1 : -1,\n autoplayButton = options.autoplayButton,\n autoplayButtonHTML = options.autoplayButton ? options.autoplayButton.outerHTML : '',\n autoplayHtmlStrings = ['<span class=\\'tns-visually-hidden\\'>', ' animation</span>'],\n autoplayTimer,\n animating,\n autoplayHoverPaused,\n autoplayUserPaused,\n autoplayVisibilityPaused;\n }\n\n if (hasTouch || hasMouseDrag) {\n var initPosition = {},\n lastPosition = {},\n translateInit,\n disX,\n disY,\n panStart = false,\n rafIndex,\n getDist = horizontal ? function (a, b) {\n return a.x - b.x;\n } : function (a, b) {\n return a.y - b.y;\n };\n } // disable slider when slidecount <= items\n\n\n if (!autoWidth) {\n resetVariblesWhenDisable(disable || freeze);\n }\n\n if (TRANSFORM) {\n transformAttr = TRANSFORM;\n transformPrefix = 'translate';\n\n if (HAS3DTRANSFORMS) {\n transformPrefix += horizontal ? '3d(' : '3d(0px, ';\n transformPostfix = horizontal ? ', 0px, 0px)' : ', 0px)';\n } else {\n transformPrefix += horizontal ? 'X(' : 'Y(';\n transformPostfix = ')';\n }\n }\n\n if (carousel) {\n container.className = container.className.replace('tns-vpfix', '');\n }\n\n initStructure();\n initSheet();\n initSliderTransform(); // === COMMON FUNCTIONS === //\n\n function resetVariblesWhenDisable(condition) {\n if (condition) {\n controls = nav = touch = mouseDrag = arrowKeys = autoplay = autoplayHoverPause = autoplayResetOnVisibility = false;\n }\n }\n\n function getCurrentSlide() {\n var tem = carousel ? index - cloneCount : index;\n\n while (tem < 0) {\n tem += slideCount;\n }\n\n return tem % slideCount + 1;\n }\n\n function getStartIndex(ind) {\n ind = ind ? Math.max(0, Math.min(loop ? slideCount - 1 : slideCount - items, ind)) : 0;\n return carousel ? ind + cloneCount : ind;\n }\n\n function getAbsIndex(i) {\n if (i == null) {\n i = index;\n }\n\n if (carousel) {\n i -= cloneCount;\n }\n\n while (i < 0) {\n i += slideCount;\n }\n\n return Math.floor(i % slideCount);\n }\n\n function getCurrentNavIndex() {\n var absIndex = getAbsIndex(),\n result;\n result = navAsThumbnails ? absIndex : fixedWidth || autoWidth ? Math.ceil((absIndex + 1) * pages / slideCount - 1) : Math.floor(absIndex / items); // set active nav to the last one when reaches the right edge\n\n if (!loop && carousel && index === indexMax) {\n result = pages - 1;\n }\n\n return result;\n }\n\n function getItemsMax() {\n // fixedWidth or autoWidth while viewportMax is not available\n if (autoWidth || fixedWidth && !viewportMax) {\n return slideCount - 1; // most cases\n } else {\n var str = fixedWidth ? 'fixedWidth' : 'items',\n arr = [];\n\n if (fixedWidth || options[str] < slideCount) {\n arr.push(options[str]);\n }\n\n if (responsive) {\n for (var bp in responsive) {\n var tem = responsive[bp][str];\n\n if (tem && (fixedWidth || tem < slideCount)) {\n arr.push(tem);\n }\n }\n }\n\n if (!arr.length) {\n arr.push(0);\n }\n\n return Math.ceil(fixedWidth ? viewportMax / Math.min.apply(null, arr) : Math.max.apply(null, arr));\n }\n }\n\n function getCloneCountForLoop() {\n var itemsMax = getItemsMax(),\n result = carousel ? Math.ceil((itemsMax * 5 - slideCount) / 2) : itemsMax * 4 - slideCount;\n result = Math.max(itemsMax, result);\n return hasOption('edgePadding') ? result + 1 : result;\n }\n\n function getWindowWidth() {\n return win.innerWidth || doc.documentElement.clientWidth || doc.body.clientWidth;\n }\n\n function getInsertPosition(pos) {\n return pos === 'top' ? 'afterbegin' : 'beforeend';\n }\n\n function getClientWidth(el) {\n if (el == null) {\n return;\n }\n\n var div = doc.createElement('div'),\n rect,\n width;\n el.appendChild(div);\n rect = div.getBoundingClientRect();\n width = rect.right - rect.left;\n div.remove();\n return width || getClientWidth(el.parentNode);\n }\n\n function getViewportWidth() {\n var gap = edgePadding ? edgePadding * 2 - gutter : 0;\n return getClientWidth(containerParent) - gap;\n }\n\n function hasOption(item) {\n if (options[item]) {\n return true;\n } else {\n if (responsive) {\n for (var bp in responsive) {\n if (responsive[bp][item]) {\n return true;\n }\n }\n }\n\n return false;\n }\n } // get option:\n // fixed width: viewport, fixedWidth, gutter => items\n // others: window width => all variables\n // all: items => slideBy\n\n\n function getOption(item, ww) {\n if (ww == null) {\n ww = windowWidth;\n }\n\n if (item === 'items' && fixedWidth) {\n return Math.floor((viewport + gutter) / (fixedWidth + gutter)) || 1;\n } else {\n var result = options[item];\n\n if (responsive) {\n for (var bp in responsive) {\n // bp: convert string to number\n if (ww >= parseInt(bp)) {\n if (item in responsive[bp]) {\n result = responsive[bp][item];\n }\n }\n }\n }\n\n if (item === 'slideBy' && result === 'page') {\n result = getOption('items');\n }\n\n if (!carousel && (item === 'slideBy' || item === 'items')) {\n result = Math.floor(result);\n }\n\n return result;\n }\n }\n\n function getSlideMarginLeft(i) {\n return CALC ? CALC + '(' + i * 100 + '% / ' + slideCountNew + ')' : i * 100 / slideCountNew + '%';\n }\n\n function getInnerWrapperStyles(edgePaddingTem, gutterTem, fixedWidthTem, speedTem, autoHeightBP) {\n var str = '';\n\n if (edgePaddingTem !== undefined) {\n var gap = edgePaddingTem;\n\n if (gutterTem) {\n gap -= gutterTem;\n }\n\n str = horizontal ? 'margin: 0 ' + gap + 'px 0 ' + edgePaddingTem + 'px;' : 'margin: ' + edgePaddingTem + 'px 0 ' + gap + 'px 0;';\n } else if (gutterTem && !fixedWidthTem) {\n var gutterTemUnit = '-' + gutterTem + 'px',\n dir = horizontal ? gutterTemUnit + ' 0 0' : '0 ' + gutterTemUnit + ' 0';\n str = 'margin: 0 ' + dir + ';';\n }\n\n if (!carousel && autoHeightBP && TRANSITIONDURATION && speedTem) {\n str += getTransitionDurationStyle(speedTem);\n }\n\n return str;\n }\n\n function getContainerWidth(fixedWidthTem, gutterTem, itemsTem) {\n if (fixedWidthTem) {\n return (fixedWidthTem + gutterTem) * slideCountNew + 'px';\n } else {\n return CALC ? CALC + '(' + slideCountNew * 100 + '% / ' + itemsTem + ')' : slideCountNew * 100 / itemsTem + '%';\n }\n }\n\n function getSlideWidthStyle(fixedWidthTem, gutterTem, itemsTem) {\n var width;\n\n if (fixedWidthTem) {\n width = fixedWidthTem + gutterTem + 'px';\n } else {\n if (!carousel) {\n itemsTem = Math.floor(itemsTem);\n }\n\n var dividend = carousel ? slideCountNew : itemsTem;\n width = CALC ? CALC + '(100% / ' + dividend + ')' : 100 / dividend + '%';\n }\n\n width = 'width:' + width; // inner slider: overwrite outer slider styles\n\n return nested !== 'inner' ? width + ';' : width + ' !important;';\n }\n\n function getSlideGutterStyle(gutterTem) {\n var str = ''; // gutter maybe interger || 0\n // so can't use 'if (gutter)'\n\n if (gutterTem !== false) {\n var prop = horizontal ? 'padding-' : 'margin-',\n dir = horizontal ? 'right' : 'bottom';\n str = prop + dir + ': ' + gutterTem + 'px;';\n }\n\n return str;\n }\n\n function getCSSPrefix(name, num) {\n var prefix = name.substring(0, name.length - num).toLowerCase();\n\n if (prefix) {\n prefix = '-' + prefix + '-';\n }\n\n return prefix;\n }\n\n function getTransitionDurationStyle(speed) {\n return getCSSPrefix(TRANSITIONDURATION, 18) + 'transition-duration:' + speed / 1000 + 's;';\n }\n\n function getAnimationDurationStyle(speed) {\n return getCSSPrefix(ANIMATIONDURATION, 17) + 'animation-duration:' + speed / 1000 + 's;';\n }\n\n function initStructure() {\n var classOuter = 'tns-outer',\n classInner = 'tns-inner',\n hasGutter = hasOption('gutter');\n outerWrapper.className = classOuter;\n innerWrapper.className = classInner;\n outerWrapper.id = slideId + '-ow';\n innerWrapper.id = slideId + '-iw'; // set container properties\n\n if (container.id === '') {\n container.id = slideId;\n }\n\n newContainerClasses += PERCENTAGELAYOUT || autoWidth ? ' tns-subpixel' : ' tns-no-subpixel';\n newContainerClasses += CALC ? ' tns-calc' : ' tns-no-calc';\n\n if (autoWidth) {\n newContainerClasses += ' tns-autowidth';\n }\n\n newContainerClasses += ' tns-' + options.axis;\n container.className += newContainerClasses; // add constrain layer for carousel\n\n if (carousel) {\n middleWrapper = doc.createElement('div');\n middleWrapper.id = slideId + '-mw';\n middleWrapper.className = 'tns-ovh';\n outerWrapper.appendChild(middleWrapper);\n middleWrapper.appendChild(innerWrapper);\n } else {\n outerWrapper.appendChild(innerWrapper);\n }\n\n if (autoHeight) {\n var wp = middleWrapper ? middleWrapper : innerWrapper;\n wp.className += ' tns-ah';\n }\n\n containerParent.insertBefore(outerWrapper, container);\n innerWrapper.appendChild(container); // add id, class, aria attributes\n // before clone slides\n\n forEach(slideItems, function (item, i) {\n addClass(item, 'tns-item');\n\n if (!item.id) {\n item.id = slideId + '-item' + i;\n }\n\n if (!carousel && animateNormal) {\n addClass(item, animateNormal);\n }\n\n setAttrs(item, {\n 'aria-hidden': 'true',\n 'tabindex': '-1'\n });\n }); // ## clone slides\n // carousel: n + slides + n\n // gallery: slides + n\n\n if (cloneCount) {\n var fragmentBefore = doc.createDocumentFragment(),\n fragmentAfter = doc.createDocumentFragment();\n\n for (var j = cloneCount; j--;) {\n var num = j % slideCount,\n cloneFirst = slideItems[num].cloneNode(true);\n addClass(cloneFirst, slideClonedClass);\n removeAttrs(cloneFirst, 'id');\n fragmentAfter.insertBefore(cloneFirst, fragmentAfter.firstChild);\n\n if (carousel) {\n var cloneLast = slideItems[slideCount - 1 - num].cloneNode(true);\n addClass(cloneLast, slideClonedClass);\n removeAttrs(cloneLast, 'id');\n fragmentBefore.appendChild(cloneLast);\n }\n }\n\n container.insertBefore(fragmentBefore, container.firstChild);\n container.appendChild(fragmentAfter);\n slideItems = container.children;\n }\n }\n\n function initSliderTransform() {\n // ## images loaded/failed\n if (hasOption('autoHeight') || autoWidth || !horizontal) {\n var imgs = container.querySelectorAll('img'); // add img load event listener\n\n forEach(imgs, function (img) {\n var src = img.src;\n\n if (!lazyload) {\n // not data img\n if (src && src.indexOf('data:image') < 0) {\n img.src = '';\n addEvents(img, imgEvents);\n addClass(img, 'loading');\n img.src = src; // data img\n } else {\n imgLoaded(img);\n }\n }\n }); // set imgsComplete\n\n raf(function () {\n imgsLoadedCheck(arrayFromNodeList(imgs), function () {\n imgsComplete = true;\n });\n }); // reset imgs for auto height: check visible imgs only\n\n if (hasOption('autoHeight')) {\n imgs = getImageArray(index, Math.min(index + items - 1, slideCountNew - 1));\n }\n\n lazyload ? initSliderTransformStyleCheck() : raf(function () {\n imgsLoadedCheck(arrayFromNodeList(imgs), initSliderTransformStyleCheck);\n });\n } else {\n // set container transform property\n if (carousel) {\n doContainerTransformSilent();\n } // update slider tools and events\n\n\n initTools();\n initEvents();\n }\n }\n\n function initSliderTransformStyleCheck() {\n if (autoWidth && slideCount > 1) {\n // check styles application\n var num = loop ? index : slideCount - 1;\n\n (function stylesApplicationCheck() {\n var left = slideItems[num].getBoundingClientRect().left;\n var right = slideItems[num - 1].getBoundingClientRect().right;\n Math.abs(left - right) <= 1 ? initSliderTransformCore() : setTimeout(function () {\n stylesApplicationCheck();\n }, 16);\n })();\n } else {\n initSliderTransformCore();\n }\n }\n\n function initSliderTransformCore() {\n // run Fn()s which are rely on image loading\n if (!horizontal || autoWidth) {\n setSlidePositions();\n\n if (autoWidth) {\n rightBoundary = getRightBoundary();\n\n if (freezable) {\n freeze = getFreeze();\n }\n\n indexMax = getIndexMax(); // <= slidePositions, rightBoundary <=\n\n resetVariblesWhenDisable(disable || freeze);\n } else {\n updateContentWrapperHeight();\n }\n } // set container transform property\n\n\n if (carousel) {\n doContainerTransformSilent();\n } // update slider tools and events\n\n\n initTools();\n initEvents();\n }\n\n function initSheet() {\n // gallery:\n // set animation classes and left value for gallery slider\n if (!carousel) {\n for (var i = index, l = index + Math.min(slideCount, items); i < l; i++) {\n var item = slideItems[i];\n item.style.left = (i - index) * 100 / items + '%';\n addClass(item, animateIn);\n removeClass(item, animateNormal);\n }\n } // #### LAYOUT\n // ## INLINE-BLOCK VS FLOAT\n // ## PercentageLayout:\n // slides: inline-block\n // remove blank space between slides by set font-size: 0\n // ## Non PercentageLayout:\n // slides: float\n // margin-right: -100%\n // margin-left: ~\n // Resource: https://docs.google.com/spreadsheets/d/147up245wwTXeQYve3BRSAD4oVcvQmuGsFteJOeA5xNQ/edit?usp=sharing\n\n\n if (horizontal) {\n if (PERCENTAGELAYOUT || autoWidth) {\n addCSSRule(sheet, '#' + slideId + ' > .tns-item', 'font-size:' + win.getComputedStyle(slideItems[0]).fontSize + ';', getCssRulesLength(sheet));\n addCSSRule(sheet, '#' + slideId, 'font-size:0;', getCssRulesLength(sheet));\n } else if (carousel) {\n forEach(slideItems, function (slide, i) {\n slide.style.marginLeft = getSlideMarginLeft(i);\n });\n }\n } // ## BASIC STYLES\n\n\n if (CSSMQ) {\n // middle wrapper style\n if (TRANSITIONDURATION) {\n var str = middleWrapper && options.autoHeight ? getTransitionDurationStyle(options.speed) : '';\n addCSSRule(sheet, '#' + slideId + '-mw', str, getCssRulesLength(sheet));\n } // inner wrapper styles\n\n\n str = getInnerWrapperStyles(options.edgePadding, options.gutter, options.fixedWidth, options.speed, options.autoHeight);\n addCSSRule(sheet, '#' + slideId + '-iw', str, getCssRulesLength(sheet)); // container styles\n\n if (carousel) {\n str = horizontal && !autoWidth ? 'width:' + getContainerWidth(options.fixedWidth, options.gutter, options.items) + ';' : '';\n\n if (TRANSITIONDURATION) {\n str += getTransitionDurationStyle(speed);\n }\n\n addCSSRule(sheet, '#' + slideId, str, getCssRulesLength(sheet));\n } // slide styles\n\n\n str = horizontal && !autoWidth ? getSlideWidthStyle(options.fixedWidth, options.gutter, options.items) : '';\n\n if (options.gutter) {\n str += getSlideGutterStyle(options.gutter);\n } // set gallery items transition-duration\n\n\n if (!carousel) {\n if (TRANSITIONDURATION) {\n str += getTransitionDurationStyle(speed);\n }\n\n if (ANIMATIONDURATION) {\n str += getAnimationDurationStyle(speed);\n }\n }\n\n if (str) {\n addCSSRule(sheet, '#' + slideId + ' > .tns-item', str, getCssRulesLength(sheet));\n } // non CSS mediaqueries: IE8\n // ## update inner wrapper, container, slides if needed\n // set inline styles for inner wrapper & container\n // insert stylesheet (one line) for slides only (since slides are many)\n\n } else {\n // middle wrapper styles\n update_carousel_transition_duration(); // inner wrapper styles\n\n innerWrapper.style.cssText = getInnerWrapperStyles(edgePadding, gutter, fixedWidth, autoHeight); // container styles\n\n if (carousel && horizontal && !autoWidth) {\n container.style.width = getContainerWidth(fixedWidth, gutter, items);\n } // slide styles\n\n\n var str = horizontal && !autoWidth ? getSlideWidthStyle(fixedWidth, gutter, items) : '';\n\n if (gutter) {\n str += getSlideGutterStyle(gutter);\n } // append to the last line\n\n\n if (str) {\n addCSSRule(sheet, '#' + slideId + ' > .tns-item', str, getCssRulesLength(sheet));\n }\n } // ## MEDIAQUERIES\n\n\n if (responsive && CSSMQ) {\n for (var bp in responsive) {\n // bp: convert string to number\n bp = parseInt(bp);\n var opts = responsive[bp],\n str = '',\n middleWrapperStr = '',\n innerWrapperStr = '',\n containerStr = '',\n slideStr = '',\n itemsBP = !autoWidth ? getOption('items', bp) : null,\n fixedWidthBP = getOption('fixedWidth', bp),\n speedBP = getOption('speed', bp),\n edgePaddingBP = getOption('edgePadding', bp),\n autoHeightBP = getOption('autoHeight', bp),\n gutterBP = getOption('gutter', bp); // middle wrapper string\n\n if (TRANSITIONDURATION && middleWrapper && getOption('autoHeight', bp) && 'speed' in opts) {\n middleWrapperStr = '#' + slideId + '-mw{' + getTransitionDurationStyle(speedBP) + '}';\n } // inner wrapper string\n\n\n if ('edgePadding' in opts || 'gutter' in opts) {\n innerWrapperStr = '#' + slideId + '-iw{' + getInnerWrapperStyles(edgePaddingBP, gutterBP, fixedWidthBP, speedBP, autoHeightBP) + '}';\n } // container string\n\n\n if (carousel && horizontal && !autoWidth && ('fixedWidth' in opts || 'items' in opts || fixedWidth && 'gutter' in opts)) {\n containerStr = 'width:' + getContainerWidth(fixedWidthBP, gutterBP, itemsBP) + ';';\n }\n\n if (TRANSITIONDURATION && 'speed' in opts) {\n containerStr += getTransitionDurationStyle(speedBP);\n }\n\n if (containerStr) {\n containerStr = '#' + slideId + '{' + containerStr + '}';\n } // slide string\n\n\n if ('fixedWidth' in opts || fixedWidth && 'gutter' in opts || !carousel && 'items' in opts) {\n slideStr += getSlideWidthStyle(fixedWidthBP, gutterBP, itemsBP);\n }\n\n if ('gutter' in opts) {\n slideStr += getSlideGutterStyle(gutterBP);\n } // set gallery items transition-duration\n\n\n if (!carousel && 'speed' in opts) {\n if (TRANSITIONDURATION) {\n slideStr += getTransitionDurationStyle(speedBP);\n }\n\n if (ANIMATIONDURATION) {\n slideStr += getAnimationDurationStyle(speedBP);\n }\n }\n\n if (slideStr) {\n slideStr = '#' + slideId + ' > .tns-item{' + slideStr + '}';\n } // add up\n\n\n str = middleWrapperStr + innerWrapperStr + containerStr + slideStr;\n\n if (str) {\n sheet.insertRule('@media (min-width: ' + bp / 16 + 'em) {' + str + '}', sheet.cssRules.length);\n }\n }\n }\n }\n\n function initTools() {\n // == slides ==\n updateSlideStatus(); // == live region ==\n\n outerWrapper.insertAdjacentHTML('afterbegin', '<div class=\"tns-liveregion tns-visually-hidden\" aria-live=\"polite\" aria-atomic=\"true\">slide <span class=\"current\">' + getLiveRegionStr() + '</span> of ' + slideCount + '</div>');\n liveregionCurrent = outerWrapper.querySelector('.tns-liveregion .current'); // == autoplayInit ==\n\n if (hasAutoplay) {\n var txt = autoplay ? 'stop' : 'start';\n\n if (autoplayButton) {\n setAttrs(autoplayButton, {\n 'data-action': txt\n });\n } else if (options.autoplayButtonOutput) {\n outerWrapper.insertAdjacentHTML(getInsertPosition(options.autoplayPosition), '<button type=\"button\" data-action=\"' + txt + '\">' + autoplayHtmlStrings[0] + txt + autoplayHtmlStrings[1] + autoplayText[0] + '</button>');\n autoplayButton = outerWrapper.querySelector('[data-action]');\n } // add event\n\n\n if (autoplayButton) {\n addEvents(autoplayButton, {\n 'click': toggleAutoplay\n });\n }\n\n if (autoplay) {\n startAutoplay();\n\n if (autoplayHoverPause) {\n addEvents(container, hoverEvents);\n }\n\n if (autoplayResetOnVisibility) {\n addEvents(container, visibilityEvent);\n }\n }\n } // == navInit ==\n\n\n if (hasNav) {\n var initIndex = !carousel ? 0 : cloneCount; // customized nav\n // will not hide the navs in case they're thumbnails\n\n if (navContainer) {\n setAttrs(navContainer, {\n 'aria-label': 'Carousel Pagination'\n });\n navItems = navContainer.children;\n forEach(navItems, function (item, i) {\n setAttrs(item, {\n 'data-nav': i,\n 'tabindex': '-1',\n 'aria-label': navStr + (i + 1),\n 'aria-controls': slideId\n });\n }); // generated nav\n } else {\n var navHtml = '',\n hiddenStr = navAsThumbnails ? '' : 'style=\"display:none\"';\n\n for (var i = 0; i < slideCount; i++) {\n // hide nav items by default\n navHtml += '<button type=\"button\" data-nav=\"' + i + '\" tabindex=\"-1\" aria-controls=\"' + slideId + '\" ' + hiddenStr + ' aria-label=\"' + navStr + (i + 1) + '\"></button>';\n }\n\n navHtml = '<div class=\"tns-nav\" aria-label=\"Carousel Pagination\">' + navHtml + '</div>';\n outerWrapper.insertAdjacentHTML(getInsertPosition(options.navPosition), navHtml);\n navContainer = outerWrapper.querySelector('.tns-nav');\n navItems = navContainer.children;\n }\n\n updateNavVisibility(); // add transition\n\n if (TRANSITIONDURATION) {\n var prefix = TRANSITIONDURATION.substring(0, TRANSITIONDURATION.length - 18).toLowerCase(),\n str = 'transition: all ' + speed / 1000 + 's';\n\n if (prefix) {\n str = '-' + prefix + '-' + str;\n }\n\n addCSSRule(sheet, '[aria-controls^=' + slideId + '-item]', str, getCssRulesLength(sheet));\n }\n\n setAttrs(navItems[navCurrentIndex], {\n 'aria-label': navStr + (navCurrentIndex + 1) + navStrCurrent\n });\n removeAttrs(navItems[navCurrentIndex], 'tabindex');\n addClass(navItems[navCurrentIndex], navActiveClass); // add events\n\n addEvents(navContainer, navEvents);\n } // == controlsInit ==\n\n\n if (hasControls) {\n if (!controlsContainer && (!prevButton || !nextButton)) {\n outerWrapper.insertAdjacentHTML(getInsertPosition(options.controlsPosition), '<div class=\"tns-controls\" aria-label=\"Carousel Navigation\" tabindex=\"0\"><button type=\"button\" data-controls=\"prev\" tabindex=\"-1\" aria-controls=\"' + slideId + '\">' + controlsText[0] + '</button><button type=\"button\" data-controls=\"next\" tabindex=\"-1\" aria-controls=\"' + slideId + '\">' + controlsText[1] + '</button></div>');\n controlsContainer = outerWrapper.querySelector('.tns-controls');\n }\n\n if (!prevButton || !nextButton) {\n prevButton = controlsContainer.children[0];\n nextButton = controlsContainer.children[1];\n }\n\n if (options.controlsContainer) {\n setAttrs(controlsContainer, {\n 'aria-label': 'Carousel Navigation',\n 'tabindex': '0'\n });\n }\n\n if (options.controlsContainer || options.prevButton && options.nextButton) {\n setAttrs([prevButton, nextButton], {\n 'aria-controls': slideId,\n 'tabindex': '-1'\n });\n }\n\n if (options.controlsContainer || options.prevButton && options.nextButton) {\n setAttrs(prevButton, {\n 'data-controls': 'prev'\n });\n setAttrs(nextButton, {\n 'data-controls': 'next'\n });\n }\n\n prevIsButton = isButton(prevButton);\n nextIsButton = isButton(nextButton);\n updateControlsStatus(); // add events\n\n if (controlsContainer) {\n addEvents(controlsContainer, controlsEvents);\n } else {\n addEvents(prevButton, controlsEvents);\n addEvents(nextButton, controlsEvents);\n }\n } // hide tools if needed\n\n\n disableUI();\n }\n\n function initEvents() {\n // add events\n if (carousel && TRANSITIONEND) {\n var eve = {};\n eve[TRANSITIONEND] = onTransitionEnd;\n addEvents(container, eve);\n }\n\n if (touch) {\n addEvents(container, touchEvents, options.preventScrollOnTouch);\n }\n\n if (mouseDrag) {\n addEvents(container, dragEvents);\n }\n\n if (arrowKeys) {\n addEvents(doc, docmentKeydownEvent);\n }\n\n if (nested === 'inner') {\n events.on('outerResized', function () {\n resizeTasks();\n events.emit('innerLoaded', info());\n });\n } else if (responsive || fixedWidth || autoWidth || autoHeight || !horizontal) {\n addEvents(win, {\n 'resize': onResize\n });\n }\n\n if (autoHeight) {\n if (nested === 'outer') {\n events.on('innerLoaded', doAutoHeight);\n } else if (!disable) {\n doAutoHeight();\n }\n }\n\n doLazyLoad();\n\n if (disable) {\n disableSlider();\n } else if (freeze) {\n freezeSlider();\n }\n\n events.on('indexChanged', additionalUpdates);\n\n if (nested === 'inner') {\n events.emit('innerLoaded', info());\n }\n\n if (typeof onInit === 'function') {\n onInit(info());\n }\n\n isOn = true;\n }\n\n function destroy() {\n // sheet\n sheet.disabled = true;\n\n if (sheet.ownerNode) {\n sheet.ownerNode.remove();\n } // remove win event listeners\n\n\n removeEvents(win, {\n 'resize': onResize\n }); // arrowKeys, controls, nav\n\n if (arrowKeys) {\n removeEvents(doc, docmentKeydownEvent);\n }\n\n if (controlsContainer) {\n removeEvents(controlsContainer, controlsEvents);\n }\n\n if (navContainer) {\n removeEvents(navContainer, navEvents);\n } // autoplay\n\n\n removeEvents(container, hoverEvents);\n removeEvents(container, visibilityEvent);\n\n if (autoplayButton) {\n removeEvents(autoplayButton, {\n 'click': toggleAutoplay\n });\n }\n\n if (autoplay) {\n clearInterval(autoplayTimer);\n } // container\n\n\n if (carousel && TRANSITIONEND) {\n var eve = {};\n eve[TRANSITIONEND] = onTransitionEnd;\n removeEvents(container, eve);\n }\n\n if (touch) {\n removeEvents(container, touchEvents);\n }\n\n if (mouseDrag) {\n removeEvents(container, dragEvents);\n } // cache Object values in options && reset HTML\n\n\n var htmlList = [containerHTML, controlsContainerHTML, prevButtonHTML, nextButtonHTML, navContainerHTML, autoplayButtonHTML];\n tnsList.forEach(function (item, i) {\n var el = item === 'container' ? outerWrapper : options[item];\n\n if (_typeof(el) === 'object' && el) {\n var prevEl = el.previousElementSibling ? el.previousElementSibling : false,\n parentEl = el.parentNode;\n el.outerHTML = htmlList[i];\n options[item] = prevEl ? prevEl.nextElementSibling : parentEl.firstElementChild;\n }\n }); // reset variables\n\n tnsList = animateIn = animateOut = animateDelay = animateNormal = horizontal = outerWrapper = innerWrapper = container = containerParent = containerHTML = slideItems = slideCount = breakpointZone = windowWidth = autoWidth = fixedWidth = edgePadding = gutter = viewport = items = slideBy = viewportMax = arrowKeys = speed = rewind = loop = autoHeight = sheet = lazyload = slidePositions = slideItemsOut = cloneCount = slideCountNew = hasRightDeadZone = rightBoundary = updateIndexBeforeTransform = transformAttr = transformPrefix = transformPostfix = getIndexMax = index = indexCached = indexMin = indexMax = resizeTimer = swipeAngle = moveDirectionExpected = running = onInit = events = newContainerClasses = slideId = disable = disabled = freezable = freeze = frozen = controlsEvents = navEvents = hoverEvents = visibilityEvent = docmentKeydownEvent = touchEvents = dragEvents = hasControls = hasNav = navAsThumbnails = hasAutoplay = hasTouch = hasMouseDrag = slideActiveClass = imgCompleteClass = imgEvents = imgsComplete = controls = controlsText = controlsContainer = controlsContainerHTML = prevButton = nextButton = prevIsButton = nextIsButton = nav = navContainer = navContainerHTML = navItems = pages = pagesCached = navClicked = navCurrentIndex = navCurrentIndexCached = navActiveClass = navStr = navStrCurrent = autoplay = autoplayTimeout = autoplayDirection = autoplayText = autoplayHoverPause = autoplayButton = autoplayButtonHTML = autoplayResetOnVisibility = autoplayHtmlStrings = autoplayTimer = animating = autoplayHoverPaused = autoplayUserPaused = autoplayVisibilityPaused = initPosition = lastPosition = translateInit = disX = disY = panStart = rafIndex = getDist = touch = mouseDrag = null; // check variables\n // [animateIn, animateOut, animateDelay, animateNormal, horizontal, outerWrapper, innerWrapper, container, containerParent, containerHTML, slideItems, slideCount, breakpointZone, windowWidth, autoWidth, fixedWidth, edgePadding, gutter, viewport, items, slideBy, viewportMax, arrowKeys, speed, rewind, loop, autoHeight, sheet, lazyload, slidePositions, slideItemsOut, cloneCount, slideCountNew, hasRightDeadZone, rightBoundary, updateIndexBeforeTransform, transformAttr, transformPrefix, transformPostfix, getIndexMax, index, indexCached, indexMin, indexMax, resizeTimer, swipeAngle, moveDirectionExpected, running, onInit, events, newContainerClasses, slideId, disable, disabled, freezable, freeze, frozen, controlsEvents, navEvents, hoverEvents, visibilityEvent, docmentKeydownEvent, touchEvents, dragEvents, hasControls, hasNav, navAsThumbnails, hasAutoplay, hasTouch, hasMouseDrag, slideActiveClass, imgCompleteClass, imgEvents, imgsComplete, controls, controlsText, controlsContainer, controlsContainerHTML, prevButton, nextButton, prevIsButton, nextIsButton, nav, navContainer, navContainerHTML, navItems, pages, pagesCached, navClicked, navCurrentIndex, navCurrentIndexCached, navActiveClass, navStr, navStrCurrent, autoplay, autoplayTimeout, autoplayDirection, autoplayText, autoplayHoverPause, autoplayButton, autoplayButtonHTML, autoplayResetOnVisibility, autoplayHtmlStrings, autoplayTimer, animating, autoplayHoverPaused, autoplayUserPaused, autoplayVisibilityPaused, initPosition, lastPosition, translateInit, disX, disY, panStart, rafIndex, getDist, touch, mouseDrag ].forEach(function(item) { if (item !== null) { console.log(item); } });\n\n for (var a in this) {\n if (a !== 'rebuild') {\n this[a] = null;\n }\n }\n\n isOn = false;\n } // === ON RESIZE ===\n // responsive || fixedWidth || autoWidth || !horizontal\n\n\n function onResize(e) {\n raf(function () {\n resizeTasks(getEvent(e));\n });\n }\n\n function resizeTasks(e) {\n if (!isOn) {\n return;\n }\n\n if (nested === 'outer') {\n events.emit('outerResized', info(e));\n }\n\n windowWidth = getWindowWidth();\n var bpChanged,\n breakpointZoneTem = breakpointZone,\n needContainerTransform = false;\n\n if (responsive) {\n setBreakpointZone();\n bpChanged = breakpointZoneTem !== breakpointZone; // if (hasRightDeadZone) { needContainerTransform = true; } // *?\n\n if (bpChanged) {\n events.emit('newBreakpointStart', info(e));\n }\n }\n\n var indChanged,\n itemsChanged,\n itemsTem = items,\n disableTem = disable,\n freezeTem = freeze,\n arrowKeysTem = arrowKeys,\n controlsTem = controls,\n navTem = nav,\n touchTem = touch,\n mouseDragTem = mouseDrag,\n autoplayTem = autoplay,\n autoplayHoverPauseTem = autoplayHoverPause,\n autoplayResetOnVisibilityTem = autoplayResetOnVisibility,\n indexTem = index;\n\n if (bpChanged) {\n var fixedWidthTem = fixedWidth,\n autoHeightTem = autoHeight,\n controlsTextTem = controlsText,\n centerTem = center,\n autoplayTextTem = autoplayText;\n\n if (!CSSMQ) {\n var gutterTem = gutter,\n edgePaddingTem = edgePadding;\n }\n } // get option:\n // fixed width: viewport, fixedWidth, gutter => items\n // others: window width => all variables\n // all: items => slideBy\n\n\n arrowKeys = getOption('arrowKeys');\n controls = getOption('controls');\n nav = getOption('nav');\n touch = getOption('touch');\n center = getOption('center');\n mouseDrag = getOption('mouseDrag');\n autoplay = getOption('autoplay');\n autoplayHoverPause = getOption('autoplayHoverPause');\n autoplayResetOnVisibility = getOption('autoplayResetOnVisibility');\n\n if (bpChanged) {\n disable = getOption('disable');\n fixedWidth = getOption('fixedWidth');\n speed = getOption('speed');\n autoHeight = getOption('autoHeight');\n controlsText = getOption('controlsText');\n autoplayText = getOption('autoplayText');\n autoplayTimeout = getOption('autoplayTimeout');\n\n if (!CSSMQ) {\n edgePadding = getOption('edgePadding');\n gutter = getOption('gutter');\n }\n } // update options\n\n\n resetVariblesWhenDisable(disable);\n viewport = getViewportWidth(); // <= edgePadding, gutter\n\n if ((!horizontal || autoWidth) && !disable) {\n setSlidePositions();\n\n if (!horizontal) {\n updateContentWrapperHeight(); // <= setSlidePositions\n\n needContainerTransform = true;\n }\n }\n\n if (fixedWidth || autoWidth) {\n rightBoundary = getRightBoundary(); // autoWidth: <= viewport, slidePositions, gutter\n // fixedWidth: <= viewport, fixedWidth, gutter\n\n indexMax = getIndexMax(); // autoWidth: <= rightBoundary, slidePositions\n // fixedWidth: <= rightBoundary, fixedWidth, gutter\n }\n\n if (bpChanged || fixedWidth) {\n items = getOption('items');\n slideBy = getOption('slideBy');\n itemsChanged = items !== itemsTem;\n\n if (itemsChanged) {\n if (!fixedWidth && !autoWidth) {\n indexMax = getIndexMax();\n } // <= items\n // check index before transform in case\n // slider reach the right edge then items become bigger\n\n\n updateIndex();\n }\n }\n\n if (bpChanged) {\n if (disable !== disableTem) {\n if (disable) {\n disableSlider();\n } else {\n enableSlider(); // <= slidePositions, rightBoundary, indexMax\n }\n }\n }\n\n if (freezable && (bpChanged || fixedWidth || autoWidth)) {\n freeze = getFreeze(); // <= autoWidth: slidePositions, gutter, viewport, rightBoundary\n // <= fixedWidth: fixedWidth, gutter, rightBoundary\n // <= others: items\n\n if (freeze !== freezeTem) {\n if (freeze) {\n doContainerTransform(getContainerTransformValue(getStartIndex(0)));\n freezeSlider();\n } else {\n unfreezeSlider();\n needContainerTransform = true;\n }\n }\n }\n\n resetVariblesWhenDisable(disable || freeze); // controls, nav, touch, mouseDrag, arrowKeys, autoplay, autoplayHoverPause, autoplayResetOnVisibility\n\n if (!autoplay) {\n autoplayHoverPause = autoplayResetOnVisibility = false;\n }\n\n if (arrowKeys !== arrowKeysTem) {\n arrowKeys ? addEvents(doc, docmentKeydownEvent) : removeEvents(doc, docmentKeydownEvent);\n }\n\n if (controls !== controlsTem) {\n if (controls) {\n if (controlsContainer) {\n showElement(controlsContainer);\n } else {\n if (prevButton) {\n showElement(prevButton);\n }\n\n if (nextButton) {\n showElement(nextButton);\n }\n }\n } else {\n if (controlsContainer) {\n hideElement(controlsContainer);\n } else {\n if (prevButton) {\n hideElement(prevButton);\n }\n\n if (nextButton) {\n hideElement(nextButton);\n }\n }\n }\n }\n\n if (nav !== navTem) {\n if (nav) {\n showElement(navContainer);\n updateNavVisibility();\n } else {\n hideElement(navContainer);\n }\n }\n\n if (touch !== touchTem) {\n touch ? addEvents(container, touchEvents, options.preventScrollOnTouch) : removeEvents(container, touchEvents);\n }\n\n if (mouseDrag !== mouseDragTem) {\n mouseDrag ? addEvents(container, dragEvents) : removeEvents(container, dragEvents);\n }\n\n if (autoplay !== autoplayTem) {\n if (autoplay) {\n if (autoplayButton) {\n showElement(autoplayButton);\n }\n\n if (!animating && !autoplayUserPaused) {\n startAutoplay();\n }\n } else {\n if (autoplayButton) {\n hideElement(autoplayButton);\n }\n\n if (animating) {\n stopAutoplay();\n }\n }\n }\n\n if (autoplayHoverPause !== autoplayHoverPauseTem) {\n autoplayHoverPause ? addEvents(container, hoverEvents) : removeEvents(container, hoverEvents);\n }\n\n if (autoplayResetOnVisibility !== autoplayResetOnVisibilityTem) {\n autoplayResetOnVisibility ? addEvents(doc, visibilityEvent) : removeEvents(doc, visibilityEvent);\n }\n\n if (bpChanged) {\n if (fixedWidth !== fixedWidthTem || center !== centerTem) {\n needContainerTransform = true;\n }\n\n if (autoHeight !== autoHeightTem) {\n if (!autoHeight) {\n innerWrapper.style.height = '';\n }\n }\n\n if (controls && controlsText !== controlsTextTem) {\n prevButton.innerHTML = controlsText[0];\n nextButton.innerHTML = controlsText[1];\n }\n\n if (autoplayButton && autoplayText !== autoplayTextTem) {\n var i = autoplay ? 1 : 0,\n html = autoplayButton.innerHTML,\n len = html.length - autoplayTextTem[i].length;\n\n if (html.substring(len) === autoplayTextTem[i]) {\n autoplayButton.innerHTML = html.substring(0, len) + autoplayText[i];\n }\n }\n } else {\n if (center && (fixedWidth || autoWidth)) {\n needContainerTransform = true;\n }\n }\n\n if (itemsChanged || fixedWidth && !autoWidth) {\n pages = getPages();\n updateNavVisibility();\n }\n\n indChanged = index !== indexTem;\n\n if (indChanged) {\n events.emit('indexChanged', info());\n needContainerTransform = true;\n } else if (itemsChanged) {\n if (!indChanged) {\n additionalUpdates();\n }\n } else if (fixedWidth || autoWidth) {\n doLazyLoad();\n updateSlideStatus();\n updateLiveRegion();\n }\n\n if (itemsChanged && !carousel) {\n updateGallerySlidePositions();\n }\n\n if (!disable && !freeze) {\n // non-mediaqueries: IE8\n if (bpChanged && !CSSMQ) {\n // middle wrapper styles\n // inner wrapper styles\n if (edgePadding !== edgePaddingTem || gutter !== gutterTem) {\n innerWrapper.style.cssText = getInnerWrapperStyles(edgePadding, gutter, fixedWidth, speed, autoHeight);\n }\n\n if (horizontal) {\n // container styles\n if (carousel) {\n container.style.width = getContainerWidth(fixedWidth, gutter, items);\n } // slide styles\n\n\n var str = getSlideWidthStyle(fixedWidth, gutter, items) + getSlideGutterStyle(gutter); // remove the last line and\n // add new styles\n\n removeCSSRule(sheet, getCssRulesLength(sheet) - 1);\n addCSSRule(sheet, '#' + slideId + ' > .tns-item', str, getCssRulesLength(sheet));\n }\n } // auto height\n\n\n if (autoHeight) {\n doAutoHeight();\n }\n\n if (needContainerTransform) {\n doContainerTransformSilent();\n indexCached = index;\n }\n }\n\n if (bpChanged) {\n events.emit('newBreakpointEnd', info(e));\n }\n } // === INITIALIZATION FUNCTIONS === //\n\n\n function getFreeze() {\n if (!fixedWidth && !autoWidth) {\n var a = center ? items - (items - 1) / 2 : items;\n return slideCount <= a;\n }\n\n var width = fixedWidth ? (fixedWidth + gutter) * slideCount : slidePositions[slideCount],\n vp = edgePadding ? viewport + edgePadding * 2 : viewport + gutter;\n\n if (center) {\n vp -= fixedWidth ? (viewport - fixedWidth) / 2 : (viewport - (slidePositions[index + 1] - slidePositions[index] - gutter)) / 2;\n }\n\n return width <= vp;\n }\n\n function setBreakpointZone() {\n breakpointZone = 0;\n\n for (var bp in responsive) {\n bp = parseInt(bp); // convert string to number\n\n if (windowWidth >= bp) {\n breakpointZone = bp;\n }\n }\n } // (slideBy, indexMin, indexMax) => index\n\n\n var updateIndex = function () {\n return loop ? carousel ? // loop + carousel\n function () {\n var leftEdge = indexMin,\n rightEdge = indexMax;\n leftEdge += slideBy;\n rightEdge -= slideBy; // adjust edges when has edge paddings\n // or fixed-width slider with extra space on the right side\n\n if (edgePadding) {\n leftEdge += 1;\n rightEdge -= 1;\n } else if (fixedWidth) {\n if ((viewport + gutter) % (fixedWidth + gutter)) {\n rightEdge -= 1;\n }\n }\n\n if (cloneCount) {\n if (index > rightEdge) {\n index -= slideCount;\n } else if (index < leftEdge) {\n index += slideCount;\n }\n }\n } : // loop + gallery\n function () {\n if (index > indexMax) {\n while (index >= indexMin + slideCount) {\n index -= slideCount;\n }\n } else if (index < indexMin) {\n while (index <= indexMax - slideCount) {\n index += slideCount;\n }\n }\n } : // non-loop\n function () {\n index = Math.max(indexMin, Math.min(indexMax, index));\n };\n }();\n\n function disableUI() {\n if (!autoplay && autoplayButton) {\n hideElement(autoplayButton);\n }\n\n if (!nav && navContainer) {\n hideElement(navContainer);\n }\n\n if (!controls) {\n if (controlsContainer) {\n hideElement(controlsContainer);\n } else {\n if (prevButton) {\n hideElement(prevButton);\n }\n\n if (nextButton) {\n hideElement(nextButton);\n }\n }\n }\n }\n\n function enableUI() {\n if (autoplay && autoplayButton) {\n showElement(autoplayButton);\n }\n\n if (nav && navContainer) {\n showElement(navContainer);\n }\n\n if (controls) {\n if (controlsContainer) {\n showElement(controlsContainer);\n } else {\n if (prevButton) {\n showElement(prevButton);\n }\n\n if (nextButton) {\n showElement(nextButton);\n }\n }\n }\n }\n\n function freezeSlider() {\n if (frozen) {\n return;\n } // remove edge padding from inner wrapper\n\n\n if (edgePadding) {\n innerWrapper.style.margin = '0px';\n } // add class tns-transparent to cloned slides\n\n\n if (cloneCount) {\n var str = 'tns-transparent';\n\n for (var i = cloneCount; i--;) {\n if (carousel) {\n addClass(slideItems[i], str);\n }\n\n addClass(slideItems[slideCountNew - i - 1], str);\n }\n } // update tools\n\n\n disableUI();\n frozen = true;\n }\n\n function unfreezeSlider() {\n if (!frozen) {\n return;\n } // restore edge padding for inner wrapper\n // for mordern browsers\n\n\n if (edgePadding && CSSMQ) {\n innerWrapper.style.margin = '';\n } // remove class tns-transparent to cloned slides\n\n\n if (cloneCount) {\n var str = 'tns-transparent';\n\n for (var i = cloneCount; i--;) {\n if (carousel) {\n removeClass(slideItems[i], str);\n }\n\n removeClass(slideItems[slideCountNew - i - 1], str);\n }\n } // update tools\n\n\n enableUI();\n frozen = false;\n }\n\n function disableSlider() {\n if (disabled) {\n return;\n }\n\n sheet.disabled = true;\n container.className = container.className.replace(newContainerClasses.substring(1), '');\n removeAttrs(container, ['style']);\n\n if (loop) {\n for (var j = cloneCount; j--;) {\n if (carousel) {\n hideElement(slideItems[j]);\n }\n\n hideElement(slideItems[slideCountNew - j - 1]);\n }\n } // vertical slider\n\n\n if (!horizontal || !carousel) {\n removeAttrs(innerWrapper, ['style']);\n } // gallery\n\n\n if (!carousel) {\n for (var i = index, l = index + slideCount; i < l; i++) {\n var item = slideItems[i];\n removeAttrs(item, ['style']);\n removeClass(item, animateIn);\n removeClass(item, animateNormal);\n }\n } // update tools\n\n\n disableUI();\n disabled = true;\n }\n\n function enableSlider() {\n if (!disabled) {\n return;\n }\n\n sheet.disabled = false;\n container.className += newContainerClasses;\n doContainerTransformSilent();\n\n if (loop) {\n for (var j = cloneCount; j--;) {\n if (carousel) {\n showElement(slideItems[j]);\n }\n\n showElement(slideItems[slideCountNew - j - 1]);\n }\n } // gallery\n\n\n if (!carousel) {\n for (var i = index, l = index + slideCount; i < l; i++) {\n var item = slideItems[i],\n classN = i < index + items ? animateIn : animateNormal;\n item.style.left = (i - index) * 100 / items + '%';\n addClass(item, classN);\n }\n } // update tools\n\n\n enableUI();\n disabled = false;\n }\n\n function updateLiveRegion() {\n var str = getLiveRegionStr();\n\n if (liveregionCurrent.innerHTML !== str) {\n liveregionCurrent.innerHTML = str;\n }\n }\n\n function getLiveRegionStr() {\n var arr = getVisibleSlideRange(),\n start = arr[0] + 1,\n end = arr[1] + 1;\n return start === end ? start + '' : start + ' to ' + end;\n }\n\n function getVisibleSlideRange(val) {\n if (val == null) {\n val = getContainerTransformValue();\n }\n\n var start = index,\n end,\n rangestart,\n rangeend; // get range start, range end for autoWidth and fixedWidth\n\n if (center || edgePadding) {\n if (autoWidth || fixedWidth) {\n rangestart = -(parseFloat(val) + edgePadding);\n rangeend = rangestart + viewport + edgePadding * 2;\n }\n } else {\n if (autoWidth) {\n rangestart = slidePositions[index];\n rangeend = rangestart + viewport;\n }\n } // get start, end\n // - check auto width\n\n\n if (autoWidth) {\n slidePositions.forEach(function (point, i) {\n if (i < slideCountNew) {\n if ((center || edgePadding) && point <= rangestart + 0.5) {\n start = i;\n }\n\n if (rangeend - point >= 0.5) {\n end = i;\n }\n }\n }); // - check percentage width, fixed width\n } else {\n if (fixedWidth) {\n var cell = fixedWidth + gutter;\n\n if (center || edgePadding) {\n start = Math.floor(rangestart / cell);\n end = Math.ceil(rangeend / cell - 1);\n } else {\n end = start + Math.ceil(viewport / cell) - 1;\n }\n } else {\n if (center || edgePadding) {\n var a = items - 1;\n\n if (center) {\n start -= a / 2;\n end = index + a / 2;\n } else {\n end = index + a;\n }\n\n if (edgePadding) {\n var b = edgePadding * items / viewport;\n start -= b;\n end += b;\n }\n\n start = Math.floor(start);\n end = Math.ceil(end);\n } else {\n end = start + items - 1;\n }\n }\n\n start = Math.max(start, 0);\n end = Math.min(end, slideCountNew - 1);\n }\n\n return [start, end];\n }\n\n function doLazyLoad() {\n if (lazyload && !disable) {\n var arg = getVisibleSlideRange();\n arg.push(lazyloadSelector);\n getImageArray.apply(null, arg).forEach(function (img) {\n if (!hasClass(img, imgCompleteClass)) {\n // stop propagation transitionend event to container\n var eve = {};\n\n eve[TRANSITIONEND] = function (e) {\n e.stopPropagation();\n };\n\n addEvents(img, eve);\n addEvents(img, imgEvents); // update src\n\n img.src = getAttr(img, 'data-src'); // update srcset\n\n var srcset = getAttr(img, 'data-srcset');\n\n if (srcset) {\n img.srcset = srcset;\n }\n\n addClass(img, 'loading');\n }\n });\n }\n }\n\n function onImgLoaded(e) {\n imgLoaded(getTarget(e));\n }\n\n function onImgFailed(e) {\n imgFailed(getTarget(e));\n }\n\n function imgLoaded(img) {\n addClass(img, 'loaded');\n imgCompleted(img);\n }\n\n function imgFailed(img) {\n addClass(img, 'failed');\n imgCompleted(img);\n }\n\n function imgCompleted(img) {\n addClass(img, imgCompleteClass);\n removeClass(img, 'loading');\n removeEvents(img, imgEvents);\n }\n\n function getImageArray(start, end, imgSelector) {\n var imgs = [];\n\n if (!imgSelector) {\n imgSelector = 'img';\n }\n\n while (start <= end) {\n forEach(slideItems[start].querySelectorAll(imgSelector), function (img) {\n imgs.push(img);\n });\n start++;\n }\n\n return imgs;\n } // check if all visible images are loaded\n // and update container height if it's done\n\n\n function doAutoHeight() {\n var imgs = getImageArray.apply(null, getVisibleSlideRange());\n raf(function () {\n imgsLoadedCheck(imgs, updateInnerWrapperHeight);\n });\n }\n\n function imgsLoadedCheck(imgs, cb) {\n // execute callback function if all images are complete\n if (imgsComplete) {\n return cb();\n } // check image classes\n\n\n imgs.forEach(function (img, index) {\n if (!lazyload && img.complete) {\n imgCompleted(img);\n } // Check image.complete\n\n\n if (hasClass(img, imgCompleteClass)) {\n imgs.splice(index, 1);\n }\n }); // execute callback function if selected images are all complete\n\n if (!imgs.length) {\n return cb();\n } // otherwise execute this functiona again\n\n\n raf(function () {\n imgsLoadedCheck(imgs, cb);\n });\n }\n\n function additionalUpdates() {\n doLazyLoad();\n updateSlideStatus();\n updateLiveRegion();\n updateControlsStatus();\n updateNavStatus();\n }\n\n function update_carousel_transition_duration() {\n if (carousel && autoHeight) {\n middleWrapper.style[TRANSITIONDURATION] = speed / 1000 + 's';\n }\n }\n\n function getMaxSlideHeight(slideStart, slideRange) {\n var heights = [];\n\n for (var i = slideStart, l = Math.min(slideStart + slideRange, slideCountNew); i < l; i++) {\n heights.push(slideItems[i].offsetHeight);\n }\n\n return Math.max.apply(null, heights);\n } // update inner wrapper height\n // 1. get the max-height of the visible slides\n // 2. set transitionDuration to speed\n // 3. update inner wrapper height to max-height\n // 4. set transitionDuration to 0s after transition done\n\n\n function updateInnerWrapperHeight() {\n var maxHeight = autoHeight ? getMaxSlideHeight(index, items) : getMaxSlideHeight(cloneCount, slideCount),\n wp = middleWrapper ? middleWrapper : innerWrapper;\n\n if (wp.style.height !== maxHeight) {\n wp.style.height = maxHeight + 'px';\n }\n } // get the distance from the top edge of the first slide to each slide\n // (init) => slidePositions\n\n\n function setSlidePositions() {\n slidePositions = [0];\n var attr = horizontal ? 'left' : 'top',\n attr2 = horizontal ? 'right' : 'bottom',\n base = slideItems[0].getBoundingClientRect()[attr];\n forEach(slideItems, function (item, i) {\n // skip the first slide\n if (i) {\n slidePositions.push(item.getBoundingClientRect()[attr] - base);\n } // add the end edge\n\n\n if (i === slideCountNew - 1) {\n slidePositions.push(item.getBoundingClientRect()[attr2] - base);\n }\n });\n } // update slide\n\n\n function updateSlideStatus() {\n var range = getVisibleSlideRange(),\n start = range[0],\n end = range[1];\n forEach(slideItems, function (item, i) {\n // show slides\n if (i >= start && i <= end) {\n if (hasAttr(item, 'aria-hidden')) {\n removeAttrs(item, ['aria-hidden', 'tabindex']);\n addClass(item, slideActiveClass);\n } // hide slides\n\n } else {\n if (!hasAttr(item, 'aria-hidden')) {\n setAttrs(item, {\n 'aria-hidden': 'true',\n 'tabindex': '-1'\n });\n removeClass(item, slideActiveClass);\n }\n }\n });\n } // gallery: update slide position\n\n\n function updateGallerySlidePositions() {\n var l = index + Math.min(slideCount, items);\n\n for (var i = slideCountNew; i--;) {\n var item = slideItems[i];\n\n if (i >= index && i < l) {\n // add transitions to visible slides when adjusting their positions\n addClass(item, 'tns-moving');\n item.style.left = (i - index) * 100 / items + '%';\n addClass(item, animateIn);\n removeClass(item, animateNormal);\n } else if (item.style.left) {\n item.style.left = '';\n addClass(item, animateNormal);\n removeClass(item, animateIn);\n } // remove outlet animation\n\n\n removeClass(item, animateOut);\n } // removing '.tns-moving'\n\n\n setTimeout(function () {\n forEach(slideItems, function (el) {\n removeClass(el, 'tns-moving');\n });\n }, 300);\n } // set tabindex on Nav\n\n\n function updateNavStatus() {\n // get current nav\n if (nav) {\n navCurrentIndex = navClicked >= 0 ? navClicked : getCurrentNavIndex();\n navClicked = -1;\n\n if (navCurrentIndex !== navCurrentIndexCached) {\n var navPrev = navItems[navCurrentIndexCached],\n navCurrent = navItems[navCurrentIndex];\n setAttrs(navPrev, {\n 'tabindex': '-1',\n 'aria-label': navStr + (navCurrentIndexCached + 1)\n });\n removeClass(navPrev, navActiveClass);\n setAttrs(navCurrent, {\n 'aria-label': navStr + (navCurrentIndex + 1) + navStrCurrent\n });\n removeAttrs(navCurrent, 'tabindex');\n addClass(navCurrent, navActiveClass);\n navCurrentIndexCached = navCurrentIndex;\n }\n }\n }\n\n function getLowerCaseNodeName(el) {\n return el.nodeName.toLowerCase();\n }\n\n function isButton(el) {\n return getLowerCaseNodeName(el) === 'button';\n }\n\n function isAriaDisabled(el) {\n return el.getAttribute('aria-disabled') === 'true';\n }\n\n function disEnableElement(isButton, el, val) {\n if (isButton) {\n el.disabled = val;\n } else {\n el.setAttribute('aria-disabled', val.toString());\n }\n } // set 'disabled' to true on controls when reach the edges\n\n\n function updateControlsStatus() {\n if (!controls || rewind || loop) {\n return;\n }\n\n var prevDisabled = prevIsButton ? prevButton.disabled : isAriaDisabled(prevButton),\n nextDisabled = nextIsButton ? nextButton.disabled : isAriaDisabled(nextButton),\n disablePrev = index <= indexMin ? true : false,\n disableNext = !rewind && index >= indexMax ? true : false;\n\n if (disablePrev && !prevDisabled) {\n disEnableElement(prevIsButton, prevButton, true);\n }\n\n if (!disablePrev && prevDisabled) {\n disEnableElement(prevIsButton, prevButton, false);\n }\n\n if (disableNext && !nextDisabled) {\n disEnableElement(nextIsButton, nextButton, true);\n }\n\n if (!disableNext && nextDisabled) {\n disEnableElement(nextIsButton, nextButton, false);\n }\n } // set duration\n\n\n function resetDuration(el, str) {\n if (TRANSITIONDURATION) {\n el.style[TRANSITIONDURATION] = str;\n }\n }\n\n function getSliderWidth() {\n return fixedWidth ? (fixedWidth + gutter) * slideCountNew : slidePositions[slideCountNew];\n }\n\n function getCenterGap(num) {\n if (num == null) {\n num = index;\n }\n\n var gap = edgePadding ? gutter : 0;\n return autoWidth ? (viewport - gap - (slidePositions[num + 1] - slidePositions[num] - gutter)) / 2 : fixedWidth ? (viewport - fixedWidth) / 2 : (items - 1) / 2;\n }\n\n function getRightBoundary() {\n var gap = edgePadding ? gutter : 0,\n result = viewport + gap - getSliderWidth();\n\n if (center && !loop) {\n result = fixedWidth ? -(fixedWidth + gutter) * (slideCountNew - 1) - getCenterGap() : getCenterGap(slideCountNew - 1) - slidePositions[slideCountNew - 1];\n }\n\n if (result > 0) {\n result = 0;\n }\n\n return result;\n }\n\n function getContainerTransformValue(num) {\n if (num == null) {\n num = index;\n }\n\n var val;\n\n if (horizontal && !autoWidth) {\n if (fixedWidth) {\n val = -(fixedWidth + gutter) * num;\n\n if (center) {\n val += getCenterGap();\n }\n } else {\n var denominator = TRANSFORM ? slideCountNew : items;\n\n if (center) {\n num -= getCenterGap();\n }\n\n val = -num * 100 / denominator;\n }\n } else {\n val = -slidePositions[num];\n\n if (center && autoWidth) {\n val += getCenterGap();\n }\n }\n\n if (hasRightDeadZone) {\n val = Math.max(val, rightBoundary);\n }\n\n val += horizontal && !autoWidth && !fixedWidth ? '%' : 'px';\n return val;\n }\n\n function doContainerTransformSilent(val) {\n resetDuration(container, '0s');\n doContainerTransform(val);\n }\n\n function doContainerTransform(val) {\n if (val == null) {\n val = getContainerTransformValue();\n }\n\n container.style[transformAttr] = transformPrefix + val + transformPostfix;\n }\n\n function animateSlide(number, classOut, classIn, isOut) {\n var l = number + items;\n\n if (!loop) {\n l = Math.min(l, slideCountNew);\n }\n\n for (var i = number; i < l; i++) {\n var item = slideItems[i]; // set item positions\n\n if (!isOut) {\n item.style.left = (i - index) * 100 / items + '%';\n }\n\n if (animateDelay && TRANSITIONDELAY) {\n item.style[TRANSITIONDELAY] = item.style[ANIMATIONDELAY] = animateDelay * (i - number) / 1000 + 's';\n }\n\n removeClass(item, classOut);\n addClass(item, classIn);\n\n if (isOut) {\n slideItemsOut.push(item);\n }\n }\n } // make transfer after click/drag:\n // 1. change 'transform' property for mordern browsers\n // 2. change 'left' property for legacy browsers\n\n\n var transformCore = function () {\n return carousel ? function () {\n resetDuration(container, '');\n\n if (TRANSITIONDURATION || !speed) {\n // for morden browsers with non-zero duration or\n // zero duration for all browsers\n doContainerTransform(); // run fallback function manually\n // when duration is 0 / container is hidden\n\n if (!speed || !isVisible(container)) {\n onTransitionEnd();\n }\n } else {\n // for old browser with non-zero duration\n jsTransform(container, transformAttr, transformPrefix, transformPostfix, getContainerTransformValue(), speed, onTransitionEnd);\n }\n\n if (!horizontal) {\n updateContentWrapperHeight();\n }\n } : function () {\n slideItemsOut = [];\n var eve = {};\n eve[TRANSITIONEND] = eve[ANIMATIONEND] = onTransitionEnd;\n removeEvents(slideItems[indexCached], eve);\n addEvents(slideItems[index], eve);\n animateSlide(indexCached, animateIn, animateOut, true);\n animateSlide(index, animateNormal, animateIn); // run fallback function manually\n // when transition or animation not supported / duration is 0\n\n if (!TRANSITIONEND || !ANIMATIONEND || !speed || !isVisible(container)) {\n onTransitionEnd();\n }\n };\n }();\n\n function render(e, sliderMoved) {\n if (updateIndexBeforeTransform) {\n updateIndex();\n } // render when slider was moved (touch or drag) even though index may not change\n\n\n if (index !== indexCached || sliderMoved) {\n // events\n events.emit('indexChanged', info());\n events.emit('transitionStart', info());\n\n if (autoHeight) {\n doAutoHeight();\n } // pause autoplay when click or keydown from user\n\n\n if (animating && e && ['click', 'keydown'].indexOf(e.type) >= 0) {\n stopAutoplay();\n }\n\n running = true;\n transformCore();\n }\n }\n /*\n * Transfer prefixed properties to the same format\n * CSS: -Webkit-Transform => webkittransform\n * JS: WebkitTransform => webkittransform\n * @param {string} str - property\n *\n */\n\n\n function strTrans(str) {\n return str.toLowerCase().replace(/-/g, '');\n } // AFTER TRANSFORM\n // Things need to be done after a transfer:\n // 1. check index\n // 2. add classes to visible slide\n // 3. disable controls buttons when reach the first/last slide in non-loop slider\n // 4. update nav status\n // 5. lazyload images\n // 6. update container height\n\n\n function onTransitionEnd(event) {\n // check running on gallery mode\n // make sure trantionend/animationend events run only once\n if (carousel || running) {\n events.emit('transitionEnd', info(event));\n\n if (!carousel && slideItemsOut.length > 0) {\n for (var i = 0; i < slideItemsOut.length; i++) {\n var item = slideItemsOut[i]; // set item positions\n\n item.style.left = '';\n\n if (ANIMATIONDELAY && TRANSITIONDELAY) {\n item.style[ANIMATIONDELAY] = '';\n item.style[TRANSITIONDELAY] = '';\n }\n\n removeClass(item, animateOut);\n addClass(item, animateNormal);\n }\n }\n /* update slides, nav, controls after checking ...\n * => legacy browsers who don't support 'event'\n * have to check event first, otherwise event.target will cause an error\n * => or 'gallery' mode:\n * + event target is slide item\n * => or 'carousel' mode:\n * + event target is container,\n * + event.property is the same with transform attribute\n */\n\n\n if (!event || !carousel && event.target.parentNode === container || event.target === container && strTrans(event.propertyName) === strTrans(transformAttr)) {\n if (!updateIndexBeforeTransform) {\n var indexTem = index;\n updateIndex();\n\n if (index !== indexTem) {\n events.emit('indexChanged', info());\n doContainerTransformSilent();\n }\n }\n\n if (nested === 'inner') {\n events.emit('innerLoaded', info());\n }\n\n running = false;\n indexCached = index;\n }\n }\n } // # ACTIONS\n\n\n function goTo(targetIndex, e) {\n if (freeze) {\n return;\n } // prev slideBy\n\n\n if (targetIndex === 'prev') {\n onControlsClick(e, -1); // next slideBy\n } else if (targetIndex === 'next') {\n onControlsClick(e, 1); // go to exact slide\n } else {\n if (running) {\n if (preventActionWhenRunning) {\n return;\n } else {\n onTransitionEnd();\n }\n }\n\n var absIndex = getAbsIndex(),\n indexGap = 0;\n\n if (targetIndex === 'first') {\n indexGap = -absIndex;\n } else if (targetIndex === 'last') {\n indexGap = carousel ? slideCount - items - absIndex : slideCount - 1 - absIndex;\n } else {\n if (typeof targetIndex !== 'number') {\n targetIndex = parseInt(targetIndex);\n }\n\n if (!isNaN(targetIndex)) {\n // from directly called goTo function\n if (!e) {\n targetIndex = Math.max(0, Math.min(slideCount - 1, targetIndex));\n }\n\n indexGap = targetIndex - absIndex;\n }\n } // gallery: make sure new page won't overlap with current page\n\n\n if (!carousel && indexGap && Math.abs(indexGap) < items) {\n var factor = indexGap > 0 ? 1 : -1;\n indexGap += index + indexGap - slideCount >= indexMin ? slideCount * factor : slideCount * 2 * factor * -1;\n }\n\n index += indexGap; // make sure index is in range\n\n if (carousel && loop) {\n if (index < indexMin) {\n index += slideCount;\n }\n\n if (index > indexMax) {\n index -= slideCount;\n }\n } // if index is changed, start rendering\n\n\n if (getAbsIndex(index) !== getAbsIndex(indexCached)) {\n render(e);\n }\n }\n } // on controls click\n\n\n function onControlsClick(e, dir) {\n if (running) {\n if (preventActionWhenRunning) {\n return;\n } else {\n onTransitionEnd();\n }\n }\n\n var passEventObject;\n\n if (!dir) {\n e = getEvent(e);\n var target = getTarget(e);\n\n while (target !== controlsContainer && [prevButton, nextButton].indexOf(target) < 0) {\n target = target.parentNode;\n }\n\n var targetIn = [prevButton, nextButton].indexOf(target);\n\n if (targetIn >= 0) {\n passEventObject = true;\n dir = targetIn === 0 ? -1 : 1;\n }\n }\n\n if (rewind) {\n if (index === indexMin && dir === -1) {\n goTo('last', e);\n return;\n } else if (index === indexMax && dir === 1) {\n goTo('first', e);\n return;\n }\n }\n\n if (dir) {\n index += slideBy * dir;\n\n if (autoWidth) {\n index = Math.floor(index);\n } // pass e when click control buttons or keydown\n\n\n render(passEventObject || e && e.type === 'keydown' ? e : null);\n }\n } // on nav click\n\n\n function onNavClick(e) {\n if (running) {\n if (preventActionWhenRunning) {\n return;\n } else {\n onTransitionEnd();\n }\n }\n\n e = getEvent(e);\n var target = getTarget(e),\n navIndex; // find the clicked nav item\n\n while (target !== navContainer && !hasAttr(target, 'data-nav')) {\n target = target.parentNode;\n }\n\n if (hasAttr(target, 'data-nav')) {\n var navIndex = navClicked = Number(getAttr(target, 'data-nav')),\n targetIndexBase = fixedWidth || autoWidth ? navIndex * slideCount / pages : navIndex * items,\n targetIndex = navAsThumbnails ? navIndex : Math.min(Math.ceil(targetIndexBase), slideCount - 1);\n goTo(targetIndex, e);\n\n if (navCurrentIndex === navIndex) {\n if (animating) {\n stopAutoplay();\n }\n\n navClicked = -1; // reset navClicked\n }\n }\n } // autoplay functions\n\n\n function setAutoplayTimer() {\n autoplayTimer = setInterval(function () {\n onControlsClick(null, autoplayDirection);\n }, autoplayTimeout);\n animating = true;\n }\n\n function stopAutoplayTimer() {\n clearInterval(autoplayTimer);\n animating = false;\n }\n\n function updateAutoplayButton(action, txt) {\n setAttrs(autoplayButton, {\n 'data-action': action\n });\n autoplayButton.innerHTML = autoplayHtmlStrings[0] + action + autoplayHtmlStrings[1] + txt;\n }\n\n function startAutoplay() {\n setAutoplayTimer();\n\n if (autoplayButton) {\n updateAutoplayButton('stop', autoplayText[1]);\n }\n }\n\n function stopAutoplay() {\n stopAutoplayTimer();\n\n if (autoplayButton) {\n updateAutoplayButton('start', autoplayText[0]);\n }\n } // programaitcally play/pause the slider\n\n\n function play() {\n if (autoplay && !animating) {\n startAutoplay();\n autoplayUserPaused = false;\n }\n }\n\n function pause() {\n if (animating) {\n stopAutoplay();\n autoplayUserPaused = true;\n }\n }\n\n function toggleAutoplay() {\n if (animating) {\n stopAutoplay();\n autoplayUserPaused = true;\n } else {\n startAutoplay();\n autoplayUserPaused = false;\n }\n }\n\n function onVisibilityChange() {\n if (doc.hidden) {\n if (animating) {\n stopAutoplayTimer();\n autoplayVisibilityPaused = true;\n }\n } else if (autoplayVisibilityPaused) {\n setAutoplayTimer();\n autoplayVisibilityPaused = false;\n }\n }\n\n function mouseoverPause() {\n if (animating) {\n stopAutoplayTimer();\n autoplayHoverPaused = true;\n }\n }\n\n function mouseoutRestart() {\n if (autoplayHoverPaused) {\n setAutoplayTimer();\n autoplayHoverPaused = false;\n }\n } // keydown events on document\n\n\n function onDocumentKeydown(e) {\n e = getEvent(e);\n var keyIndex = [KEYS.LEFT, KEYS.RIGHT].indexOf(e.keyCode);\n\n if (keyIndex >= 0) {\n onControlsClick(e, keyIndex === 0 ? -1 : 1);\n }\n } // on key control\n\n\n function onControlsKeydown(e) {\n e = getEvent(e);\n var keyIndex = [KEYS.LEFT, KEYS.RIGHT].indexOf(e.keyCode);\n\n if (keyIndex >= 0) {\n if (keyIndex === 0) {\n if (!prevButton.disabled) {\n onControlsClick(e, -1);\n }\n } else if (!nextButton.disabled) {\n onControlsClick(e, 1);\n }\n }\n } // set focus\n\n\n function setFocus(el) {\n el.focus();\n } // on key nav\n\n\n function onNavKeydown(e) {\n e = getEvent(e);\n var curElement = doc.activeElement;\n\n if (!hasAttr(curElement, 'data-nav')) {\n return;\n } // var code = e.keyCode,\n\n\n var keyIndex = [KEYS.LEFT, KEYS.RIGHT, KEYS.ENTER, KEYS.SPACE].indexOf(e.keyCode),\n navIndex = Number(getAttr(curElement, 'data-nav'));\n\n if (keyIndex >= 0) {\n if (keyIndex === 0) {\n if (navIndex > 0) {\n setFocus(navItems[navIndex - 1]);\n }\n } else if (keyIndex === 1) {\n if (navIndex < pages - 1) {\n setFocus(navItems[navIndex + 1]);\n }\n } else {\n navClicked = navIndex;\n goTo(navIndex, e);\n }\n }\n }\n\n function getEvent(e) {\n e = e || win.event;\n return isTouchEvent(e) ? e.changedTouches[0] : e;\n }\n\n function getTarget(e) {\n return e.target || win.event.srcElement;\n }\n\n function isTouchEvent(e) {\n return e.type.indexOf('touch') >= 0;\n }\n\n function preventDefaultBehavior(e) {\n e.preventDefault ? e.preventDefault() : e.returnValue = false;\n }\n\n function getMoveDirectionExpected() {\n return getTouchDirection(toDegree(lastPosition.y - initPosition.y, lastPosition.x - initPosition.x), swipeAngle) === options.axis;\n }\n\n function onPanStart(e) {\n if (running) {\n if (preventActionWhenRunning) {\n return;\n } else {\n onTransitionEnd();\n }\n }\n\n if (autoplay && animating) {\n stopAutoplayTimer();\n }\n\n panStart = true;\n\n if (rafIndex) {\n caf(rafIndex);\n rafIndex = null;\n }\n\n var $ = getEvent(e);\n events.emit(isTouchEvent(e) ? 'touchStart' : 'dragStart', info(e));\n\n if (!isTouchEvent(e) && ['img', 'a'].indexOf(getLowerCaseNodeName(getTarget(e))) >= 0) {\n preventDefaultBehavior(e);\n }\n\n lastPosition.x = initPosition.x = $.clientX;\n lastPosition.y = initPosition.y = $.clientY;\n\n if (carousel) {\n translateInit = parseFloat(container.style[transformAttr].replace(transformPrefix, ''));\n resetDuration(container, '0s');\n }\n }\n\n function onPanMove(e) {\n if (panStart) {\n var $ = getEvent(e);\n lastPosition.x = $.clientX;\n lastPosition.y = $.clientY;\n\n if (carousel) {\n if (!rafIndex) {\n rafIndex = raf(function () {\n panUpdate(e);\n });\n }\n } else {\n if (moveDirectionExpected === '?') {\n moveDirectionExpected = getMoveDirectionExpected();\n }\n\n if (moveDirectionExpected) {\n preventScroll = true;\n }\n }\n\n if ((typeof e.cancelable !== 'boolean' || e.cancelable) && preventScroll) {\n e.preventDefault();\n }\n }\n }\n\n function panUpdate(e) {\n if (!moveDirectionExpected) {\n panStart = false;\n return;\n }\n\n caf(rafIndex);\n\n if (panStart) {\n rafIndex = raf(function () {\n panUpdate(e);\n });\n }\n\n if (moveDirectionExpected === '?') {\n moveDirectionExpected = getMoveDirectionExpected();\n }\n\n if (moveDirectionExpected) {\n if (!preventScroll && isTouchEvent(e)) {\n preventScroll = true;\n }\n\n try {\n if (e.type) {\n events.emit(isTouchEvent(e) ? 'touchMove' : 'dragMove', info(e));\n }\n } catch (err) {}\n\n var x = translateInit,\n dist = getDist(lastPosition, initPosition);\n\n if (!horizontal || fixedWidth || autoWidth) {\n x += dist;\n x += 'px';\n } else {\n var percentageX = TRANSFORM ? dist * items * 100 / ((viewport + gutter) * slideCountNew) : dist * 100 / (viewport + gutter);\n x += percentageX;\n x += '%';\n }\n\n container.style[transformAttr] = transformPrefix + x + transformPostfix;\n }\n }\n\n function onPanEnd(e) {\n if (panStart) {\n if (rafIndex) {\n caf(rafIndex);\n rafIndex = null;\n }\n\n if (carousel) {\n resetDuration(container, '');\n }\n\n panStart = false;\n var $ = getEvent(e);\n lastPosition.x = $.clientX;\n lastPosition.y = $.clientY;\n var dist = getDist(lastPosition, initPosition);\n\n if (Math.abs(dist)) {\n // drag vs click\n if (!isTouchEvent(e)) {\n // prevent \"click\"\n var target = getTarget(e);\n addEvents(target, {\n 'click': function preventClick(e) {\n preventDefaultBehavior(e);\n removeEvents(target, {\n 'click': preventClick\n });\n }\n });\n }\n\n if (carousel) {\n rafIndex = raf(function () {\n if (horizontal && !autoWidth) {\n var indexMoved = -dist * items / (viewport + gutter);\n indexMoved = dist > 0 ? Math.floor(indexMoved) : Math.ceil(indexMoved);\n index += indexMoved;\n } else {\n var moved = -(translateInit + dist);\n\n if (moved <= 0) {\n index = indexMin;\n } else if (moved >= slidePositions[slideCountNew - 1]) {\n index = indexMax;\n } else {\n var i = 0;\n\n while (i < slideCountNew && moved >= slidePositions[i]) {\n index = i;\n\n if (moved > slidePositions[i] && dist < 0) {\n index += 1;\n }\n\n i++;\n }\n }\n }\n\n render(e, dist);\n events.emit(isTouchEvent(e) ? 'touchEnd' : 'dragEnd', info(e));\n });\n } else {\n if (moveDirectionExpected) {\n onControlsClick(e, dist > 0 ? -1 : 1);\n }\n }\n }\n } // reset\n\n\n if (options.preventScrollOnTouch === 'auto') {\n preventScroll = false;\n }\n\n if (swipeAngle) {\n moveDirectionExpected = '?';\n }\n\n if (autoplay && !animating) {\n setAutoplayTimer();\n }\n } // === RESIZE FUNCTIONS === //\n // (slidePositions, index, items) => vertical_conentWrapper.height\n\n\n function updateContentWrapperHeight() {\n var wp = middleWrapper ? middleWrapper : innerWrapper;\n wp.style.height = slidePositions[index + items] - slidePositions[index] + 'px';\n }\n\n function getPages() {\n var rough = fixedWidth ? (fixedWidth + gutter) * slideCount / viewport : slideCount / items;\n return Math.min(Math.ceil(rough), slideCount);\n }\n /*\n * 1. update visible nav items list\n * 2. add \"hidden\" attributes to previous visible nav items\n * 3. remove \"hidden\" attrubutes to new visible nav items\n */\n\n\n function updateNavVisibility() {\n if (!nav || navAsThumbnails) {\n return;\n }\n\n if (pages !== pagesCached) {\n var min = pagesCached,\n max = pages,\n fn = showElement;\n\n if (pagesCached > pages) {\n min = pages;\n max = pagesCached;\n fn = hideElement;\n }\n\n while (min < max) {\n fn(navItems[min]);\n min++;\n } // cache pages\n\n\n pagesCached = pages;\n }\n }\n\n function info(e) {\n return {\n container: container,\n slideItems: slideItems,\n navContainer: navContainer,\n navItems: navItems,\n controlsContainer: controlsContainer,\n hasControls: hasControls,\n prevButton: prevButton,\n nextButton: nextButton,\n items: items,\n slideBy: slideBy,\n cloneCount: cloneCount,\n slideCount: slideCount,\n slideCountNew: slideCountNew,\n index: index,\n indexCached: indexCached,\n displayIndex: getCurrentSlide(),\n navCurrentIndex: navCurrentIndex,\n navCurrentIndexCached: navCurrentIndexCached,\n pages: pages,\n pagesCached: pagesCached,\n sheet: sheet,\n isOn: isOn,\n event: e || {}\n };\n }\n\n return {\n version: '2.9.3',\n getInfo: info,\n events: events,\n goTo: goTo,\n play: play,\n pause: pause,\n isOn: isOn,\n updateSliderHeight: updateInnerWrapperHeight,\n refresh: initSliderTransform,\n destroy: destroy,\n rebuild: function rebuild() {\n return tns(extend(options, optionsElements));\n }\n };\n };\n\n return tns;\n}();","/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */\n!function(n){\"function\"==typeof define&&define.amd?define([\"jquery\"],n):\"object\"==typeof module&&module.exports?module.exports=function(e,t){return void 0===t&&(t=\"undefined\"!=typeof window?require(\"jquery\"):require(\"jquery\")(e)),n(t),t}:n(jQuery)}(function(u){var e=function(){if(u&&u.fn&&u.fn.select2&&u.fn.select2.amd)var e=u.fn.select2.amd;var t,n,r,h,o,s,f,g,m,v,y,_,i,a,b;function w(e,t){return i.call(e,t)}function l(e,t){var n,r,i,o,s,a,l,c,u,d,p,h=t&&t.split(\"/\"),f=y.map,g=f&&f[\"*\"]||{};if(e){for(s=(e=e.split(\"/\")).length-1,y.nodeIdCompat&&b.test(e[s])&&(e[s]=e[s].replace(b,\"\")),\".\"===e[0].charAt(0)&&h&&(e=h.slice(0,h.length-1).concat(e)),u=0;u<e.length;u++)if(\".\"===(p=e[u]))e.splice(u,1),u-=1;else if(\"..\"===p){if(0===u||1===u&&\"..\"===e[2]||\"..\"===e[u-1])continue;0<u&&(e.splice(u-1,2),u-=2)}e=e.join(\"/\")}if((h||g)&&f){for(u=(n=e.split(\"/\")).length;0<u;u-=1){if(r=n.slice(0,u).join(\"/\"),h)for(d=h.length;0<d;d-=1)if(i=(i=f[h.slice(0,d).join(\"/\")])&&i[r]){o=i,a=u;break}if(o)break;!l&&g&&g[r]&&(l=g[r],c=u)}!o&&l&&(o=l,a=c),o&&(n.splice(0,a,o),e=n.join(\"/\"))}return e}function A(t,n){return function(){var e=a.call(arguments,0);return\"string\"!=typeof e[0]&&1===e.length&&e.push(null),s.apply(h,e.concat([t,n]))}}function x(t){return function(e){m[t]=e}}function D(e){if(w(v,e)){var t=v[e];delete v[e],_[e]=!0,o.apply(h,t)}if(!w(m,e)&&!w(_,e))throw new Error(\"No \"+e);return m[e]}function c(e){var t,n=e?e.indexOf(\"!\"):-1;return-1<n&&(t=e.substring(0,n),e=e.substring(n+1,e.length)),[t,e]}function S(e){return e?c(e):[]}return e&&e.requirejs||(e?n=e:e={},m={},v={},y={},_={},i=Object.prototype.hasOwnProperty,a=[].slice,b=/\\.js$/,f=function(e,t){var n,r=c(e),i=r[0],o=t[1];return e=r[1],i&&(n=D(i=l(i,o))),i?e=n&&n.normalize?n.normalize(e,function(t){return function(e){return l(e,t)}}(o)):l(e,o):(i=(r=c(e=l(e,o)))[0],e=r[1],i&&(n=D(i))),{f:i?i+\"!\"+e:e,n:e,pr:i,p:n}},g={require:function(e){return A(e)},exports:function(e){var t=m[e];return void 0!==t?t:m[e]={}},module:function(e){return{id:e,uri:\"\",exports:m[e],config:function(e){return function(){return y&&y.config&&y.config[e]||{}}}(e)}}},o=function(e,t,n,r){var i,o,s,a,l,c,u,d=[],p=typeof n;if(c=S(r=r||e),\"undefined\"==p||\"function\"==p){for(t=!t.length&&n.length?[\"require\",\"exports\",\"module\"]:t,l=0;l<t.length;l+=1)if(\"require\"===(o=(a=f(t[l],c)).f))d[l]=g.require(e);else if(\"exports\"===o)d[l]=g.exports(e),u=!0;else if(\"module\"===o)i=d[l]=g.module(e);else if(w(m,o)||w(v,o)||w(_,o))d[l]=D(o);else{if(!a.p)throw new Error(e+\" missing \"+o);a.p.load(a.n,A(r,!0),x(o),{}),d[l]=m[o]}s=n?n.apply(m[e],d):void 0,e&&(i&&i.exports!==h&&i.exports!==m[e]?m[e]=i.exports:s===h&&u||(m[e]=s))}else e&&(m[e]=n)},t=n=s=function(e,t,n,r,i){if(\"string\"==typeof e)return g[e]?g[e](t):D(f(e,S(t)).f);if(!e.splice){if((y=e).deps&&s(y.deps,y.callback),!t)return;t.splice?(e=t,t=n,n=null):e=h}return t=t||function(){},\"function\"==typeof n&&(n=r,r=i),r?o(h,e,t,n):setTimeout(function(){o(h,e,t,n)},4),s},s.config=function(e){return s(e)},t._defined=m,(r=function(e,t,n){if(\"string\"!=typeof e)throw new Error(\"See almond README: incorrect module build, no module name\");t.splice||(n=t,t=[]),w(m,e)||w(v,e)||(v[e]=[e,t,n])}).amd={jQuery:!0},e.requirejs=t,e.require=n,e.define=r),e.define(\"almond\",function(){}),e.define(\"jquery\",[],function(){var e=u||$;return null==e&&console&&console.error&&console.error(\"Select2: An instance of jQuery or a jQuery-compatible library was not found. Make sure that you are including jQuery before Select2 on your web page.\"),e}),e.define(\"select2/utils\",[\"jquery\"],function(o){var i={};function u(e){var t=e.prototype,n=[];for(var r in t){\"function\"==typeof t[r]&&\"constructor\"!==r&&n.push(r)}return n}i.Extend=function(e,t){var n={}.hasOwnProperty;function r(){this.constructor=e}for(var i in t)n.call(t,i)&&(e[i]=t[i]);return r.prototype=t.prototype,e.prototype=new r,e.__super__=t.prototype,e},i.Decorate=function(r,i){var e=u(i),t=u(r);function o(){var e=Array.prototype.unshift,t=i.prototype.constructor.length,n=r.prototype.constructor;0<t&&(e.call(arguments,r.prototype.constructor),n=i.prototype.constructor),n.apply(this,arguments)}i.displayName=r.displayName,o.prototype=new function(){this.constructor=o};for(var n=0;n<t.length;n++){var s=t[n];o.prototype[s]=r.prototype[s]}function a(e){var t=function(){};e in o.prototype&&(t=o.prototype[e]);var n=i.prototype[e];return function(){return Array.prototype.unshift.call(arguments,t),n.apply(this,arguments)}}for(var l=0;l<e.length;l++){var c=e[l];o.prototype[c]=a(c)}return o};function e(){this.listeners={}}e.prototype.on=function(e,t){this.listeners=this.listeners||{},e in this.listeners?this.listeners[e].push(t):this.listeners[e]=[t]},e.prototype.trigger=function(e){var t=Array.prototype.slice,n=t.call(arguments,1);this.listeners=this.listeners||{},null==n&&(n=[]),0===n.length&&n.push({}),(n[0]._type=e)in this.listeners&&this.invoke(this.listeners[e],t.call(arguments,1)),\"*\"in this.listeners&&this.invoke(this.listeners[\"*\"],arguments)},e.prototype.invoke=function(e,t){for(var n=0,r=e.length;n<r;n++)e[n].apply(this,t)},i.Observable=e,i.generateChars=function(e){for(var t=\"\",n=0;n<e;n++){t+=Math.floor(36*Math.random()).toString(36)}return t},i.bind=function(e,t){return function(){e.apply(t,arguments)}},i._convertData=function(e){for(var t in e){var n=t.split(\"-\"),r=e;if(1!==n.length){for(var i=0;i<n.length;i++){var o=n[i];(o=o.substring(0,1).toLowerCase()+o.substring(1))in r||(r[o]={}),i==n.length-1&&(r[o]=e[t]),r=r[o]}delete e[t]}}return e},i.hasScroll=function(e,t){var n=o(t),r=t.style.overflowX,i=t.style.overflowY;return(r!==i||\"hidden\"!==i&&\"visible\"!==i)&&(\"scroll\"===r||\"scroll\"===i||(n.innerHeight()<t.scrollHeight||n.innerWidth()<t.scrollWidth))},i.escapeMarkup=function(e){var t={\"\\\\\":\"\\",\"&\":\"&\",\"<\":\"<\",\">\":\">\",'\"':\""\",\"'\":\"'\",\"/\":\"/\"};return\"string\"!=typeof e?e:String(e).replace(/[&<>\"'\\/\\\\]/g,function(e){return t[e]})},i.appendMany=function(e,t){if(\"1.7\"===o.fn.jquery.substr(0,3)){var n=o();o.map(t,function(e){n=n.add(e)}),t=n}e.append(t)},i.__cache={};var n=0;return i.GetUniqueElementId=function(e){var t=e.getAttribute(\"data-select2-id\");return null==t&&(e.id?(t=e.id,e.setAttribute(\"data-select2-id\",t)):(e.setAttribute(\"data-select2-id\",++n),t=n.toString())),t},i.StoreData=function(e,t,n){var r=i.GetUniqueElementId(e);i.__cache[r]||(i.__cache[r]={}),i.__cache[r][t]=n},i.GetData=function(e,t){var n=i.GetUniqueElementId(e);return t?i.__cache[n]&&null!=i.__cache[n][t]?i.__cache[n][t]:o(e).data(t):i.__cache[n]},i.RemoveData=function(e){var t=i.GetUniqueElementId(e);null!=i.__cache[t]&&delete i.__cache[t],e.removeAttribute(\"data-select2-id\")},i}),e.define(\"select2/results\",[\"jquery\",\"./utils\"],function(h,f){function r(e,t,n){this.$element=e,this.data=n,this.options=t,r.__super__.constructor.call(this)}return f.Extend(r,f.Observable),r.prototype.render=function(){var e=h('<ul class=\"select2-results__options\" role=\"listbox\"></ul>');return this.options.get(\"multiple\")&&e.attr(\"aria-multiselectable\",\"true\"),this.$results=e},r.prototype.clear=function(){this.$results.empty()},r.prototype.displayMessage=function(e){var t=this.options.get(\"escapeMarkup\");this.clear(),this.hideLoading();var n=h('<li role=\"alert\" aria-live=\"assertive\" class=\"select2-results__option\"></li>'),r=this.options.get(\"translations\").get(e.message);n.append(t(r(e.args))),n[0].className+=\" select2-results__message\",this.$results.append(n)},r.prototype.hideMessages=function(){this.$results.find(\".select2-results__message\").remove()},r.prototype.append=function(e){this.hideLoading();var t=[];if(null!=e.results&&0!==e.results.length){e.results=this.sort(e.results);for(var n=0;n<e.results.length;n++){var r=e.results[n],i=this.option(r);t.push(i)}this.$results.append(t)}else 0===this.$results.children().length&&this.trigger(\"results:message\",{message:\"noResults\"})},r.prototype.position=function(e,t){t.find(\".select2-results\").append(e)},r.prototype.sort=function(e){return this.options.get(\"sorter\")(e)},r.prototype.highlightFirstItem=function(){var e=this.$results.find(\".select2-results__option[aria-selected]\"),t=e.filter(\"[aria-selected=true]\");0<t.length?t.first().trigger(\"mouseenter\"):e.first().trigger(\"mouseenter\"),this.ensureHighlightVisible()},r.prototype.setClasses=function(){var t=this;this.data.current(function(e){var r=h.map(e,function(e){return e.id.toString()});t.$results.find(\".select2-results__option[aria-selected]\").each(function(){var e=h(this),t=f.GetData(this,\"data\"),n=\"\"+t.id;null!=t.element&&t.element.selected||null==t.element&&-1<h.inArray(n,r)?e.attr(\"aria-selected\",\"true\"):e.attr(\"aria-selected\",\"false\")})})},r.prototype.showLoading=function(e){this.hideLoading();var t={disabled:!0,loading:!0,text:this.options.get(\"translations\").get(\"searching\")(e)},n=this.option(t);n.className+=\" loading-results\",this.$results.prepend(n)},r.prototype.hideLoading=function(){this.$results.find(\".loading-results\").remove()},r.prototype.option=function(e){var t=document.createElement(\"li\");t.className=\"select2-results__option\";var n={role:\"option\",\"aria-selected\":\"false\"},r=window.Element.prototype.matches||window.Element.prototype.msMatchesSelector||window.Element.prototype.webkitMatchesSelector;for(var i in(null!=e.element&&r.call(e.element,\":disabled\")||null==e.element&&e.disabled)&&(delete n[\"aria-selected\"],n[\"aria-disabled\"]=\"true\"),null==e.id&&delete n[\"aria-selected\"],null!=e._resultId&&(t.id=e._resultId),e.title&&(t.title=e.title),e.children&&(n.role=\"group\",n[\"aria-label\"]=e.text,delete n[\"aria-selected\"]),n){var o=n[i];t.setAttribute(i,o)}if(e.children){var s=h(t),a=document.createElement(\"strong\");a.className=\"select2-results__group\";h(a);this.template(e,a);for(var l=[],c=0;c<e.children.length;c++){var u=e.children[c],d=this.option(u);l.push(d)}var p=h(\"<ul></ul>\",{class:\"select2-results__options select2-results__options--nested\"});p.append(l),s.append(a),s.append(p)}else this.template(e,t);return f.StoreData(t,\"data\",e),t},r.prototype.bind=function(t,e){var l=this,n=t.id+\"-results\";this.$results.attr(\"id\",n),t.on(\"results:all\",function(e){l.clear(),l.append(e.data),t.isOpen()&&(l.setClasses(),l.highlightFirstItem())}),t.on(\"results:append\",function(e){l.append(e.data),t.isOpen()&&l.setClasses()}),t.on(\"query\",function(e){l.hideMessages(),l.showLoading(e)}),t.on(\"select\",function(){t.isOpen()&&(l.setClasses(),l.options.get(\"scrollAfterSelect\")&&l.highlightFirstItem())}),t.on(\"unselect\",function(){t.isOpen()&&(l.setClasses(),l.options.get(\"scrollAfterSelect\")&&l.highlightFirstItem())}),t.on(\"open\",function(){l.$results.attr(\"aria-expanded\",\"true\"),l.$results.attr(\"aria-hidden\",\"false\"),l.setClasses(),l.ensureHighlightVisible()}),t.on(\"close\",function(){l.$results.attr(\"aria-expanded\",\"false\"),l.$results.attr(\"aria-hidden\",\"true\"),l.$results.removeAttr(\"aria-activedescendant\")}),t.on(\"results:toggle\",function(){var e=l.getHighlightedResults();0!==e.length&&e.trigger(\"mouseup\")}),t.on(\"results:select\",function(){var e=l.getHighlightedResults();if(0!==e.length){var t=f.GetData(e[0],\"data\");\"true\"==e.attr(\"aria-selected\")?l.trigger(\"close\",{}):l.trigger(\"select\",{data:t})}}),t.on(\"results:previous\",function(){var e=l.getHighlightedResults(),t=l.$results.find(\"[aria-selected]\"),n=t.index(e);if(!(n<=0)){var r=n-1;0===e.length&&(r=0);var i=t.eq(r);i.trigger(\"mouseenter\");var o=l.$results.offset().top,s=i.offset().top,a=l.$results.scrollTop()+(s-o);0===r?l.$results.scrollTop(0):s-o<0&&l.$results.scrollTop(a)}}),t.on(\"results:next\",function(){var e=l.getHighlightedResults(),t=l.$results.find(\"[aria-selected]\"),n=t.index(e)+1;if(!(n>=t.length)){var r=t.eq(n);r.trigger(\"mouseenter\");var i=l.$results.offset().top+l.$results.outerHeight(!1),o=r.offset().top+r.outerHeight(!1),s=l.$results.scrollTop()+o-i;0===n?l.$results.scrollTop(0):i<o&&l.$results.scrollTop(s)}}),t.on(\"results:focus\",function(e){e.element.addClass(\"select2-results__option--highlighted\")}),t.on(\"results:message\",function(e){l.displayMessage(e)}),h.fn.mousewheel&&this.$results.on(\"mousewheel\",function(e){var t=l.$results.scrollTop(),n=l.$results.get(0).scrollHeight-t+e.deltaY,r=0<e.deltaY&&t-e.deltaY<=0,i=e.deltaY<0&&n<=l.$results.height();r?(l.$results.scrollTop(0),e.preventDefault(),e.stopPropagation()):i&&(l.$results.scrollTop(l.$results.get(0).scrollHeight-l.$results.height()),e.preventDefault(),e.stopPropagation())}),this.$results.on(\"mouseup\",\".select2-results__option[aria-selected]\",function(e){var t=h(this),n=f.GetData(this,\"data\");\"true\"!==t.attr(\"aria-selected\")?l.trigger(\"select\",{originalEvent:e,data:n}):l.options.get(\"multiple\")?l.trigger(\"unselect\",{originalEvent:e,data:n}):l.trigger(\"close\",{})}),this.$results.on(\"mouseenter\",\".select2-results__option[aria-selected]\",function(e){var t=f.GetData(this,\"data\");l.getHighlightedResults().removeClass(\"select2-results__option--highlighted\"),l.trigger(\"results:focus\",{data:t,element:h(this)})})},r.prototype.getHighlightedResults=function(){return this.$results.find(\".select2-results__option--highlighted\")},r.prototype.destroy=function(){this.$results.remove()},r.prototype.ensureHighlightVisible=function(){var e=this.getHighlightedResults();if(0!==e.length){var t=this.$results.find(\"[aria-selected]\").index(e),n=this.$results.offset().top,r=e.offset().top,i=this.$results.scrollTop()+(r-n),o=r-n;i-=2*e.outerHeight(!1),t<=2?this.$results.scrollTop(0):(o>this.$results.outerHeight()||o<0)&&this.$results.scrollTop(i)}},r.prototype.template=function(e,t){var n=this.options.get(\"templateResult\"),r=this.options.get(\"escapeMarkup\"),i=n(e,t);null==i?t.style.display=\"none\":\"string\"==typeof i?t.innerHTML=r(i):h(t).append(i)},r}),e.define(\"select2/keys\",[],function(){return{BACKSPACE:8,TAB:9,ENTER:13,SHIFT:16,CTRL:17,ALT:18,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,DELETE:46}}),e.define(\"select2/selection/base\",[\"jquery\",\"../utils\",\"../keys\"],function(n,r,i){function o(e,t){this.$element=e,this.options=t,o.__super__.constructor.call(this)}return r.Extend(o,r.Observable),o.prototype.render=function(){var e=n('<span class=\"select2-selection\" role=\"combobox\" aria-haspopup=\"true\" aria-expanded=\"false\"></span>');return this._tabindex=0,null!=r.GetData(this.$element[0],\"old-tabindex\")?this._tabindex=r.GetData(this.$element[0],\"old-tabindex\"):null!=this.$element.attr(\"tabindex\")&&(this._tabindex=this.$element.attr(\"tabindex\")),e.attr(\"title\",this.$element.attr(\"title\")),e.attr(\"tabindex\",this._tabindex),e.attr(\"aria-disabled\",\"false\"),this.$selection=e},o.prototype.bind=function(e,t){var n=this,r=e.id+\"-results\";this.container=e,this.$selection.on(\"focus\",function(e){n.trigger(\"focus\",e)}),this.$selection.on(\"blur\",function(e){n._handleBlur(e)}),this.$selection.on(\"keydown\",function(e){n.trigger(\"keypress\",e),e.which===i.SPACE&&e.preventDefault()}),e.on(\"results:focus\",function(e){n.$selection.attr(\"aria-activedescendant\",e.data._resultId)}),e.on(\"selection:update\",function(e){n.update(e.data)}),e.on(\"open\",function(){n.$selection.attr(\"aria-expanded\",\"true\"),n.$selection.attr(\"aria-owns\",r),n._attachCloseHandler(e)}),e.on(\"close\",function(){n.$selection.attr(\"aria-expanded\",\"false\"),n.$selection.removeAttr(\"aria-activedescendant\"),n.$selection.removeAttr(\"aria-owns\"),n.$selection.trigger(\"focus\"),n._detachCloseHandler(e)}),e.on(\"enable\",function(){n.$selection.attr(\"tabindex\",n._tabindex),n.$selection.attr(\"aria-disabled\",\"false\")}),e.on(\"disable\",function(){n.$selection.attr(\"tabindex\",\"-1\"),n.$selection.attr(\"aria-disabled\",\"true\")})},o.prototype._handleBlur=function(e){var t=this;window.setTimeout(function(){document.activeElement==t.$selection[0]||n.contains(t.$selection[0],document.activeElement)||t.trigger(\"blur\",e)},1)},o.prototype._attachCloseHandler=function(e){n(document.body).on(\"mousedown.select2.\"+e.id,function(e){var t=n(e.target).closest(\".select2\");n(\".select2.select2-container--open\").each(function(){this!=t[0]&&r.GetData(this,\"element\").select2(\"close\")})})},o.prototype._detachCloseHandler=function(e){n(document.body).off(\"mousedown.select2.\"+e.id)},o.prototype.position=function(e,t){t.find(\".selection\").append(e)},o.prototype.destroy=function(){this._detachCloseHandler(this.container)},o.prototype.update=function(e){throw new Error(\"The `update` method must be defined in child classes.\")},o.prototype.isEnabled=function(){return!this.isDisabled()},o.prototype.isDisabled=function(){return this.options.get(\"disabled\")},o}),e.define(\"select2/selection/single\",[\"jquery\",\"./base\",\"../utils\",\"../keys\"],function(e,t,n,r){function i(){i.__super__.constructor.apply(this,arguments)}return n.Extend(i,t),i.prototype.render=function(){var e=i.__super__.render.call(this);return e.addClass(\"select2-selection--single\"),e.html('<span class=\"select2-selection__rendered\"></span><span class=\"select2-selection__arrow\" role=\"presentation\"><b role=\"presentation\"></b></span>'),e},i.prototype.bind=function(t,e){var n=this;i.__super__.bind.apply(this,arguments);var r=t.id+\"-container\";this.$selection.find(\".select2-selection__rendered\").attr(\"id\",r).attr(\"role\",\"textbox\").attr(\"aria-readonly\",\"true\"),this.$selection.attr(\"aria-labelledby\",r),this.$selection.on(\"mousedown\",function(e){1===e.which&&n.trigger(\"toggle\",{originalEvent:e})}),this.$selection.on(\"focus\",function(e){}),this.$selection.on(\"blur\",function(e){}),t.on(\"focus\",function(e){t.isOpen()||n.$selection.trigger(\"focus\")})},i.prototype.clear=function(){var e=this.$selection.find(\".select2-selection__rendered\");e.empty(),e.removeAttr(\"title\")},i.prototype.display=function(e,t){var n=this.options.get(\"templateSelection\");return this.options.get(\"escapeMarkup\")(n(e,t))},i.prototype.selectionContainer=function(){return e(\"<span></span>\")},i.prototype.update=function(e){if(0!==e.length){var t=e[0],n=this.$selection.find(\".select2-selection__rendered\"),r=this.display(t,n);n.empty().append(r);var i=t.title||t.text;i?n.attr(\"title\",i):n.removeAttr(\"title\")}else this.clear()},i}),e.define(\"select2/selection/multiple\",[\"jquery\",\"./base\",\"../utils\"],function(i,e,l){function n(e,t){n.__super__.constructor.apply(this,arguments)}return l.Extend(n,e),n.prototype.render=function(){var e=n.__super__.render.call(this);return e.addClass(\"select2-selection--multiple\"),e.html('<ul class=\"select2-selection__rendered\"></ul>'),e},n.prototype.bind=function(e,t){var r=this;n.__super__.bind.apply(this,arguments),this.$selection.on(\"click\",function(e){r.trigger(\"toggle\",{originalEvent:e})}),this.$selection.on(\"click\",\".select2-selection__choice__remove\",function(e){if(!r.isDisabled()){var t=i(this).parent(),n=l.GetData(t[0],\"data\");r.trigger(\"unselect\",{originalEvent:e,data:n})}})},n.prototype.clear=function(){var e=this.$selection.find(\".select2-selection__rendered\");e.empty(),e.removeAttr(\"title\")},n.prototype.display=function(e,t){var n=this.options.get(\"templateSelection\");return this.options.get(\"escapeMarkup\")(n(e,t))},n.prototype.selectionContainer=function(){return i('<li class=\"select2-selection__choice\"><span class=\"select2-selection__choice__remove\" role=\"presentation\">×</span></li>')},n.prototype.update=function(e){if(this.clear(),0!==e.length){for(var t=[],n=0;n<e.length;n++){var r=e[n],i=this.selectionContainer(),o=this.display(r,i);i.append(o);var s=r.title||r.text;s&&i.attr(\"title\",s),l.StoreData(i[0],\"data\",r),t.push(i)}var a=this.$selection.find(\".select2-selection__rendered\");l.appendMany(a,t)}},n}),e.define(\"select2/selection/placeholder\",[\"../utils\"],function(e){function t(e,t,n){this.placeholder=this.normalizePlaceholder(n.get(\"placeholder\")),e.call(this,t,n)}return t.prototype.normalizePlaceholder=function(e,t){return\"string\"==typeof t&&(t={id:\"\",text:t}),t},t.prototype.createPlaceholder=function(e,t){var n=this.selectionContainer();return n.html(this.display(t)),n.addClass(\"select2-selection__placeholder\").removeClass(\"select2-selection__choice\"),n},t.prototype.update=function(e,t){var n=1==t.length&&t[0].id!=this.placeholder.id;if(1<t.length||n)return e.call(this,t);this.clear();var r=this.createPlaceholder(this.placeholder);this.$selection.find(\".select2-selection__rendered\").append(r)},t}),e.define(\"select2/selection/allowClear\",[\"jquery\",\"../keys\",\"../utils\"],function(i,r,a){function e(){}return e.prototype.bind=function(e,t,n){var r=this;e.call(this,t,n),null==this.placeholder&&this.options.get(\"debug\")&&window.console&&console.error&&console.error(\"Select2: The `allowClear` option should be used in combination with the `placeholder` option.\"),this.$selection.on(\"mousedown\",\".select2-selection__clear\",function(e){r._handleClear(e)}),t.on(\"keypress\",function(e){r._handleKeyboardClear(e,t)})},e.prototype._handleClear=function(e,t){if(!this.isDisabled()){var n=this.$selection.find(\".select2-selection__clear\");if(0!==n.length){t.stopPropagation();var r=a.GetData(n[0],\"data\"),i=this.$element.val();this.$element.val(this.placeholder.id);var o={data:r};if(this.trigger(\"clear\",o),o.prevented)this.$element.val(i);else{for(var s=0;s<r.length;s++)if(o={data:r[s]},this.trigger(\"unselect\",o),o.prevented)return void this.$element.val(i);this.$element.trigger(\"input\").trigger(\"change\"),this.trigger(\"toggle\",{})}}}},e.prototype._handleKeyboardClear=function(e,t,n){n.isOpen()||t.which!=r.DELETE&&t.which!=r.BACKSPACE||this._handleClear(t)},e.prototype.update=function(e,t){if(e.call(this,t),!(0<this.$selection.find(\".select2-selection__placeholder\").length||0===t.length)){var n=this.options.get(\"translations\").get(\"removeAllItems\"),r=i('<span class=\"select2-selection__clear\" title=\"'+n()+'\">×</span>');a.StoreData(r[0],\"data\",t),this.$selection.find(\".select2-selection__rendered\").prepend(r)}},e}),e.define(\"select2/selection/search\",[\"jquery\",\"../utils\",\"../keys\"],function(r,a,l){function e(e,t,n){e.call(this,t,n)}return e.prototype.render=function(e){var t=r('<li class=\"select2-search select2-search--inline\"><input class=\"select2-search__field\" type=\"search\" tabindex=\"-1\" autocomplete=\"off\" autocorrect=\"off\" autocapitalize=\"none\" spellcheck=\"false\" role=\"searchbox\" aria-autocomplete=\"list\" /></li>');this.$searchContainer=t,this.$search=t.find(\"input\");var n=e.call(this);return this._transferTabIndex(),n},e.prototype.bind=function(e,t,n){var r=this,i=t.id+\"-results\";e.call(this,t,n),t.on(\"open\",function(){r.$search.attr(\"aria-controls\",i),r.$search.trigger(\"focus\")}),t.on(\"close\",function(){r.$search.val(\"\"),r.$search.removeAttr(\"aria-controls\"),r.$search.removeAttr(\"aria-activedescendant\"),r.$search.trigger(\"focus\")}),t.on(\"enable\",function(){r.$search.prop(\"disabled\",!1),r._transferTabIndex()}),t.on(\"disable\",function(){r.$search.prop(\"disabled\",!0)}),t.on(\"focus\",function(e){r.$search.trigger(\"focus\")}),t.on(\"results:focus\",function(e){e.data._resultId?r.$search.attr(\"aria-activedescendant\",e.data._resultId):r.$search.removeAttr(\"aria-activedescendant\")}),this.$selection.on(\"focusin\",\".select2-search--inline\",function(e){r.trigger(\"focus\",e)}),this.$selection.on(\"focusout\",\".select2-search--inline\",function(e){r._handleBlur(e)}),this.$selection.on(\"keydown\",\".select2-search--inline\",function(e){if(e.stopPropagation(),r.trigger(\"keypress\",e),r._keyUpPrevented=e.isDefaultPrevented(),e.which===l.BACKSPACE&&\"\"===r.$search.val()){var t=r.$searchContainer.prev(\".select2-selection__choice\");if(0<t.length){var n=a.GetData(t[0],\"data\");r.searchRemoveChoice(n),e.preventDefault()}}}),this.$selection.on(\"click\",\".select2-search--inline\",function(e){r.$search.val()&&e.stopPropagation()});var o=document.documentMode,s=o&&o<=11;this.$selection.on(\"input.searchcheck\",\".select2-search--inline\",function(e){s?r.$selection.off(\"input.search input.searchcheck\"):r.$selection.off(\"keyup.search\")}),this.$selection.on(\"keyup.search input.search\",\".select2-search--inline\",function(e){if(s&&\"input\"===e.type)r.$selection.off(\"input.search input.searchcheck\");else{var t=e.which;t!=l.SHIFT&&t!=l.CTRL&&t!=l.ALT&&t!=l.TAB&&r.handleSearch(e)}})},e.prototype._transferTabIndex=function(e){this.$search.attr(\"tabindex\",this.$selection.attr(\"tabindex\")),this.$selection.attr(\"tabindex\",\"-1\")},e.prototype.createPlaceholder=function(e,t){this.$search.attr(\"placeholder\",t.text)},e.prototype.update=function(e,t){var n=this.$search[0]==document.activeElement;this.$search.attr(\"placeholder\",\"\"),e.call(this,t),this.$selection.find(\".select2-selection__rendered\").append(this.$searchContainer),this.resizeSearch(),n&&this.$search.trigger(\"focus\")},e.prototype.handleSearch=function(){if(this.resizeSearch(),!this._keyUpPrevented){var e=this.$search.val();this.trigger(\"query\",{term:e})}this._keyUpPrevented=!1},e.prototype.searchRemoveChoice=function(e,t){this.trigger(\"unselect\",{data:t}),this.$search.val(t.text),this.handleSearch()},e.prototype.resizeSearch=function(){this.$search.css(\"width\",\"25px\");var e=\"\";\"\"!==this.$search.attr(\"placeholder\")?e=this.$selection.find(\".select2-selection__rendered\").width():e=.75*(this.$search.val().length+1)+\"em\";this.$search.css(\"width\",e)},e}),e.define(\"select2/selection/eventRelay\",[\"jquery\"],function(s){function e(){}return e.prototype.bind=function(e,t,n){var r=this,i=[\"open\",\"opening\",\"close\",\"closing\",\"select\",\"selecting\",\"unselect\",\"unselecting\",\"clear\",\"clearing\"],o=[\"opening\",\"closing\",\"selecting\",\"unselecting\",\"clearing\"];e.call(this,t,n),t.on(\"*\",function(e,t){if(-1!==s.inArray(e,i)){t=t||{};var n=s.Event(\"select2:\"+e,{params:t});r.$element.trigger(n),-1!==s.inArray(e,o)&&(t.prevented=n.isDefaultPrevented())}})},e}),e.define(\"select2/translation\",[\"jquery\",\"require\"],function(t,n){function r(e){this.dict=e||{}}return r.prototype.all=function(){return this.dict},r.prototype.get=function(e){return this.dict[e]},r.prototype.extend=function(e){this.dict=t.extend({},e.all(),this.dict)},r._cache={},r.loadPath=function(e){if(!(e in r._cache)){var t=n(e);r._cache[e]=t}return new r(r._cache[e])},r}),e.define(\"select2/diacritics\",[],function(){return{\"â’¶\":\"A\",\"A\":\"A\",\"À\":\"A\",\"Ã\":\"A\",\"Â\":\"A\",\"Ầ\":\"A\",\"Ấ\":\"A\",\"Ẫ\":\"A\",\"Ẩ\":\"A\",\"Ã\":\"A\",\"Ä€\":\"A\",\"Ä‚\":\"A\",\"Ằ\":\"A\",\"Ắ\":\"A\",\"Ẵ\":\"A\",\"Ẳ\":\"A\",\"Ȧ\":\"A\",\"Ç \":\"A\",\"Ä\":\"A\",\"Çž\":\"A\",\"Ả\":\"A\",\"Ã…\":\"A\",\"Ǻ\":\"A\",\"Ç\":\"A\",\"È€\":\"A\",\"È‚\":\"A\",\"Ạ\":\"A\",\"Ậ\":\"A\",\"Ặ\":\"A\",\"Ḁ\":\"A\",\"Ä„\":\"A\",\"Ⱥ\":\"A\",\"Ɐ\":\"A\",\"Ꜳ\":\"AA\",\"Æ\":\"AE\",\"Ǽ\":\"AE\",\"Ç¢\":\"AE\",\"Ꜵ\":\"AO\",\"Ꜷ\":\"AU\",\"Ꜹ\":\"AV\",\"Ꜻ\":\"AV\",\"Ꜽ\":\"AY\",\"â’·\":\"B\",\"ï¼¢\":\"B\",\"Ḃ\":\"B\",\"Ḅ\":\"B\",\"Ḇ\":\"B\",\"Ƀ\":\"B\",\"Æ‚\":\"B\",\"Æ\":\"B\",\"â’¸\":\"C\",\"ï¼£\":\"C\",\"Ć\":\"C\",\"Ĉ\":\"C\",\"ÄŠ\":\"C\",\"ÄŒ\":\"C\",\"Ç\":\"C\",\"Ḉ\":\"C\",\"Ƈ\":\"C\",\"È»\":\"C\",\"Ꜿ\":\"C\",\"â’¹\":\"D\",\"D\":\"D\",\"Ḋ\":\"D\",\"ÄŽ\":\"D\",\"Ḍ\":\"D\",\"á¸\":\"D\",\"Ḓ\":\"D\",\"Ḏ\":\"D\",\"Ä\":\"D\",\"Æ‹\":\"D\",\"ÆŠ\":\"D\",\"Ɖ\":\"D\",\"ê¹\":\"D\",\"DZ\":\"DZ\",\"Ç„\":\"DZ\",\"Dz\":\"Dz\",\"Ç…\":\"Dz\",\"â’º\":\"E\",\"ï¼¥\":\"E\",\"È\":\"E\",\"É\":\"E\",\"Ê\":\"E\",\"Ề\":\"E\",\"Ế\":\"E\",\"Ễ\":\"E\",\"Ể\":\"E\",\"Ẽ\":\"E\",\"Ä’\":\"E\",\"Ḕ\":\"E\",\"Ḗ\":\"E\",\"Ä”\":\"E\",\"Ä–\":\"E\",\"Ë\":\"E\",\"Ẻ\":\"E\",\"Äš\":\"E\",\"È„\":\"E\",\"Ȇ\":\"E\",\"Ẹ\":\"E\",\"Ệ\":\"E\",\"Ȩ\":\"E\",\"Ḝ\":\"E\",\"Ę\":\"E\",\"Ḙ\":\"E\",\"Ḛ\":\"E\",\"Æ\":\"E\",\"ÆŽ\":\"E\",\"â’»\":\"F\",\"F\":\"F\",\"Ḟ\":\"F\",\"Æ‘\":\"F\",\"ê»\":\"F\",\"â’¼\":\"G\",\"G\":\"G\",\"Ç´\":\"G\",\"Äœ\":\"G\",\"Ḡ\":\"G\",\"Äž\":\"G\",\"Ä \":\"G\",\"Ǧ\":\"G\",\"Ä¢\":\"G\",\"Ǥ\":\"G\",\"Æ“\":\"G\",\"êž \":\"G\",\"ê½\":\"G\",\"ê¾\":\"G\",\"â’½\":\"H\",\"H\":\"H\",\"Ĥ\":\"H\",\"Ḣ\":\"H\",\"Ḧ\":\"H\",\"Èž\":\"H\",\"Ḥ\":\"H\",\"Ḩ\":\"H\",\"Ḫ\":\"H\",\"Ħ\":\"H\",\"Ⱨ\":\"H\",\"â±µ\":\"H\",\"êž\":\"H\",\"â’¾\":\"I\",\"I\":\"I\",\"ÃŒ\":\"I\",\"Ã\":\"I\",\"ÃŽ\":\"I\",\"Ĩ\":\"I\",\"Ī\":\"I\",\"Ĭ\":\"I\",\"Ä°\":\"I\",\"Ã\":\"I\",\"Ḯ\":\"I\",\"Ỉ\":\"I\",\"Ç\":\"I\",\"Ȉ\":\"I\",\"ÈŠ\":\"I\",\"Ị\":\"I\",\"Ä®\":\"I\",\"Ḭ\":\"I\",\"Æ—\":\"I\",\"â’¿\":\"J\",\"J\":\"J\",\"Ä´\":\"J\",\"Ɉ\":\"J\",\"â“€\":\"K\",\"K\":\"K\",\"Ḱ\":\"K\",\"Ǩ\":\"K\",\"Ḳ\":\"K\",\"Ķ\":\"K\",\"Ḵ\":\"K\",\"Ƙ\":\"K\",\"Ⱪ\":\"K\",\"ê€\":\"K\",\"ê‚\":\"K\",\"ê„\":\"K\",\"Ꞣ\":\"K\",\"â“\":\"L\",\"L\":\"L\",\"Ä¿\":\"L\",\"Ĺ\":\"L\",\"Ľ\":\"L\",\"Ḷ\":\"L\",\"Ḹ\":\"L\",\"Ä»\":\"L\",\"Ḽ\":\"L\",\"Ḻ\":\"L\",\"Å\":\"L\",\"Ƚ\":\"L\",\"â±¢\":\"L\",\"â± \":\"L\",\"êˆ\":\"L\",\"ê†\":\"L\",\"Ꞁ\":\"L\",\"LJ\":\"LJ\",\"Lj\":\"Lj\",\"â“‚\":\"M\",\"ï¼\":\"M\",\"Ḿ\":\"M\",\"á¹€\":\"M\",\"Ṃ\":\"M\",\"â±®\":\"M\",\"Æœ\":\"M\",\"Ⓝ\":\"N\",\"ï¼®\":\"N\",\"Ǹ\":\"N\",\"Ń\":\"N\",\"Ñ\":\"N\",\"Ṅ\":\"N\",\"Ň\":\"N\",\"Ṇ\":\"N\",\"Å…\":\"N\",\"Ṋ\":\"N\",\"Ṉ\":\"N\",\"È \":\"N\",\"Æ\":\"N\",\"êž\":\"N\",\"Ꞥ\":\"N\",\"ÇŠ\":\"NJ\",\"Ç‹\":\"Nj\",\"â“„\":\"O\",\"O\":\"O\",\"Ã’\":\"O\",\"Ó\":\"O\",\"Ô\":\"O\",\"á»’\":\"O\",\"á»\":\"O\",\"á»–\":\"O\",\"á»”\":\"O\",\"Õ\":\"O\",\"Ṍ\":\"O\",\"Ȭ\":\"O\",\"Ṏ\":\"O\",\"ÅŒ\":\"O\",\"á¹\":\"O\",\"á¹’\":\"O\",\"ÅŽ\":\"O\",\"È®\":\"O\",\"È°\":\"O\",\"Ö\":\"O\",\"Ȫ\":\"O\",\"Ỏ\":\"O\",\"Å\":\"O\",\"Ç‘\":\"O\",\"ÈŒ\":\"O\",\"ÈŽ\":\"O\",\"Æ \":\"O\",\"Ờ\":\"O\",\"Ớ\":\"O\",\"á» \":\"O\",\"Ở\":\"O\",\"Ợ\":\"O\",\"Ọ\":\"O\",\"Ộ\":\"O\",\"Ǫ\":\"O\",\"Ǭ\":\"O\",\"Ø\":\"O\",\"Ǿ\":\"O\",\"Ɔ\":\"O\",\"ÆŸ\":\"O\",\"êŠ\":\"O\",\"êŒ\":\"O\",\"Å’\":\"OE\",\"Æ¢\":\"OI\",\"êŽ\":\"OO\",\"È¢\":\"OU\",\"â“…\":\"P\",\"ï¼°\":\"P\",\"á¹”\":\"P\",\"á¹–\":\"P\",\"Ƥ\":\"P\",\"â±£\":\"P\",\"ê\":\"P\",\"ê’\":\"P\",\"ê”\":\"P\",\"Ⓠ\":\"Q\",\"ï¼±\":\"Q\",\"ê–\":\"Q\",\"ê˜\":\"Q\",\"ÉŠ\":\"Q\",\"Ⓡ\":\"R\",\"ï¼²\":\"R\",\"Å”\":\"R\",\"Ṙ\":\"R\",\"Ř\":\"R\",\"È\":\"R\",\"È’\":\"R\",\"Ṛ\":\"R\",\"Ṝ\":\"R\",\"Å–\":\"R\",\"Ṟ\":\"R\",\"ÉŒ\":\"R\",\"Ɽ\":\"R\",\"êš\":\"R\",\"Ꞧ\":\"R\",\"êž‚\":\"R\",\"Ⓢ\":\"S\",\"ï¼³\":\"S\",\"ẞ\":\"S\",\"Åš\":\"S\",\"Ṥ\":\"S\",\"Åœ\":\"S\",\"á¹ \":\"S\",\"Å \":\"S\",\"Ṧ\":\"S\",\"á¹¢\":\"S\",\"Ṩ\":\"S\",\"Ș\":\"S\",\"Åž\":\"S\",\"â±¾\":\"S\",\"Ꞩ\":\"S\",\"êž„\":\"S\",\"Ⓣ\":\"T\",\"ï¼´\":\"T\",\"Ṫ\":\"T\",\"Ť\":\"T\",\"Ṭ\":\"T\",\"Èš\":\"T\",\"Å¢\":\"T\",\"á¹°\":\"T\",\"á¹®\":\"T\",\"Ŧ\":\"T\",\"Ƭ\":\"T\",\"Æ®\":\"T\",\"Ⱦ\":\"T\",\"Ꞇ\":\"T\",\"Ꜩ\":\"TZ\",\"â“Š\":\"U\",\"ï¼µ\":\"U\",\"Ù\":\"U\",\"Ú\":\"U\",\"Û\":\"U\",\"Ũ\":\"U\",\"Ṹ\":\"U\",\"Ū\":\"U\",\"Ṻ\":\"U\",\"Ŭ\":\"U\",\"Ãœ\":\"U\",\"Ç›\":\"U\",\"Ç—\":\"U\",\"Ç•\":\"U\",\"Ç™\":\"U\",\"Ủ\":\"U\",\"Å®\":\"U\",\"Å°\":\"U\",\"Ç“\":\"U\",\"È”\":\"U\",\"È–\":\"U\",\"Ư\":\"U\",\"Ừ\":\"U\",\"Ứ\":\"U\",\"á»®\":\"U\",\"Ử\":\"U\",\"á»°\":\"U\",\"Ụ\":\"U\",\"á¹²\":\"U\",\"Ų\":\"U\",\"Ṷ\":\"U\",\"á¹´\":\"U\",\"É„\":\"U\",\"â“‹\":\"V\",\"V\":\"V\",\"á¹¼\":\"V\",\"á¹¾\":\"V\",\"Ʋ\":\"V\",\"êž\":\"V\",\"É…\":\"V\",\"ê \":\"VY\",\"â“Œ\":\"W\",\"ï¼·\":\"W\",\"Ẁ\":\"W\",\"Ẃ\":\"W\",\"Å´\":\"W\",\"Ẇ\":\"W\",\"Ẅ\":\"W\",\"Ẉ\":\"W\",\"â±²\":\"W\",\"â“\":\"X\",\"X\":\"X\",\"Ẋ\":\"X\",\"Ẍ\":\"X\",\"â“Ž\":\"Y\",\"ï¼¹\":\"Y\",\"Ỳ\":\"Y\",\"Ã\":\"Y\",\"Ŷ\":\"Y\",\"Ỹ\":\"Y\",\"Ȳ\":\"Y\",\"Ẏ\":\"Y\",\"Ÿ\":\"Y\",\"Ỷ\":\"Y\",\"á»´\":\"Y\",\"Ƴ\":\"Y\",\"ÉŽ\":\"Y\",\"Ỿ\":\"Y\",\"â“\":\"Z\",\"Z\":\"Z\",\"Ź\":\"Z\",\"áº\":\"Z\",\"Å»\":\"Z\",\"Ž\":\"Z\",\"Ẓ\":\"Z\",\"Ẕ\":\"Z\",\"Ƶ\":\"Z\",\"Ȥ\":\"Z\",\"Ɀ\":\"Z\",\"Ⱬ\":\"Z\",\"ê¢\":\"Z\",\"â“\":\"a\",\"ï½\":\"a\",\"ẚ\":\"a\",\"à \":\"a\",\"á\":\"a\",\"â\":\"a\",\"ầ\":\"a\",\"ấ\":\"a\",\"ẫ\":\"a\",\"ẩ\":\"a\",\"ã\":\"a\",\"Ä\":\"a\",\"ă\":\"a\",\"ằ\":\"a\",\"ắ\":\"a\",\"ẵ\":\"a\",\"ẳ\":\"a\",\"ȧ\":\"a\",\"Ç¡\":\"a\",\"ä\":\"a\",\"ÇŸ\":\"a\",\"ả\":\"a\",\"Ã¥\":\"a\",\"Ç»\":\"a\",\"ÇŽ\":\"a\",\"È\":\"a\",\"ȃ\":\"a\",\"ạ\":\"a\",\"áº\":\"a\",\"ặ\":\"a\",\"á¸\":\"a\",\"Ä…\":\"a\",\"â±¥\":\"a\",\"É\":\"a\",\"ꜳ\":\"aa\",\"æ\":\"ae\",\"ǽ\":\"ae\",\"Ç£\":\"ae\",\"ꜵ\":\"ao\",\"ꜷ\":\"au\",\"ꜹ\":\"av\",\"ꜻ\":\"av\",\"ꜽ\":\"ay\",\"â“‘\":\"b\",\"b\":\"b\",\"ḃ\":\"b\",\"ḅ\":\"b\",\"ḇ\":\"b\",\"Æ€\":\"b\",\"ƃ\":\"b\",\"É“\":\"b\",\"â“’\":\"c\",\"c\":\"c\",\"ć\":\"c\",\"ĉ\":\"c\",\"Ä‹\":\"c\",\"Ä\":\"c\",\"ç\":\"c\",\"ḉ\":\"c\",\"ƈ\":\"c\",\"ȼ\":\"c\",\"ꜿ\":\"c\",\"ↄ\":\"c\",\"â““\":\"d\",\"d\":\"d\",\"ḋ\":\"d\",\"Ä\":\"d\",\"á¸\":\"d\",\"ḑ\":\"d\",\"ḓ\":\"d\",\"á¸\":\"d\",\"Ä‘\":\"d\",\"ÆŒ\":\"d\",\"É–\":\"d\",\"É—\":\"d\",\"êº\":\"d\",\"dz\":\"dz\",\"dž\":\"dz\",\"â“”\":\"e\",\"ï½…\":\"e\",\"è\":\"e\",\"é\":\"e\",\"ê\":\"e\",\"á»\":\"e\",\"ế\":\"e\",\"á»…\":\"e\",\"ể\":\"e\",\"ẽ\":\"e\",\"Ä“\":\"e\",\"ḕ\":\"e\",\"ḗ\":\"e\",\"Ä•\":\"e\",\"Ä—\":\"e\",\"ë\":\"e\",\"ẻ\":\"e\",\"Ä›\":\"e\",\"È…\":\"e\",\"ȇ\":\"e\",\"ẹ\":\"e\",\"ệ\":\"e\",\"È©\":\"e\",\"á¸\":\"e\",\"Ä™\":\"e\",\"ḙ\":\"e\",\"ḛ\":\"e\",\"ɇ\":\"e\",\"É›\":\"e\",\"Ç\":\"e\",\"â“•\":\"f\",\"f\":\"f\",\"ḟ\":\"f\",\"Æ’\":\"f\",\"ê¼\":\"f\",\"â“–\":\"g\",\"g\":\"g\",\"ǵ\":\"g\",\"Ä\":\"g\",\"ḡ\":\"g\",\"ÄŸ\":\"g\",\"Ä¡\":\"g\",\"ǧ\":\"g\",\"Ä£\":\"g\",\"Ç¥\":\"g\",\"É \":\"g\",\"êž¡\":\"g\",\"áµ¹\":\"g\",\"ê¿\":\"g\",\"â“—\":\"h\",\"h\":\"h\",\"Ä¥\":\"h\",\"ḣ\":\"h\",\"ḧ\":\"h\",\"ÈŸ\":\"h\",\"ḥ\":\"h\",\"ḩ\":\"h\",\"ḫ\":\"h\",\"ẖ\":\"h\",\"ħ\":\"h\",\"ⱨ\":\"h\",\"ⱶ\":\"h\",\"É¥\":\"h\",\"Æ•\":\"hv\",\"ⓘ\":\"i\",\"i\":\"i\",\"ì\":\"i\",\"Ã\":\"i\",\"î\":\"i\",\"Ä©\":\"i\",\"Ä«\":\"i\",\"Ä\":\"i\",\"ï\":\"i\",\"ḯ\":\"i\",\"ỉ\":\"i\",\"Ç\":\"i\",\"ȉ\":\"i\",\"È‹\":\"i\",\"ị\":\"i\",\"į\":\"i\",\"á¸\":\"i\",\"ɨ\":\"i\",\"ı\":\"i\",\"â“™\":\"j\",\"j\":\"j\",\"ĵ\":\"j\",\"Ç°\":\"j\",\"ɉ\":\"j\",\"â“š\":\"k\",\"k\":\"k\",\"ḱ\":\"k\",\"Ç©\":\"k\",\"ḳ\":\"k\",\"Ä·\":\"k\",\"ḵ\":\"k\",\"Æ™\":\"k\",\"ⱪ\":\"k\",\"ê\":\"k\",\"êƒ\":\"k\",\"ê…\":\"k\",\"ꞣ\":\"k\",\"â“›\":\"l\",\"l\":\"l\",\"Å€\":\"l\",\"ĺ\":\"l\",\"ľ\":\"l\",\"ḷ\":\"l\",\"ḹ\":\"l\",\"ļ\":\"l\",\"ḽ\":\"l\",\"ḻ\":\"l\",\"Å¿\":\"l\",\"Å‚\":\"l\",\"Æš\":\"l\",\"É«\":\"l\",\"ⱡ\":\"l\",\"ê‰\":\"l\",\"êž\":\"l\",\"ê‡\":\"l\",\"lj\":\"lj\",\"â“œ\":\"m\",\"ï½\":\"m\",\"ḿ\":\"m\",\"á¹\":\"m\",\"ṃ\":\"m\",\"ɱ\":\"m\",\"ɯ\":\"m\",\"â“\":\"n\",\"n\":\"n\",\"ǹ\":\"n\",\"Å„\":\"n\",\"ñ\":\"n\",\"á¹…\":\"n\",\"ň\":\"n\",\"ṇ\":\"n\",\"ņ\":\"n\",\"ṋ\":\"n\",\"ṉ\":\"n\",\"Æž\":\"n\",\"ɲ\":\"n\",\"ʼn\":\"n\",\"êž‘\":\"n\",\"ꞥ\":\"n\",\"ÇŒ\":\"nj\",\"â“ž\":\"o\",\"ï½\":\"o\",\"ò\":\"o\",\"ó\":\"o\",\"ô\":\"o\",\"ồ\":\"o\",\"ố\":\"o\",\"á»—\":\"o\",\"ổ\":\"o\",\"õ\":\"o\",\"á¹\":\"o\",\"È\":\"o\",\"á¹\":\"o\",\"Å\":\"o\",\"ṑ\":\"o\",\"ṓ\":\"o\",\"Å\":\"o\",\"ȯ\":\"o\",\"ȱ\":\"o\",\"ö\":\"o\",\"È«\":\"o\",\"á»\":\"o\",\"Å‘\":\"o\",\"Ç’\":\"o\",\"È\":\"o\",\"È\":\"o\",\"Æ¡\":\"o\",\"á»\":\"o\",\"á»›\":\"o\",\"ỡ\":\"o\",\"ở\":\"o\",\"ợ\":\"o\",\"á»\":\"o\",\"á»™\":\"o\",\"Ç«\":\"o\",\"Ç\":\"o\",\"ø\":\"o\",\"Ç¿\":\"o\",\"É”\":\"o\",\"ê‹\":\"o\",\"ê\":\"o\",\"ɵ\":\"o\",\"Å“\":\"oe\",\"Æ£\":\"oi\",\"È£\":\"ou\",\"ê\":\"oo\",\"â“Ÿ\":\"p\",\"ï½\":\"p\",\"ṕ\":\"p\",\"á¹—\":\"p\",\"Æ¥\":\"p\",\"áµ½\":\"p\",\"ê‘\":\"p\",\"ê“\":\"p\",\"ê•\":\"p\",\"â“ \":\"q\",\"q\":\"q\",\"É‹\":\"q\",\"ê—\":\"q\",\"ê™\":\"q\",\"â“¡\":\"r\",\"ï½’\":\"r\",\"Å•\":\"r\",\"á¹™\":\"r\",\"Å™\":\"r\",\"È‘\":\"r\",\"È“\":\"r\",\"á¹›\":\"r\",\"á¹\":\"r\",\"Å—\":\"r\",\"ṟ\":\"r\",\"É\":\"r\",\"ɽ\":\"r\",\"ê›\":\"r\",\"ꞧ\":\"r\",\"ꞃ\":\"r\",\"â“¢\":\"s\",\"s\":\"s\",\"ß\":\"s\",\"Å›\":\"s\",\"á¹¥\":\"s\",\"Å\":\"s\",\"ṡ\":\"s\",\"Å¡\":\"s\",\"ṧ\":\"s\",\"á¹£\":\"s\",\"ṩ\":\"s\",\"È™\":\"s\",\"ÅŸ\":\"s\",\"È¿\":\"s\",\"êž©\":\"s\",\"êž…\":\"s\",\"ẛ\":\"s\",\"â“£\":\"t\",\"ï½”\":\"t\",\"ṫ\":\"t\",\"ẗ\":\"t\",\"Å¥\":\"t\",\"á¹\":\"t\",\"È›\":\"t\",\"Å£\":\"t\",\"á¹±\":\"t\",\"ṯ\":\"t\",\"ŧ\":\"t\",\"Æ\":\"t\",\"ʈ\":\"t\",\"ⱦ\":\"t\",\"ꞇ\":\"t\",\"ꜩ\":\"tz\",\"ⓤ\":\"u\",\"u\":\"u\",\"ù\":\"u\",\"ú\":\"u\",\"û\":\"u\",\"Å©\":\"u\",\"á¹¹\":\"u\",\"Å«\":\"u\",\"á¹»\":\"u\",\"Å\":\"u\",\"ü\":\"u\",\"Çœ\":\"u\",\"ǘ\":\"u\",\"Ç–\":\"u\",\"Çš\":\"u\",\"ủ\":\"u\",\"ů\":\"u\",\"ű\":\"u\",\"Ç”\":\"u\",\"È•\":\"u\",\"È—\":\"u\",\"Æ°\":\"u\",\"ừ\":\"u\",\"ứ\":\"u\",\"ữ\":\"u\",\"á»\":\"u\",\"á»±\":\"u\",\"ụ\":\"u\",\"á¹³\":\"u\",\"ų\":\"u\",\"á¹·\":\"u\",\"á¹µ\":\"u\",\"ʉ\":\"u\",\"â“¥\":\"v\",\"ï½–\":\"v\",\"á¹½\":\"v\",\"ṿ\":\"v\",\"Ê‹\":\"v\",\"êŸ\":\"v\",\"ÊŒ\":\"v\",\"ê¡\":\"vy\",\"ⓦ\":\"w\",\"ï½—\":\"w\",\"áº\":\"w\",\"ẃ\":\"w\",\"ŵ\":\"w\",\"ẇ\":\"w\",\"ẅ\":\"w\",\"ẘ\":\"w\",\"ẉ\":\"w\",\"â±³\":\"w\",\"ⓧ\":\"x\",\"x\":\"x\",\"ẋ\":\"x\",\"áº\":\"x\",\"ⓨ\":\"y\",\"ï½™\":\"y\",\"ỳ\":\"y\",\"ý\":\"y\",\"Å·\":\"y\",\"ỹ\":\"y\",\"ȳ\":\"y\",\"áº\":\"y\",\"ÿ\":\"y\",\"á»·\":\"y\",\"ẙ\":\"y\",\"ỵ\":\"y\",\"Æ´\":\"y\",\"É\":\"y\",\"ỿ\":\"y\",\"â“©\":\"z\",\"z\":\"z\",\"ź\":\"z\",\"ẑ\":\"z\",\"ż\":\"z\",\"ž\":\"z\",\"ẓ\":\"z\",\"ẕ\":\"z\",\"ƶ\":\"z\",\"È¥\":\"z\",\"É€\":\"z\",\"ⱬ\":\"z\",\"ê£\":\"z\",\"Ά\":\"Α\",\"Έ\":\"Ε\",\"Ή\":\"Η\",\"Ί\":\"Ι\",\"Ϊ\":\"Ι\",\"ÎŒ\":\"Ο\",\"ÎŽ\":\"Î¥\",\"Ϋ\":\"Î¥\",\"Î\":\"Ω\",\"ά\":\"α\",\"Î\":\"ε\",\"ή\":\"η\",\"ί\":\"ι\",\"ÏŠ\":\"ι\",\"Î\":\"ι\",\"ÏŒ\":\"ο\",\"Ï\":\"Ï…\",\"Ï‹\":\"Ï…\",\"ΰ\":\"Ï…\",\"ÏŽ\":\"ω\",\"Ï‚\":\"σ\",\"’\":\"'\"}}),e.define(\"select2/data/base\",[\"../utils\"],function(r){function n(e,t){n.__super__.constructor.call(this)}return r.Extend(n,r.Observable),n.prototype.current=function(e){throw new Error(\"The `current` method must be defined in child classes.\")},n.prototype.query=function(e,t){throw new Error(\"The `query` method must be defined in child classes.\")},n.prototype.bind=function(e,t){},n.prototype.destroy=function(){},n.prototype.generateResultId=function(e,t){var n=e.id+\"-result-\";return n+=r.generateChars(4),null!=t.id?n+=\"-\"+t.id.toString():n+=\"-\"+r.generateChars(4),n},n}),e.define(\"select2/data/select\",[\"./base\",\"../utils\",\"jquery\"],function(e,a,l){function n(e,t){this.$element=e,this.options=t,n.__super__.constructor.call(this)}return a.Extend(n,e),n.prototype.current=function(e){var n=[],r=this;this.$element.find(\":selected\").each(function(){var e=l(this),t=r.item(e);n.push(t)}),e(n)},n.prototype.select=function(i){var o=this;if(i.selected=!0,l(i.element).is(\"option\"))return i.element.selected=!0,void this.$element.trigger(\"input\").trigger(\"change\");if(this.$element.prop(\"multiple\"))this.current(function(e){var t=[];(i=[i]).push.apply(i,e);for(var n=0;n<i.length;n++){var r=i[n].id;-1===l.inArray(r,t)&&t.push(r)}o.$element.val(t),o.$element.trigger(\"input\").trigger(\"change\")});else{var e=i.id;this.$element.val(e),this.$element.trigger(\"input\").trigger(\"change\")}},n.prototype.unselect=function(i){var o=this;if(this.$element.prop(\"multiple\")){if(i.selected=!1,l(i.element).is(\"option\"))return i.element.selected=!1,void this.$element.trigger(\"input\").trigger(\"change\");this.current(function(e){for(var t=[],n=0;n<e.length;n++){var r=e[n].id;r!==i.id&&-1===l.inArray(r,t)&&t.push(r)}o.$element.val(t),o.$element.trigger(\"input\").trigger(\"change\")})}},n.prototype.bind=function(e,t){var n=this;(this.container=e).on(\"select\",function(e){n.select(e.data)}),e.on(\"unselect\",function(e){n.unselect(e.data)})},n.prototype.destroy=function(){this.$element.find(\"*\").each(function(){a.RemoveData(this)})},n.prototype.query=function(r,e){var i=[],o=this;this.$element.children().each(function(){var e=l(this);if(e.is(\"option\")||e.is(\"optgroup\")){var t=o.item(e),n=o.matches(r,t);null!==n&&i.push(n)}}),e({results:i})},n.prototype.addOptions=function(e){a.appendMany(this.$element,e)},n.prototype.option=function(e){var t;e.children?(t=document.createElement(\"optgroup\")).label=e.text:void 0!==(t=document.createElement(\"option\")).textContent?t.textContent=e.text:t.innerText=e.text,void 0!==e.id&&(t.value=e.id),e.disabled&&(t.disabled=!0),e.selected&&(t.selected=!0),e.title&&(t.title=e.title);var n=l(t),r=this._normalizeItem(e);return r.element=t,a.StoreData(t,\"data\",r),n},n.prototype.item=function(e){var t={};if(null!=(t=a.GetData(e[0],\"data\")))return t;if(e.is(\"option\"))t={id:e.val(),text:e.text(),disabled:e.prop(\"disabled\"),selected:e.prop(\"selected\"),title:e.prop(\"title\")};else if(e.is(\"optgroup\")){t={text:e.prop(\"label\"),children:[],title:e.prop(\"title\")};for(var n=e.children(\"option\"),r=[],i=0;i<n.length;i++){var o=l(n[i]),s=this.item(o);r.push(s)}t.children=r}return(t=this._normalizeItem(t)).element=e[0],a.StoreData(e[0],\"data\",t),t},n.prototype._normalizeItem=function(e){e!==Object(e)&&(e={id:e,text:e});return null!=(e=l.extend({},{text:\"\"},e)).id&&(e.id=e.id.toString()),null!=e.text&&(e.text=e.text.toString()),null==e._resultId&&e.id&&null!=this.container&&(e._resultId=this.generateResultId(this.container,e)),l.extend({},{selected:!1,disabled:!1},e)},n.prototype.matches=function(e,t){return this.options.get(\"matcher\")(e,t)},n}),e.define(\"select2/data/array\",[\"./select\",\"../utils\",\"jquery\"],function(e,f,g){function r(e,t){this._dataToConvert=t.get(\"data\")||[],r.__super__.constructor.call(this,e,t)}return f.Extend(r,e),r.prototype.bind=function(e,t){r.__super__.bind.call(this,e,t),this.addOptions(this.convertToOptions(this._dataToConvert))},r.prototype.select=function(n){var e=this.$element.find(\"option\").filter(function(e,t){return t.value==n.id.toString()});0===e.length&&(e=this.option(n),this.addOptions(e)),r.__super__.select.call(this,n)},r.prototype.convertToOptions=function(e){var t=this,n=this.$element.find(\"option\"),r=n.map(function(){return t.item(g(this)).id}).get(),i=[];function o(e){return function(){return g(this).val()==e.id}}for(var s=0;s<e.length;s++){var a=this._normalizeItem(e[s]);if(0<=g.inArray(a.id,r)){var l=n.filter(o(a)),c=this.item(l),u=g.extend(!0,{},a,c),d=this.option(u);l.replaceWith(d)}else{var p=this.option(a);if(a.children){var h=this.convertToOptions(a.children);f.appendMany(p,h)}i.push(p)}}return i},r}),e.define(\"select2/data/ajax\",[\"./array\",\"../utils\",\"jquery\"],function(e,t,o){function n(e,t){this.ajaxOptions=this._applyDefaults(t.get(\"ajax\")),null!=this.ajaxOptions.processResults&&(this.processResults=this.ajaxOptions.processResults),n.__super__.constructor.call(this,e,t)}return t.Extend(n,e),n.prototype._applyDefaults=function(e){var t={data:function(e){return o.extend({},e,{q:e.term})},transport:function(e,t,n){var r=o.ajax(e);return r.then(t),r.fail(n),r}};return o.extend({},t,e,!0)},n.prototype.processResults=function(e){return e},n.prototype.query=function(n,r){var i=this;null!=this._request&&(o.isFunction(this._request.abort)&&this._request.abort(),this._request=null);var t=o.extend({type:\"GET\"},this.ajaxOptions);function e(){var e=t.transport(t,function(e){var t=i.processResults(e,n);i.options.get(\"debug\")&&window.console&&console.error&&(t&&t.results&&o.isArray(t.results)||console.error(\"Select2: The AJAX results did not return an array in the `results` key of the response.\")),r(t)},function(){\"status\"in e&&(0===e.status||\"0\"===e.status)||i.trigger(\"results:message\",{message:\"errorLoading\"})});i._request=e}\"function\"==typeof t.url&&(t.url=t.url.call(this.$element,n)),\"function\"==typeof t.data&&(t.data=t.data.call(this.$element,n)),this.ajaxOptions.delay&&null!=n.term?(this._queryTimeout&&window.clearTimeout(this._queryTimeout),this._queryTimeout=window.setTimeout(e,this.ajaxOptions.delay)):e()},n}),e.define(\"select2/data/tags\",[\"jquery\"],function(u){function e(e,t,n){var r=n.get(\"tags\"),i=n.get(\"createTag\");void 0!==i&&(this.createTag=i);var o=n.get(\"insertTag\");if(void 0!==o&&(this.insertTag=o),e.call(this,t,n),u.isArray(r))for(var s=0;s<r.length;s++){var a=r[s],l=this._normalizeItem(a),c=this.option(l);this.$element.append(c)}}return e.prototype.query=function(e,c,u){var d=this;this._removeOldTags(),null!=c.term&&null==c.page?e.call(this,c,function e(t,n){for(var r=t.results,i=0;i<r.length;i++){var o=r[i],s=null!=o.children&&!e({results:o.children},!0);if((o.text||\"\").toUpperCase()===(c.term||\"\").toUpperCase()||s)return!n&&(t.data=r,void u(t))}if(n)return!0;var a=d.createTag(c);if(null!=a){var l=d.option(a);l.attr(\"data-select2-tag\",!0),d.addOptions([l]),d.insertTag(r,a)}t.results=r,u(t)}):e.call(this,c,u)},e.prototype.createTag=function(e,t){var n=u.trim(t.term);return\"\"===n?null:{id:n,text:n}},e.prototype.insertTag=function(e,t,n){t.unshift(n)},e.prototype._removeOldTags=function(e){this.$element.find(\"option[data-select2-tag]\").each(function(){this.selected||u(this).remove()})},e}),e.define(\"select2/data/tokenizer\",[\"jquery\"],function(d){function e(e,t,n){var r=n.get(\"tokenizer\");void 0!==r&&(this.tokenizer=r),e.call(this,t,n)}return e.prototype.bind=function(e,t,n){e.call(this,t,n),this.$search=t.dropdown.$search||t.selection.$search||n.find(\".select2-search__field\")},e.prototype.query=function(e,t,n){var r=this;t.term=t.term||\"\";var i=this.tokenizer(t,this.options,function(e){var t=r._normalizeItem(e);if(!r.$element.find(\"option\").filter(function(){return d(this).val()===t.id}).length){var n=r.option(t);n.attr(\"data-select2-tag\",!0),r._removeOldTags(),r.addOptions([n])}!function(e){r.trigger(\"select\",{data:e})}(t)});i.term!==t.term&&(this.$search.length&&(this.$search.val(i.term),this.$search.trigger(\"focus\")),t.term=i.term),e.call(this,t,n)},e.prototype.tokenizer=function(e,t,n,r){for(var i=n.get(\"tokenSeparators\")||[],o=t.term,s=0,a=this.createTag||function(e){return{id:e.term,text:e.term}};s<o.length;){var l=o[s];if(-1!==d.inArray(l,i)){var c=o.substr(0,s),u=a(d.extend({},t,{term:c}));null!=u?(r(u),o=o.substr(s+1)||\"\",s=0):s++}else s++}return{term:o}},e}),e.define(\"select2/data/minimumInputLength\",[],function(){function e(e,t,n){this.minimumInputLength=n.get(\"minimumInputLength\"),e.call(this,t,n)}return e.prototype.query=function(e,t,n){t.term=t.term||\"\",t.term.length<this.minimumInputLength?this.trigger(\"results:message\",{message:\"inputTooShort\",args:{minimum:this.minimumInputLength,input:t.term,params:t}}):e.call(this,t,n)},e}),e.define(\"select2/data/maximumInputLength\",[],function(){function e(e,t,n){this.maximumInputLength=n.get(\"maximumInputLength\"),e.call(this,t,n)}return e.prototype.query=function(e,t,n){t.term=t.term||\"\",0<this.maximumInputLength&&t.term.length>this.maximumInputLength?this.trigger(\"results:message\",{message:\"inputTooLong\",args:{maximum:this.maximumInputLength,input:t.term,params:t}}):e.call(this,t,n)},e}),e.define(\"select2/data/maximumSelectionLength\",[],function(){function e(e,t,n){this.maximumSelectionLength=n.get(\"maximumSelectionLength\"),e.call(this,t,n)}return e.prototype.bind=function(e,t,n){var r=this;e.call(this,t,n),t.on(\"select\",function(){r._checkIfMaximumSelected()})},e.prototype.query=function(e,t,n){var r=this;this._checkIfMaximumSelected(function(){e.call(r,t,n)})},e.prototype._checkIfMaximumSelected=function(e,n){var r=this;this.current(function(e){var t=null!=e?e.length:0;0<r.maximumSelectionLength&&t>=r.maximumSelectionLength?r.trigger(\"results:message\",{message:\"maximumSelected\",args:{maximum:r.maximumSelectionLength}}):n&&n()})},e}),e.define(\"select2/dropdown\",[\"jquery\",\"./utils\"],function(t,e){function n(e,t){this.$element=e,this.options=t,n.__super__.constructor.call(this)}return e.Extend(n,e.Observable),n.prototype.render=function(){var e=t('<span class=\"select2-dropdown\"><span class=\"select2-results\"></span></span>');return e.attr(\"dir\",this.options.get(\"dir\")),this.$dropdown=e},n.prototype.bind=function(){},n.prototype.position=function(e,t){},n.prototype.destroy=function(){this.$dropdown.remove()},n}),e.define(\"select2/dropdown/search\",[\"jquery\",\"../utils\"],function(o,e){function t(){}return t.prototype.render=function(e){var t=e.call(this),n=o('<span class=\"select2-search select2-search--dropdown\"><input class=\"select2-search__field\" type=\"search\" tabindex=\"-1\" autocomplete=\"off\" autocorrect=\"off\" autocapitalize=\"none\" spellcheck=\"false\" role=\"searchbox\" aria-autocomplete=\"list\" /></span>');return this.$searchContainer=n,this.$search=n.find(\"input\"),t.prepend(n),t},t.prototype.bind=function(e,t,n){var r=this,i=t.id+\"-results\";e.call(this,t,n),this.$search.on(\"keydown\",function(e){r.trigger(\"keypress\",e),r._keyUpPrevented=e.isDefaultPrevented()}),this.$search.on(\"input\",function(e){o(this).off(\"keyup\")}),this.$search.on(\"keyup input\",function(e){r.handleSearch(e)}),t.on(\"open\",function(){r.$search.attr(\"tabindex\",0),r.$search.attr(\"aria-controls\",i),r.$search.trigger(\"focus\"),window.setTimeout(function(){r.$search.trigger(\"focus\")},0)}),t.on(\"close\",function(){r.$search.attr(\"tabindex\",-1),r.$search.removeAttr(\"aria-controls\"),r.$search.removeAttr(\"aria-activedescendant\"),r.$search.val(\"\"),r.$search.trigger(\"blur\")}),t.on(\"focus\",function(){t.isOpen()||r.$search.trigger(\"focus\")}),t.on(\"results:all\",function(e){null!=e.query.term&&\"\"!==e.query.term||(r.showSearch(e)?r.$searchContainer.removeClass(\"select2-search--hide\"):r.$searchContainer.addClass(\"select2-search--hide\"))}),t.on(\"results:focus\",function(e){e.data._resultId?r.$search.attr(\"aria-activedescendant\",e.data._resultId):r.$search.removeAttr(\"aria-activedescendant\")})},t.prototype.handleSearch=function(e){if(!this._keyUpPrevented){var t=this.$search.val();this.trigger(\"query\",{term:t})}this._keyUpPrevented=!1},t.prototype.showSearch=function(e,t){return!0},t}),e.define(\"select2/dropdown/hidePlaceholder\",[],function(){function e(e,t,n,r){this.placeholder=this.normalizePlaceholder(n.get(\"placeholder\")),e.call(this,t,n,r)}return e.prototype.append=function(e,t){t.results=this.removePlaceholder(t.results),e.call(this,t)},e.prototype.normalizePlaceholder=function(e,t){return\"string\"==typeof t&&(t={id:\"\",text:t}),t},e.prototype.removePlaceholder=function(e,t){for(var n=t.slice(0),r=t.length-1;0<=r;r--){var i=t[r];this.placeholder.id===i.id&&n.splice(r,1)}return n},e}),e.define(\"select2/dropdown/infiniteScroll\",[\"jquery\"],function(n){function e(e,t,n,r){this.lastParams={},e.call(this,t,n,r),this.$loadingMore=this.createLoadingMore(),this.loading=!1}return e.prototype.append=function(e,t){this.$loadingMore.remove(),this.loading=!1,e.call(this,t),this.showLoadingMore(t)&&(this.$results.append(this.$loadingMore),this.loadMoreIfNeeded())},e.prototype.bind=function(e,t,n){var r=this;e.call(this,t,n),t.on(\"query\",function(e){r.lastParams=e,r.loading=!0}),t.on(\"query:append\",function(e){r.lastParams=e,r.loading=!0}),this.$results.on(\"scroll\",this.loadMoreIfNeeded.bind(this))},e.prototype.loadMoreIfNeeded=function(){var e=n.contains(document.documentElement,this.$loadingMore[0]);if(!this.loading&&e){var t=this.$results.offset().top+this.$results.outerHeight(!1);this.$loadingMore.offset().top+this.$loadingMore.outerHeight(!1)<=t+50&&this.loadMore()}},e.prototype.loadMore=function(){this.loading=!0;var e=n.extend({},{page:1},this.lastParams);e.page++,this.trigger(\"query:append\",e)},e.prototype.showLoadingMore=function(e,t){return t.pagination&&t.pagination.more},e.prototype.createLoadingMore=function(){var e=n('<li class=\"select2-results__option select2-results__option--load-more\"role=\"option\" aria-disabled=\"true\"></li>'),t=this.options.get(\"translations\").get(\"loadingMore\");return e.html(t(this.lastParams)),e},e}),e.define(\"select2/dropdown/attachBody\",[\"jquery\",\"../utils\"],function(f,a){function e(e,t,n){this.$dropdownParent=f(n.get(\"dropdownParent\")||document.body),e.call(this,t,n)}return e.prototype.bind=function(e,t,n){var r=this;e.call(this,t,n),t.on(\"open\",function(){r._showDropdown(),r._attachPositioningHandler(t),r._bindContainerResultHandlers(t)}),t.on(\"close\",function(){r._hideDropdown(),r._detachPositioningHandler(t)}),this.$dropdownContainer.on(\"mousedown\",function(e){e.stopPropagation()})},e.prototype.destroy=function(e){e.call(this),this.$dropdownContainer.remove()},e.prototype.position=function(e,t,n){t.attr(\"class\",n.attr(\"class\")),t.removeClass(\"select2\"),t.addClass(\"select2-container--open\"),t.css({position:\"absolute\",top:-999999}),this.$container=n},e.prototype.render=function(e){var t=f(\"<span></span>\"),n=e.call(this);return t.append(n),this.$dropdownContainer=t},e.prototype._hideDropdown=function(e){this.$dropdownContainer.detach()},e.prototype._bindContainerResultHandlers=function(e,t){if(!this._containerResultsHandlersBound){var n=this;t.on(\"results:all\",function(){n._positionDropdown(),n._resizeDropdown()}),t.on(\"results:append\",function(){n._positionDropdown(),n._resizeDropdown()}),t.on(\"results:message\",function(){n._positionDropdown(),n._resizeDropdown()}),t.on(\"select\",function(){n._positionDropdown(),n._resizeDropdown()}),t.on(\"unselect\",function(){n._positionDropdown(),n._resizeDropdown()}),this._containerResultsHandlersBound=!0}},e.prototype._attachPositioningHandler=function(e,t){var n=this,r=\"scroll.select2.\"+t.id,i=\"resize.select2.\"+t.id,o=\"orientationchange.select2.\"+t.id,s=this.$container.parents().filter(a.hasScroll);s.each(function(){a.StoreData(this,\"select2-scroll-position\",{x:f(this).scrollLeft(),y:f(this).scrollTop()})}),s.on(r,function(e){var t=a.GetData(this,\"select2-scroll-position\");f(this).scrollTop(t.y)}),f(window).on(r+\" \"+i+\" \"+o,function(e){n._positionDropdown(),n._resizeDropdown()})},e.prototype._detachPositioningHandler=function(e,t){var n=\"scroll.select2.\"+t.id,r=\"resize.select2.\"+t.id,i=\"orientationchange.select2.\"+t.id;this.$container.parents().filter(a.hasScroll).off(n),f(window).off(n+\" \"+r+\" \"+i)},e.prototype._positionDropdown=function(){var e=f(window),t=this.$dropdown.hasClass(\"select2-dropdown--above\"),n=this.$dropdown.hasClass(\"select2-dropdown--below\"),r=null,i=this.$container.offset();i.bottom=i.top+this.$container.outerHeight(!1);var o={height:this.$container.outerHeight(!1)};o.top=i.top,o.bottom=i.top+o.height;var s=this.$dropdown.outerHeight(!1),a=e.scrollTop(),l=e.scrollTop()+e.height(),c=a<i.top-s,u=l>i.bottom+s,d={left:i.left,top:o.bottom},p=this.$dropdownParent;\"static\"===p.css(\"position\")&&(p=p.offsetParent());var h={top:0,left:0};(f.contains(document.body,p[0])||p[0].isConnected)&&(h=p.offset()),d.top-=h.top,d.left-=h.left,t||n||(r=\"below\"),u||!c||t?!c&&u&&t&&(r=\"below\"):r=\"above\",(\"above\"==r||t&&\"below\"!==r)&&(d.top=o.top-h.top-s),null!=r&&(this.$dropdown.removeClass(\"select2-dropdown--below select2-dropdown--above\").addClass(\"select2-dropdown--\"+r),this.$container.removeClass(\"select2-container--below select2-container--above\").addClass(\"select2-container--\"+r)),this.$dropdownContainer.css(d)},e.prototype._resizeDropdown=function(){var e={width:this.$container.outerWidth(!1)+\"px\"};this.options.get(\"dropdownAutoWidth\")&&(e.minWidth=e.width,e.position=\"relative\",e.width=\"auto\"),this.$dropdown.css(e)},e.prototype._showDropdown=function(e){this.$dropdownContainer.appendTo(this.$dropdownParent),this._positionDropdown(),this._resizeDropdown()},e}),e.define(\"select2/dropdown/minimumResultsForSearch\",[],function(){function e(e,t,n,r){this.minimumResultsForSearch=n.get(\"minimumResultsForSearch\"),this.minimumResultsForSearch<0&&(this.minimumResultsForSearch=1/0),e.call(this,t,n,r)}return e.prototype.showSearch=function(e,t){return!(function e(t){for(var n=0,r=0;r<t.length;r++){var i=t[r];i.children?n+=e(i.children):n++}return n}(t.data.results)<this.minimumResultsForSearch)&&e.call(this,t)},e}),e.define(\"select2/dropdown/selectOnClose\",[\"../utils\"],function(o){function e(){}return e.prototype.bind=function(e,t,n){var r=this;e.call(this,t,n),t.on(\"close\",function(e){r._handleSelectOnClose(e)})},e.prototype._handleSelectOnClose=function(e,t){if(t&&null!=t.originalSelect2Event){var n=t.originalSelect2Event;if(\"select\"===n._type||\"unselect\"===n._type)return}var r=this.getHighlightedResults();if(!(r.length<1)){var i=o.GetData(r[0],\"data\");null!=i.element&&i.element.selected||null==i.element&&i.selected||this.trigger(\"select\",{data:i})}},e}),e.define(\"select2/dropdown/closeOnSelect\",[],function(){function e(){}return e.prototype.bind=function(e,t,n){var r=this;e.call(this,t,n),t.on(\"select\",function(e){r._selectTriggered(e)}),t.on(\"unselect\",function(e){r._selectTriggered(e)})},e.prototype._selectTriggered=function(e,t){var n=t.originalEvent;n&&(n.ctrlKey||n.metaKey)||this.trigger(\"close\",{originalEvent:n,originalSelect2Event:t})},e}),e.define(\"select2/i18n/en\",[],function(){return{errorLoading:function(){return\"The results could not be loaded.\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Please delete \"+t+\" character\";return 1!=t&&(n+=\"s\"),n},inputTooShort:function(e){return\"Please enter \"+(e.minimum-e.input.length)+\" or more characters\"},loadingMore:function(){return\"Loading more results…\"},maximumSelected:function(e){var t=\"You can only select \"+e.maximum+\" item\";return 1!=e.maximum&&(t+=\"s\"),t},noResults:function(){return\"No results found\"},searching:function(){return\"Searching…\"},removeAllItems:function(){return\"Remove all items\"}}}),e.define(\"select2/defaults\",[\"jquery\",\"require\",\"./results\",\"./selection/single\",\"./selection/multiple\",\"./selection/placeholder\",\"./selection/allowClear\",\"./selection/search\",\"./selection/eventRelay\",\"./utils\",\"./translation\",\"./diacritics\",\"./data/select\",\"./data/array\",\"./data/ajax\",\"./data/tags\",\"./data/tokenizer\",\"./data/minimumInputLength\",\"./data/maximumInputLength\",\"./data/maximumSelectionLength\",\"./dropdown\",\"./dropdown/search\",\"./dropdown/hidePlaceholder\",\"./dropdown/infiniteScroll\",\"./dropdown/attachBody\",\"./dropdown/minimumResultsForSearch\",\"./dropdown/selectOnClose\",\"./dropdown/closeOnSelect\",\"./i18n/en\"],function(c,u,d,p,h,f,g,m,v,y,s,t,_,$,b,w,A,x,D,S,E,C,O,T,q,L,I,j,e){function n(){this.reset()}return n.prototype.apply=function(e){if(null==(e=c.extend(!0,{},this.defaults,e)).dataAdapter){if(null!=e.ajax?e.dataAdapter=b:null!=e.data?e.dataAdapter=$:e.dataAdapter=_,0<e.minimumInputLength&&(e.dataAdapter=y.Decorate(e.dataAdapter,x)),0<e.maximumInputLength&&(e.dataAdapter=y.Decorate(e.dataAdapter,D)),0<e.maximumSelectionLength&&(e.dataAdapter=y.Decorate(e.dataAdapter,S)),e.tags&&(e.dataAdapter=y.Decorate(e.dataAdapter,w)),null==e.tokenSeparators&&null==e.tokenizer||(e.dataAdapter=y.Decorate(e.dataAdapter,A)),null!=e.query){var t=u(e.amdBase+\"compat/query\");e.dataAdapter=y.Decorate(e.dataAdapter,t)}if(null!=e.initSelection){var n=u(e.amdBase+\"compat/initSelection\");e.dataAdapter=y.Decorate(e.dataAdapter,n)}}if(null==e.resultsAdapter&&(e.resultsAdapter=d,null!=e.ajax&&(e.resultsAdapter=y.Decorate(e.resultsAdapter,T)),null!=e.placeholder&&(e.resultsAdapter=y.Decorate(e.resultsAdapter,O)),e.selectOnClose&&(e.resultsAdapter=y.Decorate(e.resultsAdapter,I))),null==e.dropdownAdapter){if(e.multiple)e.dropdownAdapter=E;else{var r=y.Decorate(E,C);e.dropdownAdapter=r}if(0!==e.minimumResultsForSearch&&(e.dropdownAdapter=y.Decorate(e.dropdownAdapter,L)),e.closeOnSelect&&(e.dropdownAdapter=y.Decorate(e.dropdownAdapter,j)),null!=e.dropdownCssClass||null!=e.dropdownCss||null!=e.adaptDropdownCssClass){var i=u(e.amdBase+\"compat/dropdownCss\");e.dropdownAdapter=y.Decorate(e.dropdownAdapter,i)}e.dropdownAdapter=y.Decorate(e.dropdownAdapter,q)}if(null==e.selectionAdapter){if(e.multiple?e.selectionAdapter=h:e.selectionAdapter=p,null!=e.placeholder&&(e.selectionAdapter=y.Decorate(e.selectionAdapter,f)),e.allowClear&&(e.selectionAdapter=y.Decorate(e.selectionAdapter,g)),e.multiple&&(e.selectionAdapter=y.Decorate(e.selectionAdapter,m)),null!=e.containerCssClass||null!=e.containerCss||null!=e.adaptContainerCssClass){var o=u(e.amdBase+\"compat/containerCss\");e.selectionAdapter=y.Decorate(e.selectionAdapter,o)}e.selectionAdapter=y.Decorate(e.selectionAdapter,v)}e.language=this._resolveLanguage(e.language),e.language.push(\"en\");for(var s=[],a=0;a<e.language.length;a++){var l=e.language[a];-1===s.indexOf(l)&&s.push(l)}return e.language=s,e.translations=this._processTranslations(e.language,e.debug),e},n.prototype.reset=function(){function a(e){return e.replace(/[^\\u0000-\\u007E]/g,function(e){return t[e]||e})}this.defaults={amdBase:\"./\",amdLanguageBase:\"./i18n/\",closeOnSelect:!0,debug:!1,dropdownAutoWidth:!1,escapeMarkup:y.escapeMarkup,language:{},matcher:function e(t,n){if(\"\"===c.trim(t.term))return n;if(n.children&&0<n.children.length){for(var r=c.extend(!0,{},n),i=n.children.length-1;0<=i;i--)null==e(t,n.children[i])&&r.children.splice(i,1);return 0<r.children.length?r:e(t,r)}var o=a(n.text).toUpperCase(),s=a(t.term).toUpperCase();return-1<o.indexOf(s)?n:null},minimumInputLength:0,maximumInputLength:0,maximumSelectionLength:0,minimumResultsForSearch:0,selectOnClose:!1,scrollAfterSelect:!1,sorter:function(e){return e},templateResult:function(e){return e.text},templateSelection:function(e){return e.text},theme:\"default\",width:\"resolve\"}},n.prototype.applyFromElement=function(e,t){var n=e.language,r=this.defaults.language,i=t.prop(\"lang\"),o=t.closest(\"[lang]\").prop(\"lang\"),s=Array.prototype.concat.call(this._resolveLanguage(i),this._resolveLanguage(n),this._resolveLanguage(r),this._resolveLanguage(o));return e.language=s,e},n.prototype._resolveLanguage=function(e){if(!e)return[];if(c.isEmptyObject(e))return[];if(c.isPlainObject(e))return[e];var t;t=c.isArray(e)?e:[e];for(var n=[],r=0;r<t.length;r++)if(n.push(t[r]),\"string\"==typeof t[r]&&0<t[r].indexOf(\"-\")){var i=t[r].split(\"-\")[0];n.push(i)}return n},n.prototype._processTranslations=function(e,t){for(var n=new s,r=0;r<e.length;r++){var i=new s,o=e[r];if(\"string\"==typeof o)try{i=s.loadPath(o)}catch(e){try{o=this.defaults.amdLanguageBase+o,i=s.loadPath(o)}catch(e){t&&window.console&&console.warn&&console.warn('Select2: The language file for \"'+o+'\" could not be automatically loaded. A fallback will be used instead.')}}else i=c.isPlainObject(o)?new s(o):o;n.extend(i)}return n},n.prototype.set=function(e,t){var n={};n[c.camelCase(e)]=t;var r=y._convertData(n);c.extend(!0,this.defaults,r)},new n}),e.define(\"select2/options\",[\"require\",\"jquery\",\"./defaults\",\"./utils\"],function(r,d,i,p){function e(e,t){if(this.options=e,null!=t&&this.fromElement(t),null!=t&&(this.options=i.applyFromElement(this.options,t)),this.options=i.apply(this.options),t&&t.is(\"input\")){var n=r(this.get(\"amdBase\")+\"compat/inputData\");this.options.dataAdapter=p.Decorate(this.options.dataAdapter,n)}}return e.prototype.fromElement=function(e){var t=[\"select2\"];null==this.options.multiple&&(this.options.multiple=e.prop(\"multiple\")),null==this.options.disabled&&(this.options.disabled=e.prop(\"disabled\")),null==this.options.dir&&(e.prop(\"dir\")?this.options.dir=e.prop(\"dir\"):e.closest(\"[dir]\").prop(\"dir\")?this.options.dir=e.closest(\"[dir]\").prop(\"dir\"):this.options.dir=\"ltr\"),e.prop(\"disabled\",this.options.disabled),e.prop(\"multiple\",this.options.multiple),p.GetData(e[0],\"select2Tags\")&&(this.options.debug&&window.console&&console.warn&&console.warn('Select2: The `data-select2-tags` attribute has been changed to use the `data-data` and `data-tags=\"true\"` attributes and will be removed in future versions of Select2.'),p.StoreData(e[0],\"data\",p.GetData(e[0],\"select2Tags\")),p.StoreData(e[0],\"tags\",!0)),p.GetData(e[0],\"ajaxUrl\")&&(this.options.debug&&window.console&&console.warn&&console.warn(\"Select2: The `data-ajax-url` attribute has been changed to `data-ajax--url` and support for the old attribute will be removed in future versions of Select2.\"),e.attr(\"ajax--url\",p.GetData(e[0],\"ajaxUrl\")),p.StoreData(e[0],\"ajax-Url\",p.GetData(e[0],\"ajaxUrl\")));var n={};function r(e,t){return t.toUpperCase()}for(var i=0;i<e[0].attributes.length;i++){var o=e[0].attributes[i].name,s=\"data-\";if(o.substr(0,s.length)==s){var a=o.substring(s.length),l=p.GetData(e[0],a);n[a.replace(/-([a-z])/g,r)]=l}}d.fn.jquery&&\"1.\"==d.fn.jquery.substr(0,2)&&e[0].dataset&&(n=d.extend(!0,{},e[0].dataset,n));var c=d.extend(!0,{},p.GetData(e[0]),n);for(var u in c=p._convertData(c))-1<d.inArray(u,t)||(d.isPlainObject(this.options[u])?d.extend(this.options[u],c[u]):this.options[u]=c[u]);return this},e.prototype.get=function(e){return this.options[e]},e.prototype.set=function(e,t){this.options[e]=t},e}),e.define(\"select2/core\",[\"jquery\",\"./options\",\"./utils\",\"./keys\"],function(o,c,u,r){var d=function(e,t){null!=u.GetData(e[0],\"select2\")&&u.GetData(e[0],\"select2\").destroy(),this.$element=e,this.id=this._generateId(e),t=t||{},this.options=new c(t,e),d.__super__.constructor.call(this);var n=e.attr(\"tabindex\")||0;u.StoreData(e[0],\"old-tabindex\",n),e.attr(\"tabindex\",\"-1\");var r=this.options.get(\"dataAdapter\");this.dataAdapter=new r(e,this.options);var i=this.render();this._placeContainer(i);var o=this.options.get(\"selectionAdapter\");this.selection=new o(e,this.options),this.$selection=this.selection.render(),this.selection.position(this.$selection,i);var s=this.options.get(\"dropdownAdapter\");this.dropdown=new s(e,this.options),this.$dropdown=this.dropdown.render(),this.dropdown.position(this.$dropdown,i);var a=this.options.get(\"resultsAdapter\");this.results=new a(e,this.options,this.dataAdapter),this.$results=this.results.render(),this.results.position(this.$results,this.$dropdown);var l=this;this._bindAdapters(),this._registerDomEvents(),this._registerDataEvents(),this._registerSelectionEvents(),this._registerDropdownEvents(),this._registerResultsEvents(),this._registerEvents(),this.dataAdapter.current(function(e){l.trigger(\"selection:update\",{data:e})}),e.addClass(\"select2-hidden-accessible\"),e.attr(\"aria-hidden\",\"true\"),this._syncAttributes(),u.StoreData(e[0],\"select2\",this),e.data(\"select2\",this)};return u.Extend(d,u.Observable),d.prototype._generateId=function(e){return\"select2-\"+(null!=e.attr(\"id\")?e.attr(\"id\"):null!=e.attr(\"name\")?e.attr(\"name\")+\"-\"+u.generateChars(2):u.generateChars(4)).replace(/(:|\\.|\\[|\\]|,)/g,\"\")},d.prototype._placeContainer=function(e){e.insertAfter(this.$element);var t=this._resolveWidth(this.$element,this.options.get(\"width\"));null!=t&&e.css(\"width\",t)},d.prototype._resolveWidth=function(e,t){var n=/^width:(([-+]?([0-9]*\\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;if(\"resolve\"==t){var r=this._resolveWidth(e,\"style\");return null!=r?r:this._resolveWidth(e,\"element\")}if(\"element\"==t){var i=e.outerWidth(!1);return i<=0?\"auto\":i+\"px\"}if(\"style\"!=t)return\"computedstyle\"!=t?t:window.getComputedStyle(e[0]).width;var o=e.attr(\"style\");if(\"string\"!=typeof o)return null;for(var s=o.split(\";\"),a=0,l=s.length;a<l;a+=1){var c=s[a].replace(/\\s/g,\"\").match(n);if(null!==c&&1<=c.length)return c[1]}return null},d.prototype._bindAdapters=function(){this.dataAdapter.bind(this,this.$container),this.selection.bind(this,this.$container),this.dropdown.bind(this,this.$container),this.results.bind(this,this.$container)},d.prototype._registerDomEvents=function(){var t=this;this.$element.on(\"change.select2\",function(){t.dataAdapter.current(function(e){t.trigger(\"selection:update\",{data:e})})}),this.$element.on(\"focus.select2\",function(e){t.trigger(\"focus\",e)}),this._syncA=u.bind(this._syncAttributes,this),this._syncS=u.bind(this._syncSubtree,this),this.$element[0].attachEvent&&this.$element[0].attachEvent(\"onpropertychange\",this._syncA);var e=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver;null!=e?(this._observer=new e(function(e){t._syncA(),t._syncS(null,e)}),this._observer.observe(this.$element[0],{attributes:!0,childList:!0,subtree:!1})):this.$element[0].addEventListener&&(this.$element[0].addEventListener(\"DOMAttrModified\",t._syncA,!1),this.$element[0].addEventListener(\"DOMNodeInserted\",t._syncS,!1),this.$element[0].addEventListener(\"DOMNodeRemoved\",t._syncS,!1))},d.prototype._registerDataEvents=function(){var n=this;this.dataAdapter.on(\"*\",function(e,t){n.trigger(e,t)})},d.prototype._registerSelectionEvents=function(){var n=this,r=[\"toggle\",\"focus\"];this.selection.on(\"toggle\",function(){n.toggleDropdown()}),this.selection.on(\"focus\",function(e){n.focus(e)}),this.selection.on(\"*\",function(e,t){-1===o.inArray(e,r)&&n.trigger(e,t)})},d.prototype._registerDropdownEvents=function(){var n=this;this.dropdown.on(\"*\",function(e,t){n.trigger(e,t)})},d.prototype._registerResultsEvents=function(){var n=this;this.results.on(\"*\",function(e,t){n.trigger(e,t)})},d.prototype._registerEvents=function(){var n=this;this.on(\"open\",function(){n.$container.addClass(\"select2-container--open\")}),this.on(\"close\",function(){n.$container.removeClass(\"select2-container--open\")}),this.on(\"enable\",function(){n.$container.removeClass(\"select2-container--disabled\")}),this.on(\"disable\",function(){n.$container.addClass(\"select2-container--disabled\")}),this.on(\"blur\",function(){n.$container.removeClass(\"select2-container--focus\")}),this.on(\"query\",function(t){n.isOpen()||n.trigger(\"open\",{}),this.dataAdapter.query(t,function(e){n.trigger(\"results:all\",{data:e,query:t})})}),this.on(\"query:append\",function(t){this.dataAdapter.query(t,function(e){n.trigger(\"results:append\",{data:e,query:t})})}),this.on(\"keypress\",function(e){var t=e.which;n.isOpen()?t===r.ESC||t===r.TAB||t===r.UP&&e.altKey?(n.close(e),e.preventDefault()):t===r.ENTER?(n.trigger(\"results:select\",{}),e.preventDefault()):t===r.SPACE&&e.ctrlKey?(n.trigger(\"results:toggle\",{}),e.preventDefault()):t===r.UP?(n.trigger(\"results:previous\",{}),e.preventDefault()):t===r.DOWN&&(n.trigger(\"results:next\",{}),e.preventDefault()):(t===r.ENTER||t===r.SPACE||t===r.DOWN&&e.altKey)&&(n.open(),e.preventDefault())})},d.prototype._syncAttributes=function(){this.options.set(\"disabled\",this.$element.prop(\"disabled\")),this.isDisabled()?(this.isOpen()&&this.close(),this.trigger(\"disable\",{})):this.trigger(\"enable\",{})},d.prototype._isChangeMutation=function(e,t){var n=!1,r=this;if(!e||!e.target||\"OPTION\"===e.target.nodeName||\"OPTGROUP\"===e.target.nodeName){if(t)if(t.addedNodes&&0<t.addedNodes.length)for(var i=0;i<t.addedNodes.length;i++){t.addedNodes[i].selected&&(n=!0)}else t.removedNodes&&0<t.removedNodes.length?n=!0:o.isArray(t)&&o.each(t,function(e,t){if(r._isChangeMutation(e,t))return!(n=!0)});else n=!0;return n}},d.prototype._syncSubtree=function(e,t){var n=this._isChangeMutation(e,t),r=this;n&&this.dataAdapter.current(function(e){r.trigger(\"selection:update\",{data:e})})},d.prototype.trigger=function(e,t){var n=d.__super__.trigger,r={open:\"opening\",close:\"closing\",select:\"selecting\",unselect:\"unselecting\",clear:\"clearing\"};if(void 0===t&&(t={}),e in r){var i=r[e],o={prevented:!1,name:e,args:t};if(n.call(this,i,o),o.prevented)return void(t.prevented=!0)}n.call(this,e,t)},d.prototype.toggleDropdown=function(){this.isDisabled()||(this.isOpen()?this.close():this.open())},d.prototype.open=function(){this.isOpen()||this.isDisabled()||this.trigger(\"query\",{})},d.prototype.close=function(e){this.isOpen()&&this.trigger(\"close\",{originalEvent:e})},d.prototype.isEnabled=function(){return!this.isDisabled()},d.prototype.isDisabled=function(){return this.options.get(\"disabled\")},d.prototype.isOpen=function(){return this.$container.hasClass(\"select2-container--open\")},d.prototype.hasFocus=function(){return this.$container.hasClass(\"select2-container--focus\")},d.prototype.focus=function(e){this.hasFocus()||(this.$container.addClass(\"select2-container--focus\"),this.trigger(\"focus\",{}))},d.prototype.enable=function(e){this.options.get(\"debug\")&&window.console&&console.warn&&console.warn('Select2: The `select2(\"enable\")` method has been deprecated and will be removed in later Select2 versions. Use $element.prop(\"disabled\") instead.'),null!=e&&0!==e.length||(e=[!0]);var t=!e[0];this.$element.prop(\"disabled\",t)},d.prototype.data=function(){this.options.get(\"debug\")&&0<arguments.length&&window.console&&console.warn&&console.warn('Select2: Data can no longer be set using `select2(\"data\")`. You should consider setting the value instead using `$element.val()`.');var t=[];return this.dataAdapter.current(function(e){t=e}),t},d.prototype.val=function(e){if(this.options.get(\"debug\")&&window.console&&console.warn&&console.warn('Select2: The `select2(\"val\")` method has been deprecated and will be removed in later Select2 versions. Use $element.val() instead.'),null==e||0===e.length)return this.$element.val();var t=e[0];o.isArray(t)&&(t=o.map(t,function(e){return e.toString()})),this.$element.val(t).trigger(\"input\").trigger(\"change\")},d.prototype.destroy=function(){this.$container.remove(),this.$element[0].detachEvent&&this.$element[0].detachEvent(\"onpropertychange\",this._syncA),null!=this._observer?(this._observer.disconnect(),this._observer=null):this.$element[0].removeEventListener&&(this.$element[0].removeEventListener(\"DOMAttrModified\",this._syncA,!1),this.$element[0].removeEventListener(\"DOMNodeInserted\",this._syncS,!1),this.$element[0].removeEventListener(\"DOMNodeRemoved\",this._syncS,!1)),this._syncA=null,this._syncS=null,this.$element.off(\".select2\"),this.$element.attr(\"tabindex\",u.GetData(this.$element[0],\"old-tabindex\")),this.$element.removeClass(\"select2-hidden-accessible\"),this.$element.attr(\"aria-hidden\",\"false\"),u.RemoveData(this.$element[0]),this.$element.removeData(\"select2\"),this.dataAdapter.destroy(),this.selection.destroy(),this.dropdown.destroy(),this.results.destroy(),this.dataAdapter=null,this.selection=null,this.dropdown=null,this.results=null},d.prototype.render=function(){var e=o('<span class=\"select2 select2-container\"><span class=\"selection\"></span><span class=\"dropdown-wrapper\" aria-hidden=\"true\"></span></span>');return e.attr(\"dir\",this.options.get(\"dir\")),this.$container=e,this.$container.addClass(\"select2-container--\"+this.options.get(\"theme\")),u.StoreData(e[0],\"element\",this.$element),e},d}),e.define(\"jquery-mousewheel\",[\"jquery\"],function(e){return e}),e.define(\"jquery.select2\",[\"jquery\",\"jquery-mousewheel\",\"./select2/core\",\"./select2/defaults\",\"./select2/utils\"],function(i,e,o,t,s){if(null==i.fn.select2){var a=[\"open\",\"close\",\"destroy\"];i.fn.select2=function(t){if(\"object\"==typeof(t=t||{}))return this.each(function(){var e=i.extend(!0,{},t);new o(i(this),e)}),this;if(\"string\"!=typeof t)throw new Error(\"Invalid arguments for Select2: \"+t);var n,r=Array.prototype.slice.call(arguments,1);return this.each(function(){var e=s.GetData(this,\"select2\");null==e&&window.console&&console.error&&console.error(\"The select2('\"+t+\"') method was called on an element that is not using Select2.\"),n=e[t].apply(e,r)}),-1<i.inArray(t,a)?this:n}}return null==i.fn.select2.defaults&&(i.fn.select2.defaults=t),o}),{define:e.define,require:e.require}}(),t=e.require(\"jquery.select2\");return u.fn.select2.amd=e,t});","/*!\n * Pikaday\n *\n * Copyright © 2014 David Bushell | BSD & MIT license | https://github.com/Pikaday/Pikaday\n */\n\n(function (root, factory)\n{\n 'use strict';\n\n var moment;\n if (typeof exports === 'object') {\n // CommonJS module\n // Load moment.js as an optional dependency\n try { moment = require('moment'); } catch (e) {}\n module.exports = factory(moment);\n } else if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(function (req)\n {\n // Load moment.js as an optional dependency\n var id = 'moment';\n try { moment = req(id); } catch (e) {}\n return factory(moment);\n });\n } else {\n root.Pikaday = factory(root.moment);\n }\n}(this, function (moment)\n{\n 'use strict';\n\n /**\n * feature detection and helper functions\n */\n var hasMoment = typeof moment === 'function',\n\n hasEventListeners = !!window.addEventListener,\n\n document = window.document,\n\n sto = window.setTimeout,\n\n addEvent = function(el, e, callback, capture)\n {\n if (hasEventListeners) {\n el.addEventListener(e, callback, !!capture);\n } else {\n el.attachEvent('on' + e, callback);\n }\n },\n\n removeEvent = function(el, e, callback, capture)\n {\n if (hasEventListeners) {\n el.removeEventListener(e, callback, !!capture);\n } else {\n el.detachEvent('on' + e, callback);\n }\n },\n\n trim = function(str)\n {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g,'');\n },\n\n hasClass = function(el, cn)\n {\n return (' ' + el.className + ' ').indexOf(' ' + cn + ' ') !== -1;\n },\n\n addClass = function(el, cn)\n {\n if (!hasClass(el, cn)) {\n el.className = (el.className === '') ? cn : el.className + ' ' + cn;\n }\n },\n\n removeClass = function(el, cn)\n {\n el.className = trim((' ' + el.className + ' ').replace(' ' + cn + ' ', ' '));\n },\n\n isArray = function(obj)\n {\n return (/Array/).test(Object.prototype.toString.call(obj));\n },\n\n isDate = function(obj)\n {\n return (/Date/).test(Object.prototype.toString.call(obj)) && !isNaN(obj.getTime());\n },\n\n isWeekend = function(date)\n {\n var day = date.getDay();\n return day === 0 || day === 6;\n },\n\n isLeapYear = function(year)\n {\n // solution lifted from date.js (MIT license): https://github.com/datejs/Datejs\n return ((year % 4 === 0 && year % 100 !== 0) || year % 400 === 0);\n },\n\n getDaysInMonth = function(year, month)\n {\n return [31, isLeapYear(year) ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month];\n },\n\n setToStartOfDay = function(date)\n {\n if (isDate(date)) date.setHours(0,0,0,0);\n },\n\n compareDates = function(a,b)\n {\n // weak date comparison (use setToStartOfDay(date) to ensure correct result)\n return a.getTime() === b.getTime();\n },\n\n extend = function(to, from, overwrite)\n {\n var prop, hasProp;\n for (prop in from) {\n hasProp = to[prop] !== undefined;\n if (hasProp && typeof from[prop] === 'object' && from[prop] !== null && from[prop].nodeName === undefined) {\n if (isDate(from[prop])) {\n if (overwrite) {\n to[prop] = new Date(from[prop].getTime());\n }\n }\n else if (isArray(from[prop])) {\n if (overwrite) {\n to[prop] = from[prop].slice(0);\n }\n } else {\n to[prop] = extend({}, from[prop], overwrite);\n }\n } else if (overwrite || !hasProp) {\n to[prop] = from[prop];\n }\n }\n return to;\n },\n\n fireEvent = function(el, eventName, data)\n {\n var ev;\n\n if (document.createEvent) {\n ev = document.createEvent('HTMLEvents');\n ev.initEvent(eventName, true, false);\n ev = extend(ev, data);\n el.dispatchEvent(ev);\n } else if (document.createEventObject) {\n ev = document.createEventObject();\n ev = extend(ev, data);\n el.fireEvent('on' + eventName, ev);\n }\n },\n\n adjustCalendar = function(calendar) {\n if (calendar.month < 0) {\n calendar.year -= Math.ceil(Math.abs(calendar.month)/12);\n calendar.month += 12;\n }\n if (calendar.month > 11) {\n calendar.year += Math.floor(Math.abs(calendar.month)/12);\n calendar.month -= 12;\n }\n return calendar;\n },\n\n /**\n * defaults and localisation\n */\n defaults = {\n\n // bind the picker to a form field\n field: null,\n\n // automatically show/hide the picker on `field` focus (default `true` if `field` is set)\n bound: undefined,\n\n // data-attribute on the input field with an aria assistance text (only applied when `bound` is set)\n ariaLabel: 'Use the arrow keys to pick a date',\n\n // position of the datepicker, relative to the field (default to bottom & left)\n // ('bottom' & 'left' keywords are not used, 'top' & 'right' are modifier on the bottom/left position)\n position: 'bottom left',\n\n // automatically fit in the viewport even if it means repositioning from the position option\n reposition: true,\n\n // the default output format for `.toString()` and `field` value\n format: 'YYYY-MM-DD',\n\n // the toString function which gets passed a current date object and format\n // and returns a string\n toString: null,\n\n // used to create date object from current input string\n parse: null,\n\n // the initial date to view when first opened\n defaultDate: null,\n\n // make the `defaultDate` the initial selected value\n setDefaultDate: false,\n\n // first day of week (0: Sunday, 1: Monday etc)\n firstDay: 0,\n\n // minimum number of days in the week that gets week number one\n // default ISO 8601, week 01 is the week with the first Thursday (4)\n firstWeekOfYearMinDays: 4,\n\n // the default flag for moment's strict date parsing\n formatStrict: false,\n\n // the minimum/earliest date that can be selected\n minDate: null,\n // the maximum/latest date that can be selected\n maxDate: null,\n\n // number of years either side, or array of upper/lower range\n yearRange: 10,\n\n // show week numbers at head of row\n showWeekNumber: false,\n\n // Week picker mode\n pickWholeWeek: false,\n\n // used internally (don't config outside)\n minYear: 0,\n maxYear: 9999,\n minMonth: undefined,\n maxMonth: undefined,\n\n startRange: null,\n endRange: null,\n\n isRTL: false,\n\n // Additional text to append to the year in the calendar title\n yearSuffix: '',\n\n // Render the month after year in the calendar title\n showMonthAfterYear: false,\n\n // Render days of the calendar grid that fall in the next or previous month\n showDaysInNextAndPreviousMonths: false,\n\n // Allows user to select days that fall in the next or previous month\n enableSelectionDaysInNextAndPreviousMonths: false,\n\n // how many months are visible\n numberOfMonths: 1,\n\n // when numberOfMonths is used, this will help you to choose where the main calendar will be (default `left`, can be set to `right`)\n // only used for the first display or when a selected date is not visible\n mainCalendar: 'left',\n\n // Specify a DOM element to render the calendar in\n container: undefined,\n\n // Blur field when date is selected\n blurFieldOnSelect : true,\n\n // internationalization\n i18n: {\n previousMonth : 'Previous Month',\n nextMonth : 'Next Month',\n months : ['January','February','March','April','May','June','July','August','September','October','November','December'],\n weekdays : ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'],\n weekdaysShort : ['Sun','Mon','Tue','Wed','Thu','Fri','Sat']\n },\n\n // Theme Classname\n theme: null,\n\n // events array\n events: [],\n\n // callback function\n onSelect: null,\n onOpen: null,\n onClose: null,\n onDraw: null,\n\n // Enable keyboard input\n keyboardInput: true\n },\n\n\n /**\n * templating functions to abstract HTML rendering\n */\n renderDayName = function(opts, day, abbr)\n {\n day += opts.firstDay;\n while (day >= 7) {\n day -= 7;\n }\n return abbr ? opts.i18n.weekdaysShort[day] : opts.i18n.weekdays[day];\n },\n\n renderDay = function(opts)\n {\n var arr = [];\n var ariaSelected = 'false';\n if (opts.isEmpty) {\n if (opts.showDaysInNextAndPreviousMonths) {\n arr.push('is-outside-current-month');\n\n if(!opts.enableSelectionDaysInNextAndPreviousMonths) {\n arr.push('is-selection-disabled');\n }\n\n } else {\n return '<td class=\"is-empty\"></td>';\n }\n }\n if (opts.isDisabled) {\n arr.push('is-disabled');\n }\n if (opts.isToday) {\n arr.push('is-today');\n }\n if (opts.isSelected) {\n arr.push('is-selected');\n ariaSelected = 'true';\n }\n if (opts.hasEvent) {\n arr.push('has-event');\n }\n if (opts.isInRange) {\n arr.push('is-inrange');\n }\n if (opts.isStartRange) {\n arr.push('is-startrange');\n }\n if (opts.isEndRange) {\n arr.push('is-endrange');\n }\n return '<td data-day=\"' + opts.day + '\" class=\"' + arr.join(' ') + '\" aria-selected=\"' + ariaSelected + '\">' +\n '<button class=\"pika-button pika-day\" type=\"button\" ' +\n 'data-pika-year=\"' + opts.year + '\" data-pika-month=\"' + opts.month + '\" data-pika-day=\"' + opts.day + '\">' +\n opts.day +\n '</button>' +\n '</td>';\n },\n\n isoWeek = function(date, firstWeekOfYearMinDays) {\n // Ensure we're at the start of the day.\n date.setHours(0, 0, 0, 0);\n\n // Thursday in current week decides the year because January 4th\n // is always in the first week according to ISO8601.\n var yearDay = date.getDate(),\n weekDay = date.getDay(),\n dayInFirstWeek = firstWeekOfYearMinDays,\n dayShift = dayInFirstWeek - 1, // counting starts at 0\n daysPerWeek = 7,\n prevWeekDay = function(day) { return (day + daysPerWeek - 1) % daysPerWeek; };\n\n // Adjust to Thursday in week 1 and count number of weeks from date to week 1.\n date.setDate(yearDay + dayShift - prevWeekDay(weekDay));\n\n var jan4th = new Date(date.getFullYear(), 0, dayInFirstWeek),\n msPerDay = 24 * 60 * 60 * 1000,\n daysBetween = (date.getTime() - jan4th.getTime()) / msPerDay,\n weekNum = 1 + Math.round((daysBetween - dayShift + prevWeekDay(jan4th.getDay())) / daysPerWeek);\n\n return weekNum;\n },\n\n renderWeek = function (d, m, y, firstWeekOfYearMinDays) {\n var date = new Date(y, m, d),\n week = hasMoment ? moment(date).isoWeek() : isoWeek(date, firstWeekOfYearMinDays);\n\n return '<td class=\"pika-week\">' + week + '</td>';\n },\n\n renderRow = function(days, isRTL, pickWholeWeek, isRowSelected)\n {\n return '<tr class=\"pika-row' + (pickWholeWeek ? ' pick-whole-week' : '') + (isRowSelected ? ' is-selected' : '') + '\">' + (isRTL ? days.reverse() : days).join('') + '</tr>';\n },\n\n renderBody = function(rows)\n {\n return '<tbody>' + rows.join('') + '</tbody>';\n },\n\n renderHead = function(opts)\n {\n var i, arr = [];\n if (opts.showWeekNumber) {\n arr.push('<th></th>');\n }\n for (i = 0; i < 7; i++) {\n arr.push('<th scope=\"col\"><abbr title=\"' + renderDayName(opts, i) + '\">' + renderDayName(opts, i, true) + '</abbr></th>');\n }\n return '<thead><tr>' + (opts.isRTL ? arr.reverse() : arr).join('') + '</tr></thead>';\n },\n\n renderTitle = function(instance, c, year, month, refYear, randId)\n {\n var i, j, arr,\n opts = instance._o,\n isMinYear = year === opts.minYear,\n isMaxYear = year === opts.maxYear,\n html = '<div id=\"' + randId + '\" class=\"pika-title\" role=\"heading\" aria-live=\"assertive\">',\n monthHtml,\n yearHtml,\n prev = true,\n next = true;\n\n for (arr = [], i = 0; i < 12; i++) {\n arr.push('<option value=\"' + (year === refYear ? i - c : 12 + i - c) + '\"' +\n (i === month ? ' selected=\"selected\"': '') +\n ((isMinYear && i < opts.minMonth) || (isMaxYear && i > opts.maxMonth) ? ' disabled=\"disabled\"' : '') + '>' +\n opts.i18n.months[i] + '</option>');\n }\n\n monthHtml = '<div class=\"pika-label\">' + opts.i18n.months[month] + '<select class=\"pika-select pika-select-month\" tabindex=\"-1\">' + arr.join('') + '</select></div>';\n\n if (isArray(opts.yearRange)) {\n i = opts.yearRange[0];\n j = opts.yearRange[1] + 1;\n } else {\n i = year - opts.yearRange;\n j = 1 + year + opts.yearRange;\n }\n\n for (arr = []; i < j && i <= opts.maxYear; i++) {\n if (i >= opts.minYear) {\n arr.push('<option value=\"' + i + '\"' + (i === year ? ' selected=\"selected\"': '') + '>' + (i) + '</option>');\n }\n }\n yearHtml = '<div class=\"pika-label\">' + year + opts.yearSuffix + '<select class=\"pika-select pika-select-year\" tabindex=\"-1\">' + arr.join('') + '</select></div>';\n\n if (opts.showMonthAfterYear) {\n html += yearHtml + monthHtml;\n } else {\n html += monthHtml + yearHtml;\n }\n\n if (isMinYear && (month === 0 || opts.minMonth >= month)) {\n prev = false;\n }\n\n if (isMaxYear && (month === 11 || opts.maxMonth <= month)) {\n next = false;\n }\n\n if (c === 0) {\n html += '<button class=\"pika-prev' + (prev ? '' : ' is-disabled') + '\" type=\"button\">' + opts.i18n.previousMonth + '</button>';\n }\n if (c === (instance._o.numberOfMonths - 1) ) {\n html += '<button class=\"pika-next' + (next ? '' : ' is-disabled') + '\" type=\"button\">' + opts.i18n.nextMonth + '</button>';\n }\n\n return html += '</div>';\n },\n\n renderTable = function(opts, data, randId)\n {\n return '<table cellpadding=\"0\" cellspacing=\"0\" class=\"pika-table\" role=\"grid\" aria-labelledby=\"' + randId + '\">' + renderHead(opts) + renderBody(data) + '</table>';\n },\n\n\n /**\n * Pikaday constructor\n */\n Pikaday = function(options)\n {\n var self = this,\n opts = self.config(options);\n\n self._onMouseDown = function(e)\n {\n if (!self._v) {\n return;\n }\n e = e || window.event;\n var target = e.target || e.srcElement;\n if (!target) {\n return;\n }\n\n if (!hasClass(target, 'is-disabled')) {\n if (hasClass(target, 'pika-button') && !hasClass(target, 'is-empty') && !hasClass(target.parentNode, 'is-disabled')) {\n self.setDate(new Date(target.getAttribute('data-pika-year'), target.getAttribute('data-pika-month'), target.getAttribute('data-pika-day')));\n if (opts.bound) {\n sto(function() {\n self.hide();\n if (opts.blurFieldOnSelect && opts.field) {\n opts.field.blur();\n }\n }, 100);\n }\n }\n else if (hasClass(target, 'pika-prev')) {\n self.prevMonth();\n }\n else if (hasClass(target, 'pika-next')) {\n self.nextMonth();\n }\n }\n if (!hasClass(target, 'pika-select')) {\n // if this is touch event prevent mouse events emulation\n if (e.preventDefault) {\n e.preventDefault();\n } else {\n e.returnValue = false;\n return false;\n }\n } else {\n self._c = true;\n }\n };\n\n self._onChange = function(e)\n {\n e = e || window.event;\n var target = e.target || e.srcElement;\n if (!target) {\n return;\n }\n if (hasClass(target, 'pika-select-month')) {\n self.gotoMonth(target.value);\n }\n else if (hasClass(target, 'pika-select-year')) {\n self.gotoYear(target.value);\n }\n };\n\n self._onKeyChange = function(e)\n {\n e = e || window.event;\n\n if (self.isVisible()) {\n\n switch(e.keyCode){\n case 13:\n case 27:\n if (opts.field) {\n opts.field.blur();\n }\n break;\n case 37:\n self.adjustDate('subtract', 1);\n break;\n case 38:\n self.adjustDate('subtract', 7);\n break;\n case 39:\n self.adjustDate('add', 1);\n break;\n case 40:\n self.adjustDate('add', 7);\n break;\n case 8:\n case 46:\n self.setDate(null);\n break;\n }\n }\n };\n\n self._parseFieldValue = function()\n {\n if (opts.parse) {\n return opts.parse(opts.field.value, opts.format);\n } else if (hasMoment) {\n var date = moment(opts.field.value, opts.format, opts.formatStrict);\n return (date && date.isValid()) ? date.toDate() : null;\n } else {\n return new Date(Date.parse(opts.field.value));\n }\n };\n\n self._onInputChange = function(e)\n {\n var date;\n\n if (e.firedBy === self) {\n return;\n }\n date = self._parseFieldValue();\n if (isDate(date)) {\n self.setDate(date);\n }\n if (!self._v) {\n self.show();\n }\n };\n\n self._onInputFocus = function()\n {\n self.show();\n };\n\n self._onInputClick = function()\n {\n self.show();\n };\n\n self._onInputBlur = function()\n {\n // IE allows pika div to gain focus; catch blur the input field\n var pEl = document.activeElement;\n do {\n if (hasClass(pEl, 'pika-single')) {\n return;\n }\n }\n while ((pEl = pEl.parentNode));\n\n if (!self._c) {\n self._b = sto(function() {\n self.hide();\n }, 50);\n }\n self._c = false;\n };\n\n self._onClick = function(e)\n {\n e = e || window.event;\n var target = e.target || e.srcElement,\n pEl = target;\n if (!target) {\n return;\n }\n if (!hasEventListeners && hasClass(target, 'pika-select')) {\n if (!target.onchange) {\n target.setAttribute('onchange', 'return;');\n addEvent(target, 'change', self._onChange);\n }\n }\n do {\n if (hasClass(pEl, 'pika-single') || pEl === opts.trigger) {\n return;\n }\n }\n while ((pEl = pEl.parentNode));\n if (self._v && target !== opts.trigger && pEl !== opts.trigger) {\n self.hide();\n }\n };\n\n self.el = document.createElement('div');\n self.el.className = 'pika-single' + (opts.isRTL ? ' is-rtl' : '') + (opts.theme ? ' ' + opts.theme : '');\n\n addEvent(self.el, 'mousedown', self._onMouseDown, true);\n addEvent(self.el, 'touchend', self._onMouseDown, true);\n addEvent(self.el, 'change', self._onChange);\n\n if (opts.keyboardInput) {\n addEvent(document, 'keydown', self._onKeyChange);\n }\n\n if (opts.field) {\n if (opts.container) {\n opts.container.appendChild(self.el);\n } else if (opts.bound) {\n document.body.appendChild(self.el);\n } else {\n opts.field.parentNode.insertBefore(self.el, opts.field.nextSibling);\n }\n addEvent(opts.field, 'change', self._onInputChange);\n\n if (!opts.defaultDate) {\n opts.defaultDate = self._parseFieldValue();\n opts.setDefaultDate = true;\n }\n }\n\n var defDate = opts.defaultDate;\n\n if (isDate(defDate)) {\n if (opts.setDefaultDate) {\n self.setDate(defDate, true);\n } else {\n self.gotoDate(defDate);\n }\n } else {\n self.gotoDate(new Date());\n }\n\n if (opts.bound) {\n this.hide();\n self.el.className += ' is-bound';\n addEvent(opts.trigger, 'click', self._onInputClick);\n addEvent(opts.trigger, 'focus', self._onInputFocus);\n addEvent(opts.trigger, 'blur', self._onInputBlur);\n } else {\n this.show();\n }\n };\n\n\n /**\n * public Pikaday API\n */\n Pikaday.prototype = {\n\n\n /**\n * configure functionality\n */\n config: function(options)\n {\n if (!this._o) {\n this._o = extend({}, defaults, true);\n }\n\n var opts = extend(this._o, options, true);\n\n opts.isRTL = !!opts.isRTL;\n\n opts.field = (opts.field && opts.field.nodeName) ? opts.field : null;\n\n opts.theme = (typeof opts.theme) === 'string' && opts.theme ? opts.theme : null;\n\n opts.bound = !!(opts.bound !== undefined ? opts.field && opts.bound : opts.field);\n\n opts.trigger = (opts.trigger && opts.trigger.nodeName) ? opts.trigger : opts.field;\n\n opts.disableWeekends = !!opts.disableWeekends;\n\n opts.disableDayFn = (typeof opts.disableDayFn) === 'function' ? opts.disableDayFn : null;\n\n var nom = parseInt(opts.numberOfMonths, 10) || 1;\n opts.numberOfMonths = nom > 4 ? 4 : nom;\n\n if (!isDate(opts.minDate)) {\n opts.minDate = false;\n }\n if (!isDate(opts.maxDate)) {\n opts.maxDate = false;\n }\n if ((opts.minDate && opts.maxDate) && opts.maxDate < opts.minDate) {\n opts.maxDate = opts.minDate = false;\n }\n if (opts.minDate) {\n this.setMinDate(opts.minDate);\n }\n if (opts.maxDate) {\n this.setMaxDate(opts.maxDate);\n }\n\n if (isArray(opts.yearRange)) {\n var fallback = new Date().getFullYear() - 10;\n opts.yearRange[0] = parseInt(opts.yearRange[0], 10) || fallback;\n opts.yearRange[1] = parseInt(opts.yearRange[1], 10) || fallback;\n } else {\n opts.yearRange = Math.abs(parseInt(opts.yearRange, 10)) || defaults.yearRange;\n if (opts.yearRange > 100) {\n opts.yearRange = 100;\n }\n }\n\n return opts;\n },\n\n /**\n * return a formatted string of the current selection (using Moment.js if available)\n */\n toString: function(format)\n {\n format = format || this._o.format;\n if (!isDate(this._d)) {\n return '';\n }\n if (this._o.toString) {\n return this._o.toString(this._d, format);\n }\n if (hasMoment) {\n return moment(this._d).format(format);\n }\n return this._d.toDateString();\n },\n\n /**\n * return a Moment.js object of the current selection (if available)\n */\n getMoment: function()\n {\n return hasMoment ? moment(this._d) : null;\n },\n\n /**\n * set the current selection from a Moment.js object (if available)\n */\n setMoment: function(date, preventOnSelect)\n {\n if (hasMoment && moment.isMoment(date)) {\n this.setDate(date.toDate(), preventOnSelect);\n }\n },\n\n /**\n * return a Date object of the current selection\n */\n getDate: function()\n {\n return isDate(this._d) ? new Date(this._d.getTime()) : null;\n },\n\n /**\n * set the current selection\n */\n setDate: function(date, preventOnSelect)\n {\n if (!date) {\n this._d = null;\n\n if (this._o.field) {\n this._o.field.value = '';\n fireEvent(this._o.field, 'change', { firedBy: this });\n }\n\n return this.draw();\n }\n if (typeof date === 'string') {\n date = new Date(Date.parse(date));\n }\n if (!isDate(date)) {\n return;\n }\n\n var min = this._o.minDate,\n max = this._o.maxDate;\n\n if (isDate(min) && date < min) {\n date = min;\n } else if (isDate(max) && date > max) {\n date = max;\n }\n\n this._d = new Date(date.getTime());\n setToStartOfDay(this._d);\n this.gotoDate(this._d);\n\n if (this._o.field) {\n this._o.field.value = this.toString();\n fireEvent(this._o.field, 'change', { firedBy: this });\n }\n if (!preventOnSelect && typeof this._o.onSelect === 'function') {\n this._o.onSelect.call(this, this.getDate());\n }\n },\n\n /**\n * clear and reset the date\n */\n clear: function()\n {\n this.setDate(null);\n },\n\n /**\n * change view to a specific date\n */\n gotoDate: function(date)\n {\n var newCalendar = true;\n\n if (!isDate(date)) {\n return;\n }\n\n if (this.calendars) {\n var firstVisibleDate = new Date(this.calendars[0].year, this.calendars[0].month, 1),\n lastVisibleDate = new Date(this.calendars[this.calendars.length-1].year, this.calendars[this.calendars.length-1].month, 1),\n visibleDate = date.getTime();\n // get the end of the month\n lastVisibleDate.setMonth(lastVisibleDate.getMonth()+1);\n lastVisibleDate.setDate(lastVisibleDate.getDate()-1);\n newCalendar = (visibleDate < firstVisibleDate.getTime() || lastVisibleDate.getTime() < visibleDate);\n }\n\n if (newCalendar) {\n this.calendars = [{\n month: date.getMonth(),\n year: date.getFullYear()\n }];\n if (this._o.mainCalendar === 'right') {\n this.calendars[0].month += 1 - this._o.numberOfMonths;\n }\n }\n\n this.adjustCalendars();\n },\n\n adjustDate: function(sign, days) {\n\n var day = this.getDate() || new Date();\n var difference = parseInt(days)*24*60*60*1000;\n\n var newDay;\n\n if (sign === 'add') {\n newDay = new Date(day.valueOf() + difference);\n } else if (sign === 'subtract') {\n newDay = new Date(day.valueOf() - difference);\n }\n\n this.setDate(newDay);\n },\n\n adjustCalendars: function() {\n this.calendars[0] = adjustCalendar(this.calendars[0]);\n for (var c = 1; c < this._o.numberOfMonths; c++) {\n this.calendars[c] = adjustCalendar({\n month: this.calendars[0].month + c,\n year: this.calendars[0].year\n });\n }\n this.draw();\n },\n\n gotoToday: function()\n {\n this.gotoDate(new Date());\n },\n\n /**\n * change view to a specific month (zero-index, e.g. 0: January)\n */\n gotoMonth: function(month)\n {\n if (!isNaN(month)) {\n this.calendars[0].month = parseInt(month, 10);\n this.adjustCalendars();\n }\n },\n\n nextMonth: function()\n {\n this.calendars[0].month++;\n this.adjustCalendars();\n },\n\n prevMonth: function()\n {\n this.calendars[0].month--;\n this.adjustCalendars();\n },\n\n /**\n * change view to a specific full year (e.g. \"2012\")\n */\n gotoYear: function(year)\n {\n if (!isNaN(year)) {\n this.calendars[0].year = parseInt(year, 10);\n this.adjustCalendars();\n }\n },\n\n /**\n * change the minDate\n */\n setMinDate: function(value)\n {\n if(value instanceof Date) {\n setToStartOfDay(value);\n this._o.minDate = value;\n this._o.minYear = value.getFullYear();\n this._o.minMonth = value.getMonth();\n } else {\n this._o.minDate = defaults.minDate;\n this._o.minYear = defaults.minYear;\n this._o.minMonth = defaults.minMonth;\n this._o.startRange = defaults.startRange;\n }\n\n this.draw();\n },\n\n /**\n * change the maxDate\n */\n setMaxDate: function(value)\n {\n if(value instanceof Date) {\n setToStartOfDay(value);\n this._o.maxDate = value;\n this._o.maxYear = value.getFullYear();\n this._o.maxMonth = value.getMonth();\n } else {\n this._o.maxDate = defaults.maxDate;\n this._o.maxYear = defaults.maxYear;\n this._o.maxMonth = defaults.maxMonth;\n this._o.endRange = defaults.endRange;\n }\n\n this.draw();\n },\n\n setStartRange: function(value)\n {\n this._o.startRange = value;\n },\n\n setEndRange: function(value)\n {\n this._o.endRange = value;\n },\n\n /**\n * refresh the HTML\n */\n draw: function(force)\n {\n if (!this._v && !force) {\n return;\n }\n var opts = this._o,\n minYear = opts.minYear,\n maxYear = opts.maxYear,\n minMonth = opts.minMonth,\n maxMonth = opts.maxMonth,\n html = '',\n randId;\n\n if (this._y <= minYear) {\n this._y = minYear;\n if (!isNaN(minMonth) && this._m < minMonth) {\n this._m = minMonth;\n }\n }\n if (this._y >= maxYear) {\n this._y = maxYear;\n if (!isNaN(maxMonth) && this._m > maxMonth) {\n this._m = maxMonth;\n }\n }\n\n for (var c = 0; c < opts.numberOfMonths; c++) {\n randId = 'pika-title-' + Math.random().toString(36).replace(/[^a-z]+/g, '').substr(0, 2);\n html += '<div class=\"pika-lendar\">' + renderTitle(this, c, this.calendars[c].year, this.calendars[c].month, this.calendars[0].year, randId) + this.render(this.calendars[c].year, this.calendars[c].month, randId) + '</div>';\n }\n\n this.el.innerHTML = html;\n\n if (opts.bound) {\n if(opts.field.type !== 'hidden') {\n sto(function() {\n opts.trigger.focus();\n }, 1);\n }\n }\n\n if (typeof this._o.onDraw === 'function') {\n this._o.onDraw(this);\n }\n\n if (opts.bound) {\n // let the screen reader user know to use arrow keys\n opts.field.setAttribute('aria-label', opts.ariaLabel);\n }\n },\n\n adjustPosition: function()\n {\n var field, pEl, width, height, viewportWidth, viewportHeight, scrollTop, left, top, clientRect, leftAligned, bottomAligned;\n\n if (this._o.container) return;\n\n this.el.style.position = 'absolute';\n\n field = this._o.trigger;\n pEl = field;\n width = this.el.offsetWidth;\n height = this.el.offsetHeight;\n viewportWidth = window.innerWidth || document.documentElement.clientWidth;\n viewportHeight = window.innerHeight || document.documentElement.clientHeight;\n scrollTop = window.pageYOffset || document.body.scrollTop || document.documentElement.scrollTop;\n leftAligned = true;\n bottomAligned = true;\n\n if (typeof field.getBoundingClientRect === 'function') {\n clientRect = field.getBoundingClientRect();\n left = clientRect.left + window.pageXOffset;\n top = clientRect.bottom + window.pageYOffset;\n } else {\n left = pEl.offsetLeft;\n top = pEl.offsetTop + pEl.offsetHeight;\n while((pEl = pEl.offsetParent)) {\n left += pEl.offsetLeft;\n top += pEl.offsetTop;\n }\n }\n\n // default position is bottom & left\n if ((this._o.reposition && left + width > viewportWidth) ||\n (\n this._o.position.indexOf('right') > -1 &&\n left - width + field.offsetWidth > 0\n )\n ) {\n left = left - width + field.offsetWidth;\n leftAligned = false;\n }\n if ((this._o.reposition && top + height > viewportHeight + scrollTop) ||\n (\n this._o.position.indexOf('top') > -1 &&\n top - height - field.offsetHeight > 0\n )\n ) {\n top = top - height - field.offsetHeight;\n bottomAligned = false;\n }\n\n this.el.style.left = left + 'px';\n this.el.style.top = top + 'px';\n\n addClass(this.el, leftAligned ? 'left-aligned' : 'right-aligned');\n addClass(this.el, bottomAligned ? 'bottom-aligned' : 'top-aligned');\n removeClass(this.el, !leftAligned ? 'left-aligned' : 'right-aligned');\n removeClass(this.el, !bottomAligned ? 'bottom-aligned' : 'top-aligned');\n },\n\n /**\n * render HTML for a particular month\n */\n render: function(year, month, randId)\n {\n var opts = this._o,\n now = new Date(),\n days = getDaysInMonth(year, month),\n before = new Date(year, month, 1).getDay(),\n data = [],\n row = [];\n setToStartOfDay(now);\n if (opts.firstDay > 0) {\n before -= opts.firstDay;\n if (before < 0) {\n before += 7;\n }\n }\n var previousMonth = month === 0 ? 11 : month - 1,\n nextMonth = month === 11 ? 0 : month + 1,\n yearOfPreviousMonth = month === 0 ? year - 1 : year,\n yearOfNextMonth = month === 11 ? year + 1 : year,\n daysInPreviousMonth = getDaysInMonth(yearOfPreviousMonth, previousMonth);\n var cells = days + before,\n after = cells;\n while(after > 7) {\n after -= 7;\n }\n cells += 7 - after;\n var isWeekSelected = false;\n for (var i = 0, r = 0; i < cells; i++)\n {\n var day = new Date(year, month, 1 + (i - before)),\n isSelected = isDate(this._d) ? compareDates(day, this._d) : false,\n isToday = compareDates(day, now),\n hasEvent = opts.events.indexOf(day.toDateString()) !== -1 ? true : false,\n isEmpty = i < before || i >= (days + before),\n dayNumber = 1 + (i - before),\n monthNumber = month,\n yearNumber = year,\n isStartRange = opts.startRange && compareDates(opts.startRange, day),\n isEndRange = opts.endRange && compareDates(opts.endRange, day),\n isInRange = opts.startRange && opts.endRange && opts.startRange < day && day < opts.endRange,\n isDisabled = (opts.minDate && day < opts.minDate) ||\n (opts.maxDate && day > opts.maxDate) ||\n (opts.disableWeekends && isWeekend(day)) ||\n (opts.disableDayFn && opts.disableDayFn(day));\n\n if (isEmpty) {\n if (i < before) {\n dayNumber = daysInPreviousMonth + dayNumber;\n monthNumber = previousMonth;\n yearNumber = yearOfPreviousMonth;\n } else {\n dayNumber = dayNumber - days;\n monthNumber = nextMonth;\n yearNumber = yearOfNextMonth;\n }\n }\n\n var dayConfig = {\n day: dayNumber,\n month: monthNumber,\n year: yearNumber,\n hasEvent: hasEvent,\n isSelected: isSelected,\n isToday: isToday,\n isDisabled: isDisabled,\n isEmpty: isEmpty,\n isStartRange: isStartRange,\n isEndRange: isEndRange,\n isInRange: isInRange,\n showDaysInNextAndPreviousMonths: opts.showDaysInNextAndPreviousMonths,\n enableSelectionDaysInNextAndPreviousMonths: opts.enableSelectionDaysInNextAndPreviousMonths\n };\n\n if (opts.pickWholeWeek && isSelected) {\n isWeekSelected = true;\n }\n\n row.push(renderDay(dayConfig));\n\n if (++r === 7) {\n if (opts.showWeekNumber) {\n row.unshift(renderWeek(i - before, month, year, opts.firstWeekOfYearMinDays));\n }\n data.push(renderRow(row, opts.isRTL, opts.pickWholeWeek, isWeekSelected));\n row = [];\n r = 0;\n isWeekSelected = false;\n }\n }\n return renderTable(opts, data, randId);\n },\n\n isVisible: function()\n {\n return this._v;\n },\n\n show: function()\n {\n if (!this.isVisible()) {\n this._v = true;\n this.draw();\n removeClass(this.el, 'is-hidden');\n if (this._o.bound) {\n addEvent(document, 'click', this._onClick);\n this.adjustPosition();\n }\n if (typeof this._o.onOpen === 'function') {\n this._o.onOpen.call(this);\n }\n }\n },\n\n hide: function()\n {\n var v = this._v;\n if (v !== false) {\n if (this._o.bound) {\n removeEvent(document, 'click', this._onClick);\n }\n\n if (!this._o.container) {\n this.el.style.position = 'static'; // reset\n this.el.style.left = 'auto';\n this.el.style.top = 'auto';\n }\n addClass(this.el, 'is-hidden');\n this._v = false;\n if (v !== undefined && typeof this._o.onClose === 'function') {\n this._o.onClose.call(this);\n }\n }\n },\n\n /**\n * GAME OVER\n */\n destroy: function()\n {\n var opts = this._o;\n\n this.hide();\n removeEvent(this.el, 'mousedown', this._onMouseDown, true);\n removeEvent(this.el, 'touchend', this._onMouseDown, true);\n removeEvent(this.el, 'change', this._onChange);\n if (opts.keyboardInput) {\n removeEvent(document, 'keydown', this._onKeyChange);\n }\n if (opts.field) {\n removeEvent(opts.field, 'change', this._onInputChange);\n if (opts.bound) {\n removeEvent(opts.trigger, 'click', this._onInputClick);\n removeEvent(opts.trigger, 'focus', this._onInputFocus);\n removeEvent(opts.trigger, 'blur', this._onInputBlur);\n }\n }\n if (this.el.parentNode) {\n this.el.parentNode.removeChild(this.el);\n }\n }\n\n };\n\n return Pikaday;\n}));\n","window.StoreConnectUI = window.StoreConnectUI || {};\n\nwindow.StoreConnectUI.Sort = function() {\n document.addEventListener('DOMContentLoaded', function() {\n const sort_checked = document.querySelector('[data-filters] input[name=sort][checked=\"checked\"]');\n\n if (!sort_checked) {\n const input = document.querySelector('[data-filters] input[name=sort]');\n if (input){\n document.querySelector('[data-sort] input[name=sort][value=' + input.value + ']').setAttribute('checked', \"checked\");\n }\n }\n });\n\n return {\n update: id => {\n document.querySelector('[data-filters] input[name=sort]').value = id;\n document.querySelector('[data-filters]').submit();\n }\n }\n}();\n","window.StoreConnectUI = window.StoreConnectUI || {};\n\nwindow.StoreConnectUI.Tabs = function() {\n let sets = {};\n\n document.addEventListener('DOMContentLoaded', function() {\n const tabSets = document.querySelectorAll('[data-tabs]');\n\n if (tabSets.length > 0) {\n [...tabSets].map(set => init(set));\n }\n });\n\n function init(set) {\n const setId = set.getAttribute('data-tabs');\n const tabsInSet = [...set.querySelectorAll('[data-tab]')];\n const triggersInSet = [...set.querySelectorAll('[data-tab-trigger]')];\n const activeTabInSet = getActiveTabElem(tabsInSet);\n\n sets[setId] = {\n tabs: tabsInSet,\n triggers: triggersInSet,\n active: activeTabInSet\n }\n\n // Activate the first tab if none are already active\n if (activeTabInSet === undefined) {\n if (tabsInSet[0] === undefined) {\n return;\n }\n const firstTabId = getId(tabsInSet[0]);\n\n activate(firstTabId, setId);\n }\n\n // Attach click handlers\n triggersInSet.map(trigger => trigger.addEventListener('click', event => {\n const tabId = trigger.getAttribute('data-tab-trigger');\n const set = document.querySelector('[data-tabs=' + setId + ']');\n const tabInSet = getTabElem(tabId, set);\n const triggerInSet = getTriggerElem(tabId, set);\n\n if (setId === \"fulfilment\" || setId == \"payment\") {\n deactivateAllTabs(setId);\n activate(tabId, setId);\n return;\n }\n\n if (tabInSet.classList.contains('is-active')) {\n tabInSet.classList.remove('is-active');\n triggerInSet.classList.remove('is-active');\n } else {\n sets[setId].active = tabInSet;\n tabInSet.classList.add('is-active');\n triggerInSet.classList.add('is-active');\n }\n }));\n\n // Adds 'is-last' class to last tab in set\n setClassForLastTab(setId);\n }\n\n function activate(tabId, setId) {\n const set = document.querySelector('[data-tabs=' + setId + ']');\n const tabInSet = getTabElem(tabId, set);\n const triggerInSet = getTriggerElem(tabId, set);\n\n sets[setId].active = tabInSet;\n tabInSet.classList.remove('u-hide');\n triggerInSet.classList.toggle('is-active');\n }\n\n function deactivateAllTabs(setId) {\n sets[setId].tabs.map(tab => tab.classList.add('u-hide'));\n sets[setId].triggers.map(trigger => trigger.classList.remove('is-active'));\n }\n\n function getId(tab) {\n return tab.getAttribute('data-tab');\n }\n\n function getTabElem(id, set) {\n return set.querySelector('[data-tab=' + id + ']');\n }\n\n function getTriggerElem(id, set) {\n return set.querySelector('[data-tab-trigger=' + id + ']');\n }\n\n function getActiveTabElem(tabsInSet) {\n return tabsInSet.filter(tab => !tab.classList.contains('u-hide'))[0];\n }\n\n function setClassForLastTab(setId) {\n const tabsInSet = sets[setId].tabs;\n const lastTabInSet = tabsInSet[tabsInSet.length - 1];\n\n lastTabInSet.classList.add('is-last');\n }\n\n function returnNextTab() {\n return tabs[tabs.indexOf(active) + 1];\n }\n\n function returnPrevTab() {\n return tabs[tabs.indexOf(active) - 1];\n }\n\n return {\n activate: (id) => activate(document.querySelector('[data-tab=' + id + ']')),\n\n next: () => {\n const id = returnNextTab().getAttribute('data-tab');\n\n deactivateAllTabs();\n activate(id);\n },\n\n prev: () => {\n const id = returnPrevTab().getAttribute('data-tab');\n\n deactivateAllTabs();\n activate(id);\n }\n }\n}();\n","import 'ion-rangeslider'\n\n$(function() {\n $('[data-js-range-slider]').ionRangeSlider({\n onFinish: function (data) {\n $('[data-js-range-min]').val(data.from);\n $('[data-js-range-max]').val(data.to);\n\n // OVERRIDE\n // In core we prevent slider from submitting on mobile\n // But we allow here because of layout differences\n // if (!mediumAndUp()) { return; }\n // END OF OVERRIDE\n $('[data-filters]').submit();\n },\n });\n});\n","(function(){\n function setupModal() {\n // DOM nodes\n const modalOpenTriggers = Array.from(document.querySelectorAll('[data-open-modal]'));\n const modalCloseTriggers = Array.from(document.querySelectorAll('[data-close-modal]'));\n const modals = Array.from(document.querySelectorAll('[data-modal]'));\n\n // Methods\n function openModal(id) {\n const modal = document.querySelector(`[data-modal=\"${id}\"]`);\n\n modal.removeAttribute('hidden');\n }\n\n function closeModal(id) {\n const modal = document.querySelector(`[data-modal=\"${id}\"]`);\n\n modal.setAttribute('hidden','hidden');\n }\n\n // Attach event handlers\n modalOpenTriggers.forEach(function(trigger) {\n trigger.addEventListener('click', function(event) {\n const id = event.target.getAttribute('data-open-modal');\n\n openModal(id)\n }, false)\n });\n\n modalCloseTriggers.forEach(function(trigger) {\n trigger.addEventListener('click', function(event) {\n const id = event.target.getAttribute('data-close-modal');\n\n closeModal(id)\n }, false)\n });\n\n modals.forEach(function(modal) {\n modal.addEventListener('click', function(event) {\n const clicked = event.target;\n \n if (clicked.hasAttribute('data-modal')) {\n const id = clicked.getAttribute('data-modal');\n\n closeModal(id);\n }\n }, true)\n });\n }\n\n // Init when DOM is ready\n document.addEventListener('DOMContentLoaded', setupModal, false);\n}());\n","window.StoreConnectTheme = window.StoreConnectTheme || {};\n\n$(function () {\n window.StoreConnectTheme.OptionSelectShowHandler.init();\n});\n\nwindow.StoreConnectTheme.OptionSelectShowHandler = {\n init: function (self = this) {\n self.hideAll();\n $(\"[data-option-select-trigger]\").each(function (index, target) {\n self.showTarget(target.value);\n });\n\n $(\"[data-option-select-trigger]\").on(\"change\", function (e) {\n var clicked = e.target;\n self.hideAll();\n self.showTarget(clicked.value);\n });\n },\n hideAll: function () {\n $(\"[data-option-select-target]\").hide();\n },\n showTarget: function (target) {\n if (target != \"\") {\n $(\"[data-option-select-target='\" + target + \"']\").show();\n }\n }\n}\n","// overridden\n\n(function() { \n function init() {\n var target = document.querySelectorAll('[data-search-target]');\n\n $(target).hide()\n }\n\n function onClick(event) {\n var triggerAttribute = 'data-search-trigger';\n var targetAttribute = 'data-search-target';\n var target = document.querySelector('[' + targetAttribute + ']');\n var input = document.querySelector(\"[data-search-input]\");\n var clicked = event.target;\n\n if (clicked.hasAttribute(triggerAttribute)) {\n event.preventDefault();\n $(target).slideToggle();\n $(input).focus();\n } else {\n if (!clicked.hasAttribute(targetAttribute) && !clicked.hasAttribute(\"data-search-input\")) {\n $(target).slideUp();\n }\n }\n }\n\n document.addEventListener('DOMContentLoaded', init, false);\n document.addEventListener('click', onClick, false);\n}());\n","window.StoreConnectTheme = window.StoreConnectTheme || {};\n\n$(function () {\n window.StoreConnectTheme.TabVerticalHandler.showFirstVisibleTabByDefault();\n\n $(\"[data-vtab-trigger]\").on(\"click\", function (e) {\n var clicked = e.target;\n var tabSectionId = clicked.getAttribute(\"data-vtab-trigger\");\n var tabTriggers = $(\"[data-vtab-trigger]\");\n\n tabTriggers.removeClass(\"is-active\");\n $(clicked).addClass(\"is-active\");\n\n $(\"[data-section]\").prev().removeClass(\"is-active\");\n\n $(\"[data-section=\" + tabSectionId + \"]\")\n .prev()\n .addClass(\"is-active\");\n });\n});\n\n\nwindow.StoreConnectTheme.TabVerticalHandler = {\n showFirstVisibleTabByDefault: function(self = this) {\n $('[data-vtab-trigger]').removeClass('is-active');\n var firstVerticalTabSelector = $('[data-vtab-trigger]:visible').first();\n firstVerticalTabSelector.addClass('is-active');\n\n if (firstVerticalTabSelector.length > 0) {\n var tabSectionId = firstVerticalTabSelector[0].getAttribute(\"data-vtab-trigger\");\n $(\"[data-section=\" + tabSectionId + \"]\")\n .prev()\n .addClass(\"is-active\");\n }\n \n $('[data-vtab-trigger]').last().addClass('is-last');\n $('[data-vtab-panel]').last().addClass('is-last');\n }\n}\n"],"sourceRoot":""}