{"version":3,"sources":["../node_modules/react/index.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../../modules/BrowserRouter.js","../../modules/HashRouter.js","../../modules/utils/locationUtils.js","../../modules/Link.js","../../modules/NavLink.js","../node_modules/prop-types/index.js","../node_modules/react-scroll/modules/index.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/tiny-invariant/dist/tiny-invariant.esm.js","../node_modules/resolve-pathname/esm/resolve-pathname.js","../node_modules/value-equal/esm/value-equal.js","../node_modules/history/esm/history.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/react-burger-menu/lib/menuFactory.js","../node_modules/tiny-warning/dist/tiny-warning.esm.js","../node_modules/mini-create-react-context/dist/esm/index.js","../../modules/RouterContext.js","../../modules/Router.js","../../modules/MemoryRouter.js","../../modules/Lifecycle.js","../../modules/matchPath.js","../../modules/Route.js","../../modules/StaticRouter.js","../../modules/Switch.js","../../modules/hooks.js","../node_modules/react-dom/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/react-scroll/modules/mixins/scroller.js","../node_modules/react-scroll/modules/mixins/utils.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/react-scroll/modules/mixins/scroll-link.js","../node_modules/react-scroll/modules/mixins/scroll-spy.js","../node_modules/react-scroll/modules/mixins/passive-event-listeners.js","../node_modules/react-scroll/modules/mixins/scroll-events.js","../node_modules/@babel/runtime/helpers/interopRequireDefault.js","../node_modules/@babel/runtime/helpers/inheritsLoose.js","../node_modules/react-router/node_modules/path-to-regexp/index.js","../node_modules/object-assign/index.js","../node_modules/webpack/buildin/global.js","../node_modules/react-is/index.js","../node_modules/react-scroll/modules/mixins/animate-scroll.js","../node_modules/react-scroll/modules/mixins/scroll-hash.js","../node_modules/react-scroll/modules/mixins/scroll-element.js","../node_modules/@material-ui/icons/utils/createSvgIcon.js","../node_modules/react-burger-menu/lib/snapsvgImporter.js","../node_modules/react-responsive-carousel/lib/cssClasses.js","../node_modules/react-responsive-carousel/lib/CSSTranslate.js","../node_modules/react-easy-swipe/lib/index.js","../node_modules/react-responsive-carousel/lib/components/Thumbs.js","../node_modules/gud/index.js","../node_modules/@material-ui/icons/ArrowDropUp.js","../node_modules/@material-ui/icons/ArrowDropDown.js","../node_modules/react-burger-menu/lib/BurgerMenu.js","../node_modules/react-responsive-carousel/lib/index.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/scheduler/index.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-router/node_modules/isarray/index.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-scroll/modules/components/Link.js","../node_modules/lodash.throttle/index.js","../node_modules/react-scroll/modules/mixins/smooth.js","../node_modules/react-scroll/modules/mixins/cancel-events.js","../node_modules/react-scroll/modules/components/Button.js","../node_modules/react-scroll/modules/components/Element.js","../node_modules/react-scroll/modules/mixins/Helpers.js","../node_modules/@babel/runtime/helpers/extends.js","../node_modules/react-burger-menu/lib/menus/slide.js","../node_modules/react-burger-menu/lib/baseStyles.js","../node_modules/react-burger-menu/lib/BurgerIcon.js","../node_modules/react-burger-menu/lib/CrossIcon.js","../node_modules/react-burger-menu/lib/menus/stack.js","../node_modules/react-burger-menu/lib/menus/elastic.js","../node_modules/snapsvg-cjs/dist/snap.svg-cjs.js","../node_modules/eve/eve.js","../node_modules/react-burger-menu/lib/menus/bubble.js","../node_modules/react-burger-menu/lib/menus/push.js","../node_modules/react-burger-menu/lib/menus/pushRotate.js","../node_modules/react-burger-menu/lib/menus/scaleDown.js","../node_modules/react-burger-menu/lib/menus/scaleRotate.js","../node_modules/react-burger-menu/lib/menus/fallDown.js","../node_modules/react-burger-menu/lib/menus/reveal.js","../node_modules/react-responsive-carousel/lib/components/Carousel.js","../node_modules/classnames/index.js","../node_modules/react-easy-swipe/lib/react-swipe.js","../node_modules/react-responsive-carousel/lib/dimensions.js","../node_modules/react-responsive-carousel/lib/customPropTypes.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/clsx/dist/clsx.m.js","../node_modules/is-in-browser/dist/module.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/jss/dist/jss.esm.js","../node_modules/@material-ui/styles/esm/mergeClasses/mergeClasses.js","../node_modules/@material-ui/styles/esm/makeStyles/multiKeyStore.js","../node_modules/@material-ui/styles/esm/useTheme/ThemeContext.js","../node_modules/@material-ui/styles/esm/useTheme/useTheme.js","../node_modules/@material-ui/styles/esm/ThemeProvider/nested.js","../node_modules/@material-ui/styles/esm/createGenerateClassName/createGenerateClassName.js","../node_modules/jss-plugin-rule-value-function/dist/jss-plugin-rule-value-function.esm.js","../node_modules/jss-plugin-global/dist/jss-plugin-global.esm.js","../node_modules/jss-plugin-nested/dist/jss-plugin-nested.esm.js","../node_modules/hyphenate-style-name/index.js","../node_modules/jss-plugin-camel-case/dist/jss-plugin-camel-case.esm.js","../node_modules/jss-plugin-default-unit/dist/jss-plugin-default-unit.esm.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/css-vendor/dist/css-vendor.esm.js","../node_modules/jss-plugin-vendor-prefixer/dist/jss-plugin-vendor-prefixer.esm.js","../node_modules/jss-plugin-props-sort/dist/jss-plugin-props-sort.esm.js","../node_modules/@material-ui/styles/esm/jssPreset/jssPreset.js","../node_modules/@material-ui/styles/esm/StylesProvider/StylesProvider.js","../node_modules/@material-ui/styles/esm/makeStyles/indexCounter.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@material-ui/utils/esm/deepmerge.js","../node_modules/@material-ui/styles/esm/getStylesCreator/getStylesCreator.js","../node_modules/@material-ui/styles/esm/getStylesCreator/noopTheme.js","../node_modules/@material-ui/styles/esm/makeStyles/makeStyles.js","../node_modules/@material-ui/styles/esm/getThemeProps/getThemeProps.js","../node_modules/@material-ui/styles/esm/withStyles/withStyles.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@material-ui/core/esm/styles/createBreakpoints.js","../node_modules/@material-ui/core/esm/styles/createMixins.js","../node_modules/@material-ui/core/esm/colors/common.js","../node_modules/@material-ui/core/esm/colors/grey.js","../node_modules/@material-ui/core/esm/colors/indigo.js","../node_modules/@material-ui/core/esm/colors/pink.js","../node_modules/@material-ui/core/esm/colors/red.js","../node_modules/@material-ui/core/esm/colors/orange.js","../node_modules/@material-ui/core/esm/colors/blue.js","../node_modules/@material-ui/core/esm/colors/green.js","../node_modules/@material-ui/core/esm/styles/colorManipulator.js","../node_modules/@material-ui/core/esm/styles/createPalette.js","../node_modules/@material-ui/core/esm/styles/createTypography.js","../node_modules/@material-ui/core/esm/styles/shadows.js","../node_modules/@material-ui/core/esm/styles/shape.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@material-ui/system/esm/merge.js","../node_modules/@material-ui/system/esm/breakpoints.js","../node_modules/@material-ui/system/esm/spacing.js","../node_modules/@material-ui/system/esm/memoize.js","../node_modules/@material-ui/core/esm/styles/createSpacing.js","../node_modules/@material-ui/core/esm/styles/transitions.js","../node_modules/@material-ui/core/esm/styles/zIndex.js","../node_modules/@material-ui/core/esm/styles/createMuiTheme.js","../node_modules/@material-ui/core/esm/styles/defaultTheme.js","../node_modules/@material-ui/core/esm/styles/withStyles.js","../node_modules/@material-ui/core/esm/utils/capitalize.js","../node_modules/@material-ui/core/esm/SvgIcon/SvgIcon.js"],"names":["module","exports","require","_extends","Object","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","this","React","Component","HashRouter","history","createHistory","render","children","props","resolveToLocation","to","currentLocation","normalizeToLocation","createLocation","forwardRefShim","C","forwardRef","LinkAnchor","innerRef","navigate","onClick","rest","event","ex","isModifiedEvent","forwardedRef","Link","component","replace","RouterContext","context","location","href","method","ariaCurrent","activeClassName","activeStyle","classNameProp","className","exact","isActiveProp","isActive","locationProp","strict","styleProp","style","toLocation","path","escapedPath","match","matchPath","classnames","joinClassnames","defineProperty","value","Helpers","ScrollElement","ScrollLink","animateScroll","scrollSpy","Events","scroller","Element","Button","undefined","_Link2","_interopRequireDefault","_Button2","_Element2","_scroller2","_scrollEvents2","_scrollSpy2","_animateScroll2","_scrollLink2","_scrollElement2","_Helpers2","obj","__esModule","default","_inheritsLoose","subClass","superClass","create","constructor","__proto__","invariant","condition","message","Error","isAbsolute","pathname","charAt","spliceOne","list","index","k","n","pop","resolvePathname","from","hasTrailingSlash","toParts","split","fromParts","isToAbs","isFromAbs","mustEndAbs","concat","last","up","part","unshift","result","join","substr","valueOf","valueEqual","a","b","Array","isArray","every","item","aValue","bValue","keys","addLeadingSlash","stripLeadingSlash","stripBasename","prefix","toLowerCase","indexOf","hasBasename","stripTrailingSlash","slice","createPath","search","hash","state","hashIndex","searchIndex","parsePath","decodeURI","e","URIError","locationsAreEqual","createTransitionManager","prompt","listeners","setPrompt","nextPrompt","confirmTransitionTo","action","getUserConfirmation","callback","appendListener","fn","listener","push","filter","notifyListeners","_len","args","_key","forEach","canUseDOM","window","document","createElement","getConfirmation","confirm","getHistoryState","createBrowserHistory","globalHistory","canUseHistory","ua","navigator","userAgent","supportsHistory","needsHashChangeListener","_props","_props$forceRefresh","forceRefresh","_props$getUserConfirm","_props$keyLength","keyLength","basename","getDOMLocation","historyState","_ref","_window$location","createKey","Math","random","toString","transitionManager","setState","nextState","handlePopState","isExtraneousPopstateEvent","handlePop","handleHashChange","forceNextPop","ok","fromLocation","toIndex","allKeys","fromIndex","delta","go","revertPop","initialLocation","createHref","listenerCount","checkDOMListeners","addEventListener","removeEventListener","isBlocked","pushState","prevIndex","nextKeys","replaceState","goBack","goForward","block","unblock","listen","unlisten","HashPathCoders","hashbang","encodePath","decodePath","noslash","slash","stripHash","url","getHashPath","substring","replaceHashPath","createHashHistory","_props$hashType","hashType","_HashPathCoders$hashT","ignorePath","encodedPath","prevLocation","allPaths","lastIndexOf","baseTag","querySelector","getAttribute","pushHashPath","nextPaths","clamp","lowerBound","upperBound","min","max","createMemoryHistory","_props$initialEntries","initialEntries","_props$initialIndex","initialIndex","entries","map","entry","nextIndex","nextEntries","splice","canGo","_objectWithoutPropertiesLoose","excluded","sourceKeys","_createClass","defineProperties","descriptor","enumerable","configurable","writable","Constructor","protoProps","staticProps","_react","_react2","_reactDom2","_propTypes2","_baseStyles2","_BurgerIcon2","_CrossIcon2","styles","Menu","_Component","instance","TypeError","_classCallCheck","_x3","_x4","_x5","_again","object","property","receiver","Function","desc","getOwnPropertyDescriptor","getter","get","parent","getPrototypeOf","_get","isOpen","setPrototypeOf","_inherits","_this","options","noStateChange","newState","applyWrapperStyles","onStateChange","disableAutoFocus","firstItem","focus","activeElement","blur","body","timeoutId","clearTimeout","setTimeout","set","applyClass","el","classList","htmlClassName","bodyClassName","pageWrap","pageWrapId","handleExternalWrapper","outerContainer","outerContainerId","id","wrapperStyles","wrapper","getElementById","builtStyles","getStyle","prop","applyOverflow","console","error","inline","propName","toUpperCase","output","noTransition","transition","width","formattedWidth","right","disableCloseOnEsc","keyCode","toggleMenu","disableOverlayClick","customOnKeyDown","onkeydown","listenForClose","bind","prevProps","_this2","svg","morphShape","findDOMNode","lib","select","animate","attr","pathInitial","_this3","noOverlay","overlayClassName","trim","shouldDisableOverlayClick","getStyles","morphShapeClassName","height","viewBox","preserveAspectRatio","d","menuClassName","itemListClassName","Children","extraProps","itemClassName","tabIndex","cloneElement","customCrossIcon","customIcon","crossButtonClassName","crossClassName","customBurgerIcon","burgerButtonClassName","barClassName","burgerBarClassName","onIconStateChange","propTypes","string","oneOfType","element","oneOf","func","bool","isRequired","number","onIconHoverChange","defaultProps","warning","createEventEmitter","handlers","on","handler","off","h","newValue","changedBits","createContext","defaultValue","calculateChangedBits","_Provider$childContex","_Consumer$contextType","contextProp","gud","Provider","emitter","_proto","getChildContext","componentWillReceiveProps","nextProps","oldValue","x","y","childContextTypes","PropTypes","Consumer","_Component2","getValue","onUpdate","observedBits","_proto2","componentDidMount","componentWillUnmount","contextTypes","name","createNamedContext","Router","computeRootMatch","params","isExact","_pendingLocation","staticContext","cache","cacheCount","sensitive","matched","cacheKey","pathCache","regexp","pathToRegexp","compilePath","end","values","memo","Route","base","createURL","staticHandler","methodName","noop","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","process","err","_arrayLikeToArray","arr","len","arr2","_slicedToArray","Symbol","iterator","_arr","_n","_d","_e","_s","_i","next","done","o","minLen","test","_utils2","__mapped","__activeLink","unmount","register","unregister","getElementsByName","getElementsByClassName","setActiveLink","link","getActiveLink","scrollTo","containerId","absolute","container","containerElement","nodeType","scrollOffset","offset","smooth","registered","scrollTop","animateTopScroll","warn","pushHash","loc","getHash","filterElementInContainer","contains","compareDocumentPosition","c","t","getBoundingClientRect","top","scrollY","pageYOffset","getComputedStyle","position","offsetTop","reactIs","REACT_STATICS","contextType","displayName","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","type","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","isMemo","ForwardRef","Memo","getOwnPropertyNames","getOwnPropertySymbols","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","_scrollHash2","protoTypes","activeClass","spy","delay","isDynamic","duration","onSetActive","onSetInactive","ignoreCancelEvents","hashSpy","customScroller","_React$PureComponent","self","ReferenceError","_possibleConstructorReturn","_initialiseProps","active","scrollSpyContainer","getScrollSpyContainer","isMounted","mount","mapContainer","addSpyHandler","spyHandler","stateHandler","handleClick","PureComponent","stopPropagation","preventDefault","isInitialized","elemTopBound","elemBottomBound","containerTop","cords","offsetY","isInside","floor","isOutside","activeLink","changeHash","_lodash","_lodash2","_passiveEventListeners","spyCallbacks","spySetState","scrollSpyContainers","eventHandler","eventThrottler","scrollHandler","addPassiveEventListener","currentPositionY","supportPageOffset","pageXOffset","isCSS1Compat","compatMode","documentElement","addStateHandler","updateStates","s","update","eventName","supportsPassiveOption","opts","passive","removePassiveEventListener","scrollEvent","evtName","remove","isarray","parse","compile","str","tokensToFunction","tokensToRegExp","PATH_REGEXP","RegExp","res","tokens","defaultDelimiter","delimiter","exec","m","escaped","capture","group","modifier","asterisk","partial","repeat","optional","pattern","escapeGroup","escapeString","encodeURIComponentPretty","encodeURI","charCodeAt","matches","flags","data","encode","pretty","encodeURIComponent","token","segment","JSON","stringify","j","attachKeys","re","route","endsWithDelimiter","groups","regexpToRegexp","parts","arrayToRegexp","stringToRegexp","propIsEnumerable","propertyIsEnumerable","toObject","val","test1","String","test2","fromCharCode","test3","letter","shouldUseNative","symbols","g","_smooth2","_cancelEvents2","getAnimationType","defaultEasing","requestAnimationFrameHelper","requestAnimationFrame","webkitRequestAnimationFrame","currentWindowProperties","Date","getTime","easing","timestamp","cancel","deltaTop","round","targetPositionY","startPositionY","start","progress","percent","ceil","easedAnimate","setContainer","delayTimeout","subscribe","isNaN","parseFloat","proceedOptions","scrollToTop","scrollToBottom","scrollHeight","offsetHeight","html","clientHeight","scrollContainerHeight","toY","scrollMore","_utils","scrollHash","mountFlag","initialized","containers","initStateFromHash","isInit","_React$Component","childBindings","domNode","registerElems","parentBindings","ref","_SvgIcon","_extends2","muiName","Snap","_classnames","_classnames2","ROOT","customClassName","_defineProperty","CAROUSEL","isSlider","carousel","WRAPPER","axis","SLIDER","isSwiping","thumbs","slider","animated","ITEM","selected","thumb","slide","ARROW_PREV","disabled","ARROW_NEXT","DOT","dot","define","_reactSwipe","_reactSwipe2","_cssClasses2","_dimensions","_CSSTranslate2","_reactEasySwipe2","Thumbs","selectedItem","hasMount","itemSize","visibleItems","lastPosition","showArrows","images","getImages","setupThumbs","getFirstItem","updateSizes","destroyThumbs","img","toArray","image","itemClass","thumbProps","setThumbsRef","handleClickItem","onKeyDown","labels","onLoad","setMountState","role","itemListStyles","hasPrev","hasNext","currentPosition","transformProp","transitionTime","WebkitTransform","MozTransform","MsTransform","OTransform","transform","msTransform","WebkitTransitionDuration","MozTransitionDuration","MsTransitionDuration","OTransitionDuration","transitionDuration","msTransitionDuration","setItemsWrapperRef","slideRight","leftArrow","tagName","swiping","onSwipeLeft","slideLeft","onSwipeRight","onSwipeMove","onSwipeStart","onSwipeEnd","setItemsListRef","renderItems","rightArrow","propsTypes","thumbWidth","shape","node","itemsWrapperRef","itemsListRef","thumbsRef","total","wrapperSize","clientWidth","outerWidth","_state","onSelectItem","deltaX","positions","moveTo","global","_default","stack","elastic","bubble","pushRotate","scaleDown","scaleRotate","fallDown","reveal","Carousel","_Carousel2","_Thumbs2","l","for","p","q","r","u","v","w","z","A","B","D","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","E","F","refs","updater","G","H","isReactComponent","forceUpdate","I","isPureReactComponent","J","current","K","L","__self","__source","M","f","$$typeof","_owner","O","P","Q","R","keyPrefix","count","S","V","T","U","escape","W","aa","X","N","Y","Z","ba","ReactCurrentDispatcher","ReactCurrentBatchConfig","suspense","ReactCurrentOwner","IsSomeRendererActing","only","Fragment","Profiler","StrictMode","Suspense","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","_context","createFactory","createRef","isValidElement","lazy","_ctor","_status","_result","useCallback","useContext","useDebugValue","useEffect","useImperativeHandle","useLayoutEffect","useMemo","useReducer","useRef","useState","version","onError","da","ea","fa","ha","ia","ja","la","ma","na","oa","currentTarget","ka","pa","qa","ra","sa","extractEvents","eventTypes","ta","phasedRegistrationNames","registrationName","va","wa","dependencies","xa","ya","za","Aa","Ba","Ca","stateNode","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","Pa","Qa","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","Ua","Va","xlinkHref","Wa","Xa","Sa","Ta","Ra","removeAttribute","setAttribute","setAttributeNS","Ya","Za","$a","ab","bb","cb","db","eb","fb","gb","hb","ib","jb","kb","lb","mb","nb","pb","qb","tag","_debugOwner","_debugSource","fileName","lineNumber","return","rb","sb","nodeName","xb","_valueTracker","setValue","stopTracking","tb","yb","checked","zb","defaultChecked","_wrapperState","initialChecked","Ab","initialValue","controlled","Bb","Cb","Db","Eb","ownerDocument","Gb","Fb","Hb","defaultSelected","Ib","dangerouslySetInnerHTML","Jb","Kb","Lb","textContent","Mb","Nb","Ob","Pb","Qb","MSApp","execUnsafeLocalFunction","namespaceURI","innerHTML","firstChild","removeChild","appendChild","Rb","lastChild","nodeValue","Sb","Tb","animationend","animationiteration","animationstart","transitionend","Ub","Vb","Wb","animation","Xb","Yb","Zb","$b","ac","bc","WeakMap","Map","cc","dc","alternate","effectTag","ec","memoizedState","dehydrated","fc","hc","child","sibling","gc","ic","jc","kc","lc","_dispatchListeners","_dispatchInstances","isPropagationStopped","isPersistent","release","mc","nc","srcElement","correspondingUseElement","parentNode","oc","pc","qc","topLevelType","nativeEvent","targetInst","ancestors","rc","eventSystemFlags","sc","containerInfo","tc","uc","has","vc","wc","xc","yc","zc","Ac","Bc","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Kc","blockedOn","Lc","delete","pointerId","Mc","Nc","Pc","unstable_runWithPriority","priority","hydrate","Qc","Rc","Sc","Tc","shift","Uc","unstable_scheduleCallback","unstable_NormalPriority","Vc","Wc","Yc","Zc","$c","ad","bubbled","captured","eventPriority","bd","cd","dd","unstable_UserBlockingPriority","ed","fd","gd","hd","Oc","jd","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","kd","ld","md","setProperty","nd","menuitem","area","br","col","embed","hr","input","keygen","meta","param","track","wbr","od","pd","is","qd","rd","sd","td","ud","vd","nextSibling","xd","HTMLIFrameElement","contentWindow","yd","contentEditable","Dd","Ed","Fd","autoFocus","Gd","__html","Hd","Id","Jd","Kd","previousSibling","Ld","Md","Nd","Od","Pd","Qd","Rd","Sd","Td","dispatchConfig","Ud","_targetInst","Vd","Wd","Xd","Yd","Zd","$d","ae","be","ce","Interface","isDefaultPrevented","defaultPrevented","returnValue","ee","eventPool","fe","destructor","de","getPooled","cancelBubble","persist","eventPhase","bubbles","cancelable","timeStamp","now","isTrusted","extend","ge","he","ie","je","ke","documentMode","le","me","ne","oe","beforeInput","compositionEnd","compositionStart","compositionUpdate","pe","qe","detail","se","ve","locale","which","te","ctrlKey","altKey","metaKey","char","ue","we","color","date","datetime","email","month","password","range","tel","text","time","week","xe","ye","change","ze","Ae","Be","Ce","De","Ee","Fe","Ge","detachEvent","He","Ie","attachEvent","Je","Ke","Le","Me","_isInputEventSupported","Ne","view","Oe","Alt","Control","Meta","Shift","Pe","getModifierState","Qe","Re","Se","Te","Ue","Ve","screenX","screenY","clientX","clientY","pageX","pageY","shiftKey","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","We","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Xe","mouseEnter","mouseLeave","pointerEnter","pointerLeave","Ye","defaultView","parentWindow","$e","af","bf","cf","df","ef","ff","gf","hf","jf","selectionStart","selectionEnd","anchorNode","getSelection","anchorOffset","focusNode","focusOffset","kf","onSelect","lf","animationName","elapsedTime","pseudoElement","mf","clipboardData","nf","of","charCode","pf","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Apps","Scroll","MozPrintableKey","qf","8","9","12","13","16","17","18","19","20","27","32","33","34","35","36","37","38","39","40","45","46","112","113","114","115","116","117","118","119","120","121","122","123","144","145","224","rf","sf","dataTransfer","tf","touches","targetTouches","changedTouches","uf","vf","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","wf","SimpleEventPlugin","EnterLeaveEventPlugin","ChangeEventPlugin","SelectEventPlugin","BeforeInputEventPlugin","yf","zf","Af","Bf","Cf","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Df","Ef","Ff","Gf","__reactInternalMemoizedMergedChildContext","Hf","If","Jf","Kf","unstable_cancelCallback","Lf","unstable_requestPaint","Mf","unstable_now","Nf","unstable_getCurrentPriorityLevel","Of","unstable_ImmediatePriority","Pf","Qf","Rf","unstable_LowPriority","Sf","unstable_IdlePriority","Tf","Uf","unstable_shouldYield","Vf","Wf","Xf","Yf","Zf","$f","ag","bg","cg","dg","eg","fg","gg","hg","ig","jg","kg","lg","mg","ng","og","pg","childExpirationTime","qg","firstContext","expirationTime","rg","sg","responders","tg","ug","updateQueue","baseState","baseQueue","shared","pending","effects","vg","wg","suspenseConfig","payload","xg","yg","zg","ca","Ag","Bg","Cg","Dg","Eg","Fg","Jg","_reactInternalFiber","Gg","Hg","Ig","Kg","shouldComponentUpdate","Lg","Mg","UNSAFE_componentWillReceiveProps","Ng","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","Og","Pg","_stringRef","Qg","Rg","lastEffect","nextEffect","firstEffect","Sg","Tg","mode","elementType","Ug","implementation","Vg","Wg","Xg","Yg","Zg","$g","ah","bh","ch","dh","eh","fh","gh","hh","memoizedProps","revealOrder","ih","responder","jh","kh","lh","mh","nh","oh","ph","qh","rh","sh","th","queue","uh","vh","wh","lastRenderedReducer","eagerReducer","eagerState","lastRenderedState","dispatch","xh","yh","zh","Ah","destroy","deps","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","Jh","Kh","Lh","Mh","Nh","readContext","useResponder","useDeferredValue","useTransition","Oh","Ph","Qh","Rh","Sh","Th","pendingProps","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","di","ei","fi","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","gi","hi","pendingContext","ni","pi","qi","ii","retryTime","ji","fallback","unstable_avoidThisFallback","ki","li","isBackwards","rendering","renderingStartTime","tail","tailExpiration","tailMode","mi","ri","si","wasMultiple","multiple","onclick","size","createElementNS","createTextNode","ti","ui","vi","wi","xi","yi","zi","Ai","Bi","WeakSet","Set","Ci","Fi","Ei","Gi","__reactInternalSnapshotBeforeUpdate","Hi","Ii","Ji","Ki","Li","Di","Mi","Ni","Oi","Pi","Qi","insertBefore","_reactRootContainer","Ri","Si","Ti","display","Ui","Vi","add","then","Wi","Xi","Yi","Zi","$i","componentDidCatch","aj","componentStack","Rj","bj","cj","dj","kj","lj","mj","nj","oj","qj","rj","sj","tj","uj","vj","wj","timeoutMs","xj","yj","zj","lastExpiredTime","Aj","firstPendingTime","lastPingedTime","nextKnownPendingLevel","callbackExpirationTime","callbackPriority","callbackNode","Bj","timeout","Cj","Dj","Ej","Fj","Gj","Hj","finishedWork","finishedExpirationTime","lastSuspendedTime","Ij","timeoutHandle","Jj","busyMinDurationMs","busyDelayMs","Kj","Mj","Nj","pingCache","Oj","ub","Pj","Xc","Qj","Sj","firstSuspendedTime","rangeCount","wb","activeElementDetached","focusedElem","selectionRange","Tj","wd","createRange","setStart","removeAllRanges","addRange","setEnd","left","scrollLeft","vb","Uj","Vj","Wj","hidden","ob","Xj","unstable_observedBits","Zj","pendingChildren","ak","bk","ck","dk","ek","fk","Jc","_internalRoot","gk","ik","hasAttribute","hk","jk","kk","querySelectorAll","form","Lj","lk","findFiberByHostInstance","isDisabled","supportsFiber","inject","onCommitFiberRoot","onCommitFiberUnmount","Yj","overrideHookState","overrideProps","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","bundleType","rendererPackageName","createPortal","flushSync","unmountComponentAtNode","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","MessageChannel","unstable_forceFrameRate","performance","cancelAnimationFrame","port2","port1","onmessage","postMessage","sortIndex","startTime","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_wrapCallback","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","componentName","propFullName","secret","getShim","ReactPropTypes","array","symbol","any","arrayOf","instanceOf","objectOf","checkPropTypes","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Lazy","Portal","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","LinkElement","_temp","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","freeGlobal","freeSelf","root","objectToString","nativeMax","nativeMin","debounce","wait","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","thisArg","leadingEdge","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","remainingWait","debounced","isInvoking","toNumber","isObject","flush","isObjectLike","isSymbol","other","isBinary","pow","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","events","cancelEvent","ButtonElement","ElementWrapper","newProps","defaultScroller","_React$Component2","_menuFactory","_menuFactory2","overlay","background","menuWrap","menu","boxSizing","overflow","itemList","BurgerIcon","_x","_x2","hover","bmBurgerBarsHover","icon","bmIcon","bar","getLineStyle","bmBurgerBars","bmBurgerButton","onMouseOver","isMouseIn","onMouseOut","margin","padding","border","fontSize","cursor","CrossIcon","bmCross","getCrossStyle","bmCrossButton","nthChild","_snapsvgImporter2","pathOpen","mina","easeinout","whiteSpace","eve","requestID","animations","requestAnimFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","idgen","idprefix","timer","sta","ds","dur","speed","spd","stopit","pause","pdif","resume","frame","jj","anim","status","stop","getById","easeout","easein","sqrt","abs","backin","backout","sin","PI","bounce","wrap","glob","doc","Paper","_","win","Str","toFloat","toInt","math","mmax","mmin","colourRegExp","commaSpaces","separator","hsrg","hs","pathCommand","tCommand","pathValues","ID","xlink","xmlns","hub","$","createComment","getAttributeNS","isFinite","repush","cacher","scope","postprocessor","newf","arg","rad","deg","format","tokenRegex","objNotationRegex","all","quote","quotedName","isFunc","replacer","clone","angle","tan","cos","asin","num","acos","atan","atan2","x1","y1","x2","y2","x3","y3","len2","closestPoint","distance2","dx","dy","best","bestLength","scan","scanDistance","pathNode","pathLength","getTotalLength","precision","pathSegList","numberOfItems","bestDistance","Infinity","scanLength","getPointAtLength","before","after","beforeLength","afterLength","beforeDistance","afterDistance","distance","snapTo","tolerance","rem","getRGB","colour","hex","rgbtoString","toHex","red","green","blue","rgb","hsb2rgb","hsl2rgb","hsb","hsl","toFixed","getElementsByTagName","out","getPropertyValue","hsbtoString","hsltoString","prepareRGB","clr","packageRGB","rgb2hsl","rgb2hsb","parsePathString","pathString","pth","paramCounts","parseTransformString","TString","svgTransform2string","tstr","rgTransform","transform2matrix","bbox","tdata","Matrix","tlen","command","inver","invert","translate","rotate","scale","_unit2px","getSomeSVG","mgr","fill","getW","getBBox","getH","nam","ownerSVGElement","add2group","childNodes","snap","paper","anims","mask","frag","make","defs","proto","dom","contentDocument","getSomeDefs","pdefs","query","selectAll","nodelist","setInterval","attributes","firstDefined","json","att","createDocumentFragment","full","div","fragment","toJSON","jsonFiller","nt","css","cssAttr","ajax","postData","req","XMLHttpRequest","open","setRequestHeader","once","onreadystatechange","readyState","send","load","responseText","getElementByPoint","canvas","elementFromPoint","opera","so","elem","box","docElem","clientTop","clientLeft","getOffset","sr","createSVGRect","hits","getIntersectionList","plugin","elproto","unit2px","isWithoutTransform","getClientRects","removed","localMatrix","original","pathfinder","deflt","bboxwt","realPath","matrix","propString","extractTransform","doReturn","papa","getCTM","local","ms","localString","toTransformString","globalMatrix","totalMatrix","diffMatrix","gradientTransform","patternTransform","append","it","appendTo","prepend","first","prependTo","insertAfter","asPX","use","cloneNode","els","ids","uses","urltest","linktest","oldid","old","fs","fixids","toDefs","toPattern","patternUnits","marker","refX","refY","cx","cy","markerWidth","markerHeight","orient","eldata","chld","removeData","outerSVG","innerSVG","toDataURL","btoa","contents","unescape","matrixproto","norm","normalize","mag","aNew","bNew","multLeft","cNew","eNew","skewX","skew","skewY","determinant","row","scalex","shear","scaley","isSimple","isSuperSimple","noRotation","shorter","clipIt","reURLValue","URL","fillStroke","grad","gradient","attrs","deurl","clip","gradrg","setFontSize","getFontSize","stops","seed","step","toAbsolute","txt","baseVal","rx","ry","tp","textPath","tuned","tuner","chunk","setter","textExtract","chi","internal","rgNotSpace","addClass","clazz","finalValue","classes","curClasses","removeClass","pos","hasClass","toggleClass","flag","operators","reUnit","reAddon","getNumber","getUnit","unit","plus","evnt","atr","aUnit","op","bplus","rect","circle","preload","onerror","src","cssText","onload","offsetWidth","ellipse","vbx","vby","vbw","vbh","ptrn","vx","vy","vw","line","polyline","points","polygon","Gstops","GaddStop","inserted","GgetBBox","GsetStops","addStop","gradientLinear","setStops","gradientRadial","fx","fy","gradientUnits","clear","p2s","paths","ps","sleep","r1","r2","r0","rectPath","pathClone","pathArray","getPointAtSegmentLength","p1x","p1y","c1x","c1y","c2x","c2y","p2x","p2y","bezlen","findDotsAtSegment","x4","y4","ll","t2","getTotLen","getLengthFactory","istotal","subpath","onlystart","point","sp","subpaths","path2curve","getSubpathsAtLength","t1","t13","t12","t3","mx","my","nx","ny","alpha","bezierBBox","curveDim","isPointInsideBBox","isBBoxIntersect","bbox1","bbox2","base3","p1","p2","p3","p4","z2","Tvalues","Cvalues","sum","ct","xbase","ybase","comb","intersect","denominator","px","py","px2","py2","interHelper","bez1","bez2","justCount","n1","n2","dots1","dots2","xy","di1","dj1","interPathHelper","path1","path2","x1m","y1m","x2m","y2m","pj","intr","segment1","segment2","pathBBox","dim","xmin","ymin","ellipsePath","getPath","pathToAbsolute","pa0","crz","dots","catmullRom2bezier","l2c","q2c","ax","ay","a2c","large_arc_flag","sweep_flag","recursive","_120","f1","f2","rx2","ry2","f2old","x2old","y2old","c1","s1","c2","s2","hx","hy","m1","m2","m3","m4","newres","x0","y0","b2ac","sqrtb2ac","tvalues","bounds","mt","jlen","curve","bx","by","qx","qy","attrs2","processPath","pcom","fixArc","pp","pcoms1","pcoms2","fixM","a1","a2","pfirst","seg","seg2","seglen","seg2len","crp","iLen","getSubpath","closest","inside","found","intersection","intersectionNumber","isPointInside","toRelative","lowerCase","rel","toCubic","pathi","items","bindings","setproto","Animation","each","begin","callbacker","aname","unbound","insertion","todel","arglen","exclude","names","getEmpty","getViewBox","getColour","path2array","isNumeric","stroke","equal","Number","tt1","tt2","maxlength","equaliseTransform","arr1","bUnit","supportsTouch","touchMap","mousedown","mousemove","mouseup","getScroll","preventTouch","originalEvent","stopTouch","addEvent","realName","scrollX","olde","drag","dragMove","dragi","touch","identifier","_drag","move_scope","dragUp","unmousemove","unmouseup","end_scope","start_scope","unbind","f_in","f_out","scope_in","scope_out","mouseover","mouseout","unhover","unmouseover","unmouseout","draggable","onmove","onstart","onend","origTransform","init","undrag","unmousedown","pproto","rgurl","filstr","filterUnits","def","shadow","grayscale","amount","sepia","saturate","hueRotate","amount2","brightness","contrast","firstLetter","getAlign","way","align","inAnim","_attrs","_callback","curStatus","eq","fkeys","tkeys","saveColor","colors","A100","A200","A400","A700","mui","flat","pink","purple","deeppurple","indigo","lightblue","cyan","teal","lightgreen","lime","yellow","amber","orange","deeporange","brown","grey","bluegrey","turquoise","greensea","sunflower","emerland","nephritis","carrot","pumpkin","peterriver","belizehole","alizarin","pomegranate","amethyst","wisteria","clouds","silver","wetasphalt","midnightblue","concrete","asbestos","importMUIColors","current_event","comaseparator","numsort","lastDefined","objtos","ar","oldstop","indexed","sort","_events","nes","es","sep","exist","subname","cur","nts","inodes","funcs","prune","steps","stepsTotal","nextStep","closeButton","transformOrigin","transformStyle","perspective","perspectiveOrigin","visibility","burgerIcon","customPropTypes","newObj","_interopRequireWildcard","setCarouselWrapperRef","carouselWrapperRef","setListRef","listRef","setItemsRef","itemsRef","autoPlay","increment","interval","clearAutoPlay","resetAutoPlay","stopOnHover","isMouseEntered","startOnLeave","isFocusWithinTheCarousel","navigateWithKeyboard","isHorizontal","prevKey","decrement","cancelClick","onClickItem","handleOnChange","onChange","handleClickThumb","onClickThumb","selectItem","childrenLength","getPosition","finalBoundry","infiniteLoop","axisDelta","handledDelta","setPosition","hasMoved","swipeScrollTolerance","forceReflow","offsetLeft","resetPosition","fromSwipe","needClonedSlide","oldPosition","centerMode","centerSlidePercentage","onClickNext","onClickPrev","onSwipeForward","onSwipeBackwards","changeItem","newIndex","getInitialImage","getVariableImageHeight","complete","onImageLoad","setupCarousel","prevState","setupAutoPlay","destroyAutoPlay","destroyCarousel","bindEvents","initialImage","unbindEvents","carouselWrapper","useKeyboardArrows","isClone","slideProps","minWidth","renderItem","isSelected","showIndicators","renderIndicator","showStatus","statusFormatter","showThumbs","renderThumbs","canShowArrows","itemsClone","firstClone","lastClone","swiperProps","containerStyles","dynamicHeight","itemHeight","onSwipeUp","verticalSwipe","onSwipeDown","renderArrowPrev","swipeable","allowMouseEvents","emulateTouch","renderArrowNext","renderControls","renderStatus","onClickHandler","label","hasOwn","classNames","argType","inner","_propTypes","setHasSupportToCaptureOption","supportsCaptureOption","hasSupport","getSafeEventHandlerOpts","_event$touches$","ReactSwipe","_handleSwipeStart","_handleSwipeMove","_handleSwipeEnd","_onMouseDown","_onMouseMove","_onMouseUp","_setSwiperRef","swiper","mouseDown","_getPosition","moveStart","_getPosition2","moving","movePosition","_objectWithoutProperties","onMouseDown","onTouchStart","onTouchEnd","marginLeft","marginRight","objectWithoutPropertiesLoose","sourceSymbolKeys","toVal","mix","_typeof","isBrowser","_defineProperties","_assertThisInitialized","plainObjectConstrurctor","cloneStyle","newStyle","createRule","decl","jss","declCopy","rule","plugins","onCreateRule","toCssValue","ignoreImportant","cssValue","indentStr","indent","toCss","selector","_options$indent","fallbacks","_prop","_value","_prop2","_value2","allowEmpty","escapeRegex","nativeEscape","CSS","BaseStyleRule","isProcessed","renderer","renderable","sheet","Renderer","force","onChangeValue","isEmpty","isDefined","removeProperty","attached","StyleRule","_BaseStyleRule","selectorText","scoped","generateId","applyTo","setSelector","replaceRule","pluginStyleRule","defaultToStringOptions","atRegExp","ConditionalRule","at","rules","atMatch","RuleList","getRule","addRule","onProcessRule","keyRegExp","pluginConditionalRule","defaultToStringOptions$1","nameRegExp","KeyframesRule","frames","nameMatch","keyRegExp$1","refRegExp","findReferencedKeyframe","keyframes","replaceRef","refKeyframe","onProcessStyle","KeyframeRule","pluginKeyframeRule","FontFaceRule","keyRegExp$2","pluginFontFaceRule","ViewportRule","pluginViewportRule","SimpleRule","keysMap","defaultUpdateOptions","forceUpdateOptions","raw","counter","ruleOptions","_this$options","plugins$$1","updateOne","_this$options2","styleRule","nextValue","_nextValue","_prevValue","StyleSheet","deployed","attach","deploy","detach","insertRule","addRules","added","deleteRule","_this$rules","PluginsRegistry","external","registry","onProcessSheet","processedValue","newPlugin","reduce","sheets","SheetsRegistry","reset","globalThis","ns","moduleId","createGenerateId","ruleCounter","jssId","classNamePrefix","minify","memoize","cssRule","attributeStyleMap","getHead","findPrevNode","insertionPoint","findHigherSheet","findHighestSheet","comment","head","findCommentNode","getNonce","_insertRule","maxIndex","cssRules","appendRule","DomRenderer","hasInsertedRules","media","createStyle","nonce","nextNode","insertionPointElement","insertStyle","Boolean","insertRules","nativeParent","latestNativeParent","parentStyleSheet","ruleStr","nativeRule","getRules","instanceCounter","Jss","isInBrowser","setup","createStyleSheet","removeStyleSheet","hasCSSTOMSupport","mergeClasses","baseClasses","newClasses","nextClasses","multiKeyStore","key1","key2","subCache","ThemeContext","useTheme","hasSymbol","pseudoClasses","fnValuesNs","fnRuleNs","functionPlugin","fnValues","fnRule","GlobalContainerRule","GlobalPrefixedRule","separatorRegExp","addScope","jssGlobal","handleNestedGlobalContainerRule","handlePrefixedGlobalRule","parentRegExp","jssNested","getReplaceRef","replaceParentRefs","nestedProp","parentProp","parentSelectors","nestedSelectors","nested","getOptions","prevOptions","nestingLevel","isNested","isNestedConditional","uppercasePattern","msPattern","toHyphenLower","hyphenateStyleName","hName","convertCase","converted","hyphenate","camelCase","hyphenatedProp","addCamelCasedVersion","regExp","units","bottom","motion","outline","grid","iterate","innerProp","_innerProp","defaultUnit","camelCasedOptions","_unsupportedIterableToArray","_toConsumableArray","iter","js","vendor","browser","isTouch","jsCssMap","Moz","Webkit","appearence","noPrefill","supportedProperty","colorAdjust","toUpper","camelize","pascalize","textOrientation","writingMode","userSelect","breakPropsOld","inlineLogicalOld","newProp","unprefixed","prefixed","pascalized","scrollSnap","overscrollBehavior","propMap","flex2012","propMap$1","propKeys","prefixCss","propertyDetectors","computed","key$1","el$1","cache$1","transitionProperties","transPropsRegExp","prefixTransitionCallback","prefixedValue","supportedValue","jssVendorPrefixer","prefixStyle","changeProp","supportedProp","changeValue","supportedValue$$1","atRule","jssPropsSort","prop0","prop1","jssPreset","functions","vendorPrefixer","propsSort","defaultOptions","disableGeneration","generateClassName","_options$disableGloba","disableGlobal","_options$productionPr","productionPrefix","_options$seed","seedPrefix","styleSheet","theme","createGenerateClassName","sheetsCache","sheetsManager","sheetsRegistry","StylesContext","indexCounter","isPlainObject","deepmerge","getStylesCreator","stylesOrCreator","themingEnabled","overrides","stylesWithOverrides","noopTheme","getClasses","stylesOptions","cacheClasses","lastProp","lastJSS","generate","_ref2","stylesCreator","sheetManager","staticSheet","dynamicStyles","flip","direction","serverGenerateClassName","getDynamicStyles","extracted","dynamicSheet","_ref3","_ref4","useSynchronousEffect","currentKey","makeStyles","classNamePrefixOption","_options$defaultTheme","defaultTheme","stylesOptions2","shouldUpdate","getThemeProps","withStyles","_options$withTheme","withTheme","useStyles","WithStyles","more","createBreakpoints","breakpoints","_breakpoints$values","xs","sm","xl","_breakpoints$unit","_breakpoints$step","between","endIndex","down","upperbound","createMixins","spacing","_toolbar","gutters","paddingLeft","paddingRight","toolbar","minHeight","common","black","white","50","100","200","300","400","500","600","700","800","900","decomposeColor","hexToRgb","recomposeColor","getLuminance","hslToRgb","darken","coefficient","lighten","light","primary","secondary","hint","divider","hoverOpacity","selectedOpacity","disabledBackground","disabledOpacity","focusOpacity","activatedOpacity","dark","addLightOrDark","intent","shade","tonalOffset","main","createPalette","palette","_palette$primary","_palette$secondary","_palette$error","_palette$warning","_palette$info","info","_palette$success","success","_palette$type","_palette$contrastThre","contrastThreshold","_palette$tonalOffset","getContrastText","foreground","lumA","lumB","getContrastRatio","augmentColor","mainShade","lightShade","darkShade","contrastText","types","caseAllCaps","textTransform","createTypography","typography","_ref$fontFamily","fontFamily","_ref$fontSize","_ref$fontWeightLight","fontWeightLight","_ref$fontWeightRegula","fontWeightRegular","_ref$fontWeightMedium","fontWeightMedium","_ref$fontWeightBold","fontWeightBold","_ref$htmlFontSize","htmlFontSize","allVariants","pxToRem2","pxToRem","coef","buildVariant","letterSpacing","casing","variants","h1","h2","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2","caption","overline","createShadow","shadows","borderRadius","merge","acc","defaultBreakpoints","properties","directions","aliases","marginX","marginY","paddingX","paddingY","getCssProperties","_prop$split2","dir","spacingKeys","createUnarySpacing","themeSpacing","getStyleFromPropValue","cssProperties","transformer","propValue","cssProperty","transformed","styleFromPropValue","themeBreakpoints","_themeBreakpoints","breakpoint","handleBreakpoints","filterProps","createSpacing","spacingInput","factor","easeInOut","easeOut","easeIn","sharp","shortest","short","standard","complex","enteringScreen","leavingScreen","formatMs","milliseconds","_options$duration","durationOption","_options$easing","easingOption","_options$delay","animatedProp","getAutoHeightDuration","constant","mobileStepper","speedDial","appBar","drawer","modal","snackbar","tooltip","createMuiTheme","_options$breakpoints","breakpointsInput","_options$mixins","mixinsInput","_options$palette","paletteInput","_options$typography","typographyInput","muiTheme","transitions","argument","withStylesWithoutDefault","capitalize","SvgIcon","_props$color","_props$component","_props$fontSize","htmlColor","titleAccess","_props$viewBox","clsx","focusable","colorPrimary","colorSecondary","colorAction","colorError","colorDisabled","fontSizeInherit","fontSizeSmall","fontSizeLarge"],"mappings":";gHAGEA,EAAOC,QAAUC,EAAQ,K,6BCHZ,SAASC,IAetB,OAdAA,EAAWC,OAAOC,QAAU,SAAUC,GACpC,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CACzC,IAAIG,EAASF,UAAUD,GAEvB,IAAK,IAAII,KAAOD,EACVN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAC/CL,EAAOK,GAAOD,EAAOC,IAK3B,OAAOL,IAGOS,MAAMC,KAAMR,WAf9B,mC,uKCS4BS,IAAMC,U,ICA5BC,E,oJACJC,QAAUC,YAAc,EAAD,O,sCAEvBC,kB,OACS,uBAAQF,QAASJ,KAAjB,QAA+BO,SAAUP,KAAKQ,MAAMD,Y,GAJtCN,IAAMC,WCPxB,IAAMO,EAAoB,SAACC,EAAIC,G,MACtB,oBAAPD,EAAoBA,EAA3B,GAD+B,GAGpBE,EAAsB,SAACF,EAAIC,G,MACjB,kBAAPD,EACVG,YAAeH,EAAI,KAAM,KADtB,GAAP,GCCII,EAAiB,SAAAC,G,OAAC,GAClBC,EAAef,IAAfe,WACN,qBAAWA,IACTA,KAOF,IAAMC,EAAaD,GACjB,c,IAEIE,EAMC,EANDA,SACAC,EAKC,EALDA,SACAC,EAIC,EAJDA,QACGC,EAGF,iDACK/B,EAAW+B,EADhB,OAGCb,EAAQ,OAAH,IAAG,CAAH,MAEPY,QAAS,SAAAE,G,IAEL,GAAaF,KACb,MAAOG,G,MACPD,mBACA,EAICA,EAAD,sBACAA,UACC,GAFD,UAEYhC,GA7BtB,SAAyBgC,G,SACbA,WAAiBA,EAAjBA,QAAiCA,EAAjCA,SAAkDA,EAA5D,UA6BSE,CAJH,KAMEF,mBACAH,Q,OAOJX,MADEM,IAAJ,GACcW,GAEZjB,EAGK,sBAAP,MAWJ,IAAMkB,EAAOV,GACX,c,QAEIW,iBAOC,MAPWV,EAOX,EANDW,EAMC,EANDA,QACAlB,EAKC,EALDA,GACAQ,EAIC,EAJDA,SACGG,EAGF,uD,OAED,kBAACQ,IAAD,eACG,SAAAC,GACC,mB,IAEQ1B,EAAY0B,EAHV,QAKJC,EAAWnB,EACfH,EAAkBC,EAAIoB,EADY,UAElCA,EAFF,UAKME,EAAOD,EAAW3B,aAAH,GAArB,GACMI,EAAQ,OAAH,IAAG,CAAH,MAETwB,KAFS,EAGTb,SAHS,W,IAIDY,EAAWtB,EAAkBC,EAAIoB,EAAvC,WACeF,EAAUxB,EAAH,QAAqBA,EAA3C,MAEA6B,M,OAKAnB,IAAJ,EACEN,MAAYiB,GAAZjB,EAEAA,aAGKP,oBAAP,SCvGJa,EAAiB,SAAAC,G,OAAC,GAClBC,EAAef,IAAfe,WACN,qBAAW,IACTA,KAUcA,GACd,c,QAEI,gBAAgBkB,OAcf,MAd6B,OAc7B,E,IAbDC,uBAaC,MAbiB,SAajB,EAZDC,EAYC,EAZDA,YACWC,EAWV,EAXDC,UACAC,EAUC,EAVDA,MACUC,EAST,EATDC,SACUC,EAQT,EARDX,SACAY,EAOC,EAPDA,OACOC,EAMN,EANDC,MACAnC,EAKC,EALDA,GACAQ,EAIC,EAJDA,SACGG,EAGF,2I,OAED,kBAACQ,IAAD,eACG,SAAAC,GACC,mB,IAEMnB,EAAkB+B,GAAgBZ,EAAxC,SACMgB,EAAalC,EACjBH,EAAkBC,EADkB,GAAtC,GAIkBqC,EAASD,EARjB,SAUJE,EACJD,GAAQA,sCADV,QAGME,EAAQD,EACVE,YAAUvC,EAAD,SAA2B,CAClCoC,KADkC,EAElCR,MAFkC,EAGlCI,WAJN,KAOMF,KAAcD,EAChBA,EAAaS,EADe,GAAhC,GAIMX,EAAYG,EAnD5B,W,2BAA2BU,EAAY,yBAAZA,EAAY,gB,OAC9BA,EAAA,QAAkB,SAAA5D,G,OAAC,KAAnB,KAAP,KAmDY6D,CAAef,EADO,GAA1B,EAGMQ,EAAQJ,EAAW,OAAH,IAAG,CAAH,WAAtB,EAEMjC,EAAQ,OAAH,IAAG,CAAH,C,eACQiC,GAAD,GADP,KAETH,UAFS,EAGTO,MAHS,EAITnC,GAAIoC,GAjCI,G,OAsCNhC,IAAJ,EACEN,MAAYiB,GAAZjB,EAEAA,aAGK,oBAAP,U,gBCpERxB,EAAOC,QAAUC,EAAQ,GAARA,I,6BCfnBE,OAAOiE,eAAepE,EAAS,aAAc,CAC3CqE,OAAO,IAETrE,EAAQsE,QAAUtE,EAAQuE,cAAgBvE,EAAQwE,WAAaxE,EAAQyE,cAAgBzE,EAAQ0E,UAAY1E,EAAQ2E,OAAS3E,EAAQ4E,SAAW5E,EAAQ6E,QAAU7E,EAAQ8E,OAAS9E,EAAQyC,UAAOsC,EAEjM,IAEIC,EAASC,EAFDhF,EAAQ,KAMhBiF,EAAWD,EAFDhF,EAAQ,KAMlBkF,EAAYF,EAFDhF,EAAQ,KAMnBmF,EAAaH,EAFDhF,EAAQ,KAMpBoF,EAAiBJ,EAFDhF,EAAQ,KAMxBqF,EAAcL,EAFDhF,EAAQ,KAMrBsF,EAAkBN,EAFDhF,EAAQ,KAMzBuF,EAAeP,EAFDhF,EAAQ,KAMtBwF,EAAkBR,EAFDhF,EAAQ,KAMzByF,EAAYT,EAFDhF,EAAQ,KAIvB,SAASgF,EAAuBU,GAAO,OAAOA,GAAOA,EAAIC,WAAaD,EAAM,CAAEE,QAASF,GAEvF3F,EAAQyC,KAAOuC,EAAOa,QACtB7F,EAAQ8E,OAASI,EAASW,QAC1B7F,EAAQ6E,QAAUM,EAAUU,QAC5B7F,EAAQ4E,SAAWQ,EAAWS,QAC9B7F,EAAQ2E,OAASU,EAAeQ,QAChC7F,EAAQ0E,UAAYY,EAAYO,QAChC7F,EAAQyE,cAAgBc,EAAgBM,QACxC7F,EAAQwE,WAAagB,EAAaK,QAClC7F,EAAQuE,cAAgBkB,EAAgBI,QACxC7F,EAAQsE,QAAUoB,EAAUG,QAC5B7F,EAAQ6F,QAAU,CAAEpD,KAAMuC,EAAOa,QAASf,OAAQI,EAASW,QAAShB,QAASM,EAAUU,QAASjB,SAAUQ,EAAWS,QAASlB,OAAQU,EAAeQ,QAASnB,UAAWY,EAAYO,QAASpB,cAAec,EAAgBM,QAASrB,WAAYgB,EAAaK,QAAStB,cAAekB,EAAgBI,QAASvB,QAASoB,EAAUG,U,6BC3DpT,SAASC,EAAeC,EAAUC,GAC/CD,EAASpF,UAAYR,OAAO8F,OAAOD,EAAWrF,WAC9CoF,EAASpF,UAAUuF,YAAcH,EACjCA,EAASI,UAAYH,EAHvB,mC,6BCYeI,IAVf,SAAmBC,EAAWC,GAC1B,IAAID,EAIA,MAAM,IAAIE,MANL,sB,oPCDb,SAASC,EAAWC,GAClB,MAA8B,MAAvBA,EAASC,OAAO,GAIzB,SAASC,EAAUC,EAAMC,GACvB,IAAK,IAAIvG,EAAIuG,EAAOC,EAAIxG,EAAI,EAAGyG,EAAIH,EAAKpG,OAAQsG,EAAIC,EAAGzG,GAAK,EAAGwG,GAAK,EAClEF,EAAKtG,GAAKsG,EAAKE,GAGjBF,EAAKI,MAgEQC,MA5Df,SAAyBxF,EAAIyF,QACdnC,IAATmC,IAAoBA,EAAO,IAE/B,IAkBIC,EAlBAC,EAAW3F,GAAMA,EAAG4F,MAAM,MAAS,GACnCC,EAAaJ,GAAQA,EAAKG,MAAM,MAAS,GAEzCE,EAAU9F,GAAM+E,EAAW/E,GAC3B+F,EAAYN,GAAQV,EAAWU,GAC/BO,EAAaF,GAAWC,EAW5B,GATI/F,GAAM+E,EAAW/E,GAEnB6F,EAAYF,EACHA,EAAQ5G,SAEjB8G,EAAUN,MACVM,EAAYA,EAAUI,OAAON,KAG1BE,EAAU9G,OAAQ,MAAO,IAG9B,GAAI8G,EAAU9G,OAAQ,CACpB,IAAImH,EAAOL,EAAUA,EAAU9G,OAAS,GACxC2G,EAA4B,MAATQ,GAAyB,OAATA,GAA0B,KAATA,OAEpDR,GAAmB,EAIrB,IADA,IAAIS,EAAK,EACAtH,EAAIgH,EAAU9G,OAAQF,GAAK,EAAGA,IAAK,CAC1C,IAAIuH,EAAOP,EAAUhH,GAER,MAATuH,EACFlB,EAAUW,EAAWhH,GACH,OAATuH,GACTlB,EAAUW,EAAWhH,GACrBsH,KACSA,IACTjB,EAAUW,EAAWhH,GACrBsH,KAIJ,IAAKH,EAAY,KAAOG,IAAMA,EAAIN,EAAUQ,QAAQ,OAGlDL,GACiB,KAAjBH,EAAU,IACRA,EAAU,IAAOd,EAAWc,EAAU,KAExCA,EAAUQ,QAAQ,IAEpB,IAAIC,EAAST,EAAUU,KAAK,KAI5B,OAFIb,GAA0C,MAAtBY,EAAOE,QAAQ,KAAYF,GAAU,KAEtDA,GCvET,SAASG,EAAQvC,GACf,OAAOA,EAAIuC,QAAUvC,EAAIuC,UAAY/H,OAAOQ,UAAUuH,QAAQrH,KAAK8E,GAkCtDwC,MA/Bf,SAASA,EAAWC,EAAGC,GAErB,GAAID,IAAMC,EAAG,OAAO,EAGpB,GAAS,MAALD,GAAkB,MAALC,EAAW,OAAO,EAEnC,GAAIC,MAAMC,QAAQH,GAChB,OACEE,MAAMC,QAAQF,IACdD,EAAE5H,SAAW6H,EAAE7H,QACf4H,EAAEI,OAAM,SAASC,EAAM5B,GACrB,OAAOsB,EAAWM,EAAMJ,EAAExB,OAKhC,GAAiB,kBAANuB,GAA+B,kBAANC,EAAgB,CAClD,IAAIK,EAASR,EAAQE,GACjBO,EAAST,EAAQG,GAErB,OAAIK,IAAWN,GAAKO,IAAWN,EAAUF,EAAWO,EAAQC,GAErDxI,OAAOyI,KAAKzI,OAAOC,OAAO,GAAIgI,EAAGC,IAAIG,OAAM,SAAS9H,GACzD,OAAOyH,EAAWC,EAAE1H,GAAM2H,EAAE3H,OAIhC,OAAO,G,OC1BT,SAASmI,EAAgB/E,GACvB,MAA0B,MAAnBA,EAAK4C,OAAO,GAAa5C,EAAO,IAAMA,EAE/C,SAASgF,EAAkBhF,GACzB,MAA0B,MAAnBA,EAAK4C,OAAO,GAAa5C,EAAKmE,OAAO,GAAKnE,EAKnD,SAASiF,EAAcjF,EAAMkF,GAC3B,OAJF,SAAqBlF,EAAMkF,GACzB,OAA4D,IAArDlF,EAAKmF,cAAcC,QAAQF,EAAOC,iBAAuE,IAA/C,MAAMC,QAAQpF,EAAK4C,OAAOsC,EAAOxI,SAG3F2I,CAAYrF,EAAMkF,GAAUlF,EAAKmE,OAAOe,EAAOxI,QAAUsD,EAElE,SAASsF,EAAmBtF,GAC1B,MAAwC,MAAjCA,EAAK4C,OAAO5C,EAAKtD,OAAS,GAAasD,EAAKuF,MAAM,GAAI,GAAKvF,EA0BpE,SAASwF,EAAWxG,GAClB,IAAI2D,EAAW3D,EAAS2D,SACpB8C,EAASzG,EAASyG,OAClBC,EAAO1G,EAAS0G,KAChB1F,EAAO2C,GAAY,IAGvB,OAFI8C,GAAqB,MAAXA,IAAgBzF,GAA6B,MAArByF,EAAO7C,OAAO,GAAa6C,EAAS,IAAMA,GAC5EC,GAAiB,MAATA,IAAc1F,GAA2B,MAAnB0F,EAAK9C,OAAO,GAAa8C,EAAO,IAAMA,GACjE1F,EAGT,SAASlC,EAAekC,EAAM2F,EAAO/I,EAAKgB,GACxC,IAAIoB,EAEgB,kBAATgB,GAEThB,EAvCJ,SAAmBgB,GACjB,IAAI2C,EAAW3C,GAAQ,IACnByF,EAAS,GACTC,EAAO,GACPE,EAAYjD,EAASyC,QAAQ,MAEd,IAAfQ,IACFF,EAAO/C,EAASwB,OAAOyB,GACvBjD,EAAWA,EAASwB,OAAO,EAAGyB,IAGhC,IAAIC,EAAclD,EAASyC,QAAQ,KAOnC,OALqB,IAAjBS,IACFJ,EAAS9C,EAASwB,OAAO0B,GACzBlD,EAAWA,EAASwB,OAAO,EAAG0B,IAGzB,CACLlD,SAAUA,EACV8C,OAAmB,MAAXA,EAAiB,GAAKA,EAC9BC,KAAe,MAATA,EAAe,GAAKA,GAkBfI,CAAU9F,IACZ2F,MAAQA,QAIS1E,KAD1BjC,EAAW5C,YAAS,GAAI4D,IACX2C,WAAwB3D,EAAS2D,SAAW,IAErD3D,EAASyG,OACuB,MAA9BzG,EAASyG,OAAO7C,OAAO,KAAY5D,EAASyG,OAAS,IAAMzG,EAASyG,QAExEzG,EAASyG,OAAS,GAGhBzG,EAAS0G,KACqB,MAA5B1G,EAAS0G,KAAK9C,OAAO,KAAY5D,EAAS0G,KAAO,IAAM1G,EAAS0G,MAEpE1G,EAAS0G,KAAO,QAGJzE,IAAV0E,QAA0C1E,IAAnBjC,EAAS2G,QAAqB3G,EAAS2G,MAAQA,IAG5E,IACE3G,EAAS2D,SAAWoD,UAAU/G,EAAS2D,UACvC,MAAOqD,GACP,MAAIA,aAAaC,SACT,IAAIA,SAAS,aAAejH,EAAS2D,SAAW,iFAEhDqD,EAoBV,OAhBIpJ,IAAKoC,EAASpC,IAAMA,GAEpBgB,EAEGoB,EAAS2D,SAE6B,MAAhC3D,EAAS2D,SAASC,OAAO,KAClC5D,EAAS2D,SAAWQ,EAAgBnE,EAAS2D,SAAU/E,EAAgB+E,WAFvE3D,EAAS2D,SAAW/E,EAAgB+E,SAMjC3D,EAAS2D,WACZ3D,EAAS2D,SAAW,KAIjB3D,EAET,SAASkH,EAAkB5B,EAAGC,GAC5B,OAAOD,EAAE3B,WAAa4B,EAAE5B,UAAY2B,EAAEmB,SAAWlB,EAAEkB,QAAUnB,EAAEoB,OAASnB,EAAEmB,MAAQpB,EAAE1H,MAAQ2H,EAAE3H,KAAOyH,EAAWC,EAAEqB,MAAOpB,EAAEoB,OAG7H,SAASQ,IACP,IAAIC,EAAS,KAiCb,IAAIC,EAAY,GA4BhB,MAAO,CACLC,UA5DF,SAAmBC,GAGjB,OADAH,EAASG,EACF,WACDH,IAAWG,IAAYH,EAAS,QAyDtCI,oBArDF,SAA6BxH,EAAUyH,EAAQC,EAAqBC,GAIlE,GAAc,MAAVP,EAAgB,CAClB,IAAInC,EAA2B,oBAAXmC,EAAwBA,EAAOpH,EAAUyH,GAAUL,EAEjD,kBAAXnC,EAC0B,oBAAxByC,EACTA,EAAoBzC,EAAQ0C,GAG5BA,GAAS,GAIXA,GAAoB,IAAX1C,QAGX0C,GAAS,IAmCXC,eA7BF,SAAwBC,GACtB,IAAInH,GAAW,EAEf,SAASoH,IACHpH,GAAUmH,EAAG7J,WAAM,EAAQP,WAIjC,OADA4J,EAAUU,KAAKD,GACR,WACLpH,GAAW,EACX2G,EAAYA,EAAUW,QAAO,SAAUrC,GACrC,OAAOA,IAASmC,OAmBpBG,gBAdF,WACE,IAAK,IAAIC,EAAOzK,UAAUC,OAAQyK,EAAO,IAAI3C,MAAM0C,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC/ED,EAAKC,GAAQ3K,UAAU2K,GAGzBf,EAAUgB,SAAQ,SAAUP,GAC1B,OAAOA,EAAS9J,WAAM,EAAQmK,QAYpC,IAAIG,IAAiC,qBAAXC,SAA0BA,OAAOC,WAAYD,OAAOC,SAASC,eACvF,SAASC,EAAgBlF,EAASmE,GAChCA,EAASY,OAAOI,QAAQnF,IA2C1B,SAASoF,IACP,IACE,OAAOL,OAAOlK,QAAQsI,OAAS,GAC/B,MAAOK,GAGP,MAAO,IASX,SAAS6B,EAAqBpK,QACd,IAAVA,IACFA,EAAQ,IAGT6J,GAAsGhF,aAAU,GACjH,IAAIwF,EAAgBP,OAAOlK,QACvB0K,EAvDN,WACE,IAAIC,EAAKT,OAAOU,UAAUC,UAC1B,QAAmC,IAA9BF,EAAG5C,QAAQ,gBAAuD,IAA/B4C,EAAG5C,QAAQ,iBAA2D,IAAjC4C,EAAG5C,QAAQ,mBAAqD,IAA1B4C,EAAG5C,QAAQ,YAAqD,IAAjC4C,EAAG5C,QAAQ,oBACtJmC,OAAOlK,SAAW,cAAekK,OAAOlK,SAoD3B8K,GAChBC,KA7CsD,IAAnDb,OAAOU,UAAUC,UAAU9C,QAAQ,YA8CtCiD,EAAS5K,EACT6K,EAAsBD,EAAOE,aAC7BA,OAAuC,IAAxBD,GAAyCA,EACxDE,EAAwBH,EAAO3B,oBAC/BA,OAAgD,IAA1B8B,EAAmCd,EAAkBc,EAC3EC,EAAmBJ,EAAOK,UAC1BA,OAAiC,IAArBD,EAA8B,EAAIA,EAC9CE,EAAWlL,EAAMkL,SAAWrD,EAAmBP,EAAgBtH,EAAMkL,WAAa,GAEtF,SAASC,EAAeC,GACtB,IAAIC,EAAOD,GAAgB,GACvBjM,EAAMkM,EAAKlM,IACX+I,EAAQmD,EAAKnD,MAEboD,EAAmBxB,OAAOvI,SAI1BgB,EAHW+I,EAAiBpG,SACnBoG,EAAiBtD,OACnBsD,EAAiBrD,KAI5B,OADIiD,IAAU3I,EAAOiF,EAAcjF,EAAM2I,IAClC7K,EAAekC,EAAM2F,EAAO/I,GAGrC,SAASoM,IACP,OAAOC,KAAKC,SAASC,SAAS,IAAIhF,OAAO,EAAGuE,GAG9C,IAAIU,EAAoBjD,IAExB,SAASkD,EAASC,GAChBlN,YAASiB,EAASiM,GAElBjM,EAAQX,OAASoL,EAAcpL,OAC/B0M,EAAkBnC,gBAAgB5J,EAAQ2B,SAAU3B,EAAQoJ,QAG9D,SAAS8C,EAAehL,IApE1B,SAAmCA,GACjC,YAAuB0C,IAAhB1C,EAAMoH,QAAiE,IAA1CsC,UAAUC,UAAU9C,QAAQ,UAqE1DoE,CAA0BjL,IAC9BkL,EAAUb,EAAerK,EAAMoH,QAGjC,SAAS+D,IACPD,EAAUb,EAAehB,MAG3B,IAAI+B,GAAe,EAEnB,SAASF,EAAUzK,GACjB,GAAI2K,EACFA,GAAe,EACfN,QACK,CAELD,EAAkB5C,oBAAoBxH,EADzB,MAC2C0H,GAAqB,SAAUkD,GACjFA,EACFP,EAAS,CACP5C,OAJO,MAKPzH,SAAUA,IASpB,SAAmB6K,GACjB,IAAI9J,EAAa1C,EAAQ2B,SAIrB8K,EAAUC,EAAQ3E,QAAQrF,EAAWnD,MACxB,IAAbkN,IAAgBA,EAAU,GAC9B,IAAIE,EAAYD,EAAQ3E,QAAQyE,EAAajN,MAC1B,IAAfoN,IAAkBA,EAAY,GAClC,IAAIC,EAAQH,EAAUE,EAElBC,IACFN,GAAe,EACfO,EAAGD,IAnBCE,CAAUnL,OAuBlB,IAAIoL,EAAkBxB,EAAehB,KACjCmC,EAAU,CAACK,EAAgBxN,KAE/B,SAASyN,EAAWrL,GAClB,OAAO2J,EAAWnD,EAAWxG,GAuE/B,SAASkL,EAAGjH,GACV6E,EAAcoC,GAAGjH,GAWnB,IAAIqH,EAAgB,EAEpB,SAASC,EAAkBN,GAGH,KAFtBK,GAAiBL,IAEoB,IAAVA,GACzB1C,OAAOiD,iBA7MO,WA6MyBjB,GACnCnB,GAAyBb,OAAOiD,iBA7MpB,aA6MsDd,IAC3C,IAAlBY,IACT/C,OAAOkD,oBAhNO,WAgN4BlB,GACtCnB,GAAyBb,OAAOkD,oBAhNpB,aAgNyDf,IAI7E,IAAIgB,GAAY,EAiChB,IAAIrN,EAAU,CACZX,OAAQoL,EAAcpL,OACtB+J,OAAQ,MACRzH,SAAUoL,EACVC,WAAYA,EACZtD,KApIF,SAAc/G,EAAM2F,GAElB,IACI3G,EAAWlB,EAAekC,EAAM2F,EAAOqD,IAAa3L,EAAQ2B,UAChEoK,EAAkB5C,oBAAoBxH,EAFzB,OAE2C0H,GAAqB,SAAUkD,GACrF,GAAKA,EAAL,CACA,IAAI3K,EAAOoL,EAAWrL,GAClBpC,EAAMoC,EAASpC,IACf+I,EAAQ3G,EAAS2G,MAErB,GAAIoC,EAMF,GALAD,EAAc6C,UAAU,CACtB/N,IAAKA,EACL+I,MAAOA,GACN,KAAM1G,GAELsJ,EACFhB,OAAOvI,SAASC,KAAOA,MAClB,CACL,IAAI2L,EAAYb,EAAQ3E,QAAQ/H,EAAQ2B,SAASpC,KAC7CiO,EAAWd,EAAQxE,MAAM,EAAGqF,EAAY,GAC5CC,EAAS9D,KAAK/H,EAASpC,KACvBmN,EAAUc,EACVxB,EAAS,CACP5C,OAtBK,OAuBLzH,SAAUA,SAKduI,OAAOvI,SAASC,KAAOA,OAuG3BJ,QAlGF,SAAiBmB,EAAM2F,GAErB,IACI3G,EAAWlB,EAAekC,EAAM2F,EAAOqD,IAAa3L,EAAQ2B,UAChEoK,EAAkB5C,oBAAoBxH,EAFzB,UAE2C0H,GAAqB,SAAUkD,GACrF,GAAKA,EAAL,CACA,IAAI3K,EAAOoL,EAAWrL,GAClBpC,EAAMoC,EAASpC,IACf+I,EAAQ3G,EAAS2G,MAErB,GAAIoC,EAMF,GALAD,EAAcgD,aAAa,CACzBlO,IAAKA,EACL+I,MAAOA,GACN,KAAM1G,GAELsJ,EACFhB,OAAOvI,SAASH,QAAQI,OACnB,CACL,IAAI2L,EAAYb,EAAQ3E,QAAQ/H,EAAQ2B,SAASpC,MAC9B,IAAfgO,IAAkBb,EAAQa,GAAa5L,EAASpC,KACpDyM,EAAS,CACP5C,OApBK,UAqBLzH,SAAUA,SAKduI,OAAOvI,SAASH,QAAQI,QAuE5BiL,GAAIA,EACJa,OA/DF,WACEb,GAAI,IA+DJc,UA5DF,WACEd,EAAG,IA4DHe,MAzCF,SAAe7E,QACE,IAAXA,IACFA,GAAS,GAGX,IAAI8E,EAAU9B,EAAkB9C,UAAUF,GAO1C,OALKsE,IACHH,EAAkB,GAClBG,GAAY,GAGP,WAML,OALIA,IACFA,GAAY,EACZH,GAAmB,IAGdW,MAwBTC,OApBF,SAAgBrE,GACd,IAAIsE,EAAWhC,EAAkBxC,eAAeE,GAEhD,OADAyD,EAAkB,GACX,WACLA,GAAmB,GACnBa,OAiBJ,OAAO/N,EAGT,IACIgO,EAAiB,CACnBC,SAAU,CACRC,WAAY,SAAoBvL,GAC9B,MAA0B,MAAnBA,EAAK4C,OAAO,GAAa5C,EAAO,KAAOgF,EAAkBhF,IAElEwL,WAAY,SAAoBxL,GAC9B,MAA0B,MAAnBA,EAAK4C,OAAO,GAAa5C,EAAKmE,OAAO,GAAKnE,IAGrDyL,QAAS,CACPF,WAAYvG,EACZwG,WAAYzG,GAEd2G,MAAO,CACLH,WAAYxG,EACZyG,WAAYzG,IAIhB,SAAS4G,EAAUC,GACjB,IAAIhG,EAAYgG,EAAIxG,QAAQ,KAC5B,OAAsB,IAAfQ,EAAmBgG,EAAMA,EAAIrG,MAAM,EAAGK,GAG/C,SAASiG,IAGP,IAAI5M,EAAOsI,OAAOvI,SAASC,KACvB2G,EAAY3G,EAAKmG,QAAQ,KAC7B,OAAsB,IAAfQ,EAAmB,GAAK3G,EAAK6M,UAAUlG,EAAY,GAO5D,SAASmG,EAAgB/L,GACvBuH,OAAOvI,SAASH,QAAQ8M,EAAUpE,OAAOvI,SAASC,MAAQ,IAAMe,GAGlE,SAASgM,EAAkBvO,QACX,IAAVA,IACFA,EAAQ,IAGT6J,GAAmGhF,aAAU,GAC9G,IAAIwF,EAAgBP,OAAOlK,QAEvBgL,GAnUGd,OAAOU,UAAUC,UAAU9C,QAAQ,WAmU7B3H,GACT+K,EAAwBH,EAAO3B,oBAC/BA,OAAgD,IAA1B8B,EAAmCd,EAAkBc,EAC3EyD,EAAkB5D,EAAO6D,SACzBA,OAA+B,IAApBD,EAA6B,QAAUA,EAClDtD,EAAWlL,EAAMkL,SAAWrD,EAAmBP,EAAgBtH,EAAMkL,WAAa,GAClFwD,EAAwBd,EAAea,GACvCX,EAAaY,EAAsBZ,WACnCC,EAAaW,EAAsBX,WAEvC,SAAS5C,IACP,IAAI5I,EAAOwL,EAAWK,KAGtB,OADIlD,IAAU3I,EAAOiF,EAAcjF,EAAM2I,IAClC7K,EAAekC,GAGxB,IAAIoJ,EAAoBjD,IAExB,SAASkD,EAASC,GAChBlN,YAASiB,EAASiM,GAElBjM,EAAQX,OAASoL,EAAcpL,OAC/B0M,EAAkBnC,gBAAgB5J,EAAQ2B,SAAU3B,EAAQoJ,QAG9D,IAAIkD,GAAe,EACfyC,EAAa,KAMjB,SAAS1C,IACP,IAL4BpF,EAAGC,EAK3BvE,EAAO6L,IACPQ,EAAcd,EAAWvL,GAE7B,GAAIA,IAASqM,EAEXN,EAAgBM,OACX,CACL,IAAIrN,EAAW4J,IACX0D,EAAejP,EAAQ2B,SAC3B,IAAK2K,IAdwBpF,EAc2BvF,GAd9BsF,EAcgBgI,GAbnC3J,WAAa4B,EAAE5B,UAAY2B,EAAEmB,SAAWlB,EAAEkB,QAAUnB,EAAEoB,OAASnB,EAAEmB,MAaL,OAEnE,GAAI0G,IAAe5G,EAAWxG,GAAW,OAEzCoN,EAAa,KAKjB,SAAmBpN,GACjB,GAAI2K,EACFA,GAAe,EACfN,QACK,CAELD,EAAkB5C,oBAAoBxH,EADzB,MAC2C0H,GAAqB,SAAUkD,GACjFA,EACFP,EAAS,CACP5C,OAJO,MAKPzH,SAAUA,IASpB,SAAmB6K,GACjB,IAAI9J,EAAa1C,EAAQ2B,SAIrB8K,EAAUyC,EAASC,YAAYhH,EAAWzF,KAC7B,IAAb+J,IAAgBA,EAAU,GAC9B,IAAIE,EAAYuC,EAASC,YAAYhH,EAAWqE,KAC7B,IAAfG,IAAkBA,EAAY,GAClC,IAAIC,EAAQH,EAAUE,EAElBC,IACFN,GAAe,EACfO,EAAGD,IAnBCE,CAAUnL,OAjBdyK,CAAUzK,IAyCd,IAAIgB,EAAO6L,IACPQ,EAAcd,EAAWvL,GACzBA,IAASqM,GAAaN,EAAgBM,GAC1C,IAAIjC,EAAkBxB,IAClB2D,EAAW,CAAC/G,EAAW4E,IAuE3B,SAASF,EAAGjH,GAEV6E,EAAcoC,GAAGjH,GAWnB,IAAIqH,EAAgB,EAEpB,SAASC,EAAkBN,GAGH,KAFtBK,GAAiBL,IAEoB,IAAVA,EACzB1C,OAAOiD,iBAxOW,aAwOyBd,GAChB,IAAlBY,GACT/C,OAAOkD,oBA1OW,aA0O4Bf,GAIlD,IAAIgB,GAAY,EAiChB,IAAIrN,EAAU,CACZX,OAAQoL,EAAcpL,OACtB+J,OAAQ,MACRzH,SAAUoL,EACVC,WAnIF,SAAoBrL,GAClB,IAAIyN,EAAUjF,SAASkF,cAAc,QACjCzN,EAAO,GAMX,OAJIwN,GAAWA,EAAQE,aAAa,UAClC1N,EAAO0M,EAAUpE,OAAOvI,SAASC,OAG5BA,EAAO,IAAMsM,EAAW5C,EAAWnD,EAAWxG,KA4HrD+H,KAzHF,SAAc/G,EAAM2F,GAElB,IACI3G,EAAWlB,EAAekC,OAAMiB,OAAWA,EAAW5D,EAAQ2B,UAClEoK,EAAkB5C,oBAAoBxH,EAFzB,OAE2C0H,GAAqB,SAAUkD,GACrF,GAAKA,EAAL,CACA,IAAI5J,EAAOwF,EAAWxG,GAClBqN,EAAcd,EAAW5C,EAAW3I,GAGxC,GAFkB6L,MAAkBQ,EAEnB,CAIfD,EAAapM,EAxIrB,SAAsBA,GACpBuH,OAAOvI,SAAS0G,KAAO1F,EAwIjB4M,CAAaP,GACb,IAAIzB,EAAY2B,EAASC,YAAYhH,EAAWnI,EAAQ2B,WACpD6N,EAAYN,EAAShH,MAAM,EAAGqF,EAAY,GAC9CiC,EAAU9F,KAAK/G,GACfuM,EAAWM,EACXxD,EAAS,CACP5C,OAnBO,OAoBPzH,SAAUA,SAIZqK,SAgGJxK,QA3FF,SAAiBmB,EAAM2F,GAErB,IACI3G,EAAWlB,EAAekC,OAAMiB,OAAWA,EAAW5D,EAAQ2B,UAClEoK,EAAkB5C,oBAAoBxH,EAFzB,UAE2C0H,GAAqB,SAAUkD,GACrF,GAAKA,EAAL,CACA,IAAI5J,EAAOwF,EAAWxG,GAClBqN,EAAcd,EAAW5C,EAAW3I,GACtB6L,MAAkBQ,IAMlCD,EAAapM,EACb+L,EAAgBM,IAGlB,IAAIzB,EAAY2B,EAASnH,QAAQI,EAAWnI,EAAQ2B,YACjC,IAAf4L,IAAkB2B,EAAS3B,GAAa5K,GAC5CqJ,EAAS,CACP5C,OAnBS,UAoBTzH,SAAUA,SAsEdkL,GAAIA,EACJa,OA7DF,WACEb,GAAI,IA6DJc,UA1DF,WACEd,EAAG,IA0DHe,MAzCF,SAAe7E,QACE,IAAXA,IACFA,GAAS,GAGX,IAAI8E,EAAU9B,EAAkB9C,UAAUF,GAO1C,OALKsE,IACHH,EAAkB,GAClBG,GAAY,GAGP,WAML,OALIA,IACFA,GAAY,EACZH,GAAmB,IAGdW,MAwBTC,OApBF,SAAgBrE,GACd,IAAIsE,EAAWhC,EAAkBxC,eAAeE,GAEhD,OADAyD,EAAkB,GACX,WACLA,GAAmB,GACnBa,OAiBJ,OAAO/N,EAGT,SAASyP,EAAM7J,EAAG8J,EAAYC,GAC5B,OAAO/D,KAAKgE,IAAIhE,KAAKiE,IAAIjK,EAAG8J,GAAaC,GAO3C,SAASG,EAAoB1P,QACb,IAAVA,IACFA,EAAQ,IAGV,IAAI4K,EAAS5K,EACTiJ,EAAsB2B,EAAO3B,oBAC7B0G,EAAwB/E,EAAOgF,eAC/BA,OAA2C,IAA1BD,EAAmC,CAAC,KAAOA,EAC5DE,EAAsBjF,EAAOkF,aAC7BA,OAAuC,IAAxBD,EAAiC,EAAIA,EACpD7E,EAAmBJ,EAAOK,UAC1BA,OAAiC,IAArBD,EAA8B,EAAIA,EAC9CW,EAAoBjD,IAExB,SAASkD,EAASC,GAChBlN,YAASiB,EAASiM,GAElBjM,EAAQX,OAASW,EAAQmQ,QAAQ9Q,OACjC0M,EAAkBnC,gBAAgB5J,EAAQ2B,SAAU3B,EAAQoJ,QAG9D,SAASuC,IACP,OAAOC,KAAKC,SAASC,SAAS,IAAIhF,OAAO,EAAGuE,GAG9C,IAAI3F,EAAQ+J,EAAMS,EAAc,EAAGF,EAAe3Q,OAAS,GACvD8Q,EAAUH,EAAeI,KAAI,SAAUC,GACzC,OAAmC5P,EAAe4P,OAAOzM,EAAjC,kBAAVyM,EAAsD1E,IAAgD0E,EAAM9Q,KAAOoM,QAG/HqB,EAAa7E,EAyCjB,SAAS0E,EAAGjH,GACV,IAAI0K,EAAYb,EAAMzP,EAAQ0F,MAAQE,EAAG,EAAG5F,EAAQmQ,QAAQ9Q,OAAS,GAEjEsC,EAAW3B,EAAQmQ,QAAQG,GAC/BvE,EAAkB5C,oBAAoBxH,EAFzB,MAE2C0H,GAAqB,SAAUkD,GACjFA,EACFP,EAAS,CACP5C,OALO,MAMPzH,SAAUA,EACV+D,MAAO4K,IAKTtE,OA8BN,IAAIhM,EAAU,CACZX,OAAQ8Q,EAAQ9Q,OAChB+J,OAAQ,MACRzH,SAAUwO,EAAQzK,GAClBA,MAAOA,EACPyK,QAASA,EACTnD,WAAYA,EACZtD,KA1FF,SAAc/G,EAAM2F,GAElB,IACI3G,EAAWlB,EAAekC,EAAM2F,EAAOqD,IAAa3L,EAAQ2B,UAChEoK,EAAkB5C,oBAAoBxH,EAFzB,OAE2C0H,GAAqB,SAAUkD,GACrF,GAAKA,EAAL,CACA,IACI+D,EADYtQ,EAAQ0F,MACI,EACxB6K,EAAcvQ,EAAQmQ,QAAQjI,MAAM,GAEpCqI,EAAYlR,OAASiR,EACvBC,EAAYC,OAAOF,EAAWC,EAAYlR,OAASiR,EAAW3O,GAE9D4O,EAAY7G,KAAK/H,GAGnBqK,EAAS,CACP5C,OAfS,OAgBTzH,SAAUA,EACV+D,MAAO4K,EACPH,QAASI,SAuEb/O,QAlEF,SAAiBmB,EAAM2F,GAErB,IACI3G,EAAWlB,EAAekC,EAAM2F,EAAOqD,IAAa3L,EAAQ2B,UAChEoK,EAAkB5C,oBAAoBxH,EAFzB,UAE2C0H,GAAqB,SAAUkD,GAChFA,IACLvM,EAAQmQ,QAAQnQ,EAAQ0F,OAAS/D,EACjCqK,EAAS,CACP5C,OANS,UAOTzH,SAAUA,SA0DdkL,GAAIA,EACJa,OAnCF,WACEb,GAAI,IAmCJc,UAhCF,WACEd,EAAG,IAgCH4D,MA7BF,SAAe7K,GACb,IAAI0K,EAAYtQ,EAAQ0F,MAAQE,EAChC,OAAO0K,GAAa,GAAKA,EAAYtQ,EAAQmQ,QAAQ9Q,QA4BrDuO,MAzBF,SAAe7E,GAKb,YAJe,IAAXA,IACFA,GAAS,GAGJgD,EAAkB9C,UAAUF,IAqBnC+E,OAlBF,SAAgBrE,GACd,OAAOsC,EAAkBxC,eAAeE,KAmB1C,OAAOzJ,I,6BCn5BM,SAAS0Q,EAA8BpR,EAAQqR,GAC5D,GAAc,MAAVrR,EAAgB,MAAO,GAC3B,IAEIC,EAAKJ,EAFLD,EAAS,GACT0R,EAAa5R,OAAOyI,KAAKnI,GAG7B,IAAKH,EAAI,EAAGA,EAAIyR,EAAWvR,OAAQF,IACjCI,EAAMqR,EAAWzR,GACbwR,EAAS5I,QAAQxI,IAAQ,IAC7BL,EAAOK,GAAOD,EAAOC,IAGvB,OAAOL,EAZT,mC,6BCEAF,OAAOiE,eAAepE,EAAS,aAAc,CAC3CqE,OAAO,IAGT,IAAInE,EAAWC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,GAEnP2R,EAAgB,WAAc,SAASC,EAAiB5R,EAAQkB,GAAS,IAAK,IAAIjB,EAAI,EAAGA,EAAIiB,EAAMf,OAAQF,IAAK,CAAE,IAAI4R,EAAa3Q,EAAMjB,GAAI4R,EAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,UAAWF,IAAYA,EAAWG,UAAW,GAAMlS,OAAOiE,eAAe/D,EAAQ6R,EAAWxR,IAAKwR,IAAiB,OAAO,SAAUI,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAYN,EAAiBK,EAAY3R,UAAW4R,GAAiBC,GAAaP,EAAiBK,EAAaE,GAAqBF,GAA7gB,GAIpB,SAASrN,EAAuBU,GAAO,OAAOA,GAAOA,EAAIC,WAAaD,EAAM,CAAE,QAAWA,GAMzF,IAAI8M,EAASxS,EAAQ,GAEjByS,EAAUzN,EAAuBwN,GAIjCE,EAAa1N,EAFDhF,EAAQ,KAMpB2S,EAAc3N,EAFDhF,EAAQ,IAMrB4S,EAAe5N,EAFDhF,EAAQ,KAMtB6S,EAAe7N,EAFDhF,EAAQ,KAMtB8S,EAAc9N,EAFDhF,EAAQ,KAIzBD,EAAO,QAAc,SAAUgT,GAC7B,IAAIC,EAAQ,SAAUC,GAGpB,SAASD,EAAK1R,GAQZ,GAxCN,SAAyB4R,EAAUb,GAAe,KAAMa,aAAoBb,GAAgB,MAAM,IAAIc,UAAU,qCAiC1GC,CAAgBtS,KAAMkS,GArCjB,SAAaK,EAAKC,EAAKC,GAAqC,IAA9B,IAAIC,GAAS,EAAwBA,GAAQ,CAAE,IAAIC,EAASJ,EAAKK,EAAWJ,EAAKK,EAAWJ,EAAKC,GAAS,EAAsB,OAAXC,IAAiBA,EAASG,SAASlT,WAAW,IAAImT,EAAO3T,OAAO4T,yBAAyBL,EAAQC,GAAW,QAAa5O,IAAT+O,EAAJ,CAA6O,GAAI,UAAWA,EAAQ,OAAOA,EAAKzP,MAAgB,IAAI2P,EAASF,EAAKG,IAAK,QAAelP,IAAXiP,EAAwB,OAAoB,OAAOA,EAAOnT,KAAK+S,GAAhW,IAAIM,EAAS/T,OAAOgU,eAAeT,GAAS,GAAe,OAAXQ,EAAmB,OAA2BZ,EAAMY,EAAQX,EAAMI,EAAUH,EAAMI,EAAUH,GAAS,EAAMK,EAAOI,OAASnP,GAuCzcqP,CAAKjU,OAAOgU,eAAelB,EAAKtS,WAAY,cAAeI,MAAMF,KAAKE,KAAMQ,GAC5ER,KAAK0I,MAAQ,CACX4K,QAAQ,IAGLrB,EACH,MAAM,IAAIzM,MAAM,sBAoUpB,OA3WJ,SAAmBR,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIoN,UAAU,kEAAoEpN,GAAeD,EAASpF,UAAYR,OAAO8F,OAAOD,GAAcA,EAAWrF,UAAW,CAAEuF,YAAa,CAAE7B,MAAO0B,EAAUoM,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAepM,IAAY7F,OAAOmU,eAAiBnU,OAAOmU,eAAevO,EAAUC,GAAcD,EAASI,UAAYH,GA4B7duO,CAAUtB,EAAMC,GAehBlB,EAAaiB,EAAM,CAAC,CAClBvS,IAAK,aACL2D,MAAO,WACL,IAAImQ,EAAQzT,KAER0T,EAAUlU,UAAUC,QAAU,QAAsBuE,IAAjBxE,UAAU,GAAmB,GAAKA,UAAU,GAC/E8T,EAASI,EAAQJ,OACjBK,EAAgBD,EAAQC,cAExBC,EAAW,CACbN,OAA0B,qBAAXA,EAAyBA,GAAUtT,KAAK0I,MAAM4K,QAG/DtT,KAAK6T,qBAEL7T,KAAKoM,SAASwH,GAAU,WAGtB,IAFCD,GAAiBF,EAAMjT,MAAMsT,cAAcF,IAEvCH,EAAMjT,MAAMuT,iBAGf,GAAIH,EAASN,OAAQ,CACnB,IAAIU,EAAYzJ,SAASkF,cAAc,YACnCuE,GACFA,EAAUC,aAGR1J,SAAS2J,cACX3J,SAAS2J,cAAcC,OAEvB5J,SAAS6J,KAAKD,OAMpBV,EAAMY,WAAaC,aAAab,EAAMY,WACtCZ,EAAMY,UAAYE,YAAW,WAC3Bd,EAAMY,UAAY,KACbT,EAASN,QACZG,EAAMI,oBAAmB,KAE1B,UAKN,CACDlU,IAAK,qBACL2D,MAAO,WACL,IAAIkR,EAAMhV,UAAUC,QAAU,QAAsBuE,IAAjBxE,UAAU,IAA0BA,UAAU,GAE7EiV,EAAa,SAAoBC,EAAIpS,GACvC,OAAOoS,EAAGC,UAAUH,EAAM,MAAQ,UAAUlS,IAG1CtC,KAAKQ,MAAMoU,eACbH,EAAWlK,SAASkF,cAAc,QAASzP,KAAKQ,MAAMoU,eAEpD5U,KAAKQ,MAAMqU,eACbJ,EAAWlK,SAASkF,cAAc,QAASzP,KAAKQ,MAAMqU,eAGpD5C,EAAO6C,UAAY9U,KAAKQ,MAAMuU,YAChC/U,KAAKgV,sBAAsBhV,KAAKQ,MAAMuU,WAAY9C,EAAO6C,SAAUN,GAGjEvC,EAAOgD,gBAAkBjV,KAAKQ,MAAM0U,kBACtClV,KAAKgV,sBAAsBhV,KAAKQ,MAAM0U,iBAAkBjD,EAAOgD,eAAgBT,KAQlF,CACD7U,IAAK,wBACL2D,MAAO,SAA+B6R,EAAIC,EAAeZ,GACvD,IAAIa,EAAU9K,SAAS+K,eAAeH,GAEtC,GAAKE,EAAL,CAKA,IAAIE,EAAcvV,KAAKwV,SAASJ,GAEhC,IAAK,IAAIK,KAAQF,EACXA,EAAY1V,eAAe4V,KAC7BJ,EAAQxS,MAAM4S,GAAQjB,EAAMe,EAAYE,GAAQ,IASpD,IAAIC,EAAgB,SAAuBhB,GACzC,OAAOA,EAAG7R,MAAM,cAAgB2R,EAAM,SAAW,IAE9CxU,KAAKQ,MAAMoU,eACdc,EAAcnL,SAASkF,cAAc,SAElCzP,KAAKQ,MAAMqU,eACda,EAAcnL,SAASkF,cAAc,cAxBrCkG,QAAQC,MAAM,oBAAsBT,EAAK,iBA6B5C,CACDxV,IAAK,YACL2D,MAAO,SAAmBoR,EAAI5O,EAAO+P,GACnC,IAAIC,EAAW,KAAOpB,EAAG9S,QAAQ8S,EAAG/O,OAAO,GAAI+O,EAAG/O,OAAO,GAAGoQ,eAGxDC,EAASlE,EAAY,QAAY4C,GAAM1U,KAAKwV,SAAS1D,EAAY,QAAY4C,IAAO,GAuBxF,OApBIzC,EAAOyC,KACTsB,EAAS7W,EAAS,GAAI6W,EAAQhW,KAAKwV,SAASvD,EAAOyC,GAAK5O,EAAQ,KAI9D9F,KAAKQ,MAAMyR,OAAO6D,KACpBE,EAAS7W,EAAS,GAAI6W,EAAQhW,KAAKQ,MAAMyR,OAAO6D,KAI9CD,IACFG,EAAS7W,EAAS,GAAI6W,EAAQH,IAK5B7V,KAAKQ,MAAMyV,qBACND,EAAOE,WAGTF,IAER,CACDrW,IAAK,WACL2D,MAAO,SAAkBT,EAAOiD,GAC9B,IAAIqQ,EAAQnW,KAAKQ,MAAM2V,MAEnBC,EAAkC,kBAAVD,EAAqBA,EAAQ,KAAOA,EAChE,OAAOtT,EAAM7C,KAAK0I,MAAM4K,OAAQ8C,EAAgBpW,KAAKQ,MAAM6V,MAAOvQ,KAEnE,CACDnG,IAAK,iBACL2D,MAAO,SAAwByF,GAC7BA,EAAIA,GAAKuB,OAAOhJ,MAGXtB,KAAKQ,MAAM8V,oBAAqBtW,KAAK0I,MAAM4K,QAAqB,WAAVvK,EAAEpJ,KAAkC,KAAdoJ,EAAEwN,SACjFvW,KAAKwW,eAGR,CACD7W,IAAK,4BACL2D,MAAO,WACL,MAA8C,oBAAnCtD,KAAKQ,MAAMiW,oBACbzW,KAAKQ,MAAMiW,sBAEXzW,KAAKQ,MAAMiW,sBAGrB,CACD9W,IAAK,oBACL2D,MAAO,WAEDtD,KAAKQ,MAAMkW,gBACbpM,OAAOqM,UAAY3W,KAAKQ,MAAMkW,gBAE9BpM,OAAOqM,UAAY3W,KAAK4W,eAAeC,KAAK7W,MAI1CA,KAAKQ,MAAM8S,QACbtT,KAAKwW,WAAW,CAAElD,QAAQ,EAAMK,eAAe,MAGlD,CACDhU,IAAK,uBACL2D,MAAO,WACLgH,OAAOqM,UAAY,KAEnB3W,KAAK6T,oBAAmB,KAEzB,CACDlU,IAAK,qBACL2D,MAAO,SAA4BwT,GACjC,IAAIC,EAAS/W,KAEiC,qBAAtBA,KAAKQ,MAAM8S,QAA0BtT,KAAKQ,MAAM8S,SAAWtT,KAAK0I,MAAM4K,QAAUtT,KAAKQ,MAAM8S,SAAWwD,EAAUxD,OAEtItT,KAAKwW,aAKHvE,EAAO+E,KACT,WACE,IAAIC,EAAarF,EAAU,QAAYsF,YAAYH,EAAQ,kBACvDhU,EAAOkP,EAAO+E,IAAIG,IAAIF,GAAYG,OAAO,QAEzCL,EAAOrO,MAAM4K,OAEfrB,EAAO+E,IAAIK,QAAQtU,GAGnBwR,YAAW,WACTxR,EAAKuU,KAAK,IAAKrF,EAAO+E,IAAIO,eACzB,KAXP,KAgBH,CACD5X,IAAK,SACL2D,MAAO,WACL,IAAIkU,EAASxX,KAEb,OAAO2R,EAAO,QAAYnH,cACxB,MACA,MACCxK,KAAKQ,MAAMiX,WAAa9F,EAAO,QAAYnH,cAAc,MAAO,CAC/DlI,WAAY,cAAgBtC,KAAKQ,MAAMkX,kBAAkBC,OACzDvW,QAAS,WACP,OAAQoW,EAAOI,6BAA+BJ,EAAOhB,cAEvD3T,MAAO7C,KAAK6X,UAAU,aAExBlG,EAAO,QAAYnH,cACjB,MACA,CACE2K,GAAInV,KAAKQ,MAAM2U,GACf7S,WAAY,gBAAkBtC,KAAKQ,MAAM8B,WAAWqV,OACpD9U,MAAO7C,KAAK6X,UAAU,aAExB5F,EAAO+E,KAAOrF,EAAO,QAAYnH,cAC/B,MACA,CACElI,WAAY,kBAAoBtC,KAAKQ,MAAMsX,qBAAqBH,OAChE9U,MAAO7C,KAAK6X,UAAU,eAExBlG,EAAO,QAAYnH,cACjB,MACA,CACE2L,MAAO,OACP4B,OAAQ,OACRC,QAAS,cACTC,oBAAqB,QAEvBtG,EAAO,QAAYnH,cAAc,OAAQ,CAAE0N,EAAGjG,EAAO+E,IAAIO,gBAG7D5F,EAAO,QAAYnH,cACjB,MACA,CACElI,WAAY,WAAatC,KAAKQ,MAAM2X,eAAeR,OACnD9U,MAAO7C,KAAK6X,UAAU,SAExBlG,EAAO,QAAYnH,cACjB,MACA,CACElI,WAAY,gBAAkBtC,KAAKQ,MAAM4X,mBAAmBT,OAC5D9U,MAAO7C,KAAK6X,UAAU,aAExBlG,EAAO,QAAY0G,SAAS7H,IAAIxQ,KAAKQ,MAAMD,UAAU,SAAUmH,EAAM5B,GACnE,GAAI4B,EAAM,CACR,IAGI4Q,EAAa,CACf3Y,IAAKmG,EACLxD,UALc,CAAC,UAAWkV,EAAOhX,MAAM+X,cAAe7Q,EAAKlH,MAAM8B,WAAWyH,QAAO,SAAUzH,GAC7F,QAASA,KACR2E,KAAK,KAINpE,MAAO2U,EAAOK,UAAU,OAAQ/R,EAAO4B,EAAKlH,MAAMqC,OAClD2V,SAAUhB,EAAO9O,MAAM4K,OAAS,GAAK,GAEvC,OAAO3B,EAAO,QAAY8G,aAAa/Q,EAAM4Q,UAKtB,IAA/BtY,KAAKQ,MAAMkY,iBAA6B/G,EAAO,QAAYnH,cACzD,MACA,CAAE3H,MAAO7C,KAAK6X,UAAU,gBACxBlG,EAAO,QAAYnH,cAAcwH,EAAW,QAAa,CACvD5Q,QAAS,WACP,OAAOoW,EAAOhB,cAEhBvE,OAAQjS,KAAKQ,MAAMyR,OACnB0G,WAAY3Y,KAAKQ,MAAMkY,gBACvBpW,UAAWtC,KAAKQ,MAAMoY,qBACtBC,eAAgB7Y,KAAKQ,MAAMqY,eAC3BL,SAAUxY,KAAK0I,MAAM4K,OAAS,GAAK,OAIT,IAAhCtT,KAAKQ,MAAMsY,kBAA8BnH,EAAO,QAAYnH,cAC1D,MACA,CAAE3H,MAAO7C,KAAK6X,UAAU,eACxBlG,EAAO,QAAYnH,cAAcuH,EAAY,QAAa,CACxD3Q,QAAS,WACP,OAAOoW,EAAOhB,cAEhBvE,OAAQjS,KAAKQ,MAAMyR,OACnB0G,WAAY3Y,KAAKQ,MAAMsY,iBACvBxW,UAAWtC,KAAKQ,MAAMuY,sBACtBC,aAAchZ,KAAKQ,MAAMyY,mBACzBC,kBAAmBlZ,KAAKQ,MAAM0Y,0BAOjChH,EAhVG,CAiVTR,EAAOxR,WA4DV,OA1DAgS,EAAKiH,UAAY,CACftE,cAAehD,EAAW,QAAYuH,OACtCH,mBAAoBpH,EAAW,QAAYuH,OAC3CL,sBAAuBlH,EAAW,QAAYuH,OAC9C9W,UAAWuP,EAAW,QAAYuH,OAClCR,qBAAsB/G,EAAW,QAAYuH,OAC7CP,eAAgBhH,EAAW,QAAYuH,OACvCN,iBAAkBjH,EAAW,QAAYwH,UAAU,CAACxH,EAAW,QAAYyH,QAASzH,EAAW,QAAY0H,MAAM,EAAC,MAClHb,gBAAiB7G,EAAW,QAAYwH,UAAU,CAACxH,EAAW,QAAYyH,QAASzH,EAAW,QAAY0H,MAAM,EAAC,MACjH7C,gBAAiB7E,EAAW,QAAY2H,KACxCzF,iBAAkBlC,EAAW,QAAY4H,KACzCnD,kBAAmBzE,EAAW,QAAY4H,KAC1ChD,oBAAqB5E,EAAW,QAAYwH,UAAU,CAACxH,EAAW,QAAY4H,KAAM5H,EAAW,QAAY2H,OAC3G5E,cAAe/C,EAAW,QAAYuH,OACtCjE,GAAItD,EAAW,QAAYuH,OAC3B9F,OAAQzB,EAAW,QAAY4H,KAC/BlB,cAAe1G,EAAW,QAAYuH,OACtChB,kBAAmBvG,EAAW,QAAYuH,OAC1CjB,cAAetG,EAAW,QAAYuH,OACtCtB,oBAAqBjG,EAAW,QAAYuH,OAC5C3B,UAAW5F,EAAW,QAAY4H,KAClCxD,aAAcpE,EAAW,QAAY4H,KACrC3F,cAAejC,EAAW,QAAY2H,KACtCtE,iBAAkBjD,GAAUA,EAAOgD,eAAiBpD,EAAW,QAAYuH,OAAOM,WAAa7H,EAAW,QAAYuH,OACtH1B,iBAAkB7F,EAAW,QAAYuH,OACzCrE,WAAY9C,GAAUA,EAAO6C,SAAWjD,EAAW,QAAYuH,OAAOM,WAAa7H,EAAW,QAAYuH,OAC1G/C,MAAOxE,EAAW,QAAY4H,KAC9BxH,OAAQJ,EAAW,QAAYc,OAC/BwD,MAAOtE,EAAW,QAAYwH,UAAU,CAACxH,EAAW,QAAY8H,OAAQ9H,EAAW,QAAYuH,SAC/FQ,kBAAmB/H,EAAW,QAAY2H,MAG5CtH,EAAK2H,aAAe,CAClBhF,cAAe,GACfoE,mBAAoB,GACpBF,sBAAuB,GACvBzW,UAAW,GACXsW,qBAAsB,GACtBC,eAAgB,GAChB9E,kBAAkB,EAClBuC,mBAAmB,EACnB1B,cAAe,GACfO,GAAI,GACJoD,cAAe,GACfH,kBAAmB,GACnBD,cAAe,GACfL,oBAAqB,GACrBL,WAAW,EACXxB,cAAc,EACdnC,cAAe,aACfoB,iBAAkB,GAClBwC,iBAAkB,GAClB3C,WAAY,GACZ9C,OAAQ,GACRkE,MAAO,IACPyD,kBAAmB,cAGd1H,GAGTlT,EAAOC,QAAUA,EAAO,S,6BCxaT6a,IAlBf,SAAiBxU,EAAWC,M,yPCe5B,SAASwU,EAAmBzW,GAC1B,IAAI0W,EAAW,GACf,MAAO,CACLC,GAAI,SAAYC,GACdF,EAASlQ,KAAKoQ,IAEhBC,IAAK,SAAaD,GAChBF,EAAWA,EAASjQ,QAAO,SAAUqQ,GACnC,OAAOA,IAAMF,MAGjBhH,IAAK,WACH,OAAO5P,GAETkR,IAAK,SAAa6F,EAAUC,GAC1BhX,EAAQ+W,EACRL,EAAS5P,SAAQ,SAAU8P,GACzB,OAAOA,EAAQ5W,EAAOgX,QA2I9B,IAEexU,EAFH7F,IAAMsa,eAjIlB,SAA4BC,EAAcC,GACxC,IAAIC,EAAuBC,EAEvBC,EAAc,0BAA4BC,MAAQ,KAElDC,EAEJ,SAAU3I,GAGR,SAAS2I,IACP,IAAIrH,EAIJ,OAFAA,EAAQtB,EAAWpS,MAAMC,KAAMR,YAAcQ,MACvC+a,QAAUhB,EAAmBtG,EAAMjT,MAAM8C,OACxCmQ,EAPT1O,IAAe+V,EAAU3I,GAUzB,IAAI6I,EAASF,EAASlb,UAoCtB,OAlCAob,EAAOC,gBAAkB,WACvB,IAAIpP,EAEJ,OAAOA,EAAO,IAAS+O,GAAe5a,KAAK+a,QAASlP,GAGtDmP,EAAOE,0BAA4B,SAAmCC,GACpE,GAAInb,KAAKQ,MAAM8C,QAAU6X,EAAU7X,MAAO,CACxC,IAEIgX,EAFAc,EAAWpb,KAAKQ,MAAM8C,MACtB+W,EAAWc,EAAU7X,QAhEf+X,EAmEGD,MAnEAE,EAmEUjB,GAjEd,IAANgB,GAAW,EAAIA,IAAM,EAAIC,EAEzBD,IAAMA,GAAKC,IAAMA,GAgElBhB,EAAc,GAEdA,EAA8C,oBAAzBG,EAAsCA,EAAqBW,EAAUf,GAxExE,WAgFE,KAFpBC,GAAe,IAGbta,KAAK+a,QAAQvG,IAAI2G,EAAU7X,MAAOgX,IA/E9C,IAAkBe,EAAGC,GAqFjBN,EAAO1a,OAAS,WACd,OAAON,KAAKQ,MAAMD,UAGbua,EA/CT,CAgDE5a,aAEF4a,EAASS,oBAAqBb,EAAwB,IAA0BE,GAAeY,IAAU7I,OAAO+G,WAAYgB,GAE5H,IAAIe,EAEJ,SAAUC,GAGR,SAASD,IACP,IAAI1E,EAiBJ,OAfAA,EAAS2E,EAAY3b,MAAMC,KAAMR,YAAcQ,MACxC0I,MAAQ,CACbpF,MAAOyT,EAAO4E,YAGhB5E,EAAO6E,SAAW,SAAUvB,EAAUC,GAGC,MAFI,EAAtBvD,EAAO8E,cAENvB,IAClBvD,EAAO3K,SAAS,CACd9I,MAAOyT,EAAO4E,cAKb5E,EApBThS,IAAe0W,EAAUC,GAuBzB,IAAII,EAAUL,EAAS7b,UAkCvB,OAhCAkc,EAAQZ,0BAA4B,SAAmCC,GACrE,IAAIU,EAAeV,EAAUU,aAC7B7b,KAAK6b,kBAAgC7X,IAAjB6X,GAA+C,OAAjBA,EA9H5B,WA8H4EA,GAGpGC,EAAQC,kBAAoB,WACtB/b,KAAK8B,QAAQ8Y,IACf5a,KAAK8B,QAAQ8Y,GAAaX,GAAGja,KAAK4b,UAGpC,IAAIC,EAAe7b,KAAKQ,MAAMqb,aAC9B7b,KAAK6b,kBAAgC7X,IAAjB6X,GAA+C,OAAjBA,EAvI5B,WAuI4EA,GAGpGC,EAAQE,qBAAuB,WACzBhc,KAAK8B,QAAQ8Y,IACf5a,KAAK8B,QAAQ8Y,GAAaT,IAAIna,KAAK4b,WAIvCE,EAAQH,SAAW,WACjB,OAAI3b,KAAK8B,QAAQ8Y,GACR5a,KAAK8B,QAAQ8Y,GAAa1H,MAE1BsH,GAIXsB,EAAQxb,OAAS,WACf,OAxHaC,EAwHIP,KAAKQ,MAAMD,SAvHzBgH,MAAMC,QAAQjH,GAAYA,EAAS,GAAKA,GAuHLP,KAAK0I,MAAMpF,OAxHvD,IAAmB/C,GA2HRkb,EA1DT,CA2DEvb,aAGF,OADAub,EAASQ,eAAgBtB,EAAwB,IAA0BC,GAAeY,IAAU7I,OAAQgI,GACrG,CACLG,SAAUA,EACVW,SAAUA,I,8CC9JR3Z,G,MAPqB,SAAAoa,G,IACnBpa,EAAUyY,I,OAChBzY,gBAEA,EAG4Bqa,CAA9B,WCDMC,E,uBAKJ,G,2BACE,UAEA,MAAa,CACXra,SAAUvB,UAAcuB,U,EAQ1B,c,EACA,sBAEKvB,EAAL,gB,EACE,SAAgBA,EAAA,gBAAqB,SAAAuB,GAC/B,EAAJ,W,EACE,SAAc,CAAEA,a,EAEhB,uB,qBAxBDsa,iBAAP,Y,MACS,CAAEtZ,KAAF,IAAa4L,IAAb,IAAuB2N,OAAvB,GAAmCC,QAAsB,MAAb7W,I,2BA6BrDqW,6B,KACE,cAEI/b,KAAJ,kB,KACE,SAAc,CAAE+B,SAAU/B,KAAKwc,oB,EAInCR,gCACMhc,KAAJ,UAAmBA,KAAKmO,Y,EAG1B7N,kB,OAEI,kBAACuB,EAAD,UACEtB,SAAUP,KAAKQ,MAAMD,UADvB,KAEE+C,MAAO,CACLlD,QAASJ,KAAKQ,MADT,QAELuB,SAAU/B,KAAK0I,MAFV,SAGLzF,MAAOmZ,mBAAwBpc,KAAK0I,MAAM3G,SAHrC,UAIL0a,cAAezc,KAAKQ,MAAMic,kB,GAnDfxc,IAAMC,WCCAD,IAAMC,UCRTD,IAAMC,UCA9B,IAAMwc,EAAN,GAEIC,EAAJ,EAuBA,SAASzZ,EAAUwC,EAAUgO,QAAc,IAAdA,MAAU,KACd,kBAAZA,GAAwBnM,cAAnC,MACEmM,EAAU,CAAE3Q,KAAM2Q,I,MAFqB,EAKjC3Q,EALiC,O,IAAA,MAK3BR,OAL2B,S,IAAA,OAKZI,OALY,S,IAAA,UAKIia,OALJ,S,MAO3B,GAAGjW,OAAjB,GAEO,QAAa,c,IACb5D,GAAL,KAAaA,EAAa,OAAO,K,GACjC,EAAa,OAAO8Z,E,MAhCxB,c,IACQC,EAAW,GAAGpJ,EAAN,IAAoBA,EAApB,OAAqCA,EAAnD,UACMqJ,EAAYL,OAAoBA,KAAtC,I,GAEIK,EAAJ,GAAqB,OAAOA,EAAP,G,IAEflV,EAAN,GAEMb,EAAS,CAAEgW,OADFC,IAAala,EAAM8E,EAAlC,GACyBA,Q,OAErB8U,EAbN,MAcII,OACAJ,KAGF,EAmB2BO,CAAYna,EAAM,CACzCoa,IADyC,EAEzCxa,OAFyC,EAGzCia,cAHMI,EAJ6B,SAIrBnV,EAJqB,OAS/B5E,EAAQ+Z,OAAd,G,IAEA,EAAY,OAAO,K,IAEZrO,EAAkB1L,EAbY,GAatBma,EAAUna,EAbY,SAc/BsZ,EAAU7W,IAAhB,E,OAEInD,IAAJ,EAA8B,KAEvB,CACLQ,KADK,EAEL4L,IAAK5L,cAAgB4L,EAAhB5L,IAFA,EAGLwZ,QAHK,EAILD,OAAQzU,EAAA,QAAY,gB,OAClBwV,EAAK1d,EAAL0d,MAAiBD,EAAjBC,GACA,IAFM,OAtBZ,M,ICPIC,E,kGACJhd,kB,kBAEI,kBAACuB,EAAD,eACG,YACC,mB,IAEME,EAAW,kBAAuBD,EAAxC,SACMmB,EAAQ,sBACV,QADU,cAEV,aACAC,EAAUnB,EAAD,SAAoB,EAD7B,OAEAD,EAJJ,MAMMtB,EAAQ,OAAH,IAAG,CAAH,MAAiBuB,SAAjB,EAA2BkB,U,EAEA,EAZ5B,MAYJ1C,EAZI,WAYMoB,EAZN,YAYiBrB,EAZjB,S,OAgBNiH,kBAAJ,IAA+BhH,WAC7BA,QAIA,kBAACsB,EAAD,UAAwByB,MAAO9C,GAC5BA,QACGD,EACsB,oBAAbA,EAGHA,EAHJ,GADM,EAMNoB,EACA1B,oBADS,GAETK,EACAA,EADM,GATXE,KAYuB,oBAAbD,EAGLA,EAHF,GAdR,U,GAxBUN,IAAMC,WCrB1B,SAAS4H,EAAgB/E,G,MAChBA,oBAAgC,IAAvC,EAYF,SAASiF,EAAc0D,EAAU3J,G,IAC/B,EAAe,OAAOA,E,IAEhBwb,EAAOzV,EAAb,G,OAEA,IAAI/F,sBAA8CA,E,eAElD,GAEE2D,SAAU3D,kBAAyBwb,EAAzBxb,UAId,SAASyb,EAAUzb,G,MACU,kBAAbA,EAAwBA,EAAWwG,YAAjD,GAGF,SAASkV,EAAcC,G,OACd,WACLrY,iBAIJ,SAASsY,KAQkB1d,IAAMC,UCzCZD,IAAMC,UCLRD,IAAnB,Y,+BCJA,SAAS2d,IAEP,GAC4C,qBAAnCC,gCAC4C,oBAA5CA,+BAA+BD,SAFxC,CAMIE,EAUJ,IAEED,+BAA+BD,SAASA,GACxC,MAAOG,GAGPpI,QAAQC,MAAMmI,KAOhBH,GACA5e,EAAOC,QAAUC,EAAQ,K,8BClCZ,SAAS8e,EAAkBC,EAAKC,IAClC,MAAPA,GAAeA,EAAMD,EAAIxe,UAAQye,EAAMD,EAAIxe,QAE/C,IAAK,IAAIF,EAAI,EAAG4e,EAAO,IAAI5W,MAAM2W,GAAM3e,EAAI2e,EAAK3e,IAC9C4e,EAAK5e,GAAK0e,EAAI1e,GAGhB,OAAO4e,ECHM,SAASC,EAAeH,EAAK1e,GAC1C,OCLa,SAAyB0e,GACtC,GAAI1W,MAAMC,QAAQyW,GAAM,OAAOA,EDIxB,CAAeA,IELT,SAA+BA,EAAK1e,GACjD,GAAsB,qBAAX8e,QAA4BA,OAAOC,YAAYlf,OAAO6e,GAAjE,CACA,IAAIM,EAAO,GACPC,GAAK,EACLC,GAAK,EACLC,OAAK1a,EAET,IACE,IAAK,IAAiC2a,EAA7BC,EAAKX,EAAII,OAAOC,cAAmBE,GAAMG,EAAKC,EAAGC,QAAQC,QAChEP,EAAKzU,KAAK6U,EAAGrb,QAET/D,GAAKgf,EAAK9e,SAAWF,GAH8Cif,GAAK,IAK9E,MAAOT,GACPU,GAAK,EACLC,EAAKX,EACL,QACA,IACOS,GAAsB,MAAhBI,EAAW,QAAWA,EAAW,SAC5C,QACA,GAAIH,EAAI,MAAMC,GAIlB,OAAOH,GFnBuB,CAAqBN,EAAK1e,IGJ3C,SAAqCwf,EAAGC,GACrD,GAAKD,EAAL,CACA,GAAiB,kBAANA,EAAgB,OAAO,EAAiBA,EAAGC,GACtD,IAAIhZ,EAAI5G,OAAOQ,UAAUsM,SAASpM,KAAKif,GAAGzW,MAAM,GAAI,GAEpD,MADU,WAANtC,GAAkB+Y,EAAE5Z,cAAaa,EAAI+Y,EAAE5Z,YAAY+W,MAC7C,QAANlW,GAAqB,QAANA,EAAoBuB,MAAMpB,KAAKH,GACxC,cAANA,GAAqB,2CAA2CiZ,KAAKjZ,GAAW,EAAiB+Y,EAAGC,QAAxG,GHF8D,CAA2Bf,EAAK1e,IILjF,WACb,MAAM,IAAI8S,UAAU,6IJIgF,G,iEKHtGjT,OAAOiE,eAAepE,EAAS,aAAc,CAC3CqE,OAAO,IAGT,IAAInE,EAAWC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,GAInP4f,EAAUhb,EAFDhF,EAAQ,KAMjBsF,EAAkBN,EAFDhF,EAAQ,KAMzBoF,EAAiBJ,EAFDhF,EAAQ,KAI5B,SAASgF,EAAuBU,GAAO,OAAOA,GAAOA,EAAIC,WAAaD,EAAM,CAAEE,QAASF,GAEvF,IAAIua,EAAW,GACXC,OAAe,EAEnBngB,EAAQ6F,QAAU,CAEhBua,QAAS,WACPF,EAAW,IAGbG,SAAU,SAAkBpD,EAAM5C,GAChC6F,EAASjD,GAAQ5C,GAGnBiG,WAAY,SAAoBrD,UACvBiD,EAASjD,IAGlBhJ,IAAK,SAAagJ,GAChB,OAAOiD,EAASjD,IAAS3R,SAAS+K,eAAe4G,IAAS3R,SAASiV,kBAAkBtD,GAAM,IAAM3R,SAASkV,uBAAuBvD,GAAM,IAGzIwD,cAAe,SAAuBC,GACpC,OAAOP,EAAeO,GAGxBC,cAAe,WACb,OAAOR,GAGTS,SAAU,SAAkBnf,EAAIF,GAE9B,IAAIlB,EAASU,KAAKkT,IAAIxS,GAEtB,GAAKpB,EAAL,CAOA,IAAIwgB,GAFJtf,EAAQrB,EAAS,GAAIqB,EAAO,CAAEuf,UAAU,KAEhBD,YACpBE,EAAYxf,EAAMwf,UAElBC,OAAmB,EAErBA,EADEH,EACiBvV,SAAS+K,eAAewK,GAClCE,GAAaA,EAAUE,SACbF,EAEAzV,SAGrB/J,EAAMuf,UAAW,EAEjB,IAAII,EAAejB,EAAQpa,QAAQqb,aAAaF,EAAkB3gB,IAAWkB,EAAM4f,QAAU,GAK7F,IAAK5f,EAAM6f,OAeT,OAdI/b,EAAeQ,QAAQwb,WAAvB,OACFhc,EAAeQ,QAAQwb,WAAvB,MAA2C5f,EAAIpB,GAG7C2gB,IAAqB1V,SACvBD,OAAOuV,SAAS,EAAGM,GAEnBF,EAAiBM,UAAYJ,OAG3B7b,EAAeQ,QAAQwb,WAAvB,KACFhc,EAAeQ,QAAQwb,WAAvB,IAAyC5f,EAAIpB,IAUjDkF,EAAgBM,QAAQ0b,iBAAiBL,EAAc3f,EAAOE,EAAIpB,QA/ChEqW,QAAQ8K,KAAK,+B,6BCtDnBrhB,OAAOiE,eAAepE,EAAS,aAAc,CAC3CqE,OAAO,IA2BTrE,EAAQ6F,QAAU,CAChB4b,SA1Ba,SAAkBjY,GAG/B,GAFAA,EAAOA,EAA6B,IAAtBA,EAAKN,QAAQ,KAAaM,EAAO,IAAMA,EAAO,GAExDrI,QAAQsN,UAAW,CACrB,IAAIiT,EAAMrW,OAAOvI,SACjB3B,QAAQsN,UAAU,KAAM,KAAMjF,EAAOkY,EAAIjb,SAAWib,EAAInY,OAASC,EACjEkY,EAAIjb,SAAWib,EAAInY,aAEnBzG,SAAS0G,KAAOA,GAmBlBmY,QAfY,WACZ,OAAOtW,OAAOvI,SAAS0G,KAAK7G,QAAQ,KAAM,KAe1Cif,yBAZ6B,SAAkCb,GAC/D,OAAO,SAAU1G,GACf,OAAO0G,EAAUc,SAAWd,GAAa1G,GAAW0G,EAAUc,SAASxH,MAA2D,GAA7C0G,EAAUe,wBAAwBzH,MAWzH6G,aAPiB,SAAsBa,EAAGC,GAC1C,OAAOD,IAAMzW,SAAW0W,EAAEC,wBAAwBC,KAAO7W,OAAO8W,SAAW9W,OAAO+W,aAAgD,WAAjCC,iBAAiBN,GAAGO,SAAwBN,EAAEO,UAAYP,EAAEO,UAAYR,EAAEQ,a,iCC1B7K,IAAIC,EAAUviB,EAAQ,IAMlBwiB,EAAgB,CAClBnG,mBAAmB,EACnBoG,aAAa,EACb1F,cAAc,EACdpC,cAAc,EACd+H,aAAa,EACbC,iBAAiB,EACjBC,0BAA0B,EAC1BC,0BAA0B,EAC1BC,QAAQ,EACR7I,WAAW,EACX8I,MAAM,GAEJC,EAAgB,CAClBhG,MAAM,EACNzc,QAAQ,EACRG,WAAW,EACXuiB,QAAQ,EACRC,QAAQ,EACR5iB,WAAW,EACX6iB,OAAO,GASLC,EAAe,CACjB,UAAY,EACZC,SAAS,EACT1I,cAAc,EACd+H,aAAa,EACbzI,WAAW,EACX8I,MAAM,GAEJO,EAAe,GAInB,SAASC,EAAW9gB,GAElB,OAAI8f,EAAQiB,OAAO/gB,GACV2gB,EAIFE,EAAa7gB,EAAS,WAAiB+f,EAVhDc,EAAaf,EAAQkB,YAhBK,CACxB,UAAY,EACZriB,QAAQ,EACRuZ,cAAc,EACd+H,aAAa,EACbzI,WAAW,GAYbqJ,EAAaf,EAAQmB,MAAQN,EAY7B,IAAIjf,EAAiBjE,OAAOiE,eACxBwf,EAAsBzjB,OAAOyjB,oBAC7BC,EAAwB1jB,OAAO0jB,sBAC/B9P,EAA2B5T,OAAO4T,yBAClCI,EAAiBhU,OAAOgU,eACxB2P,EAAkB3jB,OAAOQ,UAsC7BZ,EAAOC,QArCP,SAAS+jB,EAAqBC,EAAiBC,EAAiBC,GAC9D,GAA+B,kBAApBD,EAA8B,CAEvC,GAAIH,EAAiB,CACnB,IAAIK,EAAqBhQ,EAAe8P,GAEpCE,GAAsBA,IAAuBL,GAC/CC,EAAqBC,EAAiBG,EAAoBD,GAI9D,IAAItb,EAAOgb,EAAoBK,GAE3BJ,IACFjb,EAAOA,EAAKlB,OAAOmc,EAAsBI,KAM3C,IAHA,IAAIG,EAAgBZ,EAAWQ,GAC3BK,EAAgBb,EAAWS,GAEtB3jB,EAAI,EAAGA,EAAIsI,EAAKpI,SAAUF,EAAG,CACpC,IAAII,EAAMkI,EAAKtI,GAEf,IAAK2iB,EAAcviB,MAAUwjB,IAAaA,EAAUxjB,OAAW2jB,IAAiBA,EAAc3jB,OAAW0jB,IAAiBA,EAAc1jB,IAAO,CAC7I,IAAIwR,EAAa6B,EAAyBkQ,EAAiBvjB,GAE3D,IAEE0D,EAAe4f,EAAiBtjB,EAAKwR,GACrC,MAAOpI,OAKf,OAAOka,I,8BCjGT7jB,OAAOiE,eAAepE,EAAS,aAAc,CAC3CqE,OAAO,IAGT,IAAInE,EAAWC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,GAEnP2R,EAAe,WAAc,SAASC,EAAiB5R,EAAQkB,GAAS,IAAK,IAAIjB,EAAI,EAAGA,EAAIiB,EAAMf,OAAQF,IAAK,CAAE,IAAI4R,EAAa3Q,EAAMjB,GAAI4R,EAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,UAAWF,IAAYA,EAAWG,UAAW,GAAMlS,OAAOiE,eAAe/D,EAAQ6R,EAAWxR,IAAKwR,IAAiB,OAAO,SAAUI,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAYN,EAAiBK,EAAY3R,UAAW4R,GAAiBC,GAAaP,EAAiBK,EAAaE,GAAqBF,GAA7gB,GAIfI,EAAUzN,EAFDhF,EAAQ,IAMjBqF,EAAcL,EAFDhF,EAAQ,KAMrBmF,EAAaH,EAFDhF,EAAQ,KAMpB2S,EAAc3N,EAFDhF,EAAQ,IAMrBqkB,EAAerf,EAFDhF,EAAQ,KAI1B,SAASgF,EAAuBU,GAAO,OAAOA,GAAOA,EAAIC,WAAaD,EAAM,CAAEE,QAASF,GAQvF,IAAI4e,EAAa,CACf9iB,GAAImR,EAAY/M,QAAQsU,OAAOM,WAC/BoG,YAAajO,EAAY/M,QAAQsU,OACjC4G,UAAWnO,EAAY/M,QAAQ6N,OAC/B8Q,YAAa5R,EAAY/M,QAAQsU,OACjCsK,IAAK7R,EAAY/M,QAAQ2U,KACzB4G,OAAQxO,EAAY/M,QAAQuU,UAAU,CAACxH,EAAY/M,QAAQ2U,KAAM5H,EAAY/M,QAAQsU,SACrFgH,OAAQvO,EAAY/M,QAAQ6U,OAC5BgK,MAAO9R,EAAY/M,QAAQ6U,OAC3BiK,UAAW/R,EAAY/M,QAAQ2U,KAC/BrY,QAASyQ,EAAY/M,QAAQ0U,KAC7BqK,SAAUhS,EAAY/M,QAAQuU,UAAU,CAACxH,EAAY/M,QAAQ6U,OAAQ9H,EAAY/M,QAAQ0U,OACzFuG,SAAUlO,EAAY/M,QAAQ2U,KAC9BqK,YAAajS,EAAY/M,QAAQ0U,KACjCuK,cAAelS,EAAY/M,QAAQ0U,KACnCwK,mBAAoBnS,EAAY/M,QAAQ2U,KACxCwK,QAASpS,EAAY/M,QAAQ2U,MAG/Bxa,EAAQ6F,QAAU,SAAU5E,EAAWgkB,GAErC,IAAIrgB,EAAWqgB,GAAkB7f,EAAWS,QAExCpD,EAAO,SAAUyiB,GAGnB,SAASziB,EAAKlB,IAhClB,SAAyB4R,EAAUb,GAAe,KAAMa,aAAoBb,GAAgB,MAAM,IAAIc,UAAU,qCAiC1GC,CAAgBtS,KAAM0B,GAEtB,IAAI+R,EAjCV,SAAoC2Q,EAAMtkB,GAAQ,IAAKskB,EAAQ,MAAM,IAAIC,eAAe,6DAAgE,OAAOvkB,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BskB,EAAPtkB,EAiChNwkB,CAA2BtkB,MAAO0B,EAAK0D,WAAahG,OAAOgU,eAAe1R,IAAO5B,KAAKE,KAAMQ,IAOxG,OALA+jB,EAAiBzkB,KAAK2T,GAEtBA,EAAM/K,MAAQ,CACZ8b,QAAQ,GAEH/Q,EA0ET,OAhHJ,SAAmBzO,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIoN,UAAU,kEAAoEpN,GAAeD,EAASpF,UAAYR,OAAO8F,OAAOD,GAAcA,EAAWrF,UAAW,CAAEuF,YAAa,CAAE7B,MAAO0B,EAAUoM,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAepM,IAAY7F,OAAOmU,eAAiBnU,OAAOmU,eAAevO,EAAUC,GAAcD,EAASI,UAAYH,GA0B7duO,CAAU9R,EAAMyiB,GAehBlT,EAAavP,EAAM,CAAC,CAClB/B,IAAK,wBACL2D,MAAO,WACL,IAAIwc,EAAc9f,KAAKQ,MAAMsf,YACzBE,EAAYhgB,KAAKQ,MAAMwf,UAE3B,OAAIF,IAAgBE,EACXzV,SAAS+K,eAAewK,GAG7BE,GAAaA,EAAUE,SAClBF,EAGFzV,WAER,CACD5K,IAAK,oBACL2D,MAAO,WACL,GAAItD,KAAKQ,MAAMkjB,KAAO1jB,KAAKQ,MAAMyjB,QAAS,CACxC,IAAIQ,EAAqBzkB,KAAK0kB,wBAEzBngB,EAAYO,QAAQ6f,UAAUF,IACjClgB,EAAYO,QAAQ8f,MAAMH,GAGxBzkB,KAAKQ,MAAMyjB,UACRV,EAAaze,QAAQ6f,aACxBpB,EAAaze,QAAQ8f,MAAM/gB,GAE7B0f,EAAaze,QAAQ+f,aAAa7kB,KAAKQ,MAAME,GAAI+jB,IAGnDlgB,EAAYO,QAAQggB,cAAc9kB,KAAK+kB,WAAYN,GAEnDzkB,KAAKoM,SAAS,CACZ4T,UAAWyE,OAIhB,CACD9kB,IAAK,uBACL2D,MAAO,WACLiB,EAAYO,QAAQua,QAAQrf,KAAKglB,aAAchlB,KAAK+kB,cAErD,CACDplB,IAAK,SACL2D,MAAO,WACL,IAAIhB,EAAY,GAGdA,EADEtC,KAAK0I,OAAS1I,KAAK0I,MAAM8b,SACbxkB,KAAKQ,MAAM8B,WAAa,IAAM,KAAOtC,KAAKQ,MAAMijB,aAAe,WAAW9L,OAE5E3X,KAAKQ,MAAM8B,UAGzB,IAAI9B,EAAQrB,EAAS,GAAIa,KAAKQ,OAE9B,IAAK,IAAIiV,KAAQ+N,EACXhjB,EAAMX,eAAe4V,WAChBjV,EAAMiV,GAOjB,OAHAjV,EAAM8B,UAAYA,EAClB9B,EAAMY,QAAUpB,KAAKilB,YAEdtT,EAAQ7M,QAAQ0F,cAActK,EAAWM,OAI7CkB,EAvFE,CAwFTiQ,EAAQ7M,QAAQogB,eAEdX,EAAmB,WACrB,IAAIxN,EAAS/W,KAEbA,KAAK6f,SAAW,SAAUnf,EAAIF,GAC5BqD,EAASgc,SAASnf,EAAIvB,EAAS,GAAI4X,EAAOrO,MAAOlI,KAGnDR,KAAKilB,YAAc,SAAU3jB,GAMvByV,EAAOvW,MAAMY,SACf2V,EAAOvW,MAAMY,QAAQE,GAOnBA,EAAM6jB,iBAAiB7jB,EAAM6jB,kBAC7B7jB,EAAM8jB,gBAAgB9jB,EAAM8jB,iBAKhCrO,EAAO8I,SAAS9I,EAAOvW,MAAME,GAAIqW,EAAOvW,QAG1CR,KAAK+kB,WAAa,SAAUzJ,GAE1B,IAAImJ,EAAqB1N,EAAO2N,wBAEhC,IAAInB,EAAaze,QAAQ6f,aAAgBpB,EAAaze,QAAQugB,gBAA9D,CAIA,IAAI3kB,EAAKqW,EAAOvW,MAAME,GAClB4Y,EAAU,KACVgM,EAAe,EACfC,EAAkB,EAClBC,EAAe,EAEnB,GAAIf,EAAmBvD,sBAErBsE,EADqBf,EAAmBvD,wBACVC,IAGhC,IAAK7H,GAAWvC,EAAOvW,MAAMojB,UAAW,CAEtC,KADAtK,EAAUzV,EAASqP,IAAIxS,IAErB,OAGF,IAAI+kB,EAAQnM,EAAQ4H,wBAEpBqE,GADAD,EAAeG,EAAMtE,IAAMqE,EAAelK,GACTmK,EAAM1N,OAGzC,IAAI2N,EAAUpK,EAAIvE,EAAOvW,MAAM4f,OAC3BuF,EAAWD,GAAW1Z,KAAK4Z,MAAMN,IAAiBI,EAAU1Z,KAAK4Z,MAAML,GACvEM,EAAYH,EAAU1Z,KAAK4Z,MAAMN,IAAiBI,GAAW1Z,KAAK4Z,MAAML,GACxEO,EAAajiB,EAAS+b,gBAEtBiG,IACEnlB,IAAOolB,GACTjiB,EAAS6b,mBAAc,GAGrB3I,EAAOvW,MAAMyjB,SAAWV,EAAaze,QAAQ8b,YAAclgB,GAC7D6iB,EAAaze,QAAQihB,aAGnBhP,EAAOvW,MAAMkjB,KAAO3M,EAAOrO,MAAM8b,SACnCzN,EAAO3K,SAAS,CAAEoY,QAAQ,IAC1BzN,EAAOvW,MAAMujB,eAAiBhN,EAAOvW,MAAMujB,cAAcrjB,EAAI4Y,MAI7DqM,GAAaG,IAAeplB,IAA8B,IAAxBqW,EAAOrO,MAAM8b,SACjD3gB,EAAS6b,cAAchf,GAEvBqW,EAAOvW,MAAMyjB,SAAWV,EAAaze,QAAQihB,WAAWrlB,GAEpDqW,EAAOvW,MAAMkjB,MACf3M,EAAO3K,SAAS,CAAEoY,QAAQ,IAC1BzN,EAAOvW,MAAMsjB,aAAe/M,EAAOvW,MAAMsjB,YAAYpjB,EAAI4Y,QAYjE,OAJA5X,EAAKyX,UAAYqK,EAEjB9hB,EAAKmY,aAAe,CAAEuG,OAAQ,GAEvB1e,I,6BCxPTtC,OAAOiE,eAAepE,EAAS,aAAc,CAC3CqE,OAAO,IAGT,IAMgCsB,EAN5BohB,EAAU9mB,EAAQ,IAElB+mB,GAI4BrhB,EAJMohB,IAIephB,EAAIC,WAAaD,EAAM,CAAEE,QAASF,GAFnFshB,EAAyBhnB,EAAQ,IAKrC,IAIIyE,EAAY,CAEdwiB,aAAc,GACdC,YAAa,GACbC,oBAAqB,GAErBzB,MAAO,SAAeH,GACpB,GAAIA,EAAoB,CACtB,IAAI6B,EAZW,SAAwBA,GAC3C,OAAO,EAAIL,EAASnhB,SAASwhB,EAAc,IAWpBC,EAAe,SAAUjlB,GAC1CqC,EAAU6iB,cAAc/B,MAE1B9gB,EAAU0iB,oBAAoBvc,KAAK2a,IACnC,EAAIyB,EAAuBO,yBAAyBhC,EAAoB,SAAU6B,KAGtF3B,UAAW,SAAmBF,GAC5B,OAAsE,IAA/D9gB,EAAU0iB,oBAAoBle,QAAQsc,IAE/CiC,iBAAkB,SAA0BjC,GAC1C,GAAIA,IAAuBla,SAAU,CACnC,IAAIoc,OAA2C3iB,IAAvBsG,OAAOsc,YAC3BC,EAA+C,gBAA/Btc,SAASuc,YAAc,IAC3C,OAAOH,EAAoBrc,OAAO+W,YAAcwF,EAAetc,SAASwc,gBAAgBxG,UAAYhW,SAAS6J,KAAKmM,UAElH,OAAOkE,EAAmBlE,WAG9BiG,cAAe,SAAuB/B,IACpB9gB,EAAU0iB,oBAAoB1iB,EAAU0iB,oBAAoBle,QAAQsc,IAAqB0B,cAAgB,IAC/G/b,SAAQ,SAAU4W,GAC1B,OAAOA,EAAErd,EAAU+iB,iBAAiBjC,QAGxCuC,gBAAiB,SAAyB9M,GACxCvW,EAAUyiB,YAAYtc,KAAKoQ,IAE7B4K,cAAe,SAAuB5K,EAASuK,GAC7C,IAAIzE,EAAYrc,EAAU0iB,oBAAoB1iB,EAAU0iB,oBAAoBle,QAAQsc,IAE/EzE,EAAUmG,eACbnG,EAAUmG,aAAe,IAG3BnG,EAAUmG,aAAarc,KAAKoQ,GAE5BA,EAAQvW,EAAU+iB,iBAAiBjC,KAErCwC,aAAc,WACZtjB,EAAUyiB,YAAYhc,SAAQ,SAAU8c,GACtC,OAAOA,QAGX7H,QAAS,SAAiB2F,EAAcD,GACtCphB,EAAU0iB,oBAAoBjc,SAAQ,SAAU4W,GAC9C,OAAOA,EAAEmF,cAAgBnF,EAAEmF,aAAa1mB,QAAUuhB,EAAEmF,aAAavV,OAAOoQ,EAAEmF,aAAahe,QAAQ4c,GAAa,MAG1GphB,EAAUyiB,aAAeziB,EAAUyiB,YAAY3mB,QACjDkE,EAAUyiB,YAAYxV,OAAOjN,EAAUyiB,YAAYje,QAAQ6c,GAAe,GAG5Eza,SAASiD,oBAAoB,SAAU7J,EAAU6iB,gBAInDW,OAAQ,WACN,OAAOxjB,EAAU0iB,oBAAoBjc,SAAQ,SAAU4W,GACrD,OAAOrd,EAAU6iB,cAAcxF,QAKrC/hB,EAAQ6F,QAAUnB,G,6BCzFlBvE,OAAOiE,eAAepE,EAAS,aAAc,CAC3CqE,OAAO,IAOqBrE,EAAQwnB,wBAA0B,SAAiCnnB,EAAQ8nB,EAAWvd,GAClH,IAAIwd,EAAwB,WAC1B,IAAIA,GAAwB,EAC5B,IACE,IAAIC,EAAOloB,OAAOiE,eAAe,GAAI,UAAW,CAC9C6P,IAAK,WACHmU,GAAwB,KAG5B/c,OAAOiD,iBAAiB,OAAQ,KAAM+Z,GACtC,MAAOve,IACT,OAAOse,EAVmB,GAY5B/nB,EAAOiO,iBAAiB6Z,EAAWvd,IAAUwd,GAAwB,CAAEE,SAAS,KAGjDtoB,EAAQuoB,2BAA6B,SAAoCloB,EAAQ8nB,EAAWvd,GAC3HvK,EAAOkO,oBAAoB4Z,EAAWvd,K,6BCzBxCzK,OAAOiE,eAAepE,EAAS,aAAc,CAC5CqE,OAAO,IAGR,IAAIM,EAAS,CACZ0c,WAAY,GACZmH,YAAa,CACZnI,SAAU,SAAkBoI,EAAShe,GACpC9F,EAAO0c,WAAWoH,GAAWhe,GAE9Bie,OAAQ,SAAgBD,GACvB9jB,EAAO0c,WAAWoH,GAAW,QAKhCzoB,EAAQ6F,QAAUlB,G,cCZlB5E,EAAOC,QANP,SAAgC2F,GAC9B,OAAOA,GAAOA,EAAIC,WAAaD,EAAM,CACnC,QAAWA,K,eCIf5F,EAAOC,QANP,SAAwB+F,EAAUC,GAChCD,EAASpF,UAAYR,OAAO8F,OAAOD,EAAWrF,WAC9CoF,EAASpF,UAAUuF,YAAcH,EACjCA,EAASI,UAAYH,I,gBCHvB,IAAI2iB,EAAU1oB,EAAQ,IAKtBF,EAAOC,QAAUge,EACjBje,EAAOC,QAAQ4oB,MAAQA,EACvB7oB,EAAOC,QAAQ6oB,QAsGf,SAAkBC,EAAKrU,GACrB,OAAOsU,EAAiBH,EAAME,EAAKrU,GAAUA,IAtG/C1U,EAAOC,QAAQ+oB,iBAAmBA,EAClChpB,EAAOC,QAAQgpB,eAAiBA,EAOhC,IAAIC,EAAc,IAAIC,OAAO,CAG3B,UAOA,0GACAlhB,KAAK,KAAM,KASb,SAAS4gB,EAAOE,EAAKrU,GAQnB,IAPA,IAKI0U,EALAC,EAAS,GACT1oB,EAAM,EACNmG,EAAQ,EACR/C,EAAO,GACPulB,EAAmB5U,GAAWA,EAAQ6U,WAAa,IAGf,OAAhCH,EAAMF,EAAYM,KAAKT,KAAe,CAC5C,IAAIU,EAAIL,EAAI,GACRM,EAAUN,EAAI,GACdhI,EAASgI,EAAItiB,MAKjB,GAJA/C,GAAQglB,EAAIzf,MAAMxC,EAAOsa,GACzBta,EAAQsa,EAASqI,EAAEhpB,OAGfipB,EACF3lB,GAAQ2lB,EAAQ,OADlB,CAKA,IAAI7J,EAAOkJ,EAAIjiB,GACXmC,EAASmgB,EAAI,GACblM,EAAOkM,EAAI,GACXO,EAAUP,EAAI,GACdQ,EAAQR,EAAI,GACZS,EAAWT,EAAI,GACfU,EAAWV,EAAI,GAGfrlB,IACFslB,EAAOve,KAAK/G,GACZA,EAAO,IAGT,IAAIgmB,EAAoB,MAAV9gB,GAA0B,MAAR4W,GAAgBA,IAAS5W,EACrD+gB,EAAsB,MAAbH,GAAiC,MAAbA,EAC7BI,EAAwB,MAAbJ,GAAiC,MAAbA,EAC/BN,EAAYH,EAAI,IAAME,EACtBY,EAAUP,GAAWC,EAEzBP,EAAOve,KAAK,CACVoS,KAAMA,GAAQvc,IACdsI,OAAQA,GAAU,GAClBsgB,UAAWA,EACXU,SAAUA,EACVD,OAAQA,EACRD,QAASA,EACTD,WAAYA,EACZI,QAASA,EAAUC,EAAYD,GAAYJ,EAAW,KAAO,KAAOM,EAAab,GAAa,SAclG,OATIziB,EAAQiiB,EAAItoB,SACdsD,GAAQglB,EAAI7gB,OAAOpB,IAIjB/C,GACFslB,EAAOve,KAAK/G,GAGPslB,EAoBT,SAASgB,EAA0BtB,GACjC,OAAOuB,UAAUvB,GAAKnmB,QAAQ,WAAW,SAAUof,GACjD,MAAO,IAAMA,EAAEuI,WAAW,GAAGrd,SAAS,IAAI6J,iBAmB9C,SAASiS,EAAkBK,EAAQ3U,GAKjC,IAHA,IAAI8V,EAAU,IAAIjiB,MAAM8gB,EAAO5oB,QAGtBF,EAAI,EAAGA,EAAI8oB,EAAO5oB,OAAQF,IACR,kBAAd8oB,EAAO9oB,KAChBiqB,EAAQjqB,GAAK,IAAI4oB,OAAO,OAASE,EAAO9oB,GAAG2pB,QAAU,KAAMO,EAAM/V,KAIrE,OAAO,SAAU9O,EAAK0iB,GAMpB,IALA,IAAIvkB,EAAO,GACP2mB,EAAO9kB,GAAO,GAEd+kB,GADUrC,GAAQ,IACDsC,OAASP,EAA2BQ,mBAEhDtqB,EAAI,EAAGA,EAAI8oB,EAAO5oB,OAAQF,IAAK,CACtC,IAAIuqB,EAAQzB,EAAO9oB,GAEnB,GAAqB,kBAAVuqB,EAAX,CAMA,IACIC,EADAzmB,EAAQomB,EAAKI,EAAM5N,MAGvB,GAAa,MAAT5Y,EAAe,CACjB,GAAIwmB,EAAMb,SAAU,CAEda,EAAMf,UACRhmB,GAAQ+mB,EAAM7hB,QAGhB,SAEA,MAAM,IAAIoK,UAAU,aAAeyX,EAAM5N,KAAO,mBAIpD,GAAI0L,EAAQtkB,GAAZ,CACE,IAAKwmB,EAAMd,OACT,MAAM,IAAI3W,UAAU,aAAeyX,EAAM5N,KAAO,kCAAoC8N,KAAKC,UAAU3mB,GAAS,KAG9G,GAAqB,IAAjBA,EAAM7D,OAAc,CACtB,GAAIqqB,EAAMb,SACR,SAEA,MAAM,IAAI5W,UAAU,aAAeyX,EAAM5N,KAAO,qBAIpD,IAAK,IAAIgO,EAAI,EAAGA,EAAI5mB,EAAM7D,OAAQyqB,IAAK,CAGrC,GAFAH,EAAUJ,EAAOrmB,EAAM4mB,KAElBV,EAAQjqB,GAAG0f,KAAK8K,GACnB,MAAM,IAAI1X,UAAU,iBAAmByX,EAAM5N,KAAO,eAAiB4N,EAAMZ,QAAU,oBAAsBc,KAAKC,UAAUF,GAAW,KAGvIhnB,IAAe,IAANmnB,EAAUJ,EAAM7hB,OAAS6hB,EAAMvB,WAAawB,OApBzD,CA4BA,GAFAA,EAAUD,EAAMhB,SA5EbQ,UA4EuChmB,GA5ExB1B,QAAQ,SAAS,SAAUof,GAC/C,MAAO,IAAMA,EAAEuI,WAAW,GAAGrd,SAAS,IAAI6J,iBA2EW4T,EAAOrmB,IAErDkmB,EAAQjqB,GAAG0f,KAAK8K,GACnB,MAAM,IAAI1X,UAAU,aAAeyX,EAAM5N,KAAO,eAAiB4N,EAAMZ,QAAU,oBAAsBa,EAAU,KAGnHhnB,GAAQ+mB,EAAM7hB,OAAS8hB,QArDrBhnB,GAAQ+mB,EAwDZ,OAAO/mB,GAUX,SAASqmB,EAAcrB,GACrB,OAAOA,EAAInmB,QAAQ,6BAA8B,QASnD,SAASunB,EAAaP,GACpB,OAAOA,EAAMhnB,QAAQ,gBAAiB,QAUxC,SAASuoB,EAAYC,EAAIviB,GAEvB,OADAuiB,EAAGviB,KAAOA,EACHuiB,EAST,SAASX,EAAO/V,GACd,OAAOA,GAAWA,EAAQkJ,UAAY,GAAK,IAwE7C,SAASqL,EAAgBI,EAAQxgB,EAAM6L,GAChCkU,EAAQ/f,KACX6L,EAAkC7L,GAAQ6L,EAC1C7L,EAAO,IAUT,IALA,IAAIlF,GAFJ+Q,EAAUA,GAAW,IAEA/Q,OACjBwa,GAAsB,IAAhBzJ,EAAQyJ,IACdkN,EAAQ,GAGH9qB,EAAI,EAAGA,EAAI8oB,EAAO5oB,OAAQF,IAAK,CACtC,IAAIuqB,EAAQzB,EAAO9oB,GAEnB,GAAqB,kBAAVuqB,EACTO,GAASjB,EAAaU,OACjB,CACL,IAAI7hB,EAASmhB,EAAaU,EAAM7hB,QAC5B0gB,EAAU,MAAQmB,EAAMZ,QAAU,IAEtCrhB,EAAKiC,KAAKggB,GAENA,EAAMd,SACRL,GAAW,MAAQ1gB,EAAS0gB,EAAU,MAaxC0B,GANI1B,EAJAmB,EAAMb,SACHa,EAAMf,QAGC9gB,EAAS,IAAM0gB,EAAU,KAFzB,MAAQ1gB,EAAS,IAAM0gB,EAAU,MAKnC1gB,EAAS,IAAM0gB,EAAU,KAOzC,IAAIJ,EAAYa,EAAa1V,EAAQ6U,WAAa,KAC9C+B,EAAoBD,EAAM/hB,OAAOigB,EAAU9oB,UAAY8oB,EAkB3D,OAZK5lB,IACH0nB,GAASC,EAAoBD,EAAM/hB,MAAM,GAAIigB,EAAU9oB,QAAU4qB,GAAS,MAAQ9B,EAAY,WAI9F8B,GADElN,EACO,IAIAxa,GAAU2nB,EAAoB,GAAK,MAAQ/B,EAAY,MAG3D4B,EAAW,IAAIhC,OAAO,IAAMkC,EAAOZ,EAAM/V,IAAW7L,GAe7D,SAASoV,EAAcla,EAAM8E,EAAM6L,GAQjC,OAPKkU,EAAQ/f,KACX6L,EAAkC7L,GAAQ6L,EAC1C7L,EAAO,IAGT6L,EAAUA,GAAW,GAEjB3Q,aAAgBolB,OAlJtB,SAAyBplB,EAAM8E,GAE7B,IAAI0iB,EAASxnB,EAAKrD,OAAOuD,MAAM,aAE/B,GAAIsnB,EACF,IAAK,IAAIhrB,EAAI,EAAGA,EAAIgrB,EAAO9qB,OAAQF,IACjCsI,EAAKiC,KAAK,CACRoS,KAAM3c,EACN0I,OAAQ,KACRsgB,UAAW,KACXU,UAAU,EACVD,QAAQ,EACRD,SAAS,EACTD,UAAU,EACVI,QAAS,OAKf,OAAOiB,EAAWpnB,EAAM8E,GAgIf2iB,CAAeznB,EAA6B8E,GAGjD+f,EAAQ7kB,GAxHd,SAAwBA,EAAM8E,EAAM6L,GAGlC,IAFA,IAAI+W,EAAQ,GAEHlrB,EAAI,EAAGA,EAAIwD,EAAKtD,OAAQF,IAC/BkrB,EAAM3gB,KAAKmT,EAAala,EAAKxD,GAAIsI,EAAM6L,GAAShU,QAKlD,OAAOyqB,EAFM,IAAIhC,OAAO,MAAQsC,EAAMxjB,KAAK,KAAO,IAAKwiB,EAAM/V,IAEnC7L,GAgHjB6iB,CAAqC3nB,EAA8B8E,EAAO6L,GArGrF,SAAyB3Q,EAAM8E,EAAM6L,GACnC,OAAOuU,EAAeJ,EAAM9kB,EAAM2Q,GAAU7L,EAAM6L,GAuG3CiX,CAAsC5nB,EAA8B8E,EAAO6L,K,8BChapF,IAAIoP,EAAwB1jB,OAAO0jB,sBAC/BjjB,EAAiBT,OAAOQ,UAAUC,eAClC+qB,EAAmBxrB,OAAOQ,UAAUirB,qBAExC,SAASC,EAASC,GACjB,GAAY,OAARA,QAAwB/mB,IAAR+mB,EACnB,MAAM,IAAI1Y,UAAU,yDAGrB,OAAOjT,OAAO2rB,GA+Cf/rB,EAAOC,QA5CP,WACC,IACC,IAAKG,OAAOC,OACX,OAAO,EAMR,IAAI2rB,EAAQ,IAAIC,OAAO,OAEvB,GADAD,EAAM,GAAK,KACkC,MAAzC5rB,OAAOyjB,oBAAoBmI,GAAO,GACrC,OAAO,EAKR,IADA,IAAIE,EAAQ,GACH3rB,EAAI,EAAGA,EAAI,GAAIA,IACvB2rB,EAAM,IAAMD,OAAOE,aAAa5rB,IAAMA,EAKvC,GAAwB,eAHXH,OAAOyjB,oBAAoBqI,GAAO1a,KAAI,SAAUxK,GAC5D,OAAOklB,EAAMllB,MAEHiB,KAAK,IACf,OAAO,EAIR,IAAImkB,EAAQ,GAIZ,MAHA,uBAAuB9kB,MAAM,IAAI8D,SAAQ,SAAUihB,GAClDD,EAAMC,GAAUA,KAGf,yBADEjsB,OAAOyI,KAAKzI,OAAOC,OAAO,GAAI+rB,IAAQnkB,KAAK,IAM9C,MAAO8W,GAER,OAAO,GAIQuN,GAAoBlsB,OAAOC,OAAS,SAAUC,EAAQI,GAKtE,IAJA,IAAIyG,EAEAolB,EADA7qB,EAAKoqB,EAASxrB,GAGT4nB,EAAI,EAAGA,EAAI1nB,UAAUC,OAAQynB,IAAK,CAG1C,IAAK,IAAIvnB,KAFTwG,EAAO/G,OAAOI,UAAU0nB,IAGnBrnB,EAAeC,KAAKqG,EAAMxG,KAC7Be,EAAGf,GAAOwG,EAAKxG,IAIjB,GAAImjB,EAAuB,CAC1ByI,EAAUzI,EAAsB3c,GAChC,IAAK,IAAI5G,EAAI,EAAGA,EAAIgsB,EAAQ9rB,OAAQF,IAC/BqrB,EAAiB9qB,KAAKqG,EAAMolB,EAAQhsB,MACvCmB,EAAG6qB,EAAQhsB,IAAM4G,EAAKolB,EAAQhsB,MAMlC,OAAOmB,I,cCxFR,IAAI8qB,EAGJA,EAAK,WACJ,OAAOxrB,KADH,GAIL,IAECwrB,EAAIA,GAAK,IAAI1Y,SAAS,cAAb,GACR,MAAO/J,GAEc,kBAAXuB,SAAqBkhB,EAAIlhB,QAOrCtL,EAAOC,QAAUusB,G,6BChBfxsB,EAAOC,QAAUC,EAAQ,K,6BCD3BE,OAAOiE,eAAepE,EAAS,aAAc,CAC3CqE,OAAO,IAGT,IAAInE,EAAWC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,GAQnPmsB,GAJUvnB,EAFDhF,EAAQ,KAMNgF,EAFDhF,EAAQ,MAMlBwsB,EAAiBxnB,EAFDhF,EAAQ,KAMxBoF,EAAiBJ,EAFDhF,EAAQ,KAI5B,SAASgF,EAAuBU,GAAO,OAAOA,GAAOA,EAAIC,WAAaD,EAAM,CAAEE,QAASF,GAKvF,IAAI+mB,EAAmB,SAA0BjY,GAC/C,OAAO+X,EAAS3mB,QAAQ4O,EAAQ2M,SAAWoL,EAAS3mB,QAAQ8mB,eAsB1DC,EAT0B,WAC5B,GAAsB,qBAAXvhB,OACT,OAAOA,OAAOwhB,uBAAyBxhB,OAAOyhB,4BAQzCC,IAA6B,SAAUtiB,EAAU4P,EAASqK,GAC/DrZ,OAAOiK,WAAW7K,EAAUia,GAAS,IAAO,IAAI,IAAIsI,MAAOC,YAuB3DxF,EAAmB,SAA0BhT,GAC/C,IAAIuM,EAAmBvM,EAAQgW,KAAKzJ,iBACpC,GAAIA,GAAoBA,IAAqB1V,UAAY0V,IAAqB1V,SAAS6J,KACrF,OAAO6L,EAAiBM,UAExB,IAAIoG,OAA2C3iB,IAAvBsG,OAAOsc,YAC3BC,EAA+C,gBAA/Btc,SAASuc,YAAc,IAC3C,OAAOH,EAAoBrc,OAAO+W,YAAcwF,EAAetc,SAASwc,gBAAgBxG,UAAYhW,SAAS6J,KAAKmM,WAgBlH7c,EAAgB,SAASA,EAAcyoB,EAAQzY,EAAS0Y,GAC1D,IAAI1C,EAAOhW,EAAQgW,KAGnB,GAAKhW,EAAQsQ,qBAAsB0F,EAAK2C,OAyBxC,GAlBA3C,EAAK4C,SAAWtgB,KAAKugB,MAAM7C,EAAK8C,gBAAkB9C,EAAK+C,gBAEpC,OAAf/C,EAAKgD,QACPhD,EAAKgD,MAAQN,GAGf1C,EAAKiD,SAAWP,EAAY1C,EAAKgD,MAEjChD,EAAKkD,QAAUlD,EAAKiD,UAAYjD,EAAK7F,SAAW,EAAIsI,EAAOzC,EAAKiD,SAAWjD,EAAK7F,UAEhF6F,EAAKhD,iBAAmBgD,EAAK+C,eAAiBzgB,KAAK6gB,KAAKnD,EAAK4C,SAAW5C,EAAKkD,SAEzElD,EAAKzJ,kBAAoByJ,EAAKzJ,mBAAqB1V,UAAYmf,EAAKzJ,mBAAqB1V,SAAS6J,KACpGsV,EAAKzJ,iBAAiBM,UAAYmJ,EAAKhD,iBAEvCpc,OAAOuV,SAAS,EAAG6J,EAAKhD,kBAGtBgD,EAAKkD,QAAU,EAAnB,CACE,IAAIE,EAAeppB,EAAcmT,KAAK,KAAMsV,EAAQzY,GACpDmY,EAA4B/rB,KAAKwK,OAAQwiB,QAIvCxoB,EAAeQ,QAAQwb,WAAvB,KACFhc,EAAeQ,QAAQwb,WAAvB,IAAyCoJ,EAAKhpB,GAAIgpB,EAAKpqB,OAAQoqB,EAAKhD,uBA/BhEpiB,EAAeQ,QAAQwb,WAAvB,KACFhc,EAAeQ,QAAQwb,WAAvB,IAAyCoJ,EAAKhpB,GAAIgpB,EAAKpqB,OAAQoqB,EAAKhD,mBAkCtEqG,EAAe,SAAsBrZ,GACvCA,EAAQgW,KAAKzJ,iBAAoBvM,EAAiBA,EAAQoM,YAAcvV,SAAS+K,eAAe5B,EAAQoM,aAAepM,EAAQsM,WAAatM,EAAQsM,UAAUE,SAAWxM,EAAQsM,UAAYzV,SAAlJ,MAGzCiW,EAAmB,SAA0BlF,EAAG5H,EAAShT,EAAIpB,GAgB/D,GAfAoU,EAAQgW,KAAOhW,EAAQgW,MAtFhB,CACLhD,iBAAkB,EAClB+F,eAAgB,EAChBD,gBAAiB,EACjBG,SAAU,EACV9I,SAAU,EACVwI,QAAQ,EAER/sB,OAAQ,KACR2gB,iBAAkB,KAClBvf,GAAI,KACJgsB,MAAO,KACPJ,SAAU,KACVM,QAAS,KACTI,aAAc,MA0EhB1iB,OAAOgK,aAAaZ,EAAQgW,KAAKsD,cAEjCtB,EAAe5mB,QAAQmoB,WAAU,WAC/BvZ,EAAQgW,KAAK2C,QAAS,KAGxBU,EAAarZ,GAEbA,EAAQgW,KAAKgD,MAAQ,KACrBhZ,EAAQgW,KAAK2C,QAAS,EACtB3Y,EAAQgW,KAAK+C,eAAiB/F,EAAiBhT,GAC/CA,EAAQgW,KAAK8C,gBAAkB9Y,EAAQqM,SAAWzE,EAAIA,EAAI5H,EAAQgW,KAAK+C,eAEnE/Y,EAAQgW,KAAK+C,iBAAmB/Y,EAAQgW,KAAK8C,gBAAjD,CA7HoB,IAAyBlpB,EAoI7CoQ,EAAQgW,KAAK4C,SAAWtgB,KAAKugB,MAAM7Y,EAAQgW,KAAK8C,gBAAkB9Y,EAAQgW,KAAK+C,gBAE/E/Y,EAAQgW,KAAK7F,UArIW,oBADqBvgB,EAsILoQ,EAAQmQ,UArIXvgB,EAAQ,WAC3C,OAAOA,IAoIiDoQ,EAAQgW,KAAK4C,UACvE5Y,EAAQgW,KAAK7F,SAAWqJ,MAAMC,WAAWzZ,EAAQgW,KAAK7F,WAAa,IAAOsJ,WAAWzZ,EAAQgW,KAAK7F,UAClGnQ,EAAQgW,KAAKhpB,GAAKA,EAClBgT,EAAQgW,KAAKpqB,OAASA,EAEtB,IAAI6sB,EAASR,EAAiBjY,GAC1BoZ,EAAeppB,EAAcmT,KAAK,KAAMsV,EAAQzY,GAEhDA,GAAWA,EAAQiQ,MAAQ,EAC7BjQ,EAAQgW,KAAKsD,aAAe1iB,OAAOiK,YAAW,WACxCjQ,EAAeQ,QAAQwb,WAAvB,OACFhc,EAAeQ,QAAQwb,WAAvB,MAA2C5M,EAAQgW,KAAKhpB,GAAIgT,EAAQgW,KAAKpqB,QAE3EusB,EAA4B/rB,KAAKwK,OAAQwiB,KACxCpZ,EAAQiQ,QAITrf,EAAeQ,QAAQwb,WAAvB,OACFhc,EAAeQ,QAAQwb,WAAvB,MAA2C5M,EAAQgW,KAAKhpB,GAAIgT,EAAQgW,KAAKpqB,QAE3EusB,EAA4B/rB,KAAKwK,OAAQwiB,SA7BnCxoB,EAAeQ,QAAQwb,WAAvB,KACFhc,EAAeQ,QAAQwb,WAAvB,IAAyC5M,EAAQgW,KAAKhpB,GAAIgT,EAAQgW,KAAKpqB,OAAQoU,EAAQgW,KAAKhD,mBA+B9F0G,EAAiB,SAAwB1Z,GAI3C,OAHAA,EAAUvU,EAAS,GAAIuU,IACfgW,KAAOhW,EAAQgW,MAxIhB,CACLhD,iBAAkB,EAClB+F,eAAgB,EAChBD,gBAAiB,EACjBG,SAAU,EACV9I,SAAU,EACVwI,QAAQ,EAER/sB,OAAQ,KACR2gB,iBAAkB,KAClBvf,GAAI,KACJgsB,MAAO,KACPJ,SAAU,KACVM,QAAS,KACTI,aAAc,MA2HhBtZ,EAAQqM,UAAW,EACZrM,GAuBTzU,EAAQ6F,QAAU,CAChB0b,iBAAkBA,EAClBmL,iBAAkBA,EAClB0B,YAvBgB,SAAqB3Z,GACrC8M,EAAiB,EAAG4M,EAAe1Z,KAuBnC4Z,eAhBmB,SAAwB5Z,GAC3CA,EAAU0Z,EAAe1Z,GACzBqZ,EAAarZ,GACb8M,EA3H0B,SAA+B9M,GACzD,IAAIuM,EAAmBvM,EAAQgW,KAAKzJ,iBACpC,GAAIA,GAAoBA,IAAqB1V,UAAY0V,IAAqB1V,SAAS6J,KACrF,OAAO6L,EAAiBsN,aAAetN,EAAiBuN,aAExD,IAAIpZ,EAAO7J,SAAS6J,KAChBqZ,EAAOljB,SAASwc,gBAEpB,OAAO/a,KAAKiE,IAAImE,EAAKmZ,aAAcnZ,EAAKoZ,aAAcC,EAAKC,aAAcD,EAAKF,aAAcE,EAAKD,cAmHlFG,CAAsBja,GAAUA,IAcjDmM,SArBa,SAAkB+N,EAAKla,GACpC8M,EAAiBoN,EAAKR,EAAe1Z,KAqBrCma,WAZe,SAAoBD,EAAKla,GACxCA,EAAU0Z,EAAe1Z,GACzBqZ,EAAarZ,GACb8M,EAAiBkG,EAAiBhT,GAAWka,EAAKla,M,6BCvNpDtU,OAAOiE,eAAepE,EAAS,aAAc,CAC3CqE,OAAO,IAGoBpE,EAAQ,IAArC,IAMgC0F,EAJ5BkpB,EAAS5uB,EAAQ,IAEjBggB,GAE4Bta,EAFKkpB,IAEgBlpB,EAAIC,WAAaD,EAAM,CAAEE,QAASF,GAEvF,IAAImpB,EAAa,CACfC,WAAW,EACXC,aAAa,EACbpqB,SAAU,KACVqqB,WAAY,GAEZtJ,MAAO,SAAe/gB,GACpB7D,KAAK6D,SAAWA,EAEhB7D,KAAKyM,iBAAmBzM,KAAKyM,iBAAiBoK,KAAK7W,MACnDsK,OAAOiD,iBAAiB,aAAcvN,KAAKyM,kBAE3CzM,KAAKmuB,oBACLnuB,KAAKguB,WAAY,GAEnBnJ,aAAc,SAAsBnkB,EAAIsf,GACtChgB,KAAKkuB,WAAWxtB,GAAMsf,GAExB2E,UAAW,WACT,OAAO3kB,KAAKguB,WAEd3I,cAAe,WACb,OAAOrlB,KAAKiuB,aAEdE,kBAAmB,WACjB,IAAI1a,EAAQzT,KAERyI,EAAOzI,KAAK4gB,UACZnY,EACF6B,OAAOiK,YAAW,WAChBd,EAAMoM,SAASpX,GAAM,GACrBgL,EAAMwa,aAAc,IACnB,IAEHjuB,KAAKiuB,aAAc,GAGvBpO,SAAU,SAAkBnf,EAAI0tB,GAC9B,IAAIvqB,EAAW7D,KAAK6D,SAEpB,GADcA,EAASqP,IAAIxS,KACX0tB,GAAU1tB,IAAOmD,EAAS+b,iBAAkB,CAC1D,IAAII,EAAYhgB,KAAKkuB,WAAWxtB,IAAO6J,SACvC1G,EAASgc,SAASnf,EAAI,CAAEsf,UAAWA,MAGvCY,QAAS,WACP,OAAO1B,EAAQpa,QAAQ8b,WAEzBmF,WAAY,SAAoBrlB,GAC1BV,KAAKqlB,iBAAmBnG,EAAQpa,QAAQ8b,YAAclgB,GACxDwe,EAAQpa,QAAQ4b,SAAShgB,IAG7B+L,iBAAkB,WAChBzM,KAAK6f,SAAS7f,KAAK4gB,YAErBvB,QAAS,WACPrf,KAAK6D,SAAW,KAChB7D,KAAKkuB,WAAa,KAClB5jB,OAAOkD,oBAAoB,aAAcxN,KAAKyM,oBAIlDxN,EAAQ6F,QAAUipB,G,6BC3ElB3uB,OAAOiE,eAAepE,EAAS,aAAc,CAC3CqE,OAAO,IAGT,IAAInE,EAAWC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,GAEnP2R,EAAe,WAAc,SAASC,EAAiB5R,EAAQkB,GAAS,IAAK,IAAIjB,EAAI,EAAGA,EAAIiB,EAAMf,OAAQF,IAAK,CAAE,IAAI4R,EAAa3Q,EAAMjB,GAAI4R,EAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,UAAWF,IAAYA,EAAWG,UAAW,GAAMlS,OAAOiE,eAAe/D,EAAQ6R,EAAWxR,IAAKwR,IAAiB,OAAO,SAAUI,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAYN,EAAiBK,EAAY3R,UAAW4R,GAAiBC,GAAaP,EAAiBK,EAAaE,GAAqBF,GAA7gB,GAIfI,EAAUzN,EAFDhF,EAAQ,IAUjBmF,GAJaH,EAFDhF,EAAQ,KAMPgF,EAFDhF,EAAQ,MAMpB2S,EAAc3N,EAFDhF,EAAQ,IAIzB,SAASgF,EAAuBU,GAAO,OAAOA,GAAOA,EAAIC,WAAaD,EAAM,CAAEE,QAASF,GAQvF3F,EAAQ6F,QAAU,SAAU5E,GAC1B,IAAI4D,EAAU,SAAUuqB,GAGtB,SAASvqB,EAAQtD,IAVrB,SAAyB4R,EAAUb,GAAe,KAAMa,aAAoBb,GAAgB,MAAM,IAAIc,UAAU,qCAW1GC,CAAgBtS,KAAM8D,GAEtB,IAAI2P,EAXV,SAAoC2Q,EAAMtkB,GAAQ,IAAKskB,EAAQ,MAAM,IAAIC,eAAe,6DAAgE,OAAOvkB,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BskB,EAAPtkB,EAWhNwkB,CAA2BtkB,MAAO8D,EAAQsB,WAAahG,OAAOgU,eAAetP,IAAUhE,KAAKE,KAAMQ,IAK9G,OAHAiT,EAAM6a,cAAgB,CACpBC,QAAS,MAEJ9a,EAsCT,OApDJ,SAAmBzO,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIoN,UAAU,kEAAoEpN,GAAeD,EAASpF,UAAYR,OAAO8F,OAAOD,GAAcA,EAAWrF,UAAW,CAAEuF,YAAa,CAAE7B,MAAO0B,EAAUoM,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAepM,IAAY7F,OAAOmU,eAAiBnU,OAAOmU,eAAevO,EAAUC,GAAcD,EAASI,UAAYH,GAI7duO,CAAU1P,EAASuqB,GAanBpd,EAAanN,EAAS,CAAC,CACrBnE,IAAK,oBACL2D,MAAO,WACL,GAAsB,qBAAXgH,OACT,OAAO,EAETtK,KAAKwuB,cAAcxuB,KAAKQ,MAAM0b,QAE/B,CACDvc,IAAK,qBACL2D,MAAO,SAA4BwT,GAC7B9W,KAAKQ,MAAM0b,OAASpF,EAAUoF,MAChClc,KAAKwuB,cAAcxuB,KAAKQ,MAAM0b,QAGjC,CACDvc,IAAK,uBACL2D,MAAO,WACL,GAAsB,qBAAXgH,OACT,OAAO,EAETjG,EAAWS,QAAQya,WAAWvf,KAAKQ,MAAM0b,QAE1C,CACDvc,IAAK,gBACL2D,MAAO,SAAuB4Y,GAC5B7X,EAAWS,QAAQwa,SAASpD,EAAMlc,KAAKsuB,cAAcC,WAEtD,CACD5uB,IAAK,SACL2D,MAAO,WACL,OAAOqO,EAAQ7M,QAAQ0F,cAActK,EAAWf,EAAS,GAAIa,KAAKQ,MAAO,CAAEiuB,eAAgBzuB,KAAKsuB,qBAI7FxqB,EAjDK,CAkDZ6N,EAAQ7M,QAAQ5E,WASlB,OALA4D,EAAQqV,UAAY,CAClB+C,KAAMrK,EAAY/M,QAAQsU,OAC1BjE,GAAItD,EAAY/M,QAAQsU,QAGnBtV,I,6BC5FT,IAAII,EAAyBhF,EAAQ,IAErCE,OAAOiE,eAAepE,EAAS,aAAc,CAC3CqE,OAAO,IAETrE,EAAQ6F,QAQR,SAAuB/B,EAAM6e,GAC3B,IAAI1hB,EAAYwR,EAAO5M,QAAQuY,KAAK3L,EAAO5M,QAAQ9D,YAAW,SAAUR,EAAOkuB,GAC7E,OAAOhd,EAAO5M,QAAQ0F,cAAcmkB,EAAS7pB,SAAS,EAAI8pB,EAAU9pB,SAAS,CAC3E4pB,IAAKA,GACJluB,GAAQuC,OAGT+a,EAKJ,OADA5d,EAAU2uB,QAAUF,EAAS7pB,QAAQ+pB,QAC9B3uB,GAlBT,IAAI0uB,EAAY1qB,EAAuBhF,EAAQ,KAE3CwS,EAASxN,EAAuBhF,EAAQ,IAExCyvB,EAAWzqB,EAAuBhF,EAAQ,O,6BCX9CE,OAAOiE,eAAepE,EAAS,aAAc,CAC3CqE,OAAO,IAGTrE,EAAO,QAAc,WACnB,IAAI6vB,OAAO9qB,EACX,IACE8qB,EAAO5vB,EAAQ,IADjB,QAGE,OAAO4vB,IAIX9vB,EAAOC,QAAUA,EAAO,S,6BCbxBG,OAAOiE,eAAepE,EAAS,aAAc,CACzCqE,OAAO,IAGX,IAIgCsB,EAJ5BmqB,EAAc7vB,EAAQ,KAEtB8vB,GAE4BpqB,EAFUmqB,IAEWnqB,EAAIC,WAAaD,EAAM,CAAEE,QAASF,GAIvF3F,EAAQ6F,QAAU,CACdmqB,KAAM,SAAcC,GAChB,OAAO,EAAIF,EAAalqB,SAJhC,SAAyBF,EAAKjF,EAAK2D,GAAiK,OAApJ3D,KAAOiF,EAAOxF,OAAOiE,eAAeuB,EAAKjF,EAAK,CAAE2D,MAAOA,EAAO8N,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkB1M,EAAIjF,GAAO2D,EAAgBsB,EAIlKuqB,CAAgB,CAC7C,iBAAiB,GAClBD,IAAmBA,KAG1BE,SAAU,SAAkBC,GACxB,OAAO,EAAIL,EAAalqB,SAAS,CAC7BwqB,UAAU,EACV,kBAAmBD,KAI3BE,QAAS,SAAiBF,EAAUG,GAChC,OAAO,EAAIR,EAAalqB,SAAS,CAC7B,kBAAmBuqB,EACnB,iBAAkBA,EAClB,kBAA4B,eAATG,EACnB,gBAA0B,eAATA,KAIzBC,OAAQ,SAAgBJ,EAAUK,GAC9B,OAAO,EAAIV,EAAalqB,SAAS,CAC7B6qB,QAASN,EACTO,OAAQP,EACRQ,UAAWH,KAInBI,KAAM,SAAcT,EAAUU,GAC1B,OAAO,EAAIf,EAAalqB,SAAS,CAC7BkrB,OAAQX,EACRY,MAAOZ,EACPU,SAAUA,KAIlBG,WAAY,SAAoBC,GAC5B,OAAO,EAAInB,EAAalqB,SAAS,CAC7B,8BAA8B,EAC9B,mBAAoBqrB,KAI5BC,WAAY,SAAoBD,GAC5B,OAAO,EAAInB,EAAalqB,SAAS,CAC7B,8BAA8B,EAC9B,mBAAoBqrB,KAI5BE,IAAK,SAAaN,GACd,OAAO,EAAIf,EAAalqB,SAAS,CAC7BwrB,KAAK,EACLP,SAAUA,O,6BCpEtB3wB,OAAOiE,eAAepE,EAAS,aAAc,CACzCqE,OAAO,IAGXrE,EAAQ6F,QAAU,SAAUyc,EAAUiO,GAMlC,MAJqB,eAEI,KAHE,eAATA,EAAwB,CAACjO,EAAU,EAAG,GAAK,CAAC,EAAGA,EAAU,IAGhCta,KAAK,KAAO,O,gBCV3D,UAEIspB,EAAO,CAAC,EAAW,aAAb,6BAUD,SAAUtxB,EAASuxB,GAC1B,aAEApxB,OAAOiE,eAAepE,EAAS,aAAc,CAC3CqE,OAAO,IAGT,IAEgCsB,EAF5B6rB,GAE4B7rB,EAFU4rB,IAG1B5rB,EAAIC,WAAaD,EAAM,CACnCE,QAASF,GAIb3F,EAAQ6F,QAAU2rB,EAAa3rB,UAzBvB,gC,6BCAV1F,OAAOiE,eAAepE,EAAS,aAAc,CACzCqE,OAAO,IAGX,IAAInE,EAAWC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,GAEnP2R,EAAe,WAAc,SAASC,EAAiB5R,EAAQkB,GAAS,IAAK,IAAIjB,EAAI,EAAGA,EAAIiB,EAAMf,OAAQF,IAAK,CAAE,IAAI4R,EAAa3Q,EAAMjB,GAAI4R,EAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,UAAWF,IAAYA,EAAWG,UAAW,GAAMlS,OAAOiE,eAAe/D,EAAQ6R,EAAWxR,IAAKwR,IAAiB,OAAO,SAAUI,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAYN,EAAiBK,EAAY3R,UAAW4R,GAAiBC,GAAaP,EAAiBK,EAAaE,GAAqBF,GAA7gB,GAEfG,EAASxS,EAAQ,GAEjByS,EAAUzN,EAAuBwN,GAIjCG,EAAc3N,EAFDhF,EAAQ,IAMrBwxB,EAAexsB,EAFDhF,EAAQ,KAItByxB,EAAczxB,EAAQ,KAItB0xB,EAAiB1sB,EAFDhF,EAAQ,KAMxB2xB,EAAmB3sB,EAFDhF,EAAQ,KAI9B,SAASgF,EAAuBU,GAAO,OAAOA,GAAOA,EAAIC,WAAaD,EAAM,CAAEE,QAASF,GAQvF,IAAIksB,EAAS,SAAU3e,GAGnB,SAAS2e,EAAOtwB,IATpB,SAAyB4R,EAAUb,GAAe,KAAMa,aAAoBb,GAAgB,MAAM,IAAIc,UAAU,qCAUxGC,CAAgBtS,KAAM8wB,GAEtB,IAAIrd,EAVZ,SAAoC2Q,EAAMtkB,GAAQ,IAAKskB,EAAQ,MAAM,IAAIC,eAAe,6DAAgE,OAAOvkB,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BskB,EAAPtkB,EAU9MwkB,CAA2BtkB,MAAO8wB,EAAO1rB,WAAahG,OAAOgU,eAAe0d,IAAShxB,KAAKE,KAAMQ,IAc5G,OAZA+jB,EAAiBzkB,KAAK2T,GAEtBA,EAAM/K,MAAQ,CACVqoB,aAAcvwB,EAAMuwB,aACpBC,UAAU,EACVhd,UAAW,EACXid,SAAU,KACVC,aAAc,EACdC,aAAc,EACdC,YAAY,EACZC,OAAQ5d,EAAM6d,aAEX7d,EAqNX,OA3OJ,SAAmBzO,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIoN,UAAU,kEAAoEpN,GAAeD,EAASpF,UAAYR,OAAO8F,OAAOD,GAAcA,EAAWrF,UAAW,CAAEuF,YAAa,CAAE7B,MAAO0B,EAAUoM,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAepM,IAAY7F,OAAOmU,eAAiBnU,OAAOmU,eAAevO,EAAUC,GAAcD,EAASI,UAAYH,GAG7duO,CAAUsd,EAAQ3e,GAsBlBlB,EAAa6f,EAAQ,CAAC,CAClBnxB,IAAK,oBACL2D,MAAO,SAA2B6X,GAC9Bnb,KAAKuxB,gBAEV,CACC5xB,IAAK,4BACL2D,MAAO,SAAmC9C,EAAOkI,GACzClI,EAAMuwB,eAAiB/wB,KAAK0I,MAAMqoB,cAClC/wB,KAAKoM,SAAS,CACV2kB,aAAcvwB,EAAMuwB,aACpB/c,UAAWhU,KAAKwxB,aAAahxB,EAAMuwB,gBAGvCvwB,EAAMD,WAAaP,KAAKQ,MAAMD,UAC9BP,KAAKoM,SAAS,CACVilB,OAAQrxB,KAAKsxB,gBAI1B,CACC3xB,IAAK,qBACL2D,MAAO,SAA4BwT,GAC3B9W,KAAKQ,MAAMD,WAAauW,EAAUvW,UAMtCP,KAAKyxB,gBAEV,CACC9xB,IAAK,uBACL2D,MAAO,WACHtD,KAAK0xB,kBAEV,CACC/xB,IAAK,cACL2D,MAAO,WAGHgH,OAAOiD,iBAAiB,SAAUvN,KAAKyxB,aAEvCnnB,OAAOiD,iBAAiB,mBAAoBvN,KAAKyxB,aAIjDzxB,KAAKyxB,gBAEV,CACC9xB,IAAK,gBACL2D,MAAO,WAEHgH,OAAOkD,oBAAoB,SAAUxN,KAAKyxB,aAC1CnnB,OAAOkD,oBAAoB,mBAAoBxN,KAAKyxB,eAEzD,CACC9xB,IAAK,YACL2D,MAAO,WACH,IAAI+tB,EAAS3f,EAAO2G,SAAS7H,IAAIxQ,KAAKQ,MAAMD,UAAU,SAAUmH,EAAM5B,GAClE,IAAI6rB,EAAMjqB,EASV,MANkB,QAAdA,EAAKua,OACL0P,EAAMjgB,EAAO2G,SAASuZ,QAAQlqB,EAAKlH,MAAMD,UAAUwJ,QAAO,SAAUxJ,GAChE,MAAyB,QAAlBA,EAAS0hB,QACjB,IAGF0P,GAAsB,IAAfA,EAAIlyB,OAITkyB,EAHI,QAMf,OAEc,IAFVN,EAAOtnB,QAAO,SAAU8nB,GACxB,OAAOA,KACRpyB,QACCkW,QAAQ8K,KAAK,iTAEN,IAGJ4Q,IAEZ,CACC1xB,IAAK,eACL2D,MAAO,SAAsBytB,GACzB,IAAI/c,EAAY+c,EAchB,OAZIA,GAAgB/wB,KAAK0I,MAAMyoB,eAC3Bnd,EAAYhU,KAAK0I,MAAMyoB,cAGvBJ,EAAe/wB,KAAK0I,MAAMsL,UAAYhU,KAAK0I,MAAMwoB,eACjDld,EAAYhU,KAAK0I,MAAMsL,WAGvB+c,EAAe/wB,KAAK0I,MAAMsL,YAC1BA,EAAY+c,GAGT/c,IAEZ,CACCrU,IAAK,cACL2D,MAAO,WACH,IAAIyT,EAAS/W,KAEb,OAAOA,KAAK0I,MAAM2oB,OAAO7gB,KAAI,SAAUmhB,EAAK7rB,GACxC,IAAIgsB,EAAYpB,EAAa5rB,QAAQgrB,MAAK,EAAOhqB,IAAUiR,EAAOrO,MAAMqoB,cAAgBha,EAAOrO,MAAMsoB,UAEjGe,EAAa,CACbpyB,IAAKmG,EACL4oB,IAAK,SAAa3lB,GACd,OAAOgO,EAAOib,aAAajpB,EAAGjD,IAElCxD,UAAWwvB,EACX1wB,QAAS2V,EAAOkb,gBAAgBpb,KAAKE,EAAQjR,EAAOiR,EAAOvW,MAAMD,SAASuF,IAC1EosB,UAAWnb,EAAOkb,gBAAgBpb,KAAKE,EAAQjR,EAAOiR,EAAOvW,MAAMD,SAASuF,IAC5E,aAAciR,EAAOvW,MAAM2xB,OAAOzqB,KAAO,KAAO5B,EAAQ,IAS5D,OANc,IAAVA,IACA6rB,EAAMhgB,EAAQ7M,QAAQ2T,aAAakZ,EAAK,CACpCS,OAAQrb,EAAOsb,iBAIhB1gB,EAAQ7M,QAAQ0F,cACnB,KACArL,EAAS,GAAI4yB,EAAY,CAAEO,KAAM,SAAU9Z,SAAU,IACrDmZ,QAIb,CACChyB,IAAK,SACL2D,MAAO,WACH,IAAKtD,KAAKQ,MAAMD,SACZ,OAAO,KAIX,IAIIgyB,EAJAC,EAAUxyB,KAAK0I,MAAM0oB,YAAcpxB,KAAK0I,MAAMsL,UAAY,EAE1Dye,EAAUzyB,KAAK0I,MAAM0oB,YAAcpxB,KAAK0I,MAAMsL,UAAYhU,KAAK0I,MAAMyoB,aAIrEuB,GAAmB1yB,KAAK0I,MAAMsL,UAAYhU,KAAK0I,MAAMuoB,SAAW,KAEhE0B,GAAgB,EAAI/B,EAAe9rB,SAAS4tB,EAAiB1yB,KAAKQ,MAAMgvB,MAExEoD,EAAiB5yB,KAAKQ,MAAMoyB,eAAiB,KAiBjD,OAfAL,EAAiB,CACbM,gBAAiBF,EACjBG,aAAcH,EACdI,YAAaJ,EACbK,WAAYL,EACZM,UAAWN,EACXO,YAAaP,EACbQ,yBAA0BP,EAC1BQ,sBAAuBR,EACvBS,qBAAsBT,EACtBU,oBAAqBV,EACrBW,mBAAoBX,EACpBY,qBAAsBZ,GAGnBjhB,EAAQ7M,QAAQ0F,cACnB,MACA,CAAElI,UAAWouB,EAAa5rB,QAAQsqB,UAAS,IAC3Czd,EAAQ7M,QAAQ0F,cACZ,MACA,CAAElI,UAAWouB,EAAa5rB,QAAQyqB,SAAQ,GAAQb,IAAK1uB,KAAKyzB,oBAC5D9hB,EAAQ7M,QAAQ0F,cAAc,SAAU,CACpCyX,KAAM,SACN3f,UAAWouB,EAAa5rB,QAAQorB,YAAYsC,GAC5CpxB,QAASpB,KAAK0zB,WACd,aAAc1zB,KAAKQ,MAAM2xB,OAAOwB,YAEpChiB,EAAQ7M,QAAQ0F,cACZqmB,EAAiB/rB,QACjB,CACI8uB,QAAS,KACTtxB,UAAWouB,EAAa5rB,QAAQ2qB,QAAO,EAAOzvB,KAAK0I,MAAMmrB,SACzDC,YAAa9zB,KAAK+zB,UAClBC,aAAch0B,KAAK0zB,WACnBO,YAAaj0B,KAAKi0B,YAClBC,aAAcl0B,KAAKk0B,aACnBC,WAAYn0B,KAAKm0B,WACjBtxB,MAAO0vB,EACPrxB,SAAUlB,KAAKo0B,iBAEnBp0B,KAAKq0B,eAET1iB,EAAQ7M,QAAQ0F,cAAc,SAAU,CACpCyX,KAAM,SACN3f,UAAWouB,EAAa5rB,QAAQsrB,YAAYqC,GAC5CrxB,QAASpB,KAAK+zB,UACd,aAAc/zB,KAAKQ,MAAM2xB,OAAOmC,mBAO7CxD,EAzOE,CA0OXpf,EAAOxR,WAET4wB,EAAOlP,YAAc,SACrBkP,EAAOyD,WAAa,CAChBh0B,SAAUsR,EAAY/M,QAAQwU,QAAQI,WACtCkZ,eAAgB/gB,EAAY/M,QAAQ6U,OACpCoX,aAAclf,EAAY/M,QAAQ6U,OAClC6a,WAAY3iB,EAAY/M,QAAQ6U,OAChCwY,OAAQtgB,EAAY/M,QAAQ2vB,MAAM,CAC9Bd,UAAW9hB,EAAY/M,QAAQsU,OAC/Bkb,WAAYziB,EAAY/M,QAAQsU,OAChC1R,KAAMmK,EAAY/M,QAAQsU,UAGlC0X,EAAOjX,aAAe,CAClBkX,aAAc,EACd6B,eAAgB,IAChBpD,KAAM,cAGV,IAAIjL,EAAmB,WACnB,IAAI/M,EAASxX,KAEbA,KAAKyzB,mBAAqB,SAAUiB,GAChCld,EAAOmd,gBAAkBD,GAG7B10B,KAAKo0B,gBAAkB,SAAUM,GAC7Bld,EAAOod,aAAeF,GAG1B10B,KAAKgyB,aAAe,SAAU0C,EAAM5uB,GAC3B0R,EAAOqd,YACRrd,EAAOqd,UAAY,IAEvBrd,EAAOqd,UAAU/uB,GAAS4uB,GAG9B10B,KAAKyxB,YAAc,WACf,GAAKja,EAAOhX,MAAMD,UAAaiX,EAAOmd,iBAAkD,IAA/Bnd,EAAO9O,MAAM2oB,OAAO5xB,OAA7E,CAIA,IAAIq1B,EAAQtd,EAAOhX,MAAMD,SAASd,OAC9Bs1B,EAAcvd,EAAOmd,gBAAgBK,YACrC/D,EAAWzZ,EAAOhX,MAAMg0B,WAAahd,EAAOhX,MAAMg0B,YAAa,EAAI7D,EAAYsE,YAAYzd,EAAOqd,UAAU,IAC5G3D,EAAellB,KAAK4Z,MAAMmP,EAAc9D,GACxCE,EAAe2D,EAAQ5D,EACvBE,EAAaF,EAAe4D,EAChCtd,EAAOpL,UAAS,SAAU8oB,EAAQ10B,GAC9B,MAAO,CACHywB,SAAUA,EACVC,aAAcA,EACdld,UAAWod,EAAa5Z,EAAOga,aAAahxB,EAAMuwB,cAAgB,EAClEI,aAAcA,EACdC,WAAYA,QAKxBpxB,KAAKqyB,cAAgB,WACjB7a,EAAOpL,SAAS,CAAE4kB,UAAU,IAC5BxZ,EAAOia,eAGXzxB,KAAKiyB,gBAAkB,SAAUnsB,EAAO4B,EAAMqB,GAC1C,IAAKA,EAAEwN,SAAqB,UAAVxN,EAAEpJ,IAAiB,CACjC,IAAIua,EAAU1C,EAAOhX,MAAM20B,aAEJ,oBAAZjb,GACPA,EAAQpU,EAAO4B,KAK3B1H,KAAKk0B,aAAe,WAChB1c,EAAOpL,SAAS,CACZynB,SAAS,KAIjB7zB,KAAKm0B,WAAa,WACd3c,EAAOpL,SAAS,CACZynB,SAAS,KAIjB7zB,KAAKi0B,YAAc,SAAUmB,GACzB,IAEI1C,GAAmBlb,EAAO9O,MAAMsL,UAAYwD,EAAO9O,MAAMuoB,SAF1C,IAMfyB,GAAoC0C,EAAS,IAC7CA,EAAS,GAIT1C,KARoBlb,EAAO9O,MAAMwoB,aAAe1Z,EAAO9O,MAAMuoB,UAQrBmE,EAAS,IACjDA,EAAS,GAGb,IACI7T,EAAWmR,EAAkB,KADflb,EAAOmd,gBAAgBK,YACaI,GAAU,IAE5D5d,EAAOod,cACP,CAAC,kBAAmB,eAAgB,cAAe,aAAc,YAAa,eAAexqB,SAAQ,SAAUqL,GAC3G+B,EAAOod,aAAa/xB,MAAM4S,IAAQ,EAAImb,EAAe9rB,SAASyc,EAAU/J,EAAOhX,MAAMgvB,UAKjGxvB,KAAK0zB,WAAa,SAAU2B,GACxB7d,EAAO8d,OAAO9d,EAAO9O,MAAMsL,WAAkC,kBAAdqhB,EAAyBA,EAAY,KAGxFr1B,KAAK+zB,UAAY,SAAUsB,GACvB7d,EAAO8d,OAAO9d,EAAO9O,MAAMsL,WAAkC,kBAAdqhB,EAAyBA,EAAY,KAGxFr1B,KAAKs1B,OAAS,SAAU/T,GAIpBA,GAFAA,EAAWA,EAAW,EAAI,EAAIA,IAEP/J,EAAO2Z,aAAe3Z,EAAO2Z,aAAe5P,EAEnE/J,EAAOpL,SAAS,CACZ4H,UAAWuN,MAKvBtiB,EAAQ6F,QAAUgsB,G,+BCvZlB,YAGA,IAAInxB,EAAM,uBAEVX,EAAOC,QAAU,WACf,OAAOs2B,EAAO51B,IAAQ41B,EAAO51B,IAAQ,GAAK,K,+CCJ5C,IAAIuE,EAAyBhF,EAAQ,IAErCE,OAAOiE,eAAepE,EAAS,aAAc,CAC3CqE,OAAO,IAETrE,EAAQ6F,aAAU,EAElB,IAAI4M,EAASxN,EAAuBhF,EAAQ,IAIxCs2B,GAAW,EAFMtxB,EAAuBhF,EAAQ,KAElB4F,SAAS4M,EAAO5M,QAAQ0F,cAAc,OAAQ,CAC9E0N,EAAG,mBACD,eAEJjZ,EAAQ6F,QAAU0wB,G,6BCflB,IAAItxB,EAAyBhF,EAAQ,IAErCE,OAAOiE,eAAepE,EAAS,aAAc,CAC3CqE,OAAO,IAETrE,EAAQ6F,aAAU,EAElB,IAAI4M,EAASxN,EAAuBhF,EAAQ,IAIxCs2B,GAAW,EAFMtxB,EAAuBhF,EAAQ,KAElB4F,SAAS4M,EAAO5M,QAAQ0F,cAAc,OAAQ,CAC9E0N,EAAG,mBACD,iBAEJjZ,EAAQ6F,QAAU0wB,G,+BCflBp2B,OAAOiE,eAAepE,EAAS,aAAc,CAC3CqE,OAAO,IAETrE,EAAO,QAAc,CACnBgxB,MAAO/wB,EAAQ,IACfu2B,MAAOv2B,EAAQ,IACfw2B,QAASx2B,EAAQ,IACjBy2B,OAAQz2B,EAAQ,KAChB4K,KAAM5K,EAAQ,KACd02B,WAAY12B,EAAQ,KACpB22B,UAAW32B,EAAQ,KACnB42B,YAAa52B,EAAQ,KACrB62B,SAAU72B,EAAQ,KAClB82B,OAAQ92B,EAAQ,MAElBF,EAAOC,QAAUA,EAAO,S,8BCfxBG,OAAOiE,eAAepE,EAAS,aAAc,CAC3CqE,OAAO,IAETrE,EAAQ6xB,OAAS7xB,EAAQg3B,cAAWjyB,EAEpC,IAEIkyB,EAAahyB,EAFDhF,EAAQ,MAMpBi3B,EAAWjyB,EAFDhF,EAAQ,KAItB,SAASgF,EAAuBU,GAAO,OAAOA,GAAOA,EAAIC,WAAaD,EAAM,CAAEE,QAASF,GAEvF3F,EAAQg3B,SAAWC,EAAWpxB,QAC9B7F,EAAQ6xB,OAASqF,EAASrxB,S,yCCTb,IAAIsxB,EAAEl3B,EAAQ,IAAiB8G,EAAE,oBAAoBqY,QAAQA,OAAOgY,IAAIC,EAAEtwB,EAAEqY,OAAOgY,IAAI,iBAAiB,MAAME,EAAEvwB,EAAEqY,OAAOgY,IAAI,gBAAgB,MAAMG,EAAExwB,EAAEqY,OAAOgY,IAAI,kBAAkB,MAAMpV,EAAEjb,EAAEqY,OAAOgY,IAAI,qBAAqB,MAAMI,EAAEzwB,EAAEqY,OAAOgY,IAAI,kBAAkB,MAAMK,EAAE1wB,EAAEqY,OAAOgY,IAAI,kBAAkB,MAAMM,EAAE3wB,EAAEqY,OAAOgY,IAAI,iBAAiB,MAAMhb,EAAErV,EAAEqY,OAAOgY,IAAI,qBAAqB,MAAM/a,EAAEtV,EAAEqY,OAAOgY,IAAI,kBAAkB,MAAMO,EAAE5wB,EAAEqY,OAAOgY,IAAI,cAAc,MAAMQ,EAAE7wB,EAAEqY,OAAOgY,IAAI,cACxe,MAAMS,EAAE,oBAAoBzY,QAAQA,OAAOC,SAAS,SAASvd,EAAEsG,GAAG,IAAI,IAAIC,EAAE,yDAAyDD,EAAE2Z,EAAE,EAAEA,EAAExhB,UAAUC,OAAOuhB,IAAI1Z,GAAG,WAAWuiB,mBAAmBrqB,UAAUwhB,IAAI,MAAM,yBAAyB3Z,EAAE,WAAWC,EAAE,iHAC/P,IAAIyvB,EAAE,CAACpS,UAAU,WAAW,OAAM,GAAIqS,mBAAmB,aAAaC,oBAAoB,aAAaC,gBAAgB,cAAcC,EAAE,GAAG,SAASC,EAAE/vB,EAAEC,EAAE0Z,GAAGhhB,KAAKQ,MAAM6G,EAAErH,KAAK8B,QAAQwF,EAAEtH,KAAKq3B,KAAKF,EAAEn3B,KAAKs3B,QAAQtW,GAAG+V,EACpN,SAASQ,KAA6B,SAASC,EAAEnwB,EAAEC,EAAE0Z,GAAGhhB,KAAKQ,MAAM6G,EAAErH,KAAK8B,QAAQwF,EAAEtH,KAAKq3B,KAAKF,EAAEn3B,KAAKs3B,QAAQtW,GAAG+V,EADsGK,EAAEx3B,UAAU63B,iBAAiB,GAAGL,EAAEx3B,UAAUwM,SAAS,SAAS/E,EAAEC,GAAG,GAAG,kBAAkBD,GAAG,oBAAoBA,GAAG,MAAMA,EAAE,MAAM7B,MAAMzE,EAAE,KAAKf,KAAKs3B,QAAQJ,gBAAgBl3B,KAAKqH,EAAEC,EAAE,aAAa8vB,EAAEx3B,UAAU83B,YAAY,SAASrwB,GAAGrH,KAAKs3B,QAAQN,mBAAmBh3B,KAAKqH,EAAE,gBACndkwB,EAAE33B,UAAUw3B,EAAEx3B,UAAsF,IAAI+3B,EAAEH,EAAE53B,UAAU,IAAI23B,EAAEI,EAAExyB,YAAYqyB,EAAEpB,EAAEuB,EAAEP,EAAEx3B,WAAW+3B,EAAEC,sBAAqB,EAAG,IAAIC,EAAE,CAACC,QAAQ,MAAMC,EAAE34B,OAAOQ,UAAUC,eAAem4B,EAAE,CAACr4B,KAAI,EAAG+uB,KAAI,EAAGuJ,QAAO,EAAGC,UAAS,GAChS,SAASC,EAAE9wB,EAAEC,EAAE0Z,GAAG,IAAIjY,EAAEmP,EAAE,GAAGsT,EAAE,KAAKzlB,EAAE,KAAK,GAAG,MAAMuB,EAAE,IAAIyB,UAAK,IAASzB,EAAEonB,MAAM3oB,EAAEuB,EAAEonB,UAAK,IAASpnB,EAAE3H,MAAM6rB,EAAE,GAAGlkB,EAAE3H,KAAK2H,EAAEywB,EAAEj4B,KAAKwH,EAAEyB,KAAKivB,EAAEn4B,eAAekJ,KAAKmP,EAAEnP,GAAGzB,EAAEyB,IAAI,IAAIqvB,EAAE54B,UAAUC,OAAO,EAAE,GAAG,IAAI24B,EAAElgB,EAAE3X,SAASygB,OAAO,GAAG,EAAEoX,EAAE,CAAC,IAAI,IAAIhe,EAAE7S,MAAM6wB,GAAG3P,EAAE,EAAEA,EAAE2P,EAAE3P,IAAIrO,EAAEqO,GAAGjpB,UAAUipB,EAAE,GAAGvQ,EAAE3X,SAAS6Z,EAAE,GAAG/S,GAAGA,EAAEwS,aAAa,IAAI9Q,KAAKqvB,EAAE/wB,EAAEwS,kBAAe,IAAS3B,EAAEnP,KAAKmP,EAAEnP,GAAGqvB,EAAErvB,IAAI,MAAM,CAACsvB,SAAS/B,EAAErU,KAAK5a,EAAE1H,IAAI6rB,EAAEkD,IAAI3oB,EAAEvF,MAAM0X,EAAEogB,OAAOT,EAAEC,SACxU,SAASS,EAAElxB,GAAG,MAAM,kBAAkBA,GAAG,OAAOA,GAAGA,EAAEgxB,WAAW/B,EAA0G,IAAIkC,EAAE,OAAOC,EAAE,GAAG,SAASC,EAAErxB,EAAEC,EAAE0Z,EAAEjY,GAAG,GAAG0vB,EAAEh5B,OAAO,CAAC,IAAIyY,EAAEugB,EAAExyB,MAA8D,OAAxDiS,EAAElR,OAAOK,EAAE6Q,EAAEygB,UAAUrxB,EAAE4Q,EAAEsB,KAAKwH,EAAE9I,EAAEpW,QAAQiH,EAAEmP,EAAE0gB,MAAM,EAAS1gB,EAAE,MAAM,CAAClR,OAAOK,EAAEsxB,UAAUrxB,EAAEkS,KAAKwH,EAAElf,QAAQiH,EAAE6vB,MAAM,GAC5b,SAASC,EAAExxB,GAAGA,EAAEL,OAAO,KAAKK,EAAEsxB,UAAU,KAAKtxB,EAAEmS,KAAK,KAAKnS,EAAEvF,QAAQ,KAAKuF,EAAEuxB,MAAM,EAAE,GAAGH,EAAEh5B,QAAQg5B,EAAE3uB,KAAKzC,GAE2F,SAASyxB,EAAEzxB,EAAEC,EAAE0Z,GAAG,OAAO,MAAM3Z,EAAE,EADlO,SAAS0xB,EAAE1xB,EAAEC,EAAE0Z,EAAEjY,GAAG,IAAImP,SAAS7Q,EAAK,cAAc6Q,GAAG,YAAYA,IAAE7Q,EAAE,MAAK,IAAImkB,GAAE,EAAG,GAAG,OAAOnkB,EAAEmkB,GAAE,OAAQ,OAAOtT,GAAG,IAAK,SAAS,IAAK,SAASsT,GAAE,EAAG,MAAM,IAAK,SAAS,OAAOnkB,EAAEgxB,UAAU,KAAK/B,EAAE,KAAKC,EAAE/K,GAAE,GAAI,GAAGA,EAAE,OAAOxK,EAAEjY,EAAE1B,EAAE,KAAKC,EAAE,IAAI0xB,EAAE3xB,EAAE,GAAGC,GAAG,EAAyB,GAAvBkkB,EAAE,EAAElkB,EAAE,KAAKA,EAAE,IAAIA,EAAE,IAAOC,MAAMC,QAAQH,GAAG,IAAI,IAAItB,EAAE,EAAEA,EAAEsB,EAAE5H,OAAOsG,IAAI,CAAQ,IAAIqyB,EAAE9wB,EAAE0xB,EAAf9gB,EAAE7Q,EAAEtB,GAAeA,GAAGylB,GAAGuN,EAAE7gB,EAAEkgB,EAAEpX,EAAEjY,QAAQ,GAAG,OAAO1B,GAAG,kBAAkBA,EAAE+wB,EAAE,KAAiCA,EAAE,oBAA7BA,EAAEtB,GAAGzvB,EAAEyvB,IAAIzvB,EAAE,eAAsC+wB,EAAE,KAAM,oBAAoBA,EAAE,IAAI/wB,EAAE+wB,EAAEt4B,KAAKuH,GAAGtB,EACpf,IAAImS,EAAE7Q,EAAEwX,QAAQC,MAA6B0M,GAAGuN,EAA1B7gB,EAAEA,EAAE5U,MAAM80B,EAAE9wB,EAAE0xB,EAAE9gB,EAAEnS,KAAcib,EAAEjY,QAAQ,GAAG,WAAWmP,EAAE,MAAM8I,EAAE,GAAG3Z,EAAE7B,MAAMzE,EAAE,GAAG,oBAAoBigB,EAAE,qBAAqB5hB,OAAOyI,KAAKR,GAAGJ,KAAK,MAAM,IAAI+Z,EAAE,KAAK,OAAOwK,EAAqCuN,CAAE1xB,EAAE,GAAGC,EAAE0Z,GAAG,SAASgY,EAAE3xB,EAAEC,GAAG,MAAM,kBAAkBD,GAAG,OAAOA,GAAG,MAAMA,EAAE1H,IAH9I,SAAgB0H,GAAG,IAAIC,EAAE,CAAC,IAAI,KAAK,IAAI,MAAM,MAAM,KAAK,GAAGD,GAAGzF,QAAQ,SAAQ,SAASyF,GAAG,OAAOC,EAAED,MAG+C4xB,CAAO5xB,EAAE1H,KAAK2H,EAAE4E,SAAS,IAAI,SAASgtB,EAAE7xB,EAAEC,GAAGD,EAAEmS,KAAK1Z,KAAKuH,EAAEvF,QAAQwF,EAAED,EAAEuxB,SACxX,SAASO,EAAG9xB,EAAEC,EAAE0Z,GAAG,IAAIjY,EAAE1B,EAAEL,OAAOkR,EAAE7Q,EAAEsxB,UAAUtxB,EAAEA,EAAEmS,KAAK1Z,KAAKuH,EAAEvF,QAAQwF,EAAED,EAAEuxB,SAASrxB,MAAMC,QAAQH,GAAG+xB,EAAE/xB,EAAE0B,EAAEiY,GAAE,SAAS3Z,GAAG,OAAOA,KAAI,MAAMA,IAAIkxB,EAAElxB,KAAKA,EAJtJ,SAAWA,EAAEC,GAAG,MAAM,CAAC+wB,SAAS/B,EAAErU,KAAK5a,EAAE4a,KAAKtiB,IAAI2H,EAAEonB,IAAIrnB,EAAEqnB,IAAIluB,MAAM6G,EAAE7G,MAAM83B,OAAOjxB,EAAEixB,QAImEe,CAAEhyB,EAAE6Q,IAAI7Q,EAAE1H,KAAK2H,GAAGA,EAAE3H,MAAM0H,EAAE1H,IAAI,IAAI,GAAG0H,EAAE1H,KAAKiC,QAAQ42B,EAAE,OAAO,KAAKxX,IAAIjY,EAAEe,KAAKzC,IAAI,SAAS+xB,EAAE/xB,EAAEC,EAAE0Z,EAAEjY,EAAEmP,GAAG,IAAIsT,EAAE,GAAG,MAAMxK,IAAIwK,GAAG,GAAGxK,GAAGpf,QAAQ42B,EAAE,OAAO,KAAkBM,EAAEzxB,EAAE8xB,EAAjB7xB,EAAEoxB,EAAEpxB,EAAEkkB,EAAEziB,EAAEmP,IAAa2gB,EAAEvxB,GAAG,IAAIgyB,EAAE,CAACxB,QAAQ,MAAM,SAASyB,IAAI,IAAIlyB,EAAEiyB,EAAExB,QAAQ,GAAG,OAAOzwB,EAAE,MAAM7B,MAAMzE,EAAE,MAAM,OAAOsG,EACxa,IAAImyB,EAAG,CAACC,uBAAuBH,EAAEI,wBAAwB,CAACC,SAAS,MAAMC,kBAAkB/B,EAAEgC,qBAAqB,CAAC/B,SAAQ,GAAIz4B,OAAO+2B,GAAGn3B,EAAQoZ,SAAS,CAAC7H,IAAI,SAASnJ,EAAEC,EAAE0Z,GAAG,GAAG,MAAM3Z,EAAE,OAAOA,EAAE,IAAI0B,EAAE,GAAmB,OAAhBqwB,EAAE/xB,EAAE0B,EAAE,KAAKzB,EAAE0Z,GAAUjY,GAAGqB,QAAQ,SAAS/C,EAAEC,EAAE0Z,GAAG,GAAG,MAAM3Z,EAAE,OAAOA,EAAqByxB,EAAEzxB,EAAE6xB,EAAvB5xB,EAAEoxB,EAAE,KAAK,KAAKpxB,EAAE0Z,IAAY6X,EAAEvxB,IAAIsxB,MAAM,SAASvxB,GAAG,OAAOyxB,EAAEzxB,GAAE,WAAW,OAAO,OAAM,OAAOuqB,QAAQ,SAASvqB,GAAG,IAAIC,EAAE,GAAqC,OAAlC8xB,EAAE/xB,EAAEC,EAAE,MAAK,SAASD,GAAG,OAAOA,KAAWC,GAAGwyB,KAAK,SAASzyB,GAAG,IAAIkxB,EAAElxB,GAAG,MAAM7B,MAAMzE,EAAE,MAAM,OAAOsG,IAC9epI,EAAQiB,UAAUk3B,EAAEn4B,EAAQ86B,SAASvD,EAAEv3B,EAAQ+6B,SAASvD,EAAEx3B,EAAQimB,cAAcsS,EAAEv4B,EAAQg7B,WAAWhZ,EAAEhiB,EAAQi7B,SAAS5e,EAAErc,EAAQk7B,mDAAmDX,EACrLv6B,EAAQwZ,aAAa,SAASpR,EAAEC,EAAE0Z,GAAG,GAAG,OAAO3Z,QAAG,IAASA,EAAE,MAAM7B,MAAMzE,EAAE,IAAIsG,IAAI,IAAI0B,EAAEqtB,EAAE,GAAG/uB,EAAE7G,OAAO0X,EAAE7Q,EAAE1H,IAAI6rB,EAAEnkB,EAAEqnB,IAAI3oB,EAAEsB,EAAEixB,OAAO,GAAG,MAAMhxB,EAAE,CAAoE,QAAnE,IAASA,EAAEonB,MAAMlD,EAAElkB,EAAEonB,IAAI3oB,EAAE8xB,EAAEC,cAAS,IAASxwB,EAAE3H,MAAMuY,EAAE,GAAG5Q,EAAE3H,KAAQ0H,EAAE4a,MAAM5a,EAAE4a,KAAKpI,aAAa,IAAIue,EAAE/wB,EAAE4a,KAAKpI,aAAa,IAAIO,KAAK9S,EAAEywB,EAAEj4B,KAAKwH,EAAE8S,KAAK4d,EAAEn4B,eAAeua,KAAKrR,EAAEqR,QAAG,IAAS9S,EAAE8S,SAAI,IAASge,EAAEA,EAAEhe,GAAG9S,EAAE8S,IAAI,IAAIA,EAAE5a,UAAUC,OAAO,EAAE,GAAG,IAAI2a,EAAErR,EAAExI,SAASygB,OAAO,GAAG,EAAE5G,EAAE,CAACge,EAAE7wB,MAAM6S,GAAG,IAAI,IAAIqO,EAAE,EAAEA,EAAErO,EAAEqO,IAAI2P,EAAE3P,GAAGjpB,UAAUipB,EAAE,GAAG1f,EAAExI,SAAS63B,EAAE,MAAM,CAACC,SAAS/B,EAAErU,KAAK5a,EAAE4a,KACxftiB,IAAIuY,EAAEwW,IAAIlD,EAAEhrB,MAAMuI,EAAEuvB,OAAOvyB,IAAI9G,EAAQsb,cAAc,SAASlT,EAAEC,GAA8K,YAA3K,IAASA,IAAIA,EAAE,OAAMD,EAAE,CAACgxB,SAAS1B,EAAEyD,sBAAsB9yB,EAAE+yB,cAAchzB,EAAEizB,eAAejzB,EAAEkzB,aAAa,EAAEzf,SAAS,KAAKW,SAAS,OAAQX,SAAS,CAACud,SAAS3B,EAAE8D,SAASnzB,GAAUA,EAAEoU,SAASpU,GAAGpI,EAAQuL,cAAc2tB,EAAEl5B,EAAQw7B,cAAc,SAASpzB,GAAG,IAAIC,EAAE6wB,EAAEthB,KAAK,KAAKxP,GAAY,OAATC,EAAE2a,KAAK5a,EAASC,GAAGrI,EAAQy7B,UAAU,WAAW,MAAM,CAAC5C,QAAQ,OAAO74B,EAAQ+B,WAAW,SAASqG,GAAG,MAAM,CAACgxB,SAAShd,EAAE/a,OAAO+G,IAAIpI,EAAQ07B,eAAepC,EAC3et5B,EAAQ27B,KAAK,SAASvzB,GAAG,MAAM,CAACgxB,SAASxB,EAAEgE,MAAMxzB,EAAEyzB,SAAS,EAAEC,QAAQ,OAAO97B,EAAQoe,KAAK,SAAShW,EAAEC,GAAG,MAAM,CAAC+wB,SAASzB,EAAE3U,KAAK5a,EAAEkb,aAAQ,IAASjb,EAAE,KAAKA,IAAIrI,EAAQ+7B,YAAY,SAAS3zB,EAAEC,GAAG,OAAOiyB,IAAIyB,YAAY3zB,EAAEC,IAAIrI,EAAQg8B,WAAW,SAAS5zB,EAAEC,GAAG,OAAOiyB,IAAI0B,WAAW5zB,EAAEC,IAAIrI,EAAQi8B,cAAc,aAAaj8B,EAAQk8B,UAAU,SAAS9zB,EAAEC,GAAG,OAAOiyB,IAAI4B,UAAU9zB,EAAEC,IAAIrI,EAAQm8B,oBAAoB,SAAS/zB,EAAEC,EAAE0Z,GAAG,OAAOuY,IAAI6B,oBAAoB/zB,EAAEC,EAAE0Z,IACtc/hB,EAAQo8B,gBAAgB,SAASh0B,EAAEC,GAAG,OAAOiyB,IAAI8B,gBAAgBh0B,EAAEC,IAAIrI,EAAQq8B,QAAQ,SAASj0B,EAAEC,GAAG,OAAOiyB,IAAI+B,QAAQj0B,EAAEC,IAAIrI,EAAQs8B,WAAW,SAASl0B,EAAEC,EAAE0Z,GAAG,OAAOuY,IAAIgC,WAAWl0B,EAAEC,EAAE0Z,IAAI/hB,EAAQu8B,OAAO,SAASn0B,GAAG,OAAOkyB,IAAIiC,OAAOn0B,IAAIpI,EAAQw8B,SAAS,SAASp0B,GAAG,OAAOkyB,IAAIkC,SAASp0B,IAAIpI,EAAQy8B,QAAQ,W,6BCZxS,IAAIvC,EAAGj6B,EAAQ,GAAS8G,EAAE9G,EAAQ,IAAiBs3B,EAAEt3B,EAAQ,IAAa,SAASu3B,EAAEpvB,GAAG,IAAI,IAAIC,EAAE,yDAAyDD,EAAE2Z,EAAE,EAAEA,EAAExhB,UAAUC,OAAOuhB,IAAI1Z,GAAG,WAAWuiB,mBAAmBrqB,UAAUwhB,IAAI,MAAM,yBAAyB3Z,EAAE,WAAWC,EAAE,iHAAiH,IAAI6xB,EAAG,MAAM3zB,MAAMixB,EAAE,MACxa,SAAS+C,EAAGnyB,EAAEC,EAAE0Z,EAAE9I,EAAEnP,EAAEqvB,EAAE5M,EAAEpR,EAAErU,GAAG,IAAIqwB,EAAE7uB,MAAM3H,UAAU0I,MAAMxI,KAAKN,UAAU,GAAG,IAAI8H,EAAEvH,MAAMihB,EAAEoV,GAAG,MAAM3N,GAAGzoB,KAAK27B,QAAQlT,IAAI,IAAImT,GAAG,EAAGC,EAAG,KAAKC,GAAG,EAAGC,EAAG,KAAKC,EAAG,CAACL,QAAQ,SAASt0B,GAAGu0B,GAAG,EAAGC,EAAGx0B,IAAI,SAAS40B,EAAG50B,EAAEC,EAAE0Z,EAAE9I,EAAEnP,EAAEqvB,EAAE5M,EAAEpR,EAAErU,GAAG61B,GAAG,EAAGC,EAAG,KAAKrC,EAAGz5B,MAAMi8B,EAAGx8B,WAAmJ,IAAI08B,EAAG,KAAKC,EAAG,KAAKC,EAAG,KACha,SAASC,EAAGh1B,EAAEC,EAAE0Z,GAAG,IAAI9I,EAAE7Q,EAAE4a,MAAM,gBAAgB5a,EAAEi1B,cAAcF,EAAGpb,GAD6L,SAAY3Z,EAAEC,EAAE0Z,EAAE9I,EAAEnP,EAAEqvB,EAAE5M,EAAEpR,EAAErU,GAA4B,GAAzBk2B,EAAGl8B,MAAMC,KAAKR,WAAco8B,EAAG,CAAC,IAAGA,EAAgC,MAAMp2B,MAAMixB,EAAE,MAA1C,IAAIL,EAAEyF,EAAGD,GAAG,EAAGC,EAAG,KAA8BC,IAAKA,GAAG,EAAGC,EAAG3F,IAC9TmG,CAAGrkB,EAAE5Q,OAAE,EAAOD,GAAGA,EAAEi1B,cAAc,KAAK,IAAIE,EAAG,KAAKC,EAAG,GAC5H,SAASC,IAAK,GAAGF,EAAG,IAAI,IAAIn1B,KAAKo1B,EAAG,CAAC,IAAIn1B,EAAEm1B,EAAGp1B,GAAG2Z,EAAEwb,EAAGr0B,QAAQd,GAAG,MAAM,EAAE2Z,GAAG,MAAMxb,MAAMixB,EAAE,GAAGpvB,IAAI,IAAIs1B,EAAG3b,GAAG,CAAC,IAAI1Z,EAAEs1B,cAAc,MAAMp3B,MAAMixB,EAAE,GAAGpvB,IAA2B,IAAI,IAAI6Q,KAA/BykB,EAAG3b,GAAG1Z,EAAE0Z,EAAE1Z,EAAEu1B,WAA0B,CAAC,IAAI9zB,OAAE,EAAWqvB,EAAEpX,EAAE9I,GAAGsT,EAAElkB,EAAE8S,EAAElC,EAAE,GAAG4kB,EAAGj9B,eAAeua,GAAG,MAAM5U,MAAMixB,EAAE,GAAGrc,IAAI0iB,EAAG1iB,GAAGge,EAAE,IAAIryB,EAAEqyB,EAAE2E,wBAAwB,GAAGh3B,EAAE,CAAC,IAAIgD,KAAKhD,EAAEA,EAAElG,eAAekJ,IAAIgC,EAAGhF,EAAEgD,GAAGyiB,EAAEpR,GAAGrR,GAAE,OAAQqvB,EAAE4E,kBAAkBjyB,EAAGqtB,EAAE4E,iBAAiBxR,EAAEpR,GAAGrR,GAAE,GAAIA,GAAE,EAAG,IAAIA,EAAE,MAAMvD,MAAMixB,EAAE,GAAGve,EAAE7Q,OACjc,SAAS0D,EAAG1D,EAAEC,EAAE0Z,GAAG,GAAGic,EAAG51B,GAAG,MAAM7B,MAAMixB,EAAE,IAAIpvB,IAAI41B,EAAG51B,GAAGC,EAAE41B,EAAG71B,GAAGC,EAAEu1B,WAAW7b,GAAGmc,aAAa,IAAIR,EAAG,GAAGG,EAAG,GAAGG,EAAG,GAAGC,EAAG,GAAG,SAASE,EAAG/1B,GAAG,IAAS2Z,EAAL1Z,GAAE,EAAK,IAAI0Z,KAAK3Z,EAAE,GAAGA,EAAExH,eAAemhB,GAAG,CAAC,IAAI9I,EAAE7Q,EAAE2Z,GAAG,IAAIyb,EAAG58B,eAAemhB,IAAIyb,EAAGzb,KAAK9I,EAAE,CAAC,GAAGukB,EAAGzb,GAAG,MAAMxb,MAAMixB,EAAE,IAAIzV,IAAIyb,EAAGzb,GAAG9I,EAAE5Q,GAAE,GAAIA,GAAGo1B,IAAK,IAAIW,IAAK,qBAAqB/yB,QAAQ,qBAAqBA,OAAOC,UAAU,qBAAqBD,OAAOC,SAASC,eAAe8yB,EAAG,KAAKC,EAAG,KAAKC,EAAG,KAC9a,SAASC,EAAGp2B,GAAG,GAAGA,EAAE80B,EAAG90B,GAAG,CAAC,GAAG,oBAAoBi2B,EAAG,MAAM93B,MAAMixB,EAAE,MAAM,IAAInvB,EAAED,EAAEq2B,UAAUp2B,IAAIA,EAAE40B,EAAG50B,GAAGg2B,EAAGj2B,EAAEq2B,UAAUr2B,EAAE4a,KAAK3a,KAAK,SAASq2B,EAAGt2B,GAAGk2B,EAAGC,EAAGA,EAAG1zB,KAAKzC,GAAGm2B,EAAG,CAACn2B,GAAGk2B,EAAGl2B,EAAE,SAASu2B,IAAK,GAAGL,EAAG,CAAC,IAAIl2B,EAAEk2B,EAAGj2B,EAAEk2B,EAAoB,GAAjBA,EAAGD,EAAG,KAAKE,EAAGp2B,GAAMC,EAAE,IAAID,EAAE,EAAEA,EAAEC,EAAE7H,OAAO4H,IAAIo2B,EAAGn2B,EAAED,KAAK,SAASw2B,EAAGx2B,EAAEC,GAAG,OAAOD,EAAEC,GAAG,SAASw2B,EAAGz2B,EAAEC,EAAE0Z,EAAE9I,EAAEnP,GAAG,OAAO1B,EAAEC,EAAE0Z,EAAE9I,EAAEnP,GAAG,SAASg1B,KAAM,IAAIC,EAAGH,EAAGI,GAAG,EAAGC,GAAG,EAAG,SAASC,IAAQ,OAAOZ,GAAI,OAAOC,IAAGO,IAAKH,KAC9Z,SAASQ,EAAG/2B,EAAEC,EAAE0Z,GAAG,GAAGkd,EAAG,OAAO72B,EAAEC,EAAE0Z,GAAGkd,GAAG,EAAG,IAAI,OAAOF,EAAG32B,EAAEC,EAAE0Z,GAAlB,QAA6Bkd,GAAG,EAAGC,KAAM,IAAIE,EAAG,8VAA8VC,EAAGl/B,OAAOQ,UAAUC,eAAe0+B,EAAG,GAAGC,EAAG,GAE/Q,SAAS9H,EAAErvB,EAAEC,EAAE0Z,EAAE9I,EAAEnP,EAAEqvB,GAAGp4B,KAAKy+B,gBAAgB,IAAIn3B,GAAG,IAAIA,GAAG,IAAIA,EAAEtH,KAAK0+B,cAAcxmB,EAAElY,KAAK2+B,mBAAmB51B,EAAE/I,KAAK4+B,gBAAgB5d,EAAEhhB,KAAK6+B,aAAax3B,EAAErH,KAAKiiB,KAAK3a,EAAEtH,KAAK8+B,YAAY1G,EAAE,IAAIr3B,EAAE,GACxZ,uIAAuIuF,MAAM,KAAK8D,SAAQ,SAAS/C,GAAGtG,EAAEsG,GAAG,IAAIqvB,EAAErvB,EAAE,GAAE,EAAGA,EAAE,MAAK,MAAM,CAAC,CAAC,gBAAgB,kBAAkB,CAAC,YAAY,SAAS,CAAC,UAAU,OAAO,CAAC,YAAY,eAAe+C,SAAQ,SAAS/C,GAAG,IAAIC,EAAED,EAAE,GAAGtG,EAAEuG,GAAG,IAAIovB,EAAEpvB,EAAE,GAAE,EAAGD,EAAE,GAAG,MAAK,MAAM,CAAC,kBAAkB,YAAY,aAAa,SAAS+C,SAAQ,SAAS/C,GAAGtG,EAAEsG,GAAG,IAAIqvB,EAAErvB,EAAE,GAAE,EAAGA,EAAEa,cAAc,MAAK,MAC9d,CAAC,cAAc,4BAA4B,YAAY,iBAAiBkC,SAAQ,SAAS/C,GAAGtG,EAAEsG,GAAG,IAAIqvB,EAAErvB,EAAE,GAAE,EAAGA,EAAE,MAAK,MAAM,wNAAwNf,MAAM,KAAK8D,SAAQ,SAAS/C,GAAGtG,EAAEsG,GAAG,IAAIqvB,EAAErvB,EAAE,GAAE,EAAGA,EAAEa,cAAc,MAAK,MACzZ,CAAC,UAAU,WAAW,QAAQ,YAAYkC,SAAQ,SAAS/C,GAAGtG,EAAEsG,GAAG,IAAIqvB,EAAErvB,EAAE,GAAE,EAAGA,EAAE,MAAK,MAAM,CAAC,UAAU,YAAY+C,SAAQ,SAAS/C,GAAGtG,EAAEsG,GAAG,IAAIqvB,EAAErvB,EAAE,GAAE,EAAGA,EAAE,MAAK,MAAM,CAAC,OAAO,OAAO,OAAO,QAAQ+C,SAAQ,SAAS/C,GAAGtG,EAAEsG,GAAG,IAAIqvB,EAAErvB,EAAE,GAAE,EAAGA,EAAE,MAAK,MAAM,CAAC,UAAU,SAAS+C,SAAQ,SAAS/C,GAAGtG,EAAEsG,GAAG,IAAIqvB,EAAErvB,EAAE,GAAE,EAAGA,EAAEa,cAAc,MAAK,MAAM,IAAI62B,EAAG,gBAAgB,SAASC,EAAG33B,GAAG,OAAOA,EAAE,GAAG0O,cAC/X,0jCAA0jCzP,MAAM,KAAK8D,SAAQ,SAAS/C,GAAG,IAAIC,EAAED,EAAEzF,QAAQm9B,EACzmCC,GAAIj+B,EAAEuG,GAAG,IAAIovB,EAAEpvB,EAAE,GAAE,EAAGD,EAAE,MAAK,MAAM,2EAA2Ef,MAAM,KAAK8D,SAAQ,SAAS/C,GAAG,IAAIC,EAAED,EAAEzF,QAAQm9B,EAAGC,GAAIj+B,EAAEuG,GAAG,IAAIovB,EAAEpvB,EAAE,GAAE,EAAGD,EAAE,gCAA+B,MAAM,CAAC,WAAW,WAAW,aAAa+C,SAAQ,SAAS/C,GAAG,IAAIC,EAAED,EAAEzF,QAAQm9B,EAAGC,GAAIj+B,EAAEuG,GAAG,IAAIovB,EAAEpvB,EAAE,GAAE,EAAGD,EAAE,wCAAuC,MAAM,CAAC,WAAW,eAAe+C,SAAQ,SAAS/C,GAAGtG,EAAEsG,GAAG,IAAIqvB,EAAErvB,EAAE,GAAE,EAAGA,EAAEa,cAAc,MAAK,MACncnH,EAAEk+B,UAAU,IAAIvI,EAAE,YAAY,GAAE,EAAG,aAAa,gCAA+B,GAAI,CAAC,MAAM,OAAO,SAAS,cAActsB,SAAQ,SAAS/C,GAAGtG,EAAEsG,GAAG,IAAIqvB,EAAErvB,EAAE,GAAE,EAAGA,EAAEa,cAAc,MAAK,MAAM,IAAIg3B,EAAG/F,EAAGgB,mDACnM,SAASgF,EAAG93B,EAAEC,EAAE0Z,EAAE9I,GAAG,IAAInP,EAAEhI,EAAElB,eAAeyH,GAAGvG,EAAEuG,GAAG,MAAW,OAAOyB,EAAE,IAAIA,EAAEkZ,MAAK/J,IAAO,EAAE5Q,EAAE7H,SAAS,MAAM6H,EAAE,IAAI,MAAMA,EAAE,MAAI,MAAMA,EAAE,IAAI,MAAMA,EAAE,QAPnJ,SAAYD,EAAEC,EAAE0Z,EAAE9I,GAAG,GAAG,OAAO5Q,GAAG,qBAAqBA,GAD4D,SAAYD,EAAEC,EAAE0Z,EAAE9I,GAAG,GAAG,OAAO8I,GAAG,IAAIA,EAAEiB,KAAK,OAAM,EAAG,cAAc3a,GAAG,IAAK,WAAW,IAAK,SAAS,OAAM,EAAG,IAAK,UAAU,OAAG4Q,IAAc,OAAO8I,GAASA,EAAEyd,gBAAmD,WAAnCp3B,EAAEA,EAAEa,cAAcI,MAAM,EAAE,KAAsB,UAAUjB,GAAE,QAAQ,OAAM,GACnT+3B,CAAG/3B,EAAEC,EAAE0Z,EAAE9I,GAAG,OAAM,EAAG,GAAGA,EAAE,OAAM,EAAG,GAAG,OAAO8I,EAAE,OAAOA,EAAEiB,MAAM,KAAK,EAAE,OAAO3a,EAAE,KAAK,EAAE,OAAM,IAAKA,EAAE,KAAK,EAAE,OAAO4lB,MAAM5lB,GAAG,KAAK,EAAE,OAAO4lB,MAAM5lB,IAAI,EAAEA,EAAE,OAAM,EAOrD+3B,CAAG/3B,EAAE0Z,EAAEjY,EAAEmP,KAAK8I,EAAE,MAAM9I,GAAG,OAAOnP,EARhM,SAAY1B,GAAG,QAAGi3B,EAAGx+B,KAAK0+B,EAAGn3B,KAAei3B,EAAGx+B,KAAKy+B,EAAGl3B,KAAeg3B,EAAGpf,KAAK5X,GAAUm3B,EAAGn3B,IAAG,GAAGk3B,EAAGl3B,IAAG,GAAS,IAQkFi4B,CAAGh4B,KAAK,OAAO0Z,EAAE3Z,EAAEk4B,gBAAgBj4B,GAAGD,EAAEm4B,aAAal4B,EAAE,GAAG0Z,IAAIjY,EAAE61B,gBAAgBv3B,EAAE0B,EAAE81B,cAAc,OAAO7d,EAAE,IAAIjY,EAAEkZ,MAAQ,GAAGjB,GAAG1Z,EAAEyB,EAAE21B,cAAcxmB,EAAEnP,EAAE41B,mBAAmB,OAAO3d,EAAE3Z,EAAEk4B,gBAAgBj4B,IAAa0Z,EAAE,KAAXjY,EAAEA,EAAEkZ,OAAc,IAAIlZ,IAAG,IAAKiY,EAAE,GAAG,GAAGA,EAAE9I,EAAE7Q,EAAEo4B,eAAevnB,EAAE5Q,EAAE0Z,GAAG3Z,EAAEm4B,aAAal4B,EAAE0Z,MADtOke,EAAGr/B,eAAe,4BAA4Bq/B,EAAGzF,uBAAuB,CAAC3B,QAAQ,OAAOoH,EAAGr/B,eAAe,6BAA6Bq/B,EAAGxF,wBAAwB,CAACC,SAAS,OAEla,IAAI+F,EAAG,cAAcvI,EAAE,oBAAoB9Y,QAAQA,OAAOgY,IAAIsJ,GAAGxI,EAAE9Y,OAAOgY,IAAI,iBAAiB,MAAMuJ,GAAGzI,EAAE9Y,OAAOgY,IAAI,gBAAgB,MAAMwJ,GAAG1I,EAAE9Y,OAAOgY,IAAI,kBAAkB,MAAMyJ,GAAG3I,EAAE9Y,OAAOgY,IAAI,qBAAqB,MAAM0J,GAAG5I,EAAE9Y,OAAOgY,IAAI,kBAAkB,MAAM2J,GAAG7I,EAAE9Y,OAAOgY,IAAI,kBAAkB,MAAM4J,GAAG9I,EAAE9Y,OAAOgY,IAAI,iBAAiB,MAAM6J,GAAG/I,EAAE9Y,OAAOgY,IAAI,yBAAyB,MAAM8J,GAAGhJ,EAAE9Y,OAAOgY,IAAI,qBAAqB,MAAM+J,GAAGjJ,EAAE9Y,OAAOgY,IAAI,kBAAkB,MAAMgK,GAAGlJ,EAAE9Y,OAAOgY,IAAI,uBACve,MAAMiK,GAAGnJ,EAAE9Y,OAAOgY,IAAI,cAAc,MAAMkK,GAAGpJ,EAAE9Y,OAAOgY,IAAI,cAAc,MAAMmK,GAAGrJ,EAAE9Y,OAAOgY,IAAI,eAAe,MAAMoK,GAAG,oBAAoBpiB,QAAQA,OAAOC,SAAS,SAASoiB,GAAGr5B,GAAG,OAAG,OAAOA,GAAG,kBAAkBA,EAAS,KAAwC,oBAAnCA,EAAEo5B,IAAIp5B,EAAEo5B,KAAKp5B,EAAE,eAA0CA,EAAE,KACzR,SAASs5B,GAAGt5B,GAAG,GAAG,MAAMA,EAAE,OAAO,KAAK,GAAG,oBAAoBA,EAAE,OAAOA,EAAEua,aAAava,EAAE6U,MAAM,KAAK,GAAG,kBAAkB7U,EAAE,OAAOA,EAAE,OAAOA,GAAG,KAAKw4B,GAAG,MAAM,WAAW,KAAKD,GAAG,MAAM,SAAS,KAAKG,GAAG,MAAM,WAAW,KAAKD,GAAG,MAAM,aAAa,KAAKM,GAAG,MAAM,WAAW,KAAKC,GAAG,MAAM,eAAe,GAAG,kBAAkBh5B,EAAE,OAAOA,EAAEgxB,UAAU,KAAK4H,GAAG,MAAM,mBAAmB,KAAKD,GAAG,MAAM,mBAAmB,KAAKG,GAAG,IAAI74B,EAAED,EAAE/G,OAAmC,OAA5BgH,EAAEA,EAAEsa,aAAata,EAAE4U,MAAM,GAAU7U,EAAEua,cAAc,KAAKta,EAAE,cAAcA,EAAE,IACnf,cAAc,KAAKg5B,GAAG,OAAOK,GAAGt5B,EAAE4a,MAAM,KAAKue,GAAG,OAAOG,GAAGt5B,EAAE/G,QAAQ,KAAKigC,GAAG,GAAGl5B,EAAE,IAAIA,EAAEyzB,QAAQzzB,EAAE0zB,QAAQ,KAAK,OAAO4F,GAAGt5B,GAAG,OAAO,KAAK,SAASu5B,GAAGv5B,GAAG,IAAIC,EAAE,GAAG,EAAE,CAACD,EAAE,OAAOA,EAAEw5B,KAAK,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,IAAI7f,EAAE,GAAG,MAAM3Z,EAAE,QAAQ,IAAI6Q,EAAE7Q,EAAEy5B,YAAY/3B,EAAE1B,EAAE05B,aAAa3I,EAAEuI,GAAGt5B,EAAE4a,MAAMjB,EAAE,KAAK9I,IAAI8I,EAAE2f,GAAGzoB,EAAE+J,OAAO/J,EAAEkgB,EAAEA,EAAE,GAAGrvB,EAAEqvB,EAAE,QAAQrvB,EAAEi4B,SAASp/B,QAAQ89B,EAAG,IAAI,IAAI32B,EAAEk4B,WAAW,IAAIjgB,IAAIoX,EAAE,gBAAgBpX,EAAE,KAAKA,EAAE,aAAa9I,GAAG,WAAWkgB,EAAE9wB,GAAG0Z,EAAE3Z,EAAEA,EAAE65B,aAAa75B,GAAG,OAAOC,EACje,SAAS65B,GAAG95B,GAAG,cAAcA,GAAG,IAAK,UAAU,IAAK,SAAS,IAAK,SAAS,IAAK,SAAS,IAAK,YAAY,OAAOA,EAAE,QAAQ,MAAM,IAAI,SAAS+5B,GAAG/5B,GAAG,IAAIC,EAAED,EAAE4a,KAAK,OAAO5a,EAAEA,EAAEg6B,WAAW,UAAUh6B,EAAEa,gBAAgB,aAAaZ,GAAG,UAAUA,GAEzN,SAASg6B,GAAGj6B,GAAGA,EAAEk6B,gBAAgBl6B,EAAEk6B,cADvD,SAAYl6B,GAAG,IAAIC,EAAE85B,GAAG/5B,GAAG,UAAU,QAAQ2Z,EAAE5hB,OAAO4T,yBAAyB3L,EAAElC,YAAYvF,UAAU0H,GAAG4Q,EAAE,GAAG7Q,EAAEC,GAAG,IAAID,EAAExH,eAAeyH,IAAI,qBAAqB0Z,GAAG,oBAAoBA,EAAE9N,KAAK,oBAAoB8N,EAAExM,IAAI,CAAC,IAAIzL,EAAEiY,EAAE9N,IAAIklB,EAAEpX,EAAExM,IAAiL,OAA7KpV,OAAOiE,eAAegE,EAAEC,EAAE,CAAC+J,cAAa,EAAG6B,IAAI,WAAW,OAAOnK,EAAEjJ,KAAKE,OAAOwU,IAAI,SAASnN,GAAG6Q,EAAE,GAAG7Q,EAAE+wB,EAAEt4B,KAAKE,KAAKqH,MAAMjI,OAAOiE,eAAegE,EAAEC,EAAE,CAAC8J,WAAW4P,EAAE5P,aAAmB,CAACuK,SAAS,WAAW,OAAOzD,GAAGspB,SAAS,SAASn6B,GAAG6Q,EAAE,GAAG7Q,GAAGo6B,aAAa,WAAWp6B,EAAEk6B,cACxf,YAAYl6B,EAAEC,MAAuDo6B,CAAGr6B,IAAI,SAASs6B,GAAGt6B,GAAG,IAAIA,EAAE,OAAM,EAAG,IAAIC,EAAED,EAAEk6B,cAAc,IAAIj6B,EAAE,OAAM,EAAG,IAAI0Z,EAAE1Z,EAAEqU,WAAezD,EAAE,GAAqD,OAAlD7Q,IAAI6Q,EAAEkpB,GAAG/5B,GAAGA,EAAEu6B,QAAQ,OAAO,QAAQv6B,EAAE/D,QAAO+D,EAAE6Q,KAAa8I,IAAG1Z,EAAEk6B,SAASn6B,IAAG,GAAO,SAASw6B,GAAGx6B,EAAEC,GAAG,IAAI0Z,EAAE1Z,EAAEs6B,QAAQ,OAAO57B,EAAE,GAAGsB,EAAE,CAACw6B,oBAAe,EAAOtnB,kBAAa,EAAOlX,WAAM,EAAOs+B,QAAQ,MAAM5gB,EAAEA,EAAE3Z,EAAE06B,cAAcC,iBACzY,SAASC,GAAG56B,EAAEC,GAAG,IAAI0Z,EAAE,MAAM1Z,EAAEkT,aAAa,GAAGlT,EAAEkT,aAAatC,EAAE,MAAM5Q,EAAEs6B,QAAQt6B,EAAEs6B,QAAQt6B,EAAEw6B,eAAe9gB,EAAEmgB,GAAG,MAAM75B,EAAEhE,MAAMgE,EAAEhE,MAAM0d,GAAG3Z,EAAE06B,cAAc,CAACC,eAAe9pB,EAAEgqB,aAAalhB,EAAEmhB,WAAW,aAAa76B,EAAE2a,MAAM,UAAU3a,EAAE2a,KAAK,MAAM3a,EAAEs6B,QAAQ,MAAMt6B,EAAEhE,OAAO,SAAS8+B,GAAG/6B,EAAEC,GAAe,OAAZA,EAAEA,EAAEs6B,UAAiBzC,EAAG93B,EAAE,UAAUC,GAAE,GACjU,SAAS+6B,GAAGh7B,EAAEC,GAAG86B,GAAG/6B,EAAEC,GAAG,IAAI0Z,EAAEmgB,GAAG75B,EAAEhE,OAAO4U,EAAE5Q,EAAE2a,KAAK,GAAG,MAAMjB,EAAK,WAAW9I,GAAM,IAAI8I,GAAG,KAAK3Z,EAAE/D,OAAO+D,EAAE/D,OAAO0d,KAAE3Z,EAAE/D,MAAM,GAAG0d,GAAO3Z,EAAE/D,QAAQ,GAAG0d,IAAI3Z,EAAE/D,MAAM,GAAG0d,QAAQ,GAAG,WAAW9I,GAAG,UAAUA,EAA8B,YAA3B7Q,EAAEk4B,gBAAgB,SAAgBj4B,EAAEzH,eAAe,SAASyiC,GAAGj7B,EAAEC,EAAE2a,KAAKjB,GAAG1Z,EAAEzH,eAAe,iBAAiByiC,GAAGj7B,EAAEC,EAAE2a,KAAKkf,GAAG75B,EAAEkT,eAAe,MAAMlT,EAAEs6B,SAAS,MAAMt6B,EAAEw6B,iBAAiBz6B,EAAEy6B,iBAAiBx6B,EAAEw6B,gBACnZ,SAASS,GAAGl7B,EAAEC,EAAE0Z,GAAG,GAAG1Z,EAAEzH,eAAe,UAAUyH,EAAEzH,eAAe,gBAAgB,CAAC,IAAIqY,EAAE5Q,EAAE2a,KAAK,KAAK,WAAW/J,GAAG,UAAUA,QAAG,IAAS5Q,EAAEhE,OAAO,OAAOgE,EAAEhE,OAAO,OAAOgE,EAAE,GAAGD,EAAE06B,cAAcG,aAAalhB,GAAG1Z,IAAID,EAAE/D,QAAQ+D,EAAE/D,MAAMgE,GAAGD,EAAEmT,aAAalT,EAAW,MAAT0Z,EAAE3Z,EAAE6U,QAAc7U,EAAE6U,KAAK,IAAI7U,EAAEy6B,iBAAiBz6B,EAAE06B,cAAcC,eAAe,KAAKhhB,IAAI3Z,EAAE6U,KAAK8E,GACvV,SAASshB,GAAGj7B,EAAEC,EAAE0Z,GAAM,WAAW1Z,GAAGD,EAAEm7B,cAActuB,gBAAgB7M,IAAE,MAAM2Z,EAAE3Z,EAAEmT,aAAa,GAAGnT,EAAE06B,cAAcG,aAAa76B,EAAEmT,eAAe,GAAGwG,IAAI3Z,EAAEmT,aAAa,GAAGwG,IAAwF,SAASyhB,GAAGp7B,EAAEC,GAA6D,OAA1DD,EAAErB,EAAE,CAACzF,cAAS,GAAQ+G,IAAMA,EAAlI,SAAYD,GAAG,IAAIC,EAAE,GAAuD,OAApD6xB,EAAG9gB,SAASjO,QAAQ/C,GAAE,SAASA,GAAG,MAAMA,IAAIC,GAAGD,MAAYC,EAAiDo7B,CAAGp7B,EAAE/G,aAAU8G,EAAE9G,SAAS+G,GAASD,EACjV,SAASs7B,GAAGt7B,EAAEC,EAAE0Z,EAAE9I,GAAe,GAAZ7Q,EAAEA,EAAEqM,QAAWpM,EAAE,CAACA,EAAE,GAAG,IAAI,IAAIyB,EAAE,EAAEA,EAAEiY,EAAEvhB,OAAOsJ,IAAIzB,EAAE,IAAI0Z,EAAEjY,KAAI,EAAG,IAAIiY,EAAE,EAAEA,EAAE3Z,EAAE5H,OAAOuhB,IAAIjY,EAAEzB,EAAEzH,eAAe,IAAIwH,EAAE2Z,GAAG1d,OAAO+D,EAAE2Z,GAAG+O,WAAWhnB,IAAI1B,EAAE2Z,GAAG+O,SAAShnB,GAAGA,GAAGmP,IAAI7Q,EAAE2Z,GAAG4hB,iBAAgB,OAAQ,CAAmB,IAAlB5hB,EAAE,GAAGmgB,GAAGngB,GAAG1Z,EAAE,KAASyB,EAAE,EAAEA,EAAE1B,EAAE5H,OAAOsJ,IAAI,CAAC,GAAG1B,EAAE0B,GAAGzF,QAAQ0d,EAAiD,OAA9C3Z,EAAE0B,GAAGgnB,UAAS,OAAG7X,IAAI7Q,EAAE0B,GAAG65B,iBAAgB,IAAW,OAAOt7B,GAAGD,EAAE0B,GAAGonB,WAAW7oB,EAAED,EAAE0B,IAAI,OAAOzB,IAAIA,EAAEyoB,UAAS,IACpY,SAAS8S,GAAGx7B,EAAEC,GAAG,GAAG,MAAMA,EAAEw7B,wBAAwB,MAAMt9B,MAAMixB,EAAE,KAAK,OAAOzwB,EAAE,GAAGsB,EAAE,CAAChE,WAAM,EAAOkX,kBAAa,EAAOja,SAAS,GAAG8G,EAAE06B,cAAcG,eAAe,SAASa,GAAG17B,EAAEC,GAAG,IAAI0Z,EAAE1Z,EAAEhE,MAAM,GAAG,MAAM0d,EAAE,CAA+B,GAA9BA,EAAE1Z,EAAE/G,SAAS+G,EAAEA,EAAEkT,aAAgB,MAAMwG,EAAE,CAAC,GAAG,MAAM1Z,EAAE,MAAM9B,MAAMixB,EAAE,KAAK,GAAGlvB,MAAMC,QAAQwZ,GAAG,CAAC,KAAK,GAAGA,EAAEvhB,QAAQ,MAAM+F,MAAMixB,EAAE,KAAKzV,EAAEA,EAAE,GAAG1Z,EAAE0Z,EAAE,MAAM1Z,IAAIA,EAAE,IAAI0Z,EAAE1Z,EAAED,EAAE06B,cAAc,CAACG,aAAaf,GAAGngB,IAC/Y,SAASgiB,GAAG37B,EAAEC,GAAG,IAAI0Z,EAAEmgB,GAAG75B,EAAEhE,OAAO4U,EAAEipB,GAAG75B,EAAEkT,cAAc,MAAMwG,KAAIA,EAAE,GAAGA,KAAM3Z,EAAE/D,QAAQ+D,EAAE/D,MAAM0d,GAAG,MAAM1Z,EAAEkT,cAAcnT,EAAEmT,eAAewG,IAAI3Z,EAAEmT,aAAawG,IAAI,MAAM9I,IAAI7Q,EAAEmT,aAAa,GAAGtC,GAAG,SAAS+qB,GAAG57B,GAAG,IAAIC,EAAED,EAAE67B,YAAY57B,IAAID,EAAE06B,cAAcG,cAAc,KAAK56B,GAAG,OAAOA,IAAID,EAAE/D,MAAMgE,GAAG,IAAI67B,GAAS,+BAATA,GAAwF,6BAC9X,SAASC,GAAG/7B,GAAG,OAAOA,GAAG,IAAK,MAAM,MAAM,6BAA6B,IAAK,OAAO,MAAM,qCAAqC,QAAQ,MAAM,gCAAgC,SAASg8B,GAAGh8B,EAAEC,GAAG,OAAO,MAAMD,GAAG,iCAAiCA,EAAE+7B,GAAG97B,GAAG,+BAA+BD,GAAG,kBAAkBC,EAAE,+BAA+BD,EAC3U,IAAIi8B,GAAGC,GAAG,SAASl8B,GAAG,MAAM,qBAAqBm8B,OAAOA,MAAMC,wBAAwB,SAASn8B,EAAE0Z,EAAE9I,EAAEnP,GAAGy6B,MAAMC,yBAAwB,WAAW,OAAOp8B,EAAEC,EAAE0Z,OAAU3Z,EAA5J,EAA+J,SAASA,EAAEC,GAAG,GAAGD,EAAEq8B,eAAeP,IAAQ,cAAc97B,EAAEA,EAAEs8B,UAAUr8B,MAAM,CAA2F,KAA1Fg8B,GAAGA,IAAI/4B,SAASC,cAAc,QAAUm5B,UAAU,QAAQr8B,EAAEH,UAAU+E,WAAW,SAAa5E,EAAEg8B,GAAGM,WAAWv8B,EAAEu8B,YAAYv8B,EAAEw8B,YAAYx8B,EAAEu8B,YAAY,KAAKt8B,EAAEs8B,YAAYv8B,EAAEy8B,YAAYx8B,EAAEs8B,gBACjb,SAASG,GAAG18B,EAAEC,GAAG,GAAGA,EAAE,CAAC,IAAI0Z,EAAE3Z,EAAEu8B,WAAW,GAAG5iB,GAAGA,IAAI3Z,EAAE28B,WAAW,IAAIhjB,EAAEd,SAAwB,YAAdc,EAAEijB,UAAU38B,GAAUD,EAAE67B,YAAY57B,EAAE,SAAS48B,GAAG78B,EAAEC,GAAG,IAAI0Z,EAAE,GAAkF,OAA/EA,EAAE3Z,EAAEa,eAAeZ,EAAEY,cAAc8Y,EAAE,SAAS3Z,GAAG,SAASC,EAAE0Z,EAAE,MAAM3Z,GAAG,MAAMC,EAAS0Z,EAAE,IAAImjB,GAAG,CAACC,aAAaF,GAAG,YAAY,gBAAgBG,mBAAmBH,GAAG,YAAY,sBAAsBI,eAAeJ,GAAG,YAAY,kBAAkBK,cAAcL,GAAG,aAAa,kBAAkBM,GAAG,GAAGC,GAAG,GAC1M,SAASC,GAAGr9B,GAAG,GAAGm9B,GAAGn9B,GAAG,OAAOm9B,GAAGn9B,GAAG,IAAI88B,GAAG98B,GAAG,OAAOA,EAAE,IAAY2Z,EAAR1Z,EAAE68B,GAAG98B,GAAK,IAAI2Z,KAAK1Z,EAAE,GAAGA,EAAEzH,eAAemhB,IAAIA,KAAKyjB,GAAG,OAAOD,GAAGn9B,GAAGC,EAAE0Z,GAAG,OAAO3Z,EAA9Xg2B,IAAKoH,GAAGl6B,SAASC,cAAc,OAAO3H,MAAM,mBAAmByH,gBAAgB65B,GAAGC,aAAaO,iBAAiBR,GAAGE,mBAAmBM,iBAAiBR,GAAGG,eAAeK,WAAW,oBAAoBr6B,eAAe65B,GAAGI,cAAcruB,YACxO,IAAI0uB,GAAGF,GAAG,gBAAgBG,GAAGH,GAAG,sBAAsBI,GAAGJ,GAAG,kBAAkBK,GAAGL,GAAG,iBAAiBM,GAAG,sNAAsN1+B,MAAM,KAAK2+B,GAAG,IAAK,oBAAoBC,QAAQA,QAAQC,KAAK,SAASC,GAAG/9B,GAAG,IAAIC,EAAE29B,GAAG/xB,IAAI7L,GAAuC,YAApC,IAASC,IAAIA,EAAE,IAAI69B,IAAIF,GAAGzwB,IAAInN,EAAEC,IAAWA,EACpc,SAAS+9B,GAAGh+B,GAAG,IAAIC,EAAED,EAAE2Z,EAAE3Z,EAAE,GAAGA,EAAEi+B,UAAU,KAAKh+B,EAAE45B,QAAQ55B,EAAEA,EAAE45B,WAAW,CAAC75B,EAAEC,EAAE,GAAO,KAAiB,MAArBA,EAAED,GAASk+B,aAAkBvkB,EAAE1Z,EAAE45B,QAAQ75B,EAAEC,EAAE45B,aAAa75B,GAAG,OAAO,IAAIC,EAAEu5B,IAAI7f,EAAE,KAAK,SAASwkB,GAAGn+B,GAAG,GAAG,KAAKA,EAAEw5B,IAAI,CAAC,IAAIv5B,EAAED,EAAEo+B,cAAsE,GAAxD,OAAOn+B,IAAkB,QAAdD,EAAEA,EAAEi+B,aAAqBh+B,EAAED,EAAEo+B,gBAAmB,OAAOn+B,EAAE,OAAOA,EAAEo+B,WAAW,OAAO,KAAK,SAASC,GAAGt+B,GAAG,GAAGg+B,GAAGh+B,KAAKA,EAAE,MAAM7B,MAAMixB,EAAE,MAEhK,SAASmP,GAAGv+B,GAAW,KAARA,EADtN,SAAYA,GAAG,IAAIC,EAAED,EAAEi+B,UAAU,IAAIh+B,EAAE,CAAS,GAAG,QAAXA,EAAE+9B,GAAGh+B,IAAe,MAAM7B,MAAMixB,EAAE,MAAM,OAAOnvB,IAAID,EAAE,KAAKA,EAAE,IAAI,IAAI2Z,EAAE3Z,EAAE6Q,EAAE5Q,IAAI,CAAC,IAAIyB,EAAEiY,EAAEkgB,OAAO,GAAG,OAAOn4B,EAAE,MAAM,IAAIqvB,EAAErvB,EAAEu8B,UAAU,GAAG,OAAOlN,EAAE,CAAY,GAAG,QAAdlgB,EAAEnP,EAAEm4B,QAAmB,CAAClgB,EAAE9I,EAAE,SAAS,MAAM,GAAGnP,EAAE88B,QAAQzN,EAAEyN,MAAM,CAAC,IAAIzN,EAAErvB,EAAE88B,MAAMzN,GAAG,CAAC,GAAGA,IAAIpX,EAAE,OAAO2kB,GAAG58B,GAAG1B,EAAE,GAAG+wB,IAAIlgB,EAAE,OAAOytB,GAAG58B,GAAGzB,EAAE8wB,EAAEA,EAAE0N,QAAQ,MAAMtgC,MAAMixB,EAAE,MAAO,GAAGzV,EAAEkgB,SAAShpB,EAAEgpB,OAAOlgB,EAAEjY,EAAEmP,EAAEkgB,MAAM,CAAC,IAAI,IAAI5M,GAAE,EAAGpR,EAAErR,EAAE88B,MAAMzrB,GAAG,CAAC,GAAGA,IAAI4G,EAAE,CAACwK,GAAE,EAAGxK,EAAEjY,EAAEmP,EAAEkgB,EAAE,MAAM,GAAGhe,IAAIlC,EAAE,CAACsT,GAAE,EAAGtT,EAAEnP,EAAEiY,EAAEoX,EAAE,MAAMhe,EAAEA,EAAE0rB,QAAQ,IAAIta,EAAE,CAAC,IAAIpR,EAAEge,EAAEyN,MAAMzrB,GAAG,CAAC,GAAGA,IAC5f4G,EAAE,CAACwK,GAAE,EAAGxK,EAAEoX,EAAElgB,EAAEnP,EAAE,MAAM,GAAGqR,IAAIlC,EAAE,CAACsT,GAAE,EAAGtT,EAAEkgB,EAAEpX,EAAEjY,EAAE,MAAMqR,EAAEA,EAAE0rB,QAAQ,IAAIta,EAAE,MAAMhmB,MAAMixB,EAAE,OAAQ,GAAGzV,EAAEskB,YAAYptB,EAAE,MAAM1S,MAAMixB,EAAE,MAAO,GAAG,IAAIzV,EAAE6f,IAAI,MAAMr7B,MAAMixB,EAAE,MAAM,OAAOzV,EAAE0c,UAAU5F,UAAU9W,EAAE3Z,EAAEC,EAAmBy+B,CAAG1+B,IAAS,OAAO,KAAK,IAAI,IAAIC,EAAED,IAAI,CAAC,GAAG,IAAIC,EAAEu5B,KAAK,IAAIv5B,EAAEu5B,IAAI,OAAOv5B,EAAE,GAAGA,EAAEu+B,MAAMv+B,EAAEu+B,MAAM3E,OAAO55B,EAAEA,EAAEA,EAAEu+B,UAAU,CAAC,GAAGv+B,IAAID,EAAE,MAAM,MAAMC,EAAEw+B,SAAS,CAAC,IAAIx+B,EAAE45B,QAAQ55B,EAAE45B,SAAS75B,EAAE,OAAO,KAAKC,EAAEA,EAAE45B,OAAO55B,EAAEw+B,QAAQ5E,OAAO55B,EAAE45B,OAAO55B,EAAEA,EAAEw+B,SAAS,OAAO,KAC5c,SAASE,GAAG3+B,EAAEC,GAAG,GAAG,MAAMA,EAAE,MAAM9B,MAAMixB,EAAE,KAAK,OAAG,MAAMpvB,EAASC,EAAKC,MAAMC,QAAQH,GAAOE,MAAMC,QAAQF,IAAUD,EAAEyC,KAAK/J,MAAMsH,EAAEC,GAAGD,IAAEA,EAAEyC,KAAKxC,GAAUD,GAASE,MAAMC,QAAQF,GAAG,CAACD,GAAGV,OAAOW,GAAG,CAACD,EAAEC,GAAG,SAAS2+B,GAAG5+B,EAAEC,EAAE0Z,GAAGzZ,MAAMC,QAAQH,GAAGA,EAAE+C,QAAQ9C,EAAE0Z,GAAG3Z,GAAGC,EAAExH,KAAKkhB,EAAE3Z,GAAG,IAAI6+B,GAAG,KAC/Q,SAASC,GAAG9+B,GAAG,GAAGA,EAAE,CAAC,IAAIC,EAAED,EAAE++B,mBAAmBplB,EAAE3Z,EAAEg/B,mBAAmB,GAAG9+B,MAAMC,QAAQF,GAAG,IAAI,IAAI4Q,EAAE,EAAEA,EAAE5Q,EAAE7H,SAAS4H,EAAEi/B,uBAAuBpuB,IAAImkB,EAAGh1B,EAAEC,EAAE4Q,GAAG8I,EAAE9I,SAAS5Q,GAAG+0B,EAAGh1B,EAAEC,EAAE0Z,GAAG3Z,EAAE++B,mBAAmB,KAAK/+B,EAAEg/B,mBAAmB,KAAKh/B,EAAEk/B,gBAAgBl/B,EAAElC,YAAYqhC,QAAQn/B,IAAI,SAASo/B,GAAGp/B,GAAwC,GAArC,OAAOA,IAAI6+B,GAAGF,GAAGE,GAAG7+B,IAAIA,EAAE6+B,GAAGA,GAAG,KAAQ7+B,EAAE,CAAU,GAAT4+B,GAAG5+B,EAAE8+B,IAAOD,GAAG,MAAM1gC,MAAMixB,EAAE,KAAK,GAAGqF,EAAG,MAAMz0B,EAAE00B,EAAGD,GAAG,EAAGC,EAAG,KAAK10B,GAC9Y,SAASq/B,GAAGr/B,GAA6F,OAA1FA,EAAEA,EAAE/H,QAAQ+H,EAAEs/B,YAAYr8B,QAASs8B,0BAA0Bv/B,EAAEA,EAAEu/B,yBAAgC,IAAIv/B,EAAE6Y,SAAS7Y,EAAEw/B,WAAWx/B,EAAE,SAASy/B,GAAGz/B,GAAG,IAAIg2B,EAAG,OAAM,EAAY,IAAI/1B,GAAbD,EAAE,KAAKA,KAAakD,SAAqG,OAA5FjD,KAAIA,EAAEiD,SAASC,cAAc,QAASg1B,aAAan4B,EAAE,WAAWC,EAAE,oBAAoBA,EAAED,IAAWC,EAAE,IAAIy/B,GAAG,GAAG,SAASC,GAAG3/B,GAAGA,EAAE4/B,aAAa,KAAK5/B,EAAE6/B,YAAY,KAAK7/B,EAAE8/B,WAAW,KAAK9/B,EAAE+/B,UAAU3nC,OAAO,EAAE,GAAGsnC,GAAGtnC,QAAQsnC,GAAGj9B,KAAKzC,GAC5a,SAASggC,GAAGhgC,EAAEC,EAAE0Z,EAAE9I,GAAG,GAAG6uB,GAAGtnC,OAAO,CAAC,IAAIsJ,EAAEg+B,GAAG9gC,MAA2E,OAArE8C,EAAEk+B,aAAa5/B,EAAE0B,EAAEu+B,iBAAiBpvB,EAAEnP,EAAEm+B,YAAY5/B,EAAEyB,EAAEo+B,WAAWnmB,EAASjY,EAAE,MAAM,CAACk+B,aAAa5/B,EAAEigC,iBAAiBpvB,EAAEgvB,YAAY5/B,EAAE6/B,WAAWnmB,EAAEomB,UAAU,IAC9M,SAASG,GAAGlgC,GAAG,IAAIC,EAAED,EAAE8/B,WAAWnmB,EAAE1Z,EAAE,EAAE,CAAC,IAAI0Z,EAAE,CAAC3Z,EAAE+/B,UAAUt9B,KAAKkX,GAAG,MAAM,IAAI9I,EAAE8I,EAAE,GAAG,IAAI9I,EAAE2oB,IAAI3oB,EAAEA,EAAEwlB,UAAU8J,kBAAkB,CAAC,KAAKtvB,EAAEgpB,QAAQhpB,EAAEA,EAAEgpB,OAAOhpB,EAAE,IAAIA,EAAE2oB,IAAI,KAAK3oB,EAAEwlB,UAAU8J,cAAc,IAAItvB,EAAE,MAAc,KAAR5Q,EAAE0Z,EAAE6f,MAAW,IAAIv5B,GAAGD,EAAE+/B,UAAUt9B,KAAKkX,GAAGA,EAAEymB,GAAGvvB,SAAS8I,GAAG,IAAIA,EAAE,EAAEA,EAAE3Z,EAAE+/B,UAAU3nC,OAAOuhB,IAAI,CAAC1Z,EAAED,EAAE+/B,UAAUpmB,GAAG,IAAIjY,EAAE29B,GAAGr/B,EAAE6/B,aAAahvB,EAAE7Q,EAAE4/B,aAAa,IAAI7O,EAAE/wB,EAAE6/B,YAAY1b,EAAEnkB,EAAEigC,iBAAiB,IAAItmB,IAAIwK,GAAG,IAAI,IAAI,IAAIpR,EAAE,KAAKrU,EAAE,EAAEA,EAAE42B,EAAGl9B,OAAOsG,IAAI,CAAC,IAAIqwB,EAAEuG,EAAG52B,GAAGqwB,IAAIA,EAAEA,EAAEwG,cAAc1kB,EAAE5Q,EAAE8wB,EAAErvB,EAAEyiB,MAAMpR,EACpf4rB,GAAG5rB,EAAEgc,IAAIqQ,GAAGrsB,IAAI,SAASstB,GAAGrgC,EAAEC,EAAE0Z,GAAG,IAAIA,EAAE2mB,IAAItgC,GAAG,CAAC,OAAOA,GAAG,IAAK,SAASugC,GAAGtgC,EAAE,UAAS,GAAI,MAAM,IAAK,QAAQ,IAAK,OAAOsgC,GAAGtgC,EAAE,SAAQ,GAAIsgC,GAAGtgC,EAAE,QAAO,GAAI0Z,EAAExM,IAAI,OAAO,MAAMwM,EAAExM,IAAI,QAAQ,MAAM,MAAM,IAAK,SAAS,IAAK,QAAQsyB,GAAGz/B,IAAIugC,GAAGtgC,EAAED,GAAE,GAAI,MAAM,IAAK,UAAU,IAAK,SAAS,IAAK,QAAQ,MAAM,SAAS,IAAI29B,GAAG78B,QAAQd,IAAI+vB,GAAE/vB,EAAEC,GAAG0Z,EAAExM,IAAInN,EAAE,OACtV,IAAIwgC,GAAGC,GAAGC,GAAGC,IAAG,EAAGC,GAAG,GAAGC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,IAAIlD,IAAImD,GAAG,IAAInD,IAAIoD,GAAG,GAAGC,GAAG,0QAA0QliC,MAAM,KAAKmiC,GAAG,gHAAgHniC,MAAM,KAC3X,SAASoiC,GAAGrhC,EAAEC,EAAE0Z,EAAE9I,EAAEnP,GAAG,MAAM,CAAC4/B,UAAUthC,EAAE4/B,aAAa3/B,EAAEggC,iBAAmB,GAAFtmB,EAAKkmB,YAAYn+B,EAAEiX,UAAU9H,GAC1M,SAAS0wB,GAAGvhC,EAAEC,GAAG,OAAOD,GAAG,IAAK,QAAQ,IAAK,OAAO6gC,GAAG,KAAK,MAAM,IAAK,YAAY,IAAK,YAAYC,GAAG,KAAK,MAAM,IAAK,YAAY,IAAK,WAAWC,GAAG,KAAK,MAAM,IAAK,cAAc,IAAK,aAAaC,GAAGQ,OAAOvhC,EAAEwhC,WAAW,MAAM,IAAK,oBAAoB,IAAK,qBAAqBR,GAAGO,OAAOvhC,EAAEwhC,YAAY,SAASC,GAAG1hC,EAAEC,EAAE0Z,EAAE9I,EAAEnP,EAAEqvB,GAAG,OAAG,OAAO/wB,GAAGA,EAAE6/B,cAAc9O,GAAS/wB,EAAEqhC,GAAGphC,EAAE0Z,EAAE9I,EAAEnP,EAAEqvB,GAAG,OAAO9wB,IAAY,QAARA,EAAE0hC,GAAG1hC,KAAawgC,GAAGxgC,IAAID,IAAEA,EAAEigC,kBAAkBpvB,EAAS7Q,GAEhc,SAAS4hC,GAAG5hC,GAAG,IAAIC,EAAEmgC,GAAGpgC,EAAE/H,QAAQ,GAAG,OAAOgI,EAAE,CAAC,IAAI0Z,EAAEqkB,GAAG/9B,GAAG,GAAG,OAAO0Z,EAAE,GAAW,MAAR1Z,EAAE0Z,EAAE6f,MAAY,GAAW,QAARv5B,EAAEk+B,GAAGxkB,IAAoF,OAAvE3Z,EAAEshC,UAAUrhC,OAAEkvB,EAAE0S,yBAAyB7hC,EAAE8hC,UAAS,WAAWpB,GAAG/mB,WAAkB,GAAG,IAAI1Z,GAAG0Z,EAAE0c,UAAU0L,QAA8D,YAArD/hC,EAAEshC,UAAU,IAAI3nB,EAAE6f,IAAI7f,EAAE0c,UAAU8J,cAAc,MAAangC,EAAEshC,UAAU,KAAK,SAASU,GAAGhiC,GAAG,GAAG,OAAOA,EAAEshC,UAAU,OAAM,EAAG,IAAIrhC,EAAEgiC,GAAGjiC,EAAE4/B,aAAa5/B,EAAEigC,iBAAiBjgC,EAAE2Y,UAAU3Y,EAAE6/B,aAAa,GAAG,OAAO5/B,EAAE,CAAC,IAAI0Z,EAAEgoB,GAAG1hC,GAAiC,OAA9B,OAAO0Z,GAAG8mB,GAAG9mB,GAAG3Z,EAAEshC,UAAUrhC,GAAQ,EAAG,OAAM,EAC1e,SAASiiC,GAAGliC,EAAEC,EAAE0Z,GAAGqoB,GAAGhiC,IAAI2Z,EAAE6nB,OAAOvhC,GAAG,SAASkiC,KAAK,IAAIxB,IAAG,EAAG,EAAEC,GAAGxoC,QAAQ,CAAC,IAAI4H,EAAE4gC,GAAG,GAAG,GAAG,OAAO5gC,EAAEshC,UAAU,CAAmB,QAAlBthC,EAAE2hC,GAAG3hC,EAAEshC,aAAqBd,GAAGxgC,GAAG,MAAM,IAAIC,EAAEgiC,GAAGjiC,EAAE4/B,aAAa5/B,EAAEigC,iBAAiBjgC,EAAE2Y,UAAU3Y,EAAE6/B,aAAa,OAAO5/B,EAAED,EAAEshC,UAAUrhC,EAAE2gC,GAAGwB,QAAQ,OAAOvB,IAAImB,GAAGnB,MAAMA,GAAG,MAAM,OAAOC,IAAIkB,GAAGlB,MAAMA,GAAG,MAAM,OAAOC,IAAIiB,GAAGjB,MAAMA,GAAG,MAAMC,GAAGj+B,QAAQm/B,IAAIjB,GAAGl+B,QAAQm/B,IAAI,SAASG,GAAGriC,EAAEC,GAAGD,EAAEshC,YAAYrhC,IAAID,EAAEshC,UAAU,KAAKX,KAAKA,IAAG,EAAGxR,EAAEmT,0BAA0BnT,EAAEoT,wBAAwBJ,MACze,SAASK,GAAGxiC,GAAG,SAASC,EAAEA,GAAG,OAAOoiC,GAAGpiC,EAAED,GAAG,GAAG,EAAE4gC,GAAGxoC,OAAO,CAACiqC,GAAGzB,GAAG,GAAG5gC,GAAG,IAAI,IAAI2Z,EAAE,EAAEA,EAAEinB,GAAGxoC,OAAOuhB,IAAI,CAAC,IAAI9I,EAAE+vB,GAAGjnB,GAAG9I,EAAEywB,YAAYthC,IAAI6Q,EAAEywB,UAAU,OAA+F,IAAxF,OAAOT,IAAIwB,GAAGxB,GAAG7gC,GAAG,OAAO8gC,IAAIuB,GAAGvB,GAAG9gC,GAAG,OAAO+gC,IAAIsB,GAAGtB,GAAG/gC,GAAGghC,GAAGj+B,QAAQ9C,GAAGghC,GAAGl+B,QAAQ9C,GAAO0Z,EAAE,EAAEA,EAAEunB,GAAG9oC,OAAOuhB,KAAI9I,EAAEqwB,GAAGvnB,IAAK2nB,YAAYthC,IAAI6Q,EAAEywB,UAAU,MAAM,KAAK,EAAEJ,GAAG9oC,QAAiB,QAARuhB,EAAEunB,GAAG,IAAYI,WAAYM,GAAGjoB,GAAG,OAAOA,EAAE2nB,WAAWJ,GAAGkB,QAC/X,IAAIK,GAAG,GAAGC,GAAG,IAAI5E,IAAI6E,GAAG,IAAI7E,IAAI8E,GAAG,CAAC,QAAQ,QAAQrF,GAAG,eAAeC,GAAG,qBAAqBC,GAAG,iBAAiB,UAAU,UAAU,iBAAiB,iBAAiB,iBAAiB,iBAAiB,UAAU,UAAU,YAAY,YAAY,QAAQ,QAAQ,QAAQ,QAAQ,oBAAoB,oBAAoB,OAAO,OAAO,aAAa,aAAa,iBAAiB,iBAAiB,YAAY,YAAY,qBAAqB,qBAAqB,UAAU,UAAU,WAAW,WAAW,UACpf,UAAU,UAAU,UAAU,UAAU,UAAU,aAAa,aAAaC,GAAG,gBAAgB,UAAU,WAAW,SAASmF,GAAG7iC,EAAEC,GAAG,IAAI,IAAI0Z,EAAE,EAAEA,EAAE3Z,EAAE5H,OAAOuhB,GAAG,EAAE,CAAC,IAAI9I,EAAE7Q,EAAE2Z,GAAGjY,EAAE1B,EAAE2Z,EAAE,GAAGoX,EAAE,MAAMrvB,EAAE,GAAGgN,cAAchN,EAAET,MAAM,IAAI8vB,EAAE,CAAC2E,wBAAwB,CAACoN,QAAQ/R,EAAEgS,SAAShS,EAAE,WAAW+E,aAAa,CAACjlB,GAAGmyB,cAAc/iC,GAAG0iC,GAAGx1B,IAAI0D,EAAE5Q,GAAGyiC,GAAGv1B,IAAI0D,EAAEkgB,GAAG0R,GAAG/gC,GAAGqvB,GACzV8R,GAAG,6iBAA6iB5jC,MAAM,KAAK,GAC3jB4jC,GAAG,oRAAoR5jC,MAAM,KAAK,GAAG4jC,GAAGD,GAAG,GAAG,IAAI,IAAIK,GAAG,qFAAqFhkC,MAAM,KAAKikC,GAAG,EAAEA,GAAGD,GAAG7qC,OAAO8qC,KAAKP,GAAGx1B,IAAI81B,GAAGC,IAAI,GAC9b,IAAIC,GAAGhU,EAAEiU,8BAA8BC,GAAGlU,EAAE0S,yBAAyByB,IAAG,EAAG,SAASvT,GAAE/vB,EAAEC,GAAGsgC,GAAGtgC,EAAED,GAAE,GAAI,SAASugC,GAAGvgC,EAAEC,EAAE0Z,GAAG,IAAI9I,EAAE8xB,GAAG92B,IAAI5L,GAAG,YAAO,IAAS4Q,EAAE,EAAEA,GAAG,KAAK,EAAEA,EAAE0yB,GAAG/zB,KAAK,KAAKvP,EAAE,EAAED,GAAG,MAAM,KAAK,EAAE6Q,EAAE2yB,GAAGh0B,KAAK,KAAKvP,EAAE,EAAED,GAAG,MAAM,QAAQ6Q,EAAE/C,GAAG0B,KAAK,KAAKvP,EAAE,EAAED,GAAG2Z,EAAE3Z,EAAEkG,iBAAiBjG,EAAE4Q,GAAE,GAAI7Q,EAAEkG,iBAAiBjG,EAAE4Q,GAAE,GAAI,SAAS0yB,GAAGvjC,EAAEC,EAAE0Z,EAAE9I,GAAG+lB,GAAIF,IAAK,IAAIh1B,EAAEoM,GAAGijB,EAAE6F,EAAGA,GAAG,EAAG,IAAIH,EAAG/0B,EAAE1B,EAAEC,EAAE0Z,EAAE9I,GAAf,SAA2B+lB,EAAG7F,IAAI+F,KAAM,SAAS0M,GAAGxjC,EAAEC,EAAE0Z,EAAE9I,GAAGwyB,GAAGF,GAAGr1B,GAAG0B,KAAK,KAAKxP,EAAEC,EAAE0Z,EAAE9I,IACpc,SAAS/C,GAAG9N,EAAEC,EAAE0Z,EAAE9I,GAAG,GAAGyyB,GAAG,GAAG,EAAE1C,GAAGxoC,SAAS,EAAE+oC,GAAGrgC,QAAQd,GAAGA,EAAEqhC,GAAG,KAAKrhC,EAAEC,EAAE0Z,EAAE9I,GAAG+vB,GAAGn+B,KAAKzC,OAAO,CAAC,IAAI0B,EAAEugC,GAAGjiC,EAAEC,EAAE0Z,EAAE9I,GAAG,GAAG,OAAOnP,EAAE6/B,GAAGvhC,EAAE6Q,QAAQ,IAAI,EAAEswB,GAAGrgC,QAAQd,GAAGA,EAAEqhC,GAAG3/B,EAAE1B,EAAEC,EAAE0Z,EAAE9I,GAAG+vB,GAAGn+B,KAAKzC,QAAQ,IAT9L,SAAYA,EAAEC,EAAE0Z,EAAE9I,EAAEnP,GAAG,OAAOzB,GAAG,IAAK,QAAQ,OAAO4gC,GAAGa,GAAGb,GAAG7gC,EAAEC,EAAE0Z,EAAE9I,EAAEnP,IAAG,EAAG,IAAK,YAAY,OAAOo/B,GAAGY,GAAGZ,GAAG9gC,EAAEC,EAAE0Z,EAAE9I,EAAEnP,IAAG,EAAG,IAAK,YAAY,OAAOq/B,GAAGW,GAAGX,GAAG/gC,EAAEC,EAAE0Z,EAAE9I,EAAEnP,IAAG,EAAG,IAAK,cAAc,IAAIqvB,EAAErvB,EAAE+/B,UAAkD,OAAxCT,GAAG7zB,IAAI4jB,EAAE2Q,GAAGV,GAAGn1B,IAAIklB,IAAI,KAAK/wB,EAAEC,EAAE0Z,EAAE9I,EAAEnP,KAAU,EAAG,IAAK,oBAAoB,OAAOqvB,EAAErvB,EAAE+/B,UAAUR,GAAG9zB,IAAI4jB,EAAE2Q,GAAGT,GAAGp1B,IAAIklB,IAAI,KAAK/wB,EAAEC,EAAE0Z,EAAE9I,EAAEnP,KAAI,EAAG,OAAM,EAS7J+hC,CAAG/hC,EAAE1B,EAAEC,EAAE0Z,EAAE9I,GAAG,CAAC0wB,GAAGvhC,EAAE6Q,GAAG7Q,EAAEggC,GAAGhgC,EAAE6Q,EAAE,KAAK5Q,GAAG,IAAI82B,EAAGmJ,GAAGlgC,GAAV,QAAqB2/B,GAAG3/B,MAClQ,SAASiiC,GAAGjiC,EAAEC,EAAE0Z,EAAE9I,GAAmB,GAAG,QAAX8I,EAAEymB,GAAVzmB,EAAE0lB,GAAGxuB,KAAuB,CAAC,IAAInP,EAAEs8B,GAAGrkB,GAAG,GAAG,OAAOjY,EAAEiY,EAAE,SAAS,CAAC,IAAIoX,EAAErvB,EAAE83B,IAAI,GAAG,KAAKzI,EAAE,CAAS,GAAG,QAAXpX,EAAEwkB,GAAGz8B,IAAe,OAAOiY,EAAEA,EAAE,UAAU,GAAG,IAAIoX,EAAE,CAAC,GAAGrvB,EAAE20B,UAAU0L,QAAQ,OAAO,IAAIrgC,EAAE83B,IAAI93B,EAAE20B,UAAU8J,cAAc,KAAKxmB,EAAE,UAAUjY,IAAIiY,IAAIA,EAAE,OAAO3Z,EAAEggC,GAAGhgC,EAAE6Q,EAAE8I,EAAE1Z,GAAG,IAAI82B,EAAGmJ,GAAGlgC,GAAV,QAAqB2/B,GAAG3/B,GAAG,OAAO,KACpT,IAAI0jC,GAAG,CAACC,yBAAwB,EAAGC,mBAAkB,EAAGC,kBAAiB,EAAGC,kBAAiB,EAAGC,SAAQ,EAAGC,cAAa,EAAGC,iBAAgB,EAAGC,aAAY,EAAGC,SAAQ,EAAGC,MAAK,EAAGC,UAAS,EAAGC,cAAa,EAAGC,YAAW,EAAGC,cAAa,EAAGC,WAAU,EAAGC,UAAS,EAAGC,SAAQ,EAAGC,YAAW,EAAGC,aAAY,EAAGC,cAAa,EAAGC,YAAW,EAAGC,eAAc,EAAGC,gBAAe,EAAGC,iBAAgB,EAAGC,YAAW,EAAGC,WAAU,EAAGC,YAAW,EAAGC,SAAQ,EAAGC,OAAM,EAAGC,SAAQ,EAAGC,SAAQ,EAAGC,QAAO,EAAGC,QAAO,EAAGC,MAAK,EAAGC,aAAY,EAC1fC,cAAa,EAAGC,aAAY,EAAGC,iBAAgB,EAAGC,kBAAiB,EAAGC,kBAAiB,EAAGC,eAAc,EAAGC,aAAY,GAAIC,GAAG,CAAC,SAAS,KAAK,MAAM,KAA6H,SAASC,GAAGtmC,EAAEC,EAAE0Z,GAAG,OAAO,MAAM1Z,GAAG,mBAAmBA,GAAG,KAAKA,EAAE,GAAG0Z,GAAG,kBAAkB1Z,GAAG,IAAIA,GAAGyjC,GAAGlrC,eAAewH,IAAI0jC,GAAG1jC,IAAI,GAAGC,GAAGqQ,OAAOrQ,EAAE,KAC9Z,SAASsmC,GAAGvmC,EAAEC,GAAa,IAAI,IAAI0Z,KAAlB3Z,EAAEA,EAAExE,MAAmByE,EAAE,GAAGA,EAAEzH,eAAemhB,GAAG,CAAC,IAAI9I,EAAE,IAAI8I,EAAE7Y,QAAQ,MAAMY,EAAE4kC,GAAG3sB,EAAE1Z,EAAE0Z,GAAG9I,GAAG,UAAU8I,IAAIA,EAAE,YAAY9I,EAAE7Q,EAAEwmC,YAAY7sB,EAAEjY,GAAG1B,EAAE2Z,GAAGjY,GADT3J,OAAOyI,KAAKkjC,IAAI3gC,SAAQ,SAAS/C,GAAGqmC,GAAGtjC,SAAQ,SAAS9C,GAAGA,EAAEA,EAAED,EAAE1B,OAAO,GAAGoQ,cAAc1O,EAAEwH,UAAU,GAAGk8B,GAAGzjC,GAAGyjC,GAAG1jC,SACrG,IAAIymC,GAAG9nC,EAAE,CAAC+nC,UAAS,GAAI,CAACC,MAAK,EAAGzwB,MAAK,EAAG0wB,IAAG,EAAGC,KAAI,EAAGC,OAAM,EAAGC,IAAG,EAAGzc,KAAI,EAAG0c,OAAM,EAAGC,QAAO,EAAG3uB,MAAK,EAAG4uB,MAAK,EAAGC,OAAM,EAAG9uC,QAAO,EAAG+uC,OAAM,EAAGC,KAAI,IAClT,SAASC,GAAGtnC,EAAEC,GAAG,GAAGA,EAAE,CAAC,GAAGwmC,GAAGzmC,KAAK,MAAMC,EAAE/G,UAAU,MAAM+G,EAAEw7B,yBAAyB,MAAMt9B,MAAMixB,EAAE,IAAIpvB,EAAE,KAAK,GAAG,MAAMC,EAAEw7B,wBAAwB,CAAC,GAAG,MAAMx7B,EAAE/G,SAAS,MAAMiF,MAAMixB,EAAE,KAAK,GAAK,kBAAkBnvB,EAAEw7B,2BAAyB,WAAWx7B,EAAEw7B,yBAAyB,MAAMt9B,MAAMixB,EAAE,KAAM,GAAG,MAAMnvB,EAAEzE,OAAO,kBAAkByE,EAAEzE,MAAM,MAAM2C,MAAMixB,EAAE,GAAG,MAClW,SAASmY,GAAGvnC,EAAEC,GAAG,IAAI,IAAID,EAAEc,QAAQ,KAAK,MAAM,kBAAkBb,EAAEunC,GAAG,OAAOxnC,GAAG,IAAK,iBAAiB,IAAK,gBAAgB,IAAK,YAAY,IAAK,gBAAgB,IAAK,gBAAgB,IAAK,mBAAmB,IAAK,iBAAiB,IAAK,gBAAgB,OAAM,EAAG,QAAQ,OAAM,GAAI,IAAIynC,GAAG3L,GAAQ,SAAS4L,GAAG1nC,EAAEC,GAAuD,IAAI0Z,EAAEokB,GAA1D/9B,EAAE,IAAIA,EAAE6Y,UAAU,KAAK7Y,EAAE6Y,SAAS7Y,EAAEA,EAAEm7B,eAA0Bl7B,EAAE41B,EAAG51B,GAAG,IAAI,IAAI4Q,EAAE,EAAEA,EAAE5Q,EAAE7H,OAAOyY,IAAIwvB,GAAGpgC,EAAE4Q,GAAG7Q,EAAE2Z,GAAG,SAASguB,MAC5a,SAASC,GAAG5nC,GAAwD,GAAG,qBAAxDA,EAAEA,IAAI,qBAAqBkD,SAASA,cAAS,IAAkC,OAAO,KAAK,IAAI,OAAOlD,EAAE6M,eAAe7M,EAAE+M,KAAK,MAAM9M,GAAG,OAAOD,EAAE+M,MAAM,SAAS86B,GAAG7nC,GAAG,KAAKA,GAAGA,EAAEu8B,YAAYv8B,EAAEA,EAAEu8B,WAAW,OAAOv8B,EAAE,SAAS8nC,GAAG9nC,EAAEC,GAAG,IAAwB4Q,EAApB8I,EAAEkuB,GAAG7nC,GAAO,IAAJA,EAAE,EAAY2Z,GAAG,CAAC,GAAG,IAAIA,EAAEd,SAAS,CAA0B,GAAzBhI,EAAE7Q,EAAE2Z,EAAEkiB,YAAYzjC,OAAU4H,GAAGC,GAAG4Q,GAAG5Q,EAAE,MAAM,CAACotB,KAAK1T,EAAEZ,OAAO9Y,EAAED,GAAGA,EAAE6Q,EAAE7Q,EAAE,CAAC,KAAK2Z,GAAG,CAAC,GAAGA,EAAEouB,YAAY,CAACpuB,EAAEA,EAAEouB,YAAY,MAAM/nC,EAAE2Z,EAAEA,EAAE6lB,WAAW7lB,OAAE,EAAOA,EAAEkuB,GAAGluB,IAC3P,SAASquB,KAAK,IAAI,IAAIhoC,EAAEiD,OAAOhD,EAAE2nC,KAAK3nC,aAAaD,EAAEioC,mBAAmB,CAAC,IAAI,IAAItuB,EAAE,kBAAkB1Z,EAAEioC,cAAcxtC,SAASC,KAAK,MAAMkW,GAAG8I,GAAE,EAAG,IAAGA,EAAyB,MAAM1Z,EAAE2nC,IAA/B5nC,EAAEC,EAAEioC,eAAgChlC,UAAU,OAAOjD,EAC5Y,SAASkoC,GAAGnoC,GAAG,IAAIC,EAAED,GAAGA,EAAEg6B,UAAUh6B,EAAEg6B,SAASn5B,cAAc,OAAOZ,IAAI,UAAUA,IAAI,SAASD,EAAE4a,MAAM,WAAW5a,EAAE4a,MAAM,QAAQ5a,EAAE4a,MAAM,QAAQ5a,EAAE4a,MAAM,aAAa5a,EAAE4a,OAAO,aAAa3a,GAAG,SAASD,EAAEooC,iBAAiB,IAAmCC,GAAG,KAAKC,GAAG,KAAK,SAASC,GAAGvoC,EAAEC,GAAG,OAAOD,GAAG,IAAK,SAAS,IAAK,QAAQ,IAAK,SAAS,IAAK,WAAW,QAAQC,EAAEuoC,UAAU,OAAM,EAC7X,SAASC,GAAGzoC,EAAEC,GAAG,MAAM,aAAaD,GAAG,WAAWA,GAAG,aAAaA,GAAG,kBAAkBC,EAAE/G,UAAU,kBAAkB+G,EAAE/G,UAAU,kBAAkB+G,EAAEw7B,yBAAyB,OAAOx7B,EAAEw7B,yBAAyB,MAAMx7B,EAAEw7B,wBAAwBiN,OAAO,IAAIC,GAAG,oBAAoBz7B,WAAWA,gBAAW,EAAO07B,GAAG,oBAAoB37B,aAAaA,kBAAa,EAAO,SAAS47B,GAAG7oC,GAAG,KAAK,MAAMA,EAAEA,EAAEA,EAAE+nC,YAAY,CAAC,IAAI9nC,EAAED,EAAE6Y,SAAS,GAAG,IAAI5Y,GAAG,IAAIA,EAAE,MAAM,OAAOD,EAClc,SAAS8oC,GAAG9oC,GAAGA,EAAEA,EAAE+oC,gBAAgB,IAAI,IAAI9oC,EAAE,EAAED,GAAG,CAAC,GAAG,IAAIA,EAAE6Y,SAAS,CAAC,IAAIc,EAAE3Z,EAAEqiB,KAAK,GAFgJ,MAE7I1I,GAFoK,OAE5JA,GAFoJ,OAE5IA,EAAO,CAAC,GAAG,IAAI1Z,EAAE,OAAOD,EAAEC,QAF0G,OAEjG0Z,GAAQ1Z,IAAID,EAAEA,EAAE+oC,gBAAgB,OAAO,KAAK,IAAIC,GAAGrkC,KAAKC,SAASC,SAAS,IAAI5D,MAAM,GAAGgoC,GAAG,2BAA2BD,GAAGE,GAAG,wBAAwBF,GAAGG,GAAG,qBAAqBH,GACvT,SAAS5I,GAAGpgC,GAAG,IAAIC,EAAED,EAAEipC,IAAI,GAAGhpC,EAAE,OAAOA,EAAE,IAAI,IAAI0Z,EAAE3Z,EAAEw/B,WAAW7lB,GAAG,CAAC,GAAG1Z,EAAE0Z,EAAEwvB,KAAKxvB,EAAEsvB,IAAI,CAAe,GAAdtvB,EAAE1Z,EAAEg+B,UAAa,OAAOh+B,EAAEu+B,OAAO,OAAO7kB,GAAG,OAAOA,EAAE6kB,MAAM,IAAIx+B,EAAE8oC,GAAG9oC,GAAG,OAAOA,GAAG,CAAC,GAAG2Z,EAAE3Z,EAAEipC,IAAI,OAAOtvB,EAAE3Z,EAAE8oC,GAAG9oC,GAAG,OAAOC,EAAM0Z,GAAJ3Z,EAAE2Z,GAAM6lB,WAAW,OAAO,KAAK,SAASmC,GAAG3hC,GAAkB,QAAfA,EAAEA,EAAEipC,KAAKjpC,EAAEmpC,MAAc,IAAInpC,EAAEw5B,KAAK,IAAIx5B,EAAEw5B,KAAK,KAAKx5B,EAAEw5B,KAAK,IAAIx5B,EAAEw5B,IAAI,KAAKx5B,EAAE,SAASopC,GAAGppC,GAAG,GAAG,IAAIA,EAAEw5B,KAAK,IAAIx5B,EAAEw5B,IAAI,OAAOx5B,EAAEq2B,UAAU,MAAMl4B,MAAMixB,EAAE,KAAM,SAASia,GAAGrpC,GAAG,OAAOA,EAAEkpC,KAAK,KAClb,SAASI,GAAGtpC,GAAG,GAAGA,EAAEA,EAAE65B,aAAa75B,GAAG,IAAIA,EAAEw5B,KAAK,OAAOx5B,GAAI,KAC5D,SAASupC,GAAGvpC,EAAEC,GAAG,IAAI0Z,EAAE3Z,EAAEq2B,UAAU,IAAI1c,EAAE,OAAO,KAAK,IAAI9I,EAAEgkB,EAAGlb,GAAG,IAAI9I,EAAE,OAAO,KAAK8I,EAAE9I,EAAE5Q,GAAGD,EAAE,OAAOC,GAAG,IAAK,UAAU,IAAK,iBAAiB,IAAK,gBAAgB,IAAK,uBAAuB,IAAK,cAAc,IAAK,qBAAqB,IAAK,cAAc,IAAK,qBAAqB,IAAK,YAAY,IAAK,mBAAmB,IAAK,gBAAgB4Q,GAAGA,EAAEiY,YAAqBjY,IAAI,YAAb7Q,EAAEA,EAAE4a,OAAuB,UAAU5a,GAAG,WAAWA,GAAG,aAAaA,IAAIA,GAAG6Q,EAAE,MAAM7Q,EAAE,QAAQA,GAAE,EAAG,GAAGA,EAAE,OAAO,KAAK,GAAG2Z,GAAG,oBAAoBA,EAAE,MAAMxb,MAAMixB,EAAE,IACjgBnvB,SAAS0Z,IAAI,OAAOA,EAAE,SAAS6vB,GAAGxpC,EAAEC,EAAE0Z,IAAM1Z,EAAEspC,GAAGvpC,EAAE2Z,EAAE8vB,eAAe/T,wBAAwBz1B,OAAI0Z,EAAEolB,mBAAmBJ,GAAGhlB,EAAEolB,mBAAmB9+B,GAAG0Z,EAAEqlB,mBAAmBL,GAAGhlB,EAAEqlB,mBAAmBh/B,IAAG,SAAS0pC,GAAG1pC,GAAG,GAAGA,GAAGA,EAAEypC,eAAe/T,wBAAwB,CAAC,IAAI,IAAIz1B,EAAED,EAAE2pC,YAAYhwB,EAAE,GAAG1Z,GAAG0Z,EAAElX,KAAKxC,GAAGA,EAAEqpC,GAAGrpC,GAAG,IAAIA,EAAE0Z,EAAEvhB,OAAO,EAAE6H,KAAKupC,GAAG7vB,EAAE1Z,GAAG,WAAWD,GAAG,IAAIC,EAAE,EAAEA,EAAE0Z,EAAEvhB,OAAO6H,IAAIupC,GAAG7vB,EAAE1Z,GAAG,UAAUD,IACtY,SAAS4pC,GAAG5pC,EAAEC,EAAE0Z,GAAG3Z,GAAG2Z,GAAGA,EAAE8vB,eAAe9T,mBAAmB11B,EAAEspC,GAAGvpC,EAAE2Z,EAAE8vB,eAAe9T,qBAAqBhc,EAAEolB,mBAAmBJ,GAAGhlB,EAAEolB,mBAAmB9+B,GAAG0Z,EAAEqlB,mBAAmBL,GAAGhlB,EAAEqlB,mBAAmBh/B,IAAI,SAAS6pC,GAAG7pC,GAAGA,GAAGA,EAAEypC,eAAe9T,kBAAkBiU,GAAG5pC,EAAE2pC,YAAY,KAAK3pC,GAAG,SAAS8pC,GAAG9pC,GAAG4+B,GAAG5+B,EAAE0pC,IAAI,IAAIK,GAAG,KAAKC,GAAG,KAAKC,GAAG,KACxU,SAASC,KAAK,GAAGD,GAAG,OAAOA,GAAG,IAAIjqC,EAAkB6Q,EAAhB5Q,EAAE+pC,GAAGrwB,EAAE1Z,EAAE7H,OAASsJ,EAAE,UAAUqoC,GAAGA,GAAG9tC,MAAM8tC,GAAGlO,YAAY9K,EAAErvB,EAAEtJ,OAAO,IAAI4H,EAAE,EAAEA,EAAE2Z,GAAG1Z,EAAED,KAAK0B,EAAE1B,GAAGA,KAAK,IAAImkB,EAAExK,EAAE3Z,EAAE,IAAI6Q,EAAE,EAAEA,GAAGsT,GAAGlkB,EAAE0Z,EAAE9I,KAAKnP,EAAEqvB,EAAElgB,GAAGA,KAAK,OAAOo5B,GAAGvoC,EAAET,MAAMjB,EAAE,EAAE6Q,EAAE,EAAEA,OAAE,GAAQ,SAASs5B,KAAK,OAAM,EAAG,SAASC,KAAK,OAAM,EAClQ,SAASla,GAAElwB,EAAEC,EAAE0Z,EAAE9I,GAA4F,IAAI,IAAInP,KAAjG/I,KAAK8wC,eAAezpC,EAAErH,KAAKgxC,YAAY1pC,EAAEtH,KAAKknC,YAAYlmB,EAAE3Z,EAAErH,KAAKmF,YAAYusC,UAAyBrqC,EAAExH,eAAekJ,MAAMzB,EAAED,EAAE0B,IAAI/I,KAAK+I,GAAGzB,EAAE0Z,GAAG,WAAWjY,EAAE/I,KAAKV,OAAO4Y,EAAElY,KAAK+I,GAAGiY,EAAEjY,IAAgI,OAA5H/I,KAAK2xC,oBAAoB,MAAM3wB,EAAE4wB,iBAAiB5wB,EAAE4wB,kBAAiB,IAAK5wB,EAAE6wB,aAAaL,GAAGC,GAAGzxC,KAAKsmC,qBAAqBmL,GAAUzxC,KAGrF,SAAS8xC,GAAGzqC,EAAEC,EAAE0Z,EAAE9I,GAAG,GAAGlY,KAAK+xC,UAAUtyC,OAAO,CAAC,IAAIsJ,EAAE/I,KAAK+xC,UAAU9rC,MAA2B,OAArBjG,KAAKF,KAAKiJ,EAAE1B,EAAEC,EAAE0Z,EAAE9I,GAAUnP,EAAE,OAAO,IAAI/I,KAAKqH,EAAEC,EAAE0Z,EAAE9I,GAC7X,SAAS85B,GAAG3qC,GAAG,KAAKA,aAAarH,MAAM,MAAMwF,MAAMixB,EAAE,MAAMpvB,EAAE4qC,aAAa,GAAGjyC,KAAK+xC,UAAUtyC,QAAQO,KAAK+xC,UAAUjoC,KAAKzC,GAAG,SAAS6qC,GAAG7qC,GAAGA,EAAE0qC,UAAU,GAAG1qC,EAAE8qC,UAAUL,GAAGzqC,EAAEm/B,QAAQwL,GAHlLhsC,EAAEuxB,GAAE33B,UAAU,CAACwlB,eAAe,WAAWplB,KAAK4xC,kBAAiB,EAAG,IAAIvqC,EAAErH,KAAKknC,YAAY7/B,IAAIA,EAAE+d,eAAe/d,EAAE+d,iBAAiB,mBAAmB/d,EAAEwqC,cAAcxqC,EAAEwqC,aAAY,GAAI7xC,KAAK2xC,mBAAmBH,KAAKrsB,gBAAgB,WAAW,IAAI9d,EAAErH,KAAKknC,YAAY7/B,IAAIA,EAAE8d,gBAAgB9d,EAAE8d,kBAAkB,mBAAmB9d,EAAE+qC,eAAe/qC,EAAE+qC,cAAa,GAAIpyC,KAAKsmC,qBAAqBkL,KAAKa,QAAQ,WAAWryC,KAAKumC,aAAaiL,IAAIjL,aAAakL,GAAGQ,WAAW,WAAW,IACpd3qC,EADwdD,EAAErH,KAAKmF,YAAYusC,UACze,IAAIpqC,KAAKD,EAAErH,KAAKsH,GAAG,KAAKtH,KAAKknC,YAAYlnC,KAAKgxC,YAAYhxC,KAAK8wC,eAAe,KAAK9wC,KAAKsmC,qBAAqBtmC,KAAK2xC,mBAAmBF,GAAGzxC,KAAKqmC,mBAAmBrmC,KAAKomC,mBAAmB,QAAQ7O,GAAEma,UAAU,CAACzvB,KAAK,KAAK3iB,OAAO,KAAKg9B,cAAc,WAAW,OAAO,MAAMgW,WAAW,KAAKC,QAAQ,KAAKC,WAAW,KAAKC,UAAU,SAASprC,GAAG,OAAOA,EAAEorC,WAAWxmB,KAAKymB,OAAOd,iBAAiB,KAAKe,UAAU,MAC9Ypb,GAAEqb,OAAO,SAASvrC,GAAG,SAASC,KAAK,SAAS0Z,IAAI,OAAO9I,EAAEnY,MAAMC,KAAKR,WAAW,IAAI0Y,EAAElY,KAAKsH,EAAE1H,UAAUsY,EAAEtY,UAAU,IAAImJ,EAAE,IAAIzB,EAAmH,OAAjHtB,EAAE+C,EAAEiY,EAAEphB,WAAWohB,EAAEphB,UAAUmJ,EAAEiY,EAAEphB,UAAUuF,YAAY6b,EAAEA,EAAE0wB,UAAU1rC,EAAE,GAAGkS,EAAEw5B,UAAUrqC,GAAG2Z,EAAE4xB,OAAO16B,EAAE06B,OAAOV,GAAGlxB,GAAUA,GAAGkxB,GAAG3a,IACvE,IAAIsb,GAAGtb,GAAEqb,OAAO,CAAClpB,KAAK,OAAOopB,GAAGvb,GAAEqb,OAAO,CAAClpB,KAAK,OAAOqpB,GAAG,CAAC,EAAE,GAAG,GAAG,IAAIC,GAAG3V,GAAI,qBAAqB/yB,OAAO2oC,GAAG,KAAK5V,GAAI,iBAAiB9yB,WAAW0oC,GAAG1oC,SAAS2oC,cAClV,IAAIC,GAAG9V,GAAI,cAAc/yB,SAAS2oC,GAAGG,GAAG/V,KAAM2V,IAAIC,IAAI,EAAEA,IAAI,IAAIA,IAAII,GAAGpoB,OAAOE,aAAa,IAAImoB,GAAG,CAACC,YAAY,CAACxW,wBAAwB,CAACoN,QAAQ,gBAAgBC,SAAS,wBAAwBjN,aAAa,CAAC,iBAAiB,WAAW,YAAY,UAAUqW,eAAe,CAACzW,wBAAwB,CAACoN,QAAQ,mBAAmBC,SAAS,2BAA2BjN,aAAa,uDAAuD72B,MAAM,MAAMmtC,iBAAiB,CAAC1W,wBAAwB,CAACoN,QAAQ,qBAC7eC,SAAS,6BAA6BjN,aAAa,yDAAyD72B,MAAM,MAAMotC,kBAAkB,CAAC3W,wBAAwB,CAACoN,QAAQ,sBAAsBC,SAAS,8BAA8BjN,aAAa,0DAA0D72B,MAAM,OAAOqtC,IAAG,EAChU,SAASC,GAAGvsC,EAAEC,GAAG,OAAOD,GAAG,IAAK,QAAQ,OAAO,IAAI0rC,GAAG5qC,QAAQb,EAAEiP,SAAS,IAAK,UAAU,OAAO,MAAMjP,EAAEiP,QAAQ,IAAK,WAAW,IAAK,YAAY,IAAK,OAAO,OAAM,EAAG,QAAQ,OAAM,GAAI,SAAS6T,GAAG/iB,GAAc,MAAM,kBAAjBA,EAAEA,EAAEwsC,SAAkC,SAASxsC,EAAEA,EAAEqiB,KAAK,KAAK,IAAIoqB,IAAG,EAE1Q,IAAIC,GAAG,CAAClX,WAAWyW,GAAG1W,cAAc,SAASv1B,EAAEC,EAAE0Z,EAAE9I,GAAG,IAAInP,EAAE,GAAGiqC,GAAG1rC,EAAE,CAAC,OAAOD,GAAG,IAAK,mBAAmB,IAAI+wB,EAAEkb,GAAGG,iBAAiB,MAAMnsC,EAAE,IAAK,iBAAiB8wB,EAAEkb,GAAGE,eAAe,MAAMlsC,EAAE,IAAK,oBAAoB8wB,EAAEkb,GAAGI,kBAAkB,MAAMpsC,EAAE8wB,OAAE,OAAY0b,GAAGF,GAAGvsC,EAAE2Z,KAAKoX,EAAEkb,GAAGE,gBAAgB,YAAYnsC,GAAG,MAAM2Z,EAAEzK,UAAU6hB,EAAEkb,GAAGG,kBAClL,OADoMrb,GAAGgb,IAAI,OAAOpyB,EAAEgzB,SAASF,IAAI1b,IAAIkb,GAAGG,iBAAiBrb,IAAIkb,GAAGE,gBAAgBM,KAAK/qC,EAAEwoC,OAAYF,GAAG,UAARD,GAAGl5B,GAAkBk5B,GAAG9tC,MAAM8tC,GAAGlO,YAAY4Q,IAAG,IAAK1b,EAAEya,GAAGV,UAAU/Z,EACzf9wB,EAAE0Z,EAAE9I,GAAGnP,EAAEqvB,EAAE1O,KAAK3gB,EAAW,QAARA,EAAEqhB,GAAGpJ,MAAcoX,EAAE1O,KAAK3gB,GAAIooC,GAAG/Y,GAAGrvB,EAAEqvB,GAAGrvB,EAAE,MAAM1B,EAAE8rC,GAHuM,SAAY9rC,EAAEC,GAAG,OAAOD,GAAG,IAAK,iBAAiB,OAAO+iB,GAAG9iB,GAAG,IAAK,WAAW,OAAG,KAAKA,EAAE2sC,MAAa,MAAKN,IAAG,EAAUN,IAAG,IAAK,YAAY,OAAOhsC,EAAEC,EAAEoiB,QAAS2pB,IAAIM,GAAG,KAAKtsC,EAAE,QAAQ,OAAO,MAGhY6sC,CAAG7sC,EAAE2Z,GAF9E,SAAY3Z,EAAEC,GAAG,GAAGwsC,GAAG,MAAM,mBAAmBzsC,IAAI2rC,IAAIY,GAAGvsC,EAAEC,IAAID,EAAEkqC,KAAKD,GAAGD,GAAGD,GAAG,KAAK0C,IAAG,EAAGzsC,GAAG,KAAK,OAAOA,GAAG,IAAK,QAAQ,OAAO,KAAK,IAAK,WAAW,KAAKC,EAAE6sC,SAAS7sC,EAAE8sC,QAAQ9sC,EAAE+sC,UAAU/sC,EAAE6sC,SAAS7sC,EAAE8sC,OAAO,CAAC,GAAG9sC,EAAEgtC,MAAM,EAAEhtC,EAAEgtC,KAAK70C,OAAO,OAAO6H,EAAEgtC,KAAK,GAAGhtC,EAAE2sC,MAAM,OAAOhpB,OAAOE,aAAa7jB,EAAE2sC,OAAO,OAAO,KAAK,IAAK,iBAAiB,OAAOb,IAAI,OAAO9rC,EAAE0sC,OAAO,KAAK1sC,EAAEoiB,KAAK,QAAQ,OAAO,MAEjT6qB,CAAGltC,EAAE2Z,MAAK1Z,EAAEwrC,GAAGX,UAAUmB,GAAGC,YAAYjsC,EAAE0Z,EAAE9I,IAAKwR,KAAKriB,EAAE8pC,GAAG7pC,IAAIA,EAAE,KAAY,OAAOyB,EAAEzB,EAAE,OAAOA,EAAEyB,EAAE,CAACA,EAAEzB,KAAKktC,GAAG,CAACC,OAAM,EAAGC,MAAK,EAAGC,UAAS,EAAG,kBAAiB,EAAGC,OAAM,EAAGC,OAAM,EAAGl7B,QAAO,EAAGm7B,UAAS,EAAGC,OAAM,EAAGvsC,QAAO,EAAGwsC,KAAI,EAAGC,MAAK,EAAGC,MAAK,EAAGvmC,KAAI,EAAGwmC,MAAK,GAAI,SAASC,GAAG/tC,GAAG,IAAIC,EAAED,GAAGA,EAAEg6B,UAAUh6B,EAAEg6B,SAASn5B,cAAc,MAAM,UAAUZ,IAAIktC,GAAGntC,EAAE4a,MAAM,aAAa3a,EAC5b,IAAI+tC,GAAG,CAACC,OAAO,CAACvY,wBAAwB,CAACoN,QAAQ,WAAWC,SAAS,mBAAmBjN,aAAa,8DAA8D72B,MAAM,OAAO,SAASivC,GAAGluC,EAAEC,EAAE0Z,GAA8D,OAA3D3Z,EAAEkwB,GAAE4a,UAAUkD,GAAGC,OAAOjuC,EAAEC,EAAE0Z,IAAKiB,KAAK,SAAS0b,EAAG3c,GAAGmwB,GAAG9pC,GAAUA,EAAE,IAAImuC,GAAG,KAAKC,GAAG,KAAK,SAASC,GAAGruC,GAAGo/B,GAAGp/B,GAAG,SAASsuC,GAAGtuC,GAAe,GAAGs6B,GAAT8O,GAAGppC,IAAY,OAAOA,EAAE,SAASuuC,GAAGvuC,EAAEC,GAAG,GAAG,WAAWD,EAAE,OAAOC,EAAE,IAAIuuC,IAAG,EAC9Y,SAASC,KAAKN,KAAKA,GAAGO,YAAY,mBAAmBC,IAAIP,GAAGD,GAAG,MAAM,SAASQ,GAAG3uC,GAAG,GAAG,UAAUA,EAAEw3B,cAAc8W,GAAGF,IAAI,GAAGpuC,EAAEkuC,GAAGE,GAAGpuC,EAAEq/B,GAAGr/B,IAAI42B,EAAGwI,GAAGp/B,OAAO,CAAC42B,GAAG,EAAG,IAAIJ,EAAG6X,GAAGruC,GAAV,QAAqB42B,GAAG,EAAGE,MAAO,SAAS8X,GAAG5uC,EAAEC,EAAE0Z,GAAG,UAAU3Z,GAAGyuC,KAAUL,GAAGz0B,GAARw0B,GAAGluC,GAAU4uC,YAAY,mBAAmBF,KAAK,SAAS3uC,GAAGyuC,KAAK,SAASK,GAAG9uC,GAAG,GAAG,oBAAoBA,GAAG,UAAUA,GAAG,YAAYA,EAAE,OAAOsuC,GAAGF,IAAI,SAASW,GAAG/uC,EAAEC,GAAG,GAAG,UAAUD,EAAE,OAAOsuC,GAAGruC,GAAG,SAAS+uC,GAAGhvC,EAAEC,GAAG,GAAG,UAAUD,GAAG,WAAWA,EAAE,OAAOsuC,GAAGruC,GAD/E+1B,IAAKwY,GAAG/O,GAAG,YAAYv8B,SAAS2oC,cAAc,EAAE3oC,SAAS2oC,eAE1c,IAAIoD,GAAG,CAACzZ,WAAWwY,GAAGkB,uBAAuBV,GAAGjZ,cAAc,SAASv1B,EAAEC,EAAE0Z,EAAE9I,GAAG,IAAInP,EAAEzB,EAAEmpC,GAAGnpC,GAAGgD,OAAO8tB,EAAErvB,EAAEs4B,UAAUt4B,EAAEs4B,SAASn5B,cAAc,GAAG,WAAWkwB,GAAG,UAAUA,GAAG,SAASrvB,EAAEkZ,KAAK,IAAIuJ,EAAEoqB,QAAQ,GAAGR,GAAGrsC,GAAG,GAAG8sC,GAAGrqB,EAAE6qB,OAAO,CAAC7qB,EAAE2qB,GAAG,IAAI/7B,EAAE67B,QAAQ7d,EAAErvB,EAAEs4B,WAAW,UAAUjJ,EAAElwB,gBAAgB,aAAaa,EAAEkZ,MAAM,UAAUlZ,EAAEkZ,QAAQuJ,EAAE4qB,IAAI,GAAG5qB,IAAIA,EAAEA,EAAEnkB,EAAEC,IAAI,OAAOiuC,GAAG/pB,EAAExK,EAAE9I,GAAGkC,GAAGA,EAAE/S,EAAE0B,EAAEzB,GAAG,SAASD,IAAIA,EAAE0B,EAAEg5B,gBAAgB16B,EAAE86B,YAAY,WAAWp5B,EAAEkZ,MAAMqgB,GAAGv5B,EAAE,SAASA,EAAEzF,SAASkzC,GAAGjf,GAAEqb,OAAO,CAAC6D,KAAK,KAAK5C,OAAO,OACrf6C,GAAG,CAACC,IAAI,SAASC,QAAQ,UAAUC,KAAK,UAAUC,MAAM,YAAY,SAASC,GAAG1vC,GAAG,IAAIC,EAAEtH,KAAKknC,YAAY,OAAO5/B,EAAE0vC,iBAAiB1vC,EAAE0vC,iBAAiB3vC,MAAIA,EAAEqvC,GAAGrvC,OAAMC,EAAED,GAAM,SAAS4vC,KAAK,OAAOF,GACnM,IAAIG,GAAG,EAAEC,GAAG,EAAEC,IAAG,EAAGC,IAAG,EAAGC,GAAGd,GAAG5D,OAAO,CAAC2E,QAAQ,KAAKC,QAAQ,KAAKC,QAAQ,KAAKC,QAAQ,KAAKC,MAAM,KAAKC,MAAM,KAAKzD,QAAQ,KAAK0D,SAAS,KAAKzD,OAAO,KAAKC,QAAQ,KAAK2C,iBAAiBC,GAAGa,OAAO,KAAKC,QAAQ,KAAKC,cAAc,SAAS3wC,GAAG,OAAOA,EAAE2wC,gBAAgB3wC,EAAE4wC,cAAc5wC,EAAEs/B,WAAWt/B,EAAE6wC,UAAU7wC,EAAE4wC,cAAcE,UAAU,SAAS9wC,GAAG,GAAG,cAAcA,EAAE,OAAOA,EAAE8wC,UAAU,IAAI7wC,EAAE4vC,GAAgB,OAAbA,GAAG7vC,EAAEkwC,QAAeH,GAAG,cAAc/vC,EAAE4a,KAAK5a,EAAEkwC,QAAQjwC,EAAE,GAAG8vC,IAAG,EAAG,IAAIgB,UAAU,SAAS/wC,GAAG,GAAG,cAAcA,EAAE,OAAOA,EAAE+wC,UAC3f,IAAI9wC,EAAE6vC,GAAgB,OAAbA,GAAG9vC,EAAEmwC,QAAeH,GAAG,cAAchwC,EAAE4a,KAAK5a,EAAEmwC,QAAQlwC,EAAE,GAAG+vC,IAAG,EAAG,MAAMgB,GAAGf,GAAG1E,OAAO,CAAC9J,UAAU,KAAK3yB,MAAM,KAAK4B,OAAO,KAAKugC,SAAS,KAAKC,mBAAmB,KAAKC,MAAM,KAAKC,MAAM,KAAKC,MAAM,KAAKC,YAAY,KAAKC,UAAU,OAAOC,GAAG,CAACC,WAAW,CAAC9b,iBAAiB,eAAeG,aAAa,CAAC,WAAW,cAAc4b,WAAW,CAAC/b,iBAAiB,eAAeG,aAAa,CAAC,WAAW,cAAc6b,aAAa,CAAChc,iBAAiB,iBAAiBG,aAAa,CAAC,aAAa,gBAAgB8b,aAAa,CAACjc,iBAAiB,iBACjhBG,aAAa,CAAC,aAAa,iBAAiB+b,GAAG,CAACrc,WAAWgc,GAAGjc,cAAc,SAASv1B,EAAEC,EAAE0Z,EAAE9I,EAAEnP,GAAG,IAAIqvB,EAAE,cAAc/wB,GAAG,gBAAgBA,EAAEmkB,EAAE,aAAankB,GAAG,eAAeA,EAAE,GAAG+wB,GAAG,KAAO,GAAFrvB,KAAQiY,EAAEg3B,eAAeh3B,EAAEi3B,eAAezsB,IAAI4M,EAAE,OAAO,MAAKA,EAAElgB,EAAE5N,SAAS4N,EAAEA,GAAGkgB,EAAElgB,EAAEsqB,eAAepK,EAAE+gB,aAAa/gB,EAAEghB,aAAa9uC,OAAUkhB,IAAMA,EAAElkB,EAAgD,QAA9CA,GAAGA,EAAE0Z,EAAEg3B,eAAeh3B,EAAEk3B,WAAWzQ,GAAGngC,GAAG,QAA8BA,IAAT+9B,GAAG/9B,IAAa,IAAIA,EAAEu5B,KAAK,IAAIv5B,EAAEu5B,OAAIv5B,EAAE,OAAWkkB,EAAE,KAAK,GAAGA,IAAIlkB,EAAE,OAAO,KAAK,GAAG,aAAaD,GAAG,cACzeA,EAAG,IAAItB,EAAEuxC,GAAOlhB,EAAEyiB,GAAGE,WAAetwB,EAAEowB,GAAGC,WAAexiB,EAAE,YAAgB,eAAejvB,GAAG,gBAAgBA,IAAEtB,EAAEsyC,GAAGjiB,EAAEyiB,GAAGI,aAAaxwB,EAAEowB,GAAGG,aAAa1iB,EAAE,WAAgM,GAAtLjvB,EAAE,MAAMmkB,EAAE4M,EAAEqY,GAAGjlB,GAAG4M,EAAE,MAAM9wB,EAAE8wB,EAAEqY,GAAGnpC,IAAG8uB,EAAErwB,EAAEosC,UAAU/b,EAAE5K,EAAExK,EAAE9I,IAAK+J,KAAKqU,EAAE,QAAQF,EAAE92B,OAAO+H,EAAE+uB,EAAE4hB,cAAc5f,GAAEpX,EAAEjb,EAAEosC,UAAU1pB,EAAEnhB,EAAE0Z,EAAE9I,IAAK+J,KAAKqU,EAAE,QAAQtV,EAAE1hB,OAAO84B,EAAEpX,EAAEg3B,cAAc3wC,EAAMivB,EAAEhvB,GAAN4Q,EAAEsT,IAAY8K,EAAEjvB,EAAE,CAAa,IAARohB,EAAE6N,EAAE9K,EAAE,EAAMnkB,EAAhBtB,EAAEmS,EAAkB7Q,EAAEA,EAAEspC,GAAGtpC,GAAGmkB,IAAQ,IAAJnkB,EAAE,EAAMC,EAAEmhB,EAAEnhB,EAAEA,EAAEqpC,GAAGrpC,GAAGD,IAAI,KAAK,EAAEmkB,EAAEnkB,GAAGtB,EAAE4qC,GAAG5qC,GAAGylB,IAAI,KAAK,EAAEnkB,EAAEmkB,GAAG/C,EAAEkoB,GAAGloB,GAAGphB,IAAI,KAAKmkB,KAAK,CAAC,GAAGzlB,IAAI0iB,GAAG1iB,IAAI0iB,EAAE6c,UAAU,MAAMj+B,EAC3ftB,EAAE4qC,GAAG5qC,GAAG0iB,EAAEkoB,GAAGloB,GAAG1iB,EAAE,UAAUA,EAAE,KAAS,IAAJ0iB,EAAE1iB,EAAMA,EAAE,GAAGmS,GAAGA,IAAIuQ,IAAqB,QAAjB+C,EAAEtT,EAAEotB,YAAuB9Z,IAAI/C,IAAQ1iB,EAAE+D,KAAKoO,GAAGA,EAAEy4B,GAAGz4B,GAAG,IAAIA,EAAE,GAAGoe,GAAGA,IAAI7N,IAAqB,QAAjB+C,EAAE8K,EAAEgP,YAAuB9Z,IAAI/C,IAAQvQ,EAAEpO,KAAKwsB,GAAGA,EAAEqa,GAAGra,GAAG,IAAIA,EAAE,EAAEA,EAAEvwB,EAAEtG,OAAO62B,IAAI2a,GAAGlrC,EAAEuwB,GAAG,UAAUF,GAAG,IAAIE,EAAEpe,EAAEzY,OAAO,EAAE62B,KAAK2a,GAAG/4B,EAAEoe,GAAG,WAAWtV,GAAG,OAAO,KAAO,GAAFjY,GAAM,CAACqtB,GAAG,CAACA,EAAEpV,KAAqE,IAAIq4B,GAAG,oBAAoBj6C,OAAOyvC,GAAGzvC,OAAOyvC,GAA5G,SAAYxnC,EAAEC,GAAG,OAAOD,IAAIC,IAAI,IAAID,GAAG,EAAEA,IAAI,EAAEC,IAAID,IAAIA,GAAGC,IAAIA,GAAoDgyC,GAAGl6C,OAAOQ,UAAUC,eAC7b,SAAS05C,GAAGlyC,EAAEC,GAAG,GAAG+xC,GAAGhyC,EAAEC,GAAG,OAAM,EAAG,GAAG,kBAAkBD,GAAG,OAAOA,GAAG,kBAAkBC,GAAG,OAAOA,EAAE,OAAM,EAAG,IAAI0Z,EAAE5hB,OAAOyI,KAAKR,GAAG6Q,EAAE9Y,OAAOyI,KAAKP,GAAG,GAAG0Z,EAAEvhB,SAASyY,EAAEzY,OAAO,OAAM,EAAG,IAAIyY,EAAE,EAAEA,EAAE8I,EAAEvhB,OAAOyY,IAAI,IAAIohC,GAAGx5C,KAAKwH,EAAE0Z,EAAE9I,MAAMmhC,GAAGhyC,EAAE2Z,EAAE9I,IAAI5Q,EAAE0Z,EAAE9I,KAAK,OAAM,EAAG,OAAM,EACpQ,IAAIshC,GAAGnc,GAAI,iBAAiB9yB,UAAU,IAAIA,SAAS2oC,aAAauG,GAAG,CAACriC,OAAO,CAAC2lB,wBAAwB,CAACoN,QAAQ,WAAWC,SAAS,mBAAmBjN,aAAa,iFAAiF72B,MAAM,OAAOozC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,IAAG,EAC1R,SAASC,GAAGzyC,EAAEC,GAAG,IAAI0Z,EAAE1Z,EAAEgD,SAAShD,EAAEA,EAAEiD,SAAS,IAAIjD,EAAE4Y,SAAS5Y,EAAEA,EAAEk7B,cAAc,OAAGqX,IAAI,MAAMH,IAAIA,KAAKzK,GAAGjuB,GAAU,MAAU,mBAALA,EAAE04B,KAAyBlK,GAAGxuB,GAAGA,EAAE,CAAC0L,MAAM1L,EAAE+4B,eAAe58B,IAAI6D,EAAEg5B,cAAuFh5B,EAAE,CAACi5B,YAA3Ej5B,GAAGA,EAAEwhB,eAAexhB,EAAEwhB,cAAc2W,aAAa7uC,QAAQ4vC,gBAA+BD,WAAWE,aAAan5B,EAAEm5B,aAAaC,UAAUp5B,EAAEo5B,UAAUC,YAAYr5B,EAAEq5B,aAAqBT,IAAIL,GAAGK,GAAG54B,GAAG,MAAM44B,GAAG54B,GAAE3Z,EAAEkwB,GAAE4a,UAAUsH,GAAGriC,OAAOuiC,GAAGtyC,EAAEC,IAAK2a,KAAK,SAAS5a,EAAE/H,OAAOo6C,GAAGvI,GAAG9pC,GAAGA,IAC1d,IAAIizC,GAAG,CAACzd,WAAW4c,GAAG7c,cAAc,SAASv1B,EAAEC,EAAE0Z,EAAE9I,EAAEnP,EAAEqvB,GAAmE,KAAKA,IAArErvB,EAAEqvB,IAAIlgB,EAAE5N,SAAS4N,EAAEA,EAAE3N,SAAS,IAAI2N,EAAEgI,SAAShI,EAAEA,EAAEsqB,iBAA0B,CAACn7B,EAAE,CAAC0B,EAAEq8B,GAAGr8B,GAAGqvB,EAAE8E,EAAGqd,SAAS,IAAI,IAAI/uB,EAAE,EAAEA,EAAE4M,EAAE34B,OAAO+rB,IAAI,IAAIziB,EAAE4+B,IAAIvP,EAAE5M,IAAI,CAACziB,GAAE,EAAG,MAAM1B,EAAE0B,GAAE,EAAGqvB,GAAGrvB,EAAE,GAAGqvB,EAAE,OAAO,KAAsB,OAAjBrvB,EAAEzB,EAAEmpC,GAAGnpC,GAAGgD,OAAcjD,GAAG,IAAK,SAAW+tC,GAAGrsC,IAAI,SAASA,EAAE0mC,mBAAgBiK,GAAG3wC,EAAE4wC,GAAGryC,EAAEsyC,GAAG,MAAK,MAAM,IAAK,OAAOA,GAAGD,GAAGD,GAAG,KAAK,MAAM,IAAK,YAAYG,IAAG,EAAG,MAAM,IAAK,cAAc,IAAK,UAAU,IAAK,UAAU,OAAOA,IAAG,EAAGC,GAAG94B,EAAE9I,GAAG,IAAK,kBAAkB,GAAGshC,GAAG,MACxf,IAAK,UAAU,IAAK,QAAQ,OAAOM,GAAG94B,EAAE9I,GAAG,OAAO,OAAOsiC,GAAGjjB,GAAEqb,OAAO,CAAC6H,cAAc,KAAKC,YAAY,KAAKC,cAAc,OAAOC,GAAGrjB,GAAEqb,OAAO,CAACiI,cAAc,SAASxzC,GAAG,MAAM,kBAAkBA,EAAEA,EAAEwzC,cAAcvwC,OAAOuwC,iBAAiBC,GAAGtE,GAAG5D,OAAO,CAACoF,cAAc,OAAO,SAAS+C,GAAG1zC,GAAG,IAAIC,EAAED,EAAEkP,QAA+E,MAAvE,aAAalP,EAAgB,KAAbA,EAAEA,EAAE2zC,WAAgB,KAAK1zC,IAAID,EAAE,IAAKA,EAAEC,EAAE,KAAKD,IAAIA,EAAE,IAAW,IAAIA,GAAG,KAAKA,EAAEA,EAAE,EACxY,IAAI4zC,GAAG,CAACC,IAAI,SAASC,SAAS,IAAIC,KAAK,YAAYC,GAAG,UAAUC,MAAM,aAAaC,KAAK,YAAYC,IAAI,SAASC,IAAI,KAAKvpC,KAAK,cAAcwpC,KAAK,cAAcC,OAAO,aAAaC,gBAAgB,gBAAgBC,GAAG,CAACC,EAAE,YAAYC,EAAE,MAAMC,GAAG,QAAQC,GAAG,QAAQC,GAAG,QAAQC,GAAG,UAAUC,GAAG,MAAMC,GAAG,QAAQC,GAAG,WAAWC,GAAG,SAASC,GAAG,IAAIC,GAAG,SAASC,GAAG,WAAWC,GAAG,MAAMC,GAAG,OAAOC,GAAG,YAAYC,GAAG,UAAUC,GAAG,aAAaC,GAAG,YAAYC,GAAG,SAASC,GAAG,SAASC,IAAI,KAAKC,IAAI,KAAKC,IAAI,KAAKC,IAAI,KAChfC,IAAI,KAAKC,IAAI,KAAKC,IAAI,KAAKC,IAAI,KAAKC,IAAI,KAAKC,IAAI,MAAMC,IAAI,MAAMC,IAAI,MAAMC,IAAI,UAAUC,IAAI,aAAaC,IAAI,QAAQC,GAAG1H,GAAG5D,OAAO,CAACjzC,IAAI,SAAS0H,GAAG,GAAGA,EAAE1H,IAAI,CAAC,IAAI2H,EAAE2zC,GAAG5zC,EAAE1H,MAAM0H,EAAE1H,IAAI,GAAG,iBAAiB2H,EAAE,OAAOA,EAAE,MAAM,aAAaD,EAAE4a,KAAc,MAAR5a,EAAE0zC,GAAG1zC,IAAU,QAAQ4jB,OAAOE,aAAa9jB,GAAI,YAAYA,EAAE4a,MAAM,UAAU5a,EAAE4a,KAAK45B,GAAGx0C,EAAEkP,UAAU,eAAe,IAAIxU,SAAS,KAAKoyC,QAAQ,KAAK0D,SAAS,KAAKzD,OAAO,KAAKC,QAAQ,KAAKrrB,OAAO,KAAKgrB,OAAO,KAAKgD,iBAAiBC,GAAG+D,SAAS,SAAS3zC,GAAG,MAAM,aAC9eA,EAAE4a,KAAK84B,GAAG1zC,GAAG,GAAGkP,QAAQ,SAASlP,GAAG,MAAM,YAAYA,EAAE4a,MAAM,UAAU5a,EAAE4a,KAAK5a,EAAEkP,QAAQ,GAAG09B,MAAM,SAAS5sC,GAAG,MAAM,aAAaA,EAAE4a,KAAK84B,GAAG1zC,GAAG,YAAYA,EAAE4a,MAAM,UAAU5a,EAAE4a,KAAK5a,EAAEkP,QAAQ,KAAK4nC,GAAG7G,GAAG1E,OAAO,CAACwL,aAAa,OAAOC,GAAG7H,GAAG5D,OAAO,CAAC0L,QAAQ,KAAKC,cAAc,KAAKC,eAAe,KAAKpK,OAAO,KAAKC,QAAQ,KAAKF,QAAQ,KAAK0D,SAAS,KAAKb,iBAAiBC,KAAKwH,GAAGlnB,GAAEqb,OAAO,CAAC/T,aAAa,KAAK6b,YAAY,KAAKC,cAAc,OAAO+D,GAAGpH,GAAG1E,OAAO,CAACxd,OAAO,SAAS/tB,GAAG,MAAM,WAAWA,EAAEA,EAAE+tB,OAAO,gBAClf/tB,GAAGA,EAAEs3C,YAAY,GAAGC,OAAO,SAASv3C,GAAG,MAAM,WAAWA,EAAEA,EAAEu3C,OAAO,gBAAgBv3C,GAAGA,EAAEw3C,YAAY,eAAex3C,GAAGA,EAAEy3C,WAAW,GAAGC,OAAO,KAAKC,UAAU,OAAOC,GAAG,CAACpiB,WAAWiN,GAAGlN,cAAc,SAASv1B,EAAEC,EAAE0Z,EAAE9I,GAAG,IAAInP,EAAEghC,GAAG72B,IAAI7L,GAAG,IAAI0B,EAAE,OAAO,KAAK,OAAO1B,GAAG,IAAK,WAAW,GAAG,IAAI0zC,GAAG/5B,GAAG,OAAO,KAAK,IAAK,UAAU,IAAK,QAAQ3Z,EAAE62C,GAAG,MAAM,IAAK,OAAO,IAAK,QAAQ72C,EAAEyzC,GAAG,MAAM,IAAK,QAAQ,GAAG,IAAI95B,EAAE82B,OAAO,OAAO,KAAK,IAAK,WAAW,IAAK,WAAW,IAAK,YAAY,IAAK,YAAY,IAAK,UAAU,IAAK,WAAW,IAAK,YAAY,IAAK,cAAczwC,EACniBiwC,GAAG,MAAM,IAAK,OAAO,IAAK,UAAU,IAAK,YAAY,IAAK,WAAW,IAAK,YAAY,IAAK,WAAW,IAAK,YAAY,IAAK,OAAOjwC,EAAE82C,GAAG,MAAM,IAAK,cAAc,IAAK,WAAW,IAAK,YAAY,IAAK,aAAa92C,EAAEg3C,GAAG,MAAM,KAAKzZ,GAAG,KAAKC,GAAG,KAAKC,GAAGz9B,EAAEmzC,GAAG,MAAM,KAAKzV,GAAG19B,EAAEo3C,GAAG,MAAM,IAAK,SAASp3C,EAAEmvC,GAAG,MAAM,IAAK,QAAQnvC,EAAEq3C,GAAG,MAAM,IAAK,OAAO,IAAK,MAAM,IAAK,QAAQr3C,EAAEuzC,GAAG,MAAM,IAAK,oBAAoB,IAAK,qBAAqB,IAAK,gBAAgB,IAAK,cAAc,IAAK,cAAc,IAAK,aAAa,IAAK,cAAc,IAAK,YAAYvzC,EACzhBgxC,GAAG,MAAM,QAAQhxC,EAAEkwB,GAA+B,OAAN4Z,GAAvB7pC,EAAED,EAAE8qC,UAAUppC,EAAEzB,EAAE0Z,EAAE9I,IAAgB5Q,IAAI,GAAGk1B,EAAG,MAAMh3B,MAAMixB,EAAE,MAAM+F,EAAGj1B,MAAM3H,UAAU0I,MAAMxI,KAAK,0HAA0HwG,MAAM,MAAMo2B,IAAeR,EAAGwU,GAAGvU,EAAT6M,GAAe5M,EAAGqU,GAAGrT,EAAG,CAAC8hB,kBAAkBD,GAAGE,sBAAsBjG,GAAGkG,kBAAkB9I,GAAG+I,kBAAkB/E,GAAGgF,uBAAuBvL,KAAK,IAAIwL,GAAG,GAAGC,IAAI,EAAE,SAAShoB,GAAEnwB,GAAG,EAAEm4C,KAAKn4C,EAAEywB,QAAQynB,GAAGC,IAAID,GAAGC,IAAI,KAAKA,MACtd,SAAS7nB,GAAEtwB,EAAEC,GAAGk4C,KAAKD,GAAGC,IAAIn4C,EAAEywB,QAAQzwB,EAAEywB,QAAQxwB,EAAE,IAAIm4C,GAAG,GAAG5nB,GAAE,CAACC,QAAQ2nB,IAAI1nB,GAAE,CAACD,SAAQ,GAAI4nB,GAAGD,GAAG,SAASE,GAAGt4C,EAAEC,GAAG,IAAI0Z,EAAE3Z,EAAE4a,KAAKhG,aAAa,IAAI+E,EAAE,OAAOy+B,GAAG,IAAIvnC,EAAE7Q,EAAEq2B,UAAU,GAAGxlB,GAAGA,EAAE0nC,8CAA8Ct4C,EAAE,OAAO4Q,EAAE2nC,0CAA0C,IAASznB,EAALrvB,EAAE,GAAK,IAAIqvB,KAAKpX,EAAEjY,EAAEqvB,GAAG9wB,EAAE8wB,GAAoH,OAAjHlgB,KAAI7Q,EAAEA,EAAEq2B,WAAYkiB,4CAA4Ct4C,EAAED,EAAEw4C,0CAA0C92C,GAAUA,EAAE,SAASivB,GAAE3wB,GAAyB,OAAO,QAA7BA,EAAEA,EAAEkU,yBAAmC,IAASlU,EAChf,SAASy4C,KAAKtoB,GAAEO,IAAGP,GAAEK,IAAG,SAASkoB,GAAG14C,EAAEC,EAAE0Z,GAAG,GAAG6W,GAAEC,UAAU2nB,GAAG,MAAMj6C,MAAMixB,EAAE,MAAMkB,GAAEE,GAAEvwB,GAAGqwB,GAAEI,GAAE/W,GAAG,SAASg/B,GAAG34C,EAAEC,EAAE0Z,GAAG,IAAI9I,EAAE7Q,EAAEq2B,UAAgC,GAAtBr2B,EAAEC,EAAEiU,kBAAqB,oBAAoBrD,EAAE+C,gBAAgB,OAAO+F,EAAwB,IAAI,IAAIjY,KAA9BmP,EAAEA,EAAE+C,kBAAiC,KAAKlS,KAAK1B,GAAG,MAAM7B,MAAMixB,EAAE,IAAIkK,GAAGr5B,IAAI,UAAUyB,IAAI,OAAO/C,EAAE,GAAGgb,EAAE,GAAG9I,GAAG,SAAS+nC,GAAG54C,GAAyG,OAAtGA,GAAGA,EAAEA,EAAEq2B,YAAYr2B,EAAE64C,2CAA2CT,GAAGC,GAAG7nB,GAAEC,QAAQH,GAAEE,GAAExwB,GAAGswB,GAAEI,GAAEA,GAAED,UAAe,EACpb,SAASqoB,GAAG94C,EAAEC,EAAE0Z,GAAG,IAAI9I,EAAE7Q,EAAEq2B,UAAU,IAAIxlB,EAAE,MAAM1S,MAAMixB,EAAE,MAAMzV,GAAG3Z,EAAE24C,GAAG34C,EAAEC,EAAEo4C,IAAIxnC,EAAEgoC,0CAA0C74C,EAAEmwB,GAAEO,IAAGP,GAAEK,IAAGF,GAAEE,GAAExwB,IAAImwB,GAAEO,IAAGJ,GAAEI,GAAE/W,GACxJ,IAAIo/B,GAAG5pB,EAAE0S,yBAAyBmX,GAAG7pB,EAAEmT,0BAA0B2W,GAAG9pB,EAAE+pB,wBAAwBC,GAAGhqB,EAAEiqB,sBAAsBC,GAAGlqB,EAAEmqB,aAAaC,GAAGpqB,EAAEqqB,iCAAiCC,GAAGtqB,EAAEuqB,2BAA2BC,GAAGxqB,EAAEiU,8BAA8BwW,GAAGzqB,EAAEoT,wBAAwBsX,GAAG1qB,EAAE2qB,qBAAqBC,GAAG5qB,EAAE6qB,sBAAsBC,GAAG,GAAGC,GAAG/qB,EAAEgrB,qBAAqBC,QAAG,IAASjB,GAAGA,GAAG,aAAakB,GAAG,KAAKC,GAAG,KAAKC,IAAG,EAAGC,GAAGnB,KAAKoB,GAAG,IAAID,GAAGnB,GAAG,WAAW,OAAOA,KAAKmB,IACvc,SAASE,KAAK,OAAOnB,MAAM,KAAKE,GAAG,OAAO,GAAG,KAAKE,GAAG,OAAO,GAAG,KAAKC,GAAG,OAAO,GAAG,KAAKC,GAAG,OAAO,GAAG,KAAKE,GAAG,OAAO,GAAG,QAAQ,MAAM57C,MAAMixB,EAAE,OAAQ,SAASurB,GAAG36C,GAAG,OAAOA,GAAG,KAAK,GAAG,OAAOy5C,GAAG,KAAK,GAAG,OAAOE,GAAG,KAAK,GAAG,OAAOC,GAAG,KAAK,GAAG,OAAOC,GAAG,KAAK,GAAG,OAAOE,GAAG,QAAQ,MAAM57C,MAAMixB,EAAE,OAAQ,SAASwrB,GAAG56C,EAAEC,GAAW,OAARD,EAAE26C,GAAG36C,GAAU+4C,GAAG/4C,EAAEC,GAAG,SAAS46C,GAAG76C,EAAEC,EAAE0Z,GAAW,OAAR3Z,EAAE26C,GAAG36C,GAAUg5C,GAAGh5C,EAAEC,EAAE0Z,GAAG,SAASmhC,GAAG96C,GAA8C,OAA3C,OAAOq6C,IAAIA,GAAG,CAACr6C,GAAGs6C,GAAGtB,GAAGS,GAAGsB,KAAKV,GAAG53C,KAAKzC,GAAUi6C,GAAG,SAASe,KAAK,GAAG,OAAOV,GAAG,CAAC,IAAIt6C,EAAEs6C,GAAGA,GAAG,KAAKrB,GAAGj5C,GAAG+6C,KAC/e,SAASA,KAAK,IAAIR,IAAI,OAAOF,GAAG,CAACE,IAAG,EAAG,IAAIv6C,EAAE,EAAE,IAAI,IAAIC,EAAEo6C,GAAGO,GAAG,IAAG,WAAW,KAAK56C,EAAEC,EAAE7H,OAAO4H,IAAI,CAAC,IAAI2Z,EAAE1Z,EAAED,GAAG,GAAG2Z,EAAEA,GAAE,SAAU,OAAOA,OAAM0gC,GAAG,KAAK,MAAM1gC,GAAG,MAAM,OAAO0gC,KAAKA,GAAGA,GAAGp5C,MAAMjB,EAAE,IAAIg5C,GAAGS,GAAGuB,IAAIrhC,EAA3J,QAAsK4gC,IAAG,IAAK,SAASU,GAAGj7C,EAAEC,EAAE0Z,GAAS,OAAO,YAAsC,IAAxB,WAAW3Z,EAAEC,EAAE,KAA1C0Z,GAAG,IAA6C,IAAMA,EAAE,SAASuhC,GAAGl7C,EAAEC,GAAG,GAAGD,GAAGA,EAAEwS,aAAyC,IAAI,IAAImH,KAAnC1Z,EAAEtB,EAAE,GAAGsB,GAAGD,EAAEA,EAAEwS,kBAA4B,IAASvS,EAAE0Z,KAAK1Z,EAAE0Z,GAAG3Z,EAAE2Z,IAAI,OAAO1Z,EAAE,IAAIk7C,GAAG,CAAC1qB,QAAQ,MAAM2qB,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAK,SAASC,KAAKD,GAAGD,GAAGD,GAAG,KACle,SAASI,GAAGx7C,GAAG,IAAIC,EAAEk7C,GAAG1qB,QAAQN,GAAEgrB,IAAIn7C,EAAE4a,KAAKuY,SAASH,cAAc/yB,EAAE,SAASw7C,GAAGz7C,EAAEC,GAAG,KAAK,OAAOD,GAAG,CAAC,IAAI2Z,EAAE3Z,EAAEi+B,UAAU,GAAGj+B,EAAE07C,oBAAoBz7C,EAAED,EAAE07C,oBAAoBz7C,EAAE,OAAO0Z,GAAGA,EAAE+hC,oBAAoBz7C,IAAI0Z,EAAE+hC,oBAAoBz7C,OAAQ,MAAG,OAAO0Z,GAAGA,EAAE+hC,oBAAoBz7C,GAA+B,MAA7B0Z,EAAE+hC,oBAAoBz7C,EAAaD,EAAEA,EAAE65B,QAAQ,SAAS8hB,GAAG37C,EAAEC,GAAGm7C,GAAGp7C,EAAEs7C,GAAGD,GAAG,KAAsB,QAAjBr7C,EAAEA,EAAE81B,eAAuB,OAAO91B,EAAE47C,eAAe57C,EAAE67C,gBAAgB57C,IAAI67C,IAAG,GAAI97C,EAAE47C,aAAa,MAClc,SAASG,GAAG/7C,EAAEC,GAAG,GAAGq7C,KAAKt7C,IAAG,IAAKC,GAAG,IAAIA,EAAmG,GAA7F,kBAAkBA,GAAG,aAAaA,IAAEq7C,GAAGt7C,EAAEC,EAAE,YAAWA,EAAE,CAACxF,QAAQuF,EAAEwU,aAAavU,EAAEuX,KAAK,MAAS,OAAO6jC,GAAG,CAAC,GAAG,OAAOD,GAAG,MAAMj9C,MAAMixB,EAAE,MAAMisB,GAAGp7C,EAAEm7C,GAAGtlB,aAAa,CAAC+lB,eAAe,EAAED,aAAa37C,EAAE+7C,WAAW,WAAWX,GAAGA,GAAG7jC,KAAKvX,EAAE,OAAOD,EAAEgzB,cAAc,IAAIipB,IAAG,EAAG,SAASC,GAAGl8C,GAAGA,EAAEm8C,YAAY,CAACC,UAAUp8C,EAAEo+B,cAAcie,UAAU,KAAKC,OAAO,CAACC,QAAQ,MAAMC,QAAQ,MACzZ,SAASC,GAAGz8C,EAAEC,GAAGD,EAAEA,EAAEm8C,YAAYl8C,EAAEk8C,cAAcn8C,IAAIC,EAAEk8C,YAAY,CAACC,UAAUp8C,EAAEo8C,UAAUC,UAAUr8C,EAAEq8C,UAAUC,OAAOt8C,EAAEs8C,OAAOE,QAAQx8C,EAAEw8C,UAAU,SAASE,GAAG18C,EAAEC,GAAoF,OAAjFD,EAAE,CAAC67C,eAAe77C,EAAE28C,eAAe18C,EAAEu5B,IAAI,EAAEojB,QAAQ,KAAKv6C,SAAS,KAAKmV,KAAK,OAAeA,KAAKxX,EAAE,SAAS68C,GAAG78C,EAAEC,GAAmB,GAAG,QAAnBD,EAAEA,EAAEm8C,aAAwB,CAAY,IAAIxiC,GAAf3Z,EAAEA,EAAEs8C,QAAeC,QAAQ,OAAO5iC,EAAE1Z,EAAEuX,KAAKvX,GAAGA,EAAEuX,KAAKmC,EAAEnC,KAAKmC,EAAEnC,KAAKvX,GAAGD,EAAEu8C,QAAQt8C,GACpY,SAAS68C,GAAG98C,EAAEC,GAAG,IAAI0Z,EAAE3Z,EAAEi+B,UAAU,OAAOtkB,GAAG8iC,GAAG9iC,EAAE3Z,GAAiC,QAAd2Z,GAAhB3Z,EAAEA,EAAEm8C,aAAgBE,YAAoBr8C,EAAEq8C,UAAUp8C,EAAEuX,KAAKvX,EAAEA,EAAEuX,KAAKvX,IAAIA,EAAEuX,KAAKmC,EAAEnC,KAAKmC,EAAEnC,KAAKvX,GAClJ,SAAS88C,GAAG/8C,EAAEC,EAAE0Z,EAAE9I,GAAG,IAAInP,EAAE1B,EAAEm8C,YAAYF,IAAG,EAAG,IAAIlrB,EAAErvB,EAAE26C,UAAUl4B,EAAEziB,EAAE46C,OAAOC,QAAQ,GAAG,OAAOp4B,EAAE,CAAC,GAAG,OAAO4M,EAAE,CAAC,IAAIhe,EAAEge,EAAEvZ,KAAKuZ,EAAEvZ,KAAK2M,EAAE3M,KAAK2M,EAAE3M,KAAKzE,EAAEge,EAAE5M,EAAEziB,EAAE46C,OAAOC,QAAQ,KAAmB,QAAdxpC,EAAE/S,EAAEi+B,aAAqC,QAAhBlrB,EAAEA,EAAEopC,eAAuBppC,EAAEspC,UAAUl4B,IAAI,GAAG,OAAO4M,EAAE,CAAChe,EAAEge,EAAEvZ,KAAK,IAAI9Y,EAAEgD,EAAE06C,UAAUrtB,EAAE,EAAE3N,EAAE,KAAK6N,EAAE,KAAKjb,EAAE,KAAK,GAAG,OAAOjB,EAAW,IAAR,IAAIwc,EAAExc,IAAI,CAAoB,IAAnBoR,EAAEoL,EAAEssB,gBAAoBhrC,EAAE,CAAC,IAAImsC,EAAG,CAACnB,eAAetsB,EAAEssB,eAAec,eAAeptB,EAAEotB,eAAenjB,IAAIjK,EAAEiK,IAAIojB,QAAQrtB,EAAEqtB,QAAQv6C,SAASktB,EAAEltB,SAASmV,KAAK,MAAM,OAAOxD,GAAGib,EAAEjb,EACnfgpC,EAAG57B,EAAE1iB,GAAGsV,EAAEA,EAAEwD,KAAKwlC,EAAG74B,EAAE4K,IAAIA,EAAE5K,OAAO,CAAC,OAAOnQ,IAAIA,EAAEA,EAAEwD,KAAK,CAACqkC,eAAe,WAAWc,eAAeptB,EAAEotB,eAAenjB,IAAIjK,EAAEiK,IAAIojB,QAAQrtB,EAAEqtB,QAAQv6C,SAASktB,EAAEltB,SAASmV,KAAK,OAAOylC,GAAG94B,EAAEoL,EAAEotB,gBAAgB38C,EAAE,CAAC,IAAI0vB,EAAE1vB,EAAE4Z,EAAE2V,EAAW,OAATpL,EAAElkB,EAAE+8C,EAAGrjC,EAASC,EAAE4f,KAAK,KAAK,EAAc,GAAG,oBAAf9J,EAAE9V,EAAEgjC,SAAiC,CAACl+C,EAAEgxB,EAAEj3B,KAAKukD,EAAGt+C,EAAEylB,GAAG,MAAMnkB,EAAEtB,EAAEgxB,EAAE,MAAM1vB,EAAE,KAAK,EAAE0vB,EAAEwO,WAAuB,KAAbxO,EAAEwO,UAAgB,GAAG,KAAK,EAAuD,GAAG,QAA5C/Z,EAAE,oBAAduL,EAAE9V,EAAEgjC,SAAgCltB,EAAEj3B,KAAKukD,EAAGt+C,EAAEylB,GAAGuL,SAAe,IAASvL,EAAE,MAAMnkB,EAAEtB,EAAEC,EAAE,GAAGD,EAAEylB,GAAG,MAAMnkB,EAAE,KAAK,EAAEi8C,IAAG,GAAI,OAAO1sB,EAAEltB,WAC5erC,EAAEk+B,WAAW,GAAe,QAAZ/Z,EAAEziB,EAAE86C,SAAiB96C,EAAE86C,QAAQ,CAACjtB,GAAGpL,EAAE1hB,KAAK8sB,IAAa,GAAG,QAAZA,EAAEA,EAAE/X,OAAkB+X,IAAIxc,EAAE,IAAsB,QAAnBoR,EAAEziB,EAAE46C,OAAOC,SAAiB,MAAWhtB,EAAEwB,EAAEvZ,KAAK2M,EAAE3M,KAAK2M,EAAE3M,KAAKzE,EAAErR,EAAE26C,UAAUtrB,EAAE5M,EAAEziB,EAAE46C,OAAOC,QAAQ,MAAc,OAAOvoC,EAAEoN,EAAE1iB,EAAEsV,EAAEwD,KAAKyX,EAAEvtB,EAAE06C,UAAUh7B,EAAE1f,EAAE26C,UAAUroC,EAAEkpC,GAAGnuB,GAAG/uB,EAAE67C,eAAe9sB,EAAE/uB,EAAEo+B,cAAc1/B,GACxS,SAASy+C,GAAGn9C,EAAEC,EAAE0Z,GAA8B,GAA3B3Z,EAAEC,EAAEu8C,QAAQv8C,EAAEu8C,QAAQ,KAAQ,OAAOx8C,EAAE,IAAIC,EAAE,EAAEA,EAAED,EAAE5H,OAAO6H,IAAI,CAAC,IAAI4Q,EAAE7Q,EAAEC,GAAGyB,EAAEmP,EAAExO,SAAS,GAAG,OAAOX,EAAE,CAAyB,GAAxBmP,EAAExO,SAAS,KAAKwO,EAAEnP,EAAEA,EAAEiY,EAAK,oBAAoB9I,EAAE,MAAM1S,MAAMixB,EAAE,IAAIve,IAAIA,EAAEpY,KAAKiJ,KAAK,IAAI07C,GAAGvlB,EAAGxF,wBAAwBgrB,IAAI,IAAIvrB,EAAGj5B,WAAWm3B,KAAK,SAASstB,GAAGt9C,EAAEC,EAAE0Z,EAAE9I,GAA8B8I,EAAE,QAAXA,EAAEA,EAAE9I,EAAtB5Q,EAAED,EAAEo+B,sBAAmC,IAASzkB,EAAE1Z,EAAEtB,EAAE,GAAGsB,EAAE0Z,GAAG3Z,EAAEo+B,cAAczkB,EAAE,IAAI3Z,EAAE67C,iBAAiB77C,EAAEm8C,YAAYC,UAAUziC,GAC3Z,IAAI4jC,GAAG,CAACjgC,UAAU,SAAStd,GAAG,SAAOA,EAAEA,EAAEw9C,sBAAqBxf,GAAGh+B,KAAKA,GAAM6vB,gBAAgB,SAAS7vB,EAAEC,EAAE0Z,GAAG3Z,EAAEA,EAAEw9C,oBAAoB,IAAI3sC,EAAE4sC,KAAK/7C,EAAE07C,GAAG9qB,UAAqB5wB,EAAEg7C,GAAd7rC,EAAE6sC,GAAG7sC,EAAE7Q,EAAE0B,GAAUA,IAAKk7C,QAAQ38C,OAAE,IAAS0Z,GAAG,OAAOA,IAAIjY,EAAEW,SAASsX,GAAGkjC,GAAG78C,EAAE0B,GAAGi8C,GAAG39C,EAAE6Q,IAAI+e,oBAAoB,SAAS5vB,EAAEC,EAAE0Z,GAAG3Z,EAAEA,EAAEw9C,oBAAoB,IAAI3sC,EAAE4sC,KAAK/7C,EAAE07C,GAAG9qB,UAAqB5wB,EAAEg7C,GAAd7rC,EAAE6sC,GAAG7sC,EAAE7Q,EAAE0B,GAAUA,IAAK83B,IAAI,EAAE93B,EAAEk7C,QAAQ38C,OAAE,IAAS0Z,GAAG,OAAOA,IAAIjY,EAAEW,SAASsX,GAAGkjC,GAAG78C,EAAE0B,GAAGi8C,GAAG39C,EAAE6Q,IAAI8e,mBAAmB,SAAS3vB,EAAEC,GAAGD,EAAEA,EAAEw9C,oBAAoB,IAAI7jC,EAAE8jC,KAAK5sC,EAAEusC,GAAG9qB,UACvezhB,EAAE6rC,GAAd/iC,EAAE+jC,GAAG/jC,EAAE3Z,EAAE6Q,GAAUA,IAAK2oB,IAAI,OAAE,IAASv5B,GAAG,OAAOA,IAAI4Q,EAAExO,SAASpC,GAAG48C,GAAG78C,EAAE6Q,GAAG8sC,GAAG39C,EAAE2Z,KAAK,SAASikC,GAAG59C,EAAEC,EAAE0Z,EAAE9I,EAAEnP,EAAEqvB,EAAE5M,GAAiB,MAAM,oBAApBnkB,EAAEA,EAAEq2B,WAAsCwnB,sBAAsB79C,EAAE69C,sBAAsBhtC,EAAEkgB,EAAE5M,IAAGlkB,EAAE1H,YAAW0H,EAAE1H,UAAUg4B,wBAAsB2hB,GAAGv4B,EAAE9I,KAAKqhC,GAAGxwC,EAAEqvB,IAC7Q,SAAS+sB,GAAG99C,EAAEC,EAAE0Z,GAAG,IAAI9I,GAAE,EAAGnP,EAAE02C,GAAOrnB,EAAE9wB,EAAEqa,YAA8W,MAAlW,kBAAkByW,GAAG,OAAOA,EAAEA,EAAEgrB,GAAGhrB,IAAIrvB,EAAEivB,GAAE1wB,GAAGo4C,GAAG7nB,GAAEC,QAAyBM,GAAGlgB,EAAE,QAAtBA,EAAE5Q,EAAE2U,oBAA4B,IAAS/D,GAAGynC,GAAGt4C,EAAE0B,GAAG02C,IAAIn4C,EAAE,IAAIA,EAAE0Z,EAAEoX,GAAG/wB,EAAEo+B,cAAc,OAAOn+B,EAAEoB,YAAO,IAASpB,EAAEoB,MAAMpB,EAAEoB,MAAM,KAAKpB,EAAEgwB,QAAQstB,GAAGv9C,EAAEq2B,UAAUp2B,EAAEA,EAAEu9C,oBAAoBx9C,EAAE6Q,KAAI7Q,EAAEA,EAAEq2B,WAAYkiB,4CAA4C72C,EAAE1B,EAAEw4C,0CAA0CznB,GAAU9wB,EAC9Z,SAAS89C,GAAG/9C,EAAEC,EAAE0Z,EAAE9I,GAAG7Q,EAAEC,EAAEoB,MAAM,oBAAoBpB,EAAE4T,2BAA2B5T,EAAE4T,0BAA0B8F,EAAE9I,GAAG,oBAAoB5Q,EAAE+9C,kCAAkC/9C,EAAE+9C,iCAAiCrkC,EAAE9I,GAAG5Q,EAAEoB,QAAQrB,GAAGu9C,GAAG3tB,oBAAoB3vB,EAAEA,EAAEoB,MAAM,MAC/P,SAAS48C,GAAGj+C,EAAEC,EAAE0Z,EAAE9I,GAAG,IAAInP,EAAE1B,EAAEq2B,UAAU30B,EAAEvI,MAAMwgB,EAAEjY,EAAEL,MAAMrB,EAAEo+B,cAAc18B,EAAEsuB,KAAKqtB,GAAGnB,GAAGl8C,GAAG,IAAI+wB,EAAE9wB,EAAEqa,YAAY,kBAAkByW,GAAG,OAAOA,EAAErvB,EAAEjH,QAAQshD,GAAGhrB,IAAIA,EAAEJ,GAAE1wB,GAAGo4C,GAAG7nB,GAAEC,QAAQ/uB,EAAEjH,QAAQ69C,GAAGt4C,EAAE+wB,IAAIgsB,GAAG/8C,EAAE2Z,EAAEjY,EAAEmP,GAAGnP,EAAEL,MAAMrB,EAAEo+B,cAA2C,oBAA7BrN,EAAE9wB,EAAEya,4BAAiD4iC,GAAGt9C,EAAEC,EAAE8wB,EAAEpX,GAAGjY,EAAEL,MAAMrB,EAAEo+B,eAAe,oBAAoBn+B,EAAEya,0BAA0B,oBAAoBhZ,EAAEw8C,yBAAyB,oBAAoBx8C,EAAEy8C,2BAA2B,oBAAoBz8C,EAAE08C,qBACten+C,EAAEyB,EAAEL,MAAM,oBAAoBK,EAAE08C,oBAAoB18C,EAAE08C,qBAAqB,oBAAoB18C,EAAEy8C,2BAA2Bz8C,EAAEy8C,4BAA4Bl+C,IAAIyB,EAAEL,OAAOk8C,GAAG3tB,oBAAoBluB,EAAEA,EAAEL,MAAM,MAAM07C,GAAG/8C,EAAE2Z,EAAEjY,EAAEmP,GAAGnP,EAAEL,MAAMrB,EAAEo+B,eAAe,oBAAoB18B,EAAEgT,oBAAoB1U,EAAEk+B,WAAW,GAAG,IAAImgB,GAAGn+C,MAAMC,QAC3T,SAASm+C,GAAGt+C,EAAEC,EAAE0Z,GAAW,GAAG,QAAX3Z,EAAE2Z,EAAE0N,MAAiB,oBAAoBrnB,GAAG,kBAAkBA,EAAE,CAAC,GAAG2Z,EAAEsX,OAAO,CAAY,GAAXtX,EAAEA,EAAEsX,OAAY,CAAC,GAAG,IAAItX,EAAE6f,IAAI,MAAMr7B,MAAMixB,EAAE,MAAM,IAAIve,EAAE8I,EAAE0c,UAAU,IAAIxlB,EAAE,MAAM1S,MAAMixB,EAAE,IAAIpvB,IAAI,IAAI0B,EAAE,GAAG1B,EAAE,OAAG,OAAOC,GAAG,OAAOA,EAAEonB,KAAK,oBAAoBpnB,EAAEonB,KAAKpnB,EAAEonB,IAAIk3B,aAAa78C,EAASzB,EAAEonB,MAAIpnB,EAAE,SAASD,GAAG,IAAIC,EAAE4Q,EAAEmf,KAAK/vB,IAAIo9C,KAAKp9C,EAAE4Q,EAAEmf,KAAK,IAAI,OAAOhwB,SAASC,EAAEyB,GAAGzB,EAAEyB,GAAG1B,IAAKu+C,WAAW78C,EAASzB,GAAE,GAAG,kBAAkBD,EAAE,MAAM7B,MAAMixB,EAAE,MAAM,IAAIzV,EAAEsX,OAAO,MAAM9yB,MAAMixB,EAAE,IAAIpvB,IAAK,OAAOA,EAChe,SAASw+C,GAAGx+C,EAAEC,GAAG,GAAG,aAAaD,EAAE4a,KAAK,MAAMzc,MAAMixB,EAAE,GAAG,oBAAoBr3B,OAAOQ,UAAUsM,SAASpM,KAAKwH,GAAG,qBAAqBlI,OAAOyI,KAAKP,GAAGL,KAAK,MAAM,IAAIK,EAAE,KACpK,SAASw+C,GAAGz+C,GAAG,SAASC,EAAEA,EAAE0Z,GAAG,GAAG3Z,EAAE,CAAC,IAAI6Q,EAAE5Q,EAAEy+C,WAAW,OAAO7tC,GAAGA,EAAE8tC,WAAWhlC,EAAE1Z,EAAEy+C,WAAW/kC,GAAG1Z,EAAE2+C,YAAY3+C,EAAEy+C,WAAW/kC,EAAEA,EAAEglC,WAAW,KAAKhlC,EAAEukB,UAAU,GAAG,SAASvkB,EAAEA,EAAE9I,GAAG,IAAI7Q,EAAE,OAAO,KAAK,KAAK,OAAO6Q,GAAG5Q,EAAE0Z,EAAE9I,GAAGA,EAAEA,EAAE4tB,QAAQ,OAAO,KAAK,SAAS5tB,EAAE7Q,EAAEC,GAAG,IAAID,EAAE,IAAI89B,IAAI,OAAO79B,GAAG,OAAOA,EAAE3H,IAAI0H,EAAEmN,IAAIlN,EAAE3H,IAAI2H,GAAGD,EAAEmN,IAAIlN,EAAExB,MAAMwB,GAAGA,EAAEA,EAAEw+B,QAAQ,OAAOz+B,EAAE,SAAS0B,EAAE1B,EAAEC,GAAsC,OAAnCD,EAAE6+C,GAAG7+C,EAAEC,IAAKxB,MAAM,EAAEuB,EAAEy+B,QAAQ,KAAYz+B,EAAE,SAAS+wB,EAAE9wB,EAAE0Z,EAAE9I,GAAa,OAAV5Q,EAAExB,MAAMoS,EAAM7Q,EAA4B,QAAjB6Q,EAAE5Q,EAAEg+B,YAA6BptB,EAAEA,EAAEpS,OAAQkb,GAAG1Z,EAAEi+B,UAClf,EAAEvkB,GAAG9I,GAAE5Q,EAAEi+B,UAAU,EAASvkB,GADkaA,EACha,SAASwK,EAAElkB,GAA0C,OAAvCD,GAAG,OAAOC,EAAEg+B,YAAYh+B,EAAEi+B,UAAU,GAAUj+B,EAAE,SAAS8S,EAAE/S,EAAEC,EAAE0Z,EAAE9I,GAAG,OAAG,OAAO5Q,GAAG,IAAIA,EAAEu5B,MAAWv5B,EAAE6+C,GAAGnlC,EAAE3Z,EAAE++C,KAAKluC,IAAKgpB,OAAO75B,EAAEC,KAAEA,EAAEyB,EAAEzB,EAAE0Z,IAAKkgB,OAAO75B,EAASC,GAAE,SAASvB,EAAEsB,EAAEC,EAAE0Z,EAAE9I,GAAG,OAAG,OAAO5Q,GAAGA,EAAE++C,cAAcrlC,EAAEiB,OAAY/J,EAAEnP,EAAEzB,EAAE0Z,EAAExgB,QAASkuB,IAAIi3B,GAAGt+C,EAAEC,EAAE0Z,GAAG9I,EAAEgpB,OAAO75B,EAAE6Q,KAAEA,EAAEouC,GAAGtlC,EAAEiB,KAAKjB,EAAErhB,IAAIqhB,EAAExgB,MAAM,KAAK6G,EAAE++C,KAAKluC,IAAKwW,IAAIi3B,GAAGt+C,EAAEC,EAAE0Z,GAAG9I,EAAEgpB,OAAO75B,EAAS6Q,GAAE,SAASke,EAAE/uB,EAAEC,EAAE0Z,EAAE9I,GAAG,OAAG,OAAO5Q,GAAG,IAAIA,EAAEu5B,KAAKv5B,EAAEo2B,UAAU8J,gBAAgBxmB,EAAEwmB,eAAelgC,EAAEo2B,UAAU6oB,iBACtevlC,EAAEulC,iBAAsBj/C,EAAEk/C,GAAGxlC,EAAE3Z,EAAE++C,KAAKluC,IAAKgpB,OAAO75B,EAAEC,KAAEA,EAAEyB,EAAEzB,EAAE0Z,EAAEzgB,UAAU,KAAM2gC,OAAO75B,EAASC,GAAE,SAASmhB,EAAEphB,EAAEC,EAAE0Z,EAAE9I,EAAEkgB,GAAG,OAAG,OAAO9wB,GAAG,IAAIA,EAAEu5B,MAAWv5B,EAAEm/C,GAAGzlC,EAAE3Z,EAAE++C,KAAKluC,EAAEkgB,IAAK8I,OAAO75B,EAAEC,KAAEA,EAAEyB,EAAEzB,EAAE0Z,IAAKkgB,OAAO75B,EAASC,GAAE,SAASgvB,EAAEjvB,EAAEC,EAAE0Z,GAAG,GAAG,kBAAkB1Z,GAAG,kBAAkBA,EAAE,OAAOA,EAAE6+C,GAAG,GAAG7+C,EAAED,EAAE++C,KAAKplC,IAAKkgB,OAAO75B,EAAEC,EAAE,GAAG,kBAAkBA,GAAG,OAAOA,EAAE,CAAC,OAAOA,EAAE+wB,UAAU,KAAKsH,GAAG,OAAO3e,EAAEslC,GAAGh/C,EAAE2a,KAAK3a,EAAE3H,IAAI2H,EAAE9G,MAAM,KAAK6G,EAAE++C,KAAKplC,IAAK0N,IAAIi3B,GAAGt+C,EAAE,KAAKC,GAAG0Z,EAAEkgB,OAAO75B,EAAE2Z,EAAE,KAAK4e,GAAG,OAAOt4B,EAAEk/C,GAAGl/C,EAAED,EAAE++C,KAAKplC,IAAKkgB,OAAO75B,EAAEC,EAAE,GAAGo+C,GAAGp+C,IACvfo5B,GAAGp5B,GAAG,OAAOA,EAAEm/C,GAAGn/C,EAAED,EAAE++C,KAAKplC,EAAE,OAAQkgB,OAAO75B,EAAEC,EAAEu+C,GAAGx+C,EAAEC,GAAG,OAAO,KAAK,SAAS+T,EAAEhU,EAAEC,EAAE0Z,EAAE9I,GAAG,IAAInP,EAAE,OAAOzB,EAAEA,EAAE3H,IAAI,KAAK,GAAG,kBAAkBqhB,GAAG,kBAAkBA,EAAE,OAAO,OAAOjY,EAAE,KAAKqR,EAAE/S,EAAEC,EAAE,GAAG0Z,EAAE9I,GAAG,GAAG,kBAAkB8I,GAAG,OAAOA,EAAE,CAAC,OAAOA,EAAEqX,UAAU,KAAKsH,GAAG,OAAO3e,EAAErhB,MAAMoJ,EAAEiY,EAAEiB,OAAO4d,GAAGpX,EAAEphB,EAAEC,EAAE0Z,EAAExgB,MAAMD,SAAS2X,EAAEnP,GAAGhD,EAAEsB,EAAEC,EAAE0Z,EAAE9I,GAAG,KAAK,KAAK0nB,GAAG,OAAO5e,EAAErhB,MAAMoJ,EAAEqtB,EAAE/uB,EAAEC,EAAE0Z,EAAE9I,GAAG,KAAK,GAAGwtC,GAAG1kC,IAAI0f,GAAG1f,GAAG,OAAO,OAAOjY,EAAE,KAAK0f,EAAEphB,EAAEC,EAAE0Z,EAAE9I,EAAE,MAAM2tC,GAAGx+C,EAAE2Z,GAAG,OAAO,KAAK,SAAS4V,EAAEvvB,EAAEC,EAAE0Z,EAAE9I,EAAEnP,GAAG,GAAG,kBAAkBmP,GAAG,kBAAkBA,EAAE,OAC5ekC,EAAE9S,EADifD,EAClgBA,EAAE6L,IAAI8N,IAAI,KAAW,GAAG9I,EAAEnP,GAAG,GAAG,kBAAkBmP,GAAG,OAAOA,EAAE,CAAC,OAAOA,EAAEmgB,UAAU,KAAKsH,GAAG,OAAOt4B,EAAEA,EAAE6L,IAAI,OAAOgF,EAAEvY,IAAIqhB,EAAE9I,EAAEvY,MAAM,KAAKuY,EAAE+J,OAAO4d,GAAGpX,EAAEnhB,EAAED,EAAE6Q,EAAE1X,MAAMD,SAASwI,EAAEmP,EAAEvY,KAAKoG,EAAEuB,EAAED,EAAE6Q,EAAEnP,GAAG,KAAK62B,GAAG,OAA2CxJ,EAAE9uB,EAAtCD,EAAEA,EAAE6L,IAAI,OAAOgF,EAAEvY,IAAIqhB,EAAE9I,EAAEvY,MAAM,KAAWuY,EAAEnP,GAAG,GAAG28C,GAAGxtC,IAAIwoB,GAAGxoB,GAAG,OAAwBuQ,EAAEnhB,EAAnBD,EAAEA,EAAE6L,IAAI8N,IAAI,KAAW9I,EAAEnP,EAAE,MAAM88C,GAAGv+C,EAAE4Q,GAAG,OAAO,KAAK,SAASmsC,EAAGt7C,EAAEyiB,EAAEpR,EAAErU,GAAG,IAAI,IAAIqwB,EAAE,KAAKnV,EAAE,KAAKwH,EAAE+C,EAAElQ,EAAEkQ,EAAE,EAAEqL,EAAE,KAAK,OAAOpO,GAAGnN,EAAElB,EAAE3a,OAAO6b,IAAI,CAACmN,EAAE3iB,MAAMwV,GAAGub,EAAEpO,EAAEA,EAAE,MAAMoO,EAAEpO,EAAEqd,QAAQ,IAAIvP,EAAElb,EAAEtS,EAAE0f,EAAErO,EAAEkB,GAAGvV,GAAG,GAAG,OAAOwwB,EAAE,CAAC,OAAO9N,IAAIA,EAAEoO,GAAG,MAAMxvB,GACtfohB,GAAG,OAAO8N,EAAE+O,WAAWh+B,EAAEyB,EAAE0f,GAAG+C,EAAE4M,EAAE7B,EAAE/K,EAAElQ,GAAG,OAAO2F,EAAEmV,EAAEG,EAAEtV,EAAE6kB,QAAQvP,EAAEtV,EAAEsV,EAAE9N,EAAEoO,EAAE,GAAGvb,IAAIlB,EAAE3a,OAAO,OAAOuhB,EAAEjY,EAAE0f,GAAG2N,EAAE,GAAG,OAAO3N,EAAE,CAAC,KAAKnN,EAAElB,EAAE3a,OAAO6b,IAAkB,QAAdmN,EAAE6N,EAAEvtB,EAAEqR,EAAEkB,GAAGvV,MAAcylB,EAAE4M,EAAE3P,EAAE+C,EAAElQ,GAAG,OAAO2F,EAAEmV,EAAE3N,EAAExH,EAAE6kB,QAAQrd,EAAExH,EAAEwH,GAAG,OAAO2N,EAAE,IAAI3N,EAAEvQ,EAAEnP,EAAE0f,GAAGnN,EAAElB,EAAE3a,OAAO6b,IAAsB,QAAlBub,EAAED,EAAEnO,EAAE1f,EAAEuS,EAAElB,EAAEkB,GAAGvV,MAAcsB,GAAG,OAAOwvB,EAAEyO,WAAW7c,EAAEogB,OAAO,OAAOhS,EAAEl3B,IAAI2b,EAAEub,EAAEl3B,KAAK6rB,EAAE4M,EAAEvB,EAAErL,EAAElQ,GAAG,OAAO2F,EAAEmV,EAAES,EAAE5V,EAAE6kB,QAAQjP,EAAE5V,EAAE4V,GAA4C,OAAzCxvB,GAAGohB,EAAEre,SAAQ,SAAS/C,GAAG,OAAOC,EAAEyB,EAAE1B,MAAY+uB,EAAE,SAASW,EAAEhuB,EAAEyiB,EAAEpR,EAAEgc,GAAG,IAAIrwB,EAAE26B,GAAGtmB,GAAG,GAAG,oBAAoBrU,EAAE,MAAMP,MAAMixB,EAAE,MACve,GAAG,OAD0erc,EAAErU,EAAEjG,KAAKsa,IAC3e,MAAM5U,MAAMixB,EAAE,MAAM,IAAI,IAAIhO,EAAE1iB,EAAE,KAAKkb,EAAEuK,EAAElQ,EAAEkQ,EAAE,EAAEqL,EAAE,KAAKN,EAAEnc,EAAEyE,OAAO,OAAOoC,IAAIsV,EAAEzX,KAAKxD,IAAIib,EAAEnc,EAAEyE,OAAO,CAACoC,EAAEnb,MAAMwV,GAAGub,EAAE5V,EAAEA,EAAE,MAAM4V,EAAE5V,EAAE6kB,QAAQ,IAAI/O,EAAE1b,EAAEtS,EAAEkY,EAAEsV,EAAEjzB,MAAM8yB,GAAG,GAAG,OAAOW,EAAE,CAAC,OAAO9V,IAAIA,EAAE4V,GAAG,MAAMxvB,GAAG4Z,GAAG,OAAO8V,EAAEuO,WAAWh+B,EAAEyB,EAAEkY,GAAGuK,EAAE4M,EAAErB,EAAEvL,EAAElQ,GAAG,OAAOmN,EAAE1iB,EAAEgxB,EAAEtO,EAAEqd,QAAQ/O,EAAEtO,EAAEsO,EAAE9V,EAAE4V,EAAE,GAAGN,EAAEzX,KAAK,OAAOkC,EAAEjY,EAAEkY,GAAGlb,EAAE,GAAG,OAAOkb,EAAE,CAAC,MAAMsV,EAAEzX,KAAKxD,IAAIib,EAAEnc,EAAEyE,OAAwB,QAAjB0X,EAAED,EAAEvtB,EAAEwtB,EAAEjzB,MAAM8yB,MAAc5K,EAAE4M,EAAE7B,EAAE/K,EAAElQ,GAAG,OAAOmN,EAAE1iB,EAAEwwB,EAAE9N,EAAEqd,QAAQvP,EAAE9N,EAAE8N,GAAG,OAAOxwB,EAAE,IAAIkb,EAAE/I,EAAEnP,EAAEkY,IAAIsV,EAAEzX,KAAKxD,IAAIib,EAAEnc,EAAEyE,OAA4B,QAArB0X,EAAEK,EAAE3V,EAAElY,EAAEuS,EAAEib,EAAEjzB,MAAM8yB,MAAc/uB,GAAG,OAChfkvB,EAAE+O,WAAWrkB,EAAE4nB,OAAO,OAAOtS,EAAE52B,IAAI2b,EAAEib,EAAE52B,KAAK6rB,EAAE4M,EAAE7B,EAAE/K,EAAElQ,GAAG,OAAOmN,EAAE1iB,EAAEwwB,EAAE9N,EAAEqd,QAAQvP,EAAE9N,EAAE8N,GAA4C,OAAzClvB,GAAG4Z,EAAE7W,SAAQ,SAAS/C,GAAG,OAAOC,EAAEyB,EAAE1B,MAAYtB,EAAE,OAAO,SAASsB,EAAE6Q,EAAEkgB,EAAEhe,GAAG,IAAIrU,EAAE,kBAAkBqyB,GAAG,OAAOA,GAAGA,EAAEnW,OAAO4d,IAAI,OAAOzH,EAAEz4B,IAAIoG,IAAIqyB,EAAEA,EAAE53B,MAAMD,UAAU,IAAI61B,EAAE,kBAAkBgC,GAAG,OAAOA,EAAE,GAAGhC,EAAE,OAAOgC,EAAEC,UAAU,KAAKsH,GAAGt4B,EAAE,CAAS,IAAR+uB,EAAEgC,EAAEz4B,IAAQoG,EAAEmS,EAAE,OAAOnS,GAAG,CAAC,GAAGA,EAAEpG,MAAMy2B,EAAE,CAAC,OAAOrwB,EAAE86B,KAAK,KAAK,EAAE,GAAGzI,EAAEnW,OAAO4d,GAAG,CAAC7e,EAAE3Z,EAAEtB,EAAE+/B,UAAS5tB,EAAEnP,EAAEhD,EAAEqyB,EAAE53B,MAAMD,WAAY2gC,OAAO75B,EAAEA,EAAE6Q,EAAE,MAAM7Q,EAAE,MAAM,QAAQ,GAAGtB,EAAEsgD,cAAcjuB,EAAEnW,KAAK,CAACjB,EAAE3Z,EACrftB,EAAE+/B,UAAS5tB,EAAEnP,EAAEhD,EAAEqyB,EAAE53B,QAASkuB,IAAIi3B,GAAGt+C,EAAEtB,EAAEqyB,GAAGlgB,EAAEgpB,OAAO75B,EAAEA,EAAE6Q,EAAE,MAAM7Q,GAAG2Z,EAAE3Z,EAAEtB,GAAG,MAAWuB,EAAED,EAAEtB,GAAGA,EAAEA,EAAE+/B,QAAQ1N,EAAEnW,OAAO4d,KAAI3nB,EAAEuuC,GAAGruB,EAAE53B,MAAMD,SAAS8G,EAAE++C,KAAKhsC,EAAEge,EAAEz4B,MAAOuhC,OAAO75B,EAAEA,EAAE6Q,KAAIkC,EAAEksC,GAAGluB,EAAEnW,KAAKmW,EAAEz4B,IAAIy4B,EAAE53B,MAAM,KAAK6G,EAAE++C,KAAKhsC,IAAKsU,IAAIi3B,GAAGt+C,EAAE6Q,EAAEkgB,GAAGhe,EAAE8mB,OAAO75B,EAAEA,EAAE+S,GAAG,OAAOoR,EAAEnkB,GAAG,KAAKu4B,GAAGv4B,EAAE,CAAC,IAAItB,EAAEqyB,EAAEz4B,IAAI,OAAOuY,GAAG,CAAC,GAAGA,EAAEvY,MAAMoG,EAAX,CAAa,GAAG,IAAImS,EAAE2oB,KAAK3oB,EAAEwlB,UAAU8J,gBAAgBpP,EAAEoP,eAAetvB,EAAEwlB,UAAU6oB,iBAAiBnuB,EAAEmuB,eAAe,CAACvlC,EAAE3Z,EAAE6Q,EAAE4tB,UAAS5tB,EAAEnP,EAAEmP,EAAEkgB,EAAE73B,UAAU,KAAM2gC,OAAO75B,EAAEA,EAAE6Q,EAAE,MAAM7Q,EAAO2Z,EAAE3Z,EAAE6Q,GAAG,MAAW5Q,EAAED,EAAE6Q,GAAGA,EACnfA,EAAE4tB,SAAQ5tB,EAAEsuC,GAAGpuB,EAAE/wB,EAAE++C,KAAKhsC,IAAK8mB,OAAO75B,EAAEA,EAAE6Q,EAAE,OAAOsT,EAAEnkB,GAAG,GAAG,kBAAkB+wB,GAAG,kBAAkBA,EAAE,OAAOA,EAAE,GAAGA,EAAE,OAAOlgB,GAAG,IAAIA,EAAE2oB,KAAK7f,EAAE3Z,EAAE6Q,EAAE4tB,UAAS5tB,EAAEnP,EAAEmP,EAAEkgB,IAAK8I,OAAO75B,EAAEA,EAAE6Q,IAAI8I,EAAE3Z,EAAE6Q,IAAGA,EAAEiuC,GAAG/tB,EAAE/wB,EAAE++C,KAAKhsC,IAAK8mB,OAAO75B,EAAEA,EAAE6Q,GAAGsT,EAAEnkB,GAAG,GAAGq+C,GAAGttB,GAAG,OAAOisB,EAAGh9C,EAAE6Q,EAAEkgB,EAAEhe,GAAG,GAAGsmB,GAAGtI,GAAG,OAAOrB,EAAE1vB,EAAE6Q,EAAEkgB,EAAEhe,GAAc,GAAXgc,GAAGyvB,GAAGx+C,EAAE+wB,GAAM,qBAAqBA,IAAIryB,EAAE,OAAOsB,EAAEw5B,KAAK,KAAK,EAAE,KAAK,EAAE,MAAMx5B,EAAEA,EAAE4a,KAAKzc,MAAMixB,EAAE,IAAIpvB,EAAEua,aAAava,EAAE6U,MAAM,cAAe,OAAO8E,EAAE3Z,EAAE6Q,IAAI,IAAIwuC,GAAGZ,IAAG,GAAIa,GAAGb,IAAG,GAAIc,GAAG,GAAGC,GAAG,CAAC/uB,QAAQ8uB,IAAIE,GAAG,CAAChvB,QAAQ8uB,IAAIG,GAAG,CAACjvB,QAAQ8uB,IACjf,SAASI,GAAG3/C,GAAG,GAAGA,IAAIu/C,GAAG,MAAMphD,MAAMixB,EAAE,MAAM,OAAOpvB,EAAE,SAAS4/C,GAAG5/C,EAAEC,GAAyC,OAAtCqwB,GAAEovB,GAAGz/C,GAAGqwB,GAAEmvB,GAAGz/C,GAAGswB,GAAEkvB,GAAGD,IAAIv/C,EAAEC,EAAE4Y,UAAmB,KAAK,EAAE,KAAK,GAAG5Y,GAAGA,EAAEA,EAAEyf,iBAAiBzf,EAAEo8B,aAAaL,GAAG,KAAK,IAAI,MAAM,QAAkE/7B,EAAE+7B,GAArC/7B,GAAvBD,EAAE,IAAIA,EAAEC,EAAEu/B,WAAWv/B,GAAMo8B,cAAc,KAAKr8B,EAAEA,EAAEusB,SAAkB4D,GAAEqvB,IAAIlvB,GAAEkvB,GAAGv/C,GAAG,SAAS4/C,KAAK1vB,GAAEqvB,IAAIrvB,GAAEsvB,IAAItvB,GAAEuvB,IAAI,SAASI,GAAG9/C,GAAG2/C,GAAGD,GAAGjvB,SAAS,IAAIxwB,EAAE0/C,GAAGH,GAAG/uB,SAAa9W,EAAEqiB,GAAG/7B,EAAED,EAAE4a,MAAM3a,IAAI0Z,IAAI2W,GAAEmvB,GAAGz/C,GAAGswB,GAAEkvB,GAAG7lC,IAAI,SAASomC,GAAG//C,GAAGy/C,GAAGhvB,UAAUzwB,IAAImwB,GAAEqvB,IAAIrvB,GAAEsvB,KAAK,IAAI3uB,GAAE,CAACL,QAAQ,GACpd,SAASuvB,GAAGhgD,GAAG,IAAI,IAAIC,EAAED,EAAE,OAAOC,GAAG,CAAC,GAAG,KAAKA,EAAEu5B,IAAI,CAAC,IAAI7f,EAAE1Z,EAAEm+B,cAAc,GAAG,OAAOzkB,IAAmB,QAAfA,EAAEA,EAAE0kB,aAzEqJ,OAyEhI1kB,EAAE0I,MAzEsI,OAyE3H1I,EAAE0I,MAAW,OAAOpiB,OAAO,GAAG,KAAKA,EAAEu5B,UAAK,IAASv5B,EAAEggD,cAAcC,aAAa,GAAG,KAAiB,GAAZjgD,EAAEi+B,WAAc,OAAOj+B,OAAO,GAAG,OAAOA,EAAEu+B,MAAM,CAACv+B,EAAEu+B,MAAM3E,OAAO55B,EAAEA,EAAEA,EAAEu+B,MAAM,SAAS,GAAGv+B,IAAID,EAAE,MAAM,KAAK,OAAOC,EAAEw+B,SAAS,CAAC,GAAG,OAAOx+B,EAAE45B,QAAQ55B,EAAE45B,SAAS75B,EAAE,OAAO,KAAKC,EAAEA,EAAE45B,OAAO55B,EAAEw+B,QAAQ5E,OAAO55B,EAAE45B,OAAO55B,EAAEA,EAAEw+B,QAAQ,OAAO,KAAK,SAAS0hB,GAAGngD,EAAEC,GAAG,MAAM,CAACmgD,UAAUpgD,EAAE7G,MAAM8G,GACve,IAAIogD,GAAGxoB,EAAGzF,uBAAuBkuB,GAAGzoB,EAAGxF,wBAAwBkuB,GAAG,EAAEvuB,GAAE,KAAKd,GAAE,KAAKC,GAAE,KAAKqvB,IAAG,EAAG,SAASpvB,KAAI,MAAMjzB,MAAMixB,EAAE,MAAO,SAASqxB,GAAGzgD,EAAEC,GAAG,GAAG,OAAOA,EAAE,OAAM,EAAG,IAAI,IAAI0Z,EAAE,EAAEA,EAAE1Z,EAAE7H,QAAQuhB,EAAE3Z,EAAE5H,OAAOuhB,IAAI,IAAIq4B,GAAGhyC,EAAE2Z,GAAG1Z,EAAE0Z,IAAI,OAAM,EAAG,OAAM,EAC/O,SAAS+mC,GAAG1gD,EAAEC,EAAE0Z,EAAE9I,EAAEnP,EAAEqvB,GAAkI,GAA/HwvB,GAAGxvB,EAAEiB,GAAE/xB,EAAEA,EAAEm+B,cAAc,KAAKn+B,EAAEk8C,YAAY,KAAKl8C,EAAE47C,eAAe,EAAEwE,GAAG5vB,QAAQ,OAAOzwB,GAAG,OAAOA,EAAEo+B,cAAcuiB,GAAGC,GAAG5gD,EAAE2Z,EAAE9I,EAAEnP,GAAMzB,EAAE47C,iBAAiB0E,GAAG,CAACxvB,EAAE,EAAE,EAAE,CAAoB,GAAnB9wB,EAAE47C,eAAe,IAAO,GAAG9qB,GAAG,MAAM5yB,MAAMixB,EAAE,MAAM2B,GAAG,EAAEI,GAAED,GAAE,KAAKjxB,EAAEk8C,YAAY,KAAKkE,GAAG5vB,QAAQowB,GAAG7gD,EAAE2Z,EAAE9I,EAAEnP,SAASzB,EAAE47C,iBAAiB0E,IAAkE,GAA9DF,GAAG5vB,QAAQqwB,GAAG7gD,EAAE,OAAOixB,IAAG,OAAOA,GAAE1Z,KAAK+oC,GAAG,EAAEpvB,GAAED,GAAEc,GAAE,KAAKwuB,IAAG,EAAMvgD,EAAE,MAAM9B,MAAMixB,EAAE,MAAM,OAAOpvB,EAC9Z,SAAS+gD,KAAK,IAAI/gD,EAAE,CAACo+B,cAAc,KAAKge,UAAU,KAAKC,UAAU,KAAK2E,MAAM,KAAKxpC,KAAK,MAA8C,OAAxC,OAAO2Z,GAAEa,GAAEoM,cAAcjN,GAAEnxB,EAAEmxB,GAAEA,GAAE3Z,KAAKxX,EAASmxB,GAAE,SAAS8vB,KAAK,GAAG,OAAO/vB,GAAE,CAAC,IAAIlxB,EAAEgyB,GAAEiM,UAAUj+B,EAAE,OAAOA,EAAEA,EAAEo+B,cAAc,UAAUp+B,EAAEkxB,GAAE1Z,KAAK,IAAIvX,EAAE,OAAOkxB,GAAEa,GAAEoM,cAAcjN,GAAE3Z,KAAK,GAAG,OAAOvX,EAAEkxB,GAAElxB,EAAEixB,GAAElxB,MAAM,CAAC,GAAG,OAAOA,EAAE,MAAM7B,MAAMixB,EAAE,MAAUpvB,EAAE,CAACo+B,eAAPlN,GAAElxB,GAAqBo+B,cAAcge,UAAUlrB,GAAEkrB,UAAUC,UAAUnrB,GAAEmrB,UAAU2E,MAAM9vB,GAAE8vB,MAAMxpC,KAAK,MAAM,OAAO2Z,GAAEa,GAAEoM,cAAcjN,GAAEnxB,EAAEmxB,GAAEA,GAAE3Z,KAAKxX,EAAE,OAAOmxB,GAChe,SAAS+vB,GAAGlhD,EAAEC,GAAG,MAAM,oBAAoBA,EAAEA,EAAED,GAAGC,EAClD,SAASkhD,GAAGnhD,GAAG,IAAIC,EAAEghD,KAAKtnC,EAAE1Z,EAAE+gD,MAAM,GAAG,OAAOrnC,EAAE,MAAMxb,MAAMixB,EAAE,MAAMzV,EAAEynC,oBAAoBphD,EAAE,IAAI6Q,EAAEqgB,GAAExvB,EAAEmP,EAAEwrC,UAAUtrB,EAAEpX,EAAE4iC,QAAQ,GAAG,OAAOxrB,EAAE,CAAC,GAAG,OAAOrvB,EAAE,CAAC,IAAIyiB,EAAEziB,EAAE8V,KAAK9V,EAAE8V,KAAKuZ,EAAEvZ,KAAKuZ,EAAEvZ,KAAK2M,EAAEtT,EAAEwrC,UAAU36C,EAAEqvB,EAAEpX,EAAE4iC,QAAQ,KAAK,GAAG,OAAO76C,EAAE,CAACA,EAAEA,EAAE8V,KAAK3G,EAAEA,EAAEurC,UAAU,IAAIrpC,EAAEoR,EAAE4M,EAAE,KAAKryB,EAAEgD,EAAE,EAAE,CAAC,IAAIqtB,EAAErwB,EAAEm9C,eAAe,GAAG9sB,EAAEwxB,GAAG,CAAC,IAAIn/B,EAAE,CAACy6B,eAAen9C,EAAEm9C,eAAec,eAAej+C,EAAEi+C,eAAex6C,OAAOzD,EAAEyD,OAAOk/C,aAAa3iD,EAAE2iD,aAAaC,WAAW5iD,EAAE4iD,WAAW9pC,KAAK,MAAM,OAAOzE,GAAGoR,EAAEpR,EAAEqO,EAAE2P,EAAElgB,GAAGkC,EAAEA,EAAEyE,KAAK4J,EAAE2N,EAAEiD,GAAE6pB,iBAC9e7pB,GAAE6pB,eAAe9sB,EAAEmuB,GAAGnuB,SAAS,OAAOhc,IAAIA,EAAEA,EAAEyE,KAAK,CAACqkC,eAAe,WAAWc,eAAej+C,EAAEi+C,eAAex6C,OAAOzD,EAAEyD,OAAOk/C,aAAa3iD,EAAE2iD,aAAaC,WAAW5iD,EAAE4iD,WAAW9pC,KAAK,OAAOylC,GAAGluB,EAAErwB,EAAEi+C,gBAAgB9rC,EAAEnS,EAAE2iD,eAAerhD,EAAEtB,EAAE4iD,WAAWthD,EAAE6Q,EAAEnS,EAAEyD,QAAQzD,EAAEA,EAAE8Y,WAAW,OAAO9Y,GAAGA,IAAIgD,GAAG,OAAOqR,EAAEge,EAAElgB,EAAEkC,EAAEyE,KAAK2M,EAAE6tB,GAAGnhC,EAAE5Q,EAAEm+B,iBAAiB0d,IAAG,GAAI77C,EAAEm+B,cAAcvtB,EAAE5Q,EAAEm8C,UAAUrrB,EAAE9wB,EAAEo8C,UAAUtpC,EAAE4G,EAAE4nC,kBAAkB1wC,EAAE,MAAM,CAAC5Q,EAAEm+B,cAAczkB,EAAE6nC,UACxb,SAASC,GAAGzhD,GAAG,IAAIC,EAAEghD,KAAKtnC,EAAE1Z,EAAE+gD,MAAM,GAAG,OAAOrnC,EAAE,MAAMxb,MAAMixB,EAAE,MAAMzV,EAAEynC,oBAAoBphD,EAAE,IAAI6Q,EAAE8I,EAAE6nC,SAAS9/C,EAAEiY,EAAE4iC,QAAQxrB,EAAE9wB,EAAEm+B,cAAc,GAAG,OAAO18B,EAAE,CAACiY,EAAE4iC,QAAQ,KAAK,IAAIp4B,EAAEziB,EAAEA,EAAE8V,KAAK,GAAGuZ,EAAE/wB,EAAE+wB,EAAE5M,EAAEhiB,QAAQgiB,EAAEA,EAAE3M,WAAW2M,IAAIziB,GAAGswC,GAAGjhB,EAAE9wB,EAAEm+B,iBAAiB0d,IAAG,GAAI77C,EAAEm+B,cAAcrN,EAAE,OAAO9wB,EAAEo8C,YAAYp8C,EAAEm8C,UAAUrrB,GAAGpX,EAAE4nC,kBAAkBxwB,EAAE,MAAM,CAACA,EAAElgB,GACnV,SAAS6wC,GAAG1hD,GAAG,IAAIC,EAAE8gD,KAAmL,MAA9K,oBAAoB/gD,IAAIA,EAAEA,KAAKC,EAAEm+B,cAAcn+B,EAAEm8C,UAAUp8C,EAAoFA,GAAlFA,EAAEC,EAAE+gD,MAAM,CAACzE,QAAQ,KAAKiF,SAAS,KAAKJ,oBAAoBF,GAAGK,kBAAkBvhD,IAAOwhD,SAASG,GAAGnyC,KAAK,KAAKwiB,GAAEhyB,GAAS,CAACC,EAAEm+B,cAAcp+B,GAAG,SAAS4hD,GAAG5hD,EAAEC,EAAE0Z,EAAE9I,GAAkO,OAA/N7Q,EAAE,CAACw5B,IAAIx5B,EAAEnC,OAAOoC,EAAE4hD,QAAQloC,EAAEmoC,KAAKjxC,EAAE2G,KAAK,MAAsB,QAAhBvX,EAAE+xB,GAAEmqB,cAAsBl8C,EAAE,CAACy+C,WAAW,MAAM1sB,GAAEmqB,YAAYl8C,EAAEA,EAAEy+C,WAAW1+C,EAAEwX,KAAKxX,GAAmB,QAAf2Z,EAAE1Z,EAAEy+C,YAAoBz+C,EAAEy+C,WAAW1+C,EAAEwX,KAAKxX,GAAG6Q,EAAE8I,EAAEnC,KAAKmC,EAAEnC,KAAKxX,EAAEA,EAAEwX,KAAK3G,EAAE5Q,EAAEy+C,WAAW1+C,GAAWA,EAC7d,SAAS+hD,KAAK,OAAOd,KAAK7iB,cAAc,SAAS4jB,GAAGhiD,EAAEC,EAAE0Z,EAAE9I,GAAG,IAAInP,EAAEq/C,KAAK/uB,GAAEkM,WAAWl+B,EAAE0B,EAAE08B,cAAcwjB,GAAG,EAAE3hD,EAAE0Z,OAAE,OAAO,IAAS9I,EAAE,KAAKA,GAAG,SAASoxC,GAAGjiD,EAAEC,EAAE0Z,EAAE9I,GAAG,IAAInP,EAAEu/C,KAAKpwC,OAAE,IAASA,EAAE,KAAKA,EAAE,IAAIkgB,OAAE,EAAO,GAAG,OAAOG,GAAE,CAAC,IAAI/M,EAAE+M,GAAEkN,cAA0B,GAAZrN,EAAE5M,EAAE09B,QAAW,OAAOhxC,GAAG4vC,GAAG5vC,EAAEsT,EAAE29B,MAAmB,YAAZF,GAAG3hD,EAAE0Z,EAAEoX,EAAElgB,GAAWmhB,GAAEkM,WAAWl+B,EAAE0B,EAAE08B,cAAcwjB,GAAG,EAAE3hD,EAAE0Z,EAAEoX,EAAElgB,GAAG,SAASqxC,GAAGliD,EAAEC,GAAG,OAAO+hD,GAAG,IAAI,EAAEhiD,EAAEC,GAAG,SAASkiD,GAAGniD,EAAEC,GAAG,OAAOgiD,GAAG,IAAI,EAAEjiD,EAAEC,GAAG,SAASmiD,GAAGpiD,EAAEC,GAAG,OAAOgiD,GAAG,EAAE,EAAEjiD,EAAEC,GACnc,SAASoiD,GAAGriD,EAAEC,GAAG,MAAG,oBAAoBA,GAASD,EAAEA,IAAIC,EAAED,GAAG,WAAWC,EAAE,QAAU,OAAOA,QAAG,IAASA,GAASD,EAAEA,IAAIC,EAAEwwB,QAAQzwB,EAAE,WAAWC,EAAEwwB,QAAQ,YAAtE,EAA4E,SAAS6xB,GAAGtiD,EAAEC,EAAE0Z,GAA6C,OAA1CA,EAAE,OAAOA,QAAG,IAASA,EAAEA,EAAEra,OAAO,CAACU,IAAI,KAAYiiD,GAAG,EAAE,EAAEI,GAAG7yC,KAAK,KAAKvP,EAAED,GAAG2Z,GAAG,SAAS4oC,MAAM,SAASC,GAAGxiD,EAAEC,GAA4C,OAAzC8gD,KAAK3iB,cAAc,CAACp+B,OAAE,IAASC,EAAE,KAAKA,GAAUD,EAAE,SAASyiD,GAAGziD,EAAEC,GAAG,IAAI0Z,EAAEsnC,KAAKhhD,OAAE,IAASA,EAAE,KAAKA,EAAE,IAAI4Q,EAAE8I,EAAEykB,cAAc,OAAG,OAAOvtB,GAAG,OAAO5Q,GAAGwgD,GAAGxgD,EAAE4Q,EAAE,IAAWA,EAAE,IAAG8I,EAAEykB,cAAc,CAACp+B,EAAEC,GAAUD,GAC/d,SAAS0iD,GAAG1iD,EAAEC,GAAG,IAAI0Z,EAAEsnC,KAAKhhD,OAAE,IAASA,EAAE,KAAKA,EAAE,IAAI4Q,EAAE8I,EAAEykB,cAAc,OAAG,OAAOvtB,GAAG,OAAO5Q,GAAGwgD,GAAGxgD,EAAE4Q,EAAE,IAAWA,EAAE,IAAG7Q,EAAEA,IAAI2Z,EAAEykB,cAAc,CAACp+B,EAAEC,GAAUD,GAAE,SAAS2iD,GAAG3iD,EAAEC,EAAE0Z,GAAG,IAAI9I,EAAE6pC,KAAKE,GAAG,GAAG/pC,EAAE,GAAGA,GAAE,WAAW7Q,GAAE,MAAM46C,GAAG,GAAG/pC,EAAE,GAAGA,GAAE,WAAW,IAAIA,EAAEyvC,GAAGhuB,SAASguB,GAAGhuB,cAAS,IAASryB,EAAE,KAAKA,EAAE,IAAID,GAAE,GAAI2Z,IAAV,QAAsB2mC,GAAGhuB,SAASzhB,MACjU,SAAS8wC,GAAG3hD,EAAEC,EAAE0Z,GAAG,IAAI9I,EAAE4sC,KAAK/7C,EAAE07C,GAAG9qB,SAAqB5wB,EAAE,CAACm6C,eAAfhrC,EAAE6sC,GAAG7sC,EAAE7Q,EAAE0B,GAAuBi7C,eAAej7C,EAAES,OAAOwX,EAAE0nC,aAAa,KAAKC,WAAW,KAAK9pC,KAAK,MAAM,IAAIuZ,EAAE9wB,EAAEs8C,QAA6E,GAArE,OAAOxrB,EAAErvB,EAAE8V,KAAK9V,GAAGA,EAAE8V,KAAKuZ,EAAEvZ,KAAKuZ,EAAEvZ,KAAK9V,GAAGzB,EAAEs8C,QAAQ76C,EAAEqvB,EAAE/wB,EAAEi+B,UAAaj+B,IAAIgyB,IAAG,OAAOjB,GAAGA,IAAIiB,GAAEwuB,IAAG,EAAG9+C,EAAEm6C,eAAe0E,GAAGvuB,GAAE6pB,eAAe0E,OAAO,CAAC,GAAG,IAAIvgD,EAAE67C,iBAAiB,OAAO9qB,GAAG,IAAIA,EAAE8qB,iBAA0C,QAAxB9qB,EAAE9wB,EAAEmhD,qBAA8B,IAAI,IAAIj9B,EAAElkB,EAAEshD,kBAAkBxuC,EAAEge,EAAE5M,EAAExK,GAAmC,GAAhCjY,EAAE2/C,aAAatwB,EAAErvB,EAAE4/C,WAAWvuC,EAAKi/B,GAAGj/B,EAAEoR,GAAG,OAAO,MAAMzlB,IAAai/C,GAAG39C,EAClgB6Q,IACA,IAAIiwC,GAAG,CAAC8B,YAAY7G,GAAGpoB,YAAYvC,GAAEwC,WAAWxC,GAAE0C,UAAU1C,GAAE2C,oBAAoB3C,GAAE4C,gBAAgB5C,GAAE6C,QAAQ7C,GAAE8C,WAAW9C,GAAE+C,OAAO/C,GAAEgD,SAAShD,GAAEyC,cAAczC,GAAEyxB,aAAazxB,GAAE0xB,iBAAiB1xB,GAAE2xB,cAAc3xB,IAAGuvB,GAAG,CAACiC,YAAY7G,GAAGpoB,YAAY6uB,GAAG5uB,WAAWmoB,GAAGjoB,UAAUouB,GAAGnuB,oBAAoB,SAAS/zB,EAAEC,EAAE0Z,GAA6C,OAA1CA,EAAE,OAAOA,QAAG,IAASA,EAAEA,EAAEra,OAAO,CAACU,IAAI,KAAYgiD,GAAG,EAAE,EAAEK,GAAG7yC,KAAK,KAAKvP,EAAED,GAAG2Z,IAAIqa,gBAAgB,SAASh0B,EAAEC,GAAG,OAAO+hD,GAAG,EAAE,EAAEhiD,EAAEC,IAAIg0B,QAAQ,SAASj0B,EAAEC,GAAG,IAAI0Z,EAAEonC,KAC9c,OADmd9gD,OAAE,IAASA,EAAE,KAAKA,EAAED,EAAEA,IAAI2Z,EAAEykB,cAAc,CAACp+B,EACjgBC,GAAUD,GAAGk0B,WAAW,SAASl0B,EAAEC,EAAE0Z,GAAG,IAAI9I,EAAEkwC,KAAuK,OAAlK9gD,OAAE,IAAS0Z,EAAEA,EAAE1Z,GAAGA,EAAE4Q,EAAEutB,cAAcvtB,EAAEurC,UAAUn8C,EAAmFD,GAAjFA,EAAE6Q,EAAEmwC,MAAM,CAACzE,QAAQ,KAAKiF,SAAS,KAAKJ,oBAAoBphD,EAAEuhD,kBAAkBthD,IAAOuhD,SAASG,GAAGnyC,KAAK,KAAKwiB,GAAEhyB,GAAS,CAAC6Q,EAAEutB,cAAcp+B,IAAIm0B,OAAO,SAASn0B,GAA4B,OAAdA,EAAE,CAACywB,QAAQzwB,GAAhB+gD,KAA4B3iB,cAAcp+B,GAAGo0B,SAASstB,GAAG7tB,cAAc0uB,GAAGM,aAAa1C,GAAG2C,iBAAiB,SAAS9iD,EAAEC,GAAG,IAAI0Z,EAAE+nC,GAAG1hD,GAAG6Q,EAAE8I,EAAE,GAAGjY,EAAEiY,EAAE,GAC9Y,OADiZuoC,IAAG,WAAW,IAAIvoC,EAAE2mC,GAAGhuB,SAASguB,GAAGhuB,cAAS,IAASryB,EAAE,KAAKA,EAAE,IAAIyB,EAAE1B,GAAN,QAAiBsgD,GAAGhuB,SAC9e3Y,KAAI,CAAC3Z,EAAEC,IAAW4Q,GAAGkyC,cAAc,SAAS/iD,GAAG,IAAIC,EAAEyhD,IAAG,GAAI/nC,EAAE1Z,EAAE,GAAU,OAAPA,EAAEA,EAAE,GAAS,CAACuiD,GAAGG,GAAGnzC,KAAK,KAAKvP,EAAED,GAAG,CAACC,EAAED,IAAI2Z,KAAKinC,GAAG,CAACgC,YAAY7G,GAAGpoB,YAAY8uB,GAAG7uB,WAAWmoB,GAAGjoB,UAAUquB,GAAGpuB,oBAAoBuuB,GAAGtuB,gBAAgBouB,GAAGnuB,QAAQyuB,GAAGxuB,WAAWitB,GAAGhtB,OAAO4tB,GAAG3tB,SAAS,WAAW,OAAO+sB,GAAGD,KAAKrtB,cAAc0uB,GAAGM,aAAa1C,GAAG2C,iBAAiB,SAAS9iD,EAAEC,GAAG,IAAI0Z,EAAEwnC,GAAGD,IAAIrwC,EAAE8I,EAAE,GAAGjY,EAAEiY,EAAE,GAAyG,OAAtGwoC,IAAG,WAAW,IAAIxoC,EAAE2mC,GAAGhuB,SAASguB,GAAGhuB,cAAS,IAASryB,EAAE,KAAKA,EAAE,IAAIyB,EAAE1B,GAAN,QAAiBsgD,GAAGhuB,SAAS3Y,KAAI,CAAC3Z,EAAEC,IAAW4Q,GAAGkyC,cAAc,SAAS/iD,GAAG,IAAIC,EACxgBkhD,GAAGD,IAAIvnC,EAAE1Z,EAAE,GAAU,OAAPA,EAAEA,EAAE,GAAS,CAACwiD,GAAGE,GAAGnzC,KAAK,KAAKvP,EAAED,GAAG,CAACC,EAAED,IAAI2Z,KAAKknC,GAAG,CAAC+B,YAAY7G,GAAGpoB,YAAY8uB,GAAG7uB,WAAWmoB,GAAGjoB,UAAUquB,GAAGpuB,oBAAoBuuB,GAAGtuB,gBAAgBouB,GAAGnuB,QAAQyuB,GAAGxuB,WAAWutB,GAAGttB,OAAO4tB,GAAG3tB,SAAS,WAAW,OAAOqtB,GAAGP,KAAKrtB,cAAc0uB,GAAGM,aAAa1C,GAAG2C,iBAAiB,SAAS9iD,EAAEC,GAAG,IAAI0Z,EAAE8nC,GAAGP,IAAIrwC,EAAE8I,EAAE,GAAGjY,EAAEiY,EAAE,GAAyG,OAAtGwoC,IAAG,WAAW,IAAIxoC,EAAE2mC,GAAGhuB,SAASguB,GAAGhuB,cAAS,IAASryB,EAAE,KAAKA,EAAE,IAAIyB,EAAE1B,GAAN,QAAiBsgD,GAAGhuB,SAAS3Y,KAAI,CAAC3Z,EAAEC,IAAW4Q,GAAGkyC,cAAc,SAAS/iD,GAAG,IAAIC,EAAEwhD,GAAGP,IAAIvnC,EAAE1Z,EAAE,GAAU,OAAPA,EAAEA,EAAE,GAAS,CAACwiD,GAAGE,GAAGnzC,KAAK,KAC5fvP,EAAED,GAAG,CAACC,EAAED,IAAI2Z,KAAKqpC,GAAG,KAAKC,GAAG,KAAKC,IAAG,EAAG,SAASC,GAAGnjD,EAAEC,GAAG,IAAI0Z,EAAEypC,GAAG,EAAE,KAAK,KAAK,GAAGzpC,EAAEqlC,YAAY,UAAUrlC,EAAEiB,KAAK,UAAUjB,EAAE0c,UAAUp2B,EAAE0Z,EAAEkgB,OAAO75B,EAAE2Z,EAAEukB,UAAU,EAAE,OAAOl+B,EAAE0+C,YAAY1+C,EAAE0+C,WAAWC,WAAWhlC,EAAE3Z,EAAE0+C,WAAW/kC,GAAG3Z,EAAE4+C,YAAY5+C,EAAE0+C,WAAW/kC,EAC1P,SAAS0pC,GAAGrjD,EAAEC,GAAG,OAAOD,EAAEw5B,KAAK,KAAK,EAAE,IAAI7f,EAAE3Z,EAAE4a,KAAyE,OAAO,QAA3E3a,EAAE,IAAIA,EAAE4Y,UAAUc,EAAE9Y,gBAAgBZ,EAAE+5B,SAASn5B,cAAc,KAAKZ,KAAmBD,EAAEq2B,UAAUp2B,GAAE,GAAO,KAAK,EAAE,OAAoD,QAA7CA,EAAE,KAAKD,EAAEsjD,cAAc,IAAIrjD,EAAE4Y,SAAS,KAAK5Y,KAAYD,EAAEq2B,UAAUp2B,GAAE,GAAO,KAAK,GAAY,QAAQ,OAAM,GACtR,SAASsjD,GAAGvjD,GAAG,GAAGkjD,GAAG,CAAC,IAAIjjD,EAAEgjD,GAAG,GAAGhjD,EAAE,CAAC,IAAI0Z,EAAE1Z,EAAE,IAAIojD,GAAGrjD,EAAEC,GAAG,CAAqB,KAApBA,EAAE4oC,GAAGlvB,EAAEouB,gBAAqBsb,GAAGrjD,EAAEC,GAA+C,OAA3CD,EAAEk+B,WAAuB,KAAbl+B,EAAEk+B,UAAgB,EAAEglB,IAAG,OAAGF,GAAGhjD,GAASmjD,GAAGH,GAAGrpC,GAAGqpC,GAAGhjD,EAAEijD,GAAGpa,GAAG5oC,EAAEs8B,iBAAiBv8B,EAAEk+B,WAAuB,KAAbl+B,EAAEk+B,UAAgB,EAAEglB,IAAG,EAAGF,GAAGhjD,GAAG,SAASwjD,GAAGxjD,GAAG,IAAIA,EAAEA,EAAE65B,OAAO,OAAO75B,GAAG,IAAIA,EAAEw5B,KAAK,IAAIx5B,EAAEw5B,KAAK,KAAKx5B,EAAEw5B,KAAKx5B,EAAEA,EAAE65B,OAAOmpB,GAAGhjD,EAC5T,SAASyjD,GAAGzjD,GAAG,GAAGA,IAAIgjD,GAAG,OAAM,EAAG,IAAIE,GAAG,OAAOM,GAAGxjD,GAAGkjD,IAAG,GAAG,EAAG,IAAIjjD,EAAED,EAAE4a,KAAK,GAAG,IAAI5a,EAAEw5B,KAAK,SAASv5B,GAAG,SAASA,IAAIwoC,GAAGxoC,EAAED,EAAEigD,eAAe,IAAIhgD,EAAEgjD,GAAGhjD,GAAGkjD,GAAGnjD,EAAEC,GAAGA,EAAE4oC,GAAG5oC,EAAE8nC,aAAmB,GAANyb,GAAGxjD,GAAM,KAAKA,EAAEw5B,IAAI,CAAgD,KAA7Bx5B,EAAE,QAApBA,EAAEA,EAAEo+B,eAAyBp+B,EAAEq+B,WAAW,MAAW,MAAMlgC,MAAMixB,EAAE,MAAMpvB,EAAE,CAAiB,IAAhBA,EAAEA,EAAE+nC,YAAgB9nC,EAAE,EAAED,GAAG,CAAC,GAAG,IAAIA,EAAE6Y,SAAS,CAAC,IAAIc,EAAE3Z,EAAEqiB,KAAK,GA9FpG,OA8FuG1I,EAAO,CAAC,GAAG,IAAI1Z,EAAE,CAACgjD,GAAGpa,GAAG7oC,EAAE+nC,aAAa,MAAM/nC,EAAEC,QA9F7J,MA8FsK0Z,GA9F/I,OA8FuJA,GA9F/J,OA8FuKA,GAAQ1Z,IAAID,EAAEA,EAAE+nC,YAAYkb,GAAG,WAAWA,GAAGD,GAAGna,GAAG7oC,EAAEq2B,UAAU0R,aAAa,KAAK,OAAM,EAChf,SAAS2b,KAAKT,GAAGD,GAAG,KAAKE,IAAG,EAAG,IAAIS,GAAG9rB,EAAGtF,kBAAkBupB,IAAG,EAAG,SAASzqB,GAAErxB,EAAEC,EAAE0Z,EAAE9I,GAAG5Q,EAAEu+B,MAAM,OAAOx+B,EAAEs/C,GAAGr/C,EAAE,KAAK0Z,EAAE9I,GAAGwuC,GAAGp/C,EAAED,EAAEw+B,MAAM7kB,EAAE9I,GAAG,SAAS+yC,GAAG5jD,EAAEC,EAAE0Z,EAAE9I,EAAEnP,GAAGiY,EAAEA,EAAE1gB,OAAO,IAAI83B,EAAE9wB,EAAEonB,IAA8B,OAA1Bs0B,GAAG17C,EAAEyB,GAAGmP,EAAE6vC,GAAG1gD,EAAEC,EAAE0Z,EAAE9I,EAAEkgB,EAAErvB,GAAM,OAAO1B,GAAI87C,IAA4G77C,EAAEi+B,WAAW,EAAE7M,GAAErxB,EAAEC,EAAE4Q,EAAEnP,GAAUzB,EAAEu+B,QAArIv+B,EAAEk8C,YAAYn8C,EAAEm8C,YAAYl8C,EAAEi+B,YAAY,IAAIl+B,EAAE67C,gBAAgBn6C,IAAI1B,EAAE67C,eAAe,GAAGgI,GAAG7jD,EAAEC,EAAEyB,IACtU,SAASoiD,GAAG9jD,EAAEC,EAAE0Z,EAAE9I,EAAEnP,EAAEqvB,GAAG,GAAG,OAAO/wB,EAAE,CAAC,IAAImkB,EAAExK,EAAEiB,KAAK,MAAG,oBAAoBuJ,GAAI4/B,GAAG5/B,SAAI,IAASA,EAAE3R,cAAc,OAAOmH,EAAEuB,cAAS,IAASvB,EAAEnH,eAAsDxS,EAAEi/C,GAAGtlC,EAAEiB,KAAK,KAAK/J,EAAE,KAAK5Q,EAAE8+C,KAAKhuB,IAAK1J,IAAIpnB,EAAEonB,IAAIrnB,EAAE65B,OAAO55B,EAASA,EAAEu+B,MAAMx+B,IAA1GC,EAAEu5B,IAAI,GAAGv5B,EAAE2a,KAAKuJ,EAAE6/B,GAAGhkD,EAAEC,EAAEkkB,EAAEtT,EAAEnP,EAAEqvB,IAAuF,OAAV5M,EAAEnkB,EAAEw+B,MAAS98B,EAAEqvB,IAAIrvB,EAAEyiB,EAAE87B,eAA0BtmC,EAAE,QAAdA,EAAEA,EAAEuB,SAAmBvB,EAAEu4B,IAAKxwC,EAAEmP,IAAI7Q,EAAEqnB,MAAMpnB,EAAEonB,KAAYw8B,GAAG7jD,EAAEC,EAAE8wB,IAAG9wB,EAAEi+B,WAAW,GAAEl+B,EAAE6+C,GAAG16B,EAAEtT,IAAKwW,IAAIpnB,EAAEonB,IAAIrnB,EAAE65B,OAAO55B,EAASA,EAAEu+B,MAAMx+B,GACnb,SAASgkD,GAAGhkD,EAAEC,EAAE0Z,EAAE9I,EAAEnP,EAAEqvB,GAAG,OAAO,OAAO/wB,GAAGkyC,GAAGlyC,EAAEigD,cAAcpvC,IAAI7Q,EAAEqnB,MAAMpnB,EAAEonB,MAAMy0B,IAAG,EAAGp6C,EAAEqvB,IAAI9wB,EAAE47C,eAAe77C,EAAE67C,eAAegI,GAAG7jD,EAAEC,EAAE8wB,IAAIkzB,GAAGjkD,EAAEC,EAAE0Z,EAAE9I,EAAEkgB,GAAG,SAASmzB,GAAGlkD,EAAEC,GAAG,IAAI0Z,EAAE1Z,EAAEonB,KAAO,OAAOrnB,GAAG,OAAO2Z,GAAG,OAAO3Z,GAAGA,EAAEqnB,MAAM1N,KAAE1Z,EAAEi+B,WAAW,KAAI,SAAS+lB,GAAGjkD,EAAEC,EAAE0Z,EAAE9I,EAAEnP,GAAG,IAAIqvB,EAAEJ,GAAEhX,GAAG0+B,GAAG7nB,GAAEC,QAA4C,OAApCM,EAAEunB,GAAGr4C,EAAE8wB,GAAG4qB,GAAG17C,EAAEyB,GAAGiY,EAAE+mC,GAAG1gD,EAAEC,EAAE0Z,EAAE9I,EAAEkgB,EAAErvB,GAAM,OAAO1B,GAAI87C,IAA4G77C,EAAEi+B,WAAW,EAAE7M,GAAErxB,EAAEC,EAAE0Z,EAAEjY,GAAUzB,EAAEu+B,QAArIv+B,EAAEk8C,YAAYn8C,EAAEm8C,YAAYl8C,EAAEi+B,YAAY,IAAIl+B,EAAE67C,gBAAgBn6C,IAAI1B,EAAE67C,eAAe,GAAGgI,GAAG7jD,EAAEC,EAAEyB,IAC3b,SAASyiD,GAAGnkD,EAAEC,EAAE0Z,EAAE9I,EAAEnP,GAAG,GAAGivB,GAAEhX,GAAG,CAAC,IAAIoX,GAAE,EAAG6nB,GAAG34C,QAAQ8wB,GAAE,EAAW,GAAR4qB,GAAG17C,EAAEyB,GAAM,OAAOzB,EAAEo2B,UAAU,OAAOr2B,IAAIA,EAAEi+B,UAAU,KAAKh+B,EAAEg+B,UAAU,KAAKh+B,EAAEi+B,WAAW,GAAG4f,GAAG79C,EAAE0Z,EAAE9I,GAAGotC,GAAGh+C,EAAE0Z,EAAE9I,EAAEnP,GAAGmP,GAAE,OAAQ,GAAG,OAAO7Q,EAAE,CAAC,IAAImkB,EAAElkB,EAAEo2B,UAAUtjB,EAAE9S,EAAEggD,cAAc97B,EAAEhrB,MAAM4Z,EAAE,IAAIrU,EAAEylB,EAAE1pB,QAAQs0B,EAAEpV,EAAEW,YAAY,kBAAkByU,GAAG,OAAOA,EAAEA,EAAEgtB,GAAGhtB,GAAwBA,EAAEupB,GAAGr4C,EAAzB8uB,EAAE4B,GAAEhX,GAAG0+B,GAAG7nB,GAAEC,SAAmB,IAAIrP,EAAEzH,EAAEe,yBAAyBuU,EAAE,oBAAoB7N,GAAG,oBAAoB+C,EAAE+5B,wBAAwBjvB,GAAG,oBAAoB9K,EAAE65B,kCACtd,oBAAoB75B,EAAEtQ,4BAA4Bd,IAAIlC,GAAGnS,IAAIqwB,IAAIgvB,GAAG99C,EAAEkkB,EAAEtT,EAAEke,GAAGktB,IAAG,EAAG,IAAIjoC,EAAE/T,EAAEm+B,cAAcja,EAAE9iB,MAAM2S,EAAE+oC,GAAG98C,EAAE4Q,EAAEsT,EAAEziB,GAAGhD,EAAEuB,EAAEm+B,cAAcrrB,IAAIlC,GAAGmD,IAAItV,GAAGgyB,GAAED,SAASwrB,IAAI,oBAAoB76B,IAAIk8B,GAAGr9C,EAAE0Z,EAAEyH,EAAEvQ,GAAGnS,EAAEuB,EAAEm+B,gBAAgBrrB,EAAEkpC,IAAI2B,GAAG39C,EAAE0Z,EAAE5G,EAAElC,EAAEmD,EAAEtV,EAAEqwB,KAAKE,GAAG,oBAAoB9K,EAAEg6B,2BAA2B,oBAAoBh6B,EAAEi6B,qBAAqB,oBAAoBj6B,EAAEi6B,oBAAoBj6B,EAAEi6B,qBAAqB,oBAAoBj6B,EAAEg6B,2BAA2Bh6B,EAAEg6B,6BAA6B,oBACzeh6B,EAAEzP,oBAAoBzU,EAAEi+B,WAAW,KAAK,oBAAoB/Z,EAAEzP,oBAAoBzU,EAAEi+B,WAAW,GAAGj+B,EAAEggD,cAAcpvC,EAAE5Q,EAAEm+B,cAAc1/B,GAAGylB,EAAEhrB,MAAM0X,EAAEsT,EAAE9iB,MAAM3C,EAAEylB,EAAE1pB,QAAQs0B,EAAEle,EAAEkC,IAAI,oBAAoBoR,EAAEzP,oBAAoBzU,EAAEi+B,WAAW,GAAGrtB,GAAE,QAASsT,EAAElkB,EAAEo2B,UAAUomB,GAAGz8C,EAAEC,GAAG8S,EAAE9S,EAAEggD,cAAc97B,EAAEhrB,MAAM8G,EAAE2a,OAAO3a,EAAE++C,YAAYjsC,EAAEmoC,GAAGj7C,EAAE2a,KAAK7H,GAAGrU,EAAEylB,EAAE1pB,QAAwB,kBAAhBs0B,EAAEpV,EAAEW,cAAiC,OAAOyU,EAAEA,EAAEgtB,GAAGhtB,GAAwBA,EAAEupB,GAAGr4C,EAAzB8uB,EAAE4B,GAAEhX,GAAG0+B,GAAG7nB,GAAEC,UAAiDxB,EAAE,oBAAhC7N,EAAEzH,EAAEe,2BAAmD,oBACjeyJ,EAAE+5B,0BAA0B,oBAAoB/5B,EAAE65B,kCAAkC,oBAAoB75B,EAAEtQ,4BAA4Bd,IAAIlC,GAAGnS,IAAIqwB,IAAIgvB,GAAG99C,EAAEkkB,EAAEtT,EAAEke,GAAGktB,IAAG,EAAGv9C,EAAEuB,EAAEm+B,cAAcja,EAAE9iB,MAAM3C,EAAEq+C,GAAG98C,EAAE4Q,EAAEsT,EAAEziB,GAAGsS,EAAE/T,EAAEm+B,cAAcrrB,IAAIlC,GAAGnS,IAAIsV,GAAG0c,GAAED,SAASwrB,IAAI,oBAAoB76B,IAAIk8B,GAAGr9C,EAAE0Z,EAAEyH,EAAEvQ,GAAGmD,EAAE/T,EAAEm+B,gBAAgBhd,EAAE66B,IAAI2B,GAAG39C,EAAE0Z,EAAE5G,EAAElC,EAAEnS,EAAEsV,EAAE+a,KAAKE,GAAG,oBAAoB9K,EAAEigC,4BAA4B,oBAAoBjgC,EAAEkgC,sBAAsB,oBAAoBlgC,EAAEkgC,qBAAqBlgC,EAAEkgC,oBAAoBxzC,EACzfmD,EAAE+a,GAAG,oBAAoB5K,EAAEigC,4BAA4BjgC,EAAEigC,2BAA2BvzC,EAAEmD,EAAE+a,IAAI,oBAAoB5K,EAAEmgC,qBAAqBrkD,EAAEi+B,WAAW,GAAG,oBAAoB/Z,EAAE+5B,0BAA0Bj+C,EAAEi+B,WAAW,OAAO,oBAAoB/Z,EAAEmgC,oBAAoBvxC,IAAI/S,EAAEigD,eAAevhD,IAAIsB,EAAEo+B,gBAAgBn+B,EAAEi+B,WAAW,GAAG,oBAAoB/Z,EAAE+5B,yBAAyBnrC,IAAI/S,EAAEigD,eAAevhD,IAAIsB,EAAEo+B,gBAAgBn+B,EAAEi+B,WAAW,KAAKj+B,EAAEggD,cAAcpvC,EAAE5Q,EAAEm+B,cAAcpqB,GAAGmQ,EAAEhrB,MAAM0X,EAAEsT,EAAE9iB,MAAM2S,EAAEmQ,EAAE1pB,QAAQs0B,EAAEle,EAAEuQ,IAClf,oBAAoB+C,EAAEmgC,oBAAoBvxC,IAAI/S,EAAEigD,eAAevhD,IAAIsB,EAAEo+B,gBAAgBn+B,EAAEi+B,WAAW,GAAG,oBAAoB/Z,EAAE+5B,yBAAyBnrC,IAAI/S,EAAEigD,eAAevhD,IAAIsB,EAAEo+B,gBAAgBn+B,EAAEi+B,WAAW,KAAKrtB,GAAE,GAAI,OAAO0zC,GAAGvkD,EAAEC,EAAE0Z,EAAE9I,EAAEkgB,EAAErvB,GAC5O,SAAS6iD,GAAGvkD,EAAEC,EAAE0Z,EAAE9I,EAAEnP,EAAEqvB,GAAGmzB,GAAGlkD,EAAEC,GAAG,IAAIkkB,EAAE,KAAiB,GAAZlkB,EAAEi+B,WAAc,IAAIrtB,IAAIsT,EAAE,OAAOziB,GAAGo3C,GAAG74C,EAAE0Z,GAAE,GAAIkqC,GAAG7jD,EAAEC,EAAE8wB,GAAGlgB,EAAE5Q,EAAEo2B,UAAUstB,GAAGlzB,QAAQxwB,EAAE,IAAI8S,EAAEoR,GAAG,oBAAoBxK,EAAEc,yBAAyB,KAAK5J,EAAE5X,SAA2I,OAAlIgH,EAAEi+B,WAAW,EAAE,OAAOl+B,GAAGmkB,GAAGlkB,EAAEu+B,MAAM6gB,GAAGp/C,EAAED,EAAEw+B,MAAM,KAAKzN,GAAG9wB,EAAEu+B,MAAM6gB,GAAGp/C,EAAE,KAAK8S,EAAEge,IAAIM,GAAErxB,EAAEC,EAAE8S,EAAEge,GAAG9wB,EAAEm+B,cAAcvtB,EAAExP,MAAMK,GAAGo3C,GAAG74C,EAAE0Z,GAAE,GAAW1Z,EAAEu+B,MAAM,SAASgmB,GAAGxkD,GAAG,IAAIC,EAAED,EAAEq2B,UAAUp2B,EAAEwkD,eAAe/L,GAAG14C,EAAEC,EAAEwkD,eAAexkD,EAAEwkD,iBAAiBxkD,EAAExF,SAASwF,EAAExF,SAASi+C,GAAG14C,EAAEC,EAAExF,SAAQ,GAAImlD,GAAG5/C,EAAEC,EAAEkgC,eACpe,IAOoXukB,GAAMC,GAAGC,GAPzXC,GAAG,CAACxmB,WAAW,KAAKymB,UAAU,GAClC,SAASC,GAAG/kD,EAAEC,EAAE0Z,GAAG,IAA+C5G,EAA3ClC,EAAE5Q,EAAE8+C,KAAKr9C,EAAEzB,EAAEqjD,aAAavyB,EAAED,GAAEL,QAAQtM,GAAE,EAAqN,IAA/MpR,EAAE,KAAiB,GAAZ9S,EAAEi+B,cAAiBnrB,EAAE,KAAO,EAAFge,KAAO,OAAO/wB,GAAG,OAAOA,EAAEo+B,gBAAgBrrB,GAAGoR,GAAE,EAAGlkB,EAAEi+B,YAAY,IAAI,OAAOl+B,GAAG,OAAOA,EAAEo+B,oBAAe,IAAS18B,EAAEsjD,WAAU,IAAKtjD,EAAEujD,6BAA6Bl0B,GAAG,GAAGT,GAAEQ,GAAI,EAAFC,GAAQ,OAAO/wB,EAAE,CAA4B,QAA3B,IAAS0B,EAAEsjD,UAAUzB,GAAGtjD,GAAMkkB,EAAE,CAA6C,GAA5CA,EAAEziB,EAAEsjD,UAAStjD,EAAE09C,GAAG,KAAKvuC,EAAE,EAAE,OAAQgpB,OAAO55B,EAAK,KAAY,EAAPA,EAAE8+C,MAAQ,IAAI/+C,EAAE,OAAOC,EAAEm+B,cAAcn+B,EAAEu+B,MAAMA,MAAMv+B,EAAEu+B,MAAM98B,EAAE88B,MAAMx+B,EAAE,OAAOA,GAAGA,EAAE65B,OAAOn4B,EAAE1B,EAAEA,EAAEy+B,QAC3a,OADmb9kB,EAAEylC,GAAGj7B,EAAEtT,EAAE8I,EAAE,OAAQkgB,OACjf55B,EAAEyB,EAAE+8B,QAAQ9kB,EAAE1Z,EAAEm+B,cAAcymB,GAAG5kD,EAAEu+B,MAAM98B,EAASiY,EAAoC,OAAlC9I,EAAEnP,EAAExI,SAAS+G,EAAEm+B,cAAc,KAAYn+B,EAAEu+B,MAAM8gB,GAAGr/C,EAAE,KAAK4Q,EAAE8I,GAAG,GAAG,OAAO3Z,EAAEo+B,cAAc,CAAuB,GAAZvtB,GAAV7Q,EAAEA,EAAEw+B,OAAUC,QAAWta,EAAE,CAAgD,GAA/CziB,EAAEA,EAAEsjD,UAASrrC,EAAEklC,GAAG7+C,EAAEA,EAAEsjD,eAAgBzpB,OAAO55B,EAAK,KAAY,EAAPA,EAAE8+C,QAAU56B,EAAE,OAAOlkB,EAAEm+B,cAAcn+B,EAAEu+B,MAAMA,MAAMv+B,EAAEu+B,SAAUx+B,EAAEw+B,MAAO,IAAI7kB,EAAE6kB,MAAMra,EAAE,OAAOA,GAAGA,EAAE0V,OAAOlgB,EAAEwK,EAAEA,EAAEsa,QAA8F,OAAtF5tB,EAAEguC,GAAGhuC,EAAEnP,IAAKm4B,OAAO55B,EAAE0Z,EAAE8kB,QAAQ5tB,EAAE8I,EAAE+hC,oBAAoB,EAAEz7C,EAAEm+B,cAAcymB,GAAG5kD,EAAEu+B,MAAM7kB,EAAS9I,EAAoD,OAAlD8I,EAAE0lC,GAAGp/C,EAAED,EAAEw+B,MAAM98B,EAAExI,SAASygB,GAAG1Z,EAAEm+B,cAAc,KAAYn+B,EAAEu+B,MACnf7kB,EAAY,GAAV3Z,EAAEA,EAAEw+B,MAASra,EAAE,CAA8E,GAA7EA,EAAEziB,EAAEsjD,UAAStjD,EAAE09C,GAAG,KAAKvuC,EAAE,EAAE,OAAQgpB,OAAO55B,EAAEyB,EAAE88B,MAAMx+B,EAAE,OAAOA,IAAIA,EAAE65B,OAAOn4B,GAAM,KAAY,EAAPzB,EAAE8+C,MAAQ,IAAI/+C,EAAE,OAAOC,EAAEm+B,cAAcn+B,EAAEu+B,MAAMA,MAAMv+B,EAAEu+B,MAAM98B,EAAE88B,MAAMx+B,EAAE,OAAOA,GAAGA,EAAE65B,OAAOn4B,EAAE1B,EAAEA,EAAEy+B,QAAoH,OAA5G9kB,EAAEylC,GAAGj7B,EAAEtT,EAAE8I,EAAE,OAAQkgB,OAAO55B,EAAEyB,EAAE+8B,QAAQ9kB,EAAEA,EAAEukB,WAAW,EAAEx8B,EAAEg6C,oBAAoB,EAAEz7C,EAAEm+B,cAAcymB,GAAG5kD,EAAEu+B,MAAM98B,EAASiY,EAAuB,OAArB1Z,EAAEm+B,cAAc,KAAYn+B,EAAEu+B,MAAM6gB,GAAGp/C,EAAED,EAAE0B,EAAExI,SAASygB,GAC1X,SAASurC,GAAGllD,EAAEC,GAAGD,EAAE67C,eAAe57C,IAAID,EAAE67C,eAAe57C,GAAG,IAAI0Z,EAAE3Z,EAAEi+B,UAAU,OAAOtkB,GAAGA,EAAEkiC,eAAe57C,IAAI0Z,EAAEkiC,eAAe57C,GAAGw7C,GAAGz7C,EAAE65B,OAAO55B,GAAG,SAASklD,GAAGnlD,EAAEC,EAAE0Z,EAAE9I,EAAEnP,EAAEqvB,GAAG,IAAI5M,EAAEnkB,EAAEo+B,cAAc,OAAOja,EAAEnkB,EAAEo+B,cAAc,CAACgnB,YAAYnlD,EAAEolD,UAAU,KAAKC,mBAAmB,EAAE/lD,KAAKsR,EAAE00C,KAAK5rC,EAAE6rC,eAAe,EAAEC,SAAS/jD,EAAEg9C,WAAW3tB,IAAI5M,EAAEihC,YAAYnlD,EAAEkkB,EAAEkhC,UAAU,KAAKlhC,EAAEmhC,mBAAmB,EAAEnhC,EAAE5kB,KAAKsR,EAAEsT,EAAEohC,KAAK5rC,EAAEwK,EAAEqhC,eAAe,EAAErhC,EAAEshC,SAAS/jD,EAAEyiB,EAAEu6B,WAAW3tB,GACzb,SAAS20B,GAAG1lD,EAAEC,EAAE0Z,GAAG,IAAI9I,EAAE5Q,EAAEqjD,aAAa5hD,EAAEmP,EAAEqvC,YAAYnvB,EAAElgB,EAAE00C,KAAqC,GAAhCl0B,GAAErxB,EAAEC,EAAE4Q,EAAE3X,SAASygB,GAAkB,KAAO,GAAtB9I,EAAEigB,GAAEL,UAAqB5f,EAAI,EAAFA,EAAI,EAAE5Q,EAAEi+B,WAAW,OAAO,CAAC,GAAG,OAAOl+B,GAAG,KAAiB,GAAZA,EAAEk+B,WAAcl+B,EAAE,IAAIA,EAAEC,EAAEu+B,MAAM,OAAOx+B,GAAG,CAAC,GAAG,KAAKA,EAAEw5B,IAAI,OAAOx5B,EAAEo+B,eAAe8mB,GAAGllD,EAAE2Z,QAAQ,GAAG,KAAK3Z,EAAEw5B,IAAI0rB,GAAGllD,EAAE2Z,QAAQ,GAAG,OAAO3Z,EAAEw+B,MAAM,CAACx+B,EAAEw+B,MAAM3E,OAAO75B,EAAEA,EAAEA,EAAEw+B,MAAM,SAAS,GAAGx+B,IAAIC,EAAE,MAAMD,EAAE,KAAK,OAAOA,EAAEy+B,SAAS,CAAC,GAAG,OAAOz+B,EAAE65B,QAAQ75B,EAAE65B,SAAS55B,EAAE,MAAMD,EAAEA,EAAEA,EAAE65B,OAAO75B,EAAEy+B,QAAQ5E,OAAO75B,EAAE65B,OAAO75B,EAAEA,EAAEy+B,QAAQ5tB,GAAG,EAAS,GAAPyf,GAAEQ,GAAEjgB,GAAM,KAAY,EAAP5Q,EAAE8+C,MAAQ9+C,EAAEm+B,cAChf,UAAU,OAAO18B,GAAG,IAAK,WAAqB,IAAViY,EAAE1Z,EAAEu+B,MAAU98B,EAAE,KAAK,OAAOiY,GAAiB,QAAd3Z,EAAE2Z,EAAEskB,YAAoB,OAAO+hB,GAAGhgD,KAAK0B,EAAEiY,GAAGA,EAAEA,EAAE8kB,QAAY,QAAJ9kB,EAAEjY,IAAYA,EAAEzB,EAAEu+B,MAAMv+B,EAAEu+B,MAAM,OAAO98B,EAAEiY,EAAE8kB,QAAQ9kB,EAAE8kB,QAAQ,MAAM0mB,GAAGllD,GAAE,EAAGyB,EAAEiY,EAAEoX,EAAE9wB,EAAEy+C,YAAY,MAAM,IAAK,YAA6B,IAAjB/kC,EAAE,KAAKjY,EAAEzB,EAAEu+B,MAAUv+B,EAAEu+B,MAAM,KAAK,OAAO98B,GAAG,CAAe,GAAG,QAAjB1B,EAAE0B,EAAEu8B,YAAuB,OAAO+hB,GAAGhgD,GAAG,CAACC,EAAEu+B,MAAM98B,EAAE,MAAM1B,EAAE0B,EAAE+8B,QAAQ/8B,EAAE+8B,QAAQ9kB,EAAEA,EAAEjY,EAAEA,EAAE1B,EAAEmlD,GAAGllD,GAAE,EAAG0Z,EAAE,KAAKoX,EAAE9wB,EAAEy+C,YAAY,MAAM,IAAK,WAAWyG,GAAGllD,GAAE,EAAG,KAAK,UAAK,EAAOA,EAAEy+C,YAAY,MAAM,QAAQz+C,EAAEm+B,cAAc,KAAK,OAAOn+B,EAAEu+B,MAC/f,SAASqlB,GAAG7jD,EAAEC,EAAE0Z,GAAG,OAAO3Z,IAAIC,EAAE61B,aAAa91B,EAAE81B,cAAc,IAAIjlB,EAAE5Q,EAAE47C,eAA4B,GAAb,IAAIhrC,GAAGqsC,GAAGrsC,GAAM5Q,EAAEy7C,oBAAoB/hC,EAAE,OAAO,KAAK,GAAG,OAAO3Z,GAAGC,EAAEu+B,QAAQx+B,EAAEw+B,MAAM,MAAMrgC,MAAMixB,EAAE,MAAM,GAAG,OAAOnvB,EAAEu+B,MAAM,CAA4C,IAAjC7kB,EAAEklC,GAAZ7+C,EAAEC,EAAEu+B,MAAax+B,EAAEsjD,cAAcrjD,EAAEu+B,MAAM7kB,EAAMA,EAAEkgB,OAAO55B,EAAE,OAAOD,EAAEy+B,SAASz+B,EAAEA,EAAEy+B,SAAQ9kB,EAAEA,EAAE8kB,QAAQogB,GAAG7+C,EAAEA,EAAEsjD,eAAgBzpB,OAAO55B,EAAE0Z,EAAE8kB,QAAQ,KAAK,OAAOx+B,EAAEu+B,MAK5T,SAASmnB,GAAG3lD,EAAEC,GAAG,OAAOD,EAAEylD,UAAU,IAAK,SAASxlD,EAAED,EAAEulD,KAAK,IAAI,IAAI5rC,EAAE,KAAK,OAAO1Z,GAAG,OAAOA,EAAEg+B,YAAYtkB,EAAE1Z,GAAGA,EAAEA,EAAEw+B,QAAQ,OAAO9kB,EAAE3Z,EAAEulD,KAAK,KAAK5rC,EAAE8kB,QAAQ,KAAK,MAAM,IAAK,YAAY9kB,EAAE3Z,EAAEulD,KAAK,IAAI,IAAI10C,EAAE,KAAK,OAAO8I,GAAG,OAAOA,EAAEskB,YAAYptB,EAAE8I,GAAGA,EAAEA,EAAE8kB,QAAQ,OAAO5tB,EAAE5Q,GAAG,OAAOD,EAAEulD,KAAKvlD,EAAEulD,KAAK,KAAKvlD,EAAEulD,KAAK9mB,QAAQ,KAAK5tB,EAAE4tB,QAAQ,MAC/W,SAASmnB,GAAG5lD,EAAEC,EAAE0Z,GAAG,IAAI9I,EAAE5Q,EAAEqjD,aAAa,OAAOrjD,EAAEu5B,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,OAAO,KAAK,KAAK,EAAE,OAAO7I,GAAE1wB,EAAE2a,OAAO69B,KAAK,KAAK,KAAK,EAAE,OAAOoH,KAAK1vB,GAAEO,IAAGP,GAAEK,KAAG7W,EAAE1Z,EAAEo2B,WAAYouB,iBAAiB9qC,EAAElf,QAAQkf,EAAE8qC,eAAe9qC,EAAE8qC,eAAe,MAAM,OAAOzkD,GAAG,OAAOA,EAAEw+B,QAAQilB,GAAGxjD,KAAKA,EAAEi+B,WAAW,GAAS,KAAK,KAAK,EAAE6hB,GAAG9/C,GAAG0Z,EAAEgmC,GAAGD,GAAGjvB,SAAS,IAAI/uB,EAAEzB,EAAE2a,KAAK,GAAG,OAAO5a,GAAG,MAAMC,EAAEo2B,UAAUsuB,GAAG3kD,EAAEC,EAAEyB,EAAEmP,EAAE8I,GAAG3Z,EAAEqnB,MAAMpnB,EAAEonB,MAAMpnB,EAAEi+B,WAAW,SAAS,CAAC,IAAIrtB,EAAE,CAAC,GAAG,OAAO5Q,EAAEo2B,UAAU,MAAMl4B,MAAMixB,EAAE,MACxgB,OAAO,KAAsB,GAAjBpvB,EAAE2/C,GAAGH,GAAG/uB,SAAYgzB,GAAGxjD,GAAG,CAAC4Q,EAAE5Q,EAAEo2B,UAAU30B,EAAEzB,EAAE2a,KAAK,IAAImW,EAAE9wB,EAAEggD,cAA8B,OAAhBpvC,EAAEo4B,IAAIhpC,EAAE4Q,EAAEq4B,IAAInY,EAASrvB,GAAG,IAAK,SAAS,IAAK,SAAS,IAAK,QAAQquB,GAAE,OAAOlf,GAAG,MAAM,IAAK,QAAQ,IAAK,QAAQ,IAAI7Q,EAAE,EAAEA,EAAE29B,GAAGvlC,OAAO4H,IAAI+vB,GAAE4N,GAAG39B,GAAG6Q,GAAG,MAAM,IAAK,SAASkf,GAAE,QAAQlf,GAAG,MAAM,IAAK,MAAM,IAAK,QAAQ,IAAK,OAAOkf,GAAE,QAAQlf,GAAGkf,GAAE,OAAOlf,GAAG,MAAM,IAAK,OAAOkf,GAAE,QAAQlf,GAAGkf,GAAE,SAASlf,GAAG,MAAM,IAAK,UAAUkf,GAAE,SAASlf,GAAG,MAAM,IAAK,QAAQ+pB,GAAG/pB,EAAEkgB,GAAGhB,GAAE,UAAUlf,GAAG62B,GAAG/tB,EAAE,YAAY,MAAM,IAAK,SAAS9I,EAAE6pB,cAC3e,CAACmrB,cAAc90B,EAAE+0B,UAAU/1B,GAAE,UAAUlf,GAAG62B,GAAG/tB,EAAE,YAAY,MAAM,IAAK,WAAW+hB,GAAG7qB,EAAEkgB,GAAGhB,GAAE,UAAUlf,GAAG62B,GAAG/tB,EAAE,YAA2B,IAAI,IAAIwK,KAAvBmjB,GAAG5lC,EAAEqvB,GAAG/wB,EAAE,KAAkB+wB,EAAE,GAAGA,EAAEv4B,eAAe2rB,GAAG,CAAC,IAAIpR,EAAEge,EAAE5M,GAAG,aAAaA,EAAE,kBAAkBpR,EAAElC,EAAEgrB,cAAc9oB,IAAI/S,EAAE,CAAC,WAAW+S,IAAI,kBAAkBA,GAAGlC,EAAEgrB,cAAc,GAAG9oB,IAAI/S,EAAE,CAAC,WAAW,GAAG+S,IAAI6iB,EAAGp9B,eAAe2rB,IAAI,MAAMpR,GAAG20B,GAAG/tB,EAAEwK,GAAG,OAAOziB,GAAG,IAAK,QAAQu4B,GAAGppB,GAAGqqB,GAAGrqB,EAAEkgB,GAAE,GAAI,MAAM,IAAK,WAAWkJ,GAAGppB,GAAG+qB,GAAG/qB,GAAG,MAAM,IAAK,SAAS,IAAK,SAAS,MAAM,QAAQ,oBAAoBkgB,EAAEh3B,UAC1f8W,EAAEk1C,QAAQpe,IAAIhuB,EAAE3Z,EAAEC,EAAEk8C,YAAYxiC,EAAE,OAAOA,IAAI1Z,EAAEi+B,WAAW,OAAO,CAAuY,OAAtY/Z,EAAE,IAAIxK,EAAEd,SAASc,EAAEA,EAAEwhB,cAAcn7B,IAAIynC,KAAKznC,EAAE+7B,GAAGr6B,IAAI1B,IAAIynC,GAAG,WAAW/lC,IAAG1B,EAAEmkB,EAAEhhB,cAAc,QAASm5B,UAAU,qBAAuBt8B,EAAEA,EAAEw8B,YAAYx8B,EAAEu8B,aAAa,kBAAkB1rB,EAAE22B,GAAGxnC,EAAEmkB,EAAEhhB,cAAczB,EAAE,CAAC8lC,GAAG32B,EAAE22B,MAAMxnC,EAAEmkB,EAAEhhB,cAAczB,GAAG,WAAWA,IAAIyiB,EAAEnkB,EAAE6Q,EAAEi1C,SAAS3hC,EAAE2hC,UAAS,EAAGj1C,EAAEm1C,OAAO7hC,EAAE6hC,KAAKn1C,EAAEm1C,QAAQhmD,EAAEmkB,EAAE8hC,gBAAgBjmD,EAAE0B,GAAG1B,EAAEipC,IAAIhpC,EAAED,EAAEkpC,IAAIr4B,EAAE6zC,GAAG1kD,EAAEC,GAASA,EAAEo2B,UAAUr2B,EAAEmkB,EAAEojB,GAAG7lC,EAAEmP,GAAUnP,GAAG,IAAK,SAAS,IAAK,SAAS,IAAK,QAAQquB,GAAE,OAC9f/vB,GAAG+S,EAAElC,EAAE,MAAM,IAAK,QAAQ,IAAK,QAAQ,IAAIkC,EAAE,EAAEA,EAAE4qB,GAAGvlC,OAAO2a,IAAIgd,GAAE4N,GAAG5qB,GAAG/S,GAAG+S,EAAElC,EAAE,MAAM,IAAK,SAASkf,GAAE,QAAQ/vB,GAAG+S,EAAElC,EAAE,MAAM,IAAK,MAAM,IAAK,QAAQ,IAAK,OAAOkf,GAAE,QAAQ/vB,GAAG+vB,GAAE,OAAO/vB,GAAG+S,EAAElC,EAAE,MAAM,IAAK,OAAOkf,GAAE,QAAQ/vB,GAAG+vB,GAAE,SAAS/vB,GAAG+S,EAAElC,EAAE,MAAM,IAAK,UAAUkf,GAAE,SAAS/vB,GAAG+S,EAAElC,EAAE,MAAM,IAAK,QAAQ+pB,GAAG56B,EAAE6Q,GAAGkC,EAAEynB,GAAGx6B,EAAE6Q,GAAGkf,GAAE,UAAU/vB,GAAG0nC,GAAG/tB,EAAE,YAAY,MAAM,IAAK,SAAS5G,EAAEqoB,GAAGp7B,EAAE6Q,GAAG,MAAM,IAAK,SAAS7Q,EAAE06B,cAAc,CAACmrB,cAAch1C,EAAEi1C,UAAU/yC,EAAEpU,EAAE,GAAGkS,EAAE,CAAC5U,WAAM,IAAS8zB,GAAE,UAAU/vB,GAAG0nC,GAAG/tB,EAAE,YAAY,MAAM,IAAK,WAAW+hB,GAAG17B,EACtgB6Q,GAAGkC,EAAEyoB,GAAGx7B,EAAE6Q,GAAGkf,GAAE,UAAU/vB,GAAG0nC,GAAG/tB,EAAE,YAAY,MAAM,QAAQ5G,EAAElC,EAAEy2B,GAAG5lC,EAAEqR,GAAG,IAAIrU,EAAEqU,EAAE,IAAIge,KAAKryB,EAAE,GAAGA,EAAElG,eAAeu4B,GAAG,CAAC,IAAIhC,EAAErwB,EAAEqyB,GAAG,UAAUA,EAAEwV,GAAGvmC,EAAE+uB,GAAG,4BAA4BgC,EAAuB,OAApBhC,EAAEA,EAAEA,EAAE2Z,YAAO,IAAgBxM,GAAGl8B,EAAE+uB,GAAI,aAAagC,EAAE,kBAAkBhC,GAAG,aAAartB,GAAG,KAAKqtB,IAAI2N,GAAG18B,EAAE+uB,GAAG,kBAAkBA,GAAG2N,GAAG18B,EAAE,GAAG+uB,GAAG,mCAAmCgC,GAAG,6BAA6BA,GAAG,cAAcA,IAAI6E,EAAGp9B,eAAeu4B,GAAG,MAAMhC,GAAG2Y,GAAG/tB,EAAEoX,GAAG,MAAMhC,GAAG+I,EAAG93B,EAAE+wB,EAAEhC,EAAE5K,IAAI,OAAOziB,GAAG,IAAK,QAAQu4B,GAAGj6B,GAAGk7B,GAAGl7B,EAAE6Q,GAAE,GACnf,MAAM,IAAK,WAAWopB,GAAGj6B,GAAG47B,GAAG57B,GAAG,MAAM,IAAK,SAAS,MAAM6Q,EAAE5U,OAAO+D,EAAEm4B,aAAa,QAAQ,GAAG2B,GAAGjpB,EAAE5U,QAAQ,MAAM,IAAK,SAAS+D,EAAE8lD,WAAWj1C,EAAEi1C,SAAmB,OAAVnsC,EAAE9I,EAAE5U,OAAcq/B,GAAGt7B,IAAI6Q,EAAEi1C,SAASnsC,GAAE,GAAI,MAAM9I,EAAEsC,cAAcmoB,GAAGt7B,IAAI6Q,EAAEi1C,SAASj1C,EAAEsC,cAAa,GAAI,MAAM,QAAQ,oBAAoBJ,EAAEhZ,UAAUiG,EAAE+lD,QAAQpe,IAAIY,GAAG7mC,EAAEmP,KAAK5Q,EAAEi+B,WAAW,GAAG,OAAOj+B,EAAEonB,MAAMpnB,EAAEi+B,WAAW,KAAK,OAAO,KAAK,KAAK,EAAE,GAAGl+B,GAAG,MAAMC,EAAEo2B,UAAUuuB,GAAG5kD,EAAEC,EAAED,EAAEigD,cAAcpvC,OAAO,CAAC,GAAG,kBAAkBA,GAAG,OAAO5Q,EAAEo2B,UAAU,MAAMl4B,MAAMixB,EAAE,MACvfzV,EAAEgmC,GAAGD,GAAGjvB,SAASkvB,GAAGH,GAAG/uB,SAASgzB,GAAGxjD,IAAI0Z,EAAE1Z,EAAEo2B,UAAUxlB,EAAE5Q,EAAEggD,cAActmC,EAAEsvB,IAAIhpC,EAAE0Z,EAAEijB,YAAY/rB,IAAI5Q,EAAEi+B,WAAW,MAAKvkB,GAAG,IAAIA,EAAEd,SAASc,EAAEA,EAAEwhB,eAAe+qB,eAAer1C,IAAKo4B,IAAIhpC,EAAEA,EAAEo2B,UAAU1c,GAAG,OAAO,KAAK,KAAK,GAA0B,OAAvBwW,GAAEW,IAAGjgB,EAAE5Q,EAAEm+B,cAAiB,KAAiB,GAAZn+B,EAAEi+B,YAAqBj+B,EAAE47C,eAAeliC,EAAE1Z,IAAE0Z,EAAE,OAAO9I,EAAEA,GAAE,EAAG,OAAO7Q,OAAE,IAASC,EAAEggD,cAAc+E,UAAUvB,GAAGxjD,IAAsB4Q,EAAE,QAApBnP,EAAE1B,EAAEo+B,eAAyBzkB,GAAG,OAAOjY,GAAsB,QAAlBA,EAAE1B,EAAEw+B,MAAMC,WAAmC,QAAhB1N,EAAE9wB,EAAE2+C,cAAsB3+C,EAAE2+C,YAAYl9C,EAAEA,EAAEi9C,WAAW5tB,IAAI9wB,EAAE2+C,YAAY3+C,EAAEy+C,WACtfh9C,EAAEA,EAAEi9C,WAAW,MAAMj9C,EAAEw8B,UAAU,IAAQvkB,IAAI9I,GAAG,KAAY,EAAP5Q,EAAE8+C,QAAW,OAAO/+C,IAAG,IAAKC,EAAEggD,cAAcgF,4BAA4B,KAAe,EAAVn0B,GAAEL,SAAWe,KAAI20B,KAAK30B,GAAE40B,KAAY50B,KAAI20B,IAAI30B,KAAI40B,KAAG50B,GAAE60B,IAAG,IAAIC,IAAI,OAAO50B,KAAI60B,GAAG70B,GAAEC,IAAG60B,GAAG90B,GAAE40B,QAAQ3sC,GAAG9I,KAAE5Q,EAAEi+B,WAAW,GAAS,MAAK,KAAK,EAAE,OAAO2hB,KAAW,KAAK,KAAK,GAAG,OAAOrE,GAAGv7C,GAAG,KAAK,KAAK,GAAG,OAAO0wB,GAAE1wB,EAAE2a,OAAO69B,KAAK,KAAK,KAAK,GAA0B,GAAvBtoB,GAAEW,IAAwB,QAArBjgB,EAAE5Q,EAAEm+B,eAA0B,OAAO,KAA0C,GAArC18B,EAAE,KAAiB,GAAZzB,EAAEi+B,WAA+B,QAAjBnN,EAAElgB,EAAEw0C,YAAsB,GAAG3jD,EAAEikD,GAAG90C,GAAE,QAAS,GAAG2gB,KAAI20B,IAAI,OAAOnmD,GAAG,KAC9e,GADmfA,EAAEk+B,WACjf,IAAInN,EAAE9wB,EAAEu+B,MAAM,OAAOzN,GAAG,CAAS,GAAG,QAAX/wB,EAAEggD,GAAGjvB,IAAe,CAAyJ,IAAxJ9wB,EAAEi+B,WAAW,GAAGynB,GAAG90C,GAAE,GAAoB,QAAhBnP,EAAE1B,EAAEm8C,eAAuBl8C,EAAEk8C,YAAYz6C,EAAEzB,EAAEi+B,WAAW,GAAG,OAAOrtB,EAAE6tC,aAAaz+C,EAAE2+C,YAAY,MAAM3+C,EAAEy+C,WAAW7tC,EAAE6tC,WAAe7tC,EAAE5Q,EAAEu+B,MAAM,OAAO3tB,GAAOkgB,EAAEpX,GAANjY,EAAEmP,GAAQqtB,WAAW,EAAEx8B,EAAEi9C,WAAW,KAAKj9C,EAAEk9C,YAAY,KAAKl9C,EAAEg9C,WAAW,KAAmB,QAAd1+C,EAAE0B,EAAEu8B,YAAoBv8B,EAAEg6C,oBAAoB,EAAEh6C,EAAEm6C,eAAe9qB,EAAErvB,EAAE88B,MAAM,KAAK98B,EAAEu+C,cAAc,KAAKv+C,EAAE08B,cAAc,KAAK18B,EAAEy6C,YAAY,KAAKz6C,EAAEo0B,aAAa,OAAOp0B,EAAEg6C,oBAAoB17C,EAAE07C,oBAC3eh6C,EAAEm6C,eAAe77C,EAAE67C,eAAen6C,EAAE88B,MAAMx+B,EAAEw+B,MAAM98B,EAAEu+C,cAAcjgD,EAAEigD,cAAcv+C,EAAE08B,cAAcp+B,EAAEo+B,cAAc18B,EAAEy6C,YAAYn8C,EAAEm8C,YAAYprB,EAAE/wB,EAAE81B,aAAap0B,EAAEo0B,aAAa,OAAO/E,EAAE,KAAK,CAAC8qB,eAAe9qB,EAAE8qB,eAAeD,aAAa7qB,EAAE6qB,aAAaI,WAAWjrB,EAAEirB,aAAanrC,EAAEA,EAAE4tB,QAA2B,OAAnBnO,GAAEQ,GAAY,EAAVA,GAAEL,QAAU,GAAUxwB,EAAEu+B,MAAMzN,EAAEA,EAAE0N,aAAa,CAAC,IAAI/8B,EAAE,GAAW,QAAR1B,EAAEggD,GAAGjvB,KAAa,GAAG9wB,EAAEi+B,WAAW,GAAGx8B,GAAE,EAAmB,QAAhBiY,EAAE3Z,EAAEm8C,eAAuBl8C,EAAEk8C,YAAYxiC,EAAE1Z,EAAEi+B,WAAW,GAAGynB,GAAG90C,GAAE,GAAI,OAAOA,EAAE00C,MAAM,WAAW10C,EAAE40C,WAAW10B,EAAEkN,UAAU,OACne,QAD0eh+B,EACpgBA,EAAEy+C,WAAW7tC,EAAE6tC,cAAsBz+C,EAAE0+C,WAAW,MAAM,UAAU,EAAElE,KAAK5pC,EAAEy0C,mBAAmBz0C,EAAE20C,gBAAgB,EAAE7rC,IAAI1Z,EAAEi+B,WAAW,GAAGx8B,GAAE,EAAGikD,GAAG90C,GAAE,GAAI5Q,EAAE47C,eAAe57C,EAAEy7C,oBAAoB/hC,EAAE,GAAG9I,EAAEu0C,aAAar0B,EAAE0N,QAAQx+B,EAAEu+B,MAAMv+B,EAAEu+B,MAAMzN,IAAa,QAATpX,EAAE9I,EAAEtR,MAAcoa,EAAE8kB,QAAQ1N,EAAE9wB,EAAEu+B,MAAMzN,EAAElgB,EAAEtR,KAAKwxB,GAAG,OAAO,OAAOlgB,EAAE00C,MAAM,IAAI10C,EAAE20C,iBAAiB30C,EAAE20C,eAAe/K,KAAK,KAAK9gC,EAAE9I,EAAE00C,KAAK10C,EAAEw0C,UAAU1rC,EAAE9I,EAAE00C,KAAK5rC,EAAE8kB,QAAQ5tB,EAAE6tC,WAAWz+C,EAAEy+C,WAAW7tC,EAAEy0C,mBAAmB7K,KAAK9gC,EAAE8kB,QAAQ,KAAKx+B,EAAE6wB,GAAEL,QAAQH,GAAEQ,GAAEpvB,EAAI,EAAFzB,EAAI,EAAI,EAAFA,GAAK0Z,GAAG,KAAK,MAAMxb,MAAMixB,EAAE,IACrgBnvB,EAAEu5B,MAAO,SAASitB,GAAGzmD,GAAG,OAAOA,EAAEw5B,KAAK,KAAK,EAAE7I,GAAE3wB,EAAE4a,OAAO69B,KAAK,IAAIx4C,EAAED,EAAEk+B,UAAU,OAAS,KAAFj+B,GAAQD,EAAEk+B,WAAa,KAAHj+B,EAAQ,GAAGD,GAAG,KAAK,KAAK,EAA+B,GAA7B6/C,KAAK1vB,GAAEO,IAAGP,GAAEK,IAAoB,KAAO,IAAxBvwB,EAAED,EAAEk+B,YAAwB,MAAM//B,MAAMixB,EAAE,MAA6B,OAAvBpvB,EAAEk+B,WAAa,KAAHj+B,EAAQ,GAAUD,EAAE,KAAK,EAAE,OAAO+/C,GAAG//C,GAAG,KAAK,KAAK,GAAG,OAAOmwB,GAAEW,IAAmB,MAAhB7wB,EAAED,EAAEk+B,YAAkBl+B,EAAEk+B,WAAa,KAAHj+B,EAAQ,GAAGD,GAAG,KAAK,KAAK,GAAG,OAAOmwB,GAAEW,IAAG,KAAK,KAAK,EAAE,OAAO+uB,KAAK,KAAK,KAAK,GAAG,OAAOrE,GAAGx7C,GAAG,KAAK,QAAQ,OAAO,MAAM,SAAS0mD,GAAG1mD,EAAEC,GAAG,MAAM,CAAChE,MAAM+D,EAAE3H,OAAO4H,EAAEmuB,MAAMmL,GAAGt5B,IAjBvdykD,GAAG,SAAS1kD,EAAEC,GAAG,IAAI,IAAI0Z,EAAE1Z,EAAEu+B,MAAM,OAAO7kB,GAAG,CAAC,GAAG,IAAIA,EAAE6f,KAAK,IAAI7f,EAAE6f,IAAIx5B,EAAEy8B,YAAY9iB,EAAE0c,gBAAgB,GAAG,IAAI1c,EAAE6f,KAAK,OAAO7f,EAAE6kB,MAAM,CAAC7kB,EAAE6kB,MAAM3E,OAAOlgB,EAAEA,EAAEA,EAAE6kB,MAAM,SAAS,GAAG7kB,IAAI1Z,EAAE,MAAM,KAAK,OAAO0Z,EAAE8kB,SAAS,CAAC,GAAG,OAAO9kB,EAAEkgB,QAAQlgB,EAAEkgB,SAAS55B,EAAE,OAAO0Z,EAAEA,EAAEkgB,OAAOlgB,EAAE8kB,QAAQ5E,OAAOlgB,EAAEkgB,OAAOlgB,EAAEA,EAAE8kB,UAChSkmB,GAAG,SAAS3kD,EAAEC,EAAE0Z,EAAE9I,EAAEnP,GAAG,IAAIqvB,EAAE/wB,EAAEigD,cAAc,GAAGlvB,IAAIlgB,EAAE,CAAC,IAAsWkC,EAAErU,EAApWylB,EAAElkB,EAAEo2B,UAAgC,OAAtBspB,GAAGH,GAAG/uB,SAASzwB,EAAE,KAAY2Z,GAAG,IAAK,QAAQoX,EAAEyJ,GAAGrW,EAAE4M,GAAGlgB,EAAE2pB,GAAGrW,EAAEtT,GAAG7Q,EAAE,GAAG,MAAM,IAAK,SAAS+wB,EAAEqK,GAAGjX,EAAE4M,GAAGlgB,EAAEuqB,GAAGjX,EAAEtT,GAAG7Q,EAAE,GAAG,MAAM,IAAK,SAAS+wB,EAAEpyB,EAAE,GAAGoyB,EAAE,CAAC90B,WAAM,IAAS4U,EAAElS,EAAE,GAAGkS,EAAE,CAAC5U,WAAM,IAAS+D,EAAE,GAAG,MAAM,IAAK,WAAW+wB,EAAEyK,GAAGrX,EAAE4M,GAAGlgB,EAAE2qB,GAAGrX,EAAEtT,GAAG7Q,EAAE,GAAG,MAAM,QAAQ,oBAAoB+wB,EAAEh3B,SAAS,oBAAoB8W,EAAE9W,UAAUoqB,EAAE4hC,QAAQpe,IAA2B,IAAI50B,KAA3Bu0B,GAAG3tB,EAAE9I,GAAW8I,EAAE,KAAcoX,EAAE,IAAIlgB,EAAErY,eAAeua,IAAIge,EAAEv4B,eAAeua,IAAI,MAAMge,EAAEhe,GAAG,GAAG,UAC/eA,EAAE,IAAIrU,KAAKylB,EAAE4M,EAAEhe,GAAKoR,EAAE3rB,eAAekG,KAAKib,IAAIA,EAAE,IAAIA,EAAEjb,GAAG,QAAQ,4BAA4BqU,GAAG,aAAaA,GAAG,mCAAmCA,GAAG,6BAA6BA,GAAG,cAAcA,IAAI6iB,EAAGp9B,eAAeua,GAAG/S,IAAIA,EAAE,KAAKA,EAAEA,GAAG,IAAIyC,KAAKsQ,EAAE,OAAO,IAAIA,KAAKlC,EAAE,CAAC,IAAIke,EAAEle,EAAEkC,GAAyB,GAAtBoR,EAAE,MAAM4M,EAAEA,EAAEhe,QAAG,EAAUlC,EAAErY,eAAeua,IAAIgc,IAAI5K,IAAI,MAAM4K,GAAG,MAAM5K,GAAG,GAAG,UAAUpR,EAAE,GAAGoR,EAAE,CAAC,IAAIzlB,KAAKylB,GAAGA,EAAE3rB,eAAekG,IAAIqwB,GAAGA,EAAEv2B,eAAekG,KAAKib,IAAIA,EAAE,IAAIA,EAAEjb,GAAG,IAAI,IAAIA,KAAKqwB,EAAEA,EAAEv2B,eAAekG,IAAIylB,EAAEzlB,KAAKqwB,EAAErwB,KAAKib,IAAIA,EAAE,IACpfA,EAAEjb,GAAGqwB,EAAErwB,SAASib,IAAI3Z,IAAIA,EAAE,IAAIA,EAAEyC,KAAKsQ,EAAE4G,IAAIA,EAAEoV,MAAM,4BAA4Bhc,GAAGgc,EAAEA,EAAEA,EAAE2Z,YAAO,EAAOvkB,EAAEA,EAAEA,EAAEukB,YAAO,EAAO,MAAM3Z,GAAG5K,IAAI4K,IAAI/uB,EAAEA,GAAG,IAAIyC,KAAKsQ,EAAEgc,IAAI,aAAahc,EAAEoR,IAAI4K,GAAG,kBAAkBA,GAAG,kBAAkBA,IAAI/uB,EAAEA,GAAG,IAAIyC,KAAKsQ,EAAE,GAAGgc,GAAG,mCAAmChc,GAAG,6BAA6BA,IAAI6iB,EAAGp9B,eAAeua,IAAI,MAAMgc,GAAG2Y,GAAGhmC,EAAEqR,GAAG/S,GAAGmkB,IAAI4K,IAAI/uB,EAAE,MAAMA,EAAEA,GAAG,IAAIyC,KAAKsQ,EAAEgc,IAAIpV,IAAI3Z,EAAEA,GAAG,IAAIyC,KAAK,QAAQkX,GAAGjY,EAAE1B,GAAKC,EAAEk8C,YAAYz6C,KAAEzB,EAAEi+B,WAAW,KAC5c0mB,GAAG,SAAS5kD,EAAEC,EAAE0Z,EAAE9I,GAAG8I,IAAI9I,IAAI5Q,EAAEi+B,WAAW,IAc1C,IAAIyoB,GAAG,oBAAoBC,QAAQA,QAAQC,IAAI,SAASC,GAAG9mD,EAAEC,GAAG,IAAI0Z,EAAE1Z,EAAE5H,OAAOwY,EAAE5Q,EAAEmuB,MAAM,OAAOvd,GAAG,OAAO8I,IAAI9I,EAAE0oB,GAAG5f,IAAI,OAAOA,GAAG2f,GAAG3f,EAAEiB,MAAM3a,EAAEA,EAAEhE,MAAM,OAAO+D,GAAG,IAAIA,EAAEw5B,KAAKF,GAAGt5B,EAAE4a,MAAM,IAAItM,QAAQC,MAAMtO,GAAG,MAAMyB,GAAGwL,YAAW,WAAW,MAAMxL,MAAsH,SAASqlD,GAAG/mD,GAAG,IAAIC,EAAED,EAAEqnB,IAAI,GAAG,OAAOpnB,EAAE,GAAG,oBAAoBA,EAAE,IAAIA,EAAE,MAAM,MAAM0Z,GAAGqtC,GAAGhnD,EAAE2Z,QAAQ1Z,EAAEwwB,QAAQ,KACld,SAASw2B,GAAGjnD,EAAEC,GAAG,OAAOA,EAAEu5B,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,KAAK,EAAE,GAAe,IAAZv5B,EAAEi+B,WAAe,OAAOl+B,EAAE,CAAC,IAAI2Z,EAAE3Z,EAAEigD,cAAcpvC,EAAE7Q,EAAEo+B,cAA4Bn+B,GAAdD,EAAEC,EAAEo2B,WAAc6nB,wBAAwBj+C,EAAE++C,cAAc/+C,EAAE2a,KAAKjB,EAAEuhC,GAAGj7C,EAAE2a,KAAKjB,GAAG9I,GAAG7Q,EAAEknD,oCAAoCjnD,EAAE,OAAO,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,MAAM9B,MAAMixB,EAAE,MAC7U,SAAS+3B,GAAGnnD,EAAEC,GAAgD,GAAG,QAAhCA,EAAE,QAAlBA,EAAEA,EAAEk8C,aAAuBl8C,EAAEy+C,WAAW,MAAiB,CAAC,IAAI/kC,EAAE1Z,EAAEA,EAAEuX,KAAK,EAAE,CAAC,IAAImC,EAAE6f,IAAIx5B,KAAKA,EAAE,CAAC,IAAI6Q,EAAE8I,EAAEkoC,QAAQloC,EAAEkoC,aAAQ,OAAO,IAAShxC,GAAGA,IAAI8I,EAAEA,EAAEnC,WAAWmC,IAAI1Z,IAAI,SAASmnD,GAAGpnD,EAAEC,GAAgD,GAAG,QAAhCA,EAAE,QAAlBA,EAAEA,EAAEk8C,aAAuBl8C,EAAEy+C,WAAW,MAAiB,CAAC,IAAI/kC,EAAE1Z,EAAEA,EAAEuX,KAAK,EAAE,CAAC,IAAImC,EAAE6f,IAAIx5B,KAAKA,EAAE,CAAC,IAAI6Q,EAAE8I,EAAE9b,OAAO8b,EAAEkoC,QAAQhxC,IAAI8I,EAAEA,EAAEnC,WAAWmC,IAAI1Z,IACtV,SAASonD,GAAGrnD,EAAEC,EAAE0Z,GAAG,OAAOA,EAAE6f,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAW,YAAR4tB,GAAG,EAAEztC,GAAU,KAAK,EAAgB,GAAd3Z,EAAE2Z,EAAE0c,UAAyB,EAAZ1c,EAAEukB,UAAY,GAAG,OAAOj+B,EAAED,EAAE0U,wBAAwB,CAAC,IAAI7D,EAAE8I,EAAEqlC,cAAcrlC,EAAEiB,KAAK3a,EAAEggD,cAAc/E,GAAGvhC,EAAEiB,KAAK3a,EAAEggD,eAAejgD,EAAEskD,mBAAmBzzC,EAAE5Q,EAAEm+B,cAAcp+B,EAAEknD,qCAAyE,YAApB,QAAhBjnD,EAAE0Z,EAAEwiC,cAAsBgB,GAAGxjC,EAAE1Z,EAAED,IAAU,KAAK,EAAkB,GAAG,QAAnBC,EAAE0Z,EAAEwiC,aAAwB,CAAQ,GAAPn8C,EAAE,KAAQ,OAAO2Z,EAAE6kB,MAAM,OAAO7kB,EAAE6kB,MAAMhF,KAAK,KAAK,EAAEx5B,EAAE2Z,EAAE6kB,MAAMnI,UAAU,MAAM,KAAK,EAAEr2B,EAAE2Z,EAAE6kB,MAAMnI,UAAU8mB,GAAGxjC,EAAE1Z,EAAED,GAAG,OACpf,KAAK,EAA+E,OAA7EA,EAAE2Z,EAAE0c,eAAU,OAAOp2B,GAAe,EAAZ0Z,EAAEukB,WAAaqK,GAAG5uB,EAAEiB,KAAKjB,EAAEsmC,gBAAgBjgD,EAAE4M,SAAe,KAAK,EAAS,KAAK,EAAS,KAAK,GAAG,OAAO,KAAK,GAAoH,YAAjH,OAAO+M,EAAEykB,gBAAgBzkB,EAAEA,EAAEskB,UAAU,OAAOtkB,IAAIA,EAAEA,EAAEykB,cAAc,OAAOzkB,IAAIA,EAAEA,EAAE0kB,WAAW,OAAO1kB,GAAG6oB,GAAG7oB,OAAa,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,MAAMxb,MAAMixB,EAAE,MAC3T,SAASk4B,GAAGtnD,EAAEC,EAAE0Z,GAAiC,OAA9B,oBAAoB4tC,IAAIA,GAAGtnD,GAAUA,EAAEu5B,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAmB,GAAG,QAAnBx5B,EAAEC,EAAEk8C,cAAyC,QAAfn8C,EAAEA,EAAE0+C,YAAqB,CAAC,IAAI7tC,EAAE7Q,EAAEwX,KAAKojC,GAAG,GAAGjhC,EAAE,GAAGA,GAAE,WAAW,IAAI3Z,EAAE6Q,EAAE,EAAE,CAAC,IAAI8I,EAAE3Z,EAAE6hD,QAAQ,QAAG,IAASloC,EAAE,CAAC,IAAIwK,EAAElkB,EAAE,IAAI0Z,IAAI,MAAM5G,GAAGi0C,GAAG7iC,EAAEpR,IAAI/S,EAAEA,EAAEwX,WAAWxX,IAAI6Q,MAAK,MAAM,KAAK,EAAEk2C,GAAG9mD,GAAiB,oBAAd0Z,EAAE1Z,EAAEo2B,WAAgC1hB,sBALxG,SAAY3U,EAAEC,GAAG,IAAIA,EAAE9G,MAAM6G,EAAEigD,cAAchgD,EAAEoB,MAAMrB,EAAEo+B,cAAcn+B,EAAE0U,uBAAuB,MAAMgF,GAAGqtC,GAAGhnD,EAAE2Z,IAKkB6tC,CAAGvnD,EAAE0Z,GAAG,MAAM,KAAK,EAAEotC,GAAG9mD,GAAG,MAAM,KAAK,EAAEwnD,GAAGznD,EAAEC,EAAE0Z,IACna,SAAS+tC,GAAG1nD,GAAG,IAAIC,EAAED,EAAEi+B,UAAUj+B,EAAE65B,OAAO,KAAK75B,EAAEw+B,MAAM,KAAKx+B,EAAEo+B,cAAc,KAAKp+B,EAAEm8C,YAAY,KAAKn8C,EAAE81B,aAAa,KAAK91B,EAAEi+B,UAAU,KAAKj+B,EAAE4+C,YAAY,KAAK5+C,EAAE0+C,WAAW,KAAK1+C,EAAEsjD,aAAa,KAAKtjD,EAAEigD,cAAc,KAAKjgD,EAAEq2B,UAAU,KAAK,OAAOp2B,GAAGynD,GAAGznD,GAAG,SAAS0nD,GAAG3nD,GAAG,OAAO,IAAIA,EAAEw5B,KAAK,IAAIx5B,EAAEw5B,KAAK,IAAIx5B,EAAEw5B,IAC1S,SAASouB,GAAG5nD,GAAGA,EAAE,CAAC,IAAI,IAAIC,EAAED,EAAE65B,OAAO,OAAO55B,GAAG,CAAC,GAAG0nD,GAAG1nD,GAAG,CAAC,IAAI0Z,EAAE1Z,EAAE,MAAMD,EAAEC,EAAEA,EAAE45B,OAAO,MAAM17B,MAAMixB,EAAE,MAAqB,OAAdnvB,EAAE0Z,EAAE0c,UAAiB1c,EAAE6f,KAAK,KAAK,EAAE,IAAI3oB,GAAE,EAAG,MAAM,KAAK,EAA+B,KAAK,EAAE5Q,EAAEA,EAAEkgC,cAActvB,GAAE,EAAG,MAAM,QAAQ,MAAM1S,MAAMixB,EAAE,MAAmB,GAAZzV,EAAEukB,YAAexB,GAAGz8B,EAAE,IAAI0Z,EAAEukB,YAAY,IAAIl+B,EAAEC,EAAE,IAAI0Z,EAAE3Z,IAAI,CAAC,KAAK,OAAO2Z,EAAE8kB,SAAS,CAAC,GAAG,OAAO9kB,EAAEkgB,QAAQ8tB,GAAGhuC,EAAEkgB,QAAQ,CAAClgB,EAAE,KAAK,MAAM3Z,EAAE2Z,EAAEA,EAAEkgB,OAAiC,IAA1BlgB,EAAE8kB,QAAQ5E,OAAOlgB,EAAEkgB,OAAWlgB,EAAEA,EAAE8kB,QAAQ,IAAI9kB,EAAE6f,KAAK,IAAI7f,EAAE6f,KAAK,KAAK7f,EAAE6f,KAAK,CAAC,GAAe,EAAZ7f,EAAEukB,UAAY,SAASj+B,EACvf,GAAG,OAAO0Z,EAAE6kB,OAAO,IAAI7kB,EAAE6f,IAAI,SAASv5B,EAAO0Z,EAAE6kB,MAAM3E,OAAOlgB,EAAEA,EAAEA,EAAE6kB,MAAM,KAAiB,EAAZ7kB,EAAEukB,WAAa,CAACvkB,EAAEA,EAAE0c,UAAU,MAAMr2B,GAAG6Q,EACpH,SAASg3C,EAAG7nD,EAAEC,EAAE0Z,GAAG,IAAI9I,EAAE7Q,EAAEw5B,IAAI93B,EAAE,IAAImP,GAAG,IAAIA,EAAE,GAAGnP,EAAE1B,EAAE0B,EAAE1B,EAAEq2B,UAAUr2B,EAAEq2B,UAAUtrB,SAAS9K,EAAE,IAAI0Z,EAAEd,SAASc,EAAE6lB,WAAWsoB,aAAa9nD,EAAEC,GAAG0Z,EAAEmuC,aAAa9nD,EAAEC,IAAI,IAAI0Z,EAAEd,UAAU5Y,EAAE0Z,EAAE6lB,YAAasoB,aAAa9nD,EAAE2Z,IAAK1Z,EAAE0Z,GAAI8iB,YAAYz8B,GAA4B,QAAxB2Z,EAAEA,EAAEouC,2BAA8B,IAASpuC,GAAG,OAAO1Z,EAAE8lD,UAAU9lD,EAAE8lD,QAAQpe,UAAU,GAAG,IAAI92B,GAAc,QAAV7Q,EAAEA,EAAEw+B,OAAgB,IAAIqpB,EAAG7nD,EAAEC,EAAE0Z,GAAG3Z,EAAEA,EAAEy+B,QAAQ,OAAOz+B,GAAG6nD,EAAG7nD,EAAEC,EAAE0Z,GAAG3Z,EAAEA,EAAEy+B,QADxRopB,CAAG7nD,EAAE2Z,EAAE1Z,GAE7H,SAAS+nD,EAAGhoD,EAAEC,EAAE0Z,GAAG,IAAI9I,EAAE7Q,EAAEw5B,IAAI93B,EAAE,IAAImP,GAAG,IAAIA,EAAE,GAAGnP,EAAE1B,EAAE0B,EAAE1B,EAAEq2B,UAAUr2B,EAAEq2B,UAAUtrB,SAAS9K,EAAE0Z,EAAEmuC,aAAa9nD,EAAEC,GAAG0Z,EAAE8iB,YAAYz8B,QAAQ,GAAG,IAAI6Q,GAAc,QAAV7Q,EAAEA,EAAEw+B,OAAgB,IAAIwpB,EAAGhoD,EAAEC,EAAE0Z,GAAG3Z,EAAEA,EAAEy+B,QAAQ,OAAOz+B,GAAGgoD,EAAGhoD,EAAEC,EAAE0Z,GAAG3Z,EAAEA,EAAEy+B,QAFrFupB,CAAGhoD,EAAE2Z,EAAE1Z,GAGvI,SAASwnD,GAAGznD,EAAEC,EAAE0Z,GAAG,IAAI,IAAaoX,EAAE5M,EAAXtT,EAAE5Q,EAAEyB,GAAE,IAAS,CAAC,IAAIA,EAAE,CAACA,EAAEmP,EAAEgpB,OAAO75B,EAAE,OAAO,CAAC,GAAG,OAAO0B,EAAE,MAAMvD,MAAMixB,EAAE,MAAoB,OAAd2B,EAAErvB,EAAE20B,UAAiB30B,EAAE83B,KAAK,KAAK,EAAErV,GAAE,EAAG,MAAMnkB,EAAE,KAAK,EAAiC,KAAK,EAAE+wB,EAAEA,EAAEoP,cAAchc,GAAE,EAAG,MAAMnkB,EAAE0B,EAAEA,EAAEm4B,OAAOn4B,GAAE,EAAG,GAAG,IAAImP,EAAE2oB,KAAK,IAAI3oB,EAAE2oB,IAAI,CAACx5B,EAAE,IAAI,IAAI+S,EAAE/S,EAAEtB,EAAEmS,EAAEke,EAAEpV,EAAEyH,EAAE1iB,IAAI,GAAG4oD,GAAGv0C,EAAEqO,EAAE2N,GAAG,OAAO3N,EAAEod,OAAO,IAAIpd,EAAEoY,IAAIpY,EAAEod,MAAM3E,OAAOzY,EAAEA,EAAEA,EAAEod,UAAU,CAAC,GAAGpd,IAAI1iB,EAAE,MAAMsB,EAAE,KAAK,OAAOohB,EAAEqd,SAAS,CAAC,GAAG,OAAOrd,EAAEyY,QAAQzY,EAAEyY,SAASn7B,EAAE,MAAMsB,EAAEohB,EAAEA,EAAEyY,OAAOzY,EAAEqd,QAAQ5E,OAAOzY,EAAEyY,OAAOzY,EAAEA,EAAEqd,QAAQta,GAAGpR,EACrfge,EAAEryB,EAAEmS,EAAEwlB,UAAU,IAAItjB,EAAE8F,SAAS9F,EAAEysB,WAAWhD,YAAY99B,GAAGqU,EAAEypB,YAAY99B,IAAIqyB,EAAEyL,YAAY3rB,EAAEwlB,gBAAgB,GAAG,IAAIxlB,EAAE2oB,KAAK,GAAG,OAAO3oB,EAAE2tB,MAAM,CAACzN,EAAElgB,EAAEwlB,UAAU8J,cAAchc,GAAE,EAAGtT,EAAE2tB,MAAM3E,OAAOhpB,EAAEA,EAAEA,EAAE2tB,MAAM,eAAe,GAAG8oB,GAAGtnD,EAAE6Q,EAAE8I,GAAG,OAAO9I,EAAE2tB,MAAM,CAAC3tB,EAAE2tB,MAAM3E,OAAOhpB,EAAEA,EAAEA,EAAE2tB,MAAM,SAAS,GAAG3tB,IAAI5Q,EAAE,MAAM,KAAK,OAAO4Q,EAAE4tB,SAAS,CAAC,GAAG,OAAO5tB,EAAEgpB,QAAQhpB,EAAEgpB,SAAS55B,EAAE,OAAkB,KAAX4Q,EAAEA,EAAEgpB,QAAaL,MAAM93B,GAAE,GAAImP,EAAE4tB,QAAQ5E,OAAOhpB,EAAEgpB,OAAOhpB,EAAEA,EAAE4tB,SACpa,SAASwpB,GAAGjoD,EAAEC,GAAG,OAAOA,EAAEu5B,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAW,YAAR2tB,GAAG,EAAElnD,GAAU,KAAK,EAAE,OAAO,KAAK,EAAE,IAAI0Z,EAAE1Z,EAAEo2B,UAAU,GAAG,MAAM1c,EAAE,CAAC,IAAI9I,EAAE5Q,EAAEggD,cAAcv+C,EAAE,OAAO1B,EAAEA,EAAEigD,cAAcpvC,EAAE7Q,EAAEC,EAAE2a,KAAK,IAAImW,EAAE9wB,EAAEk8C,YAA+B,GAAnBl8C,EAAEk8C,YAAY,KAAQ,OAAOprB,EAAE,CAAgF,IAA/EpX,EAAEuvB,IAAIr4B,EAAE,UAAU7Q,GAAG,UAAU6Q,EAAE+J,MAAM,MAAM/J,EAAEgE,MAAMkmB,GAAGphB,EAAE9I,GAAG02B,GAAGvnC,EAAE0B,GAAGzB,EAAEsnC,GAAGvnC,EAAE6Q,GAAOnP,EAAE,EAAEA,EAAEqvB,EAAE34B,OAAOsJ,GAAG,EAAE,CAAC,IAAIyiB,EAAE4M,EAAErvB,GAAGqR,EAAEge,EAAErvB,EAAE,GAAG,UAAUyiB,EAAEoiB,GAAG5sB,EAAE5G,GAAG,4BAA4BoR,EAAE+X,GAAGviB,EAAE5G,GAAG,aAAaoR,EAAEuY,GAAG/iB,EAAE5G,GAAG+kB,EAAGne,EAAEwK,EAAEpR,EAAE9S,GAAG,OAAOD,GAAG,IAAK,QAAQg7B,GAAGrhB,EAAE9I,GAAG,MAChf,IAAK,WAAW8qB,GAAGhiB,EAAE9I,GAAG,MAAM,IAAK,SAAS5Q,EAAE0Z,EAAE+gB,cAAcmrB,YAAYlsC,EAAE+gB,cAAcmrB,cAAch1C,EAAEi1C,SAAmB,OAAV9lD,EAAE6Q,EAAE5U,OAAcq/B,GAAG3hB,IAAI9I,EAAEi1C,SAAS9lD,GAAE,GAAIC,MAAM4Q,EAAEi1C,WAAW,MAAMj1C,EAAEsC,aAAamoB,GAAG3hB,IAAI9I,EAAEi1C,SAASj1C,EAAEsC,cAAa,GAAImoB,GAAG3hB,IAAI9I,EAAEi1C,SAASj1C,EAAEi1C,SAAS,GAAG,IAAG,MAAO,OAAO,KAAK,EAAE,GAAG,OAAO7lD,EAAEo2B,UAAU,MAAMl4B,MAAMixB,EAAE,MAA4C,YAAtCnvB,EAAEo2B,UAAUuG,UAAU38B,EAAEggD,eAAqB,KAAK,EAA8D,aAA5DhgD,EAAEA,EAAEo2B,WAAY0L,UAAU9hC,EAAE8hC,SAAQ,EAAGS,GAAGviC,EAAEkgC,iBAAuB,KAAK,GAAG,OAAO,KAAK,GACzb,GAD4bxmB,EAAE1Z,EAAE,OAAOA,EAAEm+B,cACvevtB,GAAE,GAAIA,GAAE,EAAG8I,EAAE1Z,EAAEu+B,MAAM0pB,GAAGzN,MAAS,OAAO9gC,EAAE3Z,EAAE,IAAIA,EAAE2Z,IAAI,CAAC,GAAG,IAAI3Z,EAAEw5B,IAAIzI,EAAE/wB,EAAEq2B,UAAUxlB,EAAa,oBAAVkgB,EAAEA,EAAEv1B,OAA4BgrC,YAAYzV,EAAEyV,YAAY,UAAU,OAAO,aAAazV,EAAEo3B,QAAQ,QAASp3B,EAAE/wB,EAAEq2B,UAAkC30B,OAAE,KAA1BA,EAAE1B,EAAEigD,cAAczkD,QAAoB,OAAOkG,GAAGA,EAAElJ,eAAe,WAAWkJ,EAAEymD,QAAQ,KAAKp3B,EAAEv1B,MAAM2sD,QAAQ7hB,GAAG,UAAU5kC,SAAS,GAAG,IAAI1B,EAAEw5B,IAAIx5B,EAAEq2B,UAAUuG,UAAU/rB,EAAE,GAAG7Q,EAAEigD,kBAAmB,IAAG,KAAKjgD,EAAEw5B,KAAK,OAAOx5B,EAAEo+B,eAAe,OAAOp+B,EAAEo+B,cAAcC,WAAW,EAACtN,EAAE/wB,EAAEw+B,MAAMC,SAAU5E,OAAO75B,EAAEA,EACnf+wB,EAAE,SAAc,GAAG,OAAO/wB,EAAEw+B,MAAM,CAACx+B,EAAEw+B,MAAM3E,OAAO75B,EAAEA,EAAEA,EAAEw+B,MAAM,UAAS,GAAGx+B,IAAI2Z,EAAE,MAAM,KAAK,OAAO3Z,EAAEy+B,SAAS,CAAC,GAAG,OAAOz+B,EAAE65B,QAAQ75B,EAAE65B,SAASlgB,EAAE,MAAM3Z,EAAEA,EAAEA,EAAE65B,OAAO75B,EAAEy+B,QAAQ5E,OAAO75B,EAAE65B,OAAO75B,EAAEA,EAAEy+B,QAAc,YAAN2pB,GAAGnoD,GAAU,KAAK,GAAS,YAANmoD,GAAGnoD,GAAU,KAAK,GAAG,OAAO,MAAM9B,MAAMixB,EAAE,MAAO,SAASg5B,GAAGpoD,GAAG,IAAIC,EAAED,EAAEm8C,YAAY,GAAG,OAAOl8C,EAAE,CAACD,EAAEm8C,YAAY,KAAK,IAAIxiC,EAAE3Z,EAAEq2B,UAAU,OAAO1c,IAAIA,EAAE3Z,EAAEq2B,UAAU,IAAIswB,IAAI1mD,EAAE8C,SAAQ,SAAS9C,GAAG,IAAI4Q,EAAEw3C,GAAG74C,KAAK,KAAKxP,EAAEC,GAAG0Z,EAAE2mB,IAAIrgC,KAAK0Z,EAAE2uC,IAAIroD,GAAGA,EAAEsoD,KAAK13C,EAAEA,QAC/c,IAAI23C,GAAG,oBAAoB3qB,QAAQA,QAAQC,IAAI,SAAS2qB,GAAGzoD,EAAEC,EAAE0Z,IAAGA,EAAE+iC,GAAG/iC,EAAE,OAAQ6f,IAAI,EAAE7f,EAAEijC,QAAQ,CAAC3qC,QAAQ,MAAM,IAAIpB,EAAE5Q,EAAEhE,MAAsD,OAAhD0d,EAAEtX,SAAS,WAAWqmD,KAAKA,IAAG,EAAGC,GAAG93C,GAAGi2C,GAAG9mD,EAAEC,IAAW0Z,EACrL,SAASivC,GAAG5oD,EAAEC,EAAE0Z,IAAGA,EAAE+iC,GAAG/iC,EAAE,OAAQ6f,IAAI,EAAE,IAAI3oB,EAAE7Q,EAAE4a,KAAKH,yBAAyB,GAAG,oBAAoB5J,EAAE,CAAC,IAAInP,EAAEzB,EAAEhE,MAAM0d,EAAEijC,QAAQ,WAAmB,OAARkK,GAAG9mD,EAAEC,GAAU4Q,EAAEnP,IAAI,IAAIqvB,EAAE/wB,EAAEq2B,UAA8O,OAApO,OAAOtF,GAAG,oBAAoBA,EAAE83B,oBAAoBlvC,EAAEtX,SAAS,WAAW,oBAAoBwO,IAAI,OAAOi4C,GAAGA,GAAG,IAAIjC,IAAI,CAACluD,OAAOmwD,GAAGR,IAAI3vD,MAAMmuD,GAAG9mD,EAAEC,IAAI,IAAI0Z,EAAE1Z,EAAEmuB,MAAMz1B,KAAKkwD,kBAAkB5oD,EAAEhE,MAAM,CAAC8sD,eAAe,OAAOpvC,EAAEA,EAAE,OAAcA,EAC7Z,IA+B+TqvC,GA/B3TC,GAAGtkD,KAAK6gB,KAAK0jC,GAAGrxB,EAAGzF,uBAAuB+2B,GAAGtxB,EAAGtF,kBAAuC4zB,GAAG,EAAYC,GAAG,EAAEC,GAAG,EAAOx0B,GAAjD,EAAqDH,GAAE,KAAKK,GAAE,KAAKJ,GAAE,EAAEH,GAAE20B,GAAGiD,GAAG,KAAKC,GAAG,WAAWC,GAAG,WAAWC,GAAG,KAAKjD,GAAG,EAAEkD,IAAG,EAAGtB,GAAG,EAASj2B,GAAE,KAAKy2B,IAAG,EAAGC,GAAG,KAAKG,GAAG,KAAKW,IAAG,EAAGC,GAAG,KAAKC,GAAG,GAAGC,GAAG,KAAKC,GAAG,EAAEC,GAAG,KAAKC,GAAG,EAAE,SAAStM,KAAK,OAAxO,KAAgP,GAAD5rB,IAAe,YAAY4oB,KAAK,GAAG,GAAG,IAAIsP,GAAGA,GAAGA,GAAG,YAAYtP,KAAK,GAAG,GAC9X,SAASiD,GAAG19C,EAAEC,EAAE0Z,GAAY,GAAG,KAAO,GAAnB1Z,EAAEA,EAAE8+C,OAAkB,OAAO,WAAW,IAAIluC,EAAE6pC,KAAK,GAAG,KAAO,EAAFz6C,GAAK,OAAO,KAAK4Q,EAAE,WAAW,WAAW,GAD/C,KAAU,GACyCghB,IAAU,OAAOF,GAAE,GAAG,OAAOhY,EAAE3Z,EAAEi7C,GAAGj7C,EAAc,EAAZ2Z,EAAEqwC,WAAa,IAAI,UAAU,OAAOn5C,GAAG,KAAK,GAAG7Q,EAAE,WAAW,MAAM,KAAK,GAAGA,EAAEi7C,GAAGj7C,EAAE,IAAI,KAAK,MAAM,KAAK,GAAG,KAAK,GAAGA,EAAEi7C,GAAGj7C,EAAE,IAAI,KAAK,MAAM,KAAK,GAAGA,EAAE,EAAE,MAAM,QAAQ,MAAM7B,MAAMixB,EAAE,MAA4B,OAArB,OAAOsC,IAAG1xB,IAAI2xB,MAAK3xB,EAASA,EAClX,SAAS29C,GAAG39C,EAAEC,GAAG,GAAG,GAAG4pD,GAAG,MAAMA,GAAG,EAAEC,GAAG,KAAK3rD,MAAMixB,EAAE,MAAgB,GAAG,QAAbpvB,EAAEiqD,GAAGjqD,EAAEC,IAAe,CAAC,IAAI0Z,EAAE+gC,KAAK,aAAaz6C,EAFlC,KAAK,EAEgC4xB,KAFrC,KAEkD,GAADA,IAAeq4B,GAAGlqD,IAAIkyB,GAAElyB,GAFzE,IAE4E6xB,IAAOmpB,MAAM9oB,GAAElyB,GAF3F,KAEiG,EAAF6xB,KAAU,KAAKlY,GAAG,KAAKA,IAAI,OAAOiwC,GAAGA,GAAG,IAAI9rB,IAAI,CAAC,CAAC99B,EAAEC,WAAmB,KAAb0Z,EAAEiwC,GAAG/9C,IAAI7L,KAAgB2Z,EAAE1Z,IAAI2pD,GAAGz8C,IAAInN,EAAEC,KACzQ,SAASgqD,GAAGjqD,EAAEC,GAAGD,EAAE67C,eAAe57C,IAAID,EAAE67C,eAAe57C,GAAG,IAAI0Z,EAAE3Z,EAAEi+B,UAAU,OAAOtkB,GAAGA,EAAEkiC,eAAe57C,IAAI0Z,EAAEkiC,eAAe57C,GAAG,IAAI4Q,EAAE7Q,EAAE65B,OAAOn4B,EAAE,KAAK,GAAG,OAAOmP,GAAG,IAAI7Q,EAAEw5B,IAAI93B,EAAE1B,EAAEq2B,eAAe,KAAK,OAAOxlB,GAAG,CAA+H,GAA9H8I,EAAE9I,EAAEotB,UAAUptB,EAAE6qC,oBAAoBz7C,IAAI4Q,EAAE6qC,oBAAoBz7C,GAAG,OAAO0Z,GAAGA,EAAE+hC,oBAAoBz7C,IAAI0Z,EAAE+hC,oBAAoBz7C,GAAM,OAAO4Q,EAAEgpB,QAAQ,IAAIhpB,EAAE2oB,IAAI,CAAC93B,EAAEmP,EAAEwlB,UAAU,MAAMxlB,EAAEA,EAAEgpB,OAA0D,OAAnD,OAAOn4B,IAAIgwB,KAAIhwB,IAAIw7C,GAAGj9C,GAAGuxB,KAAI60B,IAAIE,GAAG7kD,EAAEiwB,KAAI60B,GAAG9kD,EAAEzB,IAAWyB,EACrc,SAASyoD,GAAGnqD,GAAG,IAAIC,EAAED,EAAEoqD,gBAAgB,GAAG,IAAInqD,EAAE,OAAOA,EAAuB,IAAIoqD,GAAGrqD,EAA5BC,EAAED,EAAEsqD,kBAA6B,OAAOrqD,EAAE,IAAI0Z,EAAE3Z,EAAEuqD,eAAmD,OAAO,IAAjBvqD,EAAE2Z,GAA5B3Z,EAAEA,EAAEwqD,uBAA4B7wC,EAAE3Z,IAAeC,IAAID,EAAE,EAAEA,EACnL,SAASkyB,GAAElyB,GAAG,GAAG,IAAIA,EAAEoqD,gBAAgBpqD,EAAEyqD,uBAAuB,WAAWzqD,EAAE0qD,iBAAiB,GAAG1qD,EAAE2qD,aAAa7P,GAAGoP,GAAG16C,KAAK,KAAKxP,QAAQ,CAAC,IAAIC,EAAEkqD,GAAGnqD,GAAG2Z,EAAE3Z,EAAE2qD,aAAa,GAAG,IAAI1qD,EAAE,OAAO0Z,IAAI3Z,EAAE2qD,aAAa,KAAK3qD,EAAEyqD,uBAAuB,EAAEzqD,EAAE0qD,iBAAiB,QAAQ,CAAC,IAAI75C,EAAE4sC,KAAqH,GAAhH,aAAax9C,EAAE4Q,EAAE,GAAG,IAAI5Q,GAAG,IAAIA,EAAE4Q,EAAE,GAA0CA,EAAE,IAAxCA,EAAE,IAAI,WAAW5Q,GAAG,IAAI,WAAW4Q,IAAU,GAAG,KAAKA,EAAE,GAAG,MAAMA,EAAE,GAAG,GAAO,OAAO8I,EAAE,CAAC,IAAIjY,EAAE1B,EAAE0qD,iBAAiB,GAAG1qD,EAAEyqD,yBAAyBxqD,GAAGyB,GAAGmP,EAAE,OAAO8I,IAAIsgC,IAAIhB,GAAGt/B,GAAG3Z,EAAEyqD,uBACnexqD,EAAED,EAAE0qD,iBAAiB75C,EAAE5Q,EAAE,aAAaA,EAAE66C,GAAGoP,GAAG16C,KAAK,KAAKxP,IAAI66C,GAAGhqC,EAAE+5C,GAAGp7C,KAAK,KAAKxP,GAAG,CAAC6qD,QAAQ,IAAI,WAAW5qD,GAAGw6C,OAAOz6C,EAAE2qD,aAAa1qD,IAClI,SAAS2qD,GAAG5qD,EAAEC,GAAQ,GAAL8pD,GAAG,EAAK9pD,EAAE,OAAc6qD,GAAG9qD,EAAVC,EAAEw9C,MAAavrB,GAAElyB,GAAG,KAAK,IAAI2Z,EAAEwwC,GAAGnqD,GAAG,GAAG,IAAI2Z,EAAE,CAAkB,GAAjB1Z,EAAED,EAAE2qD,aAPb,KAO+B,GAAD94B,IAAe,MAAM1zB,MAAMixB,EAAE,MAAiC,GAA3B27B,KAAK/qD,IAAI0xB,IAAG/X,IAAIgY,IAAGq5B,GAAGhrD,EAAE2Z,GAAM,OAAOoY,GAAE,CAAC,IAAIlhB,EAAEghB,GAAEA,IAPvG,GAOwH,IAAX,IAAInwB,EAAEupD,OAAQ,IAAIC,KAAK,MAAM,MAAMn4C,GAAGo4C,GAAGnrD,EAAE+S,GAAkC,GAAtBwoC,KAAK1pB,GAAEhhB,EAAEq4C,GAAGz4B,QAAQ/uB,EAPvK,IAO4K8vB,GAAO,MAAMvxB,EAAEmpD,GAAG4B,GAAGhrD,EAAE2Z,GAAG4sC,GAAGvmD,EAAE2Z,GAAGuY,GAAElyB,GAAGC,EAAE,GAAG,OAAO8xB,GAAE,OAAOrwB,EAAE1B,EAAEorD,aAAaprD,EAAEywB,QAAQwN,UAAUj+B,EAAEqrD,uBAAuB1xC,EAAE9I,EAAE2gB,GAAEE,GAAE,KAAK7gB,GAAG,KAAKs1C,GAAG,KAP9T,EAOsU,MAAMhoD,MAAMixB,EAAE,MAAM,KAPrV,EAO6V07B,GAAG9qD,EAAE,EAAE2Z,EAAE,EAAEA,GAAG,MAAM,KAAKysC,GACvb,GAD0bG,GAAGvmD,EAAE2Z,GACteA,KADye9I,EAAE7Q,EAAEsrD,qBACretrD,EAAEwqD,sBAAsBe,GAAG7pD,IAAO,aAAa2nD,IAAkB,IAAb3nD,EAAEwmD,GARqJ,IAQ/IzN,MAAW,CAAC,GAAG+O,GAAG,CAAC,IAAIz4B,EAAE/wB,EAAEuqD,eAAe,GAAG,IAAIx5B,GAAGA,GAAGpX,EAAE,CAAC3Z,EAAEuqD,eAAe5wC,EAAEqxC,GAAGhrD,EAAE2Z,GAAG,OAAe,GAAG,KAAXoX,EAAEo5B,GAAGnqD,KAAa+wB,IAAIpX,EAAE,MAAM,GAAG,IAAI9I,GAAGA,IAAI8I,EAAE,CAAC3Z,EAAEuqD,eAAe15C,EAAE,MAAM7Q,EAAEwrD,cAAc7iB,GAAG8iB,GAAGj8C,KAAK,KAAKxP,GAAG0B,GAAG,MAAM+pD,GAAGzrD,GAAG,MAAM,KAAKqmD,GAAwE,GAArEE,GAAGvmD,EAAE2Z,GAAyBA,KAAtB9I,EAAE7Q,EAAEsrD,qBAA0BtrD,EAAEwqD,sBAAsBe,GAAG7pD,IAAO8nD,KAAwB,KAAnB9nD,EAAE1B,EAAEuqD,iBAAsB7oD,GAAGiY,GAAG,CAAC3Z,EAAEuqD,eAAe5wC,EAAEqxC,GAAGhrD,EAAE2Z,GAAG,MAAc,GAAG,KAAXjY,EAAEyoD,GAAGnqD,KAAa0B,IAAIiY,EAAE,MAAM,GAAG,IAAI9I,GAAGA,IAAI8I,EAAE,CAAC3Z,EAAEuqD,eACxe15C,EAAE,MAAgP,GAA1O,aAAay4C,GAAGz4C,EAAE,IAAI,WAAWy4C,IAAI7O,KAAK,aAAa4O,GAAGx4C,EAAE,GAAGA,EAAE,IAAI,WAAWw4C,IAAI,IAAuC,GAANx4C,GAA7BnP,EAAE+4C,MAA+B5pC,KAAQA,EAAE,IAApC8I,EAAE,IAAI,WAAWA,GAAGjY,IAAmBmP,GAAG,IAAIA,EAAE,IAAI,IAAIA,EAAE,IAAI,KAAKA,EAAE,KAAK,KAAKA,EAAE,KAAK,IAAIA,EAAE,IAAI,KAAKA,EAAE,KAAK,KAAKo4C,GAAGp4C,EAAE,OAAOA,KAAQA,EAAE8I,IAAO,GAAG9I,EAAE,CAAC7Q,EAAEwrD,cAAc7iB,GAAG8iB,GAAGj8C,KAAK,KAAKxP,GAAG6Q,GAAG,MAAM46C,GAAGzrD,GAAG,MAAM,KAT5L,EASoM,GAAG,aAAaqpD,IAAI,OAAOE,GAAG,CAACx4B,EAAEs4B,GAAG,IAAIllC,EAAEolC,GAAuH,GAA5F,IAAxB14C,EAAsB,EAApBsT,EAAEunC,mBAAyB76C,EAAE,GAAGnP,EAAgB,EAAdyiB,EAAEwnC,YAA8D96C,GAAhDkgB,EAAE0pB,MAAM,IAAI,WAAW1pB,IAAgB,EAAZ5M,EAAE6lC,WAAa,QAAWtoD,EAAE,EAAEA,EAAEmP,EAAEkgB,GAAM,GAAGlgB,EAAE,CAAC01C,GAAGvmD,EAAE2Z,GAAG3Z,EAAEwrD,cAC/e7iB,GAAG8iB,GAAGj8C,KAAK,KAAKxP,GAAG6Q,GAAG,OAAO46C,GAAGzrD,GAAG,MAAM,QAAQ,MAAM7B,MAAMixB,EAAE,MAAY,GAAL8C,GAAElyB,GAAMA,EAAE2qD,eAAe1qD,EAAE,OAAO2qD,GAAGp7C,KAAK,KAAKxP,IAAI,OAAO,KAChI,SAASkqD,GAAGlqD,GAAG,IAAIC,EAAED,EAAEoqD,gBAAqC,GAArBnqD,EAAE,IAAIA,EAAEA,EAAE,WAXuB,KAWP,GAAD4xB,IAAe,MAAM1zB,MAAMixB,EAAE,MAAiC,GAA3B27B,KAAK/qD,IAAI0xB,IAAGzxB,IAAI0xB,IAAGq5B,GAAGhrD,EAAEC,GAAM,OAAO8xB,GAAE,CAAC,IAAIpY,EAAEkY,GAAEA,IAXjE,GAWkF,IAAX,IAAIhhB,EAAEo6C,OAAQ,IAAIW,KAAK,MAAM,MAAMlqD,GAAGypD,GAAGnrD,EAAE0B,GAAkC,GAAtB65C,KAAK1pB,GAAElY,EAAEuvC,GAAGz4B,QAAQ5f,EAXjI,IAWsI2gB,GAAO,MAAM7X,EAAEyvC,GAAG4B,GAAGhrD,EAAEC,GAAGsmD,GAAGvmD,EAAEC,GAAGiyB,GAAElyB,GAAG2Z,EAAE,GAAG,OAAOoY,GAAE,MAAM5zB,MAAMixB,EAAE,MAAMpvB,EAAEorD,aAAaprD,EAAEywB,QAAQwN,UAAUj+B,EAAEqrD,uBAAuBprD,EAAEyxB,GAAE,KAAK+5B,GAAGzrD,GAAGkyB,GAAElyB,GAAG,OAAO,KACzY,SAAS6rD,GAAG7rD,EAAEC,GAAG,IAAI0Z,EAAEkY,GAAEA,IAAG,EAAE,IAAI,OAAO7xB,EAAEC,GAAb,QAZ0C,KAYlB4xB,GAAElY,IAASqhC,MAAM,SAAS8Q,GAAG9rD,EAAEC,GAAG,IAAI0Z,EAAEkY,GAAEA,KAAI,EAAEA,IAZzB,EAY+B,IAAI,OAAO7xB,EAAEC,GAAb,QAZpC,KAY4D4xB,GAAElY,IAASqhC,MAC/I,SAASgQ,GAAGhrD,EAAEC,GAAGD,EAAEorD,aAAa,KAAKprD,EAAEqrD,uBAAuB,EAAE,IAAI1xC,EAAE3Z,EAAEwrD,cAAiD,IAAlC,IAAI7xC,IAAI3Z,EAAEwrD,eAAe,EAAE5iB,GAAGjvB,IAAO,OAAOoY,GAAE,IAAIpY,EAAEoY,GAAE8H,OAAO,OAAOlgB,GAAG,CAAC,IAAI9I,EAAE8I,EAAE,OAAO9I,EAAE2oB,KAAK,KAAK,EAA6B,QAA3B3oB,EAAEA,EAAE+J,KAAK1G,yBAA4B,IAASrD,GAAG4nC,KAAK,MAAM,KAAK,EAAEoH,KAAK1vB,GAAEO,IAAGP,GAAEK,IAAG,MAAM,KAAK,EAAEuvB,GAAGlvC,GAAG,MAAM,KAAK,EAAEgvC,KAAK,MAAM,KAAK,GAAc,KAAK,GAAG1vB,GAAEW,IAAG,MAAM,KAAK,GAAG0qB,GAAG3qC,GAAG8I,EAAEA,EAAEkgB,OAAOnI,GAAE1xB,EAAE+xB,GAAE8sB,GAAG7+C,EAAEywB,QAAQ,MAAMkB,GAAE1xB,EAAEuxB,GAAE20B,GAAGiD,GAAG,KAAKE,GAAGD,GAAG,WAAWE,GAAG,KAAKjD,GAAG,EAAEkD,IAAG,EACnc,SAAS2B,GAAGnrD,EAAEC,GAAG,OAAE,CAAC,IAAuB,GAAnBs7C,KAAK8E,GAAG5vB,QAAQqwB,GAAMN,GAAG,IAAI,IAAI7mC,EAAEqY,GAAEoM,cAAc,OAAOzkB,GAAG,CAAC,IAAI9I,EAAE8I,EAAEqnC,MAAM,OAAOnwC,IAAIA,EAAE0rC,QAAQ,MAAM5iC,EAAEA,EAAEnC,KAA2B,GAAtB+oC,GAAG,EAAEpvB,GAAED,GAAEc,GAAE,KAAKwuB,IAAG,EAAM,OAAOzuB,IAAG,OAAOA,GAAE8H,OAAO,OAAOrI,GAd/F,EAcoG43B,GAAGnpD,EAAE8xB,GAAE,KAAK/xB,EAAE,CAAC,IAAI0B,EAAE1B,EAAE+wB,EAAEgB,GAAE8H,OAAO1V,EAAE4N,GAAEhf,EAAE9S,EAAwD,GAAtDA,EAAE0xB,GAAExN,EAAE+Z,WAAW,KAAK/Z,EAAEy6B,YAAYz6B,EAAEu6B,WAAW,KAAQ,OAAO3rC,GAAG,kBAAkBA,GAAG,oBAAoBA,EAAEw1C,KAAK,CAAC,IAAI7pD,EAAEqU,EAAE,GAAG,KAAY,EAAPoR,EAAE46B,MAAQ,CAAC,IAAIhwB,EAAE5K,EAAE8Z,UAAUlP,GAAG5K,EAAEg4B,YAAYptB,EAAEotB,YAAYh4B,EAAEia,cAAcrP,EAAEqP,cAAcja,EAAE03B,eAAe9sB,EAAE8sB,iBAAiB13B,EAAEg4B,YACvf,KAAKh4B,EAAEia,cAAc,MAAM,IAAIhd,EAAE,KAAe,EAAV0P,GAAEL,SAAWxB,EAAE8B,EAAE,EAAE,CAAC,IAAI/c,EAAE,GAAGA,EAAE,KAAKib,EAAEuK,IAAI,CAAC,IAAIjK,EAAEN,EAAEmP,cAAc,GAAG,OAAO7O,EAAEvb,EAAE,OAAOub,EAAE8O,eAAqB,CAAC,IAAI2e,EAAG/tB,EAAEgxB,cAAcjsC,OAAE,IAASgpC,EAAGgI,YAAY,IAAKhI,EAAGiI,6BAA8B7jC,IAAS,GAAGpN,EAAE,CAAC,IAAI0b,EAAET,EAAEktB,YAAY,GAAG,OAAOzsB,EAAE,CAAC,IAAI9V,EAAE,IAAIitC,IAAIjtC,EAAE0uC,IAAI5pD,GAAGuwB,EAAEktB,YAAYviC,OAAO8V,EAAE44B,IAAI5pD,GAAG,GAAG,KAAY,EAAPuwB,EAAE8vB,MAAQ,CAAoC,GAAnC9vB,EAAEiP,WAAW,GAAG/Z,EAAE+Z,YAAY,KAAQ,IAAI/Z,EAAEqV,IAAI,GAAG,OAAOrV,EAAE8Z,UAAU9Z,EAAEqV,IAAI,OAAO,CAAC,IAAIvlB,EAAEyoC,GAAG,WAAW,MAAMzoC,EAAEulB,IAAI,EAAEqjB,GAAG14B,EAAElQ,GAAGkQ,EAAE03B,eAAe,WAClf,MAAM77C,EAAE+S,OAAE,EAAOoR,EAAElkB,EAAE,IAAIuvB,EAAE9tB,EAAEqqD,UAA+G,GAArG,OAAOv8B,GAAGA,EAAE9tB,EAAEqqD,UAAU,IAAIvD,GAAGz1C,EAAE,IAAI8zC,IAAIr3B,EAAEriB,IAAIzO,EAAEqU,SAAgB,KAAXA,EAAEyc,EAAE3jB,IAAInN,MAAgBqU,EAAE,IAAI8zC,IAAIr3B,EAAEriB,IAAIzO,EAAEqU,KAASA,EAAEutB,IAAInc,GAAG,CAACpR,EAAEu1C,IAAInkC,GAAG,IAAI+K,EAAE88B,GAAGx8C,KAAK,KAAK9N,EAAEhD,EAAEylB,GAAGzlB,EAAE6pD,KAAKr5B,EAAEA,GAAGD,EAAEiP,WAAW,KAAKjP,EAAE4sB,eAAe57C,EAAE,MAAMD,EAAEivB,EAAEA,EAAE4K,aAAa,OAAO5K,GAAGlc,EAAE5U,OAAOm7B,GAAGnV,EAAEvJ,OAAO,qBAAqB,wLAAwL2e,GAAGpV,IAhB/X,IAgBmYqN,KACrfA,GAjBmG,GAiB7Fze,EAAE2zC,GAAG3zC,EAAEoR,GAAG8K,EAAE8B,EAAE,EAAE,CAAC,OAAO9B,EAAEuK,KAAK,KAAK,EAAE96B,EAAEqU,EAAEkc,EAAEiP,WAAW,KAAKjP,EAAE4sB,eAAe57C,EAAkB68C,GAAG7tB,EAAbw5B,GAAGx5B,EAAEvwB,EAAEuB,IAAW,MAAMD,EAAE,KAAK,EAAEtB,EAAEqU,EAAE,IAAIuc,EAAEL,EAAErU,KAAKqxC,EAAGh9B,EAAEoH,UAAU,GAAG,KAAiB,GAAZpH,EAAEiP,aAAgB,oBAAoB5O,EAAE7U,0BAA0B,OAAOwxC,GAAI,oBAAoBA,EAAGpD,oBAAoB,OAAOC,KAAKA,GAAGxoB,IAAI2rB,KAAM,CAACh9B,EAAEiP,WAAW,KAAKjP,EAAE4sB,eAAe57C,EAAmB68C,GAAG7tB,EAAb25B,GAAG35B,EAAEvwB,EAAEuB,IAAY,MAAMD,GAAGivB,EAAEA,EAAE4K,aAAa,OAAO5K,GAAG8C,GAAEm6B,GAAGn6B,IAAG,MAAMo6B,GAAIlsD,EAAEksD,EAAG,SAAS,OAC9b,SAASlB,KAAK,IAAIjrD,EAAEkpD,GAAGz4B,QAAsB,OAAdy4B,GAAGz4B,QAAQqwB,GAAU,OAAO9gD,EAAE8gD,GAAG9gD,EAAE,SAASi9C,GAAGj9C,EAAEC,GAAGD,EAAEqpD,IAAI,EAAErpD,IAAIqpD,GAAGrpD,GAAG,OAAOC,GAAGD,EAAEspD,IAAI,EAAEtpD,IAAIspD,GAAGtpD,EAAEupD,GAAGtpD,GAAG,SAASi9C,GAAGl9C,GAAGA,EAAEsmD,KAAKA,GAAGtmD,GAAG,SAAS4rD,KAAK,KAAK,OAAO75B,IAAGA,GAAEq6B,GAAGr6B,IAAG,SAASm5B,KAAK,KAAK,OAAOn5B,KAAImoB,MAAMnoB,GAAEq6B,GAAGr6B,IAAG,SAASq6B,GAAGpsD,GAAG,IAAIC,EAAE+oD,GAAGhpD,EAAEi+B,UAAUj+B,EAAE2xB,IAAsE,OAAnE3xB,EAAEigD,cAAcjgD,EAAEsjD,aAAa,OAAOrjD,IAAIA,EAAEisD,GAAGlsD,IAAImpD,GAAG14B,QAAQ,KAAYxwB,EACtW,SAASisD,GAAGlsD,GAAG+xB,GAAE/xB,EAAE,EAAE,CAAC,IAAIC,EAAE8xB,GAAEkM,UAAqB,GAAXj+B,EAAE+xB,GAAE8H,OAAU,KAAiB,KAAZ9H,GAAEmM,WAAgB,CAAa,GAAZj+B,EAAE2lD,GAAG3lD,EAAE8xB,GAAEJ,IAAM,IAAIA,IAAG,IAAII,GAAE2pB,oBAAoB,CAAC,IAAI,IAAI/hC,EAAE,EAAE9I,EAAEkhB,GAAEyM,MAAM,OAAO3tB,GAAG,CAAC,IAAInP,EAAEmP,EAAEgrC,eAAe9qB,EAAElgB,EAAE6qC,oBAAoBh6C,EAAEiY,IAAIA,EAAEjY,GAAGqvB,EAAEpX,IAAIA,EAAEoX,GAAGlgB,EAAEA,EAAE4tB,QAAQ1M,GAAE2pB,oBAAoB/hC,EAAE,GAAG,OAAO1Z,EAAE,OAAOA,EAAE,OAAOD,GAAG,KAAiB,KAAZA,EAAEk+B,aAAkB,OAAOl+B,EAAE4+C,cAAc5+C,EAAE4+C,YAAY7sB,GAAE6sB,aAAa,OAAO7sB,GAAE2sB,aAAa,OAAO1+C,EAAE0+C,aAAa1+C,EAAE0+C,WAAWC,WAAW5sB,GAAE6sB,aAAa5+C,EAAE0+C,WAAW3sB,GAAE2sB,YAAY,EAAE3sB,GAAEmM,YAAY,OACnfl+B,EAAE0+C,WAAW1+C,EAAE0+C,WAAWC,WAAW5sB,GAAE/xB,EAAE4+C,YAAY7sB,GAAE/xB,EAAE0+C,WAAW3sB,SAAQ,CAAS,GAAG,QAAX9xB,EAAEwmD,GAAG10B,KAAe,OAAO9xB,EAAEi+B,WAAW,KAAKj+B,EAAE,OAAOD,IAAIA,EAAE4+C,YAAY5+C,EAAE0+C,WAAW,KAAK1+C,EAAEk+B,WAAW,MAAkB,GAAG,QAAfj+B,EAAE8xB,GAAE0M,SAAoB,OAAOx+B,EAAE8xB,GAAE/xB,QAAQ,OAAO+xB,IAAkB,OAAfP,KAAI20B,KAAK30B,GApBjI,GAoB8I,KAAK,SAAS+5B,GAAGvrD,GAAG,IAAIC,EAAED,EAAE67C,eAAuC,OAAO57C,GAA/BD,EAAEA,EAAE07C,qBAA+Bz7C,EAAED,EAAE,SAASyrD,GAAGzrD,GAAG,IAAIC,EAAEy6C,KAA8B,OAAzBE,GAAG,GAAGyR,GAAG78C,KAAK,KAAKxP,EAAEC,IAAW,KACjZ,SAASosD,GAAGrsD,EAAEC,GAAG,GAAG8qD,WAAW,OAAOrB,IAAI,GArB8B,KAqBzB,GAAD73B,IAAe,MAAM1zB,MAAMixB,EAAE,MAAM,IAAIzV,EAAE3Z,EAAEorD,aAAav6C,EAAE7Q,EAAEqrD,uBAAuB,GAAG,OAAO1xC,EAAE,OAAO,KAAoD,GAA/C3Z,EAAEorD,aAAa,KAAKprD,EAAEqrD,uBAAuB,EAAK1xC,IAAI3Z,EAAEywB,QAAQ,MAAMtyB,MAAMixB,EAAE,MAAMpvB,EAAE2qD,aAAa,KAAK3qD,EAAEyqD,uBAAuB,EAAEzqD,EAAE0qD,iBAAiB,GAAG1qD,EAAEwqD,sBAAsB,EAAE,IAAI9oD,EAAE6pD,GAAG5xC,GAClI,GADqI3Z,EAAEsqD,iBAAiB5oD,EAAEmP,GAAG7Q,EAAEsrD,kBAAkBtrD,EAAEssD,mBAAmBtsD,EAAEsrD,kBAAkBtrD,EAAEwqD,sBAAsB,EAAE35C,GAAG7Q,EAAEssD,qBAAqBtsD,EAAEssD,mBACnez7C,EAAE,GAAGA,GAAG7Q,EAAEuqD,iBAAiBvqD,EAAEuqD,eAAe,GAAG15C,GAAG7Q,EAAEoqD,kBAAkBpqD,EAAEoqD,gBAAgB,GAAGpqD,IAAI0xB,KAAIK,GAAEL,GAAE,KAAKC,GAAE,GAAG,EAAEhY,EAAEukB,UAAU,OAAOvkB,EAAE+kC,YAAY/kC,EAAE+kC,WAAWC,WAAWhlC,EAAEjY,EAAEiY,EAAEilC,aAAal9C,EAAEiY,EAAEjY,EAAEiY,EAAEilC,YAAe,OAAOl9C,EAAE,CAAC,IAAIqvB,EAAEc,GAAEA,IAtBhJ,GAsBsJs3B,GAAG14B,QAAQ,KAAK4X,GAAG/E,GAAG,IAAInf,EAAE6jB,KAAK,GAAGG,GAAGhkB,GAAG,CAAC,GAAG,mBAAmBA,EAAE,IAAIpR,EAAE,CAACsS,MAAMlB,EAAEuuB,eAAe58B,IAAIqO,EAAEwuB,mBAAmB3yC,EAAE,CAA8C,IAAItB,GAAjDqU,GAAGA,EAAEoR,EAAEgX,gBAAgBpoB,EAAE++B,aAAa7uC,QAAe4vC,cAAc9/B,EAAE8/B,eAAe,GAAGn0C,GAAG,IAAIA,EAAE6tD,WAAW,CAACx5C,EAAErU,EAAEk0C,WAAW,IAAI7jB,EAAErwB,EAAEo0C,aAC9e1xB,EAAE1iB,EAAEq0C,UAAUr0C,EAAEA,EAAEs0C,YAAY,IAAIjgC,EAAE8F,SAASuI,EAAEvI,SAAS,MAAM2zC,GAAIz5C,EAAE,KAAK,MAAM/S,EAAE,IAAIivB,EAAE,EAAEjb,GAAG,EAAEub,GAAG,EAAEytB,EAAG,EAAEttB,EAAE,EAAE9V,EAAEuK,EAAElQ,EAAE,KAAKhU,EAAE,OAAO,CAAC,IAAI,IAAIuvB,EAAK5V,IAAI7G,GAAG,IAAIgc,GAAG,IAAInV,EAAEf,WAAW7E,EAAEib,EAAEF,GAAGnV,IAAIwH,GAAG,IAAI1iB,GAAG,IAAIkb,EAAEf,WAAW0W,EAAEN,EAAEvwB,GAAG,IAAIkb,EAAEf,WAAWoW,GAAGrV,EAAEgjB,UAAUxkC,QAAW,QAAQo3B,EAAE5V,EAAE2iB,aAAkBtoB,EAAE2F,EAAEA,EAAE4V,EAAE,OAAO,CAAC,GAAG5V,IAAIuK,EAAE,MAAMlkB,EAA+C,GAA7CgU,IAAIlB,KAAKiqC,IAAKjuB,IAAI/a,EAAEib,GAAGhb,IAAImN,KAAKsO,IAAIhxB,IAAI6wB,EAAEN,GAAM,QAAQO,EAAE5V,EAAEmuB,aAAa,MAAU9zB,GAAJ2F,EAAE3F,GAAMurB,WAAW5lB,EAAE4V,EAAEzc,GAAG,IAAIiB,IAAI,IAAIub,EAAE,KAAK,CAAClK,MAAMrR,EAAE8B,IAAIyZ,QAAQxc,EAAE,KAAKA,EAAEA,GAAG,CAACsS,MAAM,EAAEvP,IAAI,QAAQ/C,EACtf,KAAKu1B,GAAG,CAACmkB,sBAAsB,KAAKC,YAAYvoC,EAAEwoC,eAAe55C,GAAGuwB,IAAG,EAAGrR,GAAEvwB,EAAE,GAAG,IAAIkrD,KAAK,MAAMJ,GAAI,GAAG,OAAOv6B,GAAE,MAAM9zB,MAAMixB,EAAE,MAAM43B,GAAG/0B,GAAEu6B,GAAIv6B,GAAEA,GAAE0sB,kBAAiB,OAAO1sB,IAAGA,GAAEvwB,EAAE,GAAG,IAAI,IAAIyiB,EAAEnkB,EAAE+S,EAAE9S,EAAE,OAAOgyB,IAAG,CAAC,IAAI/C,EAAE+C,GAAEiM,UAAmC,GAAvB,GAAFhP,GAAMwN,GAAGzK,GAAEoE,UAAU,IAAS,IAAFnH,EAAM,CAAC,IAAIO,EAAEwC,GAAEgM,UAAU,GAAG,OAAOxO,EAAE,CAAC,IAAIH,EAAEG,EAAEpI,IAAI,OAAOiI,IAAI,oBAAoBA,EAAEA,EAAE,MAAMA,EAAEmB,QAAQ,OAAO,OAAS,KAAFvB,GAAQ,KAAK,EAAE04B,GAAG31B,IAAGA,GAAEiM,YAAY,EAAE,MAAM,KAAK,EAAE0pB,GAAG31B,IAAGA,GAAEiM,YAAY,EAAE+pB,GAAGh2B,GAAEgM,UAAUhM,IAAG,MAAM,KAAK,KAAKA,GAAEiM,YAAY,KAAK,MAAM,KAAK,KAAKjM,GAAEiM,YAC7f,KAAK+pB,GAAGh2B,GAAEgM,UAAUhM,IAAG,MAAM,KAAK,EAAEg2B,GAAGh2B,GAAEgM,UAAUhM,IAAG,MAAM,KAAK,EAAMw1B,GAAGtjC,EAAP4K,EAAEkD,GAASlf,GAAG20C,GAAG34B,GAAGkD,GAAEA,GAAE0sB,YAAY,MAAM6N,GAAI,GAAG,OAAOv6B,GAAE,MAAM9zB,MAAMixB,EAAE,MAAM43B,GAAG/0B,GAAEu6B,GAAIv6B,GAAEA,GAAE0sB,kBAAiB,OAAO1sB,IAAkD,GAA/C3C,EAAEgZ,GAAG7Y,EAAEuY,KAAK9Y,EAAEI,EAAEo9B,YAAY35C,EAAEuc,EAAEq9B,eAAkBl9B,IAAIP,GAAGA,GAAGA,EAAEiM,eAhLxP,SAAS0xB,EAAG7sD,EAAEC,GAAG,SAAOD,IAAGC,KAAED,IAAIC,KAAKD,GAAG,IAAIA,EAAE6Y,YAAY5Y,GAAG,IAAIA,EAAE4Y,SAASg0C,EAAG7sD,EAAEC,EAAEu/B,YAAY,aAAax/B,EAAEA,EAAEyZ,SAASxZ,KAAGD,EAAE0Z,4BAAwD,GAA7B1Z,EAAE0Z,wBAAwBzZ,MAgLmF4sD,CAAG39B,EAAEiM,cAAczb,gBAAgBwP,GAAG,CAAC,OAAOnc,GAAGo1B,GAAGjZ,KAAKO,EAAE1c,EAAEsS,WAAc,KAARiK,EAAEvc,EAAE+C,OAAiBwZ,EAAEG,GAAG,mBAAmBP,GAAGA,EAAEwjB,eAAejjB,EAAEP,EAAEyjB,aAAahuC,KAAKgE,IAAI2mB,EAAEJ,EAAEjzB,MAAM7D,UAAUk3B,GAAGG,EAAEP,EAAEiM,eAAej4B,WAAWusB,EAAEqiB,aAAa7uC,QAAS4vC,eACjfvjB,EAAEA,EAAEujB,eAAe9jB,EAAEG,EAAE2M,YAAYzjC,OAAO+rB,EAAExf,KAAKgE,IAAIoK,EAAEsS,MAAM0J,GAAGhc,OAAE,IAASA,EAAE+C,IAAIqO,EAAExf,KAAKgE,IAAIoK,EAAE+C,IAAIiZ,IAAIO,EAAEic,QAAQpnB,EAAEpR,IAAIgc,EAAEhc,EAAEA,EAAEoR,EAAEA,EAAE4K,GAAGA,EAAE+Y,GAAG5Y,EAAE/K,GAAG/C,EAAE0mB,GAAG5Y,EAAEnc,GAAGgc,GAAG3N,IAAI,IAAIkO,EAAEi9B,YAAYj9B,EAAEsjB,aAAa7jB,EAAE1B,MAAMiC,EAAEwjB,eAAe/jB,EAAEhW,QAAQuW,EAAEyjB,YAAY3xB,EAAEiM,MAAMiC,EAAE0jB,cAAc5xB,EAAErI,WAAU0W,EAAEA,EAAEq9B,eAAgBC,SAASh+B,EAAE1B,KAAK0B,EAAEhW,QAAQuW,EAAE09B,kBAAkB7oC,EAAEpR,GAAGuc,EAAE29B,SAASx9B,GAAGH,EAAEic,OAAOnqB,EAAEiM,KAAKjM,EAAErI,UAAU0W,EAAEy9B,OAAO9rC,EAAEiM,KAAKjM,EAAErI,QAAQuW,EAAE29B,SAASx9B,OAAQA,EAAE,GAAG,IAAIH,EAAEJ,EAAEI,EAAEA,EAAEkQ,YAAY,IAAIlQ,EAAEzW,UAAU4W,EAAEhtB,KAAK,CAACwP,QAAQqd,EAAE69B,KAAK79B,EAAE89B,WACzftzC,IAAIwV,EAAEpW,YAAmD,IAAvC,oBAAoBgW,EAAEtiB,OAAOsiB,EAAEtiB,QAAYsiB,EAAE,EAAEA,EAAEO,EAAEr3B,OAAO82B,KAAII,EAAEG,EAAEP,IAAKjd,QAAQm7C,WAAW99B,EAAE69B,KAAK79B,EAAErd,QAAQiH,UAAUoW,EAAExV,IAAIwpB,KAAK+E,GAAGC,GAAGD,GAAG,KAAKroC,EAAEywB,QAAQ9W,EAAEsY,GAAEvwB,EAAE,GAAG,IAAI,IAAIwtB,EAAElvB,EAAE,OAAOiyB,IAAG,CAAC,IAAIg6B,EAAGh6B,GAAEiM,UAAqC,GAAxB,GAAH+tB,GAAO5E,GAAGn4B,EAAE+C,GAAEgM,UAAUhM,IAAS,IAAHg6B,EAAO,CAACx8B,OAAE,EAAO,IAAI49B,EAAGp7B,GAAE5K,IAAI,GAAG,OAAOgmC,EAAG,CAAC,IAAIlB,EAAGl6B,GAAEoE,UAAU,OAAOpE,GAAEuH,KAAK,KAAK,EAAE/J,EAAE08B,EAAG,MAAM,QAAQ18B,EAAE08B,EAAG,oBAAoBkB,EAAGA,EAAG59B,GAAG49B,EAAG58B,QAAQhB,GAAGwC,GAAEA,GAAE0sB,YAAY,MAAM6N,GAAI,GAAG,OAAOv6B,GAAE,MAAM9zB,MAAMixB,EAAE,MAAM43B,GAAG/0B,GAAEu6B,GAAIv6B,GAAEA,GAAE0sB,kBAAiB,OAAO1sB,IAAGA,GACpf,KAAKmoB,KAAKvoB,GAAEd,OAAO/wB,EAAEywB,QAAQ9W,EAAE,GAAG8vC,GAAGA,IAAG,EAAGC,GAAG1pD,EAAE2pD,GAAG1pD,OAAO,IAAIgyB,GAAEvwB,EAAE,OAAOuwB,IAAGhyB,EAAEgyB,GAAE0sB,WAAW1sB,GAAE0sB,WAAW,KAAK1sB,GAAEhyB,EAAmI,GAA5G,KAArBA,EAAED,EAAEsqD,oBAAyBxB,GAAG,MAAM,aAAa7oD,EAAED,IAAI8pD,GAAGD,MAAMA,GAAG,EAAEC,GAAG9pD,GAAG6pD,GAAG,EAAE,oBAAoByD,IAAIA,GAAG3zC,EAAE0c,UAAUxlB,GAAGqhB,GAAElyB,GAAM0oD,GAAG,MAAMA,IAAG,EAAG1oD,EAAE2oD,GAAGA,GAAG,KAAK3oD,EAAE,OA5B3M,KAAK,EA4B0M6xB,KAAsBmpB,KAAL,KAAsB,SAAS4R,KAAK,KAAK,OAAO36B,IAAG,CAAC,IAAIjyB,EAAEiyB,GAAEiM,UAAU,KAAO,IAAFl+B,IAAQinD,GAAGh1B,GAAEgM,UAAUhM,IAAG,KAAO,IAAFjyB,IAAQypD,KAAKA,IAAG,EAAG5O,GAAG,IAAG,WAAgB,OAALkQ,KAAY,SAAQ94B,GAAEA,GAAE0sB,YAC9c,SAASoM,KAAK,GAAG,KAAKpB,GAAG,CAAC,IAAI3pD,EAAE,GAAG2pD,GAAG,GAAGA,GAAS,OAANA,GAAG,GAAU/O,GAAG56C,EAAEutD,KAAK,SAASA,KAAK,GAAG,OAAO7D,GAAG,OAAM,EAAG,IAAI1pD,EAAE0pD,GAAW,GAARA,GAAG,KA7B3C,KA6BqD,GAAD73B,IAAe,MAAM1zB,MAAMixB,EAAE,MAAM,IAAInvB,EAAE4xB,GAAQ,IAANA,IA7B/E,GA6ByF7xB,EAAEA,EAAEywB,QAAQmuB,YAAY,OAAO5+C,GAAG,CAAC,IAAI,IAAI2Z,EAAE3Z,EAAE,GAAG,KAAiB,IAAZ2Z,EAAEukB,WAAe,OAAOvkB,EAAE6f,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG2tB,GAAG,EAAExtC,GAAGytC,GAAG,EAAEztC,IAAI,MAAM9I,GAAG,GAAG,OAAO7Q,EAAE,MAAM7B,MAAMixB,EAAE,MAAM43B,GAAGhnD,EAAE6Q,GAAG8I,EAAE3Z,EAAE2+C,WAAW3+C,EAAE2+C,WAAW,KAAK3+C,EAAE2Z,EAAW,OAATkY,GAAE5xB,EAAE+6C,MAAW,EAC5Z,SAASwS,GAAGxtD,EAAEC,EAAE0Z,GAAkCkjC,GAAG78C,EAAxBC,EAAEwoD,GAAGzoD,EAAfC,EAAEymD,GAAG/sC,EAAE1Z,GAAY,aAAuC,QAAnBD,EAAEiqD,GAAGjqD,EAAE,cAAsBkyB,GAAElyB,GAAG,SAASgnD,GAAGhnD,EAAEC,GAAG,GAAG,IAAID,EAAEw5B,IAAIg0B,GAAGxtD,EAAEA,EAAEC,QAAQ,IAAI,IAAI0Z,EAAE3Z,EAAE65B,OAAO,OAAOlgB,GAAG,CAAC,GAAG,IAAIA,EAAE6f,IAAI,CAACg0B,GAAG7zC,EAAE3Z,EAAEC,GAAG,MAAW,GAAG,IAAI0Z,EAAE6f,IAAI,CAAC,IAAI3oB,EAAE8I,EAAE0c,UAAU,GAAG,oBAAoB1c,EAAEiB,KAAKH,0BAA0B,oBAAoB5J,EAAEg4C,oBAAoB,OAAOC,KAAKA,GAAGxoB,IAAIzvB,IAAI,CAAgCgsC,GAAGljC,EAAxB3Z,EAAE4oD,GAAGjvC,EAAf3Z,EAAE0mD,GAAGzmD,EAAED,GAAY,aAAuC,QAAnB2Z,EAAEswC,GAAGtwC,EAAE,cAAsBuY,GAAEvY,GAAG,OAAOA,EAAEA,EAAEkgB,QACxb,SAASmyB,GAAGhsD,EAAEC,EAAE0Z,GAAG,IAAI9I,EAAE7Q,EAAE+rD,UAAU,OAAOl7C,GAAGA,EAAE2wB,OAAOvhC,GAAGyxB,KAAI1xB,GAAG2xB,KAAIhY,EAAE6X,KAAI60B,IAAI70B,KAAI40B,IAAI,aAAaiD,IAAI5O,KAAKyN,GA/BqG,IA+B/F8C,GAAGhrD,EAAE2xB,IAAG63B,IAAG,EAAGa,GAAGrqD,EAAE2Z,KAAwB,KAAnB1Z,EAAED,EAAEuqD,iBAAsBtqD,EAAE0Z,IAAI3Z,EAAEuqD,eAAe5wC,EAAEuY,GAAElyB,KAAK,SAASqoD,GAAGroD,EAAEC,GAAG,IAAI0Z,EAAE3Z,EAAEq2B,UAAU,OAAO1c,GAAGA,EAAE6nB,OAAOvhC,GAAO,KAAJA,EAAE,KAAiBA,EAAEy9C,GAATz9C,EAAEw9C,KAAYz9C,EAAE,OAAiB,QAAVA,EAAEiqD,GAAGjqD,EAAEC,KAAaiyB,GAAElyB,GACxTgpD,GAAG,SAAShpD,EAAEC,EAAE0Z,GAAG,IAAI9I,EAAE5Q,EAAE47C,eAAe,GAAG,OAAO77C,EAAE,CAAC,IAAI0B,EAAEzB,EAAEqjD,aAAa,GAAGtjD,EAAEigD,gBAAgBv+C,GAAGgvB,GAAED,QAAQqrB,IAAG,MAAO,CAAC,GAAGjrC,EAAE8I,EAAE,CAAO,OAANmiC,IAAG,EAAU77C,EAAEu5B,KAAK,KAAK,EAAEgrB,GAAGvkD,GAAGyjD,KAAK,MAAM,KAAK,EAAQ,GAAN5D,GAAG7/C,GAAa,EAAPA,EAAE8+C,MAAQ,IAAIplC,GAAGjY,EAAE+rD,OAAO,OAAOxtD,EAAE47C,eAAe57C,EAAEy7C,oBAAoB,EAAE,KAAK,MAAM,KAAK,EAAE/qB,GAAE1wB,EAAE2a,OAAOg+B,GAAG34C,GAAG,MAAM,KAAK,EAAE2/C,GAAG3/C,EAAEA,EAAEo2B,UAAU8J,eAAe,MAAM,KAAK,GAAGtvB,EAAE5Q,EAAEggD,cAAchkD,MAAMyF,EAAEzB,EAAE2a,KAAKuY,SAAS7C,GAAE6qB,GAAGz5C,EAAEsxB,eAAetxB,EAAEsxB,cAAcniB,EAAE,MAAM,KAAK,GAAG,GAAG,OAAO5Q,EAAEm+B,cACjd,OAAG,KAD6dvtB,EAAE5Q,EAAEu+B,MAAMkd,sBAChe7qC,GAAG8I,EAASorC,GAAG/kD,EAAEC,EAAE0Z,IAAG2W,GAAEQ,GAAY,EAAVA,GAAEL,SAA8B,QAAnBxwB,EAAE4jD,GAAG7jD,EAAEC,EAAE0Z,IAAmB1Z,EAAEw+B,QAAQ,MAAKnO,GAAEQ,GAAY,EAAVA,GAAEL,SAAW,MAAM,KAAK,GAA8B,GAA3B5f,EAAE5Q,EAAEy7C,qBAAqB/hC,EAAK,KAAiB,GAAZ3Z,EAAEk+B,WAAc,CAAC,GAAGrtB,EAAE,OAAO60C,GAAG1lD,EAAEC,EAAE0Z,GAAG1Z,EAAEi+B,WAAW,GAA6E,GAAxD,QAAlBx8B,EAAEzB,EAAEm+B,iBAAyB18B,EAAE2jD,UAAU,KAAK3jD,EAAE6jD,KAAK,MAAMj1B,GAAEQ,GAAEA,GAAEL,UAAa5f,EAAE,OAAO,KAAK,OAAOgzC,GAAG7jD,EAAEC,EAAE0Z,GAAGmiC,IAAG,QAASA,IAAG,EAAsB,OAAnB77C,EAAE47C,eAAe,EAAS57C,EAAEu5B,KAAK,KAAK,EAChW,GADkW3oB,EAAE5Q,EAAE2a,KAAK,OAAO5a,IAAIA,EAAEi+B,UAAU,KAAKh+B,EAAEg+B,UAAU,KAAKh+B,EAAEi+B,WAAW,GAAGl+B,EAAEC,EAAEqjD,aAAa5hD,EAAE42C,GAAGr4C,EAAEuwB,GAAEC,SAASkrB,GAAG17C,EAAE0Z,GAAGjY,EAAEg/C,GAAG,KAClfzgD,EAAE4Q,EAAE7Q,EAAE0B,EAAEiY,GAAG1Z,EAAEi+B,WAAW,EAAK,kBAAkBx8B,GAAG,OAAOA,GAAG,oBAAoBA,EAAEzI,aAAQ,IAASyI,EAAEsvB,SAAS,CAAiD,GAAhD/wB,EAAEu5B,IAAI,EAAEv5B,EAAEm+B,cAAc,KAAKn+B,EAAEk8C,YAAY,KAAQxrB,GAAE9f,GAAG,CAAC,IAAIkgB,GAAE,EAAG6nB,GAAG34C,QAAQ8wB,GAAE,EAAG9wB,EAAEm+B,cAAc,OAAO18B,EAAEL,YAAO,IAASK,EAAEL,MAAMK,EAAEL,MAAM,KAAK66C,GAAGj8C,GAAG,IAAIkkB,EAAEtT,EAAE6J,yBAAyB,oBAAoByJ,GAAGm5B,GAAGr9C,EAAE4Q,EAAEsT,EAAEnkB,GAAG0B,EAAEuuB,QAAQstB,GAAGt9C,EAAEo2B,UAAU30B,EAAEA,EAAE87C,oBAAoBv9C,EAAEg+C,GAAGh+C,EAAE4Q,EAAE7Q,EAAE2Z,GAAG1Z,EAAEskD,GAAG,KAAKtkD,EAAE4Q,GAAE,EAAGkgB,EAAEpX,QAAQ1Z,EAAEu5B,IAAI,EAAEnI,GAAE,KAAKpxB,EAAEyB,EAAEiY,GAAG1Z,EAAEA,EAAEu+B,MAAM,OAAOv+B,EAAE,KAAK,GAAGD,EAAE,CACzZ,GAD0Z0B,EAAEzB,EAAE++C,YAAY,OAAOh/C,IAAIA,EAAEi+B,UACpf,KAAKh+B,EAAEg+B,UAAU,KAAKh+B,EAAEi+B,WAAW,GAAGl+B,EAAEC,EAAEqjD,aAzOoP,SAAYtjD,GAAG,IAAI,IAAIA,EAAEyzB,QAAQ,CAACzzB,EAAEyzB,QAAQ,EAAE,IAAIxzB,EAAED,EAAEwzB,MAAMvzB,EAAEA,IAAID,EAAE0zB,QAAQzzB,EAAEA,EAAEsoD,MAAK,SAAStoD,GAAG,IAAID,EAAEyzB,UAAUxzB,EAAEA,EAAExC,QAAQuC,EAAEyzB,QAAQ,EAAEzzB,EAAE0zB,QAAQzzB,MAAI,SAASA,GAAG,IAAID,EAAEyzB,UAAUzzB,EAAEyzB,QAAQ,EAAEzzB,EAAE0zB,QAAQzzB,OAyOhbytD,CAAGhsD,GAAM,IAAIA,EAAE+xB,QAAQ,MAAM/xB,EAAEgyB,QAAqD,OAA7ChyB,EAAEA,EAAEgyB,QAAQzzB,EAAE2a,KAAKlZ,EAAEqvB,EAAE9wB,EAAEu5B,IAQzD,SAAYx5B,GAAG,GAAG,oBAAoBA,EAAE,OAAO+jD,GAAG/jD,GAAG,EAAE,EAAE,QAAG,IAASA,GAAG,OAAOA,EAAE,CAAc,IAAbA,EAAEA,EAAEgxB,YAAgB8H,GAAG,OAAO,GAAG,GAAG94B,IAAIi5B,GAAG,OAAO,GAAG,OAAO,EARjF00B,CAAGjsD,GAAG1B,EAAEk7C,GAAGx5C,EAAE1B,GAAU+wB,GAAG,KAAK,EAAE9wB,EAAEgkD,GAAG,KAAKhkD,EAAEyB,EAAE1B,EAAE2Z,GAAG,MAAM3Z,EAAE,KAAK,EAAEC,EAAEkkD,GAAG,KAAKlkD,EAAEyB,EAAE1B,EAAE2Z,GAAG,MAAM3Z,EAAE,KAAK,GAAGC,EAAE2jD,GAAG,KAAK3jD,EAAEyB,EAAE1B,EAAE2Z,GAAG,MAAM3Z,EAAE,KAAK,GAAGC,EAAE6jD,GAAG,KAAK7jD,EAAEyB,EAAEw5C,GAAGx5C,EAAEkZ,KAAK5a,GAAG6Q,EAAE8I,GAAG,MAAM3Z,EAAE,MAAM7B,MAAMixB,EAAE,IAAI1tB,EAAE,KAAM,OAAOzB,EAAE,KAAK,EAAE,OAAO4Q,EAAE5Q,EAAE2a,KAAKlZ,EAAEzB,EAAEqjD,aAA2CW,GAAGjkD,EAAEC,EAAE4Q,EAArCnP,EAAEzB,EAAE++C,cAAcnuC,EAAEnP,EAAEw5C,GAAGrqC,EAAEnP,GAAciY,GAAG,KAAK,EAAE,OAAO9I,EAAE5Q,EAAE2a,KAAKlZ,EAAEzB,EAAEqjD,aAA2Ca,GAAGnkD,EAAEC,EAAE4Q,EAArCnP,EAAEzB,EAAE++C,cAAcnuC,EAAEnP,EAAEw5C,GAAGrqC,EAAEnP,GAAciY,GACpf,KAAK,EAAwB,GAAtB6qC,GAAGvkD,GAAG4Q,EAAE5Q,EAAEk8C,YAAe,OAAOn8C,GAAG,OAAO6Q,EAAE,MAAM1S,MAAMixB,EAAE,MAAoH,GAA9Gve,EAAE5Q,EAAEqjD,aAA+B5hD,EAAE,QAApBA,EAAEzB,EAAEm+B,eAAyB18B,EAAEuQ,QAAQ,KAAKwqC,GAAGz8C,EAAEC,GAAG88C,GAAG98C,EAAE4Q,EAAE,KAAK8I,IAAG9I,EAAE5Q,EAAEm+B,cAAcnsB,WAAevQ,EAAEgiD,KAAKzjD,EAAE4jD,GAAG7jD,EAAEC,EAAE0Z,OAAO,CAAmF,IAA/EjY,EAAEzB,EAAEo2B,UAAU0L,WAAQkhB,GAAGpa,GAAG5oC,EAAEo2B,UAAU8J,cAAc5D,YAAYymB,GAAG/iD,EAAEyB,EAAEwhD,IAAG,GAAMxhD,EAAE,IAAIiY,EAAE2lC,GAAGr/C,EAAE,KAAK4Q,EAAE8I,GAAG1Z,EAAEu+B,MAAM7kB,EAAEA,GAAGA,EAAEukB,WAAuB,EAAbvkB,EAAEukB,UAAa,KAAKvkB,EAAEA,EAAE8kB,aAAapN,GAAErxB,EAAEC,EAAE4Q,EAAE8I,GAAG+pC,KAAKzjD,EAAEA,EAAEu+B,MAAM,OAAOv+B,EAAE,KAAK,EAAE,OAAO6/C,GAAG7/C,GAAG,OAAOD,GAAGujD,GAAGtjD,GAAG4Q,EAAE5Q,EAAE2a,KAAKlZ,EAAEzB,EAAEqjD,aAAavyB,EAAE,OAAO/wB,EAAEA,EAAEigD,cAC5e,KAAK97B,EAAEziB,EAAExI,SAASuvC,GAAG53B,EAAEnP,GAAGyiB,EAAE,KAAK,OAAO4M,GAAG0X,GAAG53B,EAAEkgB,KAAK9wB,EAAEi+B,WAAW,IAAIgmB,GAAGlkD,EAAEC,GAAU,EAAPA,EAAE8+C,MAAQ,IAAIplC,GAAGjY,EAAE+rD,QAAQxtD,EAAE47C,eAAe57C,EAAEy7C,oBAAoB,EAAEz7C,EAAE,OAAOoxB,GAAErxB,EAAEC,EAAEkkB,EAAExK,GAAG1Z,EAAEA,EAAEu+B,OAAOv+B,EAAE,KAAK,EAAE,OAAO,OAAOD,GAAGujD,GAAGtjD,GAAG,KAAK,KAAK,GAAG,OAAO8kD,GAAG/kD,EAAEC,EAAE0Z,GAAG,KAAK,EAAE,OAAOimC,GAAG3/C,EAAEA,EAAEo2B,UAAU8J,eAAetvB,EAAE5Q,EAAEqjD,aAAa,OAAOtjD,EAAEC,EAAEu+B,MAAM6gB,GAAGp/C,EAAE,KAAK4Q,EAAE8I,GAAG0X,GAAErxB,EAAEC,EAAE4Q,EAAE8I,GAAG1Z,EAAEu+B,MAAM,KAAK,GAAG,OAAO3tB,EAAE5Q,EAAE2a,KAAKlZ,EAAEzB,EAAEqjD,aAA2CM,GAAG5jD,EAAEC,EAAE4Q,EAArCnP,EAAEzB,EAAE++C,cAAcnuC,EAAEnP,EAAEw5C,GAAGrqC,EAAEnP,GAAciY,GAAG,KAAK,EAAE,OAAO0X,GAAErxB,EAAEC,EAAEA,EAAEqjD,aAAa3pC,GAAG1Z,EAAEu+B,MAAM,KAAK,EACpc,KAAK,GAAG,OAAOnN,GAAErxB,EAAEC,EAAEA,EAAEqjD,aAAapqD,SAASygB,GAAG1Z,EAAEu+B,MAAM,KAAK,GAAGx+B,EAAE,CAAC6Q,EAAE5Q,EAAE2a,KAAKuY,SAASzxB,EAAEzB,EAAEqjD,aAAan/B,EAAElkB,EAAEggD,cAAclvB,EAAErvB,EAAEzF,MAAM,IAAI8W,EAAE9S,EAAE2a,KAAKuY,SAAiD,GAAxC7C,GAAE6qB,GAAGpoC,EAAEigB,eAAejgB,EAAEigB,cAAcjC,EAAK,OAAO5M,EAAE,GAAGpR,EAAEoR,EAAEloB,MAA0G,KAApG80B,EAAEihB,GAAGj/B,EAAEge,GAAG,EAAwF,GAArF,oBAAoBlgB,EAAEkiB,sBAAsBliB,EAAEkiB,sBAAsBhgB,EAAEge,GAAG,cAAqB,GAAG5M,EAAEjrB,WAAWwI,EAAExI,WAAWw3B,GAAED,QAAQ,CAACxwB,EAAE4jD,GAAG7jD,EAAEC,EAAE0Z,GAAG,MAAM3Z,QAAQ,IAAc,QAAV+S,EAAE9S,EAAEu+B,SAAiBzrB,EAAE8mB,OAAO55B,GAAG,OAAO8S,GAAG,CAAC,IAAIrU,EAAEqU,EAAE+iB,aAAa,GAAG,OACnfp3B,EAAE,CAACylB,EAAEpR,EAAEyrB,MAAM,IAAI,IAAIzP,EAAErwB,EAAEk9C,aAAa,OAAO7sB,GAAG,CAAC,GAAGA,EAAEt0B,UAAUoW,GAAG,KAAKke,EAAEva,aAAauc,GAAG,CAAC,IAAIhe,EAAEymB,OAAMzK,EAAE2tB,GAAG/iC,EAAE,OAAQ6f,IAAI,EAAEqjB,GAAG9pC,EAAEgc,IAAIhc,EAAE8oC,eAAeliC,IAAI5G,EAAE8oC,eAAeliC,GAAiB,QAAdoV,EAAEhc,EAAEkrB,YAAoBlP,EAAE8sB,eAAeliC,IAAIoV,EAAE8sB,eAAeliC,GAAG8hC,GAAG1oC,EAAE8mB,OAAOlgB,GAAGjb,EAAEm9C,eAAeliC,IAAIjb,EAAEm9C,eAAeliC,GAAG,MAAMoV,EAAEA,EAAEvX,WAAW2M,EAAE,KAAKpR,EAAEymB,KAAIzmB,EAAE6H,OAAO3a,EAAE2a,KAAK,KAAa7H,EAAEyrB,MAAM,GAAG,OAAOra,EAAEA,EAAE0V,OAAO9mB,OAAO,IAAIoR,EAAEpR,EAAE,OAAOoR,GAAG,CAAC,GAAGA,IAAIlkB,EAAE,CAACkkB,EAAE,KAAK,MAAkB,GAAG,QAAfpR,EAAEoR,EAAEsa,SAAoB,CAAC1rB,EAAE8mB,OAAO1V,EAAE0V,OAAO1V,EAAEpR,EAAE,MAAMoR,EAAEA,EAAE0V,OAAO9mB,EACpfoR,EAAEkN,GAAErxB,EAAEC,EAAEyB,EAAExI,SAASygB,GAAG1Z,EAAEA,EAAEu+B,MAAM,OAAOv+B,EAAE,KAAK,EAAE,OAAOyB,EAAEzB,EAAE2a,KAAsB/J,GAAjBkgB,EAAE9wB,EAAEqjD,cAAiBpqD,SAASyiD,GAAG17C,EAAE0Z,GAAmC9I,EAAEA,EAAlCnP,EAAEq6C,GAAGr6C,EAAEqvB,EAAE68B,wBAA8B3tD,EAAEi+B,WAAW,EAAE7M,GAAErxB,EAAEC,EAAE4Q,EAAE8I,GAAG1Z,EAAEu+B,MAAM,KAAK,GAAG,OAAgBzN,EAAEmqB,GAAXx5C,EAAEzB,EAAE2a,KAAY3a,EAAEqjD,cAA6BQ,GAAG9jD,EAAEC,EAAEyB,EAAtBqvB,EAAEmqB,GAAGx5C,EAAEkZ,KAAKmW,GAAclgB,EAAE8I,GAAG,KAAK,GAAG,OAAOqqC,GAAGhkD,EAAEC,EAAEA,EAAE2a,KAAK3a,EAAEqjD,aAAazyC,EAAE8I,GAAG,KAAK,GAAG,OAAO9I,EAAE5Q,EAAE2a,KAAKlZ,EAAEzB,EAAEqjD,aAAa5hD,EAAEzB,EAAE++C,cAAcnuC,EAAEnP,EAAEw5C,GAAGrqC,EAAEnP,GAAG,OAAO1B,IAAIA,EAAEi+B,UAAU,KAAKh+B,EAAEg+B,UAAU,KAAKh+B,EAAEi+B,WAAW,GAAGj+B,EAAEu5B,IAAI,EAAE7I,GAAE9f,IAAI7Q,GAAE,EAAG44C,GAAG34C,IAAID,GAAE,EAAG27C,GAAG17C,EAAE0Z,GAAGmkC,GAAG79C,EAAE4Q,EAAEnP,GAAGu8C,GAAGh+C,EAAE4Q,EAAEnP,EAAEiY,GAAG4qC,GAAG,KAClftkD,EAAE4Q,GAAE,EAAG7Q,EAAE2Z,GAAG,KAAK,GAAG,OAAO+rC,GAAG1lD,EAAEC,EAAE0Z,GAAG,MAAMxb,MAAMixB,EAAE,IAAInvB,EAAEu5B,OAAQ,IAAI8zB,GAAG,KAAK/F,GAAG,KAChF,SAASsG,GAAG7tD,EAAEC,EAAE0Z,EAAE9I,GAAGlY,KAAK6gC,IAAIx5B,EAAErH,KAAKL,IAAIqhB,EAAEhhB,KAAK8lC,QAAQ9lC,KAAK6lC,MAAM7lC,KAAKkhC,OAAOlhC,KAAK09B,UAAU19B,KAAKiiB,KAAKjiB,KAAKqmD,YAAY,KAAKrmD,KAAK8F,MAAM,EAAE9F,KAAK0uB,IAAI,KAAK1uB,KAAK2qD,aAAarjD,EAAEtH,KAAKm9B,aAAan9B,KAAKylC,cAAczlC,KAAKwjD,YAAYxjD,KAAKsnD,cAAc,KAAKtnD,KAAKomD,KAAKluC,EAAElY,KAAKulC,UAAU,EAAEvlC,KAAK+lD,WAAW/lD,KAAKimD,YAAYjmD,KAAKgmD,WAAW,KAAKhmD,KAAK+iD,oBAAoB/iD,KAAKkjD,eAAe,EAAEljD,KAAKslC,UAAU,KAAK,SAASmlB,GAAGpjD,EAAEC,EAAE0Z,EAAE9I,GAAG,OAAO,IAAIg9C,GAAG7tD,EAAEC,EAAE0Z,EAAE9I,GAC1b,SAASkzC,GAAG/jD,GAAiB,UAAdA,EAAEA,EAAEzH,aAAuByH,EAAEowB,kBAC5C,SAASyuB,GAAG7+C,EAAEC,GAAG,IAAI0Z,EAAE3Z,EAAEi+B,UAC4E,OADlE,OAAOtkB,IAAGA,EAAEypC,GAAGpjD,EAAEw5B,IAAIv5B,EAAED,EAAE1H,IAAI0H,EAAE++C,OAAQC,YAAYh/C,EAAEg/C,YAAYrlC,EAAEiB,KAAK5a,EAAE4a,KAAKjB,EAAE0c,UAAUr2B,EAAEq2B,UAAU1c,EAAEskB,UAAUj+B,EAAEA,EAAEi+B,UAAUtkB,IAAIA,EAAE2pC,aAAarjD,EAAE0Z,EAAEukB,UAAU,EAAEvkB,EAAEglC,WAAW,KAAKhlC,EAAEilC,YAAY,KAAKjlC,EAAE+kC,WAAW,MAAM/kC,EAAE+hC,oBAAoB17C,EAAE07C,oBAAoB/hC,EAAEkiC,eAAe77C,EAAE67C,eAAeliC,EAAE6kB,MAAMx+B,EAAEw+B,MAAM7kB,EAAEsmC,cAAcjgD,EAAEigD,cAActmC,EAAEykB,cAAcp+B,EAAEo+B,cAAczkB,EAAEwiC,YAAYn8C,EAAEm8C,YAAYl8C,EAAED,EAAE81B,aAAanc,EAAEmc,aAAa,OAAO71B,EAAE,KAAK,CAAC47C,eAAe57C,EAAE47C,eACzfD,aAAa37C,EAAE27C,aAAaI,WAAW/7C,EAAE+7C,YAAYriC,EAAE8kB,QAAQz+B,EAAEy+B,QAAQ9kB,EAAElb,MAAMuB,EAAEvB,MAAMkb,EAAE0N,IAAIrnB,EAAEqnB,IAAW1N,EAC5G,SAASslC,GAAGj/C,EAAEC,EAAE0Z,EAAE9I,EAAEnP,EAAEqvB,GAAG,IAAI5M,EAAE,EAAM,GAAJtT,EAAE7Q,EAAK,oBAAoBA,EAAE+jD,GAAG/jD,KAAKmkB,EAAE,QAAQ,GAAG,kBAAkBnkB,EAAEmkB,EAAE,OAAOnkB,EAAE,OAAOA,GAAG,KAAKw4B,GAAG,OAAO4mB,GAAGzlC,EAAEzgB,SAASwI,EAAEqvB,EAAE9wB,GAAG,KAAK44B,GAAG1U,EAAE,EAAEziB,GAAG,EAAE,MAAM,KAAK+2B,GAAGtU,EAAE,EAAEziB,GAAG,EAAE,MAAM,KAAKg3B,GAAG,OAAO14B,EAAEojD,GAAG,GAAGzpC,EAAE1Z,EAAI,EAAFyB,IAAOs9C,YAAYtmB,GAAG14B,EAAE4a,KAAK8d,GAAG14B,EAAE67C,eAAe9qB,EAAE/wB,EAAE,KAAK+4B,GAAG,OAAO/4B,EAAEojD,GAAG,GAAGzpC,EAAE1Z,EAAEyB,IAAKkZ,KAAKme,GAAG/4B,EAAEg/C,YAAYjmB,GAAG/4B,EAAE67C,eAAe9qB,EAAE/wB,EAAE,KAAKg5B,GAAG,OAAOh5B,EAAEojD,GAAG,GAAGzpC,EAAE1Z,EAAEyB,IAAKs9C,YAAYhmB,GAAGh5B,EAAE67C,eAAe9qB,EAAE/wB,EAAE,QAAQ,GAAG,kBAAkBA,GAAG,OAAOA,EAAE,OAAOA,EAAEgxB,UAAU,KAAK2H,GAAGxU,EACpf,GAAG,MAAMnkB,EAAE,KAAK44B,GAAGzU,EAAE,EAAE,MAAMnkB,EAAE,KAAK84B,GAAG3U,EAAE,GAAG,MAAMnkB,EAAE,KAAKi5B,GAAG9U,EAAE,GAAG,MAAMnkB,EAAE,KAAKk5B,GAAG/U,EAAE,GAAGtT,EAAE,KAAK,MAAM7Q,EAAE,KAAKm5B,GAAGhV,EAAE,GAAG,MAAMnkB,EAAE,MAAM7B,MAAMixB,EAAE,IAAI,MAAMpvB,EAAEA,SAASA,EAAE,KAAgE,OAA1DC,EAAEmjD,GAAGj/B,EAAExK,EAAE1Z,EAAEyB,IAAKs9C,YAAYh/C,EAAEC,EAAE2a,KAAK/J,EAAE5Q,EAAE47C,eAAe9qB,EAAS9wB,EAAE,SAASm/C,GAAGp/C,EAAEC,EAAE0Z,EAAE9I,GAAoC,OAAjC7Q,EAAEojD,GAAG,EAAEpjD,EAAE6Q,EAAE5Q,IAAK47C,eAAeliC,EAAS3Z,EAAE,SAAS8+C,GAAG9+C,EAAEC,EAAE0Z,GAAuC,OAApC3Z,EAAEojD,GAAG,EAAEpjD,EAAE,KAAKC,IAAK47C,eAAeliC,EAAS3Z,EACrW,SAASm/C,GAAGn/C,EAAEC,EAAE0Z,GAAuK,OAApK1Z,EAAEmjD,GAAG,EAAE,OAAOpjD,EAAE9G,SAAS8G,EAAE9G,SAAS,GAAG8G,EAAE1H,IAAI2H,IAAK47C,eAAeliC,EAAE1Z,EAAEo2B,UAAU,CAAC8J,cAAcngC,EAAEmgC,cAAc2tB,gBAAgB,KAAK5O,eAAel/C,EAAEk/C,gBAAuBj/C,EAC9L,SAAS8tD,GAAG/tD,EAAEC,EAAE0Z,GAAGhhB,KAAK6gC,IAAIv5B,EAAEtH,KAAK83B,QAAQ,KAAK93B,KAAKwnC,cAAcngC,EAAErH,KAAKozD,UAAUpzD,KAAKm1D,gBAAgB,KAAKn1D,KAAK0yD,uBAAuB,EAAE1yD,KAAKyyD,aAAa,KAAKzyD,KAAK6yD,eAAe,EAAE7yD,KAAK8rD,eAAe9rD,KAAK8B,QAAQ,KAAK9B,KAAKopC,QAAQpoB,EAAEhhB,KAAKgyD,aAAa,KAAKhyD,KAAK+xD,iBAAiB,GAAG/xD,KAAKyxD,gBAAgBzxD,KAAK4xD,eAAe5xD,KAAK6xD,sBAAsB7xD,KAAK2yD,kBAAkB3yD,KAAK2zD,mBAAmB3zD,KAAK2xD,iBAAiB,EACva,SAASD,GAAGrqD,EAAEC,GAAG,IAAI0Z,EAAE3Z,EAAEssD,mBAAyC,OAAtBtsD,EAAEA,EAAEsrD,kBAAyB,IAAI3xC,GAAGA,GAAG1Z,GAAGD,GAAGC,EAAE,SAASsmD,GAAGvmD,EAAEC,GAAG,IAAI0Z,EAAE3Z,EAAEssD,mBAAmBz7C,EAAE7Q,EAAEsrD,kBAAkB3xC,EAAE1Z,IAAID,EAAEssD,mBAAmBrsD,IAAM4Q,EAAE5Q,GAAG,IAAI0Z,KAAE3Z,EAAEsrD,kBAAkBrrD,GAAEA,GAAGD,EAAEuqD,iBAAiBvqD,EAAEuqD,eAAe,GAAGtqD,GAAGD,EAAEoqD,kBAAkBpqD,EAAEoqD,gBAAgB,GAClT,SAAS5D,GAAGxmD,EAAEC,GAAGA,EAAED,EAAEsqD,mBAAmBtqD,EAAEsqD,iBAAiBrqD,GAAG,IAAI0Z,EAAE3Z,EAAEssD,mBAAmB,IAAI3yC,IAAI1Z,GAAG0Z,EAAE3Z,EAAEssD,mBAAmBtsD,EAAEsrD,kBAAkBtrD,EAAEwqD,sBAAsB,EAAEvqD,GAAGD,EAAEsrD,oBAAoBtrD,EAAEsrD,kBAAkBrrD,EAAE,GAAGA,EAAED,EAAEwqD,wBAAwBxqD,EAAEwqD,sBAAsBvqD,IAAI,SAAS6qD,GAAG9qD,EAAEC,GAAG,IAAI0Z,EAAE3Z,EAAEoqD,iBAAmB,IAAIzwC,GAAGA,EAAE1Z,KAAED,EAAEoqD,gBAAgBnqD,GAC5V,SAAS+tD,GAAGhuD,EAAEC,EAAE0Z,EAAE9I,GAAG,IAAInP,EAAEzB,EAAEwwB,QAAQM,EAAE0sB,KAAKt5B,EAAEi5B,GAAG9qB,SAASvB,EAAE2sB,GAAG3sB,EAAErvB,EAAEyiB,GAAGnkB,EAAE,GAAG2Z,EAAE,CAAyB1Z,EAAE,CAAC,GAAG+9B,GAA9BrkB,EAAEA,EAAE6jC,uBAAkC7jC,GAAG,IAAIA,EAAE6f,IAAI,MAAMr7B,MAAMixB,EAAE,MAAM,IAAIrc,EAAE4G,EAAE,EAAE,CAAC,OAAO5G,EAAEymB,KAAK,KAAK,EAAEzmB,EAAEA,EAAEsjB,UAAU57B,QAAQ,MAAMwF,EAAE,KAAK,EAAE,GAAG0wB,GAAE5d,EAAE6H,MAAM,CAAC7H,EAAEA,EAAEsjB,UAAUwiB,0CAA0C,MAAM54C,GAAG8S,EAAEA,EAAE8mB,aAAa,OAAO9mB,GAAG,MAAM5U,MAAMixB,EAAE,MAAO,GAAG,IAAIzV,EAAE6f,IAAI,CAAC,IAAI96B,EAAEib,EAAEiB,KAAK,GAAG+V,GAAEjyB,GAAG,CAACib,EAAEg/B,GAAGh/B,EAAEjb,EAAEqU,GAAG,MAAM/S,GAAG2Z,EAAE5G,OAAO4G,EAAEy+B,GAC3W,OAD8W,OAAOn4C,EAAExF,QAAQwF,EAAExF,QAAQkf,EAAE1Z,EAAEwkD,eAAe9qC,GAAE1Z,EAAEy8C,GAAG3rB,EAAE5M,IAAKy4B,QAAQ,CAAC3qC,QAAQjS,GACpe,QADue6Q,OAAE,IAClfA,EAAE,KAAKA,KAAa5Q,EAAEoC,SAASwO,GAAGgsC,GAAGn7C,EAAEzB,GAAG09C,GAAGj8C,EAAEqvB,GAAUA,EAAE,SAASk9B,GAAGjuD,GAAe,KAAZA,EAAEA,EAAEywB,SAAc+N,MAAM,OAAO,KAAK,OAAOx+B,EAAEw+B,MAAMhF,KAAK,KAAK,EAA2B,QAAQ,OAAOx5B,EAAEw+B,MAAMnI,WAAW,SAAS63B,GAAGluD,EAAEC,GAAqB,QAAlBD,EAAEA,EAAEo+B,gBAAwB,OAAOp+B,EAAEq+B,YAAYr+B,EAAE8kD,UAAU7kD,IAAID,EAAE8kD,UAAU7kD,GAAG,SAASkuD,GAAGnuD,EAAEC,GAAGiuD,GAAGluD,EAAEC,IAAID,EAAEA,EAAEi+B,YAAYiwB,GAAGluD,EAAEC,GACpV,SAASmuD,GAAGpuD,EAAEC,EAAE0Z,GAA6B,IAAI9I,EAAE,IAAIk9C,GAAG/tD,EAAEC,EAAzC0Z,EAAE,MAAMA,IAAG,IAAKA,EAAEooB,SAA4BrgC,EAAE0hD,GAAG,EAAE,KAAK,KAAK,IAAInjD,EAAE,EAAE,IAAIA,EAAE,EAAE,GAAG4Q,EAAE4f,QAAQ/uB,EAAEA,EAAE20B,UAAUxlB,EAAEqrC,GAAGx6C,GAAG1B,EAAEmpC,IAAIt4B,EAAE4f,QAAQ9W,GAAG,IAAI1Z,GAhO5J,SAAYD,EAAEC,GAAG,IAAI0Z,EAAEokB,GAAG99B,GAAGkhC,GAAGp+B,SAAQ,SAAS/C,GAAGqgC,GAAGrgC,EAAEC,EAAE0Z,MAAKynB,GAAGr+B,SAAQ,SAAS/C,GAAGqgC,GAAGrgC,EAAEC,EAAE0Z,MAgOiE00C,CAAGruD,EAAE,IAAIA,EAAE6Y,SAAS7Y,EAAEA,EAAEm7B,eAAexiC,KAAK21D,cAAcz9C,EACzN,SAAS09C,GAAGvuD,GAAG,SAASA,GAAG,IAAIA,EAAE6Y,UAAU,IAAI7Y,EAAE6Y,UAAU,KAAK7Y,EAAE6Y,WAAW,IAAI7Y,EAAE6Y,UAAU,iCAAiC7Y,EAAE48B,YAChI,SAAS4xB,GAAGxuD,EAAEC,EAAE0Z,EAAE9I,EAAEnP,GAAG,IAAIqvB,EAAEpX,EAAEouC,oBAAoB,GAAGh3B,EAAE,CAAC,IAAI5M,EAAE4M,EAAEu9B,cAAc,GAAG,oBAAoB5sD,EAAE,CAAC,IAAIqR,EAAErR,EAAEA,EAAE,WAAW,IAAI1B,EAAEiuD,GAAG9pC,GAAGpR,EAAEta,KAAKuH,IAAIguD,GAAG/tD,EAAEkkB,EAAEnkB,EAAE0B,OAAO,CAAmD,GAAlDqvB,EAAEpX,EAAEouC,oBAD9B,SAAY/nD,EAAEC,GAA0H,GAAvHA,IAA2DA,MAAvDA,EAAED,EAAE,IAAIA,EAAE6Y,SAAS7Y,EAAE0f,gBAAgB1f,EAAEu8B,WAAW,OAAa,IAAIt8B,EAAE4Y,WAAW5Y,EAAEwuD,aAAa,qBAAwBxuD,EAAE,IAAI,IAAI0Z,EAAEA,EAAE3Z,EAAE28B,WAAW38B,EAAEw8B,YAAY7iB,GAAG,OAAO,IAAIy0C,GAAGpuD,EAAE,EAAEC,EAAE,CAAC8hC,SAAQ,QAAI,GACvK2sB,CAAG/0C,EAAE9I,GAAGsT,EAAE4M,EAAEu9B,cAAiB,oBAAoB5sD,EAAE,CAAC,IAAIhD,EAAEgD,EAAEA,EAAE,WAAW,IAAI1B,EAAEiuD,GAAG9pC,GAAGzlB,EAAEjG,KAAKuH,IAAI8rD,IAAG,WAAWkC,GAAG/tD,EAAEkkB,EAAEnkB,EAAE0B,MAAK,OAAOusD,GAAG9pC,GAAG,SAASwqC,GAAG3uD,EAAEC,EAAE0Z,GAAG,IAAI9I,EAAE,EAAE1Y,UAAUC,aAAQ,IAASD,UAAU,GAAGA,UAAU,GAAG,KAAK,MAAM,CAAC64B,SAASuH,GAAGjgC,IAAI,MAAMuY,EAAE,KAAK,GAAGA,EAAE3X,SAAS8G,EAAEmgC,cAAclgC,EAAEi/C,eAAevlC,GAGpR,SAASi1C,GAAG5uD,EAAEC,GAAG,IAAI0Z,EAAE,EAAExhB,UAAUC,aAAQ,IAASD,UAAU,GAAGA,UAAU,GAAG,KAAK,IAAIo2D,GAAGtuD,GAAG,MAAM9B,MAAMixB,EAAE,MAAM,OAAOu/B,GAAG3uD,EAAEC,EAAE,KAAK0Z,GALpIy0C,GAAG71D,UAAUU,OAAO,SAAS+G,GAAGguD,GAAGhuD,EAAErH,KAAK21D,cAAc,KAAK,OAAOF,GAAG71D,UAAUyf,QAAQ,WAAW,IAAIhY,EAAErH,KAAK21D,cAAcruD,EAAED,EAAEmgC,cAAc6tB,GAAG,KAAKhuD,EAAE,MAAK,WAAWC,EAAEkpC,IAAI,SAG1Y3I,GAAG,SAASxgC,GAAG,GAAG,KAAKA,EAAEw5B,IAAI,CAAC,IAAIv5B,EAAEg7C,GAAGwC,KAAK,IAAI,KAAKE,GAAG39C,EAAEC,GAAGkuD,GAAGnuD,EAAEC,KAAKwgC,GAAG,SAASzgC,GAAG,KAAKA,EAAEw5B,MAAMmkB,GAAG39C,EAAE,GAAGmuD,GAAGnuD,EAAE,KAAK0gC,GAAG,SAAS1gC,GAAG,GAAG,KAAKA,EAAEw5B,IAAI,CAAC,IAAIv5B,EAAEw9C,KAAoBE,GAAG39C,EAAlBC,EAAEy9C,GAAGz9C,EAAED,EAAE,OAAcmuD,GAAGnuD,EAAEC,KAC1Lg2B,EAAG,SAASj2B,EAAEC,EAAE0Z,GAAG,OAAO1Z,GAAG,IAAK,QAAyB,GAAjB+6B,GAAGh7B,EAAE2Z,GAAG1Z,EAAE0Z,EAAE9E,KAAQ,UAAU8E,EAAEiB,MAAM,MAAM3a,EAAE,CAAC,IAAI0Z,EAAE3Z,EAAE2Z,EAAE6lB,YAAY7lB,EAAEA,EAAE6lB,WAAsF,IAA3E7lB,EAAEA,EAAEk1C,iBAAiB,cAAclsC,KAAKC,UAAU,GAAG3iB,GAAG,mBAAuBA,EAAE,EAAEA,EAAE0Z,EAAEvhB,OAAO6H,IAAI,CAAC,IAAI4Q,EAAE8I,EAAE1Z,GAAG,GAAG4Q,IAAI7Q,GAAG6Q,EAAEi+C,OAAO9uD,EAAE8uD,KAAK,CAAC,IAAIptD,EAAE2nC,GAAGx4B,GAAG,IAAInP,EAAE,MAAMvD,MAAMixB,EAAE,KAAKkL,GAAGzpB,GAAGmqB,GAAGnqB,EAAEnP,KAAK,MAAM,IAAK,WAAWi6B,GAAG37B,EAAE2Z,GAAG,MAAM,IAAK,SAAmB,OAAV1Z,EAAE0Z,EAAE1d,QAAeq/B,GAAGt7B,IAAI2Z,EAAEmsC,SAAS7lD,GAAE,KAAMu2B,EAAGq1B,GAC9Zp1B,EAAG,SAASz2B,EAAEC,EAAE0Z,EAAE9I,EAAEnP,GAAG,IAAIqvB,EAAEc,GAAEA,IAAG,EAAE,IAAI,OAAO+oB,GAAG,GAAG56C,EAAEwP,KAAK,KAAKvP,EAAE0Z,EAAE9I,EAAEnP,IAAnC,QA3DoC,KA2DWmwB,GAAEd,IAASiqB,OAAOtkB,EAAG,WA3DhC,KA2D6C,GAAD7E,MAhD0R,WAAc,GAAG,OAAO+3B,GAAG,CAAC,IAAI5pD,EAAE4pD,GAAGA,GAAG,KAAK5pD,EAAE+C,SAAQ,SAAS/C,EAAE2Z,GAAGmxC,GAAGnxC,EAAE3Z,GAAGkyB,GAAEvY,MAAKqhC,MAgD3V+T,GAAKhE,OAAOp0B,EAAG,SAAS32B,EAAEC,GAAG,IAAI0Z,EAAEkY,GAAEA,IAAG,EAAE,IAAI,OAAO7xB,EAAEC,GAAb,QA3DzG,KA2DiI4xB,GAAElY,IAASqhC,OAA8I,IAAIgU,GAAG,CAACzyD,OAAO,CAAColC,GAAGyH,GAAGC,GAAGtT,EAAGN,EAAGqU,GAAG,SAAS9pC,GAAG4+B,GAAG5+B,EAAE6pC,KAAKvT,EAAGC,EAAGzoB,GAAGsxB,GAAG2rB,GAAG,CAACt6B,SAAQ,MAClb,SAAUzwB,GAAG,IAAIC,EAAED,EAAEivD,yBAnBgE,SAAYjvD,GAAG,GAAG,qBAAqBwW,+BAA+B,OAAM,EAAG,IAAIvW,EAAEuW,+BAA+B,GAAGvW,EAAEivD,aAAajvD,EAAEkvD,cAAc,OAAM,EAAG,IAAI,IAAIx1C,EAAE1Z,EAAEmvD,OAAOpvD,GAAGstD,GAAG,SAASttD,GAAG,IAAIC,EAAEovD,kBAAkB11C,EAAE3Z,OAAE,EAAO,MAA0B,GAApBA,EAAEywB,QAAQyN,YAAe,MAAMx8B,MAAM6lD,GAAG,SAASvnD,GAAG,IAAIC,EAAEqvD,qBAAqB31C,EAAE3Z,GAAG,MAAM0B,MAAM,MAAMmP,MAmBpX0+C,CAAG5wD,EAAE,GAAGqB,EAAE,CAACwvD,kBAAkB,KAAKC,cAAc,KAAKC,mBAAmB,KAAKC,eAAe,KAAKC,qBAAqB/3B,EAAGzF,uBAAuBy9B,wBAAwB,SAAS7vD,GAAW,OAAO,QAAfA,EAAEu+B,GAAGv+B,IAAmB,KAAKA,EAAEq2B,WAAW44B,wBAAwB,SAASjvD,GAAG,OAAOC,EAAEA,EAAED,GAAG,MAAM8vD,4BAA4B,KAAKC,gBAAgB,KAAKC,aAAa,KAAKC,kBAAkB,KAAKC,gBAAgB,QAAzb,CAAmc,CAACjB,wBAAwB7uB,GAAG+vB,WAAW,EAAE97B,QAAQ,UACpf+7B,oBAAoB,cAAcx4D,EAAQk7B,mDAAmDk8B,GAAGp3D,EAAQy4D,aAAazB,GAAGh3D,EAAQiY,YAAY,SAAS7P,GAAG,GAAG,MAAMA,EAAE,OAAO,KAAK,GAAG,IAAIA,EAAE6Y,SAAS,OAAO7Y,EAAE,IAAIC,EAAED,EAAEw9C,oBAAoB,QAAG,IAASv9C,EAAE,CAAC,GAAG,oBAAoBD,EAAE/G,OAAO,MAAMkF,MAAMixB,EAAE,MAAM,MAAMjxB,MAAMixB,EAAE,IAAIr3B,OAAOyI,KAAKR,KAA0C,OAA5BA,EAAE,QAAVA,EAAEu+B,GAAGt+B,IAAc,KAAKD,EAAEq2B,WACvWz+B,EAAQ04D,UAAU,SAAStwD,EAAEC,GAAG,GA9DwC,KA8DnC,GAAD4xB,IAAe,MAAM1zB,MAAMixB,EAAE,MAAM,IAAIzV,EAAEkY,GAAEA,IAAG,EAAE,IAAI,OAAO+oB,GAAG,GAAG56C,EAAEwP,KAAK,KAAKvP,IAA7B,QAAyC4xB,GAAElY,EAAEqhC,OAAOpjD,EAAQmqC,QAAQ,SAAS/hC,EAAEC,EAAE0Z,GAAG,IAAI40C,GAAGtuD,GAAG,MAAM9B,MAAMixB,EAAE,MAAM,OAAOo/B,GAAG,KAAKxuD,EAAEC,GAAE,EAAG0Z,IAAI/hB,EAAQqB,OAAO,SAAS+G,EAAEC,EAAE0Z,GAAG,IAAI40C,GAAGtuD,GAAG,MAAM9B,MAAMixB,EAAE,MAAM,OAAOo/B,GAAG,KAAKxuD,EAAEC,GAAE,EAAG0Z,IACnT/hB,EAAQ24D,uBAAuB,SAASvwD,GAAG,IAAIuuD,GAAGvuD,GAAG,MAAM7B,MAAMixB,EAAE,KAAK,QAAOpvB,EAAE+nD,sBAAqB+D,IAAG,WAAW0C,GAAG,KAAK,KAAKxuD,GAAE,GAAG,WAAWA,EAAE+nD,oBAAoB,KAAK/nD,EAAEmpC,IAAI,YAAS,IAAQvxC,EAAQ44D,wBAAwB3E,GAAGj0D,EAAQ64D,sBAAsB,SAASzwD,EAAEC,GAAG,OAAO2uD,GAAG5uD,EAAEC,EAAE,EAAE9H,UAAUC,aAAQ,IAASD,UAAU,GAAGA,UAAU,GAAG,OACvVP,EAAQ84D,oCAAoC,SAAS1wD,EAAEC,EAAE0Z,EAAE9I,GAAG,IAAI09C,GAAG50C,GAAG,MAAMxb,MAAMixB,EAAE,MAAM,GAAG,MAAMpvB,QAAG,IAASA,EAAEw9C,oBAAoB,MAAMr/C,MAAMixB,EAAE,KAAK,OAAOo/B,GAAGxuD,EAAEC,EAAE0Z,GAAE,EAAG9I,IAAIjZ,EAAQy8B,QAAQ,W,6BChS/L18B,EAAOC,QAAUC,EAAQ,K,6BCMd,IAAIk5B,EAAE5M,EAAEpR,EAAErU,EAAEqwB,EACzB,GAAG,qBAAqB9rB,QAAQ,oBAAoB0tD,eAAe,CAAC,IAAI1hC,EAAE,KAAKC,EAAE,KAAKtV,EAAE,SAAFA,IAAa,GAAG,OAAOqV,EAAE,IAAI,IAAIjvB,EAAEpI,EAAQ0hD,eAAerqB,GAAE,EAAGjvB,GAAGivB,EAAE,KAAK,MAAMhvB,GAAG,MAAMiN,WAAW0M,EAAE,GAAG3Z,IAAKmvB,EAAExK,KAAKymB,MAAMzzC,EAAQ0hD,aAAa,WAAW,OAAO10B,KAAKymB,MAAMjc,GAAG2B,EAAE,SAAS/wB,GAAG,OAAOivB,EAAE/hB,WAAW6jB,EAAE,EAAE/wB,IAAIivB,EAAEjvB,EAAEkN,WAAW0M,EAAE,KAAKuK,EAAE,SAASnkB,EAAEC,GAAGivB,EAAEhiB,WAAWlN,EAAEC,IAAI8S,EAAE,WAAW9F,aAAaiiB,IAAIxwB,EAAE,WAAW,OAAM,GAAIqwB,EAAEn3B,EAAQg5D,wBAAwB,iBAAiB,CAAC,IAAIthC,EAAErsB,OAAO4tD,YAAY78C,EAAE/Q,OAAO2hB,KACnf3Q,EAAEhR,OAAOiK,WAAWqiB,EAAEtsB,OAAOgK,aAAa,GAAG,qBAAqBqB,QAAQ,CAAC,IAAIkhB,EAAEvsB,OAAO6tD,qBAAqB,oBAAoB7tD,OAAOwhB,uBAAuBnW,QAAQC,MAAM,2IAA2I,oBAAoBihB,GAAGlhB,QAAQC,MAAM,0IAA0I,GAAG,kBACne+gB,GAAG,oBAAoBA,EAAE+b,IAAIzzC,EAAQ0hD,aAAa,WAAW,OAAOhqB,EAAE+b,WAAW,CAAC,IAAI5b,EAAEzb,EAAEq3B,MAAMzzC,EAAQ0hD,aAAa,WAAW,OAAOtlC,EAAEq3B,MAAM5b,GAAG,IAAI/1B,GAAE,EAAGg2B,EAAE,KAAKI,GAAG,EAAEC,EAAE,EAAEG,EAAE,EAAExxB,EAAE,WAAW,OAAO9G,EAAQ0hD,gBAAgBppB,GAAGnB,EAAE,aAAan3B,EAAQg5D,wBAAwB,SAAS5wD,GAAG,EAAEA,GAAG,IAAIA,EAAEsO,QAAQC,MAAM,oHAAoHwhB,EAAE,EAAE/vB,EAAE2E,KAAK4Z,MAAM,IAAIve,GAAG,GAAG,IAAImwB,EAAE,IAAIwgC,eAAergC,EAAEH,EAAE4gC,MAAM5gC,EAAE6gC,MAAMC,UACnf,WAAW,GAAG,OAAOvhC,EAAE,CAAC,IAAI1vB,EAAEpI,EAAQ0hD,eAAeppB,EAAElwB,EAAE+vB,EAAE,IAAIL,GAAE,EAAG1vB,GAAGswB,EAAE4gC,YAAY,OAAOx3D,GAAE,EAAGg2B,EAAE,MAAM,MAAMzvB,GAAG,MAAMqwB,EAAE4gC,YAAY,MAAMjxD,QAASvG,GAAE,GAAIq3B,EAAE,SAAS/wB,GAAG0vB,EAAE1vB,EAAEtG,IAAIA,GAAE,EAAG42B,EAAE4gC,YAAY,QAAQ/sC,EAAE,SAASnkB,EAAEC,GAAG6vB,EAAE7b,GAAE,WAAWjU,EAAEpI,EAAQ0hD,kBAAiBr5C,IAAI8S,EAAE,WAAWwc,EAAEO,GAAGA,GAAG,GAAG,SAASU,EAAExwB,EAAEC,GAAG,IAAI0Z,EAAE3Z,EAAE5H,OAAO4H,EAAEyC,KAAKxC,GAAGD,EAAE,OAAO,CAAC,IAAI6Q,EAAE8I,EAAE,IAAI,EAAEjY,EAAE1B,EAAE6Q,GAAG,UAAG,IAASnP,GAAG,EAAEgvB,EAAEhvB,EAAEzB,IAA0B,MAAMD,EAA7BA,EAAE6Q,GAAG5Q,EAAED,EAAE2Z,GAAGjY,EAAEiY,EAAE9I,GAAgB,SAAS8f,EAAE3wB,GAAU,YAAO,KAAdA,EAAEA,EAAE,IAAqB,KAAKA,EAC9c,SAAS8wB,EAAE9wB,GAAG,IAAIC,EAAED,EAAE,GAAG,QAAG,IAASC,EAAE,CAAC,IAAI0Z,EAAE3Z,EAAEpB,MAAM,GAAG+a,IAAI1Z,EAAE,CAACD,EAAE,GAAG2Z,EAAE3Z,EAAE,IAAI,IAAI6Q,EAAE,EAAEnP,EAAE1B,EAAE5H,OAAOyY,EAAEnP,GAAG,CAAC,IAAI0f,EAAE,GAAGvQ,EAAE,GAAG,EAAElS,EAAEqB,EAAEohB,GAAGiO,EAAEjO,EAAE,EAAE+N,EAAEnvB,EAAEqvB,GAAG,QAAG,IAAS1wB,GAAG,EAAE+xB,EAAE/xB,EAAEgb,QAAG,IAASwV,GAAG,EAAEuB,EAAEvB,EAAExwB,IAAIqB,EAAE6Q,GAAGse,EAAEnvB,EAAEqvB,GAAG1V,EAAE9I,EAAEwe,IAAIrvB,EAAE6Q,GAAGlS,EAAEqB,EAAEohB,GAAGzH,EAAE9I,EAAEuQ,OAAQ,WAAG,IAAS+N,GAAG,EAAEuB,EAAEvB,EAAExV,IAA0B,MAAM3Z,EAA7BA,EAAE6Q,GAAGse,EAAEnvB,EAAEqvB,GAAG1V,EAAE9I,EAAEwe,IAAgB,OAAOpvB,EAAE,OAAO,KAAK,SAASywB,EAAE1wB,EAAEC,GAAG,IAAI0Z,EAAE3Z,EAAEmxD,UAAUlxD,EAAEkxD,UAAU,OAAO,IAAIx3C,EAAEA,EAAE3Z,EAAE8N,GAAG7N,EAAE6N,GAAG,IAAIkkB,EAAE,GAAGd,EAAE,GAAGC,EAAE,EAAEC,EAAE,KAAKC,EAAE,EAAEG,GAAE,EAAGE,GAAE,EAAGC,GAAE,EACja,SAASF,EAAEzxB,GAAG,IAAI,IAAIC,EAAE0wB,EAAEO,GAAG,OAAOjxB,GAAG,CAAC,GAAG,OAAOA,EAAEoC,SAASyuB,EAAEI,OAAQ,MAAGjxB,EAAEmxD,WAAWpxD,GAAgD,MAA9C8wB,EAAEI,GAAGjxB,EAAEkxD,UAAUlxD,EAAE47C,eAAerrB,EAAEwB,EAAE/xB,GAAcA,EAAE0wB,EAAEO,IAAI,SAASW,EAAE7xB,GAAa,GAAV2xB,GAAE,EAAGF,EAAEzxB,IAAO0xB,EAAE,GAAG,OAAOf,EAAEqB,GAAGN,GAAE,EAAGX,EAAEgB,OAAO,CAAC,IAAI9xB,EAAE0wB,EAAEO,GAAG,OAAOjxB,GAAGkkB,EAAE0N,EAAE5xB,EAAEmxD,UAAUpxD,IACtP,SAAS+xB,EAAE/xB,EAAEC,GAAGyxB,GAAE,EAAGC,IAAIA,GAAE,EAAG5e,KAAKye,GAAE,EAAG,IAAI7X,EAAE0X,EAAE,IAAS,IAALI,EAAExxB,GAAOmxB,EAAET,EAAEqB,GAAG,OAAOZ,MAAMA,EAAEyqB,eAAe57C,IAAID,IAAItB,MAAM,CAAC,IAAImS,EAAEugB,EAAE/uB,SAAS,GAAG,OAAOwO,EAAE,CAACugB,EAAE/uB,SAAS,KAAKgvB,EAAED,EAAEigC,cAAc,IAAI3vD,EAAEmP,EAAEugB,EAAEyqB,gBAAgB57C,GAAGA,EAAErI,EAAQ0hD,eAAe,oBAAoB53C,EAAE0vB,EAAE/uB,SAASX,EAAE0vB,IAAIT,EAAEqB,IAAIlB,EAAEkB,GAAGP,EAAExxB,QAAQ6wB,EAAEkB,GAAGZ,EAAET,EAAEqB,GAAG,GAAG,OAAOZ,EAAE,IAAIhQ,GAAE,MAAO,CAAC,IAAIziB,EAAEgyB,EAAEO,GAAG,OAAOvyB,GAAGwlB,EAAE0N,EAAElzB,EAAEyyD,UAAUnxD,GAAGmhB,GAAE,EAAG,OAAOA,EAA7U,QAAuVgQ,EAAE,KAAKC,EAAE1X,EAAE6X,GAAE,GACpZ,SAASS,EAAEjyB,GAAG,OAAOA,GAAG,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,IAAI,KAAK,EAAE,OAAO,WAAW,KAAK,EAAE,OAAO,IAAI,QAAQ,OAAO,KAAK,IAAIkyB,EAAEnD,EAAEn3B,EAAQoiD,sBAAsB,EAAEpiD,EAAQ8hD,2BAA2B,EAAE9hD,EAAQkiD,qBAAqB,EAAEliD,EAAQ2qC,wBAAwB,EAAE3qC,EAAQ05D,mBAAmB,KAAK15D,EAAQwrC,8BAA8B,EAAExrC,EAAQshD,wBAAwB,SAASl5C,GAAGA,EAAEqC,SAAS,MAAMzK,EAAQ25D,2BAA2B,WAAW7/B,GAAGF,IAAIE,GAAE,EAAGX,EAAEgB,KACxcn6B,EAAQ4hD,iCAAiC,WAAW,OAAOnoB,GAAGz5B,EAAQ45D,8BAA8B,WAAW,OAAO7gC,EAAEqB,IAAIp6B,EAAQ65D,cAAc,SAASzxD,GAAG,OAAOqxB,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAIpxB,EAAE,EAAE,MAAM,QAAQA,EAAEoxB,EAAE,IAAI1X,EAAE0X,EAAEA,EAAEpxB,EAAE,IAAI,OAAOD,IAAX,QAAuBqxB,EAAE1X,IAAI/hB,EAAQ85D,wBAAwB,aAAa95D,EAAQwhD,sBAAsBlnB,EAAEt6B,EAAQiqC,yBAAyB,SAAS7hC,EAAEC,GAAG,OAAOD,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,QAAQA,EAAE,EAAE,IAAI2Z,EAAE0X,EAAEA,EAAErxB,EAAE,IAAI,OAAOC,IAAX,QAAuBoxB,EAAE1X,IAChe/hB,EAAQ0qC,0BAA0B,SAAStiC,EAAEC,EAAE0Z,GAAG,IAAI9I,EAAEjZ,EAAQ0hD,eAAe,GAAG,kBAAkB3/B,GAAG,OAAOA,EAAE,CAAC,IAAIjY,EAAEiY,EAAE2C,MAAM5a,EAAE,kBAAkBA,GAAG,EAAEA,EAAEmP,EAAEnP,EAAEmP,EAAE8I,EAAE,kBAAkBA,EAAEkxC,QAAQlxC,EAAEkxC,QAAQ54B,EAAEjyB,QAAQ2Z,EAAEsY,EAAEjyB,GAAG0B,EAAEmP,EAAyM,OAAjM7Q,EAAE,CAAC8N,GAAGqjB,IAAI9uB,SAASpC,EAAEoxD,cAAcrxD,EAAEoxD,UAAU1vD,EAAEm6C,eAAvDliC,EAAEjY,EAAEiY,EAAoEw3C,WAAW,GAAGzvD,EAAEmP,GAAG7Q,EAAEmxD,UAAUzvD,EAAE8uB,EAAEU,EAAElxB,GAAG,OAAO2wB,EAAEqB,IAAIhyB,IAAI2wB,EAAEO,KAAKS,EAAE5e,IAAI4e,GAAE,EAAGxN,EAAE0N,EAAEnwB,EAAEmP,MAAM7Q,EAAEmxD,UAAUx3C,EAAE6W,EAAEwB,EAAEhyB,GAAG0xB,GAAGF,IAAIE,GAAE,EAAGX,EAAEgB,KAAY/xB,GAC3apI,EAAQuiD,qBAAqB,WAAW,IAAIn6C,EAAEpI,EAAQ0hD,eAAe7nB,EAAEzxB,GAAG,IAAIC,EAAE0wB,EAAEqB,GAAG,OAAO/xB,IAAImxB,GAAG,OAAOA,GAAG,OAAOnxB,GAAG,OAAOA,EAAEoC,UAAUpC,EAAEmxD,WAAWpxD,GAAGC,EAAE47C,eAAezqB,EAAEyqB,gBAAgBn9C,KAAK9G,EAAQ+5D,sBAAsB,SAAS3xD,GAAG,IAAIC,EAAEoxB,EAAE,OAAO,WAAW,IAAI1X,EAAE0X,EAAEA,EAAEpxB,EAAE,IAAI,OAAOD,EAAEtH,MAAMC,KAAKR,WAAxB,QAA2Ck5B,EAAE1X,M,kDCX/T,IAAIi4C,EAAuB/5D,EAAQ,IAEnC,SAASg6D,KACT,SAASC,KACTA,EAAuBC,kBAAoBF,EAE3Cl6D,EAAOC,QAAU,WACf,SAASo6D,EAAK74D,EAAOsV,EAAUwjD,EAAev3D,EAAUw3D,EAAcC,GACpE,GAAIA,IAAWP,EAAf,CAIA,IAAIl7C,EAAM,IAAIvY,MACZ,mLAKF,MADAuY,EAAI7B,KAAO,sBACL6B,GAGR,SAAS07C,IACP,OAAOJ,EAFTA,EAAK3/C,WAAa2/C,EAMlB,IAAIK,EAAiB,CACnBC,MAAON,EACP5/C,KAAM4/C,EACN7/C,KAAM6/C,EACN1/C,OAAQ0/C,EACR1mD,OAAQ0mD,EACRjgD,OAAQigD,EACRO,OAAQP,EAERQ,IAAKR,EACLS,QAASL,EACTngD,QAAS+/C,EACThT,YAAagT,EACbU,WAAYN,EACZ/kC,KAAM2kC,EACNW,SAAUP,EACVlgD,MAAOkgD,EACPpgD,UAAWogD,EACXhlC,MAAOglC,EACPl3D,MAAOk3D,EAEPQ,eAAgBd,EAChBC,kBAAmBF,GAKrB,OAFAQ,EAAel+C,UAAYk+C,EAEpBA,I,6BCnDT16D,EAAOC,QAFoB,gD,cCT3BD,EAAOC,QAAUsI,MAAMC,SAAW,SAAUyW,GAC1C,MAA8C,kBAAvC7e,OAAOQ,UAAUsM,SAASpM,KAAKme,K,6BCQ3B,IAAI3W,EAAE,oBAAoB+W,QAAQA,OAAOgY,IAAIrV,EAAE1Z,EAAE+W,OAAOgY,IAAI,iBAAiB,MAAMne,EAAE5Q,EAAE+W,OAAOgY,IAAI,gBAAgB,MAAMttB,EAAEzB,EAAE+W,OAAOgY,IAAI,kBAAkB,MAAM+B,EAAE9wB,EAAE+W,OAAOgY,IAAI,qBAAqB,MAAM7K,EAAElkB,EAAE+W,OAAOgY,IAAI,kBAAkB,MAAMjc,EAAE9S,EAAE+W,OAAOgY,IAAI,kBAAkB,MAAMtwB,EAAEuB,EAAE+W,OAAOgY,IAAI,iBAAiB,MAAMD,EAAE9uB,EAAE+W,OAAOgY,IAAI,oBAAoB,MAAM5N,EAAEnhB,EAAE+W,OAAOgY,IAAI,yBAAyB,MAAMrwB,EAAEsB,EAAE+W,OAAOgY,IAAI,qBAAqB,MAAMC,EAAEhvB,EAAE+W,OAAOgY,IAAI,kBAAkB,MAAME,EAAEjvB,EACpf+W,OAAOgY,IAAI,uBAAuB,MAAMG,EAAElvB,EAAE+W,OAAOgY,IAAI,cAAc,MAAMpV,EAAE3Z,EAAE+W,OAAOgY,IAAI,cAAc,MAAMK,EAAEpvB,EAAE+W,OAAOgY,IAAI,eAAe,MAAMM,EAAErvB,EAAE+W,OAAOgY,IAAI,qBAAqB,MAAMhb,EAAE/T,EAAE+W,OAAOgY,IAAI,mBAAmB,MAAM/a,EAAEhU,EAAE+W,OAAOgY,IAAI,eAAe,MAClQ,SAASO,EAAEvvB,GAAG,GAAG,kBAAkBA,GAAG,OAAOA,EAAE,CAAC,IAAIovB,EAAEpvB,EAAEgxB,SAAS,OAAO5B,GAAG,KAAKzV,EAAE,OAAO3Z,EAAEA,EAAE4a,MAAQ,KAAKmU,EAAE,KAAK3N,EAAE,KAAK1f,EAAE,KAAKyiB,EAAE,KAAK4M,EAAE,KAAK9B,EAAE,OAAOjvB,EAAE,QAAQ,OAAOA,EAAEA,GAAGA,EAAEgxB,UAAY,KAAKtyB,EAAE,KAAKC,EAAE,KAAKib,EAAE,KAAKuV,EAAE,KAAKpc,EAAE,OAAO/S,EAAE,QAAQ,OAAOovB,GAAG,KAAKve,EAAE,OAAOue,IAAI,SAASI,EAAExvB,GAAG,OAAOuvB,EAAEvvB,KAAKohB,EAAExpB,EAAQi7D,UAAU9jC,EAAEn3B,EAAQk7D,eAAe1xC,EAAExpB,EAAQm7D,gBAAgBr0D,EAAE9G,EAAQo7D,gBAAgBjgD,EAAEnb,EAAQ6E,QAAQkd,EAAE/hB,EAAQ0jB,WAAW3c,EAAE/G,EAAQ86B,SAAShxB,EAAE9J,EAAQq7D,KAAKr5C,EAAEhiB,EAAQ2jB,KAAK4T,EAAEv3B,EAAQs7D,OAAOriD,EAChfjZ,EAAQ+6B,SAASxO,EAAEvsB,EAAQg7B,WAAW7B,EAAEn5B,EAAQi7B,SAAS5D,EAAEr3B,EAAQu7D,YAAY,SAASnzD,GAAG,OAAOwvB,EAAExvB,IAAIuvB,EAAEvvB,KAAK+uB,GAAGn3B,EAAQw7D,iBAAiB5jC,EAAE53B,EAAQy7D,kBAAkB,SAASrzD,GAAG,OAAOuvB,EAAEvvB,KAAKtB,GAAG9G,EAAQ07D,kBAAkB,SAAStzD,GAAG,OAAOuvB,EAAEvvB,KAAK+S,GAAGnb,EAAQ27D,UAAU,SAASvzD,GAAG,MAAM,kBAAkBA,GAAG,OAAOA,GAAGA,EAAEgxB,WAAWrX,GAAG/hB,EAAQ47D,aAAa,SAASxzD,GAAG,OAAOuvB,EAAEvvB,KAAKrB,GAAG/G,EAAQ67D,WAAW,SAASzzD,GAAG,OAAOuvB,EAAEvvB,KAAK0B,GAAG9J,EAAQ87D,OAAO,SAAS1zD,GAAG,OAAOuvB,EAAEvvB,KAAK4Z,GACzdhiB,EAAQyjB,OAAO,SAASrb,GAAG,OAAOuvB,EAAEvvB,KAAKmvB,GAAGv3B,EAAQ+7D,SAAS,SAAS3zD,GAAG,OAAOuvB,EAAEvvB,KAAK6Q,GAAGjZ,EAAQg8D,WAAW,SAAS5zD,GAAG,OAAOuvB,EAAEvvB,KAAKmkB,GAAGvsB,EAAQi8D,aAAa,SAAS7zD,GAAG,OAAOuvB,EAAEvvB,KAAK+wB,GAAGn5B,EAAQk8D,WAAW,SAAS9zD,GAAG,OAAOuvB,EAAEvvB,KAAKivB,GACzOr3B,EAAQm8D,mBAAmB,SAAS/zD,GAAG,MAAM,kBAAkBA,GAAG,oBAAoBA,GAAGA,IAAI0B,GAAG1B,IAAIohB,GAAGphB,IAAImkB,GAAGnkB,IAAI+wB,GAAG/wB,IAAIivB,GAAGjvB,IAAIkvB,GAAG,kBAAkBlvB,GAAG,OAAOA,IAAIA,EAAEgxB,WAAWpX,GAAG5Z,EAAEgxB,WAAW7B,GAAGnvB,EAAEgxB,WAAWje,GAAG/S,EAAEgxB,WAAWtyB,GAAGsB,EAAEgxB,WAAWryB,GAAGqB,EAAEgxB,WAAW1B,GAAGtvB,EAAEgxB,WAAWhd,GAAGhU,EAAEgxB,WAAW/c,GAAGjU,EAAEgxB,WAAW3B,IAAIz3B,EAAQo8D,OAAOzkC,G,iCCZnUx3B,OAAOiE,eAAepE,EAAS,aAAc,CAC3CqE,OAAO,IAGT,IAEIqO,EAAUzN,EAFDhF,EAAQ,IAMjBuF,EAAeP,EAFDhF,EAAQ,KAI1B,SAASgF,EAAuBU,GAAO,OAAOA,GAAOA,EAAIC,WAAaD,EAAM,CAAEE,QAASF,GAEvF,SAAS0N,EAAgBF,EAAUb,GAAe,KAAMa,aAAoBb,GAAgB,MAAM,IAAIc,UAAU,qCAEhH,SAASiS,EAA2BF,EAAMtkB,GAAQ,IAAKskB,EAAQ,MAAM,IAAIC,eAAe,6DAAgE,OAAOvkB,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BskB,EAAPtkB,EAIlO,IAAIw7D,EAAc,SAAUjtC,GAG1B,SAASitC,IACP,IAAIzvD,EAEA0vD,EAAO9nD,EAEXnB,EAAgBtS,KAAMs7D,GAEtB,IAAK,IAAIrxD,EAAOzK,UAAUC,OAAQyK,EAAO3C,MAAM0C,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC3ED,EAAKC,GAAQ3K,UAAU2K,GAGzB,OAAeoxD,EAAS9nD,EAAQ6Q,EAA2BtkB,MAAO6L,EAAOyvD,EAAYl2D,WAAahG,OAAOgU,eAAekoD,IAAcx7D,KAAKC,MAAM8L,EAAM,CAAC7L,MAAM2G,OAAOuD,KAAiBuJ,EAAMnT,OAAS,WACnM,OAAOqR,EAAQ7M,QAAQ0F,cACrB,IACAiJ,EAAMjT,MACNiT,EAAMjT,MAAMD,WAEL+jB,EAA2B7Q,EAAnC8nD,GAGL,OAzBF,SAAmBv2D,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIoN,UAAU,kEAAoEpN,GAAeD,EAASpF,UAAYR,OAAO8F,OAAOD,GAAcA,EAAWrF,UAAW,CAAEuF,YAAa,CAAE7B,MAAO0B,EAAUoM,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAepM,IAAY7F,OAAOmU,eAAiBnU,OAAOmU,eAAevO,EAAUC,GAAcD,EAASI,UAAYH,GAG/duO,CAAU8nD,EAAajtC,GAsBhBitC,EAvBS,CAwBhB3pD,EAAQ7M,QAAQ5E,WAIlBjB,EAAQ6F,SAAU,EAAIL,EAAaK,SAASw2D,I,iBClD5C,YAUA,IASIE,EAAS,aAGTC,EAAa,qBAGbC,EAAa,aAGbC,EAAY,cAGZC,EAAeC,SAGfC,EAA8B,iBAAVvmC,GAAsBA,GAAUA,EAAOn2B,SAAWA,QAAUm2B,EAGhFwmC,EAA0B,iBAAR33C,MAAoBA,MAAQA,KAAKhlB,SAAWA,QAAUglB,KAGxE43C,EAAOF,GAAcC,GAAYjpD,SAAS,cAATA,GAUjCmpD,EAPc78D,OAAOQ,UAOQsM,SAG7BgwD,EAAYlwD,KAAKiE,IACjBksD,EAAYnwD,KAAKgE,IAkBjB0iC,EAAM,WACR,OAAOspB,EAAK/vC,KAAKymB,OAyDnB,SAAS0pB,EAAS5iD,EAAM6iD,EAAM3oD,GAC5B,IAAI4oD,EACAC,EACAC,EACAx1D,EACAy1D,EACAC,EACAC,EAAiB,EACjBC,GAAU,EACVC,GAAS,EACTC,GAAW,EAEf,GAAmB,mBAARtjD,EACT,MAAM,IAAInH,UArIQ,uBA+IpB,SAAS0qD,EAAW7nB,GAClB,IAAIhrC,EAAOoyD,EACPU,EAAUT,EAKd,OAHAD,EAAWC,OAAWv4D,EACtB24D,EAAiBznB,EACjBluC,EAASwS,EAAKzZ,MAAMi9D,EAAS9yD,GAI/B,SAAS+yD,EAAY/nB,GAMnB,OAJAynB,EAAiBznB,EAEjBunB,EAAUloD,WAAW2oD,EAAcb,GAE5BO,EAAUG,EAAW7nB,GAAQluC,EAWtC,SAASm2D,EAAajoB,GACpB,IAAIkoB,EAAoBloB,EAAOwnB,EAM/B,YAAyB14D,IAAjB04D,GAA+BU,GAAqBf,GACzDe,EAAoB,GAAOP,GANJ3nB,EAAOynB,GAM8BH,EAGjE,SAASU,IACP,IAAIhoB,EAAOxC,IACX,GAAIyqB,EAAajoB,GACf,OAAOmoB,EAAanoB,GAGtBunB,EAAUloD,WAAW2oD,EAzBvB,SAAuBhoB,GACrB,IAEIluC,EAASq1D,GAFWnnB,EAAOwnB,GAI/B,OAAOG,EAASV,EAAUn1D,EAAQw1D,GAHRtnB,EAAOynB,IAGkC31D,EAoBhCs2D,CAAcpoB,IAGnD,SAASmoB,EAAanoB,GAKpB,OAJAunB,OAAUz4D,EAIN84D,GAAYR,EACPS,EAAW7nB,IAEpBonB,EAAWC,OAAWv4D,EACfgD,GAeT,SAASu2D,IACP,IAAIroB,EAAOxC,IACP8qB,EAAaL,EAAajoB,GAM9B,GAJAonB,EAAW98D,UACX+8D,EAAWv8D,KACX08D,EAAexnB,EAEXsoB,EAAY,CACd,QAAgBx5D,IAAZy4D,EACF,OAAOQ,EAAYP,GAErB,GAAIG,EAGF,OADAJ,EAAUloD,WAAW2oD,EAAcb,GAC5BU,EAAWL,GAMtB,YAHgB14D,IAAZy4D,IACFA,EAAUloD,WAAW2oD,EAAcb,IAE9Br1D,EAIT,OAxGAq1D,EAAOoB,EAASpB,IAAS,EACrBqB,EAAShqD,KACXkpD,IAAYlpD,EAAQkpD,QAEpBJ,GADAK,EAAS,YAAanpD,GACHwoD,EAAUuB,EAAS/pD,EAAQ8oD,UAAY,EAAGH,GAAQG,EACrEM,EAAW,aAAcppD,IAAYA,EAAQopD,SAAWA,GAiG1DS,EAAUlxC,OAnCV,gBACkBroB,IAAZy4D,GACFnoD,aAAamoD,GAEfE,EAAiB,EACjBL,EAAWI,EAAeH,EAAWE,OAAUz4D,GA+BjDu5D,EAAUI,MA5BV,WACE,YAAmB35D,IAAZy4D,EAAwBz1D,EAASq2D,EAAa3qB,MA4BhD6qB,EA0FT,SAASG,EAASp6D,GAChB,IAAI2e,SAAc3e,EAClB,QAASA,IAAkB,UAAR2e,GAA4B,YAARA,GA4EzC,SAASw7C,EAASn6D,GAChB,GAAoB,iBAATA,EACT,OAAOA,EAET,GAhCF,SAAkBA,GAChB,MAAuB,iBAATA,GAtBhB,SAAsBA,GACpB,QAASA,GAAyB,iBAATA,EAsBtBs6D,CAAat6D,IAvXF,mBAuXY24D,EAAen8D,KAAKwD,GA8B1Cu6D,CAASv6D,GACX,OAzZM,IA2ZR,GAAIo6D,EAASp6D,GAAQ,CACnB,IAAIw6D,EAAgC,mBAAjBx6D,EAAM6D,QAAwB7D,EAAM6D,UAAY7D,EACnEA,EAAQo6D,EAASI,GAAUA,EAAQ,GAAMA,EAE3C,GAAoB,iBAATx6D,EACT,OAAiB,IAAVA,EAAcA,GAASA,EAEhCA,EAAQA,EAAM1B,QAAQ45D,EAAQ,IAC9B,IAAIuC,EAAWrC,EAAWz8C,KAAK3b,GAC/B,OAAQy6D,GAAYpC,EAAU18C,KAAK3b,GAC/Bs4D,EAAat4D,EAAMgF,MAAM,GAAIy1D,EAAW,EAAI,GAC3CtC,EAAWx8C,KAAK3b,GAtab,KAsa6BA,EAGvCtE,EAAOC,QA9IP,SAAkBua,EAAM6iD,EAAM3oD,GAC5B,IAAIkpD,GAAU,EACVE,GAAW,EAEf,GAAmB,mBAARtjD,EACT,MAAM,IAAInH,UAnSQ,uBAySpB,OAJIqrD,EAAShqD,KACXkpD,EAAU,YAAalpD,IAAYA,EAAQkpD,QAAUA,EACrDE,EAAW,aAAcppD,IAAYA,EAAQopD,SAAWA,GAEnDV,EAAS5iD,EAAM6iD,EAAM,CAC1B,QAAWO,EACX,QAAWP,EACX,SAAYS,O,+CCpThB19D,OAAOiE,eAAepE,EAAS,aAAc,CAC3CqE,OAAO,IAETrE,EAAQ6F,QAAU,CAIhB8mB,cAAe,SAAuBvQ,GACpC,OAAIA,EAAI,GACCrP,KAAKgyD,IAAQ,EAAJ3iD,EAAO,GAAK,EAEvB,EAAIrP,KAAKgyD,IAAc,GAAT,EAAI3iD,GAAQ,GAAK,GAMxC4iD,OAAQ,SAAgB5iD,GACtB,OAAOA,GAGT6iD,WAAY,SAAoB7iD,GAC9B,OAAOA,EAAIA,GAGb8iD,YAAa,SAAqB9iD,GAChC,OAAOA,GAAK,EAAIA,IAGlB+iD,cAAe,SAAuB/iD,GACpC,OAAOA,EAAI,GAAK,EAAIA,EAAIA,GAAU,EAAI,EAAIA,GAAKA,EAAlB,GAG/BgjD,YAAa,SAAqBhjD,GAChC,OAAOA,EAAIA,EAAIA,GAGjBijD,aAAc,SAAsBjjD,GAClC,QAASA,EAAIA,EAAIA,EAAI,GAGvBkjD,eAAgB,SAAwBljD,GACtC,OAAOA,EAAI,GAAK,EAAIA,EAAIA,EAAIA,GAAKA,EAAI,IAAM,EAAIA,EAAI,IAAM,EAAIA,EAAI,GAAK,GAGxEmjD,YAAa,SAAqBnjD,GAChC,OAAOA,EAAIA,EAAIA,EAAIA,GAGrBojD,aAAc,SAAsBpjD,GAClC,OAAO,KAAMA,EAAIA,EAAIA,EAAIA,GAG3BqjD,eAAgB,SAAwBrjD,GACtC,OAAOA,EAAI,GAAK,EAAIA,EAAIA,EAAIA,EAAIA,EAAI,EAAI,IAAMA,EAAIA,EAAIA,EAAIA,GAG5DsjD,YAAa,SAAqBtjD,GAChC,OAAOA,EAAIA,EAAIA,EAAIA,EAAIA,GAGzBujD,aAAc,SAAsBvjD,GAClC,OAAO,IAAMA,EAAIA,EAAIA,EAAIA,EAAIA,GAG/BwjD,eAAgB,SAAwBxjD,GACtC,OAAOA,EAAI,GAAK,GAAKA,EAAIA,EAAIA,EAAIA,EAAIA,EAAI,EAAI,KAAOA,EAAIA,EAAIA,EAAIA,EAAIA,K,6BClExEjc,OAAOiE,eAAepE,EAAS,aAAc,CAC3CqE,OAAO,IAGT,IAAI4iB,EAAyBhnB,EAAQ,IAEjC4/D,EAAS,CAAC,YAAa,aAAc,YAAa,WAEtD7/D,EAAQ6F,QAAU,CAChBmoB,UAAW,SAAmB8xC,GAC5B,MAA2B,qBAAbx0D,UAA4Bu0D,EAAO10D,SAAQ,SAAU9I,GACjE,OAAO,EAAI4kB,EAAuBO,yBAAyBlc,SAAUjJ,EAAOy9D,S,6BCXlF3/D,OAAOiE,eAAepE,EAAS,aAAc,CAC3CqE,OAAO,IAGT,IAAI2N,EAAe,WAAc,SAASC,EAAiB5R,EAAQkB,GAAS,IAAK,IAAIjB,EAAI,EAAGA,EAAIiB,EAAMf,OAAQF,IAAK,CAAE,IAAI4R,EAAa3Q,EAAMjB,GAAI4R,EAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,UAAWF,IAAYA,EAAWG,UAAW,GAAMlS,OAAOiE,eAAe/D,EAAQ6R,EAAWxR,IAAKwR,IAAiB,OAAO,SAAUI,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAYN,EAAiBK,EAAY3R,UAAW4R,GAAiBC,GAAaP,EAAiBK,EAAaE,GAAqBF,GAA7gB,GAIfI,EAAUzN,EAFDhF,EAAQ,IAMjBuF,EAAeP,EAFDhF,EAAQ,KAI1B,SAASgF,EAAuBU,GAAO,OAAOA,GAAOA,EAAIC,WAAaD,EAAM,CAAEE,QAASF,GAEvF,SAAS0N,EAAgBF,EAAUb,GAAe,KAAMa,aAAoBb,GAAgB,MAAM,IAAIc,UAAU,qCAEhH,SAASiS,EAA2BF,EAAMtkB,GAAQ,IAAKskB,EAAQ,MAAM,IAAIC,eAAe,6DAAgE,OAAOvkB,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BskB,EAAPtkB,EAIlO,IAAIk/D,EAAgB,SAAU3wC,GAG5B,SAAS2wC,IAGP,OAFA1sD,EAAgBtS,KAAMg/D,GAEf16C,EAA2BtkB,MAAOg/D,EAAc55D,WAAahG,OAAOgU,eAAe4rD,IAAgBj/D,MAAMC,KAAMR,YAcxH,OAtBF,SAAmBwF,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIoN,UAAU,kEAAoEpN,GAAeD,EAASpF,UAAYR,OAAO8F,OAAOD,GAAcA,EAAWrF,UAAW,CAAEuF,YAAa,CAAE7B,MAAO0B,EAAUoM,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAepM,IAAY7F,OAAOmU,eAAiBnU,OAAOmU,eAAevO,EAAUC,GAAcD,EAASI,UAAYH,GAG/duO,CAAUwrD,EAAe3wC,GAQzBpd,EAAa+tD,EAAe,CAAC,CAC3Br/D,IAAK,SACL2D,MAAO,WACL,OAAOqO,EAAQ7M,QAAQ0F,cACrB,QACAxK,KAAKQ,MACLR,KAAKQ,MAAMD,cAKVy+D,EApBW,CAqBlBrtD,EAAQ7M,QAAQ5E,WAIlBjB,EAAQ6F,SAAU,EAAIL,EAAaK,SAASk6D,I,6BC/C5C5/D,OAAOiE,eAAepE,EAAS,aAAc,CAC3CqE,OAAO,IAGT,IAAInE,EAAWC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,GAEnP2R,EAAe,WAAc,SAASC,EAAiB5R,EAAQkB,GAAS,IAAK,IAAIjB,EAAI,EAAGA,EAAIiB,EAAMf,OAAQF,IAAK,CAAE,IAAI4R,EAAa3Q,EAAMjB,GAAI4R,EAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,UAAWF,IAAYA,EAAWG,UAAW,GAAMlS,OAAOiE,eAAe/D,EAAQ6R,EAAWxR,IAAKwR,IAAiB,OAAO,SAAUI,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAYN,EAAiBK,EAAY3R,UAAW4R,GAAiBC,GAAaP,EAAiBK,EAAaE,GAAqBF,GAA7gB,GAIfI,EAAUzN,EAFDhF,EAAQ,IAMjBwF,EAAkBR,EAFDhF,EAAQ,KAMzB2S,EAAc3N,EAFDhF,EAAQ,IAIzB,SAASgF,EAAuBU,GAAO,OAAOA,GAAOA,EAAIC,WAAaD,EAAM,CAAEE,QAASF,GAEvF,SAAS0N,EAAgBF,EAAUb,GAAe,KAAMa,aAAoBb,GAAgB,MAAM,IAAIc,UAAU,qCAEhH,SAASiS,EAA2BF,EAAMtkB,GAAQ,IAAKskB,EAAQ,MAAM,IAAIC,eAAe,6DAAgE,OAAOvkB,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BskB,EAAPtkB,EAIlO,IAAIm/D,EAAiB,SAAU5wC,GAG7B,SAAS4wC,IAGP,OAFA3sD,EAAgBtS,KAAMi/D,GAEf36C,EAA2BtkB,MAAOi/D,EAAe75D,WAAahG,OAAOgU,eAAe6rD,IAAiBl/D,MAAMC,KAAMR,YAwB1H,OAhCF,SAAmBwF,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIoN,UAAU,kEAAoEpN,GAAeD,EAASpF,UAAYR,OAAO8F,OAAOD,GAAcA,EAAWrF,UAAW,CAAEuF,YAAa,CAAE7B,MAAO0B,EAAUoM,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAepM,IAAY7F,OAAOmU,eAAiBnU,OAAOmU,eAAevO,EAAUC,GAAcD,EAASI,UAAYH,GAG/duO,CAAUyrD,EAAgB5wC,GAQ1Bpd,EAAaguD,EAAgB,CAAC,CAC5Bt/D,IAAK,SACL2D,MAAO,WACL,IAAIyT,EAAS/W,KAGTk/D,EAAW//D,EAAS,GAAIa,KAAKQ,OAKjC,OAJI0+D,EAASzwC,uBACJywC,EAASzwC,eAGX9c,EAAQ7M,QAAQ0F,cACrB,MACArL,EAAS,GAAI+/D,EAAU,CAAExwC,IAAK,SAAaha,GACvCqC,EAAOvW,MAAMiuB,eAAeF,QAAU7Z,KAE1C1U,KAAKQ,MAAMD,cAKV0+D,EA9BY,CA+BnBttD,EAAQ7M,QAAQ5E,WAIlB++D,EAAe9lD,UAAY,CACzB+C,KAAMrK,EAAY/M,QAAQsU,OAC1BjE,GAAItD,EAAY/M,QAAQsU,QAG1Bna,EAAQ6F,SAAU,EAAIJ,EAAgBI,SAASm6D,I,6BClE/C,IAAI9/D,EAAWC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,GAEnP2R,EAAe,WAAc,SAASC,EAAiB5R,EAAQkB,GAAS,IAAK,IAAIjB,EAAI,EAAGA,EAAIiB,EAAMf,OAAQF,IAAK,CAAE,IAAI4R,EAAa3Q,EAAMjB,GAAI4R,EAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,UAAWF,IAAYA,EAAWG,UAAW,GAAMlS,OAAOiE,eAAe/D,EAAQ6R,EAAWxR,IAAKwR,IAAiB,OAAO,SAAUI,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAYN,EAAiBK,EAAY3R,UAAW4R,GAAiBC,GAAaP,EAAiBK,EAAaE,GAAqBF,GAA7gB,GAEnB,SAASe,EAAgBF,EAAUb,GAAe,KAAMa,aAAoBb,GAAgB,MAAM,IAAIc,UAAU,qCAEhH,SAASiS,EAA2BF,EAAMtkB,GAAQ,IAAKskB,EAAQ,MAAM,IAAIC,eAAe,6DAAgE,OAAOvkB,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BskB,EAAPtkB,EAElO,SAAS0T,EAAUxO,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIoN,UAAU,kEAAoEpN,GAAeD,EAASpF,UAAYR,OAAO8F,OAAOD,GAAcA,EAAWrF,UAAW,CAAEuF,YAAa,CAAE7B,MAAO0B,EAAUoM,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAepM,IAAY7F,OAAOmU,eAAiBnU,OAAOmU,eAAevO,EAAUC,GAAcD,EAASI,UAAYH,GAEje,IAAIhF,EAAQf,EAAQ,GAIhByE,GAHWzE,EAAQ,IAEXA,EAAQ,IACJA,EAAQ,KACpBigE,EAAkBjgE,EAAQ,IAC1Bsc,EAAYtc,EAAQ,GACpB6uB,EAAa7uB,EAAQ,IAErBskB,EAAa,CACf9iB,GAAI8a,EAAUpC,OAAOM,WACrBoG,YAAatE,EAAUpC,OACvB4G,UAAWxE,EAAU7I,OACrB8Q,YAAajI,EAAUpC,OACvBsK,IAAKlI,EAAU/B,KACf4G,OAAQ7E,EAAUnC,UAAU,CAACmC,EAAU/B,KAAM+B,EAAUpC,SACvDgH,OAAQ5E,EAAU7B,OAClBgK,MAAOnI,EAAU7B,OACjBiK,UAAWpI,EAAU/B,KACrBrY,QAASoa,EAAUhC,KACnBqK,SAAUrI,EAAUnC,UAAU,CAACmC,EAAU7B,OAAQ6B,EAAUhC,OAC3DuG,SAAUvE,EAAU/B,KACpBqK,YAAatI,EAAUhC,KACvBuK,cAAevI,EAAUhC,KACzBwK,mBAAoBxI,EAAU/B,KAC9BwK,QAASzI,EAAU/B,MAGjBlW,EAAU,CACZo4C,OAAQ,SAAgBz7C,EAAWgkB,GAEjCvO,QAAQ8K,KAAK,6CAEb,IAAI5c,EAAWqgB,GAAkBi7C,EAE7BxjB,EAAS,SAAUttB,GAGrB,SAASstB,EAAOn7C,GACd8R,EAAgBtS,KAAM27C,GAEtB,IAAIloC,EAAQ6Q,EAA2BtkB,MAAO27C,EAAOv2C,WAAahG,OAAOgU,eAAeuoC,IAAS77C,KAAKE,KAAMQ,IAO5G,OALA+jB,EAAiBzkB,KAAK2T,GAEtBA,EAAM/K,MAAQ,CACZ8b,QAAQ,GAEH/Q,EA8ET,OA1FAD,EAAUmoC,EAAQttB,GAelBpd,EAAa0qC,EAAQ,CAAC,CACpBh8C,IAAK,wBACL2D,MAAO,WACL,IAAIwc,EAAc9f,KAAKQ,MAAMsf,YACzBE,EAAYhgB,KAAKQ,MAAMwf,UAE3B,OAAIF,EACKvV,SAAS+K,eAAewK,GAG7BE,GAAaA,EAAUE,SAClBF,EAGFzV,WAER,CACD5K,IAAK,oBACL2D,MAAO,WACL,GAAItD,KAAKQ,MAAMkjB,KAAO1jB,KAAKQ,MAAMyjB,QAAS,CACxC,IAAIQ,EAAqBzkB,KAAK0kB,wBAEzB/gB,EAAUghB,UAAUF,IACvB9gB,EAAUihB,MAAMH,GAGdzkB,KAAKQ,MAAMyjB,UACR8J,EAAWpJ,aACdoJ,EAAWnJ,MAAM/gB,GAEnBkqB,EAAWlJ,aAAa7kB,KAAKQ,MAAME,GAAI+jB,IAGrCzkB,KAAKQ,MAAMkjB,KACb/f,EAAUqjB,gBAAgBhnB,KAAKglB,cAGjCrhB,EAAUmhB,cAAc9kB,KAAK+kB,WAAYN,GAEzCzkB,KAAKoM,SAAS,CACZ4T,UAAWyE,OAIhB,CACD9kB,IAAK,uBACL2D,MAAO,WACLK,EAAU0b,QAAQrf,KAAKglB,aAAchlB,KAAK+kB,cAE3C,CACDplB,IAAK,SACL2D,MAAO,WACL,IAAIhB,EAAY,GAGdA,EADEtC,KAAK0I,OAAS1I,KAAK0I,MAAM8b,SACbxkB,KAAKQ,MAAM8B,WAAa,IAAM,KAAOtC,KAAKQ,MAAMijB,aAAe,WAAW9L,OAE5E3X,KAAKQ,MAAM8B,UAGzB,IAAI9B,EAAQrB,EAAS,GAAIa,KAAKQ,OAE9B,IAAK,IAAIiV,KAAQ+N,EACXhjB,EAAMX,eAAe4V,WAChBjV,EAAMiV,GAOjB,OAHAjV,EAAM8B,UAAYA,EAClB9B,EAAMY,QAAUpB,KAAKilB,YAEdhlB,EAAMuK,cAActK,EAAWM,OAInCm7C,EA3FI,CA4FX17C,EAAMC,WAEJqkB,EAAmB,WACrB,IAAIxN,EAAS/W,KAEbA,KAAK6f,SAAW,SAAUnf,EAAIF,GAC5BqD,EAASgc,SAASnf,EAAIvB,EAAS,GAAI4X,EAAOrO,MAAOlI,KAGnDR,KAAKilB,YAAc,SAAU3jB,GAMvByV,EAAOvW,MAAMY,SACf2V,EAAOvW,MAAMY,QAAQE,GAOnBA,EAAM6jB,iBAAiB7jB,EAAM6jB,kBAC7B7jB,EAAM8jB,gBAAgB9jB,EAAM8jB,iBAKhCrO,EAAO8I,SAAS9I,EAAOvW,MAAME,GAAIqW,EAAOvW,QAG1CR,KAAKglB,aAAe,WACdnhB,EAAS+b,kBAAoB7I,EAAOvW,MAAME,KACvB,OAAjBqW,EAAOrO,OAAkBqO,EAAOrO,MAAM8b,QAAUzN,EAAOvW,MAAMujB,eAC/DhN,EAAOvW,MAAMujB,gBAEfhN,EAAO3K,SAAS,CAAEoY,QAAQ,MAI9BxkB,KAAK+kB,WAAa,SAAUzJ,GAE1B,IAAImJ,EAAqB1N,EAAO2N,wBAEhC,IAAIqJ,EAAWpJ,aAAgBoJ,EAAW1I,gBAA1C,CAIA,IAAI3kB,EAAKqW,EAAOvW,MAAME,GAClB4Y,EAAU,KACVgM,EAAe,EACfC,EAAkB,EAClBC,EAAe,EAEnB,GAAIf,EAAmBvD,sBAErBsE,EADqBf,EAAmBvD,wBACVC,IAGhC,IAAK7H,GAAWvC,EAAOvW,MAAMojB,UAAW,CAEtC,KADAtK,EAAUzV,EAASqP,IAAIxS,IAErB,OAGF,IAAI+kB,EAAQnM,EAAQ4H,wBAEpBqE,GADAD,EAAeG,EAAMtE,IAAMqE,EAAelK,GACTmK,EAAM1N,OAGzC,IAAI2N,EAAUpK,EAAIvE,EAAOvW,MAAM4f,OAC3BuF,EAAWD,GAAW1Z,KAAK4Z,MAAMN,IAAiBI,EAAU1Z,KAAK4Z,MAAML,GACvEM,EAAYH,EAAU1Z,KAAK4Z,MAAMN,IAAiBI,GAAW1Z,KAAK4Z,MAAML,GACxEO,EAAajiB,EAAS+b,gBAE1B,OAAIiG,GACEnlB,IAAOolB,GACTjiB,EAAS6b,mBAAc,GAGrB3I,EAAOvW,MAAMyjB,SAAW8J,EAAWnN,YAAclgB,GACnDqtB,EAAWhI,aAGThP,EAAOvW,MAAMkjB,KAAO3M,EAAOrO,MAAM8b,SACnCzN,EAAO3K,SAAS,CAAEoY,QAAQ,IAC1BzN,EAAOvW,MAAMujB,eAAiBhN,EAAOvW,MAAMujB,iBAGtCpgB,EAAUsjB,gBAGftB,GAAYG,IAAeplB,GAC7BmD,EAAS6b,cAAchf,GAEvBqW,EAAOvW,MAAMyjB,SAAW8J,EAAWhI,WAAWrlB,GAE1CqW,EAAOvW,MAAMkjB,MACf3M,EAAO3K,SAAS,CAAEoY,QAAQ,IAC1BzN,EAAOvW,MAAMsjB,aAAe/M,EAAOvW,MAAMsjB,YAAYpjB,IAEhDiD,EAAUsjB,qBATnB,KAoBJ,OAJA00B,EAAOxiC,UAAYqK,EAEnBm4B,EAAO9hC,aAAe,CAAEuG,OAAQ,GAEzBu7B,GAET73C,QAAS,SAAiB5D,GAExByV,QAAQ8K,KAAK,8CAEb,IAAI3c,EAAU,SAAUs7D,GAGtB,SAASt7D,EAAQtD,GACf8R,EAAgBtS,KAAM8D,GAEtB,IAAI0T,EAAS8M,EAA2BtkB,MAAO8D,EAAQsB,WAAahG,OAAOgU,eAAetP,IAAUhE,KAAKE,KAAMQ,IAK/G,OAHAgX,EAAO8W,cAAgB,CACrBC,QAAS,MAEJ/W,EAsCT,OAhDAhE,EAAU1P,EAASs7D,GAanBnuD,EAAanN,EAAS,CAAC,CACrBnE,IAAK,oBACL2D,MAAO,WACL,GAAsB,qBAAXgH,OACT,OAAO,EAETtK,KAAKwuB,cAAcxuB,KAAKQ,MAAM0b,QAE/B,CACDvc,IAAK,qBACL2D,MAAO,SAA4BwT,GAC7B9W,KAAKQ,MAAM0b,OAASpF,EAAUoF,MAChClc,KAAKwuB,cAAcxuB,KAAKQ,MAAM0b,QAGjC,CACDvc,IAAK,uBACL2D,MAAO,WACL,GAAsB,qBAAXgH,OACT,OAAO,EAET60D,EAAgB5/C,WAAWvf,KAAKQ,MAAM0b,QAEvC,CACDvc,IAAK,gBACL2D,MAAO,SAAuB4Y,GAC5BijD,EAAgB7/C,SAASpD,EAAMlc,KAAKsuB,cAAcC,WAEnD,CACD5uB,IAAK,SACL2D,MAAO,WACL,OAAOrD,EAAMuK,cAActK,EAAWf,EAAS,GAAIa,KAAKQ,MAAO,CAAEiuB,eAAgBzuB,KAAKsuB,qBAInFxqB,EAjDK,CAkDZ7D,EAAMC,WASR,OALA4D,EAAQqV,UAAY,CAClB+C,KAAMV,EAAUpC,OAChBjE,GAAIqG,EAAUpC,QAGTtV,IAIX9E,EAAOC,QAAUsE,G,eCnUjB,SAASpE,IAeP,OAdAH,EAAOC,QAAUE,EAAWC,OAAOC,QAAU,SAAUC,GACrD,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CACzC,IAAIG,EAASF,UAAUD,GAEvB,IAAK,IAAII,KAAOD,EACVN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAC/CL,EAAOK,GAAOD,EAAOC,IAK3B,OAAOL,GAGFH,EAASY,MAAMC,KAAMR,WAG9BR,EAAOC,QAAUE,G,6BChBjBC,OAAOiE,eAAepE,EAAS,aAAc,CAC3CqE,OAAO,IAKT,IAFgCsB,EAE5By6D,EAAengE,EAAQ,GAEvBogE,GAJ4B16D,EAIWy6D,IAJUz6D,EAAIC,WAAaD,EAAM,CAAE,QAAWA,GAQzF3F,EAAO,SAAc,EAAIqgE,EAAa,SAFzB,IAGbtgE,EAAOC,QAAUA,EAAO,S,6BCbxBG,OAAOiE,eAAepE,EAAS,aAAc,CAC3CqE,OAAO,IAyDTrE,EAAO,QAvDM,CACXsgE,QAAS,SAAiBjsD,GACxB,MAAO,CACLiO,SAAU,QACVyrB,OAAQ,IACR72B,MAAO,OACP4B,OAAQ,OACRynD,WAAY,qBACZ7yB,QAASr5B,EAAS,EAAI,EACtBwf,aAAcxf,EAAS,GAAK,0BAC5Byf,YAAazf,EAAS,GAAK,0BAC3B0f,WAAY1f,EAAS,GAAK,0BAC1Buf,gBAAiBvf,EAAS,GAAK,0BAC/B2f,UAAW3f,EAAS,GAAK,0BACzB4C,WAAY5C,EAAS,eAAiB,oCAI1CmsD,SAAU,SAAkBnsD,EAAQ6C,EAAOE,GACzC,MAAO,CACLkL,SAAU,QACVlL,MAAOA,EAAQ,EAAI,UACnB22B,OAAQ,KACR72B,MAAOA,EACP4B,OAAQ,OACR+a,aAAcxf,EAAS,GAAK+C,EAAQ,0BAA4B,2BAChE0c,YAAazf,EAAS,GAAK+C,EAAQ,0BAA4B,2BAC/D2c,WAAY1f,EAAS,GAAK+C,EAAQ,0BAA4B,2BAC9Dwc,gBAAiBvf,EAAS,GAAK+C,EAAQ,0BAA4B,2BACnE4c,UAAW3f,EAAS,GAAK+C,EAAQ,0BAA4B,2BAC7DH,WAAY,aAIhBwpD,KAAM,WACJ,MAAO,CACL3nD,OAAQ,OACR4nD,UAAW,aACXC,SAAU,SAIdC,SAAU,WACR,MAAO,CACL9nD,OAAQ,SAIZrQ,KAAM,WACJ,MAAO,CACL8nD,QAAS,WAMfxwD,EAAOC,QAAUA,EAAO,S,6BC3DxBG,OAAOiE,eAAepE,EAAS,aAAc,CAC3CqE,OAAO,IAGT,IAAInE,EAAWC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,GAEnP2R,EAAgB,WAAc,SAASC,EAAiB5R,EAAQkB,GAAS,IAAK,IAAIjB,EAAI,EAAGA,EAAIiB,EAAMf,OAAQF,IAAK,CAAE,IAAI4R,EAAa3Q,EAAMjB,GAAI4R,EAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,UAAWF,IAAYA,EAAWG,UAAW,GAAMlS,OAAOiE,eAAe/D,EAAQ6R,EAAWxR,IAAKwR,IAAiB,OAAO,SAAUI,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAYN,EAAiBK,EAAY3R,UAAW4R,GAAiBC,GAAaP,EAAiBK,EAAaE,GAAqBF,GAA7gB,GAIpB,SAASrN,EAAuBU,GAAO,OAAOA,GAAOA,EAAIC,WAAaD,EAAM,CAAE,QAAWA,GAMzF,IAAI8M,EAASxS,EAAQ,GAEjByS,EAAUzN,EAAuBwN,GAIjCG,EAAc3N,EAFDhF,EAAQ,IAIrB4gE,EAAc,SAAU3tD,GAG1B,SAAS2tD,EAAWt/D,IAftB,SAAyB4R,EAAUb,GAAe,KAAMa,aAAoBb,GAAgB,MAAM,IAAIc,UAAU,qCAgB5GC,CAAgBtS,KAAM8/D,GApBf,SAAaC,EAAIC,EAAKztD,GAAqC,IAA9B,IAAIG,GAAS,EAAwBA,GAAQ,CAAE,IAAIC,EAASotD,EAAIntD,EAAWotD,EAAKntD,EAAWN,EAAKG,GAAS,EAAsB,OAAXC,IAAiBA,EAASG,SAASlT,WAAW,IAAImT,EAAO3T,OAAO4T,yBAAyBL,EAAQC,GAAW,QAAa5O,IAAT+O,EAAJ,CAA4O,GAAI,UAAWA,EAAQ,OAAOA,EAAKzP,MAAgB,IAAI2P,EAASF,EAAKG,IAAK,QAAelP,IAAXiP,EAAwB,OAAoB,OAAOA,EAAOnT,KAAK+S,GAA/V,IAAIM,EAAS/T,OAAOgU,eAAeT,GAAS,GAAe,OAAXQ,EAAmB,OAA2B4sD,EAAK5sD,EAAQ6sD,EAAMptD,EAAUL,EAAMM,EAAUH,GAAS,EAAMK,EAAOI,OAASnP,GAsBxcqP,CAAKjU,OAAOgU,eAAe0sD,EAAWlgE,WAAY,cAAeI,MAAMF,KAAKE,KAAMQ,GAClFR,KAAK0I,MAAQ,CACXu3D,OAAO,GAmFX,OArGF,SAAmBj7D,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIoN,UAAU,kEAAoEpN,GAAeD,EAASpF,UAAYR,OAAO8F,OAAOD,GAAcA,EAAWrF,UAAW,CAAEuF,YAAa,CAAE7B,MAAO0B,EAAUoM,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAepM,IAAY7F,OAAOmU,eAAiBnU,OAAOmU,eAAevO,EAAUC,GAAcD,EAASI,UAAYH,GAW/duO,CAAUssD,EAAY3tD,GAWtBlB,EAAa6uD,EAAY,CAAC,CACxBngE,IAAK,eACL2D,MAAO,SAAsBwC,GAC3B,OAAO3G,EAAS,CACdoiB,SAAU,WACVxJ,OAAQ,MACRy8C,KAAM,EACNn+C,MAAO,EACP8K,IAAmB,EAARrb,EAAN,GAAmB,IACxB6mC,QAAS3sC,KAAK0I,MAAMu3D,MAAQ,GAAM,GACjCjgE,KAAK0I,MAAMu3D,OAASjgE,KAAKQ,MAAMyR,OAAOiuD,qBAE1C,CACDvgE,IAAK,SACL2D,MAAO,WACL,IAAImQ,EAAQzT,KAERmgE,OAAOn8D,EAeX,GAAIhE,KAAKQ,MAAMmY,WAAY,CACzB,IAAIL,EAAa,CACfhW,WAAY,YAActC,KAAKQ,MAAMmY,WAAWnY,MAAM8B,WAAa,KAAKqV,OACxE9U,MAAO1D,EAAS,CAAEgX,MAAO,OAAQ4B,OAAQ,QAAU/X,KAAKQ,MAAMyR,OAAOmuD,SAEvED,EAAOxuD,EAAO,QAAY8G,aAAazY,KAAKQ,MAAMmY,WAAYL,QAE9D6nD,EAAOxuD,EAAO,QAAYnH,cACxB,OACA,KACA,CAAC,EAAG,EAAG,GAAGgG,KAAI,SAAU6vD,GACtB,OAAO1uD,EAAO,QAAYnH,cAAc,OAAQ,CAC9C7K,IAAK0gE,EACL/9D,WAAY,kBAAoBmR,EAAMjT,MAAMwY,aAAe,KAAOvF,EAAM/K,MAAMu3D,MAAQ,uBAAyB,KAAKtoD,OACpH9U,MAAO1D,EAAS,GAAIsU,EAAM6sD,aAAaD,GAAM5sD,EAAMjT,MAAMyR,OAAOsuD,oBAMxE,OAAO5uD,EAAO,QAAYnH,cACxB,MACA,CACElI,WAAY,oBAAsBtC,KAAKQ,MAAM8B,WAAWqV,OACxD9U,MAAO1D,EAAS,CAAE6tC,OAAQ,KAAQhtC,KAAKQ,MAAMyR,OAAOuuD,iBAEtDL,EACAxuD,EAAO,QAAYnH,cACjB,SACA,CACEpJ,QAASpB,KAAKQ,MAAMY,QACpBq/D,YAAa,WACXhtD,EAAMrH,SAAS,CAAE6zD,OAAO,IACpBxsD,EAAMjT,MAAMoZ,mBAAmBnG,EAAMjT,MAAMoZ,kBAAkB,CAAE8mD,WAAW,KAEhFC,WAAY,WACVltD,EAAMrH,SAAS,CAAE6zD,OAAO,IACpBxsD,EAAMjT,MAAMoZ,mBAAmBnG,EAAMjT,MAAMoZ,kBAAkB,CAAE8mD,WAAW,KAEhF79D,MArDY,CAChB0e,SAAU,WACVizC,KAAM,EACNrzC,IAAK,EACLhL,MAAO,OACP4B,OAAQ,OACR6oD,OAAQ,EACRC,QAAS,EACTC,OAAQ,OACRC,SAAU,EACVvB,WAAY,cACZwB,OAAQ,YA4CN,kBAMDlB,EA3FS,CA4FfpuD,EAAOxR,WAEVjB,EAAO,QAAc6gE,EAErBA,EAAW3mD,UAAY,CACrBH,aAAcnH,EAAW,QAAYuH,OACrCT,WAAY9G,EAAW,QAAYyH,QACnCrH,OAAQJ,EAAW,QAAYc,QAGjCmtD,EAAWjmD,aAAe,CACxBb,aAAc,GACd1W,UAAW,GACX2P,OAAQ,IAEVjT,EAAOC,QAAUA,EAAO,S,6BCnIxBG,OAAOiE,eAAepE,EAAS,aAAc,CAC3CqE,OAAO,IAGT,IAAInE,EAAWC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,GAEnP2R,EAAgB,WAAc,SAASC,EAAiB5R,EAAQkB,GAAS,IAAK,IAAIjB,EAAI,EAAGA,EAAIiB,EAAMf,OAAQF,IAAK,CAAE,IAAI4R,EAAa3Q,EAAMjB,GAAI4R,EAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,UAAWF,IAAYA,EAAWG,UAAW,GAAMlS,OAAOiE,eAAe/D,EAAQ6R,EAAWxR,IAAKwR,IAAiB,OAAO,SAAUI,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAYN,EAAiBK,EAAY3R,UAAW4R,GAAiBC,GAAaP,EAAiBK,EAAaE,GAAqBF,GAA7gB,GAEhB8B,EAAO,SAAa0sD,EAAIC,EAAKztD,GAAqC,IAA9B,IAAIG,GAAS,EAAwBA,GAAQ,CAAE,IAAIC,EAASotD,EAAIntD,EAAWotD,EAAKntD,EAAWN,EAAKG,GAAS,EAAsB,OAAXC,IAAiBA,EAASG,SAASlT,WAAW,IAAImT,EAAO3T,OAAO4T,yBAAyBL,EAAQC,GAAW,QAAa5O,IAAT+O,EAAJ,CAA4O,GAAI,UAAWA,EAAQ,OAAOA,EAAKzP,MAAgB,IAAI2P,EAASF,EAAKG,IAAK,QAAelP,IAAXiP,EAAwB,OAAoB,OAAOA,EAAOnT,KAAK+S,GAA/V,IAAIM,EAAS/T,OAAOgU,eAAeT,GAAS,GAAe,OAAXQ,EAAmB,OAA2B4sD,EAAK5sD,EAAQ6sD,EAAMptD,EAAUL,EAAMM,EAAUH,GAAS,EAAMK,EAAOI,OAASnP,IAE5c,SAASE,EAAuBU,GAAO,OAAOA,GAAOA,EAAIC,WAAaD,EAAM,CAAE,QAAWA,GAEzF,SAAS0N,EAAgBF,EAAUb,GAAe,KAAMa,aAAoBb,GAAgB,MAAM,IAAIc,UAAU,qCAIhH,IAAIX,EAASxS,EAAQ,GAEjByS,EAAUzN,EAAuBwN,GAIjCG,EAAc3N,EAFDhF,EAAQ,IAIrB+hE,EAAa,SAAU9uD,GAGzB,SAAS8uD,IACP3uD,EAAgBtS,KAAMihE,GAEtB5tD,EAAKjU,OAAOgU,eAAe6tD,EAAUrhE,WAAY,cAAeI,MAAMD,MAAMC,KAAMR,WAgFpF,OAhGF,SAAmBwF,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIoN,UAAU,kEAAoEpN,GAAeD,EAASpF,UAAYR,OAAO8F,OAAOD,GAAcA,EAAWrF,UAAW,CAAEuF,YAAa,CAAE7B,MAAO0B,EAAUoM,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAepM,IAAY7F,OAAOmU,eAAiBnU,OAAOmU,eAAevO,EAAUC,GAAcD,EAASI,UAAYH,GAW/duO,CAAUytD,EAAW9uD,GAQrBlB,EAAagwD,EAAW,CAAC,CACvBthE,IAAK,gBACL2D,MAAO,SAAuB2e,GAC5B,MAAO,CACLV,SAAU,WACVpL,MAAO,EACP4B,OAAQ,GACRkb,UAAoB,WAAThR,EAAoB,gBAAkB,oBAGpD,CACDtiB,IAAK,SACL2D,MAAO,WACL,IAEI68D,EAFA1sD,EAAQzT,KAwBZ,GAAIA,KAAKQ,MAAMmY,WAAY,CACzB,IAAIL,EAAa,CACfhW,WAAY,aAAetC,KAAKQ,MAAMmY,WAAWnY,MAAM8B,WAAa,KAAKqV,OACzE9U,MAAO1D,EAAS,CAAEgX,MAAO,OAAQ4B,OAAQ,QAAU/X,KAAKQ,MAAMyR,OAAOivD,UAEvEf,EAAOxuD,EAAO,QAAY8G,aAAazY,KAAKQ,MAAMmY,WAAYL,QAE9D6nD,EAAOxuD,EAAO,QAAYnH,cACxB,OACA,CAAE3H,MAAO,CAAE0e,SAAU,WAAYJ,IAAK,MAAO9K,MAAO,SACpD,CAAC,SAAU,SAAS7F,KAAI,SAAUyR,EAAM1iB,GACtC,OAAOoS,EAAO,QAAYnH,cAAc,OAAQ,CAC9C7K,IAAKJ,EACL+C,WAAY,YAAcmR,EAAMjT,MAAMqY,gBAAgBlB,OACtD9U,MAAO1D,EAAS,GAAIsU,EAAM0tD,cAAcl/C,GAAOxO,EAAMjT,MAAMyR,OAAOivD,eAM1E,OAAOvvD,EAAO,QAAYnH,cACxB,MACA,CACElI,WAAY,mBAAqBtC,KAAKQ,MAAM8B,WAAWqV,OACvD9U,MAAO1D,EAAS,GA7CK,CACvBoiB,SAAU,WACVpL,MAAO,GACP4B,OAAQ,GACR1B,MAAO,EACP8K,IAAK,GAwCqCnhB,KAAKQ,MAAMyR,OAAOmvD,gBAE5DjB,EACAxuD,EAAO,QAAYnH,cACjB,SACA,CACEpJ,QAASpB,KAAKQ,MAAMY,QACpByB,MA7CY,CAChB0e,SAAU,WACVizC,KAAM,EACNrzC,IAAK,EACLhL,MAAO,OACP4B,OAAQ,OACR6oD,OAAQ,EACRC,QAAS,EACTC,OAAQ,OACRC,SAAU,EACVvB,WAAY,cACZwB,OAAQ,WAmCJxoD,SAAUxY,KAAKQ,MAAMgY,UAEvB,mBAMDyoD,EAtFQ,CAuFdvvD,EAAOxR,WAEVjB,EAAO,QAAcgiE,EAErBA,EAAU9nD,UAAY,CACpBN,eAAgBhH,EAAW,QAAYuH,OACvCT,WAAY9G,EAAW,QAAYyH,QACnCrH,OAAQJ,EAAW,QAAYc,OAC/B6F,SAAU3G,EAAW,QAAY8H,QAGnCsnD,EAAUpnD,aAAe,CACvBhB,eAAgB,GAChBvW,UAAW,GACX2P,OAAQ,GACRuG,SAAU,GAEZxZ,EAAOC,QAAUA,EAAO,S,6BChIxBG,OAAOiE,eAAepE,EAAS,aAAc,CAC3CqE,OAAO,IAKT,IAFgCsB,EAE5By6D,EAAengE,EAAQ,GAEvBogE,GAJ4B16D,EAIWy6D,IAJUz6D,EAAIC,WAAaD,EAAM,CAAE,QAAWA,GA8BzF3F,EAAO,SAAc,EAAIqgE,EAAa,SAxBzB,CACXG,SAAU,SAAkBnsD,EAAQ6C,EAAOE,GACzC,MAAO,CACLyc,aAAcxf,EAAS,GAAK+C,EAAQ,eAAiBF,EAAQ,UAAY,gBAAkBA,EAAQ,UACnG4c,YAAazf,EAAS,GAAK+C,EAAQ,eAAiBF,EAAQ,UAAY,gBAAkBA,EAAQ,UAClG6c,WAAY1f,EAAS,GAAK+C,EAAQ,eAAiBF,EAAQ,UAAY,gBAAkBA,EAAQ,UACjG0c,gBAAiBvf,EAAS,GAAK+C,EAAQ,eAAiBF,EAAQ,UAAY,gBAAkBA,EAAQ,UACtG8c,UAAW3f,EAAS,GAAK+C,EAAQ,eAAiBF,EAAQ,UAAY,gBAAkBA,EAAQ,UAChGD,WAAY5C,EAAS,8CAAgD,gDAIzE5L,KAAM,SAAc4L,EAAQ6C,EAAOE,EAAOgrD,GACxC,MAAO,CACLvuC,aAAcxf,EAAS,GAAK,kBAA+B,IAAX+tD,EAAiB,SACjEtuC,YAAazf,EAAS,GAAK,kBAA+B,IAAX+tD,EAAiB,SAChEruC,WAAY1f,EAAS,GAAK,kBAA+B,IAAX+tD,EAAiB,SAC/DxuC,gBAAiBvf,EAAS,GAAK,kBAA+B,IAAX+tD,EAAiB,SACpEpuC,UAAW3f,EAAS,GAAK,kBAA+B,IAAX+tD,EAAiB,SAC9DnrD,WAAY5C,EAAS,8CAAgD,qDAM3EtU,EAAOC,QAAUA,EAAO,S,6BC/BxB,SAASiF,EAAuBU,GAAO,OAAOA,GAAOA,EAAIC,WAAaD,EAAM,CAAE,QAAWA,GAJzFxF,OAAOiE,eAAepE,EAAS,aAAc,CAC3CqE,OAAO,IAKT,IAEIg+D,EAAoBp9D,EAFDhF,EAAQ,KAM3BogE,EAAgBp7D,EAFDhF,EAAQ,IAIvB+S,EAAS,CACX+E,IAAK,CACHG,IAAKmqD,EAAiB,QACtB/pD,YAAa,kFACbgqD,SAAU,kDACVlqD,QAAS,SAAiBtU,GACxBA,EAAKsU,QAAQ,CAAEtU,KAAM/C,KAAKuhE,UAAY,IAAKj3D,OAAOk3D,KAAKC,aAI3DxqD,WAAY,SAAoB3D,EAAQ6C,EAAOE,GAC7C,MAAO,CACLkL,SAAU,WACVpL,MAAO,IACP4B,OAAQ,OACR1B,MAAOA,EAAQ,UAAY,EAC3Bm+C,KAAMn+C,EAAQ,EAAI,UAClByc,aAAczc,EAAQ,kBAAoB,GAC1C0c,YAAa1c,EAAQ,kBAAoB,GACzC2c,WAAY3c,EAAQ,kBAAoB,GACxCwc,gBAAiBxc,EAAQ,kBAAoB,GAC7C4c,UAAW5c,EAAQ,kBAAoB,KAI3CopD,SAAU,SAAkBnsD,EAAQ6C,EAAOE,GACzC,MAAO,CACLyc,aAAcxf,EAAS,uBAAyB+C,EAAQ,0BAA4B,2BACpF0c,YAAazf,EAAS,uBAAyB+C,EAAQ,0BAA4B,2BACnF2c,WAAY1f,EAAS,uBAAyB+C,EAAQ,0BAA4B,2BAClFwc,gBAAiBvf,EAAS,uBAAyB+C,EAAQ,0BAA4B,2BACvF4c,UAAW3f,EAAS,uBAAyB+C,EAAQ,0BAA4B,2BACjFH,WAAY,aAIhBwpD,KAAM,SAAcpsD,EAAQ6C,EAAOE,GACjC,MAAO,CACLkL,SAAU,QACVlL,MAAOA,EAAQ,EAAI,UACnBF,MAAO,IACPurD,WAAY,SACZ/B,UAAW,aACXC,SAAU,YAIdC,SAAU,SAAkBvsD,EAAQ6C,EAAOE,GACzC,GAAIA,EACF,MAAO,CACLkL,SAAU,WACVizC,KAAM,SACNr+C,MAAO,OACPypD,SAAU,SAKhB9qD,SAAU,SAAkBxB,EAAQ6C,EAAOE,GACzC,MAAO,CACLyc,aAAcxf,EAAS,GAAK+C,EAAQ,4BAA8B,2BAClE0c,YAAazf,EAAS,GAAK+C,EAAQ,4BAA8B,2BACjE2c,WAAY1f,EAAS,GAAK+C,EAAQ,4BAA8B,2BAChEwc,gBAAiBvf,EAAS,GAAK+C,EAAQ,4BAA8B,2BACrE4c,UAAW3f,EAAS,GAAK+C,EAAQ,4BAA8B,2BAC/DH,WAAY5C,EAAS,WAAa,kBAItC2B,eAAgB,SAAwB3B,GACtC,MAAO,CACLssD,SAAUtsD,EAAS,GAAK,YAK9BrU,EAAO,SAAc,EAAIqgE,EAAa,SAAartD,GACnDjT,EAAOC,QAAUA,EAAO,S,gBC7FxBqL,OAAOq3D,IAAMziE,EAAQ,IAerB,IAAIsiE,EAAQ,SAAUG,GAClB,IAUAC,EAVIC,EAAa,GACjBC,EAAmBx3D,OAAOwhB,uBACPxhB,OAAOyhB,6BACPzhB,OAAOy3D,0BACPz3D,OAAO03D,wBACP13D,OAAO23D,yBACP,SAAUv4D,GAEN,OADA6K,WAAW7K,EAAU,IAAI,IAAIuiB,MAAOC,YAC7B,GAG9B1kB,EAAUD,MAAMC,SAAW,SAAUH,GACjC,OAAOA,aAAaE,OACqB,kBAArCnI,OAAOQ,UAAUsM,SAASpM,KAAKuH,IAEvC66D,EAAQ,EACRC,EAAW,MAAQ,IAAIl2C,MAAM/f,SAAS,IAiBtCk2D,EAAQn2C,KAAKymB,KAAO,WAChB,OAAQ,IAAIzmB,MAEhBo2C,EAAM,SAAUt3C,GACZ,IAAI1jB,EAAIrH,KACR,GAAW,MAAP+qB,EACA,OAAO1jB,EAAE6f,EAEb,IAAIo7C,EAAKj7D,EAAE6f,EAAI6D,EACf1jB,EAAEC,GAAKD,EAAEk7D,IAAMD,EACfj7D,EAAEyvB,GAAKzvB,EAAEk7D,IAAMD,EACfj7D,EAAE6f,EAAI6D,GAEVy3C,EAAQ,SAAUz3C,GAEd,GAAW,MAAPA,EACA,OAFI/qB,KAEKyiE,IAFLziE,KAINyiE,IAAM13C,GAEZlH,EAAW,SAAUkH,GACjB,IAAI1jB,EAAIrH,KACR,GAAW,MAAP+qB,EACA,OAAO1jB,EAAEk7D,IAEbl7D,EAAE6f,EAAI7f,EAAE6f,EAAI6D,EAAM1jB,EAAEk7D,IACpBl7D,EAAEk7D,IAAMx3C,GAEZ23C,EAAS,WACL,IAAIr7D,EAAIrH,YACD6hE,EAAWx6D,EAAE8N,IACpB9N,EAAE8f,SACFw6C,EAAI,aAAet6D,EAAE8N,GAAI9N,IAE7Bs7D,EAAQ,WACJ,IAAIt7D,EAAIrH,KACJqH,EAAEu7D,cAGCf,EAAWx6D,EAAE8N,IACpB9N,EAAE8f,SACF9f,EAAEu7D,KAAOv7D,EAAE6L,MAAQ7L,EAAEC,IAEzBu7D,EAAS,WACL,IAAIx7D,EAAIrH,KACHqH,EAAEu7D,OAGPv7D,EAAEC,EAAID,EAAE6L,MAAQ7L,EAAEu7D,YACXv7D,EAAEu7D,KACTf,EAAWx6D,EAAE8N,IAAM9N,EACnBy7D,MAEJ37C,EAAS,WACL,IACIiB,EADA/gB,EAAIrH,KAER,GAAIwH,EAAQH,EAAEqlB,OAAQ,CAClBtE,EAAM,GACN,IAAK,IAAI8B,EAAI,EAAG64C,EAAK17D,EAAEqlB,MAAMjtB,OAAQyqB,EAAI64C,EAAI74C,IACzC9B,EAAI8B,IAAM7iB,EAAEqlB,MAAMxC,IACb7iB,EAAE8V,IAAI+M,GAAK7iB,EAAEqlB,MAAMxC,IAAM7iB,EAAE8kB,OAAO9kB,EAAE6f,QAG7CkB,GAAO/gB,EAAEqlB,OAASrlB,EAAE8V,IAAM9V,EAAEqlB,OAASrlB,EAAE8kB,OAAO9kB,EAAE6f,GAEpD7f,EAAEmN,IAAI4T,IAEV06C,EAAQ,SAARA,EAAkBrwB,GAEd,GAAKA,EAAL,CAQA,IAAIv0B,EAAM,EACV,IAAK,IAAI3e,KAAKsiE,EAAY,GAAIA,EAAWhiE,eAAeN,GAAI,CACxD,IAAI8H,EAAIw6D,EAAWtiE,GACf+H,EAAID,EAAE6L,MAEVgL,IACA7W,EAAE6f,GAAK5f,EAAID,EAAEC,IAAMD,EAAEk7D,IAAMl7D,EAAEo7D,KACzBp7D,EAAE6f,GAAK,WACA26C,EAAWtiE,GAClB8H,EAAE6f,EAAI,EACNhJ,IACC,SAAU7W,GACPkN,YAAW,WACPotD,EAAI,eAAiBt6D,EAAE8N,GAAI9N,MAFlC,CAICA,IAENA,EAAE8f,SAENy6C,IAAY1jD,GAAM4jD,EAAiBgB,QAzB1BlB,IAEDA,EAAYE,EAAiBgB,KA2DzCtB,EAAO,SAAPA,EAAiBn6D,EAAGwvB,EAAGvvB,EAAGwvB,EAAG5jB,EAAKsB,EAAK2X,GACnC,IAAI62C,EAAO,CACP7tD,GArJGgtD,GAAYD,KAASh2D,SAAS,IAsJjCwgB,MAAOrlB,EACP8V,IAAK0Z,EACLvvB,EAAGA,EACH4f,EAAG,EACHq7C,IAAKzrC,EAAIxvB,EACTm7D,IAAK,EACLvvD,IAAKA,EACLsB,IAAKA,EACL2X,OAAQA,GAAUq1C,EAAKvD,OACvBgF,OAAQZ,EACRG,MAAOA,EACP3+C,SAAUA,EACVq/C,KAAMR,EACNC,MAAOA,EACPE,OAAQA,EACR17C,OAAQA,GAEZ06C,EAAWmB,EAAK7tD,IAAM6tD,EACtB,IAAazjE,EAAT2e,EAAM,EACV,IAAK3e,KAAKsiE,EAAY,GAAIA,EAAWhiE,eAAeN,IAErC,KADX2e,EAEI,MAIR,OADO,GAAPA,GAAY4kD,IACLE,GA8JX,OAnJAxB,EAAKtsB,KAAOktB,EASZZ,EAAK2B,QAAU,SAAUhuD,GACrB,OAAO0sD,EAAW1sD,IAAO,MAW7BqsD,EAAKvD,OAAS,SAAUj4D,GACpB,OAAOA,GAUXw7D,EAAK4B,QAAU,SAAUp9D,GACrB,OAAOgG,KAAKgyD,IAAIh4D,EAAG,MAUvBw7D,EAAK6B,OAAS,SAAUr9D,GACpB,OAAOgG,KAAKgyD,IAAIh4D,EAAG,MAUvBw7D,EAAKC,UAAY,SAAUz7D,GACvB,GAAS,GAALA,EACA,OAAO,EAEX,GAAS,GAALA,EACA,OAAO,EAEX,IAAIuwB,EAAI,IAAMvwB,EAAI,KACdyyB,EAAIzsB,KAAKs3D,KAAK,MAAQ/sC,EAAIA,GAC1Blb,EAAIod,EAAIlC,EAERjb,GAAKmd,EAAIlC,EAETtV,EAHIjV,KAAKgyD,IAAIhyD,KAAKu3D,IAAIloD,GAAI,EAAI,IAAMA,EAAI,GAAK,EAAI,GAE7CrP,KAAKgyD,IAAIhyD,KAAKu3D,IAAIjoD,GAAI,EAAI,IAAMA,EAAI,GAAK,EAAI,GACrC,GAChB,OAAiB,GAAT,EAAI2F,GAASA,EAAIA,EAAIA,EAAIA,EAAIA,GAUzCugD,EAAKgC,OAAS,SAAUx9D,GACpB,GAAS,GAALA,EACA,OAAO,EAEX,IAAIkhB,EAAI,QACR,OAAOlhB,EAAIA,IAAMkhB,EAAI,GAAKlhB,EAAIkhB,IAUlCs6C,EAAKiC,QAAU,SAAUz9D,GACrB,GAAS,GAALA,EACA,OAAO,EAGX,IAAIkhB,EAAI,QACR,OAFAlhB,GAAQ,GAEGA,IAAMkhB,EAAI,GAAKlhB,EAAIkhB,GAAK,GAUvCs6C,EAAK9rC,QAAU,SAAU1vB,GACrB,OAAIA,KAAOA,EACAA,EAEJgG,KAAKgyD,IAAI,GAAI,GAAKh4D,GAAKgG,KAAK03D,KAAK19D,EAAI,OACvC,EAAIgG,KAAK23D,IAAM,IAAM,GAU9BnC,EAAKoC,OAAS,SAAU59D,GACpB,IAAIkhB,EAAI,OACJoP,EAAI,KAkBR,OAhBItwB,EAAI,EAAIswB,EACJpP,EAAIlhB,EAAIA,EAERA,EAAI,EAAIswB,EAEJpP,GADJlhB,GAAK,IAAMswB,GACCtwB,EAAI,IAEZA,EAAI,IAAMswB,EAENpP,GADJlhB,GAAK,KAAOswB,GACAtwB,EAAI,MAGZkhB,GADJlhB,GAAK,MAAQswB,GACDtwB,EAAI,SAMhCsE,OAAOk3D,KAAOA,EACPA,EAjWC,CAkWK,oBAAPG,IAAqB,aAAiBA,KAgB5C7yC,EAAQ,SAASktC,GAkBrB,SAASltC,EAAK6H,EAAGvc,GACb,GAAIuc,EAAG,CACH,GAAIA,EAAEzW,SACF,OAAO2jD,EAAKltC,GAEhB,GAAIkY,EAAGlY,EAAG,UAAY7H,EAAKta,IACvB,OAAOsa,EAAKta,IAAIzU,MAAM+uB,EAAM6H,GAEhC,GAAIA,aAAa7yB,EACb,OAAO6yB,EAEX,GAAS,MAALvc,EACA,IAEI,OAAOypD,EADPltC,EAAImtC,EAAKC,IAAIt0D,cAAcwb,OAAO0L,KAEpC,MAAO5tB,GACL,OAAO,MAMnB,OAAO,IAAIi7D,EAFXrtC,EAAS,MAALA,EAAY,OAASA,EACzBvc,EAAS,MAALA,EAAY,OAASA,GAtC7B0U,EAAK4M,QAAU,QAyCf5M,EAAK5iB,SAAW,WACZ,MAAO,SAAWlM,KAAK07B,SAE3B5M,EAAKm1C,EAAI,GACT,IAAIH,EAAO,CACPI,IAAKlI,EAAK1xD,OACVy5D,IAAK/H,EAAK1xD,OAAOC,UAErBukB,EAAKm1C,EAAEH,KAAOA,EACd,IAAIn8B,EAAM,iBACNw8B,EAAMl5C,OACNm5C,EAAUj3C,WACVk3C,EAAQxI,SACRyI,EAAOt4D,KACPu4D,EAAOD,EAAKr0D,IACZu0D,EAAOF,EAAKt0D,IACZuzD,EAAMe,EAAKf,IAEXI,GADMW,EAAKtG,IACNsG,EAAKX,IAIV1H,GAHQqI,EAAK/3C,MAGIntB,OAAOQ,UAAUsM,UAElCu4D,EAAe,mTAIfC,GAFY51C,EAAKm1C,EAAEU,UAAY,SAEjB,eACdC,EAAO,CAACC,GAAI,EAAG1hB,GAAI,GACnB2hB,EAAc,6DACdC,EAAW,8DACXC,EAAa,6CACb9C,EAAQ,EACRC,EAAW,MAAQ,IAAIl2C,MAAM/f,SAAS,IACtC+4D,EAAK,SAAUvwD,GACX,OAAQA,GAAMA,EAAGuN,KAAOvN,EAAGuN,KAhB3B,IAgBuCkgD,GAAYD,KAASh2D,SAAS,KAEzEg5D,EAAQ,+BACRC,EAAQ,6BACRC,EAAM,GASAt2C,EAAKngB,IAAM,SAAUA,GACvB,MAAO,SAAWA,EAAM,MAGhC,SAAS02D,EAAE3wD,EAAI4C,GACX,GAAIA,EAAM,CAUN,GATU,SAAN5C,IACAA,EAAKovD,EAAKC,IAAIxW,eAAej2C,EAAK29B,MAAQ39B,EAAK,UAAY,KAErD,YAAN5C,IACAA,EAAKovD,EAAKC,IAAIuB,cAAchuD,EAAK29B,MAAQ39B,EAAK,UAAY,KAE7C,iBAAN5C,IACPA,EAAK2wD,EAAE3wD,IAEQ,iBAAR4C,EACP,OAAmB,GAAf5C,EAAGwL,SACyB,UAAxB5I,EAAKzI,UAAU,EAAG,GACX6F,EAAG6wD,eAAeL,EAAO5tD,EAAKzI,UAAU,IAEvB,QAAxByI,EAAKzI,UAAU,EAAG,GACX6F,EAAG6wD,eAAeJ,EAAO7tD,EAAKzI,UAAU,IAE5C6F,EAAGhF,aAAa4H,GACR,QAARA,EACA5C,EAAGuvB,UAEH,KAGf,GAAmB,GAAfvvB,EAAGwL,UACH,IAAK,IAAIvgB,KAAO2X,EAAM,GAAIA,EAAKqwB,GAAKhoC,GAAM,CACtC,IAAIorB,EAAMo5C,EAAI7sD,EAAK3X,IACforB,EAC2B,UAAvBprB,EAAIkP,UAAU,EAAG,GACjB6F,EAAG+qB,eAAeylC,EAAOvlE,EAAIkP,UAAU,GAAIkc,GACb,QAAvBprB,EAAIkP,UAAU,EAAG,GACxB6F,EAAG+qB,eAAe0lC,EAAOxlE,EAAIkP,UAAU,GAAIkc,GAE3CrW,EAAG8qB,aAAa7/B,EAAKorB,GAGzBrW,EAAG6qB,gBAAgB5/B,QAGpB,SAAU2X,IACjB5C,EAAGuvB,UAAY3sB,EAAK29B,WAGxBvgC,EAAKovD,EAAKC,IAAIzW,gBAAgB6X,EAAOzwD,GAEzC,OAAOA,EAmBX,SAASm6B,EAAG9vB,EAAGkD,GAEX,MAAY,WADZA,EAAOkiD,EAAIvkE,UAAUsI,YAAYpI,KAAKmiB,IAE3BujD,SAASzmD,KAER,SAARkD,KACClD,aAAaxX,OAASA,MAAMC,SAAWD,MAAMC,QAAQuX,OAG1C,QAARkD,GAAwB,OAANlD,GAClBkD,UAAelD,GAAW,OAANA,GACZ,UAARkD,GAAoBlD,IAAM3f,OAAO2f,IACjCk9C,EAAen8D,KAAKif,GAAGzW,MAAM,GAAI,GAAGJ,eAAiB+Z,GAyDjE,SAASwjD,EAAO9L,EAAOjyD,GACnB,IAAK,IAAInI,EAAI,EAAG2sD,EAAKyN,EAAMl6D,OAAQF,EAAI2sD,EAAI3sD,IAAK,GAAIo6D,EAAMp6D,KAAOmI,EAC7D,OAAOiyD,EAAM7vD,KAAK6vD,EAAM/oD,OAAOrR,EAAG,GAAG,IAG7C,SAASmmE,EAAOttC,EAAGutC,EAAOC,GAetB,OAdA,SAASC,IACL,IAAIC,EAAMv+D,MAAM3H,UAAU0I,MAAMxI,KAAKN,UAAW,GAC5C0K,EAAO47D,EAAI7+D,KAAK,UAChByV,EAAQmpD,EAAKnpD,MAAQmpD,EAAKnpD,OAAS,GACnCkc,EAAQitC,EAAKjtC,MAAQitC,EAAKjtC,OAAS,GACvC,OAAIlc,EAAMirB,GAAKz9B,IACXu7D,EAAO7sC,EAAO1uB,GACP07D,EAAgBA,EAAclpD,EAAMxS,IAASwS,EAAMxS,KAE9D0uB,EAAMn5B,QAAU,YAAcid,EAAMkc,EAAM6Q,SAC1C7Q,EAAM9uB,KAAKI,GACXwS,EAAMxS,GAAQkuB,EAAEr4B,MAAM4lE,EAAOG,GACtBF,EAAgBA,EAAclpD,EAAMxS,IAASwS,EAAMxS,KAiBlE,SAAS67D,EAAIC,GACT,OAAOA,EAAM,IAAMrC,EAAK,IA1H5B70C,EAAKm1C,EAAEoB,EAAIA,EACXv2C,EAAKm1C,EAAE9uD,GAAK8vD,EAmDZn2C,EAAKm3C,OAAU,WACX,IAAIC,EAAa,gBACbC,EAAmB,2DAevB,OAAO,SAAUp+C,EAAKnjB,GAClB,OAAOu/D,EAAIp8C,GAAKnmB,QAAQskE,GAAY,SAAUE,EAAKzmE,GAC/C,OAhBO,SAAUymE,EAAKzmE,EAAKiF,GAC3B,IAAIwjB,EAAMxjB,EAWV,OAVAjF,EAAIiC,QAAQukE,GAAkB,SAAUC,EAAKlqD,EAAMmqD,EAAOC,EAAYC,GAClErqD,EAAOA,GAAQoqD,EACXl+C,IACIlM,KAAQkM,IACRA,EAAMA,EAAIlM,IAEA,mBAAPkM,GAAqBm+C,IAAWn+C,EAAMA,SAGrDA,GAAc,MAAPA,GAAeA,GAAOxjB,EAAMwhE,EAAMh+C,GAAO,GAKzCo+C,CAASJ,EAAKzmE,EAAKiF,OAnBvB,GAiCfkqB,EAAKm1C,EAAEwC,MAVP,SAASA,EAAM7hE,GACX,GAAkB,mBAAPA,GAAqBxF,OAAOwF,KAASA,EAC5C,OAAOA,EAEX,IAAIwjB,EAAM,IAAIxjB,EAAIO,YAClB,IAAK,IAAIxF,KAAOiF,EAASA,EAAI+iC,GAAKhoC,KAC9ByoB,EAAIzoB,GAAO8mE,EAAM7hE,EAAIjF,KAEzB,OAAOyoB,GAyBX0G,EAAKm1C,EAAEyB,OAASA,EAkChB52C,EAAKi3C,IAAMA,EASXj3C,EAAKk3C,IA3BL,SAAaD,GACT,OAAa,IAANA,EAAYpC,EAAK,KAmC5B70C,EAAK40C,IAAM,SAAUgD,GACjB,OAAOpC,EAAKZ,IAAI50C,EAAKi3C,IAAIW,KAU7B53C,EAAK63C,IAAM,SAAUD,GACjB,OAAOpC,EAAKqC,IAAI73C,EAAKi3C,IAAIW,KAU7B53C,EAAK83C,IAAM,SAAUF,GACjB,OAAOpC,EAAKsC,IAAI93C,EAAKi3C,IAAIW,KAU7B53C,EAAK+3C,KAAO,SAAUC,GAClB,OAAOh4C,EAAKk3C,IAAI1B,EAAKuC,KAAKC,KAU9Bh4C,EAAKi4C,KAAO,SAAUD,GAClB,OAAOh4C,EAAKk3C,IAAI1B,EAAKyC,KAAKD,KAU9Bh4C,EAAKk4C,KAAO,SAAUF,GAClB,OAAOh4C,EAAKk3C,IAAI1B,EAAK0C,KAAKF,KAU9Bh4C,EAAKm4C,MAAQ,SAAUH,GACnB,OAAOh4C,EAAKk3C,IAAI1B,EAAK2C,MAAMH,KAe/Bh4C,EAAK43C,MArIL,SAASA,EAAMQ,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,GAC/B,GAAU,MAAND,EAAY,CACZ,IAAIjsD,EAAI6rD,EAAKE,EACT9rD,EAAI6rD,EAAKE,EACb,OAAKhsD,GAAMC,GAGH,IAA2B,IAArBgpD,EAAK2C,OAAO3rD,GAAID,GAAWsoD,EAAK,KAAO,IAF1C,EAIX,OAAO+C,EAAMQ,EAAIC,EAAIG,EAAIC,GAAMb,EAAMU,EAAIC,EAAIC,EAAIC,IAwIzDz4C,EAAK5Q,IAAM,SAAUgpD,EAAIC,EAAIC,EAAIC,GAC7B,OAAOr7D,KAAKs3D,KAAKx0C,EAAK04C,KAAKN,EAAIC,EAAIC,EAAIC,KAa3Cv4C,EAAK04C,KAAO,SAAUN,EAAIC,EAAIC,EAAIC,GAC9B,OAAQH,EAAKE,IAAOF,EAAKE,IAAOD,EAAKE,IAAOF,EAAKE,IAmBrDv4C,EAAK24C,aAAe,SAAU1kE,EAAMsY,EAAGC,GACnC,SAASosD,EAAUpxC,GACf,IAAIqxC,EAAKrxC,EAAEjb,EAAIA,EACXusD,EAAKtxC,EAAEhb,EAAIA,EACf,OAAOqsD,EAAKA,EAAKC,EAAKA,EAU1B,IARA,IAGIC,EACAC,EAIKC,EAAsBC,EAR3BC,EAAWllE,EAAK2xB,KAChBwzC,EAAaD,EAASE,iBACtBC,EAAYF,EAAaD,EAASI,YAAYC,cAAgB,KAG9DC,EAAeC,IAGJC,EAAa,EAAiBA,GAAcP,EAAYO,GAAcL,GAC5EJ,EAAeN,EAAUK,EAAOE,EAASS,iBAAiBD,KAAgBF,IAC3EV,EAAOE,EACPD,EAAaW,EACbF,EAAeP,GAMvB,IADAI,GAAa,GACNA,EAAY,IAAI,CACnB,IAAIO,EACAC,EACAC,EACAC,EACAC,EACAC,GACCH,EAAef,EAAaM,IAAc,IAAMW,EAAiBrB,EAAUiB,EAASV,EAASS,iBAAiBG,KAAkBN,GACjIV,EAAOc,EACPb,EAAae,EACbN,EAAeQ,IACPD,EAAchB,EAAaM,IAAcF,IAAec,EAAgBtB,EAAUkB,EAAQX,EAASS,iBAAiBI,KAAiBP,GAC7IV,EAAOe,EACPd,EAAagB,EACbP,EAAeS,GAEfZ,GAAa,GAUrB,OANAP,EAAO,CACHxsD,EAAGwsD,EAAKxsD,EACRC,EAAGusD,EAAKvsD,EACR7b,OAAQqoE,EACRmB,SAAUj9D,KAAKs3D,KAAKiF,KAa5Bz5C,EAAK+f,GAAKA,EAWV/f,EAAKo6C,OAAS,SAAU9rD,EAAQ9Z,EAAO6lE,GAEnC,GADAA,EAAYt6B,EAAGs6B,EAAW,UAAYA,EAAY,GAC9Ct6B,EAAGzxB,EAAQ,UAEX,IADA,IAAI7d,EAAI6d,EAAO3d,OACRF,KAAK,GAAIgkE,EAAInmD,EAAO7d,GAAK+D,IAAU6lE,EACtC,OAAO/rD,EAAO7d,OAEf,CAEH,IAAI6pE,EAAM9lE,GADV8Z,GAAUA,GAEV,GAAIgsD,EAAMD,EACN,OAAO7lE,EAAQ8lE,EAEnB,GAAIA,EAAMhsD,EAAS+rD,EACf,OAAO7lE,EAAQ8lE,EAAMhsD,EAG7B,OAAO9Z,GAoCXwrB,EAAKu6C,OAAS3D,GAAO,SAAU4D,GAC3B,IAAKA,IAAcA,EAASnF,EAAImF,IAASnhE,QAAQ,KAAO,EACpD,MAAO,CAACquB,GAAI,EAAGhL,GAAI,EAAGlkB,GAAI,EAAGiiE,IAAK,OAAQ3zD,MAAO,EAAG1J,SAAUs9D,GAElE,GAAc,QAAVF,EACA,MAAO,CAAC9yC,GAAI,EAAGhL,GAAI,EAAGlkB,GAAI,EAAGiiE,IAAK,OAAQr9D,SAAUs9D,GAGxD,IADE5E,EAAKj9B,GAAK2hC,EAAOphE,cAAc2G,UAAU,EAAG,KAA0B,KAAnBy6D,EAAO3jE,WAAqB2jE,EAASG,EAAMH,KAC3FA,EACD,MAAO,CAAC9yC,GAAI,EAAGhL,GAAI,EAAGlkB,GAAI,EAAGiiE,IAAK,OAAQ3zD,MAAO,EAAG1J,SAAUs9D,GAElE,IACIE,EACAC,EACAC,EACAj9B,EACA1rB,EACA7D,EACAysD,EAAMP,EAAOrmE,MAAMwhE,GACvB,OAAIoF,GACIA,EAAI,KACJD,EAAOvF,EAAMwF,EAAI,GAAGh7D,UAAU,GAAI,IAClC86D,EAAQtF,EAAMwF,EAAI,GAAGh7D,UAAU,EAAG,GAAI,IACtC66D,EAAMrF,EAAMwF,EAAI,GAAGh7D,UAAU,EAAG,GAAI,KAEpCg7D,EAAI,KACJD,EAAOvF,GAAOpjD,EAAI4oD,EAAI,GAAGlkE,OAAO,IAAMsb,EAAG,IACzC0oD,EAAQtF,GAAOpjD,EAAI4oD,EAAI,GAAGlkE,OAAO,IAAMsb,EAAG,IAC1CyoD,EAAMrF,GAAOpjD,EAAI4oD,EAAI,GAAGlkE,OAAO,IAAMsb,EAAG,KAExC4oD,EAAI,KACJzsD,EAASysD,EAAI,GAAGvjE,MAAMo+D,GACtBgF,EAAMtF,EAAQhnD,EAAO,IACE,KAAvBA,EAAO,GAAG9U,OAAO,KAAcohE,GAAO,MACtCC,EAAQvF,EAAQhnD,EAAO,IACA,KAAvBA,EAAO,GAAG9U,OAAO,KAAcqhE,GAAS,MACxCC,EAAOxF,EAAQhnD,EAAO,IACC,KAAvBA,EAAO,GAAG9U,OAAO,KAAcshE,GAAQ,MACH,QAApCC,EAAI,GAAG3hE,cAAcI,MAAM,EAAG,KAAiBqkC,EAAUy3B,EAAQhnD,EAAO,KACxEA,EAAO,IAA6B,KAAvBA,EAAO,GAAG9U,OAAO,KAAcqkC,GAAW,MAEvDk9B,EAAI,IACJzsD,EAASysD,EAAI,GAAGvjE,MAAMo+D,GACtBgF,EAAMtF,EAAQhnD,EAAO,IACE,KAAvBA,EAAO,GAAG9U,OAAO,KAAcohE,GAAO,KACtCC,EAAQvF,EAAQhnD,EAAO,IACA,KAAvBA,EAAO,GAAG9U,OAAO,KAAcqhE,GAAS,KACxCC,EAAOxF,EAAQhnD,EAAO,IACC,KAAvBA,EAAO,GAAG9U,OAAO,KAAcshE,GAAQ,MACf,OAAvBxsD,EAAO,GAAG9U,OAAO,IAAsC,QAAvB8U,EAAO,GAAG9U,OAAO,MAAkBohE,GAAO,KACvC,QAApCG,EAAI,GAAG3hE,cAAcI,MAAM,EAAG,KAAiBqkC,EAAUy3B,EAAQhnD,EAAO,KACxEA,EAAO,IAA6B,KAAvBA,EAAO,GAAG9U,OAAO,KAAcqkC,GAAW,KAChD7d,EAAKg7C,QAAQJ,EAAKC,EAAOC,EAAMj9B,IAEtCk9B,EAAI,IACJzsD,EAASysD,EAAI,GAAGvjE,MAAMo+D,GACtBgF,EAAMtF,EAAQhnD,EAAO,IACE,KAAvBA,EAAO,GAAG9U,OAAO,KAAcohE,GAAO,KACtCC,EAAQvF,EAAQhnD,EAAO,IACA,KAAvBA,EAAO,GAAG9U,OAAO,KAAcqhE,GAAS,KACxCC,EAAOxF,EAAQhnD,EAAO,IACC,KAAvBA,EAAO,GAAG9U,OAAO,KAAcshE,GAAQ,MACf,OAAvBxsD,EAAO,GAAG9U,OAAO,IAAsC,QAAvB8U,EAAO,GAAG9U,OAAO,MAAkBohE,GAAO,KACvC,QAApCG,EAAI,GAAG3hE,cAAcI,MAAM,EAAG,KAAiBqkC,EAAUy3B,EAAQhnD,EAAO,KACxEA,EAAO,IAA6B,KAAvBA,EAAO,GAAG9U,OAAO,KAAcqkC,GAAW,KAChD7d,EAAKi7C,QAAQL,EAAKC,EAAOC,EAAMj9B,KAE1C+8B,EAAMlF,EAAKF,EAAK/3C,MAAMm9C,GAAM,KAC5BC,EAAQnF,EAAKF,EAAK/3C,MAAMo9C,GAAQ,KAChCC,EAAOpF,EAAKF,EAAK/3C,MAAMq9C,GAAO,KAC9Bj9B,EAAU63B,EAAKD,EAAK53B,EAAS,GAAI,IACjCk9B,EAAM,CAACrzC,EAAGkzC,EAAKl+C,EAAGm+C,EAAOriE,EAAGsiE,EAAM19D,SAAUs9D,IACxCD,IAAM,KAAO,SAAWK,EAAOD,GAAS,EAAID,GAAO,IAAIx9D,SAAS,IAAI5D,MAAM,GAC9EuhE,EAAIl9B,QAAUkC,EAAGlC,EAAS,UAAYA,EAAU,EACzCk9B,IAEJ,CAACrzC,GAAI,EAAGhL,GAAI,EAAGlkB,GAAI,EAAGiiE,IAAK,OAAQ3zD,MAAO,EAAG1J,SAAUs9D,KAC/D16C,GAWHA,EAAKk7C,IAAMtE,GAAO,SAAUtrD,EAAG8M,EAAG5f,GAC9B,OAAOwnB,EAAKg7C,QAAQ1vD,EAAG8M,EAAG5f,GAAGiiE,OAYjCz6C,EAAKm7C,IAAMvE,GAAO,SAAUtrD,EAAG8M,EAAGkP,GAC9B,OAAOtH,EAAKi7C,QAAQ3vD,EAAG8M,EAAGkP,GAAGmzC,OAYjCz6C,EAAK+6C,IAAMnE,GAAO,SAAUlvC,EAAGhL,EAAGlkB,EAAGyX,GACjC,GAAI8vB,EAAG9vB,EAAG,UAAW,CACjB,IAAIwN,EAAQ+3C,EAAK/3C,MACjB,MAAO,QAAU,CAACA,EAAMiK,GAAIjK,EAAMf,GAAIe,EAAMjlB,IAAKyX,EAAEmrD,QAAQ,IAAM,IAErE,MAAO,KAAO,SAAW5iE,EAAIkkB,GAAK,EAAIgL,GAAK,IAAItqB,SAAS,IAAI5D,MAAM,MAEtE,IAAImhE,EAAQ,SAAUh1B,GAClB,IAAIl1C,EAAIukE,EAAKC,IAAIoG,qBAAqB,QAAQ,IAAMrG,EAAKC,IAAIoG,qBAAqB,OAAO,GACrFT,EAAM,iBAUV,OATAD,EAAQ/D,GAAO,SAAUjxB,GACrB,GAA2B,OAAvBA,EAAMvsC,cACN,OAAOwhE,EAEXnqE,EAAEsD,MAAM4xC,MAAQi1B,EAChBnqE,EAAEsD,MAAM4xC,MAAQA,EAChB,IAAI21B,EAAMtG,EAAKC,IAAI5qB,YAAY73B,iBAAiB/hB,EAjnBhD,IAinBsD8qE,iBAAiB,SACvE,OAAOD,GAAOV,EAAM,KAAOU,MAElB31B,IAEjB61B,EAAc,WACV,MAAO,OAAS,CAACtqE,KAAKoa,EAAGpa,KAAKknB,EAAGlnB,KAAKsH,GAAK,KAE/CijE,EAAc,WACV,MAAO,OAAS,CAACvqE,KAAKoa,EAAGpa,KAAKknB,EAAGlnB,KAAKo2B,GAAK,KAE/CozC,EAAc,WACV,OAAuB,GAAhBxpE,KAAK2sC,SAAgC,MAAhB3sC,KAAK2sC,QACzB3sC,KAAKupE,IACL,QAAU,CAACvpE,KAAKw2B,EAAGx2B,KAAKwrB,EAAGxrB,KAAKsH,EAAGtH,KAAK2sC,SAAW,KAE/D69B,EAAa,SAAUh0C,EAAGhL,EAAGlkB,GAMzB,GALS,MAALkkB,GAAaqjB,EAAGrY,EAAG,WAAa,MAAOA,GAAK,MAAOA,GAAK,MAAOA,IAC/DlvB,EAAIkvB,EAAElvB,EACNkkB,EAAIgL,EAAEhL,EACNgL,EAAIA,EAAEA,GAED,MAALhL,GAAaqjB,EAAGrY,EAAGpd,QAAS,CAC5B,IAAIqxD,EAAM37C,EAAKu6C,OAAO7yC,GACtBA,EAAIi0C,EAAIj0C,EACRhL,EAAIi/C,EAAIj/C,EACRlkB,EAAImjE,EAAInjE,EAQZ,OANIkvB,EAAI,GAAKhL,EAAI,GAAKlkB,EAAI,KACtBkvB,GAAK,IACLhL,GAAK,IACLlkB,GAAK,KAGF,CAACkvB,EAAGhL,EAAGlkB,IAElBojE,EAAa,SAAUl0C,EAAGhL,EAAGlkB,EAAGyX,GAI5B,IAAI8qD,EAAM,CACNrzC,EAJJA,EAAI8tC,EAAK/3C,MAAU,IAAJiK,GAKXhL,EAJJA,EAAI84C,EAAK/3C,MAAU,IAAJf,GAKXlkB,EAJJA,EAAIg9D,EAAK/3C,MAAU,IAAJjlB,GAKXqlC,QAASkC,EAAG9vB,EAAG,UAAYA,EAAI,EAC/BwqD,IAAKz6C,EAAK+6C,IAAIrzC,EAAGhL,EAAGlkB,GACpB4E,SAAUs9D,GAGd,OADA36B,EAAG9vB,EAAG,YAAc8qD,EAAIl9B,QAAU5tB,GAC3B8qD,GAqBX/6C,EAAK2lB,MAAQ,SAAUg2B,GACnB,IAAIZ,EAiCJ,OAhCIh7B,EAAG47B,EAAK,WAAa,MAAOA,GAAO,MAAOA,GAAO,MAAOA,GACxDZ,EAAM/6C,EAAKg7C,QAAQW,GACnBA,EAAIj0C,EAAIqzC,EAAIrzC,EACZi0C,EAAIj/C,EAAIq+C,EAAIr+C,EACZi/C,EAAInjE,EAAIuiE,EAAIviE,EACZmjE,EAAI99B,QAAU,EACd89B,EAAIlB,IAAMM,EAAIN,KACP16B,EAAG47B,EAAK,WAAa,MAAOA,GAAO,MAAOA,GAAO,MAAOA,GAC/DZ,EAAM/6C,EAAKi7C,QAAQU,GACnBA,EAAIj0C,EAAIqzC,EAAIrzC,EACZi0C,EAAIj/C,EAAIq+C,EAAIr+C,EACZi/C,EAAInjE,EAAIuiE,EAAIviE,EACZmjE,EAAI99B,QAAU,EACd89B,EAAIlB,IAAMM,EAAIN,MAEV16B,EAAG47B,EAAK,YACRA,EAAM37C,EAAKu6C,OAAOoB,IAElB57B,EAAG47B,EAAK,WAAa,MAAOA,GAAO,MAAOA,GAAO,MAAOA,KAAS,UAAWA,IAC5EZ,EAAM/6C,EAAK67C,QAAQF,GACnBA,EAAIrwD,EAAIyvD,EAAIzvD,EACZqwD,EAAIvjD,EAAI2iD,EAAI3iD,EACZujD,EAAIr0C,EAAIyzC,EAAIzzC,EACZyzC,EAAM/6C,EAAK87C,QAAQH,GACnBA,EAAI/zC,EAAImzC,EAAIviE,KAEZmjE,EAAM,CAAClB,IAAK,SACR/yC,EAAIi0C,EAAIj/C,EAAIi/C,EAAInjE,EAAImjE,EAAIrwD,EAAIqwD,EAAIvjD,EAAIujD,EAAI/zC,EAAI+zC,EAAIr0C,GAAK,EACzDq0C,EAAI70D,MAAQ,IAGpB60D,EAAIv+D,SAAWs9D,EACRiB,GAkBX37C,EAAKg7C,QAAU,SAAU1vD,EAAG8M,EAAGwP,EAAG3X,GAQ9B,IAAI2Z,EAAGnB,EAAGT,EAAGsC,EAAGr4B,EAUhB,OAjBI8tC,EAAGz0B,EAAG,WAAa,MAAOA,GAAK,MAAOA,GAAK,MAAOA,IAClDsc,EAAItc,EAAE9S,EACN4f,EAAI9M,EAAE8M,EACNnI,EAAI3E,EAAE2E,EACN3E,EAAIA,EAAEA,GAMVgf,GADAr4B,EAAI21B,EAAIxP,IACC,EAAIq8C,GAFbnpD,GAFAA,GAAK,KAEG,IAAM,IAEO,EAAI,IACzBse,EAAInB,EAAIT,EAAIJ,EAAI31B,EAMT2pE,EAHPhyC,GAAK,CAAC33B,EAAGq4B,EAAG,EAAG,EAAGA,EAAGr4B,GADrBqZ,IAAMA,GAENmd,GAAK,CAAC6B,EAAGr4B,EAAGA,EAAGq4B,EAAG,EAAG,GAAGhf,GACxB0c,GAAK,CAAC,EAAG,EAAGsC,EAAGr4B,EAAGA,EAAGq4B,GAAGhf,GACG2E,IAkB/B+P,EAAKi7C,QAAU,SAAU3vD,EAAG8M,EAAGkP,EAAGrX,GAY9B,IAAI2Z,EAAGnB,EAAGT,EAAGsC,EAAGr4B,EAUhB,OArBI8tC,EAAGz0B,EAAG,WAAa,MAAOA,GAAK,MAAOA,GAAK,MAAOA,IAClDgc,EAAIhc,EAAEgc,EACNlP,EAAI9M,EAAE8M,EACN9M,EAAIA,EAAEA,IAENA,EAAI,GAAK8M,EAAI,GAAKkP,EAAI,KACtBhc,GAAK,IACL8M,GAAK,IACLkP,GAAK,KAMTgD,GADAr4B,EAAI,EAAImmB,GAAKkP,EAAI,GAAKA,EAAI,EAAIA,KACrB,EAAImtC,GAFbnpD,GAFAA,GAAK,KAEG,IAAM,IAEO,EAAI,IACzBse,EAAInB,EAAIT,EAAIV,EAAIr1B,EAAI,EAMb2pE,EAHPhyC,GAAK,CAAC33B,EAAGq4B,EAAG,EAAG,EAAGA,EAAGr4B,GADrBqZ,IAAMA,GAENmd,GAAK,CAAC6B,EAAGr4B,EAAGA,EAAGq4B,EAAG,EAAG,GAAGhf,GACxB0c,GAAK,CAAC,EAAG,EAAGsC,EAAGr4B,EAAGA,EAAGq4B,GAAGhf,GACG2E,IAiB/B+P,EAAK87C,QAAU,SAAUp0C,EAAGhL,EAAGlkB,GAM3B,IAAUwxB,EAAG/3B,EASb,OAbAy1B,GADAlvB,EAAIkjE,EAAWh0C,EAAGhL,EAAGlkB,IACf,GACNkkB,EAAIlkB,EAAE,GACNA,EAAIA,EAAE,GAWC,CAAC8S,IANC,IADTrZ,GADA+3B,EAAIyrC,EAAK/tC,EAAGhL,EAAGlkB,IACPk9D,EAAKhuC,EAAGhL,EAAGlkB,IACN,KACTwxB,GAAKtC,GAAKhL,EAAIlkB,GAAKvG,EACnB+3B,GAAKtN,GAAKlkB,EAAIkvB,GAAKz1B,EAAI,GACby1B,EAAIhL,GAAKzqB,EAAI,GAClB,KAAO,EAAI,GAAK,IAEXmmB,EADL,GAALnmB,EAAS,EAAIA,EAAI+3B,EACDxxB,EAAGwxB,EAAG5sB,SAAUo+D,IAiBxCx7C,EAAK67C,QAAU,SAAUn0C,EAAGhL,EAAGlkB,GAM3B,IAAU0wB,EAAGG,EAAG1P,EAAG1nB,EAanB,OAjBAy1B,GADAlvB,EAAIkjE,EAAWh0C,EAAGhL,EAAGlkB,IACf,GACNkkB,EAAIlkB,EAAE,GACNA,EAAIA,EAAE,GAWN0wB,IARAG,EAAIosC,EAAK/tC,EAAGhL,EAAGlkB,KACfmhB,EAAI+7C,EAAKhuC,EAAGhL,EAAGlkB,KAOD,EAIP,CAAC8S,IATC,IADTrZ,EAAIo3B,EAAI1P,GACK,KACT0P,GAAK3B,GAAKhL,EAAIlkB,GAAKvG,EACnBo3B,GAAK3M,GAAKlkB,EAAIkvB,GAAKz1B,EAAI,GACby1B,EAAIhL,GAAKzqB,EAAI,GAClB,KAAO,EAAI,GAAK,IAKXmmB,EAHL,GAALnmB,EAAS,EACRi3B,EAAI,GAAKj3B,GAAK,EAAIi3B,GACTj3B,GAAK,EAAI,EAAIi3B,GACP5B,EAAG4B,EAAG9rB,SAAUq+D,IAcxCz7C,EAAK+7C,gBAAkB,SAAUC,GAC7B,IAAKA,EACD,OAAO,KAEX,IAAIC,EAAMj8C,EAAK/rB,KAAK+nE,GACpB,GAAIC,EAAI9sD,IACJ,OAAO6Q,EAAK/rB,KAAK0jE,MAAMsE,EAAI9sD,KAG/B,IAAI+sD,EAAc,CAAC3jE,EAAG,EAAG2Z,EAAG,EAAGjC,EAAG,EAAG3E,EAAG,EAAGgc,EAAG,EAAG3N,EAAG,EAAG+N,EAAG,EAAGD,EAAG,EAAGrP,EAAG,EAAGjG,EAAG,EAAGyV,EAAG,EAAGD,EAAG,EAAGG,EAAG,GAC1FlN,EAAO,GA+BX,OA9BImlB,EAAGi8B,EAAY,UAAYj8B,EAAGi8B,EAAW,GAAI,WAC7CphD,EAAOoF,EAAK/rB,KAAK0jE,MAAMqE,IAEtBphD,EAAKjqB,QACN0kE,EAAI2G,GAAYlpE,QAAQkjE,GAAa,SAAUz9D,EAAGC,EAAG0Z,GACjD,IAAI1E,EAAS,GACTJ,EAAO5U,EAAEY,cAYb,GAXA8Y,EAAEpf,QAAQojE,GAAY,SAAU39D,EAAGC,GAC/BA,GAAKgV,EAAOxS,MAAMxC,MAEV,KAAR4U,GAAeI,EAAO7c,OAAS,IAC/BiqB,EAAK5f,KAAK,CAACxC,GAAGX,OAAO2V,EAAO1L,OAAO,EAAG,KACtCsL,EAAO,IACP5U,EAAS,KAALA,EAAW,IAAM,KAEb,KAAR4U,GAAgC,GAAjBI,EAAO7c,QACtBiqB,EAAK5f,KAAK,CAACxC,EAAGgV,EAAO,KAEb,KAARJ,EACAwN,EAAK5f,KAAK,CAACxC,GAAGX,OAAO2V,SAClB,KAAOA,EAAO7c,QAAUurE,EAAY9uD,KACvCwN,EAAK5f,KAAK,CAACxC,GAAGX,OAAO2V,EAAO1L,OAAO,EAAGo6D,EAAY9uD,MAC7C8uD,EAAY9uD,UAM7BwN,EAAKxd,SAAW4iB,EAAK/rB,KAAKmJ,SAC1B6+D,EAAI9sD,IAAM6Q,EAAK/rB,KAAK0jE,MAAM/8C,GACnBA,GAYX,IAAIuhD,EAAuBn8C,EAAKm8C,qBAAuB,SAAUC,GAC7D,IAAKA,EACD,OAAO,KAEX,IACIxhD,EAAO,GAeX,OAdImlB,EAAGq8B,EAAS,UAAYr8B,EAAGq8B,EAAQ,GAAI,WACvCxhD,EAAOoF,EAAK/rB,KAAK0jE,MAAMyE,IAEtBxhD,EAAKjqB,QACN0kE,EAAI+G,GAAStpE,QAAQmjE,GAAU,SAAU19D,EAAGC,EAAG0Z,GAC3C,IAAI1E,EAAS,GACFhV,EAAEY,cACb8Y,EAAEpf,QAAQojE,GAAY,SAAU39D,EAAGC,GAC/BA,GAAKgV,EAAOxS,MAAMxC,MAEtBoiB,EAAK5f,KAAK,CAACxC,GAAGX,OAAO2V,OAG7BoN,EAAKxd,SAAW4iB,EAAK/rB,KAAKmJ,SACnBwd,GA8BXoF,EAAKm1C,EAAEkH,oBA5BP,SAA6BC,GACzB,IAAIhjD,EAAM,GAyBV,OAxBAgjD,EAAOA,EAAKxpE,QAAQ,6BAA6B,SAAUwkE,EAAKlqD,EAAMI,GAsBlE,OArBAA,EAASA,EAAOhW,MAAM,eACV,UAAR4V,GAAqC,GAAjBI,EAAO7c,QAC3B6c,EAAOxS,KAAK,EAAG,GAEP,SAARoS,IACII,EAAO7c,OAAS,EAChB6c,EAASA,EAAOhU,MAAM,EAAG,GACD,GAAjBgU,EAAO7c,QACd6c,EAAOxS,KAAK,EAAG,GAEE,GAAjBwS,EAAO7c,QACP6c,EAAOxS,KAAKwS,EAAO,GAAI,EAAG,IAGtB,SAARJ,EACAkM,EAAIte,KAAK,CAAC,IAAK,EAAG,EAAGw6D,EAAKqC,IAAIZ,EAAIzpD,EAAO,KAAM,EAAG,EAAG,IACtC,SAARJ,EACPkM,EAAIte,KAAK,CAAC,IAAK,EAAGw6D,EAAKqC,IAAIZ,EAAIzpD,EAAO,KAAM,EAAG,EAAG,EAAG,IAErD8L,EAAIte,KAAK,CAACoS,EAAKvW,OAAO,IAAIgB,OAAO2V,IAE9B8pD,KAEJh+C,GAGX0G,EAAKm1C,EAAEoH,YAAc,sBAqErBv8C,EAAKm1C,EAAEqH,iBApEP,SAA0BF,EAAMG,GAC5B,IAAIC,EAAQP,EAAqBG,GAC7B3iD,EAAI,IAAIqG,EAAK28C,OACjB,GAAID,EACA,IAAK,IAAIjsE,EAAI,EAAG2sD,EAAKsf,EAAM/rE,OAAQF,EAAI2sD,EAAI3sD,IAAK,CAC5C,IAKI2nE,EACAC,EACAC,EACAC,EACAvnC,EATA7e,EAAIuqD,EAAMjsE,GACVmsE,EAAOzqD,EAAExhB,OACTksE,EAAUxH,EAAIljD,EAAE,IAAI/Y,cACpB6X,EAAWkB,EAAE,IAAM0qD,EACnBC,EAAQ7rD,EAAW0I,EAAEojD,SAAW,EAMrB,KAAXF,GAA0B,GAARD,EAClBjjD,EAAEqjD,UAAU7qD,EAAE,GAAI,GACA,KAAX0qD,GAA0B,GAARD,EACrB3rD,GACAmnD,EAAK0E,EAAMvwD,EAAE,EAAG,GAChB8rD,EAAKyE,EAAMtwD,EAAE,EAAG,GAChB8rD,EAAKwE,EAAMvwD,EAAE4F,EAAE,GAAIA,EAAE,IACrBomD,EAAKuE,EAAMtwD,EAAE2F,EAAE,GAAIA,EAAE,IACrBwH,EAAEqjD,UAAU1E,EAAKF,EAAIG,EAAKF,IAE1B1+C,EAAEqjD,UAAU7qD,EAAE,GAAIA,EAAE,IAEN,KAAX0qD,EACK,GAARD,GACA5rC,EAAKA,GAAMyrC,EACX9iD,EAAEsjD,OAAO9qD,EAAE,GAAI6e,EAAGzkB,EAAIykB,EAAG3pB,MAAQ,EAAG2pB,EAAGxkB,EAAIwkB,EAAG/nB,OAAS,IACxC,GAAR2zD,IACH3rD,GACAqnD,EAAKwE,EAAMvwD,EAAE4F,EAAE,GAAIA,EAAE,IACrBomD,EAAKuE,EAAMtwD,EAAE2F,EAAE,GAAIA,EAAE,IACrBwH,EAAEsjD,OAAO9qD,EAAE,GAAImmD,EAAIC,IAEnB5+C,EAAEsjD,OAAO9qD,EAAE,GAAIA,EAAE,GAAIA,EAAE,KAGb,KAAX0qD,EACK,GAARD,GAAqB,GAARA,GACb5rC,EAAKA,GAAMyrC,EACX9iD,EAAEujD,MAAM/qD,EAAE,GAAIA,EAAEyqD,EAAO,GAAI5rC,EAAGzkB,EAAIykB,EAAG3pB,MAAQ,EAAG2pB,EAAGxkB,EAAIwkB,EAAG/nB,OAAS,IACpD,GAAR2zD,EACH3rD,GACAqnD,EAAKwE,EAAMvwD,EAAE4F,EAAE,GAAIA,EAAE,IACrBomD,EAAKuE,EAAMtwD,EAAE2F,EAAE,GAAIA,EAAE,IACrBwH,EAAEujD,MAAM/qD,EAAE,GAAIA,EAAE,GAAImmD,EAAIC,IAExB5+C,EAAEujD,MAAM/qD,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,IAEjB,GAARyqD,IACH3rD,GACAqnD,EAAKwE,EAAMvwD,EAAE4F,EAAE,GAAIA,EAAE,IACrBomD,EAAKuE,EAAMtwD,EAAE2F,EAAE,GAAIA,EAAE,IACrBwH,EAAEujD,MAAM/qD,EAAE,GAAIA,EAAE,GAAImmD,EAAIC,IAExB5+C,EAAEujD,MAAM/qD,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,KAGlB,KAAX0qD,GAA0B,GAARD,GACzBjjD,EAAEknC,IAAI1uC,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,IAIlD,OAAOwH,GAGXqG,EAAKm9C,SAuCL,SAAiBv3D,EAAIwH,EAAM5Y,GACvB,IAAI0T,EAAMk1D,EAAWx3D,GAAIggB,KACrB01C,EAAM,GACN+B,EAAMn1D,EAAIvH,cAAc,cACvB08D,IACDA,EAAM9G,EAAE,QACRA,EAAE8G,EAAK,CAAC9wD,GAAI,IAAKC,GAAI,IAAKnF,MAAO,GAAI4B,OAAQ,GAAI,MAAS,YAAaq0D,KAAM,SAC7Ep1D,EAAI8sB,YAAYqoC,IAEpB,SAASE,EAAKthD,GACV,GAAW,MAAPA,EACA,MAvlCJ,GAylCA,GAAIA,IAAQA,EACR,OAAOA,EAEXs6C,EAAE8G,EAAK,CAACh2D,MAAO4U,IACf,IACI,OAAOohD,EAAIG,UAAUn2D,MACvB,MAAOpN,GACL,OAAO,GAGf,SAASwjE,EAAKxhD,GACV,GAAW,MAAPA,EACA,MArmCJ,GAumCA,GAAIA,IAAQA,EACR,OAAOA,EAEXs6C,EAAE8G,EAAK,CAACp0D,OAAQgT,IAChB,IACI,OAAOohD,EAAIG,UAAUv0D,OACvB,MAAOhP,GACL,OAAO,GAGf,SAASyL,EAAIg4D,EAAKp0C,GACF,MAARlc,EACAkuD,EAAIoC,GAAOp0C,EAAE1jB,EAAG4C,KAAKk1D,IAAQ,GACtBA,GAAOtwD,IACdkuD,EAAMhyC,EAAW,MAAT90B,EAAgBoR,EAAG4C,KAAKk1D,IAAQ,EAAIlpE,IAGpD,OAAQoR,EAAGuN,MACP,IAAK,OACDzN,EAAI,KAAM63D,GACV73D,EAAI,KAAM+3D,GACd,IAAK,QACD/3D,EAAI,QAAS63D,GACb73D,EAAI,SAAU+3D,GAClB,IAAK,OACD/3D,EAAI,IAAK63D,GACT73D,EAAI,IAAK+3D,GACb,MACA,IAAK,SACD/3D,EAAI,KAAM63D,GACV73D,EAAI,KAAM+3D,GACV/3D,EAAI,IAAK63D,GACb,MACA,IAAK,UACD73D,EAAI,KAAM63D,GACV73D,EAAI,KAAM+3D,GACV/3D,EAAI,KAAM63D,GACV73D,EAAI,KAAM+3D,GACd,MACA,IAAK,OACD/3D,EAAI,KAAM63D,GACV73D,EAAI,KAAM63D,GACV73D,EAAI,KAAM+3D,GACV/3D,EAAI,KAAM+3D,GACd,MACA,IAAK,SACD/3D,EAAI,OAAQ63D,GACZ73D,EAAI,cAAe63D,GACnB73D,EAAI,OAAQ+3D,GACZ/3D,EAAI,eAAgB+3D,GACxB,MACA,IAAK,iBACD/3D,EAAI,KAAM63D,GACV73D,EAAI,KAAM+3D,GACd,MACA,IAAK,QACD/3D,EAAI,KAAM63D,GACV73D,EAAI,KAAM+3D,GACd,MACA,QACI/3D,EAAI0H,EAAMmwD,GAGlB,OADAr1D,EAAI6sB,YAAYsoC,GACT/B,GAhIItG,EAAKC,IAAIjjD,UAAYgjD,EAAKC,IAAIhjD,wBAiC7C,SAASmrD,EAAWx3D,GAChB,OAAOA,EAAGggB,KAAK+3C,iBAAmB5I,EAAKnvD,EAAGggB,KAAK+3C,kBAAoB39C,EAAK1X,OAAO,OA6HnF,SAASs1D,EAAU7mE,GACVgpC,EAAGhpC,EAAM,WACVA,EAAO0B,MAAM3H,UAAU0I,MAAMxI,KAAKN,UAAW,IAKjD,IAHA,IAAID,EAAI,EACJ2qB,EAAI,EACJwK,EAAO10B,KAAK00B,KACT10B,KAAKT,WAAWS,KAAKT,KAC5B,IAAKA,EAAI,EAAGA,EAAIsG,EAAKpG,OAAQF,IACL,OAAhBsG,EAAKtG,GAAG0iB,KACRpc,EAAKtG,GAAG6K,SAAQ,SAAUsK,GACtBggB,EAAKoP,YAAYpvB,EAAGggB,SAGxBA,EAAKoP,YAAYj+B,EAAKtG,GAAGm1B,MAGjC,IAAIn0B,EAAWm0B,EAAKi4C,WACpB,IAAKptE,EAAI,EAAGA,EAAIgB,EAASd,OAAQF,IAC7BS,KAAKkqB,KAAO25C,EAAKtjE,EAAShB,IAE9B,OAAOS,KAYX,SAAS8D,EAAQ4Q,GACb,GAAIA,EAAGk4D,QAAQxH,EACX,OAAOA,EAAI1wD,EAAGk4D,MAElB,IAAI51D,EACJ,IACIA,EAAMtC,EAAG+3D,gBACX,MAAM1jE,IAaR/I,KAAK00B,KAAOhgB,EACRsC,IACAhX,KAAK6sE,MAAQ,IAAI7I,EAAMhtD,IAQ3BhX,KAAKiiB,KAAOvN,EAAGkf,SAAWlf,EAAG2sB,SAC7B,IAAIlsB,EAAKnV,KAAKmV,GAAK8vD,EAAGjlE,MAUtB,GATAA,KAAK8sE,MAAQ,GACb9sE,KAAKikE,EAAI,CACLhxC,UAAW,IAEfve,EAAGk4D,KAAOz3D,EACViwD,EAAIjwD,GAAMnV,KACO,KAAbA,KAAKiiB,OACLjiB,KAAK2vD,IAAM+c,GAEX1sE,KAAKiiB,OAAQ,CAACuJ,EAAG,EAAGuhD,KAAM,EAAG7jD,QAAS,EAAG0wC,OAAQ,GACjD,IAAK,IAAI33D,KAAU+hE,EAAMpkE,UAAeokE,EAAMpkE,UAAU+nC,GAAK1lC,KACzDjC,KAAKiC,GAAU+hE,EAAMpkE,UAAUqC,IA4F3C,SAAS83B,EAASizC,GACdhtE,KAAK00B,KAAOs4C,EA6BhB,SAASC,EAAK/wD,EAAM/I,GAChB,IAAIiV,EAAMi9C,EAAEnpD,GAGZ,OAFA/I,EAAO2wB,YAAY1b,GACVy7C,EAAKz7C,GAGlB,SAAS47C,EAAMrtC,EAAGvc,GACd,IAAIgO,EACArV,EACAm6D,EACAC,EAAQnJ,EAAMpkE,UAClB,GAAI+2B,GAAKA,EAAE/C,SAAsC,OAA3B+C,EAAE/C,QAAQ1rB,cAAwB,CACpD,GAAIyuB,EAAEi2C,QAAQxH,EACV,OAAOA,EAAIzuC,EAAEi2C,MAEjB,IAAI7I,EAAMptC,EAAE6L,cAcZ,IAAK,IAAI7iC,KAbTyoB,EAAM,IAAItkB,EAAQ6yB,GAClB5jB,EAAO4jB,EAAEwzC,qBAAqB,QAAQ,GACtC+C,EAAOv2C,EAAEwzC,qBAAqB,QAAQ,GACjCp3D,KACDA,EAAOsyD,EAAE,SACJvhC,YAAYigC,EAAIxW,eAAe,sBACpCnlC,EAAIsM,KAAKoP,YAAY/wB,IAEpBm6D,IACDA,EAAO7H,EAAE,QACTj9C,EAAIsM,KAAKoP,YAAYopC,IAEzB9kD,EAAI8kD,KAAOA,EACKC,EAAWA,EAAMxlC,GAAKhoC,KAClCyoB,EAAIzoB,GAAOwtE,EAAMxtE,IAErByoB,EAAIykD,MAAQzkD,EAAI4zC,KAAO5zC,OAGvBi9C,GADAj9C,EAAM6kD,EAAK,MAAOnJ,EAAKC,IAAI3vD,OACrBsgB,KAAM,CACR3c,OAAQqC,EACRshB,QAAS,IACTvlB,MAAOwgB,EACPwuC,MAAOA,IAGf,OAAO/8C,EAEX,SAASy7C,EAAKuJ,GACV,OAAKA,EAGDA,aAAetpE,GAAWspE,aAAerzC,EAClCqzC,EAEPA,EAAIx5C,SAAwC,OAA7Bw5C,EAAIx5C,QAAQ1rB,cACpB,IAAI87D,EAAMoJ,GAEjBA,EAAIx5C,SAAwC,UAA7Bw5C,EAAIx5C,QAAQ1rB,eAAyC,iBAAZklE,EAAInrD,KACrD,IAAI+hD,EAAMoJ,EAAIC,gBAAgBlD,qBAAqB,OAAO,IAE9D,IAAIrmE,EAAQspE,GAXRA,EA/Wft+C,EAAKm1C,EAAEqJ,YAfP,SAAqB54D,GACjB,IAAI4hB,EAAI5hB,EAAGggB,KAAK+3C,iBAAmB5I,EAAKnvD,EAAGggB,KAAK+3C,kBACxC/3D,EAAGggB,KAAKmS,YAAcg9B,EAAKnvD,EAAGggB,KAAKmS,aACnC/X,EAAK1X,OAAO,QACZ0X,EAAK,EAAG,GACZy+C,EAAQj3C,EAAElf,OAAO,QACjB81D,EAAiB,MAATK,GAAwBA,EAAM74C,KAI1C,OAHKw4C,IACDA,EAAOD,EAAK,OAAQ32C,EAAE5B,MAAMA,MAEzBw4C,GAMXp+C,EAAKm1C,EAAEiI,WAAaA,EAqGpBp9C,EAAK1X,OAAS,SAAUo2D,GAEpB,OADAA,EAAQrJ,EAAIqJ,GAAO5rE,QAAQ,YAAa,SACjCiiE,EAAKC,EAAKC,IAAIt0D,cAAc+9D,KAUvC1+C,EAAK2+C,UAAY,SAAUD,GAGvB,IAFA,IAAIE,EAAW5J,EAAKC,IAAI7N,iBAAiBsX,GACrCh5D,GAAOsa,EAAKta,KAAOjN,SACdhI,EAAI,EAAGA,EAAImuE,EAASjuE,OAAQF,IACjCiV,EAAI1K,KAAK+5D,EAAK6J,EAASnuE,KAE3B,OAAOiV,GA2BXm5D,aAAY,WACR,IAAK,IAAIhuE,KAAOylE,EAAK,GAAIA,EAAIz9B,GAAKhoC,GAAM,CACpC,IAAI+U,EAAK0wD,EAAIzlE,GACT+0B,EAAOhgB,EAAGggB,MACC,OAAXhgB,EAAGuN,OAAkByS,EAAK+3C,iBAA8B,OAAX/3D,EAAGuN,QAAmByS,EAAKmS,YAAc,oBAAqBnS,EAAKmS,aAAenS,EAAK+3C,0BAC7HrH,EAAIzlE,MAGpB,KAyECmE,EAAQlE,UAAU0X,KAAO,SAAUgF,EAAQhZ,GACvC,IAAIoR,EAAK1U,KACL00B,EAAOhgB,EAAGggB,KACd,IAAKpY,EAAQ,CACT,GAAqB,GAAjBoY,EAAKxU,SACL,MAAO,CACH+0B,KAAMvgB,EAAKuP,WAKnB,IAFA,IAAI3sB,EAAOod,EAAKk5C,WACZxD,EAAM,GACD7qE,EAAI,EAAG2sD,EAAK50C,EAAK7X,OAAQF,EAAI2sD,EAAI3sD,IACtC6qE,EAAI9yD,EAAK/X,GAAG8hC,UAAY/pB,EAAK/X,GAAG0kC,UAEpC,OAAOmmC,EAEX,GAAIv7B,EAAGvyB,EAAQ,UAAW,CACtB,KAAI9c,UAAUC,OAAS,GAKnB,OAAOkiE,IAAI,qBAAuBrlD,EAAQ5H,GAAIm5D,eAJ9C,IAAIC,EAAO,GACXA,EAAKxxD,GAAUhZ,EACfgZ,EAASwxD,EAKjB,IAAK,IAAIC,KAAOzxD,EACRA,EAAOqrB,GAAKomC,IACZpM,IAAI,kBAAoBoM,EAAKr5D,EAAI4H,EAAOyxD,IAGhD,OAAOr5D,GAWfoa,EAAKjH,MAAQ,SAAU7Q,GACnB,IAAIohB,EAAI0rC,EAAKC,IAAIiK,yBACbC,GAAO,EACPC,EAAMpK,EAAKC,IAAIv5D,cAAc,OAQjC,IAPAwM,EAAMmtD,EAAIntD,IACD/T,MAAM,yBACX+T,EAAM,QAAUA,EAAM,SACtBi3D,GAAO,GAEXC,EAAIvqC,UAAY3sB,EAChBA,EAAMk3D,EAAI/D,qBAAqB,OAAO,GAElC,GAAI8D,EACA71C,EAAIphB,OAEJ,KAAOA,EAAI4sB,YACPxL,EAAE0L,YAAY9sB,EAAI4sB,YAI9B,OAAO,IAAI7J,EAAS3B,IAcxBtJ,EAAKq/C,SAAW,WAGZ,IAFA,IAAIjkE,EAAO3C,MAAM3H,UAAU0I,MAAMxI,KAAKN,UAAW,GAC7C44B,EAAI0rC,EAAKC,IAAIiK,yBACRzuE,EAAI,EAAG2sD,EAAKhiD,EAAKzK,OAAQF,EAAI2sD,EAAI3sD,IAAK,CAC3C,IAAImI,EAAOwC,EAAK3K,GACZmI,EAAKgtB,MAAQhtB,EAAKgtB,KAAKxU,UACvBkY,EAAE0L,YAAYp8B,EAAKgtB,MAEnBhtB,EAAKwY,UACLkY,EAAE0L,YAAYp8B,GAEC,iBAARA,GACP0wB,EAAE0L,YAAYhV,EAAKjH,MAAMngB,GAAMgtB,MAGvC,OAAO,IAAIqF,EAAS3B,IA+DxBtJ,EAAKm1C,EAAEgJ,KAAOA,EACdn+C,EAAKm1C,EAAEJ,KAAOA,EAwBdG,EAAMpkE,UAAU8U,GAAK,SAAUwH,EAAM5E,GACjC,IAAI5C,EAAKu4D,EAAK/wD,EAAMlc,KAAK00B,MAEzB,OADApd,GAAQ5C,EAAG4C,KAAKA,GACT5C,GASX5Q,EAAQlE,UAAUW,SAAW,WAGzB,IAFA,IAAI6pE,EAAM,GACNpjB,EAAKhnD,KAAK00B,KAAKi4C,WACVptE,EAAI,EAAG2sD,EAAKlF,EAAGvnD,OAAQF,EAAI2sD,EAAI3sD,IACpC6qE,EAAI7qE,GAAKuvB,EAAKk4B,EAAGznD,IAErB,OAAO6qE,GA2BXtmE,EAAQlE,UAAUwuE,OAAS,WACvB,IAAIhE,EAAM,GAEV,OA5BJ,SAASiE,EAAWrS,EAAMj9C,GACtB,IAAK,IAAIxf,EAAI,EAAG2sD,EAAK8P,EAAKv8D,OAAQF,EAAI2sD,EAAI3sD,IAAK,CAC3C,IAAImI,EAAO,CACHua,KAAM+5C,EAAKz8D,GAAG0iB,KACd3K,KAAM0kD,EAAKz8D,GAAG+X,QAElB/W,EAAWy7D,EAAKz8D,GAAGgB,WACvBwe,EAAEjV,KAAKpC,GACHnH,EAASd,QACT4uE,EAAW9tE,EAAUmH,EAAKilE,WAAa,KAkB/C0B,CAAW,CAACruE,MAAOoqE,GACZA,EAAI,IAGfzI,IAAI1nD,GAAG,qBAAqB,WACxB,IAAI8zD,EAAMpM,IAAI2M,KAEVC,GADJR,EAAMA,EAAIl/D,UAAUk/D,EAAIx+D,YAAY,KAAO,IAC7B3N,QAAQ,UAAU,SAAUypB,GACtC,MAAO,IAAMA,EAAOnjB,iBAExB,OAAIsmE,EAAQ7mC,GAAK4mC,GACNvuE,KAAK00B,KAAK8N,cAAc2W,YAAY73B,iBAAiBthB,KAAK00B,KAAM,MAAM21C,iBAAiBkE,GAEvFlJ,EAAErlE,KAAK00B,KAAMq5C,MAG5B,IAAIS,EAAU,CACV,qBAAsB,EACtB,iBAAkB,EAClB,KAAQ,EACR,YAAa,EACb,YAAa,EACb,MAAS,EACT,sBAAuB,EACvB,8BAA+B,EAC/B,gBAAiB,EACjB,kBAAmB,EACnB,OAAU,EACV,UAAa,EACb,QAAW,EACX,oBAAqB,EACrB,oBAAqB,EACrB,KAAQ,EACR,eAAgB,EAChB,YAAa,EACb,OAAU,EACV,cAAe,EACf,gBAAiB,EACjB,KAAQ,EACR,cAAe,EACf,YAAa,EACb,mBAAoB,EACpB,eAAgB,EAChB,aAAc,EACd,eAAgB,EAChB,cAAe,EACf,+BAAgC,EAChC,6BAA8B,EAC9B,kBAAmB,EACnB,QAAW,EACX,iBAAkB,EAClB,iBAAkB,EAClB,OAAU,EACV,aAAc,EACd,aAAc,EACd,eAAgB,EAChB,KAAQ,EACR,QAAW,EACX,SAAY,EACZ,iBAAkB,EAClB,kBAAmB,EACnB,aAAc,EACd,eAAgB,EAChB,OAAU,EACV,mBAAoB,EACpB,oBAAqB,EACrB,iBAAkB,EAClB,kBAAmB,EACnB,oBAAqB,EACrB,iBAAkB,EAClB,eAAgB,EAChB,cAAe,EACf,kBAAmB,EACnB,iBAAkB,EAClB,eAAgB,EAChB,WAAc,EACd,eAAgB,EAChB,eAAgB,GAGpB7M,IAAI1nD,GAAG,kBAAkB,SAAU3W,GAC/B,IAAIyqE,EAAMpM,IAAI2M,KACVh3D,EAAO,GAEXA,EADAy2D,EAAMA,EAAIl/D,UAAUk/D,EAAIx+D,YAAY,KAAO,IAC/BjM,EACZ,IAAIT,EAAQkrE,EAAInsE,QAAQ,WAAW,SAAUwkE,EAAK/6C,GAC1C,OAAOA,EAAOtV,iBAElBw4D,EAAMR,EAAInsE,QAAQ,UAAU,SAAUypB,GAClC,MAAO,IAAMA,EAAOnjB,iBAExBsmE,EAAQ7mC,GAAK4mC,GACbvuE,KAAK00B,KAAK7xB,MAAMA,GAAkB,MAATS,EA3mDzB,GA2mD6CA,EAE7C+hE,EAAErlE,KAAK00B,KAAMpd,MAGA0sD,EAAMpkE,UAmB3BkvB,EAAK2/C,KAAO,SAAU9/D,EAAK+/D,EAAUhlE,EAAUi8D,GAC3C,IAAIgJ,EAAM,IAAIC,eACVz5D,EAAK8vD,IACT,GAAI0J,EAAK,CACL,GAAI9/B,EAAG6/B,EAAU,YACb/I,EAAQj8D,EACRA,EAAWglE,EACXA,EAAW,UACR,GAAI7/B,EAAG6/B,EAAU,UAAW,CAC/B,IAAI9/B,EAAK,GACT,IAAK,IAAIjvC,KAAO+uE,EAAcA,EAAS7uE,eAAeF,IAClDivC,EAAG9kC,KAAK+f,mBAAmBlqB,GAAO,IAAMkqB,mBAAmB6kD,EAAS/uE,KAExE+uE,EAAW9/B,EAAG3nC,KAAK,KAgBvB,OAdA0nE,EAAIE,KAAKH,EAAW,OAAS,MAAO//D,GAAK,GACrC+/D,IACAC,EAAIG,iBAAiB,mBAAoB,kBACzCH,EAAIG,iBAAiB,eAAgB,sCAErCplE,IACAi4D,IAAIoN,KAAK,aAAe55D,EAAK,KAAMzL,GACnCi4D,IAAIoN,KAAK,aAAe55D,EAAK,OAAQzL,GACrCi4D,IAAIoN,KAAK,aAAe55D,EAAK,OAAQzL,IAEzCilE,EAAIK,mBAAqB,WACC,GAAlBL,EAAIM,YACRtN,IAAI,aAAexsD,EAAK,IAAMw5D,EAAI1L,OAAQ0C,EAAOgJ,IAE/B,GAAlBA,EAAIM,WACGN,GAEXA,EAAIO,KAAKR,GACFC,KAaf7/C,EAAKqgD,KAAO,SAAUxgE,EAAKjF,EAAUi8D,GACjC72C,EAAK2/C,KAAK9/D,GAAK,SAAUggE,GACrB,IAAIv2C,EAAItJ,EAAKjH,MAAM8mD,EAAIS,cACvBzJ,EAAQj8D,EAAS5J,KAAK6lE,EAAOvtC,GAAK1uB,EAAS0uB,OAmEnD,OAvCAtJ,EAAKugD,kBAAoB,SAAUh0D,EAAGC,GACtBtb,KACIsvE,OADhB,IAEIhwE,EAASwkE,EAAKC,IAAIwL,iBAAiBl0D,EAAGC,GAC1C,GAAIwoD,EAAKI,IAAIsL,OAA2B,OAAlBlwE,EAAOs0B,QAAkB,CAC3C,IAAI67C,EA9BI,SAAUC,GACtB,IAAIC,EAAMD,EAAKxuD,wBACX6iD,EAAM2L,EAAKltC,cACXpuB,EAAO2vD,EAAI3vD,KACXw7D,EAAU7L,EAAIh9C,gBACd8oD,EAAYD,EAAQC,WAAaz7D,EAAKy7D,WAAa,EAAGC,EAAaF,EAAQE,YAAc17D,EAAK07D,YAAc,EAGhH,MAAO,CACHx0D,EAHOq0D,EAAIxuD,KAAQqK,EAAE04C,IAAI7iD,aAAeuuD,EAAQrvD,WAAanM,EAAKmM,WAAcsvD,EAIhFx0D,EAHOs0D,EAAInb,MAAQhpC,EAAE04C,IAAIt9C,aAAegpD,EAAQnb,YAAcrgD,EAAKqgD,YAAcqb,GAuBxEC,CAAUzwE,GACf0wE,EAAK1wE,EAAO2wE,gBAChBD,EAAG30D,EAAIA,EAAIo0D,EAAGp0D,EACd20D,EAAG10D,EAAIA,EAAIm0D,EAAGn0D,EACd00D,EAAG75D,MAAQ65D,EAAGj4D,OAAS,EACvB,IAAIm4D,EAAO5wE,EAAO6wE,oBAAoBH,EAAI,MACtCE,EAAKzwE,SACLH,EAAS4wE,EAAKA,EAAKzwE,OAAS,IAGpC,OAAKH,EAGEukE,EAAKvkE,GAFD,MAmBfwvB,EAAKshD,OAAS,SAAUh4C,GACpBA,EAAEtJ,EAAMhrB,EAASkgE,EAAOF,EAAM/pC,IAElC+pC,EAAKI,IAAIp1C,KAAOA,EACTA,EArzDK,CAszDVxkB,QAAUtK,MAeZ8uB,EAAKshD,QAAO,SAAUthD,EAAMhrB,EAASkgE,EAAOF,EAAM/pC,GAC9C,IAAIs2C,EAAUvsE,EAAQlE,UAClBivC,EAAK/f,EAAK+f,GACVs1B,EAAMl5C,OACNqlD,EAAUxhD,EAAKm9C,SACf5G,EAAIv2C,EAAKm1C,EAAEoB,EACX4H,EAAOn+C,EAAKm1C,EAAEgJ,KACdK,EAAcx+C,EAAKm1C,EAAEqJ,YACrB3lC,EAAM,iBACNk8B,EAAO/0C,EAAKm1C,EAAEJ,KA0BlBwM,EAAQ/D,QAAU,SAAUiE,GACxB,GAAiB,SAAbvwE,KAAKiiB,KACL,OAAO6M,EAAKm1C,EAAE0L,IAAI3vE,KAAK00B,KAAK87C,iBAAiB9oE,KAAK,IAEtD,IAAKonB,EAAK28C,SAAW38C,EAAK/rB,KACtB,OAAO/C,KAAK00B,KAAK43C,UAErB,IAAI53D,EAAK1U,KACLyoB,EAAI,IAAIqG,EAAK28C,OACjB,GAAI/2D,EAAG+7D,QACH,OAAO3hD,EAAKm1C,EAAE0L,MAElB,KAAkB,OAAXj7D,EAAGuN,MAIN,GAHKsuD,IACD9nD,EAAIA,EAAEknC,IAAIj7C,EAAGue,YAAYy9C,YAAY5E,UAAUp3D,EAAG4C,KAAK,MAAQ,EAAG5C,EAAG4C,KAAK,MAAQ,KAElF5C,EAAGi8D,SACHj8D,EAAKA,EAAGi8D,aACL,CACH,IAAI3uE,EAAO0S,EAAG4C,KAAK,cACnB5C,EAAKA,EAAGi8D,SAAWj8D,EAAGggB,KAAK8N,cAAcltB,eAAetT,EAAK6M,UAAU7M,EAAKmG,QAAQ,KAAO,IAGnG,IAAI87D,EAAIvvD,EAAGuvD,EACP2M,EAAa9hD,EAAK/rB,KAAKmQ,IAAIwB,EAAGuN,OAAS6M,EAAK/rB,KAAKmQ,IAAI29D,MACzD,IACI,OAAIN,GACAtM,EAAE6M,OAASF,EAAa9hD,EAAK/rB,KAAKupE,QAAQ53D,EAAGq8D,SAAWH,EAAWl8D,IAAOoa,EAAKm1C,EAAE0L,IAAIj7D,EAAGggB,KAAK43C,WACtFx9C,EAAKm1C,EAAE0L,IAAI1L,EAAE6M,UAEpBp8D,EAAGq8D,SAAWH,EAAWl8D,GACzBA,EAAGs8D,OAASt8D,EAAGue,YAAYy9C,YAC3BzM,EAAEsH,KAAOz8C,EAAK/rB,KAAKupE,QAAQx9C,EAAK/rB,KAAKyN,IAAIkE,EAAGq8D,SAAUtoD,EAAEknC,IAAIj7C,EAAGs8D,UACxDliD,EAAKm1C,EAAE0L,IAAI1L,EAAEsH,OAE1B,MAAOxiE,GAEL,OAAO+lB,EAAKm1C,EAAE0L,QAGtB,IAAIsB,EAAa,WACb,OAAOjxE,KAAKoZ,QAEhB,SAAS83D,EAAiBx8D,EAAI02D,GAC1B,GAAY,MAARA,EAAc,CACd,IAAI+F,GAAW,EAQf,KANI/F,EADW,kBAAX12D,EAAGuN,MAAuC,kBAAXvN,EAAGuN,KAC3BvN,EAAGggB,KAAKhlB,aAAa,qBACV,WAAXgF,EAAGuN,KACHvN,EAAGggB,KAAKhlB,aAAa,oBAErBgF,EAAGggB,KAAKhlB,aAAa,cAG5B,OAAO,IAAIof,EAAK28C,OAEpBL,EAAOt8C,EAAKm1C,EAAEkH,oBAAoBC,QAK9BA,EAHCt8C,EAAKm1C,EAAEoH,YAAYpsD,KAAKmsD,GAGlBjH,EAAIiH,GAAMxpE,QAAQ,gBAAiB8S,EAAGuvD,EAAEhxC,WAAa,IAFrDnE,EAAKm1C,EAAEkH,oBAAoBC,GAIlCv8B,EAAGu8B,EAAM,WACTA,EAAOt8C,EAAK/rB,KAAO+rB,EAAK/rB,KAAKmJ,SAASpM,KAAKsrE,GAAQjH,EAAIiH,IAE3D12D,EAAGuvD,EAAEhxC,UAAYm4C,EAErB,IAAI3iD,EAAIqG,EAAKm1C,EAAEqH,iBAAiBF,EAAM12D,EAAG43D,QAAQ,IACjD,GAAI6E,EACA,OAAO1oD,EAEP/T,EAAGs8D,OAASvoD,EAuBpB4nD,EAAQp9C,UAAY,SAAUm4C,GAC1B,IAAInH,EAAIjkE,KAAKikE,EACb,GAAY,MAARmH,EAAc,CAUd,IATA,IAKI7rE,EALA6xE,EAAOpxE,KACPu1B,EAAS,IAAIzG,EAAK28C,OAAOzrE,KAAK00B,KAAK28C,UACnCC,EAAQJ,EAAiBlxE,MACzBuxE,EAAK,CAACD,GACN7oD,EAAI,IAAIqG,EAAK28C,OAEb+F,EAAcF,EAAMG,oBACpBr4D,EAAS+qD,EAAImN,IAAUnN,EAAInkE,KAAKgxE,QACpB7M,EAAIF,EAAEhxC,WAAau+C,EACf,OAAbJ,EAAKnvD,OAAkBmvD,EAAOA,EAAKj+D,WACtCo+D,EAAGznE,KAAKonE,EAAiBE,IAG7B,IADA7xE,EAAIgyE,EAAG9xE,OACAF,KACHkpB,EAAEknC,IAAI4hB,EAAGhyE,IAEb,MAAO,CACH6Z,OAAQA,EACRs4D,aAAcn8C,EACdo8C,YAAalpD,EACbioD,YAAaY,EACbM,WAAYr8C,EAAOkxC,QAAQ9W,IAAI2hB,EAAMzF,UACrCt2C,OAAQA,EAAOk8C,oBACf38C,MAAOrM,EAAEgpD,oBACTH,MAAOE,EACPtlE,SAAU+kE,GAoBlB,OAjBI7F,aAAgBt8C,EAAK28C,QACrBzrE,KAAKgxE,OAAS5F,EACdprE,KAAKikE,EAAEhxC,UAAYm4C,EAAKqG,qBAExBP,EAAiBlxE,KAAMorE,GAGvBprE,KAAK00B,OACY,kBAAb10B,KAAKiiB,MAAyC,kBAAbjiB,KAAKiiB,KACtCojD,EAAErlE,KAAK00B,KAAM,CAACm9C,kBAAmB7xE,KAAKgxE,SAClB,WAAbhxE,KAAKiiB,KACZojD,EAAErlE,KAAK00B,KAAM,CAACo9C,iBAAkB9xE,KAAKgxE,SAErC3L,EAAErlE,KAAK00B,KAAM,CAACzB,UAAWjzB,KAAKgxE,UAI/BhxE,MAUXqwE,EAAQl9D,OAAS,WACb,OAAO0wD,EAAK7jE,KAAK00B,KAAKmS,aAiB1BwpC,EAAQ0B,OAAS1B,EAAQ1gB,IAAM,SAAUj7C,GACrC,GAAIA,EAAI,CACJ,GAAe,OAAXA,EAAGuN,KAAe,CAClB,IAAI+vD,EAAKhyE,KAIT,OAHA0U,EAAGtK,SAAQ,SAAUsK,GACjBs9D,EAAGriB,IAAIj7C,MAEJ1U,KAEX0U,EAAKmvD,EAAKnvD,GACV1U,KAAK00B,KAAKoP,YAAYpvB,EAAGggB,MACzBhgB,EAAGm4D,MAAQ7sE,KAAK6sE,MAEpB,OAAO7sE,MAWXqwE,EAAQ4B,SAAW,SAAUv9D,GAKzB,OAJIA,IACAA,EAAKmvD,EAAKnvD,IACPq9D,OAAO/xE,MAEPA,MAWXqwE,EAAQ6B,QAAU,SAAUx9D,GACxB,GAAIA,EAAI,CACJ,GAAe,OAAXA,EAAGuN,KAAe,CAClB,IACIkwD,EADAH,EAAKhyE,KAUT,OARA0U,EAAGtK,SAAQ,SAAUsK,GACby9D,EACAA,EAAMvJ,MAAMl0D,GAEZs9D,EAAGE,QAAQx9D,GAEfy9D,EAAQz9D,KAEL1U,KAGX,IAAImT,GADJuB,EAAKmvD,EAAKnvD,IACMvB,SAChBnT,KAAK00B,KAAKy6B,aAAaz6C,EAAGggB,KAAM10B,KAAK00B,KAAKkP,YAC1C5jC,KAAK2vD,KAAO3vD,KAAK2vD,MACjBj7C,EAAGm4D,MAAQ7sE,KAAK6sE,MAChB7sE,KAAKmT,UAAYnT,KAAKmT,SAASw8C,MAC/Bx8C,GAAUA,EAAOw8C,MAErB,OAAO3vD,MAWXqwE,EAAQ+B,UAAY,SAAU19D,GAG1B,OAFAA,EAAKmvD,EAAKnvD,IACPw9D,QAAQlyE,MACJA,MAWXqwE,EAAQ1H,OAAS,SAAUj0D,GACvB,GAAe,OAAXA,EAAGuN,KAAe,CAClB,IAAI+vD,EAAKhyE,KAOT,OANA0U,EAAGtK,SAAQ,SAAUsK,GACjB,IAAIvB,EAASuB,EAAGvB,SAChB6+D,EAAGt9C,KAAKmS,WAAWsoB,aAAaz6C,EAAGggB,KAAMs9C,EAAGt9C,MAC5CvhB,GAAUA,EAAOw8C,SAErB3vD,KAAKmT,SAASw8C,MACP3vD,KAGX,IAAImT,GADJuB,EAAKmvD,EAAKnvD,IACMvB,SAKhB,OAJAnT,KAAK00B,KAAKmS,WAAWsoB,aAAaz6C,EAAGggB,KAAM10B,KAAK00B,MAChD10B,KAAKmT,UAAYnT,KAAKmT,SAASw8C,MAC/Bx8C,GAAUA,EAAOw8C,MACjBj7C,EAAGm4D,MAAQ7sE,KAAK6sE,MACT7sE,MAWXqwE,EAAQzH,MAAQ,SAAUl0D,GAEtB,IAAIvB,GADJuB,EAAKmvD,EAAKnvD,IACMvB,SAShB,OARInT,KAAK00B,KAAK0a,YACVpvC,KAAK00B,KAAKmS,WAAWsoB,aAAaz6C,EAAGggB,KAAM10B,KAAK00B,KAAK0a,aAErDpvC,KAAK00B,KAAKmS,WAAW/C,YAAYpvB,EAAGggB,MAExC10B,KAAKmT,UAAYnT,KAAKmT,SAASw8C,MAC/Bx8C,GAAUA,EAAOw8C,MACjBj7C,EAAGm4D,MAAQ7sE,KAAK6sE,MACT7sE,MAWXqwE,EAAQlhB,aAAe,SAAUz6C,GAC7BA,EAAKmvD,EAAKnvD,GACV,IAAIvB,EAASnT,KAAKmT,SAKlB,OAJAuB,EAAGggB,KAAKmS,WAAWsoB,aAAanvD,KAAK00B,KAAMhgB,EAAGggB,MAC9C10B,KAAK6sE,MAAQn4D,EAAGm4D,MAChB15D,GAAUA,EAAOw8C,MACjBj7C,EAAGvB,UAAYuB,EAAGvB,SAASw8C,MACpB3vD,MAWXqwE,EAAQgC,YAAc,SAAU39D,GAC5BA,EAAKmvD,EAAKnvD,GACV,IAAIvB,EAASnT,KAAKmT,SAKlB,OAJAuB,EAAGggB,KAAKmS,WAAWsoB,aAAanvD,KAAK00B,KAAMhgB,EAAGggB,KAAK0a,aACnDpvC,KAAK6sE,MAAQn4D,EAAGm4D,MAChB15D,GAAUA,EAAOw8C,MACjBj7C,EAAGvB,UAAYuB,EAAGvB,SAASw8C,MACpB3vD,MASXqwE,EAAQ1oD,OAAS,WACb,IAAIxU,EAASnT,KAAKmT,SAKlB,OAJAnT,KAAK00B,KAAKmS,YAAc7mC,KAAK00B,KAAKmS,WAAWhD,YAAY7jC,KAAK00B,aACvD10B,KAAK6sE,MACZ7sE,KAAKywE,SAAU,EACft9D,GAAUA,EAAOw8C,MACV3vD,MAWXqwE,EAAQj5D,OAAS,SAAUo2D,GACvB,OAAO3J,EAAK7jE,KAAK00B,KAAKjlB,cAAc+9D,KAWxC6C,EAAQ5C,UAAY,SAAUD,GAG1B,IAFA,IAAIE,EAAW1tE,KAAK00B,KAAKwhC,iBAAiBsX,GACtCh5D,GAAOsa,EAAKta,KAAOjN,SACdhI,EAAI,EAAGA,EAAImuE,EAASjuE,OAAQF,IACjCiV,EAAI1K,KAAK+5D,EAAK6J,EAASnuE,KAE3B,OAAOiV,GAYX67D,EAAQiC,KAAO,SAAUh7D,EAAMhU,GAI3B,OAHa,MAATA,IACAA,EAAQtD,KAAKsX,KAAKA,KAEdg5D,EAAQtwE,KAAMsX,EAAMhU,IAWhC+sE,EAAQkC,IAAM,WACV,IAAIA,EACAp9D,EAAKnV,KAAK00B,KAAKvf,GAiBnB,OAhBKA,IACDA,EAAKnV,KAAKmV,GACVkwD,EAAErlE,KAAK00B,KAAM,CACTvf,GAAIA,KAKRo9D,EAFa,kBAAbvyE,KAAKiiB,MAAyC,kBAAbjiB,KAAKiiB,MACzB,WAAbjiB,KAAKiiB,KACCgrD,EAAKjtE,KAAKiiB,KAAMjiB,KAAK00B,KAAKmS,YAE1BomC,EAAK,MAAOjtE,KAAK00B,KAAKmS,YAEhCw+B,EAAEkN,EAAI79C,KAAM,CACR,aAAc,IAAMvf,IAExBo9D,EAAI5B,SAAW3wE,KACRuyE,GAwEXlC,EAAQ5J,MAAQ,WACZ,IAAIA,EAAQ5C,EAAK7jE,KAAK00B,KAAK89C,WAAU,IAMrC,OALInN,EAAEoB,EAAM/xC,KAAM,OACd2wC,EAAEoB,EAAM/xC,KAAM,CAACvf,GAAIsxD,EAAMtxD,KAzEjC,SAAgBT,GACZ,IACIs9D,EADAS,EAAM/9D,EAAG+4D,UAAU,KAEnB9+D,EAAM,8BACN+jE,EAAM,GACNC,EAAO,GACX,SAASC,EAAQZ,EAAI91D,GACjB,IAAI6O,EAAMs6C,EAAE2M,EAAGt9C,KAAMxY,IAErB6O,GADAA,EAAMA,GAAOA,EAAI9nB,MAAM0L,KACVoc,EAAI,KACU,KAAhBA,EAAIplB,WACXolB,EAAMA,EAAIlc,UAAU,MAKpB8jE,EAAK5nD,IAAQ4nD,EAAK5nD,IAAQ,IAAIpkB,QAAO,SAAUwO,GAC3C,IAAImC,EAAO,GACXA,EAAK4E,GAAQ4S,EAAKngB,IAAIwG,GACtBkwD,EAAE2M,EAAGt9C,KAAMpd,OAIvB,SAASu7D,EAASb,GACd,IAAIjnD,EAAMs6C,EAAE2M,EAAGt9C,KAAM,cACjB3J,GAAuB,KAAhBA,EAAIplB,WACXolB,EAAMA,EAAIlc,UAAU,MAKpB8jE,EAAK5nD,IAAQ4nD,EAAK5nD,IAAQ,IAAIpkB,QAAO,SAAUwO,GAC3C68D,EAAG16D,KAAK,aAAc,IAAMnC,OAIxC,IAAK,IAAI5V,EAAI,EAAG2sD,EAAKumB,EAAIhzE,OAAQF,EAAI2sD,EAAI3sD,IAAK,CAE1CqzE,EADAZ,EAAKS,EAAIlzE,GACG,QACZqzE,EAAQZ,EAAI,UACZY,EAAQZ,EAAI,UACZY,EAAQZ,EAAI,QACZY,EAAQZ,EAAI,aACZa,EAASb,GACT,IAAIc,EAAQzN,EAAE2M,EAAGt9C,KAAM,MACnBo+C,IACAzN,EAAE2M,EAAGt9C,KAAM,CAACvf,GAAI68D,EAAG78D,KACnBu9D,EAAI5oE,KAAK,CACLipE,IAAKD,EACL39D,GAAI68D,EAAG78D,MAInB,IAAK5V,EAAI,EAAG2sD,EAAKwmB,EAAIjzE,OAAQF,EAAI2sD,EAAI3sD,IAAK,CACtC,IAAIyzE,EAAKL,EAAKD,EAAInzE,GAAGwzE,KACrB,GAAIC,EACA,IAAK,IAAI9oD,EAAI,EAAG64C,EAAKiQ,EAAGvzE,OAAQyqB,EAAI64C,EAAI74C,IACpC8oD,EAAG9oD,GAAGwoD,EAAInzE,GAAG4V,KAkBzB89D,CAAOxM,GACPA,EAAM4L,YAAYryE,MACXymE,GAUX4J,EAAQ6C,OAAS,WAGb,OAFW5F,EAAYttE,MAClB8jC,YAAY9jC,KAAK00B,MACf10B,MAyBXqwE,EAAQnnD,QAAUmnD,EAAQ8C,UAAY,SAAU93D,EAAGC,EAAGnF,EAAO4B,GACzD,IAAIue,EAAI22C,EAAK,UAAWK,EAAYttE,OAoBpC,OAnBS,MAALqb,IACAA,EAAIrb,KAAKssE,WAETz9B,EAAGxzB,EAAG,WAAa,MAAOA,IAC1BC,EAAID,EAAEC,EACNnF,EAAQkF,EAAElF,MACV4B,EAASsD,EAAEtD,OACXsD,EAAIA,EAAEA,GAEVgqD,EAAE/uC,EAAE5B,KAAM,CACNrZ,EAAGA,EACHC,EAAGA,EACHnF,MAAOA,EACP4B,OAAQA,EACRq7D,aAAc,iBACdj+D,GAAImhB,EAAEnhB,GACN6C,QAAS,CAACqD,EAAGC,EAAGnF,EAAO4B,GAAQ9Q,KAAK,OAExCqvB,EAAE5B,KAAKoP,YAAY9jC,KAAK00B,MACjB4B,GAqBX+5C,EAAQgD,OAAS,SAAUh4D,EAAGC,EAAGnF,EAAO4B,EAAQu7D,EAAMC,GAClD,IAAIj9C,EAAI22C,EAAK,SAAUK,EAAYttE,OAsBnC,OArBS,MAALqb,IACAA,EAAIrb,KAAKssE,WAETz9B,EAAGxzB,EAAG,WAAa,MAAOA,IAC1BC,EAAID,EAAEC,EACNnF,EAAQkF,EAAElF,MACV4B,EAASsD,EAAEtD,OACXu7D,EAAOj4D,EAAEi4D,MAAQj4D,EAAEm4D,GACnBD,EAAOl4D,EAAEk4D,MAAQl4D,EAAEo4D,GACnBp4D,EAAIA,EAAEA,GAEVgqD,EAAE/uC,EAAE5B,KAAM,CACN1c,QAAS,CAACqD,EAAGC,EAAGnF,EAAO4B,GAAQ9Q,KAAK,KACpCysE,YAAav9D,EACbw9D,aAAc57D,EACd67D,OAAQ,OACRN,KAAMA,GAAQ,EACdC,KAAMA,GAAQ,EACdp+D,GAAImhB,EAAEnhB,KAEVmhB,EAAE5B,KAAKoP,YAAY9jC,KAAK00B,MACjB4B,GAEX,IAAIu9C,EAAS,GAqFb,SAAS3nE,EAAS+V,GACd,OAAO,WACH,IAAImG,EAAMnG,EAAO,IAAMjiB,KAAKiiB,KAAO,GAC/B3K,EAAOtX,KAAK00B,KAAKk5C,WACjBkG,EAAO9zE,KAAK00B,KAAKi4C,WACrB,GAAI1qD,EACA,IAAK,IAAI1iB,EAAI,EAAG2sD,EAAK50C,EAAK7X,OAAQF,EAAI2sD,EAAI3sD,IACtC6oB,GAAO,IAAM9Q,EAAK/X,GAAG2c,KAAO,KACpB5E,EAAK/X,GAAG+D,MAAM1B,QAAQ,KAAM,OAAS,IAGrD,GAAIkyE,EAAKr0E,OAAQ,CAEb,IADAwiB,IAASmG,GAAO,KACX7oB,EAAI,EAAG2sD,EAAK4nB,EAAKr0E,OAAQF,EAAI2sD,EAAI3sD,IACV,GAApBu0E,EAAKv0E,GAAG2gB,SACRkI,GAAO0rD,EAAKv0E,GAAG0kC,UACY,GAApB6vC,EAAKv0E,GAAG2gB,WACfkI,GAAOy7C,EAAKiQ,EAAKv0E,IAAI2M,YAG7B+V,IAASmG,GAAO,KAAOpoB,KAAKiiB,KAAO,UAEnCA,IAASmG,GAAO,MAEpB,OAAOA,GArFfioD,EAAQ3mD,KAAO,SAAU/pB,EAAK2D,GAC1B,IAAIomB,EAAOmqD,EAAO7zE,KAAKmV,IAAM0+D,EAAO7zE,KAAKmV,KAAO,GAChD,GAAwB,GAApB3V,UAAUC,OAEV,OADAkiE,IAAI,iBAAmB3hE,KAAKmV,GAAInV,KAAM0pB,EAAM,MACrCA,EAEX,GAAwB,GAApBlqB,UAAUC,OAAa,CACvB,GAAIqvB,EAAK+f,GAAGlvC,EAAK,UAAW,CACxB,IAAK,IAAIJ,KAAKI,EAASA,EAAIgoC,GAAKpoC,IAC5BS,KAAK0pB,KAAKnqB,EAAGI,EAAIJ,IAErB,OAAOS,KAGX,OADA2hE,IAAI,iBAAmB3hE,KAAKmV,GAAInV,KAAM0pB,EAAK/pB,GAAMA,GAC1C+pB,EAAK/pB,GAIhB,OAFA+pB,EAAK/pB,GAAO2D,EACZq+D,IAAI,iBAAmB3hE,KAAKmV,GAAInV,KAAMsD,EAAO3D,GACtCK,MAWXqwE,EAAQ0D,WAAa,SAAUp0E,GAM3B,OALW,MAAPA,EACAk0E,EAAO7zE,KAAKmV,IAAM,GAElB0+D,EAAO7zE,KAAKmV,YAAc0+D,EAAO7zE,KAAKmV,IAAIxV,GAEvCK,MAiBXqwE,EAAQ2D,SAAW3D,EAAQnkE,SAAWA,EAAS,GAQ/CmkE,EAAQ4D,SAAW/nE,IA4BnBmkE,EAAQ6D,UAAY,WAChB,GAAI5pE,QAAUA,OAAO6pE,KAAM,CACvB,IAAIr0C,EAAK9/B,KAAKssE,UACVt1D,EAAM8X,EAAKm3C,OAAO,yLAA0L,CAC5M5qD,GAAIykB,EAAGzkB,EAAE6uD,QAAQ,GACjB5uD,GAAIwkB,EAAGxkB,EAAE4uD,QAAQ,GACjB/zD,OAAQ2pB,EAAG3pB,MAAM+zD,QAAQ,GACzBnyD,QAAS+nB,EAAG/nB,OAAOmyD,QAAQ,GAC3BkK,SAAUp0E,KAAKg0E,aAEnB,MAAO,6BAA+BG,KAAKE,SAASxqD,mBAAmB7S,OAS/E+iB,EAASn6B,UAAUwX,OAASi5D,EAAQj5D,OAOpC2iB,EAASn6B,UAAU6tE,UAAY4C,EAAQ5C,aAgB3C3+C,EAAKshD,QAAO,SAAUthD,EAAMhrB,EAASkgE,EAAOF,EAAM/pC,GAC9C,IAAIkiC,EAAiB78D,OAAOQ,UAAUsM,SAClCi4D,EAAMl5C,OACNq5C,EAAOt4D,KAEX,SAASy/D,EAAOpkE,EAAGC,EAAG0Z,EAAG9I,EAAGnP,EAAGqvB,GAC3B,GAAS,MAAL9wB,GAAuC,sBAA1B20D,EAAen8D,KAAKuH,GAOjC,OANArH,KAAKqH,EAAIA,EAAEA,EACXrH,KAAKsH,EAAID,EAAEC,EACXtH,KAAKghB,EAAI3Z,EAAE2Z,EACXhhB,KAAKkY,EAAI7Q,EAAE6Q,EACXlY,KAAK+I,EAAI1B,EAAE0B,OACX/I,KAAKo4B,EAAI/wB,EAAE+wB,GAGN,MAAL/wB,GACArH,KAAKqH,GAAKA,EACVrH,KAAKsH,GAAKA,EACVtH,KAAKghB,GAAKA,EACVhhB,KAAKkY,GAAKA,EACVlY,KAAK+I,GAAKA,EACV/I,KAAKo4B,GAAKA,IAEVp4B,KAAKqH,EAAI,EACTrH,KAAKsH,EAAI,EACTtH,KAAKghB,EAAI,EACThhB,KAAKkY,EAAI,EACTlY,KAAK+I,EAAI,EACT/I,KAAKo4B,EAAI,IAGjB,SAAWk8C,GA4MP,SAASC,EAAKltE,GACV,OAAOA,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAElC,SAASmtE,EAAUntE,GACf,IAAIotE,EAAMnQ,EAAKhB,KAAKiR,EAAKltE,IACzBA,EAAE,KAAOA,EAAE,IAAMotE,GACjBptE,EAAE,KAAOA,EAAE,IAAMotE,GAnMrBH,EAAY3kB,IAAM,SAAUtoD,EAAGC,EAAG0Z,EAAG9I,EAAGnP,EAAGqvB,GACvC,GAAI/wB,GAAKA,aAAaokE,EAClB,OAAOzrE,KAAK2vD,IAAItoD,EAAEA,EAAGA,EAAEC,EAAGD,EAAE2Z,EAAG3Z,EAAE6Q,EAAG7Q,EAAE0B,EAAG1B,EAAE+wB,GAE/C,IAAIs8C,EAAOrtE,EAAIrH,KAAKqH,EAAIC,EAAItH,KAAKghB,EAC7B2zD,EAAOttE,EAAIrH,KAAKsH,EAAIA,EAAItH,KAAKkY,EAQjC,OAPAlY,KAAK+I,GAAKA,EAAI/I,KAAKqH,EAAI+wB,EAAIp4B,KAAKghB,EAChChhB,KAAKo4B,GAAKrvB,EAAI/I,KAAKsH,EAAI8wB,EAAIp4B,KAAKkY,EAChClY,KAAKghB,EAAIA,EAAIhhB,KAAKqH,EAAI6Q,EAAIlY,KAAKghB,EAC/BhhB,KAAKkY,EAAI8I,EAAIhhB,KAAKsH,EAAI4Q,EAAIlY,KAAKkY,EAE/BlY,KAAKqH,EAAIqtE,EACT10E,KAAKsH,EAAIqtE,EACF30E,MAgBXyrE,EAAO7rE,UAAUg1E,SAAW,SAAUvtE,EAAGC,EAAG0Z,EAAG9I,EAAGnP,EAAGqvB,GACjD,GAAI/wB,GAAKA,aAAaokE,EAClB,OAAOzrE,KAAK40E,SAASvtE,EAAEA,EAAGA,EAAEC,EAAGD,EAAE2Z,EAAG3Z,EAAE6Q,EAAG7Q,EAAE0B,EAAG1B,EAAE+wB,GAEpD,IAAIs8C,EAAOrtE,EAAIrH,KAAKqH,EAAI2Z,EAAIhhB,KAAKsH,EAC7ButE,EAAOxtE,EAAIrH,KAAKghB,EAAIA,EAAIhhB,KAAKkY,EAC7B48D,EAAOztE,EAAIrH,KAAK+I,EAAIiY,EAAIhhB,KAAKo4B,EAAIrvB,EAQrC,OAPA/I,KAAKsH,EAAIA,EAAItH,KAAKqH,EAAI6Q,EAAIlY,KAAKsH,EAC/BtH,KAAKkY,EAAI5Q,EAAItH,KAAKghB,EAAI9I,EAAIlY,KAAKkY,EAC/BlY,KAAKo4B,EAAI9wB,EAAItH,KAAK+I,EAAImP,EAAIlY,KAAKo4B,EAAIA,EAEnCp4B,KAAKqH,EAAIqtE,EACT10E,KAAKghB,EAAI6zD,EACT70E,KAAK+I,EAAI+rE,EACF90E,MASXs0E,EAAYzI,OAAS,WACjB,IAAIz4B,EAAKpzC,KACLqb,EAAI+3B,EAAG/rC,EAAI+rC,EAAGl7B,EAAIk7B,EAAG9rC,EAAI8rC,EAAGpyB,EAChC,OAAO,IAAIyqD,EAAOr4B,EAAGl7B,EAAImD,GAAI+3B,EAAG9rC,EAAI+T,GAAI+3B,EAAGpyB,EAAI3F,EAAG+3B,EAAG/rC,EAAIgU,GAAI+3B,EAAGpyB,EAAIoyB,EAAGhb,EAAIgb,EAAGl7B,EAAIk7B,EAAGrqC,GAAKsS,GAAI+3B,EAAG9rC,EAAI8rC,EAAGrqC,EAAIqqC,EAAG/rC,EAAI+rC,EAAGhb,GAAK/c,IAS/Hi5D,EAAY7N,MAAQ,WAChB,OAAO,IAAIgF,EAAOzrE,KAAKqH,EAAGrH,KAAKsH,EAAGtH,KAAKghB,EAAGhhB,KAAKkY,EAAGlY,KAAK+I,EAAG/I,KAAKo4B,IAUnEk8C,EAAYxI,UAAY,SAAUzwD,EAAGC,GAGjC,OAFAtb,KAAK+I,GAAKsS,EAAIrb,KAAKqH,EAAIiU,EAAItb,KAAKghB,EAChChhB,KAAKo4B,GAAK/c,EAAIrb,KAAKsH,EAAIgU,EAAItb,KAAKkY,EACzBlY,MAaXs0E,EAAYtI,MAAQ,SAAU3wD,EAAGC,EAAGk4D,EAAIC,GAQpC,OAPK,MAALn4D,IAAcA,EAAID,IACjBm4D,GAAMC,IAAOzzE,KAAK8rE,UAAU0H,EAAIC,GACjCzzE,KAAKqH,GAAKgU,EACVrb,KAAKsH,GAAK+T,EACVrb,KAAKghB,GAAK1F,EACVtb,KAAKkY,GAAKoD,GACTk4D,GAAMC,IAAOzzE,KAAK8rE,WAAW0H,GAAKC,GAC5BzzE,MAWXs0E,EAAYvI,OAAS,SAAU1kE,EAAGgU,EAAGC,GACjCjU,EAAIynB,EAAKi3C,IAAI1+D,GACbgU,EAAIA,GAAK,EACTC,EAAIA,GAAK,EACT,IAAIsrD,GAAOtC,EAAKsC,IAAIv/D,GAAG6iE,QAAQ,GAC3BxG,GAAOY,EAAKZ,IAAIr8D,GAAG6iE,QAAQ,GAE/B,OADAlqE,KAAK2vD,IAAIiX,EAAKlD,GAAMA,EAAKkD,EAAKvrD,EAAGC,GAC1Btb,KAAK2vD,IAAI,EAAG,EAAG,EAAG,GAAIt0C,GAAIC,IASrCg5D,EAAYS,MAAQ,SAAU15D,GAC1B,OAAOrb,KAAKg1E,KAAK35D,EAAG,IASxBi5D,EAAYW,MAAQ,SAAU35D,GAC1B,OAAOtb,KAAKg1E,KAAK,EAAG15D,IAUxBg5D,EAAYU,KAAO,SAAU35D,EAAGC,GAC5BD,EAAIA,GAAK,EACTC,EAAIA,GAAK,EACTD,EAAIyT,EAAKi3C,IAAI1qD,GACbC,EAAIwT,EAAKi3C,IAAIzqD,GACb,IAAI0F,EAAIsjD,EAAKqC,IAAItrD,GAAG6uD,QAAQ,GACxB5iE,EAAIg9D,EAAKqC,IAAIrrD,GAAG4uD,QAAQ,GAC5B,OAAOlqE,KAAK2vD,IAAI,EAAGroD,EAAG0Z,EAAG,EAAG,EAAG,IAWnCszD,EAAYj5D,EAAI,SAAUA,EAAGC,GACzB,OAAOD,EAAIrb,KAAKqH,EAAIiU,EAAItb,KAAKghB,EAAIhhB,KAAK+I,GAW1CurE,EAAYh5D,EAAI,SAAUD,EAAGC,GACzB,OAAOD,EAAIrb,KAAKsH,EAAIgU,EAAItb,KAAKkY,EAAIlY,KAAKo4B,GAE1Ck8C,EAAYphE,IAAM,SAAU3T,GACxB,OAAQS,KAAKmkE,EAAIh5C,aAAa,GAAK5rB,IAAI2qE,QAAQ,IAEnDoK,EAAYpoE,SAAW,WACnB,MAAO,UAAY,CAAClM,KAAKkT,IAAI,GAAIlT,KAAKkT,IAAI,GAAIlT,KAAKkT,IAAI,GAAIlT,KAAKkT,IAAI,GAAIlT,KAAKkT,IAAI,GAAIlT,KAAKkT,IAAI,IAAIjM,OAAS,KAE/GqtE,EAAYl0D,OAAS,WACjB,MAAO,CAACpgB,KAAK+I,EAAEmhE,QAAQ,GAAIlqE,KAAKo4B,EAAE8xC,QAAQ,KAiB9CoK,EAAYY,YAAc,WACtB,OAAOl1E,KAAKqH,EAAIrH,KAAKkY,EAAIlY,KAAKsH,EAAItH,KAAKghB,GAgB3CszD,EAAYhuE,MAAQ,WAChB,IAAI8jE,EAAM,GAEVA,EAAIzC,GAAK3nE,KAAK+I,EACdqhE,EAAIxC,GAAK5nE,KAAKo4B,EAGd,IAAI+8C,EAAM,CAAC,CAACn1E,KAAKqH,EAAGrH,KAAKsH,GAAI,CAACtH,KAAKghB,EAAGhhB,KAAKkY,IAC3CkyD,EAAIgL,OAAS9Q,EAAKhB,KAAKiR,EAAKY,EAAI,KAChCX,EAAUW,EAAI,IAEd/K,EAAIiL,MAAQF,EAAI,GAAG,GAAKA,EAAI,GAAG,GAAKA,EAAI,GAAG,GAAKA,EAAI,GAAG,GACvDA,EAAI,GAAK,CAACA,EAAI,GAAG,GAAKA,EAAI,GAAG,GAAK/K,EAAIiL,MAAOF,EAAI,GAAG,GAAKA,EAAI,GAAG,GAAK/K,EAAIiL,OAEzEjL,EAAIkL,OAAShR,EAAKhB,KAAKiR,EAAKY,EAAI,KAChCX,EAAUW,EAAI,IACd/K,EAAIiL,OAASjL,EAAIkL,OAEbt1E,KAAKk1E,cAAgB,IACrB9K,EAAIgL,QAAUhL,EAAIgL,QAItB,IAAI1R,EAAMyR,EAAI,GAAG,GACbvO,EAAMuO,EAAI,GAAG,GAajB,OAZIvO,EAAM,GACNwD,EAAI2B,OAASj9C,EAAKk3C,IAAI1B,EAAKyC,KAAKH,IAC5BlD,EAAM,IACN0G,EAAI2B,OAAS,IAAM3B,EAAI2B,SAG3B3B,EAAI2B,OAASj9C,EAAKk3C,IAAI1B,EAAKuC,KAAKnD,IAGpC0G,EAAImL,WAAanL,EAAIiL,MAAMnL,QAAQ,KAAOE,EAAIgL,OAAOlL,QAAQ,IAAME,EAAIkL,OAAOpL,QAAQ,KAAOE,EAAI2B,QACjG3B,EAAIoL,gBAAkBpL,EAAIiL,MAAMnL,QAAQ,IAAME,EAAIgL,OAAOlL,QAAQ,IAAME,EAAIkL,OAAOpL,QAAQ,KAAOE,EAAI2B,OACrG3B,EAAIqL,aAAerL,EAAIiL,MAAMnL,QAAQ,KAAOE,EAAI2B,OACzC3B,GASXkK,EAAY7C,kBAAoB,SAAUiE,GACtC,IAAIxuD,EAAIwuD,GAAW11E,KAAKsG,QACxB,OAAM4gB,EAAEmuD,MAAMnL,QAAQ,GAQX,IAAM,CAAClqE,KAAKkT,IAAI,GAAIlT,KAAKkT,IAAI,GAAIlT,KAAKkT,IAAI,GAAIlT,KAAKkT,IAAI,GAAIlT,KAAKkT,IAAI,GAAIlT,KAAKkT,IAAI,KAPxFgU,EAAEkuD,QAAUluD,EAAEkuD,OAAOlL,QAAQ,GAC7BhjD,EAAEouD,QAAUpuD,EAAEouD,OAAOpL,QAAQ,GAC7BhjD,EAAE6kD,QAAU7kD,EAAE6kD,OAAO7B,QAAQ,IACpBhjD,EAAEygD,IAAMzgD,EAAE0gD,GAAK,IAAM,EAAE1gD,EAAEygD,GAAGuC,QAAQ,IAAKhjD,EAAE0gD,GAAGsC,QAAQ,IA3TnE,KA4TahjD,EAAE6kD,OAAS,IAAM,EAAE7kD,EAAE6kD,OAAO7B,QAAQ,GAAI,EAAG,GA5TxD,KA6TyB,GAAZhjD,EAAEkuD,QAA2B,GAAZluD,EAAEouD,OAAc,IAAM,CAACpuD,EAAEkuD,OAAQluD,EAAEouD,OAAQ,EAAG,GA7T5E,MA2BR,CAuSG7J,EAAO7rE,WAQVkvB,EAAK28C,OAASA,EAkBd38C,EAAKkiD,OAAS,SAAU3pE,EAAGC,EAAG0Z,EAAG9I,EAAGnP,EAAGqvB,GACnC,OAAO,IAAIqzC,EAAOpkE,EAAGC,EAAG0Z,EAAG9I,EAAGnP,EAAGqvB,OAiBzCtJ,EAAKshD,QAAO,SAAUthD,EAAMhrB,EAASkgE,EAAOF,EAAM/pC,GAC9C,IA8CW47C,EA7CP1I,EAAOn+C,EAAKm1C,EAAEgJ,KACdpJ,EAAO/0C,EAAKm1C,EAAEJ,KACdh1B,EAAK/f,EAAK+f,GACVy+B,EAAcx+C,EAAKm1C,EAAEqJ,YACrBsI,EAAa,4BACbvQ,EAAIv2C,EAAKm1C,EAAEoB,EACXwQ,EAAM/mD,EAAKngB,IACXw1D,EAAMl5C,OACN05C,EAAY71C,EAAKm1C,EAAEU,UAqEvB,SAASmR,EAAW55D,GAChB,OAAO,SAAU5Y,GAUb,GATAq+D,IAAIuB,OACA5/D,aAAiBy2B,GAA4C,GAAhCz2B,EAAMoxB,KAAKi4C,WAAWltE,SACjB,kBAAjC6D,EAAMoxB,KAAKkP,WAAWhQ,SACU,kBAAjCtwB,EAAMoxB,KAAKkP,WAAWhQ,SACW,WAAjCtwB,EAAMoxB,KAAKkP,WAAWhQ,WACtBtwB,EAAQA,EAAMoxB,KAAKkP,WACnB0pC,EAAYttE,MAAM8jC,YAAYxgC,GAC9BA,EAAQugE,EAAKvgE,IAEbA,aAAiBQ,EACjB,GAAkB,kBAAdR,EAAM2e,MAA0C,kBAAd3e,EAAM2e,MACxB,WAAd3e,EAAM2e,KAAmB,CACtB3e,EAAMoxB,KAAKvf,IACZkwD,EAAE/hE,EAAMoxB,KAAM,CACVvf,GAAI7R,EAAM6R,KAGlB,IAAIi3D,EAAOyJ,EAAIvyE,EAAMoxB,KAAKvf,SAE1Bi3D,EAAO9oE,EAAMgU,KAAK4E,QAItB,IADAkwD,EAAOt9C,EAAK2lB,MAAMnxC,IACTsS,MAAO,CACZ,IAAImgE,EAAOjnD,EAAKw+C,EAAYttE,MAAMysE,iBAAiBuJ,SAAS1yE,GACxDyyE,GACKA,EAAKrhD,KAAKvf,IACXkwD,EAAE0Q,EAAKrhD,KAAM,CACTvf,GAAI4gE,EAAK5gE,KAGjBi3D,EAAOyJ,EAAIE,EAAKrhD,KAAKvf,KAErBi3D,EAAO9oE,OAGX8oE,EAAOjI,EAAIiI,GAGnB,IAAI6J,EAAQ,GACZA,EAAM/5D,GAAQkwD,EACd/G,EAAErlE,KAAK00B,KAAMuhD,GACbj2E,KAAK00B,KAAK7xB,MAAMqZ,GAhHhB,IASR4S,EAAKonD,MAAQ,SAAU5yE,GACnB,IAAI8kB,EAAM6C,OAAO3nB,GAAOL,MAAM2yE,GAC9B,OAAOxtD,EAAMA,EAAI,GAAK9kB,GAG1Bq+D,IAAI1nD,GAAG,uBAAuB,SAAU3W,GACpC,GAAIA,aAAiBQ,GAAWR,aAAiBy2B,EAAU,CAOvD,GANA4nC,IAAIuB,OACA5/D,aAAiBy2B,GAA4C,GAAhCz2B,EAAMoxB,KAAKi4C,WAAWltE,SACnD6D,EAAQA,EAAMoxB,KAAKkP,WACnB0pC,EAAYttE,MAAM8jC,YAAYxgC,GAC9BA,EAAQugE,EAAKvgE,IAEC,QAAdA,EAAM2e,KACN,IAAI8qD,EAAOzpE,OAEXypE,EAAOE,EAAK,OAAQK,EAAYttE,QAC3B00B,KAAKoP,YAAYxgC,EAAMoxB,OAE/Bq4C,EAAKr4C,KAAKvf,IAAMkwD,EAAE0H,EAAKr4C,KAAM,CAC1Bvf,GAAI43D,EAAK53D,KAEbkwD,EAAErlE,KAAK00B,KAAM,CACTq4C,KAAM8I,EAAI9I,EAAK53D,UAIhBwgE,EAIT,SAAUryE,GACR,GAAIA,aAAiBQ,GAAWR,aAAiBy2B,EAAU,CACvD4nC,IAAIuB,OAGJ,IAFA,IAAIiT,EACAzhD,EAAOpxB,EAAMoxB,KACVA,GAAM,CACT,GAAsB,aAAlBA,EAAK2M,SAAyB,CAC9B80C,EAAO,IAAIryE,EAAQ4wB,GACnB,MAEJ,GAAsB,QAAlBA,EAAK2M,SAAoB,CACzB80C,OAAOnyE,EACP,MAEJ0wB,EAAOA,EAAKmS,WAEXsvC,KACDA,EAAOlJ,EAAK,WAAYK,EAAYttE,QAC/B00B,KAAKoP,YAAYxgC,EAAMoxB,OAC3ByhD,EAAKzhD,KAAKvf,IAAMkwD,EAAE8Q,EAAKzhD,KAAM,CAC1Bvf,GAAIghE,EAAKhhE,MAGjBkwD,EAAErlE,KAAK00B,KAAM,CACT,YAAamhD,EAAIM,EAAKzhD,KAAKvf,IAAMghE,EAAKhhE,QA3B9CwsD,IAAI1nD,GAAG,sBAAuB07D,GAC9BhU,IAAI1nD,GAAG,2BAA4B07D,GACnChU,IAAI1nD,GAAG,0BAA2B07D,GA4EtChU,IAAI1nD,GAAG,sBAAuB67D,EAAW,SACzCnU,IAAI1nD,GAAG,wBAAyB67D,EAAW,WAC3C,IAAIM,EAAS,gCAmLb,SAASC,EAAY/yE,GACjBq+D,IAAIuB,OACA5/D,IAAUA,IACVA,GAAS,MAEbtD,KAAK00B,KAAK7xB,MAAMk+D,SAAWz9D,EAuI/B,SAASgzE,IAEL,OADA3U,IAAIuB,OACGljE,KAAK00B,KAAK7xB,MAAMk+D,SAhU3BY,IAAI1nD,GAAG,wBAAwB,SAAmBb,GAE9C,IAAIiP,GADJjP,EAAS+qD,EAAI/qD,IACOnW,MAAMmzE,GAC1B,IAAK/tD,EACD,OAAO,KAEX,IAAIpG,EAAOoG,EAAO,GACd/L,EAAS+L,EAAO,GAChBkuD,EAAQluD,EAAO,GAIE,IAHrB/L,EAASA,EAAOhW,MAAM,WAAWkK,KAAI,SAAUkE,GAC3C,OAAQA,GAAMA,GAAMA,EAAKA,MAElBjV,QAA4B,GAAb6c,EAAO,KAC7BA,EAAS,IAab,IAAI4B,GAVJq4D,GADAA,EAAQA,EAAMjwE,MAAM,MACNkK,KAAI,SAAUkE,GAExB,IAAI01D,EAAM,CACN31B,OAFJ//B,EAAKA,EAAGpO,MAAM,MAEA,IAKd,OAHIoO,EAAG,KACH01D,EAAIhqD,OAAS+M,WAAWzY,EAAG,KAExB01D,MAEK3qE,OACZitB,EAAQ,EACRxC,EAAI,EACR,SAASssD,EAAKj3E,EAAG4d,GAEb,IADA,IAAIs5D,GAAQt5D,EAAMuP,IAAUntB,EAAI2qB,GACvBnkB,EAAImkB,EAAGnkB,EAAIxG,EAAGwG,IACnBwwE,EAAMxwE,GAAGqa,UAAYsM,EAAQ+pD,GAAQ1wE,EAAImkB,IAAIggD,QAAQ,GAEzDhgD,EAAI3qB,EACJmtB,EAAQvP,EAEZe,IACA,IAAK,IAAI3e,EAAI,EAAGA,EAAI2e,EAAK3e,IAAS,WAAYg3E,EAAMh3E,IAChDi3E,EAAKj3E,EAAGg3E,EAAMh3E,GAAG6gB,QAIrB,OAFAm2D,EAAMr4D,GAAKkC,OAASm2D,EAAMr4D,GAAKkC,QAAU,IACzCo2D,EAAKt4D,EAAKq4D,EAAMr4D,GAAKkC,QACd,CACH6B,KAAMA,EACN3F,OAAQA,EACRi6D,MAAOA,MAIf5U,IAAI1nD,GAAG,oBAAoB,SAAU3W,GACjCq+D,IAAIuB,OACAr0B,EAAGvrC,EAAO,UAAYurC,EAAGvrC,EAAM,GAAI,WACnCA,EAAQwrB,EAAK/rB,KAAKmJ,SAASpM,KAAKwD,KAEpCA,EAAQ6gE,EAAI7gE,IACFL,MAAM,YACZK,EAAQwrB,EAAK/rB,KAAK2zE,WAAWpzE,IAEjC+hE,EAAErlE,KAAK00B,KAAM,CAACxc,EAAG5U,MATrBq+D,EAUI,GACJA,IAAI1nD,GAAG,wBAAwB,SAAU3W,GACrCq+D,IAAIuB,OACJ5/D,EAAQ6gE,EAAI7gE,GAEZ,IADA,IAAIqzE,EAAM7S,EAAKC,IAAIxW,eAAejqD,GAC3BtD,KAAK00B,KAAKkP,YACb5jC,KAAK00B,KAAKmP,YAAY7jC,KAAK00B,KAAKkP,YAEpC5jC,KAAK00B,KAAKoP,YAAY6yC,KAP1BhV,EAQI,GACJA,IAAI1nD,GAAG,uBAAuB,SAAU3W,GACpCq+D,IAAIuB,OACJljE,KAAKsX,KAAK,CAACY,EAAG5U,MAFlBq+D,EAGI,GACJA,IAAI1nD,GAAG,wBAAwB,SAAU3W,GACrCq+D,IAAIuB,OACJljE,KAAK00B,KAAKpyB,UAAUs0E,QAAUtzE,IAFlCq+D,EAGI,GACJA,IAAI1nD,GAAG,0BAA0B,SAAU3W,GACvC,IAAIoxD,EAEAA,EADA7lB,EAAGvrC,EAAO,WAAa,MAAOA,EACzB,CAACA,EAAM+X,EAAG/X,EAAMgY,EAAGhY,EAAM6S,MAAO7S,EAAMyU,QAAQ9Q,KAAK,KACjD4nC,EAAGvrC,EAAO,SACZA,EAAM2D,KAAK,KAEX3D,EAET+hE,EAAErlE,KAAK00B,KAAM,CACT1c,QAAS08C,IAEbiN,IAAIuB,SAZRvB,EAaI,GACJA,IAAI1nD,GAAG,4BAA4B,SAAU3W,GACzCtD,KAAKizB,UAAU3vB,GACfq+D,IAAIuB,SAFRvB,EAGI,GACJA,IAAI1nD,GAAG,oBAAoB,SAAU3W,GAChB,QAAbtD,KAAKiiB,OACL0/C,IAAIuB,OACJmC,EAAErlE,KAAK00B,KAAM,CACTmiD,GAAIvzE,EACJwzE,GAAIxzE,OALhBq+D,EAQI,GACJA,IAAI1nD,GAAG,2BAA2B,SAAU3W,GAExC,GADAq+D,IAAIuB,OACa,QAAbljE,KAAKiiB,KAAgB,CACrB,IAAI9M,EAAI4hE,EAAIriD,EACZ,IAAKpxB,GAAStD,KAAKg3E,SAAU,CAEzB,IADAD,EAAK/2E,KAAKg3E,SACHD,EAAGriD,KAAKkP,YACX5jC,KAAK00B,KAAKoP,YAAYizC,EAAGriD,KAAKkP,YAIlC,OAFAmzC,EAAGpvD,qBACI3nB,KAAKg3E,SAGhB,GAAInoC,EAAGvrC,EAAO,UAAW,CACrB,IAAI4pE,EAAOI,EAAYttE,MACnB+C,EAAO8gE,EAAKqJ,EAAKrmC,YAAY9jC,KAAKO,GACtC4pE,EAAKppC,YAAY/gC,EAAK2xB,MACtBvf,EAAKpS,EAAKoS,GACVpS,EAAKuU,KAAK,CAACnC,GAAIA,SAEf7R,EAAQugE,EAAKvgE,cACQQ,KACjBqR,EAAK7R,EAAMgU,KAAK,SAEZnC,EAAK7R,EAAM6R,GACX7R,EAAMgU,KAAK,CAACnC,GAAIA,MAI5B,GAAIA,EAGA,GAFA4hE,EAAK/2E,KAAKg3E,SACVtiD,EAAO10B,KAAK00B,KACRqiD,EACAA,EAAGz/D,KAAK,CAAC,aAAc,IAAMnC,QAC1B,CAIH,IAHA4hE,EAAK1R,EAAE,WAAY,CACf,aAAc,IAAMlwD,IAEjBuf,EAAKkP,YACRmzC,EAAGjzC,YAAYpP,EAAKkP,YAExBlP,EAAKoP,YAAYizC,GACjB/2E,KAAKg3E,SAAWnT,EAAKkT,OA1CrCpV,EA8CI,GACJA,IAAI1nD,GAAG,uBAAuB,SAAU3W,GACpC,GAAiB,QAAbtD,KAAKiiB,KAAgB,CAerB,IAdA,IACIyS,EAAO10B,KAAK00B,KAaTA,EAAKkP,YACRlP,EAAKmP,YAAYnP,EAAKkP,YAG1B,IADA,IAAIqzC,EAfQ,SAARC,EAAkBC,GACd,IAAI/M,EAAM/E,EAAE,SACZ,GAAIx2B,EAAGsoC,EAAO,SACV,IAAK,IAAI53E,EAAI,EAAGA,EAAI43E,EAAM13E,OAAQF,IAC9B6qE,EAAItmC,YAAYozC,EAAMC,EAAM53E,UAGhC6qE,EAAItmC,YAAYggC,EAAKC,IAAIxW,eAAe4pB,IAG5C,OADA/M,EAAIoK,WAAapK,EAAIoK,YACdpK,EAKH8M,CAAM5zE,GACX2zE,EAAMrzC,YACTlP,EAAKoP,YAAYmzC,EAAMrzC,YAG/B+9B,IAAIuB,SAxBRvB,EAyBI,GAQJA,IAAI1nD,GAAG,0BAA2Bo8D,EAAlC1U,EAAgD,GAChDA,IAAI1nD,GAAG,2BAA4Bo8D,EAAnC1U,EAAiD,GAGjDA,IAAI1nD,GAAG,+BAA+B,WAElC,OADA0nD,IAAIuB,OACGljE,KAAKizB,cAFhB0uC,EAGI,GACJA,IAAI1nD,GAAG,8BAA8B,WAEjC,OADA0nD,IAAIuB,OACGljE,KAAKg3E,WAFhBrV,EAGI,GAEH,WACG,SAAS1uD,EAAOkK,GACZ,OAAO,WACHwkD,IAAIuB,OACJ,IAAIrgE,EAAQihE,EAAKC,IAAI5qB,YAAY73B,iBAAiBthB,KAAK00B,KAAM,MAAM21C,iBAAiB,UAAYltD,GAChG,MAAa,QAATta,EACOA,EAEAisB,EAAKg1C,EAAKC,IAAIzuD,eAAezS,EAAMI,MAAM2yE,GAAY,MAIxE,SAASwB,EAAOj6D,GACZ,OAAO,SAAU7Z,GACbq+D,IAAIuB,OACJ,IAAIhnD,EAAO,SAAWiB,EAAIxX,OAAO,GAAGoQ,cAAgBoH,EAAItO,UAAU,GAClE,GAAa,IAATvL,GAAgBA,GAIpB,GAAkB,UAAdA,EAAM2e,KAAkB,CACxB,IAAI9M,EAAK7R,EAAMoxB,KAAKvf,GAKpB,OAJKA,GACDkwD,EAAE/hE,EAAMoxB,KAAM,CAACvf,GAAI7R,EAAM6R,UAE7BnV,KAAK00B,KAAK7xB,MAAMqZ,GAAQ25D,EAAI1gE,UAR5BnV,KAAK00B,KAAK7xB,MAAMqZ,GAAQ,QAapCylD,IAAI1nD,GAAG,+BAAgChH,EAAO,OAA9C0uD,EAAuD,GACvDA,IAAI1nD,GAAG,8BAA+BhH,EAAO,OAA7C0uD,EAAsD,GACtDA,IAAI1nD,GAAG,iCAAkChH,EAAO,SAAhD0uD,EAA2D,GAC3DA,IAAI1nD,GAAG,gCAAiChH,EAAO,SAA/C0uD,EAA0D,GAC1DA,IAAI1nD,GAAG,+BAAgChH,EAAO,OAA9C0uD,EAAuD,GACvDA,IAAI1nD,GAAG,8BAA+BhH,EAAO,OAA7C0uD,EAAsD,GACtDA,IAAI1nD,GAAG,4BAA6Bm9D,EAAO,OAA3CzV,EAAoD,GACpDA,IAAI1nD,GAAG,2BAA4Bm9D,EAAO,OAA1CzV,EAAmD,GACnDA,IAAI1nD,GAAG,8BAA+Bm9D,EAAO,SAA7CzV,EAAwD,GACxDA,IAAI1nD,GAAG,6BAA8Bm9D,EAAO,SAA5CzV,EAAuD,GACvDA,IAAI1nD,GAAG,4BAA6Bm9D,EAAO,OAA3CzV,EAAoD,GACpDA,IAAI1nD,GAAG,2BAA4Bm9D,EAAO,OAA1CzV,EAAmD,GAzCtD,GA2CDA,IAAI1nD,GAAG,uBAAuB,WAC1B,GAAiB,QAAbja,KAAKiiB,MAAkBojD,EAAErlE,KAAK00B,KAAM,OAAS2wC,EAAErlE,KAAK00B,KAAM,MAE1D,OADAitC,IAAIuB,OACGmC,EAAErlE,KAAK00B,KAAM,QAH5BitC,EAKI,GAmBJA,IAAI1nD,GAAG,0BAA0B,WAC7B,GAAiB,QAAbja,KAAKiiB,MAA+B,SAAbjiB,KAAKiiB,KAAiB,CAC7C0/C,IAAIuB,OACJ,IAAIkH,EArBZ,SAASiN,EAAY3iD,GAGjB,IAFA,IAAI01C,EAAM,GACN7pE,EAAWm0B,EAAKi4C,WACXptE,EAAI,EAAG2sD,EAAK3rD,EAASd,OAAQF,EAAI2sD,EAAI3sD,IAAK,CAC/C,IAAI+3E,EAAM/2E,EAAShB,GACC,GAAhB+3E,EAAIp3D,UACJkqD,EAAItgE,KAAKwtE,EAAIrzC,WAEE,SAAfqzC,EAAI1jD,UACyB,GAAzB0jD,EAAI3K,WAAWltE,QAA0C,GAA3B63E,EAAI1zC,WAAW1jB,SAC7CkqD,EAAItgE,KAAKwtE,EAAI1zC,WAAWK,WAExBmmC,EAAItgE,KAAKutE,EAAYC,KAIjC,OAAOlN,EAKOiN,CAAYr3E,KAAK00B,MAC3B,OAAqB,GAAd01C,EAAI3qE,OAAc2qE,EAAI,GAAKA,KAJ1CzI,EAMI,GACJA,IAAI1nD,GAAG,2BAA2B,WAC9B,OAAOja,KAAK00B,KAAKwO,cADrBy+B,EAEI,GACJA,IAAI1nD,GAAG,0BAA0B,SAAUs9D,GACvC,IAAIA,EAAJ,CAGA5V,IAAIuB,OACJ,IAAI5/D,EAAQq+D,IAAI,yBAA0B3hE,MAAM,GAAM6tE,eACtD,OAAO/+C,EAAKA,EAAKonD,MAAM5yE,KAAWA,KANtCq+D,EAOI,GACJA,IAAI1nD,GAAG,4BAA4B,SAAUs9D,GACzC,IAAIA,EAAJ,CAGA5V,IAAIuB,OACJ,IAAI5/D,EAAQq+D,IAAI,2BAA4B3hE,MAAM,GAAM6tE,eACxD,OAAO/+C,EAAKA,EAAKonD,MAAM5yE,KAAWA,KANtCq+D,EAOI,GACJA,IAAI1nD,GAAG,6BAA6B,WAChC0nD,IAAIuB,OACJ,IAAIxO,EAAK2Q,EAAErlE,KAAK00B,KAAM,WACtB,OAAIggC,GACAA,EAAKA,EAAGpuD,MAAMq+D,GACP71C,EAAKm1C,EAAE0L,KAAKjb,EAAG,IAAKA,EAAG,IAAKA,EAAG,IAAKA,EAAG,UAE9C,IAPRiN,EASI,GACJA,IAAI1nD,GAAG,4BAA4B,WAC/B,IAAIqc,EAAI+uC,EAAErlE,KAAK00B,KAAM,UAErB,OADAitC,IAAIuB,OACA5sC,EACOA,EAAEhwB,MAAMq+D,QAEf,IANRhD,EAQI,GACJA,IAAI1nD,GAAG,0BAA0B,WAC7B,IAAIqc,EAAI+uC,EAAErlE,KAAK00B,KAAM,KAErB,OADAitC,IAAIuB,OACG5sC,IAHXqrC,EAII,GACJA,IAAI1nD,GAAG,2BAA2B,WAC9B,OAAOja,KAAK00B,KAAKpyB,UAAUs0E,UAD/BjV,EAEI,GAKJA,IAAI1nD,GAAG,6BAA8Bq8D,EAArC3U,EAAmD,GACnDA,IAAI1nD,GAAG,8BAA+Bq8D,EAAtC3U,EAAoD,MAgBxD7yC,EAAKshD,QAAO,SAAUthD,EAAMhrB,EAASkgE,EAAOF,EAAM/pC,GAC9C,IAAIy9C,EAAa,OAGbrT,EAAMl5C,OACNolD,EAAUvsE,EAAQlE,UAUtBywE,EAAQoH,SAAW,SAAUn0E,GACzB,IAII4mB,EAEAwtD,EACAC,EAPAC,EAAUzT,EAAI7gE,GAAS,IAAIL,MAAMu0E,IAAe,GAChD9H,EAAO1vE,KAAK00B,KACZpyB,EAAYotE,EAAKptE,UAAUs0E,QAC3BiB,EAAav1E,EAAUW,MAAMu0E,IAAe,GAMhD,GAAII,EAAQn4E,OAAQ,CAEhB,IADAyqB,EAAI,EACGwtD,EAAQE,EAAQ1tD,OACb2tD,EAAW1vE,QAAQuvE,IAErBG,EAAW/tE,KAAK4tE,GAKpBp1E,IADJq1E,EAAaE,EAAW5wE,KAAK,QAEzByoE,EAAKptE,UAAUs0E,QAAUe,GAGjC,OAAO33E,MAWXqwE,EAAQyH,YAAc,SAAUx0E,GAC5B,IAII4mB,EACA6tD,EACAL,EACAC,EAPAC,EAAUzT,EAAI7gE,GAAS,IAAIL,MAAMu0E,IAAe,GAChD9H,EAAO1vE,KAAK00B,KACZpyB,EAAYotE,EAAKptE,UAAUs0E,QAC3BiB,EAAav1E,EAAUW,MAAMu0E,IAAe,GAKhD,GAAIK,EAAWp4E,OAAQ,CAEnB,IADAyqB,EAAI,EACGwtD,EAAQE,EAAQ1tD,QACnB6tD,EAAMF,EAAW1vE,QAAQuvE,KAErBG,EAAWjnE,OAAOmnE,EAAK,GAK3Bz1E,IADJq1E,EAAaE,EAAW5wE,KAAK,QAEzByoE,EAAKptE,UAAUs0E,QAAUe,GAGjC,OAAO33E,MAWXqwE,EAAQ2H,SAAW,SAAU10E,GAIzB,UAHWtD,KAAK00B,KACKpyB,UAAUs0E,QACJ3zE,MAAMu0E,IAAe,IAC3BrvE,QAAQ7E,IAajC+sE,EAAQ4H,YAAc,SAAU30E,EAAO40E,GACnC,GAAY,MAARA,EACA,OAAIA,EACOl4E,KAAKy3E,SAASn0E,GAEdtD,KAAK83E,YAAYx0E,GAGhC,IAII4mB,EACA6tD,EACAL,EACAC,EAPAC,GAAWt0E,GAAS,IAAIL,MAAMu0E,IAAe,GAC7C9H,EAAO1vE,KAAK00B,KACZpyB,EAAYotE,EAAKptE,UAAUs0E,QAC3BiB,EAAav1E,EAAUW,MAAMu0E,IAAe,GAMhD,IADAttD,EAAI,EACGwtD,EAAQE,EAAQ1tD,QACnB6tD,EAAMF,EAAW1vE,QAAQuvE,IAErBG,EAAWjnE,OAAOmnE,EAAK,GAEvBF,EAAW/tE,KAAK4tE,GAQxB,OAHIp1E,IADJq1E,EAAaE,EAAW5wE,KAAK,QAEzByoE,EAAKptE,UAAUs0E,QAAUe,GAEtB33E,SAiBf8uB,EAAKshD,QAAO,SAAUthD,EAAMhrB,EAASkgE,EAAOF,EAAM/pC,GAC9C,IAAIo+C,EAAY,CACR,IAAK,SAAU98D,EAAGC,GACV,OAAOD,EAAIC,GAEnB,IAAK,SAAUD,EAAGC,GACV,OAAOD,EAAIC,GAEnB,IAAK,SAAUD,EAAGC,GACV,OAAOD,EAAIC,GAEnB,IAAK,SAAUD,EAAGC,GACV,OAAOD,EAAIC,IAGvB6oD,EAAMl5C,OACNmtD,EAAS,WACTC,EAAU,uDACd,SAASC,EAAUvtD,GACf,OAAOA,EAEX,SAASwtD,EAAQC,GACb,OAAO,SAAUztD,GACb,OAAQA,EAAIm/C,QAAQ,GAAKsO,GAGjC7W,IAAI1nD,GAAG,kBAAkB,SAAU8Q,GAC/B,IAAI0tD,EAAOtU,EAAIp5C,GAAK9nB,MAAMo1E,GAC1B,GAAII,EAAM,CACN,IAAIC,EAAO/W,IAAI2M,KACXpyD,EAAOw8D,EAAK7pE,UAAU6pE,EAAKnpE,YAAY,KAAO,GAC9ClI,EAAIrH,KAAKsX,KAAK4E,GACdy8D,EAAM,GACVhX,IAAIuB,OACJ,IAAIsV,EAAOC,EAAK,IAAM,GAClBG,EAAQvxE,EAAEpE,MAAMm1E,GAChBS,EAAKV,EAAUM,EAAK,IAOxB,GANIG,GAASA,GAASJ,EAClBztD,EAAM8tD,EAAG1rD,WAAW9lB,IAAKoxE,EAAK,KAE9BpxE,EAAIrH,KAAKsyE,KAAKp2D,GACd6O,EAAM8tD,EAAG74E,KAAKsyE,KAAKp2D,GAAOlc,KAAKsyE,KAAKp2D,EAAMu8D,EAAK,GAAKD,KAEpDtrD,MAAM7lB,IAAM6lB,MAAMnC,GAClB,OAEJ4tD,EAAIz8D,GAAQ6O,EACZ/qB,KAAKsX,KAAKqhE,MArBlBhX,EAuBI,IACJA,IAAI1nD,GAAG,mBAAmB,SAAUiC,EAAM5U,GACtC,IAAUD,EAAI88D,EAAInkE,KAAKsX,KAAK4E,IAAS,IAEjC48D,EAAQ3U,EAAI78D,GAAGrE,MAAMo1E,GACzB,GAAIS,EAAO,CACPnX,IAAIuB,OACJ,IAAIsV,EAAOM,EAAM,IAAM,GACnBF,EAAQvxE,EAAEpE,MAAMm1E,GAChBS,EAAKV,EAAUW,EAAM,IACzB,OAAIF,GAASA,GAASJ,EACX,CACHryE,KAAMgnB,WAAW9lB,GACjB3G,GAAIm4E,EAAG1rD,WAAW9lB,IAAKyxE,EAAM,IAC7B1gD,EAAGmgD,EAAQK,IAIR,CACHzyE,KAFJkB,EAAIrH,KAAKsyE,KAAKp2D,GAGVxb,GAAIm4E,EAAGxxE,EAAGrH,KAAKsyE,KAAKp2D,EAAM48D,EAAM,GAAKN,IACrCpgD,EAAGkgD,MApBnB3W,EAwBI,OAgBR7yC,EAAKshD,QAAO,SAAUthD,EAAMhrB,EAASkgE,EAAOF,EAAM/pC,GAC9C,IAAIozC,EAAQnJ,EAAMpkE,UACdivC,EAAK/f,EAAK+f,GAqBds+B,EAAM4L,KAAO,SAAU19D,EAAGC,EAAGqb,EAAGvc,EAAGy8D,EAAIC,GACnC,IAAIx/D,EAkBJ,OAjBU,MAANw/D,IACAA,EAAKD,GAELhoC,EAAGxzB,EAAG,WAAkB,mBAALA,EACnB/D,EAAO+D,EACK,MAALA,IACP/D,EAAO,CACH+D,EAAGA,EACHC,EAAGA,EACHnF,MAAOwgB,EACP5e,OAAQqC,GAEF,MAANy8D,IACAv/D,EAAKu/D,GAAKA,EACVv/D,EAAKw/D,GAAKA,IAGX92E,KAAK0U,GAAG,OAAQ4C,IAgB3B61D,EAAM6L,OAAS,SAAUxF,EAAIC,EAAIj9C,GAC7B,IAAIlf,EAUJ,OATIu3B,EAAG2kC,EAAI,WAAmB,mBAANA,EACpBl8D,EAAOk8D,EACM,MAANA,IACPl8D,EAAO,CACHk8D,GAAIA,EACJC,GAAIA,EACJj9C,EAAGA,IAGJx2B,KAAK0U,GAAG,SAAU4C,IAG7B,IAAI2hE,EAAW,WACX,SAASC,IACLl5E,KAAK6mC,WAAWhD,YAAY7jC,MAEhC,OAAO,SAAUm5E,EAAK/gD,GAClB,IAAIzG,EAAMmyC,EAAKC,IAAIv5D,cAAc,OAC7B4J,EAAO0vD,EAAKC,IAAI3vD,KACpBud,EAAI9uB,MAAMu2E,QAAU,6CACpBznD,EAAI0nD,OAAS,WACTjhD,EAAEt4B,KAAK6xB,GACPA,EAAI0nD,OAAS1nD,EAAIunD,QAAU,KAC3B9kE,EAAKyvB,YAAYlS,IAErBA,EAAIunD,QAAUA,EACd9kE,EAAK0vB,YAAYnS,GACjBA,EAAIwnD,IAAMA,GAfH,GAqCfhM,EAAMt7C,MAAQ,SAAUsnD,EAAK99D,EAAGC,EAAGnF,EAAO4B,GACtC,IAAIrD,EAAK1U,KAAK0U,GAAG,SACjB,GAAIm6B,EAAGsqC,EAAK,WAAa,QAASA,EAC9BzkE,EAAG4C,KAAK6hE,QACL,GAAW,MAAPA,EAAa,CACpB,IAAI3kE,EAAM,CACN,aAAc2kE,EACdlhE,oBAAqB,QAEhB,MAALoD,GAAkB,MAALC,IACb9G,EAAI6G,EAAIA,EACR7G,EAAI8G,EAAIA,GAEC,MAATnF,GAA2B,MAAV4B,GACjBvD,EAAI2B,MAAQA,EACZ3B,EAAIuD,OAASA,GAEbkhE,EAAQE,GAAK,WACTrqD,EAAKm1C,EAAEoB,EAAE3wD,EAAGggB,KAAM,CACdve,MAAOnW,KAAKs5E,YACZvhE,OAAQ/X,KAAKwtB,kBAIzBsB,EAAKm1C,EAAEoB,EAAE3wD,EAAGggB,KAAMlgB,GAEtB,OAAOE,GAiBXy4D,EAAMoM,QAAU,SAAU/F,EAAIC,EAAIoD,EAAIC,GAClC,IAAIx/D,EAWJ,OAVIu3B,EAAG2kC,EAAI,WAAmB,mBAANA,EACpBl8D,EAAOk8D,EACM,MAANA,IACPl8D,EAAM,CACFk8D,GAAIA,EACJC,GAAIA,EACJoD,GAAIA,EACJC,GAAIA,IAGL92E,KAAK0U,GAAG,UAAW4C,IAiC9B61D,EAAMpqE,KAAO,SAAUmV,GACnB,IAAIZ,EAMJ,OALIu3B,EAAG32B,EAAG,YAAc22B,EAAG32B,EAAG,SAC1BZ,EAAOY,EACAA,IACPZ,EAAO,CAACY,EAAGA,IAERlY,KAAK0U,GAAG,OAAQ4C,IA2B3B61D,EAAMvkD,MAAQukD,EAAM3hD,EAAI,SAAU2mD,GAC9B,IACIz9D,EAAK1U,KAAK0U,GAAG,KAMjB,OALwB,GAApBlV,UAAUC,QAAe0yE,IAAUA,EAAMlwD,KACzCvN,EAAG4C,KAAK66D,GACD3yE,UAAUC,QACjBiV,EAAGi7C,IAAIpoD,MAAM3H,UAAU0I,MAAMxI,KAAKN,UAAW,IAE1CkV,GAmBXy4D,EAAMn2D,IAAM,SAAUqE,EAAGC,EAAGnF,EAAO4B,EAAQyhE,EAAKC,EAAKC,EAAKC,GACtD,IAAI1D,EAAQ,GAoBZ,OAnBIpnC,EAAGxzB,EAAG,WAAkB,MAALC,EACnB26D,EAAQ56D,GAEC,MAALA,IACA46D,EAAM56D,EAAIA,GAEL,MAALC,IACA26D,EAAM36D,EAAIA,GAED,MAATnF,IACA8/D,EAAM9/D,MAAQA,GAEJ,MAAV4B,IACAk+D,EAAMl+D,OAASA,GAER,MAAPyhE,GAAsB,MAAPC,GAAsB,MAAPC,GAAsB,MAAPC,IAC7C1D,EAAMj+D,QAAU,CAACwhE,EAAKC,EAAKC,EAAKC,KAGjC35E,KAAK0U,GAAG,MAAOuhE,IAW1B9I,EAAMJ,KAAO,SAAUoF,GACnB,IACIz9D,EAAK1U,KAAK0U,GAAG,QAMjB,OALwB,GAApBlV,UAAUC,QAAe0yE,IAAUA,EAAMlwD,KACzCvN,EAAG4C,KAAK66D,GACD3yE,UAAUC,QACjBiV,EAAGi7C,IAAIpoD,MAAM3H,UAAU0I,MAAMxI,KAAKN,UAAW,IAE1CkV,GAmBXy4D,EAAMyM,KAAO,SAAUv+D,EAAGC,EAAGnF,EAAO4B,EAAQ8hE,EAAIC,EAAIC,EAAIxxB,GACpD,GAAI1Z,EAAGxzB,EAAG,UACN,IAAI/D,EAAO+D,OAEX/D,EAAO,CAAC87D,aAAc,kBAClB/3D,IACA/D,EAAK+D,EAAIA,GAETC,IACAhE,EAAKgE,EAAIA,GAEA,MAATnF,IACAmB,EAAKnB,MAAQA,GAEH,MAAV4B,IACAT,EAAKS,OAASA,GAGdT,EAAKU,QADC,MAAN6hE,GAAoB,MAANC,GAAoB,MAANC,GAAoB,MAANxxB,EAC3B,CAACsxB,EAAIC,EAAIC,EAAIxxB,GAEb,CAACltC,GAAK,EAAGC,GAAK,EAAGnF,GAAS,EAAG4B,GAAU,GAG9D,OAAO/X,KAAK0U,GAAG,UAAW4C,IAc9B61D,EAAMoF,IAAM,SAAUp9D,GAClB,OAAU,MAANA,GACIA,aAAcrR,IACTqR,EAAGmC,KAAK,OACTnC,EAAGmC,KAAK,CAACnC,GAAI2Z,EAAKm1C,EAAE9uD,GAAGA,KAE3BA,EAAKA,EAAGmC,KAAK,OAEU,KAAvB2T,OAAO9V,GAAIxP,WACXwP,EAAKA,EAAGtG,UAAU,IAEf7O,KAAK0U,GAAG,MAAO,CAAC,aAAc,IAAMS,KAEpCrR,EAAQlE,UAAU2yE,IAAIzyE,KAAKE,OAe1CmtE,EAAMvT,OAAS,SAAUigB,EAAIC,EAAIC,EAAIxxB,GACjC,IAAIjxC,EAAO,GAKX,OAJU,MAANuiE,GAAoB,MAANC,GAAoB,MAANC,GAAoB,MAANxxB,IAC1CjxC,EAAKU,QAAU,CAAC6hE,EAAIC,EAAIC,EAAIxxB,IAGzBvoD,KAAK0U,GAAG,SAAU4C,IAsB7B61D,EAAMl4B,KAAO,SAAU55B,EAAGC,EAAG25B,GACzB,IAAI39B,EAAO,GAUX,OATIu3B,EAAGxzB,EAAG,UACN/D,EAAO+D,EACK,MAALA,IACP/D,EAAO,CACH+D,EAAGA,EACHC,EAAGA,EACH25B,KAAMA,GAAQ,KAGfj1C,KAAK0U,GAAG,OAAQ4C,IAiB3B61D,EAAM6M,KAAO,SAAU9S,EAAIC,EAAIC,EAAIC,GAC/B,IAAI/vD,EAAO,GAWX,OAVIu3B,EAAGq4B,EAAI,UACP5vD,EAAO4vD,EACM,MAANA,IACP5vD,EAAO,CACH4vD,GAAIA,EACJE,GAAIA,EACJD,GAAIA,EACJE,GAAIA,IAGLrnE,KAAK0U,GAAG,OAAQ4C,IAiB3B61D,EAAM8M,SAAW,SAAUC,GACnB16E,UAAUC,OAAS,IACnBy6E,EAAS3yE,MAAM3H,UAAU0I,MAAMxI,KAAKN,UAAW,IAEnD,IAAI8X,EAAO,GAMX,OALIu3B,EAAGqrC,EAAQ,YAAcrrC,EAAGqrC,EAAQ,SACpC5iE,EAAO4iE,EACU,MAAVA,IACP5iE,EAAO,CAAC4iE,OAAQA,IAEbl6E,KAAK0U,GAAG,WAAY4C,IAQ/B61D,EAAMgN,QAAU,SAAUD,GAClB16E,UAAUC,OAAS,IACnBy6E,EAAS3yE,MAAM3H,UAAU0I,MAAMxI,KAAKN,UAAW,IAEnD,IAAI8X,EAAO,GAMX,OALIu3B,EAAGqrC,EAAQ,YAAcrrC,EAAGqrC,EAAQ,SACpC5iE,EAAO4iE,EACU,MAAVA,IACP5iE,EAAO,CAAC4iE,OAAQA,IAEbl6E,KAAK0U,GAAG,UAAW4C,IAG7B,WACG,IAAI+tD,EAAIv2C,EAAKm1C,EAAEoB,EAUf,SAAS+U,IACL,OAAOp6E,KAAKytE,UAAU,QAY1B,SAAS4M,EAAS5lC,EAAOr0B,GACrB,IAAI8iD,EAAOmC,EAAE,QACT/tD,EAAO,CACH8I,QAASA,EAAS,KAE1Bq0B,EAAQ3lB,EAAK2lB,MAAMA,GACnBn9B,EAAK,cAAgBm9B,EAAM80B,IACvB90B,EAAM9H,QAAU,IAChBr1B,EAAK,gBAAkBm9B,EAAM9H,SAEjC04B,EAAEnC,EAAM5rD,GAGR,IAFA,IACIgjE,EADA/D,EAAQv2E,KAAKu2E,QAERh3E,EAAI,EAAGA,EAAIg3E,EAAM92E,OAAQF,IAAK,CAEnC,GADiB4tB,WAAWopD,EAAMh3E,GAAG+X,KAAK,WACzB8I,EAAQ,CACrBpgB,KAAK00B,KAAKy6B,aAAa+T,EAAMqT,EAAMh3E,GAAGm1B,MACtC4lD,GAAW,EACX,OAMR,OAHKA,GACDt6E,KAAK00B,KAAKoP,YAAYo/B,GAEnBljE,KAEX,SAASu6E,IACL,GAAiB,kBAAbv6E,KAAKiiB,KAA0B,CAC/B,IAAIilD,EAAK7B,EAAErlE,KAAK00B,KAAM,OAAS,EAC3B0yC,EAAK/B,EAAErlE,KAAK00B,KAAM,OAAS,EAC3ByyC,EAAK9B,EAAErlE,KAAK00B,KAAM,OAAS,EAC3B2yC,EAAKhC,EAAErlE,KAAK00B,KAAM,OAAS,EAC/B,OAAO5F,EAAKm1C,EAAE0L,IAAIzI,EAAIC,EAAI7C,KAAKf,IAAI6D,EAAKF,GAAK5C,KAAKf,IAAI8D,EAAKF,IAE3D,IAAIqM,EAAKxzE,KAAK00B,KAAK8+C,IAAM,GACrBC,EAAKzzE,KAAK00B,KAAK++C,IAAM,GACrBj9C,EAAIx2B,KAAK00B,KAAK8B,GAAK,EACvB,OAAO1H,EAAKm1C,EAAE0L,IAAI6D,EAAKh9C,EAAGi9C,EAAKj9C,EAAO,EAAJA,EAAW,EAAJA,GAcjD,SAASgkD,EAAUzyD,GACf,IAAIguD,EAAOhuD,EACPwuD,EAAQv2E,KAAKu2E,QAIjB,GAHkB,iBAAPxuD,IACPguD,EAAOpU,IAAI,uBAAwB,KAAM,aAAe55C,GAAK8lD,eAAe0I,OAE3EznD,EAAK+f,GAAGknC,EAAM,SAAnB,CAGA,IAAK,IAAIx2E,EAAI,EAAGA,EAAIg3E,EAAM92E,OAAQF,IAC9B,GAAIw2E,EAAKx2E,GAAI,CACT,IAAIk1C,EAAQ3lB,EAAK2lB,MAAMshC,EAAKx2E,GAAGk1C,OAC3Bn9B,EAAO,CAAC,OAAUy+D,EAAKx2E,GAAG6gB,OAAS,KACvC9I,EAAK,cAAgBm9B,EAAM80B,IACvB90B,EAAM9H,QAAU,IAChBr1B,EAAK,gBAAkBm9B,EAAM9H,SAEjC4pC,EAAMh3E,GAAG+X,KAAKA,QAEdi/D,EAAMh3E,GAAGooB,SAGjB,IAAKpoB,EAAIg3E,EAAM92E,OAAQF,EAAIw2E,EAAKt2E,OAAQF,IACpCS,KAAKy6E,QAAQ1E,EAAKx2E,GAAGk1C,MAAOshC,EAAKx2E,GAAG6gB,QAExC,OAAOpgB,MA2BX,SAAS06E,EAAexN,EAAMhG,EAAIC,EAAIC,EAAIC,GACtC,IAAI3yD,EAAKoa,EAAKm1C,EAAEgJ,KAAK,iBAAkBC,GAavC,OAZAx4D,EAAG6hE,MAAQ6D,EACX1lE,EAAG+lE,QAAUJ,EACb3lE,EAAG43D,QAAUiO,EACb7lE,EAAGimE,SAAWH,EACJ,MAANtT,GACA7B,EAAE3wD,EAAGggB,KAAM,CACPwyC,GAAIA,EACJC,GAAIA,EACJC,GAAIA,EACJC,GAAIA,IAGL3yD,EAEX,SAASkmE,EAAe1N,EAAMsG,EAAIC,EAAIj9C,EAAGqkD,EAAIC,GACzC,IAAIpmE,EAAKoa,EAAKm1C,EAAEgJ,KAAK,iBAAkBC,GAiBvC,OAhBAx4D,EAAG6hE,MAAQ6D,EACX1lE,EAAG+lE,QAAUJ,EACb3lE,EAAG43D,QAAUiO,EACH,MAAN/G,GACAnO,EAAE3wD,EAAGggB,KAAM,CACP8+C,GAAIA,EACJC,GAAIA,EACJj9C,EAAGA,IAGD,MAANqkD,GAAoB,MAANC,GACdzV,EAAE3wD,EAAGggB,KAAM,CACPmmD,GAAIA,EACJC,GAAIA,IAGLpmE,EAuCXy4D,EAAM6I,SAAW,SAAUjuD,GACvB,OAnGJ,SAAkBmlD,EAAMnlD,GACpB,IACIrT,EADAqhE,EAAOpU,IAAI,uBAAwB,KAAM55C,GAAK8lD,eAElD,IAAKkI,EACD,OAAO,KAEXA,EAAKz5D,OAAOvV,QAAQmmE,GAEhBx4D,EAD2B,KAA3BqhE,EAAK9zD,KAAK/Z,cACLwyE,EAAe36E,MAAM,EAAGg2E,EAAKz5D,QAE7Bs+D,EAAe76E,MAAM,EAAGg2E,EAAKz5D,QAElCy5D,EAAK9zD,MAAQ8zD,EAAK9zD,KAAK/Z,eACvBm9D,EAAE3wD,EAAGggB,KAAM,CACPqmD,cAAe,mBAKvB,IAFA,IAAIxE,EAAQR,EAAKQ,MACbr4D,EAAMq4D,EAAM92E,OACPF,EAAI,EAAGA,EAAI2e,EAAK3e,IAAK,CAC1B,IAAI2jE,EAAOqT,EAAMh3E,GACjBmV,EAAG+lE,QAAQvX,EAAKzuB,MAAOyuB,EAAK9iD,QAEhC,OAAO1L,EA4EAshE,CAASh2E,KAAKktE,KAAMnlD,IAE/BolD,EAAMuN,eAAiB,SAAUxT,EAAIC,EAAIC,EAAIC,GACzC,OAAOqT,EAAe16E,KAAKktE,KAAMhG,EAAIC,EAAIC,EAAIC,IAEjD8F,EAAMyN,eAAiB,SAAUpH,EAAIC,EAAIj9C,EAAGqkD,EAAIC,GAC5C,OAAOF,EAAe56E,KAAKktE,KAAMsG,EAAIC,EAAIj9C,EAAGqkD,EAAIC,IASpD3N,EAAMjhE,SAAW,WACb,IAIIkc,EAJA27C,EAAM/jE,KAAK00B,KAAK8N,cAChBpK,EAAI2rC,EAAIiK,yBACR91D,EAAI6rD,EAAIv5D,cAAc,OACtBwM,EAAMhX,KAAK00B,KAAK89C,WAAU,GAO9B,OALAp6C,EAAE0L,YAAY5rB,GACdA,EAAE4rB,YAAY9sB,GACd8X,EAAKm1C,EAAEoB,EAAEruD,EAAK,CAACmuD,MAAO,+BACtB/8C,EAAMlQ,EAAEyrB,UACRvL,EAAEyL,YAAYzL,EAAEwL,YACTxb,GASX+kD,EAAM+G,UAAY,WACd,GAAI5pE,QAAUA,OAAO6pE,KACjB,MAAO,6BAA+BA,KAAKE,SAASxqD,mBAAmB7pB,SAS/EmtE,EAAM6N,MAAQ,WAGV,IAFA,IACIn8D,EADA6V,EAAO10B,KAAK00B,KAAKkP,WAEdlP,GACH7V,EAAO6V,EAAK0a,YACQ,QAAhB1a,EAAKd,QACLc,EAAKmS,WAAWhD,YAAYnP,GAE5By4C,EAAM6N,MAAMl7E,KAAK,CAAC40B,KAAMA,IAE5BA,EAAO7V,GAjQlB,MAoRLiQ,EAAKshD,QAAO,SAAUthD,EAAMhrB,EAASkgE,EAAOF,GACxC,IAAIuM,EAAUvsE,EAAQlE,UAClBivC,EAAK/f,EAAK+f,GACV43B,EAAQ33C,EAAKm1C,EAAEwC,MAEfwU,EAAM,gBACN7W,EAAUj3C,WACVm3C,EAAOt4D,KACP23D,EAAKW,EAAKX,GACVa,EAAOF,EAAKt0D,IACZu0D,EAAOD,EAAKr0D,IACZ+tD,EAAMsG,EAAKtG,IACXuF,EAAMe,EAAKf,IACf,SAAS2X,EAAMC,GACX,IAAI7kD,EAAI4kD,EAAMC,GAAKD,EAAMC,IAAM,GAc/B,OAbI7kD,EAAE6kD,GACF7kD,EAAE6kD,GAAIC,MAAQ,IAEd9kD,EAAE6kD,GAAM,CACJC,MAAO,KAGf7mE,YAAW,WACP,IAAK,IAAI5U,KAAO22B,EAAOA,EAAC,eAAM32B,IAAQA,GAAOw7E,IACzC7kD,EAAE32B,GAAKy7E,SACN9kD,EAAE32B,GAAKy7E,cAAgB9kD,EAAE32B,OAG3B22B,EAAE6kD,GAEb,SAASxL,EAAIt0D,EAAGC,EAAGnF,EAAO4B,GAUtB,OATS,MAALsD,IACAA,EAAIC,EAAInF,EAAQ4B,EAAS,GAEpB,MAALuD,IACAA,EAAID,EAAEC,EACNnF,EAAQkF,EAAElF,MACV4B,EAASsD,EAAEtD,OACXsD,EAAIA,EAAEA,GAEH,CACHA,EAAGA,EACHC,EAAGA,EACHnF,MAAOA,EACPwgB,EAAGxgB,EACH4B,OAAQA,EACRqC,EAAGrC,EACHqvD,GAAI/rD,EAAIlF,EACRkxD,GAAI/rD,EAAIvD,EACRy7D,GAAIn4D,EAAIlF,EAAQ,EAChBs9D,GAAIn4D,EAAIvD,EAAS,EACjBsjE,GAAI/W,EAAKt0D,IAAImG,EAAO4B,GAAU,EAC9BujE,GAAIhX,EAAKr0D,IAAIkG,EAAO4B,GAAU,EAC9BwjE,GAAIjX,EAAKhB,KAAKntD,EAAQA,EAAQ4B,EAASA,GAAU,EACjDhV,KAAMy4E,EAASngE,EAAGC,EAAGnF,EAAO4B,GAC5B28C,GAAI,CAACr5C,EAAGC,EAAGnF,EAAO4B,GAAQ9Q,KAAK,MAGvC,SAASiF,IACL,OAAOlM,KAAKiH,KAAK,KAAKrF,QAAQq5E,EAAK,MAEvC,SAASQ,EAAUC,GACf,IAAItzD,EAAMq+C,EAAMiV,GAEhB,OADAtzD,EAAIlc,SAAWA,EACRkc,EAEX,SAASuzD,EAAwBC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAAK18E,GACrE,OAAc,MAAVA,EACO28E,EAAOR,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,GAE1CE,EAAkBT,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EA0JpE,SAAmBjV,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAI+U,EAAIC,EAAIC,GAC/C,GAAIA,EAAK,GAAKJ,EAAOlV,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAI+U,EAAIC,GAAMC,EACnD,OAEJ,IAGIpmD,EAFAqgD,EAAOx1D,GACPw7D,EAFI,EAEKhG,EAGbrgD,EAAIgmD,EAAOlV,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAI+U,EAAIC,EAAIE,GAC3C,KAAOlZ,EAAIntC,EAAIomD,GAFP,KAKJpmD,EAAIgmD,EAAOlV,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAI+U,EAAIC,EADvCE,IAAOrmD,EAAIomD,EAAK,GAAK,IADrB/F,GAAQ,IAIZ,OAAOgG,EAxKCC,CAAUd,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAAK18E,IAG9D,SAASk9E,EAAiBC,EAASC,GAC/B,SAAStkD,EAAExN,GACP,SAAUA,GAAKm/C,QAAQ,GAE3B,OAAOp7C,EAAKm1C,EAAEyB,QAAO,SAAU3iE,EAAMtD,EAAQq9E,GACrC/5E,aAAgBe,IAChBf,EAAOA,EAAKuU,KAAK,MAKrB,IAFA,IAAI+D,EAAGC,EAAGgb,EAAGF,EAA2B2mD,EAAxBC,EAAK,GAAIC,EAAW,GAChC/+D,EAAM,EACD3e,EAAI,EAAG2sD,GAHhBnpD,EAAOm6E,EAAWn6E,IAGQtD,OAAQF,EAAI2sD,EAAI3sD,IAAK,CAE3C,GAAY,MADZ+2B,EAAIvzB,EAAKxD,IACH,GACF8b,GAAKib,EAAE,GACPhb,GAAKgb,EAAE,OACJ,CAEH,GAAIpY,GADJkY,EAAIulD,EAAwBtgE,EAAGC,EAAGgb,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,KACpD72B,EAAQ,CAClB,GAAIo9E,IAAYI,EAASvwD,MAAO,CAU5B,GARAswD,GAAM,CACF,IAAMzkD,GAFVwkD,EAAQpB,EAAwBtgE,EAAGC,EAAGgb,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAI72B,EAASye,IAEjEwO,MAAMrR,GACpBkd,EAAEwkD,EAAMrwD,MAAMpR,GACdid,EAAEwkD,EAAMt0D,EAAEpN,GACVkd,EAAEwkD,EAAMt0D,EAAEnN,GACVid,EAAEwkD,EAAM1hE,GACRkd,EAAEwkD,EAAMzhE,IAERwhE,EAAY,OAAOE,EACvBC,EAASvwD,MAAQswD,EACjBA,EAAK,CACD,IAAMzkD,EAAEwkD,EAAM1hE,GACdkd,EAAEwkD,EAAMzhE,GAAK,IAAMid,EAAEwkD,EAAM/2E,EAAEqV,GAC7Bkd,EAAEwkD,EAAM/2E,EAAEsV,GACVid,EAAEwkD,EAAM5/D,IAAI9B,GACZkd,EAAEwkD,EAAM5/D,IAAI7B,GACZid,EAAEjC,EAAE,IACJiC,EAAEjC,EAAE,KACNrvB,OACFiX,GAAOkY,EACP/a,GAAKib,EAAE,GACPhb,GAAKgb,EAAE,GACP,SAEJ,IAAKsmD,IAAYC,EAEb,OADAE,EAAQpB,EAAwBtgE,EAAGC,EAAGgb,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAI72B,EAASye,GAI3FA,GAAOkY,EACP/a,GAAKib,EAAE,GACPhb,GAAKgb,EAAE,GAEX0mD,GAAM1mD,EAAEmT,QAAUnT,EAItB,OAFA2mD,EAAS9/D,IAAM6/D,EACfD,EAAQH,EAAU1+D,EAAM2+D,EAAUI,EAAWZ,EAAkBhhE,EAAGC,EAAGgb,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAI,KAE1G,KAAMxH,EAAKm1C,EAAEwC,OAEpB,IAAI0B,EAAiBwU,EAAiB,GAClCjU,EAAmBiU,IACnBQ,EAAsBR,EAAiB,EAAG,GAC9C,SAASN,EAAkBT,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKl7D,GAC/D,IAAIm8D,EAAK,EAAIn8D,EACTo8D,EAAMrf,EAAIof,EAAI,GACdE,EAAMtf,EAAIof,EAAI,GACdX,EAAKx7D,EAAIA,EACTs8D,EAAKd,EAAKx7D,EAGVu8D,EAAK5B,EAAM,EAAI36D,GAAK66D,EAAMF,GAAOa,GAAMT,EAAM,EAAIF,EAAMF,GACvD6B,EAAK5B,EAAM,EAAI56D,GAAK86D,EAAMF,GAAOY,GAAMR,EAAM,EAAIF,EAAMF,GACvD6B,EAAK5B,EAAM,EAAI76D,GAAK+6D,EAAMF,GAAOW,GAAMP,EAAM,EAAIF,EAAMF,GACvD6B,EAAK5B,EAAM,EAAI96D,GAAKg7D,EAAMF,GAAOU,GAAMN,EAAM,EAAIF,EAAMF,GAO3D,MAAO,CACH1gE,EAbIgiE,EAAMzB,EAAY,EAAN0B,EAAUr8D,EAAI66D,EAAW,EAALsB,EAASn8D,EAAIA,EAAI+6D,EAAMuB,EAAKrB,EAchE5gE,EAbI+hE,EAAMxB,EAAY,EAANyB,EAAUr8D,EAAI86D,EAAW,EAALqB,EAASn8D,EAAIA,EAAIg7D,EAAMsB,EAAKpB,EAchE1zD,EAAG,CAACpN,EAAGmiE,EAAIliE,EAAGmiE,GACdz3E,EAAG,CAACqV,EAAGqiE,EAAIpiE,EAAGqiE,GACdjxD,MAAO,CAACrR,EAXH+hE,EAAKxB,EAAM36D,EAAI66D,EAWLxgE,EAVV8hE,EAAKvB,EAAM56D,EAAI86D,GAWpB5+D,IAAK,CAAC9B,EAVD+hE,EAAKpB,EAAM/6D,EAAIi7D,EAUP5gE,EATR8hE,EAAKnB,EAAMh7D,EAAIk7D,GAUpByB,MATQ,GAAoC,IAA/BtZ,EAAK2C,MAAMuW,EAAKE,EAAID,EAAKE,GAAYha,GAY1D,SAASka,EAAWjC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,GAC9CrtD,EAAK+f,GAAG+sC,EAAK,WACdA,EAAM,CAACA,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,IAE9C,IAAI5Q,EAAOuS,EAAS/9E,MAAM,KAAM67E,GAChC,OAAOjM,EACHpE,EAAKv7D,IAAIqL,EACTkwD,EAAKv7D,IAAIsL,EACTiwD,EAAKt7D,IAAIoL,EAAIkwD,EAAKv7D,IAAIqL,EACtBkwD,EAAKt7D,IAAIqL,EAAIiwD,EAAKv7D,IAAIsL,GAG9B,SAASyiE,EAAkBxS,EAAMlwD,EAAGC,GAChC,OAAQD,GAAKkwD,EAAKlwD,GACVA,GAAKkwD,EAAKlwD,EAAIkwD,EAAKp1D,OACnBmF,GAAKiwD,EAAKjwD,GACVA,GAAKiwD,EAAKjwD,EAAIiwD,EAAKxzD,OAE/B,SAASimE,EAAgBC,EAAOC,GAG5B,OAFAD,EAAQtO,EAAIsO,GAELF,EADPG,EAAQvO,EAAIuO,GACoBD,EAAM5iE,EAAG4iE,EAAM3iE,IACxCyiE,EAAkBG,EAAOD,EAAM7W,GAAI6W,EAAM3iE,IACzCyiE,EAAkBG,EAAOD,EAAM5iE,EAAG4iE,EAAM5W,KACxC0W,EAAkBG,EAAOD,EAAM7W,GAAI6W,EAAM5W,KACzC0W,EAAkBE,EAAOC,EAAM7iE,EAAG6iE,EAAM5iE,IACxCyiE,EAAkBE,EAAOC,EAAM9W,GAAI8W,EAAM5iE,IACzCyiE,EAAkBE,EAAOC,EAAM7iE,EAAG6iE,EAAM7W,KACxC0W,EAAkBE,EAAOC,EAAM9W,GAAI8W,EAAM7W,MACxC4W,EAAM5iE,EAAI6iE,EAAM9W,IAAM6W,EAAM5iE,EAAI6iE,EAAM7iE,GACnC6iE,EAAM7iE,EAAI4iE,EAAM7W,IAAM8W,EAAM7iE,EAAI4iE,EAAM5iE,KACzC4iE,EAAM3iE,EAAI4iE,EAAM7W,IAAM4W,EAAM3iE,EAAI4iE,EAAM5iE,GACnC4iE,EAAM5iE,EAAI2iE,EAAM5W,IAAM6W,EAAM5iE,EAAI2iE,EAAM3iE,GAErD,SAAS6iE,EAAMl9D,EAAGm9D,EAAIC,EAAIC,EAAIC,GAG1B,OAAOt9D,GADEA,IADC,EAAIm9D,EAAK,EAAIC,EAAK,EAAIC,EAAK,EAAIC,GACvB,EAAIH,EAAK,GAAKC,EAAK,EAAIC,GACzB,EAAIF,EAAK,EAAIC,EAEjC,SAASjC,EAAOlV,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAI+U,EAAIC,EAAI3lD,GACnC,MAALA,IACAA,EAAI,GAQR,IALA,IAAI4nD,GADJ5nD,EAAIA,EAAI,EAAI,EAAIA,EAAI,EAAI,EAAIA,GACf,EAET6nD,EAAU,EAAE,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,OACnFC,EAAU,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACxFC,EAAM,EACDp/E,EAAI,EAAGA,EAJR,GAIeA,IAAK,CACxB,IAAIq/E,EAAKJ,EAAKC,EAAQl/E,GAAKi/E,EACvBK,EAAQV,EAAMS,EAAI1X,EAAIE,EAAIE,EAAIgV,GAC9BwC,EAAQX,EAAMS,EAAIzX,EAAIE,EAAIE,EAAIgV,GAC9BwC,EAAOF,EAAQA,EAAQC,EAAQA,EACnCH,GAAOD,EAAQn/E,GAAK+kE,EAAKhB,KAAKyb,GAElC,OAAOP,EAAKG,EAmBhB,SAASK,EAAU9X,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAI+U,EAAIC,GAC3C,KACIhY,EAAK2C,EAAIE,GAAM5C,EAAK8C,EAAIgV,IACxB9X,EAAK0C,EAAIE,GAAM7C,EAAK+C,EAAIgV,IACxB/X,EAAK4C,EAAIE,GAAM7C,EAAK+C,EAAIgV,IACxB/X,EAAK2C,EAAIE,GAAM9C,EAAKgD,EAAIgV,IAJ5B,CAQA,IAEI0C,GAAe/X,EAAKE,IAAOG,EAAKgV,IAAOpV,EAAKE,IAAOC,EAAKgV,GAE5D,GAAK2C,EAAL,CAGA,IAAIC,IAPMhY,EAAKG,EAAKF,EAAKC,IAAOE,EAAKgV,IAAOpV,EAAKE,IAAOE,EAAKiV,EAAKhV,EAAK+U,IAOzD2C,EACVE,IAPMjY,EAAKG,EAAKF,EAAKC,IAAOG,EAAKgV,IAAOpV,EAAKE,IAAOC,EAAKiV,EAAKhV,EAAK+U,IAOzD2C,EACVG,GAAOF,EAAGhV,QAAQ,GAClBmV,GAAOF,EAAGjV,QAAQ,GACtB,KACIkV,GAAO5a,EAAK0C,EAAIE,GAAI8C,QAAQ,IAC5BkV,GAAO7a,EAAK2C,EAAIE,GAAI8C,QAAQ,IAC5BkV,GAAO5a,EAAK8C,EAAIgV,GAAIpS,QAAQ,IAC5BkV,GAAO7a,EAAK+C,EAAIgV,GAAIpS,QAAQ,IAC5BmV,GAAO7a,EAAK2C,EAAIE,GAAI6C,QAAQ,IAC5BmV,GAAO9a,EAAK4C,EAAIE,GAAI6C,QAAQ,IAC5BmV,GAAO7a,EAAK+C,EAAIgV,GAAIrS,QAAQ,IAC5BmV,GAAO9a,EAAKgD,EAAIgV,GAAIrS,QAAQ,IAIhC,MAAO,CAAC7uD,EAAG6jE,EAAI5jE,EAAG6jE,KAQtB,SAASG,EAAYC,EAAMC,EAAMC,GAG7B,IAAKzB,EAFOH,EAAW0B,GACX1B,EAAW2B,IAEnB,OAAOC,EAAY,EAAI,GAU3B,IARA,IAEIC,KAFKtD,EAAOr8E,MAAM,EAAGw/E,GAER,GACbI,KAFKvD,EAAOr8E,MAAM,EAAGy/E,GAER,GACbI,EAAQ,GACRC,EAAQ,GACRC,EAAK,GACL13D,EAAMq3D,EAAY,EAAI,GACjBlgF,EAAI,EAAGA,EAAImgF,EAAK,EAAGngF,IAAK,CAC7B,IAAI+2B,EAAI+lD,EAAkBt8E,MAAM,EAAGw/E,EAAK54E,OAAOpH,EAAImgF,IACnDE,EAAM91E,KAAK,CAACuR,EAAGib,EAAEjb,EAAGC,EAAGgb,EAAEhb,EAAG2F,EAAG1hB,EAAImgF,IAEvC,IAAKngF,EAAI,EAAGA,EAAIogF,EAAK,EAAGpgF,IACpB+2B,EAAI+lD,EAAkBt8E,MAAM,EAAGy/E,EAAK74E,OAAOpH,EAAIogF,IAC/CE,EAAM/1E,KAAK,CAACuR,EAAGib,EAAEjb,EAAGC,EAAGgb,EAAEhb,EAAG2F,EAAG1hB,EAAIogF,IAEvC,IAAKpgF,EAAI,EAAGA,EAAImgF,EAAIngF,IAChB,IAAK,IAAI2qB,EAAI,EAAGA,EAAIy1D,EAAIz1D,IAAK,CACzB,IAAIohC,EAAKs0B,EAAMrgF,GACXwgF,EAAMH,EAAMrgF,EAAI,GAChBixD,EAAKqvB,EAAM31D,GACX81D,EAAMH,EAAM31D,EAAI,GAChBmhC,EAAKkY,EAAIwc,EAAI1kE,EAAIiwC,EAAGjwC,GAAK,KAAO,IAAM,IACtCk1C,EAAKgT,EAAIyc,EAAI3kE,EAAIm1C,EAAGn1C,GAAK,KAAO,IAAM,IACtCwzB,EAAKmwC,EAAU1zB,EAAGjwC,EAAGiwC,EAAGhwC,EAAGykE,EAAI1kE,EAAG0kE,EAAIzkE,EAAGk1C,EAAGn1C,EAAGm1C,EAAGl1C,EAAG0kE,EAAI3kE,EAAG2kE,EAAI1kE,GACpE,GAAIuzB,EAAI,CACJ,GAAIixC,EAAGjxC,EAAGxzB,EAAE6uD,QAAQ,KAAOr7B,EAAGvzB,EAAE4uD,QAAQ,GACpC,SAEJ4V,EAAGjxC,EAAGxzB,EAAE6uD,QAAQ,IAAMr7B,EAAGvzB,EAAE4uD,QAAQ,GACnC,IAAIkT,EAAK9xB,EAAGrqC,EAAIsiD,GAAK10B,EAAGwc,GAAMC,EAAGD,KAAQ00B,EAAI10B,GAAMC,EAAGD,MAAS00B,EAAI9+D,EAAIqqC,EAAGrqC,GACtEw7D,EAAKjsB,EAAGvvC,EAAIsiD,GAAK10B,EAAG0hB,GAAMC,EAAGD,KAAQyvB,EAAIzvB,GAAMC,EAAGD,MAASyvB,EAAI/+D,EAAIuvC,EAAGvvC,GACtEm8D,GAAM,GAAKA,GAAM,GAAKX,GAAM,GAAKA,GAAM,IACnCgD,EACAr3D,IAEAA,EAAIte,KAAK,CACLuR,EAAGwzB,EAAGxzB,EACNC,EAAGuzB,EAAGvzB,EACN8hE,GAAIA,EACJX,GAAIA,MAO5B,OAAOr0D,EAQX,SAAS63D,EAAgBC,EAAOC,EAAOV,GACnCS,EAAQhD,EAAWgD,GACnBC,EAAQjD,EAAWiD,GAGnB,IAFA,IAAIjZ,EAAIC,EAAIC,EAAIC,EAAI+Y,EAAKC,EAAKC,EAAKC,EAAKhB,EAAMC,EAC1Cp3D,EAAMq3D,EAAY,EAAI,GACjBlgF,EAAI,EAAG2sD,EAAKg0B,EAAMzgF,OAAQF,EAAI2sD,EAAI3sD,IAAK,CAC5C,IAAIysD,EAAKk0B,EAAM3gF,GACf,GAAa,KAATysD,EAAG,GACHkb,EAAKkZ,EAAMp0B,EAAG,GACdmb,EAAKkZ,EAAMr0B,EAAG,OACX,CACU,KAATA,EAAG,IACHuzB,EAAO,CAACrY,EAAIC,GAAIxgE,OAAOqlD,EAAG1jD,MAAM,IAChC4+D,EAAKqY,EAAK,GACVpY,EAAKoY,EAAK,KAEVA,EAAO,CAACrY,EAAIC,EAAID,EAAIC,EAAIiZ,EAAKC,EAAKD,EAAKC,GACvCnZ,EAAKkZ,EACLjZ,EAAKkZ,GAET,IAAK,IAAIn2D,EAAI,EAAG64C,EAAKod,EAAM1gF,OAAQyqB,EAAI64C,EAAI74C,IAAK,CAC5C,IAAIs2D,EAAKL,EAAMj2D,GACf,GAAa,KAATs2D,EAAG,GACHpZ,EAAKkZ,EAAME,EAAG,GACdnZ,EAAKkZ,EAAMC,EAAG,OACX,CACU,KAATA,EAAG,IACHhB,EAAO,CAACpY,EAAIC,GAAI1gE,OAAO65E,EAAGl4E,MAAM,IAChC8+D,EAAKoY,EAAK,GACVnY,EAAKmY,EAAK,KAEVA,EAAO,CAACpY,EAAIC,EAAID,EAAIC,EAAIiZ,EAAKC,EAAKD,EAAKC,GACvCnZ,EAAKkZ,EACLjZ,EAAKkZ,GAET,IAAIE,EAAOnB,EAAYC,EAAMC,EAAMC,GACnC,GAAIA,EACAr3D,GAAOq4D,MACJ,CACH,IAAK,IAAI16E,EAAI,EAAGkwD,EAAKwqB,EAAKhhF,OAAQsG,EAAIkwD,EAAIlwD,IACtC06E,EAAK16E,GAAG26E,SAAWnhF,EACnBkhF,EAAK16E,GAAG46E,SAAWz2D,EACnBu2D,EAAK16E,GAAGw5E,KAAOA,EACfkB,EAAK16E,GAAGy5E,KAAOA,EAEnBp3D,EAAMA,EAAIzhB,OAAO85E,OAMrC,OAAOr4D,EAOX,SAASw4D,EAAS79E,GACd,IAAIgoE,EAAMmQ,EAAMn4E,GAChB,GAAIgoE,EAAIQ,KACJ,OAAO9E,EAAMsE,EAAIQ,MAErB,IAAKxoE,EACD,OAAO4sE,IAQX,IALA,IAIIr5C,EAJAjb,EAAI,EACJC,EAAI,EACJ8d,EAAI,GACJE,EAAI,GAEC/5B,EAAI,EAAG2sD,GANhBnpD,EAAOm6E,EAAWn6E,IAMQtD,OAAQF,EAAI2sD,EAAI3sD,IAEtC,GAAY,MADZ+2B,EAAIvzB,EAAKxD,IACH,GACF8b,EAAIib,EAAE,GACNhb,EAAIgb,EAAE,GACN8C,EAAEtvB,KAAKuR,GACPie,EAAExvB,KAAKwR,OACJ,CACH,IAAIulE,EAAM/C,EAASziE,EAAGC,EAAGgb,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,IACzD8C,EAAIA,EAAEzyB,OAAOk6E,EAAI7wE,IAAIqL,EAAGwlE,EAAI5wE,IAAIoL,GAChCie,EAAIA,EAAE3yB,OAAOk6E,EAAI7wE,IAAIsL,EAAGulE,EAAI5wE,IAAIqL,GAChCD,EAAIib,EAAE,GACNhb,EAAIgb,EAAE,GAGd,IAAIwqD,EAAOtc,EAAKzkE,MAAM,EAAGq5B,GACrB2nD,EAAOvc,EAAKzkE,MAAM,EAAGu5B,GAGrBwG,EAAK6vC,EAAImR,EAAMC,EAFRxc,EAAKxkE,MAAM,EAAGq5B,GAEO0nD,EADrBvc,EAAKxkE,MAAM,EAAGu5B,GACoBynD,GAE7C,OADAhW,EAAIQ,KAAO9E,EAAM3mC,GACVA,EAEX,SAAS07C,EAASngE,EAAGC,EAAGqb,EAAGvc,EAAGoc,GAC1B,GAAIA,EACA,MAAO,CACH,CAAC,KAAMnb,IAAKmb,EAAGlb,GACf,CAAC,IAAKqb,EAAQ,EAAJH,EAAO,GACjB,CAAC,IAAKA,EAAGA,EAAG,EAAG,EAAG,EAAGA,EAAGA,GACxB,CAAC,IAAK,EAAGpc,EAAQ,EAAJoc,GACb,CAAC,IAAKA,EAAGA,EAAG,EAAG,EAAG,GAAIA,EAAGA,GACzB,CAAC,IAAS,EAAJA,EAAQG,EAAG,GACjB,CAAC,IAAKH,EAAGA,EAAG,EAAG,EAAG,GAAIA,GAAIA,GAC1B,CAAC,IAAK,EAAO,EAAJA,EAAQpc,GACjB,CAAC,IAAKoc,EAAGA,EAAG,EAAG,EAAG,EAAGA,GAAIA,GACzB,CAAC,MAGT,IAAIpO,EAAM,CAAC,CAAC,IAAK/M,EAAGC,GAAI,CAAC,IAAKqb,EAAG,GAAI,CAAC,IAAK,EAAGvc,GAAI,CAAC,KAAMuc,EAAG,GAAI,CAAC,MAEjE,OADAvO,EAAIlc,SAAWA,EACRkc,EAEX,SAAS44D,EAAY3lE,EAAGC,EAAGu7D,EAAIC,EAAIzvE,GAQ/B,GAPS,MAALA,GAAmB,MAANyvE,IACbA,EAAKD,GAETx7D,GAAKA,EACLC,GAAKA,EACLu7D,GAAMA,EACNC,GAAMA,EACG,MAALzvE,EACA,IAAI0+D,EAAM/5D,KAAK23D,GAAK,IAChBuD,EAAK7rD,EAAIw7D,EAAK7qE,KAAK46D,KAAKkQ,EAAK/Q,GAC7BqB,EAAK/rD,EAAIw7D,EAAK7qE,KAAK46D,KAAKv/D,EAAI0+D,GAG5B39C,EAAM,CAAC,CAAC,IAAK8+C,EAFR5rD,EAAIu7D,EAAK7qE,KAAK03D,KAAKoT,EAAK/Q,IAEP,CAAC,IAAK8Q,EAAIA,EAAI,IAAKxvE,EAAIyvE,EAAK,KAAM,EAAG1P,EADtD9rD,EAAIu7D,EAAK7qE,KAAK03D,KAAKr8D,EAAI0+D,UAGhC39C,EAAM,CACF,CAAC,IAAK/M,EAAGC,GACT,CAAC,IAAK,GAAIw7D,GACV,CAAC,IAAKD,EAAIC,EAAI,EAAG,EAAG,EAAG,EAAG,EAAIA,GAC9B,CAAC,IAAKD,EAAIC,EAAI,EAAG,EAAG,EAAG,GAAI,EAAIA,GAC/B,CAAC,MAIT,OADA1uD,EAAIlc,SAAWA,EACRkc,EAEX,IAAIkoD,EAAUxhD,EAAKm9C,SACfgV,EAAU,CACVl+E,KAAM,SAAU2R,GACZ,OAAOA,EAAG4C,KAAK,SAEnB0hE,OAAQ,SAAUtkE,GACd,IAAI4C,EAAOg5D,EAAQ57D,GACnB,OAAOssE,EAAY1pE,EAAKk8D,GAAIl8D,EAAKm8D,GAAIn8D,EAAKkf,IAE9C+iD,QAAS,SAAU7kE,GACf,IAAI4C,EAAOg5D,EAAQ57D,GACnB,OAAOssE,EAAY1pE,EAAKk8D,IAAM,EAAGl8D,EAAKm8D,IAAM,EAAGn8D,EAAKu/D,GAAIv/D,EAAKw/D,KAEjEiC,KAAM,SAAUrkE,GACZ,IAAI4C,EAAOg5D,EAAQ57D,GACnB,OAAO8mE,EAASlkE,EAAK+D,GAAK,EAAG/D,EAAKgE,GAAK,EAAGhE,EAAKnB,MAAOmB,EAAKS,OAAQT,EAAKu/D,GAAIv/D,EAAKw/D,KAErFjlD,MAAO,SAAUnd,GACb,IAAI4C,EAAOg5D,EAAQ57D,GACnB,OAAO8mE,EAASlkE,EAAK+D,GAAK,EAAG/D,EAAKgE,GAAK,EAAGhE,EAAKnB,MAAOmB,EAAKS,SAE/DiiE,KAAM,SAAUtlE,GACZ,MAAO,IAAM,CAACA,EAAG4C,KAAK,OAAS,EAAG5C,EAAG4C,KAAK,OAAS,EAAG5C,EAAG4C,KAAK,MAAO5C,EAAG4C,KAAK,QAEjF2iE,SAAU,SAAUvlE,GAChB,MAAO,IAAMA,EAAG4C,KAAK,WAEzB6iE,QAAS,SAAUzlE,GACf,MAAO,IAAMA,EAAG4C,KAAK,UAAY,KAErCu5D,MAAO,SAAUn8D,GACb,IAAI62D,EAAO72D,EAAGggB,KAAK43C,UACnB,OAAOkP,EAASjQ,EAAKlwD,EAAGkwD,EAAKjwD,EAAGiwD,EAAKp1D,MAAOo1D,EAAKxzD,UAmFzD,SAASmpE,EAAexF,GACpB,IAAI3Q,EAAMmQ,EAAMQ,GAChB,GAAI3Q,EAAIxH,IACJ,OAAOkY,EAAU1Q,EAAIxH,KAKzB,GAHK10B,EAAG6sC,EAAW,UAAa7sC,EAAG6sC,GAAaA,EAAU,GAAI,WAC1DA,EAAY5sD,EAAK+7C,gBAAgB6Q,KAEhCA,IAAcA,EAAUj8E,OACzB,MAAO,CAAC,CAAC,IAAK,EAAG,IAErB,IAMI0hF,EANA/4D,EAAM,GACN/M,EAAI,EACJC,EAAI,EACJkiE,EAAK,EACLC,EAAK,EACL/wD,EAAQ,EAEW,KAAnBgvD,EAAU,GAAG,KAGb8B,EAFAniE,GAAKqgE,EAAU,GAAG,GAGlB+B,EAFAniE,GAAKogE,EAAU,GAAG,GAGlBhvD,IACAtE,EAAI,GAAK,CAAC,IAAK/M,EAAGC,IAMtB,IAJA,IAISkb,EAAGgG,EAJR4kD,EAA0B,GAApB1F,EAAUj8E,QACG,KAAnBi8E,EAAU,GAAG,IACoB,KAAjCA,EAAU,GAAG,GAAG3lE,eACiB,KAAjC2lE,EAAU,GAAG,GAAG3lE,cACJxW,EAAImtB,EAAOw/B,EAAKwvB,EAAUj8E,OAAQF,EAAI2sD,EAAI3sD,IAAK,CAI3D,GAHA6oB,EAAIte,KAAK0sB,EAAI,KAEb2qD,GADA3kD,EAAKk/C,EAAUn8E,IACN,KACE4hF,EAAIprE,cAEX,OADAygB,EAAE,GAAK2qD,EAAIprE,cACHygB,EAAE,IACN,IAAK,IACDA,EAAE,GAAKgG,EAAG,GACVhG,EAAE,GAAKgG,EAAG,GACVhG,EAAE,GAAKgG,EAAG,GACVhG,EAAE,GAAKgG,EAAG,GACVhG,EAAE,GAAKgG,EAAG,GACVhG,EAAE,IAAMgG,EAAG,GAAKnhB,EAChBmb,EAAE,IAAMgG,EAAG,GAAKlhB,EAChB,MACJ,IAAK,IACDkb,EAAE,IAAMgG,EAAG,GAAKlhB,EAChB,MACJ,IAAK,IACDkb,EAAE,IAAMgG,EAAG,GAAKnhB,EAChB,MACJ,IAAK,IAED,IADA,IAAIgmE,EAAO,CAAChmE,EAAGC,GAAG3U,OAAO61B,EAAGl0B,MAAM,IACzB4hB,EAAI,EAAG64C,EAAKse,EAAK5hF,OAAQyqB,EAAI64C,EAAI74C,IACtCm3D,EAAKn3D,IAAMm3D,EAAKn3D,GAAK7O,EACrBgmE,IAAOn3D,IAAMm3D,EAAKn3D,GAAK5O,EAE3B8M,EAAIniB,MACJmiB,EAAMA,EAAIzhB,OAAO26E,EAAkBD,EAAMD,IACzC,MACJ,IAAK,IACDh5D,EAAIniB,OACJo7E,EAAOL,EAAY3lE,EAAGC,EAAGkhB,EAAG,GAAIA,EAAG,KAC9B1yB,KAAKu3E,EAAK,IACfj5D,EAAMA,EAAIzhB,OAAO06E,GACjB,MACJ,IAAK,IACDj5D,EAAIniB,MACJmiB,EAAMA,EAAIzhB,OAAOq6E,EAAY3lE,EAAGC,EAAGkhB,EAAG,GAAIA,EAAG,GAAIA,EAAG,KACpDhG,EAAI,CAAC,KAAK7vB,OAAOyhB,EAAIA,EAAI3oB,OAAS,GAAG6I,OAAO,IAC5C,MACJ,IAAK,IACDk1E,GAAMhhD,EAAG,GAAKnhB,EACdoiE,GAAMjhD,EAAG,GAAKlhB,EAClB,QACI,IAAK4O,EAAI,EAAG64C,EAAKvmC,EAAG/8B,OAAQyqB,EAAI64C,EAAI74C,IAChCsM,EAAEtM,IAAMsS,EAAGtS,IAAMA,EAAI,EAAI7O,EAAIC,QAGtC,GAAW,KAAP6lE,EACPE,EAAO,CAAChmE,EAAGC,GAAG3U,OAAO61B,EAAGl0B,MAAM,IAC9B8f,EAAIniB,MACJmiB,EAAMA,EAAIzhB,OAAO26E,EAAkBD,EAAMD,IACzC5qD,EAAI,CAAC,KAAK7vB,OAAO61B,EAAGl0B,OAAO,SACxB,GAAW,KAAP64E,EACP/4D,EAAIniB,OACJo7E,EAAOL,EAAY3lE,EAAGC,EAAGkhB,EAAG,GAAIA,EAAG,KAC9B1yB,KAAKu3E,EAAK,IACfj5D,EAAMA,EAAIzhB,OAAO06E,QACd,GAAW,KAAPF,EACP/4D,EAAIniB,MACJmiB,EAAMA,EAAIzhB,OAAOq6E,EAAY3lE,EAAGC,EAAGkhB,EAAG,GAAIA,EAAG,GAAIA,EAAG,KACpDhG,EAAI,CAAC,KAAK7vB,OAAOyhB,EAAIA,EAAI3oB,OAAS,GAAG6I,OAAO,SAE5C,IAAK,IAAIvC,EAAI,EAAGkwD,EAAKz5B,EAAG/8B,OAAQsG,EAAIkwD,EAAIlwD,IACpCywB,EAAEzwB,GAAKy2B,EAAGz2B,GAIlB,GAAW,MADXo7E,EAAMA,EAAIprE,eAEN,OAAQygB,EAAE,IACN,IAAK,IACDnb,GAAKmiE,EACLliE,GAAKmiE,EACL,MACJ,IAAK,IACDpiE,EAAImb,EAAE,GACN,MACJ,IAAK,IACDlb,EAAIkb,EAAE,GACN,MACJ,IAAK,IACDgnD,EAAKhnD,EAAEA,EAAE/2B,OAAS,GAClBg+E,EAAKjnD,EAAEA,EAAE/2B,OAAS,GACtB,QACI4b,EAAImb,EAAEA,EAAE/2B,OAAS,GACjB6b,EAAIkb,EAAEA,EAAE/2B,OAAS,IAMjC,OAFA2oB,EAAIlc,SAAWA,EACf6+D,EAAIxH,IAAMkY,EAAUrzD,GACbA,EAEX,SAASm5D,EAAIra,EAAIC,EAAIC,EAAIC,GACrB,MAAO,CAACH,EAAIC,EAAIC,EAAIC,EAAID,EAAIC,GAEhC,SAASma,EAAIta,EAAIC,EAAIsa,EAAIC,EAAIta,EAAIC,GAG7B,MAAO,CAFG,EAAI,EAGAH,EAFJ,EAAI,EAEWua,EAHf,EAAI,EAIAta,EAHJ,EAAI,EAGWua,EAJf,EAAI,EAKAta,EAJJ,EAAI,EAIWqa,EALf,EAAI,EAMApa,EALJ,EAAI,EAKWqa,EACjBta,EACAC,GAGZ,SAASsa,EAAIza,EAAIC,EAAI0P,EAAIC,EAAIpQ,EAAOkb,EAAgBC,EAAYza,EAAIC,EAAIya,GAGpE,IAGIhC,EAHAiC,EAAY,IAALpe,EAAW,IAClBoC,EAAMpC,EAAK,MAAQ+C,GAAS,GAC5Bt+C,EAAM,GAEN2jD,EAASj9C,EAAKm1C,EAAEyB,QAAO,SAAUrqD,EAAGC,EAAGyqD,GAGnC,MAAO,CAAC1qD,EAFAA,EAAIipD,EAAKsC,IAAIb,GAAOzqD,EAAIgpD,EAAKZ,IAAIqC,GAE3BzqD,EADND,EAAIipD,EAAKZ,IAAIqC,GAAOzqD,EAAIgpD,EAAKsC,IAAIb,OAGjD,IAAK8Q,IAAOC,EACR,MAAO,CAAC5P,EAAIC,EAAIC,EAAIC,EAAID,EAAIC,GAEhC,GAAKya,EAqCDE,EAAKF,EAAU,GACfG,EAAKH,EAAU,GACftO,EAAKsO,EAAU,GACfrO,EAAKqO,EAAU,OAxCH,CAEZ5a,GADA4Y,EAAK/T,EAAO7E,EAAIC,GAAKpB,IACb1qD,EACR8rD,EAAK2Y,EAAGxkE,EAER8rD,GADA0Y,EAAK/T,EAAO3E,EAAIC,GAAKtB,IACb1qD,EACRgsD,EAAKyY,EAAGxkE,EACEgpD,EAAKsC,IAAIjD,EAAK,IAAM+C,GACpBpC,EAAKZ,IAAIC,EAAK,IAAM+C,GAD9B,IAEIrrD,GAAK6rD,EAAKE,GAAM,EAChB9rD,GAAK6rD,EAAKE,GAAM,EAChBjtD,EAAIiB,EAAIA,GAAKw7D,EAAKA,GAAMv7D,EAAIA,GAAKw7D,EAAKA,GACtC18D,EAAI,IAEJy8D,GADAz8D,EAAIkqD,EAAKhB,KAAKlpD,GAEd08D,GAAK18D,GAET,IAAI8nE,EAAMrL,EAAKA,EACXsL,EAAMrL,EAAKA,EACX/wE,GAAK67E,GAAkBC,GAAc,EAAI,GACrCvd,EAAKhB,KAAKC,GAAK2e,EAAMC,EAAMD,EAAM5mE,EAAIA,EAAI6mE,EAAM9mE,EAAIA,IAAM6mE,EAAM5mE,EAAIA,EAAI6mE,EAAM9mE,EAAIA,KACrFm4D,EAAKztE,EAAI8wE,EAAKv7D,EAAIw7D,GAAM5P,EAAKE,GAAM,EACnCqM,EAAK1tE,GAAK+wE,EAAKz7D,EAAIw7D,GAAM1P,EAAKE,GAAM,EACpC2a,EAAK1d,EAAKuC,OAAOM,EAAKsM,GAAMqD,GAAI5M,QAAQ,IACxC+X,EAAK3d,EAAKuC,OAAOQ,EAAKoM,GAAMqD,GAAI5M,QAAQ,KAE5C8X,EAAK9a,EAAKsM,EAAK7P,EAAKqe,EAAKA,GAEpB,IAAMA,EAAU,EAALre,EAASqe,IADzBC,EAAK7a,EAAKoM,EAAK7P,EAAKse,EAAKA,GAEpB,IAAMA,EAAU,EAALte,EAASse,GACrBJ,GAAcG,EAAKC,IACnBD,GAAe,EAALre,IAETke,GAAcI,EAAKD,IACpBC,GAAe,EAALte,GAQlB,IAAIlqB,EAAKwoC,EAAKD,EACd,GAAIze,EAAI9pB,GAAMsoC,EAAM,CAChB,IAAIK,EAAQH,EACRI,EAAQjb,EACRkb,EAAQjb,EACZ4a,EAAKD,EAAKD,GAAQF,GAAcI,EAAKD,EAAK,GAAK,GAG/C55D,EAAMu5D,EAFNva,EAAKoM,EAAKqD,EAAKvS,EAAKsC,IAAIqb,GACxB5a,EAAKoM,EAAKqD,EAAKxS,EAAKZ,IAAIue,GACNpL,EAAIC,EAAIpQ,EAAO,EAAGmb,EAAYQ,EAAOC,EAAO,CAACL,EAAIG,EAAO5O,EAAIC,IAElFh6B,EAAKwoC,EAAKD,EACV,IAAIO,EAAKje,EAAKsC,IAAIob,GACdQ,EAAKle,EAAKZ,IAAIse,GACdS,EAAKne,EAAKsC,IAAIqb,GACdS,EAAKpe,EAAKZ,IAAIue,GACdhhE,EAAIqjD,EAAKqC,IAAIltB,EAAK,GAClBkpC,EAAK,EAAI,EAAI9L,EAAK51D,EAClB2hE,EAAK,EAAI,EAAI9L,EAAK71D,EAClB4hE,EAAK,CAAC3b,EAAIC,GACV2b,EAAK,CAAC5b,EAAKyb,EAAKH,EAAIrb,EAAKyb,EAAKL,GAC9BQ,EAAK,CAAC3b,EAAKub,EAAKD,EAAIrb,EAAKub,EAAKH,GAC9BO,EAAK,CAAC5b,EAAIC,GAGd,GAFAyb,EAAG,GAAK,EAAID,EAAG,GAAKC,EAAG,GACvBA,EAAG,GAAK,EAAID,EAAG,GAAKC,EAAG,GACnBhB,EACA,MAAO,CAACgB,EAAIC,EAAIC,GAAIr8E,OAAOyhB,GAI3B,IADA,IAAI66D,EAAS,GACJ1jF,EAAI,EAAG2sD,GAFhB9jC,EAAM,CAAC06D,EAAIC,EAAIC,GAAIr8E,OAAOyhB,GAAKnhB,OAAOX,MAAM,MAEnB7G,OAAQF,EAAI2sD,EAAI3sD,IACrC0jF,EAAO1jF,GAAKA,EAAI,EAAIwsE,EAAO3jD,EAAI7oB,EAAI,GAAI6oB,EAAI7oB,GAAIwmE,GAAKzqD,EAAIywD,EAAO3jD,EAAI7oB,GAAI6oB,EAAI7oB,EAAI,GAAIwmE,GAAK1qD,EAE5F,OAAO4nE,EAef,SAASnF,EAASoF,EAAIC,EAAIjc,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,GAI1C,IAHA,IAEIlgE,EAAGC,EAAG0Z,EAAGC,EAAGm8D,EAAIX,EAAI2G,EAAMC,EAF1BC,EAAU,GACVC,EAAS,CAAC,GAAI,IAEThkF,EAAI,EAAGA,EAAI,IAAKA,EAUrB,GATS,GAALA,GACA+H,EAAI,EAAI47E,EAAK,GAAKhc,EAAK,EAAIE,EAC3B//D,GAAK,EAAI67E,EAAK,EAAIhc,EAAK,EAAIE,EAAK,EAAIE,EACpCtmD,EAAI,EAAIkmD,EAAK,EAAIgc,IAEjB57E,EAAI,EAAI67E,EAAK,GAAKhc,EAAK,EAAIE,EAC3BhgE,GAAK,EAAI87E,EAAK,EAAIhc,EAAK,EAAIE,EAAK,EAAIE,EACpCvmD,EAAI,EAAImmD,EAAK,EAAIgc,GAEjB5f,EAAIl8D,GAAK,MAAb,CACI,GAAIk8D,EAAIj8D,GAAK,MACT,SAGA,GADJ2Z,GAAKD,EAAI1Z,IACI2Z,EAAI,GACbqiE,EAAQx5E,KAAKmX,QAIrBmiE,EAAO97E,EAAIA,EAAI,EAAI0Z,EAAI3Z,EACvBg8E,EAAW/e,EAAKhB,KAAK8f,GACjBA,EAAO,IAIP,GADJhG,IAAO91E,EAAI+7E,IAAa,EAAIh8E,KACd+1E,EAAK,GACfkG,EAAQx5E,KAAKszE,GAGb,GADJX,IAAOn1E,EAAI+7E,IAAa,EAAIh8E,KACdo1E,EAAK,GACf6G,EAAQx5E,KAAK2yE,IAOrB,IAHA,IAEI+G,EAFMt5D,EAAIo5D,EAAQ7jF,OAClBgkF,EAAOv5D,EAEJA,KAEHs5D,EAAK,GADLviE,EAAIqiE,EAAQp5D,IAEZq5D,EAAO,GAAGr5D,GAAKs5D,EAAKA,EAAKA,EAAKN,EAAK,EAAIM,EAAKA,EAAKviE,EAAIimD,EAAK,EAAIsc,EAAKviE,EAAIA,EAAImmD,EAAKnmD,EAAIA,EAAIA,EAAIqmD,EAC5Fic,EAAO,GAAGr5D,GAAKs5D,EAAKA,EAAKA,EAAKL,EAAK,EAAIK,EAAKA,EAAKviE,EAAIkmD,EAAK,EAAIqc,EAAKviE,EAAIA,EAAIomD,EAAKpmD,EAAIA,EAAIA,EAAIsmD,EAUhG,OAPAgc,EAAO,GAAGE,GAAQP,EAClBK,EAAO,GAAGE,GAAQN,EAClBI,EAAO,GAAGE,EAAO,GAAKnc,EACtBic,EAAO,GAAGE,EAAO,GAAKlc,EACtBgc,EAAO,GAAG9jF,OAAS8jF,EAAO,GAAG9jF,OAASgkF,EAAO,EAGtC,CACLzzE,IAAK,CAACqL,EAAGmpD,EAAKzkE,MAAM,EAAGwjF,EAAO,IAAKjoE,EAAGkpD,EAAKzkE,MAAM,EAAGwjF,EAAO,KAC3DtzE,IAAK,CAACoL,EAAGkpD,EAAKxkE,MAAM,EAAGwjF,EAAO,IAAKjoE,EAAGipD,EAAKxkE,MAAM,EAAGwjF,EAAO,MAIjE,SAASrG,EAAWn6E,EAAMo9E,GACtB,IAAIpV,GAAOoV,GAASjF,EAAMn4E,GAC1B,IAAKo9E,GAASpV,EAAI2Y,MACd,OAAOjI,EAAU1Q,EAAI2Y,OAyFzB,IAvFA,IAAIptD,EAAI4qD,EAAen+E,GACnBs7E,EAAK8B,GAASe,EAAef,GAC7BlK,EAAQ,CAAC56D,EAAG,EAAGC,EAAG,EAAGqoE,GAAI,EAAGC,GAAI,EAAGxqD,EAAG,EAAGE,EAAG,EAAGuqD,GAAI,KAAMC,GAAI,MAC7DC,EAAS,CAAC1oE,EAAG,EAAGC,EAAG,EAAGqoE,GAAI,EAAGC,GAAI,EAAGxqD,EAAG,EAAGE,EAAG,EAAGuqD,GAAI,KAAMC,GAAI,MAC9DE,EAAc,SAAUjhF,EAAMmV,EAAG+rE,GAC7B,IAAIvG,EAAIC,EACR,IAAK56E,EACD,MAAO,CAAC,IAAKmV,EAAEmD,EAAGnD,EAAEoD,EAAGpD,EAAEmD,EAAGnD,EAAEoD,EAAGpD,EAAEmD,EAAGnD,EAAEoD,GAG5C,SADEvY,EAAK,IAAM,CAACg2B,EAAG,EAAGN,EAAG,MAAQvgB,EAAE2rE,GAAK3rE,EAAE4rE,GAAK,MACrC/gF,EAAK,IACT,IAAK,IACDmV,EAAEkhB,EAAIr2B,EAAK,GACXmV,EAAEohB,EAAIv2B,EAAK,GACX,MACJ,IAAK,IACDA,EAAO,CAAC,KAAK4D,OAAOg7E,EAAI5hF,MAAM,EAAG,CAACmY,EAAEmD,EAAGnD,EAAEoD,GAAG3U,OAAO5D,EAAKuF,MAAM,MAC9D,MACJ,IAAK,IACW,KAAR27E,GAAuB,KAARA,GACfvG,EAAW,EAANxlE,EAAEmD,EAAQnD,EAAEyrE,GACjBhG,EAAW,EAANzlE,EAAEoD,EAAQpD,EAAE0rE,KAGjBlG,EAAKxlE,EAAEmD,EACPsiE,EAAKzlE,EAAEoD,GAEXvY,EAAO,CAAC,IAAK26E,EAAIC,GAAIh3E,OAAO5D,EAAKuF,MAAM,IACvC,MACJ,IAAK,IACW,KAAR27E,GAAuB,KAARA,GACf/rE,EAAE2rE,GAAW,EAAN3rE,EAAEmD,EAAQnD,EAAE2rE,GACnB3rE,EAAE4rE,GAAW,EAAN5rE,EAAEoD,EAAQpD,EAAE4rE,KAGnB5rE,EAAE2rE,GAAK3rE,EAAEmD,EACTnD,EAAE4rE,GAAK5rE,EAAEoD,GAEbvY,EAAO,CAAC,KAAK4D,OAAO66E,EAAItpE,EAAEmD,EAAGnD,EAAEoD,EAAGpD,EAAE2rE,GAAI3rE,EAAE4rE,GAAI/gF,EAAK,GAAIA,EAAK,KAC5D,MACJ,IAAK,IACDmV,EAAE2rE,GAAK9gF,EAAK,GACZmV,EAAE4rE,GAAK/gF,EAAK,GACZA,EAAO,CAAC,KAAK4D,OAAO66E,EAAItpE,EAAEmD,EAAGnD,EAAEoD,EAAGvY,EAAK,GAAIA,EAAK,GAAIA,EAAK,GAAIA,EAAK,KAClE,MACJ,IAAK,IACDA,EAAO,CAAC,KAAK4D,OAAO46E,EAAIrpE,EAAEmD,EAAGnD,EAAEoD,EAAGvY,EAAK,GAAIA,EAAK,KAChD,MACJ,IAAK,IACDA,EAAO,CAAC,KAAK4D,OAAO46E,EAAIrpE,EAAEmD,EAAGnD,EAAEoD,EAAGvY,EAAK,GAAImV,EAAEoD,IAC7C,MACJ,IAAK,IACDvY,EAAO,CAAC,KAAK4D,OAAO46E,EAAIrpE,EAAEmD,EAAGnD,EAAEoD,EAAGpD,EAAEmD,EAAGtY,EAAK,KAC5C,MACJ,IAAK,IACDA,EAAO,CAAC,KAAK4D,OAAO46E,EAAIrpE,EAAEmD,EAAGnD,EAAEoD,EAAGpD,EAAEkhB,EAAGlhB,EAAEohB,IAGjD,OAAOv2B,GAEXmhF,EAAS,SAAUC,EAAI5kF,GACnB,GAAI4kF,EAAG5kF,GAAGE,OAAS,EAAG,CAClB0kF,EAAG5kF,GAAGkqC,QAEN,IADA,IAAIuiB,EAAKm4B,EAAG5kF,GACLysD,EAAGvsD,QACN2kF,EAAO7kF,GAAK,IACZ8+E,IAAOgG,EAAO9kF,GAAK,KACnB4kF,EAAGvzE,OAAOrR,IAAK,EAAG,CAAC,KAAKoH,OAAOqlD,EAAGp7C,OAAO,EAAG,KAEhDuzE,EAAGvzE,OAAOrR,EAAG,GACb2sD,EAAKqY,EAAKjuC,EAAE72B,OAAQ4+E,GAAMA,EAAG5+E,QAAU,KAG/C6kF,EAAO,SAAUpE,EAAOC,EAAOoE,EAAIC,EAAIjlF,GAC/B2gF,GAASC,GAAwB,KAAfD,EAAM3gF,GAAG,IAA4B,KAAf4gF,EAAM5gF,GAAG,KACjD4gF,EAAMvvE,OAAOrR,EAAG,EAAG,CAAC,IAAKilF,EAAGnpE,EAAGmpE,EAAGlpE,IAClCipE,EAAGZ,GAAK,EACRY,EAAGX,GAAK,EACRW,EAAGlpE,EAAI6kE,EAAM3gF,GAAG,GAChBglF,EAAGjpE,EAAI4kE,EAAM3gF,GAAG,GAChB2sD,EAAKqY,EAAKjuC,EAAE72B,OAAQ4+E,GAAMA,EAAG5+E,QAAU,KAG/C2kF,EAAS,GACTC,EAAS,GACTI,EAAS,GACTR,EAAO,GACF1kF,EAAI,EAAG2sD,EAAKqY,EAAKjuC,EAAE72B,OAAQ4+E,GAAMA,EAAG5+E,QAAU,GAAIF,EAAI2sD,EAAI3sD,IAAK,CACpE+2B,EAAE/2B,KAAOklF,EAASnuD,EAAE/2B,GAAG,IAET,KAAVklF,IAEAL,EAAO7kF,GAAKklF,EACZllF,IAAO0kF,EAAOG,EAAO7kF,EAAI,KAE7B+2B,EAAE/2B,GAAKykF,EAAY1tD,EAAE/2B,GAAI02E,EAAOgO,GAEf,KAAbG,EAAO7kF,IAAuB,KAAVklF,IAAeL,EAAO7kF,GAAK,KAInD2kF,EAAO5tD,EAAG/2B,GAEN8+E,IACAA,EAAG9+E,KAAOklF,EAASpG,EAAG9+E,GAAG,IACX,KAAVklF,IACAJ,EAAO9kF,GAAKklF,EACZllF,IAAM0kF,EAAOI,EAAO9kF,EAAI,KAE5B8+E,EAAG9+E,GAAKykF,EAAY3F,EAAG9+E,GAAIwkF,EAAQE,GAElB,KAAbI,EAAO9kF,IAAuB,KAAVklF,IACpBJ,EAAO9kF,GAAK,KAGhB2kF,EAAO7F,EAAI9+E,IAEf+kF,EAAKhuD,EAAG+nD,EAAIpI,EAAO8N,EAAQxkF,GAC3B+kF,EAAKjG,EAAI/nD,EAAGytD,EAAQ9N,EAAO12E,GAC3B,IAAImlF,EAAMpuD,EAAE/2B,GACRolF,EAAOtG,GAAMA,EAAG9+E,GAChBqlF,EAASF,EAAIjlF,OACbolF,EAAUxG,GAAMsG,EAAKllF,OACzBw2E,EAAM56D,EAAIqpE,EAAIE,EAAS,GACvB3O,EAAM36D,EAAIopE,EAAIE,EAAS,GACvB3O,EAAM0N,GAAKvf,EAAQsgB,EAAIE,EAAS,KAAO3O,EAAM56D,EAC7C46D,EAAM2N,GAAKxf,EAAQsgB,EAAIE,EAAS,KAAO3O,EAAM36D,EAC7CyoE,EAAOJ,GAAKtF,IAAOja,EAAQugB,EAAKE,EAAU,KAAOd,EAAO1oE,GACxD0oE,EAAOH,GAAKvF,IAAOja,EAAQugB,EAAKE,EAAU,KAAOd,EAAOzoE,GACxDyoE,EAAO1oE,EAAIgjE,GAAMsG,EAAKE,EAAU,GAChCd,EAAOzoE,EAAI+iE,GAAMsG,EAAKE,EAAU,GAKpC,OAHKxG,IACDtT,EAAI2Y,MAAQjI,EAAUnlD,IAEnB+nD,EAAK,CAAC/nD,EAAG+nD,GAAM/nD,EAqB1B,SAASgrD,EAAkBwD,EAAKluD,GAE5B,IADA,IAAI1e,EAAI,GACC3Y,EAAI,EAAGwlF,EAAOD,EAAIrlF,OAAQslF,EAAO,GAAKnuD,EAAIr3B,EAAGA,GAAK,EAAG,CAC1D,IAAI+2B,EAAI,CACI,CAACjb,GAAIypE,EAAIvlF,EAAI,GAAI+b,GAAIwpE,EAAIvlF,EAAI,IAC7B,CAAC8b,GAAIypE,EAAIvlF,GAAQ+b,GAAIwpE,EAAIvlF,EAAI,IAC7B,CAAC8b,GAAIypE,EAAIvlF,EAAI,GAAI+b,GAAIwpE,EAAIvlF,EAAI,IAC7B,CAAC8b,GAAIypE,EAAIvlF,EAAI,GAAI+b,GAAIwpE,EAAIvlF,EAAI,KAErCq3B,EACKr3B,EAEMwlF,EAAO,GAAKxlF,EACnB+2B,EAAE,GAAK,CAACjb,GAAIypE,EAAI,GAAIxpE,GAAIwpE,EAAI,IACrBC,EAAO,GAAKxlF,IACnB+2B,EAAE,GAAK,CAACjb,GAAIypE,EAAI,GAAIxpE,GAAIwpE,EAAI,IAC5BxuD,EAAE,GAAK,CAACjb,GAAIypE,EAAI,GAAIxpE,GAAIwpE,EAAI,KAL5BxuD,EAAE,GAAK,CAACjb,GAAIypE,EAAIC,EAAO,GAAIzpE,GAAIwpE,EAAIC,EAAO,IAQ1CA,EAAO,GAAKxlF,EACZ+2B,EAAE,GAAKA,EAAE,GACD/2B,IACR+2B,EAAE,GAAK,CAACjb,GAAIypE,EAAIvlF,GAAI+b,GAAIwpE,EAAIvlF,EAAI,KAGxC2Y,EAAEpO,KAAK,CAAC,MACAwsB,EAAE,GAAGjb,EAAI,EAAIib,EAAE,GAAGjb,EAAIib,EAAE,GAAGjb,GAAK,IAChCib,EAAE,GAAGhb,EAAI,EAAIgb,EAAE,GAAGhb,EAAIgb,EAAE,GAAGhb,GAAK,GACjCgb,EAAE,GAAGjb,EAAI,EAAIib,EAAE,GAAGjb,EAAIib,EAAE,GAAGjb,GAAK,GAChCib,EAAE,GAAGhb,EAAI,EAAEgb,EAAE,GAAGhb,EAAIgb,EAAE,GAAGhb,GAAK,EAC/Bgb,EAAE,GAAGjb,EACLib,EAAE,GAAGhb,IAIf,OAAOpD,EAIX4W,EAAK/rB,KAAOm4E,EAYZpsD,EAAK/rB,KAAKolE,eAAiBA,EAiB3Br5C,EAAK/rB,KAAK2lE,iBAAmBA,EAa7B55C,EAAK/rB,KAAKiiF,WAAa,SAAUjiF,EAAMoD,EAAMzF,GACzC,GAAIV,KAAKmoE,eAAeplE,GAAQrC,EAAK,KACjC,OAAOy8E,EAAoBp6E,EAAMoD,GAAMgX,IAE3C,IAAI9V,EAAI81E,EAAoBp6E,EAAMrC,EAAI,GACtC,OAAOyF,EAAOg3E,EAAoB91E,EAAGlB,GAAMgX,IAAM9V,GASrDgpE,EAAQlI,eAAiB,WACrB,GAAInoE,KAAK00B,KAAKyzC,eACV,OAAOnoE,KAAK00B,KAAKyzC,kBAmBzBkI,EAAQ3H,iBAAmB,SAAUjpE,GACjC,OAAOipE,EAAiB1oE,KAAKsX,KAAK,KAAM7X,IAc5C4wE,EAAQ2U,WAAa,SAAU7+E,EAAMzF,GACjC,OAAOouB,EAAK/rB,KAAKiiF,WAAWhlF,KAAKsX,KAAK,KAAMnR,EAAMzF,IAEtDouB,EAAKm1C,EAAE0L,IAAMA,EAwCb7gD,EAAK/rB,KAAKs5E,kBAAoBA,EA4B9BvtD,EAAK/rB,KAAK86E,WAAaA,EAavB/uD,EAAK/rB,KAAKg7E,kBAAoBA,EAC9BjvD,EAAKm2D,QAAU,SAAU5pE,EAAGC,EAAG8d,EAAGE,GAgB9B,IAfA,IAAI9C,EAAI,IACJlvB,EAAIqoE,EAAIt0D,EAAImb,EAAI,EAAGlb,EAAIkb,EAAI,EAAGA,EAAGA,GACjC0uD,EAAS,GACTjyE,EAASmmB,EAAE,GAAGv5B,eAAe,KAAO,SAAUN,GAC1C,MAAO,CACH8b,EAAG+d,EAAE75B,GAAG8b,EACRC,EAAG8d,EAAE75B,GAAG+b,IAEZ,SAAU/b,GACV,MAAO,CACH8b,EAAG+d,EAAE75B,GACL+b,EAAGge,EAAE/5B,KAGb4lF,EAAQ,EACL3uD,GAAK,MAAQ2uD,GAAO,CACvB,IAAK,IAAI5lF,EAAI,EAAG2sD,EAAK9yB,EAAE35B,OAAQF,EAAI2sD,EAAI3sD,IAAK,CACxC,IAAIugF,EAAK7sE,EAAO1T,GAChB,GAAIw+E,EAAkBz2E,EAAGw4E,EAAGzkE,EAAGykE,EAAGxkE,GAAI,CAClC6pE,IACAD,EAAOp7E,KAAKg2E,GACZ,OAGHqF,IAED79E,EAAIqoE,EAAIt0D,GADRmb,GAAK,GACW,EAAGlb,EAAIkb,EAAI,EAAGA,EAAGA,IAGzC,GAAS,KAALA,EAAJ,CAGA,IACIpO,EADAlK,EAAMsqD,IAEV,IAAKjpE,EAAI,EAAG2sD,EAAKg5B,EAAOzlF,OAAQF,EAAI2sD,EAAI3sD,IAAK,CACzC,IAAI62B,EAAItH,EAAK5Q,IAAI7C,EAAGC,EAAG4pE,EAAO3lF,GAAG8b,EAAG6pE,EAAO3lF,GAAG+b,GAC1C4C,EAAMkY,IACNlY,EAAMkY,EACN8uD,EAAO3lF,GAAG2e,IAAMkY,EAChBhO,EAAM88D,EAAO3lF,IAGrB,OAAO6oB,IAaX0G,EAAK/rB,KAAKi7E,gBAAkBA,EAwB5BlvD,EAAK/rB,KAAKqiF,aAjgCV,SAA0BlF,EAAOC,GAC7B,OAAOF,EAAgBC,EAAOC,IAigClCrxD,EAAK/rB,KAAKsiF,mBA//BV,SAAgCnF,EAAOC,GACnC,OAAOF,EAAgBC,EAAOC,EAAO,IA6gCzCrxD,EAAK/rB,KAAKuiF,cAt9BV,SAA2BviF,EAAMsY,EAAGC,GAChC,IAAIiwD,EAAOqV,EAAS79E,GACpB,OAAOg7E,EAAkBxS,EAAMlwD,EAAGC,IAC3B2kE,EAAgBl9E,EAAM,CAAC,CAAC,IAAKsY,EAAGC,GAAI,CAAC,IAAKiwD,EAAKnE,GAAK,KAAM,GAAK,GAAK,GAs+B/Et4C,EAAK/rB,KAAKupE,QAAUsU,EACpB9xD,EAAK/rB,KAAKmQ,IAAM+tE,EAWhBnyD,EAAK/rB,KAAKwiF,WA13BV,SAAwB7J,GACpB,IAAI3Q,EAAMmQ,EAAMQ,GACZ8J,EAAYv6D,OAAOrrB,UAAUsI,YACjC,GAAI6iE,EAAI0a,IACJ,OAAOhK,EAAU1Q,EAAI0a,KAEpB32D,EAAK+f,GAAG6sC,EAAW,UAAa5sD,EAAK+f,GAAG6sC,GAAaA,EAAU,GAAI,WACpEA,EAAY5sD,EAAK+7C,gBAAgB6Q,IAErC,IAAItzD,EAAM,GACN/M,EAAI,EACJC,EAAI,EACJkiE,EAAK,EACLC,EAAK,EACL/wD,EAAQ,EACW,KAAnBgvD,EAAU,GAAG,KAGb8B,EAFAniE,EAAIqgE,EAAU,GAAG,GAGjB+B,EAFAniE,EAAIogE,EAAU,GAAG,GAGjBhvD,IACAtE,EAAIte,KAAK,CAAC,IAAKuR,EAAGC,KAEtB,IAAK,IAAI/b,EAAImtB,EAAOw/B,EAAKwvB,EAAUj8E,OAAQF,EAAI2sD,EAAI3sD,IAAK,CACpD,IAAIi3B,EAAIpO,EAAI7oB,GAAK,GACbi9B,EAAKk/C,EAAUn8E,GACnB,GAAIi9B,EAAG,IAAMgpD,EAAU1lF,KAAK08B,EAAG,IAE3B,OADAhG,EAAE,GAAKgvD,EAAU1lF,KAAK08B,EAAG,IACjBhG,EAAE,IACN,IAAK,IACDA,EAAE,GAAKgG,EAAG,GACVhG,EAAE,GAAKgG,EAAG,GACVhG,EAAE,GAAKgG,EAAG,GACVhG,EAAE,GAAKgG,EAAG,GACVhG,EAAE,GAAKgG,EAAG,GACVhG,EAAE,KAAOgG,EAAG,GAAKnhB,GAAG6uD,QAAQ,GAC5B1zC,EAAE,KAAOgG,EAAG,GAAKlhB,GAAG4uD,QAAQ,GAC5B,MACJ,IAAK,IACD1zC,EAAE,KAAOgG,EAAG,GAAKlhB,GAAG4uD,QAAQ,GAC5B,MACJ,IAAK,IACDsT,EAAKhhD,EAAG,GACRihD,EAAKjhD,EAAG,GACZ,QACI,IAAK,IAAItS,EAAI,EAAG64C,EAAKvmC,EAAG/8B,OAAQyqB,EAAI64C,EAAI74C,IACpCsM,EAAEtM,KAAOsS,EAAGtS,IAAMA,EAAI,EAAI7O,EAAIC,IAAI4uD,QAAQ,OAGnD,CACH1zC,EAAIpO,EAAI7oB,GAAK,GACA,KAATi9B,EAAG,KACHghD,EAAKhhD,EAAG,GAAKnhB,EACboiE,EAAKjhD,EAAG,GAAKlhB,GAEjB,IAAK,IAAIvV,EAAI,EAAGkwD,EAAKz5B,EAAG/8B,OAAQsG,EAAIkwD,EAAIlwD,IACpCqiB,EAAI7oB,GAAGwG,GAAKy2B,EAAGz2B,GAGvB,IAAImY,EAAMkK,EAAI7oB,GAAGE,OACjB,OAAQ2oB,EAAI7oB,GAAG,IACX,IAAK,IACD8b,EAAImiE,EACJliE,EAAImiE,EACJ,MACJ,IAAK,IACDpiE,IAAM+M,EAAI7oB,GAAG2e,EAAM,GACnB,MACJ,IAAK,IACD5C,IAAM8M,EAAI7oB,GAAG2e,EAAM,GACnB,MACJ,QACI7C,IAAM+M,EAAI7oB,GAAG2e,EAAM,GACnB5C,IAAM8M,EAAI7oB,GAAG2e,EAAM,IAK/B,OAFAkK,EAAIlc,SAAWA,EACf6+D,EAAI0a,IAAMhK,EAAUrzD,GACbA,GAuzBX0G,EAAK/rB,KAAK2zE,WAAawK,EAWvBpyD,EAAK/rB,KAAK2iF,QAAUxI,EAUpBpuD,EAAK/rB,KAAKyN,IA1YV,SAAiBzN,EAAMiuE,GACnB,IAAKA,EACD,OAAOjuE,EAEX,IAAIsY,EAAGC,EAAG/b,EAAG2qB,EAAGgiC,EAAI6W,EAAI4iB,EAExB,IAAKpmF,EAAI,EAAG2sD,GADZnpD,EAAOm6E,EAAWn6E,IACItD,OAAQF,EAAI2sD,EAAI3sD,IAElC,IAAK2qB,EAAI,EAAG64C,GADZ4iB,EAAQ5iF,EAAKxD,IACUE,OAAQyqB,EAAI64C,EAAI74C,GAAK,EACxC7O,EAAI21D,EAAO31D,EAAEsqE,EAAMz7D,GAAIy7D,EAAMz7D,EAAI,IACjC5O,EAAI01D,EAAO11D,EAAEqqE,EAAMz7D,GAAIy7D,EAAMz7D,EAAI,IACjCy7D,EAAMz7D,GAAK7O,EACXsqE,EAAMz7D,EAAI,GAAK5O,EAGvB,OAAOvY,GA4XX+rB,EAAK/rB,KAAKmJ,SAAWA,EACrB4iB,EAAK/rB,KAAK0jE,MAAQgV,KAgBtB3sD,EAAKshD,QAAO,SAAUthD,EAAMhrB,EAASkgE,EAAOF,GACxC,IAAIS,EAAOv4D,KAAKiE,IACZu0D,EAAOx4D,KAAKgE,IAGZk+C,EAAM,SAAU03B,GAKhB,GAJA5lF,KAAK4lF,MAAQ,GACpB5lF,KAAK6lF,SAAW,GACT7lF,KAAKP,OAAS,EACdO,KAAKiiB,KAAO,MACR2jE,EACA,IAAK,IAAIrmF,EAAI,EAAG2sD,EAAK05B,EAAMnmF,OAAQF,EAAI2sD,EAAI3sD,IACnCqmF,EAAMrmF,KACNS,KAAKA,KAAK4lF,MAAMnmF,QAAUO,KAAK4lF,MAAM5lF,KAAK4lF,MAAMnmF,QAAUmmF,EAAMrmF,GAChES,KAAKP,WAKrBqmF,EAAW53B,EAAItuD,UAQfkmF,EAASh8E,KAAO,WAGZ,IAFA,IAAIpC,EACAwW,EACK3e,EAAI,EAAG2sD,EAAK1sD,UAAUC,OAAQF,EAAI2sD,EAAI3sD,KAC3CmI,EAAOlI,UAAUD,MAGbS,KADAke,EAAMle,KAAK4lF,MAAMnmF,QACLO,KAAK4lF,MAAM1nE,GAAOxW,EAC9B1H,KAAKP,UAGb,OAAOO,MASX8lF,EAAS7/E,IAAM,WAEX,OADAjG,KAAKP,eAAiBO,KAAKA,KAAKP,UACzBO,KAAK4lF,MAAM3/E,OActB6/E,EAAS17E,QAAU,SAAUV,EAAUszD,GACnC,IAAK,IAAIz9D,EAAI,EAAG2sD,EAAKlsD,KAAK4lF,MAAMnmF,OAAQF,EAAI2sD,EAAI3sD,IAC5C,IAAiD,IAA7CmK,EAAS5J,KAAKk9D,EAASh9D,KAAK4lF,MAAMrmF,GAAIA,GACtC,OAAOS,KAGf,OAAOA,MAuBX8lF,EAASzuE,QAAU,SAAU4+D,EAAO1E,EAAIplD,EAAQziB,GACvB,mBAAVyiB,GAAyBA,EAAO1sB,SACvCiK,EAAWyiB,EACXA,EAASq1C,EAAKvD,QAEdgY,aAAiBnnD,EAAKm1C,EAAE8hB,YACxBr8E,EAAWusE,EAAMvsE,SACjByiB,EAAS8pD,EAAM9pD,OACfolD,EAAKplD,EAAOo2C,IACZ0T,EAAQA,EAAM3+D,MAElB,IAAIpN,EAAO1K,UACX,GAAIsvB,EAAK+f,GAAGonC,EAAO,UAAYnnD,EAAK+f,GAAG3kC,EAAKA,EAAKzK,OAAS,GAAI,SAC1D,IAAIumF,GAAO,EAEf,IAAIC,EACA/rE,EAAU,WACF+rE,EACAjmF,KAAKsH,EAAI2+E,EAETA,EAAQjmF,KAAKsH,GAGrBy4B,EAAK,EACLvrB,EAAMxU,KACNkmF,EAAax8E,GAAY,aACfq2B,GAAMvrB,EAAI/U,QACZiK,EAAS5J,KAAKE,OAG1B,OAAOA,KAAKoK,SAAQ,SAAUsK,EAAInV,GAC9BoiE,IAAIoN,KAAK,oBAAsBr6D,EAAGS,GAAI+E,GAClC8rE,EACA97E,EAAK3K,IAAMmV,EAAG2C,QAAQtX,MAAM2U,EAAIxK,EAAK3K,IAErCmV,EAAG2C,QAAQ4+D,EAAO1E,EAAIplD,EAAQ+5D,OAY1CJ,EAASn+D,OAAS,WACd,KAAO3nB,KAAKP,QACRO,KAAKiG,MAAM0hB,SAEf,OAAO3nB,MAqBX8lF,EAASjvE,KAAO,SAAUS,EAAMjQ,EAAGC,GAC/B,IAAIoiB,EAAO,GACX,GAAgB,mBAALriB,EACPrH,KAAK6lF,SAASvuE,GAAQjQ,MACnB,CACH,IAAI8+E,EAAQ7+E,GAAKgQ,EACjBtX,KAAK6lF,SAASvuE,GAAQ,SAAUof,GAC5BhN,EAAKy8D,GAASzvD,EACdrvB,EAAEiQ,KAAKoS,IAGf,OAAO1pB,MASX8lF,EAASxuE,KAAO,SAAUhU,GACtB,IAAI8iF,EAAU,GACd,IAAK,IAAIrgF,KAAKzC,EACNtD,KAAK6lF,SAAS9/E,GACd/F,KAAK6lF,SAAS9/E,GAAGzC,EAAMyC,IAEvBqgF,EAAQrgF,GAAKzC,EAAMyC,GAG3B,IAAK,IAAIxG,EAAI,EAAG2sD,EAAKlsD,KAAK4lF,MAAMnmF,OAAQF,EAAI2sD,EAAI3sD,IAC5CS,KAAK4lF,MAAMrmF,GAAG+X,KAAK8uE,GAEvB,OAAOpmF,MAQX8lF,EAAS9K,MAAQ,WACb,KAAOh7E,KAAKP,QACRO,KAAKiG,OAcb6/E,EAASl1E,OAAS,SAAU9K,EAAO8yB,EAAOytD,GACtCvgF,EAAQA,EAAQ,EAAIy+D,EAAKvkE,KAAKP,OAASqG,EAAO,GAAKA,EACnD8yB,EAAQ2rC,EAAK,EAAGC,EAAKxkE,KAAKP,OAASqG,EAAO8yB,IAC1C,IAGIr5B,EAHAqtD,EAAO,GACP05B,EAAQ,GACRp8E,EAAO,GAEX,IAAK3K,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAC9B2K,EAAKJ,KAAKtK,UAAUD,IAExB,IAAKA,EAAI,EAAGA,EAAIq5B,EAAOr5B,IACnB+mF,EAAMx8E,KAAK9J,KAAK8F,EAAQvG,IAE5B,KAAOA,EAAIS,KAAKP,OAASqG,EAAOvG,IAC5BqtD,EAAK9iD,KAAK9J,KAAK8F,EAAQvG,IAE3B,IAAIgnF,EAASr8E,EAAKzK,OAClB,IAAKF,EAAI,EAAGA,EAAIgnF,EAAS35B,EAAKntD,OAAQF,IAClCS,KAAK4lF,MAAM9/E,EAAQvG,GAAKS,KAAK8F,EAAQvG,GAAKA,EAAIgnF,EAASr8E,EAAK3K,GAAKqtD,EAAKrtD,EAAIgnF,GAG9E,IADAhnF,EAAIS,KAAK4lF,MAAMnmF,OAASO,KAAKP,QAAUm5B,EAAQ2tD,EACxCvmF,KAAKT,WACDS,KAAKT,KAEhB,OAAO,IAAI2uD,EAAIo4B,IAWnBR,EAASU,QAAU,SAAU9xE,GACzB,IAAK,IAAInV,EAAI,EAAG2sD,EAAKlsD,KAAKP,OAAQF,EAAI2sD,EAAI3sD,IAAK,GAAIS,KAAKT,IAAMmV,EAE1D,OADA1U,KAAK4Q,OAAOrR,EAAG,IACR,EAEX,OAAO,GAWXumF,EAASzT,YAAc,SAAU39D,GAE7B,IADA,IAAInV,EAAIS,KAAK4lF,MAAMnmF,OACZF,KACHS,KAAK4lF,MAAMrmF,GAAG8yE,YAAY39D,GAE9B,OAAO1U,MASX8lF,EAASxZ,QAAU,WAKf,IAJA,IAAIjxD,EAAI,GACJC,EAAI,GACJ8rD,EAAK,GACLC,EAAK,GACA9nE,EAAIS,KAAK4lF,MAAMnmF,OAAQF,KAAM,IAAKS,KAAK4lF,MAAMrmF,GAAGkxE,QAAS,CAC9D,IAAId,EAAM3vE,KAAK4lF,MAAMrmF,GAAG+sE,UACxBjxD,EAAEvR,KAAK6lE,EAAIt0D,GACXC,EAAExR,KAAK6lE,EAAIr0D,GACX8rD,EAAGt9D,KAAK6lE,EAAIt0D,EAAIs0D,EAAIx5D,OACpBkxD,EAAGv9D,KAAK6lE,EAAIr0D,EAAIq0D,EAAI53D,QAMxB,MAAO,CACHsD,EALJA,EAAImpD,EAAKzkE,MAAM,EAAGsb,GAMdC,EALJA,EAAIkpD,EAAKzkE,MAAM,EAAGub,GAMd8rD,GALJA,EAAK7C,EAAKxkE,MAAM,EAAGqnE,GAMfC,GALJA,EAAK9C,EAAKxkE,MAAM,EAAGsnE,GAMflxD,MAAOixD,EAAK/rD,EACZtD,OAAQsvD,EAAK/rD,EACbk4D,GAAIn4D,GAAK+rD,EAAK/rD,GAAK,EACnBo4D,GAAIn4D,GAAK+rD,EAAK/rD,GAAK,IAW3BwqE,EAASrf,MAAQ,SAAUv/C,GACvBA,EAAI,IAAIgnC,EACR,IAAK,IAAI3uD,EAAI,EAAG2sD,EAAKlsD,KAAK4lF,MAAMnmF,OAAQF,EAAI2sD,EAAI3sD,IAC5C2nB,EAAEpd,KAAK9J,KAAK4lF,MAAMrmF,GAAGknE,SAEzB,OAAOv/C,GAEX4+D,EAAS55E,SAAW,WAChB,MAAO,mBAEX45E,EAAS7jE,KAAO,MAQhB6M,EAAKo/B,IAAMA,EAYXp/B,EAAKta,IAAM,WACP,IAAIA,EAAM,IAAI05C,EAId,OAHI1uD,UAAUC,QACV+U,EAAI1K,KAAK/J,MAAMyU,EAAKjN,MAAM3H,UAAU0I,MAAMxI,KAAKN,UAAW,IAEvDgV,MAiBfsa,EAAKshD,QAAO,SAAUthD,EAAMhrB,EAASkgE,EAAOF,GACxC,IAAI2iB,EAAQ,GACRrO,EAAS,YACTjU,EAAMl5C,OAEV,SAASy7D,EAASh/E,GACd,IAAI0uB,EAAI1uB,EAAK,GACb,OAAQ0uB,EAAEluB,eACN,IAAK,IAAK,MAAO,CAACkuB,EAAG,EAAG,GACxB,IAAK,IAAK,MAAO,CAACA,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GACpC,IAAK,IAAK,OAAmB,GAAf1uB,EAAKjI,OACR,CAAC22B,EAAG,EAAG1uB,EAAK,GAAIA,EAAK,IAErB,CAAC0uB,EAAG,GAEf,IAAK,IAAK,OAAmB,GAAf1uB,EAAKjI,OACR,CAAC22B,EAAG,EAAG,EAAG1uB,EAAK,GAAIA,EAAK,IACT,GAAfA,EAAKjI,OACL,CAAC22B,EAAG,EAAG,GAEP,CAACA,EAAG,IAwCvB,SAASkiD,EAAUvtD,GACf,OAAOA,EAOX,SAAS47D,EAAW57D,GAChB,OAAOA,EAAI9jB,KAAK,KAEpB,SAAS2/E,EAAUnc,GACf,OAAO37C,EAAK+6C,IAAIY,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIA,EAAI,IAEhD,SAASwW,EAAQl+E,GACb,IAAWxD,EAAG2sD,EAAIhiC,EAAG64C,EAAIqH,EAAK/iE,EAA1BtB,EAAI,EAAyBuB,EAAI,GACrC,IAAK/H,EAAI,EAAG2sD,EAAKnpD,EAAKtD,OAAQF,EAAI2sD,EAAI3sD,IAAK,CAGvC,IAFA6qE,EAAM,IACN/iE,EAAI,CAAC,IAAMtE,EAAKxD,GAAG,GAAK,KACnB2qB,EAAI,EAAG64C,EAAKhgE,EAAKxD,GAAGE,OAAQyqB,EAAI64C,EAAI74C,IACrC7iB,EAAE6iB,GAAK,OAASnkB,IAAM,IAE1BqkE,GAAO/iE,EAAI,IACXC,EAAE/H,GAAK6qE,EAEX,OAAOt3D,SAAS,MAAO,mCAAqCxL,EAAI,MAEpE,SAASu/E,EAAW9jF,GAEhB,IADA,IAAIqnE,EAAM,GACD7qE,EAAI,EAAG2sD,EAAKnpD,EAAKtD,OAAQF,EAAI2sD,EAAI3sD,IACtC,IAAK,IAAI2qB,EAAI,EAAG64C,EAAKhgE,EAAKxD,GAAGE,OAAQyqB,EAAI64C,EAAI74C,IACzCkgD,EAAItgE,KAAK/G,EAAKxD,GAAG2qB,IAGzB,OAAOkgD,EAEX,SAAS0c,EAAUliF,GACf,OAAO4gE,SAAS5gE,GA7FpB6hF,EAAMM,OAASN,EAAMra,KAAO,SAqG5BtoE,EAAQlE,UAAUonF,MAAQ,SAAU9qE,EAAM5U,GACtC,OAAOq6D,IAAI,kBAAmB3hE,KAAMkc,EAAM5U,GAAGumE,gBAEjDlM,IAAI1nD,GAAG,mBAAmB,SAAUiC,EAAM5U,GACtC,IAAIuvB,EAAGC,EAAGzvB,EAAI88D,EAAInkE,KAAKsX,KAAK4E,IAAS,IACjCxH,EAAK1U,KACT,GAAmB,UAAfymF,EAAMvqE,GAGN,OAFA2a,EAAI/H,EAAK2lB,MAAMptC,GACfyvB,EAAIhI,EAAK2lB,MAAMntC,GACR,CACHnB,KAAM,CAAC0wB,EAAEL,EAAGK,EAAErL,EAAGqL,EAAEvvB,EAAGuvB,EAAE8V,SACxBjsC,GAAI,CAACo2B,EAAEN,EAAGM,EAAEtL,EAAGsL,EAAExvB,EAAGwvB,EAAE6V,SACtBvU,EAAGwuD,GAGX,GAAY,WAAR1qE,EAGA,MAAO,CACH/V,KAHJ0wB,EAAI72B,KAAKsX,KAAK4E,GAAMw4C,GAAGpuD,MAAM,KAAKkK,IAAIy2E,QAIlCvmF,GAHJo2B,EAAIxvB,EAAEhB,MAAM,KAAKkK,IAAIy2E,QAIjB7uD,EAAGuuD,GAGX,GAAY,aAARzqE,GAA+B,qBAARA,GAAuC,oBAARA,EAUtD,MATgB,iBAAL5U,IACPA,EAAI68D,EAAI78D,GAAG1F,QAAQ,gBAAiByF,IA3GhD,SAA2B+1E,EAAIX,EAAInQ,GAC/B8Q,EAAKA,GAAM,IAAItuD,EAAK28C,OACpBgR,EAAKA,GAAM,IAAI3tD,EAAK28C,OACpB2R,EAAKtuD,EAAKm8C,qBAAqBmS,EAAG3L,sBAAwB,GAC1DgL,EAAK3tD,EAAKm8C,qBAAqBwR,EAAGhL,sBAAwB,GAM1D,IALA,IAGWvnD,EAAG64C,EACVmkB,EAAKC,EAJLC,EAAYp7E,KAAKiE,IAAImtE,EAAG39E,OAAQg9E,EAAGh9E,QACnC0G,EAAO,GACPzF,EAAK,GACLnB,EAAI,EAEDA,EAAI6nF,EAAW7nF,IAAK,CAGvB,GAFA2nF,EAAM9J,EAAG79E,IAAMmnF,EAASjK,EAAGl9E,IAC3B4nF,EAAM1K,EAAGl9E,IAAMmnF,EAASQ,GACpBA,EAAI,IAAMC,EAAI,IACU,KAAxBD,EAAI,GAAGh/E,gBAAyBg/E,EAAI,IAAMC,EAAI,IAAMD,EAAI,IAAMC,EAAI,KAC1C,KAAxBD,EAAI,GAAGh/E,gBAAyBg/E,EAAI,IAAMC,EAAI,IAAMD,EAAI,IAAMC,EAAI,IAChE,CACE/J,EAAKtuD,EAAKm1C,EAAEqH,iBAAiB8R,EAAI9Q,KACjCmQ,EAAK3tD,EAAKm1C,EAAEqH,iBAAiBmR,EAAInQ,KACjCnmE,EAAO,CAAC,CAAC,IAAKi3E,EAAG/1E,EAAG+1E,EAAG91E,EAAG81E,EAAGp8D,EAAGo8D,EAAGllE,EAAGklE,EAAGr0E,EAAGq0E,EAAGhlD,IAC/C13B,EAAK,CAAC,CAAC,IAAK+7E,EAAGp1E,EAAGo1E,EAAGn1E,EAAGm1E,EAAGz7D,EAAGy7D,EAAGvkE,EAAGukE,EAAG1zE,EAAG0zE,EAAGrkD,IAC7C,MAIR,IAFAjyB,EAAK5G,GAAK,GACVmB,EAAGnB,GAAK,GACH2qB,EAAI,EAAG64C,EAAK/2D,KAAKiE,IAAIi3E,EAAIznF,OAAQ0nF,EAAI1nF,QAASyqB,EAAI64C,EAAI74C,IACvDA,KAAKg9D,IAAQ/gF,EAAK5G,GAAG2qB,GAAKg9D,EAAIh9D,IAC9BA,KAAKi9D,IAAQzmF,EAAGnB,GAAG2qB,GAAKi9D,EAAIj9D,IAGpC,MAAO,CACH/jB,KAAM0gF,EAAW1gF,GACjBzF,GAAImmF,EAAWnmF,GACf03B,EAAG6oD,EAAQ96E,IAkFJkhF,CANPhgF,EAAIrH,KAAKgxE,OAIL1pE,EAHCwnB,EAAKm1C,EAAEoH,YAAYpsD,KAAK3X,GAGrBwnB,EAAKm1C,EAAEqH,iBAAiBhkE,EAAGtH,KAAKssE,WAFhCx9C,EAAKm1C,EAAEqH,iBAAiBx8C,EAAKm1C,EAAEkH,oBAAoB7jE,GAAItH,KAAKssE,YAIrC,WAC3B,OAAO53D,EAAG43D,QAAQ,MAG1B,GAAY,KAARpwD,GAAuB,QAARA,EAEf,MAAO,CACH/V,KAAM0gF,GAFVhwD,EAAI/H,EAAK/rB,KAAK2iF,QAAQr+E,EAAGC,IAEF,IACnB5G,GAAImmF,EAAWhwD,EAAE,IACjBuB,EAAG6oD,EAAQpqD,EAAE,KAGrB,GAAY,UAAR3a,EAGA,MAAO,CACH/V,KAHJ0wB,EAAIstC,EAAI98D,GAAGf,MAAMwoB,EAAKm1C,EAAEU,WAIpBjkE,GAHJo2B,EAAIqtC,EAAI78D,GAAGhB,MAAMwoB,EAAKm1C,EAAEU,WAIpBvsC,EAAG,SAAUrN,GAAO,OAAOA,IAGnC,GAAI+7D,EAAUz/E,IAAMy/E,EAAUx/E,GAC1B,MAAO,CACHnB,KAAMgnB,WAAW9lB,GACjB3G,GAAIysB,WAAW7lB,GACf8wB,EAAGkgD,GAGX,IAxGaE,EAoCG8O,EAAMnpE,EAoElBy6D,EAAQvxE,EAAEpE,MAAMm1E,GAChBmP,EAAQpjB,EAAI78D,GAAGrE,MAAMm1E,GACzB,OAAIQ,IAtEY0O,EAsEQ1O,EAtEFz6D,EAsESopE,EArE1Bz4D,EAAK+f,GAAGy4C,EAAM,UAAax4D,EAAK+f,GAAG1wB,EAAM,UAGvCmpE,EAAKp7E,YAAciS,EAAKjS,YAmEpB,CACH/F,KAAMgnB,WAAW9lB,GACjB3G,GAAIysB,WAAW7lB,GACf8wB,GA9GKogD,EA8GMI,EA7GZ,SAAU7tD,GACb,OAAQA,EAAIm/C,QAAQ,GAAKsO,KA+GlB,CACHryE,KAAMnG,KAAKsyE,KAAKp2D,GAChBxb,GAAIV,KAAKsyE,KAAKp2D,EAAM5U,GACpB8wB,EAAGkgD,SAmBnBxpD,EAAKshD,QAAO,SAAUthD,EAAMhrB,EAASkgE,EAAOF,GAmTxC,IAlTA,IAAIuM,EAAUvsE,EAAQlE,UAEtB4nF,GAAgB,gBAAiB1jB,EAAKC,KACtCjF,EAAS,CACL,QAAS,WAAY,YAAa,YAAa,WAC/C,YAAa,UAAW,aAAc,YAAa,WACnD,eAEJ2oB,EAAW,CACPC,UAAW,aACXC,UAAW,YACXC,QAAS,YAEbC,EAAY,SAAU/H,EAAIprE,GACtB,IAAIwH,EAAa,KAAN4jE,EAAY,YAAc,aACjC/b,EAAMrvD,GAAMA,EAAGggB,KAAOhgB,EAAGggB,KAAK8N,cAAgBshC,EAAKC,IACvD,OAAOA,EAAI7nD,KAAQ6nD,EAAIh9C,gBAAkB,kBAAoB,QAAQ7K,IAKzE4rE,EAAe,WACX,OAAO9nF,KAAK+nF,cAAc3iE,kBAK9B4iE,EAAY,WACR,OAAOhoF,KAAK+nF,cAAc5iE,mBAE9B8iE,EAAW,SAAUrjF,EAAKqd,EAAMrY,EAAI0P,GAChC,IAAI4uE,EAAWV,GAAiBC,EAASxlE,GAAQwlE,EAASxlE,GAAQA,EAC9DmW,EAAI,SAAUrvB,GACV,IAAIqY,EAAUymE,EAAU,IAAKvuE,GACzB6uE,EAAUN,EAAU,IAAKvuE,GAC7B,GAAIkuE,GAAiBC,EAAQ,eAAMxlE,GAC/B,IAAK,IAAI1iB,EAAI,EAAG2sD,EAAKnjD,EAAEw1C,eAAiBx1C,EAAEw1C,cAAc9+C,OAAQF,EAAI2sD,EAAI3sD,IACpE,GAAIwJ,EAAEw1C,cAAch/C,GAAGD,QAAUsF,GAAOA,EAAIkc,SAAS/X,EAAEw1C,cAAch/C,GAAGD,QAAS,CAC7E,IAAI8oF,EAAOr/E,GACXA,EAAIA,EAAEw1C,cAAch/C,IAClBwoF,cAAgBK,EAClBr/E,EAAEqc,eAAiB0iE,EACnB/+E,EAAEoc,gBAAkB6iE,EACpB,MAIZ,IAAI3sE,EAAItS,EAAE0uC,QAAU0wC,EAChB7sE,EAAIvS,EAAE2uC,QAAUt2B,EACpB,OAAOxX,EAAG9J,KAAKwZ,EAASvQ,EAAGsS,EAAGC,IAStC,OANI2G,IAASimE,GACTtjF,EAAI2I,iBAAiB0U,EAAMmW,GAAG,GAGlCxzB,EAAI2I,iBAAiB26E,EAAU9vD,GAAG,GAE3B,WAMH,OALInW,IAASimE,GACTtjF,EAAI4I,oBAAoByU,EAAMmW,GAAG,GAGrCxzB,EAAI4I,oBAAoB06E,EAAU9vD,GAAG,IAC9B,IAGfiwD,EAAO,GACPC,EAAW,SAAUv/E,GAOjB,IANA,IAIIw/E,EAJAltE,EAAItS,EAAE0uC,QACNn8B,EAAIvS,EAAE2uC,QACNt2B,EAAUymE,EAAU,KACpBM,EAAUN,EAAU,KAEpB39D,EAAIm+D,EAAK5oF,OACNyqB,KAAK,CAER,GADAq+D,EAAQF,EAAKn+D,GACTs9D,GAGA,IAFA,IACIgB,EADAjpF,EAAIwJ,EAAEu1C,SAAWv1C,EAAEu1C,QAAQ7+C,OAExBF,KAEH,IADAipF,EAAQz/E,EAAEu1C,QAAQ/+C,IACRkpF,YAAcF,EAAM7zE,GAAGg0E,MAAMvzE,IAAMozE,EAAM7zE,GAAGggB,KAAK5T,SAAS0nE,EAAMlpF,QAAS,CAC/E+b,EAAImtE,EAAM/wC,QACVn8B,EAAIktE,EAAM9wC,SACT3uC,EAAEg/E,cAAgBh/E,EAAEg/E,cAAgBh/E,GAAGqc,iBACxC,YAIRrc,EAAEqc,iBAEN,IAAIsP,EAAO6zD,EAAM7zE,GAAGggB,KAETA,EAAK0a,YACH1a,EAAKmS,WACJnS,EAAK7xB,MAAM2sD,QAOzBn0C,GAAK8sE,EACL7sE,GAAK8F,EACLugD,IAAI,kBAAoB4mB,EAAM7zE,GAAGS,GAAIozE,EAAMI,YAAcJ,EAAM7zE,GAAI2G,EAAIktE,EAAM7zE,GAAGg0E,MAAMrtE,EAAGC,EAAIitE,EAAM7zE,GAAGg0E,MAAMptE,EAAGD,EAAGC,EAAGvS,KAG7H6/E,EAAS,SAATA,EAAmB7/E,GACf+lB,EAAK+5D,YAAYP,GAAUQ,UAAUF,GAGrC,IAFA,IACIL,EADAhpF,EAAI8oF,EAAK5oF,OAENF,MACHgpF,EAAQF,EAAK9oF,IACPmV,GAAGg0E,MAAQ,GACjB/mB,IAAI,iBAAmB4mB,EAAM7zE,GAAGS,GAAIozE,EAAMQ,WAAaR,EAAMS,aAAeT,EAAMI,YAAcJ,EAAM7zE,GAAI3L,GAC1G44D,IAAIxnD,IAAI,eAAiBouE,EAAM7zE,GAAGS,IAEtCkzE,EAAO,IA4LF9oF,EAAIu/D,EAAOr/D,OAAQF,MACxB,SAAW6nB,GACP0H,EAAK1H,GAAaipD,EAAQjpD,GAAa,SAAUxd,EAAI+7D,GACjD,GAAI72C,EAAK+f,GAAGjlC,EAAI,YACZ5J,KAAK8+D,OAAS9+D,KAAK8+D,QAAU,GAC7B9+D,KAAK8+D,OAAOh1D,KAAK,CACboS,KAAMkL,EACNgR,EAAGxuB,EACHq/E,OAAQhB,EAASjoF,KAAK00B,MAAQnqB,SAAU6c,EAAWxd,EAAI+7D,GAAS3lE,aAGpE,IAAK,IAAIT,EAAI,EAAG2sD,EAAKlsD,KAAK8+D,OAAOr/D,OAAQF,EAAI2sD,EAAI3sD,IAAK,GAAIS,KAAK8+D,OAAOv/D,GAAG2c,MAAQkL,EAC7E,IACIpnB,KAAK8+D,OAAOv/D,GAAG64B,EAAEt4B,KAAKE,MACxB,MAAO+I,IAGjB,OAAO/I,MAEX8uB,EAAK,KAAO1H,GACZipD,EAAQ,KAAOjpD,GAAa,SAAUxd,GAGlC,IAFA,IAAIk1D,EAAS9+D,KAAK8+D,QAAU,GACxB1oC,EAAI0oC,EAAOr/D,OACR22B,KAAK,GAAI0oC,EAAO1oC,GAAGla,MAAQkL,IAClB03C,EAAO1oC,GAAGgC,GAAKxuB,IAAOA,GAIlC,OAHAk1D,EAAO1oC,GAAG6yD,SACVnqB,EAAOluD,OAAOwlB,EAAG,IAChB0oC,EAAOr/D,eAAiBO,KAAK8+D,OACvB9+D,KAEX,OAAOA,MA7Bf,CA+BG8+D,EAAOv/D,IAad8wE,EAAQpQ,MAAQ,SAAUipB,EAAMC,EAAOC,EAAUC,GAC7C,OAAOrpF,KAAKspF,UAAUJ,EAAME,GAAUG,SAASJ,EAAOE,GAAaD,IAWvE/Y,EAAQmZ,QAAU,SAAUN,EAAMC,GAC9B,OAAOnpF,KAAKypF,YAAYP,GAAMQ,WAAWP,IAE7C,IAAIQ,EAAY,GAmChBtZ,EAAQgY,KAAO,SAAUuB,EAAQC,EAASC,EAAOnB,EAAYK,EAAaD,GACtE,IAEQgB,EAFJr1E,EAAK1U,KACT,IAAKR,UAAUC,OAEX,OAAOiV,EAAG2zE,MAAK,SAAU1gB,EAAIC,GACzB5nE,KAAKsX,KAAK,CACN2b,UAAW82D,GAAiBA,EAAgB,IAAM,KAAO,CAACpiB,EAAIC,QAEnE,WACCmiB,EAAgB/pF,KAAKizB,YAAYq+C,SAGzC,SAAS5kD,EAAM3jB,EAAGsS,EAAGC,IAChBvS,EAAEg/E,eAAiBh/E,GAAGqc,iBACvB1Q,EAAGg0E,MAAMrtE,EAAIA,EACb3G,EAAGg0E,MAAMptE,EAAIA,EACb5G,EAAGg0E,MAAMvzE,GAAKpM,EAAE0/E,YACfJ,EAAK5oF,QAAUqvB,EAAK64D,UAAUW,GAAUV,QAAQgB,GACjDP,EAAKv+E,KAAK,CAAC4K,GAAIA,EAAIi0E,WAAYA,EAAYK,YAAaA,EAAaD,UAAWA,IAChFc,GAAWloB,IAAI1nD,GAAG,mBAAqBvF,EAAGS,GAAI00E,GAC9CD,GAAUjoB,IAAI1nD,GAAG,kBAAoBvF,EAAGS,GAAIy0E,GAC5CE,GAASnoB,IAAI1nD,GAAG,iBAAmBvF,EAAGS,GAAI20E,GAC1CnoB,IAAI,mBAAqBjtD,EAAGS,GAAI6zE,GAAeL,GAAcj0E,EAAI2G,EAAGC,EAAGvS,GAE3E,SAASihF,EAAKjhF,EAAGsS,EAAGC,GAChBqmD,IAAI,iBAAmBjtD,EAAGS,GAAIT,EAAI3L,EAAGsS,EAAGC,GAM5C,OAJAqmD,IAAI1nD,GAAG,iBAAmBvF,EAAGS,GAAIuX,GACjChY,EAAGg0E,MAAQ,GACXiB,EAAU7/E,KAAK,CAAC4K,GAAIA,EAAIgY,MAAOA,EAAOs9D,KAAMA,IAC5Ct1E,EAAGgzE,UAAUsC,GACNt1E,GAkBX27D,EAAQ4Z,OAAS,WAEb,IADA,IAAI1qF,EAAIoqF,EAAUlqF,OACXF,KAASoqF,EAAUpqF,GAAGmV,IAAM1U,OAC/BA,KAAKkqF,YAAYP,EAAUpqF,GAAGyqF,MAC9BL,EAAU/4E,OAAOrR,EAAG,GACpBoiE,IAAIsnB,OAAO,eAAiBjpF,KAAKmV,IACjCwsD,IAAIsnB,OAAO,iBAAmBjpF,KAAKmV,KAGvC,OADCw0E,EAAUlqF,QAAUqvB,EAAK+5D,YAAYP,GAAUQ,UAAUF,GACnD5oF,SAiBf8uB,EAAKshD,QAAO,SAAUthD,EAAMhrB,EAASkgE,EAAOF,GAC1BhgE,EAAQlE,UAAtB,IACIuqF,EAASnmB,EAAMpkE,UACfwqF,EAAQ,kBACRjmB,EAAMl5C,OACNo6C,EAAIv2C,EAAKm1C,EAAEoB,EACfv2C,EAAK/kB,OAAS,GAgBdogF,EAAOpgF,OAAS,SAAUsgF,GACtB,IAAIxd,EAAQ7sE,KACM,OAAd6sE,EAAM5qD,OACN4qD,EAAQA,EAAMA,OAElB,IAAIz0C,EAAItJ,EAAKjH,MAAMs8C,EAAIkmB,IACnBl1E,EAAK2Z,EAAKm1C,EAAE9uD,KAGZpL,GAFQ8iE,EAAMn4C,KAAK4kD,YACVzM,EAAMn4C,KAAKlH,aACX63C,EAAE,WAOf,OANAA,EAAEt7D,EAAQ,CACNoL,GAAIA,EACJm1E,YAAa,mBAEjBvgF,EAAO+5B,YAAY1L,EAAE1D,MACrBm4C,EAAMK,KAAKppC,YAAY/5B,GAChB,IAAIjG,EAAQiG,IAGvB43D,IAAI1nD,GAAG,4BAA4B,WAC/B0nD,IAAIuB,OACJ,IAAI5sC,EAAI+uC,EAAErlE,KAAK00B,KAAM,UACrB,GAAI4B,EAAG,CACH,IAAIrzB,EAAQkhE,EAAI7tC,GAAGrzB,MAAMmnF,GACzB,OAAOnnF,GAAS6rB,EAAK1X,OAAOnU,EAAM,QAG1C0+D,IAAI1nD,GAAG,yBAAyB,SAAU3W,GACtC,GAAIA,aAAiBQ,GAAyB,UAAdR,EAAM2e,KAAkB,CACpD0/C,IAAIuB,OACJ,IAAI/tD,EAAK7R,EAAMoxB,KAAKvf,GACfA,IACDkwD,EAAE/hE,EAAMoxB,KAAM,CAACvf,GAAI7R,EAAM6R,KACzBA,EAAK7R,EAAM6R,IAEfkwD,EAAErlE,KAAK00B,KAAM,CACT3qB,OAAQ+kB,EAAKngB,IAAIwG,KAGpB7R,GAAkB,QAATA,IACVq+D,IAAIuB,OACJljE,KAAK00B,KAAK6K,gBAAgB,cAkBlCzQ,EAAK/kB,OAAOoK,KAAO,SAAUkH,EAAGC,GACnB,MAALD,IACAA,EAAI,GAER,IAAIkvE,EAAW,MAALjvE,EAAYD,EAAI,CAACA,EAAGC,GAC9B,OAAOwT,EAAKm3C,OAAO,yCAA2C,CAC1DskB,IAAKA,KAGbz7D,EAAK/kB,OAAOoK,KAAKjI,SAAW,WACxB,OAAOlM,QA6BX8uB,EAAK/kB,OAAOygF,OAAS,SAAU7iB,EAAIC,EAAIzzD,EAAMsgC,EAAO9H,GA0BhD,OAzBe,MAAXA,IACa,MAAT8H,GACA9H,EAAUx4B,EACVA,EAAO,EACPsgC,EAAQ,SAER9H,EAAU8H,EACVA,EAAQtgC,EACRA,EAAO,IAGH,MAARA,IACAA,EAAO,GAEI,MAAXw4B,IACAA,EAAU,GAEJ,MAANg7B,IACAA,EAAK,EACLC,EAAK,GAEC,MAANA,IACAA,EAAKD,GAETlzB,EAAQ3lB,EAAK2lB,MAAMA,GACZ3lB,EAAKm3C,OAAO,kVAAmV,CAClWxxB,MAAOA,EACPkzB,GAAIA,EACJC,GAAIA,EACJzzD,KAAMA,EACNw4B,QAASA,KAGjB7d,EAAK/kB,OAAOygF,OAAOt+E,SAAW,WAC1B,OAAOlM,QAWX8uB,EAAK/kB,OAAO0gF,UAAY,SAAUC,GAI9B,OAHc,MAAVA,IACAA,EAAS,GAEN57D,EAAKm3C,OAAO,oGAAqG,CACpH5+D,EAAG,MAAS,OAAU,EAAIqjF,GAC1BpjF,EAAG,MAAS,OAAU,EAAIojF,GAC1B1pE,EAAG,MAAS,OAAU,EAAI0pE,GAC1BxyE,EAAG,MAAS,OAAU,EAAIwyE,GAC1B3hF,EAAG,MAAS,OAAU,EAAI2hF,GAC1BtyD,EAAG,MAAS,OAAU,EAAIsyD,GAC1Bl/D,EAAG,MAAS,OAAU,EAAIk/D,GAC1BtwE,EAAG,MAAS,OAAU,EAAIswE,MAGlC57D,EAAK/kB,OAAO0gF,UAAUv+E,SAAW,WAC7B,OAAOlM,QAWX8uB,EAAK/kB,OAAO4gF,MAAQ,SAAUD,GAI1B,OAHc,MAAVA,IACAA,EAAS,GAEN57D,EAAKm3C,OAAO,oGAAqG,CACpH5+D,EAAG,KAAQ,MAAS,EAAIqjF,GACxBpjF,EAAG,KAAQ,MAAS,EAAIojF,GACxB1pE,EAAG,KAAQ,MAAS,EAAI0pE,GACxBxyE,EAAG,KAAQ,MAAS,EAAIwyE,GACxB3hF,EAAG,KAAQ,MAAS,EAAI2hF,GACxBtyD,EAAG,KAAQ,MAAS,EAAIsyD,GACxBl/D,EAAG,KAAQ,MAAS,EAAIk/D,GACxBtwE,EAAG,KAAQ,MAAS,EAAIswE,GACxBnrF,EAAG,KAAQ,MAAS,EAAImrF,MAGhC57D,EAAK/kB,OAAO4gF,MAAMz+E,SAAW,WACzB,OAAOlM,QAWX8uB,EAAK/kB,OAAO6gF,SAAW,SAAUF,GAI7B,OAHc,MAAVA,IACAA,EAAS,GAEN57D,EAAKm3C,OAAO,qDAAsD,CACrEykB,OAAQ,EAAIA,KAGpB57D,EAAK/kB,OAAO6gF,SAAS1+E,SAAW,WAC5B,OAAOlM,QAWX8uB,EAAK/kB,OAAO8gF,UAAY,SAAUnkB,GAE9B,OADAA,EAAQA,GAAS,EACV53C,EAAKm3C,OAAO,qDAAsD,CACrES,MAAOA,KAGf53C,EAAK/kB,OAAO8gF,UAAU3+E,SAAW,WAC7B,OAAOlM,QAWX8uB,EAAK/kB,OAAO8hE,OAAS,SAAU6e,GAK3B,OAJc,MAAVA,IACAA,EAAS,GAGN57D,EAAKm3C,OAAO,sNAAuN,CACtOykB,OAAQA,EACRI,QAAS,EAAIJ,KAGrB57D,EAAK/kB,OAAO8hE,OAAO3/D,SAAW,WAC1B,OAAOlM,QAWX8uB,EAAK/kB,OAAOghF,WAAa,SAAUL,GAI/B,OAHc,MAAVA,IACAA,EAAS,GAEN57D,EAAKm3C,OAAO,yKAA0K,CACzLykB,OAAQA,KAGhB57D,EAAK/kB,OAAOghF,WAAW7+E,SAAW,WAC9B,OAAOlM,QAWX8uB,EAAK/kB,OAAOihF,SAAW,SAAUN,GAI7B,OAHc,MAAVA,IACAA,EAAS,GAEN57D,EAAKm3C,OAAO,2OAA4O,CAC3PykB,OAAQA,EACRI,QAAS,GAAKJ,EAAS,KAG/B57D,EAAK/kB,OAAOihF,SAAS9+E,SAAW,WAC5B,OAAOlM,WAiBf8uB,EAAKshD,QAAO,SAAUthD,EAAMhrB,EAASkgE,EAAOF,EAAM/pC,GAC9C,IAAI41C,EAAM7gD,EAAKm1C,EAAE0L,IACb9gC,EAAK/f,EAAK+f,GACVo8C,EAAc,sBACd/+E,EAAW,WACP,MAAO,IAAMlM,KAAK2nE,GAAK,IAAM3nE,KAAK4nE,IAgB1C9jE,EAAQlE,UAAUsrF,SAAW,SAAUx2E,EAAIy2E,GAC5B,MAAPA,GAAet8C,EAAGn6B,EAAI,YACtBy2E,EAAMz2E,EACNA,EAAK,MAGT,IAAIivE,GADJjvE,EAAKA,GAAM1U,KAAK6sE,OACJP,QAAU53D,EAAG43D,UAAYqD,EAAIj7D,GACrCorB,EAAK9/B,KAAKssE,UACVlC,EAAM,GAGV,OADA+gB,GADAA,EAAMA,GAAOA,EAAIloF,MAAMgoF,IACXE,EAAI,GAAGjjF,cAAgB,KAE/B,IAAK,IACDkiE,EAAIzC,GAAK,EACTyC,EAAIxC,GAAK+b,EAAGroE,EAAIwkB,EAAGxkB,EACvB,MACA,IAAK,IACD8uD,EAAIzC,GAAK,EACTyC,EAAIxC,GAAK+b,EAAGtc,GAAKvnC,EAAGunC,GACxB,MACA,IAAK,IACD+C,EAAIzC,GAAK,EACTyC,EAAIxC,GAAK+b,EAAGlQ,GAAK3zC,EAAG2zC,GACxB,MACA,IAAK,IACDrJ,EAAIzC,GAAKgc,EAAGtoE,EAAIykB,EAAGzkB,EACnB+uD,EAAIxC,GAAK,EACb,MACA,IAAK,IACDwC,EAAIzC,GAAKgc,EAAGvc,GAAKtnC,EAAGsnC,GACpBgD,EAAIxC,GAAK,EACb,MACA,QACIwC,EAAIzC,GAAKgc,EAAGnQ,GAAK1zC,EAAG0zC,GACpBpJ,EAAIxC,GAAK,EAIjB,OADAwC,EAAIl+D,SAAWA,EACRk+D,GAgBXtmE,EAAQlE,UAAUwrF,MAAQ,SAAU12E,EAAIy2E,GACpC,OAAOnrF,KAAKizB,UAAU,MAAQjzB,KAAKkrF,SAASx2E,EAAIy2E,QAiBxDr8D,EAAKshD,QAAO,SAAUthD,EAAMhrB,EAASkgE,EAAOF,EAAM/pC,GAC9C,IAAIs2C,EAAUvsE,EAAQlE,UAClBivC,EAAK/f,EAAK+f,GACVs1B,EAAMl5C,OACN0c,EAAM,iBACV,SAASr/B,EAAMnC,EAAMzF,EAAI03B,GACrB,OAAO,SAAUna,GACb,IAAImK,EAAMnK,EAAI3V,MAAMnC,EAAMzF,GAI1B,OAHkB,GAAd0nB,EAAI3oB,SACJ2oB,EAAMA,EAAI,IAEPgQ,EAAIA,EAAEhQ,GAAOA,GAG5B,IAAI29D,EAAY,SAAUzuE,EAAMi6D,EAAIplD,EAAQziB,GACnB,mBAAVyiB,GAAyBA,EAAO1sB,SACvCiK,EAAWyiB,EACXA,EAASq1C,EAAKvD,QAElBj+D,KAAKsX,KAAOA,EACZtX,KAAKuiE,IAAMgP,EACXplD,IAAWnsB,KAAKmsB,OAASA,GACzBziB,IAAa1J,KAAK0J,SAAWA,IAEjColB,EAAKm1C,EAAE8hB,UAAYA,EAanBj3D,EAAK6V,UAAY,SAAUrtB,EAAMi6D,EAAIplD,EAAQziB,GACzC,OAAO,IAAIq8E,EAAUzuE,EAAMi6D,EAAIplD,EAAQziB,IAiB3C2mE,EAAQgb,OAAS,WACb,IACIjjE,EAAM,GACV,IAAK,IAAIjT,KAFAnV,KAES8sE,MAFT9sE,KAEuB8sE,MAAMnlC,GAAKxyB,IACtC,SAAU9N,GACP+gB,EAAIte,KAAK,CACLk5D,KAAM,IAAI+iB,EAAU1+E,EAAEikF,OAAQjkF,EAAEk7D,IAAKl7D,EAAE8kB,OAAQ9kB,EAAEkkF,WACjD/pB,KAAMn6D,EACNmkF,UAAWnkF,EAAE47D,SACbA,OAAQ,SAAUl4C,GACd,OAAO1jB,EAAE47D,OAAOl4C,IAEpBm4C,KAAM,WACF77D,EAAE67D,UATb,CAHIljE,KAeA8sE,MAAM33D,IAEf,OAAOiT,GAgCX0G,EAAKzX,QAAU,SAAUlR,EAAMzF,EAAI02E,EAAQ7F,EAAIplD,EAAQziB,GAC9B,mBAAVyiB,GAAyBA,EAAO1sB,SACvCiK,EAAWyiB,EACXA,EAASq1C,EAAKvD,QAElB,IAAIvrB,EAAM8uB,EAAKtsB,OACX8tB,EAAOxB,EAAKr7D,EAAMzF,EAAIgyC,EAAKA,EAAM6+B,EAAI/P,EAAKtsB,KAAMkiC,EAAQjrD,GAE5D,OADAziB,GAAYi4D,IAAIoN,KAAK,eAAiB/L,EAAK7tD,GAAIzL,GACxCs5D,GAUXqN,EAAQnN,KAAO,WAEX,IADA,IAAI4J,EAAQ9sE,KAAKqrF,SACR9rF,EAAI,EAAG2sD,EAAK4gB,EAAMrtE,OAAQF,EAAI2sD,EAAI3sD,IACvCutE,EAAMvtE,GAAG2jE,OAEb,OAAOljE,MAcXqwE,EAAQh5D,QAAU,SAAU4+D,EAAO1E,EAAIplD,EAAQziB,GACtB,mBAAVyiB,GAAyBA,EAAO1sB,SACvCiK,EAAWyiB,EACXA,EAASq1C,EAAKvD,QAEdgY,aAAiB8P,IACjBr8E,EAAWusE,EAAMvsE,SACjByiB,EAAS8pD,EAAM9pD,OACfolD,EAAK0E,EAAM1T,IACX0T,EAAQA,EAAM3+D,MAElB,IAAuCnR,EAAMzF,EAAI03B,EAAGqzD,EAAhDC,EAAQ,GAAIC,EAAQ,GAAI9jF,EAAO,GAC/B6M,EAAK1U,KACT,IAAK,IAAIL,KAAOs2E,EAAO,GAAIA,EAAMtuC,GAAKhoC,GAAM,CACpC+U,EAAGsyE,OAEH7gF,GADAslF,EAAK/2E,EAAGsyE,MAAMrnF,EAAKwkE,EAAI8R,EAAMt2E,MACnBwG,KACVzF,EAAK+qF,EAAG/qF,GACR03B,EAAIqzD,EAAGrzD,IAEPjyB,GAAQuO,EAAG4C,KAAK3X,GAChBe,GAAMu1E,EAAMt2E,IAEhB,IAAIue,EAAM2wB,EAAG1oC,EAAM,SAAWA,EAAK1G,OAAS,EAC5CoI,EAAKlI,GAAO2I,EAAMojF,EAAMjsF,OAAQisF,EAAMjsF,OAASye,EAAKka,GACpDszD,EAAQA,EAAM/kF,OAAOR,GACrBwlF,EAAQA,EAAMhlF,OAAOjG,GAEzB,IAAIgyC,EAAM8uB,EAAKtsB,OACX8tB,EAAOxB,EAAKkqB,EAAOC,EAAOj5C,EAAKA,EAAM6+B,EAAI/P,EAAKtsB,MAAM,SAAUnqB,GAC1D,IAAIzT,EAAO,GACX,IAAK,IAAI3X,KAAOkI,EAAUA,EAAK8/B,GAAKhoC,KAChC2X,EAAK3X,GAAOkI,EAAKlI,GAAKorB,IAE1BrW,EAAG4C,KAAKA,KACT6U,GAcP,OAbAzX,EAAGo4D,MAAM9J,EAAK7tD,IAAM6tD,EACpBA,EAAKsoB,OAASrV,EACdjT,EAAKuoB,UAAY7hF,EACjBi4D,IAAI,oBAAsBjtD,EAAGS,GAAI6tD,GACjCrB,IAAIoN,KAAK,eAAiB/L,EAAK7tD,IAAI,WAC/BwsD,IAAIxnD,IAAI,UAAY6oD,EAAK7tD,WAClBT,EAAGo4D,MAAM9J,EAAK7tD,IACrBzL,GAAYA,EAAS5J,KAAK4U,MAE9BitD,IAAIoN,KAAK,aAAe/L,EAAK7tD,IAAI,WAC7BwsD,IAAIxnD,IAAI,UAAY6oD,EAAK7tD,WAClBT,EAAGo4D,MAAM9J,EAAK7tD,OAElBT,MAiBfoa,EAAKshD,QAAO,SAAUthD,EAAMhrB,EAASkgE,EAAOF,GAuCxC,SAAS8nB,EAAUC,GACfA,EAASA,EAAOvlF,MAAM,SACtB,IAAImuC,EAAQ,IAAIxpB,OAAO4gE,EAAO,IAiB9B,OAhBAp3C,EAAM,IAAMo3C,EAAO,GACnBp3C,EAAM,KAAOo3C,EAAO,GACpBp3C,EAAM,KAAOo3C,EAAO,GACpBp3C,EAAM,KAAOo3C,EAAO,GACpBp3C,EAAM,KAAOo3C,EAAO,GACpBp3C,EAAM,KAAOo3C,EAAO,GACpBp3C,EAAM,KAAOo3C,EAAO,GACpBp3C,EAAM,KAAOo3C,EAAO,GACpBp3C,EAAM,KAAOo3C,EAAO,GACpBp3C,EAAM,KAAOo3C,EAAO,GAChBA,EAAO,MACPp3C,EAAMq3C,KAAOD,EAAO,IACpBp3C,EAAMs3C,KAAOF,EAAO,IACpBp3C,EAAMu3C,KAAOH,EAAO,IACpBp3C,EAAMw3C,KAAOJ,EAAO,KAEjBp3C,EA7BX3lB,EAAKo9D,IAAM,GASXp9D,EAAKq9D,KAAO,GAsBZr9D,EAAKo9D,IAAIxiB,IAAMkiB,EA1DG,sGA2DlB98D,EAAKo9D,IAAIE,KAAOR,EA1DE,sGA2DlB98D,EAAKo9D,IAAIG,OAAST,EA1DA,sGA2DlB98D,EAAKo9D,IAAII,WAAaV,EA1DJ,sGA2DlB98D,EAAKo9D,IAAIK,OAASX,EA1DA,sGA2DlB98D,EAAKo9D,IAAItiB,KAAOgiB,EA1DE,sGA2DlB98D,EAAKo9D,IAAIM,UAAYZ,EA1DH,sGA2DlB98D,EAAKo9D,IAAIO,KAAOb,EA1DE,sGA2DlB98D,EAAKo9D,IAAIQ,KAAOd,EA1DE,sGA2DlB98D,EAAKo9D,IAAIviB,MAAQiiB,EA1DC,sGA2DlB98D,EAAKo9D,IAAIS,WAAaf,EA1DJ,sGA2DlB98D,EAAKo9D,IAAIU,KAAOhB,EA1DE,sGA2DlB98D,EAAKo9D,IAAIW,OAASjB,EA1DA,sGA2DlB98D,EAAKo9D,IAAIY,MAAQlB,EA1DC,sGA2DlB98D,EAAKo9D,IAAIa,OAASnB,EA1DA,sGA2DlB98D,EAAKo9D,IAAIc,WAAapB,EA1DJ,sGA2DlB98D,EAAKo9D,IAAIe,MAAQrB,EA1DC,0EA2DlB98D,EAAKo9D,IAAIgB,KAAOtB,EA1DE,0EA2DlB98D,EAAKo9D,IAAIiB,SAAWvB,EA1DF,0EA2DlB98D,EAAKq9D,KAAKiB,UAAY,UACtBt+D,EAAKq9D,KAAKkB,SAAW,UACrBv+D,EAAKq9D,KAAKmB,UAAY,UACtBx+D,EAAKq9D,KAAKY,OAAS,UACnBj+D,EAAKq9D,KAAKoB,SAAW,UACrBz+D,EAAKq9D,KAAKqB,UAAY,UACtB1+D,EAAKq9D,KAAKsB,OAAS,UACnB3+D,EAAKq9D,KAAKuB,QAAU,UACpB5+D,EAAKq9D,KAAKwB,WAAa,UACvB7+D,EAAKq9D,KAAKyB,WAAa,UACvB9+D,EAAKq9D,KAAK0B,SAAW,UACrB/+D,EAAKq9D,KAAK2B,YAAc,UACxBh/D,EAAKq9D,KAAK4B,SAAW,UACrBj/D,EAAKq9D,KAAK6B,SAAW,UACrBl/D,EAAKq9D,KAAK8B,OAAS,UACnBn/D,EAAKq9D,KAAK+B,OAAS,UACnBp/D,EAAKq9D,KAAKgC,WAAa,UACvBr/D,EAAKq9D,KAAKiC,aAAe,UACzBt/D,EAAKq9D,KAAKkC,SAAW,UACrBv/D,EAAKq9D,KAAKmC,SAAW,UAUrBx/D,EAAKy/D,gBAAkB,WACnB,IAAK,IAAI95C,KAAS3lB,EAAKo9D,IACfp9D,EAAKo9D,IAAIrsF,eAAe40C,KACxBnqC,OAAOmqC,GAAS3lB,EAAKo9D,IAAIz3C,QAMzCz1C,EAAOC,QAAU6vB,G,gBCh9PjB,OAmBA,SAAWg1C,GACP,IAQI0qB,EACAtrB,EARAv7B,EAAM,iBACNg9B,EAAY,SACZ8pB,EAAgB,UAEhBC,EAAU,SAAUrnF,EAAGC,GACnB,OAAOD,EAAIC,GAIfw3D,EAAS,CAAC94D,EAAG,IACb6nE,EAAe,WACX,IAAK,IAAItuE,EAAI,EAAG2sD,EAAKlsD,KAAKP,OAAQF,EAAI2sD,EAAI3sD,IACtC,GAAsB,oBAAXS,KAAKT,GACZ,OAAOS,KAAKT,IAIxBovF,EAAc,WAEV,IADA,IAAIpvF,EAAIS,KAAKP,SACJF,GACL,GAAsB,oBAAXS,KAAKT,GACZ,OAAOS,KAAKT,IAIxBqvF,EAASxvF,OAAOQ,UAAUsM,SAC1Bi4D,EAAMl5C,OACNzjB,EAAUD,MAAMC,SAAW,SAAUqnF,GACjC,OAAOA,aAActnF,OAA4B,kBAAnBqnF,EAAO9uF,KAAK+uF,IAc9CltB,EAAM,SAANA,EAAgBzlD,EAAMypD,GAClB,IAIIvvC,EAJA04D,EAAU5rB,EACVh5D,EAAO3C,MAAM3H,UAAU0I,MAAMxI,KAAKN,UAAW,GAC7C4J,EAAYu4D,EAAIv4D,UAAU8S,GAC1B0a,EAAI,EAEJm4D,EAAU,GACV1mC,EAAQ,GACR+hB,EAAM,GACN34B,EAAK+8C,EACTpkB,EAAIyD,aAAeA,EACnBzD,EAAIukB,YAAcA,EAClBH,EAAgBtyE,EAChBgnD,EAAO,EACP,IAAK,IAAI3jE,EAAI,EAAG2sD,EAAK9iD,EAAU3J,OAAQF,EAAI2sD,EAAI3sD,IAAS,WAAY6J,EAAU7J,KAC1EwvF,EAAQjlF,KAAKV,EAAU7J,GAAGytC,QACtB5jC,EAAU7J,GAAGytC,OAAS,IACtBqb,EAAMj/C,EAAU7J,GAAGytC,QAAU5jC,EAAU7J,KAI/C,IADAwvF,EAAQC,KAAKN,GACNK,EAAQn4D,GAAK,GAGhB,GAFAR,EAAIiyB,EAAM0mC,EAAQn4D,MAClBwzC,EAAItgE,KAAKssB,EAAEr2B,MAAM4lE,EAAOz7D,IACpBg5D,EAEA,OADAA,EAAO4rB,EACA1kB,EAGf,IAAK7qE,EAAI,EAAGA,EAAI2sD,EAAI3sD,IAEhB,GAAI,WADJ62B,EAAIhtB,EAAU7J,IAEV,GAAI62B,EAAE4W,QAAU+hD,EAAQn4D,GAAI,CAExB,GADAwzC,EAAItgE,KAAKssB,EAAEr2B,MAAM4lE,EAAOz7D,IACpBg5D,EACA,MAEJ,GAII,IAFA9sC,EAAIiyB,EAAM0mC,IADVn4D,MAEKwzC,EAAItgE,KAAKssB,EAAEr2B,MAAM4lE,EAAOz7D,IACzBg5D,EACA,YAEC9sC,QAETiyB,EAAMjyB,EAAE4W,QAAU5W,OAItB,GADAg0C,EAAItgE,KAAKssB,EAAEr2B,MAAM4lE,EAAOz7D,IACpBg5D,EACA,MAMZ,OAFAA,EAAO4rB,EACPN,EAAgB/8C,EACT24B,GAGfzI,EAAIstB,QAAUnwB,EAWd6C,EAAIv4D,UAAY,SAAU8S,GACtB,IAEIxU,EACAk+E,EACA7/E,EACAxG,EACA2sD,EACAhiC,EACA64C,EACAmsB,EATAzI,EAAQj/E,EAAQ0U,GAAQA,EAAOA,EAAK5V,MAAMq+D,GAC1C57D,EAAI+1D,EASJqwB,EAAK,CAACpmF,GACNqhE,EAAM,GACV,IAAK7qE,EAAI,EAAG2sD,EAAKu6B,EAAMhnF,OAAQF,EAAI2sD,EAAI3sD,IAAK,CAExC,IADA2vF,EAAM,GACDhlE,EAAI,EAAG64C,EAAKosB,EAAG1vF,OAAQyqB,EAAI64C,EAAI74C,IAIhC,IAFA07D,EAAQ,EADR78E,EAAIomF,EAAGjlE,GAAGlkB,GACCygF,EAAMlnF,IAAKwJ,EA/HnB,MAgIHhD,EAAI,EACGA,MACH2B,EAAOk+E,EAAM7/E,MAETmpF,EAAIplF,KAAKpC,GACT0iE,EAAMA,EAAIzjE,OAAOe,EAAK0wB,GAAK,KAIvC+2D,EAAKD,EAET,OAAO9kB,GAYXzI,EAAIgD,UAAY,SAAUyqB,GAClBA,GAEAA,EAAM,KADNA,EAAMjrB,EAAIirB,GAAKxtF,QAAQ,oBAAqB,OAC1B,IAClB+iE,EAAY,IAAIx8C,OAAOinE,IAEvBzqB,EAAY,UA4BpBhD,EAAI1nD,GAAK,SAAUiC,EAAMkc,GACrB,GAAgB,mBAALA,EACP,OAAO,aAGX,IADA,IAAIquD,EAAQj/E,EAAQ0U,GAAQ1U,EAAQ0U,EAAK,IAAMA,EAAO,CAACA,GAAQioD,EAAIjoD,GAAM5V,MAAMmoF,GACtElvF,EAAI,EAAG2sD,EAAKu6B,EAAMhnF,OAAQF,EAAI2sD,EAAI3sD,KACtC,SAAU2c,GAIP,IAHA,IAEImzE,EAFA5I,EAAQj/E,EAAQ0U,GAAQA,EAAOioD,EAAIjoD,GAAM5V,MAAMq+D,GAC/C57D,EAAI+1D,EAECv/D,EAAI,EAAG2sD,EAAKu6B,EAAMhnF,OAAQF,EAAI2sD,EAAI3sD,IAEvCwJ,GADAA,EAAIA,EAAE/C,GACAnG,eAAe4mF,EAAMlnF,KAAOwJ,EAAE09E,EAAMlnF,MAAQwJ,EAAE09E,EAAMlnF,IAAM,CAACyG,EAAG,KAGxE,IADA+C,EAAEqvB,EAAIrvB,EAAEqvB,GAAK,GACR74B,EAAI,EAAG2sD,EAAKnjD,EAAEqvB,EAAE34B,OAAQF,EAAI2sD,EAAI3sD,IAAK,GAAIwJ,EAAEqvB,EAAE74B,IAAM64B,EAAG,CACvDi3D,GAAQ,EACR,OAEHA,GAAStmF,EAAEqvB,EAAEtuB,KAAKsuB,GAbtB,CAcCquD,EAAMlnF,IAEZ,OAAO,SAAUytC,IACRA,IAAWA,IACZ5U,EAAE4U,QAAUA,KAmBxB20B,EAAIvpC,EAAI,SAAU92B,GACd,IAAI20E,EAAQ,GAAG3tE,MAAMxI,KAAKN,UAAW,GACrC,OAAO,WACHmiE,EAAI5hE,MAAM,KAAM,CAACuB,EAAO,MAAMqF,OAAOsvE,GAAOtvE,OAAO,GAAG2B,MAAMxI,KAAKN,UAAW,OASpFmiE,EAAIuB,KAAO,WACPA,EAAO,GAcXvB,EAAI2M,GAAK,SAAUghB,GACf,IAAIC,EAAM/nF,EAAQgnF,GAAiBA,EAAcvnF,KAAK,KAAOunF,EAC7D,OAAIc,EACO,IAAInnE,OAAO,gBAAkBmnE,EAAU,iBAAiBrwE,KAAKswE,GAEjEA,GAWX5tB,EAAI6tB,IAAM,WACN,OAAOhoF,EAAQgnF,GAAiBA,EAAgBA,EAAcloF,MAAMq+D,IAkBxEhD,EAAIxnD,IAAMwnD,EAAIsnB,OAAS,SAAU/sE,EAAMkc,GACnC,GAAKlc,EAAL,CAIA,IAAIuqE,EAAQj/E,EAAQ0U,GAAQ1U,EAAQ0U,EAAK,IAAMA,EAAO,CAACA,GAAQioD,EAAIjoD,GAAM5V,MAAMmoF,GAC/E,GAAIhI,EAAMhnF,OAAS,EACf,IAAK,IAAIF,EAAI,EAAG2sD,EAAKu6B,EAAMhnF,OAAQF,EAAI2sD,EAAI3sD,IACvCoiE,EAAIxnD,IAAIssE,EAAMlnF,GAAI64B,OAF1B,CAMAquD,EAAQj/E,EAAQ0U,GAAQA,EAAOioD,EAAIjoD,GAAM5V,MAAMq+D,GAC/C,IAAI57D,EACApJ,EACAiR,EACOsZ,EAAG64C,EACVwsB,EAAM,CAACzwB,GACP2wB,EAAS,GACb,IAAKlwF,EAAI,EAAG2sD,EAAKu6B,EAAMhnF,OAAQF,EAAI2sD,EAAI3sD,IACnC,IAAK2qB,EAAI,EAAGA,EAAIqlE,EAAI9vF,OAAQyqB,GAAKtZ,EAAOnR,OAAS,EAAG,CAGhD,GAFAmR,EAAS,CAACsZ,EAAG,GACbnhB,EAAIwmF,EAAIrlE,GAAGlkB,EAxTR,KAyTCygF,EAAMlnF,GACFwJ,EAAE09E,EAAMlnF,MACRqR,EAAO9G,KAAKf,EAAE09E,EAAMlnF,KACpBkwF,EAAO1oF,QAAQ,CACXf,EAAG+C,EACHmT,KAAMuqE,EAAMlnF,WAIpB,IAAKI,KAAOoJ,EAAOA,EAAE4+B,GAAKhoC,KACtBiR,EAAO9G,KAAKf,EAAEpJ,IACd8vF,EAAO1oF,QAAQ,CACXf,EAAG+C,EACHmT,KAAMvc,KAIlB4vF,EAAI3+E,OAAO7Q,MAAMwvF,EAAK3+E,GAG9B,IAAKrR,EAAI,EAAG2sD,EAAKqjC,EAAI9vF,OAAQF,EAAI2sD,EAAI3sD,IAEjC,IADAwJ,EAAIwmF,EAAIhwF,GACDwJ,EAAE/C,GAAG,CACR,GAAIoyB,EAAG,CACH,GAAIrvB,EAAEqvB,EAAG,CACL,IAAKlO,EAAI,EAAG64C,EAAKh6D,EAAEqvB,EAAE34B,OAAQyqB,EAAI64C,EAAI74C,IAAK,GAAInhB,EAAEqvB,EAAElO,IAAMkO,EAAG,CACvDrvB,EAAEqvB,EAAExnB,OAAOsZ,EAAG,GACd,OAEHnhB,EAAEqvB,EAAE34B,eAAiBsJ,EAAEqvB,EAE5B,IAAKz4B,KAAOoJ,EAAE/C,EAAG,GAAI+C,EAAE/C,EAAE2hC,GAAKhoC,IAAQoJ,EAAE/C,EAAErG,GAAKy4B,EAAG,CAC9C,IAAIs3D,EAAQ3mF,EAAE/C,EAAErG,GAAKy4B,EACrB,IAAKlO,EAAI,EAAG64C,EAAK2sB,EAAMjwF,OAAQyqB,EAAI64C,EAAI74C,IAAK,GAAIwlE,EAAMxlE,IAAMkO,EAAG,CAC3Ds3D,EAAM9+E,OAAOsZ,EAAG,GAChB,OAEHwlE,EAAMjwF,eAAiBsJ,EAAE/C,EAAErG,GAAKy4B,QAIrC,IAAKz4B,YADEoJ,EAAEqvB,EACGrvB,EAAE/C,EAAO+C,EAAE/C,EAAE2hC,GAAKhoC,IAAQoJ,EAAE/C,EAAErG,GAAKy4B,UACpCrvB,EAAE/C,EAAErG,GAAKy4B,EAGxBrvB,EAAIA,EAAE/C,EAId2pF,EAAO,IAAKpwF,EAAI,EAAG2sD,EAAKujC,EAAOhwF,OAAQF,EAAI2sD,EAAI3sD,IAAK,CAEhD,IAAKI,KADLoJ,EAAI0mF,EAAOlwF,IACGyG,EAAE+C,EAAEmT,MAAMkc,EAEpB,SAASu3D,EAEb,IAAKhwF,KAAOoJ,EAAE/C,EAAE+C,EAAEmT,MAAMlW,EAEpB,SAAS2pF,SAGN5mF,EAAE/C,EAAE+C,EAAEmT,aAjFbylD,EAAIstB,QAAUnwB,EAAS,CAAC94D,EAAG,KAmGnC27D,EAAIoN,KAAO,SAAU7yD,EAAMkc,GAKvB,OAAOupC,EAAI1nD,GAAGiC,GAJL,SAAL+lE,IAEA,OADAtgB,EAAIxnD,IAAI+B,EAAM+lE,GACP7pD,EAAEr4B,MAAMC,KAAMR,eAU7BmiE,EAAIjmC,QAxZU,QAyZdimC,EAAIz1D,SAAW,WACX,MAAO,6BAEX43D,EAAKnC,IAAMA,EACqB3iE,EAAOC,QAAUD,EAAOC,QAAU0iE,OAAyD,kBAA0B,OAAOA,GAAjC,QAAQ,OAAR,aA9Z/H,CA+ZoB,oBAAVr3D,OAAwBA,OAAStK,O,6BC5a3C,SAASkE,EAAuBU,GAAO,OAAOA,GAAOA,EAAIC,WAAaD,EAAM,CAAE,QAAWA,GAJzFxF,OAAOiE,eAAepE,EAAS,aAAc,CAC3CqE,OAAO,IAKT,IAEIg+D,EAAoBp9D,EAFDhF,EAAQ,KAM3BogE,EAAgBp7D,EAFDhF,EAAQ,IAIvB+S,EAAS,CACX+E,IAAK,CACHG,IAAKmqD,EAAiB,QACtB/pD,YAAa,kEACbgqD,SAAU,4IACVlqD,QAAS,SAAiBtU,GACxB,IAAIg1E,EAAM,EACN6X,EAAQ5vF,KAAKuhE,SAASj7D,MAAM,KAC5BupF,EAAaD,EAAMnwF,OACnB+hE,EAAOl3D,OAAOk3D,MAEH,SAASsuB,IAClB/X,EAAM8X,EAAa,IAEvB9sF,EAAKsU,QAAQ,CAAEtU,KAAM6sF,EAAM7X,IAAgB,IAARA,EAAY,IAAM,IAAa,IAARA,EAAYvW,EAAK6B,OAAS7B,EAAK9rC,SAAS,WAChGo6D,OAGF/X,KAGF+X,KAIJ74E,WAAY,SAAoB3D,EAAQ6C,EAAOE,GAC7C,MAAO,CACLkL,SAAU,WACVpL,MAAO,OACP4B,OAAQ,OACR1B,MAAOA,EAAQ,UAAY,EAC3Bm+C,KAAMn+C,EAAQ,EAAI,UAClByc,aAAczc,EAAQ,kBAAoB,gBAC1C0c,YAAa1c,EAAQ,kBAAoB,gBACzC2c,WAAY3c,EAAQ,kBAAoB,gBACxCwc,gBAAiBxc,EAAQ,kBAAoB,gBAC7C4c,UAAW5c,EAAQ,kBAAoB,kBAI3CopD,SAAU,SAAkBnsD,EAAQ6C,EAAOE,GACzC,MAAO,CACLyc,aAAcxf,EAAS,uBAAyB+C,EAAQ,0BAA4B,2BACpF0c,YAAazf,EAAS,uBAAyB+C,EAAQ,0BAA4B,2BACnF2c,WAAY1f,EAAS,uBAAyB+C,EAAQ,0BAA4B,2BAClFwc,gBAAiBvf,EAAS,uBAAyB+C,EAAQ,0BAA4B,2BACvF4c,UAAW3f,EAAS,uBAAyB+C,EAAQ,0BAA4B,2BACjFH,WAAY5C,EAAS,oBAAsB,mBAI/CosD,KAAM,SAAcpsD,EAAQ6C,EAAOE,GAEjC,OADAF,GAAS,IACF,CACLoL,SAAU,QACVuR,aAAcxf,EAAS,GAAK+C,EAAQ,eAAiBF,EAAQ,UAAY,gBAAkBA,EAAQ,UACnG4c,YAAazf,EAAS,GAAK+C,EAAQ,eAAiBF,EAAQ,UAAY,gBAAkBA,EAAQ,UAClG6c,WAAY1f,EAAS,GAAK+C,EAAQ,eAAiBF,EAAQ,UAAY,gBAAkBA,EAAQ,UACjG0c,gBAAiBvf,EAAS,GAAK+C,EAAQ,eAAiBF,EAAQ,UAAY,gBAAkBA,EAAQ,UACtG8c,UAAW3f,EAAS,GAAK+C,EAAQ,eAAiBF,EAAQ,UAAY,gBAAkBA,EAAQ,UAChGD,WAAY5C,EAAS,2GAA6G,uGAClIq5B,QAASr5B,EAAS,EAAI,IAI1B5L,KAAM,SAAc4L,EAAQ6C,EAAOE,EAAOgrD,GAExC,OADAlrD,GAAS,IACF,CACL2c,aAAcxf,EAAS,uBAAyB+C,EAAQ,eAAiBF,EAAQ,UAAY,gBAAkBA,EAAQ,UACvH4c,YAAazf,EAAS,uBAAyB+C,EAAQ,eAAiBF,EAAQ,UAAY,gBAAkBA,EAAQ,UACtH6c,WAAY1f,EAAS,uBAAyB+C,EAAQ,eAAiBF,EAAQ,UAAY,gBAAkBA,EAAQ,UACrH0c,gBAAiBvf,EAAS,uBAAyB+C,EAAQ,eAAiBF,EAAQ,UAAY,gBAAkBA,EAAQ,UAC1H8c,UAAW3f,EAAS,uBAAyB+C,EAAQ,eAAiBF,EAAQ,UAAY,gBAAkBA,EAAQ,UACpHD,WAAY5C,EAAS,yCAA2C,uGAChEq5B,QAASr5B,EAAS,EAAI,IAI1By8E,YAAa,SAAqBz8E,EAAQ6C,EAAOE,GAE/C,OADAF,GAAS,IACF,CACL2c,aAAcxf,EAAS,uBAAyB+C,EAAQ,eAAiBF,EAAQ,UAAY,gBAAkBA,EAAQ,UACvH4c,YAAazf,EAAS,uBAAyB+C,EAAQ,eAAiBF,EAAQ,UAAY,gBAAkBA,EAAQ,UACtH6c,WAAY1f,EAAS,uBAAyB+C,EAAQ,eAAiBF,EAAQ,UAAY,gBAAkBA,EAAQ,UACrH0c,gBAAiBvf,EAAS,uBAAyB+C,EAAQ,eAAiBF,EAAQ,UAAY,gBAAkBA,EAAQ,UAC1H8c,UAAW3f,EAAS,uBAAyB+C,EAAQ,eAAiBF,EAAQ,UAAY,gBAAkBA,EAAQ,UACpHD,WAAY5C,EAAS,2GAA6G,uGAClIq5B,QAASr5B,EAAS,EAAI,KAK5BrU,EAAO,SAAc,EAAIqgE,EAAa,SAAartD,GACnDjT,EAAOC,QAAUA,EAAO,S,6BC3GxBG,OAAOiE,eAAepE,EAAS,aAAc,CAC3CqE,OAAO,IAKT,IAFgCsB,EAE5By6D,EAAengE,EAAQ,GAEvBogE,GAJ4B16D,EAIWy6D,IAJUz6D,EAAIC,WAAaD,EAAM,CAAE,QAAWA,GAyBzF3F,EAAO,SAAc,EAAIqgE,EAAa,SAnBzB,CACXxqD,SAAU,SAAkBxB,EAAQ6C,EAAOE,GACzC,MAAO,CACLyc,aAAcxf,EAAS,GAAK+C,EAAQ,gBAAkBF,EAAQ,UAAY,eAAiBA,EAAQ,UACnG4c,YAAazf,EAAS,GAAK+C,EAAQ,gBAAkBF,EAAQ,UAAY,eAAiBA,EAAQ,UAClG6c,WAAY1f,EAAS,GAAK+C,EAAQ,gBAAkBF,EAAQ,UAAY,eAAiBA,EAAQ,UACjG0c,gBAAiBvf,EAAS,GAAK+C,EAAQ,gBAAkBF,EAAQ,UAAY,eAAiBA,EAAQ,UACtG8c,UAAW3f,EAAS,GAAK+C,EAAQ,gBAAkBF,EAAQ,UAAY,eAAiBA,EAAQ,UAChGD,WAAY,aAIhBjB,eAAgB,SAAwB3B,GACtC,MAAO,CACLssD,SAAUtsD,EAAS,GAAK,aAM9BtU,EAAOC,QAAUA,EAAO,S,6BC9BxBG,OAAOiE,eAAepE,EAAS,aAAc,CAC3CqE,OAAO,IAKT,IAFgCsB,EAE5By6D,EAAengE,EAAQ,GAEvBogE,GAJ4B16D,EAIWy6D,IAJUz6D,EAAIC,WAAaD,EAAM,CAAE,QAAWA,GA4BzF3F,EAAO,SAAc,EAAIqgE,EAAa,SAtBzB,CACXxqD,SAAU,SAAkBxB,EAAQ6C,EAAOE,GACzC,MAAO,CACLyc,aAAcxf,EAAS,GAAK+C,EAAQ,gBAAkBF,EAAQ,yBAA2B,eAAiBA,EAAQ,0BAClH4c,YAAazf,EAAS,GAAK+C,EAAQ,gBAAkBF,EAAQ,yBAA2B,eAAiBA,EAAQ,0BACjH6c,WAAY1f,EAAS,GAAK+C,EAAQ,gBAAkBF,EAAQ,yBAA2B,eAAiBA,EAAQ,0BAChH0c,gBAAiBvf,EAAS,GAAK+C,EAAQ,gBAAkBF,EAAQ,yBAA2B,eAAiBA,EAAQ,0BACrH8c,UAAW3f,EAAS,GAAK+C,EAAQ,gBAAkBF,EAAQ,yBAA2B,eAAiBA,EAAQ,0BAC/G65E,gBAAiB35E,EAAQ,WAAa,SACtC45E,eAAgB,cAChB/5E,WAAY,aAIhBjB,eAAgB,SAAwB3B,GACtC,MAAO,CACL48E,YAAa,SACbtwB,SAAUtsD,EAAS,GAAK,aAM9BtU,EAAOC,QAAUA,EAAO,S,6BCjCxBG,OAAOiE,eAAepE,EAAS,aAAc,CAC3CqE,OAAO,IAKT,IAFgCsB,EAE5By6D,EAAengE,EAAQ,GAEvBogE,GAJ4B16D,EAIWy6D,IAJUz6D,EAAIC,WAAaD,EAAM,CAAE,QAAWA,GA2BzF3F,EAAO,SAAc,EAAIqgE,EAAa,SArBzB,CACXxqD,SAAU,SAAkBxB,EAAQ6C,GAClC,MAAO,CACL2c,aAAcxf,EAAS,GAAK,sBAAwB6C,EAAQ,IAC5D4c,YAAazf,EAAS,GAAK,sBAAwB6C,EAAQ,IAC3D6c,WAAY1f,EAAS,GAAK,sBAAwB6C,EAAQ,IAC1D0c,gBAAiBvf,EAAS,GAAK,sBAAwB6C,EAAQ,IAC/D8c,UAAW3f,EAAS,GAAK,sBAAwB6C,EAAQ,IACzD65E,gBAAiB,OACjBC,eAAgB,cAChB/5E,WAAY,aAIhBjB,eAAgB,WACd,MAAO,CACLi7E,YAAa,aAMnBlxF,EAAOC,QAAUA,EAAO,S,6BChCxBG,OAAOiE,eAAepE,EAAS,aAAc,CAC3CqE,OAAO,IAKT,IAFgCsB,EAE5By6D,EAAengE,EAAQ,GAEvBogE,GAJ4B16D,EAIWy6D,IAJUz6D,EAAIC,WAAaD,EAAM,CAAE,QAAWA,GA4BzF3F,EAAO,SAAc,EAAIqgE,EAAa,SAtBzB,CACXxqD,SAAU,SAAkBxB,EAAQ6C,EAAOE,GACzC,MAAO,CACLyc,aAAcxf,EAAS,GAAK+C,EAAQ,gDAAkD,gDACtF0c,YAAazf,EAAS,GAAK+C,EAAQ,gDAAkD,gDACrF2c,WAAY1f,EAAS,GAAK+C,EAAQ,gDAAkD,gDACpFwc,gBAAiBvf,EAAS,GAAK+C,EAAQ,gDAAkD,gDACzF4c,UAAW3f,EAAS,GAAK+C,EAAQ,gDAAkD,gDACnF45E,eAAgB,cAChB/5E,WAAY,WACZ0pD,SAAUtsD,EAAS,GAAK,WAI5B2B,eAAgB,SAAwB3B,GACtC,MAAO,CACL48E,YAAa,SACbtwB,SAAUtsD,EAAS,GAAK,aAM9BtU,EAAOC,QAAUA,EAAO,S,6BCjCxBG,OAAOiE,eAAepE,EAAS,aAAc,CAC3CqE,OAAO,IAKT,IAFgCsB,EAE5By6D,EAAengE,EAAQ,GAEvBogE,GAJ4B16D,EAIWy6D,IAJUz6D,EAAIC,WAAaD,EAAM,CAAE,QAAWA,GAsCzF3F,EAAO,SAAc,EAAIqgE,EAAa,SAhCzB,CACXG,SAAU,SAAkBnsD,GAC1B,MAAO,CACLwf,aAAcxf,EAAS,GAAK,2BAC5Byf,YAAazf,EAAS,GAAK,2BAC3B0f,WAAY1f,EAAS,GAAK,2BAC1Buf,gBAAiBvf,EAAS,GAAK,2BAC/B2f,UAAW3f,EAAS,GAAK,2BACzB4C,WAAY,yBAIhBpB,SAAU,SAAkBxB,EAAQ6C,EAAOE,GACzC,MAAO,CACLyc,aAAcxf,EAAS,GAAK+C,EAAQ,gBAAkBF,EAAQ,UAAY,eAAiBA,EAAQ,UACnG4c,YAAazf,EAAS,GAAK+C,EAAQ,gBAAkBF,EAAQ,UAAY,eAAiBA,EAAQ,UAClG6c,WAAY1f,EAAS,GAAK+C,EAAQ,gBAAkBF,EAAQ,UAAY,eAAiBA,EAAQ,UACjG0c,gBAAiBvf,EAAS,GAAK+C,EAAQ,gBAAkBF,EAAQ,UAAY,eAAiBA,EAAQ,UACtG8c,UAAW3f,EAAS,GAAK+C,EAAQ,gBAAkBF,EAAQ,UAAY,eAAiBA,EAAQ,UAChGD,WAAY,aAIhBjB,eAAgB,SAAwB3B,GACtC,MAAO,CACL48E,YAAa,SACbC,kBAAmB,SACnBvwB,SAAUtsD,EAAS,GAAK,aAM9BtU,EAAOC,QAAUA,EAAO,S,6BC3CxBG,OAAOiE,eAAepE,EAAS,aAAc,CAC3CqE,OAAO,IAKT,IAFgCsB,EAE5By6D,EAAengE,EAAQ,GAEvBogE,GAJ4B16D,EAIWy6D,IAJUz6D,EAAIC,WAAaD,EAAM,CAAE,QAAWA,GAiEzF3F,EAAO,SAAc,EAAIqgE,EAAa,SA3DzB,CACXG,SAAU,SAAkBnsD,EAAQ6C,EAAOE,GACzC,MAAO,CACL+5E,WAAY98E,EAAS,UAAY,SACjCwf,aAAc,uBACdC,YAAa,uBACbC,WAAY,uBACZH,gBAAiB,uBACjBI,UAAW,uBACX+Z,OAAQ,MAIZuyB,QAAS,SAAiBjsD,EAAQ6C,EAAOE,GACvC,MAAO,CACL22B,OAAQ,KACRla,aAAcxf,EAAS+C,EAAQ,gBAAkBF,EAAQ,UAAY,eAAiBA,EAAQ,UAAY,uBAC1G4c,YAAazf,EAAS+C,EAAQ,gBAAkBF,EAAQ,UAAY,eAAiBA,EAAQ,UAAY,uBACzG6c,WAAY1f,EAAS+C,EAAQ,gBAAkBF,EAAQ,UAAY,eAAiBA,EAAQ,UAAY,uBACxG0c,gBAAiBvf,EAAS+C,EAAQ,gBAAkBF,EAAQ,UAAY,eAAiBA,EAAQ,UAAY,uBAC7G8c,UAAW3f,EAAS+C,EAAQ,gBAAkBF,EAAQ,UAAY,eAAiBA,EAAQ,UAAY,uBACvGD,WAAY,WACZk6E,WAAY98E,EAAS,UAAY,WAIrCwB,SAAU,SAAkBxB,EAAQ6C,EAAOE,GACzC,MAAO,CACLyc,aAAcxf,EAAS,GAAK+C,EAAQ,gBAAkBF,EAAQ,UAAY,eAAiBA,EAAQ,UACnG4c,YAAazf,EAAS,GAAK+C,EAAQ,gBAAkBF,EAAQ,UAAY,eAAiBA,EAAQ,UAClG6c,WAAY1f,EAAS,GAAK+C,EAAQ,gBAAkBF,EAAQ,UAAY,eAAiBA,EAAQ,UACjG0c,gBAAiBvf,EAAS,GAAK+C,EAAQ,gBAAkBF,EAAQ,UAAY,eAAiBA,EAAQ,UACtG8c,UAAW3f,EAAS,GAAK+C,EAAQ,gBAAkBF,EAAQ,UAAY,eAAiBA,EAAQ,UAChGD,WAAY,WACZ82B,OAAQ,KACRzrB,SAAU,aAId8uE,WAAY,SAAoB/8E,EAAQ6C,EAAOE,GAC7C,MAAO,CACLyc,aAAcxf,EAAS+C,EAAQ,eAAiBF,EAAQ,UAAY,gBAAkBA,EAAQ,UAAY,uBAC1G4c,YAAazf,EAAS+C,EAAQ,eAAiBF,EAAQ,UAAY,gBAAkBA,EAAQ,UAAY,uBACzG6c,WAAY1f,EAAS+C,EAAQ,eAAiBF,EAAQ,UAAY,gBAAkBA,EAAQ,UAAY,uBACxG0c,gBAAiBvf,EAAS+C,EAAQ,eAAiBF,EAAQ,UAAY,gBAAkBA,EAAQ,UAAY,uBAC7G8c,UAAW3f,EAAS+C,EAAQ,eAAiBF,EAAQ,UAAY,gBAAkBA,EAAQ,UAAY,uBACvGD,WAAY,WACZqL,SAAU,WACVyrB,OAAQ,OAIZ/3B,eAAgB,SAAwB3B,GACtC,MAAO,CACLssD,SAAUtsD,EAAS,GAAK,aAM9BtU,EAAOC,QAAUA,EAAO,S,iCCtExBG,OAAOiE,eAAepE,EAAS,aAAc,CACzCqE,OAAO,IAGX,IAAInE,EAAWC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,GAEnP2R,EAAe,WAAc,SAASC,EAAiB5R,EAAQkB,GAAS,IAAK,IAAIjB,EAAI,EAAGA,EAAIiB,EAAMf,OAAQF,IAAK,CAAE,IAAI4R,EAAa3Q,EAAMjB,GAAI4R,EAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,UAAWF,IAAYA,EAAWG,UAAW,GAAMlS,OAAOiE,eAAe/D,EAAQ6R,EAAWxR,IAAKwR,IAAiB,OAAO,SAAUI,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAYN,EAAiBK,EAAY3R,UAAW4R,GAAiBC,GAAaP,EAAiBK,EAAaE,GAAqBF,GAA7gB,GAEfG,EAASxS,EAAQ,GAEjByS,EAAUzN,EAAuBwN,GAIjCE,EAAa1N,EAFDhF,EAAQ,KAMpB2S,EAAc3N,EAFDhF,EAAQ,IAMrBwxB,EAAexsB,EAFDhF,EAAQ,KAMtB0xB,EAAiB1sB,EAFDhF,EAAQ,KAMxB2xB,EAAmB3sB,EAFDhF,EAAQ,KAM1Bi3B,EAAWjyB,EAFDhF,EAAQ,KAMlBoxF,EAEJ,SAAiC1rF,GAAO,GAAIA,GAAOA,EAAIC,WAAc,OAAOD,EAAc,IAAI2rF,EAAS,GAAI,GAAW,MAAP3rF,EAAe,IAAK,IAAIjF,KAAOiF,EAAWxF,OAAOQ,UAAUC,eAAeC,KAAK8E,EAAKjF,KAAM4wF,EAAO5wF,GAAOiF,EAAIjF,IAAgC,OAAtB4wF,EAAOzrF,QAAUF,EAAY2rF,EAF5OC,CAFCtxF,EAAQ,MAM/B,SAASgF,EAAuBU,GAAO,OAAOA,GAAOA,EAAIC,WAAaD,EAAM,CAAEE,QAASF,GAQvF,IAAI+Y,EAAO,aAMPsY,EAAW,SAAU9jB,GAGrB,SAAS8jB,EAASz1B,IAftB,SAAyB4R,EAAUb,GAAe,KAAMa,aAAoBb,GAAgB,MAAM,IAAIc,UAAU,qCAgBxGC,CAAgBtS,KAAMi2B,GAEtB,IAAIxiB,EAhBZ,SAAoC2Q,EAAMtkB,GAAQ,IAAKskB,EAAQ,MAAM,IAAIC,eAAe,6DAAgE,OAAOvkB,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BskB,EAAPtkB,EAgB9MwkB,CAA2BtkB,MAAOi2B,EAAS7wB,WAAahG,OAAOgU,eAAe6iB,IAAWn2B,KAAKE,KAAMQ,IA6WhH,OA3WAiT,EAAMue,aAAe,SAAU0C,GAC3BjhB,EAAMohB,UAAYH,GAGtBjhB,EAAMg9E,sBAAwB,SAAU/7D,GACpCjhB,EAAMi9E,mBAAqBh8D,GAG/BjhB,EAAMk9E,WAAa,SAAUj8D,GACzBjhB,EAAMm9E,QAAUl8D,GAGpBjhB,EAAMggB,mBAAqB,SAAUiB,GACjCjhB,EAAMkhB,gBAAkBD,GAG5BjhB,EAAMo9E,YAAc,SAAUn8D,EAAM5uB,GAC3B2N,EAAMq9E,WACPr9E,EAAMq9E,SAAW,IAErBr9E,EAAMq9E,SAAShrF,GAAS4uB,GAG5BjhB,EAAMs9E,SAAW,YACRt9E,EAAM/K,MAAMqoF,UAAYr/E,EAAO2G,SAASugB,MAAMnlB,EAAMjT,MAAMD,WAAa,IAI5E+T,aAAab,EAAM2uD,OACnB3uD,EAAM2uD,MAAQ7tD,YAAW,WACrBd,EAAMu9E,cACPv9E,EAAMjT,MAAMywF,YAGnBx9E,EAAMy9E,cAAgB,WACbz9E,EAAM/K,MAAMqoF,UAIjBz8E,aAAab,EAAM2uD,QAGvB3uD,EAAM09E,cAAgB,WAClB19E,EAAMy9E,gBACNz9E,EAAMs9E,YAGVt9E,EAAM29E,YAAc,WAChB39E,EAAMrH,SAAS,CAAEilF,gBAAgB,IACjC59E,EAAMy9E,iBAGVz9E,EAAM69E,aAAe,WACjB79E,EAAMrH,SAAS,CAAEilF,gBAAgB,IACjC59E,EAAMs9E,YAGVt9E,EAAM89E,yBAA2B,WAC7B,QAAIhnF,SAAS2J,gBAAkBT,EAAMi9E,qBAAsBj9E,EAAMi9E,mBAAmB5vE,SAASvW,SAAS2J,iBAO1GT,EAAM+9E,qBAAuB,SAAUzoF,GACnC,GAAK0K,EAAM89E,2BAAX,CAIA,IAEIE,EAAwB,eAFjBh+E,EAAMjT,MAAMgvB,KAWnBkiE,EAAUD,EAJC,GAHF,IAMCA,EALE,GACD,MAOC1oF,EAAEwN,QACd9C,EAAMu9E,YACCU,IAAY3oF,EAAEwN,SACrB9C,EAAMk+E,cAIdl+E,EAAMge,YAAc,WAChB,GAAKhe,EAAM/K,MAAMulB,YAAjB,CAIA,IAAIwjE,EAAoC,eAArBh+E,EAAMjT,MAAMgvB,KAC3Bxb,EAAYP,EAAMq9E,SAAS,GAC3B7/D,EAAWwgE,EAAez9E,EAAUghB,YAAchhB,EAAU0Z,aAEhEja,EAAMrH,UAAS,SAAU8oB,EAAQ10B,GAC7B,MAAO,CACHywB,SAAUA,MAIdxd,EAAMohB,WACNphB,EAAMohB,UAAUpD,gBAIxBhe,EAAM4e,cAAgB,WAClB5e,EAAMrH,SAAS,CAAE4kB,UAAU,IAC3Bvd,EAAMge,eAGVhe,EAAMwe,gBAAkB,SAAUnsB,EAAO4B,GACe,IAAhDgK,EAAO2G,SAASugB,MAAMnlB,EAAMjT,MAAMD,YAIlCkT,EAAM/K,MAAMkpF,YACZn+E,EAAMrH,SAAS,CACXwlF,aAAa,KAMrBn+E,EAAMjT,MAAMqxF,YAAY/rF,EAAO4B,GAE3B5B,IAAU2N,EAAM/K,MAAMqoB,cACtBtd,EAAMrH,SAAS,CACX2kB,aAAcjrB,OAK1B2N,EAAMq+E,eAAiB,SAAUhsF,EAAO4B,GAChCgK,EAAO2G,SAASugB,MAAMnlB,EAAMjT,MAAMD,WAAa,GAInDkT,EAAMjT,MAAMuxF,SAASjsF,EAAO4B,IAGhC+L,EAAMu+E,iBAAmB,SAAUlsF,EAAO4B,GACtC+L,EAAMjT,MAAMyxF,aAAansF,EAAO4B,GAEhC+L,EAAMy+E,WAAW,CACbnhE,aAAcjrB,KAItB2N,EAAMygB,aAAe,SAAU5yB,GAC3BmS,EAAMrH,SAAS,CACXynB,SAAS,IAEbpgB,EAAMjT,MAAM0zB,aAAa5yB,GACzBmS,EAAMy9E,iBAGVz9E,EAAM0gB,WAAa,SAAU7yB,GACzBmS,EAAMrH,SAAS,CACXynB,SAAS,EACT+9D,aAAa,IAEjBn+E,EAAMjT,MAAM2zB,WAAW7yB,GACvBmS,EAAMs9E,YAGVt9E,EAAMwgB,YAAc,SAAUjnB,EAAO1L,GACjCmS,EAAMjT,MAAMyzB,YAAY3yB,GACxB,IAAImwF,EAAoC,eAArBh+E,EAAMjT,MAAMgvB,KAC3B2iE,EAAiBzgF,EAAO2G,SAASugB,MAAMnlB,EAAMjT,MAAMD,UAInDmyB,EAAkBjf,EAAM2+E,YAAY3+E,EAAM/K,MAAMqoB,cAChDshE,EAAe5+E,EAAMjT,MAAM8xF,aAAe7+E,EAAM2+E,YAAYD,EAAiB,GAAK,IAAM1+E,EAAM2+E,YAAYD,EAAiB,GAE3HI,EAAYd,EAAezkF,EAAMqO,EAAIrO,EAAMsO,EAC3Ck3E,EAAeD,EANE,IASjB7/D,GAAsC6/D,EAAY,IAClDC,EAAe,GAIf9/D,IAAoB2/D,GAAgBE,EAAY,IAChDC,EAAe,GAGnB,IAAIjxE,EAAWmR,EAAkB,KAAOjf,EAAM/K,MAAMuoB,SAAWuhE,GAC3D/+E,EAAMjT,MAAM8xF,eAGqB,IAA7B7+E,EAAM/K,MAAMqoB,cAAsBxP,GAAY,IAC9CA,GAA6B,IAAjB4wE,EACL1+E,EAAM/K,MAAMqoB,eAAiBohE,EAAiB,GAAK5wE,EAA6B,KAAjB4wE,IACtE5wE,GAA6B,IAAjB4wE,IAGpB5wE,GAAY,IACZ9N,EAAMg/E,YAAYlxE,GAGlB,IAAImxE,EAAW1mF,KAAKu3D,IAAIgvB,GAAa9+E,EAAMjT,MAAMmyF,qBAQjD,OANID,IAAaj/E,EAAM/K,MAAMkpF,aACzBn+E,EAAMrH,SAAS,CACXwlF,aAAa,IAIdc,GAGXj/E,EAAMg/E,YAAc,SAAUlxE,EAAUqxE,GACpC,IAAI/sF,EAAO+L,EAAW9M,QAAQoS,YAAYzD,EAAMm9E,SAChD,CAAC,kBAAmB,eAAgB,cAAe,aAAc,YAAa,eAAexmF,SAAQ,SAAUqL,GAC3G5P,EAAKhD,MAAM4S,IAAQ,EAAImb,EAAe9rB,SAASyc,EAAU9N,EAAMjT,MAAMgvB,SAErEojE,GACA/sF,EAAKgtF,YAIbp/E,EAAMq/E,cAAgB,WAClB,IAAIpgE,EAAkBjf,EAAM2+E,YAAY3+E,EAAM/K,MAAMqoB,cAAgB,IACpEtd,EAAMg/E,YAAY//D,IAGtBjf,EAAMk+E,UAAY,WACd,IAAIt8D,EAAY71B,UAAUC,OAAS,QAAsBuE,IAAjBxE,UAAU,GAAmBA,UAAU,GAAK,EAChFuzF,EAAYvzF,UAAUC,OAAS,QAAsBuE,IAAjBxE,UAAU,IAAmBA,UAAU,GAE/EiU,EAAM6hB,OAAO7hB,EAAM/K,MAAMqoB,cAAqC,kBAAdsE,EAAyBA,EAAY,GAAI09D,IAG7Ft/E,EAAMu9E,UAAY,WACd,IAAI37D,EAAY71B,UAAUC,OAAS,QAAsBuE,IAAjBxE,UAAU,GAAmBA,UAAU,GAAK,EAChFuzF,EAAYvzF,UAAUC,OAAS,QAAsBuE,IAAjBxE,UAAU,IAAmBA,UAAU,GAE/EiU,EAAM6hB,OAAO7hB,EAAM/K,MAAMqoB,cAAqC,kBAAdsE,EAAyBA,EAAY,GAAI09D,IAG7Ft/E,EAAM6hB,OAAS,SAAU/T,EAAUwxE,GAC/B,IAAI5hE,EAAezf,EAAO2G,SAASugB,MAAMnlB,EAAMjT,MAAMD,UAAY,EAC7DyyF,EAAkBv/E,EAAMjT,MAAM8xF,eAAiBS,IAAcxxE,EAAW,GAAKA,EAAW4P,GACxF8hE,EAAc1xE,EAEdA,EAAW,IACXA,EAAW9N,EAAMjT,MAAM8xF,aAAenhE,EAAe,GAGrD5P,EAAW4P,IACX5P,EAAW9N,EAAMjT,MAAM8xF,aAAe,EAAInhE,GAG1C6hE,EAGAv/E,EAAMrH,SAAS,CACXynB,SAAS,IACV,WACKo/D,EAAc,EACVx/E,EAAMjT,MAAM0yF,YAAmC,eAArBz/E,EAAMjT,MAAMgvB,KACtC/b,EAAMg/E,YAAY,MAAQthE,EAAe,GAAK1d,EAAMjT,MAAM2yF,uBAAyB,IAAM1/E,EAAMjT,MAAM2yF,uBAAyB,GAAK,KAAK,GAExI1/E,EAAMg/E,YAAY,IAA2B,KAApBthE,EAAe,GAAW,KAAK,GAErD8hE,EAAc9hE,GACrB1d,EAAMg/E,YAAY,GAAG,GAGzBh/E,EAAMy+E,WAAW,CACbnhE,aAAcxP,EACdsS,SAAS,OAIjBpgB,EAAMy+E,WAAW,CAEbnhE,aAAcxP,IAMlB9N,EAAM/K,MAAMqoF,WAA2C,IAA/Bt9E,EAAM/K,MAAM2oF,gBACpC59E,EAAM09E,iBAId19E,EAAM2/E,YAAc,WAChB3/E,EAAMu9E,UAAU,GAAG,IAGvBv9E,EAAM4/E,YAAc,WAChB5/E,EAAMk+E,UAAU,GAAG,IAGvBl+E,EAAM6/E,eAAiB,WACnB7/E,EAAMu9E,UAAU,GAAG,IAGvBv9E,EAAM8/E,iBAAmB,WACrB9/E,EAAMk+E,UAAU,GAAG,IAGvBl+E,EAAM+/E,WAAa,SAAUzqF,GACzB,IAAKA,EAAEpJ,KAAiB,UAAVoJ,EAAEpJ,IAAiB,CAC7B,IAAI8zF,EAAW1qF,EAAEzJ,OAAOgE,MAExBmQ,EAAMy+E,WAAW,CACbnhE,aAAc0iE,MAK1BhgF,EAAMy+E,WAAa,SAAUxpF,EAAOq3B,GAChCtsB,EAAMrH,SAAS1D,EAAOq3B,GACtBtsB,EAAMq+E,eAAeppF,EAAMqoB,aAAcrf,EAAO2G,SAASuZ,QAAQne,EAAMjT,MAAMD,UAAUmI,EAAMqoB,gBAGjGtd,EAAMigF,gBAAkB,WACpB,IAAI3iE,EAAetd,EAAMjT,MAAMuwB,aAC3BrpB,EAAO+L,EAAMq9E,UAAYr9E,EAAMq9E,SAAS//D,GACxCM,EAAS3pB,GAAQA,EAAKyiE,qBAAqB,OAC/C,OAAO94C,GAAUA,EAAON,IAG5Btd,EAAMkgF,uBAAyB,SAAUpyE,GACrC,IAAI7Z,EAAO+L,EAAMq9E,UAAYr9E,EAAMq9E,SAASvvE,GACxC8P,EAAS3pB,GAAQA,EAAKyiE,qBAAqB,OAC/C,GAAI12D,EAAM/K,MAAMsoB,UAAYK,EAAO5xB,OAAS,EAAG,CAC3C,IAAIoyB,EAAQR,EAAO,GAEnB,IAAKQ,EAAM+hE,SAAU,CAOjB/hE,EAAMtkB,iBAAiB,QALL,SAASsmF,IACvBpgF,EAAMikB,cACN7F,EAAMrkB,oBAAoB,OAAQqmF,MAM1C,IAAI97E,EAAS8Z,EAAMnE,aACnB,OAAO3V,EAAS,EAAIA,EAAS,KAGjC,OAAO,MAGXtE,EAAM/K,MAAQ,CACVulB,aAAa,EACb8C,aAAcvwB,EAAMuwB,aACpBC,UAAU,EACVqgE,gBAAgB,EAChBN,SAAUvwF,EAAMuwF,UAEbt9E,EA0VX,OArtBJ,SAAmBzO,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIoN,UAAU,kEAAoEpN,GAAeD,EAASpF,UAAYR,OAAO8F,OAAOD,GAAcA,EAAWrF,UAAW,CAAEuF,YAAa,CAAE7B,MAAO0B,EAAUoM,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAepM,IAAY7F,OAAOmU,eAAiBnU,OAAOmU,eAAevO,EAAUC,GAAcD,EAASI,UAAYH,GAS7duO,CAAUyiB,EAAU9jB,GAqXpBlB,EAAaglB,EAAU,CAAC,CACpBt2B,IAAK,oBACL2D,MAAO,WACEtD,KAAKQ,MAAMD,UAIhBP,KAAK8zF,kBAEV,CACCn0F,IAAK,qBACL2D,MAAO,SAA4BwT,EAAWi9E,GACrCj9E,EAAUvW,WAAYP,KAAKQ,MAAMD,UAAaP,KAAK0I,MAAMulB,aAC1DjuB,KAAK8zF,gBAGLC,EAAUlgE,UAAY7zB,KAAK0I,MAAMmrB,SAEjC7zB,KAAK8yF,gBAGLh8E,EAAUia,eAAiB/wB,KAAKQ,MAAMuwB,eACtC/wB,KAAKyxB,cACLzxB,KAAKs1B,OAAOt1B,KAAKQ,MAAMuwB,eAGvBja,EAAUi6E,WAAa/wF,KAAKQ,MAAMuwF,WAC9B/wF,KAAKQ,MAAMuwF,SACX/wF,KAAKg0F,gBAELh0F,KAAKi0F,kBAGTj0F,KAAKoM,SAAS,CAAE2kF,SAAU/wF,KAAKQ,MAAMuwF,cAG9C,CACCpxF,IAAK,uBACL2D,MAAO,WACHtD,KAAKk0F,oBAEV,CACCv0F,IAAK,gBACL2D,MAAO,WACHtD,KAAKm0F,aAEDn0F,KAAK0I,MAAMqoF,UAAYr/E,EAAO2G,SAASugB,MAAM54B,KAAKQ,MAAMD,UAAY,GACpEP,KAAKg0F,gBAGTh0F,KAAKoM,SAAS,CACV6hB,aAAa,IAGjB,IAAImmE,EAAep0F,KAAK0zF,kBACpBU,EAEAA,EAAa7mF,iBAAiB,OAAQvN,KAAKqyB,eAE3CryB,KAAKqyB,kBAGd,CACC1yB,IAAK,kBACL2D,MAAO,WACCtD,KAAK0I,MAAMulB,cACXjuB,KAAKq0F,eACLr0F,KAAKi0F,qBAGd,CACCt0F,IAAK,gBACL2D,MAAO,WACHtD,KAAK+wF,WACL,IAAIuD,EAAkBt0F,KAAK0wF,mBAEvB1wF,KAAKQ,MAAM4wF,aAAekD,IAC1BA,EAAgB/mF,iBAAiB,aAAcvN,KAAKoxF,aACpDkD,EAAgB/mF,iBAAiB,aAAcvN,KAAKsxF,iBAG7D,CACC3xF,IAAK,kBACL2D,MAAO,WACHtD,KAAKkxF,gBACL,IAAIoD,EAAkBt0F,KAAK0wF,mBAEvB1wF,KAAKQ,MAAM4wF,aAAekD,IAC1BA,EAAgB9mF,oBAAoB,aAAcxN,KAAKoxF,aACvDkD,EAAgB9mF,oBAAoB,aAAcxN,KAAKsxF,iBAGhE,CACC3xF,IAAK,aACL2D,MAAO,WAGHgH,OAAOiD,iBAAiB,SAAUvN,KAAKyxB,aAEvCnnB,OAAOiD,iBAAiB,mBAAoBvN,KAAKyxB,aAE7CzxB,KAAKQ,MAAM+zF,mBACXhqF,SAASgD,iBAAiB,UAAWvN,KAAKwxF,wBAGnD,CACC7xF,IAAK,eACL2D,MAAO,WAEHgH,OAAOkD,oBAAoB,SAAUxN,KAAKyxB,aAC1CnnB,OAAOkD,oBAAoB,mBAAoBxN,KAAKyxB,aAEpD,IAAI2iE,EAAep0F,KAAK0zF,kBACpBU,GACAA,EAAa5mF,oBAAoB,OAAQxN,KAAKqyB,eAG9CryB,KAAKQ,MAAM+zF,mBACXhqF,SAASiD,oBAAoB,UAAWxN,KAAKwxF,wBAGtD,CACC7xF,IAAK,cACL2D,MAAO,SAAqBwC,GACpB9F,KAAKQ,MAAM8xF,gBAETxsF,EAEN,IAAIqsF,EAAiBzgF,EAAO2G,SAASugB,MAAM54B,KAAKQ,MAAMD,UACtD,GAAIP,KAAKQ,MAAM0yF,YAAkC,eAApBlzF,KAAKQ,MAAMgvB,KAAuB,CAC3D,IAAIkD,GAAmB5sB,EAAQ9F,KAAKQ,MAAM2yF,sBACtChiE,EAAeghE,EAAiB,EAQpC,OANIrsF,IAAUA,IAAUqrB,GAAgBnxB,KAAKQ,MAAM8xF,cAC/C5/D,IAAoB,IAAM1yB,KAAKQ,MAAM2yF,uBAAyB,EACvDrtF,IAAUqrB,IACjBuB,GAAmB,IAAM1yB,KAAKQ,MAAM2yF,uBAGjCzgE,EAGX,OAAgB,KAAR5sB,IAEb,CACCnG,IAAK,cACL2D,MAAO,SAAqBkxF,GACxB,IAAIz9E,EAAS/W,KAEb,OAAO0R,EAAO2G,SAAS7H,IAAIxQ,KAAKQ,MAAMD,UAAU,SAAUmH,EAAM5B,GAC5D,IAAI2uF,EAAa,CACb/lE,IAAK,SAAa3lB,GACd,OAAOgO,EAAO85E,YAAY9nF,EAAGjD,IAEjCnG,IAAK,UAAYmG,GAAS0uF,EAAU,QAAU,IAC9ClyF,UAAWouB,EAAa5rB,QAAQgrB,MAAK,EAAMhqB,IAAUiR,EAAOrO,MAAMqoB,cAClE3vB,QAAS2V,EAAOkb,gBAAgBpb,KAAKE,EAAQjR,EAAO4B,IASxD,OANIqP,EAAOvW,MAAM0yF,YAAoC,eAAtBn8E,EAAOvW,MAAMgvB,OACxCilE,EAAW5xF,MAAQ,CACf6xF,SAAU39E,EAAOvW,MAAM2yF,sBAAwB,MAIhDxhF,EAAQ7M,QAAQ0F,cACnB,KACAiqF,EACA19E,EAAOvW,MAAMm0F,WAAWjtF,EAAM,CAAEktF,WAAY9uF,IAAUiR,EAAOrO,MAAMqoB,qBAIhF,CACCpxB,IAAK,iBACL2D,MAAO,WACH,IAAIkU,EAASxX,KAEb,OAAKA,KAAKQ,MAAMq0F,eAITljF,EAAQ7M,QAAQ0F,cACnB,KACA,CAAElI,UAAW,gBACboP,EAAO2G,SAAS7H,IAAIxQ,KAAKQ,MAAMD,UAAU,SAAUmH,EAAM5B,GACrD,OAAO0R,EAAOhX,MAAMs0F,gBAAgBt9E,EAAOg8E,WAAY1tF,IAAU0R,EAAO9O,MAAMqoB,aAAcjrB,EAAO0R,EAAOhX,MAAM2xB,OAAOzqB,UAPpH,OAWhB,CACC/H,IAAK,eACL2D,MAAO,WACH,OAAKtD,KAAKQ,MAAMu0F,WAITpjF,EAAQ7M,QAAQ0F,cACnB,IACA,CAAElI,UAAW,mBACbtC,KAAKQ,MAAMw0F,gBAAgBh1F,KAAK0I,MAAMqoB,aAAe,EAAGrf,EAAO2G,SAASugB,MAAM54B,KAAKQ,MAAMD,YANlF,OAShB,CACCZ,IAAK,eACL2D,MAAO,WACH,OAAKtD,KAAKQ,MAAMy0F,YAA6D,IAA/CvjF,EAAO2G,SAASugB,MAAM54B,KAAKQ,MAAMD,UAIxDoR,EAAQ7M,QAAQ0F,cACnB2rB,EAASrxB,QACT,CACI4pB,IAAK1uB,KAAKgyB,aACVmD,aAAcn1B,KAAKgyF,iBACnBjhE,aAAc/wB,KAAK0I,MAAMqoB,aACzB6B,eAAgB5yB,KAAKQ,MAAMoyB,eAC3B4B,WAAYx0B,KAAKQ,MAAMg0B,WACvBrC,OAAQnyB,KAAKQ,MAAM2xB,QAEvBnyB,KAAKQ,MAAM00F,aAAal1F,KAAKQ,MAAMD,WAb5B,OAgBhB,CACCZ,IAAK,SACL2D,MAAO,WACH,IAAKtD,KAAKQ,MAAMD,UAA2D,IAA/CmR,EAAO2G,SAASugB,MAAM54B,KAAKQ,MAAMD,UACzD,OAAO,KAGX,IAAIkxF,EAAmC,eAApBzxF,KAAKQ,MAAMgvB,KAE1B2lE,EAAgBn1F,KAAKQ,MAAM4wB,YAAc1f,EAAO2G,SAASugB,MAAM54B,KAAKQ,MAAMD,UAAY,EAGtFiyB,EAAU2iE,IAAkBn1F,KAAK0I,MAAMqoB,aAAe,GAAK/wB,KAAKQ,MAAM8xF,cAEtE7/D,EAAU0iE,IAAkBn1F,KAAK0I,MAAMqoB,aAAerf,EAAO2G,SAASugB,MAAM54B,KAAKQ,MAAMD,UAAY,GAAKP,KAAKQ,MAAM8xF,cAEnH//D,EAAiB,GAEjBG,EAAkB1yB,KAAKoyF,YAAYpyF,KAAK0I,MAAMqoB,cAG9C4B,GAAgB,EAAI/B,EAAe9rB,SAAS4tB,EAAkB,IAAK1yB,KAAKQ,MAAMgvB,MAE9EoD,EAAiB5yB,KAAKQ,MAAMoyB,eAAiB,KAEjDL,EAAiB,CACbM,gBAAiBF,EACjBG,aAAcH,EACdI,YAAaJ,EACbK,WAAYL,EACZM,UAAWN,EACXO,YAAaP,GAGZ3yB,KAAK0I,MAAMmrB,UACZtB,EAAiBpzB,EAAS,GAAIozB,EAAgB,CAC1CY,yBAA0BP,EAC1BQ,sBAAuBR,EACvBS,qBAAsBT,EACtBU,oBAAqBV,EACrBW,mBAAoBX,EACpBY,qBAAsBZ,KAI9B,IAAIwiE,EAAap1F,KAAKq0B,aAAY,GAC9BghE,EAAaD,EAAW3rD,QACxB6rD,EAAYF,EAAWnvF,MAEvBsvF,EAAc,CACdjzF,UAAWouB,EAAa5rB,QAAQ2qB,QAAO,EAAMzvB,KAAK0I,MAAMmrB,SACxDI,YAAaj0B,KAAKi0B,YAClBC,aAAcl0B,KAAKk0B,aACnBC,WAAYn0B,KAAKm0B,WACjBtxB,MAAO0vB,EACP42C,UAAWnpE,KAAKQ,MAAMmyF,sBAGtB6C,EAAkB,GAEtB,GAAI/D,GAIA,GAHA8D,EAAYzhE,YAAc9zB,KAAKszF,eAC/BiC,EAAYvhE,aAAeh0B,KAAKuzF,iBAE5BvzF,KAAKQ,MAAMi1F,cAAe,CAC1B,IAAIC,EAAa11F,KAAK2zF,uBAAuB3zF,KAAK0I,MAAMqoB,cACxDwkE,EAAY1yF,MAAMkV,OAAS29E,GAAc,OACzCF,EAAgBz9E,OAAS29E,GAAc,aAG3CH,EAAYI,UAAyC,YAA7B31F,KAAKQ,MAAMo1F,cAA8B51F,KAAKuzF,iBAAmBvzF,KAAKszF,eAC9FiC,EAAYM,YAA2C,YAA7B71F,KAAKQ,MAAMo1F,cAA8B51F,KAAKszF,eAAiBtzF,KAAKuzF,iBAC9FgC,EAAY1yF,MAAMkV,OAAS/X,KAAK0I,MAAMuoB,SACtCukE,EAAgBz9E,OAAS/X,KAAK0I,MAAMuoB,SAExC,OAAOtf,EAAQ7M,QAAQ0F,cACnB,MACA,CAAElI,UAAWouB,EAAa5rB,QAAQmqB,KAAKjvB,KAAKQ,MAAM8B,WAAYosB,IAAK1uB,KAAKywF,sBAAuBj4E,SAAU,KACzG7G,EAAQ7M,QAAQ0F,cACZ,MACA,CAAElI,UAAWouB,EAAa5rB,QAAQsqB,UAAS,GAAOvsB,MAAO,CAAEsT,MAAOnW,KAAKQ,MAAM2V,QAC7EnW,KAAKQ,MAAMs1F,gBAAgB91F,KAAKqzF,YAAa7gE,EAASxyB,KAAKQ,MAAM2xB,OAAOwB,WACxEhiB,EAAQ7M,QAAQ0F,cACZ,MACA,CACIlI,UAAWouB,EAAa5rB,QAAQyqB,SAAQ,EAAMvvB,KAAKQ,MAAMgvB,MACzD3sB,MAAO2yF,EACP9mE,IAAK1uB,KAAKyzB,oBAEdzzB,KAAKQ,MAAMu1F,UAAYpkF,EAAQ7M,QAAQ0F,cACnCqmB,EAAiB/rB,QACjB3F,EAAS,CACLy0B,QAAS,KACTlF,IAAK1uB,KAAK2wF,YACX4E,EAAa,CACZS,iBAAkBh2F,KAAKQ,MAAMy1F,eAEjCj2F,KAAKQ,MAAM8xF,cAAgBgD,EAC3Bt1F,KAAKq0B,cACLr0B,KAAKQ,MAAM8xF,cAAgB+C,GAC3B1jF,EAAQ7M,QAAQ0F,cAChB,KACA,CACIlI,UAAWouB,EAAa5rB,QAAQ2qB,QAAO,EAAMzvB,KAAK0I,MAAMmrB,SACxDnF,IAAK1uB,KAAK2wF,WACV9tF,MAAO0vB,GAEXvyB,KAAKQ,MAAM8xF,cAAgBgD,EAC3Bt1F,KAAKq0B,cACLr0B,KAAKQ,MAAM8xF,cAAgB+C,IAGnCr1F,KAAKQ,MAAM01F,gBAAgBl2F,KAAKozF,YAAa3gE,EAASzyB,KAAKQ,MAAM2xB,OAAOmC,YACxEt0B,KAAKm2F,iBACLn2F,KAAKo2F,gBAETp2F,KAAKk1F,oBAKVj/D,EA7sBI,CA8sBbvkB,EAAOxR,WAET+1B,EAASrU,YAAc,WACvBqU,EAAS9c,UAAY,CACjB7W,UAAWuP,EAAY/M,QAAQsU,OAC/B7Y,SAAUsR,EAAY/M,QAAQ4vB,KAC9BtD,WAAYvf,EAAY/M,QAAQ2U,KAChCs7E,WAAYljF,EAAY/M,QAAQ2U,KAChCo7E,eAAgBhjF,EAAY/M,QAAQ2U,KACpC64E,aAAczgF,EAAY/M,QAAQ2U,KAClCw7E,WAAYpjF,EAAY/M,QAAQ2U,KAChC+a,WAAY3iB,EAAY/M,QAAQ6U,OAChCoX,aAAclf,EAAY/M,QAAQ6U,OAClCk4E,YAAahgF,EAAY/M,QAAQ0U,KAAKE,WACtCu4E,aAAcpgF,EAAY/M,QAAQ0U,KAAKE,WACvCq4E,SAAUlgF,EAAY/M,QAAQ0U,KAAKE,WACnC8V,KAAM3d,EAAY/M,QAAQyU,MAAM,CAAC,aAAc,aAC/Cq8E,cAAe/jF,EAAY/M,QAAQyU,MAAM,CAAC,UAAW,aACrDpD,MAAOm6E,EAAgB9X,KACvB+b,kBAAmB1iF,EAAY/M,QAAQ2U,KACvCs3E,SAAUl/E,EAAY/M,QAAQ2U,KAC9B23E,YAAav/E,EAAY/M,QAAQ2U,KACjCw3E,SAAUp/E,EAAY/M,QAAQ6U,OAC9BiZ,eAAgB/gB,EAAY/M,QAAQ6U,OACpCg5E,qBAAsB9gF,EAAY/M,QAAQ6U,OAC1Co8E,UAAWlkF,EAAY/M,QAAQ2U,KAC/Bg8E,cAAe5jF,EAAY/M,QAAQ2U,KACnCw8E,aAAcpkF,EAAY/M,QAAQ2U,KAClCu7E,gBAAiBnjF,EAAY/M,QAAQ0U,KAAKE,WAC1Cw5E,WAAYrhF,EAAY/M,QAAQ2U,KAChC05E,sBAAuBthF,EAAY/M,QAAQ6U,OAC3CwY,OAAQtgB,EAAY/M,QAAQ2vB,MAAM,CAC9Bd,UAAW9hB,EAAY/M,QAAQsU,OAC/Bkb,WAAYziB,EAAY/M,QAAQsU,OAChC1R,KAAMmK,EAAY/M,QAAQsU,SAE9B8a,aAAcriB,EAAY/M,QAAQ0U,KAClC2a,WAAYtiB,EAAY/M,QAAQ0U,KAChCya,YAAapiB,EAAY/M,QAAQ0U,KACjCs8E,gBAAiBjkF,EAAY/M,QAAQ0U,KACrC08E,gBAAiBrkF,EAAY/M,QAAQ0U,KACrCs7E,gBAAiBjjF,EAAY/M,QAAQ0U,KACrCm7E,WAAY9iF,EAAY/M,QAAQ0U,KAChC07E,aAAcrjF,EAAY/M,QAAQ0U,MAEtCyc,EAASpc,aAAe,CACpBg7E,gBAAgB,EAChBzjE,YAAY,EACZ2jE,YAAY,EACZE,YAAY,EACZ3C,cAAc,EACdvhE,aAAc,EACdvB,KAAM,aACNomE,cAAe,WACfz/E,MAAO,OACPo+E,mBAAmB,EACnBxD,UAAU,EACVK,aAAa,EACbH,SAAU,IACVr+D,eAAgB,IAChB+/D,qBAAsB,EACtBoD,WAAW,EACXN,eAAe,EACfQ,cAAc,EACdpE,YAAal0E,EACbs0E,aAAct0E,EACdo0E,SAAUp0E,EACVq3E,gBArxByB,SAAgCl9D,EAAShD,GAClE,OAAOgD,EAAU,OAAShD,GAqxB1Bo+D,YAAY,EACZC,sBAAuB,GACvBhhE,OAAQ,CACJwB,UAAW,wBACXW,WAAY,oBACZ5sB,KAAM,cAEVwsB,aAAc,aACdC,WAAY,aACZF,YAAa,aACb6hE,gBAAiB,SAAyBO,EAAgB7jE,EAAS8jE,GAC/D,OAAO3kF,EAAQ7M,QAAQ0F,cAAc,SAAU,CAAEyX,KAAM,SAAU,aAAcq0E,EAAOh0F,UAAWouB,EAAa5rB,QAAQorB,YAAYsC,GAAUpxB,QAASi1F,KAEzJH,gBAAiB,SAAyBG,EAAgB5jE,EAAS6jE,GAC/D,OAAO3kF,EAAQ7M,QAAQ0F,cAAc,SAAU,CAAEyX,KAAM,SAAU,aAAcq0E,EAAOh0F,UAAWouB,EAAa5rB,QAAQsrB,YAAYqC,GAAUrxB,QAASi1F,KAEzJvB,gBAAiB,SAAyBuB,EAAgBzB,EAAY9uF,EAAOwwF,GACzE,OAAO3kF,EAAQ7M,QAAQ0F,cAAc,KAAM,CACvClI,UAAWouB,EAAa5rB,QAAQurB,IAAIukE,GACpCxzF,QAASi1F,EACTnkE,UAAWmkE,EACX/yF,MAAOwC,EACPnG,IAAKmG,EACLwsB,KAAM,SACN9Z,SAAU,EACV,aAAc89E,EAAQ,KAAOxwF,EAAQ,MAG7C6uF,WAAY,SAAoBjtF,EAAMmE,GACjBA,EAAK+oF,WAEtB,OAAOltF,GAEXwtF,aAAc,SAAsB30F,GAChC,OAAOA,IAGftB,EAAQ6F,QAAUmxB,G,gBCj3BlB,OAOC,WACA,aAEA,IAAIsgE,EAAS,GAAG12F,eAEhB,SAAS22F,IAGR,IAFA,IAAI5e,EAAU,GAELr4E,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAC1C,IAAIumE,EAAMtmE,UAAUD,GACpB,GAAKumE,EAAL,CAEA,IAAI2wB,SAAiB3wB,EAErB,GAAgB,WAAZ2wB,GAAoC,WAAZA,EAC3B7e,EAAQ9tE,KAAKg8D,QACP,GAAIv+D,MAAMC,QAAQs+D,IAAQA,EAAIrmE,OAAQ,CAC5C,IAAIi3F,EAAQF,EAAWz2F,MAAM,KAAM+lE,GAC/B4wB,GACH9e,EAAQ9tE,KAAK4sF,QAER,GAAgB,WAAZD,EACV,IAAK,IAAI92F,KAAOmmE,EACXywB,EAAOz2F,KAAKgmE,EAAKnmE,IAAQmmE,EAAInmE,IAChCi4E,EAAQ9tE,KAAKnK,IAMjB,OAAOi4E,EAAQ3wE,KAAK,KAGgBjI,EAAOC,SAC3Cu3F,EAAW1xF,QAAU0xF,EACrBx3F,EAAOC,QAAUu3F,QAGX,kBACL,OAAOA,GADF,QAAe,OAAf,aAtCP,I,gBCPD,UAEIjmE,EAAO,CAAC,EAAW,KAAS,WAAtB,6BAUD,SAAUtxB,EAASyS,EAAQilF,GAClC,aAEAv3F,OAAOiE,eAAepE,EAAS,aAAc,CAC3CqE,OAAO,IAETrE,EAAQ23F,6BAA+BA,EAEvC,IAAIjlF,EAAUzN,EAAuBwN,GAEjCG,EAAc3N,EAAuByyF,GAEzC,SAASzyF,EAAuBU,GAC9B,OAAOA,GAAOA,EAAIC,WAAaD,EAAM,CACnCE,QAASF,GAIb,IAAIzF,EAAWC,OAAOC,QAAU,SAAUC,GACxC,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CACzC,IAAIG,EAASF,UAAUD,GAEvB,IAAK,IAAII,KAAOD,EACVN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAC/CL,EAAOK,GAAOD,EAAOC,IAK3B,OAAOL,GAeT,SAASgT,EAAgBF,EAAUb,GACjC,KAAMa,aAAoBb,GACxB,MAAM,IAAIc,UAAU,qCAIxB,IAAIpB,EAAe,WACjB,SAASC,EAAiB5R,EAAQkB,GAChC,IAAK,IAAIjB,EAAI,EAAGA,EAAIiB,EAAMf,OAAQF,IAAK,CACrC,IAAI4R,EAAa3Q,EAAMjB,GACvB4R,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDlS,OAAOiE,eAAe/D,EAAQ6R,EAAWxR,IAAKwR,IAIlD,OAAO,SAAUI,EAAaC,EAAYC,GAGxC,OAFID,GAAYN,EAAiBK,EAAY3R,UAAW4R,GACpDC,GAAaP,EAAiBK,EAAaE,GACxCF,GAdQ,GAkBnB,SAAS+S,EAA2BF,EAAMtkB,GACxC,IAAKskB,EACH,MAAM,IAAIC,eAAe,6DAG3B,OAAOvkB,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BskB,EAAPtkB,EAmB5E,IAAI+2F,GAAwB,EAC5B,SAASD,EAA6BE,GACpCD,EAAwBC,EAG1B,IACEvpF,iBAAiB,OAAQ,KAAMnO,OAAOiE,eAAe,GAAI,UAAW,CAAE6P,IAAK,WACvE0jF,GAA6B,OAEjC,MAAO7tF,IAET,SAASguF,IACP,IAAIrjF,EAAUlU,UAAUC,OAAS,QAAsBuE,IAAjBxE,UAAU,GAAmBA,UAAU,GAAK,CAAEmpB,SAAS,GAE7F,OAAOkuE,EAAwBnjF,EAAUA,EAAQiV,QAQnD,SAASypE,EAAY9wF,GACnB,GAAI,YAAaA,EAAO,CACtB,IAAI01F,EAAkB11F,EAAMg9C,QAAQ,GAIpC,MAAO,CAAEjjC,EAHG27E,EAAgBr/C,MAGTr8B,EAFP07E,EAAgBp/C,OAQ9B,MAAO,CAAEv8B,EAHK/Z,EAAMi2C,QAGCj8B,EAFPha,EAAMk2C,SAKtB,IAAIy/C,EAAa,SAAU9kF,GAGzB,SAAS8kF,IACP,IAAIprF,EAEJyG,EAAgBtS,KAAMi3F,GAEtB,IAAK,IAAIhtF,EAAOzK,UAAUC,OAAQyK,EAAO3C,MAAM0C,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC3ED,EAAKC,GAAQ3K,UAAU2K,GAGzB,IAAIsJ,EAAQ6Q,EAA2BtkB,MAAO6L,EAAOorF,EAAW7xF,WAAahG,OAAOgU,eAAe6jF,IAAan3F,KAAKC,MAAM8L,EAAM,CAAC7L,MAAM2G,OAAOuD,KAW/I,OATAuJ,EAAMyjF,kBAAoBzjF,EAAMyjF,kBAAkBrgF,KAAKpD,GACvDA,EAAM0jF,iBAAmB1jF,EAAM0jF,iBAAiBtgF,KAAKpD,GACrDA,EAAM2jF,gBAAkB3jF,EAAM2jF,gBAAgBvgF,KAAKpD,GAEnDA,EAAM4jF,aAAe5jF,EAAM4jF,aAAaxgF,KAAKpD,GAC7CA,EAAM6jF,aAAe7jF,EAAM6jF,aAAazgF,KAAKpD,GAC7CA,EAAM8jF,WAAa9jF,EAAM8jF,WAAW1gF,KAAKpD,GAEzCA,EAAM+jF,cAAgB/jF,EAAM+jF,cAAc3gF,KAAKpD,GACxCA,EAgKT,OA5OF,SAAmBzO,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIoN,UAAU,kEAAoEpN,GAG1FD,EAASpF,UAAYR,OAAO8F,OAAOD,GAAcA,EAAWrF,UAAW,CACrEuF,YAAa,CACX7B,MAAO0B,EACPoM,YAAY,EACZE,UAAU,EACVD,cAAc,KAGdpM,IAAY7F,OAAOmU,eAAiBnU,OAAOmU,eAAevO,EAAUC,GAAcD,EAASI,UAAYH,GAyC3GuO,CAAUyjF,EAAY9kF,GAyBtBlB,EAAagmF,EAAY,CAAC,CACxBt3F,IAAK,oBACL2D,MAAO,WACDtD,KAAKy3F,QACPz3F,KAAKy3F,OAAOlqF,iBAAiB,YAAavN,KAAKm3F,iBAAkBJ,EAAwB,CACvFpuE,SAAS,EACTpB,SAAS,OAId,CACD5nB,IAAK,uBACL2D,MAAO,WACDtD,KAAKy3F,QACPz3F,KAAKy3F,OAAOjqF,oBAAoB,YAAaxN,KAAKm3F,iBAAkBJ,EAAwB,CAC1FpuE,SAAS,EACTpB,SAAS,OAId,CACD5nB,IAAK,eACL2D,MAAO,SAAsBhC,GACtBtB,KAAKQ,MAAMw1F,mBAIhBh2F,KAAK03F,WAAY,EAEjBntF,SAASgD,iBAAiB,UAAWvN,KAAKu3F,YAC1ChtF,SAASgD,iBAAiB,YAAavN,KAAKs3F,cAE5Ct3F,KAAKk3F,kBAAkB51F,MAExB,CACD3B,IAAK,eACL2D,MAAO,SAAsBhC,GACtBtB,KAAK03F,WAIV13F,KAAKm3F,iBAAiB71F,KAEvB,CACD3B,IAAK,aACL2D,MAAO,SAAoBhC,GACzBtB,KAAK03F,WAAY,EAEjBntF,SAASiD,oBAAoB,UAAWxN,KAAKu3F,YAC7ChtF,SAASiD,oBAAoB,YAAaxN,KAAKs3F,cAE/Ct3F,KAAKo3F,gBAAgB91F,KAEtB,CACD3B,IAAK,oBACL2D,MAAO,SAA2BhC,GAChC,IAAIq2F,EAAevF,EAAY9wF,GAC3B+Z,EAAIs8E,EAAat8E,EACjBC,EAAIq8E,EAAar8E,EAErBtb,KAAK43F,UAAY,CAAEv8E,EAAGA,EAAGC,EAAGA,GAC5Btb,KAAKQ,MAAM0zB,aAAa5yB,KAEzB,CACD3B,IAAK,mBACL2D,MAAO,SAA0BhC,GAC/B,GAAKtB,KAAK43F,UAAV,CAIA,IAAIC,EAAgBzF,EAAY9wF,GAC5B+Z,EAAIw8E,EAAcx8E,EAClBC,EAAIu8E,EAAcv8E,EAElB8Z,EAAS/Z,EAAIrb,KAAK43F,UAAUv8E,EAC5BujC,EAAStjC,EAAItb,KAAK43F,UAAUt8E,EAChCtb,KAAK83F,QAAS,EAIa93F,KAAKQ,MAAMyzB,YAAY,CAChD5Y,EAAG+Z,EACH9Z,EAAGsjC,GACFt9C,IAGDA,EAAM8jB,iBAGRplB,KAAK+3F,aAAe,CAAE3iE,OAAQA,EAAQwpB,OAAQA,MAE/C,CACDj/C,IAAK,kBACL2D,MAAO,SAAyBhC,GAC9BtB,KAAKQ,MAAM2zB,WAAW7yB,GAEtB,IAAI6nE,EAAYnpE,KAAKQ,MAAM2oE,UAGvBnpE,KAAK83F,QAAU93F,KAAK+3F,eAClB/3F,KAAK+3F,aAAa3iE,QAAU+zC,EAC9BnpE,KAAKQ,MAAMszB,YAAY,EAAGxyB,GACjBtB,KAAK+3F,aAAa3iE,OAAS+zC,GACpCnpE,KAAKQ,MAAMwzB,aAAa,EAAG1yB,GAEzBtB,KAAK+3F,aAAan5C,QAAUuqB,EAC9BnpE,KAAKQ,MAAMm1F,UAAU,EAAGr0F,GACftB,KAAK+3F,aAAan5C,OAASuqB,GACpCnpE,KAAKQ,MAAMq1F,YAAY,EAAGv0F,IAI9BtB,KAAK43F,UAAY,KACjB53F,KAAK83F,QAAS,EACd93F,KAAK+3F,aAAe,OAErB,CACDp4F,IAAK,gBACL2D,MAAO,SAAuBoxB,GAC5B10B,KAAKy3F,OAAS/iE,EACd10B,KAAKQ,MAAMU,SAASwzB,KAErB,CACD/0B,IAAK,SACL2D,MAAO,WACL,IAAI8H,EAASpL,KAAKQ,MAEd8B,GADU8I,EAAOwoB,QACLxoB,EAAO9I,WACnBO,EAAQuI,EAAOvI,MACftC,EAAW6K,EAAO7K,SAWlBC,GAVmB4K,EAAO4qF,iBACd5qF,EAAOuqF,UACLvqF,EAAOyqF,YACPzqF,EAAO0oB,YACN1oB,EAAO4oB,aACP5oB,EAAO8oB,aACR9oB,EAAO6oB,YACR7oB,EAAO+oB,WACT/oB,EAAOlK,SACNkK,EAAO+9D,UAtQ7B,SAAkCvkE,EAAKiD,GACrC,IAAIvI,EAAS,GAEb,IAAK,IAAIC,KAAKqF,EACRiD,EAAKM,QAAQ5I,IAAM,GAClBH,OAAOQ,UAAUC,eAAeC,KAAK8E,EAAKrF,KAC/CD,EAAOC,GAAKqF,EAAIrF,IAGlB,OAAOD,EA8PS04F,CAAyB5sF,EAAQ,CAAC,UAAW,YAAa,QAAS,WAAY,mBAAoB,YAAa,cAAe,cAAe,eAAgB,eAAgB,cAAe,aAAc,WAAY,eAEnO,OAAOuG,EAAQ7M,QAAQ0F,cACrBxK,KAAKQ,MAAMozB,QACXz0B,EAAS,CACPuvB,IAAK1uB,KAAKw3F,cACVS,YAAaj4F,KAAKq3F,aAClBa,aAAcl4F,KAAKk3F,kBACnBiB,WAAYn4F,KAAKo3F,gBACjB90F,UAAWA,EACXO,MAAOA,GACNrC,GACHD,OAKC02F,EAvLQ,CAwLfvlF,EAAOxR,WAET+2F,EAAWr1E,YAAc,aACzBq1E,EAAW99E,UAAY,CACrBya,QAAS/hB,EAAY/M,QAAQsU,OAC7B9W,UAAWuP,EAAY/M,QAAQsU,OAC/BvW,MAAOgP,EAAY/M,QAAQ6N,OAC3BpS,SAAUsR,EAAY/M,QAAQ4vB,KAC9BshE,iBAAkBnkF,EAAY/M,QAAQ2U,KACtCk8E,UAAW9jF,EAAY/M,QAAQ0U,KAC/Bq8E,YAAahkF,EAAY/M,QAAQ0U,KACjCsa,YAAajiB,EAAY/M,QAAQ0U,KACjCwa,aAAcniB,EAAY/M,QAAQ0U,KAClC0a,aAAcriB,EAAY/M,QAAQ0U,KAClCya,YAAapiB,EAAY/M,QAAQ0U,KACjC2a,WAAYtiB,EAAY/M,QAAQ0U,KAChCtY,SAAU2Q,EAAY/M,QAAQ0U,KAC9B2vD,UAAWt3D,EAAY/M,QAAQ6U,OAAOD,YAExCu9E,EAAWp9E,aAAe,CACxB+Z,QAAS,MACToiE,kBAAkB,EAClBL,UAAW,aACXE,YAAa,aACb/hE,YAAa,aACbE,aAAc,aACdE,aAAc,aACdD,YAAa,aACbE,WAAY,aACZjzB,SAAU,aAEVioE,UAAW,GAEblqE,EAAQ6F,QAAUmyF,IApWV,gC,6BCAV73F,OAAOiE,eAAepE,EAAS,aAAc,CACzCqE,OAAO,IAEMrE,EAAQg2B,WAAa,SAAoBvgB,GACtD,IAAIyB,EAAQzB,EAAG4kE,YACXz2E,EAAQye,iBAAiB5M,GAG7B,OADAyB,GAAS0lD,SAASh5D,EAAMu1F,YAAcv8B,SAASh5D,EAAMw1F,e,6BCPzDj5F,OAAOiE,eAAepE,EAAS,aAAc,CACzCqE,OAAO,IAEArE,EAAQu5E,KAAO,SAAch4E,EAAOsV,EAAUwjD,GACrD,IAAK,0BAA0Br6C,KAAKze,EAAMsV,IACtC,OAAO,IAAItQ,MAAM,iBAAmBsQ,EAAW,kBAAyBwjD,EAAgB,kF,oHCNjF,SAAS0+B,EAAyBt4F,EAAQqR,GACvD,GAAc,MAAVrR,EAAgB,MAAO,GAC3B,IACIC,EAAKJ,EADLD,EAAS,OAAAg5F,EAAA,GAA6B54F,EAAQqR,GAGlD,GAAI3R,OAAO0jB,sBAAuB,CAChC,IAAIy1E,EAAmBn5F,OAAO0jB,sBAAsBpjB,GAEpD,IAAKH,EAAI,EAAGA,EAAIg5F,EAAiB94F,OAAQF,IACvCI,EAAM44F,EAAiBh5F,GACnBwR,EAAS5I,QAAQxI,IAAQ,GACxBP,OAAOQ,UAAUirB,qBAAqB/qB,KAAKJ,EAAQC,KACxDL,EAAOK,GAAOD,EAAOC,IAIzB,OAAOL,E,yBCjBT,SAASk5F,EAAMC,GACd,IAAI1yF,EAAGuV,EAAGyM,EAAI,GACd,GAAI0wE,EACH,GAAmB,kBAARA,EACV,GAAIlxF,MAAMC,QAAQixF,GACjB,IAAK1yF,EAAE,EAAGA,EAAI0yF,EAAIh5F,OAAQsG,IACrB0yF,EAAI1yF,KAAOuV,EAAIk9E,EAAMC,EAAI1yF,OAC5BgiB,IAAQA,GAAO,KACfA,GAAOzM,QAIT,IAAKvV,KAAK0yF,EACLA,EAAI1yF,KAAOuV,EAAIk9E,EAAMzyF,MACxBgiB,IAAQA,GAAO,KACfA,GAAOzM,OAIe,mBAARm9E,GAAsBA,EAAI34F,OAC3CioB,IAAQA,GAAO,KACfA,GAAO0wE,GAGT,OAAO1wE,EAGO,iBAEd,IADA,IAAS1M,EAAL9b,EAAE,EAAMwoB,EAAI,GACTxoB,EAAIC,UAAUC,SAChB4b,EAAIm9E,EAAMh5F,UAAUD,SACvBwoB,IAAQA,GAAO,KACfA,GAAO1M,GAGT,OAAO0M,G,iBCnCJ2wE,EAA4B,oBAAXr6E,QAAoD,kBAApBA,OAAOC,SAAwB,SAAU1Z,GAAO,cAAcA,GAAS,SAAUA,GAAO,OAAOA,GAAyB,oBAAXyZ,QAAyBzZ,EAAIO,cAAgBkZ,QAAUzZ,IAAQyZ,OAAOze,UAAY,gBAAkBgF,GAIvP+zF,EAF4E,YAAjD,qBAAXruF,OAAyB,YAAcouF,EAAQpuF,UAAiG,YAAnD,qBAAbC,SAA2B,YAAcmuF,EAAQnuF,YAAiD,IAAtBA,SAAS2V,S,MCFpM,SAAS04E,EAAkBt5F,EAAQkB,GACjC,IAAK,IAAIjB,EAAI,EAAGA,EAAIiB,EAAMf,OAAQF,IAAK,CACrC,IAAI4R,EAAa3Q,EAAMjB,GACvB4R,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDlS,OAAOiE,eAAe/D,EAAQ6R,EAAWxR,IAAKwR,IAInC,SAASF,EAAaM,EAAaC,EAAYC,GAG5D,OAFID,GAAYonF,EAAkBrnF,EAAY3R,UAAW4R,GACrDC,GAAamnF,EAAkBrnF,EAAaE,GACzCF,E,WCbM,SAASsnF,EAAuBz0E,GAC7C,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,ECGT,IAAI00E,EAA0B,GAAG3zF,YACjC,SAAS4zF,EAAWl2F,GAClB,GAAa,MAATA,GAAkC,kBAAVA,EAAoB,OAAOA,EACvD,GAAI0E,MAAMC,QAAQ3E,GAAQ,OAAOA,EAAM2N,IAAIuoF,GAC3C,GAAIl2F,EAAMsC,cAAgB2zF,EAAyB,OAAOj2F,EAC1D,IAAIm2F,EAAW,GAEf,IAAK,IAAI98E,KAAQrZ,EACfm2F,EAAS98E,GAAQ68E,EAAWl2F,EAAMqZ,IAGpC,OAAO88E,EAOT,SAASC,EAAW/8E,EAAMg9E,EAAMxlF,QACjB,IAATwI,IACFA,EAAO,WAGT,IAAIi9E,EAAMzlF,EAAQylF,IACdC,EAAWL,EAAWG,GACtBG,EAAOF,EAAIG,QAAQC,aAAar9E,EAAMk9E,EAAU1lF,GACpD,OAAI2lF,IAEAn9E,EAAK,GAIF,MAGT,IAAIjV,EAAO,SAAc3D,EAAOsgF,GAG9B,IAFA,IAAI58E,EAAS,GAEJzH,EAAI,EAAGA,EAAI+D,EAAM7D,QAEP,eAAb6D,EAAM/D,GAFsBA,IAG5ByH,IAAQA,GAAU48E,GACtB58E,GAAU1D,EAAM/D,GAGlB,OAAOyH,GAYT,SAASwyF,EAAWl2F,EAAOm2F,GAKzB,QAJwB,IAApBA,IACFA,GAAkB,IAGflyF,MAAMC,QAAQlE,GAAQ,OAAOA,EAClC,IAAIo2F,EAAW,GAEf,GAAInyF,MAAMC,QAAQlE,EAAM,IACtB,IAAK,IAAI/D,EAAI,EAAGA,EAAI+D,EAAM7D,QACP,eAAb6D,EAAM/D,GADsBA,IAE5Bm6F,IAAUA,GAAY,MAC1BA,GAAYzyF,EAAK3D,EAAM/D,GAAI,UAExBm6F,EAAWzyF,EAAK3D,EAAO,MAO9B,OAJKm2F,GAA+C,eAA5Bn2F,EAAMA,EAAM7D,OAAS,KAC3Ci6F,GAAY,eAGPA,EAOT,SAASC,EAAU5xE,EAAK6xE,GAGtB,IAFA,IAAI5yF,EAAS,GAEJlB,EAAQ,EAAGA,EAAQ8zF,EAAQ9zF,IAClCkB,GAAU,KAGZ,OAAOA,EAAS+gB,EAOlB,SAAS8xE,EAAMC,EAAUj3F,EAAO6Q,QACd,IAAZA,IACFA,EAAU,IAGZ,IAAI1M,EAAS,GACb,IAAKnE,EAAO,OAAOmE,EACnB,IACI+yF,EADWrmF,EACgBkmF,OAC3BA,OAA6B,IAApBG,EAA6B,EAAIA,EAC1CC,EAAYn3F,EAAMm3F,UAGtB,GAFIF,GAAUF,IAEVI,EAEF,GAAIzyF,MAAMC,QAAQwyF,GAChB,IAAK,IAAIl0F,EAAQ,EAAGA,EAAQk0F,EAAUv6F,OAAQqG,IAAS,CACrD,IAAIumD,EAAW2tC,EAAUl0F,GAEzB,IAAK,IAAI2P,KAAQ42C,EAAU,CACzB,IAAI/oD,EAAQ+oD,EAAS52C,GAER,MAATnS,IACE0D,IAAQA,GAAU,MACtBA,GAAU,GAAK2yF,EAAUlkF,EAAO,KAAO+jF,EAAWl2F,GAAS,IAAKs2F,UAMtE,IAAK,IAAIK,KAASD,EAAW,CAC3B,IAAIE,EAASF,EAAUC,GAET,MAAVC,IACElzF,IAAQA,GAAU,MACtBA,GAAU,GAAK2yF,EAAUM,EAAQ,KAAOT,EAAWU,GAAU,IAAKN,IAM1E,IAAK,IAAIO,KAAUt3F,EAAO,CACxB,IAAIu3F,EAAUv3F,EAAMs3F,GAEL,MAAXC,GAA8B,cAAXD,IACjBnzF,IAAQA,GAAU,MACtBA,GAAU,GAAK2yF,EAAUQ,EAAS,KAAOX,EAAWY,GAAW,IAAKR,IAKxE,OAAK5yF,GAAW0M,EAAQ2mF,aAEnBP,GAED9yF,IAAQA,EAAS,KAAOA,EAAS,MAC9B2yF,EAAUG,EAAW,KAAO9yF,IAFnC4yF,GAEqDD,EAAU,IAAKC,IALzB5yF,EAQ7C,IAAIszF,EAAc,+BACdC,EAA8B,qBAARC,KAAuBA,IAAIvhE,OACjDA,EAAU,SAAUlR,GACtB,OAAOwyE,EAAeA,EAAaxyE,GAAOA,EAAInmB,QAAQ04F,EAAa,SAGjEG,EAEJ,WACE,SAASA,EAAc96F,EAAKkD,EAAO6Q,GACjC1T,KAAKiiB,KAAO,QACZjiB,KAAKL,SAAM,EACXK,KAAK06F,aAAc,EACnB16F,KAAK6C,WAAQ,EACb7C,KAAK26F,cAAW,EAChB36F,KAAK46F,gBAAa,EAClB56F,KAAK0T,aAAU,EACf,IAAImnF,EAAQnnF,EAAQmnF,MAChBC,EAAWpnF,EAAQonF,SACvB96F,KAAKL,IAAMA,EACXK,KAAK0T,QAAUA,EACf1T,KAAK6C,MAAQA,EACTg4F,EAAO76F,KAAK26F,SAAWE,EAAMF,SAAkBG,IAAU96F,KAAK26F,SAAW,IAAIG,GA2CnF,OApCaL,EAAc76F,UAEpB6V,KAAO,SAAcyG,EAAM5Y,EAAOoQ,GAEvC,QAAc1P,IAAVV,EAAqB,OAAOtD,KAAK6C,MAAMqZ,GAE3C,IAAI6+E,IAAQrnF,GAAUA,EAAQqnF,MAC9B,IAAKA,GAAS/6F,KAAK6C,MAAMqZ,KAAU5Y,EAAO,OAAOtD,KACjD,IAAIqa,EAAW/W,EAEVoQ,IAA+B,IAApBA,EAAQoK,UACtBzD,EAAWra,KAAK0T,QAAQylF,IAAIG,QAAQ0B,cAAc13F,EAAO4Y,EAAMlc,OAGjE,IAAIi7F,EAAsB,MAAZ5gF,IAAiC,IAAbA,EAC9B6gF,EAAYh/E,KAAQlc,KAAK6C,MAE7B,GAAIo4F,IAAYC,IAAcH,EAAO,OAAO/6F,KAE5C,IAAI2nB,EAASszE,GAAWC,EAGxB,GAFIvzE,SAAe3nB,KAAK6C,MAAMqZ,GAAWlc,KAAK6C,MAAMqZ,GAAQ7B,EAExDra,KAAK46F,YAAc56F,KAAK26F,SAE1B,OADIhzE,EAAQ3nB,KAAK26F,SAASQ,eAAen7F,KAAK46F,WAAY1+E,GAAWlc,KAAK26F,SAAS9sD,YAAY7tC,KAAK46F,WAAY1+E,EAAM7B,GAC/Gra,KAGT,IAAI66F,EAAQ76F,KAAK0T,QAAQmnF,MAMzB,OAJIA,GAASA,EAAMO,SAIZp7F,MAGFy6F,EAzDT,GA2DIY,EAEJ,SAAUC,GAGR,SAASD,EAAU17F,EAAKkD,EAAO6Q,GAC7B,IAAID,GAEJA,EAAQ6nF,EAAex7F,KAAKE,KAAML,EAAKkD,EAAO6Q,IAAY1T,MACpDu7F,kBAAe,EACrB9nF,EAAM0B,QAAK,EACX1B,EAAMmnF,gBAAa,EACnB,IAAId,EAAWpmF,EAAQomF,SACnB0B,EAAS9nF,EAAQ8nF,OACjBX,EAAQnnF,EAAQmnF,MAChBY,EAAa/nF,EAAQ+nF,WASzB,OAPI3B,EACFrmF,EAAM8nF,aAAezB,GACD,IAAX0B,IACT/nF,EAAM0B,GAAKsmF,EAAW5C,EAAuBA,EAAuBplF,IAASonF,GAC7EpnF,EAAM8nF,aAAe,IAAMtiE,EAAOxlB,EAAM0B,KAGnC1B,EArBT1O,YAAes2F,EAAWC,GA8B1B,IAAIx/E,EAAUu/E,EAAUz7F,UAwExB,OAnEAkc,EAAQ4/E,QAAU,SAAiBd,GACjC,IAAID,EAAW36F,KAAK26F,SAEpB,GAAIA,EAAU,CACZ,IAAI7sB,EAAO9tE,KAAKouE,SAEhB,IAAK,IAAI34D,KAAQq4D,EACf6sB,EAAS9sD,YAAY+sD,EAAYnlF,EAAMq4D,EAAKr4D,IAIhD,OAAOzV,MAST8b,EAAQsyD,OAAS,WACf,IAAIN,EAAO,GAEX,IAAK,IAAIr4D,KAAQzV,KAAK6C,MAAO,CAC3B,IAAIS,EAAQtD,KAAK6C,MAAM4S,GACF,kBAAVnS,EAAoBwqE,EAAKr4D,GAAQnS,EAAeiE,MAAMC,QAAQlE,KAAQwqE,EAAKr4D,GAAQ+jF,EAAWl2F,IAG3G,OAAOwqE,GAOThyD,EAAQ5P,SAAW,SAAkBwH,GACnC,IAAImnF,EAAQ76F,KAAK0T,QAAQmnF,MAErBvzE,IADOuzE,GAAQA,EAAMnnF,QAAQiM,KACfxgB,YAAS,GAAIuU,EAAS,CACtC2mF,YAAY,IACT3mF,EACL,OAAOmmF,EAAM75F,KAAKu7F,aAAcv7F,KAAK6C,MAAOykB,IAG9CrW,EAAaoqF,EAAW,CAAC,CACvB17F,IAAK,WACL6U,IAAK,SAAaslF,GAChB,GAAIA,IAAa95F,KAAKu7F,aAAtB,CACAv7F,KAAKu7F,aAAezB,EACpB,IAAIa,EAAW36F,KAAK26F,SAChBC,EAAa56F,KAAK46F,WACtB,GAAKA,GAAeD,EACHA,EAASgB,YAAYf,EAAYd,IAGhDa,EAASiB,YAAYhB,EAAY56F,QAOrCkT,IAAK,WACH,OAAOlT,KAAKu7F,iBAITF,EAvGT,CAwGEZ,GACEoB,EAAkB,CACpBtC,aAAc,SAAsBr9E,EAAMrZ,EAAO6Q,GAC/C,MAAgB,MAAZwI,EAAK,IAAcxI,EAAQP,QAAkC,cAAxBO,EAAQP,OAAO8O,KAC/C,KAGF,IAAIo5E,EAAUn/E,EAAMrZ,EAAO6Q,KAIlCooF,EAAyB,CAC3BlC,OAAQ,EACRr5F,UAAU,GAERw7F,EAAW,YAKXC,EAEJ,WACE,SAASA,EAAgBr8F,EAAKsS,EAAQyB,GACpC1T,KAAKiiB,KAAO,cACZjiB,KAAKi8F,QAAK,EACVj8F,KAAKL,SAAM,EACXK,KAAKwtE,WAAQ,EACbxtE,KAAKk8F,WAAQ,EACbl8F,KAAK0T,aAAU,EACf1T,KAAK06F,aAAc,EACnB16F,KAAK46F,gBAAa,EAClB56F,KAAKL,IAAMA,EAEXK,KAAKwtE,MAAQ95D,EAAQwI,KACrB,IAAIigF,EAAUx8F,EAAIsD,MAAM84F,GAOxB,IAAK,IAAI7/E,KANTlc,KAAKi8F,GAAKE,EAAUA,EAAQ,GAAK,UACjCn8F,KAAK0T,QAAUA,EACf1T,KAAKk8F,MAAQ,IAAIE,GAASj9F,YAAS,GAAIuU,EAAS,CAC9CP,OAAQnT,QAGOiS,EACfjS,KAAKk8F,MAAMvsC,IAAIzzC,EAAMjK,EAAOiK,IAG9Blc,KAAKk8F,MAAMp+E,UAOb,IAAI9C,EAASghF,EAAgBp8F,UA6C7B,OA3CAob,EAAOqhF,QAAU,SAAiBngF,GAChC,OAAOlc,KAAKk8F,MAAMhpF,IAAIgJ,IAOxBlB,EAAO7S,QAAU,SAAiBkxF,GAChC,OAAOr5F,KAAKk8F,MAAM/zF,QAAQkxF,IAO5Br+E,EAAOshF,QAAU,SAAiBpgF,EAAMrZ,EAAO6Q,GAC7C,IAAI2lF,EAAOr5F,KAAKk8F,MAAMvsC,IAAIzzC,EAAMrZ,EAAO6Q,GACvC,OAAK2lF,GACLr5F,KAAK0T,QAAQylF,IAAIG,QAAQiD,cAAclD,GAChCA,GAFW,MASpBr+E,EAAO9O,SAAW,SAAkBwH,GAQlC,QAPgB,IAAZA,IACFA,EAAUooF,GAGU,MAAlBpoF,EAAQkmF,SAAgBlmF,EAAQkmF,OAASkC,EAAuBlC,QAC5C,MAApBlmF,EAAQnT,WAAkBmT,EAAQnT,SAAWu7F,EAAuBv7F,WAE/C,IAArBmT,EAAQnT,SACV,OAAOP,KAAKwtE,MAAQ,MAGtB,IAAIjtE,EAAWP,KAAKk8F,MAAMhwF,SAASwH,GACnC,OAAOnT,EAAWP,KAAKwtE,MAAQ,OAASjtE,EAAW,MAAQ,IAGtDy7F,EA5ET,GA8EIQ,EAAY,sBACZC,EAAwB,CAC1BlD,aAAc,SAAsB55F,EAAKsS,EAAQyB,GAC/C,OAAO8oF,EAAUv9E,KAAKtf,GAAO,IAAIq8F,EAAgBr8F,EAAKsS,EAAQyB,GAAW,OAIzEgpF,EAA2B,CAC7B9C,OAAQ,EACRr5F,UAAU,GAERo8F,EAAa,wBAKbC,EAEJ,WACE,SAASA,EAAcj9F,EAAKk9F,EAAQnpF,GAClC1T,KAAKiiB,KAAO,YACZjiB,KAAKi8F,GAAK,aACVj8F,KAAKL,SAAM,EACXK,KAAKkc,UAAO,EACZlc,KAAKmV,QAAK,EACVnV,KAAKk8F,WAAQ,EACbl8F,KAAK0T,aAAU,EACf1T,KAAK06F,aAAc,EACnB16F,KAAK46F,gBAAa,EAClB,IAAIkC,EAAYn9F,EAAIsD,MAAM05F,GAEtBG,GAAaA,EAAU,GACzB98F,KAAKkc,KAAO4gF,EAAU,GAEtB98F,KAAKkc,KAAO,SAIdlc,KAAKL,IAAMK,KAAKiiB,KAAO,IAAMjiB,KAAKkc,KAClClc,KAAK0T,QAAUA,EACf,IAAI8nF,EAAS9nF,EAAQ8nF,OACjBX,EAAQnnF,EAAQmnF,MAChBY,EAAa/nF,EAAQ+nF,WAMzB,IAAK,IAAIv/E,KALTlc,KAAKmV,IAAgB,IAAXqmF,EAAmBx7F,KAAKkc,KAAO+c,EAAOwiE,EAAWz7F,KAAM66F,IACjE76F,KAAKk8F,MAAQ,IAAIE,GAASj9F,YAAS,GAAIuU,EAAS,CAC9CP,OAAQnT,QAGO68F,EACf78F,KAAKk8F,MAAMvsC,IAAIzzC,EAAM2gF,EAAO3gF,GAAO/c,YAAS,GAAIuU,EAAS,CACvDP,OAAQnT,QAIZA,KAAKk8F,MAAMp+E,UA0Bb,OAnBa8+E,EAAch9F,UAEpBsM,SAAW,SAAkBwH,GAQlC,QAPgB,IAAZA,IACFA,EAAUgpF,GAGU,MAAlBhpF,EAAQkmF,SAAgBlmF,EAAQkmF,OAAS8C,EAAyB9C,QAC9C,MAApBlmF,EAAQnT,WAAkBmT,EAAQnT,SAAWm8F,EAAyBn8F,WAEjD,IAArBmT,EAAQnT,SACV,OAAOP,KAAKi8F,GAAK,IAAMj8F,KAAKmV,GAAK,MAGnC,IAAI5U,EAAWP,KAAKk8F,MAAMhwF,SAASwH,GAEnC,OADInT,IAAUA,EAAW,KAAOA,EAAW,MACpCP,KAAKi8F,GAAK,IAAMj8F,KAAKmV,GAAK,KAAO5U,EAAW,KAG9Cq8F,EA9DT,GAgEIG,EAAc,gBACdC,EAAY,cAEZC,EAAyB,SAAgClyE,EAAKmyE,GAChE,MAAmB,kBAARnyE,EACFA,EAAInpB,QAAQo7F,GAAW,SAAU/5F,EAAOiZ,GAC7C,OAAIA,KAAQghF,EACHA,EAAUhhF,GAIZjZ,KAIJ8nB,GAOLoyE,EAAa,SAAoBt6F,EAAO4S,EAAMynF,GAChD,IAAI55F,EAAQT,EAAM4S,GACd2nF,EAAcH,EAAuB35F,EAAO45F,GAE5CE,IAAgB95F,IAClBT,EAAM4S,GAAQ2nF,IAIdhtB,EAAS,CACXmpB,aAAc,SAAsB55F,EAAKk9F,EAAQnpF,GAC/C,MAAsB,kBAAR/T,GAAoBo9F,EAAY99E,KAAKtf,GAAO,IAAIi9F,EAAcj9F,EAAKk9F,EAAQnpF,GAAW,MAGtG2pF,eAAgB,SAAwBx6F,EAAOw2F,EAAMwB,GACnD,MAAkB,UAAdxB,EAAKp3E,MAAqB44E,GAC1B,mBAAoBh4F,GAAOs6F,EAAWt6F,EAAO,iBAAkBg4F,EAAMqC,WACrE,cAAer6F,GAAOs6F,EAAWt6F,EAAO,YAAag4F,EAAMqC,WACxDr6F,GAHqCA,GAK9Cm4F,cAAe,SAAuBjwE,EAAKtV,EAAM4jF,GAC/C,IAAIwB,EAAQxB,EAAK3lF,QAAQmnF,MAEzB,IAAKA,EACH,OAAO9vE,EAGT,OAAQtV,GACN,IAAK,YAGL,IAAK,iBACH,OAAOwnF,EAAuBlyE,EAAK8vE,EAAMqC,WAE3C,QACE,OAAOnyE,KAKXuyE,EAEJ,SAAUhC,GAGR,SAASgC,IAGP,IAFA,IAAI7pF,EAEKxJ,EAAOzK,UAAUC,OAAQyK,EAAO,IAAI3C,MAAM0C,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC/ED,EAAKC,GAAQ3K,UAAU2K,GAKzB,OAFAsJ,EAAQ6nF,EAAex7F,KAAKC,MAAMu7F,EAAgB,CAACt7F,MAAM2G,OAAOuD,KAAUlK,MACpE46F,gBAAa,EACZnnF,EAiBT,OA5BA1O,YAAeu4F,EAAchC,GAchBgC,EAAa19F,UAKnBsM,SAAW,SAAkBwH,GAClC,IAAImnF,EAAQ76F,KAAK0T,QAAQmnF,MAErBvzE,IADOuzE,GAAQA,EAAMnnF,QAAQiM,KACfxgB,YAAS,GAAIuU,EAAS,CACtC2mF,YAAY,IACT3mF,EACL,OAAOmmF,EAAM75F,KAAKL,IAAKK,KAAK6C,MAAOykB,IAG9Bg2E,EA7BT,CA8BE7C,GACE8C,EAAqB,CACvBhE,aAAc,SAAsB55F,EAAKkD,EAAO6Q,GAC9C,OAAIA,EAAQP,QAAkC,cAAxBO,EAAQP,OAAO8O,KAC5B,IAAIq7E,EAAa39F,EAAKkD,EAAO6Q,GAG/B,OAIP8pF,EAEJ,WACE,SAASA,EAAa79F,EAAKkD,EAAO6Q,GAChC1T,KAAKiiB,KAAO,YACZjiB,KAAKi8F,GAAK,aACVj8F,KAAKL,SAAM,EACXK,KAAK6C,WAAQ,EACb7C,KAAK0T,aAAU,EACf1T,KAAK06F,aAAc,EACnB16F,KAAK46F,gBAAa,EAClB56F,KAAKL,IAAMA,EACXK,KAAK6C,MAAQA,EACb7C,KAAK0T,QAAUA,EAwBjB,OAjBa8pF,EAAa59F,UAEnBsM,SAAW,SAAkBwH,GAClC,GAAInM,MAAMC,QAAQxH,KAAK6C,OAAQ,CAG7B,IAFA,IAAIklB,EAAM,GAEDjiB,EAAQ,EAAGA,EAAQ9F,KAAK6C,MAAMpD,OAAQqG,IAC7CiiB,GAAO8xE,EAAM75F,KAAKi8F,GAAIj8F,KAAK6C,MAAMiD,IAC7B9F,KAAK6C,MAAMiD,EAAQ,KAAIiiB,GAAO,MAGpC,OAAOA,EAGT,OAAO8xE,EAAM75F,KAAKi8F,GAAIj8F,KAAK6C,MAAO6Q,IAG7B8pF,EAnCT,GAqCIC,EAAc,aACdC,EAAqB,CACvBnE,aAAc,SAAsB55F,EAAKkD,EAAO6Q,GAC9C,OAAO+pF,EAAYx+E,KAAKtf,GAAO,IAAI69F,EAAa79F,EAAKkD,EAAO6Q,GAAW,OAIvEiqF,EAEJ,WACE,SAASA,EAAah+F,EAAKkD,EAAO6Q,GAChC1T,KAAKiiB,KAAO,WACZjiB,KAAKi8F,GAAK,YACVj8F,KAAKL,SAAM,EACXK,KAAK6C,WAAQ,EACb7C,KAAK0T,aAAU,EACf1T,KAAK06F,aAAc,EACnB16F,KAAK46F,gBAAa,EAClB56F,KAAKL,IAAMA,EACXK,KAAK6C,MAAQA,EACb7C,KAAK0T,QAAUA,EAajB,OANaiqF,EAAa/9F,UAEnBsM,SAAW,SAAkBwH,GAClC,OAAOmmF,EAAM75F,KAAKL,IAAKK,KAAK6C,MAAO6Q,IAG9BiqF,EAxBT,GA0BIC,EAAqB,CACvBrE,aAAc,SAAsB55F,EAAKkD,EAAO6Q,GAC9C,MAAe,cAAR/T,GAA+B,kBAARA,EAA0B,IAAIg+F,EAAah+F,EAAKkD,EAAO6Q,GAAW,OAIhGmqF,EAEJ,WACE,SAASA,EAAWl+F,EAAK2D,EAAOoQ,GAC9B1T,KAAKiiB,KAAO,SACZjiB,KAAKL,SAAM,EACXK,KAAKsD,WAAQ,EACbtD,KAAK0T,aAAU,EACf1T,KAAK06F,aAAc,EACnB16F,KAAK46F,gBAAa,EAClB56F,KAAKL,IAAMA,EACXK,KAAKsD,MAAQA,EACbtD,KAAK0T,QAAUA,EAyBjB,OAjBamqF,EAAWj+F,UAEjBsM,SAAW,SAAkBwH,GAClC,GAAInM,MAAMC,QAAQxH,KAAKsD,OAAQ,CAG7B,IAFA,IAAIykB,EAAM,GAEDjiB,EAAQ,EAAGA,EAAQ9F,KAAKsD,MAAM7D,OAAQqG,IAC7CiiB,GAAO/nB,KAAKL,IAAM,IAAMK,KAAKsD,MAAMwC,GAAS,IACxC9F,KAAKsD,MAAMwC,EAAQ,KAAIiiB,GAAO,MAGpC,OAAOA,EAGT,OAAO/nB,KAAKL,IAAM,IAAMK,KAAKsD,MAAQ,KAGhCu6F,EAnCT,GAqCIC,EAAU,CACZ,YAAY,EACZ,WAAW,EACX,cAAc,GAQZxE,EAAU,CAACuC,EAAiBY,EAAuBrsB,EAAQmtB,EAAoBG,EAAoBE,EANhF,CACrBrE,aAAc,SAAsB55F,EAAK2D,EAAOoQ,GAC9C,OAAO/T,KAAOm+F,EAAU,IAAID,EAAWl+F,EAAK2D,EAAOoQ,GAAW,QAM9DqqF,GAAuB,CACzBjgF,SAAS,GAEPkgF,GAAqB,CACvBjD,OAAO,EACPj9E,SAAS,GAQPs+E,GAEJ,WAKE,SAASA,EAAS1oF,GAChB1T,KAAKwQ,IAAM,GACXxQ,KAAKi+F,IAAM,GACXj+F,KAAK8F,MAAQ,GACb9F,KAAKk+F,QAAU,EACfl+F,KAAK0T,aAAU,EACf1T,KAAK43E,aAAU,EACf53E,KAAKk9F,eAAY,EACjBl9F,KAAK0T,QAAUA,EACf1T,KAAK43E,QAAUlkE,EAAQkkE,QACvB53E,KAAKk9F,UAAYxpF,EAAQwpF,UAS3B,IAAIliF,EAASohF,EAASx8F,UAwNtB,OAtNAob,EAAO20C,IAAM,SAAazzC,EAAMg9E,EAAMiF,GACpC,IAAIC,EAAgBp+F,KAAK0T,QACrBP,EAASirF,EAAcjrF,OACvB0nF,EAAQuD,EAAcvD,MACtB1B,EAAMiF,EAAcjF,IACpB2B,EAAWsD,EAActD,SACzBW,EAAa2C,EAAc3C,WAC3BD,EAAS4C,EAAc5C,OAEvB9nF,EAAUvU,YAAS,CACrBy4E,QAAS53E,KAAK43E,QACdzkE,OAAQA,EACR0nF,MAAOA,EACP1B,IAAKA,EACL2B,SAAUA,EACVW,WAAYA,EACZD,OAAQA,EACRt/E,KAAMA,GACLiiF,GAKCx+F,EAAMuc,EAENA,KAAQlc,KAAKi+F,MACft+F,EAAMuc,EAAO,KAAOlc,KAAKk+F,WAK3Bl+F,KAAKi+F,IAAIt+F,GAAOu5F,EAEZv5F,KAAOK,KAAK43E,UAEdlkE,EAAQomF,SAAW,IAAM7gE,EAAOj5B,KAAK43E,QAAQj4E,KAG/C,IAAI05F,EAAOJ,EAAWt5F,EAAKu5F,EAAMxlF,GACjC,IAAK2lF,EAAM,OAAO,KAClBr5F,KAAKsf,SAAS+5E,GACd,IAAIvzF,OAA0B9B,IAAlB0P,EAAQ5N,MAAsB9F,KAAK8F,MAAMrG,OAASiU,EAAQ5N,MAEtE,OADA9F,KAAK8F,MAAM8K,OAAO9K,EAAO,EAAGuzF,GACrBA,GAOTr+E,EAAO9H,IAAM,SAAagJ,GACxB,OAAOlc,KAAKwQ,IAAI0L,IAOlBlB,EAAO2M,OAAS,SAAgB0xE,GAC9Br5F,KAAKuf,WAAW85E,UACTr5F,KAAKi+F,IAAI5E,EAAK15F,KACrBK,KAAK8F,MAAM8K,OAAO5Q,KAAK8F,MAAMqC,QAAQkxF,GAAO,IAO9Cr+E,EAAO7S,QAAU,SAAiBkxF,GAChC,OAAOr5F,KAAK8F,MAAMqC,QAAQkxF,IAO5Br+E,EAAO8C,QAAU,WACf,IAAIugF,EAAar+F,KAAK0T,QAAQylF,IAAIG,QAGlCt5F,KAAK8F,MAAMwC,MAAM,GAAG8B,QAAQi0F,EAAW9B,cAAe8B,IAOxDrjF,EAAOsE,SAAW,SAAkB+5E,GAClCr5F,KAAKwQ,IAAI6oF,EAAK15F,KAAO05F,EAEjBA,aAAgBgC,GAClBr7F,KAAKwQ,IAAI6oF,EAAKS,UAAYT,EACtBA,EAAKlkF,KAAInV,KAAK43E,QAAQyhB,EAAK15F,KAAO05F,EAAKlkF,KAClCkkF,aAAgBuD,GAAiB58F,KAAKk9F,YAC/Cl9F,KAAKk9F,UAAU7D,EAAKn9E,MAAQm9E,EAAKlkF,KAQrC6F,EAAOuE,WAAa,SAAoB85E,UAC/Br5F,KAAKwQ,IAAI6oF,EAAK15F,KAEjB05F,aAAgBgC,UACXr7F,KAAKwQ,IAAI6oF,EAAKS,iBACd95F,KAAK43E,QAAQyhB,EAAK15F,MAChB05F,aAAgBuD,UAClB58F,KAAKk9F,UAAU7D,EAAKn9E,OAQ/BlB,EAAOmM,OAAS,WACd,IAAIjL,EACAwN,EACAhW,EAeJ,GAbkE,kBAAtDlU,UAAUC,QAAU,OAAIuE,EAAYxE,UAAU,KACxD0c,EAAO1c,UAAUC,QAAU,OAAIuE,EAAYxE,UAAU,GAErDkqB,EAAOlqB,UAAUC,QAAU,OAAIuE,EAAYxE,UAAU,GAErDkU,EAAUlU,UAAUC,QAAU,OAAIuE,EAAYxE,UAAU,KAExDkqB,EAAOlqB,UAAUC,QAAU,OAAIuE,EAAYxE,UAAU,GAErDkU,EAAUlU,UAAUC,QAAU,OAAIuE,EAAYxE,UAAU,GACxD0c,EAAO,MAGLA,EACFlc,KAAKs+F,UAAUt+F,KAAKwQ,IAAI0L,GAAOwN,EAAMhW,QAErC,IAAK,IAAI5N,EAAQ,EAAGA,EAAQ9F,KAAK8F,MAAMrG,OAAQqG,IAC7C9F,KAAKs+F,UAAUt+F,KAAK8F,MAAMA,GAAQ4jB,EAAMhW,IAS9CsH,EAAOsjF,UAAY,SAAmBjF,EAAM3vE,EAAMhW,QAChC,IAAZA,IACFA,EAAUqqF,IAGZ,IAAIQ,EAAiBv+F,KAAK0T,QACtB2qF,EAAaE,EAAepF,IAAIG,QAChCuB,EAAQ0D,EAAe1D,MAE3B,GAAIxB,EAAK6C,iBAAiBE,EACxB/C,EAAK6C,MAAM/0E,OAAOuC,EAAMhW,OAD1B,CAKA,IAAI8qF,EAAYnF,EACZx2F,EAAQ27F,EAAU37F,MAGtB,GAFAw7F,EAAWziF,SAAS8N,EAAM2vE,EAAMwB,EAAOnnF,GAEnCA,EAAQoK,SAAWjb,GAASA,IAAU27F,EAAU37F,MAAO,CAIzD,IAAK,IAAI4S,KAFT4oF,EAAWhB,eAAemB,EAAU37F,MAAO27F,EAAW3D,GAErC2D,EAAU37F,MAAO,CAChC,IAAI47F,EAAYD,EAAU37F,MAAM4S,GAI5BgpF,IAHY57F,EAAM4S,IAIpB+oF,EAAU/oF,KAAKA,EAAMgpF,EAAWT,IAKpC,IAAK,IAAI/D,KAASp3F,EAAO,CACvB,IAAI67F,EAAaF,EAAU37F,MAAMo3F,GAC7B0E,EAAa97F,EAAMo3F,GAGL,MAAdyE,GAAsBA,IAAeC,GACvCH,EAAU/oF,KAAKwkF,EAAO,KAAM+D,QAUpChjF,EAAO9O,SAAW,SAAkBwH,GAKlC,IAJA,IAAIqU,EAAM,GACN8yE,EAAQ76F,KAAK0T,QAAQmnF,MACrBl7E,IAAOk7E,GAAQA,EAAMnnF,QAAQiM,KAExB7Z,EAAQ,EAAGA,EAAQ9F,KAAK8F,MAAMrG,OAAQqG,IAAS,CACtD,IACIyoE,EADOvuE,KAAK8F,MAAMA,GACPoG,SAASwH,IAEnB66D,GAAQ5uD,KACToI,IAAKA,GAAO,MAChBA,GAAOwmD,GAGT,OAAOxmD,GAGFq0E,EAhPT,GAmPIwC,GAEJ,WACE,SAASA,EAAW3sF,EAAQyB,GA0B1B,IAAK,IAAIwI,KAzBTlc,KAAK0T,aAAU,EACf1T,KAAK6+F,cAAW,EAChB7+F,KAAKo7F,cAAW,EAChBp7F,KAAKk8F,WAAQ,EACbl8F,KAAK26F,cAAW,EAChB36F,KAAK43E,aAAU,EACf53E,KAAKk9F,eAAY,EACjBl9F,KAAKqoD,WAAQ,EACbroD,KAAKo7F,UAAW,EAChBp7F,KAAK6+F,UAAW,EAChB7+F,KAAK43E,QAAU,GACf53E,KAAKk9F,UAAY,GACjBl9F,KAAK0T,QAAUvU,YAAS,GAAIuU,EAAS,CACnCmnF,MAAO76F,KACPmT,OAAQnT,KACR43E,QAAS53E,KAAK43E,QACdslB,UAAWl9F,KAAKk9F,YAGdxpF,EAAQonF,WACV96F,KAAK26F,SAAW,IAAIjnF,EAAQonF,SAAS96F,OAGvCA,KAAKk8F,MAAQ,IAAIE,GAASp8F,KAAK0T,SAEdzB,EACfjS,KAAKk8F,MAAMvsC,IAAIzzC,EAAMjK,EAAOiK,IAG9Blc,KAAKk8F,MAAMp+E,UAOb,IAAI9C,EAAS4jF,EAAWh/F,UA4JxB,OA1JAob,EAAO8jF,OAAS,WACd,OAAI9+F,KAAKo7F,WACLp7F,KAAK26F,UAAU36F,KAAK26F,SAASmE,SACjC9+F,KAAKo7F,UAAW,EAEXp7F,KAAK6+F,UAAU7+F,KAAK++F,UAJC/+F,MAY5Bgb,EAAOgkF,OAAS,WACd,OAAKh/F,KAAKo7F,UACNp7F,KAAK26F,UAAU36F,KAAK26F,SAASqE,SACjCh/F,KAAKo7F,UAAW,EACTp7F,MAHoBA,MAW7Bgb,EAAOshF,QAAU,SAAiBpgF,EAAMg9E,EAAMxlF,GAC5C,IAAI20C,EAAQroD,KAAKqoD,MAIbroD,KAAKo7F,WAAa/yC,IAAOroD,KAAKqoD,MAAQ,IAC1C,IAAIgxC,EAAOr5F,KAAKk8F,MAAMvsC,IAAIzzC,EAAMg9E,EAAMxlF,GACtC,OAAK2lF,GACLr5F,KAAK0T,QAAQylF,IAAIG,QAAQiD,cAAclD,GAEnCr5F,KAAKo7F,SACFp7F,KAAK6+F,UAGNx2C,EAAOA,EAAMv+C,KAAKuvF,IACpBr5F,KAAKi/F,WAAW5F,GAEZr5F,KAAKqoD,QACProD,KAAKqoD,MAAMj+C,QAAQpK,KAAKi/F,WAAYj/F,MACpCA,KAAKqoD,WAAQrkD,IAGVq1F,GAXoBA,GAgB7Br5F,KAAK6+F,UAAW,EACTxF,IArBW,MA4BpBr+E,EAAOikF,WAAa,SAAoB5F,GAClCr5F,KAAK26F,UACP36F,KAAK26F,SAASsE,WAAW5F,IAS7Br+E,EAAOkkF,SAAW,SAAkBjtF,EAAQyB,GAC1C,IAAIyrF,EAAQ,GAEZ,IAAK,IAAIjjF,KAAQjK,EAAQ,CACvB,IAAIonF,EAAOr5F,KAAKs8F,QAAQpgF,EAAMjK,EAAOiK,GAAOxI,GACxC2lF,GAAM8F,EAAMr1F,KAAKuvF,GAGvB,OAAO8F,GAOTnkF,EAAOqhF,QAAU,SAAiBngF,GAChC,OAAOlc,KAAKk8F,MAAMhpF,IAAIgJ,IAQxBlB,EAAOokF,WAAa,SAAoBljF,GACtC,IAAIm9E,EAAuB,kBAATn9E,EAAoBA,EAAOlc,KAAKk8F,MAAMhpF,IAAIgJ,GAC5D,QAAKm9E,IACLr5F,KAAKk8F,MAAMv0E,OAAO0xE,KAEdr5F,KAAKo7F,UAAY/B,EAAKuB,YAAc56F,KAAK26F,WACpC36F,KAAK26F,SAASyE,WAAW/F,EAAKuB,cAUzC5/E,EAAO7S,QAAU,SAAiBkxF,GAChC,OAAOr5F,KAAKk8F,MAAM/zF,QAAQkxF,IAO5Br+E,EAAO+jF,OAAS,WAGd,OAFI/+F,KAAK26F,UAAU36F,KAAK26F,SAASoE,SACjC/+F,KAAK6+F,UAAW,EACT7+F,MAOTgb,EAAOmM,OAAS,WACd,IAAIk4E,EAIJ,OAFCA,EAAcr/F,KAAKk8F,OAAO/0E,OAAOpnB,MAAMs/F,EAAa7/F,WAE9CQ,MAOTgb,EAAOsjF,UAAY,SAAmBjF,EAAM3vE,EAAMhW,GAEhD,OADA1T,KAAKk8F,MAAMoC,UAAUjF,EAAM3vE,EAAMhW,GAC1B1T,MAOTgb,EAAO9O,SAAW,SAAkBwH,GAClC,OAAO1T,KAAKk8F,MAAMhwF,SAASwH,IAGtBkrF,EAlMT,GAqMIU,GAEJ,WACE,SAASA,IACPt/F,KAAKs5F,QAAU,CACb/hB,SAAU,GACVgoB,SAAU,IAEZv/F,KAAKw/F,cAAW,EAGlB,IAAIxkF,EAASskF,EAAgB1/F,UAiH7B,OA5GAob,EAAOu+E,aAAe,SAAsBr9E,EAAMg9E,EAAMxlF,GACtD,IAAK,IAAInU,EAAI,EAAGA,EAAIS,KAAKw/F,SAASjG,aAAa95F,OAAQF,IAAK,CAC1D,IAAI85F,EAAOr5F,KAAKw/F,SAASjG,aAAah6F,GAAG2c,EAAMg9E,EAAMxlF,GACrD,GAAI2lF,EAAM,OAAOA,EAGnB,OAAO,MAOTr+E,EAAOuhF,cAAgB,SAAuBlD,GAC5C,IAAIA,EAAKqB,YAAT,CAGA,IAFA,IAAIG,EAAQxB,EAAK3lF,QAAQmnF,MAEhBt7F,EAAI,EAAGA,EAAIS,KAAKw/F,SAASjD,cAAc98F,OAAQF,IACtDS,KAAKw/F,SAASjD,cAAch9F,GAAG85F,EAAMwB,GAGnCxB,EAAKx2F,OAAO7C,KAAKq9F,eAAehE,EAAKx2F,MAAOw2F,EAAMwB,GACtDxB,EAAKqB,aAAc,IAOrB1/E,EAAOqiF,eAAiB,SAAwBx6F,EAAOw2F,EAAMwB,GAC3D,IAAK,IAAIt7F,EAAI,EAAGA,EAAIS,KAAKw/F,SAASnC,eAAe59F,OAAQF,IAEvD85F,EAAKx2F,MAAQ7C,KAAKw/F,SAASnC,eAAe99F,GAAG85F,EAAKx2F,MAAOw2F,EAAMwB,IAQnE7/E,EAAOykF,eAAiB,SAAwB5E,GAC9C,IAAK,IAAIt7F,EAAI,EAAGA,EAAIS,KAAKw/F,SAASC,eAAehgG,OAAQF,IACvDS,KAAKw/F,SAASC,eAAelgG,GAAGs7F,IAQpC7/E,EAAOY,SAAW,SAAkB8N,EAAM2vE,EAAMwB,EAAOnnF,GACrD,IAAK,IAAInU,EAAI,EAAGA,EAAIS,KAAKw/F,SAAS5jF,SAASnc,OAAQF,IACjDS,KAAKw/F,SAAS5jF,SAASrc,GAAGmqB,EAAM2vE,EAAMwB,EAAOnnF,IAQjDsH,EAAOggF,cAAgB,SAAuB13F,EAAOmS,EAAM4jF,GAGzD,IAFA,IAAIqG,EAAiBp8F,EAEZ/D,EAAI,EAAGA,EAAIS,KAAKw/F,SAASxE,cAAcv7F,OAAQF,IACtDmgG,EAAiB1/F,KAAKw/F,SAASxE,cAAcz7F,GAAGmgG,EAAgBjqF,EAAM4jF,GAGxE,OAAOqG,GAOT1kF,EAAOu3D,IAAM,SAAaotB,EAAWjsF,QACnB,IAAZA,IACFA,EAAU,CACR20C,MAAO,aAIX,IAAIixC,EAAUt5F,KAAKs5F,QAAQ5lF,EAAQ20C,QAEC,IAAhCixC,EAAQnxF,QAAQw3F,KAIpBrG,EAAQxvF,KAAK61F,GACb3/F,KAAKw/F,SAAW,GAAG74F,OAAO3G,KAAKs5F,QAAQiG,SAAUv/F,KAAKs5F,QAAQ/hB,UAAUqoB,QAAO,SAAUJ,EAAUpvB,GACjG,IAAK,IAAIl0D,KAAQk0D,EACXl0D,KAAQsjF,GACVA,EAAStjF,GAAMpS,KAAKsmE,EAAOl0D,IAM/B,OAAOsjF,IACN,CACDjG,aAAc,GACdgD,cAAe,GACfc,eAAgB,GAChBoC,eAAgB,GAChBzE,cAAe,GACfp/E,SAAU,OAIP0jF,EA1HT,GA8NIO,GAAS,IA5Fb,WACE,SAASC,IACP9/F,KAAKw/F,SAAW,GAGlB,IAAIxkF,EAAS8kF,EAAelgG,UA6E5B,OAxEAob,EAAO20C,IAAM,SAAakrC,GACxB,IAAI2E,EAAWx/F,KAAKw/F,SAChB15F,EAAQ+0F,EAAMnnF,QAAQ5N,MAC1B,IAAiC,IAA7B05F,EAASr3F,QAAQ0yF,GAErB,GAAwB,IAApB2E,EAAS//F,QAAgBqG,GAAS9F,KAAK8F,MACzC05F,EAAS11F,KAAK+wF,QAKhB,IAAK,IAAIt7F,EAAI,EAAGA,EAAIigG,EAAS//F,OAAQF,IACnC,GAAIigG,EAASjgG,GAAGmU,QAAQ5N,MAAQA,EAE9B,YADA05F,EAAS5uF,OAAOrR,EAAG,EAAGs7F,IAU5B7/E,EAAO+kF,MAAQ,WACb//F,KAAKw/F,SAAW,IAOlBxkF,EAAO2M,OAAS,SAAgBkzE,GAC9B,IAAI/0F,EAAQ9F,KAAKw/F,SAASr3F,QAAQ0yF,GAClC76F,KAAKw/F,SAAS5uF,OAAO9K,EAAO,IAO9BkV,EAAO9O,SAAW,SAAkBqvD,GAOlC,IANA,IAAI1vD,OAAiB,IAAV0vD,EAAmB,GAAKA,EAC/B6/B,EAAWvvF,EAAKuvF,SAChB1nF,EAAU5C,YAA8BjF,EAAM,CAAC,aAE/C0iE,EAAM,GAEDhvE,EAAI,EAAGA,EAAIS,KAAKw/F,SAAS//F,OAAQF,IAAK,CAC7C,IAAIs7F,EAAQ76F,KAAKw/F,SAASjgG,GAEV,MAAZ67F,GAAoBP,EAAMO,WAAaA,IAIvC7sB,IAAKA,GAAO,MAChBA,GAAOssB,EAAM3uF,SAASwH,IAGxB,OAAO66D,GAGTt9D,EAAa6uF,EAAgB,CAAC,CAC5BngG,IAAK,QAKLuT,IAAK,WACH,OAAgC,IAAzBlT,KAAKw/F,SAAS//F,OAAe,EAAIO,KAAKw/F,SAASx/F,KAAKw/F,SAAS//F,OAAS,GAAGiU,QAAQ5N,UAIrFg6F,EAlFT,IAgGIE,GAA8B,oBAAV11F,QAAyBA,OAAO0B,MAAQA,KAAO1B,OAAwB,oBAAR8Z,MAAuBA,KAAKpY,MAAQA,KAAOoY,KAAOtR,SAAS,cAATA,GAErImtF,GAAK,mCACa,MAAlBD,GAAWC,MAAaD,GAAWC,IAAM,GAK7C,IAAIC,GAAWF,GAAWC,MAStBE,GAAmB,SAA0BzsF,QAC/B,IAAZA,IACFA,EAAU,IAGZ,IAAI0sF,EAAc,EAClB,OAAO,SAAU/G,EAAMwB,GACrBuF,GAAe,EAMf,IAAIC,EAAQ,GACRp4F,EAAS,GAYb,OAVI4yF,IACEA,EAAMnnF,QAAQ4sF,kBAChBr4F,EAAS4yF,EAAMnnF,QAAQ4sF,iBAGG,MAAxBzF,EAAMnnF,QAAQylF,IAAIhkF,KACpBkrF,EAAQp1E,OAAO4vE,EAAMnnF,QAAQylF,IAAIhkF,MAIjCzB,EAAQ6sF,OAEH,IAAMt4F,GAAU,KAAOi4F,GAAWG,EAAQD,EAG5Cn4F,EAASoxF,EAAK15F,IAAM,IAAMugG,IAAYG,EAAQ,IAAMA,EAAQ,IAAM,IAAMD,IAO/EI,GAAU,SAAiB52F,GAC7B,IAAItG,EACJ,OAAO,WAEL,OADKA,IAAOA,EAAQsG,KACbtG,IAQX,SAAS+mE,GAAiBo2B,EAAShrF,GACjC,IAEE,OAAIgrF,EAAQC,kBACHD,EAAQC,kBAAkBxtF,IAAIuC,GAGhCgrF,EAAQ59F,MAAMwnE,iBAAiB50D,GACtC,MAAOsI,GAEP,MAAO,IAQX,SAAS8vB,GAAY4yD,EAAShrF,EAAMnS,GAClC,IACE,IAAIo2F,EAAWp2F,EAEf,GAAIiE,MAAMC,QAAQlE,KAChBo2F,EAAWF,EAAWl2F,GAAO,GAEG,eAA5BA,EAAMA,EAAM7D,OAAS,IAEvB,OADAghG,EAAQ59F,MAAMgrC,YAAYp4B,EAAMikF,EAAU,cACnC,EAKP+G,EAAQC,kBACVD,EAAQC,kBAAkBlsF,IAAIiB,EAAMikF,GAEpC+G,EAAQ59F,MAAMgrC,YAAYp4B,EAAMikF,GAElC,MAAO37E,GAEP,OAAO,EAGT,OAAO,EAOT,SAASo9E,GAAesF,EAAShrF,GAC/B,IAEMgrF,EAAQC,kBACVD,EAAQC,kBAAkB73D,OAAOpzB,GAEjCgrF,EAAQ59F,MAAMs4F,eAAe1lF,GAE/B,MAAOsI,KASX,SAAS49E,GAAY8E,EAASlF,GAI5B,OAHAkF,EAAQlF,aAAeA,EAGhBkF,EAAQlF,eAAiBA,EAQlC,IAAIoF,GAAUH,IAAQ,WACpB,OAAOj2F,SAASkF,cAAc,WAuDhC,SAASmxF,GAAaltF,GACpB,IAAI8rF,EAAWK,GAAOL,SAEtB,GAAIA,EAAS//F,OAAS,EAAG,CAEvB,IAAIo7F,EAtDR,SAAyB2E,EAAU9rF,GACjC,IAAK,IAAInU,EAAI,EAAGA,EAAIigG,EAAS//F,OAAQF,IAAK,CACxC,IAAIs7F,EAAQ2E,EAASjgG,GAErB,GAAIs7F,EAAMO,UAAYP,EAAMnnF,QAAQ5N,MAAQ4N,EAAQ5N,OAAS+0F,EAAMnnF,QAAQmtF,iBAAmBntF,EAAQmtF,eACpG,OAAOhG,EAIX,OAAO,KA6COiG,CAAgBtB,EAAU9rF,GAEtC,GAAImnF,GAASA,EAAMF,SACjB,MAAO,CACLxnF,OAAQ0nF,EAAMF,SAASrhF,QAAQutB,WAC/BnS,KAAMmmE,EAAMF,SAASrhF,SAOzB,IAFAuhF,EAhDJ,SAA0B2E,EAAU9rF,GAClC,IAAK,IAAInU,EAAIigG,EAAS//F,OAAS,EAAGF,GAAK,EAAGA,IAAK,CAC7C,IAAIs7F,EAAQ2E,EAASjgG,GAErB,GAAIs7F,EAAMO,UAAYP,EAAMnnF,QAAQmtF,iBAAmBntF,EAAQmtF,eAC7D,OAAOhG,EAIX,OAAO,KAuCGkG,CAAiBvB,EAAU9rF,KAEtBmnF,EAAMF,SACjB,MAAO,CACLxnF,OAAQ0nF,EAAMF,SAASrhF,QAAQutB,WAC/BnS,KAAMmmE,EAAMF,SAASrhF,QAAQ81B,aAMnC,IAAIyxD,EAAiBntF,EAAQmtF,eAE7B,GAAIA,GAA4C,kBAAnBA,EAA6B,CACxD,IAAIG,EA9CR,SAAyB/rD,GAGvB,IAFA,IAAIgsD,EAAON,KAEFphG,EAAI,EAAGA,EAAI0hG,EAAKt0B,WAAWltE,OAAQF,IAAK,CAC/C,IAAIm1B,EAAOusE,EAAKt0B,WAAWptE,GAE3B,GAAsB,IAAlBm1B,EAAKxU,UAAkBwU,EAAKuP,UAAUtsB,SAAWs9B,EACnD,OAAOvgB,EAIX,OAAO,KAmCSwsE,CAAgBL,GAE9B,GAAIG,EACF,MAAO,CACL7tF,OAAQ6tF,EAAQn6D,WAChBnS,KAAMssE,EAAQ5xD,aASpB,OAAO,EAgCT,IAAI+xD,GAAWX,IAAQ,WACrB,IAAI9rE,EAAOnqB,SAASkF,cAAc,8BAClC,OAAOilB,EAAOA,EAAKhlB,aAAa,WAAa,QAG3C0xF,GAAc,SAAoBphF,EAAWq5E,EAAMvzF,GACrD,IAAIu7F,EAAWrhF,EAAUshF,SAAS7hG,aAEpBuE,IAAV8B,GAAuBA,EAAQu7F,KAEjCv7F,EAAQu7F,GAGV,IACE,GAAI,eAAgBrhF,EACVA,EACNi/E,WAAW5F,EAAMvzF,QAEhB,GAAI,eAAgBka,EAAW,CACvBA,EAENuhF,WAAWlI,IAElB,MAAOt7E,GAEP,OAAO,EAGT,OAAOiC,EAAUshF,SAASx7F,IAYxB07F,GAEJ,WAEE,SAASA,EAAY3G,GACnB76F,KAAKqqE,iBAAmBA,GACxBrqE,KAAK6tC,YAAcA,GACnB7tC,KAAKm7F,eAAiBA,GACtBn7F,KAAK27F,YAAcA,GACnB37F,KAAKsZ,aAAU,EACftZ,KAAK66F,WAAQ,EACb76F,KAAKyhG,kBAAmB,EAEpB5G,GAAOgF,GAAOlwC,IAAIkrC,GACtB76F,KAAK66F,MAAQA,EAEb,IAAIhvF,EAAO7L,KAAK66F,MAAQ76F,KAAK66F,MAAMnnF,QAAU,GACzCguF,EAAQ71F,EAAK61F,MACbnzD,EAAO1iC,EAAK0iC,KACZj1B,EAAUzN,EAAKyN,QAEnBtZ,KAAKsZ,QAAUA,GA9BD,WAChB,IAAI5E,EAAKnK,SAASC,cAAc,SAKhC,OADAkK,EAAGwuB,YAAc,KACVxuB,EAwBqBitF,GAC1B3hG,KAAKsZ,QAAQkmB,aAAa,WAAY,IAClCkiE,GAAO1hG,KAAKsZ,QAAQkmB,aAAa,QAASkiE,GAC1CnzD,GAAMvuC,KAAKsZ,QAAQkmB,aAAa,YAAa+O,GACjD,IAAIqzD,EAAQT,KACRS,GAAO5hG,KAAKsZ,QAAQkmB,aAAa,QAASoiE,GAOhD,IAAI5mF,EAASwmF,EAAY5hG,UAmJzB,OAjJAob,EAAO8jF,OAAS,WAEd,IAAI9+F,KAAKsZ,QAAQutB,YAAe7mC,KAAK66F,MAArC,EAtGJ,SAAqBh4F,EAAO6Q,GAC1B,IAAImtF,EAAiBntF,EAAQmtF,eACzBgB,EAAWjB,GAAaltF,GAE5B,IAAiB,IAAbmuF,GAAsBA,EAAS1uF,OACjC0uF,EAAS1uF,OAAOg8C,aAAatsD,EAAOg/F,EAASntE,WAK/C,GAAImsE,GAAqD,kBAA5BA,EAAe3gF,SAA5C,CAEE,IAAI4hF,EAAwBjB,EACxBh6D,EAAai7D,EAAsBj7D,WACnCA,GAAYA,EAAWsoB,aAAatsD,EAAOi/F,EAAsB1yD,kBAIvEuxD,KAAU78D,YAAYjhC,GAqFpBk/F,CAAY/hG,KAAKsZ,QAAStZ,KAAK66F,MAAMnnF,SAGrC,IAAImrF,EAAWmD,QAAQhiG,KAAK66F,OAAS76F,KAAK66F,MAAMgE,UAE5C7+F,KAAKyhG,kBAAoB5C,IAC3B7+F,KAAKyhG,kBAAmB,EACxBzhG,KAAK++F,YAQT/jF,EAAOgkF,OAAS,WACd,IAAIn4D,EAAa7mC,KAAKsZ,QAAQutB,WAC1BA,GAAYA,EAAWhD,YAAY7jC,KAAKsZ,UAO9C0B,EAAO+jF,OAAS,WACd,IAAIlE,EAAQ76F,KAAK66F,MACZA,IAEDA,EAAMnnF,QAAQiM,KAChB3f,KAAKiiG,YAAYpH,EAAMqB,OAIzBl8F,KAAKsZ,QAAQ4pB,YAAc,KAAO23D,EAAM3uF,WAAa,OAOvD8O,EAAOinF,YAAc,SAAqB/F,EAAOgG,GAC/C,IAAK,IAAI3iG,EAAI,EAAGA,EAAI28F,EAAMp2F,MAAMrG,OAAQF,IACtCS,KAAKi/F,WAAW/C,EAAMp2F,MAAMvG,GAAIA,EAAG2iG,IAQvClnF,EAAOikF,WAAa,SAAoB5F,EAAMvzF,EAAOo8F,GAKnD,QAJqB,IAAjBA,IACFA,EAAeliG,KAAKsZ,QAAQuhF,OAG1BxB,EAAK6C,MAAO,CACd,IAAI/oF,EAASkmF,EACT8I,EAAqBD,EAEzB,OAAkB,gBAAd7I,EAAKp3E,MAAwC,cAAdo3E,EAAKp3E,OAMX,KAJ3BkgF,EAAqBf,GAAYc,EAAc/uF,EAAOjH,SAAS,CAC7D3L,UAAU,IACRuF,OAON9F,KAAKiiG,YAAY9uF,EAAO+oF,MAAOiG,GACxBA,GAMT,GAAI9I,EAAKuB,YAAcvB,EAAKuB,WAAWwH,mBAAqBpiG,KAAKsZ,QAAQuhF,MACvE,OAAOxB,EAAKuB,WAGd,IAAIyH,EAAUhJ,EAAKntF,WACnB,IAAKm2F,EAAS,OAAO,EAErB,IAAIC,EAAalB,GAAYc,EAAcG,EAASv8F,GAEpD,OAAmB,IAAfw8F,IAIJtiG,KAAKyhG,kBAAmB,EACxBpI,EAAKuB,WAAa0H,EACXA,IAOTtnF,EAAOokF,WAAa,SAAoBqB,GACtC,IAAI5F,EAAQ76F,KAAKsZ,QAAQuhF,MACrB/0F,EAAQ9F,KAAKmI,QAAQs4F,GACzB,OAAe,IAAX36F,IACJ+0F,EAAMuE,WAAWt5F,IACV,IAOTkV,EAAO7S,QAAU,SAAiBs4F,GAGhC,IAFA,IAAIa,EAAWthG,KAAKsZ,QAAQuhF,MAAMyG,SAEzBx7F,EAAQ,EAAGA,EAAQw7F,EAAS7hG,OAAQqG,IAC3C,GAAI26F,IAAYa,EAASx7F,GAAQ,OAAOA,EAG1C,OAAQ,GASVkV,EAAO4gF,YAAc,SAAqB6E,EAASpH,GACjD,IAAIvzF,EAAQ9F,KAAKmI,QAAQs4F,GACzB,OAAe,IAAX36F,IACJ9F,KAAKsZ,QAAQuhF,MAAMuE,WAAWt5F,GACvB9F,KAAKi/F,WAAW5F,EAAMvzF,KAO/BkV,EAAOunF,SAAW,WAChB,OAAOviG,KAAKsZ,QAAQuhF,MAAMyG,UAGrBE,EAlLT,GAqLIgB,GAAkB,EAElBC,GAEJ,WACE,SAASA,EAAI/uF,GACX1T,KAAKmV,GAAKqtF,KACVxiG,KAAK07B,QAAU,SACf17B,KAAKs5F,QAAU,IAAIgG,GACnBt/F,KAAK0T,QAAU,CACbyB,GAAI,CACForF,QAAQ,GAEVJ,iBAAkBA,GAClBrF,SAAU4H,EAAclB,GAAc,KACtClI,QAAS,IAEXt5F,KAAKy7F,WAAa0E,GAAiB,CACjCI,QAAQ,IAGV,IAAK,IAAIhhG,EAAI,EAAGA,EAAI+5F,EAAQ75F,OAAQF,IAClCS,KAAKs5F,QAAQ/mB,IAAI+mB,EAAQ/5F,GAAI,CAC3B8oD,MAAO,aAIXroD,KAAK2iG,MAAMjvF,GASb,IAAIsH,EAASynF,EAAI7iG,UAuHjB,OArHAob,EAAO2nF,MAAQ,SAAejvF,GAyB5B,YAxBgB,IAAZA,IACFA,EAAU,IAGRA,EAAQysF,mBACVngG,KAAK0T,QAAQysF,iBAAmBzsF,EAAQysF,kBAGtCzsF,EAAQyB,KACVnV,KAAK0T,QAAQyB,GAAKhW,YAAS,GAAIa,KAAK0T,QAAQyB,GAAIzB,EAAQyB,MAGtDzB,EAAQysF,kBAAoBzsF,EAAQyB,MACtCnV,KAAKy7F,WAAaz7F,KAAK0T,QAAQysF,iBAAiBngG,KAAK0T,QAAQyB,KAGjC,MAA1BzB,EAAQmtF,iBAAwB7gG,KAAK0T,QAAQmtF,eAAiBntF,EAAQmtF,gBAEtE,aAAcntF,IAChB1T,KAAK0T,QAAQonF,SAAWpnF,EAAQonF,UAI9BpnF,EAAQ4lF,SAASt5F,KAAKuyE,IAAIxyE,MAAMC,KAAM0T,EAAQ4lF,SAC3Ct5F,MAOTgb,EAAO4nF,iBAAmB,SAA0B3wF,EAAQyB,QAC1C,IAAZA,IACFA,EAAU,IAGZ,IACI5N,EADW4N,EACM5N,MAEA,kBAAVA,IACTA,EAAyB,IAAjB+5F,GAAO/5F,MAAc,EAAI+5F,GAAO/5F,MAAQ,GAGlD,IAAI+0F,EAAQ,IAAI+D,GAAW3sF,EAAQ9S,YAAS,GAAIuU,EAAS,CACvDylF,IAAKn5F,KACLy7F,WAAY/nF,EAAQ+nF,YAAcz7F,KAAKy7F,WACvCoF,eAAgB7gG,KAAK0T,QAAQmtF,eAC7B/F,SAAU96F,KAAK0T,QAAQonF,SACvBh1F,MAAOA,KAGT,OADA9F,KAAKs5F,QAAQmG,eAAe5E,GACrBA,GAOT7/E,EAAO6nF,iBAAmB,SAA0BhI,GAGlD,OAFAA,EAAMmE,SACNa,GAAOl4E,OAAOkzE,GACP76F,MAQTgb,EAAOi+E,WAAa,SAAuB/8E,EAAMrZ,EAAO6Q,GAUtD,QATc,IAAV7Q,IACFA,EAAQ,SAGM,IAAZ6Q,IACFA,EAAU,IAIQ,kBAATwI,EACT,OAAOlc,KAAKi5F,gBAAWj1F,EAAWkY,EAAMrZ,GAG1C,IAAIs7F,EAAch/F,YAAS,GAAIuU,EAAS,CACtCwI,KAAMA,EACNi9E,IAAKn5F,KACL86F,SAAU96F,KAAK0T,QAAQonF,WAGpBqD,EAAY1C,aAAY0C,EAAY1C,WAAaz7F,KAAKy7F,YACtD0C,EAAYvmB,UAASumB,EAAYvmB,QAAU,IAC3CumB,EAAYjB,YAAWiB,EAAYjB,UAAY,IAEpD,IAAI7D,EAAOJ,EAAW/8E,EAAMrZ,EAAOs7F,GAGnC,OADI9E,GAAMr5F,KAAKs5F,QAAQiD,cAAclD,GAC9BA,GAOTr+E,EAAOu3D,IAAM,WAGX,IAFA,IAAI9+D,EAAQzT,KAEHiK,EAAOzK,UAAUC,OAAQ4+F,EAAa,IAAI92F,MAAM0C,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IACrFk0F,EAAWl0F,GAAQ3K,UAAU2K,GAM/B,OAHAk0F,EAAWj0F,SAAQ,SAAUgmE,GAC3B38D,EAAM6lF,QAAQ/mB,IAAInC,MAEbpwE,MAGFyiG,EAvJT,GAwLA,IA2EIK,GAAkC,qBAARtI,KAAuBA,KAAO,WAAYA,IAKpEt1F,GAAS,SAAgBwO,GAC3B,OAAO,IAAI+uF,GAAI/uF,IAMLxO,KCvqEG,SAAS69F,KACtB,IAAIrvF,EAAUlU,UAAUC,OAAS,QAAsBuE,IAAjBxE,UAAU,GAAmBA,UAAU,GAAK,GAC9EwjG,EAActvF,EAAQsvF,YACtBC,EAAavvF,EAAQuvF,WACTvvF,EAAQxT,UAExB,IAAK+iG,EACH,OAAOD,EAGT,IAAIE,EAAc/jG,YAAS,GAAI6jG,GAwB/B,OAfA5jG,OAAOyI,KAAKo7F,GAAY74F,SAAQ,SAAUzK,GAWpCsjG,EAAWtjG,KACbujG,EAAYvjG,GAAO,GAAGgH,OAAOq8F,EAAYrjG,GAAM,KAAKgH,OAAOs8F,EAAWtjG,QAGnEujG,ECnCT,IAoBeC,GApBK,CAClB3uF,IAAK,SAAakI,EAAO0mF,EAAMC,EAAM//F,GACnC,IAAIggG,EAAW5mF,EAAMxJ,IAAIkwF,GAEpBE,IACHA,EAAW,IAAIn+D,IACfzoB,EAAMlI,IAAI4uF,EAAME,IAGlBA,EAAS9uF,IAAI6uF,EAAM//F,IAErB4P,IAAK,SAAawJ,EAAO0mF,EAAMC,GAC7B,IAAIC,EAAW5mF,EAAMxJ,IAAIkwF,GACzB,OAAOE,EAAWA,EAASpwF,IAAImwF,QAAQr/F,GAEzC6kC,OAAQ,SAAiBnsB,EAAO0mF,EAAMC,GACrB3mF,EAAMxJ,IAAIkwF,GAChBv6D,OAAOw6D,KCXLE,OANItjG,IAAMsa,cAAc,MCCxB,SAASipF,KACtB,OAAOvjG,IAAMg7B,WAAWsoE,ICH1B,IACeE,GADmB,oBAAXplF,QAAyBA,OAAOgY,IAC5BhY,OAAOgY,IAAI,cAAgB,mBCUlDqtE,GAAgB,CAAC,UAAW,WAAY,QAAS,UAAW,eAAgB,WAAY,WAAY,YCRxG,IAAIhxD,GAAMzmB,KAAKymB,MACXixD,GAAa,WAAajxD,GAC1BkxD,GAAW,aAAclxD,GA2DdmxD,OA1Df,WACE,MAAO,CACLtK,aAAc,SAAsBr9E,EAAMg9E,EAAMxlF,GAC9C,GAAoB,oBAATwlF,EAAqB,OAAO,KACvC,IAAIG,EAAOJ,EAAW/8E,EAAM,GAAIxI,GAEhC,OADA2lF,EAAKuK,IAAY1K,EACVG,GAETgE,eAAgB,SAAwBx6F,EAAOw2F,GAK7C,GAAIsK,MAActK,GAAQuK,MAAYvK,EAAM,OAAOx2F,EACnD,IAAIihG,EAAW,GAEf,IAAK,IAAIruF,KAAQ5S,EAAO,CACtB,IAAIS,EAAQT,EAAM4S,GACG,oBAAVnS,WACJT,EAAM4S,GACbquF,EAASruF,GAAQnS,GAKnB,OADA+1F,EAAKsK,IAAcG,EACZjhG,GAET+Y,SAAU,SAAkB8N,EAAM2vE,EAAMwB,EAAOnnF,GAC7C,IAAI8qF,EAAYnF,EACZ0K,EAASvF,EAAUoF,IAGnBG,IAGFvF,EAAU37F,MAAQkhG,EAAOr6E,IAAS,IAYpC,IAAIo6E,EAAWtF,EAAUmF,IAEzB,GAAIG,EACF,IAAK,IAAI7J,KAAS6J,EAChBtF,EAAU/oF,KAAKwkF,EAAO6J,EAAS7J,GAAOvwE,GAAOhW,MCtDnDuoF,GAAK,UAGL+H,GAEJ,WACE,SAASA,EAAoBrkG,EAAKsS,EAAQyB,GAaxC,IAAK,IAAIomF,KAZT95F,KAAKiiB,KAAO,SACZjiB,KAAKi8F,GAAKA,GACVj8F,KAAKk8F,WAAQ,EACbl8F,KAAK0T,aAAU,EACf1T,KAAKL,SAAM,EACXK,KAAK06F,aAAc,EACnB16F,KAAKL,IAAMA,EACXK,KAAK0T,QAAUA,EACf1T,KAAKk8F,MAAQ,IAAIE,GAASj9F,YAAS,GAAIuU,EAAS,CAC9CP,OAAQnT,QAGWiS,EACnBjS,KAAKk8F,MAAMvsC,IAAImqC,EAAU7nF,EAAO6nF,IAGlC95F,KAAKk8F,MAAMp+E,UAOb,IAAI9C,EAASgpF,EAAoBpkG,UAgCjC,OA9BAob,EAAOqhF,QAAU,SAAiBngF,GAChC,OAAOlc,KAAKk8F,MAAMhpF,IAAIgJ,IAOxBlB,EAAOshF,QAAU,SAAiBpgF,EAAMrZ,EAAO6Q,GAC7C,IAAI2lF,EAAOr5F,KAAKk8F,MAAMvsC,IAAIzzC,EAAMrZ,EAAO6Q,GAEvC,OADA1T,KAAK0T,QAAQylF,IAAIG,QAAQiD,cAAclD,GAChCA,GAOTr+E,EAAO7S,QAAU,SAAiBkxF,GAChC,OAAOr5F,KAAKk8F,MAAM/zF,QAAQkxF,IAO5Br+E,EAAO9O,SAAW,WAChB,OAAOlM,KAAKk8F,MAAMhwF,YAGb83F,EAzDT,GA4DIC,GAEJ,WACE,SAASA,EAAmBtkG,EAAKkD,EAAO6Q,GACtC1T,KAAKiiB,KAAO,SACZjiB,KAAKi8F,GAAKA,GACVj8F,KAAK0T,aAAU,EACf1T,KAAKq5F,UAAO,EACZr5F,KAAK06F,aAAc,EACnB16F,KAAKL,SAAM,EACXK,KAAKL,IAAMA,EACXK,KAAK0T,QAAUA,EACf,IAAIomF,EAAWn6F,EAAIuH,OA5ER,WA4EwBzH,QACnCO,KAAKq5F,KAAO3lF,EAAQylF,IAAIF,WAAWa,EAAUj3F,EAAO1D,YAAS,GAAIuU,EAAS,CACxEP,OAAQnT,QAUZ,OANcikG,EAAmBrkG,UAEzBsM,SAAW,SAAkBwH,GACnC,OAAO1T,KAAKq5F,KAAOr5F,KAAKq5F,KAAKntF,SAASwH,GAAW,IAG5CuwF,EAtBT,GAyBIC,GAAkB,WAEtB,SAASC,GAASrK,EAAUn0B,GAI1B,IAHA,IAAIl7C,EAAQqvE,EAASxzF,MAAM49F,IACvB1I,EAAS,GAEJj8F,EAAI,EAAGA,EAAIkrB,EAAMhrB,OAAQF,IAChCi8F,GAAU71B,EAAQ,IAAMl7C,EAAMlrB,GAAGoY,OAC7B8S,EAAMlrB,EAAI,KAAIi8F,GAAU,MAG9B,OAAOA,EA8EM4I,OAvCf,WAiCE,MAAO,CACL7K,aAjCF,SAAsBr9E,EAAMjK,EAAQyB,GAClC,IAAKwI,EAAM,OAAO,KAElB,GAAIA,IAAS+/E,GACX,OAAO,IAAI+H,GAAoB9nF,EAAMjK,EAAQyB,GAG/C,GAAgB,MAAZwI,EAAK,IArJE,aAqJYA,EAAKhV,OAAO,EArJxB,WAqJoCzH,QAC7C,OAAO,IAAIwkG,GAAmB/nF,EAAMjK,EAAQyB,GAG9C,IAAIP,EAASO,EAAQP,OAYrB,OAVIA,IACkB,WAAhBA,EAAO8O,MAAqB9O,EAAOO,QAAQP,QAAyC,WAA/BA,EAAOO,QAAQP,OAAO8O,QAC7EvO,EAAQ8nF,QAAS,IAIE,IAAnB9nF,EAAQ8nF,SACV9nF,EAAQomF,SAAW59E,GAGd,MAWPqgF,cARF,SAAuBlD,GACH,UAAdA,EAAKp3E,OAhEb,SAAyCo3E,GACvC,IAAI3lF,EAAU2lF,EAAK3lF,QACf7Q,EAAQw2F,EAAKx2F,MACbq5F,EAAQr5F,EAAQA,EAAMo5F,IAAM,KAChC,GAAKC,EAAL,CAEA,IAAK,IAAIhgF,KAAQggF,EACfxoF,EAAQmnF,MAAMyB,QAAQpgF,EAAMggF,EAAMhgF,GAAO/c,YAAS,GAAIuU,EAAS,CAC7DomF,SAAUqK,GAASjoF,EAAMm9E,EAAKS,oBAI3Bj3F,EAAMo5F,KAqDXoI,CAAgChL,GAlDpC,SAAkCA,GAChC,IAAI3lF,EAAU2lF,EAAK3lF,QACf7Q,EAAQw2F,EAAKx2F,MAEjB,IAAK,IAAI4S,KAAQ5S,EACf,GAAgB,MAAZ4S,EAAK,IAAcA,EAAKvO,OAAO,EAAG+0F,GAAGx8F,UAAYw8F,GAArD,CACA,IAAInC,EAAWqK,GAAS1uF,EAAKvO,OAAO+0F,GAAGx8F,QAAS45F,EAAKS,UACrDpmF,EAAQmnF,MAAMyB,QAAQxC,EAAUj3F,EAAM4S,GAAOtW,YAAS,GAAIuU,EAAS,CACjEomF,SAAUA,YAELj3F,EAAM4S,IAyCb6uF,CAAyBjL,OC5KzB6K,GAAkB,WAClBK,GAAe,KACfvH,GAAY,cAyGDwH,OAjGf,WAEE,SAASC,EAAczkF,EAAW66E,GAChC,OAAO,SAAU53F,EAAOtD,GACtB,IAAI05F,EAAOr5E,EAAUq8E,QAAQ18F,IAAQk7F,GAASA,EAAMwB,QAAQ18F,GAE5D,OAAI05F,GACFA,EAAOA,GACKS,SAIPn6F,GAIX,SAAS+kG,EAAkBC,EAAYC,GAKrC,IAJA,IAAIC,EAAkBD,EAAWt+F,MAAM49F,IACnCY,EAAkBH,EAAWr+F,MAAM49F,IACnCl9F,EAAS,GAEJzH,EAAI,EAAGA,EAAIslG,EAAgBplG,OAAQF,IAG1C,IAFA,IAAI4T,EAAS0xF,EAAgBtlG,GAEpB2qB,EAAI,EAAGA,EAAI46E,EAAgBrlG,OAAQyqB,IAAK,CAC/C,IAAI66E,EAASD,EAAgB56E,GACzBljB,IAAQA,GAAU,MAEtBA,IAAmC,IAAzB+9F,EAAO58F,QAAQ,KAAc48F,EAAOnjG,QAAQ2iG,GAAcpxF,GAAUA,EAAS,IAAM4xF,EAIjG,OAAO/9F,EAGT,SAASg+F,EAAW3L,EAAMr5E,EAAWilF,GAEnC,GAAIA,EAAa,OAAO9lG,YAAS,GAAI8lG,EAAa,CAChDn/F,MAAOm/F,EAAYn/F,MAAQ,IAE7B,IAAIo/F,EAAe7L,EAAK3lF,QAAQwxF,aAChCA,OAAgClhG,IAAjBkhG,EAA6B,EAAIA,EAAe,EAE/D,IAAIxxF,EAAUvU,YAAS,GAAIk6F,EAAK3lF,QAAS,CACvCwxF,aAAcA,EACdp/F,MAAOka,EAAU7X,QAAQkxF,GAAQ,IAKnC,cADO3lF,EAAQwI,KACRxI,EA0CT,MAAO,CACL2pF,eAxCF,SAAwBx6F,EAAOw2F,EAAMwB,GACnC,GAAkB,UAAdxB,EAAKp3E,KAAkB,OAAOpf,EAClC,IAEI6Q,EACAypF,EAHAqB,EAAYnF,EACZr5E,EAAYw+E,EAAU9qF,QAAQP,OAIlC,IAAK,IAAIsC,KAAQ5S,EAAO,CACtB,IAAIsiG,GAAkC,IAAvB1vF,EAAKtN,QAAQ,KACxBi9F,EAAkC,MAAZ3vF,EAAK,GAC/B,GAAK0vF,GAAaC,EAAlB,CAGA,GAFA1xF,EAAUsxF,EAAWxG,EAAWx+E,EAAWtM,GAEvCyxF,EAAU,CACZ,IAAIrL,EAAW4K,EAAkBjvF,EAAM+oF,EAAU1E,UAG5CqD,IAAYA,EAAasH,EAAczkF,EAAW66E,IAEvDf,EAAWA,EAASl4F,QAAQo7F,GAAWG,GACvCn9E,EAAUs8E,QAAQxC,EAAUj3F,EAAM4S,GAAOtW,YAAS,GAAIuU,EAAS,CAC7DomF,SAAUA,UAEHsL,GAETplF,EAAUs8E,QAAQ7mF,EAAM,GAAI/B,GAG3B4oF,QAAQkC,EAAU7+F,IAAKkD,EAAM4S,GAAO,CACnCqkF,SAAU0E,EAAU1E,kBAIjBj3F,EAAM4S,IAGf,OAAO5S,KCrGPwiG,GAAmB,SACnBC,GAAY,OACZ5oF,GAAQ,GAEZ,SAAS6oF,GAActiG,GACrB,MAAO,IAAMA,EAAMiF,cAYNs9F,OATf,SAA4BtpF,GAC1B,GAAIQ,GAAM7c,eAAeqc,GACvB,OAAOQ,GAAMR,GAGf,IAAIupF,EAAQvpF,EAAKta,QAAQyjG,GAAkBE,IAC3C,OAAQ7oF,GAAMR,GAAQopF,GAAUrmF,KAAKwmF,GAAS,IAAMA,EAAQA,GCN9D,SAASC,GAAY7iG,GACnB,IAAI8iG,EAAY,GAEhB,IAAK,IAAIlwF,KAAQ5S,EAAO,CAEtB8iG,EADiC,IAAvBlwF,EAAKtN,QAAQ,MAAcsN,EAAOmwF,GAAUnwF,IACrC5S,EAAM4S,GAOzB,OAJI5S,EAAMm3F,YACJzyF,MAAMC,QAAQ3E,EAAMm3F,WAAY2L,EAAU3L,UAAYn3F,EAAMm3F,UAAUxpF,IAAIk1F,IAAkBC,EAAU3L,UAAY0L,GAAY7iG,EAAMm3F,YAGnI2L,EA0CME,OAjCf,WA2BE,MAAO,CACLxI,eA3BF,SAAwBx6F,GACtB,GAAI0E,MAAMC,QAAQ3E,GAAQ,CAExB,IAAK,IAAIiD,EAAQ,EAAGA,EAAQjD,EAAMpD,OAAQqG,IACxCjD,EAAMiD,GAAS4/F,GAAY7iG,EAAMiD,IAGnC,OAAOjD,EAGT,OAAO6iG,GAAY7iG,IAkBnBm4F,cAfF,SAAuB13F,EAAOmS,EAAM4jF,GAClC,GAA2B,IAAvB5jF,EAAKtN,QAAQ,MACf,OAAO7E,EAGT,IAAIwiG,EAAiBF,GAAUnwF,GAE/B,OAAIA,IAASqwF,EAAuBxiG,GACpC+1F,EAAK5jF,KAAKqwF,EAAgBxiG,GAEnB,SCpDP47E,GAAK4jB,IAAoBtI,IAAMA,IAAItb,GAAK,KACxC3N,GAAKuxB,IAAoBtI,IAAMA,IAAIjpB,GAAK,KACxC3kD,GAAUk2E,IAAoBtI,IAAMA,IAAI5tE,QAAU,IA6HtD,SAASm5E,GAAqBnhG,GAC5B,IAAIohG,EAAS,YAETpkG,EAAU,SAAiBmmB,GAC7B,OAAOA,EAAI,GAAGhS,eAGZw6E,EAAS,GAEb,IAAK,IAAIpmF,KAAQvF,EACf2rF,EAAOpmF,GAAQvF,EAAIuF,GACnBomF,EAAOpmF,EAAKvI,QAAQokG,EAAQpkG,IAAYgD,EAAIuF,GAG9C,OAAOomF,EAGT,IAAI0V,GAAQF,GAvIO,CAEjB,kBAAmBx0B,GACnB,qBAAsBA,GAEtB,sBAAuB2N,GACvB,wBAAyBA,GACzB,wBAAyBA,GACzB,kBAAmBA,GAEnBpe,OAAQoe,GACR,gBAAiBA,GACjB,4BAA6BA,GAC7B,6BAA8BA,GAC9B,sBAAuBA,GACvB,cAAeA,GACf,oBAAqBA,GACrB,gBAAiBA,GACjB,eAAgBA,GAChB,qBAAsBA,GACtB,aAAcA,GACd,yBAA0BA,GAC1B,0BAA2BA,GAC3B,mBAAoBA,GACpB,eAAgBA,GAEhBte,OAAQse,GACR,gBAAiBA,GACjB,cAAeA,GACf,eAAgBA,GAChB,aAAcA,GAEdre,QAASqe,GACT,iBAAkBA,GAClB,eAAgBA,GAChB,gBAAiBA,GACjB,cAAeA,GAEf,kBAAmBA,GACnB,kBAAmBA,GACnB,YAAaA,GAEbnnE,OAAQmnE,GACR/oE,MAAO+oE,GACP,aAAcA,GACd,aAAcA,GACd,YAAaA,GACb,YAAaA,GAEbgnB,OAAQhnB,GACR1qB,KAAM0qB,GACN/9D,IAAK+9D,GACL7oE,MAAO6oE,GAEP,aAAcA,GACd,cAAeA,GAEf,aAAcA,GACd,cAAeA,GACf,oBAAqBA,GACrB,eAAgBA,GAEhB,YAAaA,GACb,kBAAmBA,GACnB,iBAAkBA,GAClB,cAAeA,GACf,cAAeA,GACf,oBAAqBA,GACrB,eAAgBA,GAEhBinB,OAAQjnB,GACR,gBAAiBA,GAEjBknB,QAASlnB,GACT,iBAAkBA,GAClB,gBAAiBA,GAEjBgR,YAAahR,GACb,uBAAwBtyD,GACxB,uBAAwBA,GAExB,mBAAoBA,GACpB,qBAAsBA,GACtB,qBAAsBA,GACtB,qBAAsBA,GAEtB,mBAAoB2kD,GACpB,sBAAuBA,GAEvB,iBAAkB2N,GAClB,aAAcA,GAEd,eAAgBA,GAChB7xB,KAAM6xB,GAENmnB,KAAMnnB,GACN,WAAYA,GACZ,eAAgBA,GAChB,kBAAmBA,GACnB,qBAAsBA,GACtB,wBAAyBA,GACzB,iBAAkBA,GAClB,oBAAqBA,GAGrB,eAAgBA,GAChB,eAAgBA,GAChB,kBAAmBA,GACnB,oBAAqBA,GACrB,mBAAoBA,GACpB,gBAAiBA,GACjB,gBAAiBA,GACjB,mBAAoBA,KA4BtB,SAASonB,GAAQ7wF,EAAMnS,EAAOoQ,GAC5B,IAAKpQ,EAAO,OAAOA,EAEnB,GAAIiE,MAAMC,QAAQlE,GAChB,IAAK,IAAI/D,EAAI,EAAGA,EAAI+D,EAAM7D,OAAQF,IAChC+D,EAAM/D,GAAK+mG,GAAQ7wF,EAAMnS,EAAM/D,GAAImU,QAEhC,GAAqB,kBAAVpQ,EAChB,GAAa,cAATmS,EACF,IAAK,IAAI8wF,KAAajjG,EACpBA,EAAMijG,GAAaD,GAAQC,EAAWjjG,EAAMijG,GAAY7yF,QAG1D,IAAK,IAAI8yF,KAAcljG,EACrBA,EAAMkjG,GAAcF,GAAQ7wF,EAAO,IAAM+wF,EAAYljG,EAAMkjG,GAAa9yF,QAGvE,GAAqB,kBAAVpQ,EAAoB,CACpC,IAAIk1E,EAAO9kE,EAAQ+B,IAASwwF,GAAMxwF,GAElC,OAAI+iE,EACqB,oBAATA,EAAsBA,EAAKl1E,GAAO4I,WAAa,GAAK5I,EAAQk1E,EAGrEl1E,EAAM4I,WAGf,OAAO5I,EAkCMmjG,OA3Bf,SAAqB/yF,QACH,IAAZA,IACFA,EAAU,IAGZ,IAAIgzF,EAAoBX,GAAqBryF,GAgB7C,MAAO,CACL2pF,eAfF,SAAwBx6F,EAAOw2F,GAC7B,GAAkB,UAAdA,EAAKp3E,KAAkB,OAAOpf,EAElC,IAAK,IAAI4S,KAAQ5S,EACfA,EAAM4S,GAAQ6wF,GAAQ7wF,EAAM5S,EAAM4S,GAAOixF,GAG3C,OAAO7jG,GASPm4F,cANF,SAAuB13F,EAAOmS,GAC5B,OAAO6wF,GAAQ7wF,EAAMnS,EAAOojG,MC3MjB,SAAS1oF,GAAkBC,EAAKC,IAClC,MAAPA,GAAeA,EAAMD,EAAIxe,UAAQye,EAAMD,EAAIxe,QAE/C,IAAK,IAAIF,EAAI,EAAG4e,EAAO,IAAI5W,MAAM2W,GAAM3e,EAAI2e,EAAK3e,IAC9C4e,EAAK5e,GAAK0e,EAAI1e,GAGhB,OAAO4e,ECNM,SAASwoF,GAA4B5nF,EAAGC,GACrD,GAAKD,EAAL,CACA,GAAiB,kBAANA,EAAgB,OAAO,GAAiBA,EAAGC,GACtD,IAAIhZ,EAAI5G,OAAOQ,UAAUsM,SAASpM,KAAKif,GAAGzW,MAAM,GAAI,GAEpD,MADU,WAANtC,GAAkB+Y,EAAE5Z,cAAaa,EAAI+Y,EAAE5Z,YAAY+W,MAC7C,QAANlW,GAAqB,QAANA,EAAoBuB,MAAMpB,KAAKH,GACxC,cAANA,GAAqB,2CAA2CiZ,KAAKjZ,GAAW,GAAiB+Y,EAAGC,QAAxG,GCHa,SAAS4nF,GAAmB3oF,GACzC,OCJa,SAA4BA,GACzC,GAAI1W,MAAMC,QAAQyW,GAAM,OAAO,GAAiBA,GDGzC,CAAkBA,IELZ,SAA0B4oF,GACvC,GAAsB,qBAAXxoF,QAA0BA,OAAOC,YAAYlf,OAAOynG,GAAO,OAAOt/F,MAAMpB,KAAK0gG,GFIvD,CAAgB5oF,IAAQ,GAA2BA,IGLvE,WACb,MAAM,IAAI5L,UAAU,wIHIwE,GID9F,IAAIy0F,GAAK,GACLv4B,GAAM,GACNw4B,GAAS,GACTC,GAAU,GACVC,GAAUvE,GAAe,iBAAkBn4F,SAASwc,gBAExD,GAAI27E,EAAa,CAGf,IAAIwE,GAAW,CACbC,IAAK,QACL51B,GAAI,OACJh5C,EAAG,MACH6uE,OAAQ,YAINvkG,GADwB0H,SAASC,cAAc,KACjB3H,MAIlC,IAAK,IAAIlD,MAAOunG,GACd,GAAIvnG,GAHS,cAGSkD,GAAO,CAC3BikG,GAAKnnG,GACL4uE,GAAM24B,GAASvnG,IACf,MAKO,WAAPmnG,IAAmB,cAAejkG,KACpCikG,GAAK,KACLv4B,GAAM24B,GAAS31B,GACfy1B,GAAU,QAID,WAAPF,IAAmB,yBAA0BjkG,KAC/CkkG,GAAS,SAWb,IAAI9+F,GACE6+F,GADF7+F,GAEGsmE,GAFHtmE,GAGM8+F,GAHN9+F,GAIO++F,GAJP/+F,GAKOg/F,GAsBX,IAAII,GAAa,CACfC,UAAW,CAAC,cACZC,kBAAmB,SAA2B9xF,GAC5C,MAAa,eAATA,IACc,OAAdxN,GAA2B,WAAawN,EACrCxN,GAAawN,KAMpB+xF,GAAc,CAChBF,UAAW,CAAC,gBACZC,kBAAmB,SAA2B9xF,GAC5C,MAAa,iBAATA,IACc,WAAdxN,GAA+BA,GAAa,SAAWwN,EACpDA,KAIPuwF,GAAS,cAUb,SAASyB,GAAQxkG,EAAO+d,GACtB,OAAOA,EAAIA,EAAEjL,cAAgB,GAW/B,SAAS2xF,GAAS3/E,GAChB,OAAOA,EAAInmB,QAAQokG,GAAQyB,IAW7B,SAASE,GAAU5/E,GACjB,OAAO2/E,GAAS,IAAM3/E,GAMxB,IA8QIrT,GA9QAq4D,GAAO,CACTu6B,UAAW,CAAC,QACZC,kBAAmB,SAA2B9xF,EAAM5S,GAClD,IAAK,QAAQoc,KAAKxJ,GAAO,OAAO,EAEhC,GAAkB,WAAdxN,GAAwB,CAG1B,GAAIy/F,GAFW,gBAEW7kG,EACxB,OAAO4S,EAGT,GAAIxN,GAAY0/F,GAND,gBAMwB9kG,EACrC,OAAOoF,GAAawN,EAIxB,OAAOA,IAMPmyF,GAAkB,CACpBN,UAAW,CAAC,oBACZC,kBAAmB,SAA2B9xF,GAC5C,MAAa,qBAATA,IAEkB,UAAlBxN,IAA8BA,GAI3BwN,EAHExN,GAAawN,KAStBwd,GAAY,CACdq0E,UAAW,CAAC,aACZC,kBAAmB,SAA2B9xF,EAAM5S,EAAO6Q,GACzD,MAAa,cAAT+B,IAEA/B,EAAQuf,UACHxd,EAGFxN,GAAawN,KAMpBS,GAAa,CACfoxF,UAAW,CAAC,cACZC,kBAAmB,SAA2B9xF,EAAM5S,EAAO6Q,GACzD,MAAa,eAAT+B,IAEA/B,EAAQwC,WACHT,EAGFxN,GAAawN,KAMpBoyF,GAAc,CAChBP,UAAW,CAAC,gBACZC,kBAAmB,SAA2B9xF,GAC5C,MAAa,iBAATA,IAEc,WAAdxN,IAAwC,OAAdA,IAAyC,SAAnBA,GAC3CA,GAAawN,EAGfA,KAMPqyF,GAAa,CACfR,UAAW,CAAC,eACZC,kBAAmB,SAA2B9xF,GAC5C,MAAa,gBAATA,IAEc,QAAdxN,IAAqC,OAAdA,IAAwC,UAAlBA,GACxCA,GAAawN,EAGfA,KAQPsyF,GAAgB,CAClBR,kBAAmB,SAA2B9xF,EAAM5S,GAClD,QAAK,UAAUoc,KAAKxJ,KAEF,WAAdxN,GACW,eAAiB0/F,GAAUlyF,KACvB5S,GAAQoF,GAAa,UAAYwN,EAGlC,QAAdxN,KACY,OAAS0/F,GAAUlyF,KAEf5S,GAAQ,QAAU4S,MAStCuyF,GAAmB,CACrBT,kBAAmB,SAA2B9xF,EAAM5S,GAClD,IAAK,kCAAkCoc,KAAKxJ,GAAO,OAAO,EAC1D,GAAkB,QAAdxN,GAAqB,OAAOwN,EAChC,IAAIwyF,EAAUxyF,EAAK7T,QAAQ,UAAW,IACtC,OAAOqG,GAAY0/F,GAAUM,KAAYplG,GAAQoF,GAAaggG,IAO9DC,GAAa,CACfX,kBAAmB,SAA2B9xF,EAAM5S,GAClD,OAAO6kG,GAASjyF,KAAS5S,GAAQ4S,IAIjC0yF,GAAW,CACbZ,kBAAmB,SAA2B9xF,EAAM5S,GAClD,IAAIulG,EAAaT,GAAUlyF,GAE3B,MAAgB,MAAZA,EAAK,IAEO,MAAZA,EAAK,IAA0B,MAAZA,EAAK,GAFAA,EAGxBxN,GAAYmgG,KAAcvlG,EAAcoF,GAAawN,EAEvC,WAAdxN,IAA0B,SAAWmgG,KAAcvlG,GAAc,WAAa4S,IAOlF4yF,GAAa,CACfd,kBAAmB,SAA2B9xF,GAC5C,MAA8B,gBAA1BA,EAAK5G,UAAU,EAAG,MAEJ,OAAd5G,GACK,GAAKA,GAAawN,EAGpBA,KAMP6yF,GAAqB,CACvBf,kBAAmB,SAA2B9xF,GAC5C,MAAa,wBAATA,IAEc,OAAdxN,GACKA,GAAa,kBAGfwN,KAIP8yF,GAAU,CACZ,YAAa,gBACb,cAAe,gBACf,aAAc,sBACd,kBAAmB,YACnB37D,MAAO,aACP,cAAe,aACf,gBAAiB,kBAIf47D,GAAW,CACbjB,kBAAmB,SAA2B9xF,EAAM5S,GAClD,IAAIolG,EAAUM,GAAQ9yF,GACtB,QAAKwyF,IACEhgG,GAAY0/F,GAAUM,KAAYplG,GAAQoF,GAAaggG,KAI9DQ,GAAY,CACdh9D,KAAM,WACN,YAAa,WACb,iBAAkB,CAAC,aAAc,iBACjCmB,MAAO,oBACP,cAAe,YACf,YAAa,CAAC,aAAc,iBAC5B,kBAAmB,YAEjB87D,GAAWtpG,OAAOyI,KAAK4gG,IAEvBE,GAAY,SAAmBryE,GACjC,OAAOruB,GAAaquB,GA6ClBgjE,GAAU,CAAC+N,GAAYG,GAAaz6B,GAAM66B,GAAiB30E,GAAW/c,GAAY2xF,GAAaC,GAAYC,GAAeC,GAAkBE,GAAYC,GAAUE,GAAYC,GAAoBE,GAzCvL,CACbjB,kBAAmB,SAA2B9xF,EAAM5S,EAAOgJ,GACzD,IAAIshD,EAAWthD,EAAKshD,SAEpB,GAAIu7C,GAASvgG,QAAQsN,IAAS,EAAG,CAC/B,IAAIwyF,EAAUQ,GAAUhzF,GAExB,IAAKlO,MAAMC,QAAQygG,GACjB,OAAOhgG,GAAY0/F,GAAUM,KAAYplG,GAAQoF,GAAaggG,EAGhE,IAAK96C,EAAU,OAAO,EAEtB,IAAK,IAAI5tD,EAAI,EAAGA,EAAI0oG,EAAQxoG,OAAQF,IAClC,KAAM0I,GAAY0/F,GAAUM,EAAQ,MAAOplG,GACzC,OAAO,EAIX,OAAOolG,EAAQz3F,IAAIm4F,IAGrB,OAAO,KAoBPC,GAAoBtP,GAAQvvF,QAAO,SAAUusB,GAC/C,OAAOA,EAAEixE,qBACR/2F,KAAI,SAAU8lB,GACf,OAAOA,EAAEixE,qBAEPD,GAAYhO,GAAQvvF,QAAO,SAAUusB,GACvC,OAAOA,EAAEgxE,aACR1H,QAAO,SAAUv4F,EAAGivB,GAErB,OADAjvB,EAAEyC,KAAK/J,MAAMsH,EAAGu/F,GAAmBtwE,EAAEgxE,YAC9BjgG,IACN,IAGCqV,GAAQ,GAEZ,GAAIgmF,EAAa,CACfhuF,GAAKnK,SAASC,cAAc,KAQ5B,IAAIq+F,GAAWv+F,OAAOgX,iBAAiB/W,SAASwc,gBAAiB,IAEjE,IAAK,IAAI+hF,MAASD,GAEX37E,MAAM47E,MAAQpsF,GAAMmsF,GAASC,KAAUD,GAASC,KAKvDxB,GAAUl9F,SAAQ,SAAUiR,GAC1B,cAAcqB,GAAMrB,MAcxB,SAASksF,GAAkB9xF,EAAM/B,GAM/B,QALgB,IAAZA,IACFA,EAAU,KAIPgB,GAAI,OAAOe,EAEhB,GAA2D,MAAfiH,GAAMjH,GAChD,OAAOiH,GAAMjH,GAIF,eAATA,GAAkC,cAATA,IAC3B/B,EAAQ+B,GAAQA,KAAQf,GAAG7R,OAI7B,IAAK,IAAItD,EAAI,EAAGA,EAAIqpG,GAAkBnpG,SACpCid,GAAMjH,GAAQmzF,GAAkBrpG,GAAGkW,EAAMf,GAAG7R,MAAO6Q,IAE/CgJ,GAAMjH,IAHkClW,KAQ9C,IACEmV,GAAG7R,MAAM4S,GAAQ,GACjB,MAAOsI,GACP,OAAO,EAGT,OAAOrB,GAAMjH,GAGf,IAQIszF,GARAC,GAAU,GACVC,GAAuB,CACzB/yF,WAAY,EACZ,sBAAuB,EACvB,qBAAsB,EACtB,8BAA+B,GAE7BgzF,GAAmB,0CAYvB,SAASC,GAAyBlmG,EAAOm7E,EAAIC,GAC3C,GAAW,QAAPD,EAAc,MAAO,MACzB,GAAW,QAAPA,EAAc,MAAO,MACzB,GAAW,QAAPC,EAAc,MAAO,QACzB,IAAI+qB,EAAgBhrB,EAAKmpB,GAAkBnpB,GAAM,KAAOmpB,GAAkBlpB,GAC1E,OAAK+qB,IAAsBhrB,GAAMC,GAcnC,SAASgrB,GAAez2F,EAAUtP,GAEhC,IAAI8lG,EAAgB9lG,EACpB,IAAKylG,IAAqB,YAAbn2F,EAAwB,OAAOtP,EAI5C,GAA6B,kBAAlB8lG,IAA+Bl8E,MAAM2uC,SAASutC,EAAe,KACtE,OAAOA,EAIT,IAAItsF,EAAWlK,EAAWw2F,EAE1B,GAAiE,MAArBJ,GAAQlsF,GAClD,OAAOksF,GAAQlsF,GAIjB,IAEEisF,GAAKlmG,MAAM+P,GAAYw2F,EACvB,MAAOrrF,GAGP,OADAirF,GAAQlsF,IAAY,GACb,EAIT,GAAImsF,GAAqBr2F,GACvBw2F,EAAgBA,EAAcxnG,QAAQsnG,GAAkBC,SACnD,GAA6B,KAAzBJ,GAAKlmG,MAAM+P,KAIE,cAFtBw2F,EAAgBnhG,GAAamhG,KAEKL,GAAKlmG,MAAM+P,GAAY,eAEzDm2F,GAAKlmG,MAAM+P,GAAYw2F,EAEM,KAAzBL,GAAKlmG,MAAM+P,IAEb,OADAo2F,GAAQlsF,IAAY,GACb,EAQX,OAHAisF,GAAKlmG,MAAM+P,GAAY,GAEvBo2F,GAAQlsF,GAAYssF,EACbJ,GAAQlsF,GA3Db4lF,IAAaqG,GAAOx+F,SAASC,cAAc,MCpchC8+F,OAjDf,WAQE,SAASC,EAAY1mG,GACnB,IAAK,IAAI4S,KAAQ5S,EAAO,CACtB,IAAIS,EAAQT,EAAM4S,GAElB,GAAa,cAATA,GAAwBlO,MAAMC,QAAQlE,GACxCT,EAAM4S,GAAQnS,EAAMkN,IAAI+4F,OAD1B,CAKA,IAAIC,GAAa,EACbC,EAAgBlC,GAAkB9xF,GAClCg0F,GAAiBA,IAAkBh0F,IAAM+zF,GAAa,GAC1D,IAAIE,GAAc,EACdC,EAAoBN,GAAeI,EAAejQ,EAAWl2F,IAC7DqmG,GAAqBA,IAAsBrmG,IAAOomG,GAAc,IAEhEF,GAAcE,KACZF,UAAmB3mG,EAAM4S,GAC7B5S,EAAM4mG,GAAiBh0F,GAAQk0F,GAAqBrmG,IAIxD,OAAOT,EAYT,MAAO,CACL05F,cA1CF,SAAuBlD,GACrB,GAAkB,cAAdA,EAAKp3E,KAAsB,CAC7B,IAAI2nF,EAASvQ,EACbuQ,EAAO3N,GD0DI,OAFWt8F,ECxDSiqG,EAAO3N,ID0DlC,IAGU,OAAdh0F,GAHuBtI,EAIpB,IAAMsI,GAAa,YAActI,EAAIuH,OAAO,IANrD,IAA4BvH,GChBxB09F,eAXF,SAAwBx6F,EAAOw2F,GAC7B,MAAkB,UAAdA,EAAKp3E,KAAyBpf,EAC3B0mG,EAAY1mG,IAUnBm4F,cAPF,SAAuB13F,EAAOmS,GAC5B,OAAO4zF,GAAe5zF,EAAM+jF,EAAWl2F,KAAWA,KCrBvCumG,OAxBf,WACE,IAAI7a,EAAO,SAAc8a,EAAOC,GAC9B,OAAID,EAAMrqG,SAAWsqG,EAAMtqG,OAClBqqG,EAAQC,EAAQ,GAAK,EAGvBD,EAAMrqG,OAASsqG,EAAMtqG,QAG9B,MAAO,CACL49F,eAAgB,SAAwBx6F,EAAOw2F,GAC7C,GAAkB,UAAdA,EAAKp3E,KAAkB,OAAOpf,EAIlC,IAHA,IAAIm2F,EAAW,GACXx4F,EAAQpB,OAAOyI,KAAKhF,GAAOmsF,KAAKA,GAE3BzvF,EAAI,EAAGA,EAAIiB,EAAMf,OAAQF,IAChCy5F,EAASx4F,EAAMjB,IAAMsD,EAAMrC,EAAMjB,IAGnC,OAAOy5F,KCdE,SAASgR,KACtB,MAAO,CACL1Q,QAAS,CAAC2Q,KAAa10E,KAAUwvE,KAAUc,KAAaY,KAGtC,qBAAXn8F,OAAyB,KAAO4/F,KAAkBC,OCJ7D,IAAIhR,GAAMj0F,GAAO8kG,MAQbI,GAAiB,CACnBC,mBAAmB,EACnBC,kBjBDa,WACb,IAAI52F,EAAUlU,UAAUC,OAAS,QAAsBuE,IAAjBxE,UAAU,GAAmBA,UAAU,GAAK,GAC9E+qG,EAAwB72F,EAAQ82F,cAChCA,OAA0C,IAA1BD,GAA2CA,EAC3DE,EAAwB/2F,EAAQg3F,iBAChCA,OAA6C,IAA1BD,EAAmC,MAAQA,EAC9DE,EAAgBj3F,EAAQ8iE,KACxBA,OAAyB,IAAlBm0B,EAA2B,GAAKA,EACvCC,EAAsB,KAATp0B,EAAc,GAAK,GAAG7vE,OAAO6vE,EAAM,KAChD4pB,EAAc,EAClB,OAAO,SAAU/G,EAAMwR,GACrBzK,GAAe,EAQf,IAAIlkF,EAAO2uF,EAAWn3F,QAAQwI,KAE9B,GAAIA,GAAgC,IAAxBA,EAAK/T,QAAQ,SAAiB0iG,EAAWn3F,QAAQiM,OAAS6qF,EAAe,CAEnF,IAAyC,IAArC9G,GAAcv7F,QAAQkxF,EAAK15F,KAC7B,MAAO,OAAOgH,OAAO0yF,EAAK15F,KAG5B,IAAIsI,EAAS,GAAGtB,OAAOikG,GAAYjkG,OAAOuV,EAAM,KAAKvV,OAAO0yF,EAAK15F,KAEjE,OAAKkrG,EAAWn3F,QAAQo3F,MAAM/F,KAAoB,KAATvuB,EAIlC,GAAG7vE,OAAOsB,EAAQ,KAAKtB,OAAOy5F,GAH5Bn4F,EAOT,MAAO,GAAGtB,OAAOikG,GAAYjkG,OAAO+jG,GAAkB/jG,OAAOy5F,IiBzC3C2K,GAMtB5R,IAAKA,GACL6R,YAAa,KACbC,cANyB,IAAI9lE,IAO7B+lE,eAAgB,MAEPC,GAAgBlrG,IAAMsa,cAAc6vF,IChB/C,IAAIgB,IAAgB,IACb,SAASpa,KASd,OARAoa,IAAgB,ECXH,SAAS,GAAQxmG,GAa9B,OATE,GADoB,oBAAXyZ,QAAoD,kBAApBA,OAAOC,SACtC,SAAiB1Z,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAXyZ,QAAyBzZ,EAAIO,cAAgBkZ,QAAUzZ,IAAQyZ,OAAOze,UAAY,gBAAkBgF,IAI9GA,GCXV,SAASymG,GAAc3jG,GAC5B,OAAOA,GAA0B,WAAlBgxF,GAAQhxF,IAAsBA,EAAKvC,cAAgB/F,OAErD,SAASksG,GAAUhsG,EAAQI,GACxC,IAAIgU,EAAUlU,UAAUC,OAAS,QAAsBuE,IAAjBxE,UAAU,GAAmBA,UAAU,GAAK,CAChFinE,OAAO,GAELzwD,EAAStC,EAAQ+yD,MAAQtnE,YAAS,GAAIG,GAAUA,EAiBpD,OAfI+rG,GAAc/rG,IAAW+rG,GAAc3rG,IACzCN,OAAOyI,KAAKnI,GAAQ0K,SAAQ,SAAUzK,GAExB,cAARA,IAIA0rG,GAAc3rG,EAAOC,KAASA,KAAOL,EACvC0W,EAAOrW,GAAO2rG,GAAUhsG,EAAOK,GAAMD,EAAOC,GAAM+T,GAElDsC,EAAOrW,GAAOD,EAAOC,OAKpBqW,ECtBM,SAASu1F,GAAiBC,GACvC,IAAIC,EAA4C,oBAApBD,EAQ5B,MAAO,CACLtmG,OAAQ,SAAgB4lG,EAAO5uF,GAC7B,IAAIjK,EAEJ,IACEA,EAASw5F,EAAiBD,EAAgBV,GAASU,EACnD,MAAOztF,GAQP,MAAMA,EAGR,IAAK7B,IAAS4uF,EAAMY,YAAcZ,EAAMY,UAAUxvF,GAChD,OAAOjK,EAGT,IAAIy5F,EAAYZ,EAAMY,UAAUxvF,GAE5ByvF,EAAsBxsG,YAAS,GAAI8S,GAWvC,OATA7S,OAAOyI,KAAK6jG,GAAWthG,SAAQ,SAAUzK,GAOvCgsG,EAAoBhsG,GAAO2rG,GAAUK,EAAoBhsG,GAAM+rG,EAAU/rG,OAEpEgsG,GAETj4F,QAAS,IChDb,IACek4F,GADC,GCWhB,SAASC,GAAWhgG,EAAM+rE,EAAS13E,GACjC,IAAIwI,EAAQmD,EAAKnD,MAGjB,GAFoBmD,EAAKigG,cAEPzB,kBAChB,OAAOzyB,GAAW,GAGflvE,EAAMqjG,eACTrjG,EAAMqjG,aAAe,CAEnBzoG,MAAO,KAEP0oG,SAAU,KAEVC,QAAS,KAMb,IAAIC,GAAW,EAoBf,OAlBIxjG,EAAMkvE,UAAYlvE,EAAMqjG,aAAaE,UACvCvjG,EAAMqjG,aAAaE,QAAUvjG,EAAMkvE,QACnCs0B,GAAW,GAGTt0B,IAAYlvE,EAAMqjG,aAAaC,WACjCtjG,EAAMqjG,aAAaC,SAAWp0B,EAC9Bs0B,GAAW,GAGTA,IACFxjG,EAAMqjG,aAAazoG,MAAQy/F,GAAa,CACtCC,YAAat6F,EAAMqjG,aAAaE,QAChChJ,WAAYrrB,EACZ13E,UAAWA,KAIRwI,EAAMqjG,aAAazoG,MAG5B,SAASw7F,GAAOqN,EAAO3rG,GACrB,IAAIkI,EAAQyjG,EAAMzjG,MACdoiG,EAAQqB,EAAMrB,MACdgB,EAAgBK,EAAML,cACtBM,EAAgBD,EAAMC,cACtBlwF,EAAOiwF,EAAMjwF,KAEjB,IAAI4vF,EAAczB,kBAAlB,CAIA,IAAIgC,EAAelJ,GAAcjwF,IAAI44F,EAAcb,cAAemB,EAAetB,GAE5EuB,IACHA,EAAe,CACbh1E,KAAM,EACNi1E,YAAa,KACbC,cAAe,MAEjBpJ,GAAc3uF,IAAIs3F,EAAcb,cAAemB,EAAetB,EAAOuB,IAGvE,IAAI34F,EAAUvU,YAAS,GAAIitG,EAAc14F,QAAS,GAAIo4F,EAAe,CACnEhB,MAAOA,EACP0B,KAAoC,mBAAvBV,EAAcU,KAAqBV,EAAcU,KAA2B,QAApB1B,EAAM2B,YAG7E/4F,EAAQ+nF,WAAa/nF,EAAQg5F,yBAA2Bh5F,EAAQ42F,kBAChE,IAAIY,EAAiBY,EAAcZ,eAEnC,GAA0B,IAAtBmB,EAAah1E,KAAY,CAC3B,IAAIi1E,EAEAR,EAAcd,cAChBsB,EAAcnJ,GAAcjwF,IAAI44F,EAAcd,YAAaoB,EAAetB,IAG5E,IAAI74F,EAASm6F,EAAclnG,OAAO4lG,EAAO5uF,GAEpCowF,KACHA,EAAcR,EAAc3S,IAAIyJ,iBAAiB3wF,EAAQ9S,YAAS,CAChEwgB,MAAM,GACLjM,KACSorF,SAERgN,EAAcd,aAChB7H,GAAc3uF,IAAIs3F,EAAcd,YAAaoB,EAAetB,EAAOwB,IAInEpB,GACFA,EAAev7C,IAAI28C,GAGrBD,EAAaC,YAAcA,EAC3BD,EAAaE,c7Bw8DjB,SAASI,EAAiB16F,GACxB,IAAIvR,EAAK,KAET,IAAK,IAAIf,KAAOsS,EAAQ,CACtB,IAAI3O,EAAQ2O,EAAOtS,GACfsiB,SAAc3e,EAElB,GAAa,aAAT2e,EACGvhB,IAAIA,EAAK,IACdA,EAAGf,GAAO2D,OACL,GAAa,WAAT2e,GAA+B,OAAV3e,IAAmBiE,MAAMC,QAAQlE,GAAQ,CACvE,IAAIspG,EAAYD,EAAiBrpG,GAE7BspG,IACGlsG,IAAIA,EAAK,IACdA,EAAGf,GAAOitG,IAKhB,OAAOlsG,E6B59DwBisG,CAAiB16F,GAGhD,GAAIo6F,EAAaE,cAAe,CAC9B,IAAIM,EAAef,EAAc3S,IAAIyJ,iBAAiByJ,EAAaE,cAAeptG,YAAS,CACzFwgB,MAAM,GACLjM,IACHm5F,EAAa1lF,OAAO3mB,GACpBqsG,EAAa/N,SACbp2F,EAAMmkG,aAAeA,EACrBnkG,EAAMkvE,QAAUmrB,GAAa,CAC3BC,YAAaqJ,EAAaC,YAAY10B,QACtCqrB,WAAY4J,EAAaj1B,UAGvBszB,GACFA,EAAev7C,IAAIk9C,QAGrBnkG,EAAMkvE,QAAUy0B,EAAaC,YAAY10B,QAG3Cy0B,EAAah1E,MAAQ,GAGvB,SAASlQ,GAAO2lF,EAAOtsG,GACrB,IAAIkI,EAAQokG,EAAMpkG,MAEdA,EAAMmkG,cACRnkG,EAAMmkG,aAAa1lF,OAAO3mB,GAI9B,SAASw+F,GAAO+N,GACd,IAAIrkG,EAAQqkG,EAAMrkG,MACdoiG,EAAQiC,EAAMjC,MACdgB,EAAgBiB,EAAMjB,cACtBM,EAAgBW,EAAMX,cAE1B,IAAIN,EAAczB,kBAAlB,CAIA,IAAIgC,EAAelJ,GAAcjwF,IAAI44F,EAAcb,cAAemB,EAAetB,GACjFuB,EAAah1E,MAAQ,EACrB,IAAI6zE,EAAiBY,EAAcZ,eAET,IAAtBmB,EAAah1E,OACf8rE,GAAct6D,OAAOijE,EAAcb,cAAemB,EAAetB,GACjEgB,EAAc3S,IAAI0J,iBAAiBwJ,EAAaC,aAE5CpB,GACFA,EAAevjF,OAAO0kF,EAAaC,cAInC5jG,EAAMmkG,eACRf,EAAc3S,IAAI0J,iBAAiBn6F,EAAMmkG,cAErC3B,GACFA,EAAevjF,OAAOjf,EAAMmkG,gBAKlC,SAASG,GAAqBxzF,EAAM4D,GAClC,IACIpH,EADArW,EAAMM,IAAMu7B,OAAO,IAGnByxE,EAAahtG,IAAMq7B,SAAQ,WAC7B,MAAO,KACNle,GAGCzd,EAAIm4B,UAAYm1E,IAClBttG,EAAIm4B,QAAUm1E,EACdj3F,EAASwD,KAGXvZ,IAAMk7B,WAAU,WACd,OAAO,WACDnlB,GACFA,OAGH,CAACi3F,IAIS,SAASC,GAAW1B,GACjC,IAAI93F,EAAUlU,UAAUC,OAAS,QAAsBuE,IAAjBxE,UAAU,GAAmBA,UAAU,GAAK,GAE9E0c,EAAOxI,EAAQwI,KACfixF,EAAwBz5F,EAAQ4sF,gBAChCpgG,EAAYwT,EAAQxT,UACpBktG,EAAwB15F,EAAQ25F,aAChCA,OAAyC,IAA1BD,EAAmCxB,GAAYwB,EAC9DE,EAAiBtV,EAAyBtkF,EAAS,CAAC,OAAQ,kBAAmB,YAAa,iBAE5F04F,EAAgBb,GAAiBC,GACjClL,EAAkBpkF,GAAQixF,GAAyB,aAOvD,OANAf,EAAc14F,QAAU,CACtB5N,MAAOkrF,KACP90E,KAAMA,EACNqyB,KAAM+xD,EACNA,gBAAiBA,GAEZ,WACL,IAAI9/F,EAAQhB,UAAUC,OAAS,QAAsBuE,IAAjBxE,UAAU,GAAmBA,UAAU,GAAK,GAC5EsrG,EAAQtH,MAAc6J,EAEtBvB,EAAgB3sG,YAAS,GAAIc,IAAMg7B,WAAWkwE,IAAgB,GAAImC,GAElEl7F,EAAWnS,IAAMu7B,SACjB+xE,EAAettG,IAAMu7B,SAuBzB,OAtBAwxE,IAAqB,WACnB,IAAIl1E,EAAU,CACZ5b,KAAMA,EACNxT,MAAO,GACP0jG,cAAeA,EACfN,cAAeA,EACfhB,MAAOA,GAKT,OAHAhM,GAAOhnE,EAASt3B,GAChB+sG,EAAaz1E,SAAU,EACvB1lB,EAAS0lB,QAAUA,EACZ,WACLknE,GAAOlnE,MAER,CAACgzE,EAAOsB,IACXnsG,IAAMk7B,WAAU,WACVoyE,EAAaz1E,SACf3Q,GAAO/U,EAAS0lB,QAASt3B,GAG3B+sG,EAAaz1E,SAAU,KAElB+zE,GAAWz5F,EAAS0lB,QAASt3B,EAAMo3E,QAAS13E,ICvPxC,SAASstG,GAAclxF,GACpC,IAAIwuF,EAAQxuF,EAAOwuF,MACf5uF,EAAOI,EAAOJ,KACd1b,EAAQ8b,EAAO9b,MAEnB,IAAKsqG,IAAUA,EAAMtqG,QAAUsqG,EAAMtqG,MAAM0b,GACzC,OAAO1b,EAKT,IACIsV,EADA+D,EAAeixF,EAAMtqG,MAAM0b,GAG/B,IAAKpG,KAAY+D,OACS7V,IAApBxD,EAAMsV,KACRtV,EAAMsV,GAAY+D,EAAa/D,IAInC,OAAOtV,ECTT,IA8GeitG,GA9GE,SAAoBjC,GACnC,IAAI93F,EAAUlU,UAAUC,OAAS,QAAsBuE,IAAjBxE,UAAU,GAAmBA,UAAU,GAAK,GAClF,OAAO,SAAUU,GACf,IAAImtG,EAAe35F,EAAQ25F,aACvBK,EAAqBh6F,EAAQi6F,UAC7BA,OAAmC,IAAvBD,GAAwCA,EACpDxxF,EAAOxI,EAAQwI,KACf4vF,EAAgB9T,EAAyBtkF,EAAS,CAAC,eAAgB,YAAa,SAQpF,IAAI4sF,EAAkBpkF,EAalB0xF,EAAYV,GAAW1B,EAAiBrsG,YAAS,CACnDkuG,aAAcA,EACdntG,UAAWA,EACXgc,KAAMA,GAAQhc,EAAU0hB,YACxB0+E,gBAAiBA,GAChBwL,IACC+B,EAAa5tG,IAAMe,YAAW,SAAoBR,EAAOkuB,GACzCluB,EAAMo3E,QAAxB,IAQIkzB,EAPA5pG,EAAWV,EAAMU,SACjB48D,EAAQk6B,EAAyBx3F,EAAO,CAAC,UAAW,aAKpDo3E,EAAUg2B,EAAUzuG,YAAS,GAAIe,EAAU2Z,aAAc,GAAIrZ,IAE7DstG,EAAOhwC,EAsBX,OApBoB,kBAAT5hD,GAAqByxF,KAG9B7C,EAAQtH,MAAc6J,EAElBnxF,IACF4xF,EAAON,GAAc,CACnB1C,MAAOA,EACP5uF,KAAMA,EACN1b,MAAOs9D,KAMP6vC,IAAcG,EAAKhD,QACrBgD,EAAKhD,MAAQA,IAIV7qG,IAAMuK,cAActK,EAAWf,YAAS,CAC7CuvB,IAAKxtB,GAAYwtB,EACjBkpD,QAASA,GACRk2B,OAqCL,OATA9qF,IAAqB6qF,EAAY3tG,GAS1B2tG,ICtHI,SAAS1+E,GAAgBvqB,EAAKjF,EAAK2D,GAYhD,OAXI3D,KAAOiF,EACTxF,OAAOiE,eAAeuB,EAAKjF,EAAK,CAC9B2D,MAAOA,EACP8N,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZ1M,EAAIjF,GAAO2D,EAGNsB,ECRF,IAAIiD,GAAO,CAAC,KAAM,KAAM,KAAM,KAAM,MAE5B,SAASkmG,GAAkBC,GACxC,IAAIC,EAAsBD,EAAY5wF,OAClCA,OAAiC,IAAxB6wF,EAAiC,CAC5CC,GAAI,EACJC,GAAI,IACJvgE,GAAI,IACJ8U,GAAI,KACJ0rD,GAAI,MACFH,EACAI,EAAoBL,EAAYx1B,KAChCA,OAA6B,IAAtB61B,EAA+B,KAAOA,EAC7CC,EAAoBN,EAAYv3B,KAChCA,OAA6B,IAAtB63B,EAA+B,EAAIA,EAC1CxwC,EAAQk6B,EAAyBgW,EAAa,CAAC,SAAU,OAAQ,SAErE,SAASnnG,EAAGlH,GACV,IAAI2D,EAA+B,kBAAhB8Z,EAAOzd,GAAoByd,EAAOzd,GAAOA,EAC5D,MAAO,qBAAqBgH,OAAOrD,GAAOqD,OAAO6xE,EAAM,KAgBzD,SAAS+1B,EAAQ7hF,EAAOvP,GACtB,IAAIqxF,EAAW3mG,GAAKM,QAAQgV,GAE5B,OAAIqxF,IAAa3mG,GAAKpI,OAAS,EACtBoH,EAAG6lB,GAGL,qBAAqB/lB,OAAgC,kBAAlByW,EAAOsP,GAAsBtP,EAAOsP,GAASA,GAAO/lB,OAAO6xE,EAAM,UAAY,cAAc7xE,SAAsB,IAAd6nG,GAAyD,kBAA/BpxF,EAAOvV,GAAK2mG,EAAW,IAAmBpxF,EAAOvV,GAAK2mG,EAAW,IAAMrxF,GAAOs5D,EAAO,KAAK9vE,OAAO6xE,EAAM,KAWhR,OAAOr5E,YAAS,CACd0I,KAAMA,GACNuV,OAAQA,EACRvW,GAAIA,EACJ4nG,KAnCF,SAAc9uG,GACZ,IAAI6uG,EAAW3mG,GAAKM,QAAQxI,GAAO,EAC/B+uG,EAAatxF,EAAOvV,GAAK2mG,IAE7B,OAAIA,IAAa3mG,GAAKpI,OAEboH,EAAG,MAIL,qBAAqBF,QADM,kBAAf+nG,GAA2BF,EAAW,EAAIE,EAAa/uG,GAC/B82E,EAAO,KAAK9vE,OAAO6xE,EAAM,MA0BpE+1B,QAASA,EACTz0E,KAdF,SAAcn6B,GACZ,OAAO4uG,EAAQ5uG,EAAKA,IAcpBwW,MAXF,SAAexW,GACb,OAAOyd,EAAOzd,KAWbm+D,GC/DU,SAAS6wC,GAAaX,EAAaY,EAAS5sF,GACzD,IAAI6sF,EAEJ,OAAO1vG,YAAS,CACd2vG,QAAS,WACP,IAAI78F,EAASzS,UAAUC,OAAS,QAAsBuE,IAAjBxE,UAAU,GAAmBA,UAAU,GAAK,GAiBjF,OAAOL,YAAS,CACd4vG,YAAaH,EAAQ,GACrBI,aAAcJ,EAAQ,IACrB38F,EAAQkd,GAAgB,GAAI6+E,EAAYnnG,GAAG,MAAO1H,YAAS,CAC5D4vG,YAAaH,EAAQ,GACrBI,aAAcJ,EAAQ,IACrB38F,EAAO+7F,EAAYnnG,GAAG,WAE3BooG,SAAUJ,EAAW,CACnBK,UAAW,IACV//E,GAAgB0/E,EAAU,GAAGloG,OAAOqnG,EAAYnnG,GAAG,MAAO,iCAAkC,CAC7FqoG,UAAW,KACT//E,GAAgB0/E,EAAUb,EAAYnnG,GAAG,MAAO,CAClDqoG,UAAW,KACTL,IACH7sF,GCvCL,IAIemtF,GAJF,CACXC,MAAO,OACPC,MAAO,QCcMniB,GAhBJ,CACToiB,GAAI,UACJC,IAAK,UACLC,IAAK,UACLC,IAAK,UACLC,IAAK,UACLC,IAAK,UACLC,IAAK,UACLC,IAAK,UACLC,IAAK,UACLC,IAAK,UACLjkB,KAAM,UACNC,KAAM,UACNC,KAAM,UACNC,KAAM,WCEOM,GAhBF,CACX+iB,GAAI,UACJC,IAAK,UACLC,IAAK,UACLC,IAAK,UACLC,IAAK,UACLC,IAAK,UACLC,IAAK,UACLC,IAAK,UACLC,IAAK,UACLC,IAAK,UACLjkB,KAAM,UACNC,KAAM,UACNC,KAAM,UACNC,KAAM,WCEOG,GAhBJ,CACTkjB,GAAI,UACJC,IAAK,UACLC,IAAK,UACLC,IAAK,UACLC,IAAK,UACLC,IAAK,UACLC,IAAK,UACLC,IAAK,UACLC,IAAK,UACLC,IAAK,UACLjkB,KAAM,UACNC,KAAM,UACNC,KAAM,UACNC,KAAM,WCEOviB,GAhBL,CACR4lC,GAAI,UACJC,IAAK,UACLC,IAAK,UACLC,IAAK,UACLC,IAAK,UACLC,IAAK,UACLC,IAAK,UACLC,IAAK,UACLC,IAAK,UACLC,IAAK,UACLjkB,KAAM,UACNC,KAAM,UACNC,KAAM,UACNC,KAAM,WCEOc,GAhBF,CACXuiB,GAAI,UACJC,IAAK,UACLC,IAAK,UACLC,IAAK,UACLC,IAAK,UACLC,IAAK,UACLC,IAAK,UACLC,IAAK,UACLC,IAAK,UACLC,IAAK,UACLjkB,KAAM,UACNC,KAAM,UACNC,KAAM,UACNC,KAAM,WCEOriB,GAhBJ,CACT0lC,GAAI,UACJC,IAAK,UACLC,IAAK,UACLC,IAAK,UACLC,IAAK,UACLC,IAAK,UACLC,IAAK,UACLC,IAAK,UACLC,IAAK,UACLC,IAAK,UACLjkB,KAAM,UACNC,KAAM,UACNC,KAAM,UACNC,KAAM,WCEOtiB,GAhBH,CACV2lC,GAAI,UACJC,IAAK,UACLC,IAAK,UACLC,IAAK,UACLC,IAAK,UACLC,IAAK,UACLC,IAAK,UACLC,IAAK,UACLC,IAAK,UACLC,IAAK,UACLjkB,KAAM,UACNC,KAAM,UACNC,KAAM,UACNC,KAAM,WCJR,SAASp8E,GAAMvM,GACb,IAAI0M,EAAMxQ,UAAUC,OAAS,QAAsBuE,IAAjBxE,UAAU,GAAmBA,UAAU,GAAK,EAC1EyQ,EAAMzQ,UAAUC,OAAS,QAAsBuE,IAAjBxE,UAAU,GAAmBA,UAAU,GAAK,EAQ9E,OAAOwM,KAAKgE,IAAIhE,KAAKiE,IAAID,EAAK1M,GAAQ2M,GA8FjC,SAAS+/F,GAAev7D,GAE7B,GAAIA,EAAMxyB,KACR,OAAOwyB,EAGT,GAAwB,MAApBA,EAAM9uC,OAAO,GACf,OAAOqqG,GA3FJ,SAAkBv7D,GACvBA,EAAQA,EAAMvtC,OAAO,GACrB,IAAIkjB,EAAK,IAAIjC,OAAO,OAAOxhB,OAAO8tC,EAAMh1C,OAAS,EAAG,KAAM,KACtDosF,EAASp3C,EAAMxxC,MAAMmnB,GAQzB,OANIyhE,GAA+B,IAArBA,EAAO,GAAGpsF,SACtBosF,EAASA,EAAOr7E,KAAI,SAAUxK,GAC5B,OAAOA,EAAIA,MAIR6lF,EAAS,OAAOllF,OAAOklF,EAAOr7E,KAAI,SAAUxK,GACjD,OAAO61D,SAAS71D,EAAG,OAClBiB,KAAK,MAAO,KAAO,GA8EEgpG,CAASx7D,IAGjC,IAAI4+B,EAAS5+B,EAAMtsC,QAAQ,KACvB8Z,EAAOwyB,EAAM5lC,UAAU,EAAGwkE,GAE9B,IAAsD,IAAlD,CAAC,MAAO,OAAQ,MAAO,QAAQlrE,QAAQ8Z,GACzC,MAAM,IAAIzc,MAAM,CAAC,6BAA6BmB,OAAO8tC,EAAO,YAAa,kFAAkFxtC,KAAK,OAGlK,IAAImW,EAASq3B,EAAM5lC,UAAUwkE,EAAS,EAAG5+B,EAAMh1C,OAAS,GAAG6G,MAAM,KAIjE,MAAO,CACL2b,KAAMA,EACN7E,OALFA,EAASA,EAAO5M,KAAI,SAAUlN,GAC5B,OAAO6pB,WAAW7pB,OAgBf,SAAS4sG,GAAez7D,GAC7B,IAAIxyB,EAAOwyB,EAAMxyB,KACb7E,EAASq3B,EAAMr3B,OAYnB,OAV6B,IAAzB6E,EAAK9Z,QAAQ,OAEfiV,EAASA,EAAO5M,KAAI,SAAUxK,EAAGzG,GAC/B,OAAOA,EAAI,EAAIs8D,SAAS71D,EAAG,IAAMA,MAED,IAAzBic,EAAK9Z,QAAQ,SACtBiV,EAAO,GAAK,GAAGzW,OAAOyW,EAAO,GAAI,KACjCA,EAAO,GAAK,GAAGzW,OAAOyW,EAAO,GAAI,MAG5B,GAAGzW,OAAOsb,EAAM,KAAKtb,OAAOyW,EAAOnW,KAAK,MAAO,KA2BjD,SAASkpG,GAAa17D,GAE3B,IAAIo1B,EAAqB,SADzBp1B,EAAQu7D,GAAev7D,IACPxyB,KAAiB+tF,GAlH5B,SAAkBv7D,GAEvB,IACIr3B,GAFJq3B,EAAQu7D,GAAev7D,IAEHr3B,OAChBhD,EAAIgD,EAAO,GACX8J,EAAI9J,EAAO,GAAK,IAChBgZ,EAAIhZ,EAAO,GAAK,IAChB/V,EAAI6f,EAAIlb,KAAKgE,IAAIomB,EAAG,EAAIA,GAExBgC,EAAI,SAAWpyB,GACjB,IAAID,EAAIvG,UAAUC,OAAS,QAAsBuE,IAAjBxE,UAAU,GAAmBA,UAAU,IAAMwG,EAAIoU,EAAI,IAAM,GAC3F,OAAOgc,EAAI/uB,EAAI2E,KAAKiE,IAAIjE,KAAKgE,IAAIjK,EAAI,EAAG,EAAIA,EAAG,IAAK,IAGlDkc,EAAO,MACP4nD,EAAM,CAAC79D,KAAKugB,MAAa,IAAP6L,EAAE,IAAWpsB,KAAKugB,MAAa,IAAP6L,EAAE,IAAWpsB,KAAKugB,MAAa,IAAP6L,EAAE,KAOxE,MALmB,SAAfqc,EAAMxyB,OACRA,GAAQ,IACR4nD,EAAI//D,KAAKsT,EAAO,KAGX8yF,GAAe,CACpBjuF,KAAMA,EACN7E,OAAQysD,IA0FsCumC,CAAS37D,IAAQr3B,OAASq3B,EAAMr3B,OAOhF,OANAysD,EAAMA,EAAIr5D,KAAI,SAAUua,GAGtB,OAFAA,GAAO,MAEO,OAAUA,EAAM,MAAQ/e,KAAKgyD,KAAKjzC,EAAM,MAAS,MAAO,QAGjEk8D,QAAQ,MAASpd,EAAI,GAAK,MAASA,EAAI,GAAK,MAASA,EAAI,IAAIK,QAAQ,IA2CvE,SAASmmC,GAAO57D,EAAO67D,GAI5B,GAHA77D,EAAQu7D,GAAev7D,GACvB67D,EAAczgG,GAAMygG,IAEe,IAA/B77D,EAAMxyB,KAAK9Z,QAAQ,OACrBssC,EAAMr3B,OAAO,IAAM,EAAIkzF,OAClB,IAAmC,IAA/B77D,EAAMxyB,KAAK9Z,QAAQ,OAC5B,IAAK,IAAI5I,EAAI,EAAGA,EAAI,EAAGA,GAAK,EAC1Bk1C,EAAMr3B,OAAO7d,IAAM,EAAI+wG,EAI3B,OAAOJ,GAAez7D,GAUjB,SAAS87D,GAAQ97D,EAAO67D,GAI7B,GAHA77D,EAAQu7D,GAAev7D,GACvB67D,EAAczgG,GAAMygG,IAEe,IAA/B77D,EAAMxyB,KAAK9Z,QAAQ,OACrBssC,EAAMr3B,OAAO,KAAO,IAAMq3B,EAAMr3B,OAAO,IAAMkzF,OACxC,IAAmC,IAA/B77D,EAAMxyB,KAAK9Z,QAAQ,OAC5B,IAAK,IAAI5I,EAAI,EAAGA,EAAI,EAAGA,GAAK,EAC1Bk1C,EAAMr3B,OAAO7d,KAAO,IAAMk1C,EAAMr3B,OAAO7d,IAAM+wG,EAIjD,OAAOJ,GAAez7D,GCxQjB,IAAI+7D,GAAQ,CAEjBv7D,KAAM,CAEJw7D,QAAS,sBAETC,UAAW,sBAEXvgF,SAAU,sBAEVwgF,KAAM,uBAGRC,QAAS,sBAGTpxC,WAAY,CACVqN,MAAOsiC,GAAOE,MACdvqG,QAASooF,GAAK,KAGhB1jF,OAAQ,CAENgb,OAAQ,sBAERy7C,MAAO,sBACP4wC,aAAc,IAEd9gF,SAAU,sBACV+gF,gBAAiB,IAEjB3gF,SAAU,sBAEV4gF,mBAAoB,sBACpBC,gBAAiB,IACjB/8F,MAAO,sBACPg9F,aAAc,IACdC,iBAAkB,MAGXC,GAAO,CAChBl8D,KAAM,CACJw7D,QAAStB,GAAOE,MAChBqB,UAAW,2BACXvgF,SAAU,2BACVwgF,KAAM,2BACNxwC,KAAM,4BAERywC,QAAS,4BACTpxC,WAAY,CACVqN,MAAOqgB,GAAK,KACZpoF,QAAS,WAEX0E,OAAQ,CACNgb,OAAQ2qF,GAAOE,MACfpvC,MAAO,4BACP4wC,aAAc,IACd9gF,SAAU,4BACV+gF,gBAAiB,IACjB3gF,SAAU,2BACV4gF,mBAAoB,4BACpBC,gBAAiB,IACjB/8F,MAAO,4BACPg9F,aAAc,IACdC,iBAAkB,MAItB,SAASE,GAAeC,EAAQ5E,EAAW6E,EAAOC,GAC3CF,EAAO5E,KACN4E,EAAOxxG,eAAeyxG,GACxBD,EAAO5E,GAAa4E,EAAOC,GACJ,UAAd7E,EACT4E,EAAOb,MAAQD,GAAQc,EAAOG,KAAMD,GACb,SAAd9E,IACT4E,EAAOF,KAAOd,GAAOgB,EAAOG,KAAoB,IAAdD,KAKzB,SAASE,GAAcC,GACpC,IAAIC,EAAmBD,EAAQjB,QAC3BA,OAA+B,IAArBkB,EAA8B,CAC1CnB,MAAOjkB,GAAO,KACdilB,KAAMjlB,GAAO,KACb4kB,KAAM5kB,GAAO,MACXolB,EACAC,EAAqBF,EAAQhB,UAC7BA,OAAmC,IAAvBkB,EAAgC,CAC9CpB,MAAOpkB,GAAKL,KACZylB,KAAMplB,GAAKJ,KACXmlB,KAAM/kB,GAAKH,MACT2lB,EACAC,EAAiBH,EAAQ97F,MACzBA,OAA2B,IAAnBi8F,EAA4B,CACtCrB,MAAO9mC,GAAI,KACX8nC,KAAM9nC,GAAI,KACVynC,KAAMznC,GAAI,MACRmoC,EACAC,EAAmBJ,EAAQ53F,QAC3BA,OAA+B,IAArBg4F,EAA8B,CAC1CtB,MAAOzjB,GAAO,KACdykB,KAAMzkB,GAAO,KACbokB,KAAMpkB,GAAO,MACX+kB,EACAC,EAAgBL,EAAQM,KACxBA,OAAyB,IAAlBD,EAA2B,CACpCvB,MAAO5mC,GAAK,KACZ4nC,KAAM5nC,GAAK,KACXunC,KAAMvnC,GAAK,MACTmoC,EACAE,EAAmBP,EAAQQ,QAC3BA,OAA+B,IAArBD,EAA8B,CAC1CzB,MAAO7mC,GAAM,KACb6nC,KAAM7nC,GAAM,KACZwnC,KAAMxnC,GAAM,MACVsoC,EACAE,EAAgBT,EAAQzvF,KACxBA,OAAyB,IAAlBkwF,EAA2B,QAAUA,EAC5CC,EAAwBV,EAAQW,kBAChCA,OAA8C,IAA1BD,EAAmC,EAAIA,EAC3DE,EAAuBZ,EAAQH,YAC/BA,OAAuC,IAAzBe,EAAkC,GAAMA,EACtDx0C,EAAQk6B,EAAyB0Z,EAAS,CAAC,UAAW,YAAa,QAAS,UAAW,OAAQ,UAAW,OAAQ,oBAAqB,gBAK3I,SAASa,EAAgB/yC,GAWvB,ODwBG,SAA0BgzC,EAAYhzC,GAC3C,IAAIizC,EAAOtC,GAAaqC,GACpBE,EAAOvC,GAAa3wC,GACxB,OAAQxzD,KAAKiE,IAAIwiG,EAAMC,GAAQ,MAAS1mG,KAAKgE,IAAIyiG,EAAMC,GAAQ,KCrC1CC,CAAiBnzC,EAAY2xC,GAAKl8D,KAAKw7D,UAAY4B,EAAoBlB,GAAKl8D,KAAKw7D,QAAUD,GAAMv7D,KAAKw7D,QAa3H,IAAImC,EAAe,SAAsBn+D,GACvC,IAAIo+D,EAAYrzG,UAAUC,OAAS,QAAsBuE,IAAjBxE,UAAU,GAAmBA,UAAU,GAAK,IAChFszG,EAAatzG,UAAUC,OAAS,QAAsBuE,IAAjBxE,UAAU,GAAmBA,UAAU,GAAK,IACjFuzG,EAAYvzG,UAAUC,OAAS,QAAsBuE,IAAjBxE,UAAU,GAAmBA,UAAU,GAAK,IAOpF,KANAi1C,EAAQt1C,YAAS,GAAIs1C,IAEV+8D,MAAQ/8D,EAAMo+D,KACvBp+D,EAAM+8D,KAAO/8D,EAAMo+D,KAGhBp+D,EAAM+8D,KACT,MAAM,IAAIhsG,MAAM,CAAC,qEAAsE,0DAA0DmB,OAAOksG,EAAW,gBAAgB5rG,KAAK,OAG1L,GAA0B,kBAAfwtC,EAAM+8D,KACf,MAAM,IAAIhsG,MAAM,CAAC,qEAAsE,yCAAyCmB,OAAOqjB,KAAKC,UAAUwqB,EAAM+8D,MAAO,2BAA4B,GAAI,yDAA0D,GAAI,uDAAqD,GAAI,6CAA8C,oBAAqB,QAAS,GAAI,6CAA8C,mCAAoC,SAASvqG,KAAK,OAU5e,OAPAmqG,GAAe38D,EAAO,QAASq+D,EAAYvB,GAC3CH,GAAe38D,EAAO,OAAQs+D,EAAWxB,GAEpC98D,EAAMu+D,eACTv+D,EAAMu+D,aAAeT,EAAgB99D,EAAM+8D,OAGtC/8D,GAGLw+D,EAAQ,CACV9B,KAAMA,GACNX,MAAOA,IAwCT,OA/BoBlF,GAAUnsG,YAAS,CAErCgwG,OAAQA,GAERltF,KAAMA,EAENwuF,QAASmC,EAAanC,GAEtBC,UAAWkC,EAAalC,EAAW,OAAQ,OAAQ,QAEnD96F,MAAOg9F,EAAah9F,GAEpBkE,QAAS84F,EAAa94F,GAEtBk4F,KAAMY,EAAaZ,GAEnBE,QAASU,EAAaV,GAEtBhlB,KAAMA,GAGNmlB,kBAAmBA,EAEnBE,gBAAiBA,EAEjBK,aAAcA,EAIdrB,YAAaA,GACZ0B,EAAMhxF,IAAQ67C,GC3NnB,SAASvxC,GAAMjpB,GACb,OAAO0I,KAAKugB,MAAc,IAARjpB,GAAe,IAGnC,IAAI4vG,GAAc,CAChBC,cAAe,aAQF,SAASC,GAAiB1B,EAAS2B,GAChD,IAAIxnG,EAA6B,oBAAfwnG,EAA4BA,EAAW3B,GAAW2B,EAChEC,EAAkBznG,EAAK0nG,WACvBA,OAAiC,IAApBD,EATK,6CAS4CA,EAC9DE,EAAgB3nG,EAAKk1D,SACrBA,OAA6B,IAAlByyC,EAA2B,GAAKA,EAC3CC,EAAuB5nG,EAAK6nG,gBAC5BA,OAA2C,IAAzBD,EAAkC,IAAMA,EAC1DE,EAAwB9nG,EAAK+nG,kBAC7BA,OAA8C,IAA1BD,EAAmC,IAAMA,EAC7DE,EAAwBhoG,EAAKioG,iBAC7BA,OAA6C,IAA1BD,EAAmC,IAAMA,EAC5DE,EAAsBloG,EAAKmoG,eAC3BA,OAAyC,IAAxBD,EAAiC,IAAMA,EACxDE,EAAoBpoG,EAAKqoG,aACzBA,OAAqC,IAAtBD,EAA+B,GAAKA,EACnDE,EAActoG,EAAKsoG,YACnBC,EAAWvoG,EAAKwoG,QAChBv2C,EAAQk6B,EAAyBnsF,EAAM,CAAC,aAAc,WAAY,kBAAmB,oBAAqB,mBAAoB,iBAAkB,eAAgB,cAAe,YAYnL,IAAIyoG,EAAOvzC,EAAW,GAElBszC,EAAUD,GAAY,SAAU/mD,GAClC,MAAO,GAAG1mD,OAAO0mD,EAAO6mD,EAAeI,EAAM,QAG3CC,EAAe,SAAsB/nE,EAAY6gB,EAAM3gB,EAAY8nE,EAAeC,GACpF,OAAOt1G,YAAS,CACdo0G,WAAYA,EACZ/mE,WAAYA,EACZu0B,SAAUszC,EAAQhnD,GAElB3gB,WAAYA,GAhDM,+CAiDjB6mE,EAAmC,CACpCiB,cAAe,GAAG7tG,OAAO4lB,GAAMioF,EAAgBnnD,GAAO,OACpD,GAAI,GAAIonD,EAAQ,GAAIN,IAGtBO,EAAW,CACbC,GAAIJ,EAAab,EAAiB,GAAI,OAAQ,KAC9CkB,GAAIL,EAAab,EAAiB,GAAI,KAAM,IAC5CmB,GAAIN,EAAaX,EAAmB,GAAI,MAAO,GAC/CkB,GAAIP,EAAaX,EAAmB,GAAI,MAAO,KAC/CmB,GAAIR,EAAaX,EAAmB,GAAI,MAAO,GAC/CoB,GAAIT,EAAaT,EAAkB,GAAI,IAAK,KAC5CmB,UAAWV,EAAaX,EAAmB,GAAI,KAAM,KACrDsB,UAAWX,EAAaT,EAAkB,GAAI,KAAM,IACpDqB,MAAOZ,EAAaX,EAAmB,GAAI,IAAK,KAChDwB,MAAOb,EAAaX,EAAmB,GAAI,KAAM,KACjD97D,OAAQy8D,EAAaT,EAAkB,GAAI,KAAM,GAAKZ,IACtDmC,QAASd,EAAaX,EAAmB,GAAI,KAAM,IACnD0B,SAAUf,EAAaX,EAAmB,GAAI,KAAM,EAAGV,KAEzD,OAAO5H,GAAUnsG,YAAS,CACxB+0G,aAAcA,EACdG,QAASA,EACT9nF,MAAOA,GAEPgnF,WAAYA,EACZxyC,SAAUA,EACV2yC,gBAAiBA,EACjBE,kBAAmBA,EACnBE,iBAAkBA,EAClBE,eAAgBA,GACfU,GAAW52C,EAAO,CACnB2I,OAAO,ICxFX,SAAS8uC,KACP,MAAO,CAAC,GAAG5uG,OAAOnH,UAAUC,QAAU,OAAIuE,EAAYxE,UAAU,GAAI,OAAOmH,OAAOnH,UAAUC,QAAU,OAAIuE,EAAYxE,UAAU,GAAI,OAAOmH,OAAOnH,UAAUC,QAAU,OAAIuE,EAAYxE,UAAU,GAAI,OAAOmH,OAAOnH,UAAUC,QAAU,OAAIuE,EAAYxE,UAAU,GAAI,kBAAkBmH,OAL5P,GAK0R,KAAM,GAAGA,OAAOnH,UAAUC,QAAU,OAAIuE,EAAYxE,UAAU,GAAI,OAAOmH,OAAOnH,UAAUC,QAAU,OAAIuE,EAAYxE,UAAU,GAAI,OAAOmH,OAAOnH,UAAUC,QAAU,OAAIuE,EAAYxE,UAAU,GAAI,OAAOmH,OAAOnH,UAAUC,QAAU,OAAIuE,EAAYxE,UAAU,GAAI,kBAAkBmH,OAJ3iB,IAI4kB,KAAM,GAAGA,OAAOnH,UAAUC,QAAU,OAAIuE,EAAYxE,UAAU,GAAI,OAAOmH,OAAOnH,UAAUC,QAAU,OAAIuE,EAAYxE,UAAU,GAAI,OAAOmH,OAAOnH,UAAUC,QAAU,QAAKuE,EAAYxE,UAAU,IAAK,OAAOmH,OAAOnH,UAAUC,QAAU,QAAKuE,EAAYxE,UAAU,IAAK,kBAAkBmH,OAHl2B,IAGq4B,MAAMM,KAAK,KAIj7B,IACeuuG,GADD,CAAC,OAAQD,GAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAIA,GAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAIA,GAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAIA,GAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,GAAI,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,GAAI,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,GAAa,EAAG,GAAI,IAAK,EAAG,EAAG,GAAI,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","file":"static/js/2.2f33420b.chunk.js","sourcesContent":["'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createBrowserHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses HTML5 history.\n */\nclass BrowserRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n BrowserRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n forceRefresh: PropTypes.bool,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number\n };\n\n BrowserRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\"\n );\n };\n}\n\nexport default BrowserRouter;\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createHashHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses window.location.hash.\n */\nclass HashRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n HashRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n getUserConfirmation: PropTypes.func,\n hashType: PropTypes.oneOf([\"hashbang\", \"noslash\", \"slash\"])\n };\n\n HashRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { HashRouter as Router }`.\"\n );\n };\n}\n\nexport default HashRouter;\n","import { createLocation } from \"history\";\n\nexport const resolveToLocation = (to, currentLocation) =>\n typeof to === \"function\" ? to(currentLocation) : to;\n\nexport const normalizeToLocation = (to, currentLocation) => {\n return typeof to === \"string\"\n ? createLocation(to, null, null, currentLocation)\n : to;\n};\n","import React from \"react\";\nimport { __RouterContext as RouterContext } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport { resolveToLocation, normalizeToLocation } from \"./utils/locationUtils\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nconst LinkAnchor = forwardRef(\n (\n {\n innerRef, // TODO: deprecate\n navigate,\n onClick,\n ...rest\n },\n forwardedRef\n ) => {\n const { target } = rest;\n\n let props = {\n ...rest,\n onClick: event => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but left clicks\n (!target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n\n return ;\n }\n);\n\nif (__DEV__) {\n LinkAnchor.displayName = \"LinkAnchor\";\n}\n\n/**\n * The public API for rendering a history-aware .\n */\nconst Link = forwardRef(\n (\n {\n component = LinkAnchor,\n replace,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history } = context;\n\n const location = normalizeToLocation(\n resolveToLocation(to, context.location),\n context.location\n );\n\n const href = location ? history.createHref(location) : \"\";\n const props = {\n ...rest,\n href,\n navigate() {\n const location = resolveToLocation(to, context.location);\n const method = replace ? history.replace : history.push;\n\n method(location);\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return React.createElement(component, props);\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n const toType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n PropTypes.func\n ]);\n const refType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.any })\n ]);\n\n Link.displayName = \"Link\";\n\n Link.propTypes = {\n innerRef: refType,\n onClick: PropTypes.func,\n replace: PropTypes.bool,\n target: PropTypes.string,\n to: toType.isRequired\n };\n}\n\nexport default Link;\n","import React from \"react\";\nimport { __RouterContext as RouterContext, matchPath } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport Link from \"./Link\";\nimport { resolveToLocation, normalizeToLocation } from \"./utils/locationUtils\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction joinClassnames(...classnames) {\n return classnames.filter(i => i).join(\" \");\n}\n\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\nconst NavLink = forwardRef(\n (\n {\n \"aria-current\": ariaCurrent = \"page\",\n activeClassName = \"active\",\n activeStyle,\n className: classNameProp,\n exact,\n isActive: isActiveProp,\n location: locationProp,\n strict,\n style: styleProp,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const currentLocation = locationProp || context.location;\n const toLocation = normalizeToLocation(\n resolveToLocation(to, currentLocation),\n currentLocation\n );\n const { pathname: path } = toLocation;\n // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n const escapedPath =\n path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n\n const match = escapedPath\n ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact,\n strict\n })\n : null;\n const isActive = !!(isActiveProp\n ? isActiveProp(match, currentLocation)\n : match);\n\n const className = isActive\n ? joinClassnames(classNameProp, activeClassName)\n : classNameProp;\n const style = isActive ? { ...styleProp, ...activeStyle } : styleProp;\n\n const props = {\n \"aria-current\": (isActive && ariaCurrent) || null,\n className,\n style,\n to: toLocation,\n ...rest\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return ;\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n\n const ariaCurrentType = PropTypes.oneOf([\n \"page\",\n \"step\",\n \"location\",\n \"date\",\n \"time\",\n \"true\"\n ]);\n\n NavLink.propTypes = {\n ...Link.propTypes,\n \"aria-current\": ariaCurrentType,\n activeClassName: PropTypes.string,\n activeStyle: PropTypes.object,\n className: PropTypes.string,\n exact: PropTypes.bool,\n isActive: PropTypes.func,\n location: PropTypes.object,\n strict: PropTypes.bool,\n style: PropTypes.object\n };\n}\n\nexport default NavLink;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Helpers = exports.ScrollElement = exports.ScrollLink = exports.animateScroll = exports.scrollSpy = exports.Events = exports.scroller = exports.Element = exports.Button = exports.Link = undefined;\n\nvar _Link = require('./components/Link.js');\n\nvar _Link2 = _interopRequireDefault(_Link);\n\nvar _Button = require('./components/Button.js');\n\nvar _Button2 = _interopRequireDefault(_Button);\n\nvar _Element = require('./components/Element.js');\n\nvar _Element2 = _interopRequireDefault(_Element);\n\nvar _scroller = require('./mixins/scroller.js');\n\nvar _scroller2 = _interopRequireDefault(_scroller);\n\nvar _scrollEvents = require('./mixins/scroll-events.js');\n\nvar _scrollEvents2 = _interopRequireDefault(_scrollEvents);\n\nvar _scrollSpy = require('./mixins/scroll-spy.js');\n\nvar _scrollSpy2 = _interopRequireDefault(_scrollSpy);\n\nvar _animateScroll = require('./mixins/animate-scroll.js');\n\nvar _animateScroll2 = _interopRequireDefault(_animateScroll);\n\nvar _scrollLink = require('./mixins/scroll-link.js');\n\nvar _scrollLink2 = _interopRequireDefault(_scrollLink);\n\nvar _scrollElement = require('./mixins/scroll-element.js');\n\nvar _scrollElement2 = _interopRequireDefault(_scrollElement);\n\nvar _Helpers = require('./mixins/Helpers.js');\n\nvar _Helpers2 = _interopRequireDefault(_Helpers);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.Link = _Link2.default;\nexports.Button = _Button2.default;\nexports.Element = _Element2.default;\nexports.scroller = _scroller2.default;\nexports.Events = _scrollEvents2.default;\nexports.scrollSpy = _scrollSpy2.default;\nexports.animateScroll = _animateScroll2.default;\nexports.ScrollLink = _scrollLink2.default;\nexports.ScrollElement = _scrollElement2.default;\nexports.Helpers = _Helpers2.default;\nexports.default = { Link: _Link2.default, Button: _Button2.default, Element: _Element2.default, scroller: _scroller2.default, Events: _scrollEvents2.default, scrollSpy: _scrollSpy2.default, animateScroll: _animateScroll2.default, ScrollLink: _scrollLink2.default, ScrollElement: _scrollElement2.default, Helpers: _Helpers2.default };","export default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n throw new Error(prefix + \": \" + (message || ''));\n}\n\nexport default invariant;\n","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to, from) {\n if (from === undefined) from = '';\n\n var toParts = (to && to.split('/')) || [];\n var fromParts = (from && from.split('/')) || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');\n\n if (\n mustEndAbs &&\n fromParts[0] !== '' &&\n (!fromParts[0] || !isAbsolute(fromParts[0]))\n )\n fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;\n","function valueOf(obj) {\n return obj.valueOf ? obj.valueOf() : Object.prototype.valueOf.call(obj);\n}\n\nfunction valueEqual(a, b) {\n // Test for strict equality first.\n if (a === b) return true;\n\n // Otherwise, if either of them == null they are not equal.\n if (a == null || b == null) return false;\n\n if (Array.isArray(a)) {\n return (\n Array.isArray(b) &&\n a.length === b.length &&\n a.every(function(item, index) {\n return valueEqual(item, b[index]);\n })\n );\n }\n\n if (typeof a === 'object' || typeof b === 'object') {\n var aValue = valueOf(a);\n var bValue = valueOf(b);\n\n if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue);\n\n return Object.keys(Object.assign({}, a, b)).every(function(key) {\n return valueEqual(a[key], b[key]);\n });\n }\n\n return false;\n}\n\nexport default valueEqual;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction stripHash(url) {\n var hashIndex = url.indexOf('#');\n return hashIndex === -1 ? url : url.slice(0, hashIndex);\n}\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n window.location.replace(stripHash(window.location.href) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function locationsAreEqual$$1(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;\n }\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n var baseTag = document.querySelector('base');\n var href = '';\n\n if (baseTag && baseTag.getAttribute('href')) {\n href = stripHash(window.location.href);\n }\n\n return href + '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nvar _get = function get(_x3, _x4, _x5) { var _again = true; _function: while (_again) { var object = _x3, property = _x4, receiver = _x5; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x3 = parent; _x4 = property; _x5 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _baseStyles = require('./baseStyles');\n\nvar _baseStyles2 = _interopRequireDefault(_baseStyles);\n\nvar _BurgerIcon = require('./BurgerIcon');\n\nvar _BurgerIcon2 = _interopRequireDefault(_BurgerIcon);\n\nvar _CrossIcon = require('./CrossIcon');\n\nvar _CrossIcon2 = _interopRequireDefault(_CrossIcon);\n\nexports['default'] = function (styles) {\n var Menu = (function (_Component) {\n _inherits(Menu, _Component);\n\n function Menu(props) {\n _classCallCheck(this, Menu);\n\n _get(Object.getPrototypeOf(Menu.prototype), 'constructor', this).call(this, props);\n this.state = {\n isOpen: false\n };\n\n if (!styles) {\n throw new Error('No styles supplied');\n }\n }\n\n _createClass(Menu, [{\n key: 'toggleMenu',\n value: function toggleMenu() {\n var _this = this;\n\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n var isOpen = options.isOpen;\n var noStateChange = options.noStateChange;\n\n var newState = {\n isOpen: typeof isOpen !== 'undefined' ? isOpen : !this.state.isOpen\n };\n\n this.applyWrapperStyles();\n\n this.setState(newState, function () {\n !noStateChange && _this.props.onStateChange(newState);\n\n if (!_this.props.disableAutoFocus) {\n // For accessibility reasons, ensures that when we toggle open,\n // we focus the first menu item if one exists.\n if (newState.isOpen) {\n var firstItem = document.querySelector('.bm-item');\n if (firstItem) {\n firstItem.focus();\n }\n } else {\n if (document.activeElement) {\n document.activeElement.blur();\n } else {\n document.body.blur(); // Needed for IE\n }\n }\n }\n\n // Timeout ensures wrappers are cleared after animation finishes.\n _this.timeoutId && clearTimeout(_this.timeoutId);\n _this.timeoutId = setTimeout(function () {\n _this.timeoutId = null;\n if (!newState.isOpen) {\n _this.applyWrapperStyles(false);\n }\n }, 500);\n });\n }\n\n // Applies component-specific styles to external wrapper elements.\n }, {\n key: 'applyWrapperStyles',\n value: function applyWrapperStyles() {\n var set = arguments.length <= 0 || arguments[0] === undefined ? true : arguments[0];\n\n var applyClass = function applyClass(el, className) {\n return el.classList[set ? 'add' : 'remove'](className);\n };\n\n if (this.props.htmlClassName) {\n applyClass(document.querySelector('html'), this.props.htmlClassName);\n }\n if (this.props.bodyClassName) {\n applyClass(document.querySelector('body'), this.props.bodyClassName);\n }\n\n if (styles.pageWrap && this.props.pageWrapId) {\n this.handleExternalWrapper(this.props.pageWrapId, styles.pageWrap, set);\n }\n\n if (styles.outerContainer && this.props.outerContainerId) {\n this.handleExternalWrapper(this.props.outerContainerId, styles.outerContainer, set);\n }\n }\n\n // Sets or unsets styles on DOM elements outside the menu component.\n // This is necessary for correct page interaction with some of the menus.\n // Throws and returns if the required external elements don't exist,\n // which means any external page animations won't be applied.\n }, {\n key: 'handleExternalWrapper',\n value: function handleExternalWrapper(id, wrapperStyles, set) {\n var wrapper = document.getElementById(id);\n\n if (!wrapper) {\n console.error(\"Element with ID '\" + id + \"' not found\");\n return;\n }\n\n var builtStyles = this.getStyle(wrapperStyles);\n\n for (var prop in builtStyles) {\n if (builtStyles.hasOwnProperty(prop)) {\n wrapper.style[prop] = set ? builtStyles[prop] : '';\n }\n }\n\n // Prevent any horizontal scroll.\n // Only set overflow-x as an inline style if htmlClassName or\n // bodyClassName is not passed in. Otherwise, it is up to the caller to\n // decide if they want to set the overflow style in CSS using the custom\n // class names.\n var applyOverflow = function applyOverflow(el) {\n return el.style['overflow-x'] = set ? 'hidden' : '';\n };\n if (!this.props.htmlClassName) {\n applyOverflow(document.querySelector('html'));\n }\n if (!this.props.bodyClassName) {\n applyOverflow(document.querySelector('body'));\n }\n }\n\n // Builds styles incrementally for a given element.\n }, {\n key: 'getStyles',\n value: function getStyles(el, index, inline) {\n var propName = 'bm' + el.replace(el.charAt(0), el.charAt(0).toUpperCase());\n\n // Set base styles.\n var output = _baseStyles2['default'][el] ? this.getStyle(_baseStyles2['default'][el]) : {};\n\n // Add animation-specific styles.\n if (styles[el]) {\n output = _extends({}, output, this.getStyle(styles[el], index + 1));\n }\n\n // Add custom styles.\n if (this.props.styles[propName]) {\n output = _extends({}, output, this.props.styles[propName]);\n }\n\n // Add element inline styles.\n if (inline) {\n output = _extends({}, output, inline);\n }\n\n // Remove transition if required\n // (useful if rendering open initially).\n if (this.props.noTransition) {\n delete output.transition;\n }\n\n return output;\n }\n }, {\n key: 'getStyle',\n value: function getStyle(style, index) {\n var width = this.props.width;\n\n var formattedWidth = typeof width !== 'string' ? width + 'px' : width;\n return style(this.state.isOpen, formattedWidth, this.props.right, index);\n }\n }, {\n key: 'listenForClose',\n value: function listenForClose(e) {\n e = e || window.event;\n\n // Close on ESC, unless disabled\n if (!this.props.disableCloseOnEsc && this.state.isOpen && (e.key === 'Escape' || e.keyCode === 27)) {\n this.toggleMenu();\n }\n }\n }, {\n key: 'shouldDisableOverlayClick',\n value: function shouldDisableOverlayClick() {\n if (typeof this.props.disableOverlayClick === 'function') {\n return this.props.disableOverlayClick();\n } else {\n return this.props.disableOverlayClick;\n }\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n // Bind ESC key handler (unless custom function supplied).\n if (this.props.customOnKeyDown) {\n window.onkeydown = this.props.customOnKeyDown;\n } else {\n window.onkeydown = this.listenForClose.bind(this);\n }\n\n // Allow initial open state to be set by props.\n if (this.props.isOpen) {\n this.toggleMenu({ isOpen: true, noStateChange: true });\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n window.onkeydown = null;\n\n this.applyWrapperStyles(false);\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps) {\n var _this2 = this;\n\n var wasToggled = typeof this.props.isOpen !== 'undefined' && this.props.isOpen !== this.state.isOpen && this.props.isOpen !== prevProps.isOpen;\n if (wasToggled) {\n this.toggleMenu();\n // Toggling changes SVG animation requirements, so we defer these until the next componentDidUpdate\n return;\n }\n\n if (styles.svg) {\n (function () {\n var morphShape = _reactDom2['default'].findDOMNode(_this2, 'bm-morph-shape');\n var path = styles.svg.lib(morphShape).select('path');\n\n if (_this2.state.isOpen) {\n // Animate SVG path.\n styles.svg.animate(path);\n } else {\n // Reset path (timeout ensures animation happens off screen).\n setTimeout(function () {\n path.attr('d', styles.svg.pathInitial);\n }, 300);\n }\n })();\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _this3 = this;\n\n return _react2['default'].createElement(\n 'div',\n null,\n !this.props.noOverlay && _react2['default'].createElement('div', {\n className: ('bm-overlay ' + this.props.overlayClassName).trim(),\n onClick: function () {\n return !_this3.shouldDisableOverlayClick() && _this3.toggleMenu();\n },\n style: this.getStyles('overlay')\n }),\n _react2['default'].createElement(\n 'div',\n {\n id: this.props.id,\n className: ('bm-menu-wrap ' + this.props.className).trim(),\n style: this.getStyles('menuWrap')\n },\n styles.svg && _react2['default'].createElement(\n 'div',\n {\n className: ('bm-morph-shape ' + this.props.morphShapeClassName).trim(),\n style: this.getStyles('morphShape')\n },\n _react2['default'].createElement(\n 'svg',\n {\n width: '100%',\n height: '100%',\n viewBox: '0 0 100 800',\n preserveAspectRatio: 'none'\n },\n _react2['default'].createElement('path', { d: styles.svg.pathInitial })\n )\n ),\n _react2['default'].createElement(\n 'div',\n {\n className: ('bm-menu ' + this.props.menuClassName).trim(),\n style: this.getStyles('menu')\n },\n _react2['default'].createElement(\n 'nav',\n {\n className: ('bm-item-list ' + this.props.itemListClassName).trim(),\n style: this.getStyles('itemList')\n },\n _react2['default'].Children.map(this.props.children, function (item, index) {\n if (item) {\n var classList = ['bm-item', _this3.props.itemClassName, item.props.className].filter(function (className) {\n return !!className;\n }).join(' ');\n var extraProps = {\n key: index,\n className: classList,\n style: _this3.getStyles('item', index, item.props.style),\n tabIndex: _this3.state.isOpen ? 0 : -1\n };\n return _react2['default'].cloneElement(item, extraProps);\n }\n })\n )\n ),\n this.props.customCrossIcon !== false && _react2['default'].createElement(\n 'div',\n { style: this.getStyles('closeButton') },\n _react2['default'].createElement(_CrossIcon2['default'], {\n onClick: function () {\n return _this3.toggleMenu();\n },\n styles: this.props.styles,\n customIcon: this.props.customCrossIcon,\n className: this.props.crossButtonClassName,\n crossClassName: this.props.crossClassName,\n tabIndex: this.state.isOpen ? 0 : -1\n })\n )\n ),\n this.props.customBurgerIcon !== false && _react2['default'].createElement(\n 'div',\n { style: this.getStyles('burgerIcon') },\n _react2['default'].createElement(_BurgerIcon2['default'], {\n onClick: function () {\n return _this3.toggleMenu();\n },\n styles: this.props.styles,\n customIcon: this.props.customBurgerIcon,\n className: this.props.burgerButtonClassName,\n barClassName: this.props.burgerBarClassName,\n onIconStateChange: this.props.onIconStateChange\n })\n )\n );\n }\n }]);\n\n return Menu;\n })(_react.Component);\n\n Menu.propTypes = {\n bodyClassName: _propTypes2['default'].string,\n burgerBarClassName: _propTypes2['default'].string,\n burgerButtonClassName: _propTypes2['default'].string,\n className: _propTypes2['default'].string,\n crossButtonClassName: _propTypes2['default'].string,\n crossClassName: _propTypes2['default'].string,\n customBurgerIcon: _propTypes2['default'].oneOfType([_propTypes2['default'].element, _propTypes2['default'].oneOf([false])]),\n customCrossIcon: _propTypes2['default'].oneOfType([_propTypes2['default'].element, _propTypes2['default'].oneOf([false])]),\n customOnKeyDown: _propTypes2['default'].func,\n disableAutoFocus: _propTypes2['default'].bool,\n disableCloseOnEsc: _propTypes2['default'].bool,\n disableOverlayClick: _propTypes2['default'].oneOfType([_propTypes2['default'].bool, _propTypes2['default'].func]),\n htmlClassName: _propTypes2['default'].string,\n id: _propTypes2['default'].string,\n isOpen: _propTypes2['default'].bool,\n itemClassName: _propTypes2['default'].string,\n itemListClassName: _propTypes2['default'].string,\n menuClassName: _propTypes2['default'].string,\n morphShapeClassName: _propTypes2['default'].string,\n noOverlay: _propTypes2['default'].bool,\n noTransition: _propTypes2['default'].bool,\n onStateChange: _propTypes2['default'].func,\n outerContainerId: styles && styles.outerContainer ? _propTypes2['default'].string.isRequired : _propTypes2['default'].string,\n overlayClassName: _propTypes2['default'].string,\n pageWrapId: styles && styles.pageWrap ? _propTypes2['default'].string.isRequired : _propTypes2['default'].string,\n right: _propTypes2['default'].bool,\n styles: _propTypes2['default'].object,\n width: _propTypes2['default'].oneOfType([_propTypes2['default'].number, _propTypes2['default'].string]),\n onIconHoverChange: _propTypes2['default'].func\n };\n\n Menu.defaultProps = {\n bodyClassName: '',\n burgerBarClassName: '',\n burgerButtonClassName: '',\n className: '',\n crossButtonClassName: '',\n crossClassName: '',\n disableAutoFocus: false,\n disableCloseOnEsc: false,\n htmlClassName: '',\n id: '',\n itemClassName: '',\n itemListClassName: '',\n menuClassName: '',\n morphShapeClassName: '',\n noOverlay: false,\n noTransition: false,\n onStateChange: function onStateChange() {},\n outerContainerId: '',\n overlayClassName: '',\n pageWrapId: '',\n styles: {},\n width: 300,\n onIconHoverChange: function onIconHoverChange() {}\n };\n\n return Menu;\n};\n\nmodule.exports = exports['default'];","var isProduction = process.env.NODE_ENV === 'production';\nfunction warning(condition, message) {\n if (!isProduction) {\n if (condition) {\n return;\n }\n\n var text = \"Warning: \" + message;\n\n if (typeof console !== 'undefined') {\n console.warn(text);\n }\n\n try {\n throw Error(text);\n } catch (x) {}\n }\n}\n\nexport default warning;\n","import React, { Component } from 'react';\nimport _inheritsLoose from '@babel/runtime/helpers/inheritsLoose';\nimport PropTypes from 'prop-types';\nimport gud from 'gud';\nimport warning from 'tiny-warning';\n\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\n\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n var handlers = [];\n return {\n on: function on(handler) {\n handlers.push(handler);\n },\n off: function off(handler) {\n handlers = handlers.filter(function (h) {\n return h !== handler;\n });\n },\n get: function get() {\n return value;\n },\n set: function set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(function (handler) {\n return handler(value, changedBits);\n });\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nfunction createReactContext(defaultValue, calculateChangedBits) {\n var _Provider$childContex, _Consumer$contextType;\n\n var contextProp = '__create-react-context-' + gud() + '__';\n\n var Provider =\n /*#__PURE__*/\n function (_Component) {\n _inheritsLoose(Provider, _Component);\n\n function Provider() {\n var _this;\n\n _this = _Component.apply(this, arguments) || this;\n _this.emitter = createEventEmitter(_this.props.value);\n return _this;\n }\n\n var _proto = Provider.prototype;\n\n _proto.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[contextProp] = this.emitter, _ref;\n };\n\n _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n var oldValue = this.props.value;\n var newValue = nextProps.value;\n var changedBits;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0;\n } else {\n changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n\n if (process.env.NODE_ENV !== 'production') {\n warning((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: ' + changedBits);\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n };\n\n _proto.render = function render() {\n return this.props.children;\n };\n\n return Provider;\n }(Component);\n\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = PropTypes.object.isRequired, _Provider$childContex);\n\n var Consumer =\n /*#__PURE__*/\n function (_Component2) {\n _inheritsLoose(Consumer, _Component2);\n\n function Consumer() {\n var _this2;\n\n _this2 = _Component2.apply(this, arguments) || this;\n _this2.state = {\n value: _this2.getValue()\n };\n\n _this2.onUpdate = function (newValue, changedBits) {\n var observedBits = _this2.observedBits | 0;\n\n if ((observedBits & changedBits) !== 0) {\n _this2.setState({\n value: _this2.getValue()\n });\n }\n };\n\n return _this2;\n }\n\n var _proto2 = Consumer.prototype;\n\n _proto2.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var observedBits = nextProps.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentDidMount = function componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n\n var observedBits = this.props.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentWillUnmount = function componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n };\n\n _proto2.getValue = function getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n };\n\n _proto2.render = function render() {\n return onlyChild(this.props.children)(this.state.value);\n };\n\n return Consumer;\n }(Component);\n\n Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = PropTypes.object, _Consumer$contextType);\n return {\n Provider: Provider,\n Consumer: Consumer\n };\n}\n\nvar index = React.createContext || createReactContext;\n\nexport default index;\n","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"mini-create-react-context\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nconst context = /*#__PURE__*/ createNamedContext(\"Router\");\nexport default context;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext\";\n\n/**\n * The public API for putting history on context.\n */\nclass Router extends React.Component {\n static computeRootMatch(pathname) {\n return { path: \"/\", url: \"/\", params: {}, isExact: pathname === \"/\" };\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n location: props.history.location\n };\n\n // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the is mounted.\n this._isMounted = false;\n this._pendingLocation = null;\n\n if (!props.staticContext) {\n this.unlisten = props.history.listen(location => {\n if (this._isMounted) {\n this.setState({ location });\n } else {\n this._pendingLocation = location;\n }\n });\n }\n }\n\n componentDidMount() {\n this._isMounted = true;\n\n if (this._pendingLocation) {\n this.setState({ location: this._pendingLocation });\n }\n }\n\n componentWillUnmount() {\n if (this.unlisten) this.unlisten();\n }\n\n render() {\n return (\n \n );\n }\n}\n\nif (__DEV__) {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function(prevProps) {\n warning(\n prevProps.history === this.props.history,\n \"You cannot change \"\n );\n };\n}\n\nexport default Router;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createMemoryHistory as createHistory } from \"history\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router\";\n\n/**\n * The public API for a that stores location in memory.\n */\nclass MemoryRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\"\n );\n };\n}\n\nexport default MemoryRouter;\n","import React from \"react\";\n\nclass Lifecycle extends React.Component {\n componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n }\n\n componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n }\n\n render() {\n return null;\n }\n}\n\nexport default Lifecycle;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path, options) {\n const cacheKey = `${options.end}${options.strict}${options.sensitive}`;\n const pathCache = cache[cacheKey] || (cache[cacheKey] = {});\n\n if (pathCache[path]) return pathCache[path];\n\n const keys = [];\n const regexp = pathToRegexp(path, keys, options);\n const result = { regexp, keys };\n\n if (cacheCount < cacheLimit) {\n pathCache[path] = result;\n cacheCount++;\n }\n\n return result;\n}\n\n/**\n * Public API for matching a URL pathname to a path.\n */\nfunction matchPath(pathname, options = {}) {\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = { path: options };\n }\n\n const { path, exact = false, strict = false, sensitive = false } = options;\n\n const paths = [].concat(path);\n\n return paths.reduce((matched, path) => {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n const { regexp, keys } = compilePath(path, {\n end: exact,\n strict,\n sensitive\n });\n const match = regexp.exec(pathname);\n\n if (!match) return null;\n\n const [url, ...values] = match;\n const isExact = pathname === url;\n\n if (exact && !isExact) return null;\n\n return {\n path, // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url, // the matched portion of the URL\n isExact, // whether or not we matched exactly\n params: keys.reduce((memo, key, index) => {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nexport default matchPath;\n","import React from \"react\";\nimport { isValidElementType } from \"react-is\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext\";\nimport matchPath from \"./matchPath\";\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n const value = children(props);\n\n warning(\n value !== undefined,\n \"You returned `undefined` from the `children` function of \" +\n `, but you ` +\n \"should have returned a React element or `null`\"\n );\n\n return value || null;\n}\n\n/**\n * The public API for matching a single path and rendering.\n */\nclass Route extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n const match = this.props.computedMatch\n ? this.props.computedMatch // already computed the match for us\n : this.props.path\n ? matchPath(location.pathname, this.props)\n : context.match;\n\n const props = { ...context, location, match };\n\n let { children, component, render } = this.props;\n\n // Preact uses an empty array as children by\n // default, so use null if that's the case.\n if (Array.isArray(children) && children.length === 0) {\n children = null;\n }\n\n return (\n \n {props.match\n ? children\n ? typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : children\n : component\n ? React.createElement(component, props)\n : render\n ? render(props)\n : null\n : typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : null}\n \n );\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: (props, propName) => {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\n `Invalid prop 'component' supplied to 'Route': the prop is not a valid React component`\n );\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string)\n ]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function() {\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.component\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.render\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(this.props.component && this.props.render),\n \"You should not use and in the same route; will be ignored\"\n );\n };\n\n Route.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Route;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, createPath } from \"history\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router\";\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n\n return {\n ...location,\n pathname: addLeadingSlash(basename) + location.pathname\n };\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n\n const base = addLeadingSlash(basename);\n\n if (location.pathname.indexOf(base) !== 0) return location;\n\n return {\n ...location,\n pathname: location.pathname.substr(base.length)\n };\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return () => {\n invariant(false, \"You cannot %s with \", methodName);\n };\n}\n\nfunction noop() {}\n\n/**\n * The public top-level API for a \"static\" , so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\nclass StaticRouter extends React.Component {\n navigateTo(location, action) {\n const { basename = \"\", context = {} } = this.props;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n }\n\n handlePush = location => this.navigateTo(location, \"PUSH\");\n handleReplace = location => this.navigateTo(location, \"REPLACE\");\n handleListen = () => noop;\n handleBlock = () => noop;\n\n render() {\n const { basename = \"\", context = {}, location = \"/\", ...rest } = this.props;\n\n const history = {\n createHref: path => addLeadingSlash(basename + createURL(path)),\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n\n return ;\n }\n}\n\nif (__DEV__) {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { StaticRouter as Router }`.\"\n );\n };\n}\n\nexport default StaticRouter;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext\";\nimport matchPath from \"./matchPath\";\n\n/**\n * The public API for rendering the first that matches.\n */\nclass Switch extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n\n let element, match;\n\n // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two s that render the same\n // component at different URLs.\n React.Children.forEach(this.props.children, child => {\n if (match == null && React.isValidElement(child)) {\n element = child;\n\n const path = child.props.path || child.props.from;\n\n match = path\n ? matchPath(location.pathname, { ...child.props, path })\n : context.match;\n }\n });\n\n return match\n ? React.cloneElement(element, { location, computedMatch: match })\n : null;\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Switch;\n","import React from \"react\";\nimport invariant from \"tiny-invariant\";\n\nimport Context from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nconst useContext = React.useContext;\n\nexport function useHistory() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useHistory()\"\n );\n }\n\n return useContext(Context).history;\n}\n\nexport function useLocation() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useLocation()\"\n );\n }\n\n return useContext(Context).location;\n}\n\nexport function useParams() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useParams()\"\n );\n }\n\n const match = useContext(Context).match;\n return match ? match.params : {};\n}\n\nexport function useRouteMatch(path) {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useRouteMatch()\"\n );\n }\n\n return path\n ? matchPath(useLocation().pathname, path)\n : useContext(Context).match;\n}\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayWithHoles from \"./arrayWithHoles\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nimport nonIterableRest from \"./nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","import arrayLikeToArray from \"./arrayLikeToArray\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(n);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _utils = require('./utils');\n\nvar _utils2 = _interopRequireDefault(_utils);\n\nvar _animateScroll = require('./animate-scroll');\n\nvar _animateScroll2 = _interopRequireDefault(_animateScroll);\n\nvar _scrollEvents = require('./scroll-events');\n\nvar _scrollEvents2 = _interopRequireDefault(_scrollEvents);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar __mapped = {};\nvar __activeLink = void 0;\n\nexports.default = {\n\n unmount: function unmount() {\n __mapped = {};\n },\n\n register: function register(name, element) {\n __mapped[name] = element;\n },\n\n unregister: function unregister(name) {\n delete __mapped[name];\n },\n\n get: function get(name) {\n return __mapped[name] || document.getElementById(name) || document.getElementsByName(name)[0] || document.getElementsByClassName(name)[0];\n },\n\n setActiveLink: function setActiveLink(link) {\n return __activeLink = link;\n },\n\n getActiveLink: function getActiveLink() {\n return __activeLink;\n },\n\n scrollTo: function scrollTo(to, props) {\n\n var target = this.get(to);\n\n if (!target) {\n console.warn(\"target Element not found\");\n return;\n }\n\n props = _extends({}, props, { absolute: false });\n\n var containerId = props.containerId;\n var container = props.container;\n\n var containerElement = void 0;\n if (containerId) {\n containerElement = document.getElementById(containerId);\n } else if (container && container.nodeType) {\n containerElement = container;\n } else {\n containerElement = document;\n }\n\n props.absolute = true;\n\n var scrollOffset = _utils2.default.scrollOffset(containerElement, target) + (props.offset || 0);\n\n /*\r\n * if animate is not provided just scroll into the view\r\n */\n if (!props.smooth) {\n if (_scrollEvents2.default.registered['begin']) {\n _scrollEvents2.default.registered['begin'](to, target);\n }\n\n if (containerElement === document) {\n window.scrollTo(0, scrollOffset);\n } else {\n containerElement.scrollTop = scrollOffset;\n }\n\n if (_scrollEvents2.default.registered['end']) {\n _scrollEvents2.default.registered['end'](to, target);\n }\n\n return;\n }\n\n /*\r\n * Animate scrolling\r\n */\n\n _animateScroll2.default.animateTopScroll(scrollOffset, props, to, target);\n }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar pushHash = function pushHash(hash) {\n hash = hash ? hash.indexOf(\"#\") === 0 ? hash : \"#\" + hash : \"\";\n\n if (history.pushState) {\n var loc = window.location;\n history.pushState(null, null, hash ? loc.pathname + loc.search + hash : // remove hash\n loc.pathname + loc.search);\n } else {\n location.hash = hash;\n }\n};\n\nvar getHash = function getHash() {\n return window.location.hash.replace(/^#/, \"\");\n};\n\nvar filterElementInContainer = function filterElementInContainer(container) {\n return function (element) {\n return container.contains ? container != element && container.contains(element) : !!(container.compareDocumentPosition(element) & 16);\n };\n};\n\nvar scrollOffset = function scrollOffset(c, t) {\n return c === document ? t.getBoundingClientRect().top + (window.scrollY || window.pageYOffset) : getComputedStyle(c).position !== \"static\" ? t.offsetTop : t.offsetTop - c.offsetTop;\n};\nexports.default = {\n pushHash: pushHash,\n getHash: getHash,\n filterElementInContainer: filterElementInContainer,\n scrollOffset: scrollOffset\n};","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _scrollSpy = require('./scroll-spy');\n\nvar _scrollSpy2 = _interopRequireDefault(_scrollSpy);\n\nvar _scroller = require('./scroller');\n\nvar _scroller2 = _interopRequireDefault(_scroller);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _scrollHash = require('./scroll-hash');\n\nvar _scrollHash2 = _interopRequireDefault(_scrollHash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar protoTypes = {\n to: _propTypes2.default.string.isRequired,\n containerId: _propTypes2.default.string,\n container: _propTypes2.default.object,\n activeClass: _propTypes2.default.string,\n spy: _propTypes2.default.bool,\n smooth: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.string]),\n offset: _propTypes2.default.number,\n delay: _propTypes2.default.number,\n isDynamic: _propTypes2.default.bool,\n onClick: _propTypes2.default.func,\n duration: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n absolute: _propTypes2.default.bool,\n onSetActive: _propTypes2.default.func,\n onSetInactive: _propTypes2.default.func,\n ignoreCancelEvents: _propTypes2.default.bool,\n hashSpy: _propTypes2.default.bool\n};\n\nexports.default = function (Component, customScroller) {\n\n var scroller = customScroller || _scroller2.default;\n\n var Link = function (_React$PureComponent) {\n _inherits(Link, _React$PureComponent);\n\n function Link(props) {\n _classCallCheck(this, Link);\n\n var _this = _possibleConstructorReturn(this, (Link.__proto__ || Object.getPrototypeOf(Link)).call(this, props));\n\n _initialiseProps.call(_this);\n\n _this.state = {\n active: false\n };\n return _this;\n }\n\n _createClass(Link, [{\n key: 'getScrollSpyContainer',\n value: function getScrollSpyContainer() {\n var containerId = this.props.containerId;\n var container = this.props.container;\n\n if (containerId && !container) {\n return document.getElementById(containerId);\n }\n\n if (container && container.nodeType) {\n return container;\n }\n\n return document;\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (this.props.spy || this.props.hashSpy) {\n var scrollSpyContainer = this.getScrollSpyContainer();\n\n if (!_scrollSpy2.default.isMounted(scrollSpyContainer)) {\n _scrollSpy2.default.mount(scrollSpyContainer);\n }\n\n if (this.props.hashSpy) {\n if (!_scrollHash2.default.isMounted()) {\n _scrollHash2.default.mount(scroller);\n }\n _scrollHash2.default.mapContainer(this.props.to, scrollSpyContainer);\n }\n\n _scrollSpy2.default.addSpyHandler(this.spyHandler, scrollSpyContainer);\n\n this.setState({\n container: scrollSpyContainer\n });\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n _scrollSpy2.default.unmount(this.stateHandler, this.spyHandler);\n }\n }, {\n key: 'render',\n value: function render() {\n var className = \"\";\n\n if (this.state && this.state.active) {\n className = ((this.props.className || \"\") + \" \" + (this.props.activeClass || \"active\")).trim();\n } else {\n className = this.props.className;\n }\n\n var props = _extends({}, this.props);\n\n for (var prop in protoTypes) {\n if (props.hasOwnProperty(prop)) {\n delete props[prop];\n }\n }\n\n props.className = className;\n props.onClick = this.handleClick;\n\n return _react2.default.createElement(Component, props);\n }\n }]);\n\n return Link;\n }(_react2.default.PureComponent);\n\n var _initialiseProps = function _initialiseProps() {\n var _this2 = this;\n\n this.scrollTo = function (to, props) {\n scroller.scrollTo(to, _extends({}, _this2.state, props));\n };\n\n this.handleClick = function (event) {\n\n /*\r\n * give the posibility to override onClick\r\n */\n\n if (_this2.props.onClick) {\n _this2.props.onClick(event);\n }\n\n /*\r\n * dont bubble the navigation\r\n */\n\n if (event.stopPropagation) event.stopPropagation();\n if (event.preventDefault) event.preventDefault();\n\n /*\r\n * do the magic!\r\n */\n _this2.scrollTo(_this2.props.to, _this2.props);\n };\n\n this.spyHandler = function (y) {\n\n var scrollSpyContainer = _this2.getScrollSpyContainer();\n\n if (_scrollHash2.default.isMounted() && !_scrollHash2.default.isInitialized()) {\n return;\n }\n\n var to = _this2.props.to;\n var element = null;\n var elemTopBound = 0;\n var elemBottomBound = 0;\n var containerTop = 0;\n\n if (scrollSpyContainer.getBoundingClientRect) {\n var containerCords = scrollSpyContainer.getBoundingClientRect();\n containerTop = containerCords.top;\n }\n\n if (!element || _this2.props.isDynamic) {\n element = scroller.get(to);\n if (!element) {\n return;\n }\n\n var cords = element.getBoundingClientRect();\n elemTopBound = cords.top - containerTop + y;\n elemBottomBound = elemTopBound + cords.height;\n }\n\n var offsetY = y - _this2.props.offset;\n var isInside = offsetY >= Math.floor(elemTopBound) && offsetY < Math.floor(elemBottomBound);\n var isOutside = offsetY < Math.floor(elemTopBound) || offsetY >= Math.floor(elemBottomBound);\n var activeLink = scroller.getActiveLink();\n\n if (isOutside) {\n if (to === activeLink) {\n scroller.setActiveLink(void 0);\n }\n\n if (_this2.props.hashSpy && _scrollHash2.default.getHash() === to) {\n _scrollHash2.default.changeHash();\n }\n\n if (_this2.props.spy && _this2.state.active) {\n _this2.setState({ active: false });\n _this2.props.onSetInactive && _this2.props.onSetInactive(to, element);\n }\n }\n\n if (isInside && (activeLink !== to || _this2.state.active === false)) {\n scroller.setActiveLink(to);\n\n _this2.props.hashSpy && _scrollHash2.default.changeHash(to);\n\n if (_this2.props.spy) {\n _this2.setState({ active: true });\n _this2.props.onSetActive && _this2.props.onSetActive(to, element);\n }\n }\n };\n };\n\n ;\n\n Link.propTypes = protoTypes;\n\n Link.defaultProps = { offset: 0 };\n\n return Link;\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _lodash = require('lodash.throttle');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _passiveEventListeners = require('./passive-event-listeners');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// The eventHandler will execute at a rate of 15fps\nvar eventThrottler = function eventThrottler(eventHandler) {\n return (0, _lodash2.default)(eventHandler, 66);\n};\n\nvar scrollSpy = {\n\n spyCallbacks: [],\n spySetState: [],\n scrollSpyContainers: [],\n\n mount: function mount(scrollSpyContainer) {\n if (scrollSpyContainer) {\n var eventHandler = eventThrottler(function (event) {\n scrollSpy.scrollHandler(scrollSpyContainer);\n });\n scrollSpy.scrollSpyContainers.push(scrollSpyContainer);\n (0, _passiveEventListeners.addPassiveEventListener)(scrollSpyContainer, 'scroll', eventHandler);\n }\n },\n isMounted: function isMounted(scrollSpyContainer) {\n return scrollSpy.scrollSpyContainers.indexOf(scrollSpyContainer) !== -1;\n },\n currentPositionY: function currentPositionY(scrollSpyContainer) {\n if (scrollSpyContainer === document) {\n var supportPageOffset = window.pageXOffset !== undefined;\n var isCSS1Compat = (document.compatMode || \"\") === \"CSS1Compat\";\n return supportPageOffset ? window.pageYOffset : isCSS1Compat ? document.documentElement.scrollTop : document.body.scrollTop;\n } else {\n return scrollSpyContainer.scrollTop;\n }\n },\n scrollHandler: function scrollHandler(scrollSpyContainer) {\n var callbacks = scrollSpy.scrollSpyContainers[scrollSpy.scrollSpyContainers.indexOf(scrollSpyContainer)].spyCallbacks || [];\n callbacks.forEach(function (c) {\n return c(scrollSpy.currentPositionY(scrollSpyContainer));\n });\n },\n addStateHandler: function addStateHandler(handler) {\n scrollSpy.spySetState.push(handler);\n },\n addSpyHandler: function addSpyHandler(handler, scrollSpyContainer) {\n var container = scrollSpy.scrollSpyContainers[scrollSpy.scrollSpyContainers.indexOf(scrollSpyContainer)];\n\n if (!container.spyCallbacks) {\n container.spyCallbacks = [];\n }\n\n container.spyCallbacks.push(handler);\n\n handler(scrollSpy.currentPositionY(scrollSpyContainer));\n },\n updateStates: function updateStates() {\n scrollSpy.spySetState.forEach(function (s) {\n return s();\n });\n },\n unmount: function unmount(stateHandler, spyHandler) {\n scrollSpy.scrollSpyContainers.forEach(function (c) {\n return c.spyCallbacks && c.spyCallbacks.length && c.spyCallbacks.splice(c.spyCallbacks.indexOf(spyHandler), 1);\n });\n\n if (scrollSpy.spySetState && scrollSpy.spySetState.length) {\n scrollSpy.spySetState.splice(scrollSpy.spySetState.indexOf(stateHandler), 1);\n }\n\n document.removeEventListener('scroll', scrollSpy.scrollHandler);\n },\n\n\n update: function update() {\n return scrollSpy.scrollSpyContainers.forEach(function (c) {\n return scrollSpy.scrollHandler(c);\n });\n }\n};\n\nexports.default = scrollSpy;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/*\r\n * Tell the browser that the event listener won't prevent a scroll.\r\n * Allowing the browser to continue scrolling without having to\r\n * to wait for the listener to return.\r\n */\nvar addPassiveEventListener = exports.addPassiveEventListener = function addPassiveEventListener(target, eventName, listener) {\n var supportsPassiveOption = function () {\n var supportsPassiveOption = false;\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get: function get() {\n supportsPassiveOption = true;\n }\n });\n window.addEventListener('test', null, opts);\n } catch (e) {}\n return supportsPassiveOption;\n }();\n target.addEventListener(eventName, listener, supportsPassiveOption ? { passive: true } : false);\n};\n\nvar removePassiveEventListener = exports.removePassiveEventListener = function removePassiveEventListener(target, eventName, listener) {\n target.removeEventListener(eventName, listener);\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar Events = {\n\tregistered: {},\n\tscrollEvent: {\n\t\tregister: function register(evtName, callback) {\n\t\t\tEvents.registered[evtName] = callback;\n\t\t},\n\t\tremove: function remove(evtName) {\n\t\t\tEvents.registered[evtName] = null;\n\t\t}\n\t}\n};\n\nexports.default = Events;","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault;","function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nmodule.exports = _inheritsLoose;","var isarray = require('isarray')\n\n/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = []\n var key = 0\n var index = 0\n var path = ''\n var defaultDelimiter = options && options.delimiter || '/'\n var res\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0]\n var escaped = res[1]\n var offset = res.index\n path += str.slice(index, offset)\n index = offset + m.length\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1]\n continue\n }\n\n var next = str[index]\n var prefix = res[2]\n var name = res[3]\n var capture = res[4]\n var group = res[5]\n var modifier = res[6]\n var asterisk = res[7]\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path)\n path = ''\n }\n\n var partial = prefix != null && next != null && next !== prefix\n var repeat = modifier === '+' || modifier === '*'\n var optional = modifier === '?' || modifier === '*'\n var delimiter = res[2] || defaultDelimiter\n var pattern = capture || group\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n })\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index)\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path)\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length)\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options))\n }\n }\n\n return function (obj, opts) {\n var path = ''\n var data = obj || {}\n var options = opts || {}\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n path += token\n\n continue\n }\n\n var value = data[token.name]\n var segment\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j])\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value)\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g)\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n })\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = []\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source)\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options))\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n var strict = options.strict\n var end = options.end !== false\n var route = ''\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n route += escapeString(token)\n } else {\n var prefix = escapeString(token.prefix)\n var capture = '(?:' + token.pattern + ')'\n\n keys.push(token)\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*'\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?'\n } else {\n capture = prefix + '(' + capture + ')?'\n }\n } else {\n capture = prefix + '(' + capture + ')'\n }\n\n route += capture\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/')\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'\n }\n\n if (end) {\n route += '$'\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _utils = require('./utils');\n\nvar _utils2 = _interopRequireDefault(_utils);\n\nvar _smooth = require('./smooth');\n\nvar _smooth2 = _interopRequireDefault(_smooth);\n\nvar _cancelEvents = require('./cancel-events');\n\nvar _cancelEvents2 = _interopRequireDefault(_cancelEvents);\n\nvar _scrollEvents = require('./scroll-events');\n\nvar _scrollEvents2 = _interopRequireDefault(_scrollEvents);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*\r\n * Gets the easing type from the smooth prop within options.\r\n */\nvar getAnimationType = function getAnimationType(options) {\n return _smooth2.default[options.smooth] || _smooth2.default.defaultEasing;\n};\n/*\r\n * Function helper\r\n */\nvar functionWrapper = function functionWrapper(value) {\n return typeof value === 'function' ? value : function () {\n return value;\n };\n};\n/*\r\n * Wraps window properties to allow server side rendering\r\n */\nvar currentWindowProperties = function currentWindowProperties() {\n if (typeof window !== 'undefined') {\n return window.requestAnimationFrame || window.webkitRequestAnimationFrame;\n }\n};\n\n/*\r\n * Helper function to never extend 60fps on the webpage.\r\n */\nvar requestAnimationFrameHelper = function () {\n return currentWindowProperties() || function (callback, element, delay) {\n window.setTimeout(callback, delay || 1000 / 60, new Date().getTime());\n };\n}();\n\nvar makeData = function makeData() {\n return {\n currentPositionY: 0,\n startPositionY: 0,\n targetPositionY: 0,\n progress: 0,\n duration: 0,\n cancel: false,\n\n target: null,\n containerElement: null,\n to: null,\n start: null,\n deltaTop: null,\n percent: null,\n delayTimeout: null\n };\n};\n\nvar currentPositionY = function currentPositionY(options) {\n var containerElement = options.data.containerElement;\n if (containerElement && containerElement !== document && containerElement !== document.body) {\n return containerElement.scrollTop;\n } else {\n var supportPageOffset = window.pageXOffset !== undefined;\n var isCSS1Compat = (document.compatMode || \"\") === \"CSS1Compat\";\n return supportPageOffset ? window.pageYOffset : isCSS1Compat ? document.documentElement.scrollTop : document.body.scrollTop;\n }\n};\n\nvar scrollContainerHeight = function scrollContainerHeight(options) {\n var containerElement = options.data.containerElement;\n if (containerElement && containerElement !== document && containerElement !== document.body) {\n return containerElement.scrollHeight - containerElement.offsetHeight;\n } else {\n var body = document.body;\n var html = document.documentElement;\n\n return Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight);\n }\n};\n\nvar animateScroll = function animateScroll(easing, options, timestamp) {\n var data = options.data;\n\n // Cancel on specific events\n if (!options.ignoreCancelEvents && data.cancel) {\n if (_scrollEvents2.default.registered['end']) {\n _scrollEvents2.default.registered['end'](data.to, data.target, data.currentPositionY);\n }\n return;\n };\n\n data.deltaTop = Math.round(data.targetPositionY - data.startPositionY);\n\n if (data.start === null) {\n data.start = timestamp;\n }\n\n data.progress = timestamp - data.start;\n\n data.percent = data.progress >= data.duration ? 1 : easing(data.progress / data.duration);\n\n data.currentPositionY = data.startPositionY + Math.ceil(data.deltaTop * data.percent);\n\n if (data.containerElement && data.containerElement !== document && data.containerElement !== document.body) {\n data.containerElement.scrollTop = data.currentPositionY;\n } else {\n window.scrollTo(0, data.currentPositionY);\n }\n\n if (data.percent < 1) {\n var easedAnimate = animateScroll.bind(null, easing, options);\n requestAnimationFrameHelper.call(window, easedAnimate);\n return;\n }\n\n if (_scrollEvents2.default.registered['end']) {\n _scrollEvents2.default.registered['end'](data.to, data.target, data.currentPositionY);\n }\n};\n\nvar setContainer = function setContainer(options) {\n options.data.containerElement = !options ? null : options.containerId ? document.getElementById(options.containerId) : options.container && options.container.nodeType ? options.container : document;\n};\n\nvar animateTopScroll = function animateTopScroll(y, options, to, target) {\n options.data = options.data || makeData();\n\n window.clearTimeout(options.data.delayTimeout);\n\n _cancelEvents2.default.subscribe(function () {\n options.data.cancel = true;\n });\n\n setContainer(options);\n\n options.data.start = null;\n options.data.cancel = false;\n options.data.startPositionY = currentPositionY(options);\n options.data.targetPositionY = options.absolute ? y : y + options.data.startPositionY;\n\n if (options.data.startPositionY === options.data.targetPositionY) {\n if (_scrollEvents2.default.registered['end']) {\n _scrollEvents2.default.registered['end'](options.data.to, options.data.target, options.data.currentPositionY);\n }\n return;\n }\n\n options.data.deltaTop = Math.round(options.data.targetPositionY - options.data.startPositionY);\n\n options.data.duration = functionWrapper(options.duration)(options.data.deltaTop);\n options.data.duration = isNaN(parseFloat(options.data.duration)) ? 1000 : parseFloat(options.data.duration);\n options.data.to = to;\n options.data.target = target;\n\n var easing = getAnimationType(options);\n var easedAnimate = animateScroll.bind(null, easing, options);\n\n if (options && options.delay > 0) {\n options.data.delayTimeout = window.setTimeout(function () {\n if (_scrollEvents2.default.registered['begin']) {\n _scrollEvents2.default.registered['begin'](options.data.to, options.data.target);\n }\n requestAnimationFrameHelper.call(window, easedAnimate);\n }, options.delay);\n return;\n }\n\n if (_scrollEvents2.default.registered['begin']) {\n _scrollEvents2.default.registered['begin'](options.data.to, options.data.target);\n }\n requestAnimationFrameHelper.call(window, easedAnimate);\n};\n\nvar proceedOptions = function proceedOptions(options) {\n options = _extends({}, options);\n options.data = options.data || makeData();\n options.absolute = true;\n return options;\n};\n\nvar scrollToTop = function scrollToTop(options) {\n animateTopScroll(0, proceedOptions(options));\n};\n\nvar scrollTo = function scrollTo(toY, options) {\n animateTopScroll(toY, proceedOptions(options));\n};\n\nvar scrollToBottom = function scrollToBottom(options) {\n options = proceedOptions(options);\n setContainer(options);\n animateTopScroll(scrollContainerHeight(options), options);\n};\n\nvar scrollMore = function scrollMore(toY, options) {\n options = proceedOptions(options);\n setContainer(options);\n animateTopScroll(currentPositionY(options) + toY, options);\n};\n\nexports.default = {\n animateTopScroll: animateTopScroll,\n getAnimationType: getAnimationType,\n scrollToTop: scrollToTop,\n scrollToBottom: scrollToBottom,\n scrollTo: scrollTo,\n scrollMore: scrollMore\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _passiveEventListeners = require('./passive-event-listeners');\n\nvar _utils = require('./utils');\n\nvar _utils2 = _interopRequireDefault(_utils);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar scrollHash = {\n mountFlag: false,\n initialized: false,\n scroller: null,\n containers: {},\n\n mount: function mount(scroller) {\n this.scroller = scroller;\n\n this.handleHashChange = this.handleHashChange.bind(this);\n window.addEventListener('hashchange', this.handleHashChange);\n\n this.initStateFromHash();\n this.mountFlag = true;\n },\n mapContainer: function mapContainer(to, container) {\n this.containers[to] = container;\n },\n isMounted: function isMounted() {\n return this.mountFlag;\n },\n isInitialized: function isInitialized() {\n return this.initialized;\n },\n initStateFromHash: function initStateFromHash() {\n var _this = this;\n\n var hash = this.getHash();\n if (hash) {\n window.setTimeout(function () {\n _this.scrollTo(hash, true);\n _this.initialized = true;\n }, 10);\n } else {\n this.initialized = true;\n }\n },\n scrollTo: function scrollTo(to, isInit) {\n var scroller = this.scroller;\n var element = scroller.get(to);\n if (element && (isInit || to !== scroller.getActiveLink())) {\n var container = this.containers[to] || document;\n scroller.scrollTo(to, { container: container });\n }\n },\n getHash: function getHash() {\n return _utils2.default.getHash();\n },\n changeHash: function changeHash(to) {\n if (this.isInitialized() && _utils2.default.getHash() !== to) {\n _utils2.default.pushHash(to);\n }\n },\n handleHashChange: function handleHashChange() {\n this.scrollTo(this.getHash());\n },\n unmount: function unmount() {\n this.scroller = null;\n this.containers = null;\n window.removeEventListener('hashchange', this.handleHashChange);\n }\n};\n\nexports.default = scrollHash;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _scroller = require('./scroller');\n\nvar _scroller2 = _interopRequireDefault(_scroller);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nexports.default = function (Component) {\n var Element = function (_React$Component) {\n _inherits(Element, _React$Component);\n\n function Element(props) {\n _classCallCheck(this, Element);\n\n var _this = _possibleConstructorReturn(this, (Element.__proto__ || Object.getPrototypeOf(Element)).call(this, props));\n\n _this.childBindings = {\n domNode: null\n };\n return _this;\n }\n\n _createClass(Element, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (typeof window === 'undefined') {\n return false;\n }\n this.registerElems(this.props.name);\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps) {\n if (this.props.name !== prevProps.name) {\n this.registerElems(this.props.name);\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (typeof window === 'undefined') {\n return false;\n }\n _scroller2.default.unregister(this.props.name);\n }\n }, {\n key: 'registerElems',\n value: function registerElems(name) {\n _scroller2.default.register(name, this.childBindings.domNode);\n }\n }, {\n key: 'render',\n value: function render() {\n return _react2.default.createElement(Component, _extends({}, this.props, { parentBindings: this.childBindings }));\n }\n }]);\n\n return Element;\n }(_react2.default.Component);\n\n ;\n\n Element.propTypes = {\n name: _propTypes2.default.string,\n id: _propTypes2.default.string\n };\n\n return Element;\n};","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = createSvgIcon;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _SvgIcon = _interopRequireDefault(require(\"@material-ui/core/SvgIcon\"));\n\nfunction createSvgIcon(path, displayName) {\n var Component = _react.default.memo(_react.default.forwardRef(function (props, ref) {\n return _react.default.createElement(_SvgIcon.default, (0, _extends2.default)({\n ref: ref\n }, props), path);\n }));\n\n if (process.env.NODE_ENV !== 'production') {\n Component.displayName = \"\".concat(displayName, \"Icon\");\n }\n\n Component.muiName = _SvgIcon.default.muiName;\n return Component;\n}","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nexports['default'] = function () {\n var Snap = undefined;\n try {\n Snap = require('snapsvg-cjs');\n } finally {\n return Snap;\n }\n};\n\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _classnames = require('classnames');\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nexports.default = {\n ROOT: function ROOT(customClassName) {\n return (0, _classnames2.default)(_defineProperty({\n 'carousel-root': true\n }, customClassName, !!customClassName));\n },\n\n CAROUSEL: function CAROUSEL(isSlider) {\n return (0, _classnames2.default)({\n carousel: true,\n 'carousel-slider': isSlider\n });\n },\n\n WRAPPER: function WRAPPER(isSlider, axis) {\n return (0, _classnames2.default)({\n 'thumbs-wrapper': !isSlider,\n 'slider-wrapper': isSlider,\n 'axis-horizontal': axis === 'horizontal',\n 'axis-vertical': axis !== 'horizontal'\n });\n },\n\n SLIDER: function SLIDER(isSlider, isSwiping) {\n return (0, _classnames2.default)({\n thumbs: !isSlider,\n slider: isSlider,\n animated: !isSwiping\n });\n },\n\n ITEM: function ITEM(isSlider, selected) {\n return (0, _classnames2.default)({\n thumb: !isSlider,\n slide: isSlider,\n selected: selected\n });\n },\n\n ARROW_PREV: function ARROW_PREV(disabled) {\n return (0, _classnames2.default)({\n 'control-arrow control-prev': true,\n 'control-disabled': disabled\n });\n },\n\n ARROW_NEXT: function ARROW_NEXT(disabled) {\n return (0, _classnames2.default)({\n 'control-arrow control-next': true,\n 'control-disabled': disabled\n });\n },\n\n DOT: function DOT(selected) {\n return (0, _classnames2.default)({\n dot: true,\n selected: selected\n });\n }\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function (position, axis) {\n var positionCss = axis === 'horizontal' ? [position, 0, 0] : [0, position, 0];\n var transitionProp = 'translate3d';\n\n var translatedPosition = '(' + positionCss.join(',') + ')';\n\n return transitionProp + translatedPosition;\n};","(function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define(['exports', './react-swipe'], factory);\n } else if (typeof exports !== \"undefined\") {\n factory(exports, require('./react-swipe'));\n } else {\n var mod = {\n exports: {}\n };\n factory(mod.exports, global.reactSwipe);\n global.index = mod.exports;\n }\n})(this, function (exports, _reactSwipe) {\n 'use strict';\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var _reactSwipe2 = _interopRequireDefault(_reactSwipe);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n\n exports.default = _reactSwipe2.default;\n});","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _cssClasses = require('../cssClasses');\n\nvar _cssClasses2 = _interopRequireDefault(_cssClasses);\n\nvar _dimensions = require('../dimensions');\n\nvar _CSSTranslate = require('../CSSTranslate');\n\nvar _CSSTranslate2 = _interopRequireDefault(_CSSTranslate);\n\nvar _reactEasySwipe = require('react-easy-swipe');\n\nvar _reactEasySwipe2 = _interopRequireDefault(_reactEasySwipe);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Thumbs = function (_Component) {\n _inherits(Thumbs, _Component);\n\n function Thumbs(props) {\n _classCallCheck(this, Thumbs);\n\n var _this = _possibleConstructorReturn(this, (Thumbs.__proto__ || Object.getPrototypeOf(Thumbs)).call(this, props));\n\n _initialiseProps.call(_this);\n\n _this.state = {\n selectedItem: props.selectedItem,\n hasMount: false,\n firstItem: 0,\n itemSize: null,\n visibleItems: 0,\n lastPosition: 0,\n showArrows: false,\n images: _this.getImages()\n };\n return _this;\n }\n\n _createClass(Thumbs, [{\n key: 'componentDidMount',\n value: function componentDidMount(nextProps) {\n this.setupThumbs();\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(props, state) {\n if (props.selectedItem !== this.state.selectedItem) {\n this.setState({\n selectedItem: props.selectedItem,\n firstItem: this.getFirstItem(props.selectedItem)\n });\n }\n if (props.children !== this.props.children) {\n this.setState({\n images: this.getImages()\n });\n }\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps) {\n if (this.props.children === prevProps.children) {\n return;\n }\n\n // This will capture any size changes for arrow adjustments etc.\n // usually in the same render cycle so we don't see any flickers\n this.updateSizes();\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.destroyThumbs();\n }\n }, {\n key: 'setupThumbs',\n value: function setupThumbs() {\n // as the widths are calculated, we need to resize\n // the carousel when the window is resized\n window.addEventListener('resize', this.updateSizes);\n // issue #2 - image loading smaller\n window.addEventListener('DOMContentLoaded', this.updateSizes);\n\n // when the component is rendered we need to calculate\n // the container size to adjust the responsive behaviour\n this.updateSizes();\n }\n }, {\n key: 'destroyThumbs',\n value: function destroyThumbs() {\n // removing listeners\n window.removeEventListener('resize', this.updateSizes);\n window.removeEventListener('DOMContentLoaded', this.updateSizes);\n }\n }, {\n key: 'getImages',\n value: function getImages() {\n var images = _react.Children.map(this.props.children, function (item, index) {\n var img = item;\n\n // if the item is not an image, try to find the first image in the item's children.\n if (item.type !== 'img') {\n img = _react.Children.toArray(item.props.children).filter(function (children) {\n return children.type === 'img';\n })[0];\n }\n\n if (!img || img.length === 0) {\n return null;\n }\n\n return img;\n });\n\n if (images.filter(function (image) {\n return image;\n }).length === 0) {\n console.warn('No images found! Can\\'t build the thumb list without images. If you don\\'t need thumbs, set showThumbs={false} in the Carousel. Note that it\\'s not possible to get images rendered inside custom components. More info at https://github.com/leandrowd/react-responsive-carousel/blob/master/TROUBLESHOOTING.md');\n\n return [];\n }\n\n return images;\n }\n }, {\n key: 'getFirstItem',\n value: function getFirstItem(selectedItem) {\n var firstItem = selectedItem;\n\n if (selectedItem >= this.state.lastPosition) {\n firstItem = this.state.lastPosition;\n }\n\n if (selectedItem < this.state.firstItem + this.state.visibleItems) {\n firstItem = this.state.firstItem;\n }\n\n if (selectedItem < this.state.firstItem) {\n firstItem = selectedItem;\n }\n\n return firstItem;\n }\n }, {\n key: 'renderItems',\n value: function renderItems() {\n var _this2 = this;\n\n return this.state.images.map(function (img, index) {\n var itemClass = _cssClasses2.default.ITEM(false, index === _this2.state.selectedItem && _this2.state.hasMount);\n\n var thumbProps = {\n key: index,\n ref: function ref(e) {\n return _this2.setThumbsRef(e, index);\n },\n className: itemClass,\n onClick: _this2.handleClickItem.bind(_this2, index, _this2.props.children[index]),\n onKeyDown: _this2.handleClickItem.bind(_this2, index, _this2.props.children[index]),\n 'aria-label': _this2.props.labels.item + ' ' + (index + 1)\n };\n\n if (index === 0) {\n img = _react2.default.cloneElement(img, {\n onLoad: _this2.setMountState\n });\n }\n\n return _react2.default.createElement(\n 'li',\n _extends({}, thumbProps, { role: 'button', tabIndex: 0 }),\n img\n );\n });\n }\n }, {\n key: 'render',\n value: function render() {\n if (!this.props.children) {\n return null;\n }\n\n // show left arrow?\n var hasPrev = this.state.showArrows && this.state.firstItem > 0;\n // show right arrow\n var hasNext = this.state.showArrows && this.state.firstItem < this.state.lastPosition;\n // obj to hold the transformations and styles\n var itemListStyles = {};\n\n var currentPosition = -this.state.firstItem * this.state.itemSize + 'px';\n\n var transformProp = (0, _CSSTranslate2.default)(currentPosition, this.props.axis);\n\n var transitionTime = this.props.transitionTime + 'ms';\n\n itemListStyles = {\n WebkitTransform: transformProp,\n MozTransform: transformProp,\n MsTransform: transformProp,\n OTransform: transformProp,\n transform: transformProp,\n msTransform: transformProp,\n WebkitTransitionDuration: transitionTime,\n MozTransitionDuration: transitionTime,\n MsTransitionDuration: transitionTime,\n OTransitionDuration: transitionTime,\n transitionDuration: transitionTime,\n msTransitionDuration: transitionTime\n };\n\n return _react2.default.createElement(\n 'div',\n { className: _cssClasses2.default.CAROUSEL(false) },\n _react2.default.createElement(\n 'div',\n { className: _cssClasses2.default.WRAPPER(false), ref: this.setItemsWrapperRef },\n _react2.default.createElement('button', {\n type: 'button',\n className: _cssClasses2.default.ARROW_PREV(!hasPrev),\n onClick: this.slideRight,\n 'aria-label': this.props.labels.leftArrow\n }),\n _react2.default.createElement(\n _reactEasySwipe2.default,\n {\n tagName: 'ul',\n className: _cssClasses2.default.SLIDER(false, this.state.swiping),\n onSwipeLeft: this.slideLeft,\n onSwipeRight: this.slideRight,\n onSwipeMove: this.onSwipeMove,\n onSwipeStart: this.onSwipeStart,\n onSwipeEnd: this.onSwipeEnd,\n style: itemListStyles,\n innerRef: this.setItemsListRef\n },\n this.renderItems()\n ),\n _react2.default.createElement('button', {\n type: 'button',\n className: _cssClasses2.default.ARROW_NEXT(!hasNext),\n onClick: this.slideLeft,\n 'aria-label': this.props.labels.rightArrow\n })\n )\n );\n }\n }]);\n\n return Thumbs;\n}(_react.Component);\n\nThumbs.displayName = 'Thumbs';\nThumbs.propsTypes = {\n children: _propTypes2.default.element.isRequired,\n transitionTime: _propTypes2.default.number,\n selectedItem: _propTypes2.default.number,\n thumbWidth: _propTypes2.default.number,\n labels: _propTypes2.default.shape({\n leftArrow: _propTypes2.default.string,\n rightArrow: _propTypes2.default.string,\n item: _propTypes2.default.string\n })\n};\nThumbs.defaultProps = {\n selectedItem: 0,\n transitionTime: 350,\n axis: 'horizontal'\n};\n\nvar _initialiseProps = function _initialiseProps() {\n var _this3 = this;\n\n this.setItemsWrapperRef = function (node) {\n _this3.itemsWrapperRef = node;\n };\n\n this.setItemsListRef = function (node) {\n _this3.itemsListRef = node;\n };\n\n this.setThumbsRef = function (node, index) {\n if (!_this3.thumbsRef) {\n _this3.thumbsRef = [];\n }\n _this3.thumbsRef[index] = node;\n };\n\n this.updateSizes = function () {\n if (!_this3.props.children || !_this3.itemsWrapperRef || _this3.state.images.length === 0) {\n return;\n }\n\n var total = _this3.props.children.length;\n var wrapperSize = _this3.itemsWrapperRef.clientWidth;\n var itemSize = _this3.props.thumbWidth ? _this3.props.thumbWidth : (0, _dimensions.outerWidth)(_this3.thumbsRef[0]);\n var visibleItems = Math.floor(wrapperSize / itemSize);\n var lastPosition = total - visibleItems;\n var showArrows = visibleItems < total;\n _this3.setState(function (_state, props) {\n return {\n itemSize: itemSize,\n visibleItems: visibleItems,\n firstItem: showArrows ? _this3.getFirstItem(props.selectedItem) : 0,\n lastPosition: lastPosition,\n showArrows: showArrows\n };\n });\n };\n\n this.setMountState = function () {\n _this3.setState({ hasMount: true });\n _this3.updateSizes();\n };\n\n this.handleClickItem = function (index, item, e) {\n if (!e.keyCode || e.key === 'Enter') {\n var handler = _this3.props.onSelectItem;\n\n if (typeof handler === 'function') {\n handler(index, item);\n }\n }\n };\n\n this.onSwipeStart = function () {\n _this3.setState({\n swiping: true\n });\n };\n\n this.onSwipeEnd = function () {\n _this3.setState({\n swiping: false\n });\n };\n\n this.onSwipeMove = function (deltaX) {\n var leftBoundary = 0;\n\n var currentPosition = -_this3.state.firstItem * _this3.state.itemSize;\n var lastLeftBoundary = -_this3.state.visibleItems * _this3.state.itemSize;\n\n // prevent user from swiping left out of boundaries\n if (currentPosition === leftBoundary && deltaX > 0) {\n deltaX = 0;\n }\n\n // prevent user from swiping right out of boundaries\n if (currentPosition === lastLeftBoundary && deltaX < 0) {\n deltaX = 0;\n }\n\n var wrapperSize = _this3.itemsWrapperRef.clientWidth;\n var position = currentPosition + 100 / (wrapperSize / deltaX) + '%';\n // if 3d isn't available we will use left to move\n if (_this3.itemsListRef) {\n ['WebkitTransform', 'MozTransform', 'MsTransform', 'OTransform', 'transform', 'msTransform'].forEach(function (prop) {\n _this3.itemsListRef.style[prop] = (0, _CSSTranslate2.default)(position, _this3.props.axis);\n });\n }\n };\n\n this.slideRight = function (positions) {\n _this3.moveTo(_this3.state.firstItem - (typeof positions === 'number' ? positions : 1));\n };\n\n this.slideLeft = function (positions) {\n _this3.moveTo(_this3.state.firstItem + (typeof positions === 'number' ? positions : 1));\n };\n\n this.moveTo = function (position) {\n // position can't be lower than 0\n position = position < 0 ? 0 : position;\n // position can't be higher than last postion\n position = position >= _this3.lastPosition ? _this3.lastPosition : position;\n\n _this3.setState({\n firstItem: position\n });\n };\n};\n\nexports.default = Thumbs;","// @flow\n'use strict';\n\nvar key = '__global_unique_id__';\n\nmodule.exports = function() {\n return global[key] = (global[key] || 0) + 1;\n};\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)(_react.default.createElement(\"path\", {\n d: \"M7 14l5-5 5 5z\"\n}), 'ArrowDropUp');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)(_react.default.createElement(\"path\", {\n d: \"M7 10l5 5 5-5z\"\n}), 'ArrowDropDown');\n\nexports.default = _default;","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\nexports['default'] = {\n slide: require('./menus/slide'),\n stack: require('./menus/stack'),\n elastic: require('./menus/elastic'),\n bubble: require('./menus/bubble'),\n push: require('./menus/push'),\n pushRotate: require('./menus/pushRotate'),\n scaleDown: require('./menus/scaleDown'),\n scaleRotate: require('./menus/scaleRotate'),\n fallDown: require('./menus/fallDown'),\n reveal: require('./menus/reveal')\n};\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Thumbs = exports.Carousel = undefined;\n\nvar _Carousel = require('./components/Carousel');\n\nvar _Carousel2 = _interopRequireDefault(_Carousel);\n\nvar _Thumbs = require('./components/Thumbs');\n\nvar _Thumbs2 = _interopRequireDefault(_Thumbs);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.Carousel = _Carousel2.default;\nexports.Thumbs = _Thumbs2.default;","/** @license React v16.13.1\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var l=require(\"object-assign\"),n=\"function\"===typeof Symbol&&Symbol.for,p=n?Symbol.for(\"react.element\"):60103,q=n?Symbol.for(\"react.portal\"):60106,r=n?Symbol.for(\"react.fragment\"):60107,t=n?Symbol.for(\"react.strict_mode\"):60108,u=n?Symbol.for(\"react.profiler\"):60114,v=n?Symbol.for(\"react.provider\"):60109,w=n?Symbol.for(\"react.context\"):60110,x=n?Symbol.for(\"react.forward_ref\"):60112,y=n?Symbol.for(\"react.suspense\"):60113,z=n?Symbol.for(\"react.memo\"):60115,A=n?Symbol.for(\"react.lazy\"):\n60116,B=\"function\"===typeof Symbol&&Symbol.iterator;function C(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cQ.length&&Q.push(a)}\nfunction T(a,b,c,e){var d=typeof a;if(\"undefined\"===d||\"boolean\"===d)a=null;var g=!1;if(null===a)g=!0;else switch(d){case \"string\":case \"number\":g=!0;break;case \"object\":switch(a.$$typeof){case p:case q:g=!0}}if(g)return c(e,a,\"\"===b?\".\"+U(a,0):b),1;g=0;b=\"\"===b?\".\":b+\":\";if(Array.isArray(a))for(var k=0;kb}return!1}function v(a,b,c,d,e,f){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f}var C={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){C[a]=new v(a,0,!1,a,null,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];C[b]=new v(b,1,!1,a[1],null,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){C[a]=new v(a,2,!1,a.toLowerCase(),null,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){C[a]=new v(a,2,!1,a,null,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){C[a]=new v(a,3,!1,a.toLowerCase(),null,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){C[a]=new v(a,3,!0,a,null,!1)});[\"capture\",\"download\"].forEach(function(a){C[a]=new v(a,4,!1,a,null,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){C[a]=new v(a,6,!1,a,null,!1)});[\"rowSpan\",\"start\"].forEach(function(a){C[a]=new v(a,5,!1,a.toLowerCase(),null,!1)});var Ua=/[\\-:]([a-z])/g;function Va(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(Ua,\nVa);C[b]=new v(b,1,!1,a,null,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(Ua,Va);C[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(Ua,Va);C[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){C[a]=new v(a,1,!1,a.toLowerCase(),null,!1)});\nC.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){C[a]=new v(a,1,!1,a.toLowerCase(),null,!0)});var Wa=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;Wa.hasOwnProperty(\"ReactCurrentDispatcher\")||(Wa.ReactCurrentDispatcher={current:null});Wa.hasOwnProperty(\"ReactCurrentBatchConfig\")||(Wa.ReactCurrentBatchConfig={suspense:null});\nfunction Xa(a,b,c,d){var e=C.hasOwnProperty(b)?C[b]:null;var f=null!==e?0===e.type:d?!1:!(2=c.length))throw Error(u(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:rb(c)}}\nfunction Kb(a,b){var c=rb(b.value),d=rb(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function Lb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var Mb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction Nb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function Ob(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?Nb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar Pb,Qb=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==Mb.svg||\"innerHTML\"in a)a.innerHTML=b;else{Pb=Pb||document.createElement(\"div\");Pb.innerHTML=\"\"+b.valueOf().toString()+\"\";for(b=Pb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction Rb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}function Sb(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var Tb={animationend:Sb(\"Animation\",\"AnimationEnd\"),animationiteration:Sb(\"Animation\",\"AnimationIteration\"),animationstart:Sb(\"Animation\",\"AnimationStart\"),transitionend:Sb(\"Transition\",\"TransitionEnd\")},Ub={},Vb={};\nya&&(Vb=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete Tb.animationend.animation,delete Tb.animationiteration.animation,delete Tb.animationstart.animation),\"TransitionEvent\"in window||delete Tb.transitionend.transition);function Wb(a){if(Ub[a])return Ub[a];if(!Tb[a])return a;var b=Tb[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Vb)return Ub[a]=b[c];return a}\nvar Xb=Wb(\"animationend\"),Yb=Wb(\"animationiteration\"),Zb=Wb(\"animationstart\"),$b=Wb(\"transitionend\"),ac=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),bc=new (\"function\"===typeof WeakMap?WeakMap:Map);function cc(a){var b=bc.get(a);void 0===b&&(b=new Map,bc.set(a,b));return b}\nfunction dc(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.effectTag&1026)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function ec(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function fc(a){if(dc(a)!==a)throw Error(u(188));}\nfunction gc(a){var b=a.alternate;if(!b){b=dc(a);if(null===b)throw Error(u(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return fc(e),a;if(f===d)return fc(e),b;f=f.sibling}throw Error(u(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(u(189));}}if(c.alternate!==d)throw Error(u(190));}if(3!==c.tag)throw Error(u(188));return c.stateNode.current===c?a:b}function hc(a){a=gc(a);if(!a)return null;for(var b=a;;){if(5===b.tag||6===b.tag)return b;if(b.child)b.child.return=b,b=b.child;else{if(b===a)break;for(;!b.sibling;){if(!b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}}return null}\nfunction ic(a,b){if(null==b)throw Error(u(30));if(null==a)return b;if(Array.isArray(a)){if(Array.isArray(b))return a.push.apply(a,b),a;a.push(b);return a}return Array.isArray(b)?[a].concat(b):[a,b]}function jc(a,b,c){Array.isArray(a)?a.forEach(b,c):a&&b.call(c,a)}var kc=null;\nfunction lc(a){if(a){var b=a._dispatchListeners,c=a._dispatchInstances;if(Array.isArray(b))for(var d=0;dpc.length&&pc.push(a)}\nfunction rc(a,b,c,d){if(pc.length){var e=pc.pop();e.topLevelType=a;e.eventSystemFlags=d;e.nativeEvent=b;e.targetInst=c;return e}return{topLevelType:a,eventSystemFlags:d,nativeEvent:b,targetInst:c,ancestors:[]}}\nfunction sc(a){var b=a.targetInst,c=b;do{if(!c){a.ancestors.push(c);break}var d=c;if(3===d.tag)d=d.stateNode.containerInfo;else{for(;d.return;)d=d.return;d=3!==d.tag?null:d.stateNode.containerInfo}if(!d)break;b=c.tag;5!==b&&6!==b||a.ancestors.push(c);c=tc(d)}while(c);for(c=0;c=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=ud(c)}}\nfunction wd(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?wd(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}function xd(){for(var a=window,b=td();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=td(a.document)}return b}\nfunction yd(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}var zd=\"$\",Ad=\"/$\",Bd=\"$?\",Cd=\"$!\",Dd=null,Ed=null;function Fd(a,b){switch(a){case \"button\":case \"input\":case \"select\":case \"textarea\":return!!b.autoFocus}return!1}\nfunction Gd(a,b){return\"textarea\"===a||\"option\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}var Hd=\"function\"===typeof setTimeout?setTimeout:void 0,Id=\"function\"===typeof clearTimeout?clearTimeout:void 0;function Jd(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break}return a}\nfunction Kd(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(c===zd||c===Cd||c===Bd){if(0===b)return a;b--}else c===Ad&&b++}a=a.previousSibling}return null}var Ld=Math.random().toString(36).slice(2),Md=\"__reactInternalInstance$\"+Ld,Nd=\"__reactEventHandlers$\"+Ld,Od=\"__reactContainere$\"+Ld;\nfunction tc(a){var b=a[Md];if(b)return b;for(var c=a.parentNode;c;){if(b=c[Od]||c[Md]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=Kd(a);null!==a;){if(c=a[Md])return c;a=Kd(a)}return b}a=c;c=a.parentNode}return null}function Nc(a){a=a[Md]||a[Od];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function Pd(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(u(33));}function Qd(a){return a[Nd]||null}\nfunction Rd(a){do a=a.return;while(a&&5!==a.tag);return a?a:null}\nfunction Sd(a,b){var c=a.stateNode;if(!c)return null;var d=la(c);if(!d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":case \"onMouseEnter\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&\"function\"!==typeof c)throw Error(u(231,\nb,typeof c));return c}function Td(a,b,c){if(b=Sd(a,c.dispatchConfig.phasedRegistrationNames[b]))c._dispatchListeners=ic(c._dispatchListeners,b),c._dispatchInstances=ic(c._dispatchInstances,a)}function Ud(a){if(a&&a.dispatchConfig.phasedRegistrationNames){for(var b=a._targetInst,c=[];b;)c.push(b),b=Rd(b);for(b=c.length;0this.eventPool.length&&this.eventPool.push(a)}function de(a){a.eventPool=[];a.getPooled=ee;a.release=fe}var ge=G.extend({data:null}),he=G.extend({data:null}),ie=[9,13,27,32],je=ya&&\"CompositionEvent\"in window,ke=null;ya&&\"documentMode\"in document&&(ke=document.documentMode);\nvar le=ya&&\"TextEvent\"in window&&!ke,me=ya&&(!je||ke&&8=ke),ne=String.fromCharCode(32),oe={beforeInput:{phasedRegistrationNames:{bubbled:\"onBeforeInput\",captured:\"onBeforeInputCapture\"},dependencies:[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]},compositionEnd:{phasedRegistrationNames:{bubbled:\"onCompositionEnd\",captured:\"onCompositionEndCapture\"},dependencies:\"blur compositionend keydown keypress keyup mousedown\".split(\" \")},compositionStart:{phasedRegistrationNames:{bubbled:\"onCompositionStart\",\ncaptured:\"onCompositionStartCapture\"},dependencies:\"blur compositionstart keydown keypress keyup mousedown\".split(\" \")},compositionUpdate:{phasedRegistrationNames:{bubbled:\"onCompositionUpdate\",captured:\"onCompositionUpdateCapture\"},dependencies:\"blur compositionupdate keydown keypress keyup mousedown\".split(\" \")}},pe=!1;\nfunction qe(a,b){switch(a){case \"keyup\":return-1!==ie.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"blur\":return!0;default:return!1}}function re(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var se=!1;function te(a,b){switch(a){case \"compositionend\":return re(b);case \"keypress\":if(32!==b.which)return null;pe=!0;return ne;case \"textInput\":return a=b.data,a===ne&&pe?null:a;default:return null}}\nfunction ue(a,b){if(se)return\"compositionend\"===a||!je&&qe(a,b)?(a=ae(),$d=Zd=Yd=null,se=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=document.documentMode,df={select:{phasedRegistrationNames:{bubbled:\"onSelect\",captured:\"onSelectCapture\"},dependencies:\"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange\".split(\" \")}},ef=null,ff=null,gf=null,hf=!1;\nfunction jf(a,b){var c=b.window===b?b.document:9===b.nodeType?b:b.ownerDocument;if(hf||null==ef||ef!==td(c))return null;c=ef;\"selectionStart\"in c&&yd(c)?c={start:c.selectionStart,end:c.selectionEnd}:(c=(c.ownerDocument&&c.ownerDocument.defaultView||window).getSelection(),c={anchorNode:c.anchorNode,anchorOffset:c.anchorOffset,focusNode:c.focusNode,focusOffset:c.focusOffset});return gf&&bf(gf,c)?null:(gf=c,a=G.getPooled(df.select,ff,a,b),a.type=\"select\",a.target=ef,Xd(a),a)}\nvar kf={eventTypes:df,extractEvents:function(a,b,c,d,e,f){e=f||(d.window===d?d.document:9===d.nodeType?d:d.ownerDocument);if(!(f=!e)){a:{e=cc(e);f=wa.onSelect;for(var g=0;gzf||(a.current=yf[zf],yf[zf]=null,zf--)}\nfunction I(a,b){zf++;yf[zf]=a.current;a.current=b}var Af={},J={current:Af},K={current:!1},Bf=Af;function Cf(a,b){var c=a.type.contextTypes;if(!c)return Af;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function L(a){a=a.childContextTypes;return null!==a&&void 0!==a}\nfunction Df(){H(K);H(J)}function Ef(a,b,c){if(J.current!==Af)throw Error(u(168));I(J,b);I(K,c)}function Ff(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(u(108,pb(b)||\"Unknown\",e));return n({},c,{},d)}function Gf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Af;Bf=J.current;I(J,a);I(K,K.current);return!0}\nfunction Hf(a,b,c){var d=a.stateNode;if(!d)throw Error(u(169));c?(a=Ff(a,b,Bf),d.__reactInternalMemoizedMergedChildContext=a,H(K),H(J),I(J,a)):H(K);I(K,c)}\nvar If=r.unstable_runWithPriority,Jf=r.unstable_scheduleCallback,Kf=r.unstable_cancelCallback,Lf=r.unstable_requestPaint,Mf=r.unstable_now,Nf=r.unstable_getCurrentPriorityLevel,Of=r.unstable_ImmediatePriority,Pf=r.unstable_UserBlockingPriority,Qf=r.unstable_NormalPriority,Rf=r.unstable_LowPriority,Sf=r.unstable_IdlePriority,Tf={},Uf=r.unstable_shouldYield,Vf=void 0!==Lf?Lf:function(){},Wf=null,Xf=null,Yf=!1,Zf=Mf(),$f=1E4>Zf?Mf:function(){return Mf()-Zf};\nfunction ag(){switch(Nf()){case Of:return 99;case Pf:return 98;case Qf:return 97;case Rf:return 96;case Sf:return 95;default:throw Error(u(332));}}function bg(a){switch(a){case 99:return Of;case 98:return Pf;case 97:return Qf;case 96:return Rf;case 95:return Sf;default:throw Error(u(332));}}function cg(a,b){a=bg(a);return If(a,b)}function dg(a,b,c){a=bg(a);return Jf(a,b,c)}function eg(a){null===Wf?(Wf=[a],Xf=Jf(Of,fg)):Wf.push(a);return Tf}function gg(){if(null!==Xf){var a=Xf;Xf=null;Kf(a)}fg()}\nfunction fg(){if(!Yf&&null!==Wf){Yf=!0;var a=0;try{var b=Wf;cg(99,function(){for(;a=b&&(rg=!0),a.firstContext=null)}\nfunction sg(a,b){if(mg!==a&&!1!==b&&0!==b){if(\"number\"!==typeof b||1073741823===b)mg=a,b=1073741823;b={context:a,observedBits:b,next:null};if(null===lg){if(null===kg)throw Error(u(308));lg=b;kg.dependencies={expirationTime:0,firstContext:b,responders:null}}else lg=lg.next=b}return a._currentValue}var tg=!1;function ug(a){a.updateQueue={baseState:a.memoizedState,baseQueue:null,shared:{pending:null},effects:null}}\nfunction vg(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,baseQueue:a.baseQueue,shared:a.shared,effects:a.effects})}function wg(a,b){a={expirationTime:a,suspenseConfig:b,tag:0,payload:null,callback:null,next:null};return a.next=a}function xg(a,b){a=a.updateQueue;if(null!==a){a=a.shared;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}}\nfunction yg(a,b){var c=a.alternate;null!==c&&vg(c,a);a=a.updateQueue;c=a.baseQueue;null===c?(a.baseQueue=b.next=b,b.next=b):(b.next=c.next,c.next=b)}\nfunction zg(a,b,c,d){var e=a.updateQueue;tg=!1;var f=e.baseQueue,g=e.shared.pending;if(null!==g){if(null!==f){var h=f.next;f.next=g.next;g.next=h}f=g;e.shared.pending=null;h=a.alternate;null!==h&&(h=h.updateQueue,null!==h&&(h.baseQueue=g))}if(null!==f){h=f.next;var k=e.baseState,l=0,m=null,p=null,x=null;if(null!==h){var z=h;do{g=z.expirationTime;if(gl&&(l=g)}else{null!==x&&(x=x.next={expirationTime:1073741823,suspenseConfig:z.suspenseConfig,tag:z.tag,payload:z.payload,callback:z.callback,next:null});Ag(g,z.suspenseConfig);a:{var D=a,t=z;g=b;ca=c;switch(t.tag){case 1:D=t.payload;if(\"function\"===typeof D){k=D.call(ca,k,g);break a}k=D;break a;case 3:D.effectTag=D.effectTag&-4097|64;case 0:D=t.payload;g=\"function\"===typeof D?D.call(ca,k,g):D;if(null===g||void 0===g)break a;k=n({},k,g);break a;case 2:tg=!0}}null!==z.callback&&\n(a.effectTag|=32,g=e.effects,null===g?e.effects=[z]:g.push(z))}z=z.next;if(null===z||z===h)if(g=e.shared.pending,null===g)break;else z=f.next=g.next,g.next=h,e.baseQueue=f=g,e.shared.pending=null}while(1)}null===x?m=k:x.next=p;e.baseState=m;e.baseQueue=x;Bg(l);a.expirationTime=l;a.memoizedState=k}}\nfunction Cg(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;by?(A=m,m=null):A=m.sibling;var q=x(e,m,h[y],k);if(null===q){null===m&&(m=A);break}a&&\nm&&null===q.alternate&&b(e,m);g=f(q,g,y);null===t?l=q:t.sibling=q;t=q;m=A}if(y===h.length)return c(e,m),l;if(null===m){for(;yy?(A=t,t=null):A=t.sibling;var D=x(e,t,q.value,l);if(null===D){null===t&&(t=A);break}a&&t&&null===D.alternate&&b(e,t);g=f(D,g,y);null===m?k=D:m.sibling=D;m=D;t=A}if(q.done)return c(e,t),k;if(null===t){for(;!q.done;y++,q=h.next())q=p(e,q.value,l),null!==q&&(g=f(q,g,y),null===m?k=q:m.sibling=q,m=q);return k}for(t=d(e,t);!q.done;y++,q=h.next())q=z(t,e,y,q.value,l),null!==q&&(a&&null!==\nq.alternate&&t.delete(null===q.key?y:q.key),g=f(q,g,y),null===m?k=q:m.sibling=q,m=q);a&&t.forEach(function(a){return b(e,a)});return k}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ab&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case Za:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ab){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,\nk.sibling);d=e(k,f.props);d.ref=Pg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ab?(d=Wg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Ug(f.type,f.key,f.props,null,a.mode,h),h.ref=Pg(a,d,f),h.return=a,a=h)}return g(a);case $a:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=\nd.sibling}d=Vg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Tg(f,a.mode,h),d.return=a,a=d),g(a);if(Og(f))return ca(a,d,f,h);if(nb(f))return D(a,d,f,h);l&&Qg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 0:throw a=a.type,Error(u(152,a.displayName||a.name||\"Component\"));}return c(a,d)}}var Xg=Rg(!0),Yg=Rg(!1),Zg={},$g={current:Zg},ah={current:Zg},bh={current:Zg};\nfunction ch(a){if(a===Zg)throw Error(u(174));return a}function dh(a,b){I(bh,b);I(ah,a);I($g,Zg);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:Ob(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=Ob(b,a)}H($g);I($g,b)}function eh(){H($g);H(ah);H(bh)}function fh(a){ch(bh.current);var b=ch($g.current);var c=Ob(b,a.type);b!==c&&(I(ah,a),I($g,c))}function gh(a){ah.current===a&&(H($g),H(ah))}var M={current:0};\nfunction hh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||c.data===Bd||c.data===Cd))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.effectTag&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}function ih(a,b){return{responder:a,props:b}}\nvar jh=Wa.ReactCurrentDispatcher,kh=Wa.ReactCurrentBatchConfig,lh=0,N=null,O=null,P=null,mh=!1;function Q(){throw Error(u(321));}function nh(a,b){if(null===b)return!1;for(var c=0;cf))throw Error(u(301));f+=1;P=O=null;b.updateQueue=null;jh.current=rh;a=c(d,e)}while(b.expirationTime===lh)}jh.current=sh;b=null!==O&&null!==O.next;lh=0;P=O=N=null;mh=!1;if(b)throw Error(u(300));return a}\nfunction th(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===P?N.memoizedState=P=a:P=P.next=a;return P}function uh(){if(null===O){var a=N.alternate;a=null!==a?a.memoizedState:null}else a=O.next;var b=null===P?N.memoizedState:P.next;if(null!==b)P=b,O=a;else{if(null===a)throw Error(u(310));O=a;a={memoizedState:O.memoizedState,baseState:O.baseState,baseQueue:O.baseQueue,queue:O.queue,next:null};null===P?N.memoizedState=P=a:P=P.next=a}return P}\nfunction vh(a,b){return\"function\"===typeof b?b(a):b}\nfunction wh(a){var b=uh(),c=b.queue;if(null===c)throw Error(u(311));c.lastRenderedReducer=a;var d=O,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.expirationTime;if(lN.expirationTime&&\n(N.expirationTime=l,Bg(l))}else null!==h&&(h=h.next={expirationTime:1073741823,suspenseConfig:k.suspenseConfig,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),Ag(l,k.suspenseConfig),d=k.eagerReducer===a?k.eagerState:a(d,k.action);k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;$e(d,b.memoizedState)||(rg=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction xh(a){var b=uh(),c=b.queue;if(null===c)throw Error(u(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);$e(f,b.memoizedState)||(rg=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction yh(a){var b=th();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a=b.queue={pending:null,dispatch:null,lastRenderedReducer:vh,lastRenderedState:a};a=a.dispatch=zh.bind(null,N,a);return[b.memoizedState,a]}function Ah(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=N.updateQueue;null===b?(b={lastEffect:null},N.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}\nfunction Bh(){return uh().memoizedState}function Ch(a,b,c,d){var e=th();N.effectTag|=a;e.memoizedState=Ah(1|b,c,void 0,void 0===d?null:d)}function Dh(a,b,c,d){var e=uh();d=void 0===d?null:d;var f=void 0;if(null!==O){var g=O.memoizedState;f=g.destroy;if(null!==d&&nh(d,g.deps)){Ah(b,c,f,d);return}}N.effectTag|=a;e.memoizedState=Ah(1|b,c,f,d)}function Eh(a,b){return Ch(516,4,a,b)}function Fh(a,b){return Dh(516,4,a,b)}function Gh(a,b){return Dh(4,2,a,b)}\nfunction Hh(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function Ih(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Dh(4,2,Hh.bind(null,b,a),c)}function Jh(){}function Kh(a,b){th().memoizedState=[a,void 0===b?null:b];return a}function Lh(a,b){var c=uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&nh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}\nfunction Mh(a,b){var c=uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&nh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}function Nh(a,b,c){var d=ag();cg(98>d?98:d,function(){a(!0)});cg(97\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(e,{is:d.is}):(a=g.createElement(e),\"select\"===e&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,e);a[Md]=b;a[Nd]=d;ni(a,b,!1,!1);b.stateNode=a;g=pd(e,d);switch(e){case \"iframe\":case \"object\":case \"embed\":F(\"load\",\na);h=d;break;case \"video\":case \"audio\":for(h=0;hd.tailExpiration&&1b)&&tj.set(a,b)))}}\nfunction xj(a,b){a.expirationTimea?c:a;return 2>=a&&b!==a?0:a}\nfunction Z(a){if(0!==a.lastExpiredTime)a.callbackExpirationTime=1073741823,a.callbackPriority=99,a.callbackNode=eg(yj.bind(null,a));else{var b=zj(a),c=a.callbackNode;if(0===b)null!==c&&(a.callbackNode=null,a.callbackExpirationTime=0,a.callbackPriority=90);else{var d=Gg();1073741823===b?d=99:1===b||2===b?d=95:(d=10*(1073741821-b)-10*(1073741821-d),d=0>=d?99:250>=d?98:5250>=d?97:95);if(null!==c){var e=a.callbackPriority;if(a.callbackExpirationTime===b&&e>=d)return;c!==Tf&&Kf(c)}a.callbackExpirationTime=\nb;a.callbackPriority=d;b=1073741823===b?eg(yj.bind(null,a)):dg(d,Bj.bind(null,a),{timeout:10*(1073741821-b)-$f()});a.callbackNode=b}}}\nfunction Bj(a,b){wj=0;if(b)return b=Gg(),Cj(a,b),Z(a),null;var c=zj(a);if(0!==c){b=a.callbackNode;if((W&(fj|gj))!==V)throw Error(u(327));Dj();a===T&&c===U||Ej(a,c);if(null!==X){var d=W;W|=fj;var e=Fj();do try{Gj();break}catch(h){Hj(a,h)}while(1);ng();W=d;cj.current=e;if(S===hj)throw b=kj,Ej(a,c),xi(a,c),Z(a),b;if(null===X)switch(e=a.finishedWork=a.current.alternate,a.finishedExpirationTime=c,d=S,T=null,d){case ti:case hj:throw Error(u(345));case ij:Cj(a,2=c){a.lastPingedTime=c;Ej(a,c);break}}f=zj(a);if(0!==f&&f!==c)break;if(0!==d&&d!==c){a.lastPingedTime=d;break}a.timeoutHandle=Hd(Jj.bind(null,a),e);break}Jj(a);break;case vi:xi(a,c);d=a.lastSuspendedTime;c===d&&(a.nextKnownPendingLevel=Ij(e));if(oj&&(e=a.lastPingedTime,0===e||e>=c)){a.lastPingedTime=c;Ej(a,c);break}e=zj(a);if(0!==e&&e!==c)break;if(0!==d&&d!==c){a.lastPingedTime=\nd;break}1073741823!==mj?d=10*(1073741821-mj)-$f():1073741823===lj?d=0:(d=10*(1073741821-lj)-5E3,e=$f(),c=10*(1073741821-c)-e,d=e-d,0>d&&(d=0),d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*bj(d/1960))-d,c=d?d=0:(e=g.busyDelayMs|0,f=$f()-(10*(1073741821-f)-(g.timeoutMs|0||5E3)),d=f<=e?0:e+d-f);if(10 component higher in the tree to provide a loading indicator or placeholder to display.\"+qb(g))}S!==\njj&&(S=ij);h=Ai(h,g);p=f;do{switch(p.tag){case 3:k=h;p.effectTag|=4096;p.expirationTime=b;var B=Xi(p,k,b);yg(p,B);break a;case 1:k=h;var w=p.type,ub=p.stateNode;if(0===(p.effectTag&64)&&(\"function\"===typeof w.getDerivedStateFromError||null!==ub&&\"function\"===typeof ub.componentDidCatch&&(null===aj||!aj.has(ub)))){p.effectTag|=4096;p.expirationTime=b;var vb=$i(p,k,b);yg(p,vb);break a}}p=p.return}while(null!==p)}X=Pj(X)}catch(Xc){b=Xc;continue}break}while(1)}\nfunction Fj(){var a=cj.current;cj.current=sh;return null===a?sh:a}function Ag(a,b){awi&&(wi=a)}function Kj(){for(;null!==X;)X=Qj(X)}function Gj(){for(;null!==X&&!Uf();)X=Qj(X)}function Qj(a){var b=Rj(a.alternate,a,U);a.memoizedProps=a.pendingProps;null===b&&(b=Pj(a));dj.current=null;return b}\nfunction Pj(a){X=a;do{var b=X.alternate;a=X.return;if(0===(X.effectTag&2048)){b=si(b,X,U);if(1===U||1!==X.childExpirationTime){for(var c=0,d=X.child;null!==d;){var e=d.expirationTime,f=d.childExpirationTime;e>c&&(c=e);f>c&&(c=f);d=d.sibling}X.childExpirationTime=c}if(null!==b)return b;null!==a&&0===(a.effectTag&2048)&&(null===a.firstEffect&&(a.firstEffect=X.firstEffect),null!==X.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=X.firstEffect),a.lastEffect=X.lastEffect),1a?b:a}function Jj(a){var b=ag();cg(99,Sj.bind(null,a,b));return null}\nfunction Sj(a,b){do Dj();while(null!==rj);if((W&(fj|gj))!==V)throw Error(u(327));var c=a.finishedWork,d=a.finishedExpirationTime;if(null===c)return null;a.finishedWork=null;a.finishedExpirationTime=0;if(c===a.current)throw Error(u(177));a.callbackNode=null;a.callbackExpirationTime=0;a.callbackPriority=90;a.nextKnownPendingLevel=0;var e=Ij(c);a.firstPendingTime=e;d<=a.lastSuspendedTime?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:d<=a.firstSuspendedTime&&(a.firstSuspendedTime=\nd-1);d<=a.lastPingedTime&&(a.lastPingedTime=0);d<=a.lastExpiredTime&&(a.lastExpiredTime=0);a===T&&(X=T=null,U=0);1h&&(l=h,h=g,g=l),l=vd(q,g),m=vd(q,h),l&&m&&(1!==w.rangeCount||w.anchorNode!==l.node||w.anchorOffset!==l.offset||w.focusNode!==m.node||w.focusOffset!==m.offset)&&(B=B.createRange(),B.setStart(l.node,l.offset),w.removeAllRanges(),g>h?(w.addRange(B),w.extend(m.node,m.offset)):(B.setEnd(m.node,m.offset),w.addRange(B))))));B=[];for(w=q;w=w.parentNode;)1===w.nodeType&&B.push({element:w,left:w.scrollLeft,\ntop:w.scrollTop});\"function\"===typeof q.focus&&q.focus();for(q=0;q=c)return ji(a,b,c);I(M,M.current&1);b=$h(a,b,c);return null!==b?b.sibling:null}I(M,M.current&1);break;case 19:d=b.childExpirationTime>=c;if(0!==(a.effectTag&64)){if(d)return mi(a,b,c);b.effectTag|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null);I(M,M.current);if(!d)return null}return $h(a,b,c)}rg=!1}}else rg=!1;b.expirationTime=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2);a=b.pendingProps;e=Cf(b,J.current);qg(b,c);e=oh(null,\nb,d,a,e,c);b.effectTag|=1;if(\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(L(d)){var f=!0;Gf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;ug(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Fg(b,d,g,a);e.updater=Jg;b.stateNode=e;e._reactInternalFiber=b;Ng(b,d,a,c);b=gi(null,b,d,!0,f,c)}else b.tag=0,R(null,b,e,c),b=b.child;return b;case 16:a:{e=b.elementType;null!==a&&(a.alternate=\nnull,b.alternate=null,b.effectTag|=2);a=b.pendingProps;ob(e);if(1!==e._status)throw e._result;e=e._result;b.type=e;f=b.tag=Xj(e);a=ig(e,a);switch(f){case 0:b=di(null,b,e,a,c);break a;case 1:b=fi(null,b,e,a,c);break a;case 11:b=Zh(null,b,e,a,c);break a;case 14:b=ai(null,b,e,ig(e.type,a),d,c);break a}throw Error(u(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),di(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),fi(a,b,d,e,c);\ncase 3:hi(b);d=b.updateQueue;if(null===a||null===d)throw Error(u(282));d=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;vg(a,b);zg(b,d,null,c);d=b.memoizedState.element;if(d===e)Xh(),b=$h(a,b,c);else{if(e=b.stateNode.hydrate)Ph=Jd(b.stateNode.containerInfo.firstChild),Oh=b,e=Qh=!0;if(e)for(c=Yg(b,null,d,c),b.child=c;c;)c.effectTag=c.effectTag&-3|1024,c=c.sibling;else R(a,b,d,c),Xh();b=b.child}return b;case 5:return fh(b),null===a&&Uh(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:\nnull,g=e.children,Gd(d,e)?g=null:null!==f&&Gd(d,f)&&(b.effectTag|=16),ei(a,b),b.mode&4&&1!==c&&e.hidden?(b.expirationTime=b.childExpirationTime=1,b=null):(R(a,b,g,c),b=b.child),b;case 6:return null===a&&Uh(b),null;case 13:return ji(a,b,c);case 4:return dh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Xg(b,null,d,c):R(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),Zh(a,b,d,e,c);case 7:return R(a,b,b.pendingProps,c),b.child;case 8:return R(a,\nb,b.pendingProps.children,c),b.child;case 12:return R(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;g=b.memoizedProps;f=e.value;var h=b.type._context;I(jg,h._currentValue);h._currentValue=f;if(null!==g)if(h=g.value,f=$e(h,f)?0:(\"function\"===typeof d._calculateChangedBits?d._calculateChangedBits(h,f):1073741823)|0,0===f){if(g.children===e.children&&!K.current){b=$h(a,b,c);break a}}else for(h=b.child,null!==h&&(h.return=b);null!==h;){var k=h.dependencies;if(null!==\nk){g=h.child;for(var l=k.firstContext;null!==l;){if(l.context===d&&0!==(l.observedBits&f)){1===h.tag&&(l=wg(c,null),l.tag=2,xg(h,l));h.expirationTime=b&&a<=b}function xi(a,b){var c=a.firstSuspendedTime,d=a.lastSuspendedTime;cb||0===c)a.lastSuspendedTime=b;b<=a.lastPingedTime&&(a.lastPingedTime=0);b<=a.lastExpiredTime&&(a.lastExpiredTime=0)}\nfunction yi(a,b){b>a.firstPendingTime&&(a.firstPendingTime=b);var c=a.firstSuspendedTime;0!==c&&(b>=c?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:b>=a.lastSuspendedTime&&(a.lastSuspendedTime=b+1),b>a.nextKnownPendingLevel&&(a.nextKnownPendingLevel=b))}function Cj(a,b){var c=a.lastExpiredTime;if(0===c||c>b)a.lastExpiredTime=b}\nfunction bk(a,b,c,d){var e=b.current,f=Gg(),g=Dg.suspense;f=Hg(f,e,g);a:if(c){c=c._reactInternalFiber;b:{if(dc(c)!==c||1!==c.tag)throw Error(u(170));var h=c;do{switch(h.tag){case 3:h=h.stateNode.context;break b;case 1:if(L(h.type)){h=h.stateNode.__reactInternalMemoizedMergedChildContext;break b}}h=h.return}while(null!==h);throw Error(u(171));}if(1===c.tag){var k=c.type;if(L(k)){c=Ff(c,k,h);break a}}c=h}else c=Af;null===b.context?b.context=c:b.pendingContext=c;b=wg(f,g);b.payload={element:a};d=void 0===\nd?null:d;null!==d&&(b.callback=d);xg(e,b);Ig(e,f);return f}function ck(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function dk(a,b){a=a.memoizedState;null!==a&&null!==a.dehydrated&&a.retryTime=G};l=function(){};exports.unstable_forceFrameRate=function(a){0>a||125>>1,e=a[d];if(void 0!==e&&0K(n,c))void 0!==r&&0>K(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>K(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function K(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var N=[],O=[],P=1,Q=null,R=3,S=!1,T=!1,U=!1;\nfunction V(a){for(var b=L(O);null!==b;){if(null===b.callback)M(O);else if(b.startTime<=a)M(O),b.sortIndex=b.expirationTime,J(N,b);else break;b=L(O)}}function W(a){U=!1;V(a);if(!T)if(null!==L(N))T=!0,f(X);else{var b=L(O);null!==b&&g(W,b.startTime-a)}}\nfunction X(a,b){T=!1;U&&(U=!1,h());S=!0;var c=R;try{V(b);for(Q=L(N);null!==Q&&(!(Q.expirationTime>b)||a&&!k());){var d=Q.callback;if(null!==d){Q.callback=null;R=Q.priorityLevel;var e=d(Q.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?Q.callback=e:Q===L(N)&&M(N);V(b)}else M(N);Q=L(N)}if(null!==Q)var m=!0;else{var n=L(O);null!==n&&g(W,n.startTime-b);m=!1}return m}finally{Q=null,R=c,S=!1}}\nfunction Y(a){switch(a){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1E4;default:return 5E3}}var Z=l;exports.unstable_IdlePriority=5;exports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){T||S||(T=!0,f(X))};\nexports.unstable_getCurrentPriorityLevel=function(){return R};exports.unstable_getFirstCallbackNode=function(){return L(N)};exports.unstable_next=function(a){switch(R){case 1:case 2:case 3:var b=3;break;default:b=R}var c=R;R=b;try{return a()}finally{R=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=Z;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=R;R=a;try{return b()}finally{R=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();if(\"object\"===typeof c&&null!==c){var e=c.delay;e=\"number\"===typeof e&&0d?(a.sortIndex=e,J(O,a),null===L(N)&&a===L(O)&&(U?h():U=!0,g(W,e-d))):(a.sortIndex=c,J(N,a),T||S||(T=!0,f(X)));return a};\nexports.unstable_shouldYield=function(){var a=exports.unstable_now();V(a);var b=L(N);return b!==Q&&null!==Q&&null!==b&&null!==b.callback&&b.startTime<=a&&b.expirationTime\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = throttle;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n /*\r\n * https://github.com/oblador/angular-scroll (duScrollDefaultEasing)\r\n */\n defaultEasing: function defaultEasing(x) {\n if (x < 0.5) {\n return Math.pow(x * 2, 2) / 2;\n }\n return 1 - Math.pow((1 - x) * 2, 2) / 2;\n },\n /*\r\n * https://gist.github.com/gre/1650294\r\n */\n // no easing, no acceleration\n linear: function linear(x) {\n return x;\n },\n // accelerating from zero velocity\n easeInQuad: function easeInQuad(x) {\n return x * x;\n },\n // decelerating to zero velocity\n easeOutQuad: function easeOutQuad(x) {\n return x * (2 - x);\n },\n // acceleration until halfway, then deceleration\n easeInOutQuad: function easeInOutQuad(x) {\n return x < .5 ? 2 * x * x : -1 + (4 - 2 * x) * x;\n },\n // accelerating from zero velocity \n easeInCubic: function easeInCubic(x) {\n return x * x * x;\n },\n // decelerating to zero velocity π\n easeOutCubic: function easeOutCubic(x) {\n return --x * x * x + 1;\n },\n // acceleration until halfway, then deceleration \n easeInOutCubic: function easeInOutCubic(x) {\n return x < .5 ? 4 * x * x * x : (x - 1) * (2 * x - 2) * (2 * x - 2) + 1;\n },\n // accelerating from zero velocity \n easeInQuart: function easeInQuart(x) {\n return x * x * x * x;\n },\n // decelerating to zero velocity \n easeOutQuart: function easeOutQuart(x) {\n return 1 - --x * x * x * x;\n },\n // acceleration until halfway, then deceleration\n easeInOutQuart: function easeInOutQuart(x) {\n return x < .5 ? 8 * x * x * x * x : 1 - 8 * --x * x * x * x;\n },\n // accelerating from zero velocity\n easeInQuint: function easeInQuint(x) {\n return x * x * x * x * x;\n },\n // decelerating to zero velocity\n easeOutQuint: function easeOutQuint(x) {\n return 1 + --x * x * x * x * x;\n },\n // acceleration until halfway, then deceleration \n easeInOutQuint: function easeInOutQuint(x) {\n return x < .5 ? 16 * x * x * x * x * x : 1 + 16 * --x * x * x * x * x;\n }\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _passiveEventListeners = require('./passive-event-listeners');\n\nvar events = ['mousedown', 'mousewheel', 'touchmove', 'keydown'];\n\nexports.default = {\n subscribe: function subscribe(cancelEvent) {\n return typeof document !== 'undefined' && events.forEach(function (event) {\n return (0, _passiveEventListeners.addPassiveEventListener)(document, event, cancelEvent);\n });\n }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _scrollLink = require('../mixins/scroll-link');\n\nvar _scrollLink2 = _interopRequireDefault(_scrollLink);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ButtonElement = function (_React$Component) {\n _inherits(ButtonElement, _React$Component);\n\n function ButtonElement() {\n _classCallCheck(this, ButtonElement);\n\n return _possibleConstructorReturn(this, (ButtonElement.__proto__ || Object.getPrototypeOf(ButtonElement)).apply(this, arguments));\n }\n\n _createClass(ButtonElement, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n 'input',\n this.props,\n this.props.children\n );\n }\n }]);\n\n return ButtonElement;\n}(_react2.default.Component);\n\n;\n\nexports.default = (0, _scrollLink2.default)(ButtonElement);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _scrollElement = require('../mixins/scroll-element');\n\nvar _scrollElement2 = _interopRequireDefault(_scrollElement);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ElementWrapper = function (_React$Component) {\n _inherits(ElementWrapper, _React$Component);\n\n function ElementWrapper() {\n _classCallCheck(this, ElementWrapper);\n\n return _possibleConstructorReturn(this, (ElementWrapper.__proto__ || Object.getPrototypeOf(ElementWrapper)).apply(this, arguments));\n }\n\n _createClass(ElementWrapper, [{\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n // Remove `parentBindings` from props\n var newProps = _extends({}, this.props);\n if (newProps.parentBindings) {\n delete newProps.parentBindings;\n }\n\n return _react2.default.createElement(\n 'div',\n _extends({}, newProps, { ref: function ref(el) {\n _this2.props.parentBindings.domNode = el;\n } }),\n this.props.children\n );\n }\n }]);\n\n return ElementWrapper;\n}(_react2.default.Component);\n\n;\n\nElementWrapper.propTypes = {\n name: _propTypes2.default.string,\n id: _propTypes2.default.string\n};\n\nexports.default = (0, _scrollElement2.default)(ElementWrapper);","\"use strict\";\n\n/* DEPRECATED */\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar React = require('react');\nvar ReactDOM = require('react-dom');\n\nvar utils = require('./utils');\nvar scrollSpy = require('./scroll-spy');\nvar defaultScroller = require('./scroller');\nvar PropTypes = require('prop-types');\nvar scrollHash = require('./scroll-hash');\n\nvar protoTypes = {\n to: PropTypes.string.isRequired,\n containerId: PropTypes.string,\n container: PropTypes.object,\n activeClass: PropTypes.string,\n spy: PropTypes.bool,\n smooth: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n offset: PropTypes.number,\n delay: PropTypes.number,\n isDynamic: PropTypes.bool,\n onClick: PropTypes.func,\n duration: PropTypes.oneOfType([PropTypes.number, PropTypes.func]),\n absolute: PropTypes.bool,\n onSetActive: PropTypes.func,\n onSetInactive: PropTypes.func,\n ignoreCancelEvents: PropTypes.bool,\n hashSpy: PropTypes.bool\n};\n\nvar Helpers = {\n Scroll: function Scroll(Component, customScroller) {\n\n console.warn(\"Helpers.Scroll is deprecated since v1.7.0\");\n\n var scroller = customScroller || defaultScroller;\n\n var Scroll = function (_React$Component) {\n _inherits(Scroll, _React$Component);\n\n function Scroll(props) {\n _classCallCheck(this, Scroll);\n\n var _this = _possibleConstructorReturn(this, (Scroll.__proto__ || Object.getPrototypeOf(Scroll)).call(this, props));\n\n _initialiseProps.call(_this);\n\n _this.state = {\n active: false\n };\n return _this;\n }\n\n _createClass(Scroll, [{\n key: 'getScrollSpyContainer',\n value: function getScrollSpyContainer() {\n var containerId = this.props.containerId;\n var container = this.props.container;\n\n if (containerId) {\n return document.getElementById(containerId);\n }\n\n if (container && container.nodeType) {\n return container;\n }\n\n return document;\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (this.props.spy || this.props.hashSpy) {\n var scrollSpyContainer = this.getScrollSpyContainer();\n\n if (!scrollSpy.isMounted(scrollSpyContainer)) {\n scrollSpy.mount(scrollSpyContainer);\n }\n\n if (this.props.hashSpy) {\n if (!scrollHash.isMounted()) {\n scrollHash.mount(scroller);\n }\n scrollHash.mapContainer(this.props.to, scrollSpyContainer);\n }\n\n if (this.props.spy) {\n scrollSpy.addStateHandler(this.stateHandler);\n }\n\n scrollSpy.addSpyHandler(this.spyHandler, scrollSpyContainer);\n\n this.setState({\n container: scrollSpyContainer\n });\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n scrollSpy.unmount(this.stateHandler, this.spyHandler);\n }\n }, {\n key: 'render',\n value: function render() {\n var className = \"\";\n\n if (this.state && this.state.active) {\n className = ((this.props.className || \"\") + \" \" + (this.props.activeClass || \"active\")).trim();\n } else {\n className = this.props.className;\n }\n\n var props = _extends({}, this.props);\n\n for (var prop in protoTypes) {\n if (props.hasOwnProperty(prop)) {\n delete props[prop];\n }\n }\n\n props.className = className;\n props.onClick = this.handleClick;\n\n return React.createElement(Component, props);\n }\n }]);\n\n return Scroll;\n }(React.Component);\n\n var _initialiseProps = function _initialiseProps() {\n var _this2 = this;\n\n this.scrollTo = function (to, props) {\n scroller.scrollTo(to, _extends({}, _this2.state, props));\n };\n\n this.handleClick = function (event) {\n\n /*\r\n * give the posibility to override onClick\r\n */\n\n if (_this2.props.onClick) {\n _this2.props.onClick(event);\n }\n\n /*\r\n * dont bubble the navigation\r\n */\n\n if (event.stopPropagation) event.stopPropagation();\n if (event.preventDefault) event.preventDefault();\n\n /*\r\n * do the magic!\r\n */\n _this2.scrollTo(_this2.props.to, _this2.props);\n };\n\n this.stateHandler = function () {\n if (scroller.getActiveLink() !== _this2.props.to) {\n if (_this2.state !== null && _this2.state.active && _this2.props.onSetInactive) {\n _this2.props.onSetInactive();\n }\n _this2.setState({ active: false });\n }\n };\n\n this.spyHandler = function (y) {\n\n var scrollSpyContainer = _this2.getScrollSpyContainer();\n\n if (scrollHash.isMounted() && !scrollHash.isInitialized()) {\n return;\n }\n\n var to = _this2.props.to;\n var element = null;\n var elemTopBound = 0;\n var elemBottomBound = 0;\n var containerTop = 0;\n\n if (scrollSpyContainer.getBoundingClientRect) {\n var containerCords = scrollSpyContainer.getBoundingClientRect();\n containerTop = containerCords.top;\n }\n\n if (!element || _this2.props.isDynamic) {\n element = scroller.get(to);\n if (!element) {\n return;\n }\n\n var cords = element.getBoundingClientRect();\n elemTopBound = cords.top - containerTop + y;\n elemBottomBound = elemTopBound + cords.height;\n }\n\n var offsetY = y - _this2.props.offset;\n var isInside = offsetY >= Math.floor(elemTopBound) && offsetY < Math.floor(elemBottomBound);\n var isOutside = offsetY < Math.floor(elemTopBound) || offsetY >= Math.floor(elemBottomBound);\n var activeLink = scroller.getActiveLink();\n\n if (isOutside) {\n if (to === activeLink) {\n scroller.setActiveLink(void 0);\n }\n\n if (_this2.props.hashSpy && scrollHash.getHash() === to) {\n scrollHash.changeHash();\n }\n\n if (_this2.props.spy && _this2.state.active) {\n _this2.setState({ active: false });\n _this2.props.onSetInactive && _this2.props.onSetInactive();\n }\n\n return scrollSpy.updateStates();\n }\n\n if (isInside && activeLink !== to) {\n scroller.setActiveLink(to);\n\n _this2.props.hashSpy && scrollHash.changeHash(to);\n\n if (_this2.props.spy) {\n _this2.setState({ active: true });\n _this2.props.onSetActive && _this2.props.onSetActive(to);\n }\n return scrollSpy.updateStates();\n }\n };\n };\n\n ;\n\n Scroll.propTypes = protoTypes;\n\n Scroll.defaultProps = { offset: 0 };\n\n return Scroll;\n },\n Element: function Element(Component) {\n\n console.warn(\"Helpers.Element is deprecated since v1.7.0\");\n\n var Element = function (_React$Component2) {\n _inherits(Element, _React$Component2);\n\n function Element(props) {\n _classCallCheck(this, Element);\n\n var _this3 = _possibleConstructorReturn(this, (Element.__proto__ || Object.getPrototypeOf(Element)).call(this, props));\n\n _this3.childBindings = {\n domNode: null\n };\n return _this3;\n }\n\n _createClass(Element, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (typeof window === 'undefined') {\n return false;\n }\n this.registerElems(this.props.name);\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps) {\n if (this.props.name !== prevProps.name) {\n this.registerElems(this.props.name);\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (typeof window === 'undefined') {\n return false;\n }\n defaultScroller.unregister(this.props.name);\n }\n }, {\n key: 'registerElems',\n value: function registerElems(name) {\n defaultScroller.register(name, this.childBindings.domNode);\n }\n }, {\n key: 'render',\n value: function render() {\n return React.createElement(Component, _extends({}, this.props, { parentBindings: this.childBindings }));\n }\n }]);\n\n return Element;\n }(React.Component);\n\n ;\n\n Element.propTypes = {\n name: PropTypes.string,\n id: PropTypes.string\n };\n\n return Element;\n }\n};\n\nmodule.exports = Helpers;","function _extends() {\n module.exports = _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends;","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _menuFactory = require('../menuFactory');\n\nvar _menuFactory2 = _interopRequireDefault(_menuFactory);\n\nvar styles = {};\n\nexports['default'] = (0, _menuFactory2['default'])(styles);\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\nvar styles = {\n overlay: function overlay(isOpen) {\n return {\n position: 'fixed',\n zIndex: 1000,\n width: '100%',\n height: '100%',\n background: 'rgba(0, 0, 0, 0.3)',\n opacity: isOpen ? 1 : 0,\n MozTransform: isOpen ? '' : 'translate3d(100%, 0, 0)',\n MsTransform: isOpen ? '' : 'translate3d(100%, 0, 0)',\n OTransform: isOpen ? '' : 'translate3d(100%, 0, 0)',\n WebkitTransform: isOpen ? '' : 'translate3d(100%, 0, 0)',\n transform: isOpen ? '' : 'translate3d(100%, 0, 0)',\n transition: isOpen ? 'opacity 0.3s' : 'opacity 0.3s, transform 0s 0.3s'\n };\n },\n\n menuWrap: function menuWrap(isOpen, width, right) {\n return {\n position: 'fixed',\n right: right ? 0 : 'inherit',\n zIndex: 1100,\n width: width,\n height: '100%',\n MozTransform: isOpen ? '' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',\n MsTransform: isOpen ? '' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',\n OTransform: isOpen ? '' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',\n WebkitTransform: isOpen ? '' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',\n transform: isOpen ? '' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',\n transition: 'all 0.5s'\n };\n },\n\n menu: function menu() {\n return {\n height: '100%',\n boxSizing: 'border-box',\n overflow: 'auto'\n };\n },\n\n itemList: function itemList() {\n return {\n height: '100%'\n };\n },\n\n item: function item() {\n return {\n display: 'block'\n };\n }\n};\n\nexports['default'] = styles;\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nvar _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar BurgerIcon = (function (_Component) {\n _inherits(BurgerIcon, _Component);\n\n function BurgerIcon(props) {\n _classCallCheck(this, BurgerIcon);\n\n _get(Object.getPrototypeOf(BurgerIcon.prototype), 'constructor', this).call(this, props);\n this.state = {\n hover: false\n };\n }\n\n _createClass(BurgerIcon, [{\n key: 'getLineStyle',\n value: function getLineStyle(index) {\n return _extends({\n position: 'absolute',\n height: '20%',\n left: 0,\n right: 0,\n top: 20 * (index * 2) + '%',\n opacity: this.state.hover ? 0.6 : 1\n }, this.state.hover && this.props.styles.bmBurgerBarsHover);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this = this;\n\n var icon = undefined;\n var buttonStyle = {\n position: 'absolute',\n left: 0,\n top: 0,\n width: '100%',\n height: '100%',\n margin: 0,\n padding: 0,\n border: 'none',\n fontSize: 0,\n background: 'transparent',\n cursor: 'pointer'\n };\n\n if (this.props.customIcon) {\n var extraProps = {\n className: ('bm-icon ' + (this.props.customIcon.props.className || '')).trim(),\n style: _extends({ width: '100%', height: '100%' }, this.props.styles.bmIcon)\n };\n icon = _react2['default'].cloneElement(this.props.customIcon, extraProps);\n } else {\n icon = _react2['default'].createElement(\n 'span',\n null,\n [0, 1, 2].map(function (bar) {\n return _react2['default'].createElement('span', {\n key: bar,\n className: ('bm-burger-bars ' + _this.props.barClassName + ' ' + (_this.state.hover ? 'bm-burger-bars-hover' : '')).trim(),\n style: _extends({}, _this.getLineStyle(bar), _this.props.styles.bmBurgerBars)\n });\n })\n );\n }\n\n return _react2['default'].createElement(\n 'div',\n {\n className: ('bm-burger-button ' + this.props.className).trim(),\n style: _extends({ zIndex: 1000 }, this.props.styles.bmBurgerButton)\n },\n icon,\n _react2['default'].createElement(\n 'button',\n {\n onClick: this.props.onClick,\n onMouseOver: function () {\n _this.setState({ hover: true });\n if (_this.props.onIconHoverChange) _this.props.onIconHoverChange({ isMouseIn: true });\n },\n onMouseOut: function () {\n _this.setState({ hover: false });\n if (_this.props.onIconHoverChange) _this.props.onIconHoverChange({ isMouseIn: false });\n },\n style: buttonStyle\n },\n 'Open Menu'\n )\n );\n }\n }]);\n\n return BurgerIcon;\n})(_react.Component);\n\nexports['default'] = BurgerIcon;\n\nBurgerIcon.propTypes = {\n barClassName: _propTypes2['default'].string,\n customIcon: _propTypes2['default'].element,\n styles: _propTypes2['default'].object\n};\n\nBurgerIcon.defaultProps = {\n barClassName: '',\n className: '',\n styles: {}\n};\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nvar _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar CrossIcon = (function (_Component) {\n _inherits(CrossIcon, _Component);\n\n function CrossIcon() {\n _classCallCheck(this, CrossIcon);\n\n _get(Object.getPrototypeOf(CrossIcon.prototype), 'constructor', this).apply(this, arguments);\n }\n\n _createClass(CrossIcon, [{\n key: 'getCrossStyle',\n value: function getCrossStyle(type) {\n return {\n position: 'absolute',\n width: 3,\n height: 14,\n transform: type === 'before' ? 'rotate(45deg)' : 'rotate(-45deg)'\n };\n }\n }, {\n key: 'render',\n value: function render() {\n var _this = this;\n\n var icon;\n var buttonWrapperStyle = {\n position: 'absolute',\n width: 24,\n height: 24,\n right: 8,\n top: 8\n };\n var buttonStyle = {\n position: 'absolute',\n left: 0,\n top: 0,\n width: '100%',\n height: '100%',\n margin: 0,\n padding: 0,\n border: 'none',\n fontSize: 0,\n background: 'transparent',\n cursor: 'pointer'\n };\n\n if (this.props.customIcon) {\n var extraProps = {\n className: ('bm-cross ' + (this.props.customIcon.props.className || '')).trim(),\n style: _extends({ width: '100%', height: '100%' }, this.props.styles.bmCross)\n };\n icon = _react2['default'].cloneElement(this.props.customIcon, extraProps);\n } else {\n icon = _react2['default'].createElement(\n 'span',\n { style: { position: 'absolute', top: '6px', right: '14px' } },\n ['before', 'after'].map(function (type, i) {\n return _react2['default'].createElement('span', {\n key: i,\n className: ('bm-cross ' + _this.props.crossClassName).trim(),\n style: _extends({}, _this.getCrossStyle(type), _this.props.styles.bmCross)\n });\n })\n );\n }\n\n return _react2['default'].createElement(\n 'div',\n {\n className: ('bm-cross-button ' + this.props.className).trim(),\n style: _extends({}, buttonWrapperStyle, this.props.styles.bmCrossButton)\n },\n icon,\n _react2['default'].createElement(\n 'button',\n {\n onClick: this.props.onClick,\n style: buttonStyle,\n tabIndex: this.props.tabIndex\n },\n 'Close Menu'\n )\n );\n }\n }]);\n\n return CrossIcon;\n})(_react.Component);\n\nexports['default'] = CrossIcon;\n\nCrossIcon.propTypes = {\n crossClassName: _propTypes2['default'].string,\n customIcon: _propTypes2['default'].element,\n styles: _propTypes2['default'].object,\n tabIndex: _propTypes2['default'].number\n};\n\nCrossIcon.defaultProps = {\n crossClassName: '',\n className: '',\n styles: {},\n tabIndex: 0\n};\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _menuFactory = require('../menuFactory');\n\nvar _menuFactory2 = _interopRequireDefault(_menuFactory);\n\nvar styles = {\n menuWrap: function menuWrap(isOpen, width, right) {\n return {\n MozTransform: isOpen ? '' : right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)',\n MsTransform: isOpen ? '' : right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)',\n OTransform: isOpen ? '' : right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)',\n WebkitTransform: isOpen ? '' : right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)',\n transform: isOpen ? '' : right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)',\n transition: isOpen ? 'transform 0.8s cubic-bezier(0.7, 0, 0.3, 1)' : 'transform 0.4s cubic-bezier(0.7, 0, 0.3, 1)'\n };\n },\n\n item: function item(isOpen, width, right, nthChild) {\n return {\n MozTransform: isOpen ? '' : 'translate3d(0, ' + nthChild * 500 + 'px, 0)',\n MsTransform: isOpen ? '' : 'translate3d(0, ' + nthChild * 500 + 'px, 0)',\n OTransform: isOpen ? '' : 'translate3d(0, ' + nthChild * 500 + 'px, 0)',\n WebkitTransform: isOpen ? '' : 'translate3d(0, ' + nthChild * 500 + 'px, 0)',\n transform: isOpen ? '' : 'translate3d(0, ' + nthChild * 500 + 'px, 0)',\n transition: isOpen ? 'transform 0.8s cubic-bezier(0.7, 0, 0.3, 1)' : 'transform 0s 0.2s cubic-bezier(0.7, 0, 0.3, 1)'\n };\n }\n};\n\nexports['default'] = (0, _menuFactory2['default'])(styles);\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _snapsvgImporter = require('../snapsvgImporter');\n\nvar _snapsvgImporter2 = _interopRequireDefault(_snapsvgImporter);\n\nvar _menuFactory = require('../menuFactory');\n\nvar _menuFactory2 = _interopRequireDefault(_menuFactory);\n\nvar styles = {\n svg: {\n lib: _snapsvgImporter2['default'],\n pathInitial: 'M-1,0h101c0,0-97.833,153.603-97.833,396.167C2.167,627.579,100,800,100,800H-1V0z',\n pathOpen: 'M-1,0h101c0,0,0-1,0,395c0,404,0,405,0,405H-1V0z',\n animate: function animate(path) {\n path.animate({ path: this.pathOpen }, 400, window.mina.easeinout);\n }\n },\n\n morphShape: function morphShape(isOpen, width, right) {\n return {\n position: 'absolute',\n width: 120,\n height: '100%',\n right: right ? 'inherit' : 0,\n left: right ? 0 : 'inherit',\n MozTransform: right ? 'rotateY(180deg)' : '',\n MsTransform: right ? 'rotateY(180deg)' : '',\n OTransform: right ? 'rotateY(180deg)' : '',\n WebkitTransform: right ? 'rotateY(180deg)' : '',\n transform: right ? 'rotateY(180deg)' : ''\n };\n },\n\n menuWrap: function menuWrap(isOpen, width, right) {\n return {\n MozTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',\n MsTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',\n OTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',\n WebkitTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',\n transform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',\n transition: 'all 0.3s'\n };\n },\n\n menu: function menu(isOpen, width, right) {\n return {\n position: 'fixed',\n right: right ? 0 : 'inherit',\n width: 180,\n whiteSpace: 'nowrap',\n boxSizing: 'border-box',\n overflow: 'visible'\n };\n },\n\n itemList: function itemList(isOpen, width, right) {\n if (right) {\n return {\n position: 'relative',\n left: '-110px',\n width: '170%',\n overflow: 'auto'\n };\n }\n },\n\n pageWrap: function pageWrap(isOpen, width, right) {\n return {\n MozTransform: isOpen ? '' : right ? 'translate3d(-100px, 0, 0)' : 'translate3d(100px, 0, 0)',\n MsTransform: isOpen ? '' : right ? 'translate3d(-100px, 0, 0)' : 'translate3d(100px, 0, 0)',\n OTransform: isOpen ? '' : right ? 'translate3d(-100px, 0, 0)' : 'translate3d(100px, 0, 0)',\n WebkitTransform: isOpen ? '' : right ? 'translate3d(-100px, 0, 0)' : 'translate3d(100px, 0, 0)',\n transform: isOpen ? '' : right ? 'translate3d(-100px, 0, 0)' : 'translate3d(100px, 0, 0)',\n transition: isOpen ? 'all 0.3s' : 'all 0.3s 0.1s'\n };\n },\n\n outerContainer: function outerContainer(isOpen) {\n return {\n overflow: isOpen ? '' : 'hidden'\n };\n }\n};\n\nexports['default'] = (0, _menuFactory2['default'])(styles);\nmodule.exports = exports['default'];","window.eve = require('eve')\n\n// Copyright (c) 2017 Adobe Systems Incorporated. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nvar mina = (function (eve) {\n var animations = {},\n requestAnimFrame = window.requestAnimationFrame ||\n window.webkitRequestAnimationFrame ||\n window.mozRequestAnimationFrame ||\n window.oRequestAnimationFrame ||\n window.msRequestAnimationFrame ||\n function (callback) {\n setTimeout(callback, 16, new Date().getTime());\n return true;\n },\n requestID,\n isArray = Array.isArray || function (a) {\n return a instanceof Array ||\n Object.prototype.toString.call(a) == \"[object Array]\";\n },\n idgen = 0,\n idprefix = \"M\" + (+new Date).toString(36),\n ID = function () {\n return idprefix + (idgen++).toString(36);\n },\n diff = function (a, b, A, B) {\n if (isArray(a)) {\n res = [];\n for (var i = 0, ii = a.length; i < ii; i++) {\n res[i] = diff(a[i], b, A[i], B);\n }\n return res;\n }\n var dif = (A - a) / (B - b);\n return function (bb) {\n return a + dif * (bb - b);\n };\n },\n timer = Date.now || function () {\n return +new Date;\n },\n sta = function (val) {\n var a = this;\n if (val == null) {\n return a.s;\n }\n var ds = a.s - val;\n a.b += a.dur * ds;\n a.B += a.dur * ds;\n a.s = val;\n },\n speed = function (val) {\n var a = this;\n if (val == null) {\n return a.spd;\n }\n a.spd = val;\n },\n duration = function (val) {\n var a = this;\n if (val == null) {\n return a.dur;\n }\n a.s = a.s * val / a.dur;\n a.dur = val;\n },\n stopit = function () {\n var a = this;\n delete animations[a.id];\n a.update();\n eve(\"mina.stop.\" + a.id, a);\n },\n pause = function () {\n var a = this;\n if (a.pdif) {\n return;\n }\n delete animations[a.id];\n a.update();\n a.pdif = a.get() - a.b;\n },\n resume = function () {\n var a = this;\n if (!a.pdif) {\n return;\n }\n a.b = a.get() - a.pdif;\n delete a.pdif;\n animations[a.id] = a;\n frame();\n },\n update = function () {\n var a = this,\n res;\n if (isArray(a.start)) {\n res = [];\n for (var j = 0, jj = a.start.length; j < jj; j++) {\n res[j] = +a.start[j] +\n (a.end[j] - a.start[j]) * a.easing(a.s);\n }\n } else {\n res = +a.start + (a.end - a.start) * a.easing(a.s);\n }\n a.set(res);\n },\n frame = function (timeStamp) {\n // Manual invokation?\n if (!timeStamp) {\n // Frame loop stopped?\n if (!requestID) {\n // Start frame loop...\n requestID = requestAnimFrame(frame);\n }\n return;\n }\n var len = 0;\n for (var i in animations) if (animations.hasOwnProperty(i)) {\n var a = animations[i],\n b = a.get(),\n res;\n len++;\n a.s = (b - a.b) / (a.dur / a.spd);\n if (a.s >= 1) {\n delete animations[i];\n a.s = 1;\n len--;\n (function (a) {\n setTimeout(function () {\n eve(\"mina.finish.\" + a.id, a);\n });\n }(a));\n }\n a.update();\n }\n requestID = len ? requestAnimFrame(frame) : false;\n },\n /*\\\n * mina\n [ method ]\n **\n * Generic animation of numbers\n **\n - a (number) start _slave_ number\n - A (number) end _slave_ number\n - b (number) start _master_ number (start time in general case)\n - B (number) end _master_ number (end time in general case)\n - get (function) getter of _master_ number (see @mina.time)\n - set (function) setter of _slave_ number\n - easing (function) #optional easing function, default is @mina.linear\n = (object) animation descriptor\n o {\n o id (string) animation id,\n o start (number) start _slave_ number,\n o end (number) end _slave_ number,\n o b (number) start _master_ number,\n o s (number) animation status (0..1),\n o dur (number) animation duration,\n o spd (number) animation speed,\n o get (function) getter of _master_ number (see @mina.time),\n o set (function) setter of _slave_ number,\n o easing (function) easing function, default is @mina.linear,\n o status (function) status getter/setter,\n o speed (function) speed getter/setter,\n o duration (function) duration getter/setter,\n o stop (function) animation stopper\n o pause (function) pauses the animation\n o resume (function) resumes the animation\n o update (function) calles setter with the right value of the animation\n o }\n \\*/\n mina = function (a, A, b, B, get, set, easing) {\n var anim = {\n id: ID(),\n start: a,\n end: A,\n b: b,\n s: 0,\n dur: B - b,\n spd: 1,\n get: get,\n set: set,\n easing: easing || mina.linear,\n status: sta,\n speed: speed,\n duration: duration,\n stop: stopit,\n pause: pause,\n resume: resume,\n update: update\n };\n animations[anim.id] = anim;\n var len = 0, i;\n for (i in animations) if (animations.hasOwnProperty(i)) {\n len++;\n if (len == 2) {\n break;\n }\n }\n len == 1 && frame();\n return anim;\n };\n /*\\\n * mina.time\n [ method ]\n **\n * Returns the current time. Equivalent to:\n | function () {\n | return (new Date).getTime();\n | }\n \\*/\n mina.time = timer;\n /*\\\n * mina.getById\n [ method ]\n **\n * Returns an animation by its id\n - id (string) animation's id\n = (object) See @mina\n \\*/\n mina.getById = function (id) {\n return animations[id] || null;\n };\n\n /*\\\n * mina.linear\n [ method ]\n **\n * Default linear easing\n - n (number) input 0..1\n = (number) output 0..1\n \\*/\n mina.linear = function (n) {\n return n;\n };\n /*\\\n * mina.easeout\n [ method ]\n **\n * Easeout easing\n - n (number) input 0..1\n = (number) output 0..1\n \\*/\n mina.easeout = function (n) {\n return Math.pow(n, 1.7);\n };\n /*\\\n * mina.easein\n [ method ]\n **\n * Easein easing\n - n (number) input 0..1\n = (number) output 0..1\n \\*/\n mina.easein = function (n) {\n return Math.pow(n, .48);\n };\n /*\\\n * mina.easeinout\n [ method ]\n **\n * Easeinout easing\n - n (number) input 0..1\n = (number) output 0..1\n \\*/\n mina.easeinout = function (n) {\n if (n == 1) {\n return 1;\n }\n if (n == 0) {\n return 0;\n }\n var q = .48 - n / 1.04,\n Q = Math.sqrt(.1734 + q * q),\n x = Q - q,\n X = Math.pow(Math.abs(x), 1 / 3) * (x < 0 ? -1 : 1),\n y = -Q - q,\n Y = Math.pow(Math.abs(y), 1 / 3) * (y < 0 ? -1 : 1),\n t = X + Y + .5;\n return (1 - t) * 3 * t * t + t * t * t;\n };\n /*\\\n * mina.backin\n [ method ]\n **\n * Backin easing\n - n (number) input 0..1\n = (number) output 0..1\n \\*/\n mina.backin = function (n) {\n if (n == 1) {\n return 1;\n }\n var s = 1.70158;\n return n * n * ((s + 1) * n - s);\n };\n /*\\\n * mina.backout\n [ method ]\n **\n * Backout easing\n - n (number) input 0..1\n = (number) output 0..1\n \\*/\n mina.backout = function (n) {\n if (n == 0) {\n return 0;\n }\n n = n - 1;\n var s = 1.70158;\n return n * n * ((s + 1) * n + s) + 1;\n };\n /*\\\n * mina.elastic\n [ method ]\n **\n * Elastic easing\n - n (number) input 0..1\n = (number) output 0..1\n \\*/\n mina.elastic = function (n) {\n if (n == !!n) {\n return n;\n }\n return Math.pow(2, -10 * n) * Math.sin((n - .075) *\n (2 * Math.PI) / .3) + 1;\n };\n /*\\\n * mina.bounce\n [ method ]\n **\n * Bounce easing\n - n (number) input 0..1\n = (number) output 0..1\n \\*/\n mina.bounce = function (n) {\n var s = 7.5625,\n p = 2.75,\n l;\n if (n < 1 / p) {\n l = s * n * n;\n } else {\n if (n < 2 / p) {\n n -= 1.5 / p;\n l = s * n * n + .75;\n } else {\n if (n < 2.5 / p) {\n n -= 2.25 / p;\n l = s * n * n + .9375;\n } else {\n n -= 2.625 / p;\n l = s * n * n + .984375;\n }\n }\n }\n return l;\n };\n window.mina = mina;\n return mina;\n})(typeof eve == \"undefined\" ? function () {} : eve);\n\n// Copyright (c) 2013 - 2017 Adobe Systems Incorporated. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nvar Snap = (function(root) {\nSnap.version = \"0.5.1\";\n/*\\\n * Snap\n [ method ]\n **\n * Creates a drawing surface or wraps existing SVG element.\n **\n - width (number|string) width of surface\n - height (number|string) height of surface\n * or\n - DOM (SVGElement) element to be wrapped into Snap structure\n * or\n - array (array) array of elements (will return set of elements)\n * or\n - query (string) CSS query selector\n = (object) @Element\n\\*/\nfunction Snap(w, h) {\n if (w) {\n if (w.nodeType) {\n return wrap(w);\n }\n if (is(w, \"array\") && Snap.set) {\n return Snap.set.apply(Snap, w);\n }\n if (w instanceof Element) {\n return w;\n }\n if (h == null) {\n try {\n w = glob.doc.querySelector(String(w));\n return wrap(w);\n } catch (e) {\n return null;\n }\n }\n }\n w = w == null ? \"100%\" : w;\n h = h == null ? \"100%\" : h;\n return new Paper(w, h);\n}\nSnap.toString = function () {\n return \"Snap v\" + this.version;\n};\nSnap._ = {};\nvar glob = {\n win: root.window,\n doc: root.window.document\n};\nSnap._.glob = glob;\nvar has = \"hasOwnProperty\",\n Str = String,\n toFloat = parseFloat,\n toInt = parseInt,\n math = Math,\n mmax = math.max,\n mmin = math.min,\n abs = math.abs,\n pow = math.pow,\n PI = math.PI,\n round = math.round,\n E = \"\",\n S = \" \",\n objectToString = Object.prototype.toString,\n ISURL = /^url\\(['\"]?([^\\)]+?)['\"]?\\)$/i,\n colourRegExp = /^\\s*((#[a-f\\d]{6})|(#[a-f\\d]{3})|rgba?\\(\\s*([\\d\\.]+%?\\s*,\\s*[\\d\\.]+%?\\s*,\\s*[\\d\\.]+%?(?:\\s*,\\s*[\\d\\.]+%?)?)\\s*\\)|hsba?\\(\\s*([\\d\\.]+(?:deg|\\xb0|%)?\\s*,\\s*[\\d\\.]+%?\\s*,\\s*[\\d\\.]+(?:%?\\s*,\\s*[\\d\\.]+)?%?)\\s*\\)|hsla?\\(\\s*([\\d\\.]+(?:deg|\\xb0|%)?\\s*,\\s*[\\d\\.]+%?\\s*,\\s*[\\d\\.]+(?:%?\\s*,\\s*[\\d\\.]+)?%?)\\s*\\))\\s*$/i,\n bezierrg = /^(?:cubic-)?bezier\\(([^,]+),([^,]+),([^,]+),([^\\)]+)\\)/,\n separator = Snap._.separator = /[,\\s]+/,\n whitespace = /[\\s]/g,\n commaSpaces = /[\\s]*,[\\s]*/,\n hsrg = {hs: 1, rg: 1},\n pathCommand = /([a-z])[\\s,]*((-?\\d*\\.?\\d*(?:e[\\-+]?\\d+)?[\\s]*,?[\\s]*)+)/ig,\n tCommand = /([rstm])[\\s,]*((-?\\d*\\.?\\d*(?:e[\\-+]?\\d+)?[\\s]*,?[\\s]*)+)/ig,\n pathValues = /(-?\\d*\\.?\\d*(?:e[\\-+]?\\d+)?)[\\s]*,?[\\s]*/ig,\n idgen = 0,\n idprefix = \"S\" + (+new Date).toString(36),\n ID = function (el) {\n return (el && el.type ? el.type : E) + idprefix + (idgen++).toString(36);\n },\n xlink = \"http://www.w3.org/1999/xlink\",\n xmlns = \"http://www.w3.org/2000/svg\",\n hub = {},\n /*\\\n * Snap.url\n [ method ]\n **\n * Wraps path into `\"url('')\"`.\n - value (string) path\n = (string) wrapped path\n \\*/\n URL = Snap.url = function (url) {\n return \"url('#\" + url + \"')\";\n };\n\nfunction $(el, attr) {\n if (attr) {\n if (el == \"#text\") {\n el = glob.doc.createTextNode(attr.text || attr[\"#text\"] || \"\");\n }\n if (el == \"#comment\") {\n el = glob.doc.createComment(attr.text || attr[\"#text\"] || \"\");\n }\n if (typeof el == \"string\") {\n el = $(el);\n }\n if (typeof attr == \"string\") {\n if (el.nodeType == 1) {\n if (attr.substring(0, 6) == \"xlink:\") {\n return el.getAttributeNS(xlink, attr.substring(6));\n }\n if (attr.substring(0, 4) == \"xml:\") {\n return el.getAttributeNS(xmlns, attr.substring(4));\n }\n return el.getAttribute(attr);\n } else if (attr == \"text\") {\n return el.nodeValue;\n } else {\n return null;\n }\n }\n if (el.nodeType == 1) {\n for (var key in attr) if (attr[has](key)) {\n var val = Str(attr[key]);\n if (val) {\n if (key.substring(0, 6) == \"xlink:\") {\n el.setAttributeNS(xlink, key.substring(6), val);\n } else if (key.substring(0, 4) == \"xml:\") {\n el.setAttributeNS(xmlns, key.substring(4), val);\n } else {\n el.setAttribute(key, val);\n }\n } else {\n el.removeAttribute(key);\n }\n }\n } else if (\"text\" in attr) {\n el.nodeValue = attr.text;\n }\n } else {\n el = glob.doc.createElementNS(xmlns, el);\n }\n return el;\n}\nSnap._.$ = $;\nSnap._.id = ID;\nfunction getAttrs(el) {\n var attrs = el.attributes,\n name,\n out = {};\n for (var i = 0; i < attrs.length; i++) {\n if (attrs[i].namespaceURI == xlink) {\n name = \"xlink:\";\n } else {\n name = \"\";\n }\n name += attrs[i].name;\n out[name] = attrs[i].textContent;\n }\n return out;\n}\nfunction is(o, type) {\n type = Str.prototype.toLowerCase.call(type);\n if (type == \"finite\") {\n return isFinite(o);\n }\n if (type == \"array\" &&\n (o instanceof Array || Array.isArray && Array.isArray(o))) {\n return true;\n }\n return type == \"null\" && o === null ||\n type == typeof o && o !== null ||\n type == \"object\" && o === Object(o) ||\n objectToString.call(o).slice(8, -1).toLowerCase() == type;\n}\n/*\\\n * Snap.format\n [ method ]\n **\n * Replaces construction of type `{}` to the corresponding argument\n **\n - token (string) string to format\n - json (object) object which properties are used as a replacement\n = (string) formatted string\n > Usage\n | // this draws a rectangular shape equivalent to \"M10,20h40v50h-40z\"\n | paper.path(Snap.format(\"M{x},{y}h{dim.width}v{dim.height}h{dim['negative width']}z\", {\n | x: 10,\n | y: 20,\n | dim: {\n | width: 40,\n | height: 50,\n | \"negative width\": -40\n | }\n | }));\n\\*/\nSnap.format = (function () {\n var tokenRegex = /\\{([^\\}]+)\\}/g,\n objNotationRegex = /(?:(?:^|\\.)(.+?)(?=\\[|\\.|$|\\()|\\[('|\")(.+?)\\2\\])(\\(\\))?/g, // matches .xxxxx or [\"xxxxx\"] to run over object properties\n replacer = function (all, key, obj) {\n var res = obj;\n key.replace(objNotationRegex, function (all, name, quote, quotedName, isFunc) {\n name = name || quotedName;\n if (res) {\n if (name in res) {\n res = res[name];\n }\n typeof res == \"function\" && isFunc && (res = res());\n }\n });\n res = (res == null || res == obj ? all : res) + \"\";\n return res;\n };\n return function (str, obj) {\n return Str(str).replace(tokenRegex, function (all, key) {\n return replacer(all, key, obj);\n });\n };\n})();\nfunction clone(obj) {\n if (typeof obj == \"function\" || Object(obj) !== obj) {\n return obj;\n }\n var res = new obj.constructor;\n for (var key in obj) if (obj[has](key)) {\n res[key] = clone(obj[key]);\n }\n return res;\n}\nSnap._.clone = clone;\nfunction repush(array, item) {\n for (var i = 0, ii = array.length; i < ii; i++) if (array[i] === item) {\n return array.push(array.splice(i, 1)[0]);\n }\n}\nfunction cacher(f, scope, postprocessor) {\n function newf() {\n var arg = Array.prototype.slice.call(arguments, 0),\n args = arg.join(\"\\u2400\"),\n cache = newf.cache = newf.cache || {},\n count = newf.count = newf.count || [];\n if (cache[has](args)) {\n repush(count, args);\n return postprocessor ? postprocessor(cache[args]) : cache[args];\n }\n count.length >= 1e3 && delete cache[count.shift()];\n count.push(args);\n cache[args] = f.apply(scope, arg);\n return postprocessor ? postprocessor(cache[args]) : cache[args];\n }\n return newf;\n}\nSnap._.cacher = cacher;\nfunction angle(x1, y1, x2, y2, x3, y3) {\n if (x3 == null) {\n var x = x1 - x2,\n y = y1 - y2;\n if (!x && !y) {\n return 0;\n }\n return (180 + math.atan2(-y, -x) * 180 / PI + 360) % 360;\n } else {\n return angle(x1, y1, x3, y3) - angle(x2, y2, x3, y3);\n }\n}\nfunction rad(deg) {\n return deg % 360 * PI / 180;\n}\nfunction deg(rad) {\n return rad * 180 / PI % 360;\n}\nfunction x_y() {\n return this.x + S + this.y;\n}\nfunction x_y_w_h() {\n return this.x + S + this.y + S + this.width + \" \\xd7 \" + this.height;\n}\n\n/*\\\n * Snap.rad\n [ method ]\n **\n * Transform angle to radians\n - deg (number) angle in degrees\n = (number) angle in radians\n\\*/\nSnap.rad = rad;\n/*\\\n * Snap.deg\n [ method ]\n **\n * Transform angle to degrees\n - rad (number) angle in radians\n = (number) angle in degrees\n\\*/\nSnap.deg = deg;\n/*\\\n * Snap.sin\n [ method ]\n **\n * Equivalent to `Math.sin()` only works with degrees, not radians.\n - angle (number) angle in degrees\n = (number) sin\n\\*/\nSnap.sin = function (angle) {\n return math.sin(Snap.rad(angle));\n};\n/*\\\n * Snap.tan\n [ method ]\n **\n * Equivalent to `Math.tan()` only works with degrees, not radians.\n - angle (number) angle in degrees\n = (number) tan\n\\*/\nSnap.tan = function (angle) {\n return math.tan(Snap.rad(angle));\n};\n/*\\\n * Snap.cos\n [ method ]\n **\n * Equivalent to `Math.cos()` only works with degrees, not radians.\n - angle (number) angle in degrees\n = (number) cos\n\\*/\nSnap.cos = function (angle) {\n return math.cos(Snap.rad(angle));\n};\n/*\\\n * Snap.asin\n [ method ]\n **\n * Equivalent to `Math.asin()` only works with degrees, not radians.\n - num (number) value\n = (number) asin in degrees\n\\*/\nSnap.asin = function (num) {\n return Snap.deg(math.asin(num));\n};\n/*\\\n * Snap.acos\n [ method ]\n **\n * Equivalent to `Math.acos()` only works with degrees, not radians.\n - num (number) value\n = (number) acos in degrees\n\\*/\nSnap.acos = function (num) {\n return Snap.deg(math.acos(num));\n};\n/*\\\n * Snap.atan\n [ method ]\n **\n * Equivalent to `Math.atan()` only works with degrees, not radians.\n - num (number) value\n = (number) atan in degrees\n\\*/\nSnap.atan = function (num) {\n return Snap.deg(math.atan(num));\n};\n/*\\\n * Snap.atan2\n [ method ]\n **\n * Equivalent to `Math.atan2()` only works with degrees, not radians.\n - num (number) value\n = (number) atan2 in degrees\n\\*/\nSnap.atan2 = function (num) {\n return Snap.deg(math.atan2(num));\n};\n/*\\\n * Snap.angle\n [ method ]\n **\n * Returns an angle between two or three points\n - x1 (number) x coord of first point\n - y1 (number) y coord of first point\n - x2 (number) x coord of second point\n - y2 (number) y coord of second point\n - x3 (number) #optional x coord of third point\n - y3 (number) #optional y coord of third point\n = (number) angle in degrees\n\\*/\nSnap.angle = angle;\n/*\\\n * Snap.len\n [ method ]\n **\n * Returns distance between two points\n - x1 (number) x coord of first point\n - y1 (number) y coord of first point\n - x2 (number) x coord of second point\n - y2 (number) y coord of second point\n = (number) distance\n\\*/\nSnap.len = function (x1, y1, x2, y2) {\n return Math.sqrt(Snap.len2(x1, y1, x2, y2));\n};\n/*\\\n * Snap.len2\n [ method ]\n **\n * Returns squared distance between two points\n - x1 (number) x coord of first point\n - y1 (number) y coord of first point\n - x2 (number) x coord of second point\n - y2 (number) y coord of second point\n = (number) distance\n\\*/\nSnap.len2 = function (x1, y1, x2, y2) {\n return (x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2);\n};\n/*\\\n * Snap.closestPoint\n [ method ]\n **\n * Returns closest point to a given one on a given path.\n - path (Element) path element\n - x (number) x coord of a point\n - y (number) y coord of a point\n = (object) in format\n {\n x (number) x coord of the point on the path\n y (number) y coord of the point on the path\n length (number) length of the path to the point\n distance (number) distance from the given point to the path\n }\n\\*/\n// Copied from http://bl.ocks.org/mbostock/8027637\nSnap.closestPoint = function (path, x, y) {\n function distance2(p) {\n var dx = p.x - x,\n dy = p.y - y;\n return dx * dx + dy * dy;\n }\n var pathNode = path.node,\n pathLength = pathNode.getTotalLength(),\n precision = pathLength / pathNode.pathSegList.numberOfItems * .125,\n best,\n bestLength,\n bestDistance = Infinity;\n\n // linear scan for coarse approximation\n for (var scan, scanLength = 0, scanDistance; scanLength <= pathLength; scanLength += precision) {\n if ((scanDistance = distance2(scan = pathNode.getPointAtLength(scanLength))) < bestDistance) {\n best = scan;\n bestLength = scanLength;\n bestDistance = scanDistance;\n }\n }\n\n // binary search for precise estimate\n precision *= .5;\n while (precision > .5) {\n var before,\n after,\n beforeLength,\n afterLength,\n beforeDistance,\n afterDistance;\n if ((beforeLength = bestLength - precision) >= 0 && (beforeDistance = distance2(before = pathNode.getPointAtLength(beforeLength))) < bestDistance) {\n best = before;\n bestLength = beforeLength;\n bestDistance = beforeDistance;\n } else if ((afterLength = bestLength + precision) <= pathLength && (afterDistance = distance2(after = pathNode.getPointAtLength(afterLength))) < bestDistance) {\n best = after;\n bestLength = afterLength;\n bestDistance = afterDistance;\n } else {\n precision *= .5;\n }\n }\n\n best = {\n x: best.x,\n y: best.y,\n length: bestLength,\n distance: Math.sqrt(bestDistance)\n };\n return best;\n}\n/*\\\n * Snap.is\n [ method ]\n **\n * Handy replacement for the `typeof` operator\n - o (…) any object or primitive\n - type (string) name of the type, e.g., `string`, `function`, `number`, etc.\n = (boolean) `true` if given value is of given type\n\\*/\nSnap.is = is;\n/*\\\n * Snap.snapTo\n [ method ]\n **\n * Snaps given value to given grid\n - values (array|number) given array of values or step of the grid\n - value (number) value to adjust\n - tolerance (number) #optional maximum distance to the target value that would trigger the snap. Default is `10`.\n = (number) adjusted value\n\\*/\nSnap.snapTo = function (values, value, tolerance) {\n tolerance = is(tolerance, \"finite\") ? tolerance : 10;\n if (is(values, \"array\")) {\n var i = values.length;\n while (i--) if (abs(values[i] - value) <= tolerance) {\n return values[i];\n }\n } else {\n values = +values;\n var rem = value % values;\n if (rem < tolerance) {\n return value - rem;\n }\n if (rem > values - tolerance) {\n return value - rem + values;\n }\n }\n return value;\n};\n// Colour\n/*\\\n * Snap.getRGB\n [ method ]\n **\n * Parses color string as RGB object\n - color (string) color string in one of the following formats:\n #
    \n #
  • Color name (red, green, cornflowerblue, etc)
  • \n #
  • #••• — shortened HTML color: (#000, #fc0, etc.)
  • \n #
  • #•••••• — full length HTML color: (#000000, #bd2300)
  • \n #
  • rgb(•••, •••, •••) — red, green and blue channels values: (rgb(200, 100, 0))
  • \n #
  • rgba(•••, •••, •••, •••) — also with opacity
  • \n #
  • rgb(•••%, •••%, •••%) — same as above, but in %: (rgb(100%, 175%, 0%))
  • \n #
  • rgba(•••%, •••%, •••%, •••%) — also with opacity
  • \n #
  • hsb(•••, •••, •••) — hue, saturation and brightness values: (hsb(0.5, 0.25, 1))
  • \n #
  • hsba(•••, •••, •••, •••) — also with opacity
  • \n #
  • hsb(•••%, •••%, •••%) — same as above, but in %
  • \n #
  • hsba(•••%, •••%, •••%, •••%) — also with opacity
  • \n #
  • hsl(•••, •••, •••) — hue, saturation and luminosity values: (hsb(0.5, 0.25, 0.5))
  • \n #
  • hsla(•••, •••, •••, •••) — also with opacity
  • \n #
  • hsl(•••%, •••%, •••%) — same as above, but in %
  • \n #
  • hsla(•••%, •••%, •••%, •••%) — also with opacity
  • \n #
\n * Note that `%` can be used any time: `rgb(20%, 255, 50%)`.\n = (object) RGB object in the following format:\n o {\n o r (number) red,\n o g (number) green,\n o b (number) blue,\n o hex (string) color in HTML/CSS format: #••••••,\n o error (boolean) true if string can't be parsed\n o }\n\\*/\nSnap.getRGB = cacher(function (colour) {\n if (!colour || !!((colour = Str(colour)).indexOf(\"-\") + 1)) {\n return {r: -1, g: -1, b: -1, hex: \"none\", error: 1, toString: rgbtoString};\n }\n if (colour == \"none\") {\n return {r: -1, g: -1, b: -1, hex: \"none\", toString: rgbtoString};\n }\n !(hsrg[has](colour.toLowerCase().substring(0, 2)) || colour.charAt() == \"#\") && (colour = toHex(colour));\n if (!colour) {\n return {r: -1, g: -1, b: -1, hex: \"none\", error: 1, toString: rgbtoString};\n }\n var res,\n red,\n green,\n blue,\n opacity,\n t,\n values,\n rgb = colour.match(colourRegExp);\n if (rgb) {\n if (rgb[2]) {\n blue = toInt(rgb[2].substring(5), 16);\n green = toInt(rgb[2].substring(3, 5), 16);\n red = toInt(rgb[2].substring(1, 3), 16);\n }\n if (rgb[3]) {\n blue = toInt((t = rgb[3].charAt(3)) + t, 16);\n green = toInt((t = rgb[3].charAt(2)) + t, 16);\n red = toInt((t = rgb[3].charAt(1)) + t, 16);\n }\n if (rgb[4]) {\n values = rgb[4].split(commaSpaces);\n red = toFloat(values[0]);\n values[0].slice(-1) == \"%\" && (red *= 2.55);\n green = toFloat(values[1]);\n values[1].slice(-1) == \"%\" && (green *= 2.55);\n blue = toFloat(values[2]);\n values[2].slice(-1) == \"%\" && (blue *= 2.55);\n rgb[1].toLowerCase().slice(0, 4) == \"rgba\" && (opacity = toFloat(values[3]));\n values[3] && values[3].slice(-1) == \"%\" && (opacity /= 100);\n }\n if (rgb[5]) {\n values = rgb[5].split(commaSpaces);\n red = toFloat(values[0]);\n values[0].slice(-1) == \"%\" && (red /= 100);\n green = toFloat(values[1]);\n values[1].slice(-1) == \"%\" && (green /= 100);\n blue = toFloat(values[2]);\n values[2].slice(-1) == \"%\" && (blue /= 100);\n (values[0].slice(-3) == \"deg\" || values[0].slice(-1) == \"\\xb0\") && (red /= 360);\n rgb[1].toLowerCase().slice(0, 4) == \"hsba\" && (opacity = toFloat(values[3]));\n values[3] && values[3].slice(-1) == \"%\" && (opacity /= 100);\n return Snap.hsb2rgb(red, green, blue, opacity);\n }\n if (rgb[6]) {\n values = rgb[6].split(commaSpaces);\n red = toFloat(values[0]);\n values[0].slice(-1) == \"%\" && (red /= 100);\n green = toFloat(values[1]);\n values[1].slice(-1) == \"%\" && (green /= 100);\n blue = toFloat(values[2]);\n values[2].slice(-1) == \"%\" && (blue /= 100);\n (values[0].slice(-3) == \"deg\" || values[0].slice(-1) == \"\\xb0\") && (red /= 360);\n rgb[1].toLowerCase().slice(0, 4) == \"hsla\" && (opacity = toFloat(values[3]));\n values[3] && values[3].slice(-1) == \"%\" && (opacity /= 100);\n return Snap.hsl2rgb(red, green, blue, opacity);\n }\n red = mmin(math.round(red), 255);\n green = mmin(math.round(green), 255);\n blue = mmin(math.round(blue), 255);\n opacity = mmin(mmax(opacity, 0), 1);\n rgb = {r: red, g: green, b: blue, toString: rgbtoString};\n rgb.hex = \"#\" + (16777216 | blue | green << 8 | red << 16).toString(16).slice(1);\n rgb.opacity = is(opacity, \"finite\") ? opacity : 1;\n return rgb;\n }\n return {r: -1, g: -1, b: -1, hex: \"none\", error: 1, toString: rgbtoString};\n}, Snap);\n/*\\\n * Snap.hsb\n [ method ]\n **\n * Converts HSB values to a hex representation of the color\n - h (number) hue\n - s (number) saturation\n - b (number) value or brightness\n = (string) hex representation of the color\n\\*/\nSnap.hsb = cacher(function (h, s, b) {\n return Snap.hsb2rgb(h, s, b).hex;\n});\n/*\\\n * Snap.hsl\n [ method ]\n **\n * Converts HSL values to a hex representation of the color\n - h (number) hue\n - s (number) saturation\n - l (number) luminosity\n = (string) hex representation of the color\n\\*/\nSnap.hsl = cacher(function (h, s, l) {\n return Snap.hsl2rgb(h, s, l).hex;\n});\n/*\\\n * Snap.rgb\n [ method ]\n **\n * Converts RGB values to a hex representation of the color\n - r (number) red\n - g (number) green\n - b (number) blue\n = (string) hex representation of the color\n\\*/\nSnap.rgb = cacher(function (r, g, b, o) {\n if (is(o, \"finite\")) {\n var round = math.round;\n return \"rgba(\" + [round(r), round(g), round(b), +o.toFixed(2)] + \")\";\n }\n return \"#\" + (16777216 | b | g << 8 | r << 16).toString(16).slice(1);\n});\nvar toHex = function (color) {\n var i = glob.doc.getElementsByTagName(\"head\")[0] || glob.doc.getElementsByTagName(\"svg\")[0],\n red = \"rgb(255, 0, 0)\";\n toHex = cacher(function (color) {\n if (color.toLowerCase() == \"red\") {\n return red;\n }\n i.style.color = red;\n i.style.color = color;\n var out = glob.doc.defaultView.getComputedStyle(i, E).getPropertyValue(\"color\");\n return out == red ? null : out;\n });\n return toHex(color);\n},\nhsbtoString = function () {\n return \"hsb(\" + [this.h, this.s, this.b] + \")\";\n},\nhsltoString = function () {\n return \"hsl(\" + [this.h, this.s, this.l] + \")\";\n},\nrgbtoString = function () {\n return this.opacity == 1 || this.opacity == null ?\n this.hex :\n \"rgba(\" + [this.r, this.g, this.b, this.opacity] + \")\";\n},\nprepareRGB = function (r, g, b) {\n if (g == null && is(r, \"object\") && \"r\" in r && \"g\" in r && \"b\" in r) {\n b = r.b;\n g = r.g;\n r = r.r;\n }\n if (g == null && is(r, string)) {\n var clr = Snap.getRGB(r);\n r = clr.r;\n g = clr.g;\n b = clr.b;\n }\n if (r > 1 || g > 1 || b > 1) {\n r /= 255;\n g /= 255;\n b /= 255;\n }\n\n return [r, g, b];\n},\npackageRGB = function (r, g, b, o) {\n r = math.round(r * 255);\n g = math.round(g * 255);\n b = math.round(b * 255);\n var rgb = {\n r: r,\n g: g,\n b: b,\n opacity: is(o, \"finite\") ? o : 1,\n hex: Snap.rgb(r, g, b),\n toString: rgbtoString\n };\n is(o, \"finite\") && (rgb.opacity = o);\n return rgb;\n};\n/*\\\n * Snap.color\n [ method ]\n **\n * Parses the color string and returns an object featuring the color's component values\n - clr (string) color string in one of the supported formats (see @Snap.getRGB)\n = (object) Combined RGB/HSB object in the following format:\n o {\n o r (number) red,\n o g (number) green,\n o b (number) blue,\n o hex (string) color in HTML/CSS format: #••••••,\n o error (boolean) `true` if string can't be parsed,\n o h (number) hue,\n o s (number) saturation,\n o v (number) value (brightness),\n o l (number) lightness\n o }\n\\*/\nSnap.color = function (clr) {\n var rgb;\n if (is(clr, \"object\") && \"h\" in clr && \"s\" in clr && \"b\" in clr) {\n rgb = Snap.hsb2rgb(clr);\n clr.r = rgb.r;\n clr.g = rgb.g;\n clr.b = rgb.b;\n clr.opacity = 1;\n clr.hex = rgb.hex;\n } else if (is(clr, \"object\") && \"h\" in clr && \"s\" in clr && \"l\" in clr) {\n rgb = Snap.hsl2rgb(clr);\n clr.r = rgb.r;\n clr.g = rgb.g;\n clr.b = rgb.b;\n clr.opacity = 1;\n clr.hex = rgb.hex;\n } else {\n if (is(clr, \"string\")) {\n clr = Snap.getRGB(clr);\n }\n if (is(clr, \"object\") && \"r\" in clr && \"g\" in clr && \"b\" in clr && !(\"error\" in clr)) {\n rgb = Snap.rgb2hsl(clr);\n clr.h = rgb.h;\n clr.s = rgb.s;\n clr.l = rgb.l;\n rgb = Snap.rgb2hsb(clr);\n clr.v = rgb.b;\n } else {\n clr = {hex: \"none\"};\n clr.r = clr.g = clr.b = clr.h = clr.s = clr.v = clr.l = -1;\n clr.error = 1;\n }\n }\n clr.toString = rgbtoString;\n return clr;\n};\n/*\\\n * Snap.hsb2rgb\n [ method ]\n **\n * Converts HSB values to an RGB object\n - h (number) hue\n - s (number) saturation\n - v (number) value or brightness\n = (object) RGB object in the following format:\n o {\n o r (number) red,\n o g (number) green,\n o b (number) blue,\n o hex (string) color in HTML/CSS format: #••••••\n o }\n\\*/\nSnap.hsb2rgb = function (h, s, v, o) {\n if (is(h, \"object\") && \"h\" in h && \"s\" in h && \"b\" in h) {\n v = h.b;\n s = h.s;\n o = h.o;\n h = h.h;\n }\n h *= 360;\n var R, G, B, X, C;\n h = h % 360 / 60;\n C = v * s;\n X = C * (1 - abs(h % 2 - 1));\n R = G = B = v - C;\n\n h = ~~h;\n R += [C, X, 0, 0, X, C][h];\n G += [X, C, C, X, 0, 0][h];\n B += [0, 0, X, C, C, X][h];\n return packageRGB(R, G, B, o);\n};\n/*\\\n * Snap.hsl2rgb\n [ method ]\n **\n * Converts HSL values to an RGB object\n - h (number) hue\n - s (number) saturation\n - l (number) luminosity\n = (object) RGB object in the following format:\n o {\n o r (number) red,\n o g (number) green,\n o b (number) blue,\n o hex (string) color in HTML/CSS format: #••••••\n o }\n\\*/\nSnap.hsl2rgb = function (h, s, l, o) {\n if (is(h, \"object\") && \"h\" in h && \"s\" in h && \"l\" in h) {\n l = h.l;\n s = h.s;\n h = h.h;\n }\n if (h > 1 || s > 1 || l > 1) {\n h /= 360;\n s /= 100;\n l /= 100;\n }\n h *= 360;\n var R, G, B, X, C;\n h = h % 360 / 60;\n C = 2 * s * (l < .5 ? l : 1 - l);\n X = C * (1 - abs(h % 2 - 1));\n R = G = B = l - C / 2;\n\n h = ~~h;\n R += [C, X, 0, 0, X, C][h];\n G += [X, C, C, X, 0, 0][h];\n B += [0, 0, X, C, C, X][h];\n return packageRGB(R, G, B, o);\n};\n/*\\\n * Snap.rgb2hsb\n [ method ]\n **\n * Converts RGB values to an HSB object\n - r (number) red\n - g (number) green\n - b (number) blue\n = (object) HSB object in the following format:\n o {\n o h (number) hue,\n o s (number) saturation,\n o b (number) brightness\n o }\n\\*/\nSnap.rgb2hsb = function (r, g, b) {\n b = prepareRGB(r, g, b);\n r = b[0];\n g = b[1];\n b = b[2];\n\n var H, S, V, C;\n V = mmax(r, g, b);\n C = V - mmin(r, g, b);\n H = C == 0 ? null :\n V == r ? (g - b) / C :\n V == g ? (b - r) / C + 2 :\n (r - g) / C + 4;\n H = (H + 360) % 6 * 60 / 360;\n S = C == 0 ? 0 : C / V;\n return {h: H, s: S, b: V, toString: hsbtoString};\n};\n/*\\\n * Snap.rgb2hsl\n [ method ]\n **\n * Converts RGB values to an HSL object\n - r (number) red\n - g (number) green\n - b (number) blue\n = (object) HSL object in the following format:\n o {\n o h (number) hue,\n o s (number) saturation,\n o l (number) luminosity\n o }\n\\*/\nSnap.rgb2hsl = function (r, g, b) {\n b = prepareRGB(r, g, b);\n r = b[0];\n g = b[1];\n b = b[2];\n\n var H, S, L, M, m, C;\n M = mmax(r, g, b);\n m = mmin(r, g, b);\n C = M - m;\n H = C == 0 ? null :\n M == r ? (g - b) / C :\n M == g ? (b - r) / C + 2 :\n (r - g) / C + 4;\n H = (H + 360) % 6 * 60 / 360;\n L = (M + m) / 2;\n S = C == 0 ? 0 :\n L < .5 ? C / (2 * L) :\n C / (2 - 2 * L);\n return {h: H, s: S, l: L, toString: hsltoString};\n};\n\n// Transformations\n/*\\\n * Snap.parsePathString\n [ method ]\n **\n * Utility method\n **\n * Parses given path string into an array of arrays of path segments\n - pathString (string|array) path string or array of segments (in the last case it is returned straight away)\n = (array) array of segments\n\\*/\nSnap.parsePathString = function (pathString) {\n if (!pathString) {\n return null;\n }\n var pth = Snap.path(pathString);\n if (pth.arr) {\n return Snap.path.clone(pth.arr);\n }\n\n var paramCounts = {a: 7, c: 6, o: 2, h: 1, l: 2, m: 2, r: 4, q: 4, s: 4, t: 2, v: 1, u: 3, z: 0},\n data = [];\n if (is(pathString, \"array\") && is(pathString[0], \"array\")) { // rough assumption\n data = Snap.path.clone(pathString);\n }\n if (!data.length) {\n Str(pathString).replace(pathCommand, function (a, b, c) {\n var params = [],\n name = b.toLowerCase();\n c.replace(pathValues, function (a, b) {\n b && params.push(+b);\n });\n if (name == \"m\" && params.length > 2) {\n data.push([b].concat(params.splice(0, 2)));\n name = \"l\";\n b = b == \"m\" ? \"l\" : \"L\";\n }\n if (name == \"o\" && params.length == 1) {\n data.push([b, params[0]]);\n }\n if (name == \"r\") {\n data.push([b].concat(params));\n } else while (params.length >= paramCounts[name]) {\n data.push([b].concat(params.splice(0, paramCounts[name])));\n if (!paramCounts[name]) {\n break;\n }\n }\n });\n }\n data.toString = Snap.path.toString;\n pth.arr = Snap.path.clone(data);\n return data;\n};\n/*\\\n * Snap.parseTransformString\n [ method ]\n **\n * Utility method\n **\n * Parses given transform string into an array of transformations\n - TString (string|array) transform string or array of transformations (in the last case it is returned straight away)\n = (array) array of transformations\n\\*/\nvar parseTransformString = Snap.parseTransformString = function (TString) {\n if (!TString) {\n return null;\n }\n var paramCounts = {r: 3, s: 4, t: 2, m: 6},\n data = [];\n if (is(TString, \"array\") && is(TString[0], \"array\")) { // rough assumption\n data = Snap.path.clone(TString);\n }\n if (!data.length) {\n Str(TString).replace(tCommand, function (a, b, c) {\n var params = [],\n name = b.toLowerCase();\n c.replace(pathValues, function (a, b) {\n b && params.push(+b);\n });\n data.push([b].concat(params));\n });\n }\n data.toString = Snap.path.toString;\n return data;\n};\nfunction svgTransform2string(tstr) {\n var res = [];\n tstr = tstr.replace(/(?:^|\\s)(\\w+)\\(([^)]+)\\)/g, function (all, name, params) {\n params = params.split(/\\s*,\\s*|\\s+/);\n if (name == \"rotate\" && params.length == 1) {\n params.push(0, 0);\n }\n if (name == \"scale\") {\n if (params.length > 2) {\n params = params.slice(0, 2);\n } else if (params.length == 2) {\n params.push(0, 0);\n }\n if (params.length == 1) {\n params.push(params[0], 0, 0);\n }\n }\n if (name == \"skewX\") {\n res.push([\"m\", 1, 0, math.tan(rad(params[0])), 1, 0, 0]);\n } else if (name == \"skewY\") {\n res.push([\"m\", 1, math.tan(rad(params[0])), 0, 1, 0, 0]);\n } else {\n res.push([name.charAt(0)].concat(params));\n }\n return all;\n });\n return res;\n}\nSnap._.svgTransform2string = svgTransform2string;\nSnap._.rgTransform = /^[a-z][\\s]*-?\\.?\\d/i;\nfunction transform2matrix(tstr, bbox) {\n var tdata = parseTransformString(tstr),\n m = new Snap.Matrix;\n if (tdata) {\n for (var i = 0, ii = tdata.length; i < ii; i++) {\n var t = tdata[i],\n tlen = t.length,\n command = Str(t[0]).toLowerCase(),\n absolute = t[0] != command,\n inver = absolute ? m.invert() : 0,\n x1,\n y1,\n x2,\n y2,\n bb;\n if (command == \"t\" && tlen == 2){\n m.translate(t[1], 0);\n } else if (command == \"t\" && tlen == 3) {\n if (absolute) {\n x1 = inver.x(0, 0);\n y1 = inver.y(0, 0);\n x2 = inver.x(t[1], t[2]);\n y2 = inver.y(t[1], t[2]);\n m.translate(x2 - x1, y2 - y1);\n } else {\n m.translate(t[1], t[2]);\n }\n } else if (command == \"r\") {\n if (tlen == 2) {\n bb = bb || bbox;\n m.rotate(t[1], bb.x + bb.width / 2, bb.y + bb.height / 2);\n } else if (tlen == 4) {\n if (absolute) {\n x2 = inver.x(t[2], t[3]);\n y2 = inver.y(t[2], t[3]);\n m.rotate(t[1], x2, y2);\n } else {\n m.rotate(t[1], t[2], t[3]);\n }\n }\n } else if (command == \"s\") {\n if (tlen == 2 || tlen == 3) {\n bb = bb || bbox;\n m.scale(t[1], t[tlen - 1], bb.x + bb.width / 2, bb.y + bb.height / 2);\n } else if (tlen == 4) {\n if (absolute) {\n x2 = inver.x(t[2], t[3]);\n y2 = inver.y(t[2], t[3]);\n m.scale(t[1], t[1], x2, y2);\n } else {\n m.scale(t[1], t[1], t[2], t[3]);\n }\n } else if (tlen == 5) {\n if (absolute) {\n x2 = inver.x(t[3], t[4]);\n y2 = inver.y(t[3], t[4]);\n m.scale(t[1], t[2], x2, y2);\n } else {\n m.scale(t[1], t[2], t[3], t[4]);\n }\n }\n } else if (command == \"m\" && tlen == 7) {\n m.add(t[1], t[2], t[3], t[4], t[5], t[6]);\n }\n }\n }\n return m;\n}\nSnap._.transform2matrix = transform2matrix;\nSnap._unit2px = unit2px;\nvar contains = glob.doc.contains || glob.doc.compareDocumentPosition ?\n 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 && (\n adown.contains ?\n adown.contains(bup) :\n a.compareDocumentPosition && a.compareDocumentPosition(bup) & 16\n ));\n } :\n function (a, b) {\n if (b) {\n while (b) {\n b = b.parentNode;\n if (b == a) {\n return true;\n }\n }\n }\n return false;\n };\nfunction getSomeDefs(el) {\n var p = el.node.ownerSVGElement && wrap(el.node.ownerSVGElement) ||\n el.node.parentNode && wrap(el.node.parentNode) ||\n Snap.select(\"svg\") ||\n Snap(0, 0),\n pdefs = p.select(\"defs\"),\n defs = pdefs == null ? false : pdefs.node;\n if (!defs) {\n defs = make(\"defs\", p.node).node;\n }\n return defs;\n}\nfunction getSomeSVG(el) {\n return el.node.ownerSVGElement && wrap(el.node.ownerSVGElement) || Snap.select(\"svg\");\n}\nSnap._.getSomeDefs = getSomeDefs;\nSnap._.getSomeSVG = getSomeSVG;\nfunction unit2px(el, name, value) {\n var svg = getSomeSVG(el).node,\n out = {},\n mgr = svg.querySelector(\".svg---mgr\");\n if (!mgr) {\n mgr = $(\"rect\");\n $(mgr, {x: -9e9, y: -9e9, width: 10, height: 10, \"class\": \"svg---mgr\", fill: \"none\"});\n svg.appendChild(mgr);\n }\n function getW(val) {\n if (val == null) {\n return E;\n }\n if (val == +val) {\n return val;\n }\n $(mgr, {width: val});\n try {\n return mgr.getBBox().width;\n } catch (e) {\n return 0;\n }\n }\n function getH(val) {\n if (val == null) {\n return E;\n }\n if (val == +val) {\n return val;\n }\n $(mgr, {height: val});\n try {\n return mgr.getBBox().height;\n } catch (e) {\n return 0;\n }\n }\n function set(nam, f) {\n if (name == null) {\n out[nam] = f(el.attr(nam) || 0);\n } else if (nam == name) {\n out = f(value == null ? el.attr(nam) || 0 : value);\n }\n }\n switch (el.type) {\n case \"rect\":\n set(\"rx\", getW);\n set(\"ry\", getH);\n case \"image\":\n set(\"width\", getW);\n set(\"height\", getH);\n case \"text\":\n set(\"x\", getW);\n set(\"y\", getH);\n break;\n case \"circle\":\n set(\"cx\", getW);\n set(\"cy\", getH);\n set(\"r\", getW);\n break;\n case \"ellipse\":\n set(\"cx\", getW);\n set(\"cy\", getH);\n set(\"rx\", getW);\n set(\"ry\", getH);\n break;\n case \"line\":\n set(\"x1\", getW);\n set(\"x2\", getW);\n set(\"y1\", getH);\n set(\"y2\", getH);\n break;\n case \"marker\":\n set(\"refX\", getW);\n set(\"markerWidth\", getW);\n set(\"refY\", getH);\n set(\"markerHeight\", getH);\n break;\n case \"radialGradient\":\n set(\"fx\", getW);\n set(\"fy\", getH);\n break;\n case \"tspan\":\n set(\"dx\", getW);\n set(\"dy\", getH);\n break;\n default:\n set(name, getW);\n }\n svg.removeChild(mgr);\n return out;\n}\n/*\\\n * Snap.select\n [ method ]\n **\n * Wraps a DOM element specified by CSS selector as @Element\n - query (string) CSS selector of the element\n = (Element) the current element\n\\*/\nSnap.select = function (query) {\n query = Str(query).replace(/([^\\\\]):/g, \"$1\\\\:\");\n return wrap(glob.doc.querySelector(query));\n};\n/*\\\n * Snap.selectAll\n [ method ]\n **\n * Wraps DOM elements specified by CSS selector as set or array of @Element\n - query (string) CSS selector of the element\n = (Element) the current element\n\\*/\nSnap.selectAll = function (query) {\n var nodelist = glob.doc.querySelectorAll(query),\n set = (Snap.set || Array)();\n for (var i = 0; i < nodelist.length; i++) {\n set.push(wrap(nodelist[i]));\n }\n return set;\n};\n\nfunction add2group(list) {\n if (!is(list, \"array\")) {\n list = Array.prototype.slice.call(arguments, 0);\n }\n var i = 0,\n j = 0,\n node = this.node;\n while (this[i]) delete this[i++];\n for (i = 0; i < list.length; i++) {\n if (list[i].type == \"set\") {\n list[i].forEach(function (el) {\n node.appendChild(el.node);\n });\n } else {\n node.appendChild(list[i].node);\n }\n }\n var children = node.childNodes;\n for (i = 0; i < children.length; i++) {\n this[j++] = wrap(children[i]);\n }\n return this;\n}\n// Hub garbage collector every 10s\nsetInterval(function () {\n for (var key in hub) if (hub[has](key)) {\n var el = hub[key],\n node = el.node;\n if (el.type != \"svg\" && !node.ownerSVGElement || el.type == \"svg\" && (!node.parentNode || \"ownerSVGElement\" in node.parentNode && !node.ownerSVGElement)) {\n delete hub[key];\n }\n }\n}, 1e4);\nfunction Element(el) {\n if (el.snap in hub) {\n return hub[el.snap];\n }\n var svg;\n try {\n svg = el.ownerSVGElement;\n } catch(e) {}\n /*\\\n * Element.node\n [ property (object) ]\n **\n * Gives you a reference to the DOM object, so you can assign event handlers or just mess around.\n > Usage\n | // draw a circle at coordinate 10,10 with radius of 10\n | var c = paper.circle(10, 10, 10);\n | c.node.onclick = function () {\n | c.attr(\"fill\", \"red\");\n | };\n \\*/\n this.node = el;\n if (svg) {\n this.paper = new Paper(svg);\n }\n /*\\\n * Element.type\n [ property (string) ]\n **\n * SVG tag name of the given element.\n \\*/\n this.type = el.tagName || el.nodeName;\n var id = this.id = ID(this);\n this.anims = {};\n this._ = {\n transform: []\n };\n el.snap = id;\n hub[id] = this;\n if (this.type == \"g\") {\n this.add = add2group;\n }\n if (this.type in {g: 1, mask: 1, pattern: 1, symbol: 1}) {\n for (var method in Paper.prototype) if (Paper.prototype[has](method)) {\n this[method] = Paper.prototype[method];\n }\n }\n}\n /*\\\n * Element.attr\n [ method ]\n **\n * Gets or sets given attributes of the element.\n **\n - params (object) contains key-value pairs of attributes you want to set\n * or\n - param (string) name of the attribute\n = (Element) the current element\n * or\n = (string) value of attribute\n > Usage\n | el.attr({\n | fill: \"#fc0\",\n | stroke: \"#000\",\n | strokeWidth: 2, // CamelCase...\n | \"fill-opacity\": 0.5, // or dash-separated names\n | width: \"*=2\" // prefixed values\n | });\n | console.log(el.attr(\"fill\")); // #fc0\n * Prefixed values in format `\"+=10\"` supported. All four operations\n * (`+`, `-`, `*` and `/`) could be used. Optionally you can use units for `+`\n * and `-`: `\"+=2em\"`.\n \\*/\n Element.prototype.attr = function (params, value) {\n var el = this,\n node = el.node;\n if (!params) {\n if (node.nodeType != 1) {\n return {\n text: node.nodeValue\n };\n }\n var attr = node.attributes,\n out = {};\n for (var i = 0, ii = attr.length; i < ii; i++) {\n out[attr[i].nodeName] = attr[i].nodeValue;\n }\n return out;\n }\n if (is(params, \"string\")) {\n if (arguments.length > 1) {\n var json = {};\n json[params] = value;\n params = json;\n } else {\n return eve(\"snap.util.getattr.\" + params, el).firstDefined();\n }\n }\n for (var att in params) {\n if (params[has](att)) {\n eve(\"snap.util.attr.\" + att, el, params[att]);\n }\n }\n return el;\n };\n/*\\\n * Snap.parse\n [ method ]\n **\n * Parses SVG fragment and converts it into a @Fragment\n **\n - svg (string) SVG string\n = (Fragment) the @Fragment\n\\*/\nSnap.parse = function (svg) {\n var f = glob.doc.createDocumentFragment(),\n full = true,\n div = glob.doc.createElement(\"div\");\n svg = Str(svg);\n if (!svg.match(/^\\s*<\\s*svg(?:\\s|>)/)) {\n svg = \"\" + svg + \"\";\n full = false;\n }\n div.innerHTML = svg;\n svg = div.getElementsByTagName(\"svg\")[0];\n if (svg) {\n if (full) {\n f = svg;\n } else {\n while (svg.firstChild) {\n f.appendChild(svg.firstChild);\n }\n }\n }\n return new Fragment(f);\n};\nfunction Fragment(frag) {\n this.node = frag;\n}\n/*\\\n * Snap.fragment\n [ method ]\n **\n * Creates a DOM fragment from a given list of elements or strings\n **\n - varargs (…) SVG string\n = (Fragment) the @Fragment\n\\*/\nSnap.fragment = function () {\n var args = Array.prototype.slice.call(arguments, 0),\n f = glob.doc.createDocumentFragment();\n for (var i = 0, ii = args.length; i < ii; i++) {\n var item = args[i];\n if (item.node && item.node.nodeType) {\n f.appendChild(item.node);\n }\n if (item.nodeType) {\n f.appendChild(item);\n }\n if (typeof item == \"string\") {\n f.appendChild(Snap.parse(item).node);\n }\n }\n return new Fragment(f);\n};\n\nfunction make(name, parent) {\n var res = $(name);\n parent.appendChild(res);\n var el = wrap(res);\n return el;\n}\nfunction Paper(w, h) {\n var res,\n desc,\n defs,\n proto = Paper.prototype;\n if (w && w.tagName && w.tagName.toLowerCase() == \"svg\") {\n if (w.snap in hub) {\n return hub[w.snap];\n }\n var doc = w.ownerDocument;\n res = new Element(w);\n desc = w.getElementsByTagName(\"desc\")[0];\n defs = w.getElementsByTagName(\"defs\")[0];\n if (!desc) {\n desc = $(\"desc\");\n desc.appendChild(doc.createTextNode(\"Created with Snap\"));\n res.node.appendChild(desc);\n }\n if (!defs) {\n defs = $(\"defs\");\n res.node.appendChild(defs);\n }\n res.defs = defs;\n for (var key in proto) if (proto[has](key)) {\n res[key] = proto[key];\n }\n res.paper = res.root = res;\n } else {\n res = make(\"svg\", glob.doc.body);\n $(res.node, {\n height: h,\n version: 1.1,\n width: w,\n xmlns: xmlns\n });\n }\n return res;\n}\nfunction wrap(dom) {\n if (!dom) {\n return dom;\n }\n if (dom instanceof Element || dom instanceof Fragment) {\n return dom;\n }\n if (dom.tagName && dom.tagName.toLowerCase() == \"svg\") {\n return new Paper(dom);\n }\n if (dom.tagName && dom.tagName.toLowerCase() == \"object\" && dom.type == \"image/svg+xml\") {\n return new Paper(dom.contentDocument.getElementsByTagName(\"svg\")[0]);\n }\n return new Element(dom);\n}\n\nSnap._.make = make;\nSnap._.wrap = wrap;\n/*\\\n * Paper.el\n [ method ]\n **\n * Creates an element on paper with a given name and no attributes\n **\n - name (string) tag name\n - attr (object) attributes\n = (Element) the current element\n > Usage\n | var c = paper.circle(10, 10, 10); // is the same as...\n | var c = paper.el(\"circle\").attr({\n | cx: 10,\n | cy: 10,\n | r: 10\n | });\n | // and the same as\n | var c = paper.el(\"circle\", {\n | cx: 10,\n | cy: 10,\n | r: 10\n | });\n\\*/\nPaper.prototype.el = function (name, attr) {\n var el = make(name, this.node);\n attr && el.attr(attr);\n return el;\n};\n/*\\\n * Element.children\n [ method ]\n **\n * Returns array of all the children of the element.\n = (array) array of Elements\n\\*/\nElement.prototype.children = function () {\n var out = [],\n ch = this.node.childNodes;\n for (var i = 0, ii = ch.length; i < ii; i++) {\n out[i] = Snap(ch[i]);\n }\n return out;\n};\nfunction jsonFiller(root, o) {\n for (var i = 0, ii = root.length; i < ii; i++) {\n var item = {\n type: root[i].type,\n attr: root[i].attr()\n },\n children = root[i].children();\n o.push(item);\n if (children.length) {\n jsonFiller(children, item.childNodes = []);\n }\n }\n}\n/*\\\n * Element.toJSON\n [ method ]\n **\n * Returns object representation of the given element and all its children.\n = (object) in format\n o {\n o type (string) this.type,\n o attr (object) attributes map,\n o childNodes (array) optional array of children in the same format\n o }\n\\*/\nElement.prototype.toJSON = function () {\n var out = [];\n jsonFiller([this], out);\n return out[0];\n};\n// default\neve.on(\"snap.util.getattr\", function () {\n var att = eve.nt();\n att = att.substring(att.lastIndexOf(\".\") + 1);\n var css = att.replace(/[A-Z]/g, function (letter) {\n return \"-\" + letter.toLowerCase();\n });\n if (cssAttr[has](css)) {\n return this.node.ownerDocument.defaultView.getComputedStyle(this.node, null).getPropertyValue(css);\n } else {\n return $(this.node, att);\n }\n});\nvar cssAttr = {\n \"alignment-baseline\": 0,\n \"baseline-shift\": 0,\n \"clip\": 0,\n \"clip-path\": 0,\n \"clip-rule\": 0,\n \"color\": 0,\n \"color-interpolation\": 0,\n \"color-interpolation-filters\": 0,\n \"color-profile\": 0,\n \"color-rendering\": 0,\n \"cursor\": 0,\n \"direction\": 0,\n \"display\": 0,\n \"dominant-baseline\": 0,\n \"enable-background\": 0,\n \"fill\": 0,\n \"fill-opacity\": 0,\n \"fill-rule\": 0,\n \"filter\": 0,\n \"flood-color\": 0,\n \"flood-opacity\": 0,\n \"font\": 0,\n \"font-family\": 0,\n \"font-size\": 0,\n \"font-size-adjust\": 0,\n \"font-stretch\": 0,\n \"font-style\": 0,\n \"font-variant\": 0,\n \"font-weight\": 0,\n \"glyph-orientation-horizontal\": 0,\n \"glyph-orientation-vertical\": 0,\n \"image-rendering\": 0,\n \"kerning\": 0,\n \"letter-spacing\": 0,\n \"lighting-color\": 0,\n \"marker\": 0,\n \"marker-end\": 0,\n \"marker-mid\": 0,\n \"marker-start\": 0,\n \"mask\": 0,\n \"opacity\": 0,\n \"overflow\": 0,\n \"pointer-events\": 0,\n \"shape-rendering\": 0,\n \"stop-color\": 0,\n \"stop-opacity\": 0,\n \"stroke\": 0,\n \"stroke-dasharray\": 0,\n \"stroke-dashoffset\": 0,\n \"stroke-linecap\": 0,\n \"stroke-linejoin\": 0,\n \"stroke-miterlimit\": 0,\n \"stroke-opacity\": 0,\n \"stroke-width\": 0,\n \"text-anchor\": 0,\n \"text-decoration\": 0,\n \"text-rendering\": 0,\n \"unicode-bidi\": 0,\n \"visibility\": 0,\n \"word-spacing\": 0,\n \"writing-mode\": 0\n};\n\neve.on(\"snap.util.attr\", function (value) {\n var att = eve.nt(),\n attr = {};\n att = att.substring(att.lastIndexOf(\".\") + 1);\n attr[att] = value;\n var style = att.replace(/-(\\w)/gi, function (all, letter) {\n return letter.toUpperCase();\n }),\n css = att.replace(/[A-Z]/g, function (letter) {\n return \"-\" + letter.toLowerCase();\n });\n if (cssAttr[has](css)) {\n this.node.style[style] = value == null ? E : value;\n } else {\n $(this.node, attr);\n }\n});\n(function (proto) {}(Paper.prototype));\n\n// simple ajax\n/*\\\n * Snap.ajax\n [ method ]\n **\n * Simple implementation of Ajax\n **\n - url (string) URL\n - postData (object|string) data for post request\n - callback (function) callback\n - scope (object) #optional scope of callback\n * or\n - url (string) URL\n - callback (function) callback\n - scope (object) #optional scope of callback\n = (XMLHttpRequest) the XMLHttpRequest object, just in case\n\\*/\nSnap.ajax = function (url, postData, callback, scope){\n var req = new XMLHttpRequest,\n id = ID();\n if (req) {\n if (is(postData, \"function\")) {\n scope = callback;\n callback = postData;\n postData = null;\n } else if (is(postData, \"object\")) {\n var pd = [];\n for (var key in postData) if (postData.hasOwnProperty(key)) {\n pd.push(encodeURIComponent(key) + \"=\" + encodeURIComponent(postData[key]));\n }\n postData = pd.join(\"&\");\n }\n req.open(postData ? \"POST\" : \"GET\", url, true);\n if (postData) {\n req.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n req.setRequestHeader(\"Content-type\", \"application/x-www-form-urlencoded\");\n }\n if (callback) {\n eve.once(\"snap.ajax.\" + id + \".0\", callback);\n eve.once(\"snap.ajax.\" + id + \".200\", callback);\n eve.once(\"snap.ajax.\" + id + \".304\", callback);\n }\n req.onreadystatechange = function() {\n if (req.readyState != 4) return;\n eve(\"snap.ajax.\" + id + \".\" + req.status, scope, req);\n };\n if (req.readyState == 4) {\n return req;\n }\n req.send(postData);\n return req;\n }\n};\n/*\\\n * Snap.load\n [ method ]\n **\n * Loads external SVG file as a @Fragment (see @Snap.ajax for more advanced AJAX)\n **\n - url (string) URL\n - callback (function) callback\n - scope (object) #optional scope of callback\n\\*/\nSnap.load = function (url, callback, scope) {\n Snap.ajax(url, function (req) {\n var f = Snap.parse(req.responseText);\n scope ? callback.call(scope, f) : callback(f);\n });\n};\nvar getOffset = function (elem) {\n var box = elem.getBoundingClientRect(),\n doc = elem.ownerDocument,\n body = doc.body,\n docElem = doc.documentElement,\n clientTop = docElem.clientTop || body.clientTop || 0, clientLeft = docElem.clientLeft || body.clientLeft || 0,\n top = box.top + (g.win.pageYOffset || docElem.scrollTop || body.scrollTop ) - clientTop,\n left = box.left + (g.win.pageXOffset || docElem.scrollLeft || body.scrollLeft) - clientLeft;\n return {\n y: top,\n x: left\n };\n};\n/*\\\n * Snap.getElementByPoint\n [ method ]\n **\n * Returns you topmost element under given point.\n **\n = (object) Snap element object\n - x (number) x coordinate from the top left corner of the window\n - y (number) y coordinate from the top left corner of the window\n > Usage\n | Snap.getElementByPoint(mouseX, mouseY).attr({stroke: \"#f00\"});\n\\*/\nSnap.getElementByPoint = function (x, y) {\n var paper = this,\n svg = paper.canvas,\n target = glob.doc.elementFromPoint(x, y);\n if (glob.win.opera && target.tagName == \"svg\") {\n var so = getOffset(target),\n sr = target.createSVGRect();\n sr.x = x - so.x;\n sr.y = y - so.y;\n sr.width = sr.height = 1;\n var hits = target.getIntersectionList(sr, null);\n if (hits.length) {\n target = hits[hits.length - 1];\n }\n }\n if (!target) {\n return null;\n }\n return wrap(target);\n};\n/*\\\n * Snap.plugin\n [ method ]\n **\n * Let you write plugins. You pass in a function with five arguments, like this:\n | Snap.plugin(function (Snap, Element, Paper, global, Fragment) {\n | Snap.newmethod = function () {};\n | Element.prototype.newmethod = function () {};\n | Paper.prototype.newmethod = function () {};\n | });\n * Inside the function you have access to all main objects (and their\n * prototypes). This allow you to extend anything you want.\n **\n - f (function) your plugin body\n\\*/\nSnap.plugin = function (f) {\n f(Snap, Element, Paper, glob, Fragment);\n};\nglob.win.Snap = Snap;\nreturn Snap;\n}(window || this));\n\n// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nSnap.plugin(function (Snap, Element, Paper, glob, Fragment) {\n var elproto = Element.prototype,\n is = Snap.is,\n Str = String,\n unit2px = Snap._unit2px,\n $ = Snap._.$,\n make = Snap._.make,\n getSomeDefs = Snap._.getSomeDefs,\n has = \"hasOwnProperty\",\n wrap = Snap._.wrap;\n /*\\\n * Element.getBBox\n [ method ]\n **\n * Returns the bounding box descriptor for the given element\n **\n = (object) bounding box descriptor:\n o {\n o cx: (number) x of the center,\n o cy: (number) x of the center,\n o h: (number) height,\n o height: (number) height,\n o path: (string) path command for the box,\n o r0: (number) radius of a circle that fully encloses the box,\n o r1: (number) radius of the smallest circle that can be enclosed,\n o r2: (number) radius of the largest circle that can be enclosed,\n o vb: (string) box as a viewbox command,\n o w: (number) width,\n o width: (number) width,\n o x2: (number) x of the right side,\n o x: (number) x of the left side,\n o y2: (number) y of the bottom edge,\n o y: (number) y of the top edge\n o }\n \\*/\n elproto.getBBox = function (isWithoutTransform) {\n if (this.type == \"tspan\") {\n return Snap._.box(this.node.getClientRects().item(0));\n }\n if (!Snap.Matrix || !Snap.path) {\n return this.node.getBBox();\n }\n var el = this,\n m = new Snap.Matrix;\n if (el.removed) {\n return Snap._.box();\n }\n while (el.type == \"use\") {\n if (!isWithoutTransform) {\n m = m.add(el.transform().localMatrix.translate(el.attr(\"x\") || 0, el.attr(\"y\") || 0));\n }\n if (el.original) {\n el = el.original;\n } else {\n var href = el.attr(\"xlink:href\");\n el = el.original = el.node.ownerDocument.getElementById(href.substring(href.indexOf(\"#\") + 1));\n }\n }\n var _ = el._,\n pathfinder = Snap.path.get[el.type] || Snap.path.get.deflt;\n try {\n if (isWithoutTransform) {\n _.bboxwt = pathfinder ? Snap.path.getBBox(el.realPath = pathfinder(el)) : Snap._.box(el.node.getBBox());\n return Snap._.box(_.bboxwt);\n } else {\n el.realPath = pathfinder(el);\n el.matrix = el.transform().localMatrix;\n _.bbox = Snap.path.getBBox(Snap.path.map(el.realPath, m.add(el.matrix)));\n return Snap._.box(_.bbox);\n }\n } catch (e) {\n // Firefox doesn’t give you bbox of hidden element\n return Snap._.box();\n }\n };\n var propString = function () {\n return this.string;\n };\n function extractTransform(el, tstr) {\n if (tstr == null) {\n var doReturn = true;\n if (el.type == \"linearGradient\" || el.type == \"radialGradient\") {\n tstr = el.node.getAttribute(\"gradientTransform\");\n } else if (el.type == \"pattern\") {\n tstr = el.node.getAttribute(\"patternTransform\");\n } else {\n tstr = el.node.getAttribute(\"transform\");\n }\n if (!tstr) {\n return new Snap.Matrix;\n }\n tstr = Snap._.svgTransform2string(tstr);\n } else {\n if (!Snap._.rgTransform.test(tstr)) {\n tstr = Snap._.svgTransform2string(tstr);\n } else {\n tstr = Str(tstr).replace(/\\.{3}|\\u2026/g, el._.transform || \"\");\n }\n if (is(tstr, \"array\")) {\n tstr = Snap.path ? Snap.path.toString.call(tstr) : Str(tstr);\n }\n el._.transform = tstr;\n }\n var m = Snap._.transform2matrix(tstr, el.getBBox(1));\n if (doReturn) {\n return m;\n } else {\n el.matrix = m;\n }\n }\n /*\\\n * Element.transform\n [ method ]\n **\n * Gets or sets transformation of the element\n **\n - tstr (string) transform string in Snap or SVG format\n = (Element) the current element\n * or\n = (object) transformation descriptor:\n o {\n o string (string) transform string,\n o globalMatrix (Matrix) matrix of all transformations applied to element or its parents,\n o localMatrix (Matrix) matrix of transformations applied only to the element,\n o diffMatrix (Matrix) matrix of difference between global and local transformations,\n o global (string) global transformation as string,\n o local (string) local transformation as string,\n o toString (function) returns `string` property\n o }\n \\*/\n elproto.transform = function (tstr) {\n var _ = this._;\n if (tstr == null) {\n var papa = this,\n global = new Snap.Matrix(this.node.getCTM()),\n local = extractTransform(this),\n ms = [local],\n m = new Snap.Matrix,\n i,\n localString = local.toTransformString(),\n string = Str(local) == Str(this.matrix) ?\n Str(_.transform) : localString;\n while (papa.type != \"svg\" && (papa = papa.parent())) {\n ms.push(extractTransform(papa));\n }\n i = ms.length;\n while (i--) {\n m.add(ms[i]);\n }\n return {\n string: string,\n globalMatrix: global,\n totalMatrix: m,\n localMatrix: local,\n diffMatrix: global.clone().add(local.invert()),\n global: global.toTransformString(),\n total: m.toTransformString(),\n local: localString,\n toString: propString\n };\n }\n if (tstr instanceof Snap.Matrix) {\n this.matrix = tstr;\n this._.transform = tstr.toTransformString();\n } else {\n extractTransform(this, tstr);\n }\n\n if (this.node) {\n if (this.type == \"linearGradient\" || this.type == \"radialGradient\") {\n $(this.node, {gradientTransform: this.matrix});\n } else if (this.type == \"pattern\") {\n $(this.node, {patternTransform: this.matrix});\n } else {\n $(this.node, {transform: this.matrix});\n }\n }\n\n return this;\n };\n /*\\\n * Element.parent\n [ method ]\n **\n * Returns the element's parent\n **\n = (Element) the parent element\n \\*/\n elproto.parent = function () {\n return wrap(this.node.parentNode);\n };\n /*\\\n * Element.append\n [ method ]\n **\n * Appends the given element to current one\n **\n - el (Element|Set) element to append\n = (Element) the parent element\n \\*/\n /*\\\n * Element.add\n [ method ]\n **\n * See @Element.append\n \\*/\n elproto.append = elproto.add = function (el) {\n if (el) {\n if (el.type == \"set\") {\n var it = this;\n el.forEach(function (el) {\n it.add(el);\n });\n return this;\n }\n el = wrap(el);\n this.node.appendChild(el.node);\n el.paper = this.paper;\n }\n return this;\n };\n /*\\\n * Element.appendTo\n [ method ]\n **\n * Appends the current element to the given one\n **\n - el (Element) parent element to append to\n = (Element) the child element\n \\*/\n elproto.appendTo = function (el) {\n if (el) {\n el = wrap(el);\n el.append(this);\n }\n return this;\n };\n /*\\\n * Element.prepend\n [ method ]\n **\n * Prepends the given element to the current one\n **\n - el (Element) element to prepend\n = (Element) the parent element\n \\*/\n elproto.prepend = function (el) {\n if (el) {\n if (el.type == \"set\") {\n var it = this,\n first;\n el.forEach(function (el) {\n if (first) {\n first.after(el);\n } else {\n it.prepend(el);\n }\n first = el;\n });\n return this;\n }\n el = wrap(el);\n var parent = el.parent();\n this.node.insertBefore(el.node, this.node.firstChild);\n this.add && this.add();\n el.paper = this.paper;\n this.parent() && this.parent().add();\n parent && parent.add();\n }\n return this;\n };\n /*\\\n * Element.prependTo\n [ method ]\n **\n * Prepends the current element to the given one\n **\n - el (Element) parent element to prepend to\n = (Element) the child element\n \\*/\n elproto.prependTo = function (el) {\n el = wrap(el);\n el.prepend(this);\n return this;\n };\n /*\\\n * Element.before\n [ method ]\n **\n * Inserts given element before the current one\n **\n - el (Element) element to insert\n = (Element) the parent element\n \\*/\n elproto.before = function (el) {\n if (el.type == \"set\") {\n var it = this;\n el.forEach(function (el) {\n var parent = el.parent();\n it.node.parentNode.insertBefore(el.node, it.node);\n parent && parent.add();\n });\n this.parent().add();\n return this;\n }\n el = wrap(el);\n var parent = el.parent();\n this.node.parentNode.insertBefore(el.node, this.node);\n this.parent() && this.parent().add();\n parent && parent.add();\n el.paper = this.paper;\n return this;\n };\n /*\\\n * Element.after\n [ method ]\n **\n * Inserts given element after the current one\n **\n - el (Element) element to insert\n = (Element) the parent element\n \\*/\n elproto.after = function (el) {\n el = wrap(el);\n var parent = el.parent();\n if (this.node.nextSibling) {\n this.node.parentNode.insertBefore(el.node, this.node.nextSibling);\n } else {\n this.node.parentNode.appendChild(el.node);\n }\n this.parent() && this.parent().add();\n parent && parent.add();\n el.paper = this.paper;\n return this;\n };\n /*\\\n * Element.insertBefore\n [ method ]\n **\n * Inserts the element after the given one\n **\n - el (Element) element next to whom insert to\n = (Element) the parent element\n \\*/\n elproto.insertBefore = function (el) {\n el = wrap(el);\n var parent = this.parent();\n el.node.parentNode.insertBefore(this.node, el.node);\n this.paper = el.paper;\n parent && parent.add();\n el.parent() && el.parent().add();\n return this;\n };\n /*\\\n * Element.insertAfter\n [ method ]\n **\n * Inserts the element after the given one\n **\n - el (Element) element next to whom insert to\n = (Element) the parent element\n \\*/\n elproto.insertAfter = function (el) {\n el = wrap(el);\n var parent = this.parent();\n el.node.parentNode.insertBefore(this.node, el.node.nextSibling);\n this.paper = el.paper;\n parent && parent.add();\n el.parent() && el.parent().add();\n return this;\n };\n /*\\\n * Element.remove\n [ method ]\n **\n * Removes element from the DOM\n = (Element) the detached element\n \\*/\n elproto.remove = function () {\n var parent = this.parent();\n this.node.parentNode && this.node.parentNode.removeChild(this.node);\n delete this.paper;\n this.removed = true;\n parent && parent.add();\n return this;\n };\n /*\\\n * Element.select\n [ method ]\n **\n * Gathers the nested @Element matching the given set of CSS selectors\n **\n - query (string) CSS selector\n = (Element) result of query selection\n \\*/\n elproto.select = function (query) {\n return wrap(this.node.querySelector(query));\n };\n /*\\\n * Element.selectAll\n [ method ]\n **\n * Gathers nested @Element objects matching the given set of CSS selectors\n **\n - query (string) CSS selector\n = (Set|array) result of query selection\n \\*/\n elproto.selectAll = function (query) {\n var nodelist = this.node.querySelectorAll(query),\n set = (Snap.set || Array)();\n for (var i = 0; i < nodelist.length; i++) {\n set.push(wrap(nodelist[i]));\n }\n return set;\n };\n /*\\\n * Element.asPX\n [ method ]\n **\n * Returns given attribute of the element as a `px` value (not %, em, etc.)\n **\n - attr (string) attribute name\n - value (string) #optional attribute value\n = (Element) result of query selection\n \\*/\n elproto.asPX = function (attr, value) {\n if (value == null) {\n value = this.attr(attr);\n }\n return +unit2px(this, attr, value);\n };\n // SIERRA Element.use(): I suggest adding a note about how to access the original element the returned instantiates. It's a part of SVG with which ordinary web developers may be least familiar.\n /*\\\n * Element.use\n [ method ]\n **\n * Creates a `` element linked to the current element\n **\n = (Element) the `` element\n \\*/\n elproto.use = function () {\n var use,\n id = this.node.id;\n if (!id) {\n id = this.id;\n $(this.node, {\n id: id\n });\n }\n if (this.type == \"linearGradient\" || this.type == \"radialGradient\" ||\n this.type == \"pattern\") {\n use = make(this.type, this.node.parentNode);\n } else {\n use = make(\"use\", this.node.parentNode);\n }\n $(use.node, {\n \"xlink:href\": \"#\" + id\n });\n use.original = this;\n return use;\n };\n function fixids(el) {\n var els = el.selectAll(\"*\"),\n it,\n url = /^\\s*url\\((\"|'|)(.*)\\1\\)\\s*$/,\n ids = [],\n uses = {};\n function urltest(it, name) {\n var val = $(it.node, name);\n val = val && val.match(url);\n val = val && val[2];\n if (val && val.charAt() == \"#\") {\n val = val.substring(1);\n } else {\n return;\n }\n if (val) {\n uses[val] = (uses[val] || []).concat(function (id) {\n var attr = {};\n attr[name] = Snap.url(id);\n $(it.node, attr);\n });\n }\n }\n function linktest(it) {\n var val = $(it.node, \"xlink:href\");\n if (val && val.charAt() == \"#\") {\n val = val.substring(1);\n } else {\n return;\n }\n if (val) {\n uses[val] = (uses[val] || []).concat(function (id) {\n it.attr(\"xlink:href\", \"#\" + id);\n });\n }\n }\n for (var i = 0, ii = els.length; i < ii; i++) {\n it = els[i];\n urltest(it, \"fill\");\n urltest(it, \"stroke\");\n urltest(it, \"filter\");\n urltest(it, \"mask\");\n urltest(it, \"clip-path\");\n linktest(it);\n var oldid = $(it.node, \"id\");\n if (oldid) {\n $(it.node, {id: it.id});\n ids.push({\n old: oldid,\n id: it.id\n });\n }\n }\n for (i = 0, ii = ids.length; i < ii; i++) {\n var fs = uses[ids[i].old];\n if (fs) {\n for (var j = 0, jj = fs.length; j < jj; j++) {\n fs[j](ids[i].id);\n }\n }\n }\n }\n /*\\\n * Element.clone\n [ method ]\n **\n * Creates a clone of the element and inserts it after the element\n **\n = (Element) the clone\n \\*/\n elproto.clone = function () {\n var clone = wrap(this.node.cloneNode(true));\n if ($(clone.node, \"id\")) {\n $(clone.node, {id: clone.id});\n }\n fixids(clone);\n clone.insertAfter(this);\n return clone;\n };\n /*\\\n * Element.toDefs\n [ method ]\n **\n * Moves element to the shared `` area\n **\n = (Element) the element\n \\*/\n elproto.toDefs = function () {\n var defs = getSomeDefs(this);\n defs.appendChild(this.node);\n return this;\n };\n /*\\\n * Element.toPattern\n [ method ]\n **\n * Creates a `` element from the current element\n **\n * To create a pattern you have to specify the pattern rect:\n - x (string|number)\n - y (string|number)\n - width (string|number)\n - height (string|number)\n = (Element) the `` element\n * You can use pattern later on as an argument for `fill` attribute:\n | var p = paper.path(\"M10-5-10,15M15,0,0,15M0-5-20,15\").attr({\n | fill: \"none\",\n | stroke: \"#bada55\",\n | strokeWidth: 5\n | }).pattern(0, 0, 10, 10),\n | c = paper.circle(200, 200, 100);\n | c.attr({\n | fill: p\n | });\n \\*/\n elproto.pattern = elproto.toPattern = function (x, y, width, height) {\n var p = make(\"pattern\", getSomeDefs(this));\n if (x == null) {\n x = this.getBBox();\n }\n if (is(x, \"object\") && \"x\" in x) {\n y = x.y;\n width = x.width;\n height = x.height;\n x = x.x;\n }\n $(p.node, {\n x: x,\n y: y,\n width: width,\n height: height,\n patternUnits: \"userSpaceOnUse\",\n id: p.id,\n viewBox: [x, y, width, height].join(\" \")\n });\n p.node.appendChild(this.node);\n return p;\n };\n// SIERRA Element.marker(): clarify what a reference point is. E.g., helps you offset the object from its edge such as when centering it over a path.\n// SIERRA Element.marker(): I suggest the method should accept default reference point values. Perhaps centered with (refX = width/2) and (refY = height/2)? Also, couldn't it assume the element's current _width_ and _height_? And please specify what _x_ and _y_ mean: offsets? If so, from where? Couldn't they also be assigned default values?\n /*\\\n * Element.marker\n [ method ]\n **\n * Creates a `` element from the current element\n **\n * To create a marker you have to specify the bounding rect and reference point:\n - x (number)\n - y (number)\n - width (number)\n - height (number)\n - refX (number)\n - refY (number)\n = (Element) the `` element\n * You can specify the marker later as an argument for `marker-start`, `marker-end`, `marker-mid`, and `marker` attributes. The `marker` attribute places the marker at every point along the path, and `marker-mid` places them at every point except the start and end.\n \\*/\n // TODO add usage for markers\n elproto.marker = function (x, y, width, height, refX, refY) {\n var p = make(\"marker\", getSomeDefs(this));\n if (x == null) {\n x = this.getBBox();\n }\n if (is(x, \"object\") && \"x\" in x) {\n y = x.y;\n width = x.width;\n height = x.height;\n refX = x.refX || x.cx;\n refY = x.refY || x.cy;\n x = x.x;\n }\n $(p.node, {\n viewBox: [x, y, width, height].join(\" \"),\n markerWidth: width,\n markerHeight: height,\n orient: \"auto\",\n refX: refX || 0,\n refY: refY || 0,\n id: p.id\n });\n p.node.appendChild(this.node);\n return p;\n };\n var eldata = {};\n /*\\\n * Element.data\n [ method ]\n **\n * Adds or retrieves given value associated with given key. (Don’t confuse\n * with `data-` attributes)\n *\n * See also @Element.removeData\n - key (string) key to store data\n - value (any) #optional value to store\n = (object) @Element\n * or, if value is not specified:\n = (any) value\n > Usage\n | for (var i = 0, i < 5, i++) {\n | paper.circle(10 + 15 * i, 10, 10)\n | .attr({fill: \"#000\"})\n | .data(\"i\", i)\n | .click(function () {\n | alert(this.data(\"i\"));\n | });\n | }\n \\*/\n elproto.data = function (key, value) {\n var data = eldata[this.id] = eldata[this.id] || {};\n if (arguments.length == 0){\n eve(\"snap.data.get.\" + this.id, this, data, null);\n return data;\n }\n if (arguments.length == 1) {\n if (Snap.is(key, \"object\")) {\n for (var i in key) if (key[has](i)) {\n this.data(i, key[i]);\n }\n return this;\n }\n eve(\"snap.data.get.\" + this.id, this, data[key], key);\n return data[key];\n }\n data[key] = value;\n eve(\"snap.data.set.\" + this.id, this, value, key);\n return this;\n };\n /*\\\n * Element.removeData\n [ method ]\n **\n * Removes value associated with an element by given key.\n * If key is not provided, removes all the data of the element.\n - key (string) #optional key\n = (object) @Element\n \\*/\n elproto.removeData = function (key) {\n if (key == null) {\n eldata[this.id] = {};\n } else {\n eldata[this.id] && delete eldata[this.id][key];\n }\n return this;\n };\n /*\\\n * Element.outerSVG\n [ method ]\n **\n * Returns SVG code for the element, equivalent to HTML's `outerHTML`.\n *\n * See also @Element.innerSVG\n = (string) SVG code for the element\n \\*/\n /*\\\n * Element.toString\n [ method ]\n **\n * See @Element.outerSVG\n \\*/\n elproto.outerSVG = elproto.toString = toString(1);\n /*\\\n * Element.innerSVG\n [ method ]\n **\n * Returns SVG code for the element's contents, equivalent to HTML's `innerHTML`\n = (string) SVG code for the element\n \\*/\n elproto.innerSVG = toString();\n function toString(type) {\n return function () {\n var res = type ? \"<\" + this.type : \"\",\n attr = this.node.attributes,\n chld = this.node.childNodes;\n if (type) {\n for (var i = 0, ii = attr.length; i < ii; i++) {\n res += \" \" + attr[i].name + '=\"' +\n attr[i].value.replace(/\"/g, '\\\\\"') + '\"';\n }\n }\n if (chld.length) {\n type && (res += \">\");\n for (i = 0, ii = chld.length; i < ii; i++) {\n if (chld[i].nodeType == 3) {\n res += chld[i].nodeValue;\n } else if (chld[i].nodeType == 1) {\n res += wrap(chld[i]).toString();\n }\n }\n type && (res += \"\");\n } else {\n type && (res += \"/>\");\n }\n return res;\n };\n }\n elproto.toDataURL = function () {\n if (window && window.btoa) {\n var bb = this.getBBox(),\n svg = Snap.format('{contents}', {\n x: +bb.x.toFixed(3),\n y: +bb.y.toFixed(3),\n width: +bb.width.toFixed(3),\n height: +bb.height.toFixed(3),\n contents: this.outerSVG()\n });\n return \"data:image/svg+xml;base64,\" + btoa(unescape(encodeURIComponent(svg)));\n }\n };\n /*\\\n * Fragment.select\n [ method ]\n **\n * See @Element.select\n \\*/\n Fragment.prototype.select = elproto.select;\n /*\\\n * Fragment.selectAll\n [ method ]\n **\n * See @Element.selectAll\n \\*/\n Fragment.prototype.selectAll = elproto.selectAll;\n});\n\n// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nSnap.plugin(function (Snap, Element, Paper, glob, Fragment) {\n var objectToString = Object.prototype.toString,\n Str = String,\n math = Math,\n E = \"\";\n function Matrix(a, b, c, d, e, f) {\n if (b == null && objectToString.call(a) == \"[object SVGMatrix]\") {\n this.a = a.a;\n this.b = a.b;\n this.c = a.c;\n this.d = a.d;\n this.e = a.e;\n this.f = a.f;\n return;\n }\n if (a != null) {\n this.a = +a;\n this.b = +b;\n this.c = +c;\n this.d = +d;\n this.e = +e;\n this.f = +f;\n } else {\n this.a = 1;\n this.b = 0;\n this.c = 0;\n this.d = 1;\n this.e = 0;\n this.f = 0;\n }\n }\n (function (matrixproto) {\n /*\\\n * Matrix.add\n [ method ]\n **\n * Adds the given matrix to existing one\n - a (number)\n - b (number)\n - c (number)\n - d (number)\n - e (number)\n - f (number)\n * or\n - matrix (object) @Matrix\n \\*/\n matrixproto.add = function (a, b, c, d, e, f) {\n if (a && a instanceof Matrix) {\n return this.add(a.a, a.b, a.c, a.d, a.e, a.f);\n }\n var aNew = a * this.a + b * this.c,\n bNew = a * this.b + b * this.d;\n this.e += e * this.a + f * this.c;\n this.f += e * this.b + f * this.d;\n this.c = c * this.a + d * this.c;\n this.d = c * this.b + d * this.d;\n\n this.a = aNew;\n this.b = bNew;\n return this;\n };\n /*\\\n * Matrix.multLeft\n [ method ]\n **\n * Multiplies a passed affine transform to the left: M * this.\n - a (number)\n - b (number)\n - c (number)\n - d (number)\n - e (number)\n - f (number)\n * or\n - matrix (object) @Matrix\n \\*/\n Matrix.prototype.multLeft = function (a, b, c, d, e, f) {\n if (a && a instanceof Matrix) {\n return this.multLeft(a.a, a.b, a.c, a.d, a.e, a.f);\n }\n var aNew = a * this.a + c * this.b,\n cNew = a * this.c + c * this.d,\n eNew = a * this.e + c * this.f + e;\n this.b = b * this.a + d * this.b;\n this.d = b * this.c + d * this.d;\n this.f = b * this.e + d * this.f + f;\n\n this.a = aNew;\n this.c = cNew;\n this.e = eNew;\n return this;\n };\n /*\\\n * Matrix.invert\n [ method ]\n **\n * Returns an inverted version of the matrix\n = (object) @Matrix\n \\*/\n matrixproto.invert = function () {\n var me = this,\n x = me.a * me.d - me.b * me.c;\n return new Matrix(me.d / x, -me.b / x, -me.c / x, me.a / x, (me.c * me.f - me.d * me.e) / x, (me.b * me.e - me.a * me.f) / x);\n };\n /*\\\n * Matrix.clone\n [ method ]\n **\n * Returns a copy of the matrix\n = (object) @Matrix\n \\*/\n matrixproto.clone = function () {\n return new Matrix(this.a, this.b, this.c, this.d, this.e, this.f);\n };\n /*\\\n * Matrix.translate\n [ method ]\n **\n * Translate the matrix\n - x (number) horizontal offset distance\n - y (number) vertical offset distance\n \\*/\n matrixproto.translate = function (x, y) {\n this.e += x * this.a + y * this.c;\n this.f += x * this.b + y * this.d;\n return this;\n };\n /*\\\n * Matrix.scale\n [ method ]\n **\n * Scales the matrix\n - x (number) amount to be scaled, with `1` resulting in no change\n - y (number) #optional amount to scale along the vertical axis. (Otherwise `x` applies to both axes.)\n - cx (number) #optional horizontal origin point from which to scale\n - cy (number) #optional vertical origin point from which to scale\n * Default cx, cy is the middle point of the element.\n \\*/\n matrixproto.scale = function (x, y, cx, cy) {\n y == null && (y = x);\n (cx || cy) && this.translate(cx, cy);\n this.a *= x;\n this.b *= x;\n this.c *= y;\n this.d *= y;\n (cx || cy) && this.translate(-cx, -cy);\n return this;\n };\n /*\\\n * Matrix.rotate\n [ method ]\n **\n * Rotates the matrix\n - a (number) angle of rotation, in degrees\n - x (number) horizontal origin point from which to rotate\n - y (number) vertical origin point from which to rotate\n \\*/\n matrixproto.rotate = function (a, x, y) {\n a = Snap.rad(a);\n x = x || 0;\n y = y || 0;\n var cos = +math.cos(a).toFixed(9),\n sin = +math.sin(a).toFixed(9);\n this.add(cos, sin, -sin, cos, x, y);\n return this.add(1, 0, 0, 1, -x, -y);\n };\n /*\\\n * Matrix.skewX\n [ method ]\n **\n * Skews the matrix along the x-axis\n - x (number) Angle to skew along the x-axis (in degrees).\n \\*/\n matrixproto.skewX = function (x) {\n return this.skew(x, 0);\n };\n /*\\\n * Matrix.skewY\n [ method ]\n **\n * Skews the matrix along the y-axis\n - y (number) Angle to skew along the y-axis (in degrees).\n \\*/\n matrixproto.skewY = function (y) {\n return this.skew(0, y);\n };\n /*\\\n * Matrix.skew\n [ method ]\n **\n * Skews the matrix\n - y (number) Angle to skew along the y-axis (in degrees).\n - x (number) Angle to skew along the x-axis (in degrees).\n \\*/\n matrixproto.skew = function (x, y) {\n x = x || 0;\n y = y || 0;\n x = Snap.rad(x);\n y = Snap.rad(y);\n var c = math.tan(x).toFixed(9);\n var b = math.tan(y).toFixed(9);\n return this.add(1, b, c, 1, 0, 0);\n };\n /*\\\n * Matrix.x\n [ method ]\n **\n * Returns x coordinate for given point after transformation described by the matrix. See also @Matrix.y\n - x (number)\n - y (number)\n = (number) x\n \\*/\n matrixproto.x = function (x, y) {\n return x * this.a + y * this.c + this.e;\n };\n /*\\\n * Matrix.y\n [ method ]\n **\n * Returns y coordinate for given point after transformation described by the matrix. See also @Matrix.x\n - x (number)\n - y (number)\n = (number) y\n \\*/\n matrixproto.y = function (x, y) {\n return x * this.b + y * this.d + this.f;\n };\n matrixproto.get = function (i) {\n return +this[Str.fromCharCode(97 + i)].toFixed(4);\n };\n matrixproto.toString = function () {\n return \"matrix(\" + [this.get(0), this.get(1), this.get(2), this.get(3), this.get(4), this.get(5)].join() + \")\";\n };\n matrixproto.offset = function () {\n return [this.e.toFixed(4), this.f.toFixed(4)];\n };\n function norm(a) {\n return a[0] * a[0] + a[1] * a[1];\n }\n function normalize(a) {\n var mag = math.sqrt(norm(a));\n a[0] && (a[0] /= mag);\n a[1] && (a[1] /= mag);\n }\n /*\\\n * Matrix.determinant\n [ method ]\n **\n * Finds determinant of the given matrix.\n = (number) determinant\n \\*/\n matrixproto.determinant = function () {\n return this.a * this.d - this.b * this.c;\n };\n /*\\\n * Matrix.split\n [ method ]\n **\n * Splits matrix into primitive transformations\n = (object) in format:\n o dx (number) translation by x\n o dy (number) translation by y\n o scalex (number) scale by x\n o scaley (number) scale by y\n o shear (number) shear\n o rotate (number) rotation in deg\n o isSimple (boolean) could it be represented via simple transformations\n \\*/\n matrixproto.split = function () {\n var out = {};\n // translation\n out.dx = this.e;\n out.dy = this.f;\n\n // scale and shear\n var row = [[this.a, this.b], [this.c, this.d]];\n out.scalex = math.sqrt(norm(row[0]));\n normalize(row[0]);\n\n out.shear = row[0][0] * row[1][0] + row[0][1] * row[1][1];\n row[1] = [row[1][0] - row[0][0] * out.shear, row[1][1] - row[0][1] * out.shear];\n\n out.scaley = math.sqrt(norm(row[1]));\n normalize(row[1]);\n out.shear /= out.scaley;\n\n if (this.determinant() < 0) {\n out.scalex = -out.scalex;\n }\n\n // rotation\n var sin = row[0][1],\n cos = row[1][1];\n if (cos < 0) {\n out.rotate = Snap.deg(math.acos(cos));\n if (sin < 0) {\n out.rotate = 360 - out.rotate;\n }\n } else {\n out.rotate = Snap.deg(math.asin(sin));\n }\n\n out.isSimple = !+out.shear.toFixed(9) && (out.scalex.toFixed(9) == out.scaley.toFixed(9) || !out.rotate);\n out.isSuperSimple = !+out.shear.toFixed(9) && out.scalex.toFixed(9) == out.scaley.toFixed(9) && !out.rotate;\n out.noRotation = !+out.shear.toFixed(9) && !out.rotate;\n return out;\n };\n /*\\\n * Matrix.toTransformString\n [ method ]\n **\n * Returns transform string that represents given matrix\n = (string) transform string\n \\*/\n matrixproto.toTransformString = function (shorter) {\n var s = shorter || this.split();\n if (!+s.shear.toFixed(9)) {\n s.scalex = +s.scalex.toFixed(4);\n s.scaley = +s.scaley.toFixed(4);\n s.rotate = +s.rotate.toFixed(4);\n return (s.dx || s.dy ? \"t\" + [+s.dx.toFixed(4), +s.dy.toFixed(4)] : E) +\n (s.rotate ? \"r\" + [+s.rotate.toFixed(4), 0, 0] : E) +\n (s.scalex != 1 || s.scaley != 1 ? \"s\" + [s.scalex, s.scaley, 0, 0] : E);\n } else {\n return \"m\" + [this.get(0), this.get(1), this.get(2), this.get(3), this.get(4), this.get(5)];\n }\n };\n })(Matrix.prototype);\n /*\\\n * Snap.Matrix\n [ method ]\n **\n * Matrix constructor, extend on your own risk.\n * To create matrices use @Snap.matrix.\n \\*/\n Snap.Matrix = Matrix;\n /*\\\n * Snap.matrix\n [ method ]\n **\n * Utility method\n **\n * Returns a matrix based on the given parameters\n - a (number)\n - b (number)\n - c (number)\n - d (number)\n - e (number)\n - f (number)\n * or\n - svgMatrix (SVGMatrix)\n = (object) @Matrix\n \\*/\n Snap.matrix = function (a, b, c, d, e, f) {\n return new Matrix(a, b, c, d, e, f);\n };\n});\n\n// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nSnap.plugin(function (Snap, Element, Paper, glob, Fragment) {\n var has = \"hasOwnProperty\",\n make = Snap._.make,\n wrap = Snap._.wrap,\n is = Snap.is,\n getSomeDefs = Snap._.getSomeDefs,\n reURLValue = /^url\\((['\"]?)([^)]+)\\1\\)$/,\n $ = Snap._.$,\n URL = Snap.url,\n Str = String,\n separator = Snap._.separator,\n E = \"\";\n /*\\\n * Snap.deurl\n [ method ]\n **\n * Unwraps path from `\"url()\"`.\n - value (string) url path\n = (string) unwrapped path\n \\*/\n Snap.deurl = function (value) {\n var res = String(value).match(reURLValue);\n return res ? res[2] : value;\n }\n // Attributes event handlers\n eve.on(\"snap.util.attr.mask\", function (value) {\n if (value instanceof Element || value instanceof Fragment) {\n eve.stop();\n if (value instanceof Fragment && value.node.childNodes.length == 1) {\n value = value.node.firstChild;\n getSomeDefs(this).appendChild(value);\n value = wrap(value);\n }\n if (value.type == \"mask\") {\n var mask = value;\n } else {\n mask = make(\"mask\", getSomeDefs(this));\n mask.node.appendChild(value.node);\n }\n !mask.node.id && $(mask.node, {\n id: mask.id\n });\n $(this.node, {\n mask: URL(mask.id)\n });\n }\n });\n (function (clipIt) {\n eve.on(\"snap.util.attr.clip\", clipIt);\n eve.on(\"snap.util.attr.clip-path\", clipIt);\n eve.on(\"snap.util.attr.clipPath\", clipIt);\n }(function (value) {\n if (value instanceof Element || value instanceof Fragment) {\n eve.stop();\n var clip,\n node = value.node;\n while (node) {\n if (node.nodeName === \"clipPath\") {\n clip = new Element(node);\n break;\n }\n if (node.nodeName === \"svg\") {\n clip = undefined;\n break;\n }\n node = node.parentNode;\n }\n if (!clip) {\n clip = make(\"clipPath\", getSomeDefs(this));\n clip.node.appendChild(value.node);\n !clip.node.id && $(clip.node, {\n id: clip.id\n });\n }\n $(this.node, {\n \"clip-path\": URL(clip.node.id || clip.id)\n });\n }\n }));\n function fillStroke(name) {\n return function (value) {\n eve.stop();\n if (value instanceof Fragment && value.node.childNodes.length == 1 &&\n (value.node.firstChild.tagName == \"radialGradient\" ||\n value.node.firstChild.tagName == \"linearGradient\" ||\n value.node.firstChild.tagName == \"pattern\")) {\n value = value.node.firstChild;\n getSomeDefs(this).appendChild(value);\n value = wrap(value);\n }\n if (value instanceof Element) {\n if (value.type == \"radialGradient\" || value.type == \"linearGradient\"\n || value.type == \"pattern\") {\n if (!value.node.id) {\n $(value.node, {\n id: value.id\n });\n }\n var fill = URL(value.node.id);\n } else {\n fill = value.attr(name);\n }\n } else {\n fill = Snap.color(value);\n if (fill.error) {\n var grad = Snap(getSomeDefs(this).ownerSVGElement).gradient(value);\n if (grad) {\n if (!grad.node.id) {\n $(grad.node, {\n id: grad.id\n });\n }\n fill = URL(grad.node.id);\n } else {\n fill = value;\n }\n } else {\n fill = Str(fill);\n }\n }\n var attrs = {};\n attrs[name] = fill;\n $(this.node, attrs);\n this.node.style[name] = E;\n };\n }\n eve.on(\"snap.util.attr.fill\", fillStroke(\"fill\"));\n eve.on(\"snap.util.attr.stroke\", fillStroke(\"stroke\"));\n var gradrg = /^([lr])(?:\\(([^)]*)\\))?(.*)$/i;\n eve.on(\"snap.util.grad.parse\", function parseGrad(string) {\n string = Str(string);\n var tokens = string.match(gradrg);\n if (!tokens) {\n return null;\n }\n var type = tokens[1],\n params = tokens[2],\n stops = tokens[3];\n params = params.split(/\\s*,\\s*/).map(function (el) {\n return +el == el ? +el : el;\n });\n if (params.length == 1 && params[0] == 0) {\n params = [];\n }\n stops = stops.split(\"-\");\n stops = stops.map(function (el) {\n el = el.split(\":\");\n var out = {\n color: el[0]\n };\n if (el[1]) {\n out.offset = parseFloat(el[1]);\n }\n return out;\n });\n var len = stops.length,\n start = 0,\n j = 0;\n function seed(i, end) {\n var step = (end - start) / (i - j);\n for (var k = j; k < i; k++) {\n stops[k].offset = +(+start + step * (k - j)).toFixed(2);\n }\n j = i;\n start = end;\n }\n len--;\n for (var i = 0; i < len; i++) if (\"offset\" in stops[i]) {\n seed(i, stops[i].offset);\n }\n stops[len].offset = stops[len].offset || 100;\n seed(len, stops[len].offset);\n return {\n type: type,\n params: params,\n stops: stops\n };\n });\n\n eve.on(\"snap.util.attr.d\", function (value) {\n eve.stop();\n if (is(value, \"array\") && is(value[0], \"array\")) {\n value = Snap.path.toString.call(value);\n }\n value = Str(value);\n if (value.match(/[ruo]/i)) {\n value = Snap.path.toAbsolute(value);\n }\n $(this.node, {d: value});\n })(-1);\n eve.on(\"snap.util.attr.#text\", function (value) {\n eve.stop();\n value = Str(value);\n var txt = glob.doc.createTextNode(value);\n while (this.node.firstChild) {\n this.node.removeChild(this.node.firstChild);\n }\n this.node.appendChild(txt);\n })(-1);\n eve.on(\"snap.util.attr.path\", function (value) {\n eve.stop();\n this.attr({d: value});\n })(-1);\n eve.on(\"snap.util.attr.class\", function (value) {\n eve.stop();\n this.node.className.baseVal = value;\n })(-1);\n eve.on(\"snap.util.attr.viewBox\", function (value) {\n var vb;\n if (is(value, \"object\") && \"x\" in value) {\n vb = [value.x, value.y, value.width, value.height].join(\" \");\n } else if (is(value, \"array\")) {\n vb = value.join(\" \");\n } else {\n vb = value;\n }\n $(this.node, {\n viewBox: vb\n });\n eve.stop();\n })(-1);\n eve.on(\"snap.util.attr.transform\", function (value) {\n this.transform(value);\n eve.stop();\n })(-1);\n eve.on(\"snap.util.attr.r\", function (value) {\n if (this.type == \"rect\") {\n eve.stop();\n $(this.node, {\n rx: value,\n ry: value\n });\n }\n })(-1);\n eve.on(\"snap.util.attr.textpath\", function (value) {\n eve.stop();\n if (this.type == \"text\") {\n var id, tp, node;\n if (!value && this.textPath) {\n tp = this.textPath;\n while (tp.node.firstChild) {\n this.node.appendChild(tp.node.firstChild);\n }\n tp.remove();\n delete this.textPath;\n return;\n }\n if (is(value, \"string\")) {\n var defs = getSomeDefs(this),\n path = wrap(defs.parentNode).path(value);\n defs.appendChild(path.node);\n id = path.id;\n path.attr({id: id});\n } else {\n value = wrap(value);\n if (value instanceof Element) {\n id = value.attr(\"id\");\n if (!id) {\n id = value.id;\n value.attr({id: id});\n }\n }\n }\n if (id) {\n tp = this.textPath;\n node = this.node;\n if (tp) {\n tp.attr({\"xlink:href\": \"#\" + id});\n } else {\n tp = $(\"textPath\", {\n \"xlink:href\": \"#\" + id\n });\n while (node.firstChild) {\n tp.appendChild(node.firstChild);\n }\n node.appendChild(tp);\n this.textPath = wrap(tp);\n }\n }\n }\n })(-1);\n eve.on(\"snap.util.attr.text\", function (value) {\n if (this.type == \"text\") {\n var i = 0,\n node = this.node,\n tuner = function (chunk) {\n var out = $(\"tspan\");\n if (is(chunk, \"array\")) {\n for (var i = 0; i < chunk.length; i++) {\n out.appendChild(tuner(chunk[i]));\n }\n } else {\n out.appendChild(glob.doc.createTextNode(chunk));\n }\n out.normalize && out.normalize();\n return out;\n };\n while (node.firstChild) {\n node.removeChild(node.firstChild);\n }\n var tuned = tuner(value);\n while (tuned.firstChild) {\n node.appendChild(tuned.firstChild);\n }\n }\n eve.stop();\n })(-1);\n function setFontSize(value) {\n eve.stop();\n if (value == +value) {\n value += \"px\";\n }\n this.node.style.fontSize = value;\n }\n eve.on(\"snap.util.attr.fontSize\", setFontSize)(-1);\n eve.on(\"snap.util.attr.font-size\", setFontSize)(-1);\n\n\n eve.on(\"snap.util.getattr.transform\", function () {\n eve.stop();\n return this.transform();\n })(-1);\n eve.on(\"snap.util.getattr.textpath\", function () {\n eve.stop();\n return this.textPath;\n })(-1);\n // Markers\n (function () {\n function getter(end) {\n return function () {\n eve.stop();\n var style = glob.doc.defaultView.getComputedStyle(this.node, null).getPropertyValue(\"marker-\" + end);\n if (style == \"none\") {\n return style;\n } else {\n return Snap(glob.doc.getElementById(style.match(reURLValue)[1]));\n }\n };\n }\n function setter(end) {\n return function (value) {\n eve.stop();\n var name = \"marker\" + end.charAt(0).toUpperCase() + end.substring(1);\n if (value == \"\" || !value) {\n this.node.style[name] = \"none\";\n return;\n }\n if (value.type == \"marker\") {\n var id = value.node.id;\n if (!id) {\n $(value.node, {id: value.id});\n }\n this.node.style[name] = URL(id);\n return;\n }\n };\n }\n eve.on(\"snap.util.getattr.marker-end\", getter(\"end\"))(-1);\n eve.on(\"snap.util.getattr.markerEnd\", getter(\"end\"))(-1);\n eve.on(\"snap.util.getattr.marker-start\", getter(\"start\"))(-1);\n eve.on(\"snap.util.getattr.markerStart\", getter(\"start\"))(-1);\n eve.on(\"snap.util.getattr.marker-mid\", getter(\"mid\"))(-1);\n eve.on(\"snap.util.getattr.markerMid\", getter(\"mid\"))(-1);\n eve.on(\"snap.util.attr.marker-end\", setter(\"end\"))(-1);\n eve.on(\"snap.util.attr.markerEnd\", setter(\"end\"))(-1);\n eve.on(\"snap.util.attr.marker-start\", setter(\"start\"))(-1);\n eve.on(\"snap.util.attr.markerStart\", setter(\"start\"))(-1);\n eve.on(\"snap.util.attr.marker-mid\", setter(\"mid\"))(-1);\n eve.on(\"snap.util.attr.markerMid\", setter(\"mid\"))(-1);\n }());\n eve.on(\"snap.util.getattr.r\", function () {\n if (this.type == \"rect\" && $(this.node, \"rx\") == $(this.node, \"ry\")) {\n eve.stop();\n return $(this.node, \"rx\");\n }\n })(-1);\n function textExtract(node) {\n var out = [];\n var children = node.childNodes;\n for (var i = 0, ii = children.length; i < ii; i++) {\n var chi = children[i];\n if (chi.nodeType == 3) {\n out.push(chi.nodeValue);\n }\n if (chi.tagName == \"tspan\") {\n if (chi.childNodes.length == 1 && chi.firstChild.nodeType == 3) {\n out.push(chi.firstChild.nodeValue);\n } else {\n out.push(textExtract(chi));\n }\n }\n }\n return out;\n }\n eve.on(\"snap.util.getattr.text\", function () {\n if (this.type == \"text\" || this.type == \"tspan\") {\n eve.stop();\n var out = textExtract(this.node);\n return out.length == 1 ? out[0] : out;\n }\n })(-1);\n eve.on(\"snap.util.getattr.#text\", function () {\n return this.node.textContent;\n })(-1);\n eve.on(\"snap.util.getattr.fill\", function (internal) {\n if (internal) {\n return;\n }\n eve.stop();\n var value = eve(\"snap.util.getattr.fill\", this, true).firstDefined();\n return Snap(Snap.deurl(value)) || value;\n })(-1);\n eve.on(\"snap.util.getattr.stroke\", function (internal) {\n if (internal) {\n return;\n }\n eve.stop();\n var value = eve(\"snap.util.getattr.stroke\", this, true).firstDefined();\n return Snap(Snap.deurl(value)) || value;\n })(-1);\n eve.on(\"snap.util.getattr.viewBox\", function () {\n eve.stop();\n var vb = $(this.node, \"viewBox\");\n if (vb) {\n vb = vb.split(separator);\n return Snap._.box(+vb[0], +vb[1], +vb[2], +vb[3]);\n } else {\n return;\n }\n })(-1);\n eve.on(\"snap.util.getattr.points\", function () {\n var p = $(this.node, \"points\");\n eve.stop();\n if (p) {\n return p.split(separator);\n } else {\n return;\n }\n })(-1);\n eve.on(\"snap.util.getattr.path\", function () {\n var p = $(this.node, \"d\");\n eve.stop();\n return p;\n })(-1);\n eve.on(\"snap.util.getattr.class\", function () {\n return this.node.className.baseVal;\n })(-1);\n function getFontSize() {\n eve.stop();\n return this.node.style.fontSize;\n }\n eve.on(\"snap.util.getattr.fontSize\", getFontSize)(-1);\n eve.on(\"snap.util.getattr.font-size\", getFontSize)(-1);\n});\n\n// Copyright (c) 2014 Adobe Systems Incorporated. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nSnap.plugin(function (Snap, Element, Paper, glob, Fragment) {\n var rgNotSpace = /\\S+/g,\n rgBadSpace = /[\\t\\r\\n\\f]/g,\n rgTrim = /(^\\s+|\\s+$)/g,\n Str = String,\n elproto = Element.prototype;\n /*\\\n * Element.addClass\n [ method ]\n **\n * Adds given class name or list of class names to the element.\n - value (string) class name or space separated list of class names\n **\n = (Element) original element.\n \\*/\n elproto.addClass = function (value) {\n var classes = Str(value || \"\").match(rgNotSpace) || [],\n elem = this.node,\n className = elem.className.baseVal,\n curClasses = className.match(rgNotSpace) || [],\n j,\n pos,\n clazz,\n finalValue;\n\n if (classes.length) {\n j = 0;\n while (clazz = classes[j++]) {\n pos = curClasses.indexOf(clazz);\n if (!~pos) {\n curClasses.push(clazz);\n }\n }\n\n finalValue = curClasses.join(\" \");\n if (className != finalValue) {\n elem.className.baseVal = finalValue;\n }\n }\n return this;\n };\n /*\\\n * Element.removeClass\n [ method ]\n **\n * Removes given class name or list of class names from the element.\n - value (string) class name or space separated list of class names\n **\n = (Element) original element.\n \\*/\n elproto.removeClass = function (value) {\n var classes = Str(value || \"\").match(rgNotSpace) || [],\n elem = this.node,\n className = elem.className.baseVal,\n curClasses = className.match(rgNotSpace) || [],\n j,\n pos,\n clazz,\n finalValue;\n if (curClasses.length) {\n j = 0;\n while (clazz = classes[j++]) {\n pos = curClasses.indexOf(clazz);\n if (~pos) {\n curClasses.splice(pos, 1);\n }\n }\n\n finalValue = curClasses.join(\" \");\n if (className != finalValue) {\n elem.className.baseVal = finalValue;\n }\n }\n return this;\n };\n /*\\\n * Element.hasClass\n [ method ]\n **\n * Checks if the element has a given class name in the list of class names applied to it.\n - value (string) class name\n **\n = (boolean) `true` if the element has given class\n \\*/\n elproto.hasClass = function (value) {\n var elem = this.node,\n className = elem.className.baseVal,\n curClasses = className.match(rgNotSpace) || [];\n return !!~curClasses.indexOf(value);\n };\n /*\\\n * Element.toggleClass\n [ method ]\n **\n * Add or remove one or more classes from the element, depending on either\n * the class’s presence or the value of the `flag` argument.\n - value (string) class name or space separated list of class names\n - flag (boolean) value to determine whether the class should be added or removed\n **\n = (Element) original element.\n \\*/\n elproto.toggleClass = function (value, flag) {\n if (flag != null) {\n if (flag) {\n return this.addClass(value);\n } else {\n return this.removeClass(value);\n }\n }\n var classes = (value || \"\").match(rgNotSpace) || [],\n elem = this.node,\n className = elem.className.baseVal,\n curClasses = className.match(rgNotSpace) || [],\n j,\n pos,\n clazz,\n finalValue;\n j = 0;\n while (clazz = classes[j++]) {\n pos = curClasses.indexOf(clazz);\n if (~pos) {\n curClasses.splice(pos, 1);\n } else {\n curClasses.push(clazz);\n }\n }\n\n finalValue = curClasses.join(\" \");\n if (className != finalValue) {\n elem.className.baseVal = finalValue;\n }\n return this;\n };\n});\n\n// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nSnap.plugin(function (Snap, Element, Paper, glob, Fragment) {\n var operators = {\n \"+\": function (x, y) {\n return x + y;\n },\n \"-\": function (x, y) {\n return x - y;\n },\n \"/\": function (x, y) {\n return x / y;\n },\n \"*\": function (x, y) {\n return x * y;\n }\n },\n Str = String,\n reUnit = /[a-z]+$/i,\n reAddon = /^\\s*([+\\-\\/*])\\s*=\\s*([\\d.eE+\\-]+)\\s*([^\\d\\s]+)?\\s*$/;\n function getNumber(val) {\n return val;\n }\n function getUnit(unit) {\n return function (val) {\n return +val.toFixed(3) + unit;\n };\n }\n eve.on(\"snap.util.attr\", function (val) {\n var plus = Str(val).match(reAddon);\n if (plus) {\n var evnt = eve.nt(),\n name = evnt.substring(evnt.lastIndexOf(\".\") + 1),\n a = this.attr(name),\n atr = {};\n eve.stop();\n var unit = plus[3] || \"\",\n aUnit = a.match(reUnit),\n op = operators[plus[1]];\n if (aUnit && aUnit == unit) {\n val = op(parseFloat(a), +plus[2]);\n } else {\n a = this.asPX(name);\n val = op(this.asPX(name), this.asPX(name, plus[2] + unit));\n }\n if (isNaN(a) || isNaN(val)) {\n return;\n }\n atr[name] = val;\n this.attr(atr);\n }\n })(-10);\n eve.on(\"snap.util.equal\", function (name, b) {\n var A, B, a = Str(this.attr(name) || \"\"),\n el = this,\n bplus = Str(b).match(reAddon);\n if (bplus) {\n eve.stop();\n var unit = bplus[3] || \"\",\n aUnit = a.match(reUnit),\n op = operators[bplus[1]];\n if (aUnit && aUnit == unit) {\n return {\n from: parseFloat(a),\n to: op(parseFloat(a), +bplus[2]),\n f: getUnit(aUnit)\n };\n } else {\n a = this.asPX(name);\n return {\n from: a,\n to: op(a, this.asPX(name, bplus[2] + unit)),\n f: getNumber\n };\n }\n }\n })(-10);\n});\n\n// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nSnap.plugin(function (Snap, Element, Paper, glob, Fragment) {\n var proto = Paper.prototype,\n is = Snap.is;\n /*\\\n * Paper.rect\n [ method ]\n *\n * Draws a rectangle\n **\n - x (number) x coordinate of the top left corner\n - y (number) y coordinate of the top left corner\n - width (number) width\n - height (number) height\n - rx (number) #optional horizontal radius for rounded corners, default is 0\n - ry (number) #optional vertical radius for rounded corners, default is rx or 0\n = (object) the `rect` element\n **\n > Usage\n | // regular rectangle\n | var c = paper.rect(10, 10, 50, 50);\n | // rectangle with rounded corners\n | var c = paper.rect(40, 40, 50, 50, 10);\n \\*/\n proto.rect = function (x, y, w, h, rx, ry) {\n var attr;\n if (ry == null) {\n ry = rx;\n }\n if (is(x, \"object\") && x == \"[object Object]\") {\n attr = x;\n } else if (x != null) {\n attr = {\n x: x,\n y: y,\n width: w,\n height: h\n };\n if (rx != null) {\n attr.rx = rx;\n attr.ry = ry;\n }\n }\n return this.el(\"rect\", attr);\n };\n /*\\\n * Paper.circle\n [ method ]\n **\n * Draws a circle\n **\n - x (number) x coordinate of the centre\n - y (number) y coordinate of the centre\n - r (number) radius\n = (object) the `circle` element\n **\n > Usage\n | var c = paper.circle(50, 50, 40);\n \\*/\n proto.circle = function (cx, cy, r) {\n var attr;\n if (is(cx, \"object\") && cx == \"[object Object]\") {\n attr = cx;\n } else if (cx != null) {\n attr = {\n cx: cx,\n cy: cy,\n r: r\n };\n }\n return this.el(\"circle\", attr);\n };\n\n var preload = (function () {\n function onerror() {\n this.parentNode.removeChild(this);\n }\n return function (src, f) {\n var img = glob.doc.createElement(\"img\"),\n body = glob.doc.body;\n img.style.cssText = \"position:absolute;left:-9999em;top:-9999em\";\n img.onload = function () {\n f.call(img);\n img.onload = img.onerror = null;\n body.removeChild(img);\n };\n img.onerror = onerror;\n body.appendChild(img);\n img.src = src;\n };\n }());\n\n /*\\\n * Paper.image\n [ method ]\n **\n * Places an image on the surface\n **\n - src (string) URI of the source image\n - x (number) x offset position\n - y (number) y offset position\n - width (number) width of the image\n - height (number) height of the image\n = (object) the `image` element\n * or\n = (object) Snap element object with type `image`\n **\n > Usage\n | var c = paper.image(\"apple.png\", 10, 10, 80, 80);\n \\*/\n proto.image = function (src, x, y, width, height) {\n var el = this.el(\"image\");\n if (is(src, \"object\") && \"src\" in src) {\n el.attr(src);\n } else if (src != null) {\n var set = {\n \"xlink:href\": src,\n preserveAspectRatio: \"none\"\n };\n if (x != null && y != null) {\n set.x = x;\n set.y = y;\n }\n if (width != null && height != null) {\n set.width = width;\n set.height = height;\n } else {\n preload(src, function () {\n Snap._.$(el.node, {\n width: this.offsetWidth,\n height: this.offsetHeight\n });\n });\n }\n Snap._.$(el.node, set);\n }\n return el;\n };\n /*\\\n * Paper.ellipse\n [ method ]\n **\n * Draws an ellipse\n **\n - x (number) x coordinate of the centre\n - y (number) y coordinate of the centre\n - rx (number) horizontal radius\n - ry (number) vertical radius\n = (object) the `ellipse` element\n **\n > Usage\n | var c = paper.ellipse(50, 50, 40, 20);\n \\*/\n proto.ellipse = function (cx, cy, rx, ry) {\n var attr;\n if (is(cx, \"object\") && cx == \"[object Object]\") {\n attr = cx;\n } else if (cx != null) {\n attr ={\n cx: cx,\n cy: cy,\n rx: rx,\n ry: ry\n };\n }\n return this.el(\"ellipse\", attr);\n };\n // SIERRA Paper.path(): Unclear from the link what a Catmull-Rom curveto is, and why it would make life any easier.\n /*\\\n * Paper.path\n [ method ]\n **\n * Creates a `` element using the given string as the path's definition\n - pathString (string) #optional path string in SVG format\n * Path string consists of one-letter commands, followed by comma seprarated arguments in numerical form. Example:\n | \"M10,20L30,40\"\n * This example features two commands: `M`, with arguments `(10, 20)` and `L` with arguments `(30, 40)`. Uppercase letter commands express coordinates in absolute terms, while lowercase commands express them in relative terms from the most recently declared coordinates.\n *\n #

Here is short list of commands available, for more details see SVG path string format or article about path strings at MDN.

\n # \n # \n # \n # \n # \n # \n # \n # \n # \n # \n # \n #
CommandNameParameters
Mmoveto(x y)+
Zclosepath(none)
Llineto(x y)+
Hhorizontal linetox+
Vvertical linetoy+
Ccurveto(x1 y1 x2 y2 x y)+
Ssmooth curveto(x2 y2 x y)+
Qquadratic Bézier curveto(x1 y1 x y)+
Tsmooth quadratic Bézier curveto(x y)+
Aelliptical arc(rx ry x-axis-rotation large-arc-flag sweep-flag x y)+
RCatmull-Rom curveto*x1 y1 (x y)+
\n * * _Catmull-Rom curveto_ is a not standard SVG command and added to make life easier.\n * Note: there is a special case when a path consists of only three commands: `M10,10R…z`. In this case the path connects back to its starting point.\n > Usage\n | var c = paper.path(\"M10 10L90 90\");\n | // draw a diagonal line:\n | // move to 10,10, line to 90,90\n \\*/\n proto.path = function (d) {\n var attr;\n if (is(d, \"object\") && !is(d, \"array\")) {\n attr = d;\n } else if (d) {\n attr = {d: d};\n }\n return this.el(\"path\", attr);\n };\n /*\\\n * Paper.g\n [ method ]\n **\n * Creates a group element\n **\n - varargs (…) #optional elements to nest within the group\n = (object) the `g` element\n **\n > Usage\n | var c1 = paper.circle(),\n | c2 = paper.rect(),\n | g = paper.g(c2, c1); // note that the order of elements is different\n * or\n | var c1 = paper.circle(),\n | c2 = paper.rect(),\n | g = paper.g();\n | g.add(c2, c1);\n \\*/\n /*\\\n * Paper.group\n [ method ]\n **\n * See @Paper.g\n \\*/\n proto.group = proto.g = function (first) {\n var attr,\n el = this.el(\"g\");\n if (arguments.length == 1 && first && !first.type) {\n el.attr(first);\n } else if (arguments.length) {\n el.add(Array.prototype.slice.call(arguments, 0));\n }\n return el;\n };\n /*\\\n * Paper.svg\n [ method ]\n **\n * Creates a nested SVG element.\n - x (number) @optional X of the element\n - y (number) @optional Y of the element\n - width (number) @optional width of the element\n - height (number) @optional height of the element\n - vbx (number) @optional viewbox X\n - vby (number) @optional viewbox Y\n - vbw (number) @optional viewbox width\n - vbh (number) @optional viewbox height\n **\n = (object) the `svg` element\n **\n \\*/\n proto.svg = function (x, y, width, height, vbx, vby, vbw, vbh) {\n var attrs = {};\n if (is(x, \"object\") && y == null) {\n attrs = x;\n } else {\n if (x != null) {\n attrs.x = x;\n }\n if (y != null) {\n attrs.y = y;\n }\n if (width != null) {\n attrs.width = width;\n }\n if (height != null) {\n attrs.height = height;\n }\n if (vbx != null && vby != null && vbw != null && vbh != null) {\n attrs.viewBox = [vbx, vby, vbw, vbh];\n }\n }\n return this.el(\"svg\", attrs);\n };\n /*\\\n * Paper.mask\n [ method ]\n **\n * Equivalent in behaviour to @Paper.g, except it’s a mask.\n **\n = (object) the `mask` element\n **\n \\*/\n proto.mask = function (first) {\n var attr,\n el = this.el(\"mask\");\n if (arguments.length == 1 && first && !first.type) {\n el.attr(first);\n } else if (arguments.length) {\n el.add(Array.prototype.slice.call(arguments, 0));\n }\n return el;\n };\n /*\\\n * Paper.ptrn\n [ method ]\n **\n * Equivalent in behaviour to @Paper.g, except it’s a pattern.\n - x (number) @optional X of the element\n - y (number) @optional Y of the element\n - width (number) @optional width of the element\n - height (number) @optional height of the element\n - vbx (number) @optional viewbox X\n - vby (number) @optional viewbox Y\n - vbw (number) @optional viewbox width\n - vbh (number) @optional viewbox height\n **\n = (object) the `pattern` element\n **\n \\*/\n proto.ptrn = function (x, y, width, height, vx, vy, vw, vh) {\n if (is(x, \"object\")) {\n var attr = x;\n } else {\n attr = {patternUnits: \"userSpaceOnUse\"};\n if (x) {\n attr.x = x;\n }\n if (y) {\n attr.y = y;\n }\n if (width != null) {\n attr.width = width;\n }\n if (height != null) {\n attr.height = height;\n }\n if (vx != null && vy != null && vw != null && vh != null) {\n attr.viewBox = [vx, vy, vw, vh];\n } else {\n attr.viewBox = [x || 0, y || 0, width || 0, height || 0];\n }\n }\n return this.el(\"pattern\", attr);\n };\n /*\\\n * Paper.use\n [ method ]\n **\n * Creates a element.\n - id (string) @optional id of element to link\n * or\n - id (Element) @optional element to link\n **\n = (object) the `use` element\n **\n \\*/\n proto.use = function (id) {\n if (id != null) {\n if (id instanceof Element) {\n if (!id.attr(\"id\")) {\n id.attr({id: Snap._.id(id)});\n }\n id = id.attr(\"id\");\n }\n if (String(id).charAt() == \"#\") {\n id = id.substring(1);\n }\n return this.el(\"use\", {\"xlink:href\": \"#\" + id});\n } else {\n return Element.prototype.use.call(this);\n }\n };\n /*\\\n * Paper.symbol\n [ method ]\n **\n * Creates a element.\n - vbx (number) @optional viewbox X\n - vby (number) @optional viewbox Y\n - vbw (number) @optional viewbox width\n - vbh (number) @optional viewbox height\n = (object) the `symbol` element\n **\n \\*/\n proto.symbol = function (vx, vy, vw, vh) {\n var attr = {};\n if (vx != null && vy != null && vw != null && vh != null) {\n attr.viewBox = [vx, vy, vw, vh];\n }\n\n return this.el(\"symbol\", attr);\n };\n /*\\\n * Paper.text\n [ method ]\n **\n * Draws a text string\n **\n - x (number) x coordinate position\n - y (number) y coordinate position\n - text (string|array) The text string to draw or array of strings to nest within separate `` elements\n = (object) the `text` element\n **\n > Usage\n | var t1 = paper.text(50, 50, \"Snap\");\n | var t2 = paper.text(50, 50, [\"S\",\"n\",\"a\",\"p\"]);\n | // Text path usage\n | t1.attr({textpath: \"M10,10L100,100\"});\n | // or\n | var pth = paper.path(\"M10,10L100,100\");\n | t1.attr({textpath: pth});\n \\*/\n proto.text = function (x, y, text) {\n var attr = {};\n if (is(x, \"object\")) {\n attr = x;\n } else if (x != null) {\n attr = {\n x: x,\n y: y,\n text: text || \"\"\n };\n }\n return this.el(\"text\", attr);\n };\n /*\\\n * Paper.line\n [ method ]\n **\n * Draws a line\n **\n - x1 (number) x coordinate position of the start\n - y1 (number) y coordinate position of the start\n - x2 (number) x coordinate position of the end\n - y2 (number) y coordinate position of the end\n = (object) the `line` element\n **\n > Usage\n | var t1 = paper.line(50, 50, 100, 100);\n \\*/\n proto.line = function (x1, y1, x2, y2) {\n var attr = {};\n if (is(x1, \"object\")) {\n attr = x1;\n } else if (x1 != null) {\n attr = {\n x1: x1,\n x2: x2,\n y1: y1,\n y2: y2\n };\n }\n return this.el(\"line\", attr);\n };\n /*\\\n * Paper.polyline\n [ method ]\n **\n * Draws a polyline\n **\n - points (array) array of points\n * or\n - varargs (…) points\n = (object) the `polyline` element\n **\n > Usage\n | var p1 = paper.polyline([10, 10, 100, 100]);\n | var p2 = paper.polyline(10, 10, 100, 100);\n \\*/\n proto.polyline = function (points) {\n if (arguments.length > 1) {\n points = Array.prototype.slice.call(arguments, 0);\n }\n var attr = {};\n if (is(points, \"object\") && !is(points, \"array\")) {\n attr = points;\n } else if (points != null) {\n attr = {points: points};\n }\n return this.el(\"polyline\", attr);\n };\n /*\\\n * Paper.polygon\n [ method ]\n **\n * Draws a polygon. See @Paper.polyline\n \\*/\n proto.polygon = function (points) {\n if (arguments.length > 1) {\n points = Array.prototype.slice.call(arguments, 0);\n }\n var attr = {};\n if (is(points, \"object\") && !is(points, \"array\")) {\n attr = points;\n } else if (points != null) {\n attr = {points: points};\n }\n return this.el(\"polygon\", attr);\n };\n // gradients\n (function () {\n var $ = Snap._.$;\n // gradients' helpers\n /*\\\n * Element.stops\n [ method ]\n **\n * Only for gradients!\n * Returns array of gradient stops elements.\n = (array) the stops array.\n \\*/\n function Gstops() {\n return this.selectAll(\"stop\");\n }\n /*\\\n * Element.addStop\n [ method ]\n **\n * Only for gradients!\n * Adds another stop to the gradient.\n - color (string) stops color\n - offset (number) stops offset 0..100\n = (object) gradient element\n \\*/\n function GaddStop(color, offset) {\n var stop = $(\"stop\"),\n attr = {\n offset: +offset + \"%\"\n };\n color = Snap.color(color);\n attr[\"stop-color\"] = color.hex;\n if (color.opacity < 1) {\n attr[\"stop-opacity\"] = color.opacity;\n }\n $(stop, attr);\n var stops = this.stops(),\n inserted;\n for (var i = 0; i < stops.length; i++) {\n var stopOffset = parseFloat(stops[i].attr(\"offset\"));\n if (stopOffset > offset) {\n this.node.insertBefore(stop, stops[i].node);\n inserted = true;\n break;\n }\n }\n if (!inserted) {\n this.node.appendChild(stop);\n }\n return this;\n }\n function GgetBBox() {\n if (this.type == \"linearGradient\") {\n var x1 = $(this.node, \"x1\") || 0,\n x2 = $(this.node, \"x2\") || 1,\n y1 = $(this.node, \"y1\") || 0,\n y2 = $(this.node, \"y2\") || 0;\n return Snap._.box(x1, y1, math.abs(x2 - x1), math.abs(y2 - y1));\n } else {\n var cx = this.node.cx || .5,\n cy = this.node.cy || .5,\n r = this.node.r || 0;\n return Snap._.box(cx - r, cy - r, r * 2, r * 2);\n }\n }\n /*\\\n * Element.setStops\n [ method ]\n **\n * Only for gradients!\n * Updates stops of the gradient based on passed gradient descriptor. See @Ppaer.gradient\n - str (string) gradient descriptor part after `()`.\n = (object) gradient element\n | var g = paper.gradient(\"l(0, 0, 1, 1)#000-#f00-#fff\");\n | g.setStops(\"#fff-#000-#f00-#fc0\");\n \\*/\n function GsetStops(str) {\n var grad = str,\n stops = this.stops();\n if (typeof str == \"string\") {\n grad = eve(\"snap.util.grad.parse\", null, \"l(0,0,0,1)\" + str).firstDefined().stops;\n }\n if (!Snap.is(grad, \"array\")) {\n return;\n }\n for (var i = 0; i < stops.length; i++) {\n if (grad[i]) {\n var color = Snap.color(grad[i].color),\n attr = {\"offset\": grad[i].offset + \"%\"};\n attr[\"stop-color\"] = color.hex;\n if (color.opacity < 1) {\n attr[\"stop-opacity\"] = color.opacity;\n }\n stops[i].attr(attr);\n } else {\n stops[i].remove();\n }\n }\n for (i = stops.length; i < grad.length; i++) {\n this.addStop(grad[i].color, grad[i].offset);\n }\n return this;\n }\n function gradient(defs, str) {\n var grad = eve(\"snap.util.grad.parse\", null, str).firstDefined(),\n el;\n if (!grad) {\n return null;\n }\n grad.params.unshift(defs);\n if (grad.type.toLowerCase() == \"l\") {\n el = gradientLinear.apply(0, grad.params);\n } else {\n el = gradientRadial.apply(0, grad.params);\n }\n if (grad.type != grad.type.toLowerCase()) {\n $(el.node, {\n gradientUnits: \"userSpaceOnUse\"\n });\n }\n var stops = grad.stops,\n len = stops.length;\n for (var i = 0; i < len; i++) {\n var stop = stops[i];\n el.addStop(stop.color, stop.offset);\n }\n return el;\n }\n function gradientLinear(defs, x1, y1, x2, y2) {\n var el = Snap._.make(\"linearGradient\", defs);\n el.stops = Gstops;\n el.addStop = GaddStop;\n el.getBBox = GgetBBox;\n el.setStops = GsetStops;\n if (x1 != null) {\n $(el.node, {\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n });\n }\n return el;\n }\n function gradientRadial(defs, cx, cy, r, fx, fy) {\n var el = Snap._.make(\"radialGradient\", defs);\n el.stops = Gstops;\n el.addStop = GaddStop;\n el.getBBox = GgetBBox;\n if (cx != null) {\n $(el.node, {\n cx: cx,\n cy: cy,\n r: r\n });\n }\n if (fx != null && fy != null) {\n $(el.node, {\n fx: fx,\n fy: fy\n });\n }\n return el;\n }\n /*\\\n * Paper.gradient\n [ method ]\n **\n * Creates a gradient element\n **\n - gradient (string) gradient descriptor\n > Gradient Descriptor\n * The gradient descriptor is an expression formatted as\n * follows: `()`. The `` can be\n * either linear or radial. The uppercase `L` or `R` letters\n * indicate absolute coordinates offset from the SVG surface.\n * Lowercase `l` or `r` letters indicate coordinates\n * calculated relative to the element to which the gradient is\n * applied. Coordinates specify a linear gradient vector as\n * `x1`, `y1`, `x2`, `y2`, or a radial gradient as `cx`, `cy`,\n * `r` and optional `fx`, `fy` specifying a focal point away\n * from the center of the circle. Specify `` as a list\n * of dash-separated CSS color values. Each color may be\n * followed by a custom offset value, separated with a colon\n * character.\n > Examples\n * Linear gradient, relative from top-left corner to bottom-right\n * corner, from black through red to white:\n | var g = paper.gradient(\"l(0, 0, 1, 1)#000-#f00-#fff\");\n * Linear gradient, absolute from (0, 0) to (100, 100), from black\n * through red at 25% to white:\n | var g = paper.gradient(\"L(0, 0, 100, 100)#000-#f00:25-#fff\");\n * Radial gradient, relative from the center of the element with radius\n * half the width, from black to white:\n | var g = paper.gradient(\"r(0.5, 0.5, 0.5)#000-#fff\");\n * To apply the gradient:\n | paper.circle(50, 50, 40).attr({\n | fill: g\n | });\n = (object) the `gradient` element\n \\*/\n proto.gradient = function (str) {\n return gradient(this.defs, str);\n };\n proto.gradientLinear = function (x1, y1, x2, y2) {\n return gradientLinear(this.defs, x1, y1, x2, y2);\n };\n proto.gradientRadial = function (cx, cy, r, fx, fy) {\n return gradientRadial(this.defs, cx, cy, r, fx, fy);\n };\n /*\\\n * Paper.toString\n [ method ]\n **\n * Returns SVG code for the @Paper\n = (string) SVG code for the @Paper\n \\*/\n proto.toString = function () {\n var doc = this.node.ownerDocument,\n f = doc.createDocumentFragment(),\n d = doc.createElement(\"div\"),\n svg = this.node.cloneNode(true),\n res;\n f.appendChild(d);\n d.appendChild(svg);\n Snap._.$(svg, {xmlns: \"http://www.w3.org/2000/svg\"});\n res = d.innerHTML;\n f.removeChild(f.firstChild);\n return res;\n };\n /*\\\n * Paper.toDataURL\n [ method ]\n **\n * Returns SVG code for the @Paper as Data URI string.\n = (string) Data URI string\n \\*/\n proto.toDataURL = function () {\n if (window && window.btoa) {\n return \"data:image/svg+xml;base64,\" + btoa(unescape(encodeURIComponent(this)));\n }\n };\n /*\\\n * Paper.clear\n [ method ]\n **\n * Removes all child nodes of the paper, except .\n \\*/\n proto.clear = function () {\n var node = this.node.firstChild,\n next;\n while (node) {\n next = node.nextSibling;\n if (node.tagName != \"defs\") {\n node.parentNode.removeChild(node);\n } else {\n proto.clear.call({node: node});\n }\n node = next;\n }\n };\n }());\n});\n\n// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nSnap.plugin(function (Snap, Element, Paper, glob) {\n var elproto = Element.prototype,\n is = Snap.is,\n clone = Snap._.clone,\n has = \"hasOwnProperty\",\n p2s = /,?([a-z]),?/gi,\n toFloat = parseFloat,\n math = Math,\n PI = math.PI,\n mmin = math.min,\n mmax = math.max,\n pow = math.pow,\n abs = math.abs;\n function paths(ps) {\n var p = paths.ps = paths.ps || {};\n if (p[ps]) {\n p[ps].sleep = 100;\n } else {\n p[ps] = {\n sleep: 100\n };\n }\n setTimeout(function () {\n for (var key in p) if (p[has](key) && key != ps) {\n p[key].sleep--;\n !p[key].sleep && delete p[key];\n }\n });\n return p[ps];\n }\n function box(x, y, width, height) {\n if (x == null) {\n x = y = width = height = 0;\n }\n if (y == null) {\n y = x.y;\n width = x.width;\n height = x.height;\n x = x.x;\n }\n return {\n x: x,\n y: y,\n width: width,\n w: width,\n height: height,\n h: height,\n x2: x + width,\n y2: y + height,\n cx: x + width / 2,\n cy: y + height / 2,\n r1: math.min(width, height) / 2,\n r2: math.max(width, height) / 2,\n r0: math.sqrt(width * width + height * height) / 2,\n path: rectPath(x, y, width, height),\n vb: [x, y, width, height].join(\" \")\n };\n }\n function toString() {\n return this.join(\",\").replace(p2s, \"$1\");\n }\n function pathClone(pathArray) {\n var res = clone(pathArray);\n res.toString = toString;\n return res;\n }\n function getPointAtSegmentLength(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, length) {\n if (length == null) {\n return bezlen(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y);\n } else {\n return findDotsAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y,\n getTotLen(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, length));\n }\n }\n function getLengthFactory(istotal, subpath) {\n function O(val) {\n return +(+val).toFixed(3);\n }\n return Snap._.cacher(function (path, length, onlystart) {\n if (path instanceof Element) {\n path = path.attr(\"d\");\n }\n path = path2curve(path);\n var x, y, p, l, sp = \"\", subpaths = {}, point,\n len = 0;\n for (var i = 0, ii = path.length; i < ii; i++) {\n p = path[i];\n if (p[0] == \"M\") {\n x = +p[1];\n y = +p[2];\n } else {\n l = getPointAtSegmentLength(x, y, p[1], p[2], p[3], p[4], p[5], p[6]);\n if (len + l > length) {\n if (subpath && !subpaths.start) {\n point = getPointAtSegmentLength(x, y, p[1], p[2], p[3], p[4], p[5], p[6], length - len);\n sp += [\n \"C\" + O(point.start.x),\n O(point.start.y),\n O(point.m.x),\n O(point.m.y),\n O(point.x),\n O(point.y)\n ];\n if (onlystart) {return sp;}\n subpaths.start = sp;\n sp = [\n \"M\" + O(point.x),\n O(point.y) + \"C\" + O(point.n.x),\n O(point.n.y),\n O(point.end.x),\n O(point.end.y),\n O(p[5]),\n O(p[6])\n ].join();\n len += l;\n x = +p[5];\n y = +p[6];\n continue;\n }\n if (!istotal && !subpath) {\n point = getPointAtSegmentLength(x, y, p[1], p[2], p[3], p[4], p[5], p[6], length - len);\n return point;\n }\n }\n len += l;\n x = +p[5];\n y = +p[6];\n }\n sp += p.shift() + p;\n }\n subpaths.end = sp;\n point = istotal ? len : subpath ? subpaths : findDotsAtSegment(x, y, p[0], p[1], p[2], p[3], p[4], p[5], 1);\n return point;\n }, null, Snap._.clone);\n }\n var getTotalLength = getLengthFactory(1),\n getPointAtLength = getLengthFactory(),\n getSubpathsAtLength = getLengthFactory(0, 1);\n function findDotsAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t) {\n var t1 = 1 - t,\n t13 = pow(t1, 3),\n t12 = pow(t1, 2),\n t2 = t * t,\n t3 = t2 * t,\n x = t13 * p1x + t12 * 3 * t * c1x + t1 * 3 * t * t * c2x + t3 * p2x,\n y = t13 * p1y + t12 * 3 * t * c1y + t1 * 3 * t * t * c2y + t3 * p2y,\n mx = p1x + 2 * t * (c1x - p1x) + t2 * (c2x - 2 * c1x + p1x),\n my = p1y + 2 * t * (c1y - p1y) + t2 * (c2y - 2 * c1y + p1y),\n nx = c1x + 2 * t * (c2x - c1x) + t2 * (p2x - 2 * c2x + c1x),\n ny = c1y + 2 * t * (c2y - c1y) + t2 * (p2y - 2 * c2y + c1y),\n ax = t1 * p1x + t * c1x,\n ay = t1 * p1y + t * c1y,\n cx = t1 * c2x + t * p2x,\n cy = t1 * c2y + t * p2y,\n alpha = 90 - math.atan2(mx - nx, my - ny) * 180 / PI;\n // (mx > nx || my < ny) && (alpha += 180);\n return {\n x: x,\n y: y,\n m: {x: mx, y: my},\n n: {x: nx, y: ny},\n start: {x: ax, y: ay},\n end: {x: cx, y: cy},\n alpha: alpha\n };\n }\n function bezierBBox(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y) {\n if (!Snap.is(p1x, \"array\")) {\n p1x = [p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y];\n }\n var bbox = curveDim.apply(null, p1x);\n return box(\n bbox.min.x,\n bbox.min.y,\n bbox.max.x - bbox.min.x,\n bbox.max.y - bbox.min.y\n );\n }\n function isPointInsideBBox(bbox, x, y) {\n return x >= bbox.x &&\n x <= bbox.x + bbox.width &&\n y >= bbox.y &&\n y <= bbox.y + bbox.height;\n }\n function isBBoxIntersect(bbox1, bbox2) {\n bbox1 = box(bbox1);\n bbox2 = box(bbox2);\n return isPointInsideBBox(bbox2, bbox1.x, bbox1.y)\n || isPointInsideBBox(bbox2, bbox1.x2, bbox1.y)\n || isPointInsideBBox(bbox2, bbox1.x, bbox1.y2)\n || isPointInsideBBox(bbox2, bbox1.x2, bbox1.y2)\n || isPointInsideBBox(bbox1, bbox2.x, bbox2.y)\n || isPointInsideBBox(bbox1, bbox2.x2, bbox2.y)\n || isPointInsideBBox(bbox1, bbox2.x, bbox2.y2)\n || isPointInsideBBox(bbox1, bbox2.x2, bbox2.y2)\n || (bbox1.x < bbox2.x2 && bbox1.x > bbox2.x\n || bbox2.x < bbox1.x2 && bbox2.x > bbox1.x)\n && (bbox1.y < bbox2.y2 && bbox1.y > bbox2.y\n || bbox2.y < bbox1.y2 && bbox2.y > bbox1.y);\n }\n function base3(t, p1, p2, p3, p4) {\n var t1 = -3 * p1 + 9 * p2 - 9 * p3 + 3 * p4,\n t2 = t * t1 + 6 * p1 - 12 * p2 + 6 * p3;\n return t * t2 - 3 * p1 + 3 * p2;\n }\n function bezlen(x1, y1, x2, y2, x3, y3, x4, y4, z) {\n if (z == null) {\n z = 1;\n }\n z = z > 1 ? 1 : z < 0 ? 0 : z;\n var z2 = z / 2,\n n = 12,\n Tvalues = [-.1252,.1252,-.3678,.3678,-.5873,.5873,-.7699,.7699,-.9041,.9041,-.9816,.9816],\n Cvalues = [0.2491,0.2491,0.2335,0.2335,0.2032,0.2032,0.1601,0.1601,0.1069,0.1069,0.0472,0.0472],\n sum = 0;\n for (var i = 0; i < n; i++) {\n var ct = z2 * Tvalues[i] + z2,\n xbase = base3(ct, x1, x2, x3, x4),\n ybase = base3(ct, y1, y2, y3, y4),\n comb = xbase * xbase + ybase * ybase;\n sum += Cvalues[i] * math.sqrt(comb);\n }\n return z2 * sum;\n }\n function getTotLen(x1, y1, x2, y2, x3, y3, x4, y4, ll) {\n if (ll < 0 || bezlen(x1, y1, x2, y2, x3, y3, x4, y4) < ll) {\n return;\n }\n var t = 1,\n step = t / 2,\n t2 = t - step,\n l,\n e = .01;\n l = bezlen(x1, y1, x2, y2, x3, y3, x4, y4, t2);\n while (abs(l - ll) > e) {\n step /= 2;\n t2 += (l < ll ? 1 : -1) * step;\n l = bezlen(x1, y1, x2, y2, x3, y3, x4, y4, t2);\n }\n return t2;\n }\n function intersect(x1, y1, x2, y2, x3, y3, x4, y4) {\n if (\n mmax(x1, x2) < mmin(x3, x4) ||\n mmin(x1, x2) > mmax(x3, x4) ||\n mmax(y1, y2) < mmin(y3, y4) ||\n mmin(y1, y2) > mmax(y3, y4)\n ) {\n return;\n }\n var nx = (x1 * y2 - y1 * x2) * (x3 - x4) - (x1 - x2) * (x3 * y4 - y3 * x4),\n ny = (x1 * y2 - y1 * x2) * (y3 - y4) - (y1 - y2) * (x3 * y4 - y3 * x4),\n denominator = (x1 - x2) * (y3 - y4) - (y1 - y2) * (x3 - x4);\n\n if (!denominator) {\n return;\n }\n var px = nx / denominator,\n py = ny / denominator,\n px2 = +px.toFixed(2),\n py2 = +py.toFixed(2);\n if (\n px2 < +mmin(x1, x2).toFixed(2) ||\n px2 > +mmax(x1, x2).toFixed(2) ||\n px2 < +mmin(x3, x4).toFixed(2) ||\n px2 > +mmax(x3, x4).toFixed(2) ||\n py2 < +mmin(y1, y2).toFixed(2) ||\n py2 > +mmax(y1, y2).toFixed(2) ||\n py2 < +mmin(y3, y4).toFixed(2) ||\n py2 > +mmax(y3, y4).toFixed(2)\n ) {\n return;\n }\n return {x: px, y: py};\n }\n function inter(bez1, bez2) {\n return interHelper(bez1, bez2);\n }\n function interCount(bez1, bez2) {\n return interHelper(bez1, bez2, 1);\n }\n function interHelper(bez1, bez2, justCount) {\n var bbox1 = bezierBBox(bez1),\n bbox2 = bezierBBox(bez2);\n if (!isBBoxIntersect(bbox1, bbox2)) {\n return justCount ? 0 : [];\n }\n var l1 = bezlen.apply(0, bez1),\n l2 = bezlen.apply(0, bez2),\n n1 = ~~(l1 / 8),\n n2 = ~~(l2 / 8),\n dots1 = [],\n dots2 = [],\n xy = {},\n res = justCount ? 0 : [];\n for (var i = 0; i < n1 + 1; i++) {\n var p = findDotsAtSegment.apply(0, bez1.concat(i / n1));\n dots1.push({x: p.x, y: p.y, t: i / n1});\n }\n for (i = 0; i < n2 + 1; i++) {\n p = findDotsAtSegment.apply(0, bez2.concat(i / n2));\n dots2.push({x: p.x, y: p.y, t: i / n2});\n }\n for (i = 0; i < n1; i++) {\n for (var j = 0; j < n2; j++) {\n var di = dots1[i],\n di1 = dots1[i + 1],\n dj = dots2[j],\n dj1 = dots2[j + 1],\n ci = abs(di1.x - di.x) < .001 ? \"y\" : \"x\",\n cj = abs(dj1.x - dj.x) < .001 ? \"y\" : \"x\",\n is = intersect(di.x, di.y, di1.x, di1.y, dj.x, dj.y, dj1.x, dj1.y);\n if (is) {\n if (xy[is.x.toFixed(4)] == is.y.toFixed(4)) {\n continue;\n }\n xy[is.x.toFixed(4)] = is.y.toFixed(4);\n var t1 = di.t + abs((is[ci] - di[ci]) / (di1[ci] - di[ci])) * (di1.t - di.t),\n t2 = dj.t + abs((is[cj] - dj[cj]) / (dj1[cj] - dj[cj])) * (dj1.t - dj.t);\n if (t1 >= 0 && t1 <= 1 && t2 >= 0 && t2 <= 1) {\n if (justCount) {\n res++;\n } else {\n res.push({\n x: is.x,\n y: is.y,\n t1: t1,\n t2: t2\n });\n }\n }\n }\n }\n }\n return res;\n }\n function pathIntersection(path1, path2) {\n return interPathHelper(path1, path2);\n }\n function pathIntersectionNumber(path1, path2) {\n return interPathHelper(path1, path2, 1);\n }\n function interPathHelper(path1, path2, justCount) {\n path1 = path2curve(path1);\n path2 = path2curve(path2);\n var x1, y1, x2, y2, x1m, y1m, x2m, y2m, bez1, bez2,\n res = justCount ? 0 : [];\n for (var i = 0, ii = path1.length; i < ii; i++) {\n var pi = path1[i];\n if (pi[0] == \"M\") {\n x1 = x1m = pi[1];\n y1 = y1m = pi[2];\n } else {\n if (pi[0] == \"C\") {\n bez1 = [x1, y1].concat(pi.slice(1));\n x1 = bez1[6];\n y1 = bez1[7];\n } else {\n bez1 = [x1, y1, x1, y1, x1m, y1m, x1m, y1m];\n x1 = x1m;\n y1 = y1m;\n }\n for (var j = 0, jj = path2.length; j < jj; j++) {\n var pj = path2[j];\n if (pj[0] == \"M\") {\n x2 = x2m = pj[1];\n y2 = y2m = pj[2];\n } else {\n if (pj[0] == \"C\") {\n bez2 = [x2, y2].concat(pj.slice(1));\n x2 = bez2[6];\n y2 = bez2[7];\n } else {\n bez2 = [x2, y2, x2, y2, x2m, y2m, x2m, y2m];\n x2 = x2m;\n y2 = y2m;\n }\n var intr = interHelper(bez1, bez2, justCount);\n if (justCount) {\n res += intr;\n } else {\n for (var k = 0, kk = intr.length; k < kk; k++) {\n intr[k].segment1 = i;\n intr[k].segment2 = j;\n intr[k].bez1 = bez1;\n intr[k].bez2 = bez2;\n }\n res = res.concat(intr);\n }\n }\n }\n }\n }\n return res;\n }\n function isPointInsidePath(path, x, y) {\n var bbox = pathBBox(path);\n return isPointInsideBBox(bbox, x, y) &&\n interPathHelper(path, [[\"M\", x, y], [\"H\", bbox.x2 + 10]], 1) % 2 == 1;\n }\n function pathBBox(path) {\n var pth = paths(path);\n if (pth.bbox) {\n return clone(pth.bbox);\n }\n if (!path) {\n return box();\n }\n path = path2curve(path);\n var x = 0,\n y = 0,\n X = [],\n Y = [],\n p;\n for (var i = 0, ii = path.length; i < ii; i++) {\n p = path[i];\n if (p[0] == \"M\") {\n x = p[1];\n y = p[2];\n X.push(x);\n Y.push(y);\n } else {\n var dim = curveDim(x, y, p[1], p[2], p[3], p[4], p[5], p[6]);\n X = X.concat(dim.min.x, dim.max.x);\n Y = Y.concat(dim.min.y, dim.max.y);\n x = p[5];\n y = p[6];\n }\n }\n var xmin = mmin.apply(0, X),\n ymin = mmin.apply(0, Y),\n xmax = mmax.apply(0, X),\n ymax = mmax.apply(0, Y),\n bb = box(xmin, ymin, xmax - xmin, ymax - ymin);\n pth.bbox = clone(bb);\n return bb;\n }\n function rectPath(x, y, w, h, r) {\n if (r) {\n return [\n [\"M\", +x + +r, y],\n [\"l\", w - r * 2, 0],\n [\"a\", r, r, 0, 0, 1, r, r],\n [\"l\", 0, h - r * 2],\n [\"a\", r, r, 0, 0, 1, -r, r],\n [\"l\", r * 2 - w, 0],\n [\"a\", r, r, 0, 0, 1, -r, -r],\n [\"l\", 0, r * 2 - h],\n [\"a\", r, r, 0, 0, 1, r, -r],\n [\"z\"]\n ];\n }\n var res = [[\"M\", x, y], [\"l\", w, 0], [\"l\", 0, h], [\"l\", -w, 0], [\"z\"]];\n res.toString = toString;\n return res;\n }\n function ellipsePath(x, y, rx, ry, a) {\n if (a == null && ry == null) {\n ry = rx;\n }\n x = +x;\n y = +y;\n rx = +rx;\n ry = +ry;\n if (a != null) {\n var rad = Math.PI / 180,\n x1 = x + rx * Math.cos(-ry * rad),\n x2 = x + rx * Math.cos(-a * rad),\n y1 = y + rx * Math.sin(-ry * rad),\n y2 = y + rx * Math.sin(-a * rad),\n res = [[\"M\", x1, y1], [\"A\", rx, rx, 0, +(a - ry > 180), 0, x2, y2]];\n } else {\n res = [\n [\"M\", x, y],\n [\"m\", 0, -ry],\n [\"a\", rx, ry, 0, 1, 1, 0, 2 * ry],\n [\"a\", rx, ry, 0, 1, 1, 0, -2 * ry],\n [\"z\"]\n ];\n }\n res.toString = toString;\n return res;\n }\n var unit2px = Snap._unit2px,\n getPath = {\n path: function (el) {\n return el.attr(\"path\");\n },\n circle: function (el) {\n var attr = unit2px(el);\n return ellipsePath(attr.cx, attr.cy, attr.r);\n },\n ellipse: function (el) {\n var attr = unit2px(el);\n return ellipsePath(attr.cx || 0, attr.cy || 0, attr.rx, attr.ry);\n },\n rect: function (el) {\n var attr = unit2px(el);\n return rectPath(attr.x || 0, attr.y || 0, attr.width, attr.height, attr.rx, attr.ry);\n },\n image: function (el) {\n var attr = unit2px(el);\n return rectPath(attr.x || 0, attr.y || 0, attr.width, attr.height);\n },\n line: function (el) {\n return \"M\" + [el.attr(\"x1\") || 0, el.attr(\"y1\") || 0, el.attr(\"x2\"), el.attr(\"y2\")];\n },\n polyline: function (el) {\n return \"M\" + el.attr(\"points\");\n },\n polygon: function (el) {\n return \"M\" + el.attr(\"points\") + \"z\";\n },\n deflt: function (el) {\n var bbox = el.node.getBBox();\n return rectPath(bbox.x, bbox.y, bbox.width, bbox.height);\n }\n };\n function pathToRelative(pathArray) {\n var pth = paths(pathArray),\n lowerCase = String.prototype.toLowerCase;\n if (pth.rel) {\n return pathClone(pth.rel);\n }\n if (!Snap.is(pathArray, \"array\") || !Snap.is(pathArray && pathArray[0], \"array\")) {\n pathArray = Snap.parsePathString(pathArray);\n }\n var res = [],\n x = 0,\n y = 0,\n mx = 0,\n my = 0,\n start = 0;\n if (pathArray[0][0] == \"M\") {\n x = pathArray[0][1];\n y = pathArray[0][2];\n mx = x;\n my = y;\n start++;\n res.push([\"M\", x, y]);\n }\n for (var i = start, ii = pathArray.length; i < ii; i++) {\n var r = res[i] = [],\n pa = pathArray[i];\n if (pa[0] != lowerCase.call(pa[0])) {\n r[0] = lowerCase.call(pa[0]);\n switch (r[0]) {\n case \"a\":\n r[1] = pa[1];\n r[2] = pa[2];\n r[3] = pa[3];\n r[4] = pa[4];\n r[5] = pa[5];\n r[6] = +(pa[6] - x).toFixed(3);\n r[7] = +(pa[7] - y).toFixed(3);\n break;\n case \"v\":\n r[1] = +(pa[1] - y).toFixed(3);\n break;\n case \"m\":\n mx = pa[1];\n my = pa[2];\n default:\n for (var j = 1, jj = pa.length; j < jj; j++) {\n r[j] = +(pa[j] - (j % 2 ? x : y)).toFixed(3);\n }\n }\n } else {\n r = res[i] = [];\n if (pa[0] == \"m\") {\n mx = pa[1] + x;\n my = pa[2] + y;\n }\n for (var k = 0, kk = pa.length; k < kk; k++) {\n res[i][k] = pa[k];\n }\n }\n var len = res[i].length;\n switch (res[i][0]) {\n case \"z\":\n x = mx;\n y = my;\n break;\n case \"h\":\n x += +res[i][len - 1];\n break;\n case \"v\":\n y += +res[i][len - 1];\n break;\n default:\n x += +res[i][len - 2];\n y += +res[i][len - 1];\n }\n }\n res.toString = toString;\n pth.rel = pathClone(res);\n return res;\n }\n function pathToAbsolute(pathArray) {\n var pth = paths(pathArray);\n if (pth.abs) {\n return pathClone(pth.abs);\n }\n if (!is(pathArray, \"array\") || !is(pathArray && pathArray[0], \"array\")) { // rough assumption\n pathArray = Snap.parsePathString(pathArray);\n }\n if (!pathArray || !pathArray.length) {\n return [[\"M\", 0, 0]];\n }\n var res = [],\n x = 0,\n y = 0,\n mx = 0,\n my = 0,\n start = 0,\n pa0;\n if (pathArray[0][0] == \"M\") {\n x = +pathArray[0][1];\n y = +pathArray[0][2];\n mx = x;\n my = y;\n start++;\n res[0] = [\"M\", x, y];\n }\n var crz = pathArray.length == 3 &&\n pathArray[0][0] == \"M\" &&\n pathArray[1][0].toUpperCase() == \"R\" &&\n pathArray[2][0].toUpperCase() == \"Z\";\n for (var r, pa, i = start, ii = pathArray.length; i < ii; i++) {\n res.push(r = []);\n pa = pathArray[i];\n pa0 = pa[0];\n if (pa0 != pa0.toUpperCase()) {\n r[0] = pa0.toUpperCase();\n switch (r[0]) {\n case \"A\":\n r[1] = pa[1];\n r[2] = pa[2];\n r[3] = pa[3];\n r[4] = pa[4];\n r[5] = pa[5];\n r[6] = +pa[6] + x;\n r[7] = +pa[7] + y;\n break;\n case \"V\":\n r[1] = +pa[1] + y;\n break;\n case \"H\":\n r[1] = +pa[1] + x;\n break;\n case \"R\":\n var dots = [x, y].concat(pa.slice(1));\n for (var j = 2, jj = dots.length; j < jj; j++) {\n dots[j] = +dots[j] + x;\n dots[++j] = +dots[j] + y;\n }\n res.pop();\n res = res.concat(catmullRom2bezier(dots, crz));\n break;\n case \"O\":\n res.pop();\n dots = ellipsePath(x, y, pa[1], pa[2]);\n dots.push(dots[0]);\n res = res.concat(dots);\n break;\n case \"U\":\n res.pop();\n res = res.concat(ellipsePath(x, y, pa[1], pa[2], pa[3]));\n r = [\"U\"].concat(res[res.length - 1].slice(-2));\n break;\n case \"M\":\n mx = +pa[1] + x;\n my = +pa[2] + y;\n default:\n for (j = 1, jj = pa.length; j < jj; j++) {\n r[j] = +pa[j] + (j % 2 ? x : y);\n }\n }\n } else if (pa0 == \"R\") {\n dots = [x, y].concat(pa.slice(1));\n res.pop();\n res = res.concat(catmullRom2bezier(dots, crz));\n r = [\"R\"].concat(pa.slice(-2));\n } else if (pa0 == \"O\") {\n res.pop();\n dots = ellipsePath(x, y, pa[1], pa[2]);\n dots.push(dots[0]);\n res = res.concat(dots);\n } else if (pa0 == \"U\") {\n res.pop();\n res = res.concat(ellipsePath(x, y, pa[1], pa[2], pa[3]));\n r = [\"U\"].concat(res[res.length - 1].slice(-2));\n } else {\n for (var k = 0, kk = pa.length; k < kk; k++) {\n r[k] = pa[k];\n }\n }\n pa0 = pa0.toUpperCase();\n if (pa0 != \"O\") {\n switch (r[0]) {\n case \"Z\":\n x = +mx;\n y = +my;\n break;\n case \"H\":\n x = r[1];\n break;\n case \"V\":\n y = r[1];\n break;\n case \"M\":\n mx = r[r.length - 2];\n my = r[r.length - 1];\n default:\n x = r[r.length - 2];\n y = r[r.length - 1];\n }\n }\n }\n res.toString = toString;\n pth.abs = pathClone(res);\n return res;\n }\n function l2c(x1, y1, x2, y2) {\n return [x1, y1, x2, y2, x2, y2];\n }\n function q2c(x1, y1, ax, ay, x2, y2) {\n var _13 = 1 / 3,\n _23 = 2 / 3;\n return [\n _13 * x1 + _23 * ax,\n _13 * y1 + _23 * ay,\n _13 * x2 + _23 * ax,\n _13 * y2 + _23 * ay,\n x2,\n y2\n ];\n }\n function a2c(x1, y1, rx, ry, angle, large_arc_flag, sweep_flag, x2, y2, recursive) {\n // for more information of where this math came from visit:\n // http://www.w3.org/TR/SVG11/implnote.html#ArcImplementationNotes\n var _120 = PI * 120 / 180,\n rad = PI / 180 * (+angle || 0),\n res = [],\n xy,\n rotate = Snap._.cacher(function (x, y, rad) {\n var X = x * math.cos(rad) - y * math.sin(rad),\n Y = x * math.sin(rad) + y * math.cos(rad);\n return {x: X, y: Y};\n });\n if (!rx || !ry) {\n return [x1, y1, x2, y2, x2, y2];\n }\n if (!recursive) {\n xy = rotate(x1, y1, -rad);\n x1 = xy.x;\n y1 = xy.y;\n xy = rotate(x2, y2, -rad);\n x2 = xy.x;\n y2 = xy.y;\n var cos = math.cos(PI / 180 * angle),\n sin = math.sin(PI / 180 * angle),\n x = (x1 - x2) / 2,\n y = (y1 - y2) / 2;\n var h = x * x / (rx * rx) + y * y / (ry * ry);\n if (h > 1) {\n h = math.sqrt(h);\n rx = h * rx;\n ry = h * ry;\n }\n var rx2 = rx * rx,\n ry2 = ry * ry,\n k = (large_arc_flag == sweep_flag ? -1 : 1) *\n math.sqrt(abs((rx2 * ry2 - rx2 * y * y - ry2 * x * x) / (rx2 * y * y + ry2 * x * x))),\n cx = k * rx * y / ry + (x1 + x2) / 2,\n cy = k * -ry * x / rx + (y1 + y2) / 2,\n f1 = math.asin(((y1 - cy) / ry).toFixed(9)),\n f2 = math.asin(((y2 - cy) / ry).toFixed(9));\n\n f1 = x1 < cx ? PI - f1 : f1;\n f2 = x2 < cx ? PI - f2 : f2;\n f1 < 0 && (f1 = PI * 2 + f1);\n f2 < 0 && (f2 = PI * 2 + f2);\n if (sweep_flag && f1 > f2) {\n f1 = f1 - PI * 2;\n }\n if (!sweep_flag && f2 > f1) {\n f2 = f2 - PI * 2;\n }\n } else {\n f1 = recursive[0];\n f2 = recursive[1];\n cx = recursive[2];\n cy = recursive[3];\n }\n var df = f2 - f1;\n if (abs(df) > _120) {\n var f2old = f2,\n x2old = x2,\n y2old = y2;\n f2 = f1 + _120 * (sweep_flag && f2 > f1 ? 1 : -1);\n x2 = cx + rx * math.cos(f2);\n y2 = cy + ry * math.sin(f2);\n res = a2c(x2, y2, rx, ry, angle, 0, sweep_flag, x2old, y2old, [f2, f2old, cx, cy]);\n }\n df = f2 - f1;\n var c1 = math.cos(f1),\n s1 = math.sin(f1),\n c2 = math.cos(f2),\n s2 = math.sin(f2),\n t = math.tan(df / 4),\n hx = 4 / 3 * rx * t,\n hy = 4 / 3 * ry * t,\n m1 = [x1, y1],\n m2 = [x1 + hx * s1, y1 - hy * c1],\n m3 = [x2 + hx * s2, y2 - hy * c2],\n m4 = [x2, y2];\n m2[0] = 2 * m1[0] - m2[0];\n m2[1] = 2 * m1[1] - m2[1];\n if (recursive) {\n return [m2, m3, m4].concat(res);\n } else {\n res = [m2, m3, m4].concat(res).join().split(\",\");\n var newres = [];\n for (var i = 0, ii = res.length; i < ii; i++) {\n newres[i] = i % 2 ? rotate(res[i - 1], res[i], rad).y : rotate(res[i], res[i + 1], rad).x;\n }\n return newres;\n }\n }\n function findDotAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t) {\n var t1 = 1 - t;\n return {\n x: pow(t1, 3) * p1x + pow(t1, 2) * 3 * t * c1x + t1 * 3 * t * t * c2x + pow(t, 3) * p2x,\n y: pow(t1, 3) * p1y + pow(t1, 2) * 3 * t * c1y + t1 * 3 * t * t * c2y + pow(t, 3) * p2y\n };\n }\n\n // Returns bounding box of cubic bezier curve.\n // Source: http://blog.hackers-cafe.net/2009/06/how-to-calculate-bezier-curves-bounding.html\n // Original version: NISHIO Hirokazu\n // Modifications: https://github.com/timo22345\n function curveDim(x0, y0, x1, y1, x2, y2, x3, y3) {\n var tvalues = [],\n bounds = [[], []],\n a, b, c, t, t1, t2, b2ac, sqrtb2ac;\n for (var i = 0; i < 2; ++i) {\n if (i == 0) {\n b = 6 * x0 - 12 * x1 + 6 * x2;\n a = -3 * x0 + 9 * x1 - 9 * x2 + 3 * x3;\n c = 3 * x1 - 3 * x0;\n } else {\n b = 6 * y0 - 12 * y1 + 6 * y2;\n a = -3 * y0 + 9 * y1 - 9 * y2 + 3 * y3;\n c = 3 * y1 - 3 * y0;\n }\n if (abs(a) < 1e-12) {\n if (abs(b) < 1e-12) {\n continue;\n }\n t = -c / b;\n if (0 < t && t < 1) {\n tvalues.push(t);\n }\n continue;\n }\n b2ac = b * b - 4 * c * a;\n sqrtb2ac = math.sqrt(b2ac);\n if (b2ac < 0) {\n continue;\n }\n t1 = (-b + sqrtb2ac) / (2 * a);\n if (0 < t1 && t1 < 1) {\n tvalues.push(t1);\n }\n t2 = (-b - sqrtb2ac) / (2 * a);\n if (0 < t2 && t2 < 1) {\n tvalues.push(t2);\n }\n }\n\n var x, y, j = tvalues.length,\n jlen = j,\n mt;\n while (j--) {\n t = tvalues[j];\n mt = 1 - t;\n bounds[0][j] = mt * mt * mt * x0 + 3 * mt * mt * t * x1 + 3 * mt * t * t * x2 + t * t * t * x3;\n bounds[1][j] = mt * mt * mt * y0 + 3 * mt * mt * t * y1 + 3 * mt * t * t * y2 + t * t * t * y3;\n }\n\n bounds[0][jlen] = x0;\n bounds[1][jlen] = y0;\n bounds[0][jlen + 1] = x3;\n bounds[1][jlen + 1] = y3;\n bounds[0].length = bounds[1].length = jlen + 2;\n\n\n return {\n min: {x: mmin.apply(0, bounds[0]), y: mmin.apply(0, bounds[1])},\n max: {x: mmax.apply(0, bounds[0]), y: mmax.apply(0, bounds[1])}\n };\n }\n\n function path2curve(path, path2) {\n var pth = !path2 && paths(path);\n if (!path2 && pth.curve) {\n return pathClone(pth.curve);\n }\n var p = pathToAbsolute(path),\n p2 = path2 && pathToAbsolute(path2),\n attrs = {x: 0, y: 0, bx: 0, by: 0, X: 0, Y: 0, qx: null, qy: null},\n attrs2 = {x: 0, y: 0, bx: 0, by: 0, X: 0, Y: 0, qx: null, qy: null},\n processPath = function (path, d, pcom) {\n var nx, ny;\n if (!path) {\n return [\"C\", d.x, d.y, d.x, d.y, d.x, d.y];\n }\n !(path[0] in {T: 1, Q: 1}) && (d.qx = d.qy = null);\n switch (path[0]) {\n case \"M\":\n d.X = path[1];\n d.Y = path[2];\n break;\n case \"A\":\n path = [\"C\"].concat(a2c.apply(0, [d.x, d.y].concat(path.slice(1))));\n break;\n case \"S\":\n if (pcom == \"C\" || pcom == \"S\") { // In \"S\" case we have to take into account, if the previous command is C/S.\n nx = d.x * 2 - d.bx; // And reflect the previous\n ny = d.y * 2 - d.by; // command's control point relative to the current point.\n }\n else { // or some else or nothing\n nx = d.x;\n ny = d.y;\n }\n path = [\"C\", nx, ny].concat(path.slice(1));\n break;\n case \"T\":\n if (pcom == \"Q\" || pcom == \"T\") { // In \"T\" case we have to take into account, if the previous command is Q/T.\n d.qx = d.x * 2 - d.qx; // And make a reflection similar\n d.qy = d.y * 2 - d.qy; // to case \"S\".\n }\n else { // or something else or nothing\n d.qx = d.x;\n d.qy = d.y;\n }\n path = [\"C\"].concat(q2c(d.x, d.y, d.qx, d.qy, path[1], path[2]));\n break;\n case \"Q\":\n d.qx = path[1];\n d.qy = path[2];\n path = [\"C\"].concat(q2c(d.x, d.y, path[1], path[2], path[3], path[4]));\n break;\n case \"L\":\n path = [\"C\"].concat(l2c(d.x, d.y, path[1], path[2]));\n break;\n case \"H\":\n path = [\"C\"].concat(l2c(d.x, d.y, path[1], d.y));\n break;\n case \"V\":\n path = [\"C\"].concat(l2c(d.x, d.y, d.x, path[1]));\n break;\n case \"Z\":\n path = [\"C\"].concat(l2c(d.x, d.y, d.X, d.Y));\n break;\n }\n return path;\n },\n fixArc = function (pp, i) {\n if (pp[i].length > 7) {\n pp[i].shift();\n var pi = pp[i];\n while (pi.length) {\n pcoms1[i] = \"A\"; // if created multiple C:s, their original seg is saved\n p2 && (pcoms2[i] = \"A\"); // the same as above\n pp.splice(i++, 0, [\"C\"].concat(pi.splice(0, 6)));\n }\n pp.splice(i, 1);\n ii = mmax(p.length, p2 && p2.length || 0);\n }\n },\n fixM = function (path1, path2, a1, a2, i) {\n if (path1 && path2 && path1[i][0] == \"M\" && path2[i][0] != \"M\") {\n path2.splice(i, 0, [\"M\", a2.x, a2.y]);\n a1.bx = 0;\n a1.by = 0;\n a1.x = path1[i][1];\n a1.y = path1[i][2];\n ii = mmax(p.length, p2 && p2.length || 0);\n }\n },\n pcoms1 = [], // path commands of original path p\n pcoms2 = [], // path commands of original path p2\n pfirst = \"\", // temporary holder for original path command\n pcom = \"\"; // holder for previous path command of original path\n for (var i = 0, ii = mmax(p.length, p2 && p2.length || 0); i < ii; i++) {\n p[i] && (pfirst = p[i][0]); // save current path command\n\n if (pfirst != \"C\") // C is not saved yet, because it may be result of conversion\n {\n pcoms1[i] = pfirst; // Save current path command\n i && ( pcom = pcoms1[i - 1]); // Get previous path command pcom\n }\n p[i] = processPath(p[i], attrs, pcom); // Previous path command is inputted to processPath\n\n if (pcoms1[i] != \"A\" && pfirst == \"C\") pcoms1[i] = \"C\"; // A is the only command\n // which may produce multiple C:s\n // so we have to make sure that C is also C in original path\n\n fixArc(p, i); // fixArc adds also the right amount of A:s to pcoms1\n\n if (p2) { // the same procedures is done to p2\n p2[i] && (pfirst = p2[i][0]);\n if (pfirst != \"C\") {\n pcoms2[i] = pfirst;\n i && (pcom = pcoms2[i - 1]);\n }\n p2[i] = processPath(p2[i], attrs2, pcom);\n\n if (pcoms2[i] != \"A\" && pfirst == \"C\") {\n pcoms2[i] = \"C\";\n }\n\n fixArc(p2, i);\n }\n fixM(p, p2, attrs, attrs2, i);\n fixM(p2, p, attrs2, attrs, i);\n var seg = p[i],\n seg2 = p2 && p2[i],\n seglen = seg.length,\n seg2len = p2 && seg2.length;\n attrs.x = seg[seglen - 2];\n attrs.y = seg[seglen - 1];\n attrs.bx = toFloat(seg[seglen - 4]) || attrs.x;\n attrs.by = toFloat(seg[seglen - 3]) || attrs.y;\n attrs2.bx = p2 && (toFloat(seg2[seg2len - 4]) || attrs2.x);\n attrs2.by = p2 && (toFloat(seg2[seg2len - 3]) || attrs2.y);\n attrs2.x = p2 && seg2[seg2len - 2];\n attrs2.y = p2 && seg2[seg2len - 1];\n }\n if (!p2) {\n pth.curve = pathClone(p);\n }\n return p2 ? [p, p2] : p;\n }\n function mapPath(path, matrix) {\n if (!matrix) {\n return path;\n }\n var x, y, i, j, ii, jj, pathi;\n path = path2curve(path);\n for (i = 0, ii = path.length; i < ii; i++) {\n pathi = path[i];\n for (j = 1, jj = pathi.length; j < jj; j += 2) {\n x = matrix.x(pathi[j], pathi[j + 1]);\n y = matrix.y(pathi[j], pathi[j + 1]);\n pathi[j] = x;\n pathi[j + 1] = y;\n }\n }\n return path;\n }\n\n // http://schepers.cc/getting-to-the-point\n function catmullRom2bezier(crp, z) {\n var d = [];\n for (var i = 0, iLen = crp.length; iLen - 2 * !z > i; i += 2) {\n var p = [\n {x: +crp[i - 2], y: +crp[i - 1]},\n {x: +crp[i], y: +crp[i + 1]},\n {x: +crp[i + 2], y: +crp[i + 3]},\n {x: +crp[i + 4], y: +crp[i + 5]}\n ];\n if (z) {\n if (!i) {\n p[0] = {x: +crp[iLen - 2], y: +crp[iLen - 1]};\n } else if (iLen - 4 == i) {\n p[3] = {x: +crp[0], y: +crp[1]};\n } else if (iLen - 2 == i) {\n p[2] = {x: +crp[0], y: +crp[1]};\n p[3] = {x: +crp[2], y: +crp[3]};\n }\n } else {\n if (iLen - 4 == i) {\n p[3] = p[2];\n } else if (!i) {\n p[0] = {x: +crp[i], y: +crp[i + 1]};\n }\n }\n d.push([\"C\",\n (-p[0].x + 6 * p[1].x + p[2].x) / 6,\n (-p[0].y + 6 * p[1].y + p[2].y) / 6,\n (p[1].x + 6 * p[2].x - p[3].x) / 6,\n (p[1].y + 6*p[2].y - p[3].y) / 6,\n p[2].x,\n p[2].y\n ]);\n }\n\n return d;\n }\n\n // export\n Snap.path = paths;\n\n /*\\\n * Snap.path.getTotalLength\n [ method ]\n **\n * Returns the length of the given path in pixels\n **\n - path (string) SVG path string\n **\n = (number) length\n \\*/\n Snap.path.getTotalLength = getTotalLength;\n /*\\\n * Snap.path.getPointAtLength\n [ method ]\n **\n * Returns the coordinates of the point located at the given length along the given path\n **\n - path (string) SVG path string\n - length (number) length, in pixels, from the start of the path, excluding non-rendering jumps\n **\n = (object) representation of the point:\n o {\n o x: (number) x coordinate,\n o y: (number) y coordinate,\n o alpha: (number) angle of derivative\n o }\n \\*/\n Snap.path.getPointAtLength = getPointAtLength;\n /*\\\n * Snap.path.getSubpath\n [ method ]\n **\n * Returns the subpath of a given path between given start and end lengths\n **\n - path (string) SVG path string\n - from (number) length, in pixels, from the start of the path to the start of the segment\n - to (number) length, in pixels, from the start of the path to the end of the segment\n **\n = (string) path string definition for the segment\n \\*/\n Snap.path.getSubpath = function (path, from, to) {\n if (this.getTotalLength(path) - to < 1e-6) {\n return getSubpathsAtLength(path, from).end;\n }\n var a = getSubpathsAtLength(path, to, 1);\n return from ? getSubpathsAtLength(a, from).end : a;\n };\n /*\\\n * Element.getTotalLength\n [ method ]\n **\n * Returns the length of the path in pixels (only works for `path` elements)\n = (number) length\n \\*/\n elproto.getTotalLength = function () {\n if (this.node.getTotalLength) {\n return this.node.getTotalLength();\n }\n };\n // SIERRA Element.getPointAtLength()/Element.getTotalLength(): If a is broken into different segments, is the jump distance to the new coordinates set by the _M_ or _m_ commands calculated as part of the path's total length?\n /*\\\n * Element.getPointAtLength\n [ method ]\n **\n * Returns coordinates of the point located at the given length on the given path (only works for `path` elements)\n **\n - length (number) length, in pixels, from the start of the path, excluding non-rendering jumps\n **\n = (object) representation of the point:\n o {\n o x: (number) x coordinate,\n o y: (number) y coordinate,\n o alpha: (number) angle of derivative\n o }\n \\*/\n elproto.getPointAtLength = function (length) {\n return getPointAtLength(this.attr(\"d\"), length);\n };\n // SIERRA Element.getSubpath(): Similar to the problem for Element.getPointAtLength(). Unclear how this would work for a segmented path. Overall, the concept of _subpath_ and what I'm calling a _segment_ (series of non-_M_ or _Z_ commands) is unclear.\n /*\\\n * Element.getSubpath\n [ method ]\n **\n * Returns subpath of a given element from given start and end lengths (only works for `path` elements)\n **\n - from (number) length, in pixels, from the start of the path to the start of the segment\n - to (number) length, in pixels, from the start of the path to the end of the segment\n **\n = (string) path string definition for the segment\n \\*/\n elproto.getSubpath = function (from, to) {\n return Snap.path.getSubpath(this.attr(\"d\"), from, to);\n };\n Snap._.box = box;\n /*\\\n * Snap.path.findDotsAtSegment\n [ method ]\n **\n * Utility method\n **\n * Finds dot coordinates on the given cubic beziér curve at the given t\n - p1x (number) x of the first point of the curve\n - p1y (number) y of the first point of the curve\n - c1x (number) x of the first anchor of the curve\n - c1y (number) y of the first anchor of the curve\n - c2x (number) x of the second anchor of the curve\n - c2y (number) y of the second anchor of the curve\n - p2x (number) x of the second point of the curve\n - p2y (number) y of the second point of the curve\n - t (number) position on the curve (0..1)\n = (object) point information in format:\n o {\n o x: (number) x coordinate of the point,\n o y: (number) y coordinate of the point,\n o m: {\n o x: (number) x coordinate of the left anchor,\n o y: (number) y coordinate of the left anchor\n o },\n o n: {\n o x: (number) x coordinate of the right anchor,\n o y: (number) y coordinate of the right anchor\n o },\n o start: {\n o x: (number) x coordinate of the start of the curve,\n o y: (number) y coordinate of the start of the curve\n o },\n o end: {\n o x: (number) x coordinate of the end of the curve,\n o y: (number) y coordinate of the end of the curve\n o },\n o alpha: (number) angle of the curve derivative at the point\n o }\n \\*/\n Snap.path.findDotsAtSegment = findDotsAtSegment;\n /*\\\n * Snap.path.bezierBBox\n [ method ]\n **\n * Utility method\n **\n * Returns the bounding box of a given cubic beziér curve\n - p1x (number) x of the first point of the curve\n - p1y (number) y of the first point of the curve\n - c1x (number) x of the first anchor of the curve\n - c1y (number) y of the first anchor of the curve\n - c2x (number) x of the second anchor of the curve\n - c2y (number) y of the second anchor of the curve\n - p2x (number) x of the second point of the curve\n - p2y (number) y of the second point of the curve\n * or\n - bez (array) array of six points for beziér curve\n = (object) bounding box\n o {\n o x: (number) x coordinate of the left top point of the box,\n o y: (number) y coordinate of the left top point of the box,\n o x2: (number) x coordinate of the right bottom point of the box,\n o y2: (number) y coordinate of the right bottom point of the box,\n o width: (number) width of the box,\n o height: (number) height of the box\n o }\n \\*/\n Snap.path.bezierBBox = bezierBBox;\n /*\\\n * Snap.path.isPointInsideBBox\n [ method ]\n **\n * Utility method\n **\n * Returns `true` if given point is inside bounding box\n - bbox (string) bounding box\n - x (string) x coordinate of the point\n - y (string) y coordinate of the point\n = (boolean) `true` if point is inside\n \\*/\n Snap.path.isPointInsideBBox = isPointInsideBBox;\n Snap.closest = function (x, y, X, Y) {\n var r = 100,\n b = box(x - r / 2, y - r / 2, r, r),\n inside = [],\n getter = X[0].hasOwnProperty(\"x\") ? function (i) {\n return {\n x: X[i].x,\n y: X[i].y\n };\n } : function (i) {\n return {\n x: X[i],\n y: Y[i]\n };\n },\n found = 0;\n while (r <= 1e6 && !found) {\n for (var i = 0, ii = X.length; i < ii; i++) {\n var xy = getter(i);\n if (isPointInsideBBox(b, xy.x, xy.y)) {\n found++;\n inside.push(xy);\n break;\n }\n }\n if (!found) {\n r *= 2;\n b = box(x - r / 2, y - r / 2, r, r)\n }\n }\n if (r == 1e6) {\n return;\n }\n var len = Infinity,\n res;\n for (i = 0, ii = inside.length; i < ii; i++) {\n var l = Snap.len(x, y, inside[i].x, inside[i].y);\n if (len > l) {\n len = l;\n inside[i].len = l;\n res = inside[i];\n }\n }\n return res;\n };\n /*\\\n * Snap.path.isBBoxIntersect\n [ method ]\n **\n * Utility method\n **\n * Returns `true` if two bounding boxes intersect\n - bbox1 (string) first bounding box\n - bbox2 (string) second bounding box\n = (boolean) `true` if bounding boxes intersect\n \\*/\n Snap.path.isBBoxIntersect = isBBoxIntersect;\n /*\\\n * Snap.path.intersection\n [ method ]\n **\n * Utility method\n **\n * Finds intersections of two paths\n - path1 (string) path string\n - path2 (string) path string\n = (array) dots of intersection\n o [\n o {\n o x: (number) x coordinate of the point,\n o y: (number) y coordinate of the point,\n o t1: (number) t value for segment of path1,\n o t2: (number) t value for segment of path2,\n o segment1: (number) order number for segment of path1,\n o segment2: (number) order number for segment of path2,\n o bez1: (array) eight coordinates representing beziér curve for the segment of path1,\n o bez2: (array) eight coordinates representing beziér curve for the segment of path2\n o }\n o ]\n \\*/\n Snap.path.intersection = pathIntersection;\n Snap.path.intersectionNumber = pathIntersectionNumber;\n /*\\\n * Snap.path.isPointInside\n [ method ]\n **\n * Utility method\n **\n * Returns `true` if given point is inside a given closed path.\n *\n * Note: fill mode doesn’t affect the result of this method.\n - path (string) path string\n - x (number) x of the point\n - y (number) y of the point\n = (boolean) `true` if point is inside the path\n \\*/\n Snap.path.isPointInside = isPointInsidePath;\n /*\\\n * Snap.path.getBBox\n [ method ]\n **\n * Utility method\n **\n * Returns the bounding box of a given path\n - path (string) path string\n = (object) bounding box\n o {\n o x: (number) x coordinate of the left top point of the box,\n o y: (number) y coordinate of the left top point of the box,\n o x2: (number) x coordinate of the right bottom point of the box,\n o y2: (number) y coordinate of the right bottom point of the box,\n o width: (number) width of the box,\n o height: (number) height of the box\n o }\n \\*/\n Snap.path.getBBox = pathBBox;\n Snap.path.get = getPath;\n /*\\\n * Snap.path.toRelative\n [ method ]\n **\n * Utility method\n **\n * Converts path coordinates into relative values\n - path (string) path string\n = (array) path string\n \\*/\n Snap.path.toRelative = pathToRelative;\n /*\\\n * Snap.path.toAbsolute\n [ method ]\n **\n * Utility method\n **\n * Converts path coordinates into absolute values\n - path (string) path string\n = (array) path string\n \\*/\n Snap.path.toAbsolute = pathToAbsolute;\n /*\\\n * Snap.path.toCubic\n [ method ]\n **\n * Utility method\n **\n * Converts path to a new path where all segments are cubic beziér curves\n - pathString (string|array) path string or array of segments\n = (array) array of segments\n \\*/\n Snap.path.toCubic = path2curve;\n /*\\\n * Snap.path.map\n [ method ]\n **\n * Transform the path string with the given matrix\n - path (string) path string\n - matrix (object) see @Matrix\n = (string) transformed path string\n \\*/\n Snap.path.map = mapPath;\n Snap.path.toString = toString;\n Snap.path.clone = pathClone;\n});\n\n// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nSnap.plugin(function (Snap, Element, Paper, glob) {\n var mmax = Math.max,\n mmin = Math.min;\n\n // Set\n var Set = function (items) {\n this.items = [];\n\tthis.bindings = {};\n this.length = 0;\n this.type = \"set\";\n if (items) {\n for (var i = 0, ii = items.length; i < ii; i++) {\n if (items[i]) {\n this[this.items.length] = this.items[this.items.length] = items[i];\n this.length++;\n }\n }\n }\n },\n setproto = Set.prototype;\n /*\\\n * Set.push\n [ method ]\n **\n * Adds each argument to the current set\n = (object) original element\n \\*/\n setproto.push = function () {\n var item,\n len;\n for (var i = 0, ii = arguments.length; i < ii; i++) {\n item = arguments[i];\n if (item) {\n len = this.items.length;\n this[len] = this.items[len] = item;\n this.length++;\n }\n }\n return this;\n };\n /*\\\n * Set.pop\n [ method ]\n **\n * Removes last element and returns it\n = (object) element\n \\*/\n setproto.pop = function () {\n this.length && delete this[this.length--];\n return this.items.pop();\n };\n /*\\\n * Set.forEach\n [ method ]\n **\n * Executes given function for each element in the set\n *\n * If the function returns `false`, the loop stops running.\n **\n - callback (function) function to run\n - thisArg (object) context object for the callback\n = (object) Set object\n \\*/\n setproto.forEach = function (callback, thisArg) {\n for (var i = 0, ii = this.items.length; i < ii; i++) {\n if (callback.call(thisArg, this.items[i], i) === false) {\n return this;\n }\n }\n return this;\n };\n /*\\\n * Set.animate\n [ method ]\n **\n * Animates each element in set in sync.\n *\n **\n - attrs (object) key-value pairs of destination attributes\n - duration (number) duration of the animation in milliseconds\n - easing (function) #optional easing function from @mina or custom\n - callback (function) #optional callback function that executes when the animation ends\n * or\n - animation (array) array of animation parameter for each element in set in format `[attrs, duration, easing, callback]`\n > Usage\n | // animate all elements in set to radius 10\n | set.animate({r: 10}, 500, mina.easein);\n | // or\n | // animate first element to radius 10, but second to radius 20 and in different time\n | set.animate([{r: 10}, 500, mina.easein], [{r: 20}, 1500, mina.easein]);\n = (Element) the current element\n \\*/\n setproto.animate = function (attrs, ms, easing, callback) {\n if (typeof easing == \"function\" && !easing.length) {\n callback = easing;\n easing = mina.linear;\n }\n if (attrs instanceof Snap._.Animation) {\n callback = attrs.callback;\n easing = attrs.easing;\n ms = easing.dur;\n attrs = attrs.attr;\n }\n var args = arguments;\n if (Snap.is(attrs, \"array\") && Snap.is(args[args.length - 1], \"array\")) {\n var each = true;\n }\n var begin,\n handler = function () {\n if (begin) {\n this.b = begin;\n } else {\n begin = this.b;\n }\n },\n cb = 0,\n set = this,\n callbacker = callback && function () {\n if (++cb == set.length) {\n callback.call(this);\n }\n };\n return this.forEach(function (el, i) {\n eve.once(\"snap.animcreated.\" + el.id, handler);\n if (each) {\n args[i] && el.animate.apply(el, args[i]);\n } else {\n el.animate(attrs, ms, easing, callbacker);\n }\n });\n };\n /*\\\n * Set.remove\n [ method ]\n **\n * Removes all children of the set.\n *\n = (object) Set object\n \\*/\n setproto.remove = function () {\n while (this.length) {\n this.pop().remove();\n }\n return this;\n };\n /*\\\n * Set.bind\n [ method ]\n **\n * Specifies how to handle a specific attribute when applied\n * to a set.\n *\n **\n - attr (string) attribute name\n - callback (function) function to run\n * or\n - attr (string) attribute name\n - element (Element) specific element in the set to apply the attribute to\n * or\n - attr (string) attribute name\n - element (Element) specific element in the set to apply the attribute to\n - eattr (string) attribute on the element to bind the attribute to\n = (object) Set object\n \\*/\n setproto.bind = function (attr, a, b) {\n var data = {};\n if (typeof a == \"function\") {\n this.bindings[attr] = a;\n } else {\n var aname = b || attr;\n this.bindings[attr] = function (v) {\n data[aname] = v;\n a.attr(data);\n };\n }\n return this;\n };\n /*\\\n * Set.attr\n [ method ]\n **\n * Equivalent of @Element.attr.\n = (object) Set object\n \\*/\n setproto.attr = function (value) {\n var unbound = {};\n for (var k in value) {\n if (this.bindings[k]) {\n this.bindings[k](value[k]);\n } else {\n unbound[k] = value[k];\n }\n }\n for (var i = 0, ii = this.items.length; i < ii; i++) {\n this.items[i].attr(unbound);\n }\n return this;\n };\n /*\\\n * Set.clear\n [ method ]\n **\n * Removes all elements from the set\n \\*/\n setproto.clear = function () {\n while (this.length) {\n this.pop();\n }\n };\n /*\\\n * Set.splice\n [ method ]\n **\n * Removes range of elements from the set\n **\n - index (number) position of the deletion\n - count (number) number of element to remove\n - insertion… (object) #optional elements to insert\n = (object) set elements that were deleted\n \\*/\n setproto.splice = function (index, count, insertion) {\n index = index < 0 ? mmax(this.length + index, 0) : index;\n count = mmax(0, mmin(this.length - index, count));\n var tail = [],\n todel = [],\n args = [],\n i;\n for (i = 2; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n for (i = 0; i < count; i++) {\n todel.push(this[index + i]);\n }\n for (; i < this.length - index; i++) {\n tail.push(this[index + i]);\n }\n var arglen = args.length;\n for (i = 0; i < arglen + tail.length; i++) {\n this.items[index + i] = this[index + i] = i < arglen ? args[i] : tail[i - arglen];\n }\n i = this.items.length = this.length -= count - arglen;\n while (this[i]) {\n delete this[i++];\n }\n return new Set(todel);\n };\n /*\\\n * Set.exclude\n [ method ]\n **\n * Removes given element from the set\n **\n - element (object) element to remove\n = (boolean) `true` if object was found and removed from the set\n \\*/\n setproto.exclude = function (el) {\n for (var i = 0, ii = this.length; i < ii; i++) if (this[i] == el) {\n this.splice(i, 1);\n return true;\n }\n return false;\n };\n /*\\\n * Set.insertAfter\n [ method ]\n **\n * Inserts set elements after given element.\n **\n - element (object) set will be inserted after this element\n = (object) Set object\n \\*/\n setproto.insertAfter = function (el) {\n var i = this.items.length;\n while (i--) {\n this.items[i].insertAfter(el);\n }\n return this;\n };\n /*\\\n * Set.getBBox\n [ method ]\n **\n * Union of all bboxes of the set. See @Element.getBBox.\n = (object) bounding box descriptor. See @Element.getBBox.\n \\*/\n setproto.getBBox = function () {\n var x = [],\n y = [],\n x2 = [],\n y2 = [];\n for (var i = this.items.length; i--;) if (!this.items[i].removed) {\n var box = this.items[i].getBBox();\n x.push(box.x);\n y.push(box.y);\n x2.push(box.x + box.width);\n y2.push(box.y + box.height);\n }\n x = mmin.apply(0, x);\n y = mmin.apply(0, y);\n x2 = mmax.apply(0, x2);\n y2 = mmax.apply(0, y2);\n return {\n x: x,\n y: y,\n x2: x2,\n y2: y2,\n width: x2 - x,\n height: y2 - y,\n cx: x + (x2 - x) / 2,\n cy: y + (y2 - y) / 2\n };\n };\n /*\\\n * Set.insertAfter\n [ method ]\n **\n * Creates a clone of the set.\n **\n = (object) New Set object\n \\*/\n setproto.clone = function (s) {\n s = new Set;\n for (var i = 0, ii = this.items.length; i < ii; i++) {\n s.push(this.items[i].clone());\n }\n return s;\n };\n setproto.toString = function () {\n return \"Snap\\u2018s set\";\n };\n setproto.type = \"set\";\n // export\n /*\\\n * Snap.Set\n [ property ]\n **\n * Set constructor.\n \\*/\n Snap.Set = Set;\n /*\\\n * Snap.set\n [ method ]\n **\n * Creates a set and fills it with list of arguments.\n **\n = (object) New Set object\n | var r = paper.rect(0, 0, 10, 10),\n | s1 = Snap.set(), // empty set\n | s2 = Snap.set(r, paper.circle(100, 100, 20)); // prefilled set\n \\*/\n Snap.set = function () {\n var set = new Set;\n if (arguments.length) {\n set.push.apply(set, Array.prototype.slice.call(arguments, 0));\n }\n return set;\n };\n});\n\n// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nSnap.plugin(function (Snap, Element, Paper, glob) {\n var names = {},\n reUnit = /[%a-z]+$/i,\n Str = String;\n names.stroke = names.fill = \"colour\";\n function getEmpty(item) {\n var l = item[0];\n switch (l.toLowerCase()) {\n case \"t\": return [l, 0, 0];\n case \"m\": return [l, 1, 0, 0, 1, 0, 0];\n case \"r\": if (item.length == 4) {\n return [l, 0, item[2], item[3]];\n } else {\n return [l, 0];\n }\n case \"s\": if (item.length == 5) {\n return [l, 1, 1, item[3], item[4]];\n } else if (item.length == 3) {\n return [l, 1, 1];\n } else {\n return [l, 1];\n }\n }\n }\n function equaliseTransform(t1, t2, getBBox) {\n t1 = t1 || new Snap.Matrix;\n t2 = t2 || new Snap.Matrix;\n t1 = Snap.parseTransformString(t1.toTransformString()) || [];\n t2 = Snap.parseTransformString(t2.toTransformString()) || [];\n var maxlength = Math.max(t1.length, t2.length),\n from = [],\n to = [],\n i = 0, j, jj,\n tt1, tt2;\n for (; i < maxlength; i++) {\n tt1 = t1[i] || getEmpty(t2[i]);\n tt2 = t2[i] || getEmpty(tt1);\n if (tt1[0] != tt2[0] ||\n tt1[0].toLowerCase() == \"r\" && (tt1[2] != tt2[2] || tt1[3] != tt2[3]) ||\n tt1[0].toLowerCase() == \"s\" && (tt1[3] != tt2[3] || tt1[4] != tt2[4])\n ) {\n t1 = Snap._.transform2matrix(t1, getBBox());\n t2 = Snap._.transform2matrix(t2, getBBox());\n from = [[\"m\", t1.a, t1.b, t1.c, t1.d, t1.e, t1.f]];\n to = [[\"m\", t2.a, t2.b, t2.c, t2.d, t2.e, t2.f]];\n break;\n }\n from[i] = [];\n to[i] = [];\n for (j = 0, jj = Math.max(tt1.length, tt2.length); j < jj; j++) {\n j in tt1 && (from[i][j] = tt1[j]);\n j in tt2 && (to[i][j] = tt2[j]);\n }\n }\n return {\n from: path2array(from),\n to: path2array(to),\n f: getPath(from)\n };\n }\n function getNumber(val) {\n return val;\n }\n function getUnit(unit) {\n return function (val) {\n return +val.toFixed(3) + unit;\n };\n }\n function getViewBox(val) {\n return val.join(\" \");\n }\n function getColour(clr) {\n return Snap.rgb(clr[0], clr[1], clr[2], clr[3]);\n }\n function getPath(path) {\n var k = 0, i, ii, j, jj, out, a, b = [];\n for (i = 0, ii = path.length; i < ii; i++) {\n out = \"[\";\n a = ['\"' + path[i][0] + '\"'];\n for (j = 1, jj = path[i].length; j < jj; j++) {\n a[j] = \"val[\" + k++ + \"]\";\n }\n out += a + \"]\";\n b[i] = out;\n }\n return Function(\"val\", \"return Snap.path.toString.call([\" + b + \"])\");\n }\n function path2array(path) {\n var out = [];\n for (var i = 0, ii = path.length; i < ii; i++) {\n for (var j = 1, jj = path[i].length; j < jj; j++) {\n out.push(path[i][j]);\n }\n }\n return out;\n }\n function isNumeric(obj) {\n return isFinite(obj);\n }\n function arrayEqual(arr1, arr2) {\n if (!Snap.is(arr1, \"array\") || !Snap.is(arr2, \"array\")) {\n return false;\n }\n return arr1.toString() == arr2.toString();\n }\n Element.prototype.equal = function (name, b) {\n return eve(\"snap.util.equal\", this, name, b).firstDefined();\n };\n eve.on(\"snap.util.equal\", function (name, b) {\n var A, B, a = Str(this.attr(name) || \"\"),\n el = this;\n if (names[name] == \"colour\") {\n A = Snap.color(a);\n B = Snap.color(b);\n return {\n from: [A.r, A.g, A.b, A.opacity],\n to: [B.r, B.g, B.b, B.opacity],\n f: getColour\n };\n }\n if (name == \"viewBox\") {\n A = this.attr(name).vb.split(\" \").map(Number);\n B = b.split(\" \").map(Number);\n return {\n from: A,\n to: B,\n f: getViewBox\n };\n }\n if (name == \"transform\" || name == \"gradientTransform\" || name == \"patternTransform\") {\n if (typeof b == \"string\") {\n b = Str(b).replace(/\\.{3}|\\u2026/g, a);\n }\n a = this.matrix;\n if (!Snap._.rgTransform.test(b)) {\n b = Snap._.transform2matrix(Snap._.svgTransform2string(b), this.getBBox());\n } else {\n b = Snap._.transform2matrix(b, this.getBBox());\n }\n return equaliseTransform(a, b, function () {\n return el.getBBox(1);\n });\n }\n if (name == \"d\" || name == \"path\") {\n A = Snap.path.toCubic(a, b);\n return {\n from: path2array(A[0]),\n to: path2array(A[1]),\n f: getPath(A[0])\n };\n }\n if (name == \"points\") {\n A = Str(a).split(Snap._.separator);\n B = Str(b).split(Snap._.separator);\n return {\n from: A,\n to: B,\n f: function (val) { return val; }\n };\n }\n if (isNumeric(a) && isNumeric(b)) {\n return {\n from: parseFloat(a),\n to: parseFloat(b),\n f: getNumber\n };\n }\n var aUnit = a.match(reUnit),\n bUnit = Str(b).match(reUnit);\n if (aUnit && arrayEqual(aUnit, bUnit)) {\n return {\n from: parseFloat(a),\n to: parseFloat(b),\n f: getUnit(aUnit)\n };\n } else {\n return {\n from: this.asPX(name),\n to: this.asPX(name, b),\n f: getNumber\n };\n }\n });\n});\n\n// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved.\n// \n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n// \n// http://www.apache.org/licenses/LICENSE-2.0\n// \n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nSnap.plugin(function (Snap, Element, Paper, glob) {\n var elproto = Element.prototype,\n has = \"hasOwnProperty\",\n supportsTouch = \"createTouch\" in glob.doc,\n events = [\n \"click\", \"dblclick\", \"mousedown\", \"mousemove\", \"mouseout\",\n \"mouseover\", \"mouseup\", \"touchstart\", \"touchmove\", \"touchend\",\n \"touchcancel\"\n ],\n touchMap = {\n mousedown: \"touchstart\",\n mousemove: \"touchmove\",\n mouseup: \"touchend\"\n },\n getScroll = function (xy, el) {\n var name = xy == \"y\" ? \"scrollTop\" : \"scrollLeft\",\n doc = el && el.node ? el.node.ownerDocument : glob.doc;\n return doc[name in doc.documentElement ? \"documentElement\" : \"body\"][name];\n },\n preventDefault = function () {\n this.returnValue = false;\n },\n preventTouch = function () {\n return this.originalEvent.preventDefault();\n },\n stopPropagation = function () {\n this.cancelBubble = true;\n },\n stopTouch = function () {\n return this.originalEvent.stopPropagation();\n },\n addEvent = function (obj, type, fn, element) {\n var realName = supportsTouch && touchMap[type] ? touchMap[type] : type,\n f = function (e) {\n var scrollY = getScroll(\"y\", element),\n scrollX = getScroll(\"x\", element);\n if (supportsTouch && touchMap[has](type)) {\n for (var i = 0, ii = e.targetTouches && e.targetTouches.length; i < ii; i++) {\n if (e.targetTouches[i].target == obj || obj.contains(e.targetTouches[i].target)) {\n var olde = e;\n e = e.targetTouches[i];\n e.originalEvent = olde;\n e.preventDefault = preventTouch;\n e.stopPropagation = stopTouch;\n break;\n }\n }\n }\n var x = e.clientX + scrollX,\n y = e.clientY + scrollY;\n return fn.call(element, e, x, y);\n };\n\n if (type !== realName) {\n obj.addEventListener(type, f, false);\n }\n\n obj.addEventListener(realName, f, false);\n\n return function () {\n if (type !== realName) {\n obj.removeEventListener(type, f, false);\n }\n\n obj.removeEventListener(realName, f, false);\n return true;\n };\n },\n drag = [],\n dragMove = function (e) {\n var x = e.clientX,\n y = e.clientY,\n scrollY = getScroll(\"y\"),\n scrollX = getScroll(\"x\"),\n dragi,\n j = drag.length;\n while (j--) {\n dragi = drag[j];\n if (supportsTouch) {\n var i = e.touches && e.touches.length,\n touch;\n while (i--) {\n touch = e.touches[i];\n if (touch.identifier == dragi.el._drag.id || dragi.el.node.contains(touch.target)) {\n x = touch.clientX;\n y = touch.clientY;\n (e.originalEvent ? e.originalEvent : e).preventDefault();\n break;\n }\n }\n } else {\n e.preventDefault();\n }\n var node = dragi.el.node,\n o,\n next = node.nextSibling,\n parent = node.parentNode,\n display = node.style.display;\n // glob.win.opera && parent.removeChild(node);\n // node.style.display = \"none\";\n // o = dragi.el.paper.getElementByPoint(x, y);\n // node.style.display = display;\n // glob.win.opera && (next ? parent.insertBefore(node, next) : parent.appendChild(node));\n // o && eve(\"snap.drag.over.\" + dragi.el.id, dragi.el, o);\n x += scrollX;\n y += scrollY;\n eve(\"snap.drag.move.\" + dragi.el.id, dragi.move_scope || dragi.el, x - dragi.el._drag.x, y - dragi.el._drag.y, x, y, e);\n }\n },\n dragUp = function (e) {\n Snap.unmousemove(dragMove).unmouseup(dragUp);\n var i = drag.length,\n dragi;\n while (i--) {\n dragi = drag[i];\n dragi.el._drag = {};\n eve(\"snap.drag.end.\" + dragi.el.id, dragi.end_scope || dragi.start_scope || dragi.move_scope || dragi.el, e);\n eve.off(\"snap.drag.*.\" + dragi.el.id);\n }\n drag = [];\n };\n /*\\\n * Element.click\n [ method ]\n **\n * Adds a click event handler to the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n /*\\\n * Element.unclick\n [ method ]\n **\n * Removes a click event handler from the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n \n /*\\\n * Element.dblclick\n [ method ]\n **\n * Adds a double click event handler to the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n /*\\\n * Element.undblclick\n [ method ]\n **\n * Removes a double click event handler from the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n \n /*\\\n * Element.mousedown\n [ method ]\n **\n * Adds a mousedown event handler to the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n /*\\\n * Element.unmousedown\n [ method ]\n **\n * Removes a mousedown event handler from the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n \n /*\\\n * Element.mousemove\n [ method ]\n **\n * Adds a mousemove event handler to the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n /*\\\n * Element.unmousemove\n [ method ]\n **\n * Removes a mousemove event handler from the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n \n /*\\\n * Element.mouseout\n [ method ]\n **\n * Adds a mouseout event handler to the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n /*\\\n * Element.unmouseout\n [ method ]\n **\n * Removes a mouseout event handler from the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n \n /*\\\n * Element.mouseover\n [ method ]\n **\n * Adds a mouseover event handler to the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n /*\\\n * Element.unmouseover\n [ method ]\n **\n * Removes a mouseover event handler from the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n \n /*\\\n * Element.mouseup\n [ method ]\n **\n * Adds a mouseup event handler to the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n /*\\\n * Element.unmouseup\n [ method ]\n **\n * Removes a mouseup event handler from the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n \n /*\\\n * Element.touchstart\n [ method ]\n **\n * Adds a touchstart event handler to the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n /*\\\n * Element.untouchstart\n [ method ]\n **\n * Removes a touchstart event handler from the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n \n /*\\\n * Element.touchmove\n [ method ]\n **\n * Adds a touchmove event handler to the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n /*\\\n * Element.untouchmove\n [ method ]\n **\n * Removes a touchmove event handler from the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n \n /*\\\n * Element.touchend\n [ method ]\n **\n * Adds a touchend event handler to the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n /*\\\n * Element.untouchend\n [ method ]\n **\n * Removes a touchend event handler from the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n \n /*\\\n * Element.touchcancel\n [ method ]\n **\n * Adds a touchcancel event handler to the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n /*\\\n * Element.untouchcancel\n [ method ]\n **\n * Removes a touchcancel event handler from the element\n - handler (function) handler for the event\n = (object) @Element\n \\*/\n for (var i = events.length; i--;) {\n (function (eventName) {\n Snap[eventName] = elproto[eventName] = function (fn, scope) {\n if (Snap.is(fn, \"function\")) {\n this.events = this.events || [];\n this.events.push({\n name: eventName,\n f: fn,\n unbind: addEvent(this.node || document, eventName, fn, scope || this)\n });\n } else {\n for (var i = 0, ii = this.events.length; i < ii; i++) if (this.events[i].name == eventName) {\n try {\n this.events[i].f.call(this);\n } catch (e) {}\n }\n }\n return this;\n };\n Snap[\"un\" + eventName] =\n elproto[\"un\" + eventName] = function (fn) {\n var events = this.events || [],\n l = events.length;\n while (l--) if (events[l].name == eventName &&\n (events[l].f == fn || !fn)) {\n events[l].unbind();\n events.splice(l, 1);\n !events.length && delete this.events;\n return this;\n }\n return this;\n };\n })(events[i]);\n }\n /*\\\n * Element.hover\n [ method ]\n **\n * Adds hover event handlers to the element\n - f_in (function) handler for hover in\n - f_out (function) handler for hover out\n - icontext (object) #optional context for hover in handler\n - ocontext (object) #optional context for hover out handler\n = (object) @Element\n \\*/\n elproto.hover = function (f_in, f_out, scope_in, scope_out) {\n return this.mouseover(f_in, scope_in).mouseout(f_out, scope_out || scope_in);\n };\n /*\\\n * Element.unhover\n [ method ]\n **\n * Removes hover event handlers from the element\n - f_in (function) handler for hover in\n - f_out (function) handler for hover out\n = (object) @Element\n \\*/\n elproto.unhover = function (f_in, f_out) {\n return this.unmouseover(f_in).unmouseout(f_out);\n };\n var draggable = [];\n // SIERRA unclear what _context_ refers to for starting, ending, moving the drag gesture.\n // SIERRA Element.drag(): _x position of the mouse_: Where are the x/y values offset from?\n // SIERRA Element.drag(): much of this member's doc appears to be duplicated for some reason.\n // SIERRA Unclear about this sentence: _Additionally following drag events will be triggered: drag.start. on start, drag.end. on end and drag.move. on every move._ Is there a global _drag_ object to which you can assign handlers keyed by an element's ID?\n /*\\\n * Element.drag\n [ method ]\n **\n * Adds event handlers for an element's drag gesture\n **\n - onmove (function) handler for moving\n - onstart (function) handler for drag start\n - onend (function) handler for drag end\n - mcontext (object) #optional context for moving handler\n - scontext (object) #optional context for drag start handler\n - econtext (object) #optional context for drag end handler\n * Additionaly following `drag` events are triggered: `drag.start.` on start, \n * `drag.end.` on end and `drag.move.` on every move. When element is dragged over another element \n * `drag.over.` fires as well.\n *\n * Start event and start handler are called in specified context or in context of the element with following parameters:\n o x (number) x position of the mouse\n o y (number) y position of the mouse\n o event (object) DOM event object\n * Move event and move handler are called in specified context or in context of the element with following parameters:\n o dx (number) shift by x from the start point\n o dy (number) shift by y from the start point\n o x (number) x position of the mouse\n o y (number) y position of the mouse\n o event (object) DOM event object\n * End event and end handler are called in specified context or in context of the element with following parameters:\n o event (object) DOM event object\n = (object) @Element\n \\*/\n elproto.drag = function (onmove, onstart, onend, move_scope, start_scope, end_scope) {\n var el = this;\n if (!arguments.length) {\n var origTransform;\n return el.drag(function (dx, dy) {\n this.attr({\n transform: origTransform + (origTransform ? \"T\" : \"t\") + [dx, dy]\n });\n }, function () {\n origTransform = this.transform().local;\n });\n }\n function start(e, x, y) {\n (e.originalEvent || e).preventDefault();\n el._drag.x = x;\n el._drag.y = y;\n el._drag.id = e.identifier;\n !drag.length && Snap.mousemove(dragMove).mouseup(dragUp);\n drag.push({el: el, move_scope: move_scope, start_scope: start_scope, end_scope: end_scope});\n onstart && eve.on(\"snap.drag.start.\" + el.id, onstart);\n onmove && eve.on(\"snap.drag.move.\" + el.id, onmove);\n onend && eve.on(\"snap.drag.end.\" + el.id, onend);\n eve(\"snap.drag.start.\" + el.id, start_scope || move_scope || el, x, y, e);\n }\n function init(e, x, y) {\n eve(\"snap.draginit.\" + el.id, el, e, x, y);\n }\n eve.on(\"snap.draginit.\" + el.id, start);\n el._drag = {};\n draggable.push({el: el, start: start, init: init});\n el.mousedown(init);\n return el;\n };\n /*\n * Element.onDragOver\n [ method ]\n **\n * Shortcut to assign event handler for `drag.over.` event, where `id` is the element's `id` (see @Element.id)\n - f (function) handler for event, first argument would be the element you are dragging over\n \\*/\n // elproto.onDragOver = function (f) {\n // f ? eve.on(\"snap.drag.over.\" + this.id, f) : eve.unbind(\"snap.drag.over.\" + this.id);\n // };\n /*\\\n * Element.undrag\n [ method ]\n **\n * Removes all drag event handlers from the given element\n \\*/\n elproto.undrag = function () {\n var i = draggable.length;\n while (i--) if (draggable[i].el == this) {\n this.unmousedown(draggable[i].init);\n draggable.splice(i, 1);\n eve.unbind(\"snap.drag.*.\" + this.id);\n eve.unbind(\"snap.draginit.\" + this.id);\n }\n !draggable.length && Snap.unmousemove(dragMove).unmouseup(dragUp);\n return this;\n };\n});\n\n// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nSnap.plugin(function (Snap, Element, Paper, glob) {\n var elproto = Element.prototype,\n pproto = Paper.prototype,\n rgurl = /^\\s*url\\((.+)\\)/,\n Str = String,\n $ = Snap._.$;\n Snap.filter = {};\n /*\\\n * Paper.filter\n [ method ]\n **\n * Creates a `` element\n **\n - filstr (string) SVG fragment of filter provided as a string\n = (object) @Element\n * Note: It is recommended to use filters embedded into the page inside an empty SVG element.\n > Usage\n | var f = paper.filter(''),\n | c = paper.circle(10, 10, 10).attr({\n | filter: f\n | });\n \\*/\n pproto.filter = function (filstr) {\n var paper = this;\n if (paper.type != \"svg\") {\n paper = paper.paper;\n }\n var f = Snap.parse(Str(filstr)),\n id = Snap._.id(),\n width = paper.node.offsetWidth,\n height = paper.node.offsetHeight,\n filter = $(\"filter\");\n $(filter, {\n id: id,\n filterUnits: \"userSpaceOnUse\"\n });\n filter.appendChild(f.node);\n paper.defs.appendChild(filter);\n return new Element(filter);\n };\n\n eve.on(\"snap.util.getattr.filter\", function () {\n eve.stop();\n var p = $(this.node, \"filter\");\n if (p) {\n var match = Str(p).match(rgurl);\n return match && Snap.select(match[1]);\n }\n });\n eve.on(\"snap.util.attr.filter\", function (value) {\n if (value instanceof Element && value.type == \"filter\") {\n eve.stop();\n var id = value.node.id;\n if (!id) {\n $(value.node, {id: value.id});\n id = value.id;\n }\n $(this.node, {\n filter: Snap.url(id)\n });\n }\n if (!value || value == \"none\") {\n eve.stop();\n this.node.removeAttribute(\"filter\");\n }\n });\n /*\\\n * Snap.filter.blur\n [ method ]\n **\n * Returns an SVG markup string for the blur filter\n **\n - x (number) amount of horizontal blur, in pixels\n - y (number) #optional amount of vertical blur, in pixels\n = (string) filter representation\n > Usage\n | var f = paper.filter(Snap.filter.blur(5, 10)),\n | c = paper.circle(10, 10, 10).attr({\n | filter: f\n | });\n \\*/\n Snap.filter.blur = function (x, y) {\n if (x == null) {\n x = 2;\n }\n var def = y == null ? x : [x, y];\n return Snap.format('\\', {\n def: def\n });\n };\n Snap.filter.blur.toString = function () {\n return this();\n };\n /*\\\n * Snap.filter.shadow\n [ method ]\n **\n * Returns an SVG markup string for the shadow filter\n **\n - dx (number) #optional horizontal shift of the shadow, in pixels\n - dy (number) #optional vertical shift of the shadow, in pixels\n - blur (number) #optional amount of blur\n - color (string) #optional color of the shadow\n - opacity (number) #optional `0..1` opacity of the shadow\n * or\n - dx (number) #optional horizontal shift of the shadow, in pixels\n - dy (number) #optional vertical shift of the shadow, in pixels\n - color (string) #optional color of the shadow\n - opacity (number) #optional `0..1` opacity of the shadow\n * which makes blur default to `4`. Or\n - dx (number) #optional horizontal shift of the shadow, in pixels\n - dy (number) #optional vertical shift of the shadow, in pixels\n - opacity (number) #optional `0..1` opacity of the shadow\n = (string) filter representation\n > Usage\n | var f = paper.filter(Snap.filter.shadow(0, 2, .3)),\n | c = paper.circle(10, 10, 10).attr({\n | filter: f\n | });\n \\*/\n Snap.filter.shadow = function (dx, dy, blur, color, opacity) {\n if (opacity == null) {\n if (color == null) {\n opacity = blur;\n blur = 4;\n color = \"#000\";\n } else {\n opacity = color;\n color = blur;\n blur = 4;\n }\n }\n if (blur == null) {\n blur = 4;\n }\n if (opacity == null) {\n opacity = 1;\n }\n if (dx == null) {\n dx = 0;\n dy = 2;\n }\n if (dy == null) {\n dy = dx;\n }\n color = Snap.color(color);\n return Snap.format('', {\n color: color,\n dx: dx,\n dy: dy,\n blur: blur,\n opacity: opacity\n });\n };\n Snap.filter.shadow.toString = function () {\n return this();\n };\n /*\\\n * Snap.filter.grayscale\n [ method ]\n **\n * Returns an SVG markup string for the grayscale filter\n **\n - amount (number) amount of filter (`0..1`)\n = (string) filter representation\n \\*/\n Snap.filter.grayscale = function (amount) {\n if (amount == null) {\n amount = 1;\n }\n return Snap.format('', {\n a: 0.2126 + 0.7874 * (1 - amount),\n b: 0.7152 - 0.7152 * (1 - amount),\n c: 0.0722 - 0.0722 * (1 - amount),\n d: 0.2126 - 0.2126 * (1 - amount),\n e: 0.7152 + 0.2848 * (1 - amount),\n f: 0.0722 - 0.0722 * (1 - amount),\n g: 0.2126 - 0.2126 * (1 - amount),\n h: 0.0722 + 0.9278 * (1 - amount)\n });\n };\n Snap.filter.grayscale.toString = function () {\n return this();\n };\n /*\\\n * Snap.filter.sepia\n [ method ]\n **\n * Returns an SVG markup string for the sepia filter\n **\n - amount (number) amount of filter (`0..1`)\n = (string) filter representation\n \\*/\n Snap.filter.sepia = function (amount) {\n if (amount == null) {\n amount = 1;\n }\n return Snap.format('', {\n a: 0.393 + 0.607 * (1 - amount),\n b: 0.769 - 0.769 * (1 - amount),\n c: 0.189 - 0.189 * (1 - amount),\n d: 0.349 - 0.349 * (1 - amount),\n e: 0.686 + 0.314 * (1 - amount),\n f: 0.168 - 0.168 * (1 - amount),\n g: 0.272 - 0.272 * (1 - amount),\n h: 0.534 - 0.534 * (1 - amount),\n i: 0.131 + 0.869 * (1 - amount)\n });\n };\n Snap.filter.sepia.toString = function () {\n return this();\n };\n /*\\\n * Snap.filter.saturate\n [ method ]\n **\n * Returns an SVG markup string for the saturate filter\n **\n - amount (number) amount of filter (`0..1`)\n = (string) filter representation\n \\*/\n Snap.filter.saturate = function (amount) {\n if (amount == null) {\n amount = 1;\n }\n return Snap.format('', {\n amount: 1 - amount\n });\n };\n Snap.filter.saturate.toString = function () {\n return this();\n };\n /*\\\n * Snap.filter.hueRotate\n [ method ]\n **\n * Returns an SVG markup string for the hue-rotate filter\n **\n - angle (number) angle of rotation\n = (string) filter representation\n \\*/\n Snap.filter.hueRotate = function (angle) {\n angle = angle || 0;\n return Snap.format('', {\n angle: angle\n });\n };\n Snap.filter.hueRotate.toString = function () {\n return this();\n };\n /*\\\n * Snap.filter.invert\n [ method ]\n **\n * Returns an SVG markup string for the invert filter\n **\n - amount (number) amount of filter (`0..1`)\n = (string) filter representation\n \\*/\n Snap.filter.invert = function (amount) {\n if (amount == null) {\n amount = 1;\n }\n// \n return Snap.format('', {\n amount: amount,\n amount2: 1 - amount\n });\n };\n Snap.filter.invert.toString = function () {\n return this();\n };\n /*\\\n * Snap.filter.brightness\n [ method ]\n **\n * Returns an SVG markup string for the brightness filter\n **\n - amount (number) amount of filter (`0..1`)\n = (string) filter representation\n \\*/\n Snap.filter.brightness = function (amount) {\n if (amount == null) {\n amount = 1;\n }\n return Snap.format('', {\n amount: amount\n });\n };\n Snap.filter.brightness.toString = function () {\n return this();\n };\n /*\\\n * Snap.filter.contrast\n [ method ]\n **\n * Returns an SVG markup string for the contrast filter\n **\n - amount (number) amount of filter (`0..1`)\n = (string) filter representation\n \\*/\n Snap.filter.contrast = function (amount) {\n if (amount == null) {\n amount = 1;\n }\n return Snap.format('', {\n amount: amount,\n amount2: .5 - amount / 2\n });\n };\n Snap.filter.contrast.toString = function () {\n return this();\n };\n});\n\n// Copyright (c) 2014 Adobe Systems Incorporated. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nSnap.plugin(function (Snap, Element, Paper, glob, Fragment) {\n var box = Snap._.box,\n is = Snap.is,\n firstLetter = /^[^a-z]*([tbmlrc])/i,\n toString = function () {\n return \"T\" + this.dx + \",\" + this.dy;\n };\n /*\\\n * Element.getAlign\n [ method ]\n **\n * Returns shift needed to align the element relatively to given element.\n * If no elements specified, parent `` container will be used.\n - el (object) @optional alignment element\n - way (string) one of six values: `\"top\"`, `\"middle\"`, `\"bottom\"`, `\"left\"`, `\"center\"`, `\"right\"`\n = (object|string) Object in format `{dx: , dy: }` also has a string representation as a transformation string\n > Usage\n | el.transform(el.getAlign(el2, \"top\"));\n * or\n | var dy = el.getAlign(el2, \"top\").dy;\n \\*/\n Element.prototype.getAlign = function (el, way) {\n if (way == null && is(el, \"string\")) {\n way = el;\n el = null;\n }\n el = el || this.paper;\n var bx = el.getBBox ? el.getBBox() : box(el),\n bb = this.getBBox(),\n out = {};\n way = way && way.match(firstLetter);\n way = way ? way[1].toLowerCase() : \"c\";\n switch (way) {\n case \"t\":\n out.dx = 0;\n out.dy = bx.y - bb.y;\n break;\n case \"b\":\n out.dx = 0;\n out.dy = bx.y2 - bb.y2;\n break;\n case \"m\":\n out.dx = 0;\n out.dy = bx.cy - bb.cy;\n break;\n case \"l\":\n out.dx = bx.x - bb.x;\n out.dy = 0;\n break;\n case \"r\":\n out.dx = bx.x2 - bb.x2;\n out.dy = 0;\n break;\n default:\n out.dx = bx.cx - bb.cx;\n out.dy = 0;\n break;\n }\n out.toString = toString;\n return out;\n };\n /*\\\n * Element.align\n [ method ]\n **\n * Aligns the element relatively to given one via transformation.\n * If no elements specified, parent `` container will be used.\n - el (object) @optional alignment element\n - way (string) one of six values: `\"top\"`, `\"middle\"`, `\"bottom\"`, `\"left\"`, `\"center\"`, `\"right\"`\n = (object) this element\n > Usage\n | el.align(el2, \"top\");\n * or\n | el.align(\"middle\");\n \\*/\n Element.prototype.align = function (el, way) {\n return this.transform(\"...\" + this.getAlign(el, way));\n };\n});\n\n// Copyright (c) 2016 Adobe Systems Incorporated. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nSnap.plugin(function (Snap, Element, Paper, glob, Fragment) {\n var elproto = Element.prototype,\n is = Snap.is,\n Str = String,\n has = \"hasOwnProperty\";\n function slice(from, to, f) {\n return function (arr) {\n var res = arr.slice(from, to);\n if (res.length == 1) {\n res = res[0];\n }\n return f ? f(res) : res;\n };\n }\n var Animation = function (attr, ms, easing, callback) {\n if (typeof easing == \"function\" && !easing.length) {\n callback = easing;\n easing = mina.linear;\n }\n this.attr = attr;\n this.dur = ms;\n easing && (this.easing = easing);\n callback && (this.callback = callback);\n };\n Snap._.Animation = Animation;\n /*\\\n * Snap.animation\n [ method ]\n **\n * Creates an animation object\n **\n - attr (object) attributes of final destination\n - duration (number) duration of the animation, in milliseconds\n - easing (function) #optional one of easing functions of @mina or custom one\n - callback (function) #optional callback function that fires when animation ends\n = (object) animation object\n \\*/\n Snap.animation = function (attr, ms, easing, callback) {\n return new Animation(attr, ms, easing, callback);\n };\n /*\\\n * Element.inAnim\n [ method ]\n **\n * Returns a set of animations that may be able to manipulate the current element\n **\n = (object) in format:\n o {\n o anim (object) animation object,\n o mina (object) @mina object,\n o curStatus (number) 0..1 — status of the animation: 0 — just started, 1 — just finished,\n o status (function) gets or sets the status of the animation,\n o stop (function) stops the animation\n o }\n \\*/\n elproto.inAnim = function () {\n var el = this,\n res = [];\n for (var id in el.anims) if (el.anims[has](id)) {\n (function (a) {\n res.push({\n anim: new Animation(a._attrs, a.dur, a.easing, a._callback),\n mina: a,\n curStatus: a.status(),\n status: function (val) {\n return a.status(val);\n },\n stop: function () {\n a.stop();\n }\n });\n }(el.anims[id]));\n }\n return res;\n };\n /*\\\n * Snap.animate\n [ method ]\n **\n * Runs generic animation of one number into another with a caring function\n **\n - from (number|array) number or array of numbers\n - to (number|array) number or array of numbers\n - setter (function) caring function that accepts one number argument\n - duration (number) duration, in milliseconds\n - easing (function) #optional easing function from @mina or custom\n - callback (function) #optional callback function to execute when animation ends\n = (object) animation object in @mina format\n o {\n o id (string) animation id, consider it read-only,\n o duration (function) gets or sets the duration of the animation,\n o easing (function) easing,\n o speed (function) gets or sets the speed of the animation,\n o status (function) gets or sets the status of the animation,\n o stop (function) stops the animation\n o }\n | var rect = Snap().rect(0, 0, 10, 10);\n | Snap.animate(0, 10, function (val) {\n | rect.attr({\n | x: val\n | });\n | }, 1000);\n | // in given context is equivalent to\n | rect.animate({x: 10}, 1000);\n \\*/\n Snap.animate = function (from, to, setter, ms, easing, callback) {\n if (typeof easing == \"function\" && !easing.length) {\n callback = easing;\n easing = mina.linear;\n }\n var now = mina.time(),\n anim = mina(from, to, now, now + ms, mina.time, setter, easing);\n callback && eve.once(\"mina.finish.\" + anim.id, callback);\n return anim;\n };\n /*\\\n * Element.stop\n [ method ]\n **\n * Stops all the animations for the current element\n **\n = (Element) the current element\n \\*/\n elproto.stop = function () {\n var anims = this.inAnim();\n for (var i = 0, ii = anims.length; i < ii; i++) {\n anims[i].stop();\n }\n return this;\n };\n /*\\\n * Element.animate\n [ method ]\n **\n * Animates the given attributes of the element\n **\n - attrs (object) key-value pairs of destination attributes\n - duration (number) duration of the animation in milliseconds\n - easing (function) #optional easing function from @mina or custom\n - callback (function) #optional callback function that executes when the animation ends\n = (Element) the current element\n \\*/\n elproto.animate = function (attrs, ms, easing, callback) {\n if (typeof easing == \"function\" && !easing.length) {\n callback = easing;\n easing = mina.linear;\n }\n if (attrs instanceof Animation) {\n callback = attrs.callback;\n easing = attrs.easing;\n ms = attrs.dur;\n attrs = attrs.attr;\n }\n var fkeys = [], tkeys = [], keys = {}, from, to, f, eq,\n el = this;\n for (var key in attrs) if (attrs[has](key)) {\n if (el.equal) {\n eq = el.equal(key, Str(attrs[key]));\n from = eq.from;\n to = eq.to;\n f = eq.f;\n } else {\n from = +el.attr(key);\n to = +attrs[key];\n }\n var len = is(from, \"array\") ? from.length : 1;\n keys[key] = slice(fkeys.length, fkeys.length + len, f);\n fkeys = fkeys.concat(from);\n tkeys = tkeys.concat(to);\n }\n var now = mina.time(),\n anim = mina(fkeys, tkeys, now, now + ms, mina.time, function (val) {\n var attr = {};\n for (var key in keys) if (keys[has](key)) {\n attr[key] = keys[key](val);\n }\n el.attr(attr);\n }, easing);\n el.anims[anim.id] = anim;\n anim._attrs = attrs;\n anim._callback = callback;\n eve(\"snap.animcreated.\" + el.id, anim);\n eve.once(\"mina.finish.\" + anim.id, function () {\n eve.off(\"mina.*.\" + anim.id);\n delete el.anims[anim.id];\n callback && callback.call(el);\n });\n eve.once(\"mina.stop.\" + anim.id, function () {\n eve.off(\"mina.*.\" + anim.id);\n delete el.anims[anim.id];\n });\n return el;\n };\n});\n\n// Copyright (c) 2017 Adobe Systems Incorporated. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nSnap.plugin(function (Snap, Element, Paper, glob) {\n // Colours are from https://www.materialui.co\n var red = \"#ffebee#ffcdd2#ef9a9a#e57373#ef5350#f44336#e53935#d32f2f#c62828#b71c1c#ff8a80#ff5252#ff1744#d50000\",\n pink = \"#FCE4EC#F8BBD0#F48FB1#F06292#EC407A#E91E63#D81B60#C2185B#AD1457#880E4F#FF80AB#FF4081#F50057#C51162\",\n purple = \"#F3E5F5#E1BEE7#CE93D8#BA68C8#AB47BC#9C27B0#8E24AA#7B1FA2#6A1B9A#4A148C#EA80FC#E040FB#D500F9#AA00FF\",\n deeppurple = \"#EDE7F6#D1C4E9#B39DDB#9575CD#7E57C2#673AB7#5E35B1#512DA8#4527A0#311B92#B388FF#7C4DFF#651FFF#6200EA\",\n indigo = \"#E8EAF6#C5CAE9#9FA8DA#7986CB#5C6BC0#3F51B5#3949AB#303F9F#283593#1A237E#8C9EFF#536DFE#3D5AFE#304FFE\",\n blue = \"#E3F2FD#BBDEFB#90CAF9#64B5F6#64B5F6#2196F3#1E88E5#1976D2#1565C0#0D47A1#82B1FF#448AFF#2979FF#2962FF\",\n lightblue = \"#E1F5FE#B3E5FC#81D4FA#4FC3F7#29B6F6#03A9F4#039BE5#0288D1#0277BD#01579B#80D8FF#40C4FF#00B0FF#0091EA\",\n cyan = \"#E0F7FA#B2EBF2#80DEEA#4DD0E1#26C6DA#00BCD4#00ACC1#0097A7#00838F#006064#84FFFF#18FFFF#00E5FF#00B8D4\",\n teal = \"#E0F2F1#B2DFDB#80CBC4#4DB6AC#26A69A#009688#00897B#00796B#00695C#004D40#A7FFEB#64FFDA#1DE9B6#00BFA5\",\n green = \"#E8F5E9#C8E6C9#A5D6A7#81C784#66BB6A#4CAF50#43A047#388E3C#2E7D32#1B5E20#B9F6CA#69F0AE#00E676#00C853\",\n lightgreen = \"#F1F8E9#DCEDC8#C5E1A5#AED581#9CCC65#8BC34A#7CB342#689F38#558B2F#33691E#CCFF90#B2FF59#76FF03#64DD17\",\n lime = \"#F9FBE7#F0F4C3#E6EE9C#DCE775#D4E157#CDDC39#C0CA33#AFB42B#9E9D24#827717#F4FF81#EEFF41#C6FF00#AEEA00\",\n yellow = \"#FFFDE7#FFF9C4#FFF59D#FFF176#FFEE58#FFEB3B#FDD835#FBC02D#F9A825#F57F17#FFFF8D#FFFF00#FFEA00#FFD600\",\n amber = \"#FFF8E1#FFECB3#FFE082#FFD54F#FFCA28#FFC107#FFB300#FFA000#FF8F00#FF6F00#FFE57F#FFD740#FFC400#FFAB00\",\n orange = \"#FFF3E0#FFE0B2#FFCC80#FFB74D#FFA726#FF9800#FB8C00#F57C00#EF6C00#E65100#FFD180#FFAB40#FF9100#FF6D00\",\n deeporange = \"#FBE9E7#FFCCBC#FFAB91#FF8A65#FF7043#FF5722#F4511E#E64A19#D84315#BF360C#FF9E80#FF6E40#FF3D00#DD2C00\",\n brown = \"#EFEBE9#D7CCC8#BCAAA4#A1887F#8D6E63#795548#6D4C41#5D4037#4E342E#3E2723\",\n grey = \"#FAFAFA#F5F5F5#EEEEEE#E0E0E0#BDBDBD#9E9E9E#757575#616161#424242#212121\",\n bluegrey = \"#ECEFF1#CFD8DC#B0BEC5#90A4AE#78909C#607D8B#546E7A#455A64#37474F#263238\";\n /*\\\n * Snap.mui\n [ property ]\n **\n * Contain Material UI colours.\n | Snap().rect(0, 0, 10, 10).attr({fill: Snap.mui.deeppurple, stroke: Snap.mui.amber[600]});\n # For colour reference: https://www.materialui.co.\n \\*/\n Snap.mui = {};\n /*\\\n * Snap.flat\n [ property ]\n **\n * Contain Flat UI colours.\n | Snap().rect(0, 0, 10, 10).attr({fill: Snap.flat.carrot, stroke: Snap.flat.wetasphalt});\n # For colour reference: https://www.materialui.co.\n \\*/\n Snap.flat = {};\n function saveColor(colors) {\n colors = colors.split(/(?=#)/);\n var color = new String(colors[5]);\n color[50] = colors[0];\n color[100] = colors[1];\n color[200] = colors[2];\n color[300] = colors[3];\n color[400] = colors[4];\n color[500] = colors[5];\n color[600] = colors[6];\n color[700] = colors[7];\n color[800] = colors[8];\n color[900] = colors[9];\n if (colors[10]) {\n color.A100 = colors[10];\n color.A200 = colors[11];\n color.A400 = colors[12];\n color.A700 = colors[13];\n }\n return color;\n }\n Snap.mui.red = saveColor(red);\n Snap.mui.pink = saveColor(pink);\n Snap.mui.purple = saveColor(purple);\n Snap.mui.deeppurple = saveColor(deeppurple);\n Snap.mui.indigo = saveColor(indigo);\n Snap.mui.blue = saveColor(blue);\n Snap.mui.lightblue = saveColor(lightblue);\n Snap.mui.cyan = saveColor(cyan);\n Snap.mui.teal = saveColor(teal);\n Snap.mui.green = saveColor(green);\n Snap.mui.lightgreen = saveColor(lightgreen);\n Snap.mui.lime = saveColor(lime);\n Snap.mui.yellow = saveColor(yellow);\n Snap.mui.amber = saveColor(amber);\n Snap.mui.orange = saveColor(orange);\n Snap.mui.deeporange = saveColor(deeporange);\n Snap.mui.brown = saveColor(brown);\n Snap.mui.grey = saveColor(grey);\n Snap.mui.bluegrey = saveColor(bluegrey);\n Snap.flat.turquoise = \"#1abc9c\";\n Snap.flat.greensea = \"#16a085\";\n Snap.flat.sunflower = \"#f1c40f\";\n Snap.flat.orange = \"#f39c12\";\n Snap.flat.emerland = \"#2ecc71\";\n Snap.flat.nephritis = \"#27ae60\";\n Snap.flat.carrot = \"#e67e22\";\n Snap.flat.pumpkin = \"#d35400\";\n Snap.flat.peterriver = \"#3498db\";\n Snap.flat.belizehole = \"#2980b9\";\n Snap.flat.alizarin = \"#e74c3c\";\n Snap.flat.pomegranate = \"#c0392b\";\n Snap.flat.amethyst = \"#9b59b6\";\n Snap.flat.wisteria = \"#8e44ad\";\n Snap.flat.clouds = \"#ecf0f1\";\n Snap.flat.silver = \"#bdc3c7\";\n Snap.flat.wetasphalt = \"#34495e\";\n Snap.flat.midnightblue = \"#2c3e50\";\n Snap.flat.concrete = \"#95a5a6\";\n Snap.flat.asbestos = \"#7f8c8d\";\n /*\\\n * Snap.importMUIColors\n [ method ]\n **\n * Imports Material UI colours into global object.\n | Snap.importMUIColors();\n | Snap().rect(0, 0, 10, 10).attr({fill: deeppurple, stroke: amber[600]});\n # For colour reference: https://www.materialui.co.\n \\*/\n Snap.importMUIColors = function () {\n for (var color in Snap.mui) {\n if (Snap.mui.hasOwnProperty(color)) {\n window[color] = Snap.mui[color];\n }\n }\n };\n});\n\nmodule.exports = Snap\n","// Copyright (c) 2017 Adobe Systems Incorporated. All rights reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// ┌────────────────────────────────────────────────────────────┐ \\\\\n// │ Eve 0.5.4 - JavaScript Events Library │ \\\\\n// ├────────────────────────────────────────────────────────────┤ \\\\\n// │ Author Dmitry Baranovskiy (http://dmitry.baranovskiy.com/) │ \\\\\n// └────────────────────────────────────────────────────────────┘ \\\\\n\n(function (glob) {\n var version = \"0.5.4\",\n has = \"hasOwnProperty\",\n separator = /[\\.\\/]/,\n comaseparator = /\\s*,\\s*/,\n wildcard = \"*\",\n numsort = function (a, b) {\n return a - b;\n },\n current_event,\n stop,\n events = {n: {}},\n firstDefined = function () {\n for (var i = 0, ii = this.length; i < ii; i++) {\n if (typeof this[i] != \"undefined\") {\n return this[i];\n }\n }\n },\n lastDefined = function () {\n var i = this.length;\n while (--i) {\n if (typeof this[i] != \"undefined\") {\n return this[i];\n }\n }\n },\n objtos = Object.prototype.toString,\n Str = String,\n isArray = Array.isArray || function (ar) {\n return ar instanceof Array || objtos.call(ar) == \"[object Array]\";\n },\n /*\\\n * eve\n [ method ]\n\n * Fires event with given `name`, given scope and other parameters.\n\n - name (string) name of the *event*, dot (`.`) or slash (`/`) separated\n - scope (object) context for the event handlers\n - varargs (...) the rest of arguments will be sent to event handlers\n\n = (object) array of returned values from the listeners. Array has two methods `.firstDefined()` and `.lastDefined()` to get first or last not `undefined` value.\n \\*/\n eve = function (name, scope) {\n var oldstop = stop,\n args = Array.prototype.slice.call(arguments, 2),\n listeners = eve.listeners(name),\n z = 0,\n l,\n indexed = [],\n queue = {},\n out = [],\n ce = current_event;\n out.firstDefined = firstDefined;\n out.lastDefined = lastDefined;\n current_event = name;\n stop = 0;\n for (var i = 0, ii = listeners.length; i < ii; i++) if (\"zIndex\" in listeners[i]) {\n indexed.push(listeners[i].zIndex);\n if (listeners[i].zIndex < 0) {\n queue[listeners[i].zIndex] = listeners[i];\n }\n }\n indexed.sort(numsort);\n while (indexed[z] < 0) {\n l = queue[indexed[z++]];\n out.push(l.apply(scope, args));\n if (stop) {\n stop = oldstop;\n return out;\n }\n }\n for (i = 0; i < ii; i++) {\n l = listeners[i];\n if (\"zIndex\" in l) {\n if (l.zIndex == indexed[z]) {\n out.push(l.apply(scope, args));\n if (stop) {\n break;\n }\n do {\n z++;\n l = queue[indexed[z]];\n l && out.push(l.apply(scope, args));\n if (stop) {\n break;\n }\n } while (l)\n } else {\n queue[l.zIndex] = l;\n }\n } else {\n out.push(l.apply(scope, args));\n if (stop) {\n break;\n }\n }\n }\n stop = oldstop;\n current_event = ce;\n return out;\n };\n // Undocumented. Debug only.\n eve._events = events;\n /*\\\n * eve.listeners\n [ method ]\n\n * Internal method which gives you array of all event handlers that will be triggered by the given `name`.\n\n - name (string) name of the event, dot (`.`) or slash (`/`) separated\n\n = (array) array of event handlers\n \\*/\n eve.listeners = function (name) {\n var names = isArray(name) ? name : name.split(separator),\n e = events,\n item,\n items,\n k,\n i,\n ii,\n j,\n jj,\n nes,\n es = [e],\n out = [];\n for (i = 0, ii = names.length; i < ii; i++) {\n nes = [];\n for (j = 0, jj = es.length; j < jj; j++) {\n e = es[j].n;\n items = [e[names[i]], e[wildcard]];\n k = 2;\n while (k--) {\n item = items[k];\n if (item) {\n nes.push(item);\n out = out.concat(item.f || []);\n }\n }\n }\n es = nes;\n }\n return out;\n };\n /*\\\n * eve.separator\n [ method ]\n\n * If for some reasons you don’t like default separators (`.` or `/`) you can specify yours\n * here. Be aware that if you pass a string longer than one character it will be treated as\n * a list of characters.\n\n - separator (string) new separator. Empty string resets to default: `.` or `/`.\n \\*/\n eve.separator = function (sep) {\n if (sep) {\n sep = Str(sep).replace(/(?=[\\.\\^\\]\\[\\-])/g, \"\\\\\");\n sep = \"[\" + sep + \"]\";\n separator = new RegExp(sep);\n } else {\n separator = /[\\.\\/]/;\n }\n };\n /*\\\n * eve.on\n [ method ]\n **\n * Binds given event handler with a given name. You can use wildcards “`*`” for the names:\n | eve.on(\"*.under.*\", f);\n | eve(\"mouse.under.floor\"); // triggers f\n * Use @eve to trigger the listener.\n **\n - name (string) name of the event, dot (`.`) or slash (`/`) separated, with optional wildcards\n - f (function) event handler function\n **\n - name (array) if you don’t want to use separators, you can use array of strings\n - f (function) event handler function\n **\n = (function) returned function accepts a single numeric parameter that represents z-index of the handler. It is an optional feature and only used when you need to ensure that some subset of handlers will be invoked in a given order, despite of the order of assignment.\n > Example:\n | eve.on(\"mouse\", eatIt)(2);\n | eve.on(\"mouse\", scream);\n | eve.on(\"mouse\", catchIt)(1);\n * This will ensure that `catchIt` function will be called before `eatIt`.\n *\n * If you want to put your handler before non-indexed handlers, specify a negative value.\n * Note: I assume most of the time you don’t need to worry about z-index, but it’s nice to have this feature “just in case”.\n \\*/\n eve.on = function (name, f) {\n if (typeof f != \"function\") {\n return function () {};\n }\n var names = isArray(name) ? isArray(name[0]) ? name : [name] : Str(name).split(comaseparator);\n for (var i = 0, ii = names.length; i < ii; i++) {\n (function (name) {\n var names = isArray(name) ? name : Str(name).split(separator),\n e = events,\n exist;\n for (var i = 0, ii = names.length; i < ii; i++) {\n e = e.n;\n e = e.hasOwnProperty(names[i]) && e[names[i]] || (e[names[i]] = {n: {}});\n }\n e.f = e.f || [];\n for (i = 0, ii = e.f.length; i < ii; i++) if (e.f[i] == f) {\n exist = true;\n break;\n }\n !exist && e.f.push(f);\n }(names[i]));\n }\n return function (zIndex) {\n if (+zIndex == +zIndex) {\n f.zIndex = +zIndex;\n }\n };\n };\n /*\\\n * eve.f\n [ method ]\n **\n * Returns function that will fire given event with optional arguments.\n * Arguments that will be passed to the result function will be also\n * concated to the list of final arguments.\n | el.onclick = eve.f(\"click\", 1, 2);\n | eve.on(\"click\", function (a, b, c) {\n | console.log(a, b, c); // 1, 2, [event object]\n | });\n - event (string) event name\n - varargs (…) and any other arguments\n = (function) possible event handler function\n \\*/\n eve.f = function (event) {\n var attrs = [].slice.call(arguments, 1);\n return function () {\n eve.apply(null, [event, null].concat(attrs).concat([].slice.call(arguments, 0)));\n };\n };\n /*\\\n * eve.stop\n [ method ]\n **\n * Is used inside an event handler to stop the event, preventing any subsequent listeners from firing.\n \\*/\n eve.stop = function () {\n stop = 1;\n };\n /*\\\n * eve.nt\n [ method ]\n **\n * Could be used inside event handler to figure out actual name of the event.\n **\n - subname (string) #optional subname of the event\n **\n = (string) name of the event, if `subname` is not specified\n * or\n = (boolean) `true`, if current event’s name contains `subname`\n \\*/\n eve.nt = function (subname) {\n var cur = isArray(current_event) ? current_event.join(\".\") : current_event;\n if (subname) {\n return new RegExp(\"(?:\\\\.|\\\\/|^)\" + subname + \"(?:\\\\.|\\\\/|$)\").test(cur);\n }\n return cur;\n };\n /*\\\n * eve.nts\n [ method ]\n **\n * Could be used inside event handler to figure out actual name of the event.\n **\n **\n = (array) names of the event\n \\*/\n eve.nts = function () {\n return isArray(current_event) ? current_event : current_event.split(separator);\n };\n /*\\\n * eve.off\n [ method ]\n **\n * Removes given function from the list of event listeners assigned to given name.\n * If no arguments specified all the events will be cleared.\n **\n - name (string) name of the event, dot (`.`) or slash (`/`) separated, with optional wildcards\n - f (function) event handler function\n \\*/\n /*\\\n * eve.unbind\n [ method ]\n **\n * See @eve.off\n \\*/\n eve.off = eve.unbind = function (name, f) {\n if (!name) {\n eve._events = events = {n: {}};\n return;\n }\n var names = isArray(name) ? isArray(name[0]) ? name : [name] : Str(name).split(comaseparator);\n if (names.length > 1) {\n for (var i = 0, ii = names.length; i < ii; i++) {\n eve.off(names[i], f);\n }\n return;\n }\n names = isArray(name) ? name : Str(name).split(separator);\n var e,\n key,\n splice,\n i, ii, j, jj,\n cur = [events],\n inodes = [];\n for (i = 0, ii = names.length; i < ii; i++) {\n for (j = 0; j < cur.length; j += splice.length - 2) {\n splice = [j, 1];\n e = cur[j].n;\n if (names[i] != wildcard) {\n if (e[names[i]]) {\n splice.push(e[names[i]]);\n inodes.unshift({\n n: e,\n name: names[i]\n });\n }\n } else {\n for (key in e) if (e[has](key)) {\n splice.push(e[key]);\n inodes.unshift({\n n: e,\n name: key\n });\n }\n }\n cur.splice.apply(cur, splice);\n }\n }\n for (i = 0, ii = cur.length; i < ii; i++) {\n e = cur[i];\n while (e.n) {\n if (f) {\n if (e.f) {\n for (j = 0, jj = e.f.length; j < jj; j++) if (e.f[j] == f) {\n e.f.splice(j, 1);\n break;\n }\n !e.f.length && delete e.f;\n }\n for (key in e.n) if (e.n[has](key) && e.n[key].f) {\n var funcs = e.n[key].f;\n for (j = 0, jj = funcs.length; j < jj; j++) if (funcs[j] == f) {\n funcs.splice(j, 1);\n break;\n }\n !funcs.length && delete e.n[key].f;\n }\n } else {\n delete e.f;\n for (key in e.n) if (e.n[has](key) && e.n[key].f) {\n delete e.n[key].f;\n }\n }\n e = e.n;\n }\n }\n // prune inner nodes in path\n prune: for (i = 0, ii = inodes.length; i < ii; i++) {\n e = inodes[i];\n for (key in e.n[e.name].f) {\n // not empty (has listeners)\n continue prune;\n }\n for (key in e.n[e.name].n) {\n // not empty (has children)\n continue prune;\n }\n // is empty\n delete e.n[e.name];\n }\n };\n /*\\\n * eve.once\n [ method ]\n **\n * Binds given event handler with a given name to only run once then unbind itself.\n | eve.once(\"login\", f);\n | eve(\"login\"); // triggers f\n | eve(\"login\"); // no listeners\n * Use @eve to trigger the listener.\n **\n - name (string) name of the event, dot (`.`) or slash (`/`) separated, with optional wildcards\n - f (function) event handler function\n **\n = (function) same return function as @eve.on\n \\*/\n eve.once = function (name, f) {\n var f2 = function () {\n eve.off(name, f2);\n return f.apply(this, arguments);\n };\n return eve.on(name, f2);\n };\n /*\\\n * eve.version\n [ property (string) ]\n **\n * Current version of the library.\n \\*/\n eve.version = version;\n eve.toString = function () {\n return \"You are running Eve \" + version;\n };\n glob.eve = eve;\n typeof module != \"undefined\" && module.exports ? module.exports = eve : typeof define === \"function\" && define.amd ? define(\"eve\", [], function () { return eve; }) : glob.eve = eve;\n})(typeof window != \"undefined\" ? window : this);\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _snapsvgImporter = require('../snapsvgImporter');\n\nvar _snapsvgImporter2 = _interopRequireDefault(_snapsvgImporter);\n\nvar _menuFactory = require('../menuFactory');\n\nvar _menuFactory2 = _interopRequireDefault(_menuFactory);\n\nvar styles = {\n svg: {\n lib: _snapsvgImporter2['default'],\n pathInitial: 'M-7.312,0H0c0,0,0,113.839,0,400c0,264.506,0,400,0,400h-7.312V0z',\n pathOpen: 'M-7.312,0H15c0,0,66,113.339,66,399.5C81,664.006,15,800,15,800H-7.312V0z;M-7.312,0H100c0,0,0,113.839,0,400c0,264.506,0,400,0,400H-7.312V0z',\n animate: function animate(path) {\n var pos = 0;\n var steps = this.pathOpen.split(';');\n var stepsTotal = steps.length;\n var mina = window.mina;\n\n var nextStep = function nextStep() {\n if (pos > stepsTotal - 1) return;\n\n path.animate({ path: steps[pos] }, pos === 0 ? 400 : 500, pos === 0 ? mina.easein : mina.elastic, function () {\n nextStep();\n });\n\n pos++;\n };\n\n nextStep();\n }\n },\n\n morphShape: function morphShape(isOpen, width, right) {\n return {\n position: 'absolute',\n width: '100%',\n height: '100%',\n right: right ? 'inherit' : 0,\n left: right ? 0 : 'inherit',\n MozTransform: right ? 'rotateY(180deg)' : 'rotateY(0deg)',\n MsTransform: right ? 'rotateY(180deg)' : 'rotateY(0deg)',\n OTransform: right ? 'rotateY(180deg)' : 'rotateY(0deg)',\n WebkitTransform: right ? 'rotateY(180deg)' : 'rotateY(0deg)',\n transform: right ? 'rotateY(180deg)' : 'rotateY(0deg)'\n };\n },\n\n menuWrap: function menuWrap(isOpen, width, right) {\n return {\n MozTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',\n MsTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',\n OTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',\n WebkitTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',\n transform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(100%, 0, 0)' : 'translate3d(-100%, 0, 0)',\n transition: isOpen ? 'transform 0.4s 0s' : 'transform 0.4s'\n };\n },\n\n menu: function menu(isOpen, width, right) {\n width -= 140;\n return {\n position: 'fixed',\n MozTransform: isOpen ? '' : right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)',\n MsTransform: isOpen ? '' : right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)',\n OTransform: isOpen ? '' : right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)',\n WebkitTransform: isOpen ? '' : right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)',\n transform: isOpen ? '' : right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)',\n transition: isOpen ? 'opacity 0.1s 0.4s cubic-bezier(.17, .67, .1, 1.27), transform 0.1s 0.4s cubic-bezier(.17, .67, .1, 1.27)' : 'opacity 0s 0.3s cubic-bezier(.17, .67, .1, 1.27), transform 0s 0.3s cubic-bezier(.17, .67, .1, 1.27)',\n opacity: isOpen ? 1 : 0\n };\n },\n\n item: function item(isOpen, width, right, nthChild) {\n width -= 140;\n return {\n MozTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)',\n MsTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)',\n OTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)',\n WebkitTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)',\n transform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)',\n transition: isOpen ? 'opacity 0.3s 0.4s, transform 0.3s 0.4s' : 'opacity 0s 0.3s cubic-bezier(.17, .67, .1, 1.27), transform 0s 0.3s cubic-bezier(.17, .67, .1, 1.27)',\n opacity: isOpen ? 1 : 0\n };\n },\n\n closeButton: function closeButton(isOpen, width, right) {\n width -= 140;\n return {\n MozTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)',\n MsTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)',\n OTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)',\n WebkitTransform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)',\n transform: isOpen ? 'translate3d(0, 0, 0)' : right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)',\n transition: isOpen ? 'opacity 0.3s 0.4s cubic-bezier(.17, .67, .1, 1.27), transform 0.3s 0.4s cubic-bezier(.17, .67, .1, 1.27)' : 'opacity 0s 0.3s cubic-bezier(.17, .67, .1, 1.27), transform 0s 0.3s cubic-bezier(.17, .67, .1, 1.27)',\n opacity: isOpen ? 1 : 0\n };\n }\n};\n\nexports['default'] = (0, _menuFactory2['default'])(styles);\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _menuFactory = require('../menuFactory');\n\nvar _menuFactory2 = _interopRequireDefault(_menuFactory);\n\nvar styles = {\n pageWrap: function pageWrap(isOpen, width, right) {\n return {\n MozTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',\n MsTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',\n OTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',\n WebkitTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',\n transform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',\n transition: 'all 0.5s'\n };\n },\n\n outerContainer: function outerContainer(isOpen) {\n return {\n overflow: isOpen ? '' : 'hidden'\n };\n }\n};\n\nexports['default'] = (0, _menuFactory2['default'])(styles);\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _menuFactory = require('../menuFactory');\n\nvar _menuFactory2 = _interopRequireDefault(_menuFactory);\n\nvar styles = {\n pageWrap: function pageWrap(isOpen, width, right) {\n return {\n MozTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0) rotateY(15deg)' : 'translate3d(' + width + ', 0, 0) rotateY(-15deg)',\n MsTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0) rotateY(15deg)' : 'translate3d(' + width + ', 0, 0) rotateY(-15deg)',\n OTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0) rotateY(15deg)' : 'translate3d(' + width + ', 0, 0) rotateY(-15deg)',\n WebkitTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0) rotateY(15deg)' : 'translate3d(' + width + ', 0, 0) rotateY(-15deg)',\n transform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0) rotateY(15deg)' : 'translate3d(' + width + ', 0, 0) rotateY(-15deg)',\n transformOrigin: right ? '100% 50%' : '0% 50%',\n transformStyle: 'preserve-3d',\n transition: 'all 0.5s'\n };\n },\n\n outerContainer: function outerContainer(isOpen) {\n return {\n perspective: '1500px',\n overflow: isOpen ? '' : 'hidden'\n };\n }\n};\n\nexports['default'] = (0, _menuFactory2['default'])(styles);\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _menuFactory = require('../menuFactory');\n\nvar _menuFactory2 = _interopRequireDefault(_menuFactory);\n\nvar styles = {\n pageWrap: function pageWrap(isOpen, width) {\n return {\n MozTransform: isOpen ? '' : 'translate3d(0, 0, -' + width + ')',\n MsTransform: isOpen ? '' : 'translate3d(0, 0, -' + width + ')',\n OTransform: isOpen ? '' : 'translate3d(0, 0, -' + width + ')',\n WebkitTransform: isOpen ? '' : 'translate3d(0, 0, -' + width + ')',\n transform: isOpen ? '' : 'translate3d(0, 0, -' + width + ')',\n transformOrigin: '100%',\n transformStyle: 'preserve-3d',\n transition: 'all 0.5s'\n };\n },\n\n outerContainer: function outerContainer() {\n return {\n perspective: '1500px'\n };\n }\n};\n\nexports['default'] = (0, _menuFactory2['default'])(styles);\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _menuFactory = require('../menuFactory');\n\nvar _menuFactory2 = _interopRequireDefault(_menuFactory);\n\nvar styles = {\n pageWrap: function pageWrap(isOpen, width, right) {\n return {\n MozTransform: isOpen ? '' : right ? 'translate3d(-100px, 0, -600px) rotateY(20deg)' : 'translate3d(100px, 0, -600px) rotateY(-20deg)',\n MsTransform: isOpen ? '' : right ? 'translate3d(-100px, 0, -600px) rotateY(20deg)' : 'translate3d(100px, 0, -600px) rotateY(-20deg)',\n OTransform: isOpen ? '' : right ? 'translate3d(-100px, 0, -600px) rotateY(20deg)' : 'translate3d(100px, 0, -600px) rotateY(-20deg)',\n WebkitTransform: isOpen ? '' : right ? 'translate3d(-100px, 0, -600px) rotateY(20deg)' : 'translate3d(100px, 0, -600px) rotateY(-20deg)',\n transform: isOpen ? '' : right ? 'translate3d(-100px, 0, -600px) rotateY(20deg)' : 'translate3d(100px, 0, -600px) rotateY(-20deg)',\n transformStyle: 'preserve-3d',\n transition: 'all 0.5s',\n overflow: isOpen ? '' : 'hidden'\n };\n },\n\n outerContainer: function outerContainer(isOpen) {\n return {\n perspective: '1500px',\n overflow: isOpen ? '' : 'hidden'\n };\n }\n};\n\nexports['default'] = (0, _menuFactory2['default'])(styles);\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _menuFactory = require('../menuFactory');\n\nvar _menuFactory2 = _interopRequireDefault(_menuFactory);\n\nvar styles = {\n menuWrap: function menuWrap(isOpen) {\n return {\n MozTransform: isOpen ? '' : 'translate3d(0, -100%, 0)',\n MsTransform: isOpen ? '' : 'translate3d(0, -100%, 0)',\n OTransform: isOpen ? '' : 'translate3d(0, -100%, 0)',\n WebkitTransform: isOpen ? '' : 'translate3d(0, -100%, 0)',\n transform: isOpen ? '' : 'translate3d(0, -100%, 0)',\n transition: 'all 0.5s ease-in-out'\n };\n },\n\n pageWrap: function pageWrap(isOpen, width, right) {\n return {\n MozTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',\n MsTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',\n OTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',\n WebkitTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',\n transform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',\n transition: 'all 0.5s'\n };\n },\n\n outerContainer: function outerContainer(isOpen) {\n return {\n perspective: '1500px',\n perspectiveOrigin: '0% 50%',\n overflow: isOpen ? '' : 'hidden'\n };\n }\n};\n\nexports['default'] = (0, _menuFactory2['default'])(styles);\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _menuFactory = require('../menuFactory');\n\nvar _menuFactory2 = _interopRequireDefault(_menuFactory);\n\nvar styles = {\n menuWrap: function menuWrap(isOpen, width, right) {\n return {\n visibility: isOpen ? 'visible' : 'hidden',\n MozTransform: 'translate3d(0, 0, 0)',\n MsTransform: 'translate3d(0, 0, 0)',\n OTransform: 'translate3d(0, 0, 0)',\n WebkitTransform: 'translate3d(0, 0, 0)',\n transform: 'translate3d(0, 0, 0)',\n zIndex: 1000\n };\n },\n\n overlay: function overlay(isOpen, width, right) {\n return {\n zIndex: 1400,\n MozTransform: isOpen ? right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)' : 'translate3d(0, 0, 0)',\n MsTransform: isOpen ? right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)' : 'translate3d(0, 0, 0)',\n OTransform: isOpen ? right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)' : 'translate3d(0, 0, 0)',\n WebkitTransform: isOpen ? right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)' : 'translate3d(0, 0, 0)',\n transform: isOpen ? right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)' : 'translate3d(0, 0, 0)',\n transition: 'all 0.5s',\n visibility: isOpen ? 'visible' : 'hidden'\n };\n },\n\n pageWrap: function pageWrap(isOpen, width, right) {\n return {\n MozTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',\n MsTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',\n OTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',\n WebkitTransform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',\n transform: isOpen ? '' : right ? 'translate3d(-' + width + ', 0, 0)' : 'translate3d(' + width + ', 0, 0)',\n transition: 'all 0.5s',\n zIndex: 1200,\n position: 'relative'\n };\n },\n\n burgerIcon: function burgerIcon(isOpen, width, right) {\n return {\n MozTransform: isOpen ? right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)' : 'translate3d(0, 0, 0)',\n MsTransform: isOpen ? right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)' : 'translate3d(0, 0, 0)',\n OTransform: isOpen ? right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)' : 'translate3d(0, 0, 0)',\n WebkitTransform: isOpen ? right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)' : 'translate3d(0, 0, 0)',\n transform: isOpen ? right ? 'translate3d(' + width + ', 0, 0)' : 'translate3d(-' + width + ', 0, 0)' : 'translate3d(0, 0, 0)',\n transition: 'all 0.1s',\n position: 'relative',\n zIndex: 1300\n };\n },\n\n outerContainer: function outerContainer(isOpen) {\n return {\n overflow: isOpen ? '' : 'hidden'\n };\n }\n};\n\nexports['default'] = (0, _menuFactory2['default'])(styles);\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _cssClasses = require('../cssClasses');\n\nvar _cssClasses2 = _interopRequireDefault(_cssClasses);\n\nvar _CSSTranslate = require('../CSSTranslate');\n\nvar _CSSTranslate2 = _interopRequireDefault(_CSSTranslate);\n\nvar _reactEasySwipe = require('react-easy-swipe');\n\nvar _reactEasySwipe2 = _interopRequireDefault(_reactEasySwipe);\n\nvar _Thumbs = require('./Thumbs');\n\nvar _Thumbs2 = _interopRequireDefault(_Thumbs);\n\nvar _customPropTypes = require('../customPropTypes');\n\nvar customPropTypes = _interopRequireWildcard(_customPropTypes);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar noop = function noop() {};\n\nvar defaultStatusFormatter = function defaultStatusFormatter(current, total) {\n return current + ' of ' + total;\n};\n\nvar Carousel = function (_Component) {\n _inherits(Carousel, _Component);\n\n function Carousel(props) {\n _classCallCheck(this, Carousel);\n\n var _this = _possibleConstructorReturn(this, (Carousel.__proto__ || Object.getPrototypeOf(Carousel)).call(this, props));\n\n _this.setThumbsRef = function (node) {\n _this.thumbsRef = node;\n };\n\n _this.setCarouselWrapperRef = function (node) {\n _this.carouselWrapperRef = node;\n };\n\n _this.setListRef = function (node) {\n _this.listRef = node;\n };\n\n _this.setItemsWrapperRef = function (node) {\n _this.itemsWrapperRef = node;\n };\n\n _this.setItemsRef = function (node, index) {\n if (!_this.itemsRef) {\n _this.itemsRef = [];\n }\n _this.itemsRef[index] = node;\n };\n\n _this.autoPlay = function () {\n if (!_this.state.autoPlay || _react.Children.count(_this.props.children) <= 1) {\n return;\n }\n\n clearTimeout(_this.timer);\n _this.timer = setTimeout(function () {\n _this.increment();\n }, _this.props.interval);\n };\n\n _this.clearAutoPlay = function () {\n if (!_this.state.autoPlay) {\n return;\n }\n\n clearTimeout(_this.timer);\n };\n\n _this.resetAutoPlay = function () {\n _this.clearAutoPlay();\n _this.autoPlay();\n };\n\n _this.stopOnHover = function () {\n _this.setState({ isMouseEntered: true });\n _this.clearAutoPlay();\n };\n\n _this.startOnLeave = function () {\n _this.setState({ isMouseEntered: false });\n _this.autoPlay();\n };\n\n _this.isFocusWithinTheCarousel = function () {\n if (document.activeElement === _this.carouselWrapperRef || _this.carouselWrapperRef.contains(document.activeElement)) {\n return true;\n }\n\n return false;\n };\n\n _this.navigateWithKeyboard = function (e) {\n if (!_this.isFocusWithinTheCarousel()) {\n return;\n }\n\n var axis = _this.props.axis;\n\n var isHorizontal = axis === 'horizontal';\n var keyNames = {\n ArrowUp: 38,\n ArrowRight: 39,\n ArrowDown: 40,\n ArrowLeft: 37\n };\n\n var nextKey = isHorizontal ? keyNames.ArrowRight : keyNames.ArrowDown;\n var prevKey = isHorizontal ? keyNames.ArrowLeft : keyNames.ArrowUp;\n\n if (nextKey === e.keyCode) {\n _this.increment();\n } else if (prevKey === e.keyCode) {\n _this.decrement();\n }\n };\n\n _this.updateSizes = function () {\n if (!_this.state.initialized) {\n return;\n }\n\n var isHorizontal = _this.props.axis === 'horizontal';\n var firstItem = _this.itemsRef[0];\n var itemSize = isHorizontal ? firstItem.clientWidth : firstItem.clientHeight;\n\n _this.setState(function (_state, props) {\n return {\n itemSize: itemSize\n };\n });\n\n if (_this.thumbsRef) {\n _this.thumbsRef.updateSizes();\n }\n };\n\n _this.setMountState = function () {\n _this.setState({ hasMount: true });\n _this.updateSizes();\n };\n\n _this.handleClickItem = function (index, item) {\n if (_react.Children.count(_this.props.children) === 0) {\n return;\n }\n\n if (_this.state.cancelClick) {\n _this.setState({\n cancelClick: false\n });\n\n return;\n }\n\n _this.props.onClickItem(index, item);\n\n if (index !== _this.state.selectedItem) {\n _this.setState({\n selectedItem: index\n });\n }\n };\n\n _this.handleOnChange = function (index, item) {\n if (_react.Children.count(_this.props.children) <= 1) {\n return;\n }\n\n _this.props.onChange(index, item);\n };\n\n _this.handleClickThumb = function (index, item) {\n _this.props.onClickThumb(index, item);\n\n _this.selectItem({\n selectedItem: index\n });\n };\n\n _this.onSwipeStart = function (event) {\n _this.setState({\n swiping: true\n });\n _this.props.onSwipeStart(event);\n _this.clearAutoPlay();\n };\n\n _this.onSwipeEnd = function (event) {\n _this.setState({\n swiping: false,\n cancelClick: false\n });\n _this.props.onSwipeEnd(event);\n _this.autoPlay();\n };\n\n _this.onSwipeMove = function (delta, event) {\n _this.props.onSwipeMove(event);\n var isHorizontal = _this.props.axis === 'horizontal';\n var childrenLength = _react.Children.count(_this.props.children);\n\n var initialBoundry = 0;\n\n var currentPosition = _this.getPosition(_this.state.selectedItem);\n var finalBoundry = _this.props.infiniteLoop ? _this.getPosition(childrenLength - 1) - 100 : _this.getPosition(childrenLength - 1);\n\n var axisDelta = isHorizontal ? delta.x : delta.y;\n var handledDelta = axisDelta;\n\n // prevent user from swiping left out of boundaries\n if (currentPosition === initialBoundry && axisDelta > 0) {\n handledDelta = 0;\n }\n\n // prevent user from swiping right out of boundaries\n if (currentPosition === finalBoundry && axisDelta < 0) {\n handledDelta = 0;\n }\n\n var position = currentPosition + 100 / (_this.state.itemSize / handledDelta);\n if (_this.props.infiniteLoop) {\n // When allowing infinite loop, if we slide left from position 0 we reveal the cloned last slide that appears before it\n // if we slide even further we need to jump to other side so it can continue - and vice versa for the last slide\n if (_this.state.selectedItem === 0 && position > -100) {\n position -= childrenLength * 100;\n } else if (_this.state.selectedItem === childrenLength - 1 && position < -childrenLength * 100) {\n position += childrenLength * 100;\n }\n }\n position += '%';\n _this.setPosition(position);\n\n // allows scroll if the swipe was within the tolerance\n var hasMoved = Math.abs(axisDelta) > _this.props.swipeScrollTolerance;\n\n if (hasMoved && !_this.state.cancelClick) {\n _this.setState({\n cancelClick: true\n });\n }\n\n return hasMoved;\n };\n\n _this.setPosition = function (position, forceReflow) {\n var list = _reactDom2.default.findDOMNode(_this.listRef);\n ['WebkitTransform', 'MozTransform', 'MsTransform', 'OTransform', 'transform', 'msTransform'].forEach(function (prop) {\n list.style[prop] = (0, _CSSTranslate2.default)(position, _this.props.axis);\n });\n if (forceReflow) {\n list.offsetLeft;\n }\n };\n\n _this.resetPosition = function () {\n var currentPosition = _this.getPosition(_this.state.selectedItem) + '%';\n _this.setPosition(currentPosition);\n };\n\n _this.decrement = function () {\n var positions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n var fromSwipe = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n _this.moveTo(_this.state.selectedItem - (typeof positions === 'number' ? positions : 1), fromSwipe);\n };\n\n _this.increment = function () {\n var positions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n var fromSwipe = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n _this.moveTo(_this.state.selectedItem + (typeof positions === 'number' ? positions : 1), fromSwipe);\n };\n\n _this.moveTo = function (position, fromSwipe) {\n var lastPosition = _react.Children.count(_this.props.children) - 1;\n var needClonedSlide = _this.props.infiniteLoop && !fromSwipe && (position < 0 || position > lastPosition);\n var oldPosition = position;\n\n if (position < 0) {\n position = _this.props.infiniteLoop ? lastPosition : 0;\n }\n\n if (position > lastPosition) {\n position = _this.props.infiniteLoop ? 0 : lastPosition;\n }\n\n if (needClonedSlide) {\n // set swiping true would disable transition time, then we set slider to cloned position and force a reflow\n // this is only needed for non-swiping situation\n _this.setState({\n swiping: true\n }, function () {\n if (oldPosition < 0) {\n if (_this.props.centerMode && _this.props.axis === 'horizontal') {\n _this.setPosition('-' + ((lastPosition + 2) * _this.props.centerSlidePercentage - (100 - _this.props.centerSlidePercentage) / 2) + '%', true);\n } else {\n _this.setPosition('-' + (lastPosition + 2) * 100 + '%', true);\n }\n } else if (oldPosition > lastPosition) {\n _this.setPosition(0, true);\n }\n\n _this.selectItem({\n selectedItem: position,\n swiping: false\n });\n });\n } else {\n _this.selectItem({\n // if it's not a slider, we don't need to set position here\n selectedItem: position\n });\n }\n\n // don't reset auto play when stop on hover is enabled, doing so will trigger a call to auto play more than once\n // and will result in the interval function not being cleared correctly.\n if (_this.state.autoPlay && _this.state.isMouseEntered === false) {\n _this.resetAutoPlay();\n }\n };\n\n _this.onClickNext = function () {\n _this.increment(1, false);\n };\n\n _this.onClickPrev = function () {\n _this.decrement(1, false);\n };\n\n _this.onSwipeForward = function () {\n _this.increment(1, true);\n };\n\n _this.onSwipeBackwards = function () {\n _this.decrement(1, true);\n };\n\n _this.changeItem = function (e) {\n if (!e.key || e.key === 'Enter') {\n var newIndex = e.target.value;\n\n _this.selectItem({\n selectedItem: newIndex\n });\n }\n };\n\n _this.selectItem = function (state, cb) {\n _this.setState(state, cb);\n _this.handleOnChange(state.selectedItem, _react.Children.toArray(_this.props.children)[state.selectedItem]);\n };\n\n _this.getInitialImage = function () {\n var selectedItem = _this.props.selectedItem;\n var item = _this.itemsRef && _this.itemsRef[selectedItem];\n var images = item && item.getElementsByTagName('img');\n return images && images[selectedItem];\n };\n\n _this.getVariableImageHeight = function (position) {\n var item = _this.itemsRef && _this.itemsRef[position];\n var images = item && item.getElementsByTagName('img');\n if (_this.state.hasMount && images.length > 0) {\n var image = images[0];\n\n if (!image.complete) {\n // if the image is still loading, the size won't be available so we trigger a new render after it's done\n var onImageLoad = function onImageLoad() {\n _this.forceUpdate();\n image.removeEventListener('load', onImageLoad);\n };\n\n image.addEventListener('load', onImageLoad);\n }\n\n var height = image.clientHeight;\n return height > 0 ? height : null;\n }\n\n return null;\n };\n\n _this.state = {\n initialized: false,\n selectedItem: props.selectedItem,\n hasMount: false,\n isMouseEntered: false,\n autoPlay: props.autoPlay\n };\n return _this;\n }\n\n _createClass(Carousel, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (!this.props.children) {\n return;\n }\n\n this.setupCarousel();\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps, prevState) {\n if (!prevProps.children && this.props.children && !this.state.initialized) {\n this.setupCarousel();\n }\n\n if (prevState.swiping && !this.state.swiping) {\n // We stopped swiping, ensure we are heading to the new/current slide and not stuck\n this.resetPosition();\n }\n\n if (prevProps.selectedItem !== this.props.selectedItem) {\n this.updateSizes();\n this.moveTo(this.props.selectedItem);\n }\n\n if (prevProps.autoPlay !== this.props.autoPlay) {\n if (this.props.autoPlay) {\n this.setupAutoPlay();\n } else {\n this.destroyAutoPlay();\n }\n\n this.setState({ autoPlay: this.props.autoPlay });\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.destroyCarousel();\n }\n }, {\n key: 'setupCarousel',\n value: function setupCarousel() {\n this.bindEvents();\n\n if (this.state.autoPlay && _react.Children.count(this.props.children) > 1) {\n this.setupAutoPlay();\n }\n\n this.setState({\n initialized: true\n });\n\n var initialImage = this.getInitialImage();\n if (initialImage) {\n // if it's a carousel of images, we set the mount state after the first image is loaded\n initialImage.addEventListener('load', this.setMountState);\n } else {\n this.setMountState();\n }\n }\n }, {\n key: 'destroyCarousel',\n value: function destroyCarousel() {\n if (this.state.initialized) {\n this.unbindEvents();\n this.destroyAutoPlay();\n }\n }\n }, {\n key: 'setupAutoPlay',\n value: function setupAutoPlay() {\n this.autoPlay();\n var carouselWrapper = this.carouselWrapperRef;\n\n if (this.props.stopOnHover && carouselWrapper) {\n carouselWrapper.addEventListener('mouseenter', this.stopOnHover);\n carouselWrapper.addEventListener('mouseleave', this.startOnLeave);\n }\n }\n }, {\n key: 'destroyAutoPlay',\n value: function destroyAutoPlay() {\n this.clearAutoPlay();\n var carouselWrapper = this.carouselWrapperRef;\n\n if (this.props.stopOnHover && carouselWrapper) {\n carouselWrapper.removeEventListener('mouseenter', this.stopOnHover);\n carouselWrapper.removeEventListener('mouseleave', this.startOnLeave);\n }\n }\n }, {\n key: 'bindEvents',\n value: function bindEvents() {\n // as the widths are calculated, we need to resize\n // the carousel when the window is resized\n window.addEventListener('resize', this.updateSizes);\n // issue #2 - image loading smaller\n window.addEventListener('DOMContentLoaded', this.updateSizes);\n\n if (this.props.useKeyboardArrows) {\n document.addEventListener('keydown', this.navigateWithKeyboard);\n }\n }\n }, {\n key: 'unbindEvents',\n value: function unbindEvents() {\n // removing listeners\n window.removeEventListener('resize', this.updateSizes);\n window.removeEventListener('DOMContentLoaded', this.updateSizes);\n\n var initialImage = this.getInitialImage();\n if (initialImage) {\n initialImage.removeEventListener('load', this.setMountState);\n }\n\n if (this.props.useKeyboardArrows) {\n document.removeEventListener('keydown', this.navigateWithKeyboard);\n }\n }\n }, {\n key: 'getPosition',\n value: function getPosition(index) {\n if (this.props.infiniteLoop) {\n // index has to be added by 1 because of the first cloned slide\n ++index;\n }\n var childrenLength = _react.Children.count(this.props.children);\n if (this.props.centerMode && this.props.axis === 'horizontal') {\n var currentPosition = -index * this.props.centerSlidePercentage;\n var lastPosition = childrenLength - 1;\n\n if (index && (index !== lastPosition || this.props.infiniteLoop)) {\n currentPosition += (100 - this.props.centerSlidePercentage) / 2;\n } else if (index === lastPosition) {\n currentPosition += 100 - this.props.centerSlidePercentage;\n }\n\n return currentPosition;\n }\n\n return -index * 100;\n }\n }, {\n key: 'renderItems',\n value: function renderItems(isClone) {\n var _this2 = this;\n\n return _react.Children.map(this.props.children, function (item, index) {\n var slideProps = {\n ref: function ref(e) {\n return _this2.setItemsRef(e, index);\n },\n key: 'itemKey' + index + (isClone ? 'clone' : ''),\n className: _cssClasses2.default.ITEM(true, index === _this2.state.selectedItem),\n onClick: _this2.handleClickItem.bind(_this2, index, item)\n };\n\n if (_this2.props.centerMode && _this2.props.axis === 'horizontal') {\n slideProps.style = {\n minWidth: _this2.props.centerSlidePercentage + '%'\n };\n }\n\n return _react2.default.createElement(\n 'li',\n slideProps,\n _this2.props.renderItem(item, { isSelected: index === _this2.state.selectedItem })\n );\n });\n }\n }, {\n key: 'renderControls',\n value: function renderControls() {\n var _this3 = this;\n\n if (!this.props.showIndicators) {\n return null;\n }\n\n return _react2.default.createElement(\n 'ul',\n { className: 'control-dots' },\n _react.Children.map(this.props.children, function (item, index) {\n return _this3.props.renderIndicator(_this3.changeItem, index === _this3.state.selectedItem, index, _this3.props.labels.item);\n })\n );\n }\n }, {\n key: 'renderStatus',\n value: function renderStatus() {\n if (!this.props.showStatus) {\n return null;\n }\n\n return _react2.default.createElement(\n 'p',\n { className: 'carousel-status' },\n this.props.statusFormatter(this.state.selectedItem + 1, _react.Children.count(this.props.children))\n );\n }\n }, {\n key: 'renderThumbs',\n value: function renderThumbs() {\n if (!this.props.showThumbs || _react.Children.count(this.props.children) === 0) {\n return null;\n }\n\n return _react2.default.createElement(\n _Thumbs2.default,\n {\n ref: this.setThumbsRef,\n onSelectItem: this.handleClickThumb,\n selectedItem: this.state.selectedItem,\n transitionTime: this.props.transitionTime,\n thumbWidth: this.props.thumbWidth,\n labels: this.props.labels\n },\n this.props.renderThumbs(this.props.children)\n );\n }\n }, {\n key: 'render',\n value: function render() {\n if (!this.props.children || _react.Children.count(this.props.children) === 0) {\n return null;\n }\n\n var isHorizontal = this.props.axis === 'horizontal';\n\n var canShowArrows = this.props.showArrows && _react.Children.count(this.props.children) > 1;\n\n // show left arrow?\n var hasPrev = canShowArrows && (this.state.selectedItem > 0 || this.props.infiniteLoop);\n // show right arrow\n var hasNext = canShowArrows && (this.state.selectedItem < _react.Children.count(this.props.children) - 1 || this.props.infiniteLoop);\n // obj to hold the transformations and styles\n var itemListStyles = {};\n\n var currentPosition = this.getPosition(this.state.selectedItem);\n\n // if 3d is available, let's take advantage of the performance of transform\n var transformProp = (0, _CSSTranslate2.default)(currentPosition + '%', this.props.axis);\n\n var transitionTime = this.props.transitionTime + 'ms';\n\n itemListStyles = {\n WebkitTransform: transformProp,\n MozTransform: transformProp,\n MsTransform: transformProp,\n OTransform: transformProp,\n transform: transformProp,\n msTransform: transformProp\n };\n\n if (!this.state.swiping) {\n itemListStyles = _extends({}, itemListStyles, {\n WebkitTransitionDuration: transitionTime,\n MozTransitionDuration: transitionTime,\n MsTransitionDuration: transitionTime,\n OTransitionDuration: transitionTime,\n transitionDuration: transitionTime,\n msTransitionDuration: transitionTime\n });\n }\n\n var itemsClone = this.renderItems(true);\n var firstClone = itemsClone.shift();\n var lastClone = itemsClone.pop();\n\n var swiperProps = {\n className: _cssClasses2.default.SLIDER(true, this.state.swiping),\n onSwipeMove: this.onSwipeMove,\n onSwipeStart: this.onSwipeStart,\n onSwipeEnd: this.onSwipeEnd,\n style: itemListStyles,\n tolerance: this.props.swipeScrollTolerance\n };\n\n var containerStyles = {};\n\n if (isHorizontal) {\n swiperProps.onSwipeLeft = this.onSwipeForward;\n swiperProps.onSwipeRight = this.onSwipeBackwards;\n\n if (this.props.dynamicHeight) {\n var itemHeight = this.getVariableImageHeight(this.state.selectedItem);\n swiperProps.style.height = itemHeight || 'auto';\n containerStyles.height = itemHeight || 'auto';\n }\n } else {\n swiperProps.onSwipeUp = this.props.verticalSwipe === 'natural' ? this.onSwipeBackwards : this.onSwipeForward;\n swiperProps.onSwipeDown = this.props.verticalSwipe === 'natural' ? this.onSwipeForward : this.onSwipeBackwards;\n swiperProps.style.height = this.state.itemSize;\n containerStyles.height = this.state.itemSize;\n }\n return _react2.default.createElement(\n 'div',\n { className: _cssClasses2.default.ROOT(this.props.className), ref: this.setCarouselWrapperRef, tabIndex: '0' },\n _react2.default.createElement(\n 'div',\n { className: _cssClasses2.default.CAROUSEL(true), style: { width: this.props.width } },\n this.props.renderArrowPrev(this.onClickPrev, hasPrev, this.props.labels.leftArrow),\n _react2.default.createElement(\n 'div',\n {\n className: _cssClasses2.default.WRAPPER(true, this.props.axis),\n style: containerStyles,\n ref: this.setItemsWrapperRef\n },\n this.props.swipeable ? _react2.default.createElement(\n _reactEasySwipe2.default,\n _extends({\n tagName: 'ul',\n ref: this.setListRef\n }, swiperProps, {\n allowMouseEvents: this.props.emulateTouch\n }),\n this.props.infiniteLoop && lastClone,\n this.renderItems(),\n this.props.infiniteLoop && firstClone\n ) : _react2.default.createElement(\n 'ul',\n {\n className: _cssClasses2.default.SLIDER(true, this.state.swiping),\n ref: this.setListRef,\n style: itemListStyles\n },\n this.props.infiniteLoop && lastClone,\n this.renderItems(),\n this.props.infiniteLoop && firstClone\n )\n ),\n this.props.renderArrowNext(this.onClickNext, hasNext, this.props.labels.rightArrow),\n this.renderControls(),\n this.renderStatus()\n ),\n this.renderThumbs()\n );\n }\n }]);\n\n return Carousel;\n}(_react.Component);\n\nCarousel.displayName = 'Carousel';\nCarousel.propTypes = {\n className: _propTypes2.default.string,\n children: _propTypes2.default.node,\n showArrows: _propTypes2.default.bool,\n showStatus: _propTypes2.default.bool,\n showIndicators: _propTypes2.default.bool,\n infiniteLoop: _propTypes2.default.bool,\n showThumbs: _propTypes2.default.bool,\n thumbWidth: _propTypes2.default.number,\n selectedItem: _propTypes2.default.number,\n onClickItem: _propTypes2.default.func.isRequired,\n onClickThumb: _propTypes2.default.func.isRequired,\n onChange: _propTypes2.default.func.isRequired,\n axis: _propTypes2.default.oneOf(['horizontal', 'vertical']),\n verticalSwipe: _propTypes2.default.oneOf(['natural', 'standard']),\n width: customPropTypes.unit,\n useKeyboardArrows: _propTypes2.default.bool,\n autoPlay: _propTypes2.default.bool,\n stopOnHover: _propTypes2.default.bool,\n interval: _propTypes2.default.number,\n transitionTime: _propTypes2.default.number,\n swipeScrollTolerance: _propTypes2.default.number,\n swipeable: _propTypes2.default.bool,\n dynamicHeight: _propTypes2.default.bool,\n emulateTouch: _propTypes2.default.bool,\n statusFormatter: _propTypes2.default.func.isRequired,\n centerMode: _propTypes2.default.bool,\n centerSlidePercentage: _propTypes2.default.number,\n labels: _propTypes2.default.shape({\n leftArrow: _propTypes2.default.string,\n rightArrow: _propTypes2.default.string,\n item: _propTypes2.default.string\n }),\n onSwipeStart: _propTypes2.default.func,\n onSwipeEnd: _propTypes2.default.func,\n onSwipeMove: _propTypes2.default.func,\n renderArrowPrev: _propTypes2.default.func,\n renderArrowNext: _propTypes2.default.func,\n renderIndicator: _propTypes2.default.func,\n renderItem: _propTypes2.default.func,\n renderThumbs: _propTypes2.default.func\n};\nCarousel.defaultProps = {\n showIndicators: true,\n showArrows: true,\n showStatus: true,\n showThumbs: true,\n infiniteLoop: false,\n selectedItem: 0,\n axis: 'horizontal',\n verticalSwipe: 'standard',\n width: '100%',\n useKeyboardArrows: false,\n autoPlay: false,\n stopOnHover: true,\n interval: 3000,\n transitionTime: 350,\n swipeScrollTolerance: 5,\n swipeable: true,\n dynamicHeight: false,\n emulateTouch: false,\n onClickItem: noop,\n onClickThumb: noop,\n onChange: noop,\n statusFormatter: defaultStatusFormatter,\n centerMode: false,\n centerSlidePercentage: 80,\n labels: {\n leftArrow: 'previous slide / item',\n rightArrow: 'next slide / item',\n item: 'slide item'\n },\n onSwipeStart: function onSwipeStart() {},\n onSwipeEnd: function onSwipeEnd() {},\n onSwipeMove: function onSwipeMove() {},\n renderArrowPrev: function renderArrowPrev(onClickHandler, hasPrev, label) {\n return _react2.default.createElement('button', { type: 'button', 'aria-label': label, className: _cssClasses2.default.ARROW_PREV(!hasPrev), onClick: onClickHandler });\n },\n renderArrowNext: function renderArrowNext(onClickHandler, hasNext, label) {\n return _react2.default.createElement('button', { type: 'button', 'aria-label': label, className: _cssClasses2.default.ARROW_NEXT(!hasNext), onClick: onClickHandler });\n },\n renderIndicator: function renderIndicator(onClickHandler, isSelected, index, label) {\n return _react2.default.createElement('li', {\n className: _cssClasses2.default.DOT(isSelected),\n onClick: onClickHandler,\n onKeyDown: onClickHandler,\n value: index,\n key: index,\n role: 'button',\n tabIndex: 0,\n 'aria-label': label + ' ' + (index + 1)\n });\n },\n renderItem: function renderItem(item, _ref) {\n var isSelected = _ref.isSelected;\n\n return item;\n },\n renderThumbs: function renderThumbs(children) {\n return children;\n }\n};\nexports.default = Carousel;","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","(function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define(['exports', 'react', 'prop-types'], factory);\n } else if (typeof exports !== \"undefined\") {\n factory(exports, require('react'), require('prop-types'));\n } else {\n var mod = {\n exports: {}\n };\n factory(mod.exports, global.react, global.propTypes);\n global.reactSwipe = mod.exports;\n }\n})(this, function (exports, _react, _propTypes) {\n 'use strict';\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.setHasSupportToCaptureOption = setHasSupportToCaptureOption;\n\n var _react2 = _interopRequireDefault(_react);\n\n var _propTypes2 = _interopRequireDefault(_propTypes);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n\n var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n function _objectWithoutProperties(obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n }\n\n 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 function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n\n var supportsCaptureOption = false;\n function setHasSupportToCaptureOption(hasSupport) {\n supportsCaptureOption = hasSupport;\n }\n\n try {\n addEventListener('test', null, Object.defineProperty({}, 'capture', { get: function get() {\n setHasSupportToCaptureOption(true);\n } }));\n } catch (e) {} // eslint-disable-line no-empty\n\n function getSafeEventHandlerOpts() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : { capture: true };\n\n return supportsCaptureOption ? options : options.capture;\n }\n\n /**\n * [getPosition returns a position element that works for mouse or touch events]\n * @param {[Event]} event [the received event]\n * @return {[Object]} [x and y coords]\n */\n function getPosition(event) {\n if ('touches' in event) {\n var _event$touches$ = event.touches[0],\n pageX = _event$touches$.pageX,\n pageY = _event$touches$.pageY;\n\n return { x: pageX, y: pageY };\n }\n\n var screenX = event.screenX,\n screenY = event.screenY;\n\n return { x: screenX, y: screenY };\n }\n\n var ReactSwipe = function (_Component) {\n _inherits(ReactSwipe, _Component);\n\n function ReactSwipe() {\n var _ref;\n\n _classCallCheck(this, ReactSwipe);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var _this = _possibleConstructorReturn(this, (_ref = ReactSwipe.__proto__ || Object.getPrototypeOf(ReactSwipe)).call.apply(_ref, [this].concat(args)));\n\n _this._handleSwipeStart = _this._handleSwipeStart.bind(_this);\n _this._handleSwipeMove = _this._handleSwipeMove.bind(_this);\n _this._handleSwipeEnd = _this._handleSwipeEnd.bind(_this);\n\n _this._onMouseDown = _this._onMouseDown.bind(_this);\n _this._onMouseMove = _this._onMouseMove.bind(_this);\n _this._onMouseUp = _this._onMouseUp.bind(_this);\n\n _this._setSwiperRef = _this._setSwiperRef.bind(_this);\n return _this;\n }\n\n _createClass(ReactSwipe, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (this.swiper) {\n this.swiper.addEventListener('touchmove', this._handleSwipeMove, getSafeEventHandlerOpts({\n capture: true,\n passive: false\n }));\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (this.swiper) {\n this.swiper.removeEventListener('touchmove', this._handleSwipeMove, getSafeEventHandlerOpts({\n capture: true,\n passive: false\n }));\n }\n }\n }, {\n key: '_onMouseDown',\n value: function _onMouseDown(event) {\n if (!this.props.allowMouseEvents) {\n return;\n }\n\n this.mouseDown = true;\n\n document.addEventListener('mouseup', this._onMouseUp);\n document.addEventListener('mousemove', this._onMouseMove);\n\n this._handleSwipeStart(event);\n }\n }, {\n key: '_onMouseMove',\n value: function _onMouseMove(event) {\n if (!this.mouseDown) {\n return;\n }\n\n this._handleSwipeMove(event);\n }\n }, {\n key: '_onMouseUp',\n value: function _onMouseUp(event) {\n this.mouseDown = false;\n\n document.removeEventListener('mouseup', this._onMouseUp);\n document.removeEventListener('mousemove', this._onMouseMove);\n\n this._handleSwipeEnd(event);\n }\n }, {\n key: '_handleSwipeStart',\n value: function _handleSwipeStart(event) {\n var _getPosition = getPosition(event),\n x = _getPosition.x,\n y = _getPosition.y;\n\n this.moveStart = { x: x, y: y };\n this.props.onSwipeStart(event);\n }\n }, {\n key: '_handleSwipeMove',\n value: function _handleSwipeMove(event) {\n if (!this.moveStart) {\n return;\n }\n\n var _getPosition2 = getPosition(event),\n x = _getPosition2.x,\n y = _getPosition2.y;\n\n var deltaX = x - this.moveStart.x;\n var deltaY = y - this.moveStart.y;\n this.moving = true;\n\n // handling the responsability of cancelling the scroll to\n // the component handling the event\n var shouldPreventDefault = this.props.onSwipeMove({\n x: deltaX,\n y: deltaY\n }, event);\n\n if (shouldPreventDefault) {\n event.preventDefault();\n }\n\n this.movePosition = { deltaX: deltaX, deltaY: deltaY };\n }\n }, {\n key: '_handleSwipeEnd',\n value: function _handleSwipeEnd(event) {\n this.props.onSwipeEnd(event);\n\n var tolerance = this.props.tolerance;\n\n\n if (this.moving && this.movePosition) {\n if (this.movePosition.deltaX < -tolerance) {\n this.props.onSwipeLeft(1, event);\n } else if (this.movePosition.deltaX > tolerance) {\n this.props.onSwipeRight(1, event);\n }\n if (this.movePosition.deltaY < -tolerance) {\n this.props.onSwipeUp(1, event);\n } else if (this.movePosition.deltaY > tolerance) {\n this.props.onSwipeDown(1, event);\n }\n }\n\n this.moveStart = null;\n this.moving = false;\n this.movePosition = null;\n }\n }, {\n key: '_setSwiperRef',\n value: function _setSwiperRef(node) {\n this.swiper = node;\n this.props.innerRef(node);\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n tagName = _props.tagName,\n className = _props.className,\n style = _props.style,\n children = _props.children,\n allowMouseEvents = _props.allowMouseEvents,\n onSwipeUp = _props.onSwipeUp,\n onSwipeDown = _props.onSwipeDown,\n onSwipeLeft = _props.onSwipeLeft,\n onSwipeRight = _props.onSwipeRight,\n onSwipeStart = _props.onSwipeStart,\n onSwipeMove = _props.onSwipeMove,\n onSwipeEnd = _props.onSwipeEnd,\n innerRef = _props.innerRef,\n tolerance = _props.tolerance,\n props = _objectWithoutProperties(_props, ['tagName', 'className', 'style', 'children', 'allowMouseEvents', 'onSwipeUp', 'onSwipeDown', 'onSwipeLeft', 'onSwipeRight', 'onSwipeStart', 'onSwipeMove', 'onSwipeEnd', 'innerRef', 'tolerance']);\n\n return _react2.default.createElement(\n this.props.tagName,\n _extends({\n ref: this._setSwiperRef,\n onMouseDown: this._onMouseDown,\n onTouchStart: this._handleSwipeStart,\n onTouchEnd: this._handleSwipeEnd,\n className: className,\n style: style\n }, props),\n children\n );\n }\n }]);\n\n return ReactSwipe;\n }(_react.Component);\n\n ReactSwipe.displayName = 'ReactSwipe';\n ReactSwipe.propTypes = {\n tagName: _propTypes2.default.string,\n className: _propTypes2.default.string,\n style: _propTypes2.default.object,\n children: _propTypes2.default.node,\n allowMouseEvents: _propTypes2.default.bool,\n onSwipeUp: _propTypes2.default.func,\n onSwipeDown: _propTypes2.default.func,\n onSwipeLeft: _propTypes2.default.func,\n onSwipeRight: _propTypes2.default.func,\n onSwipeStart: _propTypes2.default.func,\n onSwipeMove: _propTypes2.default.func,\n onSwipeEnd: _propTypes2.default.func,\n innerRef: _propTypes2.default.func,\n tolerance: _propTypes2.default.number.isRequired\n };\n ReactSwipe.defaultProps = {\n tagName: 'div',\n allowMouseEvents: false,\n onSwipeUp: function onSwipeUp() {},\n onSwipeDown: function onSwipeDown() {},\n onSwipeLeft: function onSwipeLeft() {},\n onSwipeRight: function onSwipeRight() {},\n onSwipeStart: function onSwipeStart() {},\n onSwipeMove: function onSwipeMove() {},\n onSwipeEnd: function onSwipeEnd() {},\n innerRef: function innerRef() {},\n\n tolerance: 0\n };\n exports.default = ReactSwipe;\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar outerWidth = exports.outerWidth = function outerWidth(el) {\n var width = el.offsetWidth;\n var style = getComputedStyle(el);\n\n width += parseInt(style.marginLeft) + parseInt(style.marginRight);\n return width;\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar unit = exports.unit = function unit(props, propName, componentName) {\n if (!/(pt|px|em|rem|vw|vh|%)$/.test(props[propName])) {\n return new Error('Invalid prop `' + propName + '` supplied to' + ' `' + componentName + '`. Validation failed. It needs to be a size unit like pt, px, em, rem, vw, %');\n }\n};","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}","function toVal(mix) {\n\tvar k, y, str='';\n\tif (mix) {\n\t\tif (typeof mix === 'object') {\n\t\t\tif (Array.isArray(mix)) {\n\t\t\t\tfor (k=0; k < mix.length; k++) {\n\t\t\t\t\tif (mix[k] && (y = toVal(mix[k]))) {\n\t\t\t\t\t\tstr && (str += ' ');\n\t\t\t\t\t\tstr += y;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor (k in mix) {\n\t\t\t\t\tif (mix[k] && (y = toVal(k))) {\n\t\t\t\t\t\tstr && (str += ' ');\n\t\t\t\t\t\tstr += y;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (typeof mix !== 'boolean' && !mix.call) {\n\t\t\tstr && (str += ' ');\n\t\t\tstr += mix;\n\t\t}\n\t}\n\treturn str;\n}\n\nexport default function () {\n\tvar i=0, x, str='';\n\twhile (i < arguments.length) {\n\t\tif (x = toVal(arguments[i++])) {\n\t\t\tstr && (str += ' ');\n\t\t\tstr += x\n\t\t}\n\t}\n\treturn str;\n}\n","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexport var isBrowser = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === \"object\" && (typeof document === \"undefined\" ? \"undefined\" : _typeof(document)) === 'object' && document.nodeType === 9;\n\nexport default isBrowser;\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\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","import _extends from '@babel/runtime/helpers/esm/extends';\nimport isInBrowser from 'is-in-browser';\nimport warning from 'tiny-warning';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\n\nvar plainObjectConstrurctor = {}.constructor;\nfunction cloneStyle(style) {\n if (style == null || typeof style !== 'object') return style;\n if (Array.isArray(style)) return style.map(cloneStyle);\n if (style.constructor !== plainObjectConstrurctor) return style;\n var newStyle = {};\n\n for (var name in style) {\n newStyle[name] = cloneStyle(style[name]);\n }\n\n return newStyle;\n}\n\n/**\n * Create a rule instance.\n */\n\nfunction createRule(name, decl, options) {\n if (name === void 0) {\n name = 'unnamed';\n }\n\n var jss = options.jss;\n var declCopy = cloneStyle(decl);\n var rule = jss.plugins.onCreateRule(name, declCopy, options);\n if (rule) return rule; // It is an at-rule and it has no instance.\n\n if (name[0] === '@') {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Unknown rule \" + name) : void 0;\n }\n\n return null;\n}\n\nvar join = function join(value, by) {\n var result = '';\n\n for (var i = 0; i < value.length; i++) {\n // Remove !important from the value, it will be readded later.\n if (value[i] === '!important') break;\n if (result) result += by;\n result += value[i];\n }\n\n return result;\n};\n/**\n * Converts array values to string.\n *\n * `margin: [['5px', '10px']]` > `margin: 5px 10px;`\n * `border: ['1px', '2px']` > `border: 1px, 2px;`\n * `margin: [['5px', '10px'], '!important']` > `margin: 5px 10px !important;`\n * `color: ['red', !important]` > `color: red !important;`\n */\n\n\nfunction toCssValue(value, ignoreImportant) {\n if (ignoreImportant === void 0) {\n ignoreImportant = false;\n }\n\n if (!Array.isArray(value)) return value;\n var cssValue = ''; // Support space separated values via `[['5px', '10px']]`.\n\n if (Array.isArray(value[0])) {\n for (var i = 0; i < value.length; i++) {\n if (value[i] === '!important') break;\n if (cssValue) cssValue += ', ';\n cssValue += join(value[i], ' ');\n }\n } else cssValue = join(value, ', '); // Add !important, because it was ignored.\n\n\n if (!ignoreImportant && value[value.length - 1] === '!important') {\n cssValue += ' !important';\n }\n\n return cssValue;\n}\n\n/**\n * Indent a string.\n * http://jsperf.com/array-join-vs-for\n */\nfunction indentStr(str, indent) {\n var result = '';\n\n for (var index = 0; index < indent; index++) {\n result += ' ';\n }\n\n return result + str;\n}\n/**\n * Converts a Rule to CSS string.\n */\n\n\nfunction toCss(selector, style, options) {\n if (options === void 0) {\n options = {};\n }\n\n var result = '';\n if (!style) return result;\n var _options = options,\n _options$indent = _options.indent,\n indent = _options$indent === void 0 ? 0 : _options$indent;\n var fallbacks = style.fallbacks;\n if (selector) indent++; // Apply fallbacks first.\n\n if (fallbacks) {\n // Array syntax {fallbacks: [{prop: value}]}\n if (Array.isArray(fallbacks)) {\n for (var index = 0; index < fallbacks.length; index++) {\n var fallback = fallbacks[index];\n\n for (var prop in fallback) {\n var value = fallback[prop];\n\n if (value != null) {\n if (result) result += '\\n';\n result += \"\" + indentStr(prop + \": \" + toCssValue(value) + \";\", indent);\n }\n }\n }\n } else {\n // Object syntax {fallbacks: {prop: value}}\n for (var _prop in fallbacks) {\n var _value = fallbacks[_prop];\n\n if (_value != null) {\n if (result) result += '\\n';\n result += \"\" + indentStr(_prop + \": \" + toCssValue(_value) + \";\", indent);\n }\n }\n }\n }\n\n for (var _prop2 in style) {\n var _value2 = style[_prop2];\n\n if (_value2 != null && _prop2 !== 'fallbacks') {\n if (result) result += '\\n';\n result += \"\" + indentStr(_prop2 + \": \" + toCssValue(_value2) + \";\", indent);\n }\n } // Allow empty style in this case, because properties will be added dynamically.\n\n\n if (!result && !options.allowEmpty) return result; // When rule is being stringified before selector was defined.\n\n if (!selector) return result;\n indent--;\n if (result) result = \"\\n\" + result + \"\\n\";\n return indentStr(selector + \" {\" + result, indent) + indentStr('}', indent);\n}\n\nvar escapeRegex = /([[\\].#*$><+~=|^:(),\"'`\\s])/g;\nvar nativeEscape = typeof CSS !== 'undefined' && CSS.escape;\nvar escape = (function (str) {\n return nativeEscape ? nativeEscape(str) : str.replace(escapeRegex, '\\\\$1');\n});\n\nvar BaseStyleRule =\n/*#__PURE__*/\nfunction () {\n function BaseStyleRule(key, style, options) {\n this.type = 'style';\n this.key = void 0;\n this.isProcessed = false;\n this.style = void 0;\n this.renderer = void 0;\n this.renderable = void 0;\n this.options = void 0;\n var sheet = options.sheet,\n Renderer = options.Renderer;\n this.key = key;\n this.options = options;\n this.style = style;\n if (sheet) this.renderer = sheet.renderer;else if (Renderer) this.renderer = new Renderer();\n }\n /**\n * Get or set a style property.\n */\n\n\n var _proto = BaseStyleRule.prototype;\n\n _proto.prop = function prop(name, value, options) {\n // It's a getter.\n if (value === undefined) return this.style[name]; // Don't do anything if the value has not changed.\n\n var force = options ? options.force : false;\n if (!force && this.style[name] === value) return this;\n var newValue = value;\n\n if (!options || options.process !== false) {\n newValue = this.options.jss.plugins.onChangeValue(value, name, this);\n }\n\n var isEmpty = newValue == null || newValue === false;\n var isDefined = name in this.style; // Value is empty and wasn't defined before.\n\n if (isEmpty && !isDefined && !force) return this; // We are going to remove this value.\n\n var remove = isEmpty && isDefined;\n if (remove) delete this.style[name];else this.style[name] = newValue; // Renderable is defined if StyleSheet option `link` is true.\n\n if (this.renderable && this.renderer) {\n if (remove) this.renderer.removeProperty(this.renderable, name);else this.renderer.setProperty(this.renderable, name, newValue);\n return this;\n }\n\n var sheet = this.options.sheet;\n\n if (sheet && sheet.attached) {\n process.env.NODE_ENV !== \"production\" ? warning(false, '[JSS] Rule is not linked. Missing sheet option \"link: true\".') : void 0;\n }\n\n return this;\n };\n\n return BaseStyleRule;\n}();\nvar StyleRule =\n/*#__PURE__*/\nfunction (_BaseStyleRule) {\n _inheritsLoose(StyleRule, _BaseStyleRule);\n\n function StyleRule(key, style, options) {\n var _this;\n\n _this = _BaseStyleRule.call(this, key, style, options) || this;\n _this.selectorText = void 0;\n _this.id = void 0;\n _this.renderable = void 0;\n var selector = options.selector,\n scoped = options.scoped,\n sheet = options.sheet,\n generateId = options.generateId;\n\n if (selector) {\n _this.selectorText = selector;\n } else if (scoped !== false) {\n _this.id = generateId(_assertThisInitialized(_assertThisInitialized(_this)), sheet);\n _this.selectorText = \".\" + escape(_this.id);\n }\n\n return _this;\n }\n /**\n * Set selector string.\n * Attention: use this with caution. Most browsers didn't implement\n * selectorText setter, so this may result in rerendering of entire Style Sheet.\n */\n\n\n var _proto2 = StyleRule.prototype;\n\n /**\n * Apply rule to an element inline.\n */\n _proto2.applyTo = function applyTo(renderable) {\n var renderer = this.renderer;\n\n if (renderer) {\n var json = this.toJSON();\n\n for (var prop in json) {\n renderer.setProperty(renderable, prop, json[prop]);\n }\n }\n\n return this;\n }\n /**\n * Returns JSON representation of the rule.\n * Fallbacks are not supported.\n * Useful for inline styles.\n */\n ;\n\n _proto2.toJSON = function toJSON() {\n var json = {};\n\n for (var prop in this.style) {\n var value = this.style[prop];\n if (typeof value !== 'object') json[prop] = value;else if (Array.isArray(value)) json[prop] = toCssValue(value);\n }\n\n return json;\n }\n /**\n * Generates a CSS string.\n */\n ;\n\n _proto2.toString = function toString(options) {\n var sheet = this.options.sheet;\n var link = sheet ? sheet.options.link : false;\n var opts = link ? _extends({}, options, {\n allowEmpty: true\n }) : options;\n return toCss(this.selectorText, this.style, opts);\n };\n\n _createClass(StyleRule, [{\n key: \"selector\",\n set: function set(selector) {\n if (selector === this.selectorText) return;\n this.selectorText = selector;\n var renderer = this.renderer,\n renderable = this.renderable;\n if (!renderable || !renderer) return;\n var hasChanged = renderer.setSelector(renderable, selector); // If selector setter is not implemented, rerender the rule.\n\n if (!hasChanged) {\n renderer.replaceRule(renderable, this);\n }\n }\n /**\n * Get selector string.\n */\n ,\n get: function get() {\n return this.selectorText;\n }\n }]);\n\n return StyleRule;\n}(BaseStyleRule);\nvar pluginStyleRule = {\n onCreateRule: function onCreateRule(name, style, options) {\n if (name[0] === '@' || options.parent && options.parent.type === 'keyframes') {\n return null;\n }\n\n return new StyleRule(name, style, options);\n }\n};\n\nvar defaultToStringOptions = {\n indent: 1,\n children: true\n};\nvar atRegExp = /@([\\w-]+)/;\n/**\n * Conditional rule for @media, @supports\n */\n\nvar ConditionalRule =\n/*#__PURE__*/\nfunction () {\n function ConditionalRule(key, styles, options) {\n this.type = 'conditional';\n this.at = void 0;\n this.key = void 0;\n this.query = void 0;\n this.rules = void 0;\n this.options = void 0;\n this.isProcessed = false;\n this.renderable = void 0;\n this.key = key; // Key might contain a unique suffix in case the `name` passed by user was duplicate.\n\n this.query = options.name;\n var atMatch = key.match(atRegExp);\n this.at = atMatch ? atMatch[1] : 'unknown';\n this.options = options;\n this.rules = new RuleList(_extends({}, options, {\n parent: this\n }));\n\n for (var name in styles) {\n this.rules.add(name, styles[name]);\n }\n\n this.rules.process();\n }\n /**\n * Get a rule.\n */\n\n\n var _proto = ConditionalRule.prototype;\n\n _proto.getRule = function getRule(name) {\n return this.rules.get(name);\n }\n /**\n * Get index of a rule.\n */\n ;\n\n _proto.indexOf = function indexOf(rule) {\n return this.rules.indexOf(rule);\n }\n /**\n * Create and register rule, run plugins.\n */\n ;\n\n _proto.addRule = function addRule(name, style, options) {\n var rule = this.rules.add(name, style, options);\n if (!rule) return null;\n this.options.jss.plugins.onProcessRule(rule);\n return rule;\n }\n /**\n * Generates a CSS string.\n */\n ;\n\n _proto.toString = function toString(options) {\n if (options === void 0) {\n options = defaultToStringOptions;\n }\n\n if (options.indent == null) options.indent = defaultToStringOptions.indent;\n if (options.children == null) options.children = defaultToStringOptions.children;\n\n if (options.children === false) {\n return this.query + \" {}\";\n }\n\n var children = this.rules.toString(options);\n return children ? this.query + \" {\\n\" + children + \"\\n}\" : '';\n };\n\n return ConditionalRule;\n}();\nvar keyRegExp = /@media|@supports\\s+/;\nvar pluginConditionalRule = {\n onCreateRule: function onCreateRule(key, styles, options) {\n return keyRegExp.test(key) ? new ConditionalRule(key, styles, options) : null;\n }\n};\n\nvar defaultToStringOptions$1 = {\n indent: 1,\n children: true\n};\nvar nameRegExp = /@keyframes\\s+([\\w-]+)/;\n/**\n * Rule for @keyframes\n */\n\nvar KeyframesRule =\n/*#__PURE__*/\nfunction () {\n function KeyframesRule(key, frames, options) {\n this.type = 'keyframes';\n this.at = '@keyframes';\n this.key = void 0;\n this.name = void 0;\n this.id = void 0;\n this.rules = void 0;\n this.options = void 0;\n this.isProcessed = false;\n this.renderable = void 0;\n var nameMatch = key.match(nameRegExp);\n\n if (nameMatch && nameMatch[1]) {\n this.name = nameMatch[1];\n } else {\n this.name = 'noname';\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Bad keyframes name \" + key) : void 0;\n }\n\n this.key = this.type + \"-\" + this.name;\n this.options = options;\n var scoped = options.scoped,\n sheet = options.sheet,\n generateId = options.generateId;\n this.id = scoped === false ? this.name : escape(generateId(this, sheet));\n this.rules = new RuleList(_extends({}, options, {\n parent: this\n }));\n\n for (var name in frames) {\n this.rules.add(name, frames[name], _extends({}, options, {\n parent: this\n }));\n }\n\n this.rules.process();\n }\n /**\n * Generates a CSS string.\n */\n\n\n var _proto = KeyframesRule.prototype;\n\n _proto.toString = function toString(options) {\n if (options === void 0) {\n options = defaultToStringOptions$1;\n }\n\n if (options.indent == null) options.indent = defaultToStringOptions$1.indent;\n if (options.children == null) options.children = defaultToStringOptions$1.children;\n\n if (options.children === false) {\n return this.at + \" \" + this.id + \" {}\";\n }\n\n var children = this.rules.toString(options);\n if (children) children = \"\\n\" + children + \"\\n\";\n return this.at + \" \" + this.id + \" {\" + children + \"}\";\n };\n\n return KeyframesRule;\n}();\nvar keyRegExp$1 = /@keyframes\\s+/;\nvar refRegExp = /\\$([\\w-]+)/g;\n\nvar findReferencedKeyframe = function findReferencedKeyframe(val, keyframes) {\n if (typeof val === 'string') {\n return val.replace(refRegExp, function (match, name) {\n if (name in keyframes) {\n return keyframes[name];\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Referenced keyframes rule \\\"\" + name + \"\\\" is not defined.\") : void 0;\n return match;\n });\n }\n\n return val;\n};\n/**\n * Replace the reference for a animation name.\n */\n\n\nvar replaceRef = function replaceRef(style, prop, keyframes) {\n var value = style[prop];\n var refKeyframe = findReferencedKeyframe(value, keyframes);\n\n if (refKeyframe !== value) {\n style[prop] = refKeyframe;\n }\n};\n\nvar plugin = {\n onCreateRule: function onCreateRule(key, frames, options) {\n return typeof key === 'string' && keyRegExp$1.test(key) ? new KeyframesRule(key, frames, options) : null;\n },\n // Animation name ref replacer.\n onProcessStyle: function onProcessStyle(style, rule, sheet) {\n if (rule.type !== 'style' || !sheet) return style;\n if ('animation-name' in style) replaceRef(style, 'animation-name', sheet.keyframes);\n if ('animation' in style) replaceRef(style, 'animation', sheet.keyframes);\n return style;\n },\n onChangeValue: function onChangeValue(val, prop, rule) {\n var sheet = rule.options.sheet;\n\n if (!sheet) {\n return val;\n }\n\n switch (prop) {\n case 'animation':\n return findReferencedKeyframe(val, sheet.keyframes);\n\n case 'animation-name':\n return findReferencedKeyframe(val, sheet.keyframes);\n\n default:\n return val;\n }\n }\n};\n\nvar KeyframeRule =\n/*#__PURE__*/\nfunction (_BaseStyleRule) {\n _inheritsLoose(KeyframeRule, _BaseStyleRule);\n\n function KeyframeRule() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _BaseStyleRule.call.apply(_BaseStyleRule, [this].concat(args)) || this;\n _this.renderable = void 0;\n return _this;\n }\n\n var _proto = KeyframeRule.prototype;\n\n /**\n * Generates a CSS string.\n */\n _proto.toString = function toString(options) {\n var sheet = this.options.sheet;\n var link = sheet ? sheet.options.link : false;\n var opts = link ? _extends({}, options, {\n allowEmpty: true\n }) : options;\n return toCss(this.key, this.style, opts);\n };\n\n return KeyframeRule;\n}(BaseStyleRule);\nvar pluginKeyframeRule = {\n onCreateRule: function onCreateRule(key, style, options) {\n if (options.parent && options.parent.type === 'keyframes') {\n return new KeyframeRule(key, style, options);\n }\n\n return null;\n }\n};\n\nvar FontFaceRule =\n/*#__PURE__*/\nfunction () {\n function FontFaceRule(key, style, options) {\n this.type = 'font-face';\n this.at = '@font-face';\n this.key = void 0;\n this.style = void 0;\n this.options = void 0;\n this.isProcessed = false;\n this.renderable = void 0;\n this.key = key;\n this.style = style;\n this.options = options;\n }\n /**\n * Generates a CSS string.\n */\n\n\n var _proto = FontFaceRule.prototype;\n\n _proto.toString = function toString(options) {\n if (Array.isArray(this.style)) {\n var str = '';\n\n for (var index = 0; index < this.style.length; index++) {\n str += toCss(this.at, this.style[index]);\n if (this.style[index + 1]) str += '\\n';\n }\n\n return str;\n }\n\n return toCss(this.at, this.style, options);\n };\n\n return FontFaceRule;\n}();\nvar keyRegExp$2 = /@font-face/;\nvar pluginFontFaceRule = {\n onCreateRule: function onCreateRule(key, style, options) {\n return keyRegExp$2.test(key) ? new FontFaceRule(key, style, options) : null;\n }\n};\n\nvar ViewportRule =\n/*#__PURE__*/\nfunction () {\n function ViewportRule(key, style, options) {\n this.type = 'viewport';\n this.at = '@viewport';\n this.key = void 0;\n this.style = void 0;\n this.options = void 0;\n this.isProcessed = false;\n this.renderable = void 0;\n this.key = key;\n this.style = style;\n this.options = options;\n }\n /**\n * Generates a CSS string.\n */\n\n\n var _proto = ViewportRule.prototype;\n\n _proto.toString = function toString(options) {\n return toCss(this.key, this.style, options);\n };\n\n return ViewportRule;\n}();\nvar pluginViewportRule = {\n onCreateRule: function onCreateRule(key, style, options) {\n return key === '@viewport' || key === '@-ms-viewport' ? new ViewportRule(key, style, options) : null;\n }\n};\n\nvar SimpleRule =\n/*#__PURE__*/\nfunction () {\n function SimpleRule(key, value, options) {\n this.type = 'simple';\n this.key = void 0;\n this.value = void 0;\n this.options = void 0;\n this.isProcessed = false;\n this.renderable = void 0;\n this.key = key;\n this.value = value;\n this.options = options;\n }\n /**\n * Generates a CSS string.\n */\n // eslint-disable-next-line no-unused-vars\n\n\n var _proto = SimpleRule.prototype;\n\n _proto.toString = function toString(options) {\n if (Array.isArray(this.value)) {\n var str = '';\n\n for (var index = 0; index < this.value.length; index++) {\n str += this.key + \" \" + this.value[index] + \";\";\n if (this.value[index + 1]) str += '\\n';\n }\n\n return str;\n }\n\n return this.key + \" \" + this.value + \";\";\n };\n\n return SimpleRule;\n}();\nvar keysMap = {\n '@charset': true,\n '@import': true,\n '@namespace': true\n};\nvar pluginSimpleRule = {\n onCreateRule: function onCreateRule(key, value, options) {\n return key in keysMap ? new SimpleRule(key, value, options) : null;\n }\n};\n\nvar plugins = [pluginStyleRule, pluginConditionalRule, plugin, pluginKeyframeRule, pluginFontFaceRule, pluginViewportRule, pluginSimpleRule];\n\nvar defaultUpdateOptions = {\n process: true\n};\nvar forceUpdateOptions = {\n force: true,\n process: true\n /**\n * Contains rules objects and allows adding/removing etc.\n * Is used for e.g. by `StyleSheet` or `ConditionalRule`.\n */\n\n};\n\nvar RuleList =\n/*#__PURE__*/\nfunction () {\n // Rules registry for access by .get() method.\n // It contains the same rule registered by name and by selector.\n // Original styles object.\n // Used to ensure correct rules order.\n function RuleList(options) {\n this.map = {};\n this.raw = {};\n this.index = [];\n this.counter = 0;\n this.options = void 0;\n this.classes = void 0;\n this.keyframes = void 0;\n this.options = options;\n this.classes = options.classes;\n this.keyframes = options.keyframes;\n }\n /**\n * Create and register rule.\n *\n * Will not render after Style Sheet was rendered the first time.\n */\n\n\n var _proto = RuleList.prototype;\n\n _proto.add = function add(name, decl, ruleOptions) {\n var _this$options = this.options,\n parent = _this$options.parent,\n sheet = _this$options.sheet,\n jss = _this$options.jss,\n Renderer = _this$options.Renderer,\n generateId = _this$options.generateId,\n scoped = _this$options.scoped;\n\n var options = _extends({\n classes: this.classes,\n parent: parent,\n sheet: sheet,\n jss: jss,\n Renderer: Renderer,\n generateId: generateId,\n scoped: scoped,\n name: name\n }, ruleOptions); // When user uses .createStyleSheet(), duplicate names are not possible, but\n // `sheet.addRule()` opens the door for any duplicate rule name. When this happens\n // we need to make the key unique within this RuleList instance scope.\n\n\n var key = name;\n\n if (name in this.raw) {\n key = name + \"-d\" + this.counter++;\n } // We need to save the original decl before creating the rule\n // because cache plugin needs to use it as a key to return a cached rule.\n\n\n this.raw[key] = decl;\n\n if (key in this.classes) {\n // E.g. rules inside of @media container\n options.selector = \".\" + escape(this.classes[key]);\n }\n\n var rule = createRule(key, decl, options);\n if (!rule) return null;\n this.register(rule);\n var index = options.index === undefined ? this.index.length : options.index;\n this.index.splice(index, 0, rule);\n return rule;\n }\n /**\n * Get a rule.\n */\n ;\n\n _proto.get = function get(name) {\n return this.map[name];\n }\n /**\n * Delete a rule.\n */\n ;\n\n _proto.remove = function remove(rule) {\n this.unregister(rule);\n delete this.raw[rule.key];\n this.index.splice(this.index.indexOf(rule), 1);\n }\n /**\n * Get index of a rule.\n */\n ;\n\n _proto.indexOf = function indexOf(rule) {\n return this.index.indexOf(rule);\n }\n /**\n * Run `onProcessRule()` plugins on every rule.\n */\n ;\n\n _proto.process = function process() {\n var plugins$$1 = this.options.jss.plugins; // We need to clone array because if we modify the index somewhere else during a loop\n // we end up with very hard-to-track-down side effects.\n\n this.index.slice(0).forEach(plugins$$1.onProcessRule, plugins$$1);\n }\n /**\n * Register a rule in `.map`, `.classes` and `.keyframes` maps.\n */\n ;\n\n _proto.register = function register(rule) {\n this.map[rule.key] = rule;\n\n if (rule instanceof StyleRule) {\n this.map[rule.selector] = rule;\n if (rule.id) this.classes[rule.key] = rule.id;\n } else if (rule instanceof KeyframesRule && this.keyframes) {\n this.keyframes[rule.name] = rule.id;\n }\n }\n /**\n * Unregister a rule.\n */\n ;\n\n _proto.unregister = function unregister(rule) {\n delete this.map[rule.key];\n\n if (rule instanceof StyleRule) {\n delete this.map[rule.selector];\n delete this.classes[rule.key];\n } else if (rule instanceof KeyframesRule) {\n delete this.keyframes[rule.name];\n }\n }\n /**\n * Update the function values with a new data.\n */\n ;\n\n _proto.update = function update() {\n var name;\n var data;\n var options;\n\n if (typeof (arguments.length <= 0 ? undefined : arguments[0]) === 'string') {\n name = arguments.length <= 0 ? undefined : arguments[0]; // $FlowFixMe\n\n data = arguments.length <= 1 ? undefined : arguments[1]; // $FlowFixMe\n\n options = arguments.length <= 2 ? undefined : arguments[2];\n } else {\n data = arguments.length <= 0 ? undefined : arguments[0]; // $FlowFixMe\n\n options = arguments.length <= 1 ? undefined : arguments[1];\n name = null;\n }\n\n if (name) {\n this.updateOne(this.map[name], data, options);\n } else {\n for (var index = 0; index < this.index.length; index++) {\n this.updateOne(this.index[index], data, options);\n }\n }\n }\n /**\n * Execute plugins, update rule props.\n */\n ;\n\n _proto.updateOne = function updateOne(rule, data, options) {\n if (options === void 0) {\n options = defaultUpdateOptions;\n }\n\n var _this$options2 = this.options,\n plugins$$1 = _this$options2.jss.plugins,\n sheet = _this$options2.sheet; // It is a rules container like for e.g. ConditionalRule.\n\n if (rule.rules instanceof RuleList) {\n rule.rules.update(data, options);\n return;\n }\n\n var styleRule = rule;\n var style = styleRule.style;\n plugins$$1.onUpdate(data, rule, sheet, options); // We rely on a new `style` ref in case it was mutated during onUpdate hook.\n\n if (options.process && style && style !== styleRule.style) {\n // We need to run the plugins in case new `style` relies on syntax plugins.\n plugins$$1.onProcessStyle(styleRule.style, styleRule, sheet); // Update and add props.\n\n for (var prop in styleRule.style) {\n var nextValue = styleRule.style[prop];\n var prevValue = style[prop]; // We need to use `force: true` because `rule.style` has been updated during onUpdate hook, so `rule.prop()` will not update the CSSOM rule.\n // We do this comparison to avoid unneeded `rule.prop()` calls, since we have the old `style` object here.\n\n if (nextValue !== prevValue) {\n styleRule.prop(prop, nextValue, forceUpdateOptions);\n }\n } // Remove props.\n\n\n for (var _prop in style) {\n var _nextValue = styleRule.style[_prop];\n var _prevValue = style[_prop]; // We need to use `force: true` because `rule.style` has been updated during onUpdate hook, so `rule.prop()` will not update the CSSOM rule.\n // We do this comparison to avoid unneeded `rule.prop()` calls, since we have the old `style` object here.\n\n if (_nextValue == null && _nextValue !== _prevValue) {\n styleRule.prop(_prop, null, forceUpdateOptions);\n }\n }\n }\n }\n /**\n * Convert rules to a CSS string.\n */\n ;\n\n _proto.toString = function toString(options) {\n var str = '';\n var sheet = this.options.sheet;\n var link = sheet ? sheet.options.link : false;\n\n for (var index = 0; index < this.index.length; index++) {\n var rule = this.index[index];\n var css = rule.toString(options); // No need to render an empty rule.\n\n if (!css && !link) continue;\n if (str) str += '\\n';\n str += css;\n }\n\n return str;\n };\n\n return RuleList;\n}();\n\nvar StyleSheet =\n/*#__PURE__*/\nfunction () {\n function StyleSheet(styles, options) {\n this.options = void 0;\n this.deployed = void 0;\n this.attached = void 0;\n this.rules = void 0;\n this.renderer = void 0;\n this.classes = void 0;\n this.keyframes = void 0;\n this.queue = void 0;\n this.attached = false;\n this.deployed = false;\n this.classes = {};\n this.keyframes = {};\n this.options = _extends({}, options, {\n sheet: this,\n parent: this,\n classes: this.classes,\n keyframes: this.keyframes\n });\n\n if (options.Renderer) {\n this.renderer = new options.Renderer(this);\n }\n\n this.rules = new RuleList(this.options);\n\n for (var name in styles) {\n this.rules.add(name, styles[name]);\n }\n\n this.rules.process();\n }\n /**\n * Attach renderable to the render tree.\n */\n\n\n var _proto = StyleSheet.prototype;\n\n _proto.attach = function attach() {\n if (this.attached) return this;\n if (this.renderer) this.renderer.attach();\n this.attached = true; // Order is important, because we can't use insertRule API if style element is not attached.\n\n if (!this.deployed) this.deploy();\n return this;\n }\n /**\n * Remove renderable from render tree.\n */\n ;\n\n _proto.detach = function detach() {\n if (!this.attached) return this;\n if (this.renderer) this.renderer.detach();\n this.attached = false;\n return this;\n }\n /**\n * Add a rule to the current stylesheet.\n * Will insert a rule also after the stylesheet has been rendered first time.\n */\n ;\n\n _proto.addRule = function addRule(name, decl, options) {\n var queue = this.queue; // Plugins can create rules.\n // In order to preserve the right order, we need to queue all `.addRule` calls,\n // which happen after the first `rules.add()` call.\n\n if (this.attached && !queue) this.queue = [];\n var rule = this.rules.add(name, decl, options);\n if (!rule) return null;\n this.options.jss.plugins.onProcessRule(rule);\n\n if (this.attached) {\n if (!this.deployed) return rule; // Don't insert rule directly if there is no stringified version yet.\n // It will be inserted all together when .attach is called.\n\n if (queue) queue.push(rule);else {\n this.insertRule(rule);\n\n if (this.queue) {\n this.queue.forEach(this.insertRule, this);\n this.queue = undefined;\n }\n }\n return rule;\n } // We can't add rules to a detached style node.\n // We will redeploy the sheet once user will attach it.\n\n\n this.deployed = false;\n return rule;\n }\n /**\n * Insert rule into the StyleSheet\n */\n ;\n\n _proto.insertRule = function insertRule(rule) {\n if (this.renderer) {\n this.renderer.insertRule(rule);\n }\n }\n /**\n * Create and add rules.\n * Will render also after Style Sheet was rendered the first time.\n */\n ;\n\n _proto.addRules = function addRules(styles, options) {\n var added = [];\n\n for (var name in styles) {\n var rule = this.addRule(name, styles[name], options);\n if (rule) added.push(rule);\n }\n\n return added;\n }\n /**\n * Get a rule by name.\n */\n ;\n\n _proto.getRule = function getRule(name) {\n return this.rules.get(name);\n }\n /**\n * Delete a rule by name.\n * Returns `true`: if rule has been deleted from the DOM.\n */\n ;\n\n _proto.deleteRule = function deleteRule(name) {\n var rule = typeof name === 'object' ? name : this.rules.get(name);\n if (!rule) return false;\n this.rules.remove(rule);\n\n if (this.attached && rule.renderable && this.renderer) {\n return this.renderer.deleteRule(rule.renderable);\n }\n\n return true;\n }\n /**\n * Get index of a rule.\n */\n ;\n\n _proto.indexOf = function indexOf(rule) {\n return this.rules.indexOf(rule);\n }\n /**\n * Deploy pure CSS string to a renderable.\n */\n ;\n\n _proto.deploy = function deploy() {\n if (this.renderer) this.renderer.deploy();\n this.deployed = true;\n return this;\n }\n /**\n * Update the function values with a new data.\n */\n ;\n\n _proto.update = function update() {\n var _this$rules;\n\n (_this$rules = this.rules).update.apply(_this$rules, arguments);\n\n return this;\n }\n /**\n * Updates a single rule.\n */\n ;\n\n _proto.updateOne = function updateOne(rule, data, options) {\n this.rules.updateOne(rule, data, options);\n return this;\n }\n /**\n * Convert rules to a CSS string.\n */\n ;\n\n _proto.toString = function toString(options) {\n return this.rules.toString(options);\n };\n\n return StyleSheet;\n}();\n\nvar PluginsRegistry =\n/*#__PURE__*/\nfunction () {\n function PluginsRegistry() {\n this.plugins = {\n internal: [],\n external: []\n };\n this.registry = void 0;\n }\n\n var _proto = PluginsRegistry.prototype;\n\n /**\n * Call `onCreateRule` hooks and return an object if returned by a hook.\n */\n _proto.onCreateRule = function onCreateRule(name, decl, options) {\n for (var i = 0; i < this.registry.onCreateRule.length; i++) {\n var rule = this.registry.onCreateRule[i](name, decl, options);\n if (rule) return rule;\n }\n\n return null;\n }\n /**\n * Call `onProcessRule` hooks.\n */\n ;\n\n _proto.onProcessRule = function onProcessRule(rule) {\n if (rule.isProcessed) return;\n var sheet = rule.options.sheet;\n\n for (var i = 0; i < this.registry.onProcessRule.length; i++) {\n this.registry.onProcessRule[i](rule, sheet);\n }\n\n if (rule.style) this.onProcessStyle(rule.style, rule, sheet);\n rule.isProcessed = true;\n }\n /**\n * Call `onProcessStyle` hooks.\n */\n ;\n\n _proto.onProcessStyle = function onProcessStyle(style, rule, sheet) {\n for (var i = 0; i < this.registry.onProcessStyle.length; i++) {\n // $FlowFixMe\n rule.style = this.registry.onProcessStyle[i](rule.style, rule, sheet);\n }\n }\n /**\n * Call `onProcessSheet` hooks.\n */\n ;\n\n _proto.onProcessSheet = function onProcessSheet(sheet) {\n for (var i = 0; i < this.registry.onProcessSheet.length; i++) {\n this.registry.onProcessSheet[i](sheet);\n }\n }\n /**\n * Call `onUpdate` hooks.\n */\n ;\n\n _proto.onUpdate = function onUpdate(data, rule, sheet, options) {\n for (var i = 0; i < this.registry.onUpdate.length; i++) {\n this.registry.onUpdate[i](data, rule, sheet, options);\n }\n }\n /**\n * Call `onChangeValue` hooks.\n */\n ;\n\n _proto.onChangeValue = function onChangeValue(value, prop, rule) {\n var processedValue = value;\n\n for (var i = 0; i < this.registry.onChangeValue.length; i++) {\n processedValue = this.registry.onChangeValue[i](processedValue, prop, rule);\n }\n\n return processedValue;\n }\n /**\n * Register a plugin.\n */\n ;\n\n _proto.use = function use(newPlugin, options) {\n if (options === void 0) {\n options = {\n queue: 'external'\n };\n }\n\n var plugins = this.plugins[options.queue]; // Avoids applying same plugin twice, at least based on ref.\n\n if (plugins.indexOf(newPlugin) !== -1) {\n return;\n }\n\n plugins.push(newPlugin);\n this.registry = [].concat(this.plugins.external, this.plugins.internal).reduce(function (registry, plugin) {\n for (var name in plugin) {\n if (name in registry) {\n registry[name].push(plugin[name]);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Unknown hook \\\"\" + name + \"\\\".\") : void 0;\n }\n }\n\n return registry;\n }, {\n onCreateRule: [],\n onProcessRule: [],\n onProcessStyle: [],\n onProcessSheet: [],\n onChangeValue: [],\n onUpdate: []\n });\n };\n\n return PluginsRegistry;\n}();\n\n/**\n * Sheets registry to access them all at one place.\n */\nvar SheetsRegistry =\n/*#__PURE__*/\nfunction () {\n function SheetsRegistry() {\n this.registry = [];\n }\n\n var _proto = SheetsRegistry.prototype;\n\n /**\n * Register a Style Sheet.\n */\n _proto.add = function add(sheet) {\n var registry = this.registry;\n var index = sheet.options.index;\n if (registry.indexOf(sheet) !== -1) return;\n\n if (registry.length === 0 || index >= this.index) {\n registry.push(sheet);\n return;\n } // Find a position.\n\n\n for (var i = 0; i < registry.length; i++) {\n if (registry[i].options.index > index) {\n registry.splice(i, 0, sheet);\n return;\n }\n }\n }\n /**\n * Reset the registry.\n */\n ;\n\n _proto.reset = function reset() {\n this.registry = [];\n }\n /**\n * Remove a Style Sheet.\n */\n ;\n\n _proto.remove = function remove(sheet) {\n var index = this.registry.indexOf(sheet);\n this.registry.splice(index, 1);\n }\n /**\n * Convert all attached sheets to a CSS string.\n */\n ;\n\n _proto.toString = function toString(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n attached = _ref.attached,\n options = _objectWithoutPropertiesLoose(_ref, [\"attached\"]);\n\n var css = '';\n\n for (var i = 0; i < this.registry.length; i++) {\n var sheet = this.registry[i];\n\n if (attached != null && sheet.attached !== attached) {\n continue;\n }\n\n if (css) css += '\\n';\n css += sheet.toString(options);\n }\n\n return css;\n };\n\n _createClass(SheetsRegistry, [{\n key: \"index\",\n\n /**\n * Current highest index number.\n */\n get: function get() {\n return this.registry.length === 0 ? 0 : this.registry[this.registry.length - 1].options.index;\n }\n }]);\n\n return SheetsRegistry;\n}();\n\n/**\n * This is a global sheets registry. Only DomRenderer will add sheets to it.\n * On the server one should use an own SheetsRegistry instance and add the\n * sheets to it, because you need to make sure to create a new registry for\n * each request in order to not leak sheets across requests.\n */\n\nvar sheets = new SheetsRegistry();\n\n/* eslint-disable */\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar globalThis = typeof window != 'undefined' && window.Math == Math ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();\n\nvar ns = '2f1acc6c3a606b082e5eef5e54414ffb';\nif (globalThis[ns] == null) globalThis[ns] = 0; // Bundle may contain multiple JSS versions at the same time. In order to identify\n// the current version with just one short number and use it for classes generation\n// we use a counter. Also it is more accurate, because user can manually reevaluate\n// the module.\n\nvar moduleId = globalThis[ns]++;\n\nvar maxRules = 1e10;\n\n/**\n * Returns a function which generates unique class names based on counters.\n * When new generator function is created, rule counter is reseted.\n * We need to reset the rule counter for SSR for each request.\n */\nvar createGenerateId = function createGenerateId(options) {\n if (options === void 0) {\n options = {};\n }\n\n var ruleCounter = 0;\n return function (rule, sheet) {\n ruleCounter += 1;\n\n if (ruleCounter > maxRules) {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] You might have a memory leak. Rule counter is at \" + ruleCounter + \".\") : void 0;\n }\n\n var jssId = '';\n var prefix = '';\n\n if (sheet) {\n if (sheet.options.classNamePrefix) {\n prefix = sheet.options.classNamePrefix;\n }\n\n if (sheet.options.jss.id != null) {\n jssId = String(sheet.options.jss.id);\n }\n }\n\n if (options.minify) {\n // Using \"c\" because a number can't be the first char in a class name.\n return \"\" + (prefix || 'c') + moduleId + jssId + ruleCounter;\n }\n\n return prefix + rule.key + \"-\" + moduleId + (jssId ? \"-\" + jssId : '') + \"-\" + ruleCounter;\n };\n};\n\n/**\n * Cache the value from the first time a function is called.\n */\nvar memoize = function memoize(fn) {\n var value;\n return function () {\n if (!value) value = fn();\n return value;\n };\n};\n/**\n * Get a style property value.\n */\n\n\nfunction getPropertyValue(cssRule, prop) {\n try {\n // Support CSSTOM.\n if (cssRule.attributeStyleMap) {\n return cssRule.attributeStyleMap.get(prop);\n }\n\n return cssRule.style.getPropertyValue(prop);\n } catch (err) {\n // IE may throw if property is unknown.\n return '';\n }\n}\n/**\n * Set a style property.\n */\n\n\nfunction setProperty(cssRule, prop, value) {\n try {\n var cssValue = value;\n\n if (Array.isArray(value)) {\n cssValue = toCssValue(value, true);\n\n if (value[value.length - 1] === '!important') {\n cssRule.style.setProperty(prop, cssValue, 'important');\n return true;\n }\n } // Support CSSTOM.\n\n\n if (cssRule.attributeStyleMap) {\n cssRule.attributeStyleMap.set(prop, cssValue);\n } else {\n cssRule.style.setProperty(prop, cssValue);\n }\n } catch (err) {\n // IE may throw if property is unknown.\n return false;\n }\n\n return true;\n}\n/**\n * Remove a style property.\n */\n\n\nfunction removeProperty(cssRule, prop) {\n try {\n // Support CSSTOM.\n if (cssRule.attributeStyleMap) {\n cssRule.attributeStyleMap.delete(prop);\n } else {\n cssRule.style.removeProperty(prop);\n }\n } catch (err) {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] DOMException \\\"\" + err.message + \"\\\" was thrown. Tried to remove property \\\"\" + prop + \"\\\".\") : void 0;\n }\n}\n/**\n * Set the selector.\n */\n\n\nfunction setSelector(cssRule, selectorText) {\n cssRule.selectorText = selectorText; // Return false if setter was not successful.\n // Currently works in chrome only.\n\n return cssRule.selectorText === selectorText;\n}\n/**\n * Gets the `head` element upon the first call and caches it.\n * We assume it can't be null.\n */\n\n\nvar getHead = memoize(function () {\n return document.querySelector('head');\n});\n/**\n * Find attached sheet with an index higher than the passed one.\n */\n\nfunction findHigherSheet(registry, options) {\n for (var i = 0; i < registry.length; i++) {\n var sheet = registry[i];\n\n if (sheet.attached && sheet.options.index > options.index && sheet.options.insertionPoint === options.insertionPoint) {\n return sheet;\n }\n }\n\n return null;\n}\n/**\n * Find attached sheet with the highest index.\n */\n\n\nfunction findHighestSheet(registry, options) {\n for (var i = registry.length - 1; i >= 0; i--) {\n var sheet = registry[i];\n\n if (sheet.attached && sheet.options.insertionPoint === options.insertionPoint) {\n return sheet;\n }\n }\n\n return null;\n}\n/**\n * Find a comment with \"jss\" inside.\n */\n\n\nfunction findCommentNode(text) {\n var head = getHead();\n\n for (var i = 0; i < head.childNodes.length; i++) {\n var node = head.childNodes[i];\n\n if (node.nodeType === 8 && node.nodeValue.trim() === text) {\n return node;\n }\n }\n\n return null;\n}\n\n/**\n * Find a node before which we can insert the sheet.\n */\nfunction findPrevNode(options) {\n var registry = sheets.registry;\n\n if (registry.length > 0) {\n // Try to insert before the next higher sheet.\n var sheet = findHigherSheet(registry, options);\n\n if (sheet && sheet.renderer) {\n return {\n parent: sheet.renderer.element.parentNode,\n node: sheet.renderer.element\n };\n } // Otherwise insert after the last attached.\n\n\n sheet = findHighestSheet(registry, options);\n\n if (sheet && sheet.renderer) {\n return {\n parent: sheet.renderer.element.parentNode,\n node: sheet.renderer.element.nextSibling\n };\n }\n } // Try to find a comment placeholder if registry is empty.\n\n\n var insertionPoint = options.insertionPoint;\n\n if (insertionPoint && typeof insertionPoint === 'string') {\n var comment = findCommentNode(insertionPoint);\n\n if (comment) {\n return {\n parent: comment.parentNode,\n node: comment.nextSibling\n };\n } // If user specifies an insertion point and it can't be found in the document -\n // bad specificity issues may appear.\n\n\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Insertion point \\\"\" + insertionPoint + \"\\\" not found.\") : void 0;\n }\n\n return false;\n}\n/**\n * Insert style element into the DOM.\n */\n\n\nfunction insertStyle(style, options) {\n var insertionPoint = options.insertionPoint;\n var nextNode = findPrevNode(options);\n\n if (nextNode !== false && nextNode.parent) {\n nextNode.parent.insertBefore(style, nextNode.node);\n return;\n } // Works with iframes and any node types.\n\n\n if (insertionPoint && typeof insertionPoint.nodeType === 'number') {\n // https://stackoverflow.com/questions/41328728/force-casting-in-flow\n var insertionPointElement = insertionPoint;\n var parentNode = insertionPointElement.parentNode;\n if (parentNode) parentNode.insertBefore(style, insertionPointElement.nextSibling);else process.env.NODE_ENV !== \"production\" ? warning(false, '[JSS] Insertion point is not in the DOM.') : void 0;\n return;\n }\n\n getHead().appendChild(style);\n}\n/**\n * Read jss nonce setting from the page if the user has set it.\n */\n\n\nvar getNonce = memoize(function () {\n var node = document.querySelector('meta[property=\"csp-nonce\"]');\n return node ? node.getAttribute('content') : null;\n});\n\nvar _insertRule = function insertRule(container, rule, index) {\n var maxIndex = container.cssRules.length; // In case previous insertion fails, passed index might be wrong\n\n if (index === undefined || index > maxIndex) {\n // eslint-disable-next-line no-param-reassign\n index = maxIndex;\n }\n\n try {\n if ('insertRule' in container) {\n var c = container;\n c.insertRule(rule, index);\n } // Keyframes rule.\n else if ('appendRule' in container) {\n var _c = container;\n\n _c.appendRule(rule);\n }\n } catch (err) {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] \" + err.message) : void 0;\n return false;\n }\n\n return container.cssRules[index];\n};\n\nvar createStyle = function createStyle() {\n var el = document.createElement('style'); // Without it, IE will have a broken source order specificity if we\n // insert rules after we insert the style tag.\n // It seems to kick-off the source order specificity algorithm.\n\n el.textContent = '\\n';\n return el;\n};\n\nvar DomRenderer =\n/*#__PURE__*/\nfunction () {\n // HTMLStyleElement needs fixing https://github.com/facebook/flow/issues/2696\n function DomRenderer(sheet) {\n this.getPropertyValue = getPropertyValue;\n this.setProperty = setProperty;\n this.removeProperty = removeProperty;\n this.setSelector = setSelector;\n this.element = void 0;\n this.sheet = void 0;\n this.hasInsertedRules = false;\n // There is no sheet when the renderer is used from a standalone StyleRule.\n if (sheet) sheets.add(sheet);\n this.sheet = sheet;\n\n var _ref = this.sheet ? this.sheet.options : {},\n media = _ref.media,\n meta = _ref.meta,\n element = _ref.element;\n\n this.element = element || createStyle();\n this.element.setAttribute('data-jss', '');\n if (media) this.element.setAttribute('media', media);\n if (meta) this.element.setAttribute('data-meta', meta);\n var nonce = getNonce();\n if (nonce) this.element.setAttribute('nonce', nonce);\n }\n /**\n * Insert style element into render tree.\n */\n\n\n var _proto = DomRenderer.prototype;\n\n _proto.attach = function attach() {\n // In the case the element node is external and it is already in the DOM.\n if (this.element.parentNode || !this.sheet) return;\n insertStyle(this.element, this.sheet.options); // When rules are inserted using `insertRule` API, after `sheet.detach().attach()`\n // most browsers create a new CSSStyleSheet, except of all IEs.\n\n var deployed = Boolean(this.sheet && this.sheet.deployed);\n\n if (this.hasInsertedRules && deployed) {\n this.hasInsertedRules = false;\n this.deploy();\n }\n }\n /**\n * Remove style element from render tree.\n */\n ;\n\n _proto.detach = function detach() {\n var parentNode = this.element.parentNode;\n if (parentNode) parentNode.removeChild(this.element);\n }\n /**\n * Inject CSS string into element.\n */\n ;\n\n _proto.deploy = function deploy() {\n var sheet = this.sheet;\n if (!sheet) return;\n\n if (sheet.options.link) {\n this.insertRules(sheet.rules);\n return;\n }\n\n this.element.textContent = \"\\n\" + sheet.toString() + \"\\n\";\n }\n /**\n * Insert RuleList into an element.\n */\n ;\n\n _proto.insertRules = function insertRules(rules, nativeParent) {\n for (var i = 0; i < rules.index.length; i++) {\n this.insertRule(rules.index[i], i, nativeParent);\n }\n }\n /**\n * Insert a rule into element.\n */\n ;\n\n _proto.insertRule = function insertRule(rule, index, nativeParent) {\n if (nativeParent === void 0) {\n nativeParent = this.element.sheet;\n }\n\n if (rule.rules) {\n var parent = rule;\n var latestNativeParent = nativeParent;\n\n if (rule.type === 'conditional' || rule.type === 'keyframes') {\n // We need to render the container without children first.\n latestNativeParent = _insertRule(nativeParent, parent.toString({\n children: false\n }), index);\n\n if (latestNativeParent === false) {\n return false;\n }\n }\n\n this.insertRules(parent.rules, latestNativeParent);\n return latestNativeParent;\n } // IE keeps the CSSStyleSheet after style node has been reattached,\n // so we need to check if the `renderable` reference the right style sheet and not\n // rerender those rules.\n\n\n if (rule.renderable && rule.renderable.parentStyleSheet === this.element.sheet) {\n return rule.renderable;\n }\n\n var ruleStr = rule.toString();\n if (!ruleStr) return false;\n\n var nativeRule = _insertRule(nativeParent, ruleStr, index);\n\n if (nativeRule === false) {\n return false;\n }\n\n this.hasInsertedRules = true;\n rule.renderable = nativeRule;\n return nativeRule;\n }\n /**\n * Delete a rule.\n */\n ;\n\n _proto.deleteRule = function deleteRule(cssRule) {\n var sheet = this.element.sheet;\n var index = this.indexOf(cssRule);\n if (index === -1) return false;\n sheet.deleteRule(index);\n return true;\n }\n /**\n * Get index of a CSS Rule.\n */\n ;\n\n _proto.indexOf = function indexOf(cssRule) {\n var cssRules = this.element.sheet.cssRules;\n\n for (var index = 0; index < cssRules.length; index++) {\n if (cssRule === cssRules[index]) return index;\n }\n\n return -1;\n }\n /**\n * Generate a new CSS rule and replace the existing one.\n *\n * Only used for some old browsers because they can't set a selector.\n */\n ;\n\n _proto.replaceRule = function replaceRule(cssRule, rule) {\n var index = this.indexOf(cssRule);\n if (index === -1) return false;\n this.element.sheet.deleteRule(index);\n return this.insertRule(rule, index);\n }\n /**\n * Get all rules elements.\n */\n ;\n\n _proto.getRules = function getRules() {\n return this.element.sheet.cssRules;\n };\n\n return DomRenderer;\n}();\n\nvar instanceCounter = 0;\n\nvar Jss =\n/*#__PURE__*/\nfunction () {\n function Jss(options) {\n this.id = instanceCounter++;\n this.version = \"10.1.1\";\n this.plugins = new PluginsRegistry();\n this.options = {\n id: {\n minify: false\n },\n createGenerateId: createGenerateId,\n Renderer: isInBrowser ? DomRenderer : null,\n plugins: []\n };\n this.generateId = createGenerateId({\n minify: false\n });\n\n for (var i = 0; i < plugins.length; i++) {\n this.plugins.use(plugins[i], {\n queue: 'internal'\n });\n }\n\n this.setup(options);\n }\n /**\n * Prepares various options, applies plugins.\n * Should not be used twice on the same instance, because there is no plugins\n * deduplication logic.\n */\n\n\n var _proto = Jss.prototype;\n\n _proto.setup = function setup(options) {\n if (options === void 0) {\n options = {};\n }\n\n if (options.createGenerateId) {\n this.options.createGenerateId = options.createGenerateId;\n }\n\n if (options.id) {\n this.options.id = _extends({}, this.options.id, options.id);\n }\n\n if (options.createGenerateId || options.id) {\n this.generateId = this.options.createGenerateId(this.options.id);\n }\n\n if (options.insertionPoint != null) this.options.insertionPoint = options.insertionPoint;\n\n if ('Renderer' in options) {\n this.options.Renderer = options.Renderer;\n } // eslint-disable-next-line prefer-spread\n\n\n if (options.plugins) this.use.apply(this, options.plugins);\n return this;\n }\n /**\n * Create a Style Sheet.\n */\n ;\n\n _proto.createStyleSheet = function createStyleSheet(styles, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n index = _options.index;\n\n if (typeof index !== 'number') {\n index = sheets.index === 0 ? 0 : sheets.index + 1;\n }\n\n var sheet = new StyleSheet(styles, _extends({}, options, {\n jss: this,\n generateId: options.generateId || this.generateId,\n insertionPoint: this.options.insertionPoint,\n Renderer: this.options.Renderer,\n index: index\n }));\n this.plugins.onProcessSheet(sheet);\n return sheet;\n }\n /**\n * Detach the Style Sheet and remove it from the registry.\n */\n ;\n\n _proto.removeStyleSheet = function removeStyleSheet(sheet) {\n sheet.detach();\n sheets.remove(sheet);\n return this;\n }\n /**\n * Create a rule without a Style Sheet.\n * [Deprecated] will be removed in the next major version.\n */\n ;\n\n _proto.createRule = function createRule$$1(name, style, options) {\n if (style === void 0) {\n style = {};\n }\n\n if (options === void 0) {\n options = {};\n }\n\n // Enable rule without name for inline styles.\n if (typeof name === 'object') {\n return this.createRule(undefined, name, style);\n }\n\n var ruleOptions = _extends({}, options, {\n name: name,\n jss: this,\n Renderer: this.options.Renderer\n });\n\n if (!ruleOptions.generateId) ruleOptions.generateId = this.generateId;\n if (!ruleOptions.classes) ruleOptions.classes = {};\n if (!ruleOptions.keyframes) ruleOptions.keyframes = {};\n\n var rule = createRule(name, style, ruleOptions);\n\n if (rule) this.plugins.onProcessRule(rule);\n return rule;\n }\n /**\n * Register plugin. Passed function will be invoked with a rule instance.\n */\n ;\n\n _proto.use = function use() {\n var _this = this;\n\n for (var _len = arguments.length, plugins$$1 = new Array(_len), _key = 0; _key < _len; _key++) {\n plugins$$1[_key] = arguments[_key];\n }\n\n plugins$$1.forEach(function (plugin) {\n _this.plugins.use(plugin);\n });\n return this;\n };\n\n return Jss;\n}();\n\n/**\n * Extracts a styles object with only props that contain function values.\n */\nfunction getDynamicStyles(styles) {\n var to = null;\n\n for (var key in styles) {\n var value = styles[key];\n var type = typeof value;\n\n if (type === 'function') {\n if (!to) to = {};\n to[key] = value;\n } else if (type === 'object' && value !== null && !Array.isArray(value)) {\n var extracted = getDynamicStyles(value);\n\n if (extracted) {\n if (!to) to = {};\n to[key] = extracted;\n }\n }\n }\n\n return to;\n}\n\n/**\n * SheetsManager is like a WeakMap which is designed to count StyleSheet\n * instances and attach/detach automatically.\n */\nvar SheetsManager =\n/*#__PURE__*/\nfunction () {\n function SheetsManager() {\n this.length = 0;\n this.sheets = new WeakMap();\n }\n\n var _proto = SheetsManager.prototype;\n\n _proto.get = function get(key) {\n var entry = this.sheets.get(key);\n return entry && entry.sheet;\n };\n\n _proto.add = function add(key, sheet) {\n if (this.sheets.has(key)) return;\n this.length++;\n this.sheets.set(key, {\n sheet: sheet,\n refs: 0\n });\n };\n\n _proto.manage = function manage(key) {\n var entry = this.sheets.get(key);\n\n if (entry) {\n if (entry.refs === 0) {\n entry.sheet.attach();\n }\n\n entry.refs++;\n return entry.sheet;\n }\n\n warning(false, \"[JSS] SheetsManager: can't find sheet to manage\");\n return undefined;\n };\n\n _proto.unmanage = function unmanage(key) {\n var entry = this.sheets.get(key);\n\n if (entry) {\n if (entry.refs > 0) {\n entry.refs--;\n if (entry.refs === 0) entry.sheet.detach();\n }\n } else {\n warning(false, \"SheetsManager: can't find sheet to unmanage\");\n }\n };\n\n _createClass(SheetsManager, [{\n key: \"size\",\n get: function get() {\n return this.length;\n }\n }]);\n\n return SheetsManager;\n}();\n\n/**\n * A better abstraction over CSS.\n *\n * @copyright Oleg Isonen (Slobodskoi) / Isonen 2014-present\n * @website https://github.com/cssinjs/jss\n * @license MIT\n */\n\n/**\n * Export a constant indicating if this browser has CSSTOM support.\n * https://developers.google.com/web/updates/2018/03/cssom\n */\nvar hasCSSTOMSupport = typeof CSS !== 'undefined' && CSS && 'number' in CSS;\n/**\n * Creates a new instance of Jss.\n */\n\nvar create = function create(options) {\n return new Jss(options);\n};\n/**\n * A global Jss instance.\n */\n\nvar index = create();\n\nexport default index;\nexport { hasCSSTOMSupport, create, getDynamicStyles, toCssValue, createRule, SheetsRegistry, SheetsManager, RuleList, sheets, createGenerateId };\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { getDisplayName } from '@material-ui/utils';\nexport default function mergeClasses() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var baseClasses = options.baseClasses,\n newClasses = options.newClasses,\n Component = options.Component;\n\n if (!newClasses) {\n return baseClasses;\n }\n\n var nextClasses = _extends({}, baseClasses);\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof newClasses === 'string') {\n console.error([\"Material-UI: the value `\".concat(newClasses, \"` \") + \"provided to the classes prop of \".concat(getDisplayName(Component), \" is incorrect.\"), 'You might want to use the className prop instead.'].join('\\n'));\n return baseClasses;\n }\n }\n\n Object.keys(newClasses).forEach(function (key) {\n if (process.env.NODE_ENV !== 'production') {\n if (!baseClasses[key] && newClasses[key]) {\n console.error([\"Material-UI: the key `\".concat(key, \"` \") + \"provided to the classes prop is not implemented in \".concat(getDisplayName(Component), \".\"), \"You can only override one of the following: \".concat(Object.keys(baseClasses).join(','), \".\")].join('\\n'));\n }\n\n if (newClasses[key] && typeof newClasses[key] !== 'string') {\n console.error([\"Material-UI: the key `\".concat(key, \"` \") + \"provided to the classes prop is not valid for \".concat(getDisplayName(Component), \".\"), \"You need to provide a non empty string instead of: \".concat(newClasses[key], \".\")].join('\\n'));\n }\n }\n\n if (newClasses[key]) {\n nextClasses[key] = \"\".concat(baseClasses[key], \" \").concat(newClasses[key]);\n }\n });\n return nextClasses;\n}","// Used https://github.com/thinkloop/multi-key-cache as inspiration\nvar multiKeyStore = {\n set: function set(cache, key1, key2, value) {\n var subCache = cache.get(key1);\n\n if (!subCache) {\n subCache = new Map();\n cache.set(key1, subCache);\n }\n\n subCache.set(key2, value);\n },\n get: function get(cache, key1, key2) {\n var subCache = cache.get(key1);\n return subCache ? subCache.get(key2) : undefined;\n },\n delete: function _delete(cache, key1, key2) {\n var subCache = cache.get(key1);\n subCache.delete(key2);\n }\n};\nexport default multiKeyStore;","import React from 'react';\nvar ThemeContext = React.createContext(null);\n\nif (process.env.NODE_ENV !== 'production') {\n ThemeContext.displayName = 'ThemeContext';\n}\n\nexport default ThemeContext;","import React from 'react';\nimport ThemeContext from './ThemeContext';\nexport default function useTheme() {\n return React.useContext(ThemeContext);\n}","var hasSymbol = typeof Symbol === 'function' && Symbol.for;\nexport default hasSymbol ? Symbol.for('mui.nested') : '__THEME_NESTED__';","import nested from '../ThemeProvider/nested';\n/**\n * This is the list of the style rule name we use as drop in replacement for the built-in\n * pseudo classes (:checked, :disabled, :focused, etc.).\n *\n * Why do they exist in the first place?\n * These classes are used at a specificity of 2.\n * It allows them to override previously definied styles as well as\n * being untouched by simple user overrides.\n */\n\nvar pseudoClasses = ['checked', 'disabled', 'error', 'focused', 'focusVisible', 'required', 'expanded', 'selected']; // Returns a function which generates unique class names based on counters.\n// When new generator function is created, rule counter is reset.\n// We need to reset the rule counter for SSR for each request.\n//\n// It's inspired by\n// https://github.com/cssinjs/jss/blob/4e6a05dd3f7b6572fdd3ab216861d9e446c20331/src/utils/createGenerateClassName.js\n\nexport default function createGenerateClassName() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _options$disableGloba = options.disableGlobal,\n disableGlobal = _options$disableGloba === void 0 ? false : _options$disableGloba,\n _options$productionPr = options.productionPrefix,\n productionPrefix = _options$productionPr === void 0 ? 'jss' : _options$productionPr,\n _options$seed = options.seed,\n seed = _options$seed === void 0 ? '' : _options$seed;\n var seedPrefix = seed === '' ? '' : \"\".concat(seed, \"-\");\n var ruleCounter = 0;\n return function (rule, styleSheet) {\n ruleCounter += 1;\n\n if (process.env.NODE_ENV !== 'production') {\n if (ruleCounter >= 1e10) {\n console.warn(['Material-UI: you might have a memory leak.', 'The ruleCounter is not supposed to grow that much.'].join(''));\n }\n }\n\n var name = styleSheet.options.name; // Is a global static MUI style?\n\n if (name && name.indexOf('Mui') === 0 && !styleSheet.options.link && !disableGlobal) {\n // We can use a shorthand class name, we never use the keys to style the components.\n if (pseudoClasses.indexOf(rule.key) !== -1) {\n return \"Mui-\".concat(rule.key);\n }\n\n var prefix = \"\".concat(seedPrefix).concat(name, \"-\").concat(rule.key);\n\n if (!styleSheet.options.theme[nested] || seed !== '') {\n return prefix;\n }\n\n return \"\".concat(prefix, \"-\").concat(ruleCounter);\n }\n\n if (process.env.NODE_ENV === 'production') {\n return \"\".concat(seedPrefix).concat(productionPrefix).concat(ruleCounter);\n }\n\n var suffix = \"\".concat(rule.key, \"-\").concat(ruleCounter); // Help with debuggability.\n\n if (styleSheet.options.classNamePrefix) {\n return \"\".concat(seedPrefix).concat(styleSheet.options.classNamePrefix, \"-\").concat(suffix);\n }\n\n return \"\".concat(seedPrefix).concat(suffix);\n };\n}","import warning from 'tiny-warning';\nimport { createRule } from 'jss';\n\nvar now = Date.now();\nvar fnValuesNs = \"fnValues\" + now;\nvar fnRuleNs = \"fnStyle\" + ++now;\nfunction functionPlugin() {\n return {\n onCreateRule: function onCreateRule(name, decl, options) {\n if (typeof decl !== 'function') return null;\n var rule = createRule(name, {}, options);\n rule[fnRuleNs] = decl;\n return rule;\n },\n onProcessStyle: function onProcessStyle(style, rule) {\n // We need to extract function values from the declaration, so that we can keep core unaware of them.\n // We need to do that only once.\n // We don't need to extract functions on each style update, since this can happen only once.\n // We don't support function values inside of function rules.\n if (fnValuesNs in rule || fnRuleNs in rule) return style;\n var fnValues = {};\n\n for (var prop in style) {\n var value = style[prop];\n if (typeof value !== 'function') continue;\n delete style[prop];\n fnValues[prop] = value;\n } // $FlowFixMe\n\n\n rule[fnValuesNs] = fnValues;\n return style;\n },\n onUpdate: function onUpdate(data, rule, sheet, options) {\n var styleRule = rule;\n var fnRule = styleRule[fnRuleNs]; // If we have a style function, the entire rule is dynamic and style object\n // will be returned from that function.\n\n if (fnRule) {\n // Empty object will remove all currently defined props\n // in case function rule returns a falsy value.\n styleRule.style = fnRule(data) || {};\n\n if (process.env.NODE_ENV === 'development') {\n for (var prop in styleRule.style) {\n if (typeof styleRule.style[prop] === 'function') {\n process.env.NODE_ENV !== \"production\" ? warning(false, '[JSS] Function values inside function rules are not supported.') : void 0;\n break;\n }\n }\n }\n }\n\n var fnValues = styleRule[fnValuesNs]; // If we have a fn values map, it is a rule with function values.\n\n if (fnValues) {\n for (var _prop in fnValues) {\n styleRule.prop(_prop, fnValues[_prop](data), options);\n }\n }\n }\n };\n}\n\nexport default functionPlugin;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport { RuleList } from 'jss';\n\nvar at = '@global';\nvar atPrefix = '@global ';\n\nvar GlobalContainerRule =\n/*#__PURE__*/\nfunction () {\n function GlobalContainerRule(key, styles, options) {\n this.type = 'global';\n this.at = at;\n this.rules = void 0;\n this.options = void 0;\n this.key = void 0;\n this.isProcessed = false;\n this.key = key;\n this.options = options;\n this.rules = new RuleList(_extends({}, options, {\n parent: this\n }));\n\n for (var selector in styles) {\n this.rules.add(selector, styles[selector]);\n }\n\n this.rules.process();\n }\n /**\n * Get a rule.\n */\n\n\n var _proto = GlobalContainerRule.prototype;\n\n _proto.getRule = function getRule(name) {\n return this.rules.get(name);\n }\n /**\n * Create and register rule, run plugins.\n */\n ;\n\n _proto.addRule = function addRule(name, style, options) {\n var rule = this.rules.add(name, style, options);\n this.options.jss.plugins.onProcessRule(rule);\n return rule;\n }\n /**\n * Get index of a rule.\n */\n ;\n\n _proto.indexOf = function indexOf(rule) {\n return this.rules.indexOf(rule);\n }\n /**\n * Generates a CSS string.\n */\n ;\n\n _proto.toString = function toString() {\n return this.rules.toString();\n };\n\n return GlobalContainerRule;\n}();\n\nvar GlobalPrefixedRule =\n/*#__PURE__*/\nfunction () {\n function GlobalPrefixedRule(key, style, options) {\n this.type = 'global';\n this.at = at;\n this.options = void 0;\n this.rule = void 0;\n this.isProcessed = false;\n this.key = void 0;\n this.key = key;\n this.options = options;\n var selector = key.substr(atPrefix.length);\n this.rule = options.jss.createRule(selector, style, _extends({}, options, {\n parent: this\n }));\n }\n\n var _proto2 = GlobalPrefixedRule.prototype;\n\n _proto2.toString = function toString(options) {\n return this.rule ? this.rule.toString(options) : '';\n };\n\n return GlobalPrefixedRule;\n}();\n\nvar separatorRegExp = /\\s*,\\s*/g;\n\nfunction addScope(selector, scope) {\n var parts = selector.split(separatorRegExp);\n var scoped = '';\n\n for (var i = 0; i < parts.length; i++) {\n scoped += scope + \" \" + parts[i].trim();\n if (parts[i + 1]) scoped += ', ';\n }\n\n return scoped;\n}\n\nfunction handleNestedGlobalContainerRule(rule) {\n var options = rule.options,\n style = rule.style;\n var rules = style ? style[at] : null;\n if (!rules) return;\n\n for (var name in rules) {\n options.sheet.addRule(name, rules[name], _extends({}, options, {\n selector: addScope(name, rule.selector)\n }));\n }\n\n delete style[at];\n}\n\nfunction handlePrefixedGlobalRule(rule) {\n var options = rule.options,\n style = rule.style;\n\n for (var prop in style) {\n if (prop[0] !== '@' || prop.substr(0, at.length) !== at) continue;\n var selector = addScope(prop.substr(at.length), rule.selector);\n options.sheet.addRule(selector, style[prop], _extends({}, options, {\n selector: selector\n }));\n delete style[prop];\n }\n}\n/**\n * Convert nested rules to separate, remove them from original styles.\n *\n * @param {Rule} rule\n * @api public\n */\n\n\nfunction jssGlobal() {\n function onCreateRule(name, styles, options) {\n if (!name) return null;\n\n if (name === at) {\n return new GlobalContainerRule(name, styles, options);\n }\n\n if (name[0] === '@' && name.substr(0, atPrefix.length) === atPrefix) {\n return new GlobalPrefixedRule(name, styles, options);\n }\n\n var parent = options.parent;\n\n if (parent) {\n if (parent.type === 'global' || parent.options.parent && parent.options.parent.type === 'global') {\n options.scoped = false;\n }\n }\n\n if (options.scoped === false) {\n options.selector = name;\n }\n\n return null;\n }\n\n function onProcessRule(rule) {\n if (rule.type !== 'style') return;\n handleNestedGlobalContainerRule(rule);\n handlePrefixedGlobalRule(rule);\n }\n\n return {\n onCreateRule: onCreateRule,\n onProcessRule: onProcessRule\n };\n}\n\nexport default jssGlobal;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport warning from 'tiny-warning';\n\nvar separatorRegExp = /\\s*,\\s*/g;\nvar parentRegExp = /&/g;\nvar refRegExp = /\\$([\\w-]+)/g;\n/**\n * Convert nested rules to separate, remove them from original styles.\n *\n * @param {Rule} rule\n * @api public\n */\n\nfunction jssNested() {\n // Get a function to be used for $ref replacement.\n function getReplaceRef(container, sheet) {\n return function (match, key) {\n var rule = container.getRule(key) || sheet && sheet.getRule(key);\n\n if (rule) {\n rule = rule;\n return rule.selector;\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Could not find the referenced rule \\\"\" + key + \"\\\" in \\\"\" + (container.options.meta || container.toString()) + \"\\\".\") : void 0;\n return key;\n };\n }\n\n function replaceParentRefs(nestedProp, parentProp) {\n var parentSelectors = parentProp.split(separatorRegExp);\n var nestedSelectors = nestedProp.split(separatorRegExp);\n var result = '';\n\n for (var i = 0; i < parentSelectors.length; i++) {\n var parent = parentSelectors[i];\n\n for (var j = 0; j < nestedSelectors.length; j++) {\n var nested = nestedSelectors[j];\n if (result) result += ', '; // Replace all & by the parent or prefix & with the parent.\n\n result += nested.indexOf('&') !== -1 ? nested.replace(parentRegExp, parent) : parent + \" \" + nested;\n }\n }\n\n return result;\n }\n\n function getOptions(rule, container, prevOptions) {\n // Options has been already created, now we only increase index.\n if (prevOptions) return _extends({}, prevOptions, {\n index: prevOptions.index + 1\n });\n var nestingLevel = rule.options.nestingLevel;\n nestingLevel = nestingLevel === undefined ? 1 : nestingLevel + 1;\n\n var options = _extends({}, rule.options, {\n nestingLevel: nestingLevel,\n index: container.indexOf(rule) + 1 // We don't need the parent name to be set options for chlid.\n\n });\n\n delete options.name;\n return options;\n }\n\n function onProcessStyle(style, rule, sheet) {\n if (rule.type !== 'style') return style;\n var styleRule = rule;\n var container = styleRule.options.parent;\n var options;\n var replaceRef;\n\n for (var prop in style) {\n var isNested = prop.indexOf('&') !== -1;\n var isNestedConditional = prop[0] === '@';\n if (!isNested && !isNestedConditional) continue;\n options = getOptions(styleRule, container, options);\n\n if (isNested) {\n var selector = replaceParentRefs(prop, styleRule.selector); // Lazily create the ref replacer function just once for\n // all nested rules within the sheet.\n\n if (!replaceRef) replaceRef = getReplaceRef(container, sheet); // Replace all $refs.\n\n selector = selector.replace(refRegExp, replaceRef);\n container.addRule(selector, style[prop], _extends({}, options, {\n selector: selector\n }));\n } else if (isNestedConditional) {\n // Place conditional right after the parent rule to ensure right ordering.\n container.addRule(prop, {}, options) // Flow expects more options but they aren't required\n // And flow doesn't know this will always be a StyleRule which has the addRule method\n // $FlowFixMe\n .addRule(styleRule.key, style[prop], {\n selector: styleRule.selector\n });\n }\n\n delete style[prop];\n }\n\n return style;\n }\n\n return {\n onProcessStyle: onProcessStyle\n };\n}\n\nexport default jssNested;\n","/* eslint-disable no-var, prefer-template */\nvar uppercasePattern = /[A-Z]/g\nvar msPattern = /^ms-/\nvar cache = {}\n\nfunction toHyphenLower(match) {\n return '-' + match.toLowerCase()\n}\n\nfunction hyphenateStyleName(name) {\n if (cache.hasOwnProperty(name)) {\n return cache[name]\n }\n\n var hName = name.replace(uppercasePattern, toHyphenLower)\n return (cache[name] = msPattern.test(hName) ? '-' + hName : hName)\n}\n\nexport default hyphenateStyleName\n","import hyphenate from 'hyphenate-style-name';\n\n/**\n * Convert camel cased property names to dash separated.\n *\n * @param {Object} style\n * @return {Object}\n */\n\nfunction convertCase(style) {\n var converted = {};\n\n for (var prop in style) {\n var key = prop.indexOf('--') === 0 ? prop : hyphenate(prop);\n converted[key] = style[prop];\n }\n\n if (style.fallbacks) {\n if (Array.isArray(style.fallbacks)) converted.fallbacks = style.fallbacks.map(convertCase);else converted.fallbacks = convertCase(style.fallbacks);\n }\n\n return converted;\n}\n/**\n * Allow camel cased property names by converting them back to dasherized.\n *\n * @param {Rule} rule\n */\n\n\nfunction camelCase() {\n function onProcessStyle(style) {\n if (Array.isArray(style)) {\n // Handle rules like @font-face, which can have multiple styles in an array\n for (var index = 0; index < style.length; index++) {\n style[index] = convertCase(style[index]);\n }\n\n return style;\n }\n\n return convertCase(style);\n }\n\n function onChangeValue(value, prop, rule) {\n if (prop.indexOf('--') === 0) {\n return value;\n }\n\n var hyphenatedProp = hyphenate(prop); // There was no camel case in place\n\n if (prop === hyphenatedProp) return value;\n rule.prop(hyphenatedProp, value); // Core will ignore that property value we set the proper one above.\n\n return null;\n }\n\n return {\n onProcessStyle: onProcessStyle,\n onChangeValue: onChangeValue\n };\n}\n\nexport default camelCase;\n","import { hasCSSTOMSupport } from 'jss';\n\nvar px = hasCSSTOMSupport && CSS ? CSS.px : 'px';\nvar ms = hasCSSTOMSupport && CSS ? CSS.ms : 'ms';\nvar percent = hasCSSTOMSupport && CSS ? CSS.percent : '%';\n/**\n * Generated jss-plugin-default-unit CSS property units\n *\n * @type object\n */\n\nvar defaultUnits = {\n // Animation properties\n 'animation-delay': ms,\n 'animation-duration': ms,\n // Background properties\n 'background-position': px,\n 'background-position-x': px,\n 'background-position-y': px,\n 'background-size': px,\n // Border Properties\n border: px,\n 'border-bottom': px,\n 'border-bottom-left-radius': px,\n 'border-bottom-right-radius': px,\n 'border-bottom-width': px,\n 'border-left': px,\n 'border-left-width': px,\n 'border-radius': px,\n 'border-right': px,\n 'border-right-width': px,\n 'border-top': px,\n 'border-top-left-radius': px,\n 'border-top-right-radius': px,\n 'border-top-width': px,\n 'border-width': px,\n // Margin properties\n margin: px,\n 'margin-bottom': px,\n 'margin-left': px,\n 'margin-right': px,\n 'margin-top': px,\n // Padding properties\n padding: px,\n 'padding-bottom': px,\n 'padding-left': px,\n 'padding-right': px,\n 'padding-top': px,\n // Mask properties\n 'mask-position-x': px,\n 'mask-position-y': px,\n 'mask-size': px,\n // Width and height properties\n height: px,\n width: px,\n 'min-height': px,\n 'max-height': px,\n 'min-width': px,\n 'max-width': px,\n // Position properties\n bottom: px,\n left: px,\n top: px,\n right: px,\n // Shadow properties\n 'box-shadow': px,\n 'text-shadow': px,\n // Column properties\n 'column-gap': px,\n 'column-rule': px,\n 'column-rule-width': px,\n 'column-width': px,\n // Font and text properties\n 'font-size': px,\n 'font-size-delta': px,\n 'letter-spacing': px,\n 'text-indent': px,\n 'text-stroke': px,\n 'text-stroke-width': px,\n 'word-spacing': px,\n // Motion properties\n motion: px,\n 'motion-offset': px,\n // Outline properties\n outline: px,\n 'outline-offset': px,\n 'outline-width': px,\n // Perspective properties\n perspective: px,\n 'perspective-origin-x': percent,\n 'perspective-origin-y': percent,\n // Transform properties\n 'transform-origin': percent,\n 'transform-origin-x': percent,\n 'transform-origin-y': percent,\n 'transform-origin-z': percent,\n // Transition properties\n 'transition-delay': ms,\n 'transition-duration': ms,\n // Alignment properties\n 'vertical-align': px,\n 'flex-basis': px,\n // Some random properties\n 'shape-margin': px,\n size: px,\n // Grid properties\n grid: px,\n 'grid-gap': px,\n 'grid-row-gap': px,\n 'grid-column-gap': px,\n 'grid-template-rows': px,\n 'grid-template-columns': px,\n 'grid-auto-rows': px,\n 'grid-auto-columns': px,\n // Not existing properties.\n // Used to avoid issues with jss-plugin-expand integration.\n 'box-shadow-x': px,\n 'box-shadow-y': px,\n 'box-shadow-blur': px,\n 'box-shadow-spread': px,\n 'font-line-height': px,\n 'text-shadow-x': px,\n 'text-shadow-y': px,\n 'text-shadow-blur': px\n};\n\n/**\n * Clones the object and adds a camel cased property version.\n */\nfunction addCamelCasedVersion(obj) {\n var regExp = /(-[a-z])/g;\n\n var replace = function replace(str) {\n return str[1].toUpperCase();\n };\n\n var newObj = {};\n\n for (var _key in obj) {\n newObj[_key] = obj[_key];\n newObj[_key.replace(regExp, replace)] = obj[_key];\n }\n\n return newObj;\n}\n\nvar units = addCamelCasedVersion(defaultUnits);\n/**\n * Recursive deep style passing function\n */\n\nfunction iterate(prop, value, options) {\n if (!value) return value;\n\n if (Array.isArray(value)) {\n for (var i = 0; i < value.length; i++) {\n value[i] = iterate(prop, value[i], options);\n }\n } else if (typeof value === 'object') {\n if (prop === 'fallbacks') {\n for (var innerProp in value) {\n value[innerProp] = iterate(innerProp, value[innerProp], options);\n }\n } else {\n for (var _innerProp in value) {\n value[_innerProp] = iterate(prop + \"-\" + _innerProp, value[_innerProp], options);\n }\n }\n } else if (typeof value === 'number') {\n var unit = options[prop] || units[prop];\n\n if (unit) {\n return typeof unit === 'function' ? unit(value).toString() : \"\" + value + unit;\n }\n\n return value.toString();\n }\n\n return value;\n}\n/**\n * Add unit to numeric values.\n */\n\n\nfunction defaultUnit(options) {\n if (options === void 0) {\n options = {};\n }\n\n var camelCasedOptions = addCamelCasedVersion(options);\n\n function onProcessStyle(style, rule) {\n if (rule.type !== 'style') return style;\n\n for (var prop in style) {\n style[prop] = iterate(prop, style[prop], camelCasedOptions);\n }\n\n return style;\n }\n\n function onChangeValue(value, prop) {\n return iterate(prop, value, camelCasedOptions);\n }\n\n return {\n onProcessStyle: onProcessStyle,\n onChangeValue: onChangeValue\n };\n}\n\nexport default defaultUnit;\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(n);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","import arrayWithoutHoles from \"./arrayWithoutHoles\";\nimport iterableToArray from \"./iterableToArray\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nimport nonIterableSpread from \"./nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import isInBrowser from 'is-in-browser';\nimport _toConsumableArray from '@babel/runtime/helpers/esm/toConsumableArray';\n\n// Export javascript style and css style vendor prefixes.\nvar js = '';\nvar css = '';\nvar vendor = '';\nvar browser = '';\nvar isTouch = isInBrowser && 'ontouchstart' in document.documentElement; // We should not do anything if required serverside.\n\nif (isInBrowser) {\n // Order matters. We need to check Webkit the last one because\n // other vendors use to add Webkit prefixes to some properties\n var jsCssMap = {\n Moz: '-moz-',\n ms: '-ms-',\n O: '-o-',\n Webkit: '-webkit-'\n };\n\n var _document$createEleme = document.createElement('p'),\n style = _document$createEleme.style;\n\n var testProp = 'Transform';\n\n for (var key in jsCssMap) {\n if (key + testProp in style) {\n js = key;\n css = jsCssMap[key];\n break;\n }\n } // Correctly detect the Edge browser.\n\n\n if (js === 'Webkit' && 'msHyphens' in style) {\n js = 'ms';\n css = jsCssMap.ms;\n browser = 'edge';\n } // Correctly detect the Safari browser.\n\n\n if (js === 'Webkit' && '-apple-trailing-word' in style) {\n vendor = 'apple';\n }\n}\n/**\n * Vendor prefix string for the current browser.\n *\n * @type {{js: String, css: String, vendor: String, browser: String}}\n * @api public\n */\n\n\nvar prefix = {\n js: js,\n css: css,\n vendor: vendor,\n browser: browser,\n isTouch: isTouch\n};\n\n/**\n * Test if a keyframe at-rule should be prefixed or not\n *\n * @param {String} vendor prefix string for the current browser.\n * @return {String}\n * @api public\n */\n\nfunction supportedKeyframes(key) {\n // Keyframes is already prefixed. e.g. key = '@-webkit-keyframes a'\n if (key[1] === '-') return key; // No need to prefix IE/Edge. Older browsers will ignore unsupported rules.\n // https://caniuse.com/#search=keyframes\n\n if (prefix.js === 'ms') return key;\n return \"@\" + prefix.css + \"keyframes\" + key.substr(10);\n}\n\n// https://caniuse.com/#search=appearance\n\nvar appearence = {\n noPrefill: ['appearance'],\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'appearance') return false;\n if (prefix.js === 'ms') return \"-webkit-\" + prop;\n return prefix.css + prop;\n }\n};\n\n// https://caniuse.com/#search=color-adjust\n\nvar colorAdjust = {\n noPrefill: ['color-adjust'],\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'color-adjust') return false;\n if (prefix.js === 'Webkit') return prefix.css + \"print-\" + prop;\n return prop;\n }\n};\n\nvar regExp = /[-\\s]+(.)?/g;\n/**\n * Replaces the letter with the capital letter\n *\n * @param {String} match\n * @param {String} c\n * @return {String}\n * @api private\n */\n\nfunction toUpper(match, c) {\n return c ? c.toUpperCase() : '';\n}\n/**\n * Convert dash separated strings to camel-cased.\n *\n * @param {String} str\n * @return {String}\n * @api private\n */\n\n\nfunction camelize(str) {\n return str.replace(regExp, toUpper);\n}\n\n/**\n * Convert dash separated strings to pascal cased.\n *\n * @param {String} str\n * @return {String}\n * @api private\n */\n\nfunction pascalize(str) {\n return camelize(\"-\" + str);\n}\n\n// but we can use a longhand property instead.\n// https://caniuse.com/#search=mask\n\nvar mask = {\n noPrefill: ['mask'],\n supportedProperty: function supportedProperty(prop, style) {\n if (!/^mask/.test(prop)) return false;\n\n if (prefix.js === 'Webkit') {\n var longhand = 'mask-image';\n\n if (camelize(longhand) in style) {\n return prop;\n }\n\n if (prefix.js + pascalize(longhand) in style) {\n return prefix.css + prop;\n }\n }\n\n return prop;\n }\n};\n\n// https://caniuse.com/#search=text-orientation\n\nvar textOrientation = {\n noPrefill: ['text-orientation'],\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'text-orientation') return false;\n\n if (prefix.vendor === 'apple' && !prefix.isTouch) {\n return prefix.css + prop;\n }\n\n return prop;\n }\n};\n\n// https://caniuse.com/#search=transform\n\nvar transform = {\n noPrefill: ['transform'],\n supportedProperty: function supportedProperty(prop, style, options) {\n if (prop !== 'transform') return false;\n\n if (options.transform) {\n return prop;\n }\n\n return prefix.css + prop;\n }\n};\n\n// https://caniuse.com/#search=transition\n\nvar transition = {\n noPrefill: ['transition'],\n supportedProperty: function supportedProperty(prop, style, options) {\n if (prop !== 'transition') return false;\n\n if (options.transition) {\n return prop;\n }\n\n return prefix.css + prop;\n }\n};\n\n// https://caniuse.com/#search=writing-mode\n\nvar writingMode = {\n noPrefill: ['writing-mode'],\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'writing-mode') return false;\n\n if (prefix.js === 'Webkit' || prefix.js === 'ms' && prefix.browser !== 'edge') {\n return prefix.css + prop;\n }\n\n return prop;\n }\n};\n\n// https://caniuse.com/#search=user-select\n\nvar userSelect = {\n noPrefill: ['user-select'],\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'user-select') return false;\n\n if (prefix.js === 'Moz' || prefix.js === 'ms' || prefix.vendor === 'apple') {\n return prefix.css + prop;\n }\n\n return prop;\n }\n};\n\n// https://caniuse.com/#search=multicolumn\n// https://github.com/postcss/autoprefixer/issues/491\n// https://github.com/postcss/autoprefixer/issues/177\n\nvar breakPropsOld = {\n supportedProperty: function supportedProperty(prop, style) {\n if (!/^break-/.test(prop)) return false;\n\n if (prefix.js === 'Webkit') {\n var jsProp = \"WebkitColumn\" + pascalize(prop);\n return jsProp in style ? prefix.css + \"column-\" + prop : false;\n }\n\n if (prefix.js === 'Moz') {\n var _jsProp = \"page\" + pascalize(prop);\n\n return _jsProp in style ? \"page-\" + prop : false;\n }\n\n return false;\n }\n};\n\n// See https://github.com/postcss/autoprefixer/issues/324.\n\nvar inlineLogicalOld = {\n supportedProperty: function supportedProperty(prop, style) {\n if (!/^(border|margin|padding)-inline/.test(prop)) return false;\n if (prefix.js === 'Moz') return prop;\n var newProp = prop.replace('-inline', '');\n return prefix.js + pascalize(newProp) in style ? prefix.css + newProp : false;\n }\n};\n\n// Camelization is required because we can't test using.\n// CSS syntax for e.g. in FF.\n\nvar unprefixed = {\n supportedProperty: function supportedProperty(prop, style) {\n return camelize(prop) in style ? prop : false;\n }\n};\n\nvar prefixed = {\n supportedProperty: function supportedProperty(prop, style) {\n var pascalized = pascalize(prop); // Return custom CSS variable without prefixing.\n\n if (prop[0] === '-') return prop; // Return already prefixed value without prefixing.\n\n if (prop[0] === '-' && prop[1] === '-') return prop;\n if (prefix.js + pascalized in style) return prefix.css + prop; // Try webkit fallback.\n\n if (prefix.js !== 'Webkit' && \"Webkit\" + pascalized in style) return \"-webkit-\" + prop;\n return false;\n }\n};\n\n// https://caniuse.com/#search=scroll-snap\n\nvar scrollSnap = {\n supportedProperty: function supportedProperty(prop) {\n if (prop.substring(0, 11) !== 'scroll-snap') return false;\n\n if (prefix.js === 'ms') {\n return \"\" + prefix.css + prop;\n }\n\n return prop;\n }\n};\n\n// https://caniuse.com/#search=overscroll-behavior\n\nvar overscrollBehavior = {\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'overscroll-behavior') return false;\n\n if (prefix.js === 'ms') {\n return prefix.css + \"scroll-chaining\";\n }\n\n return prop;\n }\n};\n\nvar propMap = {\n 'flex-grow': 'flex-positive',\n 'flex-shrink': 'flex-negative',\n 'flex-basis': 'flex-preferred-size',\n 'justify-content': 'flex-pack',\n order: 'flex-order',\n 'align-items': 'flex-align',\n 'align-content': 'flex-line-pack' // 'align-self' is handled by 'align-self' plugin.\n\n}; // Support old flex spec from 2012.\n\nvar flex2012 = {\n supportedProperty: function supportedProperty(prop, style) {\n var newProp = propMap[prop];\n if (!newProp) return false;\n return prefix.js + pascalize(newProp) in style ? prefix.css + newProp : false;\n }\n};\n\nvar propMap$1 = {\n flex: 'box-flex',\n 'flex-grow': 'box-flex',\n 'flex-direction': ['box-orient', 'box-direction'],\n order: 'box-ordinal-group',\n 'align-items': 'box-align',\n 'flex-flow': ['box-orient', 'box-direction'],\n 'justify-content': 'box-pack'\n};\nvar propKeys = Object.keys(propMap$1);\n\nvar prefixCss = function prefixCss(p) {\n return prefix.css + p;\n}; // Support old flex spec from 2009.\n\n\nvar flex2009 = {\n supportedProperty: function supportedProperty(prop, style, _ref) {\n var multiple = _ref.multiple;\n\n if (propKeys.indexOf(prop) > -1) {\n var newProp = propMap$1[prop];\n\n if (!Array.isArray(newProp)) {\n return prefix.js + pascalize(newProp) in style ? prefix.css + newProp : false;\n }\n\n if (!multiple) return false;\n\n for (var i = 0; i < newProp.length; i++) {\n if (!(prefix.js + pascalize(newProp[0]) in style)) {\n return false;\n }\n }\n\n return newProp.map(prefixCss);\n }\n\n return false;\n }\n};\n\n// plugins = [\n// ...plugins,\n// breakPropsOld,\n// inlineLogicalOld,\n// unprefixed,\n// prefixed,\n// scrollSnap,\n// flex2012,\n// flex2009\n// ]\n// Plugins without 'noPrefill' value, going last.\n// 'flex-*' plugins should be at the bottom.\n// 'flex2009' going after 'flex2012'.\n// 'prefixed' going after 'unprefixed'\n\nvar plugins = [appearence, colorAdjust, mask, textOrientation, transform, transition, writingMode, userSelect, breakPropsOld, inlineLogicalOld, unprefixed, prefixed, scrollSnap, overscrollBehavior, flex2012, flex2009];\nvar propertyDetectors = plugins.filter(function (p) {\n return p.supportedProperty;\n}).map(function (p) {\n return p.supportedProperty;\n});\nvar noPrefill = plugins.filter(function (p) {\n return p.noPrefill;\n}).reduce(function (a, p) {\n a.push.apply(a, _toConsumableArray(p.noPrefill));\n return a;\n}, []);\n\nvar el;\nvar cache = {};\n\nif (isInBrowser) {\n el = document.createElement('p'); // We test every property on vendor prefix requirement.\n // Once tested, result is cached. It gives us up to 70% perf boost.\n // http://jsperf.com/element-style-object-access-vs-plain-object\n //\n // Prefill cache with known css properties to reduce amount of\n // properties we need to feature test at runtime.\n // http://davidwalsh.name/vendor-prefix\n\n var computed = window.getComputedStyle(document.documentElement, '');\n\n for (var key$1 in computed) {\n // eslint-disable-next-line no-restricted-globals\n if (!isNaN(key$1)) cache[computed[key$1]] = computed[key$1];\n } // Properties that cannot be correctly detected using the\n // cache prefill method.\n\n\n noPrefill.forEach(function (x) {\n return delete cache[x];\n });\n}\n/**\n * Test if a property is supported, returns supported property with vendor\n * prefix if required. Returns `false` if not supported.\n *\n * @param {String} prop dash separated\n * @param {Object} [options]\n * @return {String|Boolean}\n * @api public\n */\n\n\nfunction supportedProperty(prop, options) {\n if (options === void 0) {\n options = {};\n }\n\n // For server-side rendering.\n if (!el) return prop; // Remove cache for benchmark tests or return property from the cache.\n\n if (process.env.NODE_ENV !== 'benchmark' && cache[prop] != null) {\n return cache[prop];\n } // Check if 'transition' or 'transform' natively supported in browser.\n\n\n if (prop === 'transition' || prop === 'transform') {\n options[prop] = prop in el.style;\n } // Find a plugin for current prefix property.\n\n\n for (var i = 0; i < propertyDetectors.length; i++) {\n cache[prop] = propertyDetectors[i](prop, el.style, options); // Break loop, if value found.\n\n if (cache[prop]) break;\n } // Reset styles for current property.\n // Firefox can even throw an error for invalid properties, e.g., \"0\".\n\n\n try {\n el.style[prop] = '';\n } catch (err) {\n return false;\n }\n\n return cache[prop];\n}\n\nvar cache$1 = {};\nvar transitionProperties = {\n transition: 1,\n 'transition-property': 1,\n '-webkit-transition': 1,\n '-webkit-transition-property': 1\n};\nvar transPropsRegExp = /(^\\s*[\\w-]+)|, (\\s*[\\w-]+)(?![^()]*\\))/g;\nvar el$1;\n/**\n * Returns prefixed value transition/transform if needed.\n *\n * @param {String} match\n * @param {String} p1\n * @param {String} p2\n * @return {String}\n * @api private\n */\n\nfunction prefixTransitionCallback(match, p1, p2) {\n if (p1 === 'var') return 'var';\n if (p1 === 'all') return 'all';\n if (p2 === 'all') return ', all';\n var prefixedValue = p1 ? supportedProperty(p1) : \", \" + supportedProperty(p2);\n if (!prefixedValue) return p1 || p2;\n return prefixedValue;\n}\n\nif (isInBrowser) el$1 = document.createElement('p');\n/**\n * Returns prefixed value if needed. Returns `false` if value is not supported.\n *\n * @param {String} property\n * @param {String} value\n * @return {String|Boolean}\n * @api public\n */\n\nfunction supportedValue(property, value) {\n // For server-side rendering.\n var prefixedValue = value;\n if (!el$1 || property === 'content') return value; // It is a string or a number as a string like '1'.\n // We want only prefixable values here.\n // eslint-disable-next-line no-restricted-globals\n\n if (typeof prefixedValue !== 'string' || !isNaN(parseInt(prefixedValue, 10))) {\n return prefixedValue;\n } // Create cache key for current value.\n\n\n var cacheKey = property + prefixedValue; // Remove cache for benchmark tests or return value from cache.\n\n if (process.env.NODE_ENV !== 'benchmark' && cache$1[cacheKey] != null) {\n return cache$1[cacheKey];\n } // IE can even throw an error in some cases, for e.g. style.content = 'bar'.\n\n\n try {\n // Test value as it is.\n el$1.style[property] = prefixedValue;\n } catch (err) {\n // Return false if value not supported.\n cache$1[cacheKey] = false;\n return false;\n } // If 'transition' or 'transition-property' property.\n\n\n if (transitionProperties[property]) {\n prefixedValue = prefixedValue.replace(transPropsRegExp, prefixTransitionCallback);\n } else if (el$1.style[property] === '') {\n // Value with a vendor prefix.\n prefixedValue = prefix.css + prefixedValue; // Hardcode test to convert \"flex\" to \"-ms-flexbox\" for IE10.\n\n if (prefixedValue === '-ms-flex') el$1.style[property] = '-ms-flexbox'; // Test prefixed value.\n\n el$1.style[property] = prefixedValue; // Return false if value not supported.\n\n if (el$1.style[property] === '') {\n cache$1[cacheKey] = false;\n return false;\n }\n } // Reset styles for current property.\n\n\n el$1.style[property] = ''; // Write current value to cache.\n\n cache$1[cacheKey] = prefixedValue;\n return cache$1[cacheKey];\n}\n\nexport { prefix, supportedKeyframes, supportedProperty, supportedValue };\n","import { supportedKeyframes, supportedValue, supportedProperty } from 'css-vendor';\nimport { toCssValue } from 'jss';\n\n/**\n * Add vendor prefix to a property name when needed.\n *\n * @api public\n */\n\nfunction jssVendorPrefixer() {\n function onProcessRule(rule) {\n if (rule.type === 'keyframes') {\n var atRule = rule;\n atRule.at = supportedKeyframes(atRule.at);\n }\n }\n\n function prefixStyle(style) {\n for (var prop in style) {\n var value = style[prop];\n\n if (prop === 'fallbacks' && Array.isArray(value)) {\n style[prop] = value.map(prefixStyle);\n continue;\n }\n\n var changeProp = false;\n var supportedProp = supportedProperty(prop);\n if (supportedProp && supportedProp !== prop) changeProp = true;\n var changeValue = false;\n var supportedValue$$1 = supportedValue(supportedProp, toCssValue(value));\n if (supportedValue$$1 && supportedValue$$1 !== value) changeValue = true;\n\n if (changeProp || changeValue) {\n if (changeProp) delete style[prop];\n style[supportedProp || prop] = supportedValue$$1 || value;\n }\n }\n\n return style;\n }\n\n function onProcessStyle(style, rule) {\n if (rule.type !== 'style') return style;\n return prefixStyle(style);\n }\n\n function onChangeValue(value, prop) {\n return supportedValue(prop, toCssValue(value)) || value;\n }\n\n return {\n onProcessRule: onProcessRule,\n onProcessStyle: onProcessStyle,\n onChangeValue: onChangeValue\n };\n}\n\nexport default jssVendorPrefixer;\n","/**\n * Sort props by length.\n */\nfunction jssPropsSort() {\n var sort = function sort(prop0, prop1) {\n if (prop0.length === prop1.length) {\n return prop0 > prop1 ? 1 : -1;\n }\n\n return prop0.length - prop1.length;\n };\n\n return {\n onProcessStyle: function onProcessStyle(style, rule) {\n if (rule.type !== 'style') return style;\n var newStyle = {};\n var props = Object.keys(style).sort(sort);\n\n for (var i = 0; i < props.length; i++) {\n newStyle[props[i]] = style[props[i]];\n }\n\n return newStyle;\n }\n };\n}\n\nexport default jssPropsSort;\n","import functions from 'jss-plugin-rule-value-function';\nimport global from 'jss-plugin-global';\nimport nested from 'jss-plugin-nested';\nimport camelCase from 'jss-plugin-camel-case';\nimport defaultUnit from 'jss-plugin-default-unit';\nimport vendorPrefixer from 'jss-plugin-vendor-prefixer';\nimport propsSort from 'jss-plugin-props-sort'; // Subset of jss-preset-default with only the plugins the Material-UI components are using.\n\nexport default function jssPreset() {\n return {\n plugins: [functions(), global(), nested(), camelCase(), defaultUnit(), // Disable the vendor prefixer server-side, it does nothing.\n // This way, we can get a performance boost.\n // In the documentation, we are using `autoprefixer` to solve this problem.\n typeof window === 'undefined' ? null : vendorPrefixer(), propsSort()]\n };\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { exactProp } from '@material-ui/utils';\nimport createGenerateClassName from '../createGenerateClassName';\nimport { create } from 'jss';\nimport jssPreset from '../jssPreset'; // Default JSS instance.\n\nvar jss = create(jssPreset()); // Use a singleton or the provided one by the context.\n//\n// The counter-based approach doesn't tolerate any mistake.\n// It's much safer to use the same counter everywhere.\n\nvar generateClassName = createGenerateClassName(); // Exported for test purposes\n\nexport var sheetsManager = new Map();\nvar defaultOptions = {\n disableGeneration: false,\n generateClassName: generateClassName,\n jss: jss,\n sheetsCache: null,\n sheetsManager: sheetsManager,\n sheetsRegistry: null\n};\nexport var StylesContext = React.createContext(defaultOptions);\n\nif (process.env.NODE_ENV !== 'production') {\n StylesContext.displayName = 'StylesContext';\n}\n\nvar injectFirstNode;\nexport default function StylesProvider(props) {\n var children = props.children,\n _props$injectFirst = props.injectFirst,\n injectFirst = _props$injectFirst === void 0 ? false : _props$injectFirst,\n _props$disableGenerat = props.disableGeneration,\n disableGeneration = _props$disableGenerat === void 0 ? false : _props$disableGenerat,\n localOptions = _objectWithoutProperties(props, [\"children\", \"injectFirst\", \"disableGeneration\"]);\n\n var outerOptions = React.useContext(StylesContext);\n\n var context = _extends({}, outerOptions, {\n disableGeneration: disableGeneration\n }, localOptions);\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof window === 'undefined' && !context.sheetsManager) {\n console.error('Material-UI: you need to use the ServerStyleSheets API when rendering on the server.');\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (context.jss.options.insertionPoint && injectFirst) {\n console.error('Material-UI: you cannot use a custom insertionPoint and at the same time.');\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (injectFirst && localOptions.jss) {\n console.error('Material-UI: you cannot use the jss and injectFirst props at the same time.');\n }\n }\n\n if (!context.jss.options.insertionPoint && injectFirst && typeof window !== 'undefined') {\n if (!injectFirstNode) {\n var head = document.head;\n injectFirstNode = document.createComment('mui-inject-first');\n head.insertBefore(injectFirstNode, head.firstChild);\n }\n\n context.jss = create({\n plugins: jssPreset().plugins,\n insertionPoint: injectFirstNode\n });\n }\n\n return React.createElement(StylesContext.Provider, {\n value: context\n }, children);\n}\nprocess.env.NODE_ENV !== \"production\" ? StylesProvider.propTypes = {\n /**\n * Your component tree.\n */\n children: PropTypes.node.isRequired,\n\n /**\n * You can disable the generation of the styles with this option.\n * It can be useful when traversing the React tree outside of the HTML\n * rendering step on the server.\n * Let's say you are using react-apollo to extract all\n * the queries made by the interface server-side - you can significantly speed up the traversal with this prop.\n */\n disableGeneration: PropTypes.bool,\n\n /**\n * JSS's class name generator.\n */\n generateClassName: PropTypes.func,\n\n /**\n * By default, the styles are injected last in the element of the page.\n * As a result, they gain more specificity than any other style sheet.\n * If you want to override Material-UI's styles, set this prop.\n */\n injectFirst: PropTypes.bool,\n\n /**\n * JSS's instance.\n */\n jss: PropTypes.object,\n\n /**\n * @ignore\n */\n serverGenerateClassName: PropTypes.func,\n\n /**\n * @ignore\n *\n * Beta feature.\n *\n * Cache for the sheets.\n */\n sheetsCache: PropTypes.object,\n\n /**\n * @ignore\n *\n * The sheetsManager is used to deduplicate style sheet injection in the page.\n * It's deduplicating using the (theme, styles) couple.\n * On the server, you should provide a new instance for each request.\n */\n sheetsManager: PropTypes.object,\n\n /**\n * @ignore\n *\n * Collect the sheets.\n */\n sheetsRegistry: PropTypes.object\n} : void 0;\n\nif (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? StylesProvider.propTypes = exactProp(StylesProvider.propTypes) : void 0;\n}","/* eslint-disable import/prefer-default-export */\n// Global index counter to preserve source order.\n// We create the style sheet during at the creation of the component,\n// children are handled after the parents, so the order of style elements would be parent->child.\n// It is a problem though when a parent passes a className\n// which needs to override any child's styles.\n// StyleSheet of the child has a higher specificity, because of the source order.\n// So our solution is to render sheets them in the reverse order child->sheet, so\n// that parent has a higher specificity.\nvar indexCounter = -1e9;\nexport function increment() {\n indexCounter += 1;\n\n if (process.env.NODE_ENV !== 'production') {\n if (indexCounter >= 0) {\n console.warn(['Material-UI: you might have a memory leak.', 'The indexCounter is not supposed to grow that much.'].join('\\n'));\n }\n }\n\n return indexCounter;\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nexport function isPlainObject(item) {\n return item && _typeof(item) === 'object' && item.constructor === Object;\n}\nexport default function deepmerge(target, source) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n clone: true\n };\n var output = options.clone ? _extends({}, target) : target;\n\n if (isPlainObject(target) && isPlainObject(source)) {\n Object.keys(source).forEach(function (key) {\n // Avoid prototype pollution\n if (key === '__proto__') {\n return;\n }\n\n if (isPlainObject(source[key]) && key in target) {\n output[key] = deepmerge(target[key], source[key], options);\n } else {\n output[key] = source[key];\n }\n });\n }\n\n return output;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport { deepmerge } from '@material-ui/utils';\nimport noopTheme from './noopTheme';\nexport default function getStylesCreator(stylesOrCreator) {\n var themingEnabled = typeof stylesOrCreator === 'function';\n\n if (process.env.NODE_ENV !== 'production') {\n if (_typeof(stylesOrCreator) !== 'object' && !themingEnabled) {\n console.error(['Material-UI: the `styles` argument provided is invalid.', 'You need to provide a function generating the styles or a styles object.'].join('\\n'));\n }\n }\n\n return {\n create: function create(theme, name) {\n var styles;\n\n try {\n styles = themingEnabled ? stylesOrCreator(theme) : stylesOrCreator;\n } catch (err) {\n if (process.env.NODE_ENV !== 'production') {\n if (themingEnabled === true && theme === noopTheme) {\n // TODO: prepend error message/name instead\n console.error(['Material-UI: the `styles` argument provided is invalid.', 'You are providing a function without a theme in the context.', 'One of the parent elements needs to use a ThemeProvider.'].join('\\n'));\n }\n }\n\n throw err;\n }\n\n if (!name || !theme.overrides || !theme.overrides[name]) {\n return styles;\n }\n\n var overrides = theme.overrides[name];\n\n var stylesWithOverrides = _extends({}, styles);\n\n Object.keys(overrides).forEach(function (key) {\n if (process.env.NODE_ENV !== 'production') {\n if (!stylesWithOverrides[key]) {\n console.warn(['Material-UI: you are trying to override a style that does not exist.', \"Fix the `\".concat(key, \"` key of `theme.overrides.\").concat(name, \"`.\")].join('\\n'));\n }\n }\n\n stylesWithOverrides[key] = deepmerge(stylesWithOverrides[key], overrides[key]);\n });\n return stylesWithOverrides;\n },\n options: {}\n };\n}","// We use the same empty object to ref count the styles that don't need a theme object.\nvar noopTheme = {};\nexport default noopTheme;","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport React from 'react';\nimport { getDynamicStyles } from 'jss';\nimport mergeClasses from '../mergeClasses';\nimport multiKeyStore from './multiKeyStore';\nimport useTheme from '../useTheme';\nimport { StylesContext } from '../StylesProvider';\nimport { increment } from './indexCounter';\nimport getStylesCreator from '../getStylesCreator';\nimport noopTheme from '../getStylesCreator/noopTheme';\n\nfunction getClasses(_ref, classes, Component) {\n var state = _ref.state,\n stylesOptions = _ref.stylesOptions;\n\n if (stylesOptions.disableGeneration) {\n return classes || {};\n }\n\n if (!state.cacheClasses) {\n state.cacheClasses = {\n // Cache for the finalized classes value.\n value: null,\n // Cache for the last used classes prop pointer.\n lastProp: null,\n // Cache for the last used rendered classes pointer.\n lastJSS: {}\n };\n } // Tracks if either the rendered classes or classes prop has changed,\n // requiring the generation of a new finalized classes object.\n\n\n var generate = false;\n\n if (state.classes !== state.cacheClasses.lastJSS) {\n state.cacheClasses.lastJSS = state.classes;\n generate = true;\n }\n\n if (classes !== state.cacheClasses.lastProp) {\n state.cacheClasses.lastProp = classes;\n generate = true;\n }\n\n if (generate) {\n state.cacheClasses.value = mergeClasses({\n baseClasses: state.cacheClasses.lastJSS,\n newClasses: classes,\n Component: Component\n });\n }\n\n return state.cacheClasses.value;\n}\n\nfunction attach(_ref2, props) {\n var state = _ref2.state,\n theme = _ref2.theme,\n stylesOptions = _ref2.stylesOptions,\n stylesCreator = _ref2.stylesCreator,\n name = _ref2.name;\n\n if (stylesOptions.disableGeneration) {\n return;\n }\n\n var sheetManager = multiKeyStore.get(stylesOptions.sheetsManager, stylesCreator, theme);\n\n if (!sheetManager) {\n sheetManager = {\n refs: 0,\n staticSheet: null,\n dynamicStyles: null\n };\n multiKeyStore.set(stylesOptions.sheetsManager, stylesCreator, theme, sheetManager);\n }\n\n var options = _extends({}, stylesCreator.options, {}, stylesOptions, {\n theme: theme,\n flip: typeof stylesOptions.flip === 'boolean' ? stylesOptions.flip : theme.direction === 'rtl'\n });\n\n options.generateId = options.serverGenerateClassName || options.generateClassName;\n var sheetsRegistry = stylesOptions.sheetsRegistry;\n\n if (sheetManager.refs === 0) {\n var staticSheet;\n\n if (stylesOptions.sheetsCache) {\n staticSheet = multiKeyStore.get(stylesOptions.sheetsCache, stylesCreator, theme);\n }\n\n var styles = stylesCreator.create(theme, name);\n\n if (!staticSheet) {\n staticSheet = stylesOptions.jss.createStyleSheet(styles, _extends({\n link: false\n }, options));\n staticSheet.attach();\n\n if (stylesOptions.sheetsCache) {\n multiKeyStore.set(stylesOptions.sheetsCache, stylesCreator, theme, staticSheet);\n }\n }\n\n if (sheetsRegistry) {\n sheetsRegistry.add(staticSheet);\n }\n\n sheetManager.staticSheet = staticSheet;\n sheetManager.dynamicStyles = getDynamicStyles(styles);\n }\n\n if (sheetManager.dynamicStyles) {\n var dynamicSheet = stylesOptions.jss.createStyleSheet(sheetManager.dynamicStyles, _extends({\n link: true\n }, options));\n dynamicSheet.update(props);\n dynamicSheet.attach();\n state.dynamicSheet = dynamicSheet;\n state.classes = mergeClasses({\n baseClasses: sheetManager.staticSheet.classes,\n newClasses: dynamicSheet.classes\n });\n\n if (sheetsRegistry) {\n sheetsRegistry.add(dynamicSheet);\n }\n } else {\n state.classes = sheetManager.staticSheet.classes;\n }\n\n sheetManager.refs += 1;\n}\n\nfunction update(_ref3, props) {\n var state = _ref3.state;\n\n if (state.dynamicSheet) {\n state.dynamicSheet.update(props);\n }\n}\n\nfunction detach(_ref4) {\n var state = _ref4.state,\n theme = _ref4.theme,\n stylesOptions = _ref4.stylesOptions,\n stylesCreator = _ref4.stylesCreator;\n\n if (stylesOptions.disableGeneration) {\n return;\n }\n\n var sheetManager = multiKeyStore.get(stylesOptions.sheetsManager, stylesCreator, theme);\n sheetManager.refs -= 1;\n var sheetsRegistry = stylesOptions.sheetsRegistry;\n\n if (sheetManager.refs === 0) {\n multiKeyStore.delete(stylesOptions.sheetsManager, stylesCreator, theme);\n stylesOptions.jss.removeStyleSheet(sheetManager.staticSheet);\n\n if (sheetsRegistry) {\n sheetsRegistry.remove(sheetManager.staticSheet);\n }\n }\n\n if (state.dynamicSheet) {\n stylesOptions.jss.removeStyleSheet(state.dynamicSheet);\n\n if (sheetsRegistry) {\n sheetsRegistry.remove(state.dynamicSheet);\n }\n }\n}\n\nfunction useSynchronousEffect(func, values) {\n var key = React.useRef([]);\n var output; // Store \"generation\" key. Just returns a new object every time\n\n var currentKey = React.useMemo(function () {\n return {};\n }, values); // eslint-disable-line react-hooks/exhaustive-deps\n // \"the first render\", or \"memo dropped the value\"\n\n if (key.current !== currentKey) {\n key.current = currentKey;\n output = func();\n }\n\n React.useEffect(function () {\n return function () {\n if (output) {\n output();\n }\n };\n }, [currentKey] // eslint-disable-line react-hooks/exhaustive-deps\n );\n}\n\nexport default function makeStyles(stylesOrCreator) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var name = options.name,\n classNamePrefixOption = options.classNamePrefix,\n Component = options.Component,\n _options$defaultTheme = options.defaultTheme,\n defaultTheme = _options$defaultTheme === void 0 ? noopTheme : _options$defaultTheme,\n stylesOptions2 = _objectWithoutProperties(options, [\"name\", \"classNamePrefix\", \"Component\", \"defaultTheme\"]);\n\n var stylesCreator = getStylesCreator(stylesOrCreator);\n var classNamePrefix = name || classNamePrefixOption || 'makeStyles';\n stylesCreator.options = {\n index: increment(),\n name: name,\n meta: classNamePrefix,\n classNamePrefix: classNamePrefix\n };\n return function () {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var theme = useTheme() || defaultTheme;\n\n var stylesOptions = _extends({}, React.useContext(StylesContext), {}, stylesOptions2);\n\n var instance = React.useRef();\n var shouldUpdate = React.useRef();\n useSynchronousEffect(function () {\n var current = {\n name: name,\n state: {},\n stylesCreator: stylesCreator,\n stylesOptions: stylesOptions,\n theme: theme\n };\n attach(current, props);\n shouldUpdate.current = false;\n instance.current = current;\n return function () {\n detach(current);\n };\n }, [theme, stylesCreator]);\n React.useEffect(function () {\n if (shouldUpdate.current) {\n update(instance.current, props);\n }\n\n shouldUpdate.current = true;\n });\n return getClasses(instance.current, props.classes, Component);\n };\n}","/* eslint-disable no-restricted-syntax */\nexport default function getThemeProps(params) {\n var theme = params.theme,\n name = params.name,\n props = params.props;\n\n if (!theme || !theme.props || !theme.props[name]) {\n return props;\n } // Resolve default props, code borrow from React source.\n // https://github.com/facebook/react/blob/15a8f031838a553e41c0b66eb1bcf1da8448104d/packages/react/src/ReactElement.js#L221\n\n\n var defaultProps = theme.props[name];\n var propName;\n\n for (propName in defaultProps) {\n if (props[propName] === undefined) {\n props[propName] = defaultProps[propName];\n }\n }\n\n return props;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\nimport { chainPropTypes, getDisplayName } from '@material-ui/utils';\nimport makeStyles from '../makeStyles';\nimport getThemeProps from '../getThemeProps';\nimport useTheme from '../useTheme'; // Link a style sheet with a component.\n// It does not modify the component passed to it;\n// instead, it returns a new component, with a `classes` property.\n\nvar withStyles = function withStyles(stylesOrCreator) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return function (Component) {\n var defaultTheme = options.defaultTheme,\n _options$withTheme = options.withTheme,\n withTheme = _options$withTheme === void 0 ? false : _options$withTheme,\n name = options.name,\n stylesOptions = _objectWithoutProperties(options, [\"defaultTheme\", \"withTheme\", \"name\"]);\n\n if (process.env.NODE_ENV !== 'production') {\n if (Component === undefined) {\n throw new Error(['You are calling withStyles(styles)(Component) with an undefined component.', 'You may have forgotten to import it.'].join('\\n'));\n }\n }\n\n var classNamePrefix = name;\n\n if (process.env.NODE_ENV !== 'production') {\n if (!name) {\n // Provide a better DX outside production.\n var displayName = getDisplayName(Component);\n\n if (displayName !== undefined) {\n classNamePrefix = displayName;\n }\n }\n }\n\n var useStyles = makeStyles(stylesOrCreator, _extends({\n defaultTheme: defaultTheme,\n Component: Component,\n name: name || Component.displayName,\n classNamePrefix: classNamePrefix\n }, stylesOptions));\n var WithStyles = React.forwardRef(function WithStyles(props, ref) {\n var classesProp = props.classes,\n innerRef = props.innerRef,\n other = _objectWithoutProperties(props, [\"classes\", \"innerRef\"]); // The wrapper receives only user supplied props, which could be a subset of\n // the actual props Component might receive due to merging with defaultProps.\n // So copying it here would give us the same result in the wrapper as well.\n\n\n var classes = useStyles(_extends({}, Component.defaultProps, {}, props));\n var theme;\n var more = other;\n\n if (typeof name === 'string' || withTheme) {\n // name and withTheme are invariant in the outer scope\n // eslint-disable-next-line react-hooks/rules-of-hooks\n theme = useTheme() || defaultTheme;\n\n if (name) {\n more = getThemeProps({\n theme: theme,\n name: name,\n props: other\n });\n } // Provide the theme to the wrapped component.\n // So we don't have to use the `withTheme()` Higher-order Component.\n\n\n if (withTheme && !more.theme) {\n more.theme = theme;\n }\n }\n\n return React.createElement(Component, _extends({\n ref: innerRef || ref,\n classes: classes\n }, more));\n });\n process.env.NODE_ENV !== \"production\" ? WithStyles.propTypes = {\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * Use that prop to pass a ref to the decorated component.\n * @deprecated\n */\n innerRef: chainPropTypes(PropTypes.oneOfType([PropTypes.func, PropTypes.object]), function (props) {\n if (props.innerRef == null) {\n return null;\n }\n\n return null; // return new Error(\n // 'Material-UI: the `innerRef` prop is deprecated and will be removed in v5. ' +\n // 'Refs are now automatically forwarded to the inner component.',\n // );\n })\n } : void 0;\n\n if (process.env.NODE_ENV !== 'production') {\n WithStyles.displayName = \"WithStyles(\".concat(getDisplayName(Component), \")\");\n }\n\n hoistNonReactStatics(WithStyles, Component);\n\n if (process.env.NODE_ENV !== 'production') {\n // Exposed for test purposes.\n WithStyles.Naked = Component;\n WithStyles.options = options;\n WithStyles.useStyles = useStyles;\n }\n\n return WithStyles;\n };\n};\n\nexport default withStyles;","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\n// Sorted ASC by size. That's important.\n// It can't be configured as it's used statically for propTypes.\nexport var keys = ['xs', 'sm', 'md', 'lg', 'xl']; // Keep in mind that @media is inclusive by the CSS specification.\n\nexport default function createBreakpoints(breakpoints) {\n var _breakpoints$values = breakpoints.values,\n values = _breakpoints$values === void 0 ? {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1280,\n xl: 1920\n } : _breakpoints$values,\n _breakpoints$unit = breakpoints.unit,\n unit = _breakpoints$unit === void 0 ? 'px' : _breakpoints$unit,\n _breakpoints$step = breakpoints.step,\n step = _breakpoints$step === void 0 ? 5 : _breakpoints$step,\n other = _objectWithoutProperties(breakpoints, [\"values\", \"unit\", \"step\"]);\n\n function up(key) {\n var value = typeof values[key] === 'number' ? values[key] : key;\n return \"@media (min-width:\".concat(value).concat(unit, \")\");\n }\n\n function down(key) {\n var endIndex = keys.indexOf(key) + 1;\n var upperbound = values[keys[endIndex]];\n\n if (endIndex === keys.length) {\n // xl down applies to all sizes\n return up('xs');\n }\n\n var value = typeof upperbound === 'number' && endIndex > 0 ? upperbound : key;\n return \"@media (max-width:\".concat(value - step / 100).concat(unit, \")\");\n }\n\n function between(start, end) {\n var endIndex = keys.indexOf(end);\n\n if (endIndex === keys.length - 1) {\n return up(start);\n }\n\n return \"@media (min-width:\".concat(typeof values[start] === 'number' ? values[start] : start).concat(unit, \") and \") + \"(max-width:\".concat((endIndex !== -1 && typeof values[keys[endIndex + 1]] === 'number' ? values[keys[endIndex + 1]] : end) - step / 100).concat(unit, \")\");\n }\n\n function only(key) {\n return between(key, key);\n }\n\n function width(key) {\n return values[key];\n }\n\n return _extends({\n keys: keys,\n values: values,\n up: up,\n down: down,\n between: between,\n only: only,\n width: width\n }, other);\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nexport default function createMixins(breakpoints, spacing, mixins) {\n var _toolbar;\n\n return _extends({\n gutters: function gutters() {\n var styles = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // To deprecate in v4.1\n // warning(\n // false,\n // [\n // 'Material-UI: theme.mixins.gutters() is deprecated.',\n // 'You can use the source of the mixin directly:',\n // `\n // paddingLeft: theme.spacing(2),\n // paddingRight: theme.spacing(2),\n // [theme.breakpoints.up('sm')]: {\n // paddingLeft: theme.spacing(3),\n // paddingRight: theme.spacing(3),\n // },\n // `,\n // ].join('\\n'),\n // );\n return _extends({\n paddingLeft: spacing(2),\n paddingRight: spacing(2)\n }, styles, _defineProperty({}, breakpoints.up('sm'), _extends({\n paddingLeft: spacing(3),\n paddingRight: spacing(3)\n }, styles[breakpoints.up('sm')])));\n },\n toolbar: (_toolbar = {\n minHeight: 56\n }, _defineProperty(_toolbar, \"\".concat(breakpoints.up('xs'), \" and (orientation: landscape)\"), {\n minHeight: 48\n }), _defineProperty(_toolbar, breakpoints.up('sm'), {\n minHeight: 64\n }), _toolbar)\n }, mixins);\n}","var common = {\n black: '#000',\n white: '#fff'\n};\nexport default common;","var grey = {\n 50: '#fafafa',\n 100: '#f5f5f5',\n 200: '#eeeeee',\n 300: '#e0e0e0',\n 400: '#bdbdbd',\n 500: '#9e9e9e',\n 600: '#757575',\n 700: '#616161',\n 800: '#424242',\n 900: '#212121',\n A100: '#d5d5d5',\n A200: '#aaaaaa',\n A400: '#303030',\n A700: '#616161'\n};\nexport default grey;","var indigo = {\n 50: '#e8eaf6',\n 100: '#c5cae9',\n 200: '#9fa8da',\n 300: '#7986cb',\n 400: '#5c6bc0',\n 500: '#3f51b5',\n 600: '#3949ab',\n 700: '#303f9f',\n 800: '#283593',\n 900: '#1a237e',\n A100: '#8c9eff',\n A200: '#536dfe',\n A400: '#3d5afe',\n A700: '#304ffe'\n};\nexport default indigo;","var pink = {\n 50: '#fce4ec',\n 100: '#f8bbd0',\n 200: '#f48fb1',\n 300: '#f06292',\n 400: '#ec407a',\n 500: '#e91e63',\n 600: '#d81b60',\n 700: '#c2185b',\n 800: '#ad1457',\n 900: '#880e4f',\n A100: '#ff80ab',\n A200: '#ff4081',\n A400: '#f50057',\n A700: '#c51162'\n};\nexport default pink;","var red = {\n 50: '#ffebee',\n 100: '#ffcdd2',\n 200: '#ef9a9a',\n 300: '#e57373',\n 400: '#ef5350',\n 500: '#f44336',\n 600: '#e53935',\n 700: '#d32f2f',\n 800: '#c62828',\n 900: '#b71c1c',\n A100: '#ff8a80',\n A200: '#ff5252',\n A400: '#ff1744',\n A700: '#d50000'\n};\nexport default red;","var orange = {\n 50: '#fff3e0',\n 100: '#ffe0b2',\n 200: '#ffcc80',\n 300: '#ffb74d',\n 400: '#ffa726',\n 500: '#ff9800',\n 600: '#fb8c00',\n 700: '#f57c00',\n 800: '#ef6c00',\n 900: '#e65100',\n A100: '#ffd180',\n A200: '#ffab40',\n A400: '#ff9100',\n A700: '#ff6d00'\n};\nexport default orange;","var blue = {\n 50: '#e3f2fd',\n 100: '#bbdefb',\n 200: '#90caf9',\n 300: '#64b5f6',\n 400: '#42a5f5',\n 500: '#2196f3',\n 600: '#1e88e5',\n 700: '#1976d2',\n 800: '#1565c0',\n 900: '#0d47a1',\n A100: '#82b1ff',\n A200: '#448aff',\n A400: '#2979ff',\n A700: '#2962ff'\n};\nexport default blue;","var green = {\n 50: '#e8f5e9',\n 100: '#c8e6c9',\n 200: '#a5d6a7',\n 300: '#81c784',\n 400: '#66bb6a',\n 500: '#4caf50',\n 600: '#43a047',\n 700: '#388e3c',\n 800: '#2e7d32',\n 900: '#1b5e20',\n A100: '#b9f6ca',\n A200: '#69f0ae',\n A400: '#00e676',\n A700: '#00c853'\n};\nexport default green;","/* eslint-disable no-use-before-define */\n\n/**\n * Returns a number whose value is limited to the given range.\n *\n * @param {number} value The value to be clamped\n * @param {number} min The lower boundary of the output range\n * @param {number} max The upper boundary of the output range\n * @returns {number} A number in the range [min, max]\n */\nfunction clamp(value) {\n var min = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var max = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n\n if (process.env.NODE_ENV !== 'production') {\n if (value < min || value > max) {\n console.error(\"Material-UI: the value provided \".concat(value, \" is out of range [\").concat(min, \", \").concat(max, \"].\"));\n }\n }\n\n return Math.min(Math.max(min, value), max);\n}\n/**\n * Converts a color from CSS hex format to CSS rgb format.\n *\n * @param {string} color - Hex color, i.e. #nnn or #nnnnnn\n * @returns {string} A CSS rgb color string\n */\n\n\nexport function hexToRgb(color) {\n color = color.substr(1);\n var re = new RegExp(\".{1,\".concat(color.length / 3, \"}\"), 'g');\n var colors = color.match(re);\n\n if (colors && colors[0].length === 1) {\n colors = colors.map(function (n) {\n return n + n;\n });\n }\n\n return colors ? \"rgb(\".concat(colors.map(function (n) {\n return parseInt(n, 16);\n }).join(', '), \")\") : '';\n}\n\nfunction intToHex(int) {\n var hex = int.toString(16);\n return hex.length === 1 ? \"0\".concat(hex) : hex;\n}\n/**\n * Converts a color from CSS rgb format to CSS hex format.\n *\n * @param {string} color - RGB color, i.e. rgb(n, n, n)\n * @returns {string} A CSS rgb color string, i.e. #nnnnnn\n */\n\n\nexport function rgbToHex(color) {\n // Idempotent\n if (color.indexOf('#') === 0) {\n return color;\n }\n\n var _decomposeColor = decomposeColor(color),\n values = _decomposeColor.values;\n\n return \"#\".concat(values.map(function (n) {\n return intToHex(n);\n }).join(''));\n}\n/**\n * Converts a color from hsl format to rgb format.\n *\n * @param {string} color - HSL color values\n * @returns {string} rgb color values\n */\n\nexport function hslToRgb(color) {\n color = decomposeColor(color);\n var _color = color,\n values = _color.values;\n var h = values[0];\n var s = values[1] / 100;\n var l = values[2] / 100;\n var a = s * Math.min(l, 1 - l);\n\n var f = function f(n) {\n var k = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : (n + h / 30) % 12;\n return l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n };\n\n var type = 'rgb';\n var rgb = [Math.round(f(0) * 255), Math.round(f(8) * 255), Math.round(f(4) * 255)];\n\n if (color.type === 'hsla') {\n type += 'a';\n rgb.push(values[3]);\n }\n\n return recomposeColor({\n type: type,\n values: rgb\n });\n}\n/**\n * Returns an object with the type and values of a color.\n *\n * Note: Does not support rgb % values.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @returns {object} - A MUI color object: {type: string, values: number[]}\n */\n\nexport function decomposeColor(color) {\n // Idempotent\n if (color.type) {\n return color;\n }\n\n if (color.charAt(0) === '#') {\n return decomposeColor(hexToRgb(color));\n }\n\n var marker = color.indexOf('(');\n var type = color.substring(0, marker);\n\n if (['rgb', 'rgba', 'hsl', 'hsla'].indexOf(type) === -1) {\n throw new Error([\"Material-UI: unsupported `\".concat(color, \"` color.\"), 'We support the following formats: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla().'].join('\\n'));\n }\n\n var values = color.substring(marker + 1, color.length - 1).split(',');\n values = values.map(function (value) {\n return parseFloat(value);\n });\n return {\n type: type,\n values: values\n };\n}\n/**\n * Converts a color object with type and values to a string.\n *\n * @param {object} color - Decomposed color\n * @param {string} color.type - One of: 'rgb', 'rgba', 'hsl', 'hsla'\n * @param {array} color.values - [n,n,n] or [n,n,n,n]\n * @returns {string} A CSS color string\n */\n\nexport function recomposeColor(color) {\n var type = color.type;\n var values = color.values;\n\n if (type.indexOf('rgb') !== -1) {\n // Only convert the first 3 values to int (i.e. not alpha)\n values = values.map(function (n, i) {\n return i < 3 ? parseInt(n, 10) : n;\n });\n } else if (type.indexOf('hsl') !== -1) {\n values[1] = \"\".concat(values[1], \"%\");\n values[2] = \"\".concat(values[2], \"%\");\n }\n\n return \"\".concat(type, \"(\").concat(values.join(', '), \")\");\n}\n/**\n * Calculates the contrast ratio between two colors.\n *\n * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests\n *\n * @param {string} foreground - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {string} background - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @returns {number} A contrast ratio value in the range 0 - 21.\n */\n\nexport function getContrastRatio(foreground, background) {\n var lumA = getLuminance(foreground);\n var lumB = getLuminance(background);\n return (Math.max(lumA, lumB) + 0.05) / (Math.min(lumA, lumB) + 0.05);\n}\n/**\n * The relative brightness of any point in a color space,\n * normalized to 0 for darkest black and 1 for lightest white.\n *\n * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @returns {number} The relative brightness of the color in the range 0 - 1\n */\n\nexport function getLuminance(color) {\n color = decomposeColor(color);\n var rgb = color.type === 'hsl' ? decomposeColor(hslToRgb(color)).values : color.values;\n rgb = rgb.map(function (val) {\n val /= 255; // normalized\n\n return val <= 0.03928 ? val / 12.92 : Math.pow((val + 0.055) / 1.055, 2.4);\n }); // Truncate at 3 digits\n\n return Number((0.2126 * rgb[0] + 0.7152 * rgb[1] + 0.0722 * rgb[2]).toFixed(3));\n}\n/**\n * Darken or lighten a color, depending on its luminance.\n * Light colors are darkened, dark colors are lightened.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} coefficient=0.15 - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\nexport function emphasize(color) {\n var coefficient = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0.15;\n return getLuminance(color) > 0.5 ? darken(color, coefficient) : lighten(color, coefficient);\n}\n/**\n * Set the absolute transparency of a color.\n * Any existing alpha values are overwritten.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} value - value to set the alpha channel to in the range 0 -1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\nexport function fade(color, value) {\n color = decomposeColor(color);\n value = clamp(value);\n\n if (color.type === 'rgb' || color.type === 'hsl') {\n color.type += 'a';\n }\n\n color.values[3] = value;\n return recomposeColor(color);\n}\n/**\n * Darkens a color.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} coefficient - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\nexport function darken(color, coefficient) {\n color = decomposeColor(color);\n coefficient = clamp(coefficient);\n\n if (color.type.indexOf('hsl') !== -1) {\n color.values[2] *= 1 - coefficient;\n } else if (color.type.indexOf('rgb') !== -1) {\n for (var i = 0; i < 3; i += 1) {\n color.values[i] *= 1 - coefficient;\n }\n }\n\n return recomposeColor(color);\n}\n/**\n * Lightens a color.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} coefficient - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\nexport function lighten(color, coefficient) {\n color = decomposeColor(color);\n coefficient = clamp(coefficient);\n\n if (color.type.indexOf('hsl') !== -1) {\n color.values[2] += (100 - color.values[2]) * coefficient;\n } else if (color.type.indexOf('rgb') !== -1) {\n for (var i = 0; i < 3; i += 1) {\n color.values[i] += (255 - color.values[i]) * coefficient;\n }\n }\n\n return recomposeColor(color);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport { deepmerge } from '@material-ui/utils';\nimport common from '../colors/common';\nimport grey from '../colors/grey';\nimport indigo from '../colors/indigo';\nimport pink from '../colors/pink';\nimport red from '../colors/red';\nimport orange from '../colors/orange';\nimport blue from '../colors/blue';\nimport green from '../colors/green';\nimport { darken, getContrastRatio, lighten } from './colorManipulator';\nexport var light = {\n // The colors used to style the text.\n text: {\n // The most important text.\n primary: 'rgba(0, 0, 0, 0.87)',\n // Secondary text.\n secondary: 'rgba(0, 0, 0, 0.54)',\n // Disabled text have even lower visual prominence.\n disabled: 'rgba(0, 0, 0, 0.38)',\n // Text hints.\n hint: 'rgba(0, 0, 0, 0.38)'\n },\n // The color used to divide different elements.\n divider: 'rgba(0, 0, 0, 0.12)',\n // The background colors used to style the surfaces.\n // Consistency between these values is important.\n background: {\n paper: common.white,\n default: grey[50]\n },\n // The colors used to style the action elements.\n action: {\n // The color of an active action like an icon button.\n active: 'rgba(0, 0, 0, 0.54)',\n // The color of an hovered action.\n hover: 'rgba(0, 0, 0, 0.04)',\n hoverOpacity: 0.04,\n // The color of a selected action.\n selected: 'rgba(0, 0, 0, 0.08)',\n selectedOpacity: 0.08,\n // The color of a disabled action.\n disabled: 'rgba(0, 0, 0, 0.26)',\n // The background color of a disabled action.\n disabledBackground: 'rgba(0, 0, 0, 0.12)',\n disabledOpacity: 0.38,\n focus: 'rgba(0, 0, 0, 0.12)',\n focusOpacity: 0.12,\n activatedOpacity: 0.12\n }\n};\nexport var dark = {\n text: {\n primary: common.white,\n secondary: 'rgba(255, 255, 255, 0.7)',\n disabled: 'rgba(255, 255, 255, 0.5)',\n hint: 'rgba(255, 255, 255, 0.5)',\n icon: 'rgba(255, 255, 255, 0.5)'\n },\n divider: 'rgba(255, 255, 255, 0.12)',\n background: {\n paper: grey[800],\n default: '#303030'\n },\n action: {\n active: common.white,\n hover: 'rgba(255, 255, 255, 0.08)',\n hoverOpacity: 0.08,\n selected: 'rgba(255, 255, 255, 0.16)',\n selectedOpacity: 0.16,\n disabled: 'rgba(255, 255, 255, 0.3)',\n disabledBackground: 'rgba(255, 255, 255, 0.12)',\n disabledOpacity: 0.38,\n focus: 'rgba(255, 255, 255, 0.12)',\n focusOpacity: 0.12,\n activatedOpacity: 0.24\n }\n};\n\nfunction addLightOrDark(intent, direction, shade, tonalOffset) {\n if (!intent[direction]) {\n if (intent.hasOwnProperty(shade)) {\n intent[direction] = intent[shade];\n } else if (direction === 'light') {\n intent.light = lighten(intent.main, tonalOffset);\n } else if (direction === 'dark') {\n intent.dark = darken(intent.main, tonalOffset * 1.5);\n }\n }\n}\n\nexport default function createPalette(palette) {\n var _palette$primary = palette.primary,\n primary = _palette$primary === void 0 ? {\n light: indigo[300],\n main: indigo[500],\n dark: indigo[700]\n } : _palette$primary,\n _palette$secondary = palette.secondary,\n secondary = _palette$secondary === void 0 ? {\n light: pink.A200,\n main: pink.A400,\n dark: pink.A700\n } : _palette$secondary,\n _palette$error = palette.error,\n error = _palette$error === void 0 ? {\n light: red[300],\n main: red[500],\n dark: red[700]\n } : _palette$error,\n _palette$warning = palette.warning,\n warning = _palette$warning === void 0 ? {\n light: orange[300],\n main: orange[500],\n dark: orange[700]\n } : _palette$warning,\n _palette$info = palette.info,\n info = _palette$info === void 0 ? {\n light: blue[300],\n main: blue[500],\n dark: blue[700]\n } : _palette$info,\n _palette$success = palette.success,\n success = _palette$success === void 0 ? {\n light: green[300],\n main: green[500],\n dark: green[700]\n } : _palette$success,\n _palette$type = palette.type,\n type = _palette$type === void 0 ? 'light' : _palette$type,\n _palette$contrastThre = palette.contrastThreshold,\n contrastThreshold = _palette$contrastThre === void 0 ? 3 : _palette$contrastThre,\n _palette$tonalOffset = palette.tonalOffset,\n tonalOffset = _palette$tonalOffset === void 0 ? 0.2 : _palette$tonalOffset,\n other = _objectWithoutProperties(palette, [\"primary\", \"secondary\", \"error\", \"warning\", \"info\", \"success\", \"type\", \"contrastThreshold\", \"tonalOffset\"]); // Use the same logic as\n // Bootstrap: https://github.com/twbs/bootstrap/blob/1d6e3710dd447de1a200f29e8fa521f8a0908f70/scss/_functions.scss#L59\n // and material-components-web https://github.com/material-components/material-components-web/blob/ac46b8863c4dab9fc22c4c662dc6bd1b65dd652f/packages/mdc-theme/_functions.scss#L54\n\n\n function getContrastText(background) {\n var contrastText = getContrastRatio(background, dark.text.primary) >= contrastThreshold ? dark.text.primary : light.text.primary;\n\n if (process.env.NODE_ENV !== 'production') {\n var contrast = getContrastRatio(background, contrastText);\n\n if (contrast < 3) {\n console.error([\"Material-UI: the contrast ratio of \".concat(contrast, \":1 for \").concat(contrastText, \" on \").concat(background), 'falls below the WCAG recommended absolute minimum contrast ratio of 3:1.', 'https://www.w3.org/TR/2008/REC-WCAG20-20081211/#visual-audio-contrast-contrast'].join('\\n'));\n }\n }\n\n return contrastText;\n }\n\n var augmentColor = function augmentColor(color) {\n var mainShade = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 500;\n var lightShade = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 300;\n var darkShade = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 700;\n color = _extends({}, color);\n\n if (!color.main && color[mainShade]) {\n color.main = color[mainShade];\n }\n\n if (!color.main) {\n throw new Error(['Material-UI: the color provided to augmentColor(color) is invalid.', \"The color object needs to have a `main` property or a `\".concat(mainShade, \"` property.\")].join('\\n'));\n }\n\n if (typeof color.main !== 'string') {\n throw new Error(['Material-UI: the color provided to augmentColor(color) is invalid.', \"`color.main` should be a string, but `\".concat(JSON.stringify(color.main), \"` was provided instead.\"), '', 'Did you intend to use one of the following approaches?', '', 'import { green } from \"@material-ui/core/colors\";', '', 'const theme1 = createMuiTheme({ palette: {', ' primary: green,', '} });', '', 'const theme2 = createMuiTheme({ palette: {', ' primary: { main: green[500] },', '} });'].join('\\n'));\n }\n\n addLightOrDark(color, 'light', lightShade, tonalOffset);\n addLightOrDark(color, 'dark', darkShade, tonalOffset);\n\n if (!color.contrastText) {\n color.contrastText = getContrastText(color.main);\n }\n\n return color;\n };\n\n var types = {\n dark: dark,\n light: light\n };\n\n if (process.env.NODE_ENV !== 'production') {\n if (!types[type]) {\n console.error(\"Material-UI: the palette type `\".concat(type, \"` is not supported.\"));\n }\n }\n\n var paletteOutput = deepmerge(_extends({\n // A collection of common colors.\n common: common,\n // The palette type, can be light or dark.\n type: type,\n // The colors used to represent primary interface elements for a user.\n primary: augmentColor(primary),\n // The colors used to represent secondary interface elements for a user.\n secondary: augmentColor(secondary, 'A400', 'A200', 'A700'),\n // The colors used to represent interface elements that the user should be made aware of.\n error: augmentColor(error),\n // The colors used to represent potentially dangerous actions or important messages.\n warning: augmentColor(warning),\n // The colors used to present information to the user that is neutral and not necessarily important.\n info: augmentColor(info),\n // The colors used to indicate the successful completion of an action that user triggered.\n success: augmentColor(success),\n // The grey colors.\n grey: grey,\n // Used by `getContrastText()` to maximize the contrast between\n // the background and the text.\n contrastThreshold: contrastThreshold,\n // Takes a background color and returns the text color that maximizes the contrast.\n getContrastText: getContrastText,\n // Generate a rich color object.\n augmentColor: augmentColor,\n // Used by the functions below to shift a color's luminance by approximately\n // two indexes within its tonal palette.\n // E.g., shift from Red 500 to Red 300 or Red 700.\n tonalOffset: tonalOffset\n }, types[type]), other);\n return paletteOutput;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport { deepmerge } from '@material-ui/utils';\n\nfunction round(value) {\n return Math.round(value * 1e5) / 1e5;\n}\n\nvar caseAllCaps = {\n textTransform: 'uppercase'\n};\nvar defaultFontFamily = '\"Roboto\", \"Helvetica\", \"Arial\", sans-serif';\n/**\n * @see @link{https://material.io/design/typography/the-type-system.html}\n * @see @link{https://material.io/design/typography/understanding-typography.html}\n */\n\nexport default function createTypography(palette, typography) {\n var _ref = typeof typography === 'function' ? typography(palette) : typography,\n _ref$fontFamily = _ref.fontFamily,\n fontFamily = _ref$fontFamily === void 0 ? defaultFontFamily : _ref$fontFamily,\n _ref$fontSize = _ref.fontSize,\n fontSize = _ref$fontSize === void 0 ? 14 : _ref$fontSize,\n _ref$fontWeightLight = _ref.fontWeightLight,\n fontWeightLight = _ref$fontWeightLight === void 0 ? 300 : _ref$fontWeightLight,\n _ref$fontWeightRegula = _ref.fontWeightRegular,\n fontWeightRegular = _ref$fontWeightRegula === void 0 ? 400 : _ref$fontWeightRegula,\n _ref$fontWeightMedium = _ref.fontWeightMedium,\n fontWeightMedium = _ref$fontWeightMedium === void 0 ? 500 : _ref$fontWeightMedium,\n _ref$fontWeightBold = _ref.fontWeightBold,\n fontWeightBold = _ref$fontWeightBold === void 0 ? 700 : _ref$fontWeightBold,\n _ref$htmlFontSize = _ref.htmlFontSize,\n htmlFontSize = _ref$htmlFontSize === void 0 ? 16 : _ref$htmlFontSize,\n allVariants = _ref.allVariants,\n pxToRem2 = _ref.pxToRem,\n other = _objectWithoutProperties(_ref, [\"fontFamily\", \"fontSize\", \"fontWeightLight\", \"fontWeightRegular\", \"fontWeightMedium\", \"fontWeightBold\", \"htmlFontSize\", \"allVariants\", \"pxToRem\"]);\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof fontSize !== 'number') {\n console.error('Material-UI: `fontSize` is required to be a number.');\n }\n\n if (typeof htmlFontSize !== 'number') {\n console.error('Material-UI: `htmlFontSize` is required to be a number.');\n }\n }\n\n var coef = fontSize / 14;\n\n var pxToRem = pxToRem2 || function (size) {\n return \"\".concat(size / htmlFontSize * coef, \"rem\");\n };\n\n var buildVariant = function buildVariant(fontWeight, size, lineHeight, letterSpacing, casing) {\n return _extends({\n fontFamily: fontFamily,\n fontWeight: fontWeight,\n fontSize: pxToRem(size),\n // Unitless following https://meyerweb.com/eric/thoughts/2006/02/08/unitless-line-heights/\n lineHeight: lineHeight\n }, fontFamily === defaultFontFamily ? {\n letterSpacing: \"\".concat(round(letterSpacing / size), \"em\")\n } : {}, {}, casing, {}, allVariants);\n };\n\n var variants = {\n h1: buildVariant(fontWeightLight, 96, 1.167, -1.5),\n h2: buildVariant(fontWeightLight, 60, 1.2, -0.5),\n h3: buildVariant(fontWeightRegular, 48, 1.167, 0),\n h4: buildVariant(fontWeightRegular, 34, 1.235, 0.25),\n h5: buildVariant(fontWeightRegular, 24, 1.334, 0),\n h6: buildVariant(fontWeightMedium, 20, 1.6, 0.15),\n subtitle1: buildVariant(fontWeightRegular, 16, 1.75, 0.15),\n subtitle2: buildVariant(fontWeightMedium, 14, 1.57, 0.1),\n body1: buildVariant(fontWeightRegular, 16, 1.5, 0.15),\n body2: buildVariant(fontWeightRegular, 14, 1.43, 0.15),\n button: buildVariant(fontWeightMedium, 14, 1.75, 0.4, caseAllCaps),\n caption: buildVariant(fontWeightRegular, 12, 1.66, 0.4),\n overline: buildVariant(fontWeightRegular, 12, 2.66, 1, caseAllCaps)\n };\n return deepmerge(_extends({\n htmlFontSize: htmlFontSize,\n pxToRem: pxToRem,\n round: round,\n // TODO v5: remove\n fontFamily: fontFamily,\n fontSize: fontSize,\n fontWeightLight: fontWeightLight,\n fontWeightRegular: fontWeightRegular,\n fontWeightMedium: fontWeightMedium,\n fontWeightBold: fontWeightBold\n }, variants), other, {\n clone: false // No need to clone deep\n\n });\n}","var shadowKeyUmbraOpacity = 0.2;\nvar shadowKeyPenumbraOpacity = 0.14;\nvar shadowAmbientShadowOpacity = 0.12;\n\nfunction createShadow() {\n return [\"\".concat(arguments.length <= 0 ? undefined : arguments[0], \"px \").concat(arguments.length <= 1 ? undefined : arguments[1], \"px \").concat(arguments.length <= 2 ? undefined : arguments[2], \"px \").concat(arguments.length <= 3 ? undefined : arguments[3], \"px rgba(0,0,0,\").concat(shadowKeyUmbraOpacity, \")\"), \"\".concat(arguments.length <= 4 ? undefined : arguments[4], \"px \").concat(arguments.length <= 5 ? undefined : arguments[5], \"px \").concat(arguments.length <= 6 ? undefined : arguments[6], \"px \").concat(arguments.length <= 7 ? undefined : arguments[7], \"px rgba(0,0,0,\").concat(shadowKeyPenumbraOpacity, \")\"), \"\".concat(arguments.length <= 8 ? undefined : arguments[8], \"px \").concat(arguments.length <= 9 ? undefined : arguments[9], \"px \").concat(arguments.length <= 10 ? undefined : arguments[10], \"px \").concat(arguments.length <= 11 ? undefined : arguments[11], \"px rgba(0,0,0,\").concat(shadowAmbientShadowOpacity, \")\")].join(',');\n} // Values from https://github.com/material-components/material-components-web/blob/be8747f94574669cb5e7add1a7c54fa41a89cec7/packages/mdc-elevation/_variables.scss\n\n\nvar shadows = ['none', createShadow(0, 2, 1, -1, 0, 1, 1, 0, 0, 1, 3, 0), createShadow(0, 3, 1, -2, 0, 2, 2, 0, 0, 1, 5, 0), createShadow(0, 3, 3, -2, 0, 3, 4, 0, 0, 1, 8, 0), createShadow(0, 2, 4, -1, 0, 4, 5, 0, 0, 1, 10, 0), createShadow(0, 3, 5, -1, 0, 5, 8, 0, 0, 1, 14, 0), createShadow(0, 3, 5, -1, 0, 6, 10, 0, 0, 1, 18, 0), createShadow(0, 4, 5, -2, 0, 7, 10, 1, 0, 2, 16, 1), createShadow(0, 5, 5, -3, 0, 8, 10, 1, 0, 3, 14, 2), createShadow(0, 5, 6, -3, 0, 9, 12, 1, 0, 3, 16, 2), createShadow(0, 6, 6, -3, 0, 10, 14, 1, 0, 4, 18, 3), createShadow(0, 6, 7, -4, 0, 11, 15, 1, 0, 4, 20, 3), createShadow(0, 7, 8, -4, 0, 12, 17, 2, 0, 5, 22, 4), createShadow(0, 7, 8, -4, 0, 13, 19, 2, 0, 5, 24, 4), createShadow(0, 7, 9, -4, 0, 14, 21, 2, 0, 5, 26, 4), createShadow(0, 8, 9, -5, 0, 15, 22, 2, 0, 6, 28, 5), createShadow(0, 8, 10, -5, 0, 16, 24, 2, 0, 6, 30, 5), createShadow(0, 8, 11, -5, 0, 17, 26, 2, 0, 6, 32, 5), createShadow(0, 9, 11, -5, 0, 18, 28, 2, 0, 7, 34, 6), createShadow(0, 9, 12, -6, 0, 19, 29, 2, 0, 7, 36, 6), createShadow(0, 10, 13, -6, 0, 20, 31, 3, 0, 8, 38, 7), createShadow(0, 10, 13, -6, 0, 21, 33, 3, 0, 8, 40, 7), createShadow(0, 10, 14, -6, 0, 22, 35, 3, 0, 8, 42, 7), createShadow(0, 11, 14, -7, 0, 23, 36, 3, 0, 9, 44, 8), createShadow(0, 11, 15, -7, 0, 24, 38, 3, 0, 9, 46, 8)];\nexport default shadows;","var shape = {\n borderRadius: 4\n};\nexport default shape;","import arrayWithHoles from \"./arrayWithHoles\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nimport nonIterableRest from \"./nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import { deepmerge } from '@material-ui/utils';\n\nfunction merge(acc, item) {\n if (!item) {\n return acc;\n }\n\n return deepmerge(acc, item, {\n clone: false // No need to clone deep, it's way faster.\n\n });\n}\n\nexport default merge;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport PropTypes from 'prop-types';\nimport merge from './merge'; // The breakpoint **start** at this value.\n// For instance with the first breakpoint xs: [xs, sm[.\n\nvar values = {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1280,\n xl: 1920\n};\nvar defaultBreakpoints = {\n // Sorted ASC by size. That's important.\n // It can't be configured as it's used statically for propTypes.\n keys: ['xs', 'sm', 'md', 'lg', 'xl'],\n up: function up(key) {\n return \"@media (min-width:\".concat(values[key], \"px)\");\n }\n};\nexport function handleBreakpoints(props, propValue, styleFromPropValue) {\n if (process.env.NODE_ENV !== 'production') {\n if (!props.theme) {\n console.error('@material-ui/system: you are calling a style function without a theme value.');\n }\n }\n\n if (Array.isArray(propValue)) {\n var themeBreakpoints = props.theme.breakpoints || defaultBreakpoints;\n return propValue.reduce(function (acc, item, index) {\n acc[themeBreakpoints.up(themeBreakpoints.keys[index])] = styleFromPropValue(propValue[index]);\n return acc;\n }, {});\n }\n\n if (_typeof(propValue) === 'object') {\n var _themeBreakpoints = props.theme.breakpoints || defaultBreakpoints;\n\n return Object.keys(propValue).reduce(function (acc, breakpoint) {\n acc[_themeBreakpoints.up(breakpoint)] = styleFromPropValue(propValue[breakpoint]);\n return acc;\n }, {});\n }\n\n var output = styleFromPropValue(propValue);\n return output;\n}\n\nfunction breakpoints(styleFunction) {\n var newStyleFunction = function newStyleFunction(props) {\n var base = styleFunction(props);\n var themeBreakpoints = props.theme.breakpoints || defaultBreakpoints;\n var extended = themeBreakpoints.keys.reduce(function (acc, key) {\n if (props[key]) {\n acc = acc || {};\n acc[themeBreakpoints.up(key)] = styleFunction(_extends({\n theme: props.theme\n }, props[key]));\n }\n\n return acc;\n }, null);\n return merge(base, extended);\n };\n\n newStyleFunction.propTypes = process.env.NODE_ENV !== 'production' ? _extends({}, styleFunction.propTypes, {\n xs: PropTypes.object,\n sm: PropTypes.object,\n md: PropTypes.object,\n lg: PropTypes.object,\n xl: PropTypes.object\n }) : {};\n newStyleFunction.filterProps = ['xs', 'sm', 'md', 'lg', 'xl'].concat(_toConsumableArray(styleFunction.filterProps));\n return newStyleFunction;\n}\n\nexport default breakpoints;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport responsivePropType from './responsivePropType';\nimport { handleBreakpoints } from './breakpoints';\nimport merge from './merge';\nimport memoize from './memoize';\nvar properties = {\n m: 'margin',\n p: 'padding'\n};\nvar directions = {\n t: 'Top',\n r: 'Right',\n b: 'Bottom',\n l: 'Left',\n x: ['Left', 'Right'],\n y: ['Top', 'Bottom']\n};\nvar aliases = {\n marginX: 'mx',\n marginY: 'my',\n paddingX: 'px',\n paddingY: 'py'\n}; // memoize() impact:\n// From 300,000 ops/sec\n// To 350,000 ops/sec\n\nvar getCssProperties = memoize(function (prop) {\n // It's not a shorthand notation.\n if (prop.length > 2) {\n if (aliases[prop]) {\n prop = aliases[prop];\n } else {\n return [prop];\n }\n }\n\n var _prop$split = prop.split(''),\n _prop$split2 = _slicedToArray(_prop$split, 2),\n a = _prop$split2[0],\n b = _prop$split2[1];\n\n var property = properties[a];\n var direction = directions[b] || '';\n return Array.isArray(direction) ? direction.map(function (dir) {\n return property + dir;\n }) : [property + direction];\n});\nvar spacingKeys = ['m', 'mt', 'mr', 'mb', 'ml', 'mx', 'my', 'p', 'pt', 'pr', 'pb', 'pl', 'px', 'py', 'margin', 'marginTop', 'marginRight', 'marginBottom', 'marginLeft', 'marginX', 'marginY', 'padding', 'paddingTop', 'paddingRight', 'paddingBottom', 'paddingLeft', 'paddingX', 'paddingY'];\nexport function createUnarySpacing(theme) {\n var themeSpacing = theme.spacing || 8;\n\n if (typeof themeSpacing === 'number') {\n return function (abs) {\n if (process.env.NODE_ENV !== 'production') {\n if (typeof abs !== 'number') {\n console.error(\"@material-ui/system: expected spacing argument to be a number, got \".concat(abs, \".\"));\n }\n }\n\n return themeSpacing * abs;\n };\n }\n\n if (Array.isArray(themeSpacing)) {\n return function (abs) {\n if (process.env.NODE_ENV !== 'production') {\n if (abs > themeSpacing.length - 1) {\n console.error([\"@material-ui/system: the value provided (\".concat(abs, \") overflows.\"), \"The supported values are: \".concat(JSON.stringify(themeSpacing), \".\"), \"\".concat(abs, \" > \").concat(themeSpacing.length - 1, \", you need to add the missing values.\")].join('\\n'));\n }\n }\n\n return themeSpacing[abs];\n };\n }\n\n if (typeof themeSpacing === 'function') {\n return themeSpacing;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n console.error([\"@material-ui/system: the `theme.spacing` value (\".concat(themeSpacing, \") is invalid.\"), 'It should be a number, an array or a function.'].join('\\n'));\n }\n\n return function () {\n return undefined;\n };\n}\n\nfunction getValue(transformer, propValue) {\n if (typeof propValue === 'string') {\n return propValue;\n }\n\n var abs = Math.abs(propValue);\n var transformed = transformer(abs);\n\n if (propValue >= 0) {\n return transformed;\n }\n\n if (typeof transformed === 'number') {\n return -transformed;\n }\n\n return \"-\".concat(transformed);\n}\n\nfunction getStyleFromPropValue(cssProperties, transformer) {\n return function (propValue) {\n return cssProperties.reduce(function (acc, cssProperty) {\n acc[cssProperty] = getValue(transformer, propValue);\n return acc;\n }, {});\n };\n}\n\nfunction spacing(props) {\n var theme = props.theme;\n var transformer = createUnarySpacing(theme);\n return Object.keys(props).map(function (prop) {\n // Using a hash computation over an array iteration could be faster, but with only 28 items,\n // it's doesn't worth the bundle size.\n if (spacingKeys.indexOf(prop) === -1) {\n return null;\n }\n\n var cssProperties = getCssProperties(prop);\n var styleFromPropValue = getStyleFromPropValue(cssProperties, transformer);\n var propValue = props[prop];\n return handleBreakpoints(props, propValue, styleFromPropValue);\n }).reduce(merge, {});\n}\n\nspacing.propTypes = process.env.NODE_ENV !== 'production' ? spacingKeys.reduce(function (obj, key) {\n obj[key] = responsivePropType;\n return obj;\n}, {}) : {};\nspacing.filterProps = spacingKeys;\nexport default spacing;","export default function memoize(fn) {\n var cache = {};\n return function (arg) {\n if (cache[arg] === undefined) {\n cache[arg] = fn(arg);\n }\n\n return cache[arg];\n };\n}","import { createUnarySpacing } from '@material-ui/system';\nvar warnOnce;\nexport default function createSpacing() {\n var spacingInput = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 8;\n\n // Already transformed.\n if (spacingInput.mui) {\n return spacingInput;\n } // Material Design layouts are visually balanced. Most measurements align to an 8dp grid applied, which aligns both spacing and the overall layout.\n // Smaller components, such as icons and type, can align to a 4dp grid.\n // https://material.io/design/layout/understanding-layout.html#usage\n\n\n var transform = createUnarySpacing({\n spacing: spacingInput\n });\n\n var spacing = function spacing() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (!(args.length <= 4)) {\n console.error(\"Material-UI: Too many arguments provided, expected between 0 and 4, got \".concat(args.length));\n }\n }\n\n if (args.length === 0) {\n return transform(1);\n }\n\n if (args.length === 1) {\n return transform(args[0]);\n }\n\n return args.map(function (factor) {\n var output = transform(factor);\n return typeof output === 'number' ? \"\".concat(output, \"px\") : output;\n }).join(' ');\n }; // Backward compatibility, to remove in v5.\n\n\n Object.defineProperty(spacing, 'unit', {\n get: function get() {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnOnce || process.env.NODE_ENV === 'test') {\n console.error(['Material-UI: theme.spacing.unit usage has been deprecated.', 'It will be removed in v5.', 'You can replace `theme.spacing.unit * y` with `theme.spacing(y)`.', '', 'You can use the `https://github.com/mui-org/material-ui/tree/master/packages/material-ui-codemod/README.md#theme-spacing-api` migration helper to make the process smoother.'].join('\\n'));\n }\n\n warnOnce = true;\n }\n\n return spacingInput;\n }\n });\n spacing.mui = true;\n return spacing;\n}","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\n// Follow https://material.google.com/motion/duration-easing.html#duration-easing-natural-easing-curves\n// to learn the context in which each easing should be used.\nexport var easing = {\n // This is the most common easing curve.\n easeInOut: 'cubic-bezier(0.4, 0, 0.2, 1)',\n // Objects enter the screen at full velocity from off-screen and\n // slowly decelerate to a resting point.\n easeOut: 'cubic-bezier(0.0, 0, 0.2, 1)',\n // Objects leave the screen at full velocity. They do not decelerate when off-screen.\n easeIn: 'cubic-bezier(0.4, 0, 1, 1)',\n // The sharp curve is used by objects that may return to the screen at any time.\n sharp: 'cubic-bezier(0.4, 0, 0.6, 1)'\n}; // Follow https://material.io/guidelines/motion/duration-easing.html#duration-easing-common-durations\n// to learn when use what timing\n\nexport var duration = {\n shortest: 150,\n shorter: 200,\n short: 250,\n // most basic recommended timing\n standard: 300,\n // this is to be used in complex animations\n complex: 375,\n // recommended when something is entering screen\n enteringScreen: 225,\n // recommended when something is leaving screen\n leavingScreen: 195\n};\n\nfunction formatMs(milliseconds) {\n return \"\".concat(Math.round(milliseconds), \"ms\");\n}\n/**\n * @param {string|Array} props\n * @param {object} param\n * @param {string} param.prop\n * @param {number} param.duration\n * @param {string} param.easing\n * @param {number} param.delay\n */\n\n\nexport default {\n easing: easing,\n duration: duration,\n create: function create() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['all'];\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var _options$duration = options.duration,\n durationOption = _options$duration === void 0 ? duration.standard : _options$duration,\n _options$easing = options.easing,\n easingOption = _options$easing === void 0 ? easing.easeInOut : _options$easing,\n _options$delay = options.delay,\n delay = _options$delay === void 0 ? 0 : _options$delay,\n other = _objectWithoutProperties(options, [\"duration\", \"easing\", \"delay\"]);\n\n if (process.env.NODE_ENV !== 'production') {\n var isString = function isString(value) {\n return typeof value === 'string';\n };\n\n var isNumber = function isNumber(value) {\n return !isNaN(parseFloat(value));\n };\n\n if (!isString(props) && !Array.isArray(props)) {\n console.error('Material-UI: argument \"props\" must be a string or Array.');\n }\n\n if (!isNumber(durationOption) && !isString(durationOption)) {\n console.error(\"Material-UI: argument \\\"duration\\\" must be a number or a string but found \".concat(durationOption, \".\"));\n }\n\n if (!isString(easingOption)) {\n console.error('Material-UI: argument \"easing\" must be a string.');\n }\n\n if (!isNumber(delay) && !isString(delay)) {\n console.error('Material-UI: argument \"delay\" must be a number or a string.');\n }\n\n if (Object.keys(other).length !== 0) {\n console.error(\"Material-UI: unrecognized argument(s) [\".concat(Object.keys(other).join(','), \"]\"));\n }\n }\n\n return (Array.isArray(props) ? props : [props]).map(function (animatedProp) {\n return \"\".concat(animatedProp, \" \").concat(typeof durationOption === 'string' ? durationOption : formatMs(durationOption), \" \").concat(easingOption, \" \").concat(typeof delay === 'string' ? delay : formatMs(delay));\n }).join(',');\n },\n getAutoHeightDuration: function getAutoHeightDuration(height) {\n if (!height) {\n return 0;\n }\n\n var constant = height / 36; // https://www.wolframalpha.com/input/?i=(4+%2B+15+*+(x+%2F+36+)+**+0.25+%2B+(x+%2F+36)+%2F+5)+*+10\n\n return Math.round((4 + 15 * Math.pow(constant, 0.25) + constant / 5) * 10);\n }\n};","// We need to centralize the zIndex definitions as they work\n// like global values in the browser.\nvar zIndex = {\n mobileStepper: 1000,\n speedDial: 1050,\n appBar: 1100,\n drawer: 1200,\n modal: 1300,\n snackbar: 1400,\n tooltip: 1500\n};\nexport default zIndex;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport { deepmerge } from '@material-ui/utils';\nimport createBreakpoints from './createBreakpoints';\nimport createMixins from './createMixins';\nimport createPalette from './createPalette';\nimport createTypography from './createTypography';\nimport shadows from './shadows';\nimport shape from './shape';\nimport createSpacing from './createSpacing';\nimport transitions from './transitions';\nimport zIndex from './zIndex';\n\nfunction createMuiTheme() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var _options$breakpoints = options.breakpoints,\n breakpointsInput = _options$breakpoints === void 0 ? {} : _options$breakpoints,\n _options$mixins = options.mixins,\n mixinsInput = _options$mixins === void 0 ? {} : _options$mixins,\n _options$palette = options.palette,\n paletteInput = _options$palette === void 0 ? {} : _options$palette,\n spacingInput = options.spacing,\n _options$typography = options.typography,\n typographyInput = _options$typography === void 0 ? {} : _options$typography,\n other = _objectWithoutProperties(options, [\"breakpoints\", \"mixins\", \"palette\", \"spacing\", \"typography\"]);\n\n var palette = createPalette(paletteInput);\n var breakpoints = createBreakpoints(breakpointsInput);\n var spacing = createSpacing(spacingInput);\n var muiTheme = deepmerge({\n breakpoints: breakpoints,\n direction: 'ltr',\n mixins: createMixins(breakpoints, spacing, mixinsInput),\n overrides: {},\n // Inject custom styles\n palette: palette,\n props: {},\n // Provide default props\n shadows: shadows,\n typography: createTypography(palette, typographyInput),\n spacing: spacing,\n shape: shape,\n transitions: transitions,\n zIndex: zIndex\n }, other);\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n muiTheme = args.reduce(function (acc, argument) {\n return deepmerge(acc, argument);\n }, muiTheme);\n\n if (process.env.NODE_ENV !== 'production') {\n var pseudoClasses = ['checked', 'disabled', 'error', 'focused', 'focusVisible', 'required', 'expanded', 'selected'];\n\n var traverse = function traverse(node, parentKey) {\n var depth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var key; // eslint-disable-next-line guard-for-in, no-restricted-syntax\n\n for (key in node) {\n var child = node[key];\n\n if (depth === 1) {\n if (key.indexOf('Mui') === 0 && child) {\n traverse(child, key, depth + 1);\n }\n } else if (pseudoClasses.indexOf(key) !== -1 && Object.keys(child).length > 0) {\n if (process.env.NODE_ENV !== 'production') {\n console.error([\"Material-UI: the `\".concat(parentKey, \"` component increases \") + \"the CSS specificity of the `\".concat(key, \"` internal state.\"), 'You can not override it like this: ', JSON.stringify(node, null, 2), '', 'Instead, you need to use the $ruleName syntax:', JSON.stringify({\n root: _defineProperty({}, \"&$\".concat(key), child)\n }, null, 2), '', 'https://material-ui.com/r/pseudo-classes-guide'].join('\\n'));\n } // Remove the style to prevent global conflicts.\n\n\n node[key] = {};\n }\n }\n };\n\n traverse(muiTheme.overrides);\n }\n\n return muiTheme;\n}\n\nexport default createMuiTheme;","import createMuiTheme from './createMuiTheme';\nvar defaultTheme = createMuiTheme();\nexport default defaultTheme;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { withStyles as withStylesWithoutDefault } from '@material-ui/styles';\nimport defaultTheme from './defaultTheme';\n\nfunction withStyles(stylesOrCreator, options) {\n return withStylesWithoutDefault(stylesOrCreator, _extends({\n defaultTheme: defaultTheme\n }, options));\n}\n\nexport default withStyles;","// It should to be noted that this function isn't equivalent to `text-transform: capitalize`.\n//\n// A strict capitalization should uppercase the first letter of each word a the sentence.\n// We only handle the first word.\nexport default function capitalize(string) {\n if (process.env.NODE_ENV !== 'production') {\n if (typeof string !== 'string') {\n throw new Error('Material-UI: capitalize(string) expects a string argument.');\n }\n }\n\n return string.charAt(0).toUpperCase() + string.slice(1);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport withStyles from '../styles/withStyles';\nimport capitalize from '../utils/capitalize';\nexport var styles = function styles(theme) {\n return {\n /* Styles applied to the root element. */\n root: {\n userSelect: 'none',\n width: '1em',\n height: '1em',\n display: 'inline-block',\n fill: 'currentColor',\n flexShrink: 0,\n fontSize: theme.typography.pxToRem(24),\n transition: theme.transitions.create('fill', {\n duration: theme.transitions.duration.shorter\n })\n },\n\n /* Styles applied to the root element if `color=\"primary\"`. */\n colorPrimary: {\n color: theme.palette.primary.main\n },\n\n /* Styles applied to the root element if `color=\"secondary\"`. */\n colorSecondary: {\n color: theme.palette.secondary.main\n },\n\n /* Styles applied to the root element if `color=\"action\"`. */\n colorAction: {\n color: theme.palette.action.active\n },\n\n /* Styles applied to the root element if `color=\"error\"`. */\n colorError: {\n color: theme.palette.error.main\n },\n\n /* Styles applied to the root element if `color=\"disabled\"`. */\n colorDisabled: {\n color: theme.palette.action.disabled\n },\n\n /* Styles applied to the root element if `fontSize=\"inherit\"`. */\n fontSizeInherit: {\n fontSize: 'inherit'\n },\n\n /* Styles applied to the root element if `fontSize=\"small\"`. */\n fontSizeSmall: {\n fontSize: theme.typography.pxToRem(20)\n },\n\n /* Styles applied to the root element if `fontSize=\"large\"`. */\n fontSizeLarge: {\n fontSize: theme.typography.pxToRem(35)\n }\n };\n};\nvar SvgIcon = React.forwardRef(function SvgIcon(props, ref) {\n var children = props.children,\n classes = props.classes,\n className = props.className,\n _props$color = props.color,\n color = _props$color === void 0 ? 'inherit' : _props$color,\n _props$component = props.component,\n Component = _props$component === void 0 ? 'svg' : _props$component,\n _props$fontSize = props.fontSize,\n fontSize = _props$fontSize === void 0 ? 'default' : _props$fontSize,\n htmlColor = props.htmlColor,\n titleAccess = props.titleAccess,\n _props$viewBox = props.viewBox,\n viewBox = _props$viewBox === void 0 ? '0 0 24 24' : _props$viewBox,\n other = _objectWithoutProperties(props, [\"children\", \"classes\", \"className\", \"color\", \"component\", \"fontSize\", \"htmlColor\", \"titleAccess\", \"viewBox\"]);\n\n return /*#__PURE__*/React.createElement(Component, _extends({\n className: clsx(classes.root, className, color !== 'inherit' && classes[\"color\".concat(capitalize(color))], fontSize !== 'default' && classes[\"fontSize\".concat(capitalize(fontSize))]),\n focusable: \"false\",\n viewBox: viewBox,\n color: htmlColor,\n \"aria-hidden\": titleAccess ? undefined : 'true',\n role: titleAccess ? 'img' : undefined,\n ref: ref\n }, other), children, titleAccess ? /*#__PURE__*/React.createElement(\"title\", null, titleAccess) : null);\n});\nprocess.env.NODE_ENV !== \"production\" ? SvgIcon.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Node passed into the SVG element.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The color of the component. It supports those theme colors that make sense for this component.\n * You can use the `htmlColor` prop to apply a color attribute to the SVG element.\n */\n color: PropTypes.oneOf(['action', 'disabled', 'error', 'inherit', 'primary', 'secondary']),\n\n /**\n * The component used for the root node.\n * Either a string to use a DOM element or a component.\n */\n component: PropTypes.elementType,\n\n /**\n * The fontSize applied to the icon. Defaults to 24px, but can be configure to inherit font size.\n */\n fontSize: PropTypes.oneOf(['default', 'inherit', 'large', 'small']),\n\n /**\n * Applies a color attribute to the SVG element.\n */\n htmlColor: PropTypes.string,\n\n /**\n * The shape-rendering attribute. The behavior of the different options is described on the\n * [MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/shape-rendering).\n * If you are having issues with blurry icons you should investigate this property.\n */\n shapeRendering: PropTypes.string,\n\n /**\n * Provides a human-readable title for the element that contains it.\n * https://www.w3.org/TR/SVG-access/#Equivalent\n */\n titleAccess: PropTypes.string,\n\n /**\n * Allows you to redefine what the coordinates without units mean inside an SVG element.\n * For example, if the SVG element is 500 (width) by 200 (height),\n * and you pass viewBox=\"0 0 50 20\",\n * this means that the coordinates inside the SVG will go from the top left corner (0,0)\n * to bottom right (50,20) and each unit will be worth 10px.\n */\n viewBox: PropTypes.string\n} : void 0;\nSvgIcon.muiName = 'SvgIcon';\nexport default withStyles(styles, {\n name: 'MuiSvgIcon'\n})(SvgIcon);"],"sourceRoot":""}